Bioinformatica Entrez Utilities Dr. Giuseppe Pigola – pigola@dmi.unict.it
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 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. Bioinformatica
Entrez-Utilities http://www.ncbi.nlm.nih.gov/sites/entrez?db=pubmed&cmd=searc h&term=apoptosis ... Si invia una richiesta di esearch DB (es. pubmed) 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... ... Record set ... ... Bioinformatica
Entrez-Utilities L’URL Base 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? 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] Bioinformatica
Il sistema Entrez User Entrez Core Engine Entrez History Server Vengono estrapolati gli UID che soddisfano una query Possono essere ottenuti dei brevi sommari per ogni UID User Entrez Database Entrez History Server Consente di ottenere anche record formattati per ogni UID Per ogni UID Possono essere ottenuti anche dei link Immagazzina le history delle search effettuate su ogni Entrez db Bioinformatica
Entrez Core Entrez Core Engine EGQuery ESearch ESummary EGQuery Trova gli UID che corrispondono ad una data query Visualizza I summary per ogni UID ESearch ESummary Funzionano su tutti i DB text query EGQuery count of UIDs text query ESearch set of UIDs set of UIDs ESummary DocSums Bioinformatica
EGQuery INPUT OUTPUT term BASE/ egquery.fcgi? term=mouse[orgn] XML Ricerca globale su tutti i database Scopo: Trovare il numero di record che soddisfano una data query INPUT term Entrez text query BASE/ egquery.fcgi? term=mouse[orgn] Numero di record che soddifano la query all’interno di ogni database OUTPUT XML Bioinformatica
EGQuery Output Bioinformatica
ESearch INPUT OUTPUT db term db=nucleotide&term=mouse[orgn] BASE/ Effettua una ricerca su uno specifico DB INPUT db Entrez database to search term Entrez text query db=nucleotide&term=mouse[orgn] BASE/ esearch.fcgi? Numero totale di record che soddisfano la query Lista parziale degli UID Traduzione del termine OUTPUT XML Bioinformatica
ESearch Output – UIDs Total number of records found &retmax &retstart first record = &retstart Matching UIDs quantity = &retmax 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) (19, 55, 20, 96) Bioinformatica
ESearch Output – Traduzione mouse[orgn] “Mus musculus”[Organism] 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&datetype=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]&retstart=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[filter] 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] Bioinformatica
ESummary INPUT OUTPUT db id BASE/ esummary.fcgi? Scopo Utile quando EFetch non è supportata dal db INPUT db Entrez database to search id Set of UIDs BASE/ esummary.fcgi? db=nucleotide&id=49619226,49615287 OUTPUT XML Breve summary per ogni documento ottenuto Bioinformatica
ESummary Output 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,28628843&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,28800981&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 Bioinformatica
Entrez Database EInfo EFetch ELink EInfo EFetch ELink Entrez Databases Informazioni specifiche su un DB Record dettagliati a partire dagli UID Link Entrez per ogni UID EInfo EFetch ELink Sono legate al particolare db dove vengono eseguite Entrez database EInfo database statistics set of UIDs EFetch Formatted Data set of UIDs in db A ELink set of UIDs in db B Bioinformatica
EInfo INPUT OUTPUT db BASE/ einfo.fcgi? db=nucleotide XML Entrez database to search BASE/ einfo.fcgi? db=nucleotide Statistiche generali di indicizzazione Lista dei campi di indicizzazione e conteggio dei record Lista dei link agli altri db OUTPUT XML Bioinformatica
EFetch INPUT OUTPUT db id BASE/ efetch.fcgi? Scopo: Effettuare il download dei record INPUT db Entrez database to search id Set of UIDs BASE/ efetch.fcgi? db=nucleotide&id=49619226,49615287 OUTPUT Varied Record formattati Bioinformatica
Database che supportano la EFetch Literature PubMed Journals PubMed Central OMIM Sequences CoreNucleotide CoreEST CoreGSS Protein Genome Popset SNP Other Gene Taxonomy Bioinformatica
Parametri di formattazione delle efetch rettype Tipi di record ritornati: (flat file, FASTA, EST, accession, etc.) retmode Formato dei file ritornati: (text, HTML, XML) Bioinformatica
ELink INPUT OUTPUT dbfrom db id cmd BASE/ elink.fcgi? Estrapola gli UID nel db B collegati ad un insieme di UID nel db A Scopo: Trovare dati correlati in un altro db database Trovare i vicini all’interno del db dbfrom Entrez database to link from INPUT db 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 XML Insieme di UID linkati Bioinformatica
&cmd=neighbor_history ELink Output &cmd=neighbor Restituisce tutti gli UIDs correlati (pssono essere migliaia…!) &cmd=neighbor_history Restituisce solo WebEnv e query keys Bioinformatica
Nomi Link linkname gene_protein protein_gene gene_snp 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 Links da un chromosoma a tutti i mRNAs trascritti da geni di quel cromosoma genome_nucleotide_comp_mrna Bioinformatica
Specificare un nome dbfrom=protein&db=pubmed&id=148762980 &id=148762980&linkname=protein_pubmed Bioinformatica
Self link = dbfrom db BASE/ elink.fcgi? dbfrom=protein&db=protein 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 Bioinformatica
Self link Self hit Bioinformatica
Passare un insieme di UID a Link dbfrom=gene&db=protein&id=G1,G2,G3 G1 G2 G3 P1 P2 P3 P4 P5 P6 Bioinformatica
Passare più insiemi di UID al Link dbfrom=gene&db=protein&id=G1&id=G2&id=G3 G1 G2 G3 P1 P2 P3 P4 P5 P6 Bioinformatica
ELink: Fork lungo il cammino CDD DocSums protein Formatted Data Entrez query nucleotide Formatted Data gene Formatted Data SNP Formatted Data Bioinformatica
History Server Entrez History Server EPost ESearch ELink WebEnv Memorizza la lista degli UID ottenuti da ricerche precedenti ESearch ELink Locazione degli UID memorizzati, più due parametri: WebEnv Cookie assegnato dall’History Server query_key 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: Database: IDs: http://eutils.ncbi.nlm.nih.gov/entrez/eutils/epost.fcgi? db=database name id= 11877539,11822933,11871444 Bioinformatica
EPost - Esempio Esempio su PubMed: http://eutils.ncbi.nlm.nih.gov/entrez/eutils/epost.fcgi?db=pubmed&id=11237011 Risultato: 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). <ePostResult> <QueryKey>1</QueryKey> <WebEnv>NCID_1_79012274_130.14.22.101_9001_1302171308_1170649744</WebEnv> </ePostResult> Bioinformatica
ESearch – Elink e la history Anche ESearch può depositare dei dati nella history usando il parametro: Anche ELink può depositare dei dati nella history usando il parametro: usehistory=y cmd= neighbor_history Bioinformatica
Recuperare i dati dalla history Quando si usa: 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. ESearch ESummary EFetch ELink Bioinformatica
Accedere alla History Entrez History Server WebEnv ESearch EPost query_key Entrez History Server ESummary ESearch usehistory=y EFetch ELink ELink cmd=neighbor_history Bioinformatica
Protocollo Entrez History Server ESearch usehistory=y ESummary EFetch query ESearch usehistory=y ESummary UID List Entrez History Server EFetch EPost WebEnv ELink UID List query_key cmd=neighbor_history Bioinformatica
PHP e XML http://www.php.net/manual/en/refs.xml.php 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 Bioinformatica
Pipeline di base ESearch ELink ELink ESummary EPost ELink ELink EFetch Bioinformatica