Entrez Utilities API
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.
module Biocaml_entrez: sigtype database = [ `gene
| `genome
| `geodatasets
| `geoprofiles
| `protein
| `pubmed
| `pubmedcentral
| `sra
| `taxonomy
| `unigene ]
val esearch_url : ?retstart:int ->
?retmax:int ->
?rettype:[ `count | `uilist ] ->
?field:string ->
?datetype:[ `edat | `mdat | `pdat ] ->
?reldate:int ->
?mindate:string ->
?maxdate:string -> database -> string -> stringtype esearch_answer = {
count : int;
retmax : int;
retstart : int;
ids : string list;
val esearch_answer_of_string : string -> esearch_answer val esummary_url : ?retstart:int ->
?retmax:int -> database -> string list -> stringval 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 -> stringrettype and
retmode please consult
the
official specification.module type Fetch =
sigtype 'a fetched
val fetch : string -> (string -> 'a) -> 'a fetched
val (>>=) : 'a fetched ->
('a -> 'b fetched) -> 'b fetched
val (>|=) : 'a fetched ->
('a -> 'b) -> 'b fetched endmodule Make:functor (F:Fetch) ->sigmodule Gene_ref:sigtype t = {locus :string option;allele :string option;desc :string option;maploc :string option;pseudo :bool option;}db :Biocaml_entrez.Make.Dbtag.t list;endmodule PubmedSummary:sigtype t = {pmid :int;doi :string option;pubdate :string option;source :string option;}title :string;endmodule Pubmed:sigendmodule Gene:sigtype t = {_type :[ `miscRNA;
| `ncRNA
| `other
| `protein_coding
| `pseudo
| `rRNA
| `scRNA
| `snRNA
| `snoRNA
| `tRNA
| `transposon
| `unknown ]summary :string option;}gene :Biocaml_entrez.Make.Gene_ref.t;endend
end