Skip to contents

Returns x with every fixable value substituted by its suggestion: an invalid value that maps to a successor or a well-formed alternative. Valid values, invalid values with no suggestion, and missing values are returned unchanged, so the result is the same length and order as x. It is designed to drop into dplyr::mutate().

Usage

repair_id(
  x,
  source_db,
  how = "pattern",
  species = NULL,
  version = NULL,
  refresh = FALSE,
  on_error = "raise"
)

Arguments

x

A vector of identifiers. Coerced to character.

source_db

Source key, for example "mondo". See sources().

how

Checking mode: "pattern" (offline, shape only), "cache" (offline existence against a snapshot), "remote" (live existence against the source API), or "existence" (cache when a snapshot is available for version, otherwise remote, or pattern for a source with no resolver).

species

Optional species context, echoed in the result. A name such as "homo_sapiens" or an NCBI taxon id such as 9606. When given, an id of a different species is invalid: Ensembl is checked from its id prefix (in pattern and remote modes), and UniProt from the entry's organism in remote mode. A species outside the source map is not checked.

version

Snapshot version. In cache mode it selects the snapshot and defaults to the latest installed one when omitted; it selects the snapshot for existence mode; ignored in pattern and remote modes.

refresh

In remote checks, skip any cached response and refetch. Ignored by the offline modes.

on_error

How a per-id remote failure is handled. "raise" (the default) lets the failure unwind the whole call. "indeterminate" leaves just that id NA with the reason in its error column and checks the rest of the batch, so one unreachable id does not lose the others. Ignored by the offline modes.

Value

A character vector the same length as x.

See also

Examples

repair_id(c("MONDO:0005148", "mondo:5148"), "mondo")
#> [1] "MONDO:0005148" "MONDO:0005148"