## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(collapse = TRUE, comment = "#>")

## ----setup--------------------------------------------------------------------
library(biobouncer)

## ----sources------------------------------------------------------------------
sources()

## ----pattern------------------------------------------------------------------
check_id(
  c("MONDO:0005148", "mondo:5148", "GO:0006915"),
  source_db = "mondo"
)

## ----is-valid-----------------------------------------------------------------
is_valid_id(c("P04637", "p04637"), source_db = "uniprot")

## ----cache--------------------------------------------------------------------
check_id(
  c("MONDO:0005148", "MONDO:9999999"),
  source_db = "mondo",
  how = "cache",
  version = "sample"
)

## ----snapshots----------------------------------------------------------------
biobouncer_snapshots()

## ----remote, eval = FALSE-----------------------------------------------------
# # Live check against the Ensembl REST API.
# check_id("ENSG00000139618", source_db = "ensembl", how = "remote")
# 
# # existence mode uses a snapshot when one is available and otherwise
# # falls back to remote.
# check_id("MONDO:0005148", source_db = "mondo", how = "existence")

## ----species------------------------------------------------------------------
# ENSMUSG is a mouse gene id.
is_valid_id("ENSMUSG00000059552", source_db = "ensembl", species = "mus_musculus")
is_valid_id("ENSMUSG00000059552", source_db = "ensembl", species = "homo_sapiens")

## ----hgvs---------------------------------------------------------------------
is_valid_id(
  c(
    "NM_004006.2:c.4375C>T",
    "NP_003997.1:p.(Gly56Ala)",
    "NM_004006.2:c.76insG"
  ),
  source_db = "hgvs"
)

## ----report-------------------------------------------------------------------
genes <- c("TP53", "MLL", "notagene", NA)
report_id(genes, "hgnc", how = "cache")

## ----repair-------------------------------------------------------------------
repair_id(genes, "hgnc", how = "cache")

## ----checkmate----------------------------------------------------------------
# TRUE when all are valid, otherwise a message.
check_valid_id(c("MONDO:0005148", "mondo:5148"), "mondo")

# A single logical.
test_valid_id("MONDO:0005148", "mondo")

## ----predicate----------------------------------------------------------------
is_mondo <- id_predicate("mondo")
ids <- c("MONDO:0005148", "mondo:5148", "MONDO:0018076")
ids[is_mondo(ids)]

## ----shiny--------------------------------------------------------------------
rule <- sv_biobouncer("mondo")
rule("MONDO:0005148")
rule("mondo:5148")

## ----synthesize---------------------------------------------------------------
rows <- synthesize_ids("mondo")
rows[, c("input", "category", "suggestion")]

# Feed the column straight into a report.
report_id(rows$input, "mondo")

