Biopython: استخراج معرفات التسلسل من ملف إخراج الانفجار

StackOverflow https://stackoverflow.com/questions/1684470

سؤال

لدي ملف إخراج الانفجار بتنسيق 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/

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top