2016-08-04 25 views
3

Ich versuche, Genübersichten aus der NCBI Entrez Gene-Datenbank abzurufen und zu speichern, und möchte auch die UID behalten, aber obwohl es dort ist, kann ich nicht den richtigen Weg finden, es aus den Ergebnissen zu holen. Siehe unten (NB: offensichtlich nicht meine gültige E-Mail-Adresse verwendet hier):Entrez.esummary ('Gen' db): Wie UID aus DictElement abrufen?

from Bio import Entrez 
Entrez.email = "[email protected]" 
handle = Entrez.esummary(db="gene", id="79001") 
record = Entrez.read(handle) 
handle.close() 
for k in record["DocumentSummarySet"]['DocumentSummary'][0].keys(): 
    print k 

Dies sind die Tasten:

Status NomenclatureSymbol, OtherDesignations, Mim, Namens-, NomenclatureName, CurrentID, GenomicInfo, OtherAliases , Zusammenfassung, GeneWeight, GeneticSource, MapLocation, ChrSort, ChrStart, LocationHist, Organismus, NomenclatureStatus, Chromosome, Beschreibung

Aber wenn man sich das Element aussehen selbst (record["DocumentSummarySet"]['DocumentSummary'][0]), werden Sie feststellen, 012.am Ende:

DictElement(
    {u'Status': '0', 
    u'NomenclatureSymbol': 'VKORC1', 
    u'OtherDesignations': 'phylloquinone epoxide reductase', 
    u'Mim': ['608547'], 
    u'Name': 'VKORC1', 
    u'NomenclatureName': 'vitamin K epoxide reductase complex subunit 1', 
    u'CurrentID': '0', 
    u'GenomicInfo': [ 
     {u'ChrAccVer': 'NC_000016.10', 
      u'ChrLoc': '16', 
      u'ExonCount': '4', 
      u'ChrStop': '31090841', 
      u'ChrStart': '31094998'}], 
    u'OtherAliases': 'EDTP308, MST134, MST576, VKCFD2, VKOR', 
    u'Summary': 'This gene [...] variants. [provided by RefSeq, Aug 2015]', 
    u'GeneWeight': '46017', 
    u'GeneticSource': 'genomic', 
    u'MapLocation': '16p11.2', 
    u'ChrSort': '16', 
    u'ChrStart': '31090841', 
    u'LocationHist': [ 
     {u'AssemblyAccVer': 'GCF_000001405.33', 
     u'ChrAccVer': 'NC_000016.10', 
     u'AnnotationRelease': '108', 
     u'ChrStop': '31090841', 
     u'ChrStart': '31094998'}], 
    u'Organism': { 
     u'CommonName': 'human', 
     u'ScientificName': 'Homo sapiens', 
     u'TaxID': '9606'}, 
    u'NomenclatureStatus': 'Official', 
    u'Chromosome': '16', 
    u'Description': 'vitamin K epoxide reductase complex subunit 1'}, 
    attributes={u'uid': u'79001'}) 

aber ‚Attribute‘ ist nicht eine der Tasten. Ich muss noch einen Weg finden, um auf die UID zuzugreifen, die in Attributen gespeichert ist. Hätte jemand eine Idee?

Antwort

3

attributes ist nur ein Attribut des DictElement, und Sie es mit dem Standardpunkt zugreifen:

record["DocumentSummarySet"]['DocumentSummary'][0].attributes 
+0

Ja, es funktioniert! Vielen Dank, es hat mich verrückt gemacht; Ich wusste nicht, dass DictElements Attribute hatte. Danke noch einmal. –

+0

Und danke für die Bearbeitung, ich werde wissen, wie man beim nächsten Mal richtig vorgeht. –

+0

@SBourgeois, ich musste einen Blick auf den Code werfen, um ihn zu finden. https://github.com/biopython/biopython/blob/master/Bio/Entrez/Parser.py#L96 – xbello