mirror of
				https://github.com/johrpan/geposan.git
				synced 2025-10-26 10:47:25 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			68 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			R
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			R
		
	
	
	
	
	
| #' 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(),
 | |
|     species_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)
 | |
| }
 |