uqrmaie1 / admixtools

https://uqrmaie1.github.io/admixtools
74 stars 14 forks source link

extarct_f2_subset does not copy block_lengths file #32

Open dosshra opened 1 year ago

dosshra commented 1 year ago

Hello I am running: extract_f2('./SAR_90K','./f2',overwrite = T) extract_f2_subset('./f2', './f2sub', c('2','3','5','8','9'), verbose = TRUE) and then: f2_blocks = f2_from_precomp('./f2sub') I am getting this error:

Error in read_f2(dir, pops, pops2, type = type, remove_na = remove_na, : block_lengths file not found. Please run extract_f2() again, as the file format has recently changed.

I see in the f2 directory 3 rds files that are not present in the f2sub directory. Can i just copy them? or should they be subsetted by the function? Please help Thank you Hanan

uqrmaie1 commented 1 year ago

Early on, when I wrote the extract_f2_subset() function, I thought it would be a good idea to compute f2-statistics for a large number of populations, and then create subsets of that. Because the missing data problem tends to get worse for more populations, I abandoned that idea, and I haven't updated the extract_f2_subset() in a while. It might work if you copy the rds files with the block length information into the new directory.

Another thing you could try is to pass the pops argument to f2_from_precomp(): f2_blocks = f2_from_precomp('./f2sub', pops = c('2','3','5','8','9')) I have never tested this with numbers as populations names. If you run into problems with that, try using names that start with letters.

Please let me know if this works, or if there is a reason why extract_f2_subset() would be better in your case than passing the pops argument to f2_from_precomp()!

dosshra commented 1 year ago

Hello Copying the rds files works OK. However your suggestion for: f2_blocks = f2_from_precomp('./f2', pops = c('2','3','5','8','9')) seems more reasonable. I just did not pay attention to this option. Working with numbers as characters works fine for me. Thank you