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