Biopython: استخراج معرفات التسلسل من ملف إخراج الانفجار
-
18-09-2019 - |
سؤال
لدي ملف إخراج الانفجار بتنسيق XML. إنه 22 تسلسل استعلام مع 50 زيارة تم الإبلاغ عنها من كل تسلسل. وأريد استخراج جميع الزيارات 50x22. هذا هو الرمز الذي لدي حاليا، لكنه يستخرج فقط 50 يضرب من الاستعلام الأول.
from Bio.Blast import NCBIXM
blast_records = NCBIXML.parse(result_handle)
blast_record = blast_records.next()
save_file = open("/Users/jonbra/Desktop/my_fasta_seq.fasta", 'w')
for alignment in blast_record.alignments:
for hsp in alignment.hsps:
save_file.write('>%s\n' % (alignment.title,))
save_file.close()
شخص ما لديه أي اقتراحات لاستخراج كل الزيارات؟ أعتقد أنني يجب أن أستخدم شيئا آخر من محاذاة. آمل أن يكون هذا واضحا. شكرا!
جون
المحلول
هذا يجب أن يحصل على جميع السجلات. الجدة مقارنة مع الأصل هو
for blast_record in blast_records
وهو عبارة عن تصريح بيثون للتكرار من خلال العناصر في كائن "يشبه"، مثل Blast_Records (التحقق من وثائق وحدة CBIXML أظهر أن التحليل () إرجاع بالفعل للماء)
from Bio.Blast import NCBIXM
blast_records = NCBIXML.parse(result_handle)
save_file = open("/Users/jonbra/Desktop/my_fasta_seq.fasta", 'w')
for blast_record in blast_records:
for alignment in blast_record.alignments:
for hsp in alignment.hsps:
save_file.write('>%s\n' % (alignment.title,))
#here possibly to output something to file, between each blast_record
save_file.close()
نصائح أخرى
لقد استخدمت هذا الرمز لاستخراج جميع النتائج
from Bio.Blast import NCBIXML
for record in NCBIXML.parse(open("rpoD.xml")) :
print "QUERY: %s" % record.query
for align in record.alignments :
print " MATCH: %s..." % align.title[:60]
for hsp in align.hsps :
print " HSP, e=%f, from position %i to %i" \
% (hsp.expect, hsp.query_start, hsp.query_end)
if hsp.align_length < 60 :
print " Query: %s" % hsp.query
print " Match: %s" % hsp.match
print " Sbjct: %s" % hsp.sbjct
else :
print " Query: %s..." % hsp.query[:57]
print " Match: %s..." % hsp.match[:57]
print " Sbjct: %s..." % hsp.sbjct[:57]
print "Done"
أو للحصول على معلومات أقل
from Bio.Blast import NCBIXML
for record in NCBIXML.parse(open("NC_003197.xml")) :
#We want to ignore any queries with no search results:
if record.alignments :
print "QUERY: %s..." % record.query[:60]
for align in record.alignments :
for hsp in align.hsps :
print " %s HSP, e=%f, from position %i to %i" \
% (align.hit_id, hsp.expect, hsp.query_start, hsp.query_end)
print "Done"
اعتدت هذا الموقع
http://www2.warwick.ac.uk/fac/sci/moac/currentstudents/peter_cock/pothon/rpsblast/
لا تنتمي إلى StackOverflow