mirror of
https://github.com/johrpan/geposan.git
synced 2025-10-26 10:47:25 +01:00
Restructure classes and their responsibilities
This commit is contained in:
parent
01ec301d6d
commit
e2b93babe5
27 changed files with 974 additions and 634 deletions
67
R/method.R
Normal file
67
R/method.R
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
#' Describe a new method for analyzing gene position data.
|
||||
#'
|
||||
#' @param id Unique identifier for the method.
|
||||
#' @param name Human readable name.
|
||||
#' @param description Slightly longer description.
|
||||
#' @param func Function to apply the method. The function should accept two
|
||||
#' parameters: an object of class `geposan_preset` as input and a function to
|
||||
#' report progress information to as a numeric value. The return value should
|
||||
#' be an object of class `geposan_result`.
|
||||
#'
|
||||
#' @return An object of class `geposan_method`.
|
||||
#'
|
||||
#' @export
|
||||
method <- function(id, name, description, func) {
|
||||
stopifnot(is.character(id) & length(id) == 1)
|
||||
stopifnot(is.character(name) & length(name) == 1)
|
||||
stopifnot(is.character(description) & length(description) == 1)
|
||||
stopifnot(is.function(func))
|
||||
|
||||
structure(
|
||||
list(
|
||||
id = id,
|
||||
name = name,
|
||||
description = description,
|
||||
func = func
|
||||
),
|
||||
class = "geposan_method"
|
||||
)
|
||||
}
|
||||
|
||||
#' Get a list of all available methods.
|
||||
#'
|
||||
#' @export
|
||||
all_methods <- function() {
|
||||
list(
|
||||
clustering(),
|
||||
correlation(),
|
||||
neural(),
|
||||
adjacency(),
|
||||
proximity()
|
||||
)
|
||||
}
|
||||
|
||||
#' Print a method object.
|
||||
#'
|
||||
#' @param x The method to print.
|
||||
#' @param ... Other parameters.
|
||||
#'
|
||||
#' @seealso [method()]
|
||||
#'
|
||||
#' @export
|
||||
print.geposan_method <- function(x, ...) {
|
||||
cat(sprintf(
|
||||
paste0(
|
||||
"geposan method:",
|
||||
"\n Method ID: %s",
|
||||
"\n Name: %s",
|
||||
"\n Description: %s",
|
||||
"\n"
|
||||
),
|
||||
x$id,
|
||||
x$name,
|
||||
x$description
|
||||
))
|
||||
|
||||
invisible(x)
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue