#!/usr/bin/env python3 from Bio import Entrez """ Run elink using the history from a previous search. """ # Initial search, generates history parameters. EQUERY="Fristensky [AUTH] AND Pisum [ORGN]" h1 = Entrez.esearch(db="nuccore", term=EQUERY, usehistory="y", retmode="text", rettype="xml") result1= Entrez.read(h1) h1.close() WebEnv=result1["WebEnv"] QueryKey=result1["QueryKey"] # Use history from initial search to get an esummary h2 = Entrez.esummary(db="nuccore", usehistory="y", WebEnv=WebEnv, query_key=QueryKey, retmode="text", rettype="xml") result2=Entrez.read(h2) h2.close() print(result2[0]["Id"]) # Use history from initial search to get linked proteins h3 = Entrez.elink(dbfrom="nuccore", db="protein", usehistory="y", WebEnv=WebEnv, query_key=QueryKey, retmode="xml", rettype="xml") lines = h3.readlines() #outfile = open("testlink.xml","w") # etree.ElementTree.fromstring needs XML to be one long character string XmlDoc="" for l in lines : # outfile.write(l) XmlDoc = XmlDoc + l #outfile.close() # lxml test from xml import etree tree = etree.ElementTree.fromstring(XmlDoc) doc = tree.getroot() print(doc)