如何使用PLink删除重复的SNP?

时间:2012-03-25 19:19:20

标签: bioinformatics

我正在与PLINK合作分析全基因组数据。

有谁知道如何删除重复的SNP?

4 个答案:

答案 0 :(得分:4)

在PLINK 1.9中,使用--list-duplicate-vars suppress-first,它将列出重复项,并删除一个(第一个),保留另一个完整。我知道这会滑倒。

您可以使用--exclude来保留而不是删除SNP列表,而不是使用Davy建议的--extract。在任何基于Unix的系统上都有一个简单的方法(假设您的数据采用PED / MAP格式并通过chromossome进行切割):

for i in {1..22}; do
  cat yourfile_chr${i}.map | grep "$i" | cut -f -4 | uniq | cut -f -2 | keepers_chr${i}.txt;
done

这将为唯一位置的SNP创建一个带有SNP ID的keepers_chr.txt文件。然后运行PLINK,将原始文件输入,并使用--extract keepers_chr

答案 1 :(得分:2)

我没有自动执行此操作的命令,但我过去的方法是获取重复的SNP列表,例如将重复项更改为rs1001.dup,然后运行--update-allele --update-name然后创建重复项列表,以便所有条目的名称末尾都有.dup,然后运行--extract duplicateSNPs.txt --make-bed --out yourfilename.dups.removed

如果你熟悉R,获取重复的SNP列表应该不会太难。抱歉给你一个“好好学习X !!!”答案

答案 2 :(得分:0)

使用R更容易,但您必须使用TPED文件。一旦你设法获得TPED文件,只需将其复制并粘贴到R控制台:

a = read.table("yourfile.TPED",sep = " ",header=FALSE)
b = a[!duplicated(a$V2),]
write.table(b,file="newfile.TPED",sep=" ",quote = FALSE,col.names = FALSE, row.names=FALSE)

没有重复的newfile.TPED将在R工作目录中显示。 提示:您可以更改脚本的yourfile.TPEDnewfile.TPED部分,以获取您文件的实际名称。

答案 3 :(得分:0)

其他一些可能有帮助/兴趣的想法:

  1. 您还可以使用bcftools norm -D, --remove-duplicates命令使用bcftools删除vcf副本bcftools文档可以在https://samtools.github.io/bcftools/bcftools.html

    找到。
  2. 本着仅使用Unix删除重复项的精神,我以前使用过以下命令(输入是压缩的vcf文件)gunzip -c input.vcf.gz | grep "^[^##]" | cut -f3 | sort | uniq -d > plink.dupvar plink.dupvar是PLINK程序在何时查找的文件名。执行重复删除步骤。