Python 尝试读取FASTA格式的文件,然后写入另一个Genbank格式的文件
尝试使用BioPython中的Seq和SeqIO对象读取包含基因组序列的文件。无法使用open命令。程序应该接受一个命令行参数,该参数包含包含输入基因组的FASTA文件的名称 它创建了文件,但文件中没有任何内容。不知道我错过了什么 这就是我所拥有的: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_
来自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”