Bioinformatica Entrez Utilities Dr. Giuseppe Pigola – [email protected] Entrez-Utilities Per favorire lo sviluppo di servizi basati su Entrez, NCBI mette a disposizione le Entrez Programming Utilities (E-Utilities), insieme di script server side per l’accesso remoto alle proprie banche dati; Ad ogni possibile manipolazione dei dati e associata una specifica applicazione; le richieste vengono effettuate richiamando appositi URL cui passare i dati di input. http://www.ncbi.nlm.nih.gov/entrez/query/static/eutils_help.html 2 Bioinformatica Entrez-Utilities ESearch che ha il compito di restituire l'elenco degli ID associati ai documenti cercati; Per ottenere le informazioni dettagliate sui dati ricercati (es. sugli articoli) si utilizza EFetch, passando in input l'elenco dei PMID; Per ottenere soltanto un summary degli articoli si utilizza Esummary; Per controllare l'eventuale esistenza di articoli aggiuntivi collegati a quelli reperiti si utilizza Elink; EInfo restituisce delle informazioni statistiche sul database (ultimo aggiornamento, numero di record, ecc.).; ESpell viene invece usato per suggerimenti di spelling. 3 Bioinformatica Entrez-Utilities http://www.ncbi.nlm.nih.gov/sites/entrez?db=pubmed&cmd=searc h&term=apoptosis ... Si invia una richiesta di esearch esearch... File XML contenente gli ID dei docs + info Per impostare i passaggi successivi ... Si invia una richiesta di fetch sui dati estrapolati con la esearch efetch... ... ... DB (es. pubmed) Record set ... 4 Bioinformatica Entrez-Utilities http://eutils.ncbi.nlm.nih.gov/entrez/eutils/ eutil.fcgi? L’URL Base esearch.fcgi? egquery.fcgi? esummary.fcgi? einfo.fcgi? elink.fcgi? efetch.fcgi? epost.fcgi? 5 Bioinformatica Parametri dell’URL BASE/ esearch.fcgi? db=nucleotide&term=mouse[orgn] Passaggio tramite GET, i parametri sono separati dal simbolo & db = nucleotide term = mouse[orgn] 6 Bioinformatica Il sistema Entrez Entrez Core Engine • Vengono estrapolati gli UID che soddisfano una query • Possono essere ottenuti dei brevi sommari per ogni UID User Entrez Database Entrez History Server • Immagazzina le history delle search effettuate su ogni Entrez db 7 • Consente di ottenere anche record formattati per ogni UID • Per ogni UID Possono essere ottenuti anche dei link Bioinformatica Entrez Core Entrez Core Engine • Trova gli UID che corrispondono ad una data query • Visualizza I summary per ogni UID EGQuery ESearch ESummary Funzionano su tutti i DB 8 text query EGQuery count of UIDs text query ESearch set of UIDs set of UIDs ESummary DocSums Bioinformatica EGQuery Ricerca globale su tutti i database Scopo: Trovare il numero di record che soddisfano una data query term INPUT Entrez text query BASE/ egquery.fcgi? term=mouse[orgn] OUTPUT 9 XML Numero di record che soddifano la query all’interno di ogni database Bioinformatica EGQuery Output 10 Bioinformatica ESearch Effettua una ricerca su uno specifico DB INPUT db term Entrez database to search Entrez text query BASE/ esearch.fcgi? db=nucleotide&term=mouse[orgn] OUTPUT 11 XML •Numero totale di record che soddisfano la query •Lista parziale degli UID •Traduzione del termine Bioinformatica ESearch Output – UIDs Total number of records found &retmax &retstart first record = &retstart Matching UIDs quantity = &retmax 12 Bioinformatica Parametri per il retrive retstart First record to retrieve from UID set (default = 0) retmax Number of records to retrieve from UID set &retmax=4 (84, 23, 19, 55, 20, 96, 73) (84, 23, 19, 55) &retstart=2&retmax=4 (84, 23, 19, 55, 20, 96, 73) 13 (19, 55, 20, 96) Bioinformatica ESearch Output – Traduzione mouse[orgn] “Mus musculus”[Organism] 14 Bioinformatica ESearch - Esempi Ricerca in pubmed il termine Cancer per entry degli ultimi 60 giorni e recupera i primi 100 ID e traduzioni usando la history: http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&term=cancer&reldate=60&datetyp e=edat&retmax=100&usehistory=y Ricerca in PubMed PNAS Volume 97, e recupera 6 ID iniziando dalla 7-ma entry: http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&term=PNAS[ta]+AND+97[vi]&retst art=6&retmax=6&tool=biomed3 Ricerca il termine obstetrics nelle riviste: http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=journals&term=obstetrics Ricerca in PubMed Central stem cells solo in articoli fulltext: http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pmc&term=stem+cells+AND+free+fulltext[fi lter] Ricerca in Nucleotide in base a una proprietà della sequenza: http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=nucleotide&term=biomol+trna[prop] Ricerca in Protein in base al peso molecolare: http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=protein&term=200020[molecular+weight] 15 Bioinformatica ESummary Scopo INPUT •Utile quando EFetch non è supportata dal db db Entrez database to search id Set of UIDs BASE/ esummary.fcgi? db=nucleotide&id=49619226,49615287 OUTPUT 16 XML Breve summary per ogni documento ottenuto Bioinformatica ESummary Output 17 Bioinformatica ESummary - Esempi In Protein visualizza i record 28800982 e 28628843 in xml retrieval mode: http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?db=protein&id=28800982,2862 8843&retmode=xml In Nucleotide visualizza i record 28864546 e 28800981 in xml retrieval mode: http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?db=nucleotide&id=28864546,28 800981&retmode=xml In Structure visualizza i record19923 e 12120 in xml retrieval mode: http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?db=structure&id=19923,12120& retmode=xml In Taxonomy dvisualizza i record 9913 e 30521 in xml retrieval mode: http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?db=taxonomy&id=9913,30521& retmode=xml In UniSTS visualizza i record 254085 e254086 in xml retrieval mode: http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?db=unists&id=254085,254086& retmode=xml 18 Bioinformatica Entrez Database • Informazioni specifiche su un DB Entrez Databases EInfo • Record dettagliati a partire dagli UID EFetch ELink • Link Entrez per ogni UID Sono legate al particolare db dove vengono eseguite Entrez database set of UIDs set of UIDs in db A 19 EInfo EFetch ELink database statistics Formatted Data set of UIDs in db B Bioinformatica EInfo INPUT db Entrez database to search BASE/ einfo.fcgi? db=nucleotide OUTPUT 20 XML •Statistiche generali di indicizzazione •Lista dei campi di indicizzazione e conteggio dei record •Lista dei link agli altri db Bioinformatica EFetch Scopo: INPUT Effettuare il download dei record db Entrez database to search id Set of UIDs BASE/ efetch.fcgi? db=nucleotide&id=49619226,49615287 OUTPUT 21 Varied Record formattati Bioinformatica Database che supportano la EFetch Literature Sequences Other PubMed Journals PubMed Central OMIM CoreNucleotide CoreEST CoreGSS Protein Genome Popset SNP Gene Taxonomy 22 Bioinformatica Parametri di formattazione delle efetch 23 rettype Tipi di record ritornati: (flat file, FASTA, EST, accession, etc.) retmode Formato dei file ritornati: (text, HTML, XML) Bioinformatica ELink Estrapola gli UID nel db B collegati ad un insieme di UID nel db A • Trovare dati correlati in un altro db database • Trovare i vicini all’interno del db Scopo: INPUT dbfrom db Entrez database to link from Entrez database(s) to link to; Può essere una lista id List of UIDs cmd ELink command mode (default = neighbor) BASE/ elink.fcgi? dbfrom=protein&db=pubmed&id=148762980 OUTPUT 24 XML Insieme di UID linkati Bioinformatica ELink Output &cmd=neighbor Restituisce tutti gli UIDs correlati (pssono essere migliaia…!) &cmd=neighbor_history Restituisce solo WebEnv e query keys 25 Bioinformatica Nomi Link Tutti i possibili nomi di link per un db sono dati da EInfo I nomi dei link per una data chiamata sono presenti nel file ELink XML linkname Nome del link (se omesso, saranno considerati tutti i link) gene_protein Links da gene a protein protein_gene Links da protein a gene gene_snp Links da gene a snp gene_snp_genegenotype Links da gene a snps che hanno dati di genotype genome_nucleotide_comp_mrna Links da un chromosoma a tutti i mRNAs trascritti da geni di quel cromosoma 26 Bioinformatica Specificare un nome dbfrom=protein&db=pubmed&id=148762980 dbfrom=protein&db=pubmed &id=148762980&linkname=protein_pubme d 27 Bioinformatica Self link UID linkati ad altri UID nello stesso DB con i corrispondenti score di similarità dbfrom = db BASE/ elink.fcgi? dbfrom=protein&db=protein &id=15718680&term=lemurs[orgn] term Entrez Query Database Supportati: pubmed cdd nucleotide geo protein gds domains 28 Bioinformatica Self link Self hit 29 Bioinformatica Passare un insieme di UID a Link dbfrom=gene&db=protein&id=G1,G2,G3 G1 P1 30 P2 G2 P3 G3 P4 P5 P6 Bioinformatica Passare più insiemi di UID al Link dbfrom=gene&db=protein&id=G1&id=G2&id=G3 G1 P1 31 P2 G2 P3 G3 P4 P5 P6 Bioinformatica ELink: Fork lungo il cammino CDD protein Entrez query nucleotide Formatted Data Formatted Data gene Formatted Data SNP 32 DocSums Formatted Data Bioinformatica History Server Entrez History Server EPost Memorizza la lista degli UID ottenuti da ricerche precedenti ESearch ELink Locazione degli UID memorizzati, più due parametri: WebEnv query_key 33 Cookie assegnato dall’History Server Intero, equivalente all’History number sul web Bioinformatica EPost Invia alla history un file contenente un elenco di ID per un uso futuro. Url BASE: http://eutils.ncbi.nlm.nih.gov/entrez/eutils/epost.fcgi? Database: db=database name IDs: id= 11877539,11822933,11871444 34 Bioinformatica EPost - Esempio Esempio su PubMed: http://eutils.ncbi.nlm.nih.gov/entrez/eutils/epost.fcgi?db=pubmed&id=11237011 Risultato: <ePostResult> <QueryKey>1</QueryKey> <WebEnv>NCID_1_79012274_130.14.22.101_9001_1302171308_1170649744</WebEnv> </ePostResult> QueryKey (come per l’interfaccia web) è il numero della query. WebEnv è un cookie che può essere utilizzato successivamente con EFetch, ELink, Esummary per accedere alla history (assieme a query_key). 35 Bioinformatica ESearch – Elink e la history Anche ESearch può depositare dei dati nella history usando il parametro: usehistory=y Anche ELink può depositare dei dati nella history usando il parametro: cmd= neighbor_history 36 Bioinformatica Recuperare i dati dalla history Quando si usa: ESearch ESummary EFetch ELink Si possono recuperare dati dalla history e formulare nuove query utilizzando i parametri (esempio): WebEnv=WgHmIcDG]B query_key=6 Dove i valori sono stati recuperati da una precedente EPost,ESearch,Elink,EFetch. 37 Bioinformatica Accedere alla History WebEnv EPost ESearch query_key ESearch usehistory=y ELink Entrez History Server ESummary EFetch ELink cmd=neighbor_history 38 Bioinformatica Protocollo Entrez query ESearch usehistory=y ESummary UID List Entrez History Server EPost EFetch WebEnv ELink UID List 39 query_key cmd=neighbor_history Bioinformatica PHP e XML function getData($database,$cookie,$qkey,$retmax,$retstart,$returnmode){ $base ='http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?‘; $params = array( 'db' => $database, 'retmode' => $returnmode, 'query_key' => $qkey, 'WebEnv' => $cookie, 'retmax' => $retmax, 'retstart' => $retstart, ); $url = $base. 'efetch.fcgi?' . http_build_query($params); $output = file_get_contents($url); } http://www.php.net/manual/en/refs.xml.php 40 Bioinformatica Pipeline di base ESearch ELink ELink ESummary EPost ELink ELink EFetch ELink 41 ELink Bioinformatica