## ----style, echo = FALSE, results = 'asis'------------------------------------ BiocStyle::markdown() ## ----compound_tbl, message = FALSE, warnings = FALSE-------------------------- library(CompoundDb) ## Locate the file hmdb_file <- system.file("sdf/HMDB_sub.sdf.gz", package = "CompoundDb") ## Extract the data cmps <- compound_tbl_sdf(hmdb_file) ## ----cmps--------------------------------------------------------------------- cmps ## ----msms_spectra, message = FALSE-------------------------------------------- ## Locate the folder with the xml files xml_path <- system.file("xml", package = "CompoundDb") spctra <- msms_spectra_hmdb(xml_path) ## ----metadata, message = FALSE------------------------------------------------ metad <- make_metadata(source = "HMDB", url = "http://www.hmdb.ca", source_version = "4.0", source_date = "2017-09", organism = "Hsapiens") ## ----createCompDb------------------------------------------------------------- db_file <- createCompDb(cmps, metadata = metad, msms_spectra = spctra, path = tempdir()) ## ----CompDb------------------------------------------------------------------- cmpdb <- CompDb(db_file) cmpdb ## ----------------------------------------------------------------------------- tables(cmpdb) ## ----compounds---------------------------------------------------------------- compounds(cmpdb, columns = c("name", "formula", "exactmass")) ## ----spectra, message = FALSE------------------------------------------------- library(Spectra) sps <- Spectra(cmpdb) sps ## ----spectraVariables--------------------------------------------------------- spectraVariables(sps) ## ----------------------------------------------------------------------------- sps$collisionEnergy ## ----------------------------------------------------------------------------- mz(sps) ## m/z of the 2nd spectrum mz(sps)[[2]] ## ----spectra-selected--------------------------------------------------------- sps <- Spectra(cmpdb, filter = ~ compound_id == "HMDB0000001", columns = c(tables(cmpdb)$msms_spectrum, "name", "inchikey")) sps ## ----------------------------------------------------------------------------- spectraVariables(sps) ## ----------------------------------------------------------------------------- sps$inchikey ## ----createCompoundDbPackage, warning = FALSE--------------------------------- createCompDbPackage( db_file, version = "0.0.1", author = "J Rainer", path = tempdir(), maintainer = "Johannes Rainer ") ## ----------------------------------------------------------------------------- cmps <- data.frame( compound_id = c("CP_0001", "CP_0002", "CP_0003", "CP_0004"), name = c("A", "B", "C", "D"), inchi = NA_character_, inchikey = NA_character_, formula = NA_character_, exactmass = c(123.4, 234.5, 345.6, 456.7), compound_group = c("G01", "G02", "G01", "G03") ) ## ----------------------------------------------------------------------------- cmps$synonyms <- list( c("a", "AA", "aaa"), c(), c("C", "c"), ("d") ) ## ----------------------------------------------------------------------------- metad <- make_metadata(source = "manually defined", url = "", source_version = "1.0.0", source_date = "2022-03-01", organism = NA_character_) db_file <- createCompDb(cmps, metadata = metad, path = tempdir(), dbFile = "CompDb.test.sqlite") ## ----------------------------------------------------------------------------- cdb <- CompDb(db_file, flags = RSQLite::SQLITE_RW) cdb ## ----------------------------------------------------------------------------- compounds(cdb) ## ----------------------------------------------------------------------------- compounds(cdb, filter = ~ name %in% c("B", "A")) ## ----------------------------------------------------------------------------- #' Define basic spectra variables df <- DataFrame(msLevel = 2L, precursorMz = c(124.4, 124.4, 235.5)) #' Add m/z and intensity information for each spectrum df$mz <- list( c(3, 20, 59.1), c(2, 10, 30, 59.1), c(100, 206, 321.1)) df$intensity <- list( c(10, 13, 45), c(5, 8, 9, 43), c(10, 20, 400)) #' Create the Spectra object sps <- Spectra(df) ## ----------------------------------------------------------------------------- compounds(cdb, "compound_id") sps$compound_id <- c("CP_0001", "CP_0001", "CP_0002") ## ----------------------------------------------------------------------------- sps$instrument <- "AB Sciex TripleTOF 5600+" ## ----------------------------------------------------------------------------- cdb <- insertSpectra(cdb, spectra = sps, columns = c("compound_id", "msLevel", "precursorMz", "instrument")) cdb ## ----------------------------------------------------------------------------- Spectra(cdb, filter = ~ name == "A") ## ----mona-import, message = FALSE--------------------------------------------- mona_sub <- system.file("sdf/MoNa_export-All_Spectra_sub.sdf.gz", package = "CompoundDb") mona_data <- import_mona_sdf(mona_sub) ## ----mona-metadata------------------------------------------------------------ metad <- make_metadata(source = "MoNa", url = "http://mona.fiehnlab.ucdavis.edu/", source_version = "2018.11", source_date = "2018-11", organism = "Unspecified") mona_db_file <- createCompDb(mona_data$compound, metadata = metad, msms_spectra = mona_data$msms_spectrum, path = tempdir()) ## ----mona-compounds----------------------------------------------------------- mona <- CompDb(mona_db_file) compounds(mona) ## ----------------------------------------------------------------------------- dbfile <- tempfile() mydb <- emptyCompDb(dbfile) mydb ## ----------------------------------------------------------------------------- cmp <- data.frame(compound_id = c("1", "2"), name = c("Caffeine", "Glucose"), formula = c("C8H10N4O2", "C6H12O6"), exactmass = c(194.080375584, 180.063388116)) mydb <- insertCompound(mydb, cmp) mydb ## ----message = FALSE---------------------------------------------------------- library(MsBackendMgf) caf_ms2 <- Spectra(system.file("mgf", "caffeine.mgf", package = "CompoundDb"), source = MsBackendMgf()) caf_ms2 ## ----------------------------------------------------------------------------- spectraVariables(caf_ms2) caf_ms2$rtime ## ----------------------------------------------------------------------------- caf_ms2$compound_id <- "1" ## ----------------------------------------------------------------------------- mydb <- insertSpectra(mydb, caf_ms2, columns = c("compound_id", "msLevel", "splash", "precursorMz", "collisionEnergy")) mydb ## ----------------------------------------------------------------------------- compounds(mydb) sps <- Spectra(mydb) sps$name ## ----------------------------------------------------------------------------- cmps <- data.frame(compound_id = "3", name = "X003", formula = "C5H2P3O", extra_field = "artificial compound") mydb <- insertCompound(mydb, cmps, addColumns = TRUE) compounds(mydb) ## ----------------------------------------------------------------------------- compounds(mydb, columns = c("compound_id", "name")) ## ----------------------------------------------------------------------------- mydb <- deleteCompound(mydb, ids = "3") compounds(mydb) ## ----------------------------------------------------------------------------- mydb <- deleteCompound(mydb, ids = "1", recursive = TRUE) compounds(mydb) Spectra(mydb) ## ----sessioninfo, echo=FALSE-------------------------------------------------- sessionInfo()