396 lines
15 KiB
YAML
396 lines
15 KiB
YAML
|
|
definitions:
|
||
|
|
Config:
|
||
|
|
description: "A Viash configuration is a YAML file which contains metadata to\
|
||
|
|
\ describe the behaviour and build target(s) of a component. \nWe commonly\
|
||
|
|
\ name this file `config.vsh.yaml` in our examples, but you can name it however\
|
||
|
|
\ you choose. \n"
|
||
|
|
type: "object"
|
||
|
|
properties:
|
||
|
|
label:
|
||
|
|
description: "A clean version of the component's name. This is only used for\
|
||
|
|
\ documentation."
|
||
|
|
type: "string"
|
||
|
|
license:
|
||
|
|
description: "The license of the package."
|
||
|
|
type: "string"
|
||
|
|
authors:
|
||
|
|
description: "A list of authors. An author must at least have a name, but\
|
||
|
|
\ can also have a list of roles, an e-mail address, and a map of custom\
|
||
|
|
\ properties.\n\nSuggested values for roles are:\n \n| Role | Abbrev. |\
|
||
|
|
\ Description |\n|------|---------|-------------|\n| maintainer | mnt |\
|
||
|
|
\ for the maintainer of the code. Ideally, exactly one maintainer is specified.\
|
||
|
|
\ |\n| author | aut | for persons who have made substantial contributions\
|
||
|
|
\ to the software. |\n| contributor | ctb| for persons who have made smaller\
|
||
|
|
\ contributions (such as code patches).\n| datacontributor | dtc | for persons\
|
||
|
|
\ or organisations that contributed data sets for the software\n| copyrightholder\
|
||
|
|
\ | cph | for all copyright holders. This is a legal concept so should use\
|
||
|
|
\ the legal name of an institution or corporate body.\n| funder | fnd |\
|
||
|
|
\ for persons or organizations that furnished financial support for the\
|
||
|
|
\ development of the software\n\nThe [full list of roles](https://www.loc.gov/marc/relators/relaterm.html)\
|
||
|
|
\ is extremely comprehensive.\n"
|
||
|
|
type: "array"
|
||
|
|
items:
|
||
|
|
type: object
|
||
|
|
properties:
|
||
|
|
__merge__:
|
||
|
|
type: string
|
||
|
|
pattern: "^/src/authors/.*\\.yaml$"
|
||
|
|
roles:
|
||
|
|
description: |
|
||
|
|
Role of the author. Possible values:
|
||
|
|
|
||
|
|
* `"author"`: Authors who have made substantial contributions to the component.
|
||
|
|
* `"maintainer"`: The maintainer of the component.
|
||
|
|
* `"contributor"`: Authors who have made smaller contributions (such as code patches etc.).
|
||
|
|
type: array
|
||
|
|
items:
|
||
|
|
enum: [maintainer, author, contributor]
|
||
|
|
status:
|
||
|
|
description: "Allows setting a component to active, deprecated or disabled."
|
||
|
|
$ref: "defs_viash.yaml#/definitions/Status"
|
||
|
|
requirements:
|
||
|
|
description: "Computational requirements related to running the component.\
|
||
|
|
\ \n`cpus` specifies the maximum number of (logical) cpus a component is\
|
||
|
|
\ allowed to use., whereas\n`memory` specifies the maximum amount of memory\
|
||
|
|
\ a component is allowed to allicate. Memory units must be\nin B, KB, MB,\
|
||
|
|
\ GB, TB or PB for SI units (1000-base), or KiB, MiB, GiB, TiB or PiB for\
|
||
|
|
\ binary IEC units (1024-base)."
|
||
|
|
$ref: "defs_viash.yaml#/definitions/ComputationalRequirements"
|
||
|
|
repositories:
|
||
|
|
description: "(Pre-)defines repositories that can be used as repository in\
|
||
|
|
\ dependencies.\nAllows reusing repository definitions in case it is used\
|
||
|
|
\ in multiple dependencies."
|
||
|
|
type: "array"
|
||
|
|
items:
|
||
|
|
$ref: "defs_viash.yaml#/definitions/RepositoryWithName"
|
||
|
|
dependencies:
|
||
|
|
description: "Allows listing Viash components required by this Viash component"
|
||
|
|
type: "array"
|
||
|
|
items:
|
||
|
|
$ref: "defs_viash.yaml#/definitions/Dependency"
|
||
|
|
summary:
|
||
|
|
description: "A one-sentence summary of the component. This is only used for\
|
||
|
|
\ documentation."
|
||
|
|
type: "string"
|
||
|
|
runners:
|
||
|
|
description: "A list of runners to execute target artifacts.\n\n - ExecutableRunner\n\
|
||
|
|
\ - NextflowRunner\n"
|
||
|
|
type: "array"
|
||
|
|
items:
|
||
|
|
$ref: "defs_viash.yaml#/definitions/Runner"
|
||
|
|
name:
|
||
|
|
description: "Name of the component and the filename of the executable when\
|
||
|
|
\ built with `viash build`."
|
||
|
|
type: "string"
|
||
|
|
argument_groups:
|
||
|
|
description: "A grouping of the arguments, used to display the help message.\n\
|
||
|
|
\n - `name: foo`, the name of the argument group. \n - `description: Description\
|
||
|
|
\ of foo`, a description of the argument group. Multiline descriptions are\
|
||
|
|
\ supported.\n - `arguments: [arg1, arg2, ...]`, list of the arguments.\n\
|
||
|
|
\n"
|
||
|
|
type: "array"
|
||
|
|
items:
|
||
|
|
$ref: "defs_viash.yaml#/definitions/ArgumentGroup"
|
||
|
|
description:
|
||
|
|
description: "A description of the component. This is only used for documentation.\
|
||
|
|
\ Multiline descriptions are supported."
|
||
|
|
type: "string"
|
||
|
|
usage:
|
||
|
|
description: "A description on how to use the component. This will be displayed\
|
||
|
|
\ with `--help` under the 'Usage:' section."
|
||
|
|
type: "string"
|
||
|
|
info:
|
||
|
|
description: "Structured information. Can be any shape: a string, vector,\
|
||
|
|
\ map or even nested map."
|
||
|
|
type: "object"
|
||
|
|
version:
|
||
|
|
description: "Version of the component. This field will be used to version\
|
||
|
|
\ the executable and the Docker container."
|
||
|
|
type: "string"
|
||
|
|
links:
|
||
|
|
description: "External links of the component."
|
||
|
|
$ref: "defs_viash.yaml#/definitions/Links"
|
||
|
|
references:
|
||
|
|
description: "References to external resources related to the component."
|
||
|
|
$ref: "defs_viash.yaml#/definitions/References"
|
||
|
|
engines:
|
||
|
|
description: "A list of engine environments to execute target artifacts in.\n\
|
||
|
|
\n - NativeEngine\n - DockerEngine\n"
|
||
|
|
type: "array"
|
||
|
|
items:
|
||
|
|
$ref: "defs_viash.yaml#/definitions/Engine"
|
||
|
|
resources:
|
||
|
|
description: "Resources are files that support the component. The first resource\
|
||
|
|
\ should be a script that will be executed when the component is run. Additional\
|
||
|
|
\ resources will be copied to the same directory.\n\nCommon properties:\n\
|
||
|
|
\n * type: `file` / `r_script` / `python_script` / `bash_script` / `javascript_script`\
|
||
|
|
\ / `scala_script` / `csharp_script`, specifies the type of the resource.\
|
||
|
|
\ The first resource cannot be of type `file`. When the type is not specified,\
|
||
|
|
\ the default type is simply `file`.\n * dest: filename, the resulting name\
|
||
|
|
\ of the resource. From within a script, the file can be accessed at `meta[\"\
|
||
|
|
resources_dir\"] + \"/\" + dest`. If unspecified, `dest` will be set to\
|
||
|
|
\ the basename of the `path` parameter.\n * path: `path/to/file`, the path\
|
||
|
|
\ of the input file. Can be a relative or an absolute path, or a URI. Mutually\
|
||
|
|
\ exclusive with `text`.\n * text: ...multiline text..., the content of\
|
||
|
|
\ the resulting file specified as a string. Mutually exclusive with `path`.\n\
|
||
|
|
\ * is_executable: `true` / `false`, whether the resulting resource file\
|
||
|
|
\ should be made executable.\n"
|
||
|
|
type: "array"
|
||
|
|
items:
|
||
|
|
$ref: "defs_viash.yaml#/definitions/Resource"
|
||
|
|
keywords:
|
||
|
|
description: "The keywords of the components."
|
||
|
|
type: "array"
|
||
|
|
items:
|
||
|
|
type: "string"
|
||
|
|
test_resources:
|
||
|
|
description: "One or more scripts to be used to test the component behaviour\
|
||
|
|
\ when `viash test` is invoked. Additional files of type `file` will be\
|
||
|
|
\ made available only during testing. Each test script should expect no\
|
||
|
|
\ command-line inputs, be platform-independent, and return an exit code\
|
||
|
|
\ >0 when unexpected behaviour occurs during testing. See Unit Testing for\
|
||
|
|
\ more info."
|
||
|
|
type: "array"
|
||
|
|
items:
|
||
|
|
$ref: "defs_viash.yaml#/definitions/Resource"
|
||
|
|
namespace:
|
||
|
|
description: "Namespace this component is a part of. See the Namespaces guide\
|
||
|
|
\ for more information on namespaces."
|
||
|
|
type: "string"
|
||
|
|
arguments:
|
||
|
|
description: "A list of arguments for this component. For each argument, a\
|
||
|
|
\ type and a name must be specified. Depending on the type of argument,\
|
||
|
|
\ different properties can be set. See these reference pages per type for\
|
||
|
|
\ more information: \n\n - string\n - file\n - integer\n - double\n - boolean\n\
|
||
|
|
\ - boolean_true\n - boolean_false\n"
|
||
|
|
type: "array"
|
||
|
|
items:
|
||
|
|
$ref: "defs_viash.yaml#/definitions/Argument"
|
||
|
|
__merge__:
|
||
|
|
$ref: "#/definitions/Merge"
|
||
|
|
required:
|
||
|
|
- "name"
|
||
|
|
additionalProperties: false
|
||
|
|
Merge:
|
||
|
|
type: string
|
||
|
|
description: Path to a YAML file to inherit values from.
|
||
|
|
oneOf:
|
||
|
|
- type: array
|
||
|
|
- type: string
|
||
|
|
FileFormat:
|
||
|
|
description: 'File format metadata'
|
||
|
|
type: object
|
||
|
|
required: [label, file_format]
|
||
|
|
properties:
|
||
|
|
label:
|
||
|
|
$ref: "defs_common.yaml#/definitions/Label"
|
||
|
|
summary:
|
||
|
|
$ref: "defs_common.yaml#/definitions/Summary"
|
||
|
|
file_format:
|
||
|
|
oneOf:
|
||
|
|
- type: object
|
||
|
|
required: [type]
|
||
|
|
additionalProperties: false
|
||
|
|
properties:
|
||
|
|
type:
|
||
|
|
const: h5ad
|
||
|
|
X:
|
||
|
|
$ref: "#/definitions/AnnDataSlot"
|
||
|
|
layers:
|
||
|
|
type: array
|
||
|
|
items:
|
||
|
|
$ref: "#/definitions/AnnDataSlot"
|
||
|
|
var:
|
||
|
|
type: array
|
||
|
|
items:
|
||
|
|
$ref: "#/definitions/AnnDataSlot"
|
||
|
|
varm:
|
||
|
|
type: array
|
||
|
|
items:
|
||
|
|
$ref: "#/definitions/AnnDataSlot"
|
||
|
|
varp:
|
||
|
|
type: array
|
||
|
|
items:
|
||
|
|
$ref: "#/definitions/AnnDataSlot"
|
||
|
|
obs:
|
||
|
|
type: array
|
||
|
|
items:
|
||
|
|
$ref: "#/definitions/AnnDataSlot"
|
||
|
|
obsm:
|
||
|
|
type: array
|
||
|
|
items:
|
||
|
|
$ref: "#/definitions/AnnDataSlot"
|
||
|
|
obsp:
|
||
|
|
type: array
|
||
|
|
items:
|
||
|
|
$ref: "#/definitions/AnnDataSlot"
|
||
|
|
uns:
|
||
|
|
type: array
|
||
|
|
items:
|
||
|
|
oneOf:
|
||
|
|
- $ref: "#/definitions/AnnDataSlot"
|
||
|
|
- $ref: "#/definitions/AnnDataSlotObject"
|
||
|
|
- type: object
|
||
|
|
required: [type, mod]
|
||
|
|
additionalProperties: false
|
||
|
|
properties:
|
||
|
|
type:
|
||
|
|
const: h5mu
|
||
|
|
mod:
|
||
|
|
type: object
|
||
|
|
additionalProperties: false
|
||
|
|
properties:
|
||
|
|
rna:
|
||
|
|
"#/definitions/AnnData"
|
||
|
|
atac:
|
||
|
|
"#/definitions/AnnData"
|
||
|
|
prot:
|
||
|
|
"#/definitions/AnnData"
|
||
|
|
vdj:
|
||
|
|
"#/definitions/AnnData"
|
||
|
|
vdj_t:
|
||
|
|
"#/definitions/AnnData"
|
||
|
|
vdj_b:
|
||
|
|
"#/definitions/AnnData"
|
||
|
|
gdo:
|
||
|
|
"#/definitions/AnnData"
|
||
|
|
hto:
|
||
|
|
"#/definitions/AnnData"
|
||
|
|
MuData:
|
||
|
|
required: [mod]
|
||
|
|
additionalProperties: false
|
||
|
|
properties:
|
||
|
|
mod:
|
||
|
|
type: object
|
||
|
|
additionalProperties: false
|
||
|
|
properties:
|
||
|
|
rna:
|
||
|
|
"#/definitions/AnnData"
|
||
|
|
atac:
|
||
|
|
"#/definitions/AnnData"
|
||
|
|
prot:
|
||
|
|
"#/definitions/AnnData"
|
||
|
|
vdj:
|
||
|
|
"#/definitions/AnnData"
|
||
|
|
vdj_t:
|
||
|
|
"#/definitions/AnnData"
|
||
|
|
vdj_b:
|
||
|
|
"#/definitions/AnnData"
|
||
|
|
gdo:
|
||
|
|
"#/definitions/AnnData"
|
||
|
|
hto:
|
||
|
|
"#/definitions/AnnData"
|
||
|
|
AnnData:
|
||
|
|
additionalProperties: false
|
||
|
|
properties:
|
||
|
|
X:
|
||
|
|
$ref: "#/definitions/AnnDataSlot"
|
||
|
|
layers:
|
||
|
|
type: array
|
||
|
|
items:
|
||
|
|
$ref: "#/definitions/AnnDataSlot"
|
||
|
|
var:
|
||
|
|
type: array
|
||
|
|
items:
|
||
|
|
$ref: "#/definitions/AnnDataSlot"
|
||
|
|
varm:
|
||
|
|
type: array
|
||
|
|
items:
|
||
|
|
$ref: "#/definitions/AnnDataSlot"
|
||
|
|
varp:
|
||
|
|
type: array
|
||
|
|
items:
|
||
|
|
$ref: "#/definitions/AnnDataSlot"
|
||
|
|
obs:
|
||
|
|
type: array
|
||
|
|
items:
|
||
|
|
$ref: "#/definitions/AnnDataSlot"
|
||
|
|
obsm:
|
||
|
|
type: array
|
||
|
|
items:
|
||
|
|
$ref: "#/definitions/AnnDataSlot"
|
||
|
|
obsp:
|
||
|
|
type: array
|
||
|
|
items:
|
||
|
|
$ref: "#/definitions/AnnDataSlot"
|
||
|
|
uns:
|
||
|
|
type: array
|
||
|
|
items:
|
||
|
|
oneOf:
|
||
|
|
- $ref: "#/definitions/AnnDataSlot"
|
||
|
|
- $ref: "#/definitions/AnnDataSlotObject"
|
||
|
|
AnnDataSlot:
|
||
|
|
properties:
|
||
|
|
type:
|
||
|
|
enum: [integer, double, string, boolean]
|
||
|
|
name:
|
||
|
|
type: string
|
||
|
|
description: A unique identifier.
|
||
|
|
pattern: "^[a-zA-Z_][a-zA-Z0-9_]*$"
|
||
|
|
description:
|
||
|
|
type: string
|
||
|
|
required:
|
||
|
|
type: boolean
|
||
|
|
required: [type, name, description, required]
|
||
|
|
AnnDataSlotObject:
|
||
|
|
properties:
|
||
|
|
type:
|
||
|
|
enum: [object]
|
||
|
|
name:
|
||
|
|
type: string
|
||
|
|
description: A unique identifier.
|
||
|
|
pattern: "^[a-zA-Z_][a-zA-Z0-9_]*$"
|
||
|
|
description:
|
||
|
|
type: string
|
||
|
|
required:
|
||
|
|
type: boolean
|
||
|
|
required: [type, name, description, required]
|
||
|
|
|
||
|
|
# added specific properties to the author info
|
||
|
|
Author:
|
||
|
|
description: Author metadata.
|
||
|
|
type: object
|
||
|
|
additionalProperties: false
|
||
|
|
properties:
|
||
|
|
name:
|
||
|
|
description: Full name of the author, usually in the name of FirstName MiddleName LastName.
|
||
|
|
type: string
|
||
|
|
info:
|
||
|
|
description: Additional information on the author
|
||
|
|
type: object
|
||
|
|
additionalProperties: false
|
||
|
|
required: [role, links, organizations]
|
||
|
|
properties:
|
||
|
|
links:
|
||
|
|
type: object
|
||
|
|
additionalProperties: false
|
||
|
|
required: github
|
||
|
|
properties:
|
||
|
|
github:
|
||
|
|
type: string
|
||
|
|
orcid:
|
||
|
|
type: string
|
||
|
|
email:
|
||
|
|
type: string
|
||
|
|
twitter:
|
||
|
|
type: string
|
||
|
|
linkedin:
|
||
|
|
type: string
|
||
|
|
role:
|
||
|
|
description: Role in the organisation
|
||
|
|
enum: ["Core Team Member", "Contributor"]
|
||
|
|
organizations:
|
||
|
|
type: array
|
||
|
|
minItems: 1
|
||
|
|
items:
|
||
|
|
type: object
|
||
|
|
additionalProperties: false
|
||
|
|
required: [name, href, role]
|
||
|
|
properties:
|
||
|
|
name:
|
||
|
|
type: string
|
||
|
|
href:
|
||
|
|
type: string
|
||
|
|
role:
|
||
|
|
type: string
|