首页 > 解决方案 > 检查列表中是否存在项目并打印该项目和该项目所在的其他字段

问题描述

我正在对照另一个文件检查一个文件,以查看我正在检查的项目是否存在于两个文件中。如果该项目存在,我想打印出该项目以及该项目所在的行。目前我只能打印文件 10366 和 51954 中存在的项目。如何打印整行。

例如:如果POS值存在于文件一和文件二中,我想打印

1   10366   rs58108140  G   A   
1   51954   rs185832753 G   C   

档案一

#CHROM  POS ID  REF ALT QUAL    
1   10366   rs58108140  G   A   
1   10611   rs189107123 C   G   
1   51954   rs185832753 G   C   
1   13327   rs144762171 G   C   
1   13957   .   TC  T   28  
1   13980   rs151276478 T   C   

档案二

#CHROM  POS ID  REF ALT QUAL    
1   10366   rs58108140  G   A   
1   51935   rs181754315 C   T   
1   51954   rs185832753 G   C   
1   52058   rs62637813  G   C   
1   52144   rs190291950 T   A   
1   52238   rs150021059 T   G   
1   54353   rs140052487 C   A
def test():
  d= allel.vcf_to_recarray("merged_Small.vcf")
  c=d['POS']

  df = allel.vcf_to_recarray("FamilyVarient.txt")
  d=df['POS']

  for a in d:
      if a in c:
          print(a)

标签: python

解决方案


如果您不担心优化,您总是可以制作一个简单的 bash 脚本,为文件 1 中的每个 POS greps 文件 2。


推荐阅读