Mercurial > repos > melpetera > testtest
view Testtest/GCMS-test_settings.R @ 0:40de28c7d3fb draft
Uploaded
author | melpetera |
---|---|
date | Thu, 23 Nov 2017 08:50:14 -0500 |
parents | |
children |
line wrap: on
line source
# author: Pauline Ribeyre ##################### # required packages # ##################### library("metaMS") # provides "metaMSsettings" class #################### # default settings # #################### # PeakPicking PeakPicking.method = "matchedFilter" PeakPicking.step = 0.05 PeakPicking.steps = 2 PeakPicking.mzdiff = 0.5 PeakPicking.fwhm = 5 PeakPicking.snthresh = 2 PeakPicking.max = 500 # Alignment # ? # CAMERA CAMERA.perfwhm = 1 # DBconstruction DBconstruction.minintens = 0.0 DBconstruction.rttol = 0.1 DBconstruction.intensityMeasure = "maxo" DBconstruction.DBthreshold = .80 DBconstruction.minfeat = 5 # match2DB match2DB.rtdiff = 0.5 match2DB.minfeat = 5 # match2DB.rtval = ? # match2DB.mzdiff = ? # match2DB.ppm = ? match2DB.simthresh = 0.8 match2DB.timeComparison = "rt" match2DB.RIdiff = 5 # betweenSamples betweenSamples.min.class.fraction = 0.8 # pools # betweenSamples.min.class.fraction = 0.5 # samples betweenSamples.min.class.size = 5 betweenSamples.timeComparison = "rt" betweenSamples.rtdiff = 0.5 betweenSamples.RIdiff = 2 # default setting # betweenSamples.RIdiff = 0.05 # w4m setting betweenSamples.simthresh = 0.8 # matchIrrelevants # matchIrrelevants.irrelevantClasses = c("Bleeding", "Plasticizers") # matchIrrelevants.RIdiff = ? # matchIrrelevants.rtdiff = ? # matchIrrelevants.simthresh = ? # matchIrrelevants.timeComparison = "RI" # TODO RI option ################### # settings object # ################### # settings <- metaMSsettings("protocolName" = "settings", "chrom" = "GC") settings <- metaMSsettings("protocolName" = "settings", "chrom" = "GC", PeakPicking = list( method = PeakPicking.method, step = PeakPicking.step, steps = PeakPicking.steps, mzdiff = PeakPicking.mzdiff, fwhm = PeakPicking.fwhm, snthresh = PeakPicking.snthresh, max = PeakPicking.max), CAMERA = list(perfwhm = CAMERA.perfwhm)) metaSetting(settings, "DBconstruction") <- list( minintens = DBconstruction.minintens, rttol = DBconstruction.rttol, intensityMeasure = DBconstruction.intensityMeasure, DBthreshold = DBconstruction.DBthreshold, minfeat = DBconstruction.minfeat) metaSetting(settings, "match2DB") <- list( simthresh = match2DB.simthresh, timeComparison = match2DB.timeComparison, rtdiff = match2DB.rtdiff, RIdiff = match2DB.RIdiff, minfeat = match2DB.minfeat) metaSetting(settings, "betweenSamples") <- list( min.class.fraction = betweenSamples.min.class.fraction, min.class.size = betweenSamples.min.class.size, timeComparison = betweenSamples.timeComparison, rtdiff = betweenSamples.rtdiff, RIdiff = betweenSamples.RIdiff, simthresh = betweenSamples.simthresh) # metaSetting(GALAXY.GC, "matchIrrelevants") <- list( # irrelevantClasses = matchIrrelevants.irrelevantClasses, # RIdiff = matchIrrelevants.RIdiff, # rtdiff = matchIrrelevants.rtdiff, # simthresh = matchIrrelevants.simthresh, # timeComparison = matchIrrelevants.timeComparison) # best settings pool settings@betweenSamples.min.class.size = 5 settings@PeakPicking$fwhm = 6 settings@PeakPicking$mzdiff = -0.5 settings@betweenSamples.min.class.fraction = 0.8 settings@betweenSamples.simthresh = 0.7 settings@betweenSamples.rtdiff = 0.05 # best settings samples settings@betweenSamples.min.class.size = 5 settings@PeakPicking$fwhm = 6 settings@PeakPicking$mzdiff = 0.5 settings@betweenSamples.min.class.fraction = 0.5 settings@betweenSamples.simthresh = 0.7 settings@betweenSamples.rtdiff = 0.05 ################# # vary settings # ################# pop <- function(list) { # Removes the last item from a list. # # Args: # list: the list to pop. # # Returns: # The last item of the list before it was removed. val <- list[length(list)] assign(as.character(substitute(list)), list[-length(list)], parent.frame()) return (val) } vary_list_to_settings <- function(settings, vary_list, title = "", titles_to_test = c(), settings_to_test = c()) { # Reads the list of parameters to vary and their ranges and builds a list of file titles and settings from it. # # Args: # settings: default settings for runGC. # vary_list: list of parameters to vary and the values each parameter must take. # title: title of the current file (concatenation of the values taken by the varied parameters). # titles_to_test: list of titles (one for each settings set) (concatenation of the values taken by the varied parameters). # settings_to_test: list of settings sets for runGC. # # Returns: # A list containing: # 1: the list of file titles ; # 2: the list of runGC() settings. if (length(vary_list) == 0) { # if there are no parameters to vary titles_to_test <- c(titles_to_test, "default_settings") settings_to_test <- c(settings_to_test, settings) } else { param <- pop(vary_list)[[1]] title <- paste0(title, param[1]) setting <- param[2] range <- as.numeric(param[3:length(param)]) # for each possible value of the parameter for (p in range) { # change the settings isSlot <- regexpr("\\$", setting)[1] if (isSlot == -1) { # the parameter is a slot in class metaMSsettings slot(settings, setting) <- p } else { # the parameter is not a slot in class metaMSsettings slot(settings, substr(setting, 1, isSlot - 1))[substr(setting, isSlot + 1, nchar(setting))] <- p } new_title <- paste0(title, "=", p, "_") # save the settings in a list if (length(vary_list) == 0) { titles_to_test <- c(titles_to_test, new_title) settings_to_test <- c(settings_to_test, settings) } else { res <- vary_list_to_settings(settings, vary_list, new_title, titles_to_test, settings_to_test) titles_to_test <- res[[1]] settings_to_test <- res[[2]] } } # end for } # end else return (list(titles_to_test, settings_to_test)) } ############ # main # ############ # settings to vary and ranges of values res <- vary_list_to_settings(settings, vary_list) titles_to_test <- res[[1]] settings_to_test <- res[[2]]