2022-12-24vcf文件获取样品名称,染色体名称,修改

2022-12-23  本文已影响0人  dashan1928

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

上一篇 下一篇

猜你喜欢

热点阅读