Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.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
Python 尝试读取FASTA格式的文件,然后写入另一个Genbank格式的文件_Python_Bioinformatics_Biopython_Fasta_Genbank - Fatal编程技术网

Python 尝试读取FASTA格式的文件,然后写入另一个Genbank格式的文件

Python 尝试读取FASTA格式的文件,然后写入另一个Genbank格式的文件,python,bioinformatics,biopython,fasta,genbank,Python,Bioinformatics,Biopython,Fasta,Genbank,尝试使用BioPython中的Seq和SeqIO对象读取包含基因组序列的文件。无法使用open命令。程序应该接受一个命令行参数,该参数包含包含输入基因组的FASTA文件的名称 它创建了文件,但文件中没有任何内容。不知道我错过了什么 这就是我所拥有的: 来自Bio.Seq导入序列 来自Bio import SeqIO 从Bio.SeqRecord导入SeqRecord 从Bio.Alphabet导入IUPAC 记录列表=[] 对于SeqIO.parse中的SeqRecord('bacterium_

尝试使用BioPython中的SeqSeqIO对象读取包含基因组序列的文件。无法使用open命令。程序应该接受一个命令行参数,该参数包含包含输入基因组的FASTA文件的名称

它创建了文件,但文件中没有任何内容。不知道我错过了什么

这就是我所拥有的:

来自Bio.Seq导入序列
来自Bio import SeqIO
从Bio.SeqRecord导入SeqRecord
从Bio.Alphabet导入IUPAC
记录列表=[]
对于SeqIO.parse中的SeqRecord('bacterium_genome.fna','fasta'):
myseq=SeqRecord.seq
myseq.alphabet=IUPAC.unambigular\u dna
recordlist.append(SeqRecord)
SeqIO.write(记录列表,'bacterium_genome.gb','gb')

您所做的实际上应该是可行的(假设文件中有一个有效的非空输入),但对于不必要的导入来说并不是那么优雅。您可以直接修改字母表,然后在每次迭代时将序列记录写入输出文件句柄:

from Bio import SeqIO
from Bio.Alphabet import IUPAC

with open('bacterium_genome.gb', 'w') as out_f:
    for record in SeqIO.parse('bacterium_genome.fna', 'fasta'):
        record.seq.alphabet = IUPAC.unambiguous_dna
        SeqIO.write(record, out_f, 'genbank')

您所做的实际上应该是可行的(假设文件中有一个有效的非空输入),但对于不必要的导入来说并不是那么优雅。您可以直接修改字母表,然后在每次迭代时将序列记录写入输出文件句柄:

from Bio import SeqIO
from Bio.Alphabet import IUPAC

with open('bacterium_genome.gb', 'w') as out_f:
    for record in SeqIO.parse('bacterium_genome.fna', 'fasta'):
        record.seq.alphabet = IUPAC.unambiguous_dna
        SeqIO.write(record, out_f, 'genbank')
我试着不使用“with open”我试着不使用“with open”