Build pipeline: vsh-ci-dev-9jqlj
Source commit: 5e3f323145
Source message: Fix config error
389 lines
11 KiB
YAML
389 lines
11 KiB
YAML
name: "random_forest_annotation"
|
|
namespace: "annotate"
|
|
version: "fix-integration-tests"
|
|
authors:
|
|
- name: "Jakub Majercik"
|
|
roles:
|
|
- "author"
|
|
info:
|
|
role: "Contributor"
|
|
links:
|
|
email: "jakub@data-intuitive.com"
|
|
github: "jakubmajercik"
|
|
linkedin: "jakubmajercik"
|
|
organizations:
|
|
- name: "Data Intuitive"
|
|
href: "https://www.data-intuitive.com"
|
|
role: "Bioinformatics Engineer"
|
|
argument_groups:
|
|
- name: "Inputs"
|
|
description: "Input dataset (query) arguments"
|
|
arguments:
|
|
- type: "file"
|
|
name: "--input"
|
|
description: "The input (query) data to be labeled. Should be a .h5mu file."
|
|
info: null
|
|
example:
|
|
- "input.h5mu"
|
|
must_exist: true
|
|
create_parent: true
|
|
required: true
|
|
direction: "input"
|
|
multiple: false
|
|
multiple_sep: ";"
|
|
- type: "string"
|
|
name: "--modality"
|
|
description: "Which modality to process."
|
|
info: null
|
|
default:
|
|
- "rna"
|
|
required: false
|
|
direction: "input"
|
|
multiple: false
|
|
multiple_sep: ";"
|
|
- type: "string"
|
|
name: "--input_layer"
|
|
description: "The layer in the input data to be used for cell type annotation\
|
|
\ if .X is not to be used."
|
|
info: null
|
|
required: false
|
|
direction: "input"
|
|
multiple: false
|
|
multiple_sep: ";"
|
|
- name: "Reference"
|
|
description: "Arguments related to the reference dataset."
|
|
arguments:
|
|
- type: "file"
|
|
name: "--reference"
|
|
description: "The reference data to train the CellTypist classifiers on. Only\
|
|
\ required if a pre-trained --model is not provided."
|
|
info: null
|
|
example:
|
|
- "reference.h5mu"
|
|
must_exist: true
|
|
create_parent: true
|
|
required: false
|
|
direction: "input"
|
|
multiple: false
|
|
multiple_sep: ";"
|
|
- type: "string"
|
|
name: "--reference_layer"
|
|
description: "The layer in the reference data to be used for cell type annotation\
|
|
\ if .X is not to be used. Data are expected to be processed in the same way\
|
|
\ as the --input query dataset."
|
|
info: null
|
|
required: false
|
|
direction: "input"
|
|
multiple: false
|
|
multiple_sep: ";"
|
|
- type: "string"
|
|
name: "--reference_obs_target"
|
|
description: "Key in obs field of reference modality with cell-type information."
|
|
info: null
|
|
required: true
|
|
direction: "input"
|
|
multiple: false
|
|
multiple_sep: ";"
|
|
- name: "Outputs"
|
|
description: "Output arguments."
|
|
arguments:
|
|
- type: "file"
|
|
name: "--output"
|
|
description: "Output h5mu file."
|
|
info: null
|
|
example:
|
|
- "output.h5mu"
|
|
must_exist: true
|
|
create_parent: true
|
|
required: false
|
|
direction: "output"
|
|
multiple: false
|
|
multiple_sep: ";"
|
|
- type: "string"
|
|
name: "--output_compression"
|
|
info: null
|
|
example:
|
|
- "gzip"
|
|
required: false
|
|
choices:
|
|
- "gzip"
|
|
- "lzf"
|
|
direction: "input"
|
|
multiple: false
|
|
multiple_sep: ";"
|
|
- type: "string"
|
|
name: "--output_obs_predictions"
|
|
description: "In which `.obs` slots to store the predicted information.\n"
|
|
info: null
|
|
default:
|
|
- "random_forest_pred"
|
|
required: false
|
|
direction: "input"
|
|
multiple: false
|
|
multiple_sep: ";"
|
|
- type: "string"
|
|
name: "--output_obs_probability"
|
|
description: "In which `.obs` slots to store the probability of the predictions.\n"
|
|
info: null
|
|
default:
|
|
- "random_forest_probability"
|
|
required: false
|
|
direction: "input"
|
|
multiple: false
|
|
multiple_sep: ";"
|
|
- name: "Model arguments"
|
|
description: "Model arguments."
|
|
arguments:
|
|
- type: "file"
|
|
name: "--model"
|
|
description: "Pretrained model in pkl format. If not provided, the model will\
|
|
\ be trained on the reference data and --reference should be provided."
|
|
info: null
|
|
example:
|
|
- "pretrained_model.pkl"
|
|
must_exist: true
|
|
create_parent: true
|
|
required: false
|
|
direction: "input"
|
|
multiple: false
|
|
multiple_sep: ";"
|
|
- type: "integer"
|
|
name: "--n_estimators"
|
|
description: "Number of trees in the random forest."
|
|
info: null
|
|
default:
|
|
- 100
|
|
required: false
|
|
direction: "input"
|
|
multiple: false
|
|
multiple_sep: ";"
|
|
- type: "integer"
|
|
name: "--max_depth"
|
|
description: "Maximum depth of the trees in the random forest. \nIf not provided,\
|
|
\ the nodes are expanded until all leaves only contain a single sample.\n"
|
|
info: null
|
|
required: false
|
|
direction: "input"
|
|
multiple: false
|
|
multiple_sep: ";"
|
|
- type: "string"
|
|
name: "--criterion"
|
|
description: "The function to measure the quality of a split."
|
|
info: null
|
|
default:
|
|
- "gini"
|
|
required: false
|
|
choices:
|
|
- "gini"
|
|
- "entropy"
|
|
- "log_loss"
|
|
direction: "input"
|
|
multiple: false
|
|
multiple_sep: ";"
|
|
- type: "string"
|
|
name: "--class_weight"
|
|
description: "Weights associated with classes.\nThe `balanced` mode uses the values\
|
|
\ of y to automatically adjust weights inversely proportional to class frequencies\
|
|
\ in the input data.\nThe `balanced_subsample` mode is the same as `balanced`\
|
|
\ except that weights are computed based on the bootstrap sample for every tree\
|
|
\ grown.\nThe `uniform` mode gives all classes a weight of one.\n"
|
|
info: null
|
|
default:
|
|
- "balanced_subsample"
|
|
required: false
|
|
choices:
|
|
- "balanced"
|
|
- "balanced_subsample"
|
|
- "uniform"
|
|
direction: "input"
|
|
multiple: false
|
|
multiple_sep: ";"
|
|
- type: "string"
|
|
name: "--max_features"
|
|
description: "The number of features to consider when looking for the best split.\
|
|
\ The value can either be a positive integer or one of `sqrt`, `log2` or `all`.\n\
|
|
If integer: consider max_features features at each split.\nIf `sqrt`: max_features\
|
|
\ is the squareroot of all input features.\nIf `log2`: max_features is the log2\
|
|
\ of all input features.\nIf `all`: max features equals all input features.\n"
|
|
info: null
|
|
default:
|
|
- "200"
|
|
required: false
|
|
direction: "input"
|
|
multiple: false
|
|
multiple_sep: ";"
|
|
resources:
|
|
- type: "python_script"
|
|
path: "script.py"
|
|
is_executable: true
|
|
- type: "file"
|
|
path: "setup_logger.py"
|
|
- type: "file"
|
|
path: "nextflow_labels.config"
|
|
dest: "nextflow_labels.config"
|
|
description: "Automated cell type annotation tool for scRNA-seq datasets on the basis\
|
|
\ of random forest."
|
|
test_resources:
|
|
- type: "python_script"
|
|
path: "test.py"
|
|
is_executable: true
|
|
- type: "file"
|
|
path: "TS_Blood_filtered.h5mu"
|
|
- type: "file"
|
|
path: "pbmc_1k_protein_v3_filtered_feature_bc_matrix.h5mu"
|
|
- type: "file"
|
|
path: "openpipelinetestutils"
|
|
dest: "openpipelinetestutils"
|
|
info: null
|
|
status: "enabled"
|
|
links:
|
|
repository: "https://github.com/openpipelines-bio/openpipeline"
|
|
docker_registry: "ghcr.io"
|
|
runners:
|
|
- type: "executable"
|
|
id: "executable"
|
|
docker_setup_strategy: "ifneedbepullelsecachedbuild"
|
|
- type: "nextflow"
|
|
id: "nextflow"
|
|
directives:
|
|
tag: "$id"
|
|
auto:
|
|
simplifyInput: true
|
|
simplifyOutput: false
|
|
transcript: false
|
|
publish: false
|
|
config:
|
|
labels:
|
|
mem1gb: "memory = 1000000000.B"
|
|
mem2gb: "memory = 2000000000.B"
|
|
mem5gb: "memory = 5000000000.B"
|
|
mem10gb: "memory = 10000000000.B"
|
|
mem20gb: "memory = 20000000000.B"
|
|
mem50gb: "memory = 50000000000.B"
|
|
mem100gb: "memory = 100000000000.B"
|
|
mem200gb: "memory = 200000000000.B"
|
|
mem500gb: "memory = 500000000000.B"
|
|
mem1tb: "memory = 1000000000000.B"
|
|
mem2tb: "memory = 2000000000000.B"
|
|
mem5tb: "memory = 5000000000000.B"
|
|
mem10tb: "memory = 10000000000000.B"
|
|
mem20tb: "memory = 20000000000000.B"
|
|
mem50tb: "memory = 50000000000000.B"
|
|
mem100tb: "memory = 100000000000000.B"
|
|
mem200tb: "memory = 200000000000000.B"
|
|
mem500tb: "memory = 500000000000000.B"
|
|
mem1gib: "memory = 1073741824.B"
|
|
mem2gib: "memory = 2147483648.B"
|
|
mem4gib: "memory = 4294967296.B"
|
|
mem8gib: "memory = 8589934592.B"
|
|
mem16gib: "memory = 17179869184.B"
|
|
mem32gib: "memory = 34359738368.B"
|
|
mem64gib: "memory = 68719476736.B"
|
|
mem128gib: "memory = 137438953472.B"
|
|
mem256gib: "memory = 274877906944.B"
|
|
mem512gib: "memory = 549755813888.B"
|
|
mem1tib: "memory = 1099511627776.B"
|
|
mem2tib: "memory = 2199023255552.B"
|
|
mem4tib: "memory = 4398046511104.B"
|
|
mem8tib: "memory = 8796093022208.B"
|
|
mem16tib: "memory = 17592186044416.B"
|
|
mem32tib: "memory = 35184372088832.B"
|
|
mem64tib: "memory = 70368744177664.B"
|
|
mem128tib: "memory = 140737488355328.B"
|
|
mem256tib: "memory = 281474976710656.B"
|
|
mem512tib: "memory = 562949953421312.B"
|
|
cpu1: "cpus = 1"
|
|
cpu2: "cpus = 2"
|
|
cpu5: "cpus = 5"
|
|
cpu10: "cpus = 10"
|
|
cpu20: "cpus = 20"
|
|
cpu50: "cpus = 50"
|
|
cpu100: "cpus = 100"
|
|
cpu200: "cpus = 200"
|
|
cpu500: "cpus = 500"
|
|
cpu1000: "cpus = 1000"
|
|
script:
|
|
- "includeConfig(\"nextflow_labels.config\")"
|
|
debug: false
|
|
container: "docker"
|
|
engines:
|
|
- type: "docker"
|
|
id: "docker"
|
|
image: "python:3.12-slim"
|
|
target_registry: "images.viash-hub.com"
|
|
target_tag: "fix-integration-tests"
|
|
namespace_separator: "/"
|
|
setup:
|
|
- type: "apt"
|
|
packages:
|
|
- "libhdf5-dev"
|
|
- "procps"
|
|
interactive: false
|
|
- type: "python"
|
|
user: false
|
|
packages:
|
|
- "scikit-learn==1.4.2"
|
|
upgrade: true
|
|
- type: "python"
|
|
user: false
|
|
packages:
|
|
- "anndata==0.10.8"
|
|
- "mudata~=0.2.4"
|
|
- "pandas!=2.1.2"
|
|
- "numpy<2.0.0"
|
|
upgrade: true
|
|
test_setup:
|
|
- type: "docker"
|
|
copy:
|
|
- "openpipelinetestutils /opt/openpipelinetestutils"
|
|
- type: "python"
|
|
user: false
|
|
packages:
|
|
- "/opt/openpipelinetestutils"
|
|
upgrade: true
|
|
- type: "python"
|
|
user: false
|
|
packages:
|
|
- "viashpy==0.8.0"
|
|
upgrade: true
|
|
entrypoint: []
|
|
cmd: null
|
|
- type: "native"
|
|
id: "native"
|
|
build_info:
|
|
config: "src/annotate/random_forest_annotation/config.vsh.yaml"
|
|
runner: "executable"
|
|
engine: "docker|native"
|
|
output: "target/executable/annotate/random_forest_annotation"
|
|
executable: "target/executable/annotate/random_forest_annotation/random_forest_annotation"
|
|
viash_version: "0.9.0"
|
|
git_commit: "5e3f3231456facaf14da57fa563d4de58492ca82"
|
|
git_remote: "https://x-access-token:ghs_EujrUcz58S6J44CLSvromEPEcaMxTc30MU1j@github.com/openpipelines-bio/openpipeline"
|
|
git_tag: "0.2.0-1942-g5e3f3231"
|
|
package_config:
|
|
name: "openpipeline"
|
|
version: "fix-integration-tests"
|
|
info:
|
|
test_resources:
|
|
- type: "s3"
|
|
path: "s3://openpipelines-data"
|
|
dest: "resources_test"
|
|
viash_version: "0.9.0"
|
|
source: "src"
|
|
target: "target"
|
|
config_mods:
|
|
- ".test_resources += {path: '/src/base/openpipelinetestutils', dest: 'openpipelinetestutils'}\n\
|
|
.resources += {path: '/src/workflows/utils/labels.config', dest: 'nextflow_labels.config'}\n\
|
|
.runners[.type == 'nextflow'].directives.tag := '$id'\n.runners[.type == 'nextflow'].config.script\
|
|
\ := 'includeConfig(\"nextflow_labels.config\")'\n"
|
|
- ".engines += { type: \"native\" }"
|
|
- ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'"
|
|
- ".engines[.type == 'docker'].target_tag := 'fix-integration-tests'"
|
|
organization: "vsh"
|
|
links:
|
|
repository: "https://github.com/openpipelines-bio/openpipeline"
|
|
docker_registry: "ghcr.io"
|
|
homepage: "https://openpipelines.bio"
|
|
documentation: "https://openpipelines.bio/fundamentals"
|
|
issue_tracker: "https://github.com/openpipelines-bio/openpipeline/issues"
|