Clients for Biological Database Web Services
Overview
Look up genes, variants and proteins from R, without writing a client for every biological web service. Each service gets one client that makes the request and returns a table. Parsing is a separate function that needs no network, so it can run on a saved response and be tested offline. Transport, retries, caching and error handling are left to the 'biohttp' package. Dependencies for single services are optional, so you do not install what you will not use. The services covered include 'Ensembl', described in Dyer et al. (2025) doi:10.1093/nar/gkae1071, 'UniProt', in The UniProt Consortium (2025) doi:10.1093/nar/gkae1010, 'gnomAD', in Chen et al. (2024) doi:10.1038/s41586-023-06045-0, 'Open Targets', in Buniello et al. (2025) doi:10.1093/nar/gkae1128, and the 'AlphaFold' Protein Structure Database, in Varadi et al. (2024) doi:10.1093/nar/gkad1011. Each client's help page cites the service it calls.
Ensembl VEP
- Results are matched back on the echoed
inputline and onvcf_stringrather than on a key rebuilt from the reported coordinates. VEP left-trims and renumbers indels, so the rebuilt key matched only SNVs and every indel came back as an empty row. vep_variants()takes anoptionslist of request flags, defaulting tovep_default_options().dbNSFPis refused.vep_parse_element()addstranscript,gene_id,biotype,hgvsc,hgvsp,canonical,codons,amino_acids,cadd_phred,cadd_raw,revel, the fourspliceai_ds_*scores,spliceai_maxandlof.- New
vep_parse_colocated()reads the dbSNP record beside a variant:rsid, gnomAD genome and exome frequencies with their per-population maximum, and the clinical significance of the allele asked.vep_parse_batch()carries these columns.
Show all changes in 0.1.1Hide the rest of the changes in 0.1.1
- New
vep_variants_all()takes any number of variants, chunks them at the 200 VEP accepts per POST and dispatches the chunks throughbiohttp::post_json_many(). One row per input in input order; a failed chunk becomes rows ofNAcarrying the envelope status instatus. vep_variants_all()puts the input in genome order and sends a repeated variant once, before chunking, rather than once per occurrence. A duplicate now always carries the same answer at every position it was asked at, which was not guaranteed before when duplicates could land in different chunks and see different transient failures.chunk_sizeand the row count and order the contract promises are unchanged. It also applies a defaultthrottle(one request per second) so an unpaced burst does not trip Ensembl's rate limiter; passthrottle = NULLto disable it.
gnomAD
- New
gnomad_frequency_by_id()looks a variant up bychrom-pos-ref-alt, which names one allele where an rsID names a site, andgnomad_frequencies()does the same for many ids, alias-batched and chunked likegnomad_constraints().gnomad_variant_id()builds the id. The flat row fromgnomad_parse_variant()carries exome and genomeaf,ac,anandnhomalt, a derivedgrpmax,faf95andfilters. - The 25-alias cost cap was re-verified against the live API for the variant query. The cost is one per alias whatever the selection set.
ClinVar
clinvar_classification()throttles by default at the documented E-utilities rate, 3 requests a second or 10 whenNCBI_API_KEYis set, and sendstoolandemailread fromBIOHTTP_CALLER_IDENTITYandBIOHTTP_CONTACT_EMAILwhen they are set.
MyGene
mygene_genes()chunks a list longer than the 1000 identifiers MyGene takes per POST, dispatches the chunks throughbiohttp::post_json_many()and merges the hits back in input order.
Packaging
Everything below is for the CRAN submission. Nothing here changes how the
package behaves, and no function's arguments or output shape moved.
- Every example that calls a service now runs under
\donttest{}rather than\dontrun{}, 56 of them.\dontrun{}is for an example that genuinely cannot be executed, which none of these are: they are keyless public requests, a client returns an envelope rather than raising, and biohttp's disk cache is off unless a caller turns it on. So an example run with no network printsNULLand writes nothing. - Every help page now cites the service behind it. The 29 service files each carry the canonical publication with a DOI and the service's own documentation URL, and the other topics in the file inherit it, so all 134 exported topics have a
Referencessection. Each DOI was resolved through CrossRef and checked against the title, author and pagination written here.uniprot_features()carries two, because it calls the EBI Proteins API on a different host to the rest of the file and both are worth naming. - The
Descriptionfield cites five of those references, for Ensembl, UniProt, gnomAD, Open Targets and AlphaFold DB, in the form CRAN asks for. biohttpis on CRAN now, at 0.1.2. So theRemotes:line is gone and we ask forbiohttp (>= 0.1.2)instead. I ran the tests against the CRAN build rather than the newer one on GitHub, to be sure nothing here needs a version CRAN cannot give you.cran-comments.mdrecords the submission notes.
From NEWS.md in the release
Install
Health
- OK13 OKNow
- OK7 OK2026-09-16
Documentation
- Help pages
- 135 (1 internal)includes a package overview page
- Examples that run
- 58%76 run in a plain check · 56 only when donttest examples are enabled (R CMD check --as-cran)
- Exported functions with examples
- 99%
- Documented parameters
- 97%
- Return-value docs
- 100%
- Help pages citing references
- 99%
Downloads
Repository
- PRs merged (all time)
- 98%
- Median days to close, 50 most recently updated closed issues
- 10
- Median days to close, 50 most recently updated closed PRs
- 0
Stars over time
Releases over time
Issues over time
Commits over time
14 development-tooling and community-health practices detected across 7 families in the upstream repository
Checks run against github.com/samuelbharti/bioclients on 2026-10-21.
The R CMD check workflow runs on Linux, macOS and Windows, and on R-devel
GitHub Pages site last deployed 2026-10-08 · The repository has a site deploy workflow
Show all practicesHide 3 practices
Dependencies
Code & Tests
People & History
- 0.1.1Latest2026-09-15 · current release
- RR 4.6.0 released · 2026-04-24
Package metadata
- First published
- 2026-09-15
- Total releases
- 1 / 1 yrs
- License
- MIT + file LICENSE OSI
- Minimum R
- ≥ 4.0
- Download size
- 260 KB
Cite
Cite this package
Run in R for the authors' preferred citation:
citation("bioclients")This package has no citation file, so citation() returns this entry built from DESCRIPTION.
The repository also keeps a CITATION.cff.
Cite the R Observatory
For a number measured here: a download total, a coverage figure, an archival date.
From data release v2026-10-23, which the citation names so these numbers can be found later. More on citing and the projects behind them.