最近因为修改article图片的原因,需要对计算绘制祖先成分分析的堆积图。使用Admixture计算时,SNP数据量大概在180x1764689。虽然数据量不大,但是需要计算不同k值下的情况,计算速度还是很慢的。通过学习多线程计算的方法,实测下面的方法在cpu线程数和内存足够的情况下非常可行。

这里直接放上代码
for k in {2..8}
#这里我要计算k=2到k=8
do
{
        echo "现在使用Admixture计算k=$k时的组成分分析"
        admixture --cv snp_rename.bed $k
        echo "k=$k已经计算结束"
        #通过echo展示计算状态
 }&
#使用{}&将do的内容包括起来
echo "已经全部计算结束"
done
wait

2023-05-11T08:08:55.png