Post on 01-Feb-2016
description
BioinformaticaEntrez Utilities
Dr. Giuseppe Pigola – pigola@dmi.unict.it
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.
Entrez-Utilities
http://www.ncbi.nlm.nih.gov/entrez/query/static/eutils_help.html
Bioinformatica2
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.
Entrez-Utilities
Bioinformatica3
Entrez-Utilities
DB (es. pubmed)
...Si invia una richiesta di esearch
File XML contenente gli ID dei docs + infoPer impostare i passaggi successivi
Si invia una richiesta di fetch sui dati estrapolati con la esearch
esearch...
efetch...
...
...
Record set......
http://www.ncbi.nlm.nih.gov/sites/entrez?db=pubmed&cmd=search&term=apoptosis
Bioinformatica4
L’URL Base
http://eutils.ncbi.nlm.nih.gov/entrez/eutils/
esearch.fcgi?
egquery.fcgi? esummary.fcgi?
efetch.fcgi?
einfo.fcgi? elink.fcgi?
epost.fcgi?
eutil.fcgi?
Entrez-Utilities
Bioinformatica5
Parametri dell’URL
esearch.fcgi?BASE/ db=nucleotide&term=mouse[orgn]
Passaggio tramite GET, i parametri sono separati dal simbolo &
db = nucleotideterm = mouse[orgn]
Bioinformatica6
Il sistema Entrez
Entrez Core
Engine
• Vengono estrapolati gli UID che soddisfano una query• Possono essere ottenuti dei brevi sommari per ogni UID
Entrez Database
• Consente di ottenere anche record formattati per ogni UID• Per ogni UID Possono essere ottenuti anche dei link
Entrez History Server
• Immagazzina le history delle search effettuate su ogni Entrez db
User
Bioinformatica7
Entrez Core
Entrez Core
Engine
• Trova gli UID che corrispondono ad una data query
• Visualizza I summary per ogni UID
EGQuery
ESearch
ESummary
EGQuery
ESearch
ESummaryset of UIDs
count of UIDs
set of UIDs
DocSums
text query
text query
Funzionano su tutti i DB
Bioinformatica8
EGQuery
Ricerca globale su tutti i database
INPUT term Entrez text query
OUTPUT XML Numero di record che soddifano la query all’interno di ogni database
egquery.fcgi?BASE/ term=mouse[orgn]
Scopo: Trovare il numero di record che soddisfano una data query
Bioinformatica9
EGQuery Output
Bioinformatica10
Effettua una ricerca su uno specifico DB
INPUT db Entrez database to search
OUTPUT XML•Numero totale di record che soddisfano la query•Lista parziale degli UID•Traduzione del termine
esearch.fcgi?BASE/ db=nucleotide&term=mouse[orgn]
term Entrez text query
ESearch
Bioinformatica11
Total number of records found
&retmax
&retstart
Matching UIDs
first record = &retstart
quantity = &retmax
ESearch Output – UIDs
Bioinformatica12
Parametri per il retrive
retstart
retmax
First record to retrieve from UID set (default = 0)
Number of records to retrieve from UID set
(84, 23, 19, 55, 20, 96, 73)
(84, 23, 19, 55, 20, 96, 73)
&retstart=2&retmax=4
&retmax=4
(84, 23, 19, 55)
(19, 55, 20, 96)
Bioinformatica13
ESearch Output – Traduzione
mouse[orgn]
“Mus musculus”[Organism]
Bioinformatica14
ESearch - EsempiRicerca 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]
Bioinformatica15
ESummary
INPUT db Entrez database to search
OUTPUT XML Breve summary per ogni documento ottenuto
esummary.fcgi?BASE/ db=nucleotide&id=49619226,49615287
id Set of UIDs
•Utile quando EFetch non è supportata dal dbScopo
Bioinformatica16
ESummary Output
Bioinformatica17
ESummary - EsempiIn 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
Bioinformatica18
Entrez Database
Entrez Databases
EInfo
EFetch
ELink
• Informazioni specifiche su un DB
• Record dettagliati a partire dagli UID
• Link Entrez per ogni UIDSono legate al particolare db dove vengono eseguite
EInfo
EFetch
ELinkset of UIDs in db A
database statistics
set of UIDs in db B
Formatted Data
Entrez database
set of UIDs
Bioinformatica19
INPUT db Entrez database to search
OUTPUT XML•Statistiche generali di indicizzazione•Lista dei campi di indicizzazione e conteggio dei record•Lista dei link agli altri db
einfo.fcgi?BASE/ db=nucleotide
EInfo
Bioinformatica20
EFetch
INPUT db Entrez database to search
OUTPUT Varied Record formattati
efetch.fcgi?BASE/ db=nucleotide&id=49619226,49615287
id Set of UIDs
Effettuare il download dei recordScopo:
Bioinformatica21
Database che supportano la EFetch
Literature
PubMedJournalsPubMed CentralOMIM
Sequences
CoreNucleotideCoreESTCoreGSSProteinGenomePopsetSNP
Other
GeneTaxonomy
Bioinformatica22
Parametri di formattazione delle efetch
rettype
retmode
Tipi di record ritornati:(flat file, FASTA, EST, accession, etc.)
Formato dei file ritornati:(text, HTML, XML)
Bioinformatica23
ELinkEstrapola gli UID nel db B collegati ad un insieme di UID nel db A
INPUT
db Entrez database(s) to link to; Può essere una lista
OUTPUT XML Insieme di UID linkati
elink.fcgi?BASE/ dbfrom=protein&db=pubmed&id=148762980
id List of UIDs
dbfrom Entrez database to link from
cmd ELink command mode (default = neighbor)
• Trovare dati correlati in un altro db database• Trovare i vicini all’interno del db
Scopo:
Bioinformatica24
ELink Output&cmd=neighbor
&cmd=neighbor_history
Restituisce tutti gli UIDs correlati(pssono essere migliaia…!)
Restituisce solo WebEnv e query keys
Bioinformatica25
Nomi LinkTutti 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
gene_protein Links da gene a protein
protein_gene Links da protein a gene
Links da gene a snpgene_snp
gene_snp_genegenotype Links da gene a snps che hannodati di genotype
genome_nucleotide_comp_mrna Links da un chromosoma a tutti imRNAs trascritti da geni di quel cromosoma
linkname Nome del link (se omesso, saranno considerati tutti i link)
Bioinformatica26
Specificare un nomedbfrom=protein&db=pubmed&id=148762980
dbfrom=protein&db=pubmed&id=148762980&linkname=protein_pubmed
Bioinformatica27
UID linkati ad altri UID nello stesso DB coni corrispondenti score di similarità
dbdbfrom =
elink.fcgi?BASE/ dbfrom=protein&db=protein&id=15718680&term=lemurs[orgn]
term Entrez Query
Database Supportati:pubmed cddnucleotide geoprotein gdsdomains
Self link
Bioinformatica28
Self link
Self hit
Bioinformatica29
Passare un insieme di UID a Link
G1 G2 G3
P1 P2 P3 P4 P5 P6
dbfrom=gene&db=protein&id=G1,G2,G3
Bioinformatica30
Passare più insiemi di UID al Link
G1 G2 G3
P1 P2 P3 P4 P5 P6
dbfrom=gene&db=protein&id=G1&id=G2&id=G3
Bioinformatica31
ELink: Fork lungo il cammino
nucleotideEntrezquery
FormattedData
FormattedData
gene
protein
FormattedData
SNP
CDD
FormattedData
DocSums
Bioinformatica32
History ServerEntrez
History Server
Memorizza la lista degli UID ottenuti da ricerche precedenti ESearch
EPost
Locazione degli UID memorizzati, più due parametri:
WebEnv
query_key
Cookie assegnato dall’History Server
Intero, equivalente all’History number sul web
ELink
Bioinformatica33
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?http://eutils.ncbi.nlm.nih.gov/entrez/eutils/epost.fcgi?
db=database name db=database name
id= 11877539,11822933,11871444id= 11877539,11822933,11871444
Bioinformatica34
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>
<ePostResult> <QueryKey>1</QueryKey> <WebEnv>NCID_1_79012274_130.14.22.101_9001_1302171308_1170649744</WebEnv></ePostResult>
Bioinformatica35
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=yusehistory=y
cmd= neighbor_history cmd= neighbor_history
Bioinformatica36
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 ELinkEFetch
Bioinformatica37
Accedere alla History
Entrez History Server
EPost
ESearch
usehistory=y
ELink
cmd=neighbor_history
ESearch
ESummary
ELink
EFetch
WebEnv
query_key
Bioinformatica38
Protocollo
ESearch
EPost
ESummary
EFetch
ELink
Entrez History Server
UID List
Entrezquery
WebEnv
query_key
UID List
usehistory=y
cmd=neighbor_history
Bioinformatica39
PHP e XMLfunction 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
Bioinformatica40
Pipeline di base
ESearch
EPost
ESummary
EFetch
ELink ELink
ELink ELink
ELinkELink
Bioinformatica41