name: "densmap" namespace: "dimred" version: "fix-integration-tests" authors: - name: "Jakub Majercik" roles: - "maintainer" 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" 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: "--uns_neighbors" description: "The `.uns` neighbors slot as output by the `find_neighbors` component." info: null default: - "neighbors" required: false direction: "input" multiple: false multiple_sep: ";" - type: "string" name: "--obsm_pca" description: "The slot in `.obsm` where the PCA results are stored.\n" info: null required: true direction: "input" multiple: false multiple_sep: ";" - type: "string" name: "--obsm_knn_indices" description: "The slot in `.obsm` where the kNN indices are stored.\n" info: null required: true direction: "input" multiple: false multiple_sep: ";" - type: "string" name: "--obsm_knn_distances" description: "The slot in `.obsm` where the kNN distances are stored.\n" info: null required: true direction: "input" multiple: false multiple_sep: ";" - name: "Outputs" arguments: - type: "file" name: "--output" alternatives: - "-o" description: "Output h5mu file." info: null example: - "output.h5mu" must_exist: true create_parent: true required: true 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: "--obsm_output" description: "The .obsm key to use for storing the densMAP results.." info: null default: - "X_densmap" required: false direction: "input" multiple: false multiple_sep: ";" - name: "Arguments UMAP" arguments: - type: "double" name: "--min_dist" description: "The effective minimum distance between embedded points. Smaller\ \ values will result \nin a more clustered/clumped embedding where nearby points\ \ on the manifold are drawn \ncloser together, while larger values will result\ \ on a more even dispersal of points. \nThe value should be set relative to\ \ the spread value, which determines the scale at \nwhich embedded points will\ \ be spread out. \n" info: null default: - 0.5 required: false min: 0.0 max: 10.0 direction: "input" multiple: false multiple_sep: ";" - type: "double" name: "--spread" description: "The effective scale of embedded points. In combination with `min_dist`\ \ this \ndetermines how clustered/clumped the embedded points are.\n" info: null default: - 1.0 required: false min: 0.0 max: 10.0 direction: "input" multiple: false multiple_sep: ";" - type: "integer" name: "--num_components" description: "The number of dimensions of the embedding." info: null default: - 2 required: false min: 1 direction: "input" multiple: false multiple_sep: ";" - type: "integer" name: "--max_iter" description: "The number of iterations (epochs) of the optimization. Called `n_epochs`\ \ \nin the original UMAP. Default is set to 500 if \nneighbors['connectivities'].shape[0]\ \ <= 10000, else 200.\n" info: null default: - 0 required: false min: 0 max: 1000 direction: "input" multiple: false multiple_sep: ";" - type: "double" name: "--alpha" description: "The initial learning rate for the embedding optimization." info: null default: - 1.0 required: false direction: "input" multiple: false multiple_sep: ";" - type: "double" name: "--gamma" description: "Weighting applied to negative samples in low dimensional embedding\ \ optimization. \nValues higher than one will result in greater weight being\ \ given to negative samples.\n" info: null default: - 1.0 required: false direction: "input" multiple: false multiple_sep: ";" - type: "integer" name: "--negative_sample_rate" description: "The number of negative samples to select per positive sample\nin\ \ the optimization process. Increasing this value will result\nin greater repulsive\ \ force being applied, greater optimization\ncost, but slightly more accuracy.\n" info: null default: - 5 required: false direction: "input" multiple: false multiple_sep: ";" - type: "string" name: "--init_pos" description: "How to initialize the low dimensional embedding. Called `init` in\ \ the original UMAP. Options are:\n \n* Any key from `.obsm`\n* `'paga'`: positions\ \ from `paga()`\n* `'spectral'`: use a spectral embedding of the graph\n* `'random'`:\ \ assign initial embedding positions at random.\n" info: null default: - "spectral" required: false choices: - "paga" - "spectral" - "random" direction: "input" multiple: false multiple_sep: ";" - name: "Arguments densMAP" arguments: - type: "double" name: "--lambda" description: "Controls the regularization weight of the density correlation term\ \ in densMAP. \nHigher values prioritize density preservation over the UMAP\ \ objective, and vice versa \nfor values closer to zero. Setting this parameter\ \ to zero is equivalent to running \nthe original UMAP algorithm.\n" info: null default: - 2.0 required: false min: 0.01 max: 10.0 direction: "input" multiple: false multiple_sep: ";" - type: "double" name: "--fraction" description: "Controls the fraction of epochs (between 0 and 1) where the density-augmented\ \ objective \nis used in densMAP. The first (1 - dens_frac) fraction of epochs\ \ optimize the original \nUMAP objective before introducing the density correlation\ \ term.\n" info: null default: - 0.3 required: false direction: "input" multiple: false multiple_sep: ";" - type: "double" name: "--var_shift" description: "A small constant added to the variance of local radii in the embedding\ \ when calculating \nthe density correlation objective to prevent numerical\ \ instability from dividing by a \nsmall number.\n" info: null default: - 0.1 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: "A modification of UMAP that adds an extra cost term in order to preserve\ \ information \nabout the relative local density of the data. It is performed on\ \ the same inputs as UMAP.\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: - "highcpu" - "midmem" 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: - "procps" interactive: false - type: "python" user: false packages: - "anndata==0.10.8" - "mudata~=0.2.4" - "pandas!=2.1.2" - "numpy<2.0.0" - "umap-learn" 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/dimred/densmap/config.vsh.yaml" runner: "executable" engine: "docker|native" output: "target/executable/dimred/densmap" executable: "target/executable/dimred/densmap/densmap" 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"