gravatar for gurilion007

2 hours ago by

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:UsersXYZDownloadsclustalw2.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

link

modified 2 hours ago

written
2 hours ago
by

gurilion0070



Source link