【问题标题】:Remove part of FASTA file heading annotated genome using python使用python删除部分FASTA文件标题注释基因组
【发布时间】:2022-11-11 04:53:03
【问题描述】:

我想删除 FASTA 基因组文件的部分标题/注释,这样我就可以只保留基因座标签和蛋白质描述。

例如。兑换:

lcl|CP000438.1_cds_ABJ14958.1_2 [gene=dnaN] [locus_tag=PA14_00020] [蛋白质=DNA 聚合酶 III,β 链] [protein_id=ABJ14958.1] [location=2056..3159] [gbkey=CDS] ATGCATTTCACCATTCAACGCGAAGCCCTGTTGAAACCGCTGCAACTGGTCGCCGGCGTCGTGGAACGCC GCCAGACATTGCCGGTTCTCTCCAACGTCCTGCTGGTGGTCGAAGGCCAGCAACTGTCGCTGACCGGCAC

至 :

[locus_tag=PA14_00020] [蛋白质=DNA 聚合酶 III,β 链] ATGCATTTCACCATTCAACGCGAAGCCCTGTTGAAACCGCTGCAACTGGTCGCCGGCGTCGTGGAACGCC GCCAGACATTGCCGGTTCTCTCCAACGTCCTGCTGGTGGTCGAAGGCCAGCAACTGTCGCTGACCGGCAC

我想以这种方式修改我的 FASTA 文件中的所有标题。我最近才开始学习 python,所以我在为此类任务编写代码方面非常糟糕。如果有人能提供帮助,我将不胜感激。

【问题讨论】:

    标签: python fasta rna-seq


    【解决方案1】:

    假设您的标题是一个字符串。 您可以使用正则表达式来隔离标题中看起来像 [key=value] 的组件。 然后根据您的需要进行过滤,仅保留 locus_tag 和蛋白质。 最后,您可以使用 join() 构建目标标头字符串。

    import re
    
    PATTERN = re.compile(r"[(w*)=([^]]*)]")
    
    header = "cl|CP000438.1_cds_ABJ14958.1_2 [gene=dnaN] [locus_tag=PA14_00020] [protein=DNA polymerase III, beta chain] [protein_id=ABJ14958.1] [location=2056..3159] [gbkey=CDS]"
    # obtain a list of tuples (key, value)
    keyvalues: list[tuple[str,str]] = PATTERN.findall(header)
    # obtain a list of formatted [key=value], filtered
    keyvalues: list[str] = [f"[{k}={v}]" for k, v in keyvalues if k in ("locus_tag", "protein")]
    # rebuild the header string
    header = " ".join(keyvalues) # [locus_tag=PA14_00020] [protein=DNA polymerase III, beta chain]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-18
      • 1970-01-01
      • 2022-10-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-19
      • 1970-01-01
      • 2014-11-16
      相关资源
      最近更新 更多