Skip to contents

For each input, resolves it to a PubMed Central article, reports whether the open-access full text (with a reference list) is available, and if so checks every reference in that article for retractions. Inputs may be a PMID, PMCID, DOI, article title, or a whole reference string, in any mix.

Usage

check_pmc(
  x,
  sources = getOption("retraction.sources", "xera"),
  offline = FALSE,
  flag_nature = c("Retraction", "Expression of Concern"),
  allow_fuzzy = TRUE,
  resolve_ids = TRUE,
  cache = TRUE,
  progress = TRUE,
  strict = FALSE
)

Arguments

x

A character (or numeric) vector of PMIDs, PMCIDs, DOIs, titles, or reference strings.

sources

Sources to query. A character vector of names from list_backends(), or "all". Defaults to getOption("retraction.sources", "xera").

offline

If TRUE, match against the local snapshot built by retraction_sync() instead of querying the network.

flag_nature

Notice labels that count as "flag this citation". Defaults to Retraction and Expression of Concern.

allow_fuzzy

Allow fuzzy title matching for references without a usable identifier.

resolve_ids

If TRUE, resolve PMID-only references to a DOI via OpenAlex before matching.

cache

Cache fetched XML on disk (see pmc_fetch_xml()).

progress

Show a progress bar in interactive sessions.

strict

If TRUE, fail closed: abort when any input cannot be resolved to a PubMed Central article or its open-access full text cannot be retrieved, and (as in check_dois()) when any resulting reference cannot be checked, instead of returning a clean-looking partial result.

Value

A retraction_result tibble of the references found across the open-access articles (the source_file column records the PMCID). The per-article open-access summary is attached and retrievable with pmc_articles().

Details

Resolving and fetching the article always use the network, even when offline = TRUE (which controls only the retraction data source used for matching). Per-article open-access status is available via pmc_articles().

Examples

if (FALSE) { # \dontrun{
res <- check_pmc(c("PMC5334499", "10.1371/journal.pone.0000217", "29939664"))
pmc_articles(res)   # open-access status per input
retracted(res)      # any retracted references found
} # }