Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在没有biopython的情况下将多行fasta文件转换为单线fasta文件_Python - Fatal编程技术网

如何在没有biopython的情况下将多行fasta文件转换为单线fasta文件

如何在没有biopython的情况下将多行fasta文件转换为单线fasta文件,python,Python,我有几个大的fasta文件,其中序列保存在多行中 >header1 AGTCGTAGCTACGTACGTACGTGTACGTACGTA TGACGTACGTAGCTGCATGCTA >header2 TGCAGATCGTAGTCGATGCTAGTGCATGCATGT ACGTAGTGCAG ... 我想把它转换成fasta文件,在那里序列被合并成一行 >header1 AGTCGTAGCTACGTACGTACGTGTACGTACGTATGACGTACGTAGCTGCATGCT

我有几个大的fasta文件,其中序列保存在多行中

>header1
AGTCGTAGCTACGTACGTACGTGTACGTACGTA
TGACGTACGTAGCTGCATGCTA
>header2
TGCAGATCGTAGTCGATGCTAGTGCATGCATGT
ACGTAGTGCAG
...
我想把它转换成fasta文件,在那里序列被合并成一行

>header1
AGTCGTAGCTACGTACGTACGTGTACGTACGTATGACGTACGTAGCTGCATGCTA
>header2
TGCAGATCGTAGTCGATGCTAGTGCATGCATGTACGTAGTGCAG
...
我的fasta文件非常大,因此我需要一种内存高效的方法(因为序列文件比我的内存大)。因此,我不能使用Biopython(下面是我与Biopython的问题的解决方案,以防这对任何人都有帮助,这是来自)


以下操作将一次处理一行文件:

with open('input.fasta') as f_input, open('output.fasta', 'w') as f_output:
    block = []

    for line in f_input:
        if line.startswith('>header'):
            if block:
                f_output.write(''.join(block) + '\n')
                block = []
            f_output.write(line)
        else:
            block.append(line.strip())

    if block:
        f_output.write(''.join(block) + '\n')
为您提供
输出。fasta
包含:

>标题1
AGTCGTAGCTACGTACGTACGTACGTACGTATGACGTACGTGAGTCGTCATGCTA
>校长2
TGCAGATCGTAGTCGATGCTAGTGCATGCATGTACGTAGTGCAG

使用以下答案,所有ID和序列将在同一行中,我希望获得一行中的标题以及另一行中序列的所有行

with open('input.fasta') as f_input, open('output.fasta', 'w') as f_output:
    block = []

    for line in f_input:
        if line.startswith('>header'):
            if block:
                f_output.write(''.join(block) + '\n')
                block = []
            f_output.write(line)
        else:
            block.append(line.strip())

    if block:
        f_output.write(''.join(block) + '\n')

你的python版本是什么?python版本是3.7.5
with open('input.fasta') as f_input, open('output.fasta', 'w') as f_output:
    block = []

    for line in f_input:
        if line.startswith('>header'):
            if block:
                f_output.write(''.join(block) + '\n')
                block = []
            f_output.write(line)
        else:
            block.append(line.strip())

    if block:
        f_output.write(''.join(block) + '\n')