Bio.Seq
オブジェクトが期待される場所に文字列を割り当てています。私にとって、これはうまくいきます:
from Bio import Seq
from Bio import SeqIO
my_entries = list(SeqIO.parse('my_file.gb', 'genbank'))
my_entry = my_entries[0]
# Make a new Seq object and assing to my_entry.seq. 'TTT' is just an example sequence
my_entry.seq = Seq.Seq('TTT', my_entry.seq.alphabet)
# Write back to file
SeqIO.write(my_entries, 'my_updated_file.gb', 'genbank')
Genbank ファイルにエントリが 1 つしかない場合は、次の使用を検討してSeqIO.read
ください。
my_entry = SeqIO.read('my_file.gb', 'genbank')
my_entry.seq = Seq.Seq('TTT', my_entry.seq.alphabet)
SeqIO.write(my_entry, 'my_updated_file.gb', 'genbank')
または、シーケンスを変更可能なシーケンスに直接変換して、直接操作することもできます。
from Bio import SeqIO
my_entry = list(SeqIO.parse('my_file.gb', 'genbank'))[0]
my_entry.seq = my_entry.seq.tomutable()
my_entry.seq[0] = 'T' # Remember that Genbank position 1 is 0 in seq
my_entry.seq[1] = 'C'
....
SeqIO.write(my_entry, 'my_updated_file.gb', 'genbank')