Nothing
#############################
# AGGREGATES #
############################
AGGREGATES <- function(value)
{
op_list <- list(value = value)
## Set the name for the class
class(op_list) <- "AGGREGATES"
return(op_list)
}
check.META_AGGREGATES <- function(value)
{
if(is.character(value) && length(value)>1)
stop("value: no multiple string")
if(!is.character(value))
stop("value: is not a string")
}
META_AGGREGATES <- function(value)
{
op_list <- list(value = value)
## Set the name for the class
class(op_list) <- "META_AGGREGATES"
return(op_list)
}
print.META_AGGREGATES <- function(obj) {
res <- as.character(obj)
cat(res)
}
as.character.META_AGGREGATES <- function(obj) {
class <- class(obj)[1]
val <- obj$value
c(class,val)
}
take_value.META_AGGREGATES <- function(obj){
class <- class(obj)[1]
val <- obj$value
text <- switch(class,
"SUM" = paste0("sum_",val),
"MIN" = paste0("min_",val),
"MAX" = paste0("max_",val),
"COUNT" = paste0("count"),
"BAG" = paste0("bag_",val),
"BAGD" = paste0("bagd_",val),
"AVG" = paste0("avg_",val),
"STD" = paste0("std_"),
"MEDIAN" = paste0("median_",val),
"Q1" = paste0("q1_",val),
"Q2" = paste0("q2_"),
"Q3" = paste0("q3_",val)
)
text
}
#' AGGREGATES object class constructor
#'
#'
#' This class constructor is used to create instances of AGGREGATES object,
#' to be used in GMQL functions that require aggregate on value.
#'
#' \itemize{
#' \item{SUM: It prepares input parameter to be passed to the library
#' function sum, performing all the type conversions needed }
#' \item{COUNT: It prepares input parameter to be passed to the library
#' function count, performing all the type conversions needed }
#' \item{COUNTSAMP: It prepares input parameter to be passed to the library
#' function countsamp, performing all the type conversions needed.
#' It is used only with group_by functions}
#' \item{MIN: It prepares input parameter to be passed to the library
#' function minimum, performing all the type conversions needed }
#' \item{MAX: It prepares input parameter to be passed to the library
#' function maximum, performing all the type conversions needed }
#' \item{AVG: It prepares input parameter to be passed to the library
#' function mean, performing all the type conversions needed }
#' \item{MEDIAN: It prepares input parameter to be passed to the library
#' function median, performing all the type conversions needed }
#' \item{STD: It prepares input parameter to be passed to the library
#' function standard deviation, performing all the type conversions needed}
#' \item{BAG: It prepares input parameter to be passed to the library
#' function bag; this function creates comma-separated strings of
#' attribute values, performing all the type conversions needed}
#' \item{BAGD: It prepares input parameter to be passed to the library
#' function bagd; this function creates comma-separated strings of distinct
#' attribute values, performing all the type conversions needed}
#' \item{Q1: It prepares input parameter to be passed to the library
#' function fist quartile, performing all the type conversions needed}
#' \item{Q2: It prepares input parameter to be passed to the library
#' function second quartile, performing all the type conversions needed }
#' \item{Q3: It prepares input parameter to be passed to the library
#' function third quartile, performing all the type conversions needed }
#' }
#'
#' @param value string identifying name of metadata or region attribute
#'
#' @return Aggregate object
#'
#' @examples
#'
#' ## This statement initializes and runs the GMQL server for local execution
#' ## and creation of results on disk. Then, with system.file() it defines
#' ## the path to the folder "DATASET" in the subdirectory "example"
#' ## of the package "RGMQL" and opens such folder as a GMQL dataset
#' ## named "exp" using CustomParser
#'
#' init_gmql()
#' test_path <- system.file("example", "DATASET", package = "RGMQL")
#' exp = read_gmql(test_path)
#'
#' ## This statement copies all samples of exp dataset into res dataset, and
#' ## then calculates new metadata attribute sum_score for each of them:
#' ## sum_score is the sum of score values of the sample regions.
#'
#' res = extend(exp, sum_score = SUM("score"))
#'
#' ## This statement copies all samples of exp dataset into res dataset,
#' ## and then calculates new metadata attribute min_pvalue for each of them:
#' ## min_pvalue is the minimum pvalue of the sample regions.
#'
#' res = extend(exp, min_pvalue = MIN("pvalue"))
#'
#' ## This statement copies all samples of exp dataset into res dataset,
#' ## and then calculates new metadata attribute max_score for each of them:
#' ## max_score is the maximum score of the sample regions.
#'
#' res = extend(exp, max_score = MAX("score"))
#'
#' ## The following cover operation produces output regions where at least 2
#' ## and at most 3 regions of exp dataset overlap, having as resulting region
#' ## attribute the average signal of the overlapping regions;
#' ## the result has one sample for each input cell value.
#'
#' res = cover(exp, 2, 3, groupBy = conds("cell"), avg_signal = AVG("signal"))
#'
#' ## This statement copies all samples of 'exp' dataset into 'out' dataset,
#' ## and then for each of them it adds another metadata attribute, allScore,
#' ## which is the aggregation comma-separated list of all the values
#' ## that the region attribute score takes in the sample.
#'
#' out = extend(exp, allScore = BAG("score"))
#'
#' ## This statement counts the regions in each sample and stores their number
#' ## as value of the new metadata RegionCount attribute of the sample.
#'
#' out = extend(exp, RegionCount = COUNT())
#'
#' ## This statement copies all samples of exp dataset into res dataset,
#' ## and then calculates new metadata attribute std_score for each of them:
#' ## std_score is the standard deviation of the score values of the sample
#' ## regions.
#'
#' res = extend(exp, std_score = STD("score"))
#'
#' ## This statement copies all samples of exp dataset into res dataset,
#' ## and then calculates new metadata attribute m_score for each of them:
#' ## m_score is the median score of the sample regions.
#'
#' res = extend(exp, m_score = MEDIAN("score"))
#'
#'
#' @name AGGREGATES-Object
#' @aliases SUM
#' @rdname aggr-class
#' @export
#'
SUM <- function(value)
{
check.META_AGGREGATES(value)
list <- list(value = value)
## Set the name for the class
class(list) <- c("SUM","AGGREGATES","META_AGGREGATES")
return(list)
}
#' @name AGGREGATES-Object
#' @aliases COUNT
#' @rdname aggr-class
#' @export
#'
COUNT <- function()
{
list <- list()
## Set the name for the class
class(list) <- c("COUNT","AGGREGATES","META_AGGREGATES")
return(list)
}
as.character.COUNT <- function(obj) {
class <- class(obj)[1]
c(class,"")
}
check.COUNT <- function(obj){}
#' @name AGGREGATES-Object
#' @aliases COUNTSAMP
#' @rdname aggr-class
#' @export
#'
COUNTSAMP <- function()
{
list <- list()
## Set the name for the class
class(list) <- c("COUNTSAMP","AGGREGATES","META_AGGREGATES")
return(list)
}
as.character.COUNTSAMP <- function(obj) {
class <- class(obj)[1]
c(class,"")
}
check.COUNTSAMP <- function(obj){}
#' @name AGGREGATES-Object
#' @aliases MIN
#' @rdname aggr-class
#' @export
#'
MIN <- function(value)
{
check.META_AGGREGATES(value)
list <- list(value = value)
## Set the name for the class
class(list) <- c("MIN","AGGREGATES","META_AGGREGATES")
return(list)
}
#' @name AGGREGATES-Object
#' @aliases MAX
#' @rdname aggr-class
#' @export
#'
MAX <- function(value)
{
check.META_AGGREGATES(value)
list <- list(value = value)
## Set the name for the class
class(list) <- c("MAX","AGGREGATES","META_AGGREGATES")
return(list)
}
#' @name AGGREGATES-Object
#' @aliases AVG
#' @rdname aggr-class
#' @export
#'
AVG <- function(value)
{
check.META_AGGREGATES(value)
list <- list(value = value)
## Set the name for the class
class(list) <- c("AVG","AGGREGATES","META_AGGREGATES")
return(list)
}
#' @name AGGREGATES-Object
#' @aliases MEDIAN
#' @rdname aggr-class
#' @export
#'
MEDIAN <- function(value)
{
check.META_AGGREGATES(value)
list <- list(value = value)
## Set the name for the class
class(list) <- c("MEDIAN","AGGREGATES","META_AGGREGATES")
return(list)
}
#' @name AGGREGATES-Object
#' @aliases STD
#' @rdname aggr-class
#' @export
#'
STD <- function(value)
{
check.META_AGGREGATES(value)
list <- list(value = value)
## Set the name for the class
class(list) <- c("STD","META_AGGREGATES")
return(list)
}
#' @name AGGREGATES-Object
#' @aliases BAG
#' @rdname aggr-class
#' @export
#'
BAG <- function(value)
{
check.META_AGGREGATES(value)
list <- list(value = value)
## Set the name for the class
class(list) <- c("BAG","AGGREGATES","META_AGGREGATES")
return(list)
}
#' @name AGGREGATES-Object
#' @aliases BAGD
#' @rdname aggr-class
#' @export
#'
BAGD <- function(value)
{
check.META_AGGREGATES(value)
list <- list(value = value)
## Set the name for the class
class(list) <- c("BAGD","AGGREGATES","META_AGGREGATES")
return(list)
}
#' @name AGGREGATES-Object
#' @aliases Q1
#' @rdname aggr-class
#' @export
#'
Q1 <- function(value)
{
check.META_AGGREGATES(value)
list <- list(value = value)
## Set the name for the class
class(list) <- c("Q1","META_AGGREGATES")
return(list)
}
#' @name AGGREGATES-Object
#' @aliases Q2
#' @rdname aggr-class
#' @export
#'
Q2 <- function(value)
{
check.META_AGGREGATES(value)
list <- list(value = value)
## Set the name for the class
class(list) <- c("Q2","META_AGGREGATES")
return(list)
}
#' @name AGGREGATES-Object
#' @aliases Q3
#' @rdname aggr-class
#' @export
#'
Q3 <- function(value)
{
check.META_AGGREGATES(value)
list <- list(value = value)
## Set the name for the class
class(list) <- c("Q3","META_AGGREGATES")
return(list)
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.