如何使用 biopython 编辑 genbank 文件的序列并将其保存到新的 genbank 文件中?
How do I edit AND SAVE the sequence of a genbank file to a NEW genbank file using biopython?
我有一个错误的 .gbk 文件,并且我有遵循
格式的更正列表
"Address of Nuclotide: correct nucleotide"
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 应该能够做到的。
您正在分配一个需要 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 文件只有一个条目,您可以考虑使用 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')
我有一个错误的 .gbk 文件,并且我有遵循
格式的更正列表"Address of Nuclotide: correct nucleotide"
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 应该能够做到的。
您正在分配一个需要 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 文件只有一个条目,您可以考虑使用 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')