vcf-query -l xx.vcf
在进行admixture运算时,需要染色体名称为整数,常需要提取vcf文件中的染色体名称,并进行修改,需要以下几步。
第一步:提取vcf中染色体名称
awk '{print $1}' xxx.vcf | grep '^[^#]' > chr.txt
第二步:将染色体的名称进行修改,如果染色体均以chr开头则说明没有未组装到染色体上的scaffold,若有未组装到染色体上的scaffold,则这些scaffold 用0 进行替代
awk '{print $1 "\t" $1}' chr.txt | awk 'gsub(/chr/,"",$2)' > chr_rename.txt
有unplaced scaffold则把原先chr.txt 分为两部分,再替换后,再合并成一个文件
第三步:利用bcftools 中的 annotate 命令修改染色体名称
bcftools annotate --rename-chr chr_rename.txt xxx.vcf > new_chr.vcf
第四步:计算admixture中的最佳k值
for K in {1..10}; do admixture --cv rads.bed $K | tee log${K}.out; done
网友评论