Bioinformatica Entrez Utilities Dr. Giuseppe Pigola – [email protected].

41
Bioinformatica Entrez Utilities Dr. Giuseppe Pigola – [email protected]

Transcript of Bioinformatica Entrez Utilities Dr. Giuseppe Pigola – [email protected].

Page 1: Bioinformatica Entrez Utilities Dr. Giuseppe Pigola – pigola@dmi.unict.it.

BioinformaticaEntrez Utilities

Dr. Giuseppe Pigola – [email protected]

Page 2: Bioinformatica Entrez 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

Page 3: Bioinformatica Entrez Utilities Dr. Giuseppe Pigola – pigola@dmi.unict.it.

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

Page 4: Bioinformatica Entrez Utilities Dr. Giuseppe Pigola – pigola@dmi.unict.it.

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

Page 5: Bioinformatica Entrez Utilities Dr. Giuseppe Pigola – pigola@dmi.unict.it.

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

Page 6: Bioinformatica Entrez Utilities Dr. Giuseppe Pigola – pigola@dmi.unict.it.

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

Page 7: Bioinformatica Entrez Utilities Dr. Giuseppe Pigola – pigola@dmi.unict.it.

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

Page 8: Bioinformatica Entrez Utilities Dr. Giuseppe Pigola – pigola@dmi.unict.it.

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

Page 9: Bioinformatica Entrez Utilities Dr. Giuseppe Pigola – pigola@dmi.unict.it.

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

Page 10: Bioinformatica Entrez Utilities Dr. Giuseppe Pigola – pigola@dmi.unict.it.

EGQuery Output

Bioinformatica10

Page 11: Bioinformatica Entrez Utilities Dr. Giuseppe Pigola – pigola@dmi.unict.it.

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

Page 12: Bioinformatica Entrez Utilities Dr. Giuseppe Pigola – pigola@dmi.unict.it.

Total number of records found

&retmax

&retstart

Matching UIDs

first record = &retstart

quantity = &retmax

ESearch Output – UIDs

Bioinformatica12

Page 13: Bioinformatica Entrez Utilities Dr. Giuseppe Pigola – pigola@dmi.unict.it.

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

Page 14: Bioinformatica Entrez Utilities Dr. Giuseppe Pigola – pigola@dmi.unict.it.

ESearch Output – Traduzione

mouse[orgn]

“Mus musculus”[Organism]

Bioinformatica14

Page 15: Bioinformatica Entrez Utilities Dr. Giuseppe Pigola – pigola@dmi.unict.it.

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

Page 16: Bioinformatica Entrez Utilities Dr. Giuseppe Pigola – pigola@dmi.unict.it.

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

Page 17: Bioinformatica Entrez Utilities Dr. Giuseppe Pigola – pigola@dmi.unict.it.

ESummary Output

Bioinformatica17

Page 18: Bioinformatica Entrez Utilities Dr. Giuseppe Pigola – pigola@dmi.unict.it.

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

Page 19: Bioinformatica Entrez Utilities Dr. Giuseppe Pigola – pigola@dmi.unict.it.

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

Page 20: Bioinformatica Entrez Utilities Dr. Giuseppe Pigola – pigola@dmi.unict.it.

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

Page 21: Bioinformatica Entrez Utilities Dr. Giuseppe Pigola – pigola@dmi.unict.it.

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

Page 22: Bioinformatica Entrez Utilities Dr. Giuseppe Pigola – pigola@dmi.unict.it.

Database che supportano la EFetch

Literature

PubMedJournalsPubMed CentralOMIM

Sequences

CoreNucleotideCoreESTCoreGSSProteinGenomePopsetSNP

Other

GeneTaxonomy

Bioinformatica22

Page 23: Bioinformatica Entrez Utilities Dr. Giuseppe Pigola – pigola@dmi.unict.it.

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

Page 24: Bioinformatica Entrez Utilities Dr. Giuseppe Pigola – pigola@dmi.unict.it.

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

Page 25: Bioinformatica Entrez Utilities Dr. Giuseppe Pigola – pigola@dmi.unict.it.

ELink Output&cmd=neighbor

&cmd=neighbor_history

Restituisce tutti gli UIDs correlati(pssono essere migliaia…!)

Restituisce solo WebEnv e query keys

Bioinformatica25

Page 26: Bioinformatica Entrez Utilities Dr. Giuseppe Pigola – pigola@dmi.unict.it.

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

Page 27: Bioinformatica Entrez Utilities Dr. Giuseppe Pigola – pigola@dmi.unict.it.

Specificare un nomedbfrom=protein&db=pubmed&id=148762980

dbfrom=protein&db=pubmed&id=148762980&linkname=protein_pubmed

Bioinformatica27

Page 28: Bioinformatica Entrez Utilities Dr. Giuseppe Pigola – pigola@dmi.unict.it.

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

Page 29: Bioinformatica Entrez Utilities Dr. Giuseppe Pigola – pigola@dmi.unict.it.

Self link

Self hit

Bioinformatica29

Page 30: Bioinformatica Entrez Utilities Dr. Giuseppe Pigola – pigola@dmi.unict.it.

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

Page 31: Bioinformatica Entrez Utilities Dr. Giuseppe Pigola – pigola@dmi.unict.it.

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

Page 32: Bioinformatica Entrez Utilities Dr. Giuseppe Pigola – pigola@dmi.unict.it.

ELink: Fork lungo il cammino

nucleotideEntrezquery

FormattedData

FormattedData

gene

protein

FormattedData

SNP

CDD

FormattedData

DocSums

Bioinformatica32

Page 33: Bioinformatica Entrez Utilities Dr. Giuseppe Pigola – pigola@dmi.unict.it.

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

Page 34: Bioinformatica Entrez Utilities Dr. Giuseppe Pigola – pigola@dmi.unict.it.

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

Page 35: Bioinformatica Entrez Utilities Dr. Giuseppe Pigola – pigola@dmi.unict.it.

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

Page 36: Bioinformatica Entrez Utilities Dr. Giuseppe Pigola – pigola@dmi.unict.it.

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

Page 37: Bioinformatica Entrez Utilities Dr. Giuseppe Pigola – pigola@dmi.unict.it.

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

Page 38: Bioinformatica Entrez Utilities Dr. Giuseppe Pigola – pigola@dmi.unict.it.

Accedere alla History

Entrez History Server

EPost

ESearch

usehistory=y

ELink

cmd=neighbor_history

ESearch

ESummary

ELink

EFetch

WebEnv

query_key

Bioinformatica38

Page 39: Bioinformatica Entrez Utilities Dr. Giuseppe Pigola – pigola@dmi.unict.it.

Protocollo

ESearch

EPost

ESummary

EFetch

ELink

Entrez History Server

UID List

Entrezquery

WebEnv

query_key

UID List

usehistory=y

cmd=neighbor_history

Bioinformatica39

Page 40: Bioinformatica Entrez Utilities Dr. Giuseppe Pigola – pigola@dmi.unict.it.

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

Page 41: Bioinformatica Entrez Utilities Dr. Giuseppe Pigola – pigola@dmi.unict.it.

Pipeline di base

ESearch

EPost

ESummary

EFetch

ELink ELink

ELink ELink

ELinkELink

Bioinformatica41