name: "highly_variable_features_scanpy" namespace: "feature_annotation" version: "fix-integration-tests" authors: - name: "Dries De Maeyer" roles: - "contributor" info: role: "Core Team Member" links: email: "ddemaeyer@gmail.com" github: "ddemaeyer" linkedin: "dries-de-maeyer-b46a814" organizations: - name: "Janssen Pharmaceuticals" href: "https://www.janssen.com" role: "Principal Scientist" - name: "Robrecht Cannoodt" roles: - "maintainer" - "contributor" info: role: "Core Team Member" links: email: "robrecht@data-intuitive.com" github: "rcannood" orcid: "0000-0003-3641-729X" linkedin: "robrechtcannoodt" organizations: - name: "Data Intuitive" href: "https://www.data-intuitive.com" role: "Data Science Engineer" - name: "Open Problems" href: "https://openproblems.bio" role: "Core Member" argument_groups: - name: "Arguments" arguments: - type: "file" name: "--input" description: "Input 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" info: null default: - "rna" required: false direction: "input" multiple: false multiple_sep: ";" - type: "string" name: "--layer" description: "use adata.layers[layer] for expression values instead of adata.X." info: null required: false direction: "input" multiple: false multiple_sep: ";" - 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" description: "The compression format to be used on the output h5mu object." info: null example: - "gzip" required: false choices: - "gzip" - "lzf" direction: "input" multiple: false multiple_sep: ";" - type: "string" name: "--var_name_filter" description: "In which .var slot to store a boolean array corresponding to which\ \ observations should be filtered out." info: null default: - "filter_with_hvg" required: false direction: "input" multiple: false multiple_sep: ";" - type: "string" name: "--varm_name" description: "In which .varm slot to store additional metadata." info: null default: - "hvg" required: false direction: "input" multiple: false multiple_sep: ";" - type: "string" name: "--flavor" description: "Choose the flavor for identifying highly variable features. For\ \ the dispersion based methods\nin their default workflows, Seurat passes the\ \ cutoffs whereas Cell Ranger passes n_top_features.\n" info: null default: - "seurat" required: false choices: - "seurat" - "cell_ranger" - "seurat_v3" direction: "input" multiple: false multiple_sep: ";" - type: "integer" name: "--n_top_features" description: "Number of highly-variable features to keep. Mandatory if flavor='seurat_v3'." info: null required: false direction: "input" multiple: false multiple_sep: ";" - type: "double" name: "--min_mean" description: "If n_top_features is defined, this and all other cutoffs for the\ \ means and the normalized dispersions are ignored. Ignored if flavor='seurat_v3'." info: null default: - 0.0125 required: false direction: "input" multiple: false multiple_sep: ";" - type: "double" name: "--max_mean" description: "If n_top_features is defined, this and all other cutoffs for the\ \ means and the normalized dispersions are ignored. Ignored if flavor='seurat_v3'." info: null default: - 3.0 required: false direction: "input" multiple: false multiple_sep: ";" - type: "double" name: "--min_disp" description: "If n_top_features is defined, this and all other cutoffs for the\ \ means and the normalized dispersions are ignored. Ignored if flavor='seurat_v3'." info: null default: - 0.5 required: false direction: "input" multiple: false multiple_sep: ";" - type: "double" name: "--max_disp" description: "If n_top_features is defined, this and all other cutoffs for the\ \ means and the normalized dispersions are ignored. Ignored if flavor='seurat_v3'.\ \ Default is +inf." info: null required: false direction: "input" multiple: false multiple_sep: ";" - type: "double" name: "--span" description: "The fraction of the data (cells) used when estimating the variance\ \ in the loess model fit if flavor='seurat_v3'." info: null default: - 0.3 required: false direction: "input" multiple: false multiple_sep: ";" - type: "integer" name: "--n_bins" description: "Number of bins for binning the mean feature expression. Normalization\ \ is done with respect to each bin. If just a single feature falls into a bin,\ \ the normalized dispersion is artificially set to 1." info: null default: - 20 required: false direction: "input" multiple: false multiple_sep: ";" - type: "string" name: "--obs_batch_key" description: "If specified, highly-variable features are selected within each\ \ batch separately and merged. This simple \nprocess avoids the selection of\ \ batch-specific features and acts as a lightweight batch correction method.\ \ \nFor all flavors, features are first sorted by how many batches they are\ \ a HVG. For dispersion-based flavors \nties are broken by normalized dispersion.\ \ If flavor = 'seurat_v3', ties are broken by the median (across\nbatches) rank\ \ based on within-batch normalized variance.\n" info: null 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: "Annotate highly variable features [Satija15] [Zheng17] [Stuart19].\n\ \nExpects logarithmized data, except when flavor='seurat_v3' in which count data\ \ is expected.\n\nDepending on flavor, this reproduces the R-implementations of\ \ Seurat [Satija15], Cell Ranger [Zheng17], and Seurat v3 [Stuart19].\n\nFor the\ \ dispersion-based methods ([Satija15] and [Zheng17]), the normalized dispersion\ \ is obtained by scaling with the mean and standard deviation of the dispersions\ \ for features falling into a given bin for mean expression of features. This means\ \ that for each bin of mean expression, highly variable features are selected.\n\ \nFor [Stuart19], a normalized variance for each feature is computed. First, the\ \ data are standardized (i.e., z-score normalization per feature) with a regularized\ \ standard deviation. Next, the normalized variance is computed as the variance\ \ of each feature after the transformation. Features are ranked by the normalized\ \ variance.\n" test_resources: - type: "python_script" path: "test.py" is_executable: true - type: "file" path: "pbmc_1k_protein_v3" - 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: label: - "singlecpu" - "lowmem" 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.9" target_registry: "images.viash-hub.com" target_tag: "fix-integration-tests" namespace_separator: "/" setup: - type: "python" user: false packages: - "anndata==0.10.8" - "mudata~=0.2.4" - "pandas!=2.1.2" - "numpy<2.0.0" - "scanpy~=1.9.6" - "scikit-misc" upgrade: true test_setup: - type: "python" user: false packages: - "viashpy==0.8.0" upgrade: true entrypoint: [] cmd: null - type: "native" id: "native" build_info: config: "src/feature_annotation/highly_variable_features_scanpy/config.vsh.yaml" runner: "executable" engine: "docker|native" output: "target/executable/feature_annotation/highly_variable_features_scanpy" executable: "target/executable/feature_annotation/highly_variable_features_scanpy/highly_variable_features_scanpy" 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"