--- title: "Using a custom controlled vocabulary for rMZQC" author: "Chris Bielow " date: '`r Sys.Date()`' output: html_document: default pdf_document: null vignette: > %\VignetteIndexEntry{Using a custom controlled vocabulary for rMZQC} %\VignetteEngine{knitr::rmarkdown} \usepackage[utf8]{inputenc} --- # Using a custom controlled vocabulary for rMZQC This vignette serves as a guide for R users to use a custom CV before creating an mzQC document. Warning: you should settle on a CV before instantiating any mzQC objects, since this ensures that all CV terms are consistent (and checked for existance) and that the CV meta information within the mzQC document is accurate. **Target Audience:** R users ## Create a minial mzQC document with a custom CV Let's first consider what happens by default: ```{r, eval=TRUE} library(rmzqc) print(getCVInfo()) ## test if the default CV is usable toQCMetric(id = "MS:4000059", value = 13405) ## number of MS1 scans ``` However, if you happen to run this code without an internet connection, it will fall back to the PSI-MS CV which is shipped with the rmzqc package (which may not contain the latest CV terms) ```{r, eval=TRUE} ## With internet: myCV = getCVSingleton() myCV$setData(getCVDictionary("latest")) ## this is done internally by default when you load the package cat("Number of entries in latest CV: ", nrow(getCVSingleton()$getCV()), "\n") print(getCVInfo()) ## simulate missing internet connection by invoking the function manually myCV$setData(getCVDictionary("local")) cat("Number of entries in local CV: ", nrow(getCVSingleton()$getCV()), "\n") print(getCVInfo()) ``` Now, the package's PSI-MS CV might still not suit you, and you want to use the latest unpublished CV, which you downloaded somewhere, or which you handcrafted for testing. Then simply use a custom .obo file: ```{r, eval=TRUE} myOBO = system.file("./cv/psi-ms.obo", package="rmzqc") ## we will use a local file, but you can point to anything you have (even URI's) myCV$setData(getCVDictionary("custom", myOBO)) cat("Number of entries in custom CV: ", nrow(getCVSingleton()$getCV()), "\n") print(getCVInfo()) ## you may want to change the CV-entries, or URI or version manually, before creating an mzQC file: newCV = list(CV = myCV$getData()$CV, URI = "https://myURI.com", version = "9.9.2") myCV$setData(newCV) print(getCVInfo()) ```