2016-04-07 13 views
0

Sorunun bir .gbk dosyası var ve benBir genbank dosyasının sırasını biyopthon kullanarak YENİ bir genbank dosyasına nasıl düzenlerim VE SAVE?

"Nuclotide Adresi: Doğru nükleotid" formatına uygun olarak düzeltmeler listesi var ben açmak ve kesin ayrıştırmak bilen

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

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

orijinal dizisi sadece kendi nükleotid düzeltmeler ile değiştirmek bilmemiz gerekir. dna_refseq bir bütün genomu teşkil sadece bir liste oldu Nerede

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

denedim

Tam anlamıyla her yerde belgelerinde veya online bu özel eylemi bulamıyor ve sezgisel, bu bir şey olduğunu biopython yetenekli olmalıdır.

cevap

1

Bio.Seq nesnesinin beklendiği bir dize atandınız. Benim için bu işleri: En Gen Bankası dosya yalnızca bir giriş varsa

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') 

, sen SeqIO.read kullanmayı düşünebilirsiniz:

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') 

Alternatif olarak, doğrudan bir değişken dizisi haline dizisini dönüştürmek ve manipüle edebilir doğrudan:

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') 
+0

'TTT' nedir? – Tom

+0

Ve nasıl bir genbank'a kaydetmeye geri dönebilirim? – Tom

+0

@Tom: ''TTT' 'sadece bir sıra için bir örnek, sizin durumunuzda güncellenmiş sıranızı buraya koyabilirsiniz. Bir dosyaya yazma, “SeqIO.write()' ile yapılır. Cevabımı düzenledim. – Markus

İlgili konular