Hi all,
I'm trying to calculate iHS with selscan: the program seems to apparently run normal, but my output file is empty.
I've phased my data with SHAPEIT and tried the following commands:
selscan --ihs --vcf input.phased.vcf --map input.phased.map --out output.phased
selscan --ihs --hap input.phased.haps --map input.phased.map --out output.phased
I've read in this post that running the program with a vcfinstead of an haplotypes file should give no trouble, however the output file is empty.
My .mapfile looks like this:
22 ID1 0 17075353
22 ID2 0 17301492
22 ID3 0 17306184
22 ID4 0 17306270
22 ID5 0 17315503
And my .hapsfile looks like this:
22 ID1 17339003 A G 0 0 1 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0...
22 ID2 17347294 G A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1...
Please, does anyone see something I'm missing? Thank you very much in advanced!
2 answers
Your output file is empty because your map file does not have genetic position. However, Selscan can do these analyses using physical position. To do that, you have to add a flag "--pmap" while you are running any analyses. I hope this helps you.
If you are still wondering why selscan is generating an empty file, it is because the third column of your map file (the genetic distance) is filled with zeroes, most likely because you're working with a nonmodel organism. The program needs this column in order to work (https://github.com/szpiech/selscan/issues/32). Luckily, selscan calculations can be performed using only physical distances (https://github.com/szpiech/selscan/issues/10), so you should simply copy the fourth column to replace the third one:
awk '{ print $1"\t"$2"\t"$4"\t"$4 }' old_file.map > new_file.map
Log in to answer this question.
When I calculated xpehh using selscan, I also encountered the same problem. It seems to run normal ,but the output file is empty,only the header. Really confused...