# mzTab-M reference implementation and validation API.
#
# This is the mzTab-M reference implementation and validation API service.
#
# The version of the OpenAPI document: 2.0.0
# Contact: nils.hoffmann@cebitec.uni-bielefeld.de
# Generated by: https://openapi-generator.tech
#' @docType class
#' @title Sample
#' @description Sample Class
#' @format An \code{R6Class} generator object
#' @field id integer [optional]
#'
#' @field name character [optional]
#'
#' @field custom list( \link{Parameter} ) [optional]
#'
#' @field species list( \link{Parameter} ) [optional]
#'
#' @field tissue list( \link{Parameter} ) [optional]
#'
#' @field cell_type list( \link{Parameter} ) [optional]
#'
#' @field disease list( \link{Parameter} ) [optional]
#'
#' @field description character [optional]
#'
#'
#' @importFrom R6 R6Class
#' @importFrom jsonlite fromJSON toJSON
#' @export
Sample <- R6::R6Class(
'Sample',
public = list(
`id` = NULL,
`name` = NULL,
`custom` = NULL,
`species` = NULL,
`tissue` = NULL,
`cell_type` = NULL,
`disease` = NULL,
`description` = NULL,
#' @description Create a Sample
#' @param id Sample id.
#' @param name Sample name.
#' @param custom Custom parameters list( \link{Parameter} ).
#' @param species Species CV parameters list( \link{Parameter} ).
#' @param tissue Tissue CV parameters list( \link{Parameter} ).
#' @param cell_type Cell Type CV parameters list( \link{Parameter} ).
#' @param disease Disease CV parameters list( \link{Parameter} ).
#' @param description Description of the sample.
#' @param ... local optional variable arguments
#'
initialize = function(`id`=NULL, `name`=NULL, `custom`=NULL, `species`=NULL, `tissue`=NULL, `cell_type`=NULL, `disease`=NULL, `description`=NULL, ...){
local.optional.var <- list(...)
if (!is.null(`id`)) {
stopifnot(is.numeric(`id`), length(`id`) == 1)
self$`id` <- `id`
}
if (!is.null(`name`)) {
stopifnot(is.character(`name`), length(`name`) == 1)
self$`name` <- `name`
}
if (!is.null(`custom`)) {
stopifnot(is.vector(`custom`), length(`custom`) != 0)
sapply(`custom`, function(x) stopifnot(R6::is.R6(x)))
self$`custom` <- `custom`
}
if (!is.null(`species`)) {
stopifnot(is.vector(`species`), length(`species`) != 0)
sapply(`species`, function(x) stopifnot(R6::is.R6(x)))
self$`species` <- `species`
}
if (!is.null(`tissue`)) {
stopifnot(is.vector(`tissue`), length(`tissue`) != 0)
sapply(`tissue`, function(x) stopifnot(R6::is.R6(x)))
self$`tissue` <- `tissue`
}
if (!is.null(`cell_type`)) {
stopifnot(is.vector(`cell_type`), length(`cell_type`) != 0)
sapply(`cell_type`, function(x) stopifnot(R6::is.R6(x)))
self$`cell_type` <- `cell_type`
}
if (!is.null(`disease`)) {
stopifnot(is.vector(`disease`), length(`disease`) != 0)
sapply(`disease`, function(x) stopifnot(R6::is.R6(x)))
self$`disease` <- `disease`
}
if (!is.null(`description`)) {
stopifnot(is.character(`description`), length(`description`) == 1)
self$`description` <- `description`
}
},
#' @description Serialize to list object suitable for jsonlite
toJSON = function() {
SampleObject <- list()
if (!is.null(self$`id`)) {
SampleObject[['id']] <-
rmzTabM::safe_unbox(self$`id`)
}
if (!is.null(self$`name`)) {
SampleObject[['name']] <-
rmzTabM::safe_unbox(self$`name`)
}
if (!is.null(self$`custom`)) {
SampleObject[['custom']] <-
lapply(self$`custom`, function(x) x$toJSON())
}
if (!is.null(self$`species`)) {
SampleObject[['species']] <-
lapply(self$`species`, function(x) x$toJSON())
}
if (!is.null(self$`tissue`)) {
SampleObject[['tissue']] <-
lapply(self$`tissue`, function(x) x$toJSON())
}
if (!is.null(self$`cell_type`)) {
SampleObject[['cell_type']] <-
lapply(self$`cell_type`, function(x) x$toJSON())
}
if (!is.null(self$`disease`)) {
SampleObject[['disease']] <-
lapply(self$`disease`, function(x) x$toJSON())
}
if (!is.null(self$`description`)) {
SampleObject[['description']] <-
rmzTabM::safe_unbox(self$`description`)
}
SampleObject
},
#' @description Deserialize from jsonlite list object
#' @param SampleJson list object.
fromJSON = function(SampleJson) {
SampleObject <- jsonlite::fromJSON(SampleJson)
if (!is.null(SampleObject$`id`)) {
self$`id` <- SampleObject$`id`
}
if (!is.null(SampleObject$`name`)) {
self$`name` <- SampleObject$`name`
}
if (!is.null(SampleObject$`custom`)) {
self$`custom` <- ApiClient$new()$deserializeObj(SampleObject$`custom`, "array[Parameter]", loadNamespace("rmzTabM"))
}
if (!is.null(SampleObject$`species`)) {
self$`species` <- ApiClient$new()$deserializeObj(SampleObject$`species`, "array[Parameter]", loadNamespace("rmzTabM"))
}
if (!is.null(SampleObject$`tissue`)) {
self$`tissue` <- ApiClient$new()$deserializeObj(SampleObject$`tissue`, "array[Parameter]", loadNamespace("rmzTabM"))
}
if (!is.null(SampleObject$`cell_type`)) {
self$`cell_type` <- ApiClient$new()$deserializeObj(SampleObject$`cell_type`, "array[Parameter]", loadNamespace("rmzTabM"))
}
if (!is.null(SampleObject$`disease`)) {
self$`disease` <- ApiClient$new()$deserializeObj(SampleObject$`disease`, "array[Parameter]", loadNamespace("rmzTabM"))
}
if (!is.null(SampleObject$`description`)) {
self$`description` <- SampleObject$`description`
}
},
#' @description Serialize to JSON string.
toJSONString = function() {
jsoncontent <- c(
if (!is.null(self$`id`)) {
sprintf(
'"id":
%d
',
rmzTabM::safe_unbox(self$`id`)
)},
if (!is.null(self$`name`)) {
sprintf(
'"name":
"%s"
',
rmzTabM::safe_unbox(self$`name`)
)},
if (!is.null(self$`custom`)) {
sprintf(
'"custom":
%s
',
paste(sapply(self$`custom`, function(x) jsonlite::toJSON(x$toJSON(), auto_unbox=FALSE, null = "null", na = "null", digits = NA)), collapse=",")
)},
if (!is.null(self$`species`)) {
sprintf(
'"species":
%s
',
paste(sapply(self$`species`, function(x) jsonlite::toJSON(x$toJSON(), auto_unbox=FALSE, null = "null", na = "null", digits = NA)), collapse=",")
)},
if (!is.null(self$`tissue`)) {
sprintf(
'"tissue":
%s
',
paste(sapply(self$`tissue`, function(x) jsonlite::toJSON(x$toJSON(), auto_unbox=FALSE, null = "null", na = "null", digits = NA)), collapse=",")
)},
if (!is.null(self$`cell_type`)) {
sprintf(
'"cell_type":
%s
',
paste(sapply(self$`cell_type`, function(x) jsonlite::toJSON(x$toJSON(), auto_unbox=FALSE, null = "null", na = "null", digits = NA)), collapse=",")
)},
if (!is.null(self$`disease`)) {
sprintf(
'"disease":
%s
',
paste(sapply(self$`disease`, function(x) jsonlite::toJSON(x$toJSON(), auto_unbox=FALSE, null = "null", na = "null", digits = NA)), collapse=",")
)},
if (!is.null(self$`description`)) {
sprintf(
'"description":
"%s"
',
rmzTabM::safe_unbox(self$`description`)
)}
)
jsoncontent <- paste(jsoncontent, collapse = ",")
paste('{', jsoncontent, '}', sep = "")
},
#' @description Deserialize from JSON string
#' @param SampleJson SampleJson string
fromJSONString = function(SampleJson) {
SampleObject <- jsonlite::fromJSON(SampleJson)
self$`id` <- SampleObject$`id`
self$`name` <- SampleObject$`name`
self$`custom` <- ApiClient$new()$deserializeObj(SampleObject$`custom`, "array[Parameter]", loadNamespace("rmzTabM"))
self$`species` <- ApiClient$new()$deserializeObj(SampleObject$`species`, "array[Parameter]", loadNamespace("rmzTabM"))
self$`tissue` <- ApiClient$new()$deserializeObj(SampleObject$`tissue`, "array[Parameter]", loadNamespace("rmzTabM"))
self$`cell_type` <- ApiClient$new()$deserializeObj(SampleObject$`cell_type`, "array[Parameter]", loadNamespace("rmzTabM"))
self$`disease` <- ApiClient$new()$deserializeObj(SampleObject$`disease`, "array[Parameter]", loadNamespace("rmzTabM"))
self$`description` <- SampleObject$`description`
self
},
#' @description Serialize to data frame
toDataFrame = function() {
idPrefix <- paste0("sample[", self$`id`, "]")
elements <- data.frame(PREFIX=character(), KEY=character(), VALUE=character())
if (!is.null(self$`name`)) {
elements <-
rbind(elements,
list(
PREFIX = "MTD",
KEY = idPrefix,
VALUE = self$`name`
),
stringsAsFactors = FALSE)
}
if (!is.null(self$`custom`)) {
elements <-
rbind(elements,
lapply(seq_along(self$`custom`), function(idx, elements, idPrefix) {
list(PREFIX = "MTD", KEY=paste(idPrefix, paste0("custom[", idx, "]"), sep="-"), VALUE=elements[[idx]]$toString())
}, elements=self$`custom`, idPrefix=idPrefix) %>% dplyr::bind_rows(),
stringsAsFactors = FALSE)
}
if (!is.null(self$`species`)) {
elements <-
rbind(elements,
lapply(seq_along(self$`species`), function(idx, elements, idPrefix) {
list(PREFIX = "MTD", KEY=paste(idPrefix, paste0("species[", idx, "]"), sep="-"), VALUE=elements[[idx]]$toString())
}, elements=self$`species`, idPrefix=idPrefix) %>% dplyr::bind_rows(),
stringsAsFactors = FALSE)
}
if (!is.null(self$`tissue`)) {
elements <-
rbind(elements,
lapply(seq_along(self$`tissue`), function(idx, elements, idPrefix) {
list(PREFIX = "MTD", KEY=paste(idPrefix, paste0("tissue[", idx, "]"), sep="-"), VALUE=elements[[idx]]$toString())
}, elements=self$`tissue`, idPrefix=idPrefix) %>% dplyr::bind_rows(),
stringsAsFactors = FALSE)
}
if (!is.null(self$`cell_type`)) {
elements <-
rbind(elements,
lapply(seq_along(self$`cell_type`), function(idx, elements, idPrefix) {
list(PREFIX = "MTD", KEY=paste(idPrefix, paste0("cell_type[", idx, "]"), sep="-"), VALUE=elements[[idx]]$toString())
}, elements=self$`cell_type`, idPrefix=idPrefix) %>% dplyr::bind_rows(),
stringsAsFactors = FALSE)
}
if (!is.null(self$`disease`)) {
elements <-
rbind(elements,
lapply(seq_along(self$`disease`), function(idx, elements, idPrefix) {
list(PREFIX = "MTD", KEY=paste(idPrefix, paste0("disease[", idx, "]"), sep="-"), VALUE=elements[[idx]]$toString())
}, elements=self$`disease`, idPrefix=idPrefix) %>% dplyr::bind_rows(),
stringsAsFactors = FALSE)
}
if (!is.null(self$`description`)) {
elements <-
rbind(elements,
list(
PREFIX = "MTD",
KEY = paste(idPrefix, "description", sep = "-"),
VALUE = self$`description`
),
stringsAsFactors = FALSE)
}
elements
},
#' @description Deserialize from sample data frame
#' @param SampleDataFrame Sample data frame
fromDataFrame = function(SampleDataFrame) {
stopifnot(nrow(SampleDataFrame)==1)
if (rlang::has_name(SampleDataFrame, "id")) {
self$`id` <- as.numeric(SampleDataFrame$`id`)
}
columnNames <- colnames(SampleDataFrame)
if (rlang::has_name(SampleDataFrame, "name")) {
self$`name` <- SampleDataFrame$`name`
}
# extract potentially multiple columns with 'custom' prefix
customColumns <- columnNames[grepl("^custom", columnNames)]
if (length(customColumns) > 0) {
self$`custom` <- lapply(customColumns, function(x) {
param <- Parameter$new()
param$fromString(NULL, SampleDataFrame[[x]])
param
})
}
# extract potentially multiple columns with 'species' prefix
speciesColumns <- columnNames[grepl("^species", columnNames)]
if (length(speciesColumns) > 0) {
self$`species` <- lapply(speciesColumns, function(x) {
param <- Parameter$new()
param$fromString(NULL, SampleDataFrame[[x]])
param
})
}
# extract potentially multiple columns with 'tissue' prefix
tissueColumns <- columnNames[grepl("^tissue", columnNames)]
if (length(tissueColumns) > 0) {
self$`tissue` <- lapply(tissueColumns, function(x) {
param <- Parameter$new()
param$fromString(NULL, SampleDataFrame[[x]])
param
})
}
# extract potentially multiple columns with 'cell_type' prefix
cellTypeColumns <- columnNames[grepl("^cell\\_type", columnNames)]
if (length(cellTypeColumns) > 0) {
self$`cell_type` <- lapply(cellTypeColumns, function(x) {
param <- Parameter$new()
param$fromString(NULL, SampleDataFrame[[x]])
param
})
}
# extract potentially multiple columns with 'disease' prefix
diseaseColumns <- columnNames[grepl("^disease", columnNames)]
if (length(diseaseColumns) > 0) {
self$`disease` <- lapply(diseaseColumns, function(x) {
param <- Parameter$new()
param$fromString(NULL, SampleDataFrame[[x]])
param
})
}
if (rlang::has_name(SampleDataFrame, "description")) {
self$`description` <- SampleDataFrame$`description`
}
self
}
)
)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.