定义:Dxy 是衡量两个种群间的遗传差异的绝对值。它表示的是两个种群中随机选取两个基因拷贝,它们在对应位点上的差异概率。
计算:Dxy 是通过计算两个种群在每个位点的基因型差异来得出的,通常使用以下公式:
其中:
( p_1(i) ) 和 ( p_2(i) ) 分别是两个种群在位点 ( i ) 上的等位基因频率。 ( L ) 是位点的总数。
本wiki使用vcf文件,使用python脚本计算两个群体之间每个位点和总的平均dxy指数。
计算dxy指数
多个样本群call或者单call后合并的vcf文件;样本的群体分组(每个群体样本越多越好)。
1 示例路径
/TJPROJ10/JK/liuqifei/test/dxy-index/X101SC24062493-Z01-J001
2 分析脚本 本分析以合并后的vcf文件为例进行计算。
#1.输出每个位点的等位基因频率 for i in HK JN N32 S5A;do vcftools --gzvcf snp_merged.vcf.gz --keep ${i}_sample --freq --out result/${i} done #2.使用脚本计算dxy指数 export PYTHONPATH='' while IFS=$'\t' read -r i j ;do /TJPROJ6/AFS_RESEQ/Proj/liuqifei/miniconda3/bin/python dxy2.py result/${i}.frq result/${j}.frq ${i}_${j}.xls done < group.txt
计算等位基因频率时,–keep所传入的样本为合并后的vcf文件中的样本名,按照自己所需的分组计算即可。 dxy2.py脚本第一个参数是第一个群体的等位基因频率结果,第二个参数是第二个群体的等位基因频率结果,第三个参数是输出文件的结果,输出文件会添加数字前缀,数字前缀是两个群体的平均dxy值。
0.498_HK_JN.xls(0.498是HK群体和JN群体之间的平均Dxy值)