0

間違った .gbk ファイルがあり、次の形式の修正リストがあります。

「ヌクレオチドのアドレス: 正しいヌクレオチド」

1:T
2:C
4:A
63:A
324:G
etc...

正確な元のシーケンスを開いて解析する方法を知っています

list(SeqIO.parse(sys.argv[1], "genbank"))[0].seq 

それを独自のヌクレオチド修正に置き換える方法を知る必要があるだけです. 私はもう試した

seq_records[0].seq = "".join(dna_refseq)

dna_refseq は、ゲノム全体を構成する単なるリストでした

私は文字通り、この特定のアクションをドキュメントやオンラインのどこにも見つけることができません。直感的に、これは biopython ができるはずのことです。

4

1 に答える 1

1

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')
于 2016-04-07T07:05:37.900 に答える