Comments (4)
My 2 cents is it makes more sense to store labelled group information as factors. I can see at least two issues for not doing so:
- round trip conversion will not work as labels would be lost
- dropping labels will create confusion on the user side
from hierfstat.
If eucl.dist calculates euclidean distance among populations, then shouldn't the following work as well?
library(adegenet)
#> Loading required package: ade4
#>
#> /// adegenet 2.1.1 is loaded ////////////
#>
#> > overview: '?adegenet'
#> > tutorials/doc/questions: 'adegenetWeb()'
#> > bug reports/feature requests: adegenetIssues()
data(nancycats)
dist(tab(genind2genpop(nancycats), freq = TRUE))
#>
#> Converting data from a genind to a genpop object...
#>
#> ...done.
#> P01 P02 P03 P04 P05 P06 P07
#> P02 1.5514481
#> P03 1.3477476 1.5547478
#> P04 1.2474840 1.3857293 0.8702066
#> P05 1.1943588 1.4911924 1.1521719 1.0166375
#> P06 1.4193059 1.3869224 1.0019208 1.0330582 1.2519810
#> P07 1.2478150 1.3916849 1.4120350 1.2557246 1.4470529 1.2954705
#> P08 1.2066224 1.3100691 1.2557645 1.0526140 1.3262311 1.2760347 1.1348352
#> P09 1.4809841 1.5149411 1.4732701 1.2693139 1.5171448 1.4619620 1.6537576
#> P10 1.1858182 1.2423319 1.4153291 1.3943889 1.3286281 1.3711912 1.4347499
#> P11 1.1519297 1.3182438 0.9762138 0.9030445 1.1213038 0.9996316 1.2991939
#> P12 1.2732672 1.4548571 1.3127612 1.1155339 1.2954694 1.3409445 1.2447582
#> P13 1.3950482 1.5077594 1.4740663 1.3781801 1.4248061 1.3714141 1.5379466
#> P14 1.3067279 1.4115382 1.1081984 1.0161166 1.2470943 1.2331804 1.4507732
#> P15 1.2348953 1.3267745 1.2157380 1.1133308 1.3618035 1.3483997 1.4440005
#> P16 1.5062716 1.4352412 1.4373490 1.2569905 1.3337499 1.1825464 1.5319979
#> P17 1.1657247 1.5450550 1.3662220 1.2525573 1.1750072 1.5170958 1.3375208
#> P08 P09 P10 P11 P12 P13 P14
#> P02
#> P03
#> P04
#> P05
#> P06
#> P07
#> P08
#> P09 1.5516618
#> P10 1.2067989 1.4487116
#> P11 1.1889893 1.2156551 1.1056855
#> P12 1.3222543 1.3295918 1.4715996 1.2795903
#> P13 1.4603842 1.6733048 1.5334709 1.4159866 1.4670096
#> P14 1.1799727 1.3132643 1.3705882 1.0757203 1.2901729 1.4147138
#> P15 1.1402479 1.2847754 1.1372724 1.1771063 1.4107731 1.4157774 1.1756729
#> P16 1.4871673 1.3749299 1.4538351 1.1973162 1.4820175 1.5114618 1.3370960
#> P17 1.4895873 1.4590764 1.3906382 1.1759670 1.1140455 1.4843346 1.3246809
#> P15 P16
#> P02
#> P03
#> P04
#> P05
#> P06
#> P07
#> P08
#> P09
#> P10
#> P11
#> P12
#> P13
#> P14
#> P15
#> P16 1.3917555
#> P17 1.3475301 1.6113889
from hierfstat.
Thanks for your replies, and yes I agree that roundtrip conversion should work. A workaround for my script is obviously to change the first column:
fstat.nancycats <- genind2hierfstat(nancycats)
fstat.nancycats[, 1] <- as.integer(fstat.nancycats[, 1] )
eucl.dist(fstat.nancycats) # work now
This gives a different answer to what @zkamvar propose. If I'm not mistaken, the reason is that hierfstat compute the distance between the "genotype" whereas @zkamvar gives the distance for the alleles frequency. Consider for example the two following populations with two individuals:
pop1: AA & aa
pop2: Aa & Aa
For @zkamvar the distance is 0 (right?) whereas for hierfstat, it's not. Actually, the hierfstat version looks very strange to me because (from what I see) Aa and aA individuals are considered as being different.
from hierfstat.
Sorry to jump in late, email issue...
euclid.dist
has not been properly checked, I should remove it or/and include it as a method in genet.dist
from hierfstat.
Related Issues (20)
- problem of pop.freq in pairwise.WCfst HOT 2
- Inconsistency in genet.dist function HOT 3
- estimated Fis value outside of bootstrapped CIs HOT 7
- Genet.dist not keeping population names HOT 3
- write.ped() removes first locus from hierfstat object HOT 5
- gstat.randtest missing HOT 4
- Parallelizing genet.dist() ? HOT 2
- Calculating FST with Dosage and Missing Data HOT 5
- plot boot.ppfst HOT 4
- Conversion genind to hierfstat df a little inconsistent HOT 2
- pairwise.WCfst(genind2hierfstat(x)) and genet.dist(x, method = "WC84") do not yield the same result HOT 8
- allelic.richness rounded numbers HOT 3
- problem performing sex.biased.test() function HOT 3
- `basic.stats` Ho calculation is actually allele frequency HOT 4
- boot.ppfst throwing an error with "diploid=F" HOT 4
- Fis calculations in basic.stats and boot.ppfis differ HOT 4
- NeiFST_calcuation_error HOT 2
- How to Interpret Negative Fsts HOT 2
- Basic Stats (and Ho/Hs/Fis) Require Population Name to be Numeric With A Single Population HOT 4
- pairwise.WCfst Error - non-conformable arrays HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hierfstat.