R/log_transform.R
883f7f27
 #' log transform
 #'
 #' applies a log transform to the input data
 #' @export log_transform
 log_transform<-setClass(
   "log_transform",
   contains = c('method'),
   slots=c(params.base='entity',
           outputs.transformed='entity'
   ),
 
   prototype=list(name = 'logarithm transform',
                  description = 'applies a log tranform to the data.',
                  type = 'transform',
                  predicted = 'transformed',
                  params=c('base'),
                  outputs=c('transformed'),
 
                  params.qc_label=entity(name = 'logarithm base',
                                         description = 'The base of the logarithm used for the tranform.',
                                         value = 10,
                                         type='numeric'),
 
                  outputs.transformed=entity(name = 'log transformed dataset',
                                             description = 'A dataset object containing the log transformed data.',
                                             type='dataset',
                                             value=dataset()
                  )
   )
 )
 
 #' @export
 setMethod(f="method.apply",
           signature=c("log_transform","dataset"),
           definition=function(M,D)
           {
             opt=param.list(M)
 
             smeta=dataset.sample_meta(D)
             x=dataset.data(D)
 
             out = log(x,base = opt$base)
             dataset.data(D) = as.data.frame(out)
 
             output.value(M,'transformed') = D
 
             return(M)
           }
 )