## ----include = FALSE---------------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>", warning = FALSE ) data.table::setDTthreads(2) ## ----setup-------------------------------------------------------------------- library(OpenSpecy) ## ----mini-library-read-------------------------------------------------------- mini_files <- c( read_extdata("raman_hdpe.csv"), read_extdata("ftir_ldpe_soil.asp"), read_extdata("raman_atacamit.spc") ) mini_sources <- lapply(mini_files, read_any) mini_sources <- lapply(mini_sources, function(x) { x$metadata$intensity_units <- "absorbance" attr(x, "intensity_unit") <- "absorbance" x }) mini_raw <- c_spec(mini_sources, range = "common", res = 6) check_OpenSpecy(mini_raw) dim(mini_raw$spectra) mini_raw$metadata[, "file_name", with = FALSE] ## ----mini-library-template---------------------------------------------------- template <- make_lib_lookup_template( mini_raw, columns = "file_name", add = c("material", "material_type") ) template ## ----mini-library-join-------------------------------------------------------- lookup <- data.table::data.table( file_name = basename(mini_files), library_type = c("example", "example", "example"), spectrum_type = c("raman", "ftir", "raman"), material = c("hdpe", "ldpe in soil", "atacamite") ) hierarchy <- data.table::data.table( material = c("hdpe", "ldpe in soil", "atacamite"), material_class = c("polyethylene", "polyethylene", "copper mineral"), material_type = c("plastic", "plastic", "mineral") ) join_lib_metadata(mini_raw, lookup, by = "file_name", require_complete = TRUE)$metadata[ , c("file_name", "library_type", "spectrum_type", "material"), with = FALSE ] ## ----metadata-name-lookup----------------------------------------------------- name_lookup <- lib_metadata_name_lookup( project_code = c("campaign id", "study code"), regex = list(instrument_mode = "^method_[0-9]+$") ) name_lookup[ canonical_name %in% c("material_color", "number_of_accumulations") ] lib_clean_name(c("User Name", "Laser (%)", "Method...3")) ## ----mini-library-build------------------------------------------------------- mini_libs <- build_lib( mini_files, recipes = list( raw = list(), derivative = list( conform_spec = FALSE, smooth_intens = TRUE, smooth_intens_args = list(window = 15, derivative = 1), make_rel = TRUE ), nobaseline = list( conform_spec = FALSE, smooth_intens = FALSE, subtr_baseline = TRUE, make_rel = TRUE ) ), metadata_lookups = lookup, material_hierarchy = hierarchy, clean_metadata_values = TRUE, convert_intensity = FALSE, assess = TRUE, dedupe = FALSE ) names(mini_libs) check_OpenSpecy(mini_libs$raw) check_OpenSpecy(mini_libs$derivative) attr(mini_libs$derivative, "derivative_order") attr(mini_libs$nobaseline, "baseline") mini_libs$raw$metadata[ , .(file_name, material, material_class, material_type, sn, assessment_flag, assessment_checks) ] ## ----mini-library-prune------------------------------------------------------- pruned <- prune_lib( mini_libs$derivative, min_n = 1, return = "report", progress = FALSE ) pruned$summary pruned$schedule pruned$excluded_classes ## ----cross-class-prune-policy, eval=FALSE------------------------------------- # prune_lib( # reference_library, # cross_class = TRUE, # cross_class_threshold = 0.9 # ) ## ----official-call-shape, eval=FALSE------------------------------------------ # reference_library_build <- build_lib( # files, # output_dir = output_dir, # previous_library_dir = "system", # remove_other = TRUE # ) ## ----downstream-rebuild-shape, eval=FALSE------------------------------------- # updated_reference_library_build <- rebuild_lib_artifacts( # completed_build_dir, # output_dir = downstream_output_dir, # previous_library_dir = "system" # )