非常抱歉之前的回答中的错误信息。真实的原因是在当前代码示例中,我们只对行进行了匹配,但没有考虑到 rRNA 基因的序列跨越多行的情况。

为了正确地匹配 rRNA 基因,我们需要适当调整代码,以便在跨越多行的情况下正确地进行匹配。

以下是修正后的代码示例,用于正确匹配 rRNA 基因:

import re

rrna_genes_count = 0
rrna_pattern = re.compile(r'(18S|5.8S|28S|5S)')

with open('your_sequences.fasta', 'r') as file:
    sequence = ""
    for line in file:
        if line.startswith('>'):
            if sequence != "":
                if re.search(rrna_pattern, sequence):
                    rrna_genes_count += 1
            sequence = ""
        else:
            sequence += line.strip()

    if sequence != "":
        if re.search(rrna_pattern, sequence):
            rrna_genes_count += 1

print('rRNA genes count:', rrna_genes_count)

在这个修正后的代码示例中,我们使用了正则表达式模式 (18S|5.8S|28S|5S) 来匹配 rRNA 亚基的标识符。然后,我们对序列文件进行逐行读取,并将行合并为一个完整的序列。在每个 '>' 开始的行时,我们检查前一个序列是否匹配 rRNA 模式,如果匹配,将 rRNA 基因的计数 rrna_genes_count 加 1。

请将代码中的 'your_sequences.fasta' 替换为您实际的序列文件路径。

再次对之前给您带来的困惑深感抱歉,并感谢您的耐心。希望这个修正后的代码可以正确匹配 rRNA 基因。如果您还有其他问题,请随时提问。

如何使用 Python 正则表达式匹配 rRNA 基因序列

原文地址: https://www.cveoy.top/t/topic/CJk 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录