Build branch fix-integration-tests with version fix-integration-tests (da62b4ff)

Build pipeline: vsh-ci-dev-gckj5

Source commit: da62b4ffe3

Source message: Add labels to qc_test component
This commit is contained in:
CI
2024-11-15 14:37:33 +00:00
parent 43cfb251c7
commit bb7533583f
1550 changed files with 913066 additions and 791 deletions

View File

@@ -0,0 +1,333 @@
name: "bbknn"
namespace: "neighbors"
version: "fix-integration-tests"
authors:
- name: "Dries De Maeyer"
roles:
- "author"
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: "Dries Schaumont"
roles:
- "maintainer"
info:
role: "Core Team Member"
links:
email: "dries@data-intuitive.com"
github: "DriesSchaumont"
orcid: "0000-0002-4389-0440"
linkedin: "dries-schaumont"
organizations:
- name: "Data Intuitive"
href: "https://www.data-intuitive.com"
role: "Data Scientist"
argument_groups:
- name: "Arguments"
arguments:
- type: "file"
name: "--input"
alternatives:
- "-i"
description: "Input h5mu file"
info: null
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: "--obsm_input"
description: "The dimensionality reduction in `.obsm` to use for neighbour detection.\
\ Defaults to X_pca."
info: null
default:
- "X_pca"
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- type: "string"
name: "--obs_batch"
description: ".obs column name discriminating between your batches."
info: null
default:
- "batch"
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- 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: "--uns_output"
description: "Mandatory .uns slot to store various neighbor output objects."
info: null
default:
- "neighbors"
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- type: "string"
name: "--obsp_distances"
description: "In which .obsp slot to store the distance matrix between the resulting\
\ neighbors."
info: null
default:
- "distances"
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- type: "string"
name: "--obsp_connectivities"
description: "In which .obsp slot to store the connectivities matrix between the\
\ resulting neighbors."
info: null
default:
- "connectivities"
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- type: "integer"
name: "--n_neighbors_within_batch"
description: "How many top neighbours to report for each batch; total number of\
\ neighbours in the initial k-nearest-neighbours computation will be this number\
\ times the number of batches."
info: null
default:
- 3
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- type: "integer"
name: "--n_pcs"
description: "How many dimensions (in case of PCA, principal components) to use\
\ in the analysis."
info: null
default:
- 50
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- type: "integer"
name: "--n_trim"
description: "Trim the neighbours of each cell to these many top connectivities.\
\ May help with population independence and improve the tidiness of clustering.\
\ The lower the value the more independent the individual populations, at the\
\ cost of more conserved batch effect. If `None` (default), sets the parameter\
\ value automatically to 10 times `neighbors_within_batch` times the number\
\ of batches. Set to 0 to skip."
info: null
required: false
direction: "input"
multiple: false
multiple_sep: ";"
resources:
- type: "python_script"
path: "script.py"
is_executable: true
- type: "file"
path: "nextflow_labels.config"
dest: "nextflow_labels.config"
description: "BBKNN network generation\n"
test_resources:
- type: "python_script"
path: "test.py"
is_executable: true
- type: "file"
path: "pbmc_1k_protein_v3_mms.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:
label:
- "lowcpu"
- "highmem"
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.10-slim"
target_registry: "images.viash-hub.com"
target_tag: "fix-integration-tests"
namespace_separator: "/"
setup:
- type: "apt"
packages:
- "procps"
- "build-essential"
interactive: false
- 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"
- "bbknn"
- "scikit-learn~=1.2.2"
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/neighbors/bbknn/config.vsh.yaml"
runner: "executable"
engine: "docker|native"
output: "target/executable/neighbors/bbknn"
executable: "target/executable/neighbors/bbknn/bbknn"
viash_version: "0.9.0"
git_commit: "da62b4ffe30b6ef36fcb7ef5944f29d45d1138ff"
git_remote: "https://x-access-token:ghs_WgbTvvspBKMSQ5BPucz45vMfHrxqK54Vys9e@github.com/openpipelines-bio/openpipeline"
git_tag: "0.2.0-1939-gda62b4ff"
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"

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,42 @@
process {
// Default resources for components that hardly do any processing
memory = { 2.GB * task.attempt }
cpus = 1
// Retry for exit codes that have something to do with memory issues
errorStrategy = { task.exitStatus in 137..140 ? 'retry' : 'terminate' }
maxRetries = 3
maxMemory = null
// Resource labels
withLabel: singlecpu { cpus = 1 }
withLabel: lowcpu { cpus = 4 }
withLabel: midcpu { cpus = 10 }
withLabel: highcpu { cpus = 20 }
withLabel: lowmem { memory = { get_memory( 4.GB * task.attempt ) } }
withLabel: midmem { memory = { get_memory( 25.GB * task.attempt ) } }
withLabel: highmem { memory = { get_memory( 50.GB * task.attempt ) } }
withLabel: veryhighmem { memory = { get_memory( 75.GB * task.attempt ) } }
}
def get_memory(to_compare) {
if (!process.containsKey("maxMemory") || !process.maxMemory) {
return to_compare
}
try {
if (process.containsKey("maxRetries") && process.maxRetries && task.attempt == (process.maxRetries as int)) {
return process.maxMemory
}
else if (to_compare.compareTo(process.maxMemory as nextflow.util.MemoryUnit) == 1) {
return max_memory as nextflow.util.MemoryUnit
}
else {
return to_compare
}
} catch (all) {
println "Error processing memory resources. Please check that process.maxMemory '${process.maxMemory}' and process.maxRetries '${process.maxRetries}' are valid!"
System.exit(1)
}
}

View File

@@ -0,0 +1,382 @@
name: "find_neighbors"
namespace: "neighbors"
version: "fix-integration-tests"
authors:
- name: "Dries De Maeyer"
roles:
- "maintainer"
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:
- "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"
alternatives:
- "-i"
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: "--obsm_input"
description: "Which .obsm slot to use as a starting PCA embedding."
info: null
default:
- "X_pca"
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- type: "file"
name: "--output"
alternatives:
- "-o"
description: "Output h5mu file containing the found neighbors."
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: "--uns_output"
description: "Mandatory .uns slot to store various neighbor output objects."
info: null
default:
- "neighbors"
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- type: "string"
name: "--obsp_distances"
description: "In which .obsp slot to store the distance matrix between the resulting\
\ neighbors."
info: null
default:
- "distances"
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- type: "string"
name: "--obsp_connectivities"
description: "In which .obsp slot to store the connectivities matrix between the\
\ resulting neighbors."
info: null
default:
- "connectivities"
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- type: "string"
name: "--metric"
description: "The distance metric to be used in the generation of the nearest\
\ neighborhood network."
info: null
default:
- "euclidean"
required: false
choices:
- "cityblock"
- "cosine"
- "euclidean"
- "l1"
- "l2"
- "manhattan"
- "braycurtis"
- "canberra"
- "chebyshev"
- "correlation"
- "dice"
- "hamming"
- "jaccard"
- "kulsinski"
- "mahalanobis"
- "minkowski"
- "rogerstanimoto"
- "russellrao"
- "seuclidean"
- "sokalmichener"
- "sokalsneath"
- "sqeuclidean"
- "yule"
direction: "input"
multiple: false
multiple_sep: ";"
- type: "integer"
name: "--num_neighbors"
description: "The size of local neighborhood (in terms of number of neighboring\
\ data points) used for manifold approximation. Larger values result in more\
\ global views of the manifold, while smaller values result in more local data\
\ being preserved. In general values should be in the range 2 to 100. If knn\
\ is True, number of nearest neighbors to be searched. If knn is False, a Gaussian\
\ kernel width is set to the distance of the n_neighbors neighbor."
info: null
default:
- 15
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- type: "integer"
name: "--seed"
description: "A random seed."
info: null
default:
- 0
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- type: "string"
name: "--obsm_knn_indices"
description: "In which .obsm slot to store the indices of the k-nearest neighbors."
info: null
default:
- "knn_indices"
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- type: "string"
name: "--obsm_knn_distances"
description: "In which .obsm slot to store the distances of the k-nearest neighbors."
info: null
default:
- "knn_distances"
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: "Compute a neighborhood graph of observations [McInnes18].\n\nThe neighbor\
\ search efficiency of this heavily relies on UMAP [McInnes18], which also provides\
\ a method for estimating connectivities of data points - the connectivity of the\
\ manifold (method=='umap'). If method=='gauss', connectivities are computed according\
\ to [Coifman05], in the adaption of [Haghverdi16].\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:
- "lowcpu"
- "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.10-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"
- "scanpy~=1.9.6"
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/neighbors/find_neighbors/config.vsh.yaml"
runner: "executable"
engine: "docker|native"
output: "target/executable/neighbors/find_neighbors"
executable: "target/executable/neighbors/find_neighbors/find_neighbors"
viash_version: "0.9.0"
git_commit: "da62b4ffe30b6ef36fcb7ef5944f29d45d1138ff"
git_remote: "https://x-access-token:ghs_WgbTvvspBKMSQ5BPucz45vMfHrxqK54Vys9e@github.com/openpipelines-bio/openpipeline"
git_tag: "0.2.0-1939-gda62b4ff"
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"

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,42 @@
process {
// Default resources for components that hardly do any processing
memory = { 2.GB * task.attempt }
cpus = 1
// Retry for exit codes that have something to do with memory issues
errorStrategy = { task.exitStatus in 137..140 ? 'retry' : 'terminate' }
maxRetries = 3
maxMemory = null
// Resource labels
withLabel: singlecpu { cpus = 1 }
withLabel: lowcpu { cpus = 4 }
withLabel: midcpu { cpus = 10 }
withLabel: highcpu { cpus = 20 }
withLabel: lowmem { memory = { get_memory( 4.GB * task.attempt ) } }
withLabel: midmem { memory = { get_memory( 25.GB * task.attempt ) } }
withLabel: highmem { memory = { get_memory( 50.GB * task.attempt ) } }
withLabel: veryhighmem { memory = { get_memory( 75.GB * task.attempt ) } }
}
def get_memory(to_compare) {
if (!process.containsKey("maxMemory") || !process.maxMemory) {
return to_compare
}
try {
if (process.containsKey("maxRetries") && process.maxRetries && task.attempt == (process.maxRetries as int)) {
return process.maxMemory
}
else if (to_compare.compareTo(process.maxMemory as nextflow.util.MemoryUnit) == 1) {
return max_memory as nextflow.util.MemoryUnit
}
else {
return to_compare
}
} catch (all) {
println "Error processing memory resources. Please check that process.maxMemory '${process.maxMemory}' and process.maxRetries '${process.maxRetries}' are valid!"
System.exit(1)
}
}

View File

@@ -0,0 +1,12 @@
def setup_logger():
import logging
from sys import stdout
logger = logging.getLogger()
logger.setLevel(logging.INFO)
console_handler = logging.StreamHandler(stdout)
logFormatter = logging.Formatter("%(asctime)s %(levelname)-8s %(message)s")
console_handler.setFormatter(logFormatter)
logger.addHandler(console_handler)
return logger