First release. retraction scans manuscripts, bibliographies, and reference
lists for citations to retracted publications, so authors can find and remove
citations to retracted work before submitting. It reads a wide range of document
and bibliography formats, extracts and normalizes identifiers, checks them
against retraction data, and returns a tidy, scored report.
check_file() detects the format of a file and checks every reference it
contains. Bibliography formats: BibTeX and BibLaTeX (.bib), CSL-JSON
(.json), RIS (.ris), and EndNote XML. Document formats: JATS XML, Word
(.docx), PDF, and R Markdown, Quarto, LaTeX, Markdown, plain text, and HTML
(.Rmd, .qmd, .tex, .md, .txt, .html), from which DOIs are scraped
from the text.check_bib() checks a bibliography file when you want to name the input
explicitly.check_dois() checks a vector of DOIs or PMIDs directly.check_refs() checks a data frame of references, with identifier and title
columns auto-detected.check_pmc() accepts a PMID, PMCID, DOI, title, or whole reference string,
resolves it to a PubMed Central article, reports whether the open-access full
text is available, and if so checks the article's reference list for
retractions. pmc_articles() returns the per-article open-access summary, and
pmc_fetch_xml() retrieves the open-access JATS XML directly.normalize_doi(), normalize_pmid(), normalize_pmcid(), and
normalize_title() clean and canonicalize identifiers so equivalent forms
match."xera" (Retraction Watch via
the XeraRetractionTracker API, the default), "crossref", "openalex",
"europepmc", "ncbi" (PubMed), "datacite", and "preprint" (arXiv and
bioRxiv withdrawals). list_backends() lists them; sources = "all" queries
every one.check_*() call can query several sources at once. The highest-priority
match sets the verdict, every confirming source is recorded, and a
disagreement flag is raised when sources do not agree.update-to), not only retractions.check_zotero() scans a Zotero library directly from its database.check_preprint() reports whether an arXiv or bioRxiv preprint was withdrawn.retraction_app() launches a Shiny triage app to upload a file and browse
results interactively.retraction_snapshot_parquet() exports the corpus for arrow-based analysis;
and checking parallelizes across references when a future plan is set.retraction_sync() downloads a local snapshot of the retraction corpus for
bulk checking, privacy, and offline use. Updates are incremental, adding new
retractions rather than re-downloading everything.retraction_cache_dir() reports where the snapshot lives, and
retraction_clear_cache() removes it. Offline mode is fully local by default;
an optional notice (options(retraction.check_freshness = TRUE)) warns when
the snapshot has fallen behind the live database.retraction_result: a tidy tibble, one row per reference,
with the retraction status, an is_retracted flag, a match confidence, the
retraction date, the reason, and which sources confirmed it. It has print(),
summary(), as.data.frame(), and as_tibble() methods, and retracted()
returns just the flagged rows.render_report() writes a self-contained HTML report, or a Markdown report
with format = "md".retraction_example, lets examples and tests run without
network access.explain_result() gives a plain-language sentence per reference: what matched,
on which identifier, at what confidence, which sources confirmed, and any
disagreement.compare_sources() returns the rows where the selected sources disagreed.exposure_score() summarizes a document's retraction exposure with proper
denominators (checked, unchecked, possible), not a bare flagged rate.classify_timing() labels each citation relative to the document's date
(conservatively, document_after_retraction, unless you supply per-citation
dates), to distinguish work cited before vs after its retraction.snapshot_info() reports which retraction-database version an offline check
ran against; badge_json() writes a shields.io endpoint for a README badge.retraction_watch_save() / retraction_watch_diff() register a bibliography
and later report references that have become retracted since, keyed on
normalized identifiers so re-ordering does not confuse the diff.check_included_studies() checks a review's included-study identifiers,
deduplicating and reporting checked/unchecked/retracted counts, since a
retracted included trial can invalidate a pooled estimate.retraction_scan() and retraction_main() power a command-line check that
exits non-zero per a fail_policy() (flagged, possible, unchecked,
error) and fails closed: a missing file or a fetch error is an error,
never a silently clean pass.retraction_knit_check() gates a knitr/Quarto render on retracted citations.inst/actions/action.yml) fails CI on retracted citations.check_dois(), check_refs(), check_file(), and check_bib() gain
strict = TRUE, which errors when a reference could not be checked (and, for
check_file(), when the file is missing or yields no references) rather than
returning a clean-looking result.export_result() writes CSV, JSON, or Excel; annotate_bib() writes a
bibliography back out with retracted entries marked (idempotently).suggest_alternatives() returns the records the corpus links to a retracted
work (a correction or reinstatement) to help decide what to cite instead.author_retractions() and journal_retractions() query the corpus by author
or journal; primary_reason_bucket() / reason_buckets() group free-text
retraction reasons into a coarse taxonomy.title_exact tier: an exact title, year, and
first author (with a short-title guard) is asserted rather than only flagged
as "possible".