我需要改进一种功能,可以解析多个fasta文件,并通过try execpt处理检查压缩情况

问题描述 投票:0回答:1

[大家好,我正在使用庞大的gz压缩fasta文件,并且我有一个不错的fasta解析器,但我想以一种更通用的方式来检查压缩,以解析gz或未压缩的文件。

我尝试此代码:

def is_header(line):
    return line[0] == '>'

def parse_multi_fasta_file_compressed_or_not(filename):
    if filename.endswith('.gz'):
        with gzip.open(filename, 'rt') as f:
            fasta_iter = (it[1] for it in itertools.groupby(f, is_header))
    else:
        with open(filename, 'r') as f:
            fasta_iter = (it[1] for it in itertools.groupby(f, is_header))
            for name in fasta_iter:
                name = name.__next__()[1:].strip()
                sequences = ''.join(seq.strip() for seq in fasta_iter.__next__())
                yield name, sequences

ref:https://drj11.wordpress.com/2010/02/22/python-getting-fasta-with-itertools-groupby/https://www.biostars.org/p/710/

我尝试修改标识。 Python不会抱怨任何错误,但是不会打印或显示任何结果。我正在使用5个序列的玩具文件。

仅提醒fasta文件是这样的:

>header_1
AATATATTCAATATGGAGAGAATAAAAGAACTAAGAGATCTAATGTCACAGTCTCGCACTCGCGAGATAC
TCACCAAAACCACTGTGGACCACATGGCCATAATCAAAAAGTACACATCAGGAAGGCAAGAGAAGAACCC
TGCACTCAGGATGAAGTGGATGATG
>header_2
AACCATTTGAATGGATGTCAATCCGACTTTACTTTTCTTGAAAGTTCCAGCGCAAAATGCCATAAGCACC
ACATTTCCCTATACTGGAGACCCTCC

我想改用somr try exeception,如果你们中的任何人有什么秘诀可以帮助我弄清楚我会非常满意(这根本不是任何课程的练习!)。>>

谢谢您的时间。

Paulo

[伙计们,我正在使用巨大的gz压缩fasta文件,并且我有一个不错的fasta解析器,但我想使它更通用,以检查压缩的方式来解析gz或非gz ...

python bioinformatics fasta
1个回答
0
投票

看来您已经缩进了`for循环。尝试以下操作:

© www.soinside.com 2019 - 2024. All rights reserved.