Commit 3b21fa1e authored by Pierre Lindenbaum's avatar Pierre Lindenbaum
Browse files

cont

parent 758c7f32
......@@ -5,7 +5,6 @@
\usepackage{listings}
\usepackage{xcolor}
\usepackage{amssymb}
\usepackage{framed}
\usepackage{epstopdf}
......@@ -50,9 +49,19 @@
\begin{document}
\maketitle
\begin{abstract}
NCBI avancé
What will be covered today? :
\begin{itemize}
\item Rappel
\item EInfo, GQuery, ESearch , Esummary, EFetch..
\item processing XML answer with XSLT: HTML, SVG, R...
\item generating a java parser for dbSNP.
\item NCBI EBot
\item using standalone BLAST
\end{itemize}
\end{abstract}
\section{Rappels}
\subsection{XML}
......@@ -94,7 +103,1850 @@ Exemple 2:
curl "https://en.wikipedia.org/wiki/Main_Page" | xmllint --xpath '//a/@href' -
\end{lstlisting}
\section{NCBI}
Exemple 3:
\begin{lstlisting}[language=bash]
curl -s "https://en.wikipedia.org/wiki/Main_Page" | xmllint --xpath 'count(//a/@href)' -
\end{lstlisting}
\section{NCBI-EUtils}
%%\begin{frame}[fragile]
\subsection{XML}
\remoteimage{jeter02.png}{https://upload.wikimedia.org/wikipedia/commons/thumb/6/68/XML.svg/500px-XML.svg.png}{scale=0.3}
%%\end{frame}
%%\begin{frame}[fragile]
\subsection{XSLT}
\remoteimage{jeter03.png}{https://upload.wikimedia.org/wikipedia/commons/thumb/e/e6/XSLT_en.svg/231px-XSLT_en.svg.png}{scale=0.4}
%%\end{frame}
%%\begin{frame}[fragile]
\subsection{XSLTPROC}
\begin{lstlisting}[language=bash]
xsltproc stylesheet.xsl file.xml > result.xml
\end{lstlisting}
%%\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%% FORMAT
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%\hugeslide{Formats}
%%\begin{frame}[fragile]
\subsection{Formats}
\subsubsection{Genbank}
\url{http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=nucleotide&id=25&rettype=gb}
\begin{lstlisting}[basicstyle=\tiny,breaklines=false]
LOCUS X53813 422 bp DNA linear MAM 22-JUN-1992
DEFINITION Blue Whale heavy satellite DNA.
ACCESSION X53813 X17460
VERSION X53813.1 GI:25
KEYWORDS satellite DNA.
SOURCE Balaenoptera musculus (Blue whale)
ORGANISM Balaenoptera musculus
Eukaryota; Metazoa; Chordata; Craniata; Vertebrata; Euteleostomi;
Mammalia; Eutheria; Laurasiatheria; Cetartiodactyla; Cetacea;
Mysticeti; Balaenopteridae; Balaenoptera.
REFERENCE 1 (bases 1 to 422)
AUTHORS Arnason,U. and Widegren,B.
TITLE Composition and chromosomal localization of cetacean highly
repetitive DNA with special reference to the blue whale,
Balaenoptera musculus
JOURNAL Chromosoma 98 (5), 323-329 (1989)
PUBMED 2612291
COMMENT See also <X52700-2> for 1,760 bp common cetacean component clones
and <X52703-6>,<X53811-4> for the 422 bp heavy satellite clones.
FEATURES Location/Qualifiers
source 1..422
/organism="Balaenoptera musculus"
/mol_type="genomic DNA"
/db_xref="taxon:9771"
/clone="7"
misc_feature 1..422
/note="heavy satellite DNA"
ORIGIN
1 tagttattca acctatccca ctctctagat accccttagc acgtaaagga atattatttg
61 ggggtccagc catggagaat agtttagaca ctaggatgag ataaggaaca cacccattct
121 aaagaaatca cattaggatt ctctttttaa gctgttcctt aaaacactag agtcttagaa
181 atctattgga ggcagaagca gtcaagggta gcctagggtt agggttaggc ttagggttag
241 ggttagggta cggcttaggg tactgtttcg gggaggggtt caggtacggc gtagggtatg
301 ggttagggtt agggttaggg ttagtgttag ggttagggct cggtttaggg tacgggttag
361 gattagggta cgtgttaggg ttagggtagg gcttagggtt agggtacgtg ttagggttag
421 gg
//
\end{lstlisting}
%%\end{frame}
%%\begin{frame}[fragile]
\url{http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=nucleotide&id=25}
\subsection{Formats}
\subsubsection{ASN.1}
\begin{lstlisting}[basicstyle=\tiny,breaklines=false]
Seq-entry ::= seq {
id {
embl {
accession "X53813" ,
version 1 } ,
gi 25 } ,
descr {
title "Blue Whale heavy satellite DNA" ,
source {
org {
taxname "Balaenoptera musculus" ,
common "Blue whale" ,
db {
{
db "taxon" ,
tag
id 9771 } } ,
orgname {
name
binomial {
genus "Balaenoptera" ,
species "musculus" } ,
lineage "Eukaryota; Metazoa; Chordata; Craniata; Vertebrata;
Euteleostomi; Mammalia; Eutheria; Laurasiatheria; Cetartiodactyla; Cetacea;
Mysticeti; Balaenopteridae; Balaenoptera" ,
gcode 1 ,
mgcode 2 ,
div "MAM" } } ,
subtype {
{
\end{lstlisting}
%%\end{frame}
%%\begin{frame}[fragile]
\subsection{Formats}
\subsubsection{ASN.1 (schema)}
\url{http://www.ncbi.nlm.nih.gov/data_specs/asn/insdseq.asn}
\begin{lstlisting}[basicstyle=\tiny,breaklines=false]
INSDSeq ::= SEQUENCE {
locus VisibleString ,
length INTEGER ,
strandedness VisibleString OPTIONAL ,
moltype VisibleString ,
topology VisibleString OPTIONAL ,
division VisibleString ,
update-date VisibleString ,
create-date VisibleString OPTIONAL ,
update-release VisibleString OPTIONAL ,
create-release VisibleString OPTIONAL ,
definition VisibleString ,
primary-accession VisibleString OPTIONAL ,
entry-version VisibleString OPTIONAL ,
accession-version VisibleString OPTIONAL ,
other-seqids SEQUENCE OF INSDSeqid OPTIONAL ,
secondary-accessions SEQUENCE OF INSDSecondary-accn OPTIONAL,
project VisibleString OPTIONAL ,
keywords SEQUENCE OF INSDKeyword OPTIONAL ,
segment VisibleString OPTIONAL ,
source VisibleString OPTIONAL ,
organism VisibleString OPTIONAL ,
taxonomy VisibleString OPTIONAL ,
references SEQUENCE OF INSDReference OPTIONAL ,
comment VisibleString OPTIONAL ,
comment-set SEQUENCE OF INSDComment OPTIONAL ,
struc-comments SEQUENCE OF INSDStrucComment OPTIONAL ,
primary VisibleString OPTIONAL ,
source-db VisibleString OPTIONAL ,
database-reference VisibleString OPTIONAL ,
feature-table SEQUENCE OF INSDFeature OPTIONAL ,
feature-set SEQUENCE OF INSDFeatureSet OPTIONAL ,
sequence VisibleString OPTIONAL , -- Optional for contig, wgs, etc.
contig VisibleString OPTIONAL ,
alt-seq SEQUENCE OF INSDAltSeqData OPTIONAL
}
\end{lstlisting}
%%\end{frame}
%%\begin{frame}[fragile]
\subsection{Formats}
\subsubsection{ASN.1 (tools)}
\begin{center}
{\bf DATATOOL}\\
Generate {\bf C++ }data storage classes based on ASN.1
{\bf serialization streams}.\\
Convert data between ASN.1, XML and JSON formats.\\
\end{center}
%%\end{frame}
%%\begin{frame}[fragile]
\subsection{Formats}
\subsubsection{XML}
\url{http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=nucleotide&id=25&retmode=xml}
\begin{lstlisting}[language=xml,basicstyle=\tiny,breaklines=false]
<?xml version="1.0"?>
<!DOCTYPE GBSet PUBLIC "-//NCBI//NCBI GBSeq/EN" "http://www.ncbi.nlm.nih.gov/dtd/NCBI_GBSeq.dtd">
<GBSet>
<GBSeq>
<GBSeq_locus>X53813</GBSeq_locus>
<GBSeq_length>422</GBSeq_length>
<GBSeq_strandedness>double</GBSeq_strandedness>
<GBSeq_moltype>DNA</GBSeq_moltype>
<GBSeq_topology>linear</GBSeq_topology>
<GBSeq_division>MAM</GBSeq_division>
<GBSeq_update-date>22-JUN-1992</GBSeq_update-date>
<GBSeq_create-date>13-JUL-1990</GBSeq_create-date>
<GBSeq_definition>Blue Whale heavy satellite DNA</GBSeq_definition>
<GBSeq_primary-accession>X53813</GBSeq_primary-accession>
<GBSeq_accession-version>X53813.1</GBSeq_accession-version>
<GBSeq_other-seqids>
<GBSeqid>emb|X53813.1|</GBSeqid>
<GBSeqid>gi|25</GBSeqid>
</GBSeq_other-seqids>
<GBSeq_secondary-accessions>
<GBSecondary-accn>X17460</GBSecondary-accn>
</GBSeq_secondary-accessions>
<GBSeq_keywords>
<GBKeyword>satellite DNA</GBKeyword>
</GBSeq_keywords>
<GBSeq_source>Balaenoptera musculus (Blue whale)</GBSeq_source>
<GBSeq_organism>Balaenoptera musculus</GBSeq_organism>
<GBSeq_taxonomy>Eukaryota; Metazoa; Chordata; Craniata; Vertebrata; Euteleostomi; Mammalia; Eutheria; Laurasiatheria; Cetartiod
actyla; Cetacea; Mysticeti; Balaenopteridae; Balaenoptera</GBSeq_taxonomy>
<GBSeq_references>
\end{lstlisting}
%%\end{frame}
%%\begin{frame}[fragile]
\subsection{Formats}
\subsubsection{XML (DTD)}
\url{http://www.ncbi.nlm.nih.gov/dtd/NCBI_GBSeq.mod.dtd}
\begin{lstlisting}[language=xml,basicstyle=\tiny,breaklines=false]
<!ELEMENT GBSeq (
GBSeq_locus,
GBSeq_length,
GBSeq_strandedness?,
GBSeq_moltype,
GBSeq_topology?,
GBSeq_division,
GBSeq_update-date,
GBSeq_create-date?,
GBSeq_update-release?,
GBSeq_create-release?,
GBSeq_definition,
GBSeq_primary-accession?,
GBSeq_entry-version?,
GBSeq_accession-version?,
GBSeq_other-seqids?,
GBSeq_secondary-accessions?,
GBSeq_project?,
GBSeq_keywords?,
GBSeq_segment?,
GBSeq_source?,
GBSeq_organism?,
GBSeq_taxonomy?,
GBSeq_references?,
GBSeq_comment?,
GBSeq_comment-set?,
GBSeq_struc-comments?,
(...)
\end{lstlisting}
%%\end{frame}
%\hugeslide{E-Utilities}
%\hugeslide{GI}
%%\begin{frame}
\subsection{E-Utilities}
\begin{center}
Set of seven server-side programs that provide a stable interface to the search, retrieval, and linking functions of the Entrez system, using a fixed URL syntax.\\
The output provided by the E-Utilities is in XML format\\
\end{center}
%%\end{frame}
%%\begin{frame}
\subsection{Entrez Direct}
\begin{center}
\url{http://www.ncbi.nlm.nih.gov/books/NBK179288/}
"Entrez Direct (EDirect) is an advanced method for accessing the NCBI's set of interconnected databases (publication, sequence, structure, gene, variation, expression, etc.) from a UNIX terminal window. Functions take search terms from command-line arguments. Individual operations are combined to build multi-step queries. Record retrieval and formatting normally complete the process."
\end{center}
%%\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%% EINFO
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%\hugeslide{EInfo}
%%\begin{frame}[fragile]
\subsection{EInfo}
\begin{center}
Provides a {\bf list of the names of all valid Entrez databases}.\\
Provides statistics for a single database, including lists of indexing fields and available link names.
\end{center}
%%\end{frame}
%%\begin{frame}[fragile]
\subsection{EInfo}
Base URL:
\small
\url{http://eutils.ncbi.nlm.nih.gov/entrez/eutils/einfo.fcgi}
%%\end{frame}
%%\begin{frame}[fragile]
\subsection{EInfo}
\subsubsection{XML Ouput}
\url{http://eutils.ncbi.nlm.nih.gov/entrez/eutils/einfo.fcgi}
\small
\begin{lstlisting}[language=xml]
<!DOCTYPE eInfoResult PUBLIC "-//NLM//DTD eInfoResult, 11 May 2002//EN" "http://www.ncbi.nlm.nih.gov/entrez/query/DTD/eInfo_020511.dtd">
<eInfoResult>
<DbList>
<DbName>pubmed</DbName>
<DbName>protein</DbName>
<DbName>nuccore</DbName>
<DbName>nucleotide</DbName>
<DbName>nucgss</DbName>
<DbName>nucest</DbName>
<DbName>structure</DbName>
<DbName>genome</DbName>
<DbName>assembly</DbName>
<DbName>gcassembly</DbName>
<DbName>genomeprj</DbName>
<DbName>bioproject</DbName>
<DbName>biosample</DbName>
<DbName>biosystems</DbName>
<DbName>blastdbinfo</DbName>
<DbName>books</DbName>
<DbName>cdd</DbName>
<DbName>clinvar</DbName>
(...)
\end{lstlisting}
%%\end{frame}
%%\begin{frame}[fragile]
\subsection{EInfo}
Return statistics for a given Entrez database:\\
\small
\url{http://eutils.ncbi.nlm.nih.gov/entrez/eutils/einfo.fcgi?db=DbName}
%%\end{frame}
%%\begin{frame}[fragile]
\subsection{EInfo}
\subsubsection{Statistics for Pubmed}
\url{http://eutils.ncbi.nlm.nih.gov/entrez/eutils/einfo.fcgi?db=pubmed}
\begin{lstlisting}[language=xml,basicstyle=\tiny,breaklines=false]
<?xml version="1.0"?>
<!DOCTYPE eInfoResult PUBLIC "-//NLM//DTD eInfoResult, 11 May 2002//EN" "http://www.ncbi.nlm.nih.gov/entrez/query/DTD/eInfo_020511.dtd">
<eInfoResult>
<DbInfo>
<DbName>pubmed</DbName>
<MenuName>PubMed</MenuName>
<Description>PubMed bibliographic record</Description>
<DbBuild>Build130805-2117m.4</DbBuild>
<Count>22974581</Count>
<LastUpdate>2013/08/06 08:33</LastUpdate>
<FieldList>
(...)
<Field>
<Name>UID</Name>
<FullName>UID</FullName>
<Description>Unique number assigned to publication</Description>
<TermCount>0</TermCount>
<IsDate>N</IsDate>
<IsNumerical>Y</IsNumerical>
<SingleToken>Y</SingleToken>
<Hierarchy>N</Hierarchy>
<IsHidden>Y</IsHidden>
</Field>
<Field>
(...)
\end{lstlisting}
%%\end{frame}
%%\begin{frame}[fragile]
\subsection{EInfo}
\subsubsection{Statistics for Pubmed}
\url{http://eutils.ncbi.nlm.nih.gov/entrez/eutils/einfo.fcgi?db=pubmed}
\begin{lstlisting}[language=xml,basicstyle=\tiny,breaklines=false]
(...)
<Link>
<Name>pubmed_taxonomy_entrez</Name>
<Menu>Taxonomy via GenBank</Menu>
<Description>Taxonomy records associated with the current articles through taxonomic information on related molecular database records (Nucleotide, Protein, Gene, SNP, Structu
re).</Description>
<DbTo>taxonomy</DbTo>
</Link>
<Link>
<Name>pubmed_unigene</Name>
<Menu>UniGene Links</Menu>
<Description>UniGene clusters of expressed sequences that are associated with the current articles through references on the clustered sequence records and related Gene record
s.</Description>
<DbTo>unigene</DbTo>
</Link>
<Link>
<Name>pubmed_unists</Name>
<Menu>UniSTS Links</Menu>
<Description>Genetic, physical, and sequence mapping reagents in the UniSTS database associated with the current articles through references on sequence tagged site (STS) subm
issions as well as automated searching of PubMed abstracts and full-text PubMed Central articles for marker names.</Description>
<DbTo>unists</DbTo>
</Link>
</LinkList>
</DbInfo>
</eInfoResult>
\end{lstlisting}
%%\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%% GQuery
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%\hugeslide{GQuery}
%%\begin{frame}[fragile]
\subsection{GQuery}
Provides the number of records retrieved in all Entrez databases by a single text query.
%%\end{frame}
%%\begin{frame}[fragile]
\subsection{GQuery}
\subsubsection{Example}
\begin{lstlisting}[language=bash,basicstyle=\tiny,breaklines=true,escapechar=\!]
$ curl "http://eutils.ncbi.nlm.nih.gov/gquery?term=tyrannosaurus%20rex&retmode=xml"
\end{lstlisting}
\begin{lstlisting}[language=xml,basicstyle=\tiny,breaklines=true,escapechar=\%]
<Result>
<Term>tyrannosaurus rex</Term>
<eGQueryResult>
<ResultItem><DbName>pubmed</DbName><MenuName/><Count>41</Count><Status>Ok</Status></ResultItem>
<ResultItem><DbName>pmc</DbName><MenuName/><Count>160</Count><Status>Ok</Status></ResultItem>
<ResultItem><DbName>mesh</DbName><MenuName/><Count>15</Count><Status>Ok</Status></ResultItem>
<ResultItem><DbName>books</DbName><MenuName/><Count>179</Count><Status>Ok</Status></ResultItem>
<ResultItem><DbName>pubmedhealth</DbName><MenuName/><Count>21</Count><Status>Ok</Status></ResultItem>
<ResultItem><DbName>omim</DbName><MenuName/><Count>10</Count><Status>Ok</Status></ResultItem>
<ResultItem><DbName>omia</DbName><MenuName/><Count>0</Count><Status>Term or Database is not found</Status></ResultItem>
<ResultItem><DbName>ncbisearch</DbName><MenuName/><Count>1</Count><Status>Ok</Status></ResultItem>
<ResultItem><DbName>nuccore</DbName><MenuName/><Count>0</Count><Status>Term or Database is not found</Status></ResultItem>
(...)
\end{lstlisting}
%%\end{frame}
%%\begin{frame}[fragile]
\subsection{GQuery}
\subsubsection{Transforming to HTML using XSLT}
The XSLT stylesheet.
\begin{lstlisting}[language=xslt,basicstyle=\tiny,]
<?xml version='1.0' encoding="UTF-8" ?>
<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'>
<xsl:output method="html"/>
<xsl:template match="/"><html><body>
<xsl:apply-templates select="Result"/>
</body></html></xsl:template>
<xsl:template match="Result">
<table><caption><xsl:value-of select="Term"/></caption>
<tr><th>Database</th><th>Count</th><th>Status</th></tr>
<xsl:apply-templates select="eGQueryResult/ResultItem"/>
</table>
</xsl:template>
<xsl:template match="ResultItem">
<tr>
<td><a>
<xsl:attribute name="href">http://www.ncbi.nlm.nih.gov/<xsl:value-of select="DbName"/>?cmd=search&amp;term=<xsl:value-of select="translate(/Result/Term,' ','+')"/></xsl:attribute>
<xsl:value-of select="DbName"/></a></td>
<td><xsl:value-of select="Count"/></td>
<td><xsl:value-of select="Status"/></td>
</tr>
</xsl:template>
</xsl:stylesheet>
\end{lstlisting}
%%\end{frame}
%%\begin{frame}[fragile]
\subsection{GQuery}
\subsubsection{Transforming to HTML}
\begin{lstlisting}[language=bash,basicstyle=\tiny,breaklines=true]
$ curl "http://eutils.ncbi.nlm.nih.gov/gquery?term=tyrannosaurus%20rex&retmode=xml" |\
xsltproc gquery2html.xsl -
\end{lstlisting}
\begin{lstlisting}[language=html,basicstyle=\tiny,breaklines=false]
<html>
<body>
<table>
<caption>tyrannosaurus rex</caption>
<tr>
<th>Database</th>
<th>Count</th>
<th>Status</th>
</tr>
<tr>
<td>
<a href="http://www.ncbi.nlm.nih.gov/pubmed?cmd=search&amp;term=tyrannosaurus+rex">pubmed</a>
</td>
<td>41</td>
<td>Ok</td>
</tr>
<tr>
<td>
<a href="http://www.ncbi.nlm.nih.gov/pubmed?cmd=search&amp;term=tyrannosaurus+rex">pmc</a>
</td>
<td>160</td>
<td>Ok</td>
</tr>
<tr>
<td>
<a href="http://www.ncbi.nlm.nih.gov/pubmed?cmd=search&amp;term=tyrannosaurus+rex">mesh</a>
</td>
<td>15</td>
\end{lstlisting}
%%\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%% ESearch
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%\hugeslide{ESearch}
%%\begin{frame}[fragile]
\subsection{ESearch}
\begin{itemize}
\item Provides a list of UIDs matching a text query
\item Posts the results of a search on the History server
\item Downloads all UIDs from a dataset stored on the History server
\item Combines or limits UID datasets stored on the History server
\item Sorts sets of UIDs
\end{itemize}
%%\end{frame}
%%\begin{frame}[fragile]
\subsection{ESearch}
\subsubsection{Syntax}
Base URL
\url{http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi}
%%\end{frame}
%%\begin{frame}[fragile]
\subsection{ESearch}
\subsubsection{Searching for 'Mammuthus primigenius' }
\begin{lstlisting}[language=bash,basicstyle=\tiny,breaklines=true]
curl "http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=nucleotide&term=%22Mammuthus%20primigenius%22%5BORGN%5D" |\
xmllint --format -
\end{lstlisting}
\begin{lstlisting}[language=xml,basicstyle=\tiny,breaklines=false]
<eSearchResult>
<Count>684</Count>
<RetMax>20</RetMax>
<RetStart>0</RetStart>
<IdList>
<Id>507866428</Id>
<Id>124056416</Id>
<Id>383843869</Id>
<Id>383843867</Id>
<Id>383843865</Id>
<Id>383843863</Id>
<Id>383843861</Id>
<Id>383843859</Id>
<Id>383843857</Id>
<Id>383843855</Id>
<Id>383843853</Id>
<Id>383843851</Id>
<Id>383843849</Id>
<Id>383843847</Id>
<Id>383843845</Id>
<Id>157367690</Id>
<Id>157367676</Id>
<Id>157367662</Id>
<Id>157367648</Id>
<Id>157367634</Id>
</IdList>
<TranslationSet>
<Translation>
<From>"Mammuthus primigenius"[ORGN]</From>
<To>"Mammuthus primigenius"[Organism]</To>
</Translation>
</TranslationSet>
<TranslationStack>
<TermSet>
<Term>"Mammuthus primigenius"[Organism]</Term>
<Field>Organism</Field>
<Count>684</Count>
<Explode>Y</Explode>
</TermSet>
<OP>GROUP</OP>
</TranslationStack>
<QueryTranslation>"Mammuthus primigenius"[Organism]</QueryTranslation>
</eSearchResult>
\end{lstlisting}
%%\end{frame}
%%\begin{frame}[fragile]
\subsection{ESearch}
\subsubsection{the retmax parameter }
\begin{lstlisting}[language=bash,basicstyle=\tiny,breaklines=true]
curl "http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=nucleotide&term=%22Mammuthus%20primigenius%22%5BORGN%5D&retmax=2" |\
xmllint --format -
\end{lstlisting}
\begin{lstlisting}[language=xml,basicstyle=\tiny,breaklines=false]
<eSearchResult>
<Count>684</Count>
<RetMax>2</RetMax>
<RetStart>0</RetStart>
<IdList>
<Id>507866428</Id>
<Id>124056416</Id>
</IdList>
<TranslationSet>
<Translation>