如何将所有染色体组合在一个文件中

时间:2018-04-04 08:57:14

标签: bioinformatics genetics

我下载了1000个基因组数据(染色体1 -22),这是VCF格式。如何将所有染色体组合在一个文件中?我应该首先将所有染色体转换为plink二进制文件,然后执行--bmerge mmerge-list吗?或者还有其他方法来组合它们吗?有什么建议吗?

2 个答案:

答案 0 :(得分:2)

picard GatherVcfs https://broadinstitute.github.io/picard/command-line-overview.html

  

将分散操作中的多个VCF文件收集到单个VCF文件中。输入文件必须以基因组顺序提供,并且不得在重叠位置处具有事件。

答案 1 :(得分:2)

您可以按照建议使用PLINK。您还可以使用 BCFtools

https://samtools.github.io/bcftools/bcftools.html

具体来说,concat命令:

bcftools concat ALL.chr{1..22}.phase3_shapeit2_mvncall_integrated_v5a.20130502.genotypes.vcf.gz -Oz -o  ALL.autosomes.phase3_shapeit2_mvncall_integrated_v5a.20130502.genotypes.vcf.gz

如果您使用PLINK,您可能会遇到1000个基因组的问题,因为它包含多个等位基因SNP,这与PLINK不兼容。此外,还有一些SNP具有相同的RS标识符,这也与PLINK不兼容。

您需要解决这些问题,以便通过将多等位基因SNP分成多个记录并删除具有重复RS标识符的记录(或创建新的唯一标识符)来使PLINK工作。

此外,PLINK二进制PED不支持基因型概率。我不记得1000个基因组是否包含此类信息。如果确实如此并且您想要保留它,则无法将其转换为二进制PED,因为基因型概率将很难调用,请参阅:

https://www.cog-genomics.org/plink2/input

具体做法是:

  

由于PLINK 1二进制格式不能代表基因型   概率,不确定性大于0.1的呼叫通常是   被视为失踪,其余被视为硬通话。

因此,如果您打算保留输出的VCF格式,我建议不要使用PLINK。

修改

以下是将VCF转换为PLINK的方法:

要从VCF文件构建PLINK兼容文件,需要合并或删除重复位置和SNP ID。在这里,我选择删除所有重复的条目。目录重复SNP id:

grep -v '^#' <(zcat ALL.chr${chrom}.phase3_shapeit2_mvncall_integrated_v5a.20130502.genotypes.vcf.gz) | cut -f 3 | sort | uniq -d > ${chrom}.dups

使用BCFTools,拆分多等位基因SNP,并使用plink删除上一步中发现的重复SNP id:

bcftools norm -d both -m +any -Ob ALL.chr${chrom}.phase3_shapeit2_mvncall_integrated_v5a.20130502.genotypes.vcf.gz | plink --bcf /dev/stdin --make-bed --out ${chrom} --allow-extra-chr 0 --memory 6000 --exclude ${chrom}.dups

重要的是,这不是解决将VCF转换为PLINK问题的唯一方法。例如,您可以唯一地将标识符分配给重复的RS id。