qBLAST run and Multiple sequence alignment
0
0
Entering edit mode
12 months ago

Hi, I am new to this website and Biopython. I designed the following program and trying to run it with little success as it takes longer to run the program below. I am trying to find matching sequence with an accession number in qblast and parse the .XML results and storing them in a file and finally trying to perform multiple sequence alignment. I run the code below but it takes way too long to run (It does gives valueerror: I/O on closed file, so I used try and exceptions. Can anyone help?

import Bio
from Bio import SearchIO
from Bio.Blast import NCBIWWW
from Bio.Blast import NCBIXML

result_handle = NCBIWWW.qblast("blastp", "nr", ' NP_001090682.1', entrez_query='Xenopus[ORGN]', hitlist_size=5)
with open("my_blast5.xml", "w") as out_handle:
    out_handle.write(result_handle.read())
    result_handle.close()
blast_qresult = SearchIO.read("my_blast5.xml", "blast-xml")
 print(blast_qresult)
for Hits in blast_qresult:
     for hit in Hits:
          print(hit)
          print()


import itertools
import xml.etree.ElementTree as ET


tree = ET.parse('my_blast5.xml')
root = tree.getroot()
import sys


olp = tree.iter("Hit_accession")
mylist = [t.text for t in olp]
ptp= tree.iter('Hsp_hseq')
mylist1 = [t.text for t in ptp]

mylist3 = [ele.replace('-','') for ele in mylist1] 

with open("test1.txt", "a") as sys.stdout:
    print('>'+mylist[0],'\n'+ mylist3[0])
    print('>'+mylist[1],'\n'+ mylist3[1])
    print('>'+mylist[2],'\n'+ mylist3[2])
    print('>'+mylist[3],'\n'+ mylist3[3])
    print('>'+mylist[4],'\n'+ mylist3[4])
    print('>'+'Epitope'+ '\n'+'MVKLIESKEAFQEALAAAGDKLVVVDFSATWCGPCK')

from Bio.Align.Applications import ClustalwCommandline
from Bio import AlignIO
try:

    cline = ClustalwCommandline("clustalw2", infile="test1.txt")

    clustalw_exe = r"C:\Users\XYZ\Downloads\clustalw2.exe"
    clustalw_cline = ClustalwCommandline(clustalw_exe, infile="test1.txt")
        # assert os.path.isfile(clustalw_exe), "Clustal_W executable is missing"
    stdout, stderr = clustalw_cline()


    ClustalAlign = AlignIO.read("test1.aln", "clustal")

except ValueError:
    pass
sequence alignment qblast .XML parse • 437 views
ADD COMMENT

Login before adding your answer.

Traffic: 2923 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6