This modules provides a partial access to Entrez databases such as
    Pubmed, Gene or Protein. The API proposed by the NCBI is based on HTTP
    requests, and this modules contains a couple of functions to ease the
    construction of appropriate URLs. This module also offers a more
    high-level access, with parsers for the answers from Entrez.
    Databases in Entrez can be seen as collections of records, each
    record representing an object of the database. The basic usage of
    the low-level API is first to search a database with the esearch
    utility.  Given a query string, esearch will return a collection
    of identifiers. These identifiers are then used to fetch the
    actual records with the efetch utility. These two operations are
    done in one call with the high-level API.
type [ `gene
       | `genome
       | `geodatasets
       | `geoprofiles
       | `protein
       | `pubmed
       | `pubmedcentral
       | `sra
       | `taxonomy
       | `unigene ] 
Represents available databases
 
Low level access
val esearch_url : ?retstart:int ->
       ?retmax:int ->
       ?rettype:[ `count | `uilist ] ->
       ?field:string ->
       ?datetype:[ `edat | `mdat | `pdat ] ->
       ?reldate:int ->
       ?mindate:string ->
       ?maxdate:string -> database -> string -> string
Construction of esearch URLs.
 
type 
|    | count : int; | 
|    | retmax : int; | 
|    | retstart : int; | 
|    | ids : string list; | 
}
Represents the result of a request to esearch
 
val esummary_url : ?retstart:int ->
       ?retmax:int -> database -> string list -> string
Construction of esummary URLs
 
val efetch_url : ?rettype:string ->
       ?retmode:[ `asn_1 | `text | `xml ] ->
       ?retstart:int ->
       ?retmax:int ->
       ?strand:[ `minus | `plus ] ->
       ?seq_start:int ->
       ?seq_stop:int -> database -> string list -> string
Construction of efetch URLs. Note that this access method does not
    support more than 200 ids. For legible values of 
rettype and
    
retmode please consult
    
the
    official specification.
 
High level access
module type Fetch = 
sigend
A signature for an HTTP request framework
 module Make: functor (F : Fetch) -> sigmodule Object_id: 
sig
type [ `int of int | `string of string ] 
 endmodule Gene_ref: 
sig
type 
|    | locus : string option; | 
|    | allele : string option; | 
|    | desc : string option; | 
|    | maploc : string option; | 
|    | pseudo : bool option; | 
|    | db : Biocaml_entrez.Make.Dbtag.t list; | 
}
 endmodule PubmedSummary: 
sig
type 
|    | pmid : int; | 
|    | doi : string option; | 
|    | pubdate : string option; | 
|    | source : string option; | 
|    | title : string; | 
}
 
val search : string -> t list F.fetched
 endmodule Pubmed: 
sig
type 
|    | pmid : int; | 
|    | title : string; | 
|    | abstract : string; | 
}
 
val search : string -> t list F.fetched
 endmodule Gene: 
sig
type 
|    | _type : [ `miscRNA;| `ncRNA
 | `other
 | `protein_coding
 | `pseudo
 | `rRNA
 | `scRNA
 | `snRNA
 | `snoRNA
 | `tRNA
 | `transposon
 | `unknown ]
 | 
|    | summary : string option; | 
|    | gene : Biocaml_entrez.Make.Gene_ref.t; | 
}
 
val search : string -> t list F.fetched
 endend