【问题标题】:How do I remove duplicated SNPs using PLink?如何使用 PLink 删除重复的 SNP?
【发布时间】:2012-03-25 19:19:19
【问题描述】:

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

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

【问题讨论】:

标签: bioinformatics vcf-variant-call-format bcftools


【解决方案1】:

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

您也可以使用 --extract,而不是像 Davy 建议的那样使用 --exclude,保留而不是删除 SNP 列表。在任何基于 Unix 的系统上都有一个简单的方法(假设您的数据是 PED/MAP 格式并被染色体分割):

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

这将创建一个keepers_chr.txt 文件,其中包含位于唯一位置的 SNP 的 SNP ID。然后运行 ​​PLINK 输入你的原始文件并使用 --extract keepers_chr--make-bed --out unique_file

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      1. 您还可以使用 bcftools 和命令 bcftools norm -D, --remove-duplicates 删除 vcf 重复项,bcftools 文档可以在 https://samtools.github.io/bcftools/bcftools.html 找到

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

      【讨论】:

        【解决方案4】:

        使用 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 部分更改为文件的实际名称。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-06-15
          • 1970-01-01
          • 1970-01-01
          • 2021-08-18
          • 2018-08-27
          • 1970-01-01
          • 2021-08-09
          相关资源
          最近更新 更多