【问题标题】:extract all rows of specific column after comparing two files比较两个文件后提取特定列的所有行
【发布时间】:2014-01-14 18:25:24
【问题描述】:

我有两个包含数千行的文本文件。文件 A 只有一列 (ID)

#ID
rs111
rs222
rs333
rs444

文件 B 如下所示:

#CHROM POS ID REF ALT QUAL ......

22 111 rs111 T C . ....

22 222 rs222 A G ....

22 333 rs666 G T ...

22 444 rs777 A A ..

这是我想要的输出:

#CHROM POS ID REF ALT QUAL ......

22 111 rs111 T C . ....

22 222 rs222 A G ....

即我只想从文件 B 中提取那些 ID 与文件 A 中给出的 ID 匹配的行。我怎样才能做到这一点?谢谢

【问题讨论】:

    标签: shell unix bioinformatics vcf-variant-call-format


    【解决方案1】:

    你可以使用这个 awk:

    awk 'FNR==NR{a[$1];next} ($3 in a)' fileA fileB
    22 111 rs111 T C . ....
    22 222 rs222 A G ....
    

    【讨论】:

      【解决方案2】:

      虽然 anubhava 发布的 awk 解决方案更优雅,但您可能会侥幸逃脱:

      $ grep -f filea fileb 
      22 111 rs111 T C . ....
      22 222 rs222 A G ....
      

      【讨论】:

        【解决方案3】:

        请参阅 biostars 中的“查询 dbSNP VCF 文件”:http://www.biostars.org/p/88799/http://www.biostars.org/p/12707/

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-12-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多