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