vcftools パッケージを利用して堰とコッカーハムの fst を計算しようとしています。最初に 2 組の集団をループし、次に 1000 Genomes プロジェクトのすべてのバリアントでこれらの集団をループしたいと思います。各染色体には個別の vcf ファイルが含まれています。たとえば、pop1 と pop2 の場合、pop3 と pop4 の場合、染色体 1 ~ 10 の fst を計算します。各集団ファイル (LWKfile など) には、この集団に属する個体のリストが含まれています。
私は試みました:
for population in LWK_GBR YRI_FIN; do
firstpop=$(echo $population | cut -d '_' -f1)
secondpop=$(echo $population | cut -d '_' -f2)
for filename in *.vcf.gz; do
vcftools --gzvcf ${filename} \
--weir-fst-pop /outdir/${firstpop}file \
--weir-fst-pop /outdir/${secondpop}file \
--out /out/${population}_${filename}
done
done
ただし、これはすべてのファイルをループするわけではなく、染色体 10 でスタックしているようです。ループ内のループが遅すぎるのではないかと懸念しているため、bash でこれを実行するより効率的な方法はありますか。