Nothing
arrange.GMQLDataset <- function(.data, metadata_ordering = NULL,
regions_ordering = NULL, fetch_opt = "", num_fetch = 0L,
reg_fetch_opt = "", reg_num_fetch = 0L)
{
ptr_data <- value(.data)
gmql_order(ptr_data, metadata_ordering, regions_ordering,
fetch_opt, num_fetch, reg_fetch_opt, reg_num_fetch)
}
#' Method arrange
#'
#' @description Wrapper to GMQL ORDER operator
#'
#' @description It is used to order either samples or sample regions or both,
#' according to a set of metadata and/or region attributes.
#' Order can be specified as ascending / descending for every attribute.
#' The number of samples and their regions remain the same
#' (unless fetching options are specified), as well as their attributes, but
#' a new ordering metadata and/or region attribute is added. Sorted
#' samples or regions have a new attribute "_order", added to their metadata,
#' or "order" added to their regions, or to both of them as specified in input.
#'
#' @importFrom rJava J .jnull .jarray
#' @importFrom dplyr arrange
#'
#' @param .data GMQLDataset class object
#' @param metadata_ordering list of ordering functions containing name of
#' metadata attribute.
#' The functions available are: \code{\link{ASC}}, \code{\link{DESC}}.
#' If NULL, fetch_opt and num_fetch are not considered
#' @param fetch_opt string indicating the option used to fetch the
#' first k samples; it can assume the values:
#' \itemize{
#' \item{mtop: it fetches the first k samples}
#' \item{mtopp: it fetches the first k percentage of samples.}
#' \item{mtopg: it fetches the first k samples in each group.}
#'
#' }
#' if NULL, \emph{num_fetch} is not considered
#'
#' @param num_fetch integer value identifying the number of samples to fetch;
#' by default it is 0, that means all samples are fetched
#'
#' @param regions_ordering list of ordering functions containing name of
#' region attribute.
#' The functions available are: \code{\link{ASC}}, \code{\link{DESC}}.
#' If NULL, reg_fetch_opt and reg_num_fetch are not considered
#'
#' @param reg_fetch_opt string indicating the option used to fetch the
#' first k regions; it can assume the values:
#' \itemize{
#' \item{rtop: it fetches the first k regions.}
#' \item{rtopp: it fetches the first k percentage of regions.}
#' \item{rtopg: it fetches the first k regions in each group.}
#' }
#' if NULL, \emph{reg_num_fetch} is not considered
#'
#' @param reg_num_fetch integer value identifying the number of regions to
#' fetch; by default it is 0, that means all regions are fetched
#'
#' @return GMQLDataset object. It contains the value to use as input
#' for the subsequent GMQLDataset method
#'
#' @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 file as a GMQL dataset named
#' ## "data" using CustomParser
#'
#' init_gmql()
#' test_path <- system.file("example", "DATASET", package = "RGMQL")
#' data = read_gmql(test_path)
#'
#' ## The following statement orders the samples according to the Region_Count
#' ## metadata attribute and takes the two samples that have the highest count.
#'
#' o = arrange(data, list(ASC("Region_Count")), fetch_opt = "mtop",
#' num_fetch = 2)
#'
#' @name arrange
#' @rdname arrange
#' @aliases arrange,GMQLDataset-method
#' @aliases arrange-method
#' @export
setMethod("arrange", "GMQLDataset", arrange.GMQLDataset)
gmql_order <- function(input_data, metadata_ordering, regions_ordering,
fetch_opt, num_fetch, reg_fetch_opt, reg_num_fetch)
{
if(!is.null(fetch_opt) && !identical(fetch_opt,""))
fetch_opt <- .check_option(fetch_opt)
else
fetch_opt <- .jnull("java/lang/String")
if(!is.null(num_fetch))
.check_opt_value(num_fetch)
else
num_fetch <- 0L
if(!is.null(reg_num_fetch))
.check_opt_value(reg_num_fetch)
else
reg_num_fetch <- 0L
if(!is.null(reg_fetch_opt) && !identical(reg_fetch_opt,""))
reg_fetch_opt <- .check_option(reg_fetch_opt)
else
reg_fetch_opt <- .jnull("java/lang/String")
if(!is.null(metadata_ordering))
{
meta_matrix <- .ordering_meta(metadata_ordering)
meta_matrix <- .jarray(meta_matrix, dispatch = TRUE)
}
else
{
num_fetch <- 0L
fetch_opt <- .jnull("java/lang/String")
meta_matrix <- .jnull("java/lang/String")
}
if(!is.null(regions_ordering))
{
region_matrix <- .ordering_meta(regions_ordering)
region_matrix <- .jarray(region_matrix, dispatch = TRUE)
}
else
{
reg_num_fetch <- 0L
reg_fetch_opt <- .jnull("java/lang/String")
region_matrix <- .jnull("java/lang/String")
}
WrappeR <- J("it/polimi/genomics/r/Wrapper")
response <- WrappeR$order(meta_matrix, fetch_opt, as.integer(num_fetch),
reg_fetch_opt, as.integer(reg_num_fetch),
region_matrix, input_data)
error <- strtoi(response[1])
val <- response[2]
if(error)
stop(val)
else
GMQLDataset(val)
}
.ordering_meta <- function(ordering)
{
order_matrix <- do.call(rbind, ordering)
order_matrix
}
.check_option <- function(opt)
{
opt <- tolower(opt)
if(!opt %in% c("mtop", "mtopp", "mtopg", "rtop", "rtopp", "rtopg"))
stop("option not admissable")
opt
}
.check_opt_value <- function(opt_value)
{
if(!is.numeric(opt_value))
stop("no valid data")
if(length(opt_value)>1)
stop("no multiple value")
}
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.