From f2ff92c6acdfa36c92f14d5a2153fb2d237347ff Mon Sep 17 00:00:00 2001 From: CI Date: Tue, 5 Nov 2024 17:26:35 +0000 Subject: [PATCH] Build branch main with version main (65dd41d) Build pipeline: viash-hub.htrnaseq.main-vhms8 Source commit: https://github.com/viash-hub/htrnaseq/commit/65dd41d8b1b4a307735c72320c96c0880c75f17f Source message: Optimize spawning of processes --- _viash.yaml | 7 +- src/config/labels.config | 86 +- src/config/tests.config | 38 - src/eset/create_eset/config.vsh.yaml | 74 + src/eset/create_eset/script.R | 432 ++ src/eset/create_eset/test.R | 76 + src/eset/create_eset/test_data/fData.tsv | 1460 ++++++ .../AACAAGGTAC/Solo.out/Gene/raw/barcodes.tsv | 1 + .../AACAAGGTAC/Solo.out/Gene/raw/features.tsv | 25 + .../AACAAGGTAC/Solo.out/Gene/raw/matrix.mtx | 13 + .../ACGCCTTCGT/Solo.out/Gene/raw/barcodes.tsv | 1 + .../ACGCCTTCGT/Solo.out/Gene/raw/features.tsv | 25 + .../ACGCCTTCGT/Solo.out/Gene/raw/matrix.mtx | 12 + src/eset/create_eset/test_data/pData.tsv | 3 + src/eset/create_fdata/config.vsh.yaml | 41 + src/eset/create_fdata/create_fdata.py | 130 + src/eset/create_fdata/test.py | 61 + src/eset/create_fdata/test_annotation.gtf | 45 + src/eset/create_pdata/config.vsh.yaml | 50 + src/eset/create_pdata/create_pdata.py | 60 + .../nrReadsNrGenesPerChromPool.txt | 8 + src/eset/create_pdata/starLogs.txt | 8 + src/eset/create_pdata/test.py | 98 + .../htrnaseq/check_eset/config.vsh.yaml | 31 + .../htrnaseq/check_eset/script.R | 197 + src/parallel_map/STAR | Bin 0 -> 2791592 bytes src/parallel_map/config.vsh.yaml | 34 +- src/parallel_map/test.sh | 8 +- src/stats/combine_star_logs/config.vsh.yaml | 4 + src/stats/combine_star_logs/script.py | 72 +- src/stats/combine_star_logs/test.py | 54 +- .../generate_pool_statistics/config.vsh.yaml | 2 +- src/stats/generate_pool_statistics/script.py | 34 +- src/stats/generate_pool_statistics/test.py | 91 +- src/workflows/htrnaseq/config.vsh.yaml | 59 +- src/workflows/htrnaseq/integration_test.sh | 27 +- src/workflows/htrnaseq/main.nf | 221 +- src/workflows/htrnaseq/nextflow.config | 8 + src/workflows/htrnaseq/params.yaml | 11 - src/workflows/htrnaseq/test.nf | 45 + src/workflows/parallel_map_wf/main.nf | 69 +- .../well_demultiplex/config.vsh.yaml | 16 +- .../well_demultiplex/integration_test.sh | 21 + src/workflows/well_demultiplex/main.nf | 99 +- .../well_demultiplex/nextflow.config | 2 + src/workflows/well_demultiplex/test.nf | 17 +- .../nextflow/cutadapt/.config.vsh.yaml | 54 +- .../nextflow/cutadapt/main.nf | 180 +- .../nextflow/cutadapt/nextflow.config | 3 +- .../nextflow/cutadapt/nextflow_schema.json | 78 +- .../nextflow/concat_text/.config.vsh.yaml | 14 +- .../nextflow/concat_text/main.nf | 91 +- .../nextflow/concat_text/nextflow.config | 2 +- .../nextflow/concat_text/nextflow_schema.json | 4 +- .../eset/create_eset/.config.vsh.yaml | 228 + .../executable/eset/create_eset/create_eset | 1627 +++++++ .../eset/create_eset/nextflow_labels.config | 105 + .../eset/create_fdata/.config.vsh.yaml | 185 + .../executable/eset/create_fdata/create_fdata | 1207 +++++ .../eset/create_fdata/nextflow_labels.config | 105 + .../eset/create_pdata/.config.vsh.yaml | 199 + .../executable/eset/create_pdata/create_pdata | 1173 +++++ .../eset/create_pdata/nextflow_labels.config | 105 + .../htrnaseq/check_eset/.config.vsh.yaml | 167 + .../htrnaseq/check_eset/check_eset | 1307 ++++++ .../check_eset/nextflow_labels.config | 105 + .../executable/parallel_map/.config.vsh.yaml | 42 +- target/executable/parallel_map/STAR | Bin 0 -> 2791592 bytes .../parallel_map/nextflow_labels.config | 86 +- target/executable/parallel_map/parallel_map | 30 +- .../stats/combine_star_logs/.config.vsh.yaml | 21 +- .../stats/combine_star_logs/combine_star_logs | 94 +- .../combine_star_logs/nextflow_labels.config | 86 +- .../generate_pool_statistics/.config.vsh.yaml | 15 +- .../generate_pool_statistics | 44 +- .../nextflow_labels.config | 86 +- .../generate_well_statistics/.config.vsh.yaml | 13 +- .../generate_well_statistics | 10 +- .../nextflow_labels.config | 86 +- .../eset/create_eset/.config.vsh.yaml | 228 + target/nextflow/eset/create_eset/main.nf | 4040 +++++++++++++++++ .../nextflow/eset/create_eset/nextflow.config | 124 + .../eset/create_eset/nextflow_labels.config | 105 + .../eset/create_eset/nextflow_schema.json | 111 + .../eset/create_fdata/.config.vsh.yaml | 185 + target/nextflow/eset/create_fdata/main.nf | 3681 +++++++++++++++ .../eset/create_fdata/nextflow.config | 125 + .../eset/create_fdata/nextflow_labels.config | 105 + .../eset/create_fdata/nextflow_schema.json | 81 + .../eset/create_pdata/.config.vsh.yaml | 199 + target/nextflow/eset/create_pdata/main.nf | 3625 +++++++++++++++ .../eset/create_pdata/nextflow.config | 125 + .../eset/create_pdata/nextflow_labels.config | 105 + .../eset/create_pdata/nextflow_schema.json | 91 + .../htrnaseq/check_eset/.config.vsh.yaml | 167 + .../htrnaseq/check_eset/main.nf | 3740 +++++++++++++++ .../htrnaseq/check_eset/nextflow.config | 125 + .../check_eset/nextflow_labels.config | 105 + .../htrnaseq/check_eset/nextflow_schema.json | 80 + target/nextflow/parallel_map/.config.vsh.yaml | 42 +- target/nextflow/parallel_map/STAR | Bin 0 -> 2791592 bytes target/nextflow/parallel_map/main.nf | 74 +- .../parallel_map/nextflow_labels.config | 86 +- .../stats/combine_star_logs/.config.vsh.yaml | 21 +- .../nextflow/stats/combine_star_logs/main.nf | 113 +- .../combine_star_logs/nextflow_labels.config | 86 +- .../combine_star_logs/nextflow_schema.json | 16 +- .../generate_pool_statistics/.config.vsh.yaml | 15 +- .../stats/generate_pool_statistics/main.nf | 79 +- .../nextflow_labels.config | 86 +- .../generate_well_statistics/.config.vsh.yaml | 13 +- .../stats/generate_well_statistics/main.nf | 45 +- .../nextflow_labels.config | 86 +- .../workflows/htrnaseq/.config.vsh.yaml | 109 +- target/nextflow/workflows/htrnaseq/main.nf | 364 +- .../workflows/htrnaseq/nextflow_labels.config | 86 +- .../workflows/htrnaseq/nextflow_schema.json | 62 +- .../parallel_map_wf/.config.vsh.yaml | 13 +- .../workflows/parallel_map_wf/main.nf | 97 +- .../parallel_map_wf/nextflow_labels.config | 86 +- .../utils/groupWells/.config.vsh.yaml | 13 +- .../workflows/utils/groupWells/main.nf | 28 +- .../utils/groupWells/nextflow_labels.config | 86 +- .../well_demultiplex/.config.vsh.yaml | 37 +- .../workflows/well_demultiplex/main.nf | 152 +- .../well_demultiplex/nextflow_labels.config | 86 +- .../well_demultiplex/nextflow_schema.json | 8 +- 127 files changed, 29560 insertions(+), 1004 deletions(-) delete mode 100644 src/config/tests.config create mode 100644 src/eset/create_eset/config.vsh.yaml create mode 100644 src/eset/create_eset/script.R create mode 100644 src/eset/create_eset/test.R create mode 100644 src/eset/create_eset/test_data/fData.tsv create mode 100644 src/eset/create_eset/test_data/mapping_dir/AACAAGGTAC/Solo.out/Gene/raw/barcodes.tsv create mode 100644 src/eset/create_eset/test_data/mapping_dir/AACAAGGTAC/Solo.out/Gene/raw/features.tsv create mode 100644 src/eset/create_eset/test_data/mapping_dir/AACAAGGTAC/Solo.out/Gene/raw/matrix.mtx create mode 100644 src/eset/create_eset/test_data/mapping_dir/ACGCCTTCGT/Solo.out/Gene/raw/barcodes.tsv create mode 100644 src/eset/create_eset/test_data/mapping_dir/ACGCCTTCGT/Solo.out/Gene/raw/features.tsv create mode 100644 src/eset/create_eset/test_data/mapping_dir/ACGCCTTCGT/Solo.out/Gene/raw/matrix.mtx create mode 100644 src/eset/create_eset/test_data/pData.tsv create mode 100644 src/eset/create_fdata/config.vsh.yaml create mode 100644 src/eset/create_fdata/create_fdata.py create mode 100644 src/eset/create_fdata/test.py create mode 100644 src/eset/create_fdata/test_annotation.gtf create mode 100644 src/eset/create_pdata/config.vsh.yaml create mode 100644 src/eset/create_pdata/create_pdata.py create mode 100644 src/eset/create_pdata/nrReadsNrGenesPerChromPool.txt create mode 100644 src/eset/create_pdata/starLogs.txt create mode 100644 src/eset/create_pdata/test.py create mode 100644 src/integration_test_components/htrnaseq/check_eset/config.vsh.yaml create mode 100644 src/integration_test_components/htrnaseq/check_eset/script.R create mode 100755 src/parallel_map/STAR create mode 100644 src/workflows/htrnaseq/nextflow.config delete mode 100644 src/workflows/htrnaseq/params.yaml create mode 100644 src/workflows/htrnaseq/test.nf create mode 100755 src/workflows/well_demultiplex/integration_test.sh rename target/dependencies/vsh/vsh/biobox/{v0.1.0 => main}/nextflow/cutadapt/.config.vsh.yaml (93%) rename target/dependencies/vsh/vsh/biobox/{v0.1.0 => main}/nextflow/cutadapt/main.nf (96%) rename target/dependencies/vsh/vsh/biobox/{v0.1.0 => main}/nextflow/cutadapt/nextflow.config (98%) rename target/dependencies/vsh/vsh/biobox/{v0.1.0 => main}/nextflow/cutadapt/nextflow_schema.json (90%) rename target/dependencies/vsh/vsh/craftbox/{concat_text => v0.1.0}/nextflow/concat_text/.config.vsh.yaml (95%) rename target/dependencies/vsh/vsh/craftbox/{concat_text => v0.1.0}/nextflow/concat_text/main.nf (97%) rename target/dependencies/vsh/vsh/craftbox/{concat_text => v0.1.0}/nextflow/concat_text/nextflow.config (99%) rename target/dependencies/vsh/vsh/craftbox/{concat_text => v0.1.0}/nextflow/concat_text/nextflow_schema.json (97%) create mode 100644 target/executable/eset/create_eset/.config.vsh.yaml create mode 100755 target/executable/eset/create_eset/create_eset create mode 100644 target/executable/eset/create_eset/nextflow_labels.config create mode 100644 target/executable/eset/create_fdata/.config.vsh.yaml create mode 100755 target/executable/eset/create_fdata/create_fdata create mode 100644 target/executable/eset/create_fdata/nextflow_labels.config create mode 100644 target/executable/eset/create_pdata/.config.vsh.yaml create mode 100755 target/executable/eset/create_pdata/create_pdata create mode 100644 target/executable/eset/create_pdata/nextflow_labels.config create mode 100644 target/executable/integration_test_components/htrnaseq/check_eset/.config.vsh.yaml create mode 100755 target/executable/integration_test_components/htrnaseq/check_eset/check_eset create mode 100644 target/executable/integration_test_components/htrnaseq/check_eset/nextflow_labels.config create mode 100755 target/executable/parallel_map/STAR create mode 100644 target/nextflow/eset/create_eset/.config.vsh.yaml create mode 100644 target/nextflow/eset/create_eset/main.nf create mode 100644 target/nextflow/eset/create_eset/nextflow.config create mode 100644 target/nextflow/eset/create_eset/nextflow_labels.config create mode 100644 target/nextflow/eset/create_eset/nextflow_schema.json create mode 100644 target/nextflow/eset/create_fdata/.config.vsh.yaml create mode 100644 target/nextflow/eset/create_fdata/main.nf create mode 100644 target/nextflow/eset/create_fdata/nextflow.config create mode 100644 target/nextflow/eset/create_fdata/nextflow_labels.config create mode 100644 target/nextflow/eset/create_fdata/nextflow_schema.json create mode 100644 target/nextflow/eset/create_pdata/.config.vsh.yaml create mode 100644 target/nextflow/eset/create_pdata/main.nf create mode 100644 target/nextflow/eset/create_pdata/nextflow.config create mode 100644 target/nextflow/eset/create_pdata/nextflow_labels.config create mode 100644 target/nextflow/eset/create_pdata/nextflow_schema.json create mode 100644 target/nextflow/integration_test_components/htrnaseq/check_eset/.config.vsh.yaml create mode 100644 target/nextflow/integration_test_components/htrnaseq/check_eset/main.nf create mode 100644 target/nextflow/integration_test_components/htrnaseq/check_eset/nextflow.config create mode 100644 target/nextflow/integration_test_components/htrnaseq/check_eset/nextflow_labels.config create mode 100644 target/nextflow/integration_test_components/htrnaseq/check_eset/nextflow_schema.json create mode 100755 target/nextflow/parallel_map/STAR diff --git a/_viash.yaml b/_viash.yaml index 32c317b8..6dc75ff3 100644 --- a/_viash.yaml +++ b/_viash.yaml @@ -7,7 +7,12 @@ links: issue_tracker: https://github.com/viash-hub/htrnaseq/issues repository: https://github.com/viash-hub/htrnaseq -viash_version: 0.9.0-RC7 +viash_version: 0.9.0 + +info: + test_resources: + - path: gs://viash-hub-test-data/htrnaseq/v1/ + dest: resources_test config_mods: | .requirements.commands := ['ps'] diff --git a/src/config/labels.config b/src/config/labels.config index 9ea88b1b..66f5e21c 100644 --- a/src/config/labels.config +++ b/src/config/labels.config @@ -1,26 +1,88 @@ +executor { + $k8s { + submitRateLimit = '10sec' + pollInterval = '1 sec' + } +} + process { - // Default resources for components that hardly do any processing - memory = { 2.GB * task.attempt } - cpus = 1 + container = 'nextflow/bash:latest' + + // default resources + memory = { 8.Gb * task.attempt } + cpus = 8 + maxForks = 36 // Retry for exit codes that have something to do with memory issues errorStrategy = { task.exitStatus in 137..140 ? 'retry' : 'terminate' } maxRetries = 3 - maxMemory = null + maxMemory = 192.GB // Resource labels - withLabel: singlecpu { cpus = 1 } - withLabel: lowcpu { cpus = 4 } - withLabel: midcpu { cpus = 10 } - withLabel: highcpu { cpus = 20 } + withLabel: verylowcpu { cpus = 2 } + withLabel: lowcpu { cpus = 8 } + withLabel: midcpu { cpus = 16 } + withLabel: highcpu { cpus = 32 } - 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 ) } } + withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } } + withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } } + withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } } + withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } } } +profiles { + // detect tempdir + tempDir = java.nio.file.Paths.get( + System.getenv('NXF_TEMP') ?: + System.getenv('VIASH_TEMP') ?: + System.getenv('TEMPDIR') ?: + System.getenv('TMPDIR') ?: + '/tmp' + ).toAbsolutePath() + + mount_temp { + docker.temp = tempDir + podman.temp = tempDir + charliecloud.temp = tempDir + } + + no_publish { + process { + withName: '.*' { + publishDir = [ + enabled: false + ] + } + } + } + + docker { + docker.fixOwnership = true + docker.enabled = true + // docker.userEmulation = true + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + + local { + // This config is for local processing. + process { + maxMemory = 25.GB + withLabel: verylowcpu { cpus = 2 } + withLabel: lowcpu { cpus = 4 } + withLabel: midcpu { cpus = 6 } + withLabel: highcpu { cpus = 12 } + + withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } } + withLabel: midmem { memory = { get_memory( 12.GB * task.attempt ) } } + withLabel: highmem { memory = { get_memory( 20.GB * task.attempt ) } } + } + } +} + def get_memory(to_compare) { if (!process.containsKey("maxMemory") || !process.maxMemory) { return to_compare diff --git a/src/config/tests.config b/src/config/tests.config deleted file mode 100644 index 3473a3dc..00000000 --- a/src/config/tests.config +++ /dev/null @@ -1,38 +0,0 @@ - -process.container = 'nextflow/bash:latest' -profiles { - // detect tempdir - tempDir = java.nio.file.Paths.get( - System.getenv('NXF_TEMP') ?: - System.getenv('VIASH_TEMP') ?: - System.getenv('TEMPDIR') ?: - System.getenv('TMPDIR') ?: - '/tmp' - ).toAbsolutePath() - - mount_temp { - docker.temp = tempDir - podman.temp = tempDir - charliecloud.temp = tempDir - } - - no_publish { - process { - withName: '.*' { - publishDir = [ - enabled: false - ] - } - } - } - - docker { - docker.fixOwnership = true - docker.enabled = true - // docker.userEmulation = true - singularity.enabled = false - podman.enabled = false - shifter.enabled = false - charliecloud.enabled = false - } -} diff --git a/src/eset/create_eset/config.vsh.yaml b/src/eset/create_eset/config.vsh.yaml new file mode 100644 index 00000000..f6848dd3 --- /dev/null +++ b/src/eset/create_eset/config.vsh.yaml @@ -0,0 +1,74 @@ +name: create_eset +namespace: "eset" +argument_groups: + - name: "Arguments" + arguments: + - type: file + name: "--pDataFile" + required: true + - type: file + name: "--fDataFile" + required: true + - type: file + name: "--mappingDir" + multiple: true + required: true + - type: string + name: --poolName + required: true + - name: "--output" + type: file + required: true + direction: output + default: eset.$id.rds +resources: + - type: r_script + path: script.R +test_resources: + - type: r_script + path: test.R + - path: test_data/pData.tsv + - path: test_data/fData.tsv + - path: test_data/mapping_dir +engines: + - type: docker + image: r-base:4.3.0 + setup: + - type: apt + packages: # most of these are required for devtools + - libcurl4-openssl-dev + - libssl-dev + - libxml2-dev + - libfftw3-dev # Seurat + - libfontconfig1-dev # Seurat + - libfreetype-dev # Seurat + - libhdf5-dev # Seurat + - bzip2 # Seurat + - libharfbuzz-dev # Seurat + - libfribidi-dev # Seurat + - libtiff-dev # Seurat + - libgsl-dev # Seurat + - libcairo-dev # Seurat + - libudunits2-dev # SeuratObject + - procps + - type: r + cran: + - data.table + - BiocManager + - remotes + bioc: + - Biobase + - limma # dependency for nlcv + - a4Core # dependency for nlcv + - MLInterfaces # dependency for nlcv + - multtest # dependency for nlcv + cran: + - nlcv + script: | + remotes::install_url("https://cran.r-project.org/src/contrib/Archive/Matrix/Matrix_1.6-5.tar.gz", dependencies=TRUE, upgrade_dependencies=FALSE);\ + remotes::install_url("https://cran.r-project.org/src/contrib/Archive/Seurat/Seurat_4.4.0.tar.gz", repos=BiocManager::repositories(), dependencies=TRUE, upgrade_dependencies=FALSE)\ +runners: + - type: executable + - type: nextflow + + \ No newline at end of file diff --git a/src/eset/create_eset/script.R b/src/eset/create_eset/script.R new file mode 100644 index 00000000..22765082 --- /dev/null +++ b/src/eset/create_eset/script.R @@ -0,0 +1,432 @@ +library(Biobase) +library(data.table) +library(nlcv) +library(Matrix) +library(Seurat) + +### VIASH START +par <- list( + pDataFile = "src/eset/create_eset/test_data/pData.tsv", + fDataFile = "src/eset/create_eset/test_data/fData.tsv", + studyType = "Standard", + mappingDir = c("src/eset/create_eset/test_data/mapping_dir/AACAAGGTAC", + "src/eset/create_eset/test_data/mapping_dir/ACGCCTTCGT"), + output = "eset.rds", + poolName = "Foo" +) +### VIASH END + + +Read10X <- function(data_dir = NULL, gene_column = 2, unique_features = TRUE) { + full.data <- list() + for (i in seq_along(along.with = data_dir)) { + run <- data_dir[i] + if (!dir.exists(paths = run)) { + stop("Directory provided does not exist") + } + barcode.loc <- file.path(run, "barcodes.tsv") + gene.loc <- file.path(run, "features.tsv") + features.loc <- file.path(run, "features.tsv.gz") + matrix.loc <- file.path(run, "matrix.mtx") + pre_ver_3 <- file.exists(gene.loc) + if (!pre_ver_3) { + addgz <- function(s) { + return(paste0(s, ".gz")) + } + barcode.loc <- addgz(s = barcode.loc) + matrix.loc <- addgz(s = matrix.loc) + } + if (!file.exists(barcode.loc)) { + stop("Barcode file missing") + } + if (!pre_ver_3 && !file.exists(features.loc)) { + stop("Gene name or features file missing") + } + if (!file.exists(matrix.loc)) { + stop("Expression matrix file missing") + } + data <- readMM(file = matrix.loc) + cell.names <- readLines(barcode.loc) + if (all(grepl(pattern = "\\-1$", x = cell.names))) { + cell.names <- as.vector(x = as.character(x = sapply(X = cell.names, + FUN = ExtractField, field = 1, delim = "-"))) + } + if (is.null(x = names(x = data_dir))) { + if (i < 2) { + colnames(x = data) <- cell.names + } + else { + colnames(x = data) <- paste0(i, "_", cell.names) + } + } + else { + colnames(x = data) <- paste0(names(x = data_dir)[i], + "_", cell.names) + } + feature.names <- read.delim(file = ifelse(test = pre_ver_3, + yes = gene.loc, no = features.loc), header = FALSE, + stringsAsFactors = FALSE) + if (any(is.na(x = feature.names[, gene_column]))) { + warning("Some features names are NA. Replacing NA names with ID from the opposite column requested", + call. = FALSE, immediate. = TRUE) + na.features <- which(x = is.na(x = feature.names[, + gene_column])) + replacement.column <- ifelse(test = gene_column == + 2, yes = 1, no = 2) + feature.names[na.features, gene_column] <- feature.names[na.features, + replacement.column] + } + if (unique_features) { + fcols = ncol(x = feature.names) + if (fcols < gene_column) { + stop(paste0("gene_column was set to ", gene_column, + " but feature.tsv.gz (or genes.tsv) only has ", + fcols, " columns.", " Try setting the gene_column ", + "argument to a value <= to ", + fcols, ".")) + } + rownames(x = data) <- make.unique(names = feature.names[, + gene_column]) + } + if (ncol(x = feature.names) > 2) { + data_types <- factor(x = feature.names$V3) + lvls <- levels(x = data_types) + if (length(x = lvls) > 1 && length(x = full.data) == 0) { + message(paste0("10X data contains more than one type and is ", + "being returned as a list containing matrices ", + "of each type.")) + } + expr_name <- "Gene Expression" + if (expr_name %in% lvls) { + lvls <- c(expr_name, lvls[-which(x = lvls == + expr_name)]) + } + data <- lapply(X = lvls, FUN = function(l) { + return(data[data_types == l, , drop = FALSE]) + }) + names(x = data) <- lvls + } else { + data <- list(data) + } + full.data[[length(x = full.data) + 1]] <- data + } + list_of_data <- list() + for (j in 1:length(x = full.data[[1]])) { + list_of_data[[j]] <- do.call(cbind, lapply(X = full.data, + FUN = `[[`, j)) + list_of_data[[j]] <- as(object = list_of_data[[j]], Class = "CsparseMatrix") + } + names(x = list_of_data) <- names(x = full.data[[1]]) + if (length(x = list_of_data) == 1) { + return(list_of_data[[1]]) + } else { + return(list_of_data) + } +} + +match_features <- function(exprs_matrix, fdata) { + + identical_features <- all(rownames(exprs_matrix) == rownames(fdata)) + + if (nrow(exprs_matrix) != nrow(fdata) || !identical_features) { + message(paste0("Features in 'fData' and expression matrix differ. ", + "Only matching features are returned.")) + } + + features <- intersect(rownames(exprs_matrix), rownames(fdata)) + exprs_matrix <- exprs_matrix[which(rownames(exprs_matrix) %in% features), ] + fdata <- fdata[which(rownames(fdata) %in% features), ] + + fdata[, seq_len(ncol(fdata))] <- lapply(fdata[, seq_len(ncol(fdata)), drop = FALSE], as.character) + # order features in exprs mat according to fdata + exprs_matrix <- exprs_matrix[match(rownames(fdata), rownames(exprs_matrix)), ] + + list(exprs_matrix = exprs_matrix, fdata = fdata) + +} + + +create_pdata <- function(sample_file, pool_name, barcodes) { + cols_to_remove <- c("SampleFileName", "Output", "Measure", "Strandedness") + pData <- sample_file[, !colnames(sample_file) %in% cols_to_remove, + drop = FALSE] + rownames(pData) <- lapply(sample_file$WellBC, + \(x) paste(pool_name, x, sep = "_")) + # pData[, ] <- lapply(pData, as.factor) + pData$PoolName <- pool_name + pData <- pData[match(barcodes, pData$WellBC), ] + return(pData) +} + +check_sample_file <- function(mapping_dir, sample_file){ + + message("Checking sample annotation:") + + requireNamespace("tools") + mapping_dir <- unlist(lapply(mapping_dir, function(x) { + if (!dir.exists(x)) { + stop(sprintf(paste0("Could not find directory ", + "provided in 'mappingDir' argument (%s)."), x)) + } + tools::file_path_as_absolute(x) + })) + + + # additional check for STARsolo + check_STARsolo_output <- function(x) { + files <- c("barcodes.tsv", "features.tsv", "matrix.mtx") + test <- list.files(x) %in% c(files, paste0(files, ".gz")) + length(test) != 0 && all(test) + } + + + if (!"WellBC" %in% colnames(sample_file)) { + stop(paste0("STARsolo output is used. The sample annotation must ", + "contain 'WellBC' column providing cell barcodes.")) + } + + mapping_dir <- unique(mapping_dir) + all_STARsolo_files_present <- all( + unlist( + lapply(mapping_dir, function(x) { + check_STARsolo_output(x) + }) + ) + ) + if (!all_STARsolo_files_present) { + stop(paste0("Could not find files: 'barcodes', 'features' and 'matrix'", + " for STARsolo output. Please check 'mappingDir' argument.")) + } + + message("- 'SampleFileName' column - OK") + + + + list(sample_expression_files = mapping_dir) +} + +create_exprs_matrix <- function(exprs_matrix_path, exprs_file_paths, + output, measure, col_names, cell_barcodes) { + + read_matrix <- Read10X(data_dir = exprs_file_paths, gene_column = 1) + read_matrix <- read_matrix[, which(colSums(read_matrix) != 0)] + # keep index of feature names containing "_" because Seurat + #changes them to "-" and they no longer match with fdata[, "gene_id"] + idx <- grep("_", rownames(read_matrix)) + + requireNamespace("Seurat") + seurat_object <- Seurat::CreateSeuratObject(counts = read_matrix) + + exprs_matrix <- as.matrix(seurat_object[['RNA']]@counts) + # replace "-" with "_" for features with "_" + # before converting to Seurat object + rownames(exprs_matrix)[idx] <- gsub("-", "_", rownames(exprs_matrix)[idx]) + requireNamespace("stringr") + exprs_matrix <- exprs_matrix[, stringr::str_detect(colnames(exprs_matrix), + paste(cell_barcodes, collapse = "|"))] + + + # check if rownames are ENSEMBL and remove version suffix + isENSEMBL <- all(grepl("ENS", rownames(exprs_matrix))) + if (isENSEMBL) { + # do not use gsub("(.+)[.]\\d+", "\\1", rownames(exprs_matrix)), + # so that ENS000000.1_PAR_Y can be kept + rownames(exprs_matrix) <- gsub("\\.\\d+$", "", rownames(exprs_matrix)) + } + + + colnames(exprs_matrix) <- col_names + + exprs_matrix +} + +create_eset <- function(feature_annotation_path, + sample_annotation_path, + mapping_dir, + barcodes, + output_path, + pool_name, + exprs_matrix_path = NULL, + path = NULL, + add_eset_annotation = NULL) { + if (!file.exists(feature_annotation_path)) { + stop("Could not find feature annotation at '", feature_annotation_path, "'") + } + + if (!file.exists(sample_annotation_path)) { + stop("Could not find sample annotation at '", sample_annotation_path, "'") + } + + if(!is.null(exprs_matrix_path)) { + if(!file.exists(exprs_matrix_path)) { + stop("Could not find expression matrix at '", exprs_matrix_path, "'") + } + } + + if(!is.null(path)) { + if(!dir.exists(path)) { + stop("Provided 'path': '", path, "' does not exist.") + } + } + + ##### Import annotation files ##### + message("Importing feature annotation") + fdata_file <- read.table(feature_annotation_path, header = TRUE, + sep = "\t", quote = "\"", + comment.char = "", stringsAsFactors = FALSE) + + # for backwards compatibility + if("ENSEMBL" %in% colnames(fdata_file) && !all(grepl("ENS", fdata_file[, "ENSEMBL"])) & !"gene_id" %in% colnames(fdata_file)) { + colnames(fdata_file)[which(colnames(fdata_file) == "ENSEMBL")] <- "gene_id" + } + + # Check gene annotation + if(!"gene_id" %in% colnames(fdata_file)) + stop("'gene_id' column with unique feature identifiers must be present in 'feature_annotation_path'.") + + # check if duplicated ids are present + if(any(duplicated(fdata_file$gene_id))) + stop("Duplicated features ids are not allowed. Please check the 'gene_id' column in 'feature_annotation_path'.") + + message("Importing sample annotation") + sample_file <- read.table(sample_annotation_path, header = TRUE, + sep = "\t", quote = "\"", + comment.char = "", stringsAsFactors = FALSE) + # Check sample annotation + check_sample_file_list <- check_sample_file(mapping_dir = mapping_dir, + sample_file = sample_file) + output <- "STARsolo" + measure <- "counts" + sample_expression_files <- check_sample_file_list$sample_expression_files + + ##### Create phenodata ##### + pdata_eset <- create_pdata(sample_file = sample_file, pool_name = pool_name, + barcodes = barcodes) + + ##### Create expression matrix ##### + message("Creating expression matrix") + + exprs_matrix_eset <- create_exprs_matrix( + exprs_matrix_path = exprs_matrix_path, + exprs_file_paths = sample_expression_files, + output = output, + measure = measure, + col_names = rownames(pdata_eset), + cell_barcodes = barcodes + ) + + + ##### Create featuredata ##### + message("Creating feature data") + + fdata_eset <- fdata_file + rownames(fdata_eset) <- fdata_eset[, "gene_id"] + + # intersect features between exprs matrix and fdata + feature_files <- match_features(exprs_matrix = exprs_matrix_eset, + fdata = fdata_eset) + + fdata_eset <- feature_files$fdata + exprs_matrix_eset <- feature_files$exprs_matrix + + ##### Create eSet ##### + message("Creating eset") + + if (nrow(pdata_eset) != ncol(exprs_matrix_eset)) { + stop("nrow(pData) and ncol(exprsMatrix) differ") + } + + if (nrow(fdata_eset) != nrow(exprs_matrix_eset)) { + stop("nrow(fData) and nrow(exprsMatrix) differ") + } + + if (!all(rownames(pdata_eset) == colnames(exprs_matrix_eset))) { + stop("rownames(pData) and colnames(exprsMatrix) differ") + } + + if (!all(rownames(fdata_eset) == rownames(exprs_matrix_eset))) { + stop("rownames(fData) and rownames(exprsMatrix) differ") + } + + if (!inherits(exprs_matrix_eset, "matrix")) { + stop("exprsMatrix must be of class 'matrix'") + } + + + + additional_info <- paste0("Additional information about eSet \n", + " Expression matrix created from ", + output, " output. \n", + " Expression matrix contains non-transformed ", + ifelse(output %in% c("STAR", "STARsolo"), + "counts", + ifelse(measure == "expected_count", + "counts", measure)), ".") + + + if (isTRUE(!is.null(add_eset_annotation) & + is.character(add_eset_annotation))) { + additional_info <- paste0(additional_info, "\n", " ", add_eset_annotation) + } + + fdata_eset <- new("AnnotatedDataFrame", data = fdata_eset) + pdata_eset <- new("AnnotatedDataFrame", data = pdata_eset) + + requireNamespace("Biobase") + eset <- Biobase::ExpressionSet(assayData = exprs_matrix_eset, + phenoData = pdata_eset, + featureData = fdata_eset, + annotation = additional_info) + + + saveRDS(eset, file = output_path) + + message(paste0("eset created succesfully for ", ncol(eset), + " samples and ", nrow(eset), + " genes and saved at ", output_path, ".")) + + eset +} + + +p_data_file <- par$pDataFile +f_data_file <- par$fDataFile +pool_name <- par$poolName +mapping_dir <- lapply(par$mappingDir, + \(x) file.path(x, "Solo.out", "Gene", "raw")) + +get_barcode_from_mapping_dir <- function(raw_dir) { + barcodes_file <- file.path(raw_dir, "barcodes.tsv") + if (!file.exists(barcodes_file)) { + stop(paste0("Expected the 'Solo.out/Gene/raw' directory at ", + raw_dir, " to contain a 'barcodes.tsv' file.")) + } + barcodes <- readLines(barcodes_file) + if (length(barcodes) != 1) { + stop(paste0("A single STAR Solo folder should only have ", + "mapped one (1) barcode, but found '", + length(barcodes), "'for mapping directory ", raw_dir)) + } + return(barcodes) +} + +barcodes <- lapply(mapping_dir, get_barcode_from_mapping_dir) + +print(paste0("mappingDir: ", mapping_dir)) +print(paste0("pDataFile: ", p_data_file)) +print(paste0("fDataFile: ", f_data_file)) +print(paste0("poolName: ", pool_name)) +print(paste0("barcodes: ", barcodes)) + + + +# CREATE ESET WITH RAW UMI COUNTS + +eset <- create_eset(feature_annotation_path = f_data_file, + sample_annotation_path = p_data_file, + mapping_dir = mapping_dir, + barcodes = barcodes, + output_path = par$output, + pool_name = pool_name, + path = NULL, + exprs_matrix_path = NULL) \ No newline at end of file diff --git a/src/eset/create_eset/test.R b/src/eset/create_eset/test.R new file mode 100644 index 00000000..53d825d0 --- /dev/null +++ b/src/eset/create_eset/test.R @@ -0,0 +1,76 @@ +library(testthat) +library(Biobase) + +### VIASH START +meta <- list( + resources_dir = "src/eset/create_eset/test_data", + executable = "target/executable/eset/create_eset/create_eset" +) + +### VIASH END + +output <- tempfile() + +out <- processx::run(meta$executable, c( + "--pDataFile", file.path(meta$resources_dir, "pData.tsv"), + "--fDataFile", file.path(meta$resources_dir, "fData.tsv"), + "--mappingDir", file.path(meta$resources_dir, "mapping_dir", "AACAAGGTAC"), + "--mappingDir", file.path(meta$resources_dir, "mapping_dir", "ACGCCTTCGT"), + "--poolName", "foo", + "--output", output +)) +expect_equal(out$status, 0) +expect_true(file.exists(output)) +result <- readRDS(output) +stopifnot(length(sampleNames(result)) == 2) +stopifnot(all(sampleNames(result) == c("foo_AACAAGGTAC", "foo_ACGCCTTCGT"))) +expected_feature_names <- c( + "ENS0001058", "ENS0000221", "ENS0001387", "ENS0000508", "ENS0001199", + "ENS0000477", "ENS0001457", "ENS0001040", "ENS0000114", "ENS0000821", + "ENS0001429", "ENS0001396", "ENS0000355", "ENS0000122", "ENS0000441", + "ENS0001223", "ENS0001431", "ENS0000042", "ENS0000443", "ENS0000389", + "ENS0001208", "ENS0001140", "ENS0000071", "ENS0001369" +) + +stopifnot(length(featureNames(result)) == 24) +stopifnot(all(featureNames(result) == expected_feature_names)) +expected_expressions <- matrix( + c(0, 0, + 0, 40, + 0, 0, + 0, 0, + 1, 2, + 0, 0, + 0, 0, + 0, 0, + 2, 2, + 0, 0, + 0, 0, + 8, 2, + 0, 0, + 1, 0, + 2, 3, + 0, 0, + 0, 0, + 0, 0, + 1, 0, + 0, 0, + 16, 13, + 0, 0, + 12, 13, + 5, 2), + ncol = 2, + nrow = 24, + byrow = TRUE, +) +rownames(expected_expressions) <- expected_feature_names +colnames(expected_expressions) <- c("foo_AACAAGGTAC", "foo_ACGCCTTCGT") +stopifnot(identical(exprs(result), expected_expressions)) + +input_f_data <- read.table(file.path(meta$resources_dir, "fData.tsv"), + sep = "\t", quote = "\"", comment.char = "", + header = TRUE) +input_f_data <- input_f_data[input_f_data$gene_id %in% expected_feature_names, ] +row.names(input_f_data) <- input_f_data$gene_id +input_f_data[] <- lapply(input_f_data, as.character) +stopifnot(identical(input_f_data, fData(result))) \ No newline at end of file diff --git a/src/eset/create_eset/test_data/fData.tsv b/src/eset/create_eset/test_data/fData.tsv new file mode 100644 index 00000000..cac8bdd1 --- /dev/null +++ b/src/eset/create_eset/test_data/fData.tsv @@ -0,0 +1,1460 @@ +seqname start end strand gene_biotype gene_id gene_name gene_source gene_version transcript_id ENSEMBL_with_version ENSEMBL SYMBOL +20 87250 97094 + protein_coding ENS0000878 209E3 ensembl_havana 7.0 ENS0000878 ENS0000878 209E3 +20 142590 145751 + protein_coding ENS0000554 A2B9A ensembl_havana 6.0 ENS0000554 ENS0000554 A2B9A +20 157454 159163 + protein_coding ENS0001430 CF168 ensembl_havana 5.0 ENS0001430 ENS0001430 CF168 +20 187853 189711 - protein_coding ENS0000109 3BA5A ensembl_havana 7.0 ENS0000109 ENS0000109 3BA5A +20 227258 229886 + protein_coding ENS0000017 1C968 ensembl_havana 4.0 ENS0000017 ENS0000017 1C968 +20 257724 261096 + protein_coding ENS0000803 E5192 ensembl_havana 5.0 ENS0000803 ENS0000803 E5192 +20 267186 268857 + lncRNA ENS0000998 1821B havana 1.0 ENS0000998 ENS0000998 1821B +20 270863 290778 - protein_coding ENS0001362 5AD11 ensembl_havana 12.0 ENS0001362 ENS0001362 5AD11 +20 297570 300321 + protein_coding ENS0001168 3F0FF havana 4.0 ENS0001168 ENS0001168 3F0FF +20 311731 313237 + lncRNA ENS0000013 265F2 havana 1.0 ENS0000013 ENS0000013 265F2 +20 316860 348490 - lncRNA ENS0000057 28A43 havana_tagene 6.0 ENS0000057 ENS0000057 28A43 +20 325595 330224 + protein_coding ENS0000753 58E28 havana 8.0 ENS0000753 ENS0000753 58E28 +20 346782 359660 + protein_coding ENS0000400 6E614 ensembl_havana 13.0 ENS0000400 ENS0000400 6E614 +20 362835 397559 + protein_coding ENS0001378 EA941 ensembl_havana 11.0 ENS0001378 ENS0001378 EA941 +20 407498 432139 + protein_coding ENS0000572 99DDC ensembl_havana 21.0 ENS0000572 ENS0000572 99DDC +20 435480 462543 - protein_coding ENS0000394 AFCC0 ensembl_havana 14.0 ENS0000394 ENS0000394 AFCC0 +20 450663 450762 + misc_RNA ENS0000532 B58E5 ensembl 1.0 ENS0000532 ENS0000532 B58E5 +20 472498 543835 - protein_coding ENS0000524 7A6C3 ensembl_havana 19.0 ENS0000524 ENS0000524 7A6C3 +20 603797 610398 - protein_coding ENS0001058 65424 ensembl_havana 6.0 ENS0001058 ENS0001058 65424 +20 646615 653200 - protein_coding ENS0001164 077A2 ensembl_havana 2.0 ENS0001164 ENS0001164 077A2 +20 646626 675800 - protein_coding ENS0001177 22A4F havana 1.0 ENS0001177 ENS0001177 22A4F +20 661596 675802 - protein_coding ENS0001548 981E6 ensembl_havana 4.0 ENS0001548 ENS0001548 981E6 +20 760080 776015 - protein_coding ENS0000708 E2D99 ensembl_havana 18.0 ENS0000708 ENS0000708 E2D99 +20 833715 857463 + protein_coding ENS0001350 D90E9 ensembl_havana 13.0 ENS0001350 ENS0001350 D90E9 +20 839447 839977 - processed_pseudogene ENS0000607 97B0F havana 6.0 ENS0000607 ENS0000607 97B0F +20 869900 916334 - protein_coding ENS0000967 F2DD3 ensembl_havana 8.0 ENS0000967 ENS0000967 F2DD3 +20 958452 1002311 - protein_coding ENS0001131 61380 ensembl_havana 9.0 ENS0001131 ENS0001131 61380 +20 1023874 1118467 - lncRNA ENS0000183 DC6B0 havana 1.0 ENS0000183 ENS0000183 DC6B0 +20 1113240 1189415 + protein_coding ENS0000903 7EE8B ensembl_havana 18.0 ENS0000903 ENS0000903 7EE8B +20 1160584 1161697 + processed_pseudogene ENS0000705 51CA8 havana 3.0 ENS0000705 ENS0000705 51CA8 +20 1180561 1185415 - protein_coding ENS0000065 05677 ensembl_havana 5.0 ENS0000065 ENS0000065 05677 +20 1186092 1207036 + lncRNA ENS0001189 69BC1 havana 1.0 ENS0001189 ENS0001189 69BC1 +20 1203454 1208279 + protein_coding ENS0000325 C25F4 ensembl_havana 2.0 ENS0000325 ENS0000325 C25F4 +20 1226056 1296421 + protein_coding ENS0001288 4178C ensembl_havana 5.0 ENS0001288 ENS0001288 4178C +20 1266280 1309328 + protein_coding ENS0000560 0BBDD ensembl_havana 15.0 ENS0000560 ENS0000560 0BBDD +20 1309909 1329139 - protein_coding ENS0000964 CB4D6 ensembl_havana 15.0 ENS0000964 ENS0000964 CB4D6 +20 1317571 1393096 - protein_coding ENS0000262 57498 havana 1.0 ENS0000262 ENS0000262 57498 +20 1320710 1324367 + TEC ENS0000514 6C6F2 havana 1.0 ENS0000514 ENS0000514 6C6F2 +20 1325405 1378735 + lncRNA ENS0000561 54645 havana 7.0 ENS0000561 ENS0000561 54645 +20 1361622 1362585 + lncRNA ENS0000081 49F73 havana 1.0 ENS0000081 ENS0000081 49F73 +20 1368977 1393164 - protein_coding ENS0000125 06230 ensembl_havana 18.0 ENS0000125 ENS0000125 06230 +20 1392900 1392961 - miRNA ENS0001448 35A3E mirbase 1.0 ENS0001448 ENS0001448 35A3E +20 1442162 1473842 - protein_coding ENS0000053 E5E0A ensembl_havana 17.0 ENS0000053 ENS0000053 E5E0A +20 1470741 1491587 - protein_coding ENS0000762 10CCD ensembl_havana 13.0 ENS0000762 ENS0000762 10CCD +20 1516759 1557653 - unprocessed_pseudogene ENS0001478 E567E havana 1.0 ENS0001478 ENS0001478 E567E +20 1529056 1529159 - snRNA ENS0000078 BACB5 ensembl 1.0 ENS0000078 ENS0000078 BACB5 +20 1534251 1557705 - protein_coding ENS0000835 4F4C7 ensembl_havana 13.0 ENS0000835 ENS0000835 4F4C7 +20 1540144 1620009 - protein_coding ENS0000021 FBE60 havana 6.0 ENS0000021 ENS0000021 FBE60 +20 1561385 1620061 - protein_coding ENS0001305 73049 ensembl_havana 16.0 ENS0001305 ENS0001305 73049 +20 1591392 1591848 + processed_pseudogene ENS0000014 9CE7A havana 1.0 ENS0000014 ENS0000014 9CE7A +20 1629152 1657779 - protein_coding ENS0001403 39174 ensembl_havana 14.0 ENS0001403 ENS0001403 39174 +20 1633508 1648472 + lncRNA ENS0000075 3B97C havana 5.0 ENS0000075 ENS0000075 3B97C +20 1665283 1708200 - unprocessed_pseudogene ENS0000562 F2F34 havana 1.0 ENS0000562 ENS0000562 F2F34 +20 1666360 1666640 + misc_RNA ENS0000556 0D5C2 ensembl 3.0 ENS0000556 ENS0000556 0D5C2 +20 1676662 1676907 - unprocessed_pseudogene ENS0000479 87B56 havana 1.0 ENS0000479 ENS0000479 87B56 +20 1722045 1722537 - unprocessed_pseudogene ENS0001504 95110 havana 1.0 ENS0001504 ENS0001504 95110 +20 1729038 1817765 - lncRNA ENS0001474 1EF70 havana 1.0 ENS0001474 ENS0001474 1EF70 +20 1756756 1758940 - processed_pseudogene ENS0001266 D9191 havana 1.0 ENS0001266 ENS0001266 D9191 +20 1767957 1779995 - transcribed_unitary_pseudogene ENS0000717 51BE3 havana 3.0 ENS0000717 ENS0000717 51BE3 +20 1888128 1894374 - lncRNA ENS0000471 F1AE2 havana 1.0 ENS0000471 ENS0000471 F1AE2 +20 1894167 1940592 + protein_coding ENS0001186 048F1 ensembl_havana 12.0 ENS0001186 ENS0001186 048F1 +20 1947246 2030028 + lncRNA ENS0001479 04CDB havana 2.0 ENS0001479 ENS0001479 04CDB +20 1978757 1994285 - protein_coding ENS0000221 025DD ensembl_havana 9.0 ENS0000221 ENS0000221 025DD +20 2075555 2075822 + processed_pseudogene ENS0000243 96A40 havana 1.0 ENS0000243 ENS0000243 96A40 +20 2101827 2177038 + protein_coding ENS0000019 BA9A2 ensembl_havana 13.0 ENS0000019 ENS0000019 BA9A2 +20 2107900 2109991 - lncRNA ENS0000051 6B634 havana 1.0 ENS0000051 ENS0000051 6B634 +20 2194074 2201329 + lncRNA ENS0000619 55A29 havana_tagene 1.0 ENS0000619 ENS0000619 55A29 +20 2206683 2207397 - lncRNA ENS0000582 21741 havana_tagene 1.0 ENS0000582 ENS0000582 21741 +20 2207217 2213151 + lncRNA ENS0001402 24E15 ensembl_havana 5.0 ENS0001402 ENS0001402 24E15 +20 2207328 2341059 + protein_coding ENS0001269 5A7A4 havana 1.0 ENS0001269 ENS0001269 5A7A4 +20 2296001 2341079 + protein_coding ENS0000490 34B67 ensembl_havana 12.0 ENS0000490 ENS0000490 34B67 +20 2380901 2432753 + protein_coding ENS0000324 05296 ensembl_havana 10.0 ENS0000324 ENS0000324 05296 +20 2453010 2453117 - misc_RNA ENS0000815 A1929 ensembl 1.0 ENS0000815 ENS0000815 A1929 +20 2461634 2470853 - protein_coding ENS0001416 6BC70 ensembl_havana 19.0 ENS0001416 ENS0001416 6BC70 +20 2467212 2508907 - protein_coding ENS0001291 3384F havana 1.0 ENS0001291 ENS0001291 3384F +20 2481817 2524702 - protein_coding ENS0000670 D008E ensembl_havana 13.0 ENS0000670 ENS0000670 D008E +20 2536607 2641784 + protein_coding ENS0000795 7113C ensembl_havana 13.0 ENS0000795 ENS0000795 7113C +20 2652593 2658393 + protein_coding ENS0001264 2A7AB ensembl_havana 17.0 ENS0001264 ENS0001264 2A7AB +20 2652777 2652842 + miRNA ENS0000898 EFDCC mirbase 1.0 ENS0000898 ENS0000898 EFDCC +20 2654212 2654286 + snoRNA ENS0000931 B946F ensembl 1.0 ENS0000931 ENS0000931 B946F +20 2655067 2655198 + snoRNA ENS0000984 8713D ensembl 1.0 ENS0000984 ENS0000984 8713D +20 2656097 2656182 + snoRNA ENS0000786 BE49E ensembl 1.0 ENS0000786 ENS0000786 BE49E +20 2656624 2656694 + snoRNA ENS0000133 55B2F ensembl 1.0 ENS0000133 ENS0000133 55B2F +20 2656939 2657010 + snoRNA ENS0001255 2B998 ensembl 1.0 ENS0001255 ENS0001255 2B998 +20 2658395 2664219 - protein_coding ENS0000438 1AF6D ensembl_havana 21.0 ENS0000438 ENS0000438 1AF6D +20 2664352 2665874 + lncRNA ENS0000296 7A4DC havana 1.0 ENS0000296 ENS0000296 7A4DC +20 2692874 2760108 + protein_coding ENS0001026 E9DA7 ensembl_havana 21.0 ENS0001026 ENS0001026 E9DA7 +20 2780614 2781041 + processed_pseudogene ENS0001283 5C3B0 havana 1.0 ENS0001283 ENS0001283 5C3B0 +20 2794074 2800627 - protein_coding ENS0000040 63A70 ensembl_havana 8.0 ENS0000040 ENS0000040 63A70 +20 2814968 2818066 + protein_coding ENS0000853 D98EB havana 3.0 ENS0000853 ENS0000853 D98EB +20 2814987 2815833 + protein_coding ENS0001257 6EAE4 ensembl_havana 3.0 ENS0001257 ENS0001257 6EAE4 +20 2816302 2820284 + protein_coding ENS0000113 04C78 ensembl_havana 10.0 ENS0000113 ENS0000113 04C78 +20 2835314 2841190 - protein_coding ENS0000625 1D345 ensembl_havana 17.0 ENS0000625 ENS0000625 1D345 +20 2840703 2866732 + protein_coding ENS0000678 0B59C ensembl_havana 10.0 ENS0000678 ENS0000678 0B59C +20 2864184 3039076 + protein_coding ENS0000739 1D971 ensembl_havana 20.0 ENS0000739 ENS0000739 1D971 +20 3043622 3045747 + protein_coding ENS0001303 F60D3 ensembl_havana 11.0 ENS0001303 ENS0001303 F60D3 +20 3046052 3048250 + protein_coding ENS0000422 AF91E ensembl_havana 6.0 ENS0000422 ENS0000422 AF91E +20 3071620 3072517 + protein_coding ENS0000703 027B5 ensembl_havana 3.0 ENS0000703 ENS0000703 027B5 +20 3082556 3084724 - protein_coding ENS0001332 F2874 ensembl_havana 5.0 ENS0001332 ENS0001332 F2874 +20 3094171 3094509 + misc_RNA ENS0001101 73393 ensembl 2.0 ENS0001101 ENS0001101 73393 +20 3106913 3150867 + lncRNA ENS0001335 74EF6 havana 5.0 ENS0001335 ENS0001335 74EF6 +20 3107573 3160196 - protein_coding ENS0001508 0EBFE ensembl_havana 17.0 ENS0001508 ENS0001508 0EBFE +20 3146519 3159865 - protein_coding ENS0001341 003B6 ensembl_havana 4.0 ENS0001341 ENS0001341 003B6 +20 3162617 3173592 - protein_coding ENS0000523 82E9F ensembl_havana 15.0 ENS0000523 ENS0000523 82E9F +20 3190350 3204685 - protein_coding ENS0000494 B9A4E ensembl_havana 13.0 ENS0000494 ENS0000494 B9A4E +20 3208868 3223870 + protein_coding ENS0001159 3BA65 ensembl_havana 13.0 ENS0001159 ENS0001159 3BA65 +20 3227417 3239559 - protein_coding ENS0000233 C81E4 ensembl_havana 14.0 ENS0000233 ENS0000233 C81E4 +20 3239705 3245382 + lncRNA ENS0000681 58C5F havana 1.0 ENS0000681 ENS0000681 58C5F +20 3249305 3407625 - protein_coding ENS0000322 34108 ensembl_havana 12.0 ENS0000322 ENS0000322 34108 +20 3360036 3360142 + snRNA ENS0001387 5A72B ensembl 1.0 ENS0001387 ENS0001387 5A72B +20 3361880 3362324 - processed_pseudogene ENS0000954 CCB48 havana 1.0 ENS0000954 ENS0000954 CCB48 +20 3384229 3384440 + snoRNA ENS0000522 E8A38 ensembl 2.0 ENS0000522 ENS0000522 E8A38 +20 3406380 3410036 + lncRNA ENS0001509 76212 havana 1.0 ENS0001509 ENS0001509 76212 +20 3465177 3465444 - processed_pseudogene ENS0001518 6A1B7 havana 1.0 ENS0001518 ENS0001518 6A1B7 +20 3471018 3651118 + protein_coding ENS0000707 04AFD ensembl_havana 18.0 ENS0000707 ENS0000707 04AFD +20 3489529 3491005 - processed_pseudogene ENS0001105 9F959 havana 1.0 ENS0001105 ENS0001105 9F959 +20 3659248 3663399 - protein_coding ENS0000199 FB6B7 ensembl_havana 16.0 ENS0000199 ENS0000199 FB6B7 +20 3667965 3682246 - protein_coding ENS0001290 8AB97 ensembl_havana 18.0 ENS0001290 ENS0001290 8AB97 +20 3686970 3707128 - protein_coding ENS0000437 52026 ensembl_havana 12.0 ENS0000437 ENS0000437 52026 +20 3732685 3753111 + protein_coding ENS0001391 9C98A ensembl_havana 11.0 ENS0001391 ENS0001391 9C98A +20 3753508 3767781 - protein_coding ENS0000631 833DD ensembl_havana 18.0 ENS0000631 ENS0000631 833DD +20 3777504 3781448 - protein_coding ENS0000267 F16DD ensembl_havana 12.0 ENS0000267 ENS0000267 F16DD +20 3783851 3786740 - protein_coding ENS0000328 E77F6 ensembl_havana 8.0 ENS0000328 ENS0000328 E77F6 +20 3786772 3806121 + protein_coding ENS0000720 447B1 ensembl_havana 17.0 ENS0000720 ENS0000720 447B1 +20 3808357 3812434 + lncRNA ENS0000161 DA9E5 havana 1.0 ENS0000161 ENS0000161 DA9E5 +20 3811384 3823882 + lncRNA ENS0000117 F58BB havana 1.0 ENS0000117 ENS0000117 F58BB +20 3820524 3828838 + protein_coding ENS0000106 7561E ensembl_havana 11.0 ENS0000106 ENS0000106 7561E +20 3846799 3876123 + protein_coding ENS0000508 6D581 ensembl_havana 18.0 ENS0000508 ENS0000508 6D581 +20 3888239 3888868 - lncRNA ENS0001199 0A66D havana 1.0 ENS0001199 ENS0001199 0A66D +20 3888839 3929882 + protein_coding ENS0001316 F8A12 ensembl_havana 22.0 ENS0001316 ENS0001316 F8A12 +20 3917494 3917571 + miRNA ENS0001521 372E3 mirbase 1.0 ENS0001521 ENS0001521 372E3 +20 3917502 3917563 - miRNA ENS0000534 FE749 mirbase 1.0 ENS0000534 ENS0000534 FE749 +20 3921279 3923400 - lncRNA ENS0000469 1B421 havana 1.0 ENS0000469 ENS0000469 1B421 +20 3927309 4015558 - protein_coding ENS0000976 D6C6A ensembl_havana 17.0 ENS0000976 ENS0000976 D6C6A +20 4023917 4024444 + processed_pseudogene ENS0001117 45370 havana 3.0 ENS0001117 ENS0001117 45370 +20 4059633 4060113 - processed_pseudogene ENS0001032 7E9F3 havana 3.0 ENS0001032 ENS0001032 7E9F3 +20 4070152 4075165 - lncRNA ENS0000176 F5E40 havana 3.0 ENS0000176 ENS0000176 F5E40 +20 4120980 4187747 + protein_coding ENS0000872 2198E ensembl_havana 18.0 ENS0000872 ENS0000872 2198E +20 4192932 4195953 + lncRNA ENS0001207 FB2C5 havana_tagene 3.0 ENS0001207 ENS0001207 FB2C5 +20 4220630 4249287 - protein_coding ENS0000251 0C663 ensembl_havana 8.0 ENS0000251 ENS0000251 0C663 +20 4422186 4431732 - lncRNA ENS0001346 E43CC havana 2.0 ENS0001346 ENS0001346 E43CC +20 4475638 4525200 + lncRNA ENS0001319 DDB7B havana 1.0 ENS0001319 ENS0001319 DDB7B +20 4590993 4591300 - processed_pseudogene ENS0000841 6D7E7 havana 1.0 ENS0000841 ENS0000841 6D7E7 +20 4627758 4685148 - transcribed_processed_pseudogene ENS0000845 45596 havana 2.0 ENS0000845 ENS0000845 45596 +20 4686350 4701590 + protein_coding ENS0000104 9EE30 ensembl_havana 17.0 ENS0000104 ENS0000104 9EE30 +20 4721909 4728460 + protein_coding ENS0000278 F5295 ensembl_havana 5.0 ENS0000278 ENS0000278 F5295 +20 4731279 4740668 - lncRNA ENS0001519 338AF havana 10.0 ENS0001519 ENS0001519 338AF +20 4735669 4736673 - processed_pseudogene ENS0001055 C3DD5 havana 1.0 ENS0001055 ENS0001055 C3DD5 +20 4761300 4761696 + lncRNA ENS0000957 54B2B havana 1.0 ENS0000957 ENS0000957 54B2B +20 4780023 4823608 - protein_coding ENS0000982 9F33F ensembl_havana 16.0 ENS0000982 ENS0000982 9F33F +20 4852356 5010293 - protein_coding ENS0000088 1E9BF ensembl_havana 15.0 ENS0000088 ENS0000088 1E9BF +20 4868984 4869118 + snoRNA ENS0000512 B9EA8 ensembl 1.0 ENS0000512 ENS0000512 B9EA8 +20 5013520 5013724 - processed_pseudogene ENS0000372 1895C havana 1.0 ENS0000372 ENS0000372 1895C +20 5045761 5046276 - lncRNA ENS0001366 6C5E5 havana 1.0 ENS0001366 ENS0001366 6C5E5 +20 5049857 5050321 - lncRNA ENS0001363 7FF47 havana 1.0 ENS0001363 ENS0001363 7FF47 +20 5061037 5061340 - lncRNA ENS0001380 F6A02 havana 1.0 ENS0001380 ENS0001380 F6A02 +20 5066082 5068154 - lncRNA ENS0001300 1994E havana 1.0 ENS0001300 ENS0001300 1994E +20 5068232 5113103 - protein_coding ENS0001146 A6D55 ensembl_havana 15.0 ENS0001146 ENS0001146 A6D55 +20 5098387 5098476 - rRNA_pseudogene ENS0000094 31B02 ensembl 1.0 ENS0000094 ENS0000094 31B02 +20 5113993 5114083 - misc_RNA ENS0000888 5380E ensembl 1.0 ENS0000888 ENS0000888 5380E +20 5114953 5126626 - protein_coding ENS0000378 C9122 ensembl_havana 11.0 ENS0000378 ENS0000378 C9122 +20 5121417 5121539 - snoRNA ENS0001067 4477B ensembl 1.0 ENS0001067 ENS0001067 4477B +20 5126879 5197887 + protein_coding ENS0000799 29F12 ensembl_havana 14.0 ENS0000799 ENS0000799 29F12 +20 5292388 5292831 - processed_pseudogene ENS0001134 CE0C4 havana 1.0 ENS0001134 ENS0001134 CE0C4 +20 5299218 5316954 - protein_coding ENS0000247 4B61B ensembl_havana 8.0 ENS0000247 ENS0000247 4B61B +20 5318268 5503189 + lncRNA ENS0000164 DA51D havana 2.0 ENS0000164 ENS0000164 DA51D +20 5346006 5346160 - rRNA_pseudogene ENS0000936 276AD ensembl 1.0 ENS0000936 ENS0000936 276AD +20 5407564 5407876 + lncRNA ENS0000227 4ABB7 havana 1.0 ENS0000227 ENS0000227 4ABB7 +20 5426892 5471094 - lncRNA ENS0000477 2DF30 havana 9.0 ENS0000477 ENS0000477 2DF30 +20 5445838 5475483 + lncRNA ENS0000580 CE2E9 havana 4.0 ENS0000580 ENS0000580 CE2E9 +20 5482736 5526709 - lncRNA ENS0000869 D3181 havana 7.0 ENS0000869 ENS0000869 D3181 +20 5507875 5510002 - lncRNA ENS0000294 1ED84 havana 1.0 ENS0000294 ENS0000294 1ED84 +20 5532878 5533335 + processed_pseudogene ENS0001323 02C68 havana 1.0 ENS0001323 ENS0001323 02C68 +20 5533628 5535889 + lncRNA ENS0000159 28CF3 havana 1.0 ENS0000159 ENS0000159 28CF3 +20 5544439 5611006 - protein_coding ENS0001021 7ABCD ensembl_havana 14.0 ENS0001021 ENS0001021 7ABCD +20 5548840 5549481 + processed_pseudogene ENS0000073 D0D20 havana 1.0 ENS0000073 ENS0000073 D0D20 +20 5750393 5864395 + protein_coding ENS0000713 00307 ensembl_havana 15.0 ENS0000713 ENS0000713 00307 +20 5890055 5890212 + snRNA ENS0000259 FAC07 ensembl 1.0 ENS0000259 ENS0000259 FAC07 +20 5911510 5925353 + protein_coding ENS0000151 8F33D ensembl_havana 10.0 ENS0000151 ENS0000151 8F33D +20 5928085 5929318 - processed_pseudogene ENS0000016 2C6D4 havana 3.0 ENS0000016 ENS0000016 2C6D4 +20 5937228 5950558 - protein_coding ENS0001525 3FC84 ensembl_havana 15.0 ENS0001525 ENS0001525 3FC84 +20 5950652 5998977 + protein_coding ENS0000645 4FB60 ensembl_havana 13.0 ENS0000645 ENS0000645 4FB60 +20 5950949 6039856 + protein_coding ENS0000412 45F41 havana 1.0 ENS0000412 ENS0000412 45F41 +20 5964538 5964650 + misc_RNA ENS0000932 F974F ensembl 1.0 ENS0000932 ENS0000932 F974F +20 5965180 5965511 + processed_pseudogene ENS0001228 D4B7F havana 1.0 ENS0001228 ENS0001228 D4B7F +20 5990943 6005821 - lncRNA ENS0000755 17F1D havana 1.0 ENS0000755 ENS0000755 17F1D +20 6000418 6000941 + lncRNA ENS0000209 F5ADD havana 1.0 ENS0000209 ENS0000209 F5ADD +20 6001733 6002030 + misc_RNA ENS0001400 9F3C3 ensembl 2.0 ENS0001400 ENS0001400 9F3C3 +20 6006093 6040053 + protein_coding ENS0000454 578B5 ensembl_havana 12.0 ENS0000454 ENS0000454 578B5 +20 6040546 6054060 - protein_coding ENS0000830 661CD ensembl_havana 8.0 ENS0000830 ENS0000830 661CD +20 6065966 6067897 - lncRNA ENS0000184 06DDE havana 1.0 ENS0000184 ENS0000184 06DDE +20 6074845 6123030 - protein_coding ENS0001270 CDFE4 ensembl_havana 16.0 ENS0001270 ENS0001270 CDFE4 +20 6200989 6202191 - processed_pseudogene ENS0000387 CCDE9 havana 1.0 ENS0000387 ENS0000387 CCDE9 +20 6213699 6215381 + processed_pseudogene ENS0000632 F231B havana 1.0 ENS0000632 ENS0000632 F231B +20 6219199 6219443 + processed_pseudogene ENS0001259 EA9F0 havana 1.0 ENS0001259 ENS0001259 EA9F0 +20 6220330 6220759 + processed_pseudogene ENS0000041 3353C havana 1.0 ENS0000041 ENS0000041 3353C +20 6446723 6528459 + lncRNA ENS0001057 B4CEF havana 1.0 ENS0001057 ENS0001057 B4CEF +20 6731080 6736326 - lncRNA ENS0000685 F090F havana 2.0 ENS0000685 ENS0000685 F090F +20 6767686 6780246 + protein_coding ENS0000659 A1516 ensembl_havana 7.0 ENS0000659 ENS0000659 A1516 +20 7069614 7146656 + lncRNA ENS0001457 D927D havana 1.0 ENS0001457 ENS0001457 D927D +20 7146467 7254202 - lncRNA ENS0001515 A665E havana 1.0 ENS0001515 ENS0001515 A665E +20 7255053 7258323 - lncRNA ENS0000819 6F682 havana 2.0 ENS0000819 ENS0000819 6F682 +20 7302056 7307432 - lncRNA ENS0001072 B23F8 havana 1.0 ENS0001072 ENS0001072 B23F8 +20 7347451 7367933 + lncRNA ENS0000166 E1178 havana 2.0 ENS0000166 ENS0000166 E1178 +20 7371608 7371692 + miRNA ENS0001180 84510 mirbase 1.0 ENS0001180 ENS0001180 84510 +20 7633562 7633851 - misc_RNA ENS0000069 45C6D ensembl 3.0 ENS0000069 ENS0000069 45C6D +20 7831798 7832322 - processed_pseudogene ENS0000537 ABF74 havana 2.0 ENS0000537 ENS0000537 ABF74 +20 7867327 7867614 + processed_pseudogene ENS0001276 0AA43 havana 1.0 ENS0001276 ENS0001276 0AA43 +20 7882985 7940458 - protein_coding ENS0001336 3BA51 ensembl_havana 5.0 ENS0001336 ENS0001336 3BA51 +20 7977346 8019805 - protein_coding ENS0000445 D035C ensembl_havana 9.0 ENS0000445 ENS0000445 D035C +20 8019180 8043512 + lncRNA ENS0001534 0A117 havana 7.0 ENS0001534 ENS0001534 0A117 +20 8077251 8968360 + protein_coding ENS0001185 73A5C ensembl_havana 18.0 ENS0001185 ENS0001185 73A5C +20 8097824 8099774 - processed_pseudogene ENS0001340 9D2C5 havana 1.0 ENS0001340 ENS0001340 9D2C5 +20 8248704 8256918 + lncRNA ENS0000552 00D64 havana 1.0 ENS0000552 ENS0000552 00D64 +20 8831186 8831393 + snoRNA ENS0000677 65ED7 ensembl 1.0 ENS0000677 ENS0000677 65ED7 +20 8929895 8930038 - processed_pseudogene ENS0000146 13631 havana 1.0 ENS0000146 ENS0000146 13631 +20 8934984 8935481 - processed_pseudogene ENS0001390 B387A havana 1.0 ENS0001390 ENS0001390 B387A +20 8998849 8999100 + misc_RNA ENS0000975 BCE38 ensembl 1.0 ENS0000975 ENS0000975 BCE38 +20 9068763 9481242 + protein_coding ENS0001049 52452 ensembl_havana 17.0 ENS0001049 ENS0001049 52452 +20 9505180 9514998 - lncRNA ENS0000417 3E72E havana 1.0 ENS0000417 ENS0000417 3E72E +20 9514358 9530524 + protein_coding ENS0001524 05207 ensembl_havana 10.0 ENS0001524 ENS0001524 05207 +20 9537370 9839076 - protein_coding ENS0001289 87711 ensembl_havana 17.0 ENS0001289 ENS0001289 87711 +20 9562941 9571257 + lncRNA ENS0001028 D0C17 havana_tagene 1.0 ENS0001028 ENS0001028 D0C17 +20 9575608 9577689 + lncRNA ENS0000150 AE309 havana 1.0 ENS0000150 ENS0000150 AE309 +20 9835556 9873900 + lncRNA ENS0001173 19D34 havana_tagene 1.0 ENS0001173 ENS0001173 19D34 +20 9986088 10007116 + lncRNA ENS0000352 86923 havana 2.0 ENS0000352 ENS0000352 86923 +20 9986126 10058303 + protein_coding ENS0000203 2035A ensembl_havana 16.0 ENS0000203 ENS0000203 2035A +20 10006381 10368776 - lncRNA ENS0000430 B58DD havana 8.0 ENS0000430 ENS0000430 B58DD +20 10025917 10026168 + misc_RNA ENS0001079 2D121 ensembl 1.0 ENS0001079 ENS0001079 2D121 +20 10172522 10200824 + lncRNA ENS0000334 5DBF8 havana 2.0 ENS0000334 ENS0000334 5DBF8 +20 10172701 10186740 + lncRNA ENS0001514 111CF havana_tagene 2.0 ENS0001514 ENS0001514 111CF +20 10218830 10307418 + protein_coding ENS0001102 135E9 ensembl_havana 13.0 ENS0001102 ENS0001102 135E9 +20 10317889 10318753 - lncRNA ENS0000239 66BDB havana_tagene 1.0 ENS0000239 ENS0000239 66BDB +20 10334419 10334698 + processed_pseudogene ENS0001360 92C02 havana 1.0 ENS0001360 ENS0001360 92C02 +20 10349157 10349628 - processed_pseudogene ENS0000585 19211 havana 3.0 ENS0000585 ENS0000585 19211 +20 10385779 10387806 + processed_pseudogene ENS0000212 522EC havana 1.0 ENS0000212 ENS0000212 522EC +20 10401009 10434222 - protein_coding ENS0001251 8012A ensembl_havana 20.0 ENS0001251 ENS0001251 8012A +20 10413520 10431922 - protein_coding ENS0000598 59FE3 havana 1.0 ENS0000598 ENS0000598 59FE3 +20 10420546 10420737 - protein_coding ENS0001104 CE242 havana 1.0 ENS0001104 ENS0001104 CE242 +20 10435305 10636829 + protein_coding ENS0001317 7B255 ensembl_havana 15.0 ENS0001317 ENS0001317 7B255 +20 10612861 10614229 - processed_pseudogene ENS0000541 96B11 havana 4.0 ENS0000541 ENS0000541 96B11 +20 10637684 10673999 - protein_coding ENS0000446 3E841 ensembl_havana 12.0 ENS0000446 ENS0000446 3E841 +20 10649636 10649695 - miRNA ENS0000602 B37D2 mirbase 1.0 ENS0000602 ENS0000602 B37D2 +20 10672695 10994924 + lncRNA ENS0001285 D360D havana 6.0 ENS0001285 ENS0001285 D360D +20 10696949 10754033 + lncRNA ENS0001007 A7675 havana 3.0 ENS0001007 ENS0001007 A7675 +20 10753278 10765286 - lncRNA ENS0001453 DA21F havana 1.0 ENS0001453 ENS0001453 DA21F +20 10875333 10909279 - lncRNA ENS0001206 D4AC8 havana_tagene 2.0 ENS0001206 ENS0001206 D4AC8 +20 10888582 10889088 - processed_pseudogene ENS0001009 01B8F havana 1.0 ENS0001009 ENS0001009 01B8F +20 10996293 11029455 + lncRNA ENS0001532 6BBDE havana_tagene 8.0 ENS0001532 ENS0001532 6BBDE +20 11001304 11001763 + lncRNA ENS0001209 876A2 havana 1.0 ENS0001209 ENS0001209 876A2 +20 11234170 11301525 - lncRNA ENS0000276 EE833 havana 2.0 ENS0000276 ENS0000276 EE833 +20 11345383 11345855 - processed_pseudogene ENS0000794 55220 havana 1.0 ENS0000794 ENS0000794 55220 +20 11536406 11541647 - lncRNA ENS0001512 01796 havana 1.0 ENS0001512 ENS0001512 01796 +20 11566484 11581335 - lncRNA ENS0000754 C0E83 havana_tagene 1.0 ENS0000754 ENS0000754 C0E83 +20 11608436 11609048 - processed_pseudogene ENS0000134 1E213 havana 1.0 ENS0000134 ENS0000134 1E213 +20 11621051 11621477 + processed_pseudogene ENS0000913 7B42C havana 1.0 ENS0000913 ENS0000913 7B42C +20 11685144 11687323 - lncRNA ENS0001197 BC73B havana 1.0 ENS0001197 ENS0001197 BC73B +20 11800463 11878429 - lncRNA ENS0000920 F8546 havana 5.0 ENS0000920 ENS0000920 F8546 +20 11818821 11819091 - misc_RNA ENS0000196 15E3B ensembl 1.0 ENS0000196 ENS0000196 15E3B +20 11838355 11838574 + processed_pseudogene ENS0001200 88041 havana 1.0 ENS0001200 ENS0001200 88041 +20 11890723 11926609 + protein_coding ENS0000843 B82E6 ensembl_havana 15.0 ENS0000843 ENS0000843 B82E6 +20 11909404 11918677 - lncRNA ENS0000456 AEABA havana 1.0 ENS0000456 ENS0000456 AEABA +20 12243308 12318221 - lncRNA ENS0001035 A1E56 havana 2.0 ENS0001035 ENS0001035 A1E56 +20 12305613 12316485 - lncRNA ENS0000064 9E166 havana 1.0 ENS0000064 ENS0000064 9E166 +20 12380056 12381255 + processed_pseudogene ENS0000540 638E1 havana 1.0 ENS0000540 ENS0000540 638E1 +20 12865202 12952519 - lncRNA ENS0001475 AC56B havana 1.0 ENS0001475 ENS0001475 AC56B +20 12934877 12937097 - lncRNA ENS0001343 B2F03 havana 2.0 ENS0001343 ENS0001343 B2F03 +20 12936262 12940902 + lncRNA ENS0000686 FC02B havana 1.0 ENS0000686 ENS0000686 FC02B +20 12950288 13008417 + lncRNA ENS0001094 EADBC havana 2.0 ENS0001094 ENS0001094 EADBC +20 13008972 13169103 + protein_coding ENS0000398 6EA76 ensembl_havana 13.0 ENS0000398 ENS0000398 6EA76 +20 13073667 13074312 - processed_pseudogene ENS0000432 75E3D havana 1.0 ENS0000432 ENS0000432 75E3D +20 13221274 13300651 + protein_coding ENS0000121 D0821 ensembl_havana 6.0 ENS0000121 ENS0000121 D0821 +20 13237801 13239674 - lncRNA ENS0001053 A3417 havana 1.0 ENS0001053 ENS0001053 A3417 +20 13244064 13245369 - lncRNA ENS0001162 35C78 havana 1.0 ENS0001162 ENS0001162 35C78 +20 13368291 13368703 - lncRNA ENS0000860 753CA havana 1.0 ENS0000860 ENS0000860 753CA +20 13389392 13638932 - protein_coding ENS0001510 8A157 ensembl_havana 16.0 ENS0001510 ENS0001510 8A157 +20 13392677 13393674 + processed_pseudogene ENS0000098 BF5AE havana 1.0 ENS0000098 ENS0000098 BF5AE +20 13714322 13784886 - protein_coding ENS0001377 3861B ensembl_havana 14.0 ENS0001377 ENS0001377 3861B +20 13785007 13821580 + protein_coding ENS0000165 1F4AE ensembl_havana 18.0 ENS0000165 ENS0000165 1F4AE +20 13849247 13996443 - protein_coding ENS0000658 AE130 ensembl_havana 13.0 ENS0000658 ENS0000658 AE130 +20 13973316 13973424 - snRNA ENS0000157 A844A ensembl 1.0 ENS0000157 ENS0000157 A844A +20 13995369 16053197 + protein_coding ENS0000210 FA91D ensembl_havana 17.0 ENS0000210 ENS0000210 FA91D +20 14003508 14003699 + processed_pseudogene ENS0001425 65E85 havana 1.0 ENS0001425 ENS0001425 65E85 +20 14127400 14128336 + processed_pseudogene ENS0000085 2234D havana 1.0 ENS0000085 ENS0000085 2234D +20 14223041 14223325 + misc_RNA ENS0001254 96536 ensembl 3.0 ENS0001254 ENS0001254 96536 +20 14322985 14337614 - protein_coding ENS0000330 CD310 ensembl_havana 10.0 ENS0000330 ENS0000330 CD310 +20 14352320 14352425 + snRNA ENS0000785 878BF ensembl 1.0 ENS0000785 ENS0000785 878BF +20 14522081 14523314 - lncRNA ENS0000885 FBF0E havana_tagene 1.0 ENS0000885 ENS0000885 FBF0E +20 14547184 14547623 - processed_pseudogene ENS0000660 5099F havana 1.0 ENS0000660 ENS0000660 5099F +20 14554384 14636524 + lncRNA ENS0000070 5788D havana 2.0 ENS0000070 ENS0000070 5788D +20 14757563 14758056 + processed_pseudogene ENS0000415 DC9E7 havana 2.0 ENS0000415 ENS0000415 DC9E7 +20 14884250 14929528 - lncRNA ENS0000938 55B2F havana 2.0 ENS0000938 ENS0000938 55B2F +20 14933843 14935363 - lncRNA ENS0000965 4E6AE havana 1.0 ENS0000965 ENS0000965 4E6AE +20 15021553 15021659 - snRNA ENS0000917 138C8 ensembl 1.0 ENS0000917 ENS0000917 138C8 +20 15022852 15022958 + snRNA ENS0000787 BE47B ensembl 1.0 ENS0000787 ENS0000787 BE47B +20 15280764 15280873 - rRNA_pseudogene ENS0000083 B5006 ensembl 1.0 ENS0000083 ENS0000083 B5006 +20 15552157 15552885 - lncRNA ENS0001220 9350A havana 1.0 ENS0001220 ENS0001220 9350A +20 15619494 15619819 - processed_pseudogene ENS0001357 BEA95 havana 1.0 ENS0001357 ENS0001357 BEA95 +20 15892355 15985876 - lncRNA ENS0001352 8FB64 havana_tagene 1.0 ENS0001352 ENS0001352 8FB64 +20 16177933 16259603 - lncRNA ENS0000950 AA3AB havana_tagene 1.0 ENS0000950 ENS0000950 AA3AB +20 16223750 16224535 - processed_pseudogene ENS0001349 AE12B havana 1.0 ENS0001349 ENS0001349 AE12B +20 16272104 16573448 - protein_coding ENS0000667 A6E19 ensembl_havana 19.0 ENS0000667 ENS0000667 A6E19 +20 16576068 16579615 + lncRNA ENS0000824 826F4 havana 1.0 ENS0000824 ENS0000824 826F4 +20 16580258 16580622 + lncRNA ENS0000934 5A1E4 havana 1.0 ENS0000934 ENS0000934 5A1E4 +20 16586333 16586693 - processed_pseudogene ENS0000466 986E0 havana 2.0 ENS0000466 ENS0000466 986E0 +20 16670641 16670742 - misc_RNA ENS0001379 A8FB7 ensembl 1.0 ENS0001379 ENS0001379 A8FB7 +20 16684108 16684404 - processed_pseudogene ENS0000725 E6B06 havana 2.0 ENS0000725 ENS0000725 E6B06 +20 16714844 16730948 - lncRNA ENS0001011 E5EC3 havana 2.0 ENS0001011 ENS0001011 E5EC3 +20 16729961 16742564 + protein_coding ENS0001275 8121B ensembl_havana 11.0 ENS0001275 ENS0001275 8121B +20 16748358 16770062 + protein_coding ENS0000059 CD284 ensembl_havana 5.0 ENS0000059 ENS0000059 CD284 +20 16857962 16864148 - lncRNA ENS0000163 A6AAA havana 1.0 ENS0000163 ENS0000163 A6AAA +20 16982831 16983033 - snoRNA ENS0000724 3A211 ensembl 2.0 ENS0000724 ENS0000724 3A211 +20 17187510 17187616 + snRNA ENS0000063 73BC6 ensembl 1.0 ENS0000063 ENS0000063 73BC6 +20 17188134 17188344 + processed_pseudogene ENS0001018 B0F14 havana 1.0 ENS0001018 ENS0001018 B0F14 +20 17209060 17209220 + snRNA ENS0000384 59AB1 ensembl 1.0 ENS0000384 ENS0000384 59AB1 +20 17216779 17221913 - lncRNA ENS0000406 7B4DA havana_tagene 1.0 ENS0000406 ENS0000406 7B4DA +20 17222851 17226146 - lncRNA ENS0000308 0F598 havana_tagene 1.0 ENS0000308 ENS0000308 0F598 +20 17226107 17484578 + protein_coding ENS0000124 D32EC ensembl_havana 10.0 ENS0000124 ENS0000124 D32EC +20 17479085 17479431 - processed_pseudogene ENS0001313 8154C havana 1.0 ENS0001313 ENS0001313 8154C +20 17493905 17569220 - protein_coding ENS0001187 EA474 ensembl_havana 14.0 ENS0001187 ENS0001187 EA474 +20 17516843 17517307 + processed_pseudogene ENS0001314 F0DE9 havana 1.0 ENS0001314 ENS0001314 F0DE9 +20 17565501 17565851 - lncRNA ENS0001040 AB5CA havana 1.0 ENS0001040 ENS0001040 AB5CA +20 17570075 17609919 + protein_coding ENS0001462 11D5E ensembl_havana 16.0 ENS0001462 ENS0001462 11D5E +20 17576206 17576510 - misc_RNA ENS0000612 D2371 ensembl 1.0 ENS0000612 ENS0000612 D2371 +20 17599255 17599807 - processed_pseudogene ENS0000553 05479 havana 1.0 ENS0000553 ENS0000553 05479 +20 17613678 17682295 - protein_coding ENS0000045 61FAC ensembl_havana 16.0 ENS0000045 ENS0000045 61FAC +20 17693672 17735871 + protein_coding ENS0000609 E3559 ensembl_havana 15.0 ENS0000609 ENS0000609 E3559 +20 17887363 17888160 - lncRNA ENS0001399 C8EE4 havana 1.0 ENS0001399 ENS0001399 C8EE4 +20 17903762 17903861 + snRNA ENS0001157 8A755 ensembl 1.0 ENS0001157 ENS0001157 8A755 +20 17941597 17968980 - protein_coding ENS0000004 DB0B0 ensembl_havana 17.0 ENS0000004 ENS0000004 DB0B0 +20 17956979 18059188 - protein_coding ENS0000258 9305F ensembl_havana 11.0 ENS0000258 ENS0000258 9305F +20 17962710 17962946 - snoRNA ENS0001409 D0C0D ensembl 1.0 ENS0001409 ENS0001409 D0C0D +20 17969018 17991122 + protein_coding ENS0000392 D37F0 ensembl_havana 14.0 ENS0000392 ENS0000392 D37F0 +20 18011955 18012284 + processed_pseudogene ENS0001129 3B024 havana 3.0 ENS0001129 ENS0001129 3B024 +20 18059493 18071008 + lncRNA ENS0000368 31342 havana 1.0 ENS0000368 ENS0000368 31342 +20 18090116 18090715 - processed_pseudogene ENS0000068 87C38 havana 1.0 ENS0000068 ENS0000068 87C38 +20 18095571 18095632 - snRNA ENS0001090 69076 ensembl 1.0 ENS0001090 ENS0001090 69076 +20 18113467 18113579 - misc_RNA ENS0001158 E0F0B ensembl 1.0 ENS0001158 ENS0001158 E0F0B +20 18137228 18188387 + protein_coding ENS0001273 0557D ensembl_havana 14.0 ENS0001273 ENS0001273 0557D +20 18137863 18143169 + protein_coding ENS0001421 FB081 ensembl_havana 4.0 ENS0001421 ENS0001421 FB081 +20 18220113 18220512 + processed_pseudogene ENS0000594 B8067 havana 1.0 ENS0000594 ENS0000594 B8067 +20 18258554 18258851 - misc_RNA ENS0001091 3837C ensembl 2.0 ENS0001091 ENS0001091 3837C +20 18265690 18265879 - snRNA ENS0000688 47916 ensembl 1.0 ENS0000688 ENS0000688 47916 +20 18270630 18271069 - lncRNA ENS0000361 CD28F havana_tagene 1.0 ENS0000361 ENS0000361 CD28F +20 18288283 18316996 + protein_coding ENS0000831 9503D ensembl_havana 15.0 ENS0000831 ENS0000831 9503D +20 18289343 18359300 - lncRNA ENS0001272 3587C havana 2.0 ENS0001272 ENS0001272 3587C +20 18295143 18295451 - misc_RNA ENS0000179 1B650 ensembl 1.0 ENS0000179 ENS0000179 1B650 +20 18313765 18315111 - lncRNA ENS0000345 FC63C havana 1.0 ENS0000345 ENS0000345 FC63C +20 18379049 18381484 + lncRNA ENS0000320 4E0F9 ensembl_havana 3.0 ENS0000320 ENS0000320 4E0F9 +20 18383367 18467281 - protein_coding ENS0001024 0B0C1 ensembl_havana 16.0 ENS0001024 ENS0001024 0B0C1 +20 18420160 18421454 - processed_pseudogene ENS0001045 EF43F havana 1.0 ENS0001045 ENS0001045 EF43F +20 18433842 18433944 + rRNA_pseudogene ENS0000671 02E34 ensembl 1.0 ENS0000671 ENS0000671 02E34 +20 18467389 18484646 + protein_coding ENS0000634 760F1 ensembl_havana 12.0 ENS0000634 ENS0000634 760F1 +20 18470615 18470691 + miRNA ENS0000818 D03D7 mirbase 3.0 ENS0000818 ENS0000818 D03D7 +20 18485265 18486052 + processed_pseudogene ENS0000323 A1446 havana 1.0 ENS0000323 ENS0000323 A1446 +20 18486540 18497225 - protein_coding ENS0001092 8FE0E ensembl_havana 16.0 ENS0001092 ENS0001092 8FE0E +20 18504633 18505066 + processed_pseudogene ENS0001424 C68A1 havana 3.0 ENS0001424 ENS0001424 C68A1 +20 18507520 18561415 + protein_coding ENS0001143 EE78E ensembl_havana 17.0 ENS0001143 ENS0001143 EE78E +20 18567347 18569563 + protein_coding ENS0000458 B4FB1 havana 5.0 ENS0000458 ENS0000458 B4FB1 +20 18567453 18744216 + protein_coding ENS0001093 4571E havana 1.0 ENS0001093 ENS0001093 4571E +20 18587942 18766644 + protein_coding ENS0000789 95A9F ensembl_havana 13.0 ENS0000789 ENS0000789 95A9F +20 18592330 18592619 + misc_RNA ENS0000682 1119C ensembl 3.0 ENS0000682 ENS0000682 1119C +20 18611047 18611167 - snRNA ENS0001204 D2C94 ensembl 1.0 ENS0001204 ENS0001204 D2C94 +20 18642782 18643634 - processed_pseudogene ENS0001174 78793 havana 2.0 ENS0001174 ENS0001174 78793 +20 18674395 18698709 - lncRNA ENS0001196 05DCB havana 1.0 ENS0001196 ENS0001196 05DCB +20 18782424 18783690 - processed_pseudogene ENS0000806 80B3A havana 1.0 ENS0000806 ENS0000806 80B3A +20 18786065 18794579 - lncRNA ENS0000416 A17BB havana 10.0 ENS0000416 ENS0000416 A17BB +20 18794529 18796067 + lncRNA ENS0001492 7995A havana 1.0 ENS0001492 ENS0001492 7995A +20 18809728 18830153 - lncRNA ENS0000822 7F6ED ensembl_havana 7.0 ENS0000822 ENS0000822 7F6ED +20 18813783 18814378 + protein_coding ENS0000527 E267C ensembl_havana 6.0 ENS0000527 ENS0000527 E267C +20 19000709 19056796 - lncRNA ENS0000529 184A9 havana 1.0 ENS0000529 ENS0000529 184A9 +20 19208652 19212164 - lncRNA ENS0000290 EA1B5 havana_tagene 1.0 ENS0000290 ENS0000290 EA1B5 +20 19212642 19722926 + protein_coding ENS0000377 A31AD ensembl_havana 12.0 ENS0000377 ENS0000377 A31AD +20 19212852 19213477 - lncRNA ENS0001081 47C18 havana 1.0 ENS0001081 ENS0001081 47C18 +20 19242302 19284596 - lncRNA ENS0000116 98230 havana 2.0 ENS0000116 ENS0000116 98230 +20 19693209 19697576 - lncRNA ENS0000947 602E4 havana 7.0 ENS0000947 ENS0000947 602E4 +20 19756390 19758037 - lncRNA ENS0000736 23DE5 havana 2.0 ENS0000736 ENS0000736 23DE5 +20 19757606 20002459 + protein_coding ENS0000145 D4155 ensembl_havana 13.0 ENS0000145 ENS0000145 D4155 +20 19823443 19823943 - processed_pseudogene ENS0001244 976A6 havana 2.0 ENS0001244 ENS0001244 976A6 +20 20017310 20033655 + protein_coding ENS0000994 088FA ensembl_havana 12.0 ENS0000994 ENS0000994 088FA +20 20034368 20056046 - protein_coding ENS0001163 EA1C0 ensembl_havana 15.0 ENS0001163 ENS0001163 EA1C0 +20 20052514 20360703 + protein_coding ENS0000158 95219 ensembl_havana 19.0 ENS0000158 ENS0000158 95219 +20 20094401 20095684 - lncRNA ENS0000246 45B21 havana 1.0 ENS0000246 ENS0000246 45B21 +20 20214299 20215262 - lncRNA ENS0001059 F7725 havana 1.0 ENS0001059 ENS0001059 F7725 +20 20253303 20253838 - processed_pseudogene ENS0001116 1651B havana 1.0 ENS0001116 ENS0001116 1651B +20 20258407 20267809 - lncRNA ENS0001294 B6F94 havana 1.0 ENS0001294 ENS0001294 B6F94 +20 20316755 20316994 + misc_RNA ENS0001292 4AC1F ensembl 2.0 ENS0001292 ENS0001292 4AC1F +20 20363691 20365657 + TEC ENS0001348 ACB93 havana 1.0 ENS0001348 ENS0001348 ACB93 +20 20368104 20370949 + protein_coding ENS0000641 28601 ensembl_havana 5.0 ENS0000641 ENS0000641 28601 +20 20389530 20712644 - protein_coding ENS0000530 75FCE ensembl_havana 15.0 ENS0000530 ENS0000530 75FCE +20 20659710 20659964 + processed_pseudogene ENS0000268 0EE8E havana 2.0 ENS0000268 ENS0000268 0EE8E +20 20721187 20721879 + processed_pseudogene ENS0000930 CE8A7 havana 1.0 ENS0000930 ENS0000930 CE8A7 +20 20738433 20738731 - misc_RNA ENS0000095 159B5 ensembl 1.0 ENS0000095 ENS0000095 159B5 +20 20854121 20854642 - processed_pseudogene ENS0001087 1B7D8 havana 1.0 ENS0001087 ENS0001087 1B7D8 +20 20970448 20972562 + lncRNA ENS0001184 A70A5 havana 1.0 ENS0001184 ENS0001184 A70A5 +20 21085576 21106514 - lncRNA ENS0000793 08DE1 havana 3.0 ENS0000793 ENS0000793 08DE1 +20 21089696 21092539 + lncRNA ENS0000235 7BD93 havana 2.0 ENS0000235 ENS0000235 7BD93 +20 21114723 21115197 + processed_pseudogene ENS0001145 74937 havana 1.0 ENS0001145 ENS0001145 74937 +20 21125983 21246622 + protein_coding ENS0000779 31E13 ensembl_havana 16.0 ENS0000779 ENS0000779 31E13 +20 21138956 21139074 - rRNA_pseudogene ENS0000859 809D2 ensembl 1.0 ENS0000859 ENS0000859 809D2 +20 21148741 21162890 - lncRNA ENS0000112 1EF6C havana 3.0 ENS0000112 ENS0000112 1EF6C +20 21154023 21218289 - lncRNA ENS0000002 4C98F havana 6.0 ENS0000002 ENS0000002 4C98F +20 21166206 21166596 - processed_pseudogene ENS0000333 A9F75 havana 3.0 ENS0000333 ENS0000333 A9F75 +20 21265854 21266465 + unprocessed_pseudogene ENS0000767 44A30 havana 1.0 ENS0000767 ENS0000767 44A30 +20 21302731 21303704 - lncRNA ENS0000223 780D8 havana 1.0 ENS0000223 ENS0000223 780D8 +20 21303331 21389825 + protein_coding ENS0000646 C6962 ensembl_havana 8.0 ENS0000646 ENS0000646 C6962 +20 21395365 21397526 - protein_coding ENS0000402 EB31E ensembl_havana 5.0 ENS0000402 ENS0000402 EB31E +20 21397740 21400391 + lncRNA ENS0000743 6A387 havana 7.0 ENS0000743 ENS0000743 6A387 +20 21424758 21425041 - misc_RNA ENS0001414 95D80 ensembl 1.0 ENS0001414 ENS0001414 95D80 +20 21488244 21488625 - processed_pseudogene ENS0000613 C7FCE havana 1.0 ENS0000613 ENS0000613 C7FCE +20 21499261 21502934 - lncRNA ENS0000238 6B0F4 havana 1.0 ENS0000238 ENS0000238 6B0F4 +20 21501395 21501968 + processed_pseudogene ENS0000780 1DA3A havana 1.0 ENS0000780 ENS0000780 1DA3A +20 21511017 21514064 - protein_coding ENS0000181 E6F89 ensembl_havana 6.0 ENS0000181 ENS0000181 E6F89 +20 21511447 21512309 + lncRNA ENS0000072 D2B5C havana 1.0 ENS0000072 ENS0000072 D2B5C +20 21530122 21535665 + lncRNA ENS0000679 8041F havana 2.0 ENS0000679 ENS0000679 8041F +20 21569976 21666621 + lncRNA ENS0000484 06CCD havana 4.0 ENS0000484 ENS0000484 06CCD +20 21610787 21703585 - lncRNA ENS0000838 06FE6 havana 1.0 ENS0000838 ENS0000838 06FE6 +20 21614978 21615435 + misc_RNA ENS0000114 3D9FE ensembl 1.0 ENS0000114 ENS0000114 3D9FE +20 21705659 21718486 + protein_coding ENS0001408 08F2A ensembl_havana 13.0 ENS0001408 ENS0001408 08F2A +20 21742303 21743077 - processed_pseudogene ENS0000171 A4E04 havana 1.0 ENS0000171 ENS0000171 A4E04 +20 21755270 21755350 + processed_pseudogene ENS0000581 9BE0B havana 5.0 ENS0000581 ENS0000581 9BE0B +20 21947647 21970783 + lncRNA ENS0000623 ADDDB havana 1.0 ENS0000623 ENS0000623 ADDDB +20 22054074 22074654 + lncRNA ENS0000535 349FB havana_tagene 3.0 ENS0000535 ENS0000535 349FB +20 22220554 22223283 + lncRNA ENS0001497 F74FC havana 1.0 ENS0001497 ENS0001497 F74FC +20 22263065 22284029 - lncRNA ENS0000336 1257F havana 2.0 ENS0000336 ENS0000336 1257F +20 22272052 22273454 - processed_pseudogene ENS0001141 952F7 havana 2.0 ENS0001141 ENS0001141 952F7 +20 22343693 22343930 - processed_pseudogene ENS0000135 0924E havana 1.0 ENS0000135 ENS0000135 0924E +20 22371216 22471557 - lncRNA ENS0000821 F9852 havana 4.0 ENS0000821 ENS0000821 F9852 +20 22547671 22578642 - lncRNA ENS0000747 5CA50 havana 3.0 ENS0000747 ENS0000747 5CA50 +20 22580998 22585455 - protein_coding ENS0000374 44057 ensembl_havana 15.0 ENS0000374 ENS0000374 44057 +20 22587522 22607517 - lncRNA ENS0000156 1F226 havana 1.0 ENS0000156 ENS0000156 1F226 +20 22668480 22685344 - lncRNA ENS0000997 F1BBC havana 3.0 ENS0000997 ENS0000997 F1BBC +20 22684958 22746991 + lncRNA ENS0000375 CB82C havana 3.0 ENS0000375 ENS0000375 CB82C +20 22732802 22734089 - processed_pseudogene ENS0000280 07A2A havana 3.0 ENS0000280 ENS0000280 07A2A +20 22885670 22886068 - processed_pseudogene ENS0001240 6E447 havana 2.0 ENS0001240 ENS0001240 6E447 +20 22960534 22966063 - processed_pseudogene ENS0001085 023E2 havana 1.0 ENS0001085 ENS0001085 023E2 +20 23010209 23030785 - lncRNA ENS0001489 C68FC havana 1.0 ENS0001489 ENS0001489 C68FC +20 23030863 23039241 + lncRNA ENS0000009 DF5D9 havana 7.0 ENS0000009 ENS0000009 DF5D9 +20 23035312 23039237 + protein_coding ENS0000143 03A07 ensembl_havana 6.0 ENS0000143 ENS0000143 03A07 +20 23045633 23049672 - protein_coding ENS0000801 F932A ensembl_havana 7.0 ENS0000801 ENS0000801 F932A +20 23071547 23072722 - TEC ENS0001437 68BD2 havana 1.0 ENS0001437 ENS0001437 68BD2 +20 23079360 23086324 - protein_coding ENS0000531 A3C62 ensembl_havana 10.0 ENS0000531 ENS0000531 A3C62 +20 23125068 23132635 - lncRNA ENS0000499 F6121 havana_tagene 2.0 ENS0000499 ENS0000499 F6121 +20 23148086 23149939 + TEC ENS0000191 1D4D9 havana 1.0 ENS0000191 ENS0000191 1D4D9 +20 23160857 23160971 - rRNA_pseudogene ENS0001384 929CC ensembl 1.0 ENS0001384 ENS0001384 929CC +20 23179272 23190419 + lncRNA ENS0000731 E5957 havana 4.0 ENS0000731 ENS0000731 E5957 +20 23320958 23325352 - lncRNA ENS0000775 15D88 havana 1.0 ENS0000775 ENS0000775 15D88 +20 23346941 23351486 - lncRNA ENS0000788 46277 havana 1.0 ENS0000788 ENS0000788 46277 +20 23350791 23354771 + protein_coding ENS0001195 84849 ensembl_havana 4.0 ENS0001195 ENS0001195 84849 +20 23356594 23358116 - lncRNA ENS0001001 2A541 havana 5.0 ENS0001001 ENS0001001 2A541 +20 23362182 23373062 + protein_coding ENS0000162 A7729 ensembl_havana 16.0 ENS0000162 ENS0000162 A7729 +20 23374519 23421519 - protein_coding ENS0001410 A5AC5 ensembl_havana 17.0 ENS0001410 ENS0001410 A5AC5 +20 23380896 23381012 - rRNA_pseudogene ENS0000464 A9D60 ensembl 1.0 ENS0000464 ENS0000464 A9D60 +20 23439685 23444930 + protein_coding ENS0000573 632D0 ensembl_havana 12.0 ENS0000573 ENS0000573 632D0 +20 23450403 23452876 - protein_coding ENS0000751 5E2A1 ensembl_havana 10.0 ENS0000751 ENS0000751 5E2A1 +20 23452623 23461207 + lncRNA ENS0001126 06247 havana 2.0 ENS0001126 ENS0001126 06247 +20 23457584 23457685 - misc_RNA ENS0001142 71BA0 ensembl 1.0 ENS0001142 ENS0001142 71BA0 +20 23475700 23479798 + unprocessed_pseudogene ENS0000335 28406 havana 1.0 ENS0000335 ENS0000335 28406 +20 23481645 23519054 - lncRNA ENS0000829 14752 havana 2.0 ENS0000829 ENS0000829 14752 +20 23489416 23489973 - lncRNA ENS0000526 1FFC7 havana 1.0 ENS0000526 ENS0000526 1FFC7 +20 23491101 23496010 + protein_coding ENS0001086 FA95F ensembl_havana 9.0 ENS0001086 ENS0001086 FA95F +20 23519146 23542018 + transcribed_unprocessed_pseudogene ENS0001122 5F9D8 havana 9.0 ENS0001122 ENS0001122 5F9D8 +20 23547764 23550652 - unprocessed_pseudogene ENS0000423 27886 havana 2.0 ENS0000423 ENS0000423 27886 +20 23564732 23568484 - protein_coding ENS0000687 7B485 ensembl_havana 5.0 ENS0000687 ENS0000687 7B485 +20 23583645 23586510 + unprocessed_pseudogene ENS0000551 2F9E1 havana 5.0 ENS0000551 ENS0000551 2F9E1 +20 23602410 23605917 - protein_coding ENS0000366 1493E ensembl_havana 5.0 ENS0000366 ENS0000366 1493E +20 23626706 23638473 - protein_coding ENS0001486 F700E ensembl_havana 9.0 ENS0001486 ENS0001486 F700E +20 23631826 23632316 - lncRNA ENS0000503 BB81F havana 1.0 ENS0000503 ENS0000503 BB81F +20 23655225 23656390 - lncRNA ENS0000370 EB307 havana 1.0 ENS0000370 ENS0000370 EB307 +20 23656151 23674888 + lncRNA ENS0001147 AB94B havana 2.0 ENS0001147 ENS0001147 AB94B +20 23685640 23689040 - protein_coding ENS0000854 964AE ensembl_havana 4.0 ENS0000854 ENS0000854 964AE +20 23711320 23711406 - unprocessed_pseudogene ENS0000274 20524 havana 1.0 ENS0000274 ENS0000274 20524 +20 23722589 23745524 + lncRNA ENS0000515 A223E havana 2.0 ENS0000515 ENS0000515 A223E +20 23747553 23751268 - protein_coding ENS0000963 409A1 ensembl_havana 8.0 ENS0000963 ENS0000963 409A1 +20 23772785 23776169 - unprocessed_pseudogene ENS0000452 FE8F7 havana 1.0 ENS0000452 ENS0000452 FE8F7 +20 23798092 23805983 + lncRNA ENS0000966 85C12 havana_tagene 2.0 ENS0000966 ENS0000966 85C12 +20 23823769 23826729 - protein_coding ENS0000548 690BC ensembl_havana 4.0 ENS0000548 ENS0000548 690BC +20 23875934 23879748 - protein_coding ENS0000283 C0035 ensembl_havana 5.0 ENS0000283 ENS0000283 C0035 +20 23918538 23928954 - transcribed_unprocessed_pseudogene ENS0001033 DD169 havana 2.0 ENS0001033 ENS0001033 DD169 +20 23980585 23980734 - unprocessed_pseudogene ENS0000420 1001D havana 1.0 ENS0000420 ENS0000420 1001D +20 23985050 23988779 - protein_coding ENS0000664 66C1A ensembl_havana 12.0 ENS0000664 ENS0000664 66C1A +20 23989292 23990454 + unprocessed_pseudogene ENS0000413 B3C04 havana 8.0 ENS0000413 ENS0000413 B3C04 +20 24063255 24226013 + lncRNA ENS0000772 B1335 havana 2.0 ENS0000772 ENS0000772 B1335 +20 24142590 24144386 - lncRNA ENS0000332 6DB1B havana 1.0 ENS0000332 ENS0000332 6DB1B +20 24237255 24237398 + snRNA ENS0000193 3164B ensembl 1.0 ENS0000193 ENS0000193 3164B +20 24297585 24318086 - lncRNA ENS0001245 3282C havana 2.0 ENS0001245 ENS0001245 3282C +20 24445391 24446314 + processed_pseudogene ENS0000281 AB004 havana 1.0 ENS0000281 ENS0000281 AB004 +20 24469629 24666616 + protein_coding ENS0000948 BD7F0 ensembl_havana 6.0 ENS0000948 ENS0000948 BD7F0 +20 24491472 24502345 - lncRNA ENS0000750 B8BE5 havana 1.0 ENS0000750 ENS0000750 B8BE5 +20 24679547 24680991 + lncRNA ENS0000486 049CA havana 1.0 ENS0000486 ENS0000486 049CA +20 24931840 24932983 + lncRNA ENS0000893 10ECF havana 1.0 ENS0000893 ENS0000893 10ECF +20 24949269 24959928 + protein_coding ENS0001214 95E3E ensembl_havana 6.0 ENS0001214 ENS0001214 95E3E +20 24962925 24992751 - protein_coding ENS0000773 A2BF7 ensembl_havana 12.0 ENS0000773 ENS0000773 A2BF7 +20 24974171 24974280 + snRNA ENS0000543 3CFD9 ensembl 1.0 ENS0000543 ENS0000543 3CFD9 +20 24992312 24993322 + lncRNA ENS0000571 C86E6 havana_tagene 1.0 ENS0000571 ENS0000571 C86E6 +20 25006230 25058980 - protein_coding ENS0001063 A6CAB ensembl_havana 15.0 ENS0001063 ENS0001063 A6CAB +20 25062962 25063591 - lncRNA ENS0001263 83E85 havana 1.0 ENS0001263 ENS0001263 83E85 +20 25070885 25082141 - protein_coding ENS0000470 ED758 ensembl_havana 15.0 ENS0000470 ENS0000470 ED758 +20 25099105 25099928 + processed_pseudogene ENS0000186 B08F7 havana 3.0 ENS0000186 ENS0000186 B08F7 +20 25139652 25149372 - lncRNA ENS0001148 03BE6 havana 6.0 ENS0001148 ENS0001148 03BE6 +20 25161167 25162061 - processed_pseudogene ENS0000103 8285B havana 1.0 ENS0000103 ENS0000103 8285B +20 25184658 25187849 - lncRNA ENS0000241 44077 havana 1.0 ENS0000241 ENS0000241 44077 +20 25195693 25228075 + protein_coding ENS0000319 C60E4 ensembl_havana 13.0 ENS0000319 ENS0000319 C60E4 +20 25214698 25214798 + misc_RNA ENS0001005 44FAD ensembl 1.0 ENS0001005 ENS0001005 44FAD +20 25226448 25226735 - TEC ENS0001219 F9CA4 havana 1.0 ENS0001219 ENS0001219 F9CA4 +20 25229150 25231933 + lncRNA ENS0001074 B0D54 havana 1.0 ENS0001074 ENS0001074 B0D54 +20 25239007 25245229 - lncRNA ENS0000305 A6566 havana 1.0 ENS0000305 ENS0000305 A6566 +20 25248085 25298012 + protein_coding ENS0000521 FC15F ensembl_havana 12.0 ENS0000521 ENS0000521 FC15F +20 25251008 25251304 - lncRNA ENS0001429 C01FA havana 1.0 ENS0001429 ENS0001429 C01FA +20 25284915 25285588 - lncRNA ENS0000549 BB958 havana 1.0 ENS0000549 ENS0000549 BB958 +20 25294742 25390835 - protein_coding ENS0000605 87F76 ensembl_havana 20.0 ENS0000605 ENS0000605 87F76 +20 25368275 25368766 - processed_pseudogene ENS0000949 DA6AC havana 2.0 ENS0000949 ENS0000949 DA6AC +20 25407673 25452628 + protein_coding ENS0000401 B81C7 ensembl_havana 10.0 ENS0000401 ENS0000401 B81C7 +20 25452697 25585531 - protein_coding ENS0000462 5BB8F ensembl_havana 15.0 ENS0000462 ENS0000462 5BB8F +20 25611153 25611223 + snRNA ENS0001411 5E748 ensembl 1.0 ENS0001411 ENS0001411 5E748 +20 25612935 25624014 - protein_coding ENS0000764 6F1B9 ensembl_havana 5.0 ENS0000764 ENS0000764 6F1B9 +20 25624045 25689032 + lncRNA ENS0001060 E864F havana 7.0 ENS0001060 ENS0001060 E864F +20 25654595 25654881 - misc_RNA ENS0000331 B2009 ensembl 2.0 ENS0000331 ENS0000331 B2009 +20 25669857 25670386 - processed_pseudogene ENS0001261 3D760 havana 1.0 ENS0001261 ENS0001261 3D760 +20 25673195 25696853 - protein_coding ENS0000855 4BAFD ensembl_havana 14.0 ENS0000855 ENS0000855 4BAFD +20 25680781 25681246 + lncRNA ENS0000304 D932E havana 1.0 ENS0000304 ENS0000304 D932E +20 25697003 25752776 + lncRNA ENS0001483 E215E havana 3.0 ENS0001483 ENS0001483 E215E +20 25734264 25735093 + unprocessed_pseudogene ENS0000168 2F395 havana 1.0 ENS0000168 ENS0000168 2F395 +20 25762384 25868225 - lncRNA ENS0001003 084E8 ensembl_havana 16.0 ENS0001003 ENS0001003 084E8 +20 25783553 25783919 + processed_pseudogene ENS0000970 89EE1 havana 1.0 ENS0000970 ENS0000970 89EE1 +20 25835985 25836832 - unprocessed_pseudogene ENS0000979 A5BFD havana 1.0 ENS0000979 ENS0000979 A5BFD +20 25845497 25845862 + processed_pseudogene ENS0001488 74708 havana 1.0 ENS0001488 ENS0001488 74708 +20 25919499 25919681 - unprocessed_pseudogene ENS0000190 5DA60 havana 1.0 ENS0000190 ENS0000190 5DA60 +20 25955795 25969288 + lncRNA ENS0001277 21441 havana_tagene 2.0 ENS0001277 ENS0001277 21441 +20 25985210 26086917 + lncRNA ENS0001015 1F6C1 havana 14.0 ENS0001015 ENS0001015 1F6C1 +20 26008791 26010531 - lncRNA ENS0001463 FAF75 havana 1.0 ENS0001463 ENS0001463 FAF75 +20 26009792 26011243 + lncRNA ENS0000886 A5CB8 havana_tagene 1.0 ENS0000886 ENS0000886 A5CB8 +20 26018832 26020684 + unprocessed_pseudogene ENS0000300 EFD8A havana 4.0 ENS0000300 ENS0000300 EFD8A +20 26071988 26072351 - processed_pseudogene ENS0001368 B8CA3 havana 1.0 ENS0001368 ENS0001368 B8CA3 +20 26103416 26114028 - transcribed_unprocessed_pseudogene ENS0000450 664AE havana 1.0 ENS0000450 ENS0000450 664AE +20 26132887 26134198 - lncRNA ENS0000805 D0322 havana 1.0 ENS0000805 ENS0000805 D0322 +20 26135983 26188191 + lncRNA ENS0001320 83230 havana_tagene 1.0 ENS0001320 ENS0001320 83230 +20 26167817 26251546 - lncRNA ENS0000544 663A7 havana 11.0 ENS0000544 ENS0000544 663A7 +20 26188408 26196891 + lncRNA ENS0001050 61F22 havana 5.0 ENS0001050 ENS0001050 61F22 +20 26208186 26208278 - miRNA ENS0001445 EF6ED mirbase 1.0 ENS0001445 ENS0001445 EF6ED +20 28563850 28602843 - transcribed_unprocessed_pseudogene ENS0001099 AA73B havana 2.0 ENS0001099 ENS0001099 AA73B +20 29080390 29102761 + unprocessed_pseudogene ENS0000933 DFFAE havana 1.0 ENS0000933 ENS0000933 DFFAE +20 29297095 29297246 - rRNA ENS0000230 AC9E0 ensembl 1.0 ENS0000230 ENS0000230 AC9E0 +20 29318824 29319579 + unprocessed_pseudogene ENS0000115 994EC havana 1.0 ENS0000115 ENS0000115 994EC +20 29321310 29321666 - unprocessed_pseudogene ENS0001389 E985F havana 1.0 ENS0001389 ENS0001389 E985F +20 29324092 29325049 + unprocessed_pseudogene ENS0001036 A14C8 havana 1.0 ENS0001036 ENS0001036 A14C8 +20 29410348 29411600 - unprocessed_pseudogene ENS0000284 6D62F havana 1.0 ENS0000284 ENS0000284 6D62F +20 29415264 29416911 - unprocessed_pseudogene ENS0001281 96E1D havana 1.0 ENS0001281 ENS0001281 96E1D +20 29427400 29427883 - processed_pseudogene ENS0000425 A1C40 havana 1.0 ENS0000425 ENS0000425 A1C40 +20 29430723 29432913 + processed_pseudogene ENS0000439 1D4C2 havana 1.0 ENS0000439 ENS0000439 1D4C2 +20 29448517 29449306 - unprocessed_pseudogene ENS0000880 B6DA0 havana 1.0 ENS0000880 ENS0000880 B6DA0 +20 29480147 29497179 - unprocessed_pseudogene ENS0000826 35B44 havana 1.0 ENS0000826 ENS0000826 35B44 +20 29548661 29559705 + lncRNA ENS0001531 D04D1 havana_tagene 1.0 ENS0001531 ENS0001531 D04D1 +20 29575060 29575171 + misc_RNA ENS0001013 9951B ensembl 1.0 ENS0001013 ENS0001013 9951B +20 29641778 29641976 + processed_pseudogene ENS0001487 B9388 havana 1.0 ENS0001487 ENS0001487 B9388 +20 29741510 29741661 - rRNA ENS0000629 E0603 ensembl 1.0 ENS0000629 ENS0000629 E0603 +20 29746181 29748090 + processed_pseudogene ENS0000350 E0AB7 havana 1.0 ENS0000350 ENS0000350 E0AB7 +20 29874059 29874177 + rRNA ENS0000326 5B3C8 ensembl 1.0 ENS0000326 ENS0000326 5B3C8 +20 29878636 29879363 - unprocessed_pseudogene ENS0000891 B4710 havana 1.0 ENS0000891 ENS0000891 B4710 +20 30214765 30214976 - processed_pseudogene ENS0001232 0AA33 havana 3.0 ENS0001232 ENS0001232 0AA33 +20 30278906 30289956 - lncRNA ENS0000080 F68F4 havana_tagene 5.0 ENS0000080 ENS0000080 F68F4 +20 30281837 30282954 + lncRNA ENS0000058 5AEC0 havana 1.0 ENS0000058 ENS0000058 5AEC0 +20 30294550 30312480 + lncRNA ENS0000271 12822 havana_tagene 1.0 ENS0000271 ENS0000271 12822 +20 30309015 30309126 - misc_RNA ENS0000460 A7238 ensembl 1.0 ENS0000460 ENS0000460 A7238 +20 30323367 30362276 - lncRNA ENS0000683 E4BB7 havana 2.0 ENS0000683 ENS0000683 E4BB7 +20 30377372 30399257 + unprocessed_pseudogene ENS0001246 79955 havana 15.0 ENS0001246 ENS0001246 79955 +20 30403123 30403384 - processed_pseudogene ENS0000128 97C2A havana 1.0 ENS0000128 ENS0000128 97C2A +20 30484925 30485076 - rRNA ENS0000782 2CAF9 ensembl 1.0 ENS0000782 ENS0000782 2CAF9 +20 30545601 30551470 + unprocessed_pseudogene ENS0000141 0DE36 havana 1.0 ENS0000141 ENS0000141 0DE36 +20 30656033 30723932 - transcribed_unprocessed_pseudogene ENS0000718 F800D ensembl_havana 3.0 ENS0000718 ENS0000718 F800D +20 30713240 30713346 - snRNA ENS0000234 20750 ensembl 1.0 ENS0000234 ENS0000234 20750 +20 30816156 30816274 - rRNA ENS0001014 E9C5B ensembl 1.0 ENS0001014 ENS0001014 E9C5B +20 31257664 31259632 + protein_coding ENS0000569 70A25 ensembl_havana 1.0 ENS0000569 ENS0000569 70A25 +20 31274170 31274867 + processed_pseudogene ENS0001339 2298C havana 2.0 ENS0001339 ENS0001339 2298C +20 31285317 31286835 - processed_pseudogene ENS0001216 78426 havana 2.0 ENS0001216 ENS0001216 78426 +20 31303212 31308585 - protein_coding ENS0000638 9182A ensembl_havana 1.0 ENS0000638 ENS0000638 9182A +20 31311303 31311962 - processed_pseudogene ENS0000901 EA6FF havana 1.0 ENS0000901 ENS0000901 EA6FF +20 31341371 31344471 - processed_pseudogene ENS0001151 94BAD havana 1.0 ENS0001151 ENS0001151 94BAD +20 31356870 31356978 + rRNA_pseudogene ENS0000941 6A3B6 ensembl 1.0 ENS0000941 ENS0000941 6A3B6 +20 31360790 31360930 + processed_pseudogene ENS0000734 E14E2 havana 3.0 ENS0000734 ENS0000734 E14E2 +20 31368601 31373923 + protein_coding ENS0001139 2B9BC ensembl_havana 4.0 ENS0001139 ENS0001139 2B9BC +20 31376319 31376446 + snoRNA ENS0000719 7942E ensembl 1.0 ENS0000719 ENS0000719 7942E +20 31377164 31390590 - protein_coding ENS0001217 98A65 ensembl_havana 7.0 ENS0001217 ENS0001217 98A65 +20 31404845 31412838 - protein_coding ENS0000006 F36BF ensembl_havana 4.0 ENS0000006 ENS0000006 F36BF +20 31421436 31429180 - transcribed_unprocessed_pseudogene ENS0000604 07A9C havana 7.0 ENS0000604 ENS0000604 07A9C +20 31440632 31450257 + protein_coding ENS0001374 6BD68 ensembl_havana 7.0 ENS0001374 ENS0001374 6BD68 +20 31465506 31476757 - protein_coding ENS0001248 5C369 ensembl_havana 3.0 ENS0001248 ENS0001248 5C369 +20 31475288 31484895 + protein_coding ENS0001396 E86A0 ensembl_havana 4.0 ENS0001396 ENS0001396 E86A0 +20 31485778 31487574 + lncRNA ENS0001198 F7DFE havana 1.0 ENS0001198 ENS0001198 F7DFE +20 31514410 31577923 + protein_coding ENS0000759 4EAA0 ensembl_havana 18.0 ENS0000759 ENS0000759 4EAA0 +20 31535263 31535626 + lncRNA ENS0001176 62252 havana 1.0 ENS0001176 ENS0001176 62252 +20 31547412 31548081 + protein_coding ENS0001274 CBB6F havana 6.0 ENS0001274 ENS0001274 CBB6F +20 31563166 31564076 + lncRNA ENS0000355 254D9 havana 1.0 ENS0000355 ENS0000355 254D9 +20 31567707 31573263 - lncRNA ENS0000279 A06CF havana 1.0 ENS0000279 ENS0000279 A06CF +20 31580890 31581214 + lncRNA ENS0000407 CF41F havana 1.0 ENS0000407 ENS0000407 CF41F +20 31581089 31581192 + snRNA ENS0001393 9D9C5 ensembl 1.0 ENS0001393 ENS0001393 9D9C5 +20 31605283 31606515 + protein_coding ENS0000908 35146 ensembl_havana 9.0 ENS0000908 ENS0000908 35146 +20 31607186 31607240 + miRNA ENS0001466 7A4E0 mirbase 1.0 ENS0001466 ENS0001466 7A4E0 +20 31637912 31645006 + protein_coding ENS0000840 2FBA0 ensembl_havana 5.0 ENS0000840 ENS0000840 2FBA0 +20 31664452 31723989 - protein_coding ENS0000297 EFBFE ensembl_havana 14.0 ENS0000297 ENS0000297 EFBFE +20 31686216 31716825 + lncRNA ENS0000255 39BBC havana 1.0 ENS0000255 ENS0000255 39BBC +20 31721507 31723409 + lncRNA ENS0000844 DF310 havana 1.0 ENS0000844 ENS0000844 DF310 +20 31739271 31801805 + protein_coding ENS0001321 6860B ensembl_havana 16.0 ENS0001321 ENS0001321 6860B +20 31808503 31808749 - processed_pseudogene ENS0000959 05634 havana 1.0 ENS0000959 ENS0000959 05634 +20 31819308 31834689 + protein_coding ENS0000557 2604A ensembl_havana 11.0 ENS0000557 ENS0000557 2604A +20 31844303 31845604 - protein_coding ENS0001541 8E3D3 ensembl_havana 8.0 ENS0001541 ENS0001541 8E3D3 +20 31847637 31870747 - protein_coding ENS0000011 F9AFE ensembl_havana 15.0 ENS0000011 ENS0000011 F9AFE +20 31870702 31944963 + protein_coding ENS0000001 23305 ensembl_havana 17.0 ENS0000001 ENS0000001 23305 +20 31901254 31901426 + snRNA ENS0001417 9283F ensembl 1.0 ENS0001417 ENS0001417 9283F +20 31944337 31952046 - protein_coding ENS0001361 8BCCB ensembl_havana 6.0 ENS0001361 ENS0001361 8BCCB +20 31968151 32003387 + protein_coding ENS0001550 EB7C5 ensembl_havana 3.0 ENS0001550 ENS0001550 EB7C5 +20 31970181 31970831 + lncRNA ENS0000340 CA6E9 havana 1.0 ENS0000340 ENS0000340 CA6E9 +20 32005671 32031591 - lncRNA ENS0000978 CBE84 havana 2.0 ENS0000978 ENS0000978 CBE84 +20 32008351 32008472 + rRNA_pseudogene ENS0000449 F77B5 ensembl 1.0 ENS0000449 ENS0000449 F77B5 +20 32010438 32032180 + protein_coding ENS0001434 20DC2 ensembl_havana 17.0 ENS0001434 ENS0001434 20DC2 +20 32050588 32050705 + rRNA_pseudogene ENS0001044 2635E ensembl 1.0 ENS0001044 ENS0001044 2635E +20 32052197 32101856 + protein_coding ENS0001503 8D3CC ensembl_havana 17.0 ENS0001503 ENS0001503 8D3CC +20 32109714 32167258 + protein_coding ENS0000999 4ADC9 ensembl_havana 16.0 ENS0000999 ENS0000999 4ADC9 +20 32116171 32116629 + lncRNA ENS0000861 3E8D1 havana 1.0 ENS0000861 ENS0000861 3E8D1 +20 32170390 32170790 - processed_pseudogene ENS0001236 EB734 havana 1.0 ENS0001236 ENS0001236 EB734 +20 32186477 32190527 - transcribed_processed_pseudogene ENS0000219 2F164 havana 6.0 ENS0000219 ENS0000219 2F164 +20 32192504 32207743 - protein_coding ENS0000684 ADFA1 ensembl_havana 7.0 ENS0000684 ENS0000684 ADFA1 +20 32207880 32238658 + protein_coding ENS0000457 A0561 ensembl_havana 14.0 ENS0000457 ENS0000457 A0561 +20 32237795 32237847 + miRNA ENS0001150 156F6 mirbase 1.0 ENS0001150 ENS0001150 156F6 +20 32275117 32277510 - lncRNA ENS0000716 DA337 havana_tagene 1.0 ENS0000716 ENS0000716 DA337 +20 32277651 32335011 + protein_coding ENS0001490 5E0DE ensembl_havana 8.0 ENS0001490 ENS0001490 5E0DE +20 32355053 32355734 + lncRNA ENS0001401 99A42 havana 1.0 ENS0001401 ENS0001401 99A42 +20 32358330 32439319 + protein_coding ENS0000431 31211 ensembl_havana 20.0 ENS0000431 ENS0000431 31211 +20 32443059 32585074 - protein_coding ENS0000231 A2E42 ensembl_havana 14.0 ENS0000231 ENS0000231 A2E42 +20 32449755 32453607 + lncRNA ENS0000048 AF8E6 havana 1.0 ENS0000048 ENS0000048 AF8E6 +20 32485149 32487019 + lncRNA ENS0001239 9824A havana_tagene 1.0 ENS0001239 ENS0001239 9824A +20 32509959 32520285 + lncRNA ENS0000100 92C77 havana 1.0 ENS0000100 ENS0000100 92C77 +20 32561093 32573888 + lncRNA ENS0001241 D3B72 havana 1.0 ENS0001241 ENS0001241 D3B72 +20 32564992 32608893 + lncRNA ENS0000848 A2827 ensembl_havana 7.0 ENS0000848 ENS0000848 A2827 +20 32581963 32593900 + lncRNA ENS0000380 C59A9 havana 1.0 ENS0000380 ENS0000380 C59A9 +20 32631625 32673941 - protein_coding ENS0001155 B1DD9 ensembl_havana 10.0 ENS0001155 ENS0001155 B1DD9 +20 32632183 32743567 - protein_coding ENS0001527 8E693 havana 1.0 ENS0001527 ENS0001527 8E693 +20 32690180 32690815 - processed_pseudogene ENS0000694 9C28D havana 8.0 ENS0000694 ENS0000694 9C28D +20 32702699 32743467 - protein_coding ENS0000935 E0350 ensembl_havana 12.0 ENS0000935 ENS0000935 E0350 +20 32762385 32809356 + protein_coding ENS0000925 44584 ensembl_havana 18.0 ENS0000925 ENS0000925 44584 +20 32819954 32850405 + protein_coding ENS0001089 014B3 ensembl_havana 9.0 ENS0001089 ENS0001089 014B3 +20 32843128 32854257 - lncRNA ENS0001450 27ADE havana 1.0 ENS0001450 ENS0001450 27ADE +20 32856621 32858751 + lncRNA ENS0001287 B3C86 havana 2.0 ENS0001287 ENS0001287 B3C86 +20 32858923 32961609 + protein_coding ENS0001113 6587A ensembl_havana 12.0 ENS0001113 ENS0001113 6587A +20 32983773 33004433 - protein_coding ENS0001309 F1BAD ensembl_havana 12.0 ENS0001309 ENS0001309 F1BAD +20 33007704 33023703 + protein_coding ENS0001481 1AAD4 ensembl_havana 7.0 ENS0001481 ENS0001481 1AAD4 +20 33031648 33044047 + protein_coding ENS0001328 A4B5A ensembl_havana 11.0 ENS0001328 ENS0001328 A4B5A +20 33047517 33048152 - processed_pseudogene ENS0001213 1806C havana 3.0 ENS0001213 ENS0001213 1806C +20 33055424 33073628 + protein_coding ENS0001308 21215 ensembl_havana 7.0 ENS0001308 ENS0001308 21215 +20 33079644 33111751 + protein_coding ENS0000928 E60A1 ensembl_havana 8.0 ENS0000928 ENS0000928 E60A1 +20 33161768 33181412 + protein_coding ENS0000369 A216F ensembl_havana 11.0 ENS0000369 ENS0000369 A216F +20 33187391 33188292 + processed_pseudogene ENS0000588 273F3 havana 1.0 ENS0000588 ENS0000588 273F3 +20 33193585 33210462 + transcribed_unprocessed_pseudogene ENS0000546 280FC havana 10.0 ENS0000546 ENS0000546 280FC +20 33214920 33217067 - lncRNA ENS0000558 3EE9B havana 1.0 ENS0000558 ENS0000558 3EE9B +20 33217310 33227806 + protein_coding ENS0000037 BB42F ensembl_havana 12.0 ENS0000037 ENS0000037 BB42F +20 33235995 33243311 + protein_coding ENS0000697 0B363 ensembl_havana 12.0 ENS0000697 ENS0000697 0B363 +20 33272262 33272657 - processed_pseudogene ENS0000700 EC396 havana 1.0 ENS0000700 ENS0000700 EC396 +20 33273480 33309871 + protein_coding ENS0000626 F0227 ensembl_havana 11.0 ENS0000626 ENS0000626 F0227 +20 33316869 33329969 + unitary_pseudogene ENS0000915 DBE48 havana 1.0 ENS0000915 ENS0000915 DBE48 +20 33347720 33354444 + transcribed_unitary_pseudogene ENS0001039 F69F5 havana 5.0 ENS0001039 ENS0001039 F69F5 +20 33358839 33401561 - protein_coding ENS0000695 87AE0 ensembl_havana 21.0 ENS0000695 ENS0000695 87AE0 +20 33407957 33443763 - protein_coding ENS0001522 DB9B1 ensembl_havana 6.0 ENS0001522 ENS0001522 DB9B1 +20 33490075 33650036 + protein_coding ENS0000752 8B954 ensembl_havana 22.0 ENS0000752 ENS0000752 8B954 +20 33655701 33656423 - lncRNA ENS0001365 28F94 havana 1.0 ENS0001365 ENS0001365 28F94 +20 33657087 33674463 - protein_coding ENS0000434 08EAB ensembl_havana 17.0 ENS0000434 ENS0000434 08EAB +20 33662327 33665619 + protein_coding ENS0000343 57DE0 ensembl_havana 6.0 ENS0000343 ENS0000343 57DE0 +20 33666498 33668525 + protein_coding ENS0001546 3D35F ensembl 6.0 ENS0001546 ENS0001546 3D35F +20 33666943 33668525 + protein_coding ENS0000946 4BDC2 havana 1.0 ENS0000946 ENS0000946 4BDC2 +20 33674517 33675380 + lncRNA ENS0001233 F03C3 havana 1.0 ENS0001233 ENS0001233 F03C3 +20 33675477 33686385 - protein_coding ENS0000680 6519C ensembl_havana 13.0 ENS0000680 ENS0000680 6519C +20 33702758 33720319 - protein_coding ENS0001025 37B31 ensembl_havana 12.0 ENS0001025 ENS0001025 37B31 +20 33728931 33731828 - lncRNA ENS0000919 CF24F havana 2.0 ENS0000919 ENS0000919 CF24F +20 33731657 33792269 + protein_coding ENS0001297 D1DF7 ensembl_havana 14.0 ENS0001297 ENS0001297 D1DF7 +20 33752167 33752543 - processed_pseudogene ENS0000426 4E6FD havana 1.0 ENS0000426 ENS0000426 4E6FD +20 33787373 33811109 - lncRNA ENS0000538 DF6A0 havana 6.0 ENS0000538 ENS0000538 DF6A0 +20 33811348 33854366 + protein_coding ENS0001002 2B61D ensembl_havana 4.0 ENS0001002 ENS0001002 2B61D +20 33912323 33913336 - processed_pseudogene ENS0000578 35F45 havana 2.0 ENS0000578 ENS0000578 35F45 +20 33965162 33965576 + processed_pseudogene ENS0000252 A69C6 havana 1.0 ENS0000252 ENS0000252 A69C6 +20 33980679 33994357 - lncRNA ENS0000622 B2DAA havana 2.0 ENS0000622 ENS0000622 B2DAA +20 33993646 34108308 + protein_coding ENS0001538 00CAD ensembl_havana 12.0 ENS0001538 ENS0001538 00CAD +20 34014969 34017749 - lncRNA ENS0000122 845BA havana 2.0 ENS0000122 ENS0000122 845BA +20 34049119 34049190 + miRNA ENS0001495 41C71 mirbase 1.0 ENS0001495 ENS0001495 41C71 +20 34088309 34112243 - protein_coding ENS0000441 B5240 ensembl_havana 7.0 ENS0000441 ENS0000441 B5240 +20 34122470 34123290 + processed_pseudogene ENS0000152 325A8 havana 1.0 ENS0000152 ENS0000152 325A8 +20 34132270 34136485 + lncRNA ENS0001542 A86A1 havana_tagene 1.0 ENS0001542 ENS0001542 A86A1 +20 34194569 34269344 + protein_coding ENS0000996 57DDA ensembl_havana 9.0 ENS0000996 ENS0000996 57DDA +20 34213495 34215892 - processed_pseudogene ENS0000781 EE489 havana 3.0 ENS0000781 ENS0000781 EE489 +20 34234840 34281173 - lncRNA ENS0001227 40762 havana 1.0 ENS0001227 ENS0001227 40762 +20 34245953 34246537 - processed_pseudogene ENS0000170 1279B havana 1.0 ENS0000170 ENS0000170 1279B +20 34280268 34311802 - protein_coding ENS0001062 24542 ensembl_havana 13.0 ENS0001062 ENS0001062 24542 +20 34281632 34286466 - lncRNA ENS0000910 DE9B2 havana 1.0 ENS0000910 ENS0000910 DE9B2 +20 34347671 34347785 - processed_pseudogene ENS0000568 6F286 havana 1.0 ENS0000568 ENS0000568 6F286 +20 34363241 34540748 + protein_coding ENS0000039 402BB havana 16.0 ENS0000039 ENS0000039 402BB +20 34384165 34384265 - misc_RNA ENS0000111 1D832 ensembl 1.0 ENS0000111 ENS0000111 1D832 +20 34402149 34402696 - processed_pseudogene ENS0001496 B31AE havana 1.0 ENS0001496 ENS0001496 B31AE +20 34441592 34442025 - lncRNA ENS0001381 09358 havana 1.0 ENS0001381 ENS0001381 09358 +20 34450930 34454552 + lncRNA ENS0000864 69EC6 havana 1.0 ENS0000864 ENS0000864 69EC6 +20 34466325 34466418 + miRNA ENS0001212 93F44 mirbase 1.0 ENS0001212 ENS0001212 93F44 +20 34475924 34476474 - processed_pseudogene ENS0000657 20804 havana 7.0 ENS0000657 ENS0000657 20804 +20 34476205 34476787 + lncRNA ENS0000757 F96F0 havana 1.0 ENS0000757 ENS0000757 F96F0 +20 34516414 34540958 + protein_coding ENS0000047 9DA20 ensembl_havana 17.0 ENS0000047 ENS0000047 9DA20 +20 34526510 34526606 - misc_RNA ENS0001459 431BC ensembl 1.0 ENS0001459 ENS0001459 431BC +20 34546854 34560345 + protein_coding ENS0000814 E1221 ensembl_havana 13.0 ENS0000814 ENS0000814 E1221 +20 34560542 34698790 - protein_coding ENS0000723 4A381 ensembl_havana 11.0 ENS0000723 ENS0000723 4A381 +20 34688688 34688978 + processed_pseudogene ENS0000067 319E4 havana 1.0 ENS0000067 ENS0000067 319E4 +20 34689097 34825651 - protein_coding ENS0000288 9AF6B ensembl_havana 14.0 ENS0000288 ENS0000288 9AF6B +20 34704339 34713439 + protein_coding ENS0001110 86EE1 ensembl_havana 13.0 ENS0001110 ENS0001110 86EE1 +20 34741401 34807447 + lncRNA ENS0000849 0ED44 havana_tagene 1.0 ENS0000849 ENS0000849 0ED44 +20 34833575 34834462 - processed_pseudogene ENS0000811 7DAE0 havana 2.0 ENS0000811 ENS0000811 7DAE0 +20 34844720 34872856 - protein_coding ENS0000973 75E19 ensembl_havana 17.0 ENS0000973 ENS0000973 75E19 +20 34872146 34927962 + protein_coding ENS0000492 23E42 ensembl_havana 20.0 ENS0000492 ENS0000492 23E42 +20 34928432 34956027 - protein_coding ENS0001160 30F96 ensembl_havana 12.0 ENS0001160 ENS0001160 30F96 +20 34955810 35002437 + protein_coding ENS0001252 A68E0 ensembl_havana 17.0 ENS0001252 ENS0001252 A68E0 +20 34990376 34990497 + miRNA ENS0001528 B6737 mirbase 1.0 ENS0001528 ENS0001528 B6737 +20 34990400 34990472 - miRNA ENS0001043 F6029 mirbase 1.0 ENS0001043 ENS0001043 F6029 +20 35002404 35092807 - protein_coding ENS0001370 EF78D ensembl_havana 12.0 ENS0001370 ENS0001370 EF78D +20 35030317 35030420 - snRNA ENS0001329 B6344 ensembl 1.0 ENS0001329 ENS0001329 B6344 +20 35115364 35147336 - protein_coding ENS0000968 542A6 ensembl_havana 13.0 ENS0000968 ENS0000968 542A6 +20 35117136 35117207 - snoRNA ENS0000107 F48E9 ensembl 1.0 ENS0000107 ENS0000107 F48E9 +20 35172072 35216240 + protein_coding ENS0000807 51764 ensembl_havana 6.0 ENS0000807 ENS0000807 51764 +20 35174355 35174919 - lncRNA ENS0000636 8906D havana 1.0 ENS0000636 ENS0000636 8906D +20 35195306 35195423 + rRNA_pseudogene ENS0000599 A49D8 ensembl 1.0 ENS0000599 ENS0000599 A49D8 +20 35201745 35278131 - protein_coding ENS0000907 20AB2 havana 17.0 ENS0000907 ENS0000907 20AB2 +20 35218009 35218185 + processed_pseudogene ENS0000242 192EF havana 3.0 ENS0000242 ENS0000242 192EF +20 35226690 35276998 + protein_coding ENS0001513 A88FF ensembl_havana 10.0 ENS0001513 ENS0001513 A88FF +20 35262727 35264187 - TEC ENS0001442 11575 havana 1.0 ENS0001442 ENS0001442 11575 +20 35267885 35280043 - protein_coding ENS0001306 983F9 havana 1.0 ENS0001306 ENS0001306 983F9 +20 35278907 35284985 - protein_coding ENS0000344 80C31 ensembl_havana 9.0 ENS0000344 ENS0000344 80C31 +20 35285251 35285756 + lncRNA ENS0001191 94E8C havana 1.0 ENS0001191 ENS0001191 94E8C +20 35285731 35292425 - protein_coding ENS0000295 FC69A ensembl_havana 8.0 ENS0000295 ENS0000295 FC69A +20 35302566 35412031 - protein_coding ENS0001041 0B4AE ensembl_havana 22.0 ENS0001041 ENS0001041 0B4AE +20 35433029 35435450 + lncRNA ENS0000927 01BCD havana 3.0 ENS0000927 ENS0000927 01BCD +20 35433347 35454746 - protein_coding ENS0000329 EB770 ensembl_havana 9.0 ENS0000329 ENS0000329 EB770 +20 35453954 35454097 - miRNA ENS0001337 1D440 mirbase 1.0 ENS0001337 ENS0001337 1D440 +20 35455164 35519280 + protein_coding ENS0001078 1D7D6 ensembl_havana 16.0 ENS0001078 ENS0001078 1D7D6 +20 35476203 35490982 - lncRNA ENS0000972 26AB4 havana 6.0 ENS0000972 ENS0000972 26AB4 +20 35520852 35528255 - transcribed_unprocessed_pseudogene ENS0000902 60911 havana 6.0 ENS0000902 ENS0000902 60911 +20 35523186 35529652 - protein_coding ENS0001017 C82F5 ensembl_havana 14.0 ENS0001017 ENS0001017 C82F5 +20 35542038 35557634 + protein_coding ENS0000076 8C392 ensembl_havana 20.0 ENS0000076 ENS0000076 8C392 +20 35544430 35544747 - processed_pseudogene ENS0001426 7A2EE havana 1.0 ENS0001426 ENS0001426 7A2EE +20 35558737 35607562 - transcribed_unitary_pseudogene ENS0000674 93EAF ensembl_havana 17.0 ENS0000674 ENS0000674 93EAF +20 35588324 35588607 + processed_pseudogene ENS0001467 75526 havana 1.0 ENS0001467 ENS0001467 75526 +20 35615829 35621094 + protein_coding ENS0000890 EA036 ensembl_havana 10.0 ENS0000890 ENS0000890 EA036 +20 35626031 35664956 - protein_coding ENS0000403 32479 ensembl_havana 13.0 ENS0000403 ENS0000403 32479 +20 35632340 35674544 - protein_coding ENS0000385 C2013 havana 5.0 ENS0000385 ENS0000385 C2013 +20 35643143 35643462 + misc_RNA ENS0000952 4F575 ensembl 1.0 ENS0000952 ENS0000952 4F575 +20 35647328 35647430 - snRNA ENS0000390 671C3 ensembl 1.0 ENS0000390 ENS0000390 671C3 +20 35648925 35664956 - protein_coding ENS0000696 F599C ensembl_havana 8.0 ENS0000696 ENS0000696 F599C +20 35668052 35699355 - protein_coding ENS0000842 ACB9A ensembl_havana 13.0 ENS0000842 ENS0000842 ACB9A +20 35699272 35700984 + protein_coding ENS0001412 02AB4 ensembl_havana 16.0 ENS0001412 ENS0001412 02AB4 +20 35701347 35742312 - protein_coding ENS0000510 8CF90 ensembl_havana 24.0 ENS0000510 ENS0000510 8CF90 +20 35752814 35753719 + processed_pseudogene ENS0000722 EF812 havana 3.0 ENS0000722 ENS0000722 EF812 +20 35769785 35769867 - snRNA ENS0000338 59AEC ensembl 1.0 ENS0000338 ENS0000338 59AEC +20 35771974 35950370 + protein_coding ENS0000189 BA150 ensembl_havana 17.0 ENS0000189 ENS0000189 BA150 +20 35850674 35850915 - processed_pseudogene ENS0001029 93DDD havana 1.0 ENS0001029 ENS0001029 93DDD +20 35853252 35853364 - misc_RNA ENS0000244 65FAA ensembl 1.0 ENS0000244 ENS0000244 65FAA +20 35878476 35878733 + processed_pseudogene ENS0000675 2F483 havana 3.0 ENS0000675 ENS0000675 2F483 +20 35887659 35887801 + snRNA ENS0000576 75613 ensembl 1.0 ENS0000576 ENS0000576 75613 +20 35928570 35928675 - snRNA ENS0001318 8B2F2 ensembl 1.0 ENS0001318 ENS0001318 8B2F2 +20 35953617 35959472 - protein_coding ENS0000202 0D01E ensembl_havana 10.0 ENS0000202 ENS0000202 0D01E +20 35954564 36030700 + protein_coding ENS0000988 49F9F ensembl_havana 12.0 ENS0000988 ENS0000988 49F9F +20 36045618 36051018 - lncRNA ENS0000592 3C2A0 havana 2.0 ENS0000592 ENS0000592 3C2A0 +20 36051491 36085703 + lncRNA ENS0000883 3BC61 havana 4.0 ENS0000883 ENS0000883 3BC61 +20 36064243 36064563 - lncRNA ENS0000937 8BB1C havana 1.0 ENS0000937 ENS0000937 8BB1C +20 36076018 36076601 - processed_pseudogene ENS0000182 4F7ED havana 1.0 ENS0000182 ENS0000182 4F7ED +20 36086252 36088192 - lncRNA ENS0000995 67DC1 havana 1.0 ENS0000995 ENS0000995 67DC1 +20 36091504 36232799 + protein_coding ENS0000493 AFD0A ensembl_havana 23.0 ENS0000493 ENS0000493 AFD0A +20 36147334 36155760 - lncRNA ENS0000698 2FC68 havana 7.0 ENS0000698 ENS0000698 2FC68 +20 36233851 36234297 + lncRNA ENS0000550 CAFCF havana 1.0 ENS0000550 ENS0000550 CAFCF +20 36236459 36270918 + protein_coding ENS0000043 DE080 ensembl_havana 12.0 ENS0000043 ENS0000043 DE080 +20 36306336 36528637 + protein_coding ENS0000505 9F73E ensembl_havana 18.0 ENS0000505 ENS0000505 9F73E +20 36507702 36573391 - lncRNA ENS0001023 28FE0 havana 8.0 ENS0001023 ENS0001023 28FE0 +20 36541497 36551447 + protein_coding ENS0001121 90216 ensembl_havana 10.0 ENS0001121 ENS0001121 90216 +20 36561237 36561530 - misc_RNA ENS0000177 EC271 ensembl 1.0 ENS0000177 ENS0000177 EC271 +20 36573488 36593950 + protein_coding ENS0001284 403F9 ensembl_havana 11.0 ENS0001284 ENS0001284 403F9 +20 36574553 36612384 + protein_coding ENS0000353 E7848 ensembl_havana 1.0 ENS0000353 ENS0000353 E7848 +20 36605779 36612557 + protein_coding ENS0000912 9144F ensembl_havana 18.0 ENS0000912 ENS0000912 9144F +20 36612318 36646196 - protein_coding ENS0001356 FC071 ensembl_havana 14.0 ENS0001356 ENS0001356 FC071 +20 36620403 36621423 + unprocessed_pseudogene ENS0000488 44A3B havana 2.0 ENS0000488 ENS0000488 44A3B +20 36651766 36746090 - protein_coding ENS0001182 8AA98 ensembl_havana 21.0 ENS0001182 ENS0001182 8AA98 +20 36668559 36668670 - misc_RNA ENS0001144 11D46 ensembl 1.0 ENS0001144 ENS0001144 11D46 +20 36751791 36773818 - protein_coding ENS0000839 2F550 ensembl_havana 16.0 ENS0000839 ENS0000839 2F550 +20 36777447 36863538 - protein_coding ENS0001154 7748D ensembl_havana 15.0 ENS0001154 ENS0001154 7748D +20 36870099 36870402 + misc_RNA ENS0000712 61F34 ensembl 3.0 ENS0000712 ENS0000712 61F34 +20 36876121 36894235 + protein_coding ENS0000084 D54F6 ensembl_havana 10.0 ENS0000084 ENS0000084 D54F6 +20 36890229 36951843 - protein_coding ENS0000253 81D3B ensembl_havana 10.0 ENS0000253 ENS0000253 81D3B +20 36996349 37095997 - protein_coding ENS0000654 3FB96 ensembl_havana 12.0 ENS0000654 ENS0000654 3FB96 +20 37021743 37021984 - processed_pseudogene ENS0000169 01113 havana 1.0 ENS0000169 ENS0000169 01113 +20 37049254 37049707 + processed_pseudogene ENS0000178 51C51 havana 2.0 ENS0000178 ENS0000178 51C51 +20 37095785 37097178 + lncRNA ENS0001342 31E5A havana 1.0 ENS0001342 ENS0001342 31E5A +20 37101226 37179588 - protein_coding ENS0000028 4BAD5 havana 15.0 ENS0000028 ENS0000028 4BAD5 +20 37165774 37166312 - processed_pseudogene ENS0000528 D4413 havana 1.0 ENS0000528 ENS0000528 D4413 +20 37178410 37241619 + protein_coding ENS0000761 FF19A ensembl_havana 17.0 ENS0000761 ENS0000761 FF19A +20 37251082 37261835 - protein_coding ENS0001547 2B8DE ensembl_havana 9.0 ENS0001547 ENS0001547 2B8DE +20 37289638 37317260 + protein_coding ENS0000951 6D2F6 ensembl_havana 12.0 ENS0000951 ENS0000951 6D2F6 +20 37338886 37344109 - lncRNA ENS0001435 53F70 havana 1.0 ENS0001435 ENS0001435 53F70 +20 37344685 37406050 + protein_coding ENS0000706 0F91D ensembl_havana 12.0 ENS0000706 ENS0000706 0F91D +20 37444733 37445534 - processed_pseudogene ENS0000137 AAC2D havana 3.0 ENS0000137 ENS0000137 AAC2D +20 37492472 37527931 - protein_coding ENS0000497 C7CC8 ensembl_havana 15.0 ENS0000497 ENS0000497 C7CC8 +20 37521206 37523690 + protein_coding ENS0001330 DCCBB ensembl_havana 11.0 ENS0001330 ENS0001330 DCCBB +20 37526642 37527060 - lncRNA ENS0001006 C2F94 havana 1.0 ENS0001006 ENS0001006 C2F94 +20 37530039 37530543 + processed_pseudogene ENS0000502 6C473 havana 1.0 ENS0000502 ENS0000502 6C473 +20 37571103 37591493 + lncRNA ENS0000820 21830 havana 2.0 ENS0000820 ENS0000820 21830 +20 37602852 37603185 - processed_pseudogene ENS0001517 95823 havana 1.0 ENS0001517 ENS0001517 95823 +20 37619298 37623119 - lncRNA ENS0001507 FFAD4 havana 1.0 ENS0001507 ENS0001507 FFAD4 +20 37676889 37683234 + lncRNA ENS0000315 F4539 havana_tagene 2.0 ENS0000315 ENS0000315 F4539 +20 37693955 37872129 + protein_coding ENS0001398 173FC ensembl_havana 19.0 ENS0001398 ENS0001398 173FC +20 37903111 37945350 + protein_coding ENS0001406 78A85 ensembl_havana 12.0 ENS0001406 ENS0001406 78A85 +20 37975156 37975481 - misc_RNA ENS0000728 5FF45 ensembl 1.0 ENS0000728 ENS0000728 5FF45 +20 37983007 38033461 - protein_coding ENS0000661 27D9A ensembl_havana 13.0 ENS0000661 ENS0000661 27D9A +20 38033725 38127780 + protein_coding ENS0001020 0E6F6 ensembl_havana 12.0 ENS0001020 ENS0001020 0E6F6 +20 38098414 38098700 - misc_RNA ENS0000616 01697 ensembl 2.0 ENS0000616 ENS0000616 01697 +20 38103524 38104961 - lncRNA ENS0001203 49BA2 havana 1.0 ENS0001203 ENS0001203 49BA2 +20 38127385 38166578 - protein_coding ENS0000884 6B8C7 ensembl_havana 12.0 ENS0000884 ENS0000884 6B8C7 +20 38210503 38260772 - protein_coding ENS0000008 9EC40 ensembl_havana 12.0 ENS0000008 ENS0000008 9EC40 +20 38233251 38233799 - lncRNA ENS0000945 672EC havana 1.0 ENS0000945 ENS0000945 672EC +20 38260149 38304332 + lncRNA ENS0001223 1125C havana 1.0 ENS0001223 ENS0001223 1125C +20 38260175 38293892 + lncRNA ENS0001322 CFD1F havana 1.0 ENS0001322 ENS0001322 CFD1F +20 38270778 38274020 + lncRNA ENS0000507 6D3A8 havana 1.0 ENS0000507 ENS0000507 6D3A8 +20 38288331 38326536 - lncRNA ENS0000923 585A8 havana 3.0 ENS0000923 ENS0000923 585A8 +20 38304150 38337505 + protein_coding ENS0000153 EA30F ensembl_havana 14.0 ENS0000153 ENS0000153 EA30F +20 38346482 38377013 + protein_coding ENS0000127 EEC29 ensembl_havana 6.0 ENS0000127 ENS0000127 EEC29 +20 38378825 38383179 + lncRNA ENS0000475 86413 havana 1.0 ENS0000475 ENS0000475 86413 +20 38404893 38416797 - lncRNA ENS0001358 852D5 havana_tagene 2.0 ENS0001358 ENS0001358 852D5 +20 38418483 38419202 - lncRNA ENS0001383 3440D havana 1.0 ENS0001383 ENS0001383 3440D +20 38419638 38435409 - lncRNA ENS0000055 A7027 havana 13.0 ENS0000055 ENS0000055 A7027 +20 38421647 38421774 - snoRNA ENS0001202 4510A ensembl 1.0 ENS0001202 ENS0001202 4510A +20 38425083 38425354 - snoRNA ENS0000496 F0C99 havana 6.0 ENS0000496 ENS0000496 F0C99 +20 38427309 38427442 - snoRNA ENS0000817 7E0A9 ensembl 3.0 ENS0000817 ENS0000817 7E0A9 +20 38429670 38429803 - snoRNA ENS0000254 222A0 ensembl 1.0 ENS0000254 ENS0000254 222A0 +20 38433865 38433998 - snoRNA ENS0000615 A8E41 ensembl 1.0 ENS0000615 ENS0000615 A8E41 +20 38442036 38442169 + snoRNA ENS0000730 E8909 ensembl 1.0 ENS0000730 ENS0000730 E8909 +20 38446343 38450940 + lncRNA ENS0000690 76189 ensembl_havana 20.0 ENS0000690 ENS0000690 76189 +20 38448084 38448215 + snoRNA ENS0000483 17139 ensembl 1.0 ENS0000483 ENS0000483 17139 +20 38449370 38449503 + snoRNA ENS0001431 BDEC4 ensembl 1.0 ENS0001431 ENS0001431 BDEC4 +20 38472816 38578859 + protein_coding ENS0001535 30BAE ensembl_havana 15.0 ENS0001535 ENS0001535 30BAE +20 38516563 38516632 + miRNA ENS0000097 6715A mirbase 2.0 ENS0000097 ENS0000097 6715A +20 38537758 38538458 + processed_pseudogene ENS0001215 A1861 havana 1.0 ENS0001215 ENS0001215 A1861 +20 38581195 38588463 + protein_coding ENS0000310 AE7B2 ensembl_havana 12.0 ENS0000310 ENS0000310 AE7B2 +20 38601934 38651035 + protein_coding ENS0000292 EB445 ensembl_havana 10.0 ENS0000292 ENS0000292 EB445 +20 38614913 38615476 - processed_pseudogene ENS0000298 5A226 havana 2.0 ENS0000298 ENS0000298 5A226 +20 38711821 38712103 - misc_RNA ENS0000504 D2B81 ensembl 1.0 ENS0000504 ENS0000504 D2B81 +20 38724486 38729372 + protein_coding ENS0000816 0AF9C ensembl_havana 4.0 ENS0000816 ENS0000816 0AF9C +20 38748460 38772520 + protein_coding ENS0000263 3B866 ensembl_havana 10.0 ENS0000263 ENS0000263 3B866 +20 38761528 38761842 + misc_RNA ENS0000396 27C22 ensembl 1.0 ENS0000396 ENS0000396 27C22 +20 38805697 38923024 + protein_coding ENS0000536 6E548 ensembl_havana 10.0 ENS0000536 ENS0000536 6E548 +20 38872770 38873074 + misc_RNA ENS0000887 5C1E3 ensembl 3.0 ENS0000887 ENS0000887 5C1E3 +20 38926312 38953106 + protein_coding ENS0001210 3695B ensembl_havana 15.0 ENS0001210 ENS0001210 3695B +20 38955910 38956547 + lncRNA ENS0001299 DD04C havana 1.0 ENS0001299 ENS0001299 DD04C +20 38961925 38962111 - lncRNA ENS0001271 A8D7F havana 1.0 ENS0001271 ENS0001271 A8D7F +20 38962299 39039723 + protein_coding ENS0000327 68D68 ensembl_havana 15.0 ENS0000327 ENS0000327 68D68 +20 38962472 38962993 + lncRNA ENS0000639 ED997 havana 1.0 ENS0000639 ENS0000639 ED997 +20 38977711 38978422 - processed_pseudogene ENS0001493 5AF7B havana 1.0 ENS0001493 ENS0001493 5AF7B +20 39213777 39224748 - lncRNA ENS0000120 F031C havana 1.0 ENS0000120 ENS0000120 F031C +20 39231115 39233836 - lncRNA ENS0000089 53559 havana_tagene 1.0 ENS0000089 ENS0000089 53559 +20 39329014 39329924 - processed_pseudogene ENS0001278 50F86 havana 1.0 ENS0001278 ENS0001278 50F86 +20 39349094 39349392 - misc_RNA ENS0001432 8B900 ensembl 1.0 ENS0001432 ENS0001432 8B900 +20 39655325 39663552 - lncRNA ENS0000215 67B5F havana 1.0 ENS0000215 ENS0000215 67B5F +20 39757202 39815097 + lncRNA ENS0000131 C5DB2 havana 2.0 ENS0000131 ENS0000131 C5DB2 +20 39932922 39933239 - processed_pseudogene ENS0000358 D8C05 havana 1.0 ENS0000358 ENS0000358 D8C05 +20 40004216 40011323 + lncRNA ENS0000606 CB32B havana 2.0 ENS0000606 ENS0000606 CB32B +20 40031585 40043889 + lncRNA ENS0001452 5EC0A havana 1.0 ENS0001452 ENS0001452 5EC0A +20 40121041 40126357 + lncRNA ENS0001030 0395F havana 1.0 ENS0001030 ENS0001030 0395F +20 40685848 40689236 - protein_coding ENS0000282 8EFD1 ensembl_havana 4.0 ENS0000282 ENS0000282 8EFD1 +20 40696499 40698616 - lncRNA ENS0000132 4C2AA havana 2.0 ENS0000132 ENS0000132 4C2AA +20 40717257 40758636 + lncRNA ENS0001097 41570 havana_tagene 1.0 ENS0001097 ENS0001097 41570 +20 40854119 40854229 - rRNA_pseudogene ENS0000424 2BB72 ensembl 1.0 ENS0000424 ENS0000424 2BB72 +20 41024205 41024394 + snRNA ENS0000005 BB4B0 ensembl 1.0 ENS0000005 ENS0000005 BB4B0 +20 41028822 41124487 + protein_coding ENS0000485 0C4A3 ensembl_havana 6.0 ENS0000485 ENS0000485 0C4A3 +20 41098019 41138003 - lncRNA ENS0000453 64B83 havana 2.0 ENS0000453 ENS0000453 64B83 +20 41136960 41196801 + protein_coding ENS0000593 0B56F ensembl_havana 14.0 ENS0000593 ENS0000593 0B56F +20 41169023 41169078 + miRNA ENS0000809 02406 mirbase 1.0 ENS0000809 ENS0000809 02406 +20 41178448 41317672 - protein_coding ENS0001543 C9C09 ensembl_havana 21.0 ENS0001543 ENS0001543 C9C09 +20 41196647 41196938 - transcribed_processed_pseudogene ENS0000961 7D0D7 havana 1.0 ENS0000961 ENS0000961 7D0D7 +20 41196691 41197157 + transcribed_processed_pseudogene ENS0000749 060C6 havana 1.0 ENS0000749 ENS0000749 060C6 +20 41290280 41290577 - misc_RNA ENS0000347 20B49 ensembl 2.0 ENS0000347 ENS0000347 20B49 +20 41331123 41331660 + processed_pseudogene ENS0001307 E7D7E havana 1.0 ENS0001307 ENS0001307 E7D7E +20 41340821 41360582 + protein_coding ENS0001265 002BA ensembl_havana 12.0 ENS0001265 ENS0001265 002BA +20 41359962 41366818 - protein_coding ENS0001296 23D4F ensembl_havana 5.0 ENS0001296 ENS0001296 23D4F +20 41382383 41383107 + processed_pseudogene ENS0000518 065F0 havana 1.0 ENS0000518 ENS0000518 065F0 +20 41402083 41618384 - protein_coding ENS0001295 BF287 ensembl_havana 15.0 ENS0001295 ENS0001295 BF287 +20 41459354 41461944 - processed_pseudogene ENS0001344 E2432 havana 1.0 ENS0001344 ENS0001344 E2432 +20 41485571 41486225 - lncRNA ENS0001460 FAE2D havana 1.0 ENS0001460 ENS0001460 FAE2D +20 41547422 41547922 + processed_pseudogene ENS0001243 A04EA havana 2.0 ENS0001243 ENS0001243 A04EA +20 41684986 41685091 - snRNA ENS0001230 5DB48 ensembl 1.0 ENS0001230 ENS0001230 5DB48 +20 41712479 41712600 - snoRNA ENS0000768 C7081 ensembl 1.0 ENS0000768 ENS0000768 C7081 +20 41991140 42063969 + lncRNA ENS0001008 9E3D2 havana 1.0 ENS0001008 ENS0001008 9E3D2 +20 41997131 41999397 - processed_pseudogene ENS0000617 2A55D havana 1.0 ENS0000617 ENS0000617 2A55D +20 42014034 42015478 - lncRNA ENS0001404 A5F7A havana 1.0 ENS0001404 ENS0001404 A5F7A +20 42072752 43189970 - protein_coding ENS0001133 0D79C ensembl_havana 12.0 ENS0001133 ENS0001133 0D79C +20 42606694 42607559 + processed_pseudogene ENS0000126 A7193 havana 1.0 ENS0000126 ENS0000126 A7193 +20 42685404 42688562 + lncRNA ENS0000491 7C55B havana 2.0 ENS0000491 ENS0000491 7C55B +20 42968743 42971492 + lncRNA ENS0000270 58CA9 havana 1.0 ENS0000270 ENS0000270 58CA9 +20 43063326 43063609 + misc_RNA ENS0000307 DB163 ensembl 1.0 ENS0000307 ENS0000307 DB163 +20 43189998 43202599 + lncRNA ENS0000482 C1A63 havana 3.0 ENS0000482 ENS0000482 C1A63 +20 43222206 43222509 + misc_RNA ENS0000648 F5680 ensembl 3.0 ENS0000648 ENS0000648 F5680 +20 43230760 43231260 + processed_pseudogene ENS0000953 7EF4A havana 5.0 ENS0000953 ENS0000953 7EF4A +20 43304555 43304679 + scaRNA ENS0000012 A09B6 ensembl 1.0 ENS0000012 ENS0000012 A09B6 +20 43388642 43389041 - processed_pseudogene ENS0000916 FB15E havana 1.0 ENS0000916 ENS0000916 FB15E +20 43405473 43405578 + snRNA ENS0000405 786E8 ensembl 1.0 ENS0000405 ENS0000405 786E8 +20 43423196 43423538 - processed_pseudogene ENS0000567 A4F16 havana 1.0 ENS0000567 ENS0000567 A4F16 +20 43451159 43451260 - misc_RNA ENS0000748 CEDC3 ensembl 1.0 ENS0000748 ENS0000748 CEDC3 +20 43457893 43466046 + protein_coding ENS0001355 C047E ensembl_havana 16.0 ENS0001355 ENS0001355 C047E +20 43458054 43541881 + protein_coding ENS0000211 6E9D8 havana 1.0 ENS0000211 ENS0000211 6E9D8 +20 43473013 43473119 + snRNA ENS0001051 BCC91 ensembl 1.0 ENS0001051 ENS0001051 BCC91 +20 43489442 43550954 + protein_coding ENS0001253 ED4DB ensembl_havana 17.0 ENS0001253 ENS0001253 ED4DB +20 43523261 43523572 - processed_pseudogene ENS0000205 F93C0 havana 1.0 ENS0000205 ENS0000205 F93C0 +20 43540171 43569498 + protein_coding ENS0000049 92EAA havana 1.0 ENS0000049 ENS0000049 92EAA +20 43549389 43550949 - lncRNA ENS0000926 087CC havana 1.0 ENS0000926 ENS0000926 087CC +20 43558968 43588237 + protein_coding ENS0000248 5C1D4 ensembl_havana 17.0 ENS0000248 ENS0000248 5C1D4 +20 43590009 43590596 - lncRNA ENS0000533 3226F havana 1.0 ENS0000533 ENS0000533 3226F +20 43590937 43647299 + protein_coding ENS0001106 08E91 ensembl_havana 13.0 ENS0001106 ENS0001106 08E91 +20 43652523 43653291 + processed_pseudogene ENS0001458 79870 havana 2.0 ENS0001458 ENS0001458 79870 +20 43667019 43716495 + protein_coding ENS0001166 E35E6 ensembl_havana 16.0 ENS0001166 ENS0001166 E35E6 +20 43726164 43727002 - protein_coding ENS0000291 A8BD3 ensembl_havana 6.0 ENS0000291 ENS0000291 A8BD3 +20 43796437 43796543 - snRNA ENS0000495 4DEFE ensembl 1.0 ENS0000495 ENS0000495 4DEFE +20 43894720 43895468 + lncRNA ENS0000024 99E39 havana 1.0 ENS0000024 ENS0000024 99E39 +20 43914852 44069616 + protein_coding ENS0000451 7BDFA ensembl_havana 18.0 ENS0000451 ENS0000451 7BDFA +20 44007248 44007537 + misc_RNA ENS0000096 5806A ensembl 3.0 ENS0000096 ENS0000096 5806A +20 44106590 44187188 - protein_coding ENS0000769 720B9 ensembl_havana 7.0 ENS0000769 ENS0000769 720B9 +20 44181111 44182712 + lncRNA ENS0000086 9AAB9 havana_tagene 1.0 ENS0000086 ENS0000086 9AAB9 +20 44195939 44210771 - protein_coding ENS0001529 6FDF5 ensembl_havana 11.0 ENS0001529 ENS0001529 6FDF5 +20 44210907 44226027 + lncRNA ENS0001353 D9FBA havana 6.0 ENS0001353 ENS0001353 D9FBA +20 44247099 44280947 + protein_coding ENS0000050 5E499 ensembl_havana 17.0 ENS0000050 ENS0000050 5E499 +20 44302840 44311202 - protein_coding ENS0000637 BEA57 ensembl_havana 6.0 ENS0000637 ENS0000637 BEA57 +20 44337043 44351238 + protein_coding ENS0000429 97BED ensembl_havana 5.0 ENS0000429 ENS0000429 97BED +20 44344839 44344933 + misc_RNA ENS0001076 2F48A ensembl 2.0 ENS0001076 ENS0001076 2F48A +20 44347552 44355185 - lncRNA ENS0000715 77B8B havana 2.0 ENS0000715 ENS0000715 77B8B +20 44355700 44434596 + protein_coding ENS0000517 8B96C ensembl_havana 17.0 ENS0000517 ENS0000517 8B96C +20 44372746 44395706 - lncRNA ENS0001119 DB1DD havana 2.0 ENS0001119 ENS0001119 DB1DD +20 44389624 44391537 - lncRNA ENS0000148 22CE1 havana 1.0 ENS0000148 ENS0000148 22CE1 +20 44408120 44408203 + miRNA ENS0000904 3EBB0 mirbase 1.0 ENS0000904 ENS0000904 3EBB0 +20 44436172 44465349 - lncRNA ENS0000038 3D4E0 ensembl_havana 8.0 ENS0000038 ENS0000038 3D4E0 +20 44466564 44466842 - processed_pseudogene ENS0001473 9E500 havana 1.0 ENS0001473 ENS0001473 9E500 +20 44475874 44494603 + protein_coding ENS0001084 58C7F ensembl_havana 11.0 ENS0001084 ENS0001084 58C7F +20 44496221 44522085 - protein_coding ENS0000354 C9EE1 ensembl_havana 14.0 ENS0000354 ENS0000354 C9EE1 +20 44531785 44624247 + protein_coding ENS0001088 C73D3 ensembl_havana 14.0 ENS0001088 ENS0001088 C73D3 +20 44619522 44652233 - protein_coding ENS0001193 8FE6B ensembl_havana 13.0 ENS0001193 ENS0001193 8FE6B +20 44656451 44663498 - lncRNA ENS0001499 832CE havana 1.0 ENS0001499 ENS0001499 832CE +20 44656451 44696096 - lncRNA ENS0001533 287D7 havana 10.0 ENS0001533 ENS0001533 287D7 +20 44694892 44746021 - lncRNA ENS0000702 19DB6 havana 6.0 ENS0000702 ENS0000702 19DB6 +20 44714844 44728509 + protein_coding ENS0001451 FB478 ensembl_havana 10.0 ENS0001451 ENS0001451 FB478 +20 44745865 44752313 + protein_coding ENS0000866 E0D4B ensembl_havana 7.0 ENS0000866 ENS0000866 E0D4B +20 44746642 44747201 + lncRNA ENS0000547 CDDB2 havana 1.0 ENS0000547 ENS0000547 CDDB2 +20 44751808 44810546 - protein_coding ENS0000317 9C12A ensembl_havana 13.0 ENS0000317 ENS0000317 9C12A +20 44841925 44842539 - unprocessed_pseudogene ENS0001080 77BF1 havana 1.0 ENS0001080 ENS0001080 77BF1 +20 44864435 44885604 - lncRNA ENS0000870 20FCB havana 1.0 ENS0000870 ENS0000870 20FCB +20 44885702 44908532 + protein_coding ENS0001433 50D66 ensembl_havana 13.0 ENS0001433 ENS0001433 50D66 +20 44910060 44959035 + protein_coding ENS0000468 0CF64 ensembl_havana 13.0 ENS0000468 ENS0000468 0CF64 +20 44942130 44960397 - protein_coding ENS0000139 4F16D ensembl_havana 8.0 ENS0000139 ENS0000139 4F16D +20 44963794 44966402 - lncRNA ENS0000393 D004C havana 1.0 ENS0000393 ENS0000393 D004C +20 44966479 45080021 + protein_coding ENS0000314 AAAAC ensembl_havana 12.0 ENS0000314 ENS0000314 AAAAC +20 45004348 45004454 + misc_RNA ENS0001234 FA825 ensembl 1.0 ENS0001234 ENS0001234 FA825 +20 45091214 45101127 - protein_coding ENS0001268 D13A9 ensembl_havana 9.0 ENS0001268 ENS0001268 D13A9 +20 45109452 45115172 - protein_coding ENS0000993 09836 ensembl_havana 11.0 ENS0000993 ENS0000993 09836 +20 45123425 45124465 - protein_coding ENS0000362 46543 ensembl_havana 5.0 ENS0000362 ENS0000362 46543 +20 45137706 45138976 - transcribed_unprocessed_pseudogene ENS0000591 C6432 havana 1.0 ENS0000591 ENS0000591 C6432 +20 45174902 45176544 + protein_coding ENS0001444 9413A ensembl_havana 5.0 ENS0001444 ENS0001444 9413A +20 45207033 45209768 + protein_coding ENS0000771 A0BBD ensembl_havana 12.0 ENS0000771 ENS0000771 A0BBD +20 45221373 45224458 + protein_coding ENS0000889 ED9EA ensembl_havana 7.0 ENS0000889 ENS0000889 ED9EA +20 45229817 45230191 + unprocessed_pseudogene ENS0000630 F4F38 havana 1.0 ENS0000630 ENS0000630 F4F38 +20 45230868 45233331 + transcribed_unprocessed_pseudogene ENS0001501 11A50 havana 3.0 ENS0001501 ENS0001501 11A50 +20 45252239 45254564 - protein_coding ENS0000808 75E9C ensembl_havana 5.0 ENS0000808 ENS0000808 75E9C +20 45293445 45308529 - protein_coding ENS0000501 4E8F7 ensembl_havana 15.0 ENS0000501 ENS0000501 4E8F7 +20 45306840 45317824 + protein_coding ENS0001485 C4645 ensembl_havana 11.0 ENS0001485 ENS0001485 C4645 +20 45325288 45348424 - protein_coding ENS0000929 DC215 ensembl_havana 6.0 ENS0000929 ENS0000929 DC215 +20 45345115 45345823 - lncRNA ENS0000042 C720C havana 1.0 ENS0000042 ENS0000042 C720C +20 45361937 45376798 + protein_coding ENS0001280 9DA61 ensembl_havana 10.0 ENS0001280 ENS0001280 9DA61 +20 45363200 45410610 + protein_coding ENS0001338 F1E23 havana 5.0 ENS0001338 ENS0001338 F1E23 +20 45372557 45407889 - protein_coding ENS0000710 1A526 ensembl_havana 11.0 ENS0000710 ENS0000710 1A526 +20 45388347 45388705 - processed_pseudogene ENS0000062 38896 havana 1.0 ENS0000062 ENS0000062 38896 +20 45406057 45410610 + protein_coding ENS0000798 80E02 ensembl_havana 8.0 ENS0000798 ENS0000798 80E02 +20 45416084 45456934 + protein_coding ENS0000240 84430 ensembl_havana 18.0 ENS0000240 ENS0000240 84430 +20 45425510 45425573 + miRNA ENS0000990 E8715 mirbase 1.0 ENS0000990 ENS0000990 E8715 +20 45435272 45448325 - lncRNA ENS0000897 B049C havana 1.0 ENS0000897 ENS0000897 B049C +20 45469753 45481532 + protein_coding ENS0000834 ABDE2 ensembl_havana 18.0 ENS0000834 ENS0000834 ABDE2 +20 45487613 45490248 + lncRNA ENS0001194 66435 havana 1.0 ENS0001194 ENS0001194 66435 +20 45490818 45491671 - processed_pseudogene ENS0000348 6390D havana 1.0 ENS0000348 ENS0000348 6390D +20 45512461 45515622 - protein_coding ENS0001545 C9D35 ensembl_havana 8.0 ENS0001545 ENS0001545 C9D35 +20 45534196 45547662 - protein_coding ENS0000873 4800B ensembl_havana 2.0 ENS0000873 ENS0000873 4800B +20 45534196 45539482 - protein_coding ENS0000185 256DC ensembl_havana 9.0 ENS0000185 ENS0000185 256DC +20 45536796 45537014 - processed_pseudogene ENS0000665 A7C8B havana 1.0 ENS0000665 ENS0000665 A7C8B +20 45539983 45540227 - processed_pseudogene ENS0000129 1F49A havana 1.0 ENS0000129 ENS0000129 1F49A +20 45540626 45547752 - protein_coding ENS0001441 259B5 ensembl_havana 14.0 ENS0001441 ENS0001441 259B5 +20 45551153 45579326 - protein_coding ENS0000214 AB567 ensembl_havana 12.0 ENS0000214 ENS0000214 AB567 +20 45559758 45559876 - rRNA_pseudogene ENS0000596 7B3C9 ensembl 1.0 ENS0000596 ENS0000596 7B3C9 +20 45567990 45568807 - processed_pseudogene ENS0000862 EBF20 havana 1.0 ENS0000862 ENS0000862 EBF20 +20 45607939 45631284 - protein_coding ENS0000245 9B1D9 ensembl_havana 4.0 ENS0000245 ENS0000245 9B1D9 +20 45629739 45631196 + protein_coding ENS0001302 C0082 ensembl_havana 5.0 ENS0001302 ENS0001302 C0082 +20 45640486 45641370 - processed_pseudogene ENS0001395 716F7 havana 3.0 ENS0001395 ENS0001395 716F7 +20 45648563 45670270 - protein_coding ENS0000922 868F5 ensembl_havana 11.0 ENS0000922 ENS0000922 868F5 +20 45684653 45705019 - protein_coding ENS0001237 F0BE2 ensembl_havana 9.0 ENS0001237 ENS0001237 F0BE2 +20 45702038 45708817 + protein_coding ENS0001042 4D160 ensembl_havana 5.0 ENS0001042 ENS0001042 4D160 +20 45705102 45705180 - miRNA ENS0000138 B3C4A mirbase 1.0 ENS0000138 ENS0000138 B3C4A +20 45722347 45725830 + protein_coding ENS0000172 CDFA6 ensembl_havana 4.0 ENS0000172 ENS0000172 CDFA6 +20 45745737 45746287 - processed_pseudogene ENS0000386 F7E9E havana 2.0 ENS0000386 ENS0000386 F7E9E +20 45747944 45791932 - protein_coding ENS0000649 25D8D ensembl_havana 19.0 ENS0000649 ENS0000649 25D8D +20 45749920 45750074 + processed_pseudogene ENS0001136 95506 havana 3.0 ENS0001136 ENS0001136 95506 +20 45778698 45778823 + snRNA ENS0000250 052C1 ensembl 1.0 ENS0000250 ENS0000250 052C1 +20 45791954 45811427 + protein_coding ENS0001427 D30F5 ensembl_havana 13.0 ENS0001427 ENS0001427 D30F5 +20 45812576 45816957 + protein_coding ENS0001034 F4C50 ensembl_havana 17.0 ENS0001034 ENS0001034 F4C50 +20 45823214 45833745 - protein_coding ENS0001286 BBD76 ensembl_havana 10.0 ENS0001286 ENS0001286 BBD76 +20 45833799 45843276 + protein_coding ENS0001114 7877A ensembl_havana 19.0 ENS0001114 ENS0001114 7877A +20 45841721 45857405 - protein_coding ENS0000027 FB25D ensembl_havana 17.0 ENS0000027 ENS0000027 FB25D +20 45847630 45847940 - misc_RNA ENS0000383 F10BA ensembl 1.0 ENS0000383 ENS0000383 F10BA +20 45857614 45879122 + protein_coding ENS0001048 D4FEC ensembl_havana 7.0 ENS0001048 ENS0001048 D4FEC +20 45881227 45885266 + protein_coding ENS0000733 BBC16 ensembl_havana 4.0 ENS0000733 ENS0000733 BBC16 +20 45886489 45887635 - protein_coding ENS0001536 50008 ensembl_havana 4.0 ENS0001536 ENS0001536 50008 +20 45888625 45891287 - protein_coding ENS0000232 A7821 ensembl_havana 6.0 ENS0000232 ENS0000232 A7821 +20 45890144 45898824 + protein_coding ENS0000863 DC2D8 ensembl_havana 20.0 ENS0000863 ENS0000863 DC2D8 +20 45892694 45893419 - lncRNA ENS0000980 85217 havana 1.0 ENS0000980 ENS0000980 85217 +20 45898621 45912155 - protein_coding ENS0000650 E990A ensembl_havana 15.0 ENS0000650 ENS0000650 E990A +20 45926518 45935055 - lncRNA ENS0000865 B4AE0 havana 1.0 ENS0000865 ENS0000865 B4AE0 +20 45934683 45948023 + protein_coding ENS0000448 624F6 ensembl_havana 12.0 ENS0000448 ENS0000448 624F6 +20 45948660 45972203 - protein_coding ENS0000797 2AAF3 ensembl_havana 8.0 ENS0000797 ENS0000797 2AAF3 +20 45975249 45976075 - processed_pseudogene ENS0000597 26B73 havana 1.0 ENS0000597 ENS0000597 26B73 +20 46008908 46016561 + protein_coding ENS0000851 80650 ensembl_havana 7.0 ENS0000851 ENS0000851 80650 +20 46013500 46022073 - lncRNA ENS0000365 CE08C havana 6.0 ENS0000365 ENS0000365 CE08C +20 46021690 46060150 + protein_coding ENS0000642 366F5 ensembl_havana 14.0 ENS0000642 ENS0000642 366F5 +20 46060991 46089962 - protein_coding ENS0001125 9547B ensembl_havana 12.0 ENS0001125 ENS0001125 9547B +20 46099518 46100176 + processed_pseudogene ENS0001494 F54C2 havana 3.0 ENS0001494 ENS0001494 F54C2 +20 46118278 46129863 + protein_coding ENS0000140 C2622 ensembl_havana 14.0 ENS0000140 ENS0000140 C2622 +20 46168404 46171237 - lncRNA ENS0000266 65FD1 havana 1.0 ENS0000266 ENS0000266 65FD1 +20 46173739 46308498 - protein_coding ENS0001304 62810 ensembl_havana 11.0 ENS0001304 ENS0001304 62810 +20 46345980 46364458 - protein_coding ENS0000030 F686C ensembl_havana 15.0 ENS0000030 ENS0000030 F686C +20 46364551 46397994 + lncRNA ENS0000443 4DC7E havana 2.0 ENS0000443 ENS0000443 4DC7E +20 46366050 46432985 - protein_coding ENS0000676 52CD3 ensembl_havana 18.0 ENS0000676 ENS0000676 52CD3 +20 46414228 46459276 - transcribed_unitary_pseudogene ENS0000102 CD504 ensembl_havana 5.0 ENS0000102 ENS0000102 CD504 +20 46455033 46496731 - lncRNA ENS0000837 FAAF3 havana 1.0 ENS0000837 ENS0000837 FAAF3 +20 46463719 46477232 - transcribed_processed_pseudogene ENS0000032 4AD49 havana 2.0 ENS0000032 ENS0000032 4AD49 +20 46484461 46492640 + unprocessed_pseudogene ENS0000777 2F76A havana 10.0 ENS0000777 ENS0000777 2F76A +20 46499630 46513559 - protein_coding ENS0000911 AF720 ensembl_havana 11.0 ENS0000911 ENS0000911 AF720 +20 46540946 46550654 - protein_coding ENS0001124 F281B ensembl_havana 3.0 ENS0001124 ENS0001124 F281B +20 46557823 46684467 - protein_coding ENS0001108 4E8D0 ensembl_havana 14.0 ENS0001108 ENS0001108 4E8D0 +20 46681676 46682375 - lncRNA ENS0001224 96D7E havana 1.0 ENS0001224 ENS0001224 96D7E +20 46684365 46689444 - protein_coding ENS0000428 A128B ensembl_havana 6.0 ENS0000428 ENS0000428 A128B +20 46689659 46690289 + lncRNA ENS0000198 E485A havana 1.0 ENS0000198 ENS0000198 E485A +20 46709649 46736347 + protein_coding ENS0000411 1347B ensembl_havana 6.0 ENS0000411 ENS0000411 1347B +20 46859333 46859672 + misc_RNA ENS0000052 144C3 ensembl 1.0 ENS0000052 ENS0000052 144C3 +20 46863563 46864104 - processed_pseudogene ENS0001325 7D1C9 havana 1.0 ENS0001325 ENS0001325 7D1C9 +20 46894624 47188844 + protein_coding ENS0000311 2B299 ensembl_havana 19.0 ENS0000311 ENS0000311 2B299 +20 46901143 46901726 - lncRNA ENS0000564 96D05 havana 1.0 ENS0000564 ENS0000564 96D05 +20 46997596 46998488 + processed_pseudogene ENS0001175 5C8AD havana 1.0 ENS0001175 ENS0001175 5C8AD +20 47071865 47072236 + processed_pseudogene ENS0000410 35F12 havana 1.0 ENS0000410 ENS0000410 35F12 +20 47160838 47161700 - processed_pseudogene ENS0000119 6DDAB havana 2.0 ENS0000119 ENS0000119 6DDAB +20 47166967 47167058 + miRNA ENS0001190 8DB1B mirbase 1.0 ENS0001190 ENS0001190 8DB1B +20 47209214 47356889 - protein_coding ENS0000802 A0104 ensembl_havana 19.0 ENS0000802 ENS0000802 A0104 +20 47318502 47320754 + lncRNA ENS0000693 F1E27 havana 2.0 ENS0000693 ENS0000693 F1E27 +20 47348137 47349142 - lncRNA ENS0000595 AEE1B havana 1.0 ENS0000595 ENS0000595 AEE1B +20 47352561 47354633 + lncRNA ENS0000318 E1080 havana 2.0 ENS0000318 ENS0000318 E1080 +20 47391925 47412327 - lncRNA ENS0000079 45179 havana 2.0 ENS0000079 ENS0000079 45179 +20 47478214 47479010 - processed_pseudogene ENS0001312 5686E havana 1.0 ENS0001312 ENS0001312 5686E +20 47484278 47484381 - snRNA ENS0000628 8D8FE ensembl 1.0 ENS0000628 ENS0000628 8D8FE +20 47492978 47493085 - snRNA ENS0001439 D276D ensembl 1.0 ENS0001439 ENS0001439 D276D +20 47501887 47656877 + protein_coding ENS0000388 3D5CB ensembl_havana 19.0 ENS0000388 ENS0000388 3D5CB +20 47630266 47631438 - processed_pseudogene ENS0000509 EFD8B havana 1.0 ENS0000509 ENS0000509 EFD8B +20 47656348 47786616 - protein_coding ENS0001465 3624A ensembl_havana 14.0 ENS0001465 ENS0001465 3624A +20 47677901 47686297 + lncRNA ENS0000208 7CC84 havana 2.0 ENS0000208 ENS0000208 7CC84 +20 47826969 47827044 - snRNA ENS0001130 947D5 ensembl 1.0 ENS0001130 ENS0001130 947D5 +20 47859788 47860672 + processed_pseudogene ENS0000167 4F5B1 havana 3.0 ENS0000167 ENS0000167 4F5B1 +20 47873191 47873273 + rRNA_pseudogene ENS0000339 13E55 ensembl 1.0 ENS0000339 ENS0000339 13E55 +20 47904348 47904423 + snRNA ENS0001333 D4CE6 ensembl 1.0 ENS0001333 ENS0001333 D4CE6 +20 47950797 47954808 + lncRNA ENS0000427 DEEED havana 2.0 ENS0000427 ENS0000427 DEEED +20 47958022 47958603 + lncRNA ENS0001071 71C4E havana 1.0 ENS0001071 ENS0001071 71C4E +20 47974137 47977584 + lncRNA ENS0000852 83DA1 havana_tagene 1.0 ENS0000852 ENS0000852 83DA1 +20 47976739 47990127 - lncRNA ENS0000744 FF7E0 havana 3.0 ENS0000744 ENS0000744 FF7E0 +20 47983404 47984313 + lncRNA ENS0000867 11112 havana 1.0 ENS0000867 ENS0000867 11112 +20 48007875 48022237 - lncRNA ENS0001461 EB39B havana 1.0 ENS0001461 ENS0001461 EB39B +20 48025245 48060271 + lncRNA ENS0000118 18133 havana_tagene 1.0 ENS0000118 ENS0000118 18133 +20 48073869 48074188 + lncRNA ENS0001267 D9559 havana 1.0 ENS0001267 ENS0001267 D9559 +20 48120269 48136844 + lncRNA ENS0000224 7602B havana_tagene 1.0 ENS0000224 ENS0000224 7602B +20 48264969 48275392 - lncRNA ENS0000389 E6BDB havana_tagene 1.0 ENS0000389 ENS0000389 E6BDB +20 48324812 48367976 - lncRNA ENS0001218 E7835 havana 1.0 ENS0001218 ENS0001218 E7835 +20 48359884 48370636 + lncRNA ENS0000220 9E872 ensembl_havana 9.0 ENS0000220 ENS0000220 9E872 +20 48383323 48384895 - lncRNA ENS0001031 56C7F havana 1.0 ENS0001031 ENS0001031 56C7F +20 48406777 48410716 + lncRNA ENS0000489 A2411 havana 2.0 ENS0000489 ENS0000489 A2411 +20 48471308 48472414 + lncRNA ENS0001038 D60EC havana 1.0 ENS0001038 ENS0001038 D60EC +20 48476999 48477553 + lncRNA ENS0001208 AC3BF havana 1.0 ENS0001208 ENS0001208 AC3BF +20 48494234 48494309 - snRNA ENS0000513 3EA92 ensembl 1.0 ENS0000513 ENS0000513 3EA92 +20 48624252 48827999 - protein_coding ENS0001123 F8B24 ensembl_havana 14.0 ENS0001123 ENS0001123 F8B24 +20 48657073 48659119 + lncRNA ENS0000180 19669 havana 1.0 ENS0000180 ENS0000180 19669 +20 48821688 48849458 - lncRNA ENS0000643 F662B havana 1.0 ENS0000643 ENS0000643 F662B +20 48921711 49036693 + protein_coding ENS0000144 7C256 ensembl_havana 9.0 ENS0000144 ENS0000144 7C256 +20 49038357 49038602 - processed_pseudogene ENS0000312 B246A havana 1.0 ENS0000312 ENS0000312 B246A +20 49040463 49046168 - lncRNA ENS0000882 BAEA8 havana 6.0 ENS0000882 ENS0000882 BAEA8 +20 49046246 49096960 + protein_coding ENS0000655 D3620 ensembl_havana 17.0 ENS0000655 ENS0000655 D3620 +20 49113339 49188367 - protein_coding ENS0001539 3DAE2 ensembl_havana 20.0 ENS0001539 ENS0001539 3DAE2 +20 49134480 49135012 + processed_pseudogene ENS0000265 2FDC8 havana 1.0 ENS0000265 ENS0000265 2FDC8 +20 49219295 49244077 + protein_coding ENS0000760 14997 ensembl_havana 14.0 ENS0000760 ENS0000760 14997 +20 49237946 49278426 - protein_coding ENS0000621 494BD ensembl_havana 15.0 ENS0000621 ENS0000621 494BD +20 49278178 49299600 + lncRNA ENS0000101 61FFF ensembl_havana 13.0 ENS0000101 ENS0000101 61FFF +20 49278427 49278624 + misc_RNA ENS0000359 F9641 ensembl 1.0 ENS0000359 ENS0000359 F9641 +20 49278940 49279028 + snoRNA ENS0001549 6BCC1 ensembl 1.0 ENS0001549 ENS0001549 6BCC1 +20 49279116 49279208 + misc_RNA ENS0001061 3A3E0 ensembl 1.0 ENS0001061 ENS0001061 3A3E0 +20 49280319 49280409 + snoRNA ENS0000879 D7230 ensembl 1.0 ENS0000879 ENS0000879 D7230 +20 49280485 49280571 + misc_RNA ENS0000467 8ABEA ensembl 1.0 ENS0000467 ENS0000467 8ABEA +20 49280683 49280772 + snoRNA ENS0000519 83636 ensembl 1.0 ENS0000519 ENS0000519 83636 +20 49293394 49484297 - protein_coding ENS0001249 3572C ensembl_havana 10.0 ENS0001249 ENS0001249 3572C +20 49318337 49441654 + transcribed_unprocessed_pseudogene ENS0001260 DF83D havana 1.0 ENS0001260 ENS0001260 DF83D +20 49503874 49568137 - protein_coding ENS0001170 B03A4 ensembl_havana 6.0 ENS0001170 ENS0001170 B03A4 +20 49632945 49713878 - protein_coding ENS0000909 3995A ensembl_havana 5.0 ENS0000909 ENS0000909 3995A +20 49721949 49722247 + misc_RNA ENS0001472 BDB1D ensembl 1.0 ENS0001472 ENS0001472 BDB1D +20 49729591 49729842 - processed_pseudogene ENS0000579 C3B50 havana 1.0 ENS0000579 ENS0000579 C3B50 +20 49794811 49794914 + snRNA ENS0000651 1C804 ensembl 1.0 ENS0000651 ENS0000651 1C804 +20 49812713 49892242 + protein_coding ENS0000738 D945B ensembl_havana 12.0 ENS0000738 ENS0000738 D945B +20 49829125 49831085 + processed_pseudogene ENS0000614 EFC57 havana 1.0 ENS0000614 ENS0000614 EFC57 +20 49903391 49915529 - protein_coding ENS0000565 2AD96 ensembl_havana 11.0 ENS0000565 ENS0000565 2AD96 +20 49920597 49920694 - misc_RNA ENS0000939 5AA96 ensembl 1.0 ENS0000939 ENS0000939 5AA96 +20 49932795 49933078 + misc_RNA ENS0000729 17B66 ensembl 2.0 ENS0000729 ENS0000729 17B66 +20 49936336 49953885 + protein_coding ENS0001140 D7916 ensembl_havana 11.0 ENS0001140 ENS0001140 D7916 +20 49956745 49958032 + processed_pseudogene ENS0000525 62637 havana 1.0 ENS0000525 ENS0000525 62637 +20 49972106 49972212 + snRNA ENS0000487 41AA7 ensembl 1.0 ENS0000487 ENS0000487 41AA7 +20 49982980 49988886 + protein_coding ENS0000673 431AF ensembl_havana 4.0 ENS0000673 ENS0000673 431AF +20 50040716 50041504 - lncRNA ENS0000900 44B21 havana 1.0 ENS0000900 ENS0000900 44B21 +20 50081124 50153637 - protein_coding ENS0000918 E2CFF ensembl_havana 16.0 ENS0000918 ENS0000918 E2CFF +20 50081124 50115959 - protein_coding ENS0000077 AB7C6 ensembl_havana 12.0 ENS0000077 ENS0000077 AB7C6 +20 50118254 50153734 - protein_coding ENS0000699 C85FB ensembl_havana 11.0 ENS0000699 ENS0000699 C85FB +20 50162765 50166216 - lncRNA ENS0001310 1D1A4 havana 5.0 ENS0001310 ENS0001310 1D1A4 +20 50166362 50171742 + lncRNA ENS0000610 16421 havana 1.0 ENS0000610 ENS0000610 16421 +20 50171809 50176676 + lncRNA ENS0000435 070D8 havana_tagene 6.0 ENS0000435 ENS0000435 070D8 +20 50184598 50191498 - lncRNA ENS0001172 4CD30 havana 1.0 ENS0001172 ENS0001172 4CD30 +20 50190830 50192668 + protein_coding ENS0000570 335B5 ensembl_havana 6.0 ENS0000570 ENS0000570 335B5 +20 50247643 50283250 + lncRNA ENS0000960 FD65A ensembl_havana 7.0 ENS0000960 ENS0000960 FD65A +20 50292709 50315488 + lncRNA ENS0001385 98A5C havana 9.0 ENS0001385 ENS0001385 98A5C +20 50310711 50321342 - lncRNA ENS0000349 6D0F8 havana 1.0 ENS0000349 ENS0000349 6D0F8 +20 50429190 50429483 - misc_RNA ENS0000476 99B80 ensembl 3.0 ENS0000476 ENS0000476 99B80 +20 50479767 50479991 + processed_pseudogene ENS0001331 4D7F7 havana 1.0 ENS0001331 ENS0001331 4D7F7 +20 50510321 50585241 + protein_coding ENS0000590 4F09D ensembl_havana 10.0 ENS0000590 ENS0000590 4F09D +20 50557682 50557998 - misc_RNA ENS0000974 D36DE ensembl 3.0 ENS0000974 ENS0000974 D36DE +20 50563009 50563110 + misc_RNA ENS0000356 2972B ensembl 1.0 ENS0000356 ENS0000356 2972B +20 50570975 50578041 - lncRNA ENS0000236 449D7 havana 1.0 ENS0000236 ENS0000236 449D7 +20 50585786 50585879 + miRNA ENS0001107 0B0A3 mirbase 1.0 ENS0001107 ENS0001107 0B0A3 +20 50586108 50691542 - protein_coding ENS0001537 2258A ensembl_havana 13.0 ENS0001537 ENS0001537 2258A +20 50614636 50614785 - miRNA ENS0000765 D57A2 mirbase 1.0 ENS0000765 ENS0000765 D57A2 +20 50620763 50621077 + processed_pseudogene ENS0000105 70991 havana 1.0 ENS0000105 ENS0000105 70991 +20 50645471 50662275 + lncRNA ENS0000455 FE1A9 havana 1.0 ENS0000455 ENS0000455 FE1A9 +20 50731580 50756795 + protein_coding ENS0000447 B837E ensembl_havana 9.0 ENS0000447 ENS0000447 B837E +20 50794894 50882676 + protein_coding ENS0000222 362E6 ensembl_havana 17.0 ENS0000222 ENS0000222 362E6 +20 50840615 50840749 - processed_pseudogene ENS0000735 D3744 havana 1.0 ENS0000735 ENS0000735 D3744 +20 50888916 50931437 - protein_coding ENS0000391 94AC8 ensembl_havana 18.0 ENS0000391 ENS0000391 94AC8 +20 50913731 50914411 + processed_pseudogene ENS0001066 7FAFF havana 1.0 ENS0001066 ENS0001066 7FAFF +20 50930984 50945148 + lncRNA ENS0000461 DAF78 havana 4.0 ENS0000461 ENS0000461 DAF78 +20 50934867 50958555 - protein_coding ENS0001054 C63F0 ensembl_havana 13.0 ENS0001054 ENS0001054 C63F0 +20 50958818 50963929 + protein_coding ENS0000342 7143F ensembl_havana 5.0 ENS0000342 ENS0000342 7143F +20 50999370 51010019 + lncRNA ENS0000201 B5556 havana 1.0 ENS0000201 ENS0000201 B5556 +20 51003656 51023107 - protein_coding ENS0000828 6DAC1 ensembl_havana 14.0 ENS0000828 ENS0000828 6DAC1 +20 51098138 51098845 + TEC ENS0000704 312E8 havana 1.0 ENS0000704 ENS0000704 312E8 +20 51130788 51131667 - processed_pseudogene ENS0000007 B033F havana 2.0 ENS0000007 ENS0000007 B033F +20 51386957 51562831 - protein_coding ENS0001258 4CB90 ensembl_havana 20.0 ENS0001258 ENS0001258 4CB90 +20 51452905 51452977 - miRNA ENS0000337 4BB15 mirbase 1.0 ENS0000337 ENS0000337 4BB15 +20 51596514 51768390 - protein_coding ENS0000633 A2BD7 ensembl_havana 14.0 ENS0000633 ENS0000633 A2BD7 +20 51734533 51735067 + processed_pseudogene ENS0000987 C8AEA havana 2.0 ENS0000987 ENS0000987 C8AEA +20 51782331 51802521 - protein_coding ENS0000357 94E19 ensembl_havana 13.0 ENS0000357 ENS0000357 94E19 +20 51831797 51862912 - lncRNA ENS0000827 97A7D havana 1.0 ENS0000827 ENS0000827 97A7D +20 51902291 51902395 + snRNA ENS0000301 6C580 ensembl 1.0 ENS0000301 ENS0000301 6C580 +20 51904969 51905030 + snRNA ENS0001469 82697 ensembl 1.0 ENS0001469 ENS0001469 82697 +20 52051663 52204308 - protein_coding ENS0000110 FC149 ensembl_havana 20.0 ENS0000110 ENS0000110 FC149 +20 52072685 52096480 + lncRNA ENS0001347 E239D havana_tagene 1.0 ENS0001347 ENS0001347 E239D +20 52110344 52111049 - processed_pseudogene ENS0000672 DCB1E havana 1.0 ENS0000672 ENS0000672 DCB1E +20 52192159 52670578 + lncRNA ENS0000054 A370D havana 2.0 ENS0000054 ENS0000054 A370D +20 52451464 52455619 - lncRNA ENS0001327 B6827 havana 1.0 ENS0001327 ENS0001327 B6827 +20 52482801 52482991 - misc_RNA ENS0000608 581DB ensembl 1.0 ENS0000608 ENS0000608 581DB +20 52487922 52500591 - lncRNA ENS0000663 CD46F havana 1.0 ENS0000663 ENS0000663 CD46F +20 52511252 52511568 + processed_pseudogene ENS0000776 FD23B havana 1.0 ENS0000776 ENS0000776 FD23B +20 52671735 52699472 + lncRNA ENS0001201 73805 havana 6.0 ENS0001201 ENS0001201 73805 +20 52840936 52843775 - lncRNA ENS0001311 7B7DE havana 1.0 ENS0001311 ENS0001311 7B7DE +20 52858338 52862855 - lncRNA ENS0000868 502A1 havana 1.0 ENS0000868 ENS0000868 502A1 +20 52890162 52890386 + processed_pseudogene ENS0001392 79334 havana 1.0 ENS0001392 ENS0001392 79334 +20 52972358 53495330 + protein_coding ENS0000481 4FE29 ensembl_havana 16.0 ENS0000481 ENS0000481 4FE29 +20 53097652 53097984 + misc_RNA ENS0000217 E008E ensembl 1.0 ENS0000217 ENS0000217 E008E +20 53137293 53141169 - lncRNA ENS0000701 B8EEC havana_tagene 1.0 ENS0000701 ENS0000701 B8EEC +20 53168643 53179550 - lncRNA ENS0000436 C4CD3 havana 1.0 ENS0000436 ENS0000436 C4CD3 +20 53196229 53208705 - lncRNA ENS0000419 ABC1B havana 1.0 ENS0000419 ENS0000419 ABC1B +20 53255979 53487274 - lncRNA ENS0001098 47902 havana 1.0 ENS0001098 ENS0001098 47902 +20 53397661 53412910 - lncRNA ENS0000666 07346 havana 2.0 ENS0000666 ENS0000666 07346 +20 53421199 53421656 + processed_pseudogene ENS0001471 BBA89 havana 1.0 ENS0001471 ENS0001471 BBA89 +20 53453058 53504314 - lncRNA ENS0000035 DBB0F havana 1.0 ENS0000035 ENS0000035 DBB0F +20 53544615 53544725 + misc_RNA ENS0001375 1A227 ensembl 1.0 ENS0001375 ENS0001375 1A227 +20 53552770 53575863 + lncRNA ENS0000943 ABC14 havana 6.0 ENS0000943 ENS0000943 ABC14 +20 53567065 53609907 - protein_coding ENS0001256 DE38A ensembl_havana 13.0 ENS0001256 ENS0001256 DE38A +20 53608354 53634590 + lncRNA ENS0000823 A350E havana 1.0 ENS0000823 ENS0000823 A350E +20 53668697 53668758 - snRNA ENS0000351 DD63E ensembl 1.0 ENS0000351 ENS0000351 DD63E +20 53738728 53741797 + lncRNA ENS0000856 2ED59 havana_tagene 1.0 ENS0000856 ENS0000856 2ED59 +20 53799823 53827297 - lncRNA ENS0000092 E67FF havana 2.0 ENS0000092 ENS0000092 E67FF +20 53875252 53875557 - processed_pseudogene ENS0000709 D8879 ensembl_havana 1.0 ENS0000709 ENS0000709 D8879 +20 53936777 54070594 - protein_coding ENS0000440 12B4E ensembl_havana 13.0 ENS0000440 ENS0000440 12B4E +20 53940160 53942508 + lncRNA ENS0000758 2ED17 havana 1.0 ENS0000758 ENS0000758 2ED17 +20 54068408 54068485 - miRNA ENS0000881 E745B mirbase 1.0 ENS0000881 ENS0000881 E745B +20 54153446 54173986 - protein_coding ENS0000022 3A3A1 ensembl_havana 10.0 ENS0000022 ENS0000022 3A3A1 +20 54178414 54183129 + lncRNA ENS0001438 789BB havana_tagene 1.0 ENS0001438 ENS0001438 789BB +20 54208087 54228052 + protein_coding ENS0000813 0F235 ensembl_havana 10.0 ENS0000813 ENS0000813 0F235 +20 54232758 54269542 + lncRNA ENS0001016 460BC havana 1.0 ENS0001016 ENS0001016 460BC +20 54475593 54651169 + protein_coding ENS0000099 53DA9 ensembl_havana 12.0 ENS0000099 ENS0000099 53DA9 +20 54859688 54859812 - snRNA ENS0001506 3AE72 ensembl 1.0 ENS0001506 ENS0001506 3AE72 +20 55074644 55075140 + processed_pseudogene ENS0001135 0F9B7 havana 10.0 ENS0001135 ENS0001135 0F9B7 +20 55408898 55684915 + lncRNA ENS0000653 3B0DE havana 8.0 ENS0000653 ENS0000653 3B0DE +20 55420336 55427197 - lncRNA ENS0000555 0B07F havana 1.0 ENS0000555 ENS0000555 0B07F +20 55504906 55505215 - lncRNA ENS0001470 85BAF havana 1.0 ENS0001470 ENS0001470 85BAF +20 55607852 55744938 - lncRNA ENS0000226 580F9 havana_tagene 1.0 ENS0000226 ENS0000226 580F9 +20 55775176 55781231 + lncRNA ENS0000313 40A4F havana 2.0 ENS0000313 ENS0000313 40A4F +20 55997357 56005519 - protein_coding ENS0000071 D085F ensembl_havana 4.0 ENS0000071 ENS0000071 D085F +20 56205052 56205173 - rRNA_pseudogene ENS0000559 D643E ensembl 1.0 ENS0000559 ENS0000559 D643E +20 56248732 56249815 + protein_coding ENS0001523 CC6C9 ensembl_havana 4.0 ENS0001523 ENS0001523 CC6C9 +20 56267872 56269231 + processed_pseudogene ENS0000465 16E39 havana 1.0 ENS0000465 ENS0000465 16E39 +20 56295967 56299160 - lncRNA ENS0000200 CAFD4 havana 1.0 ENS0000200 ENS0000200 CAFD4 +20 56358974 56368663 + protein_coding ENS0000018 39E49 ensembl_havana 10.0 ENS0000018 ENS0000018 39E49 +20 56369389 56392337 - protein_coding ENS0000034 6A669 ensembl_havana 18.0 ENS0000034 ENS0000034 6A669 +20 56392371 56406362 + protein_coding ENS0000516 5DA03 ensembl_havana 12.0 ENS0000516 ENS0000516 5DA03 +20 56412112 56460387 + protein_coding ENS0001068 1FDBC ensembl_havana 16.0 ENS0001068 ENS0001068 1FDBC +20 56459428 56459583 - processed_pseudogene ENS0001386 2C3E8 havana 1.0 ENS0001386 ENS0001386 2C3E8 +20 56468585 56519449 + protein_coding ENS0000691 C40A5 ensembl_havana 13.0 ENS0000691 ENS0000691 C40A5 +20 56491492 56525925 - protein_coding ENS0001222 A58AC ensembl_havana 9.0 ENS0001222 ENS0001222 A58AC +20 56517187 56526152 + protein_coding ENS0000123 9110A ensembl_havana 10.0 ENS0000123 ENS0000123 9110A +20 56522252 56523499 + TEC ENS0001413 8FB0E havana 1.0 ENS0001413 ENS0001413 8FB0E +20 56533246 56536520 + protein_coding ENS0000188 C0D54 ensembl_havana 1.0 ENS0000188 ENS0000188 C0D54 +20 56550605 56555579 + lncRNA ENS0000577 127D7 havana_tagene 1.0 ENS0000577 ENS0000577 127D7 +20 56577563 56598621 + lncRNA ENS0001077 B8322 havana 2.0 ENS0001077 ENS0001077 B8322 +20 56601701 56602113 + processed_pseudogene ENS0001229 68578 havana 3.0 ENS0001229 ENS0001229 68578 +20 56629306 56639283 + protein_coding ENS0000791 BFCCB ensembl_havana 7.0 ENS0000791 ENS0000791 BFCCB +20 56667430 56667531 + snRNA ENS0000306 ED6B1 ensembl 1.0 ENS0000306 ENS0000306 ED6B1 +20 56688401 56688695 + misc_RNA ENS0000992 931F4 ensembl 3.0 ENS0000992 ENS0000992 931F4 +20 56700837 56701514 - processed_pseudogene ENS0000575 77FCD havana 1.0 ENS0000575 ENS0000575 77FCD +20 56730397 56731460 + lncRNA ENS0001293 69B20 havana 2.0 ENS0001293 ENS0001293 69B20 +20 56785981 56786087 - snRNA ENS0000463 3324E ensembl 1.0 ENS0000463 ENS0000463 3324E +20 57105741 57107128 + lncRNA ENS0000640 908DF havana 1.0 ENS0000640 ENS0000640 908DF +20 57110640 57122745 + lncRNA ENS0001351 11E4E havana 3.0 ENS0001351 ENS0001351 11E4E +20 57116566 57119543 - lncRNA ENS0000589 49251 havana_tagene 1.0 ENS0000589 ENS0000589 49251 +20 57161822 57163775 + TEC ENS0000142 CF324 havana 1.0 ENS0000142 ENS0000142 CF324 +20 57168753 57266641 - protein_coding ENS0000082 88FAD ensembl_havana 13.0 ENS0000082 ENS0000082 88FAD +20 57214872 57215866 + lncRNA ENS0000763 E14C8 havana 1.0 ENS0000763 ENS0000763 E14C8 +20 57266797 57282998 + lncRNA ENS0001324 8CF5F havana 1.0 ENS0001324 ENS0001324 8CF5F +20 57311854 57311958 + misc_RNA ENS0000810 B78EC ensembl 1.0 ENS0000810 ENS0000810 B78EC +20 57321502 57321591 - miRNA ENS0000472 2F1A5 mirbase 1.0 ENS0000472 ENS0000472 2F1A5 +20 57328546 57328696 + processed_pseudogene ENS0001065 F30F0 havana 1.0 ENS0001065 ENS0001065 F30F0 +20 57329803 57343994 + protein_coding ENS0000195 E061F ensembl_havana 13.0 ENS0000195 ENS0000195 E061F +20 57351223 57379211 + protein_coding ENS0001382 54E07 ensembl_havana 13.0 ENS0001382 ENS0001382 54E07 +20 57357426 57358369 - processed_pseudogene ENS0000033 5F29C havana 1.0 ENS0000033 ENS0000033 5F29C +20 57358447 57359498 - protein_coding ENS0001242 88548 ensembl_havana 3.0 ENS0001242 ENS0001242 88548 +20 57377140 57393062 - lncRNA ENS0000790 522D5 havana 3.0 ENS0000790 ENS0000790 522D5 +20 57391396 57409333 + protein_coding ENS0000857 DC97D ensembl_havana 17.0 ENS0000857 ENS0000857 DC97D +20 57442742 57458298 + lncRNA ENS0000260 64B31 havana 1.0 ENS0000260 ENS0000260 64B31 +20 57488392 57489027 - processed_pseudogene ENS0001520 53276 havana 7.0 ENS0001520 ENS0001520 53276 +20 57495966 57525652 - protein_coding ENS0001120 95528 ensembl_havana 12.0 ENS0001120 ENS0001120 95528 +20 57561080 57568121 + protein_coding ENS0000583 050C6 ensembl_havana 11.0 ENS0000583 ENS0000583 050C6 +20 57599695 57601200 - lncRNA ENS0000160 4583D havana 1.0 ENS0000160 ENS0000160 4583D +20 57603846 57620576 - protein_coding ENS0000962 ACAC6 ensembl_havana 15.0 ENS0000962 ENS0000962 ACAC6 +20 57648392 57711536 - protein_coding ENS0001544 57496 ensembl_havana 16.0 ENS0001544 ENS0001544 57496 +20 57710156 57712780 + lncRNA ENS0000473 FFB14 havana 2.0 ENS0000473 ENS0000473 FFB14 +20 57895394 57895444 + miRNA ENS0001188 91B40 mirbase 1.0 ENS0001188 ENS0001188 91B40 +20 57957126 57960176 - lncRNA ENS0001073 6B3B6 havana 2.0 ENS0001073 ENS0001073 6B3B6 +20 58003904 58004648 + lncRNA ENS0000478 510EB havana 1.0 ENS0000478 ENS0000478 510EB +20 58069054 58072070 - lncRNA ENS0000662 995A8 havana 6.0 ENS0000662 ENS0000662 995A8 +20 58097267 58097591 + processed_pseudogene ENS0000895 6D5B8 havana 1.0 ENS0000895 ENS0000895 6D5B8 +20 58150902 58161150 + protein_coding ENS0001052 060A2 ensembl_havana 6.0 ENS0001052 ENS0001052 060A2 +20 58218495 58228653 - protein_coding ENS0000836 2414D ensembl_havana 5.0 ENS0000836 ENS0000836 2414D +20 58228940 58309451 - transcribed_unprocessed_pseudogene ENS0000056 70ECE havana 17.0 ENS0000056 ENS0000056 70ECE +20 58309715 58367507 + protein_coding ENS0000364 DEC53 ensembl_havana 4.0 ENS0000364 ENS0000364 DEC53 +20 58389229 58451101 + protein_coding ENS0001138 E1E26 ensembl_havana 16.0 ENS0001138 ENS0001138 E1E26 +20 58459101 58515399 - protein_coding ENS0001484 152C3 ensembl_havana 11.0 ENS0001484 ENS0001484 152C3 +20 58515379 58619888 + lncRNA ENS0001477 D84A8 havana 6.0 ENS0001477 ENS0001477 D84A8 +20 58594417 58603973 + lncRNA ENS0000228 2E6C4 havana 1.0 ENS0000228 ENS0000228 2E6C4 +20 58634772 58635738 + lncRNA ENS0000289 F3B7B havana 2.0 ENS0000289 ENS0000289 F3B7B +20 58651253 58679526 + protein_coding ENS0001407 3086F ensembl_havana 22.0 ENS0001407 ENS0001407 3086F +20 58651434 58715410 + protein_coding ENS0000286 DB953 havana 4.0 ENS0000286 ENS0000286 DB953 +20 58689131 58719238 + protein_coding ENS0000644 44B47 ensembl_havana 12.0 ENS0000644 ENS0000644 44B47 +20 58710795 58711633 + lncRNA ENS0000213 57610 havana 1.0 ENS0000213 ENS0000213 57610 +20 58740532 58783821 - unprocessed_pseudogene ENS0000574 27E39 havana 1.0 ENS0000574 ENS0000574 27E39 +20 58754351 58756838 + lncRNA ENS0001171 85C3C havana 1.0 ENS0001171 ENS0001171 85C3C +20 58817132 58817725 - lncRNA ENS0001482 F188D havana 5.0 ENS0001482 ENS0001482 F188D +20 58817615 58817694 - miRNA ENS0000269 E9EE0 mirbase 1.0 ENS0000269 ENS0000269 E9EE0 +20 58818226 58818313 - miRNA ENS0001004 EF9AE mirbase 1.0 ENS0001004 ENS0001004 EF9AE +20 58818919 58850903 - lncRNA ENS0000444 02202 havana 7.0 ENS0000444 ENS0000444 02202 +20 58833809 58836529 - lncRNA ENS0000669 46A3D havana 1.0 ENS0000669 ENS0000669 46A3D +20 58839718 58911192 + protein_coding ENS0000187 B6141 ensembl_havana 27.0 ENS0000187 ENS0000187 B6141 +20 58842030 58842132 + misc_RNA ENS0001152 96831 ensembl 1.0 ENS0001152 ENS0001152 96831 +20 58842433 58842546 + misc_RNA ENS0000093 C28FB ensembl 1.0 ENS0000093 ENS0000093 C28FB +20 58850530 58850641 + misc_RNA ENS0000812 782CC ensembl 1.0 ENS0000812 ENS0000812 782CC +20 58850783 58850903 + misc_RNA ENS0001183 A1743 ensembl 1.0 ENS0001183 ENS0001183 A1743 +20 58863528 58888809 - lncRNA ENS0000846 51ECE havana 8.0 ENS0000846 ENS0000846 51ECE +20 58876592 58876981 - lncRNA ENS0000905 68E09 havana 1.0 ENS0000905 ENS0000905 68E09 +20 58916000 58981169 - lncRNA ENS0000721 590CA havana 1.0 ENS0000721 ENS0000721 590CA +20 58948089 58948267 - unprocessed_pseudogene ENS0001315 2BA89 havana 1.0 ENS0001315 ENS0001315 2BA89 +20 58981208 58995133 + protein_coding ENS0000229 D5500 ensembl_havana 15.0 ENS0000229 ENS0000229 D5500 +20 58995185 59007254 - protein_coding ENS0000275 98CF6 ensembl_havana 14.0 ENS0000275 ENS0000275 98CF6 +20 59019429 59026654 + protein_coding ENS0001443 A919F ensembl_havana 4.0 ENS0001443 ENS0001443 A919F +20 59025475 59032345 - protein_coding ENS0000784 ADAF2 ensembl_havana 10.0 ENS0000784 ENS0000784 ADAF2 +20 59033145 59042809 - protein_coding ENS0001530 7D270 ensembl_havana 16.0 ENS0001530 ENS0001530 7D270 +20 59113224 59113631 + processed_pseudogene ENS0001161 12DD5 havana 2.0 ENS0001161 ENS0001161 12DD5 +20 59123381 59259113 + protein_coding ENS0001372 178B8 ensembl_havana 6.0 ENS0001372 ENS0001372 178B8 +20 59300443 59325992 + protein_coding ENS0000774 B569C ensembl_havana 18.0 ENS0000774 ENS0000774 B569C +20 59352195 59357774 - lncRNA ENS0000373 55A9E havana 1.0 ENS0000373 ENS0000373 55A9E +20 59360927 59364773 - lncRNA ENS0000624 7662B havana 1.0 ENS0000624 ENS0000624 7662B +20 59395496 59397109 - lncRNA ENS0000015 DDB58 havana_tagene 1.0 ENS0000015 ENS0000015 DDB58 +20 59460619 59460837 - processed_pseudogene ENS0000956 D7910 havana 3.0 ENS0000956 ENS0000956 D7910 +20 59467755 59469853 - lncRNA ENS0000876 1BA72 havana_tagene 1.0 ENS0000876 ENS0000876 1BA72 +20 59515191 59516039 + lncRNA ENS0001127 7D838 havana 1.0 ENS0001127 ENS0001127 7D838 +20 59577509 59847711 + protein_coding ENS0001069 38378 ensembl_havana 17.0 ENS0001069 ENS0001069 38378 +20 59624904 59628295 - lncRNA ENS0001454 DB026 havana 2.0 ENS0001454 ENS0001454 DB026 +20 59852667 59852728 - snRNA ENS0000692 96A9F ensembl 1.0 ENS0000692 ENS0000692 96A9F +20 59863564 59933655 - protein_coding ENS0000363 36B86 ensembl_havana 13.0 ENS0000363 ENS0000363 36B86 +20 59933764 59948680 + protein_coding ENS0000408 8E8D3 ensembl_havana 11.0 ENS0000408 ENS0000408 8E8D3 +20 59936663 59940305 - protein_coding ENS0000983 E5B2A ensembl_havana 7.0 ENS0000983 ENS0000983 E5B2A +20 59958423 60034011 + protein_coding ENS0000036 59599 ensembl_havana 17.0 ENS0000036 ENS0000036 59599 +20 60055853 60072956 + lncRNA ENS0000766 C719D ensembl_havana 9.0 ENS0000766 ENS0000766 C719D +20 60083360 60083872 - lncRNA ENS0000847 F8C24 havana 1.0 ENS0000847 ENS0000847 F8C24 +20 60087826 60653784 + lncRNA ENS0000264 55A49 havana 6.0 ENS0000264 ENS0000264 55A49 +20 60308474 60308567 + miRNA ENS0000726 AD0DF mirbase 1.0 ENS0000726 ENS0000726 AD0DF +20 60414396 60414872 - processed_pseudogene ENS0001070 215FF havana 1.0 ENS0001070 ENS0001070 215FF +20 60478111 60478181 + miRNA ENS0000741 DB379 mirbase 1.0 ENS0000741 ENS0000741 DB379 +20 60564562 60564625 + miRNA ENS0000194 7CC04 mirbase 1.0 ENS0000194 ENS0000194 7CC04 +20 60755001 60767279 + lncRNA ENS0001436 EB124 havana 3.0 ENS0001436 ENS0001436 EB124 +20 60812004 60814211 - lncRNA ENS0000091 2E4A3 havana 1.0 ENS0000091 ENS0000091 2E4A3 +20 61077224 61077816 - lncRNA ENS0001397 6613E havana 1.0 ENS0001397 ENS0001397 6613E +20 61079049 61083750 + lncRNA ENS0001418 A5785 havana 2.0 ENS0001418 ENS0001418 A5785 +20 61252261 61940617 + protein_coding ENS0000261 CEE08 ensembl_havana 16.0 ENS0000261 ENS0000261 CEE08 +20 61267525 61271827 - lncRNA ENS0001231 8DFED havana 1.0 ENS0001231 ENS0001231 8DFED +20 61369879 61370855 + lncRNA ENS0000566 BB307 havana 1.0 ENS0000566 ENS0000566 BB307 +20 61432868 61437630 - lncRNA ENS0001153 FCCFA havana 2.0 ENS0001153 ENS0001153 FCCFA +20 61717506 61719748 - lncRNA ENS0001369 D6888 havana 3.0 ENS0001369 ENS0001369 D6888 +20 61738219 61755056 - lncRNA ENS0000316 B296E havana 1.0 ENS0000316 ENS0000316 B296E +20 61953469 62065810 - protein_coding ENS0001428 C0858 ensembl_havana 18.0 ENS0001428 ENS0001428 C0858 +20 61953546 61953662 - miRNA ENS0000940 EC4B0 mirbase 1.0 ENS0000940 ENS0000940 EC4B0 +20 62037429 62037956 - processed_pseudogene ENS0000256 7B588 havana 1.0 ENS0000256 ENS0000256 7B588 +20 62064802 62064885 + miRNA ENS0001179 3ECBE mirbase 1.0 ENS0001179 ENS0001179 3ECBE +20 62066830 62068437 + lncRNA ENS0000376 C183E havana 1.0 ENS0000376 ENS0000376 C183E +20 62122461 62135374 + protein_coding ENS0001022 D422F ensembl_havana 20.0 ENS0001022 ENS0001022 D422F +20 62136733 62143440 - protein_coding ENS0000272 1A3F4 ensembl_havana 15.0 ENS0000272 ENS0000272 1A3F4 +20 62143769 62182514 + protein_coding ENS0001505 C6ECE ensembl_havana 15.0 ENS0001505 ENS0001505 C6ECE +20 62183029 62203568 + protein_coding ENS0000136 E1A37 ensembl_havana 17.0 ENS0000136 ENS0000136 E1A37 +20 62214960 62220278 - protein_coding ENS0000060 9DD5D ensembl_havana 16.0 ENS0000060 ENS0000060 9DD5D +20 62231922 62296213 + protein_coding ENS0000542 9351B ensembl_havana 17.0 ENS0000542 ENS0000542 9351B +20 62302093 62308862 + protein_coding ENS0000397 0B386 ensembl_havana 13.0 ENS0000397 ENS0000397 0B386 +20 62305432 62306325 - lncRNA ENS0000792 9A296 havana 2.0 ENS0000792 ENS0000792 9A296 +20 62307955 62367312 - protein_coding ENS0000858 E318B ensembl_havana 15.0 ENS0000858 ENS0000858 E318B +20 62332487 62332557 - miRNA ENS0000442 215A8 mirbase 1.0 ENS0000442 ENS0000442 215A8 +20 62352995 62356480 + lncRNA ENS0000066 2C85D havana 7.0 ENS0000066 ENS0000066 2C85D +20 62386303 62386970 - lncRNA ENS0000273 E77A8 havana 1.0 ENS0000273 ENS0000273 E77A8 +20 62387103 62388520 + protein_coding ENS0001128 7598B ensembl_havana 18.0 ENS0001128 ENS0001128 7598B +20 62388632 62407285 - protein_coding ENS0000618 AE93E ensembl_havana 11.0 ENS0000618 ENS0000618 AE93E +20 62402236 62405935 - lncRNA ENS0000958 974FB havana 1.0 ENS0000958 ENS0000958 974FB +20 62410237 62427539 - protein_coding ENS0001511 D039C ensembl_havana 4.0 ENS0001511 ENS0001511 D039C +20 62427827 62447677 + lncRNA ENS0000737 A801B havana 3.0 ENS0000737 ENS0000737 A801B +20 62463497 62475995 - protein_coding ENS0001455 02660 ensembl_havana 7.0 ENS0001455 ENS0001455 02660 +20 62477870 62478594 + lncRNA ENS0001027 5CA33 havana 1.0 ENS0001027 ENS0001027 5CA33 +20 62513909 62516096 - lncRNA ENS0000545 1A808 havana 1.0 ENS0000545 ENS0000545 1A808 +20 62544343 62551526 - lncRNA ENS0000652 7E22F ensembl_havana 16.0 ENS0000652 ENS0000652 7E22F +20 62550453 62570764 + lncRNA ENS0000981 43C54 ensembl_havana 13.0 ENS0000981 ENS0000981 43C54 +20 62554306 62554376 + miRNA ENS0001367 167E0 mirbase 2.0 ENS0001367 ENS0001367 167E0 +20 62564912 62565013 + miRNA ENS0000986 1ADD0 mirbase 1.0 ENS0000986 ENS0000986 1ADD0 +20 62572671 62573384 + processed_pseudogene ENS0001226 6A85E havana 1.0 ENS0001226 ENS0001226 6A85E +20 62575590 62577507 + lncRNA ENS0000800 CF1CC havana 3.0 ENS0000800 ENS0000800 CF1CC +20 62596732 62603355 - lncRNA ENS0001019 3E283 havana 3.0 ENS0001019 ENS0001019 3E283 +20 62633681 62635504 - lncRNA ENS0000346 5B4D4 havana 1.0 ENS0000346 ENS0000346 5B4D4 +20 62633772 62635862 + lncRNA ENS0000029 3EA48 havana 1.0 ENS0000029 ENS0000029 3EA48 +20 62640719 62643304 - lncRNA ENS0000149 C12E9 havana 4.0 ENS0000149 ENS0000149 C12E9 +20 62642503 62685785 + protein_coding ENS0001247 8E276 ensembl_havana 16.0 ENS0001247 ENS0001247 8E276 +20 62648961 62650767 - lncRNA ENS0000689 E7933 havana 1.0 ENS0000689 ENS0000689 E7933 +20 62651272 62652186 - lncRNA ENS0001167 24CC7 havana 1.0 ENS0001167 ENS0001167 24CC7 +20 62663019 62666724 - lncRNA ENS0001192 7F756 ensembl_havana 1.0 ENS0001192 ENS0001192 7F756 +20 62695024 62700480 - lncRNA ENS0000740 F1681 havana 2.0 ENS0000740 ENS0000740 F1681 +20 62708836 62762771 + protein_coding ENS0001526 34C18 ensembl_havana 5.0 ENS0001526 ENS0001526 34C18 +20 62732566 62735347 - lncRNA ENS0001498 84F90 havana 1.0 ENS0001498 ENS0001498 84F90 +20 62774121 62776996 - lncRNA ENS0000285 39FBF havana_tagene 2.0 ENS0000285 ENS0000285 39FBF +20 62796473 62801729 + protein_coding ENS0000074 43BBC ensembl_havana 7.0 ENS0000074 ENS0000074 43BBC +20 62800627 62805587 - lncRNA ENS0001476 60E89 havana 1.0 ENS0001476 ENS0001476 60E89 +20 62804835 62814000 + protein_coding ENS0001464 2E6D2 ensembl_havana 16.0 ENS0001464 ENS0001464 2E6D2 +20 62816244 62841159 + protein_coding ENS0000287 19300 ensembl_havana 18.0 ENS0000287 ENS0000287 19300 +20 62841005 62861822 - protein_coding ENS0001010 36861 ensembl_havana 13.0 ENS0001010 ENS0001010 36861 +20 62845664 62845912 + processed_pseudogene ENS0000896 4B84B havana 5.0 ENS0000896 ENS0000896 4B84B +20 62872250 62873076 - processed_pseudogene ENS0001359 9E5DB havana 1.0 ENS0001359 ENS0001359 9E5DB +20 62877738 62937952 - protein_coding ENS0001388 6ECD8 ensembl_havana 17.0 ENS0001388 ENS0001388 6ECD8 +20 62928621 62929297 - lncRNA ENS0000635 29D21 havana 1.0 ENS0000635 ENS0000635 29D21 +20 62938147 62948475 + protein_coding ENS0000023 AD44A ensembl_havana 8.0 ENS0000023 ENS0000023 AD44A +20 62952707 62969585 + protein_coding ENS0000309 1C6D2 ensembl_havana 18.0 ENS0000309 ENS0000309 1C6D2 +20 63005927 63007035 - protein_coding ENS0001420 26B57 ensembl_havana 6.0 ENS0001420 ENS0001420 26B57 +20 63009383 63085071 + lncRNA ENS0001165 68CB9 havana 5.0 ENS0001165 ENS0001165 68CB9 +20 63034217 63037028 - lncRNA ENS0000627 CB7AF havana 9.0 ENS0000627 ENS0000627 CB7AF +20 63038011 63053863 + lncRNA ENS0000155 8F883 havana 1.0 ENS0000155 ENS0000155 8F883 +20 63090806 63102631 - lncRNA ENS0000804 645F3 havana 8.0 ENS0000804 ENS0000804 645F3 +20 63102142 63102259 + misc_RNA ENS0001440 DF218 ensembl 1.0 ENS0001440 ENS0001440 DF218 +20 63102205 63104386 + lncRNA ENS0000989 BA0DE havana 3.0 ENS0000989 ENS0000989 BA0DE +20 63116218 63117205 + lncRNA ENS0001111 67ACD havana_tagene 1.0 ENS0001111 ENS0001111 67ACD +20 63127495 63129459 - lncRNA ENS0001423 38EAA havana 1.0 ENS0001423 ENS0001423 38EAA +20 63144311 63152087 - lncRNA ENS0000277 39EB6 havana_tagene 1.0 ENS0000277 ENS0000277 39EB6 +20 63166797 63180903 - lncRNA ENS0001502 ECD23 havana 1.0 ENS0001502 ENS0001502 ECD23 +20 63178500 63178586 + miRNA ENS0001364 D916D mirbase 1.0 ENS0001364 ENS0001364 D916D +20 63195429 63216139 - protein_coding ENS0000586 B1F33 ensembl_havana 18.0 ENS0000586 ENS0000586 B1F33 +20 63218041 63218502 + lncRNA ENS0000480 58514 havana 1.0 ENS0000480 ENS0000480 58514 +20 63235883 63240495 + protein_coding ENS0000025 0890B ensembl_havana 13.0 ENS0000025 ENS0000025 0890B +20 63238779 63238842 + miRNA ENS0001334 D8BE1 mirbase 1.0 ENS0001334 ENS0001334 D8BE1 +20 63240784 63272694 - protein_coding ENS0001149 0A087 ensembl_havana 15.0 ENS0001149 ENS0001149 0A087 +20 63253978 63261615 + lncRNA ENS0000474 B67B9 havana 1.0 ENS0000474 ENS0000474 B67B9 +20 63272785 63289790 + protein_coding ENS0000955 59376 ensembl_havana 13.0 ENS0000955 ENS0000955 59376 +20 63286808 63286866 + miRNA ENS0000742 3E6B1 mirbase 1.0 ENS0000742 ENS0000742 3E6B1 +20 63293186 63334851 + protein_coding ENS0001500 E9EF1 ensembl_havana 16.0 ENS0001500 ENS0001500 E9EF1 +20 63337339 63337449 + snRNA ENS0001419 E2D00 ensembl 1.0 ENS0001419 ENS0001419 E2D00 +20 63343223 63378401 - protein_coding ENS0001221 FB84B ensembl_havana 18.0 ENS0001221 ENS0001221 FB84B +20 63359988 63371177 + lncRNA ENS0001345 F313D havana 2.0 ENS0001345 ENS0001345 F313D +20 63400208 63472677 - protein_coding ENS0000924 31E8B ensembl_havana 19.0 ENS0000924 ENS0000924 31E8B +20 63422269 63424555 + lncRNA ENS0001181 8182C havana 1.0 ENS0001181 ENS0001181 8182C +20 63448051 63449329 + lncRNA ENS0001178 AF383 havana 1.0 ENS0001178 ENS0001178 AF383 +20 63488013 63499239 - protein_coding ENS0000969 16DE6 ensembl_havana 13.0 ENS0000969 ENS0000969 16DE6 +20 63502287 63505111 + lncRNA ENS0001095 027A6 havana 1.0 ENS0001095 ENS0001095 027A6 +20 63520765 63522206 + protein_coding ENS0001075 67A5D ensembl_havana 10.0 ENS0001075 ENS0001075 67A5D +20 63528001 63537376 - protein_coding ENS0001109 62229 ensembl_havana 7.0 ENS0001109 ENS0001109 62229 +20 63540810 63547504 - protein_coding ENS0000894 0AE3C ensembl_havana 3.0 ENS0000894 ENS0000894 0AE3C +20 63543411 63543738 + lncRNA ENS0000409 313AB havana 1.0 ENS0000409 ENS0000409 313AB +20 63547891 63556695 + protein_coding ENS0001000 CC0CE ensembl_havana 7.0 ENS0001000 ENS0001000 CC0CE +20 63558086 63574239 - protein_coding ENS0000520 9188C ensembl_havana 16.0 ENS0000520 ENS0000520 9188C +20 63587602 63627101 - protein_coding ENS0000371 079CE ensembl_havana 11.0 ENS0000371 ENS0000371 079CE +20 63627227 63628824 + lncRNA ENS0000971 12AA9 havana 1.0 ENS0000971 ENS0000971 12AA9 +20 63639705 63657682 - protein_coding ENS0001115 25268 ensembl_havana 10.0 ENS0001115 ENS0001115 25268 +20 63657810 63696253 + protein_coding ENS0001491 59569 ensembl_havana 9.0 ENS0001491 ENS0001491 59569 +20 63659300 63698684 + protein_coding ENS0000991 408E8 havana 22.0 ENS0000991 ENS0000991 408E8 +20 63696652 63698684 + protein_coding ENS0000257 933FD havana 6.0 ENS0000257 ENS0000257 933FD +20 63698642 63708025 - protein_coding ENS0000173 F0049 ensembl_havana 20.0 ENS0000173 ENS0000173 F0049 +20 63707465 63736142 + protein_coding ENS0000796 6A5EF ensembl_havana 12.0 ENS0000796 ENS0000796 6A5EF +20 63708864 63739103 + protein_coding ENS0000003 C33E6 havana 3.0 ENS0000003 ENS0000003 C33E6 +20 63730072 63730377 - lncRNA ENS0000192 A89D8 havana 1.0 ENS0000192 ENS0000192 A89D8 +20 63736283 63739103 + protein_coding ENS0001262 DC82E ensembl_havana 10.0 ENS0001262 ENS0001262 DC82E +20 63738270 63740398 + protein_coding ENS0001394 D68A0 havana 1.0 ENS0001394 ENS0001394 D68A0 +20 63739776 63744050 + protein_coding ENS0000977 DD5FE ensembl_havana 14.0 ENS0000977 ENS0000977 DD5FE +20 63743668 63832038 - protein_coding ENS0000727 4282C ensembl_havana 12.0 ENS0000727 ENS0000727 4282C +20 63744689 63745958 + lncRNA ENS0000197 4345C havana 2.0 ENS0000197 ENS0000197 4345C +20 63808076 63816521 + lncRNA ENS0000303 6199B havana 4.0 ENS0000303 ENS0000303 6199B +20 63843436 63843915 - TEC ENS0001083 C901C havana 1.0 ENS0001083 ENS0001083 C901C +20 63861212 63864293 - lncRNA ENS0000175 414C3 havana 2.0 ENS0000175 ENS0000175 414C3 +20 63861498 63862988 + protein_coding ENS0001282 B3CA1 ensembl_havana 7.0 ENS0001282 ENS0001282 B3CA1 +20 63865228 63891545 + protein_coding ENS0000421 76828 ensembl_havana 18.0 ENS0000421 ENS0000421 76828 +20 63895126 63936031 + protein_coding ENS0001551 7E57E ensembl_havana 11.0 ENS0001551 ENS0001551 7E57E +20 63908955 63909119 + snRNA ENS0000825 E2F76 ensembl 1.0 ENS0000825 ENS0000825 E2F76 +20 63919449 63919520 + miRNA ENS0000207 BC6EE mirbase 1.0 ENS0000207 ENS0000207 BC6EE +20 63919505 63919576 + miRNA ENS0001405 6683D mirbase 3.0 ENS0001405 ENS0001405 6683D +20 63919561 63919632 + miRNA ENS0000500 1194A mirbase 1.0 ENS0000500 ENS0000500 1194A +20 63919756 63919827 + miRNA ENS0001211 872ED mirbase 3.0 ENS0001211 ENS0001211 872ED +20 63919868 63919939 + miRNA ENS0000418 BB9E0 mirbase 1.0 ENS0000418 ENS0000418 BB9E0 +20 63939829 63956416 - protein_coding ENS0001301 76DEA ensembl_havana 16.0 ENS0001301 ENS0001301 76DEA +20 63941465 63941544 - miRNA ENS0000944 CED31 mirbase 1.0 ENS0000944 ENS0000944 CED31 +20 63942631 63942726 - miRNA ENS0000147 6AAE7 mirbase 1.0 ENS0000147 ENS0000147 6AAE7 +20 63953384 63956985 + lncRNA ENS0000414 05335 havana 1.0 ENS0000414 ENS0000414 05335 +20 63956704 63969930 - protein_coding ENS0000498 ED07A havana 9.0 ENS0000498 ENS0000498 ED07A +20 63974116 63980008 - protein_coding ENS0000906 C8B0A ensembl_havana 14.0 ENS0000906 ENS0000906 C8B0A +20 63981132 64033100 + protein_coding ENS0000714 02950 ensembl_havana 8.0 ENS0000714 ENS0000714 02950 +20 64034344 64039962 + protein_coding ENS0001326 73E80 havana 8.0 ENS0001326 ENS0001326 73E80 +20 64047582 64049639 - protein_coding ENS0000745 72969 ensembl_havana 7.0 ENS0000745 ENS0000745 72969 +20 64049836 64072347 + protein_coding ENS0000225 214F7 ensembl_havana 17.0 ENS0000225 ENS0000225 214F7 +20 64056803 64057084 + lncRNA ENS0000874 AFA21 havana 1.0 ENS0000874 ENS0000874 AFA21 +20 64073181 64079988 - protein_coding ENS0000778 C9495 ensembl_havana 14.0 ENS0000778 ENS0000778 C9495 +20 64076955 64077010 - miRNA ENS0001137 D6AC8 mirbase 1.0 ENS0001137 ENS0001137 D6AC8 +20 64080082 64100643 + protein_coding ENS0000404 2AE69 ensembl_havana 18.0 ENS0000404 ENS0000404 2AE69 +20 64083380 64084359 - protein_coding ENS0000611 F9EFD ensembl_havana 10.0 ENS0000611 ENS0000611 F9EFD +20 64097208 64101162 - lncRNA ENS0001447 7A0ED havana_tagene 1.0 ENS0001447 ENS0001447 7A0ED +20 64102394 64242253 + protein_coding ENS0000360 316ED ensembl_havana 14.0 ENS0000360 ENS0000360 316ED +20 64105820 64107171 - protein_coding ENS0000539 7A206 ensembl_havana 3.0 ENS0000539 ENS0000539 7A206 +20 64255695 64287821 + protein_coding ENS0000321 D1CA1 ensembl_havana 12.0 ENS0000321 ENS0000321 D1CA1 +20 64278306 64278561 + processed_pseudogene ENS0000381 F2279 havana 1.0 ENS0000381 ENS0000381 F2279 +20 64290187 64292998 - processed_pseudogene ENS0000746 0AB8D havana 1.0 ENS0000746 ENS0000746 0AB8D +20 64290385 64313132 + lncRNA ENS0000833 63F32 ensembl_havana 8.0 ENS0000833 ENS0000833 63F32 +20 64327418 64327972 - processed_pseudogene ENS0001096 92037 havana 1.0 ENS0001096 ENS0001096 92037 \ No newline at end of file diff --git a/src/eset/create_eset/test_data/mapping_dir/AACAAGGTAC/Solo.out/Gene/raw/barcodes.tsv b/src/eset/create_eset/test_data/mapping_dir/AACAAGGTAC/Solo.out/Gene/raw/barcodes.tsv new file mode 100644 index 00000000..cacd8f41 --- /dev/null +++ b/src/eset/create_eset/test_data/mapping_dir/AACAAGGTAC/Solo.out/Gene/raw/barcodes.tsv @@ -0,0 +1 @@ +AACAAGGTAC diff --git a/src/eset/create_eset/test_data/mapping_dir/AACAAGGTAC/Solo.out/Gene/raw/features.tsv b/src/eset/create_eset/test_data/mapping_dir/AACAAGGTAC/Solo.out/Gene/raw/features.tsv new file mode 100644 index 00000000..ca5527cf --- /dev/null +++ b/src/eset/create_eset/test_data/mapping_dir/AACAAGGTAC/Solo.out/Gene/raw/features.tsv @@ -0,0 +1,25 @@ +ENS0001140 209E3 Gene Expression +ENS0001058 A2B9A Gene Expression +ENS0000508 CF168 Gene Expression +ENS0001457 3BA5A Gene Expression +ENS0001431 1C968 Gene Expression +ENS0000821 E5192 Gene Expression +ENS0001040 1821B Gene Expression +ENS0000443 5AD11 Gene Expression +ENS0000441 3F0FF Gene Expression +ENS0001387 265F2 Gene Expression +ENS0001223 28A43 Gene Expression +ENS0001208 58E28 Gene Expression +ENS0001396 6E614 Gene Expression +ENS0001199 EA941 Gene Expression +ENS0001369 99DDC Gene Expression +ENS0000770 AFCC0 Gene Expression +ENS0000389 B58E5 Gene Expression +ENS0000071 7A6C3 Gene Expression +ENS0000114 65424 Gene Expression +ENS0000355 077A2 Gene Expression +ENS0001429 22A4F Gene Expression +ENS0000477 981E6 Gene Expression +ENS0000042 E2D99 Gene Expression +ENS0000122 D90E9 Gene Expression +ENS0000221 97B0F Gene Expression \ No newline at end of file diff --git a/src/eset/create_eset/test_data/mapping_dir/AACAAGGTAC/Solo.out/Gene/raw/matrix.mtx b/src/eset/create_eset/test_data/mapping_dir/AACAAGGTAC/Solo.out/Gene/raw/matrix.mtx new file mode 100644 index 00000000..9e621e30 --- /dev/null +++ b/src/eset/create_eset/test_data/mapping_dir/AACAAGGTAC/Solo.out/Gene/raw/matrix.mtx @@ -0,0 +1,13 @@ +%%MatrixMarket matrix coordinate integer general +% +25 1 10 +8 1 1 +9 1 2 +12 1 16 +13 1 8 +14 1 1 +15 1 5 +16 1 5 +18 1 12 +19 1 2 +24 1 1 \ No newline at end of file diff --git a/src/eset/create_eset/test_data/mapping_dir/ACGCCTTCGT/Solo.out/Gene/raw/barcodes.tsv b/src/eset/create_eset/test_data/mapping_dir/ACGCCTTCGT/Solo.out/Gene/raw/barcodes.tsv new file mode 100644 index 00000000..87f62bdc --- /dev/null +++ b/src/eset/create_eset/test_data/mapping_dir/ACGCCTTCGT/Solo.out/Gene/raw/barcodes.tsv @@ -0,0 +1 @@ +ACGCCTTCGT diff --git a/src/eset/create_eset/test_data/mapping_dir/ACGCCTTCGT/Solo.out/Gene/raw/features.tsv b/src/eset/create_eset/test_data/mapping_dir/ACGCCTTCGT/Solo.out/Gene/raw/features.tsv new file mode 100644 index 00000000..ca5527cf --- /dev/null +++ b/src/eset/create_eset/test_data/mapping_dir/ACGCCTTCGT/Solo.out/Gene/raw/features.tsv @@ -0,0 +1,25 @@ +ENS0001140 209E3 Gene Expression +ENS0001058 A2B9A Gene Expression +ENS0000508 CF168 Gene Expression +ENS0001457 3BA5A Gene Expression +ENS0001431 1C968 Gene Expression +ENS0000821 E5192 Gene Expression +ENS0001040 1821B Gene Expression +ENS0000443 5AD11 Gene Expression +ENS0000441 3F0FF Gene Expression +ENS0001387 265F2 Gene Expression +ENS0001223 28A43 Gene Expression +ENS0001208 58E28 Gene Expression +ENS0001396 6E614 Gene Expression +ENS0001199 EA941 Gene Expression +ENS0001369 99DDC Gene Expression +ENS0000770 AFCC0 Gene Expression +ENS0000389 B58E5 Gene Expression +ENS0000071 7A6C3 Gene Expression +ENS0000114 65424 Gene Expression +ENS0000355 077A2 Gene Expression +ENS0001429 22A4F Gene Expression +ENS0000477 981E6 Gene Expression +ENS0000042 E2D99 Gene Expression +ENS0000122 D90E9 Gene Expression +ENS0000221 97B0F Gene Expression \ No newline at end of file diff --git a/src/eset/create_eset/test_data/mapping_dir/ACGCCTTCGT/Solo.out/Gene/raw/matrix.mtx b/src/eset/create_eset/test_data/mapping_dir/ACGCCTTCGT/Solo.out/Gene/raw/matrix.mtx new file mode 100644 index 00000000..cd68663e --- /dev/null +++ b/src/eset/create_eset/test_data/mapping_dir/ACGCCTTCGT/Solo.out/Gene/raw/matrix.mtx @@ -0,0 +1,12 @@ +%%MatrixMarket matrix coordinate integer general +% +25 1 9 +9 1 3 +12 1 13 +13 1 2 +14 1 2 +15 1 2 +16 1 3 +18 1 13 +19 1 2 +25 1 40 \ No newline at end of file diff --git a/src/eset/create_eset/test_data/pData.tsv b/src/eset/create_eset/test_data/pData.tsv new file mode 100644 index 00000000..e7fe4de3 --- /dev/null +++ b/src/eset/create_eset/test_data/pData.tsv @@ -0,0 +1,3 @@ +WellBC NumberOfMTReads pctMT NumberOfERCCReads pctERCC NumberOfChromReads pctChrom NumberOfInputReads NumberOfMappedReads PctMappedReads NumberOfReadsMappedToMultipleLoci PectOfReadsMappedToMultipleLoci NumberOfReadsMappedToTooManyLoci PectOfReadsMappedToTooManyLoci NumberOfReadsUnmappedTooManyMismatches PectOfReadsUnmappedTooManyMismatches NumberOfReadsUnmappedTooShort PectOfReadsUnmappedTooShort NumberOfReadsUnmappedOther PectOfReadsUnmappedOther ReadsWithValidBarcodes SequencingSaturation Q30BasesInCB+UMI ReadsMappedToTranscriptome:Unique+MultipeGenes EstimatedNumberOfCells FractionOfReadsInCells MeanReadsPerCell NumberOfUMIs NumberOfGenes NumberOfCountedReads +AACAAGGTAC 0 0 0 0 8542 100 141303 23749 16.81 0 0 8458 5.99 0 0 109035 77.16 61 0.04 0.999816 0.0698056 0.979965 0.0618175 1 1 8538 7942 408 9535 +ACGCCTTCGT 0 0 0 0 5863 100 96430 16869 17.49 0 0 6124 6.35 0 0 73375 76.09 62 0.06 0.999782 0.0665302 0.980077 0.0620969 1 1 5862 5472 377 6463 diff --git a/src/eset/create_fdata/config.vsh.yaml b/src/eset/create_fdata/config.vsh.yaml new file mode 100644 index 00000000..f9cff04f --- /dev/null +++ b/src/eset/create_fdata/config.vsh.yaml @@ -0,0 +1,41 @@ +name: create_fdata +namespace: eset +description: | + Create a fdata file +arguments: +- name: "--gtf" + type: file + description: "Genome annotation file in GTF format." + required: true +- name: "--output" + description: | + Tab-delimited text file containing information about the 'gene' or 'transcript' + entries from the input GTF file. The 'transcript' entries are used in case the source + of the GTF was 'refGene' or 'ncbiRefSeq'. + type: file + direction: output + default: fData.$id.txt +resources: +- type: python_script + path: create_fdata.py +test_resources: +- type: python_script + path: test.py +- path: test_annotation.gtf +engines: + - type: docker + image: python:3.12-slim + setup: + - type: apt + packages: + - procps + - type: python + packages: + - pandas + test_setup: + - type: python + packages: + - viashpy +runners: + - type: executable + - type: nextflow \ No newline at end of file diff --git a/src/eset/create_fdata/create_fdata.py b/src/eset/create_fdata/create_fdata.py new file mode 100644 index 00000000..6b2a91b4 --- /dev/null +++ b/src/eset/create_fdata/create_fdata.py @@ -0,0 +1,130 @@ +import logging +import pandas as pd +import numpy as np +from textwrap import fill + + +### VIASH START +meta = { + "name": "create_fdata", +} + +par = { + "gtf": "src/eset/create_fdata/test_annotation.gtf", + "output": "fData.tsv" +} + +### VIASH END + +logger = logging.getLogger() +console_handler = logging.StreamHandler() +logger.addHandler(console_handler) +logger.setLevel(logging.DEBUG) + + +def read_gtf(gtf_path: str) -> pd.DataFrame: + logger.info("Reading %s", gtf_path) + result = pd.read_csv(gtf_path, sep="\t", + header=None, names=("seqname", "source", + "feature", "start", "end", + "score", "strand", "frame", + "attribute"), + dtype={ + "seqname": pd.StringDtype(), + "source": pd.StringDtype(), + "feature": pd.StringDtype(), + "start": pd.Int64Dtype(), + "end": pd.Int64Dtype(), + "score": pd.StringDtype(), + "strand": pd.CategoricalDtype(categories=["+", "-"], + ordered=False), + "frame": pd.StringDtype(), + "attribute": pd.StringDtype(), + }, + comment='#' + ) + logger.info("Done reading %s. Found %d GTF entries ", par["gtf"], result.shape[0]) + logger.info("GTF file is providing information for the following chromosomes: \n%s", + fill(", ".join(result['seqname'].unique()), width=100)) + logger.info("The following sources were specified in the GTF file:\n%s", + ", ".join(result["source"].unique())) + return result + + +def parse_attributes(attributes_series: pd.Series): + attribute_dict = dict() + attributes_list = [attr.strip().split(" ") + for attr in attributes_series["attribute"].strip(";").split(";")] + for (attr_name, attr_value) in attributes_list: + attribute_dict.setdefault(attr_name, []).append(attr_value.strip('"')) + attribute_dict = {attr_name: "|".join(attr_value) + for attr_name, attr_value in attribute_dict.items()} + return pd.Series(attribute_dict) + + +def main(par): + logger.info(f"{meta['name']} started.") + parameters_str = [f'\t{param}: {param_val}\n' for param, param_val in par.items()] + logger.info("Parameters:\n%s", "".join(parameters_str).rstrip()) + gtf_file = read_gtf(par["gtf"]) + sources = set(source for source in gtf_file["source"].unique() if source != "ERCC") + specific_gtf = False + feature = "gene" + if len(sources) == 1 and (source := sources[0]) \ + and (source == "refGene" or source == "ncbiRefSeq"): + feature = "transcript" + specific_gtf = True + logger.info("Found specific GTF from %s, forcing filtering on feature type %s", source, feature) + logger.info("Filtering GTF entries for feature type '%s'.", feature) + gtf_file = gtf_file[gtf_file["feature"] == feature] + logger.info("After filtering %d entries are left.", gtf_file.shape[0]) + logger.info("Parsing the GTF attributes") + annotation = gtf_file[["attribute"]].apply(parse_attributes, result_type="expand", axis=1) + logger.info("Found the following attributes in the GTF:\n%s", ", ".join(annotation.columns)) + annotation = pd.concat([gtf_file.drop(["attribute"], axis=1), annotation], axis=1) + if specific_gtf: + logger.info("Because the source of the GTF is either 'ncbiRefSeq' or 'refGene', which" + "caused forced filtering based on %s, the duplicate genes still need to be dropped.", + feature) + annotation = annotation.drop_duplicates(subset=("gene_id", "gene_name"), keep=False) + logger.info("After dropping duplicates, %d entries are left", annotation.shape[0]) + + # detect ensembl ids + # some GTF files contain version in ENSEMBL, e.g. ENS00000000046319.1 + # we remove the version, because the annotation packages don't contain the version + if "gene_id" in annotation.columns: + logger.info("'gene_id' column was detected in attributes. Performing extra parsing of ENSEMBL ids.") + annotation["ENSEMBL_with_version"] = annotation["gene_id"].where(annotation["gene_id"].str.startswith("ENS")) + annotation["ENSEMBL"] = annotation["ENSEMBL_with_version"].str.replace(r"\.\d+$", "", regex=True) + annotation["gene_id"] = annotation["gene_id"].str.replace(r"\.\d+$", "", regex=True) + + possible_name_columns = ("Name", "name", "gene_name") + found_columns = list(filter(lambda col_name: col_name in annotation, possible_name_columns)) + # The following code allows to select a value for the SYMBOL column based on the first non-na column + if found_columns: + logger.info("Found one the following columns: %s; which can be used to populate the SYMBOL column", + ", ".join(possible_name_columns)) + # For each row (gtf entry), get the name of the first column that actually holds a value. + column_to_get = annotation.loc[:,found_columns].apply(pd.Series.first_valid_index, axis=1) + counts_per_column = column_to_get.value_counts(dropna=False).to_dict() + counts_per_column_str = [f'\t{col}: {counts}\n' for col, counts in counts_per_column.items()] + logger.info("Frequencies of the origin for the entries in the SYMBOL column:\n%s", + "".join(counts_per_column_str).rstrip()) + # If all columns hold NA for a certain row, first_valid_index will return None. + # Just use the name of the first column. + column_to_get = column_to_get.fillna(found_columns[0]) + # We now have a list one column name per row, use it so select the values + # Loc cannot be used here because 1 value per row is required, + # and loc will select for each row all the columns in columns_to_get + idx, cols = pd.factorize(column_to_get) + symbol_values = annotation.reindex(cols, axis=1).to_numpy()[np.arange(len(annotation)), idx] + annotation["SYMBOL"] = symbol_values + + logger.info("Writing to %s", par["output"]) + annotation = annotation.drop(["score", "source", "frame", "feature"], axis=1) + annotation.to_csv(par["output"], sep="\t", header=True, index=False, na_rep="NA") + logger.info("%s finished", meta['name']) + + +if __name__ == "__main__": + main(par) diff --git a/src/eset/create_fdata/test.py b/src/eset/create_fdata/test.py new file mode 100644 index 00000000..312d1353 --- /dev/null +++ b/src/eset/create_fdata/test.py @@ -0,0 +1,61 @@ +import pytest +import sys +import pandas as pd +from pathlib import Path +from uuid import uuid4 + +### VIASH START +meta = { + "resources_dir": "./src/eset/create_fdata/", + "executable": "target/executable/eset/create_fdata/create_fdata", + "config": "src/eset/create_fdata/config.vsh.yaml" +} +### VIASH END + +@pytest.fixture +def test_annotation_path(): + return Path(meta["resources_dir"]) / "test_annotation.gtf" + + +@pytest.fixture +def random_path(tmp_path): + def wrapper(extension=None): + extension = "" if not extension else f".{extension}" + return tmp_path / f"{uuid4()}{extension}" + return wrapper + + +def test_create_fdata(run_component, test_annotation_path, random_path): + output_path = random_path("tsv") + run_component([ + "--gtf", test_annotation_path, + "--output", output_path + ]) + assert output_path.is_file() + result = pd.read_csv(output_path, sep="\t", dtype=pd.StringDtype()) + + expected_dict = { + "seqname": ["20", "20", "20", "21"], + "start": ["87250", "142590", "157454", "297570"], + "end": ["97094", "145751", "159163", "300321"], + "strand": ["+", "+", "+", "+"], + "gene_id": ["ENSG00000178591", "ENSG00000125788", + "ENSG00000088782", "ENSG00000247315"], + "gene_version": ["7", "6", "5", "4"], + "gene_name": ["DEFB125", "DEFB126", "DEFB127", pd.NA], + "gene_source": ["ensembl_havana", "ensembl_havana", + "ensembl_havana", "havana"], + "gene_biotype": ["protein_coding", "protein_coding", + "protein_coding", "protein_coding"], + "ENSEMBL_with_version": ["ENSG00000178591.7", "ENSG00000125788", + "ENSG00000088782", "ENSG00000247315"], + "ENSEMBL": ["ENSG00000178591", "ENSG00000125788", + "ENSG00000088782", "ENSG00000247315"], + "SYMBOL": ["DEFB125", "DEFB126", "DEFB127", pd.NA] + } + expected = pd.DataFrame.from_dict(expected_dict, dtype=pd.StringDtype()) + pd.testing.assert_frame_equal(expected, result, check_like=True) + + +if __name__ == '__main__': + sys.exit(pytest.main([__file__])) \ No newline at end of file diff --git a/src/eset/create_fdata/test_annotation.gtf b/src/eset/create_fdata/test_annotation.gtf new file mode 100644 index 00000000..b5417cea --- /dev/null +++ b/src/eset/create_fdata/test_annotation.gtf @@ -0,0 +1,45 @@ +20 ensembl_havana gene 87250 97094 . + . gene_id "ENSG00000178591.7"; gene_version "7"; gene_name "DEFB125"; gene_source "ensembl_havana"; gene_biotype "protein_coding"; +20 havana transcript 87250 97094 . + . gene_id "ENSG00000178591"; gene_version "7"; transcript_id "ENST00000608838"; transcript_version "1"; gene_name "DEFB125"; gene_source "ensembl_havana"; gene_biotype "protein_coding"; transcript_name "DEFB125-202"; transcript_source "havana"; transcript_biotype "processed_transcript"; transcript_support_level "2"; +20 havana exon 87250 87359 . + . gene_id "ENSG00000178591"; gene_version "7"; transcript_id "ENST00000608838"; transcript_version "1"; exon_number "1"; gene_name "DEFB125"; gene_source "ensembl_havana"; gene_biotype "protein_coding"; transcript_name "DEFB125-202"; transcript_source "havana"; transcript_biotype "processed_transcript"; exon_id "ENSE00003702629"; exon_version "1"; transcript_support_level "2"; +20 havana exon 96005 97094 . + . gene_id "ENSG00000178591"; gene_version "7"; transcript_id "ENST00000608838"; transcript_version "1"; exon_number "2"; gene_name "DEFB125"; gene_source "ensembl_havana"; gene_biotype "protein_coding"; transcript_name "DEFB125-202"; transcript_source "havana"; transcript_biotype "processed_transcript"; exon_id "ENSE00003705060"; exon_version "1"; transcript_support_level "2"; +20 ensembl_havana transcript 87672 97094 . + . gene_id "ENSG00000178591"; gene_version "7"; transcript_id "ENST00000382410"; transcript_version "3"; gene_name "DEFB125"; gene_source "ensembl_havana"; gene_biotype "protein_coding"; transcript_name "DEFB125-201"; transcript_source "ensembl_havana"; transcript_biotype "protein_coding"; tag "CCDS"; ccds_id "CCDS12989"; tag "basic"; transcript_support_level "1 (assigned to previous version 2)"; +20 ensembl_havana exon 87672 87767 . + . gene_id "ENSG00000178591"; gene_version "7"; transcript_id "ENST00000382410"; transcript_version "3"; exon_number "1"; gene_name "DEFB125"; gene_source "ensembl_havana"; gene_biotype "protein_coding"; transcript_name "DEFB125-201"; transcript_source "ensembl_havana"; transcript_biotype "protein_coding"; tag "CCDS"; ccds_id "CCDS12989"; exon_id "ENSE00001491993"; exon_version "2"; tag "basic"; transcript_support_level "1 (assigned to previous version 2)"; +20 ensembl_havana CDS 87710 87767 . + 0 gene_id "ENSG00000178591"; gene_version "7"; transcript_id "ENST00000382410"; transcript_version "3"; exon_number "1"; gene_name "DEFB125"; gene_source "ensembl_havana"; gene_biotype "protein_coding"; transcript_name "DEFB125-201"; transcript_source "ensembl_havana"; transcript_biotype "protein_coding"; tag "CCDS"; ccds_id "CCDS12989"; protein_id "ENSP00000371847"; protein_version "2"; tag "basic"; transcript_support_level "1 (assigned to previous version 2)"; +20 ensembl_havana start_codon 87710 87712 . + 0 gene_id "ENSG00000178591"; gene_version "7"; transcript_id "ENST00000382410"; transcript_version "3"; exon_number "1"; gene_name "DEFB125"; gene_source "ensembl_havana"; gene_biotype "protein_coding"; transcript_name "DEFB125-201"; transcript_source "ensembl_havana"; transcript_biotype "protein_coding"; tag "CCDS"; ccds_id "CCDS12989"; tag "basic"; transcript_support_level "1 (assigned to previous version 2)"; +20 ensembl_havana exon 96005 97094 . + . gene_id "ENSG00000178591"; gene_version "7"; transcript_id "ENST00000382410"; transcript_version "3"; exon_number "2"; gene_name "DEFB125"; gene_source "ensembl_havana"; gene_biotype "protein_coding"; transcript_name "DEFB125-201"; transcript_source "ensembl_havana"; transcript_biotype "protein_coding"; tag "CCDS"; ccds_id "CCDS12989"; exon_id "ENSE00001491984"; exon_version "3"; tag "basic"; transcript_support_level "1 (assigned to previous version 2)"; +20 ensembl_havana CDS 96005 96414 . + 2 gene_id "ENSG00000178591"; gene_version "7"; transcript_id "ENST00000382410"; transcript_version "3"; exon_number "2"; gene_name "DEFB125"; gene_source "ensembl_havana"; gene_biotype "protein_coding"; transcript_name "DEFB125-201"; transcript_source "ensembl_havana"; transcript_biotype "protein_coding"; tag "CCDS"; ccds_id "CCDS12989"; protein_id "ENSP00000371847"; protein_version "2"; tag "basic"; transcript_support_level "1 (assigned to previous version 2)"; +20 ensembl_havana stop_codon 96415 96417 . + 0 gene_id "ENSG00000178591"; gene_version "7"; transcript_id "ENST00000382410"; transcript_version "3"; exon_number "2"; gene_name "DEFB125"; gene_source "ensembl_havana"; gene_biotype "protein_coding"; transcript_name "DEFB125-201"; transcript_source "ensembl_havana"; transcript_biotype "protein_coding"; tag "CCDS"; ccds_id "CCDS12989"; tag "basic"; transcript_support_level "1 (assigned to previous version 2)"; +20 ensembl_havana five_prime_utr 87672 87709 . + . gene_id "ENSG00000178591"; gene_version "7"; transcript_id "ENST00000382410"; transcript_version "3"; gene_name "DEFB125"; gene_source "ensembl_havana"; gene_biotype "protein_coding"; transcript_name "DEFB125-201"; transcript_source "ensembl_havana"; transcript_biotype "protein_coding"; tag "CCDS"; ccds_id "CCDS12989"; tag "basic"; transcript_support_level "1 (assigned to previous version 2)"; +20 ensembl_havana three_prime_utr 96418 97094 . + . gene_id "ENSG00000178591"; gene_version "7"; transcript_id "ENST00000382410"; transcript_version "3"; gene_name "DEFB125"; gene_source "ensembl_havana"; gene_biotype "protein_coding"; transcript_name "DEFB125-201"; transcript_source "ensembl_havana"; transcript_biotype "protein_coding"; tag "CCDS"; ccds_id "CCDS12989"; tag "basic"; transcript_support_level "1 (assigned to previous version 2)"; +20 ensembl_havana gene 142590 145751 . + . gene_id "ENSG00000125788"; gene_version "6"; gene_name "DEFB126"; gene_source "ensembl_havana"; gene_biotype "protein_coding"; +20 ensembl_havana transcript 142590 145751 . + . gene_id "ENSG00000125788"; gene_version "6"; transcript_id "ENST00000382398"; transcript_version "4"; gene_name "DEFB126"; gene_source "ensembl_havana"; gene_biotype "protein_coding"; transcript_name "DEFB126-201"; transcript_source "ensembl_havana"; transcript_biotype "protein_coding"; tag "CCDS"; ccds_id "CCDS12990"; tag "basic"; transcript_support_level "1 (assigned to previous version 3)"; +20 ensembl_havana exon 142590 142686 . + . gene_id "ENSG00000125788"; gene_version "6"; transcript_id "ENST00000382398"; transcript_version "4"; exon_number "1"; gene_name "DEFB126"; gene_source "ensembl_havana"; gene_biotype "protein_coding"; transcript_name "DEFB126-201"; transcript_source "ensembl_havana"; transcript_biotype "protein_coding"; tag "CCDS"; ccds_id "CCDS12990"; exon_id "ENSE00001491976"; exon_version "4"; tag "basic"; transcript_support_level "1 (assigned to previous version 3)"; +20 ensembl_havana CDS 142629 142686 . + 0 gene_id "ENSG00000125788"; gene_version "6"; transcript_id "ENST00000382398"; transcript_version "4"; exon_number "1"; gene_name "DEFB126"; gene_source "ensembl_havana"; gene_biotype "protein_coding"; transcript_name "DEFB126-201"; transcript_source "ensembl_havana"; transcript_biotype "protein_coding"; tag "CCDS"; ccds_id "CCDS12990"; protein_id "ENSP00000371835"; protein_version "3"; tag "basic"; transcript_support_level "1 (assigned to previous version 3)"; +20 ensembl_havana start_codon 142629 142631 . + 0 gene_id "ENSG00000125788"; gene_version "6"; transcript_id "ENST00000382398"; transcript_version "4"; exon_number "1"; gene_name "DEFB126"; gene_source "ensembl_havana"; gene_biotype "protein_coding"; transcript_name "DEFB126-201"; transcript_source "ensembl_havana"; transcript_biotype "protein_coding"; tag "CCDS"; ccds_id "CCDS12990"; tag "basic"; transcript_support_level "1 (assigned to previous version 3)"; +20 ensembl_havana exon 145415 145751 . + . gene_id "ENSG00000125788"; gene_version "6"; transcript_id "ENST00000382398"; transcript_version "4"; exon_number "2"; gene_name "DEFB126"; gene_source "ensembl_havana"; gene_biotype "protein_coding"; transcript_name "DEFB126-201"; transcript_source "ensembl_havana"; transcript_biotype "protein_coding"; tag "CCDS"; ccds_id "CCDS12990"; exon_id "ENSE00000858522"; exon_version "4"; tag "basic"; transcript_support_level "1 (assigned to previous version 3)"; +20 ensembl_havana CDS 145415 145689 . + 2 gene_id "ENSG00000125788"; gene_version "6"; transcript_id "ENST00000382398"; transcript_version "4"; exon_number "2"; gene_name "DEFB126"; gene_source "ensembl_havana"; gene_biotype "protein_coding"; transcript_name "DEFB126-201"; transcript_source "ensembl_havana"; transcript_biotype "protein_coding"; tag "CCDS"; ccds_id "CCDS12990"; protein_id "ENSP00000371835"; protein_version "3"; tag "basic"; transcript_support_level "1 (assigned to previous version 3)"; +20 ensembl_havana stop_codon 145690 145692 . + 0 gene_id "ENSG00000125788"; gene_version "6"; transcript_id "ENST00000382398"; transcript_version "4"; exon_number "2"; gene_name "DEFB126"; gene_source "ensembl_havana"; gene_biotype "protein_coding"; transcript_name "DEFB126-201"; transcript_source "ensembl_havana"; transcript_biotype "protein_coding"; tag "CCDS"; ccds_id "CCDS12990"; tag "basic"; transcript_support_level "1 (assigned to previous version 3)"; +20 ensembl_havana five_prime_utr 142590 142628 . + . gene_id "ENSG00000125788"; gene_version "6"; transcript_id "ENST00000382398"; transcript_version "4"; gene_name "DEFB126"; gene_source "ensembl_havana"; gene_biotype "protein_coding"; transcript_name "DEFB126-201"; transcript_source "ensembl_havana"; transcript_biotype "protein_coding"; tag "CCDS"; ccds_id "CCDS12990"; tag "basic"; transcript_support_level "1 (assigned to previous version 3)"; +20 ensembl_havana three_prime_utr 145693 145751 . + . gene_id "ENSG00000125788"; gene_version "6"; transcript_id "ENST00000382398"; transcript_version "4"; gene_name "DEFB126"; gene_source "ensembl_havana"; gene_biotype "protein_coding"; transcript_name "DEFB126-201"; transcript_source "ensembl_havana"; transcript_biotype "protein_coding"; tag "CCDS"; ccds_id "CCDS12990"; tag "basic"; transcript_support_level "1 (assigned to previous version 3)"; +20 havana transcript 142634 145749 . + . gene_id "ENSG00000125788"; gene_version "6"; transcript_id "ENST00000542572"; transcript_version "1"; gene_name "DEFB126"; gene_source "ensembl_havana"; gene_biotype "protein_coding"; transcript_name "DEFB126-202"; transcript_source "havana"; transcript_biotype "processed_transcript"; tag "mRNA_start_NF"; transcript_support_level "3"; +20 havana exon 142634 142686 . + . gene_id "ENSG00000125788"; gene_version "6"; transcript_id "ENST00000542572"; transcript_version "1"; exon_number "1"; gene_name "DEFB126"; gene_source "ensembl_havana"; gene_biotype "protein_coding"; transcript_name "DEFB126-202"; transcript_source "havana"; transcript_biotype "processed_transcript"; exon_id "ENSE00002285856"; exon_version "1"; tag "mRNA_start_NF"; transcript_support_level "3"; +20 havana exon 145415 145488 . + . gene_id "ENSG00000125788"; gene_version "6"; transcript_id "ENST00000542572"; transcript_version "1"; exon_number "2"; gene_name "DEFB126"; gene_source "ensembl_havana"; gene_biotype "protein_coding"; transcript_name "DEFB126-202"; transcript_source "havana"; transcript_biotype "processed_transcript"; exon_id "ENSE00002303512"; exon_version "1"; tag "mRNA_start_NF"; transcript_support_level "3"; +20 havana exon 145579 145749 . + . gene_id "ENSG00000125788"; gene_version "6"; transcript_id "ENST00000542572"; transcript_version "1"; exon_number "3"; gene_name "DEFB126"; gene_source "ensembl_havana"; gene_biotype "protein_coding"; transcript_name "DEFB126-202"; transcript_source "havana"; transcript_biotype "processed_transcript"; exon_id "ENSE00002217818"; exon_version "1"; tag "mRNA_start_NF"; transcript_support_level "3"; +20 ensembl_havana gene 157454 159163 . + . gene_id "ENSG00000088782"; gene_version "5"; gene_name "DEFB127"; gene_source "ensembl_havana"; gene_biotype "protein_coding"; +20 ensembl_havana transcript 157454 159163 . + . gene_id "ENSG00000088782"; gene_version "5"; transcript_id "ENST00000382388"; transcript_version "4"; gene_name "DEFB127"; gene_source "ensembl_havana"; gene_biotype "protein_coding"; transcript_name "DEFB127-201"; transcript_source "ensembl_havana"; transcript_biotype "protein_coding"; tag "CCDS"; ccds_id "CCDS12991"; tag "basic"; transcript_support_level "1 (assigned to previous version 3)"; +20 ensembl_havana exon 157454 157593 . + . gene_id "ENSG00000088782"; gene_version "5"; transcript_id "ENST00000382388"; transcript_version "4"; exon_number "1"; gene_name "DEFB127"; gene_source "ensembl_havana"; gene_biotype "protein_coding"; transcript_name "DEFB127-201"; transcript_source "ensembl_havana"; transcript_biotype "protein_coding"; tag "CCDS"; ccds_id "CCDS12991"; exon_id "ENSE00001491947"; exon_version "4"; tag "basic"; transcript_support_level "1 (assigned to previous version 3)"; +20 ensembl_havana CDS 157545 157593 . + 0 gene_id "ENSG00000088782"; gene_version "5"; transcript_id "ENST00000382388"; transcript_version "4"; exon_number "1"; gene_name "DEFB127"; gene_source "ensembl_havana"; gene_biotype "protein_coding"; transcript_name "DEFB127-201"; transcript_source "ensembl_havana"; transcript_biotype "protein_coding"; tag "CCDS"; ccds_id "CCDS12991"; protein_id "ENSP00000371825"; protein_version "3"; tag "basic"; transcript_support_level "1 (assigned to previous version 3)"; +20 ensembl_havana start_codon 157545 157547 . + 0 gene_id "ENSG00000088782"; gene_version "5"; transcript_id "ENST00000382388"; transcript_version "4"; exon_number "1"; gene_name "DEFB127"; gene_source "ensembl_havana"; gene_biotype "protein_coding"; transcript_name "DEFB127-201"; transcript_source "ensembl_havana"; transcript_biotype "protein_coding"; tag "CCDS"; ccds_id "CCDS12991"; tag "basic"; transcript_support_level "1 (assigned to previous version 3)"; +20 ensembl_havana exon 158774 159163 . + . gene_id "ENSG00000088782"; gene_version "5"; transcript_id "ENST00000382388"; transcript_version "4"; exon_number "2"; gene_name "DEFB127"; gene_source "ensembl_havana"; gene_biotype "protein_coding"; transcript_name "DEFB127-201"; transcript_source "ensembl_havana"; transcript_biotype "protein_coding"; tag "CCDS"; ccds_id "CCDS12991"; exon_id "ENSE00001166560"; exon_version "3"; tag "basic"; transcript_support_level "1 (assigned to previous version 3)"; +20 ensembl_havana CDS 158774 159021 . + 2 gene_id "ENSG00000088782"; gene_version "5"; transcript_id "ENST00000382388"; transcript_version "4"; exon_number "2"; gene_name "DEFB127"; gene_source "ensembl_havana"; gene_biotype "protein_coding"; transcript_name "DEFB127-201"; transcript_source "ensembl_havana"; transcript_biotype "protein_coding"; tag "CCDS"; ccds_id "CCDS12991"; protein_id "ENSP00000371825"; protein_version "3"; tag "basic"; transcript_support_level "1 (assigned to previous version 3)"; +20 ensembl_havana stop_codon 159022 159024 . + 0 gene_id "ENSG00000088782"; gene_version "5"; transcript_id "ENST00000382388"; transcript_version "4"; exon_number "2"; gene_name "DEFB127"; gene_source "ensembl_havana"; gene_biotype "protein_coding"; transcript_name "DEFB127-201"; transcript_source "ensembl_havana"; transcript_biotype "protein_coding"; tag "CCDS"; ccds_id "CCDS12991"; tag "basic"; transcript_support_level "1 (assigned to previous version 3)"; +20 ensembl_havana five_prime_utr 157454 157544 . + . gene_id "ENSG00000088782"; gene_version "5"; transcript_id "ENST00000382388"; transcript_version "4"; gene_name "DEFB127"; gene_source "ensembl_havana"; gene_biotype "protein_coding"; transcript_name "DEFB127-201"; transcript_source "ensembl_havana"; transcript_biotype "protein_coding"; tag "CCDS"; ccds_id "CCDS12991"; tag "basic"; transcript_support_level "1 (assigned to previous version 3)"; +20 ensembl_havana three_prime_utr 159025 159163 . + . gene_id "ENSG00000088782"; gene_version "5"; transcript_id "ENST00000382388"; transcript_version "4"; gene_name "DEFB127"; gene_source "ensembl_havana"; gene_biotype "protein_coding"; transcript_name "DEFB127-201"; transcript_source "ensembl_havana"; transcript_biotype "protein_coding"; tag "CCDS"; ccds_id "CCDS12991"; tag "basic"; transcript_support_level "1 (assigned to previous version 3)"; +21 havana gene 297570 300321 . + . gene_id "ENSG00000247315"; gene_version "4"; gene_source "havana"; gene_biotype "protein_coding"; +21 havana transcript 297570 300321 . + . gene_id "ENSG00000247315"; gene_version "4"; transcript_id "ENST00000500893"; transcript_version "4"; gene_source "havana"; gene_biotype "protein_coding"; transcript_name "ZCCHC3-201"; transcript_source "havana"; transcript_biotype "protein_coding"; tag "CCDS"; ccds_id "CCDS42844"; tag "basic"; transcript_support_level "NA (assigned to previous version 3)"; +21 havana exon 297570 300321 . + . gene_id "ENSG00000247315"; gene_version "4"; transcript_id "ENST00000500893"; transcript_version "4"; exon_number "1"; gene_source "havana"; gene_biotype "protein_coding"; transcript_name "ZCCHC3-201"; transcript_source "havana"; transcript_biotype "protein_coding"; tag "CCDS"; ccds_id "CCDS42844"; exon_id "ENSE00001977652"; exon_version "4"; tag "basic"; transcript_support_level "NA (assigned to previous version 3)"; +21 havana CDS 297587 298795 . + 0 gene_id "ENSG00000247315"; gene_version "4"; transcript_id "ENST00000500893"; transcript_version "4"; exon_number "1"; gene_source "havana"; gene_biotype "protein_coding"; transcript_name "ZCCHC3-201"; transcript_source "havana"; transcript_biotype "protein_coding"; tag "CCDS"; ccds_id "CCDS42844"; protein_id "ENSP00000484056"; protein_version "1"; tag "basic"; transcript_support_level "NA (assigned to previous version 3)"; +21 havana start_codon 297587 297589 . + 0 gene_id "ENSG00000247315"; gene_version "4"; transcript_id "ENST00000500893"; transcript_version "4"; exon_number "1"; gene_source "havana"; gene_biotype "protein_coding"; transcript_name "ZCCHC3-201"; transcript_source "havana"; transcript_biotype "protein_coding"; tag "CCDS"; ccds_id "CCDS42844"; tag "basic"; transcript_support_level "NA (assigned to previous version 3)"; +21 havana stop_codon 298796 298798 . + 0 gene_id "ENSG00000247315"; gene_version "4"; transcript_id "ENST00000500893"; transcript_version "4"; exon_number "1"; gene_source "havana"; gene_biotype "protein_coding"; transcript_name "ZCCHC3-201"; transcript_source "havana"; transcript_biotype "protein_coding"; tag "CCDS"; ccds_id "CCDS42844"; tag "basic"; transcript_support_level "NA (assigned to previous version 3)"; +21 havana five_prime_utr 297570 297586 . + . gene_id "ENSG00000247315"; gene_version "4"; transcript_id "ENST00000500893"; transcript_version "4"; gene_source "havana"; gene_biotype "protein_coding"; transcript_name "ZCCHC3-201"; transcript_source "havana"; transcript_biotype "protein_coding"; tag "CCDS"; ccds_id "CCDS42844"; tag "basic"; transcript_support_level "NA (assigned to previous version 3)"; +21 havana three_prime_utr 298799 300321 . + . gene_id "ENSG00000247315"; gene_version "4"; transcript_id "ENST00000500893"; transcript_version "4"; gene_source "havana"; gene_biotype "protein_coding"; transcript_name "ZCCHC3-201"; transcript_source "havana"; transcript_biotype "protein_coding"; tag "CCDS"; ccds_id "CCDS42844"; tag "basic"; transcript_support_level "NA (assigned to previous version 3)"; \ No newline at end of file diff --git a/src/eset/create_pdata/config.vsh.yaml b/src/eset/create_pdata/config.vsh.yaml new file mode 100644 index 00000000..1dd868b6 --- /dev/null +++ b/src/eset/create_pdata/config.vsh.yaml @@ -0,0 +1,50 @@ +name: create_pdata +namespace: eset +description: | + Create a pdata file by combining the mapping statistics +arguments: +- name: "--star_stats_file" + type: file + description: | + Tab-delimited text file containing statistics (per column) that were generated + from the STAR log files (Log.final.out, Summary.csv, ReadsPerGene.out.tab). + Each entry (row) in the file describes the values for one well (barcode). + required: true +- name: "--nrReadsNrGenesPerChromPool" + type: file + description: | + Pivot table in tsv format of the combined nrReadsNrGenesPerChrom files from STAR. + Describes per chromosome (as columns) the number of reads, as well as the total number + of reads per cell barcode and the percentage of nuclear, ERCC and mitochondrial + reads. + required: true +- name: "--output" + type: file + direction: output + default: pData.$id.txt +resources: +- type: python_script + path: create_pdata.py +test_resources: +- type: python_script + path: test.py +- path: nrReadsNrGenesPerChromPool.txt +- path: starLogs.txt + +engines: + - type: docker + image: python:3.12-slim + setup: + - type: apt + packages: + - procps + - type: python + packages: + - pandas + test_setup: + - type: python + packages: + - viashpy +runners: + - type: executable + - type: nextflow \ No newline at end of file diff --git a/src/eset/create_pdata/create_pdata.py b/src/eset/create_pdata/create_pdata.py new file mode 100644 index 00000000..34d3cdd3 --- /dev/null +++ b/src/eset/create_pdata/create_pdata.py @@ -0,0 +1,60 @@ +from itertools import batched +import pandas as pd +import logging + +### VIASH START +meta = { + "name": "create_pdata", +} + +par = { + "star_stats_file": "src/eset/create_pdata/starLogs.txt", + "nrReadsNrGenesPerChromPool": "src/eset/create_pdata/nrReadsNrGenesPerChromPool.txt", + "output": "pData.tsv" +} + +### VIASH END + +logger = logging.getLogger() +console_handler = logging.StreamHandler() +logger.addHandler(console_handler) +logger.setLevel(logging.DEBUG) + +def main(par): + logger.info(f"{meta['name']} started.") + parameters_str = [f'\t{param}: {param_val}\n' for param, param_val in par.items()] + logger.info("Parameters:\n%s", "".join(parameters_str).rstrip()) + logger.info("Reading %s", par["star_stats_file"]) + star_log_stats = pd.read_csv(par["star_stats_file"], sep="\t", index_col=0) + logger.info("STAR log statics file contains information for the following barcodes: %s", + ", ".join(star_log_stats.index)) + logger.info("Reading %s", par["nrReadsNrGenesPerChromPool"]) + reads_and_genes_per_chr_stats = pd.read_csv(par["nrReadsNrGenesPerChromPool"], sep="\t", index_col=0) + logger.info("Reads per gene and chromosome table contains information for the following barcodes: %s", + ", ".join(reads_and_genes_per_chr_stats.index)) + logger.info("Filtering mapping statistics file columns.") + cols_to_keep = ("NumberOfMTReads", "pctMT", "NumberOfERCCReads", + "pctERCC", "NumberOfChromReads", "pctChrom") + try: + reads_and_genes_per_chr_stats = reads_and_genes_per_chr_stats.loc[:,cols_to_keep] + except KeyError as e: + raise KeyError("When trying to subset the reads per genes and chromosomes file, " + "a column was missing. Available columns in the file: " + f"{', '.join(reads_and_genes_per_chr_stats.columns)}.") from e + combined_stats = pd.concat([reads_and_genes_per_chr_stats, star_log_stats], axis=1) + if combined_stats.isna().any(axis=None): # For non-overlapping indices, the values get filled with NA + raise ValueError("Error while combining two log files. It seems that the entries (barcodes) " + f"do not fully overlap. Barcodes in '{par['star_stats_file']}: " + f"{', '.join(reads_and_genes_per_chr_stats.index)}. Barcodes in " + f"'{par['nrReadsNrGenesPerChromPool']}': " + f"{', '.join(star_log_stats.index)}") + logger.info("Summary of final output:\n%s\n", + "\n".join(repr(combined_stats.loc[:,columns].describe()) + for columns in batched(combined_stats.columns, 3))) + logger.info("Writing to %s", par["output"]) + combined_stats.reset_index("WellBC").to_csv(par["output"], sep="\t", header=True, index=False) + logger.info("Finished %s.", meta["name"]) + + +if __name__ == "__main__": + main(par) \ No newline at end of file diff --git a/src/eset/create_pdata/nrReadsNrGenesPerChromPool.txt b/src/eset/create_pdata/nrReadsNrGenesPerChromPool.txt new file mode 100644 index 00000000..ee68ce33 --- /dev/null +++ b/src/eset/create_pdata/nrReadsNrGenesPerChromPool.txt @@ -0,0 +1,8 @@ +WellBC 20 pctChrom pctMT pctERCC SumReads NumberOfGenes NumberOfERCCReads NumberOfChromReads NumberOfMTReads +AACAAGGTAC 8542 100 0 0 8542 408 0 8542 0 +ACGCCTTCGT 5863 100 0 0 5863 377 0 5863 0 +CCATACTGAC 7396 100 0 0 7396 391 0 7396 0 +GCAAGCGAAT 10092 100 0 0 10092 420 0 10092 0 +GTCTCGAGTG 470 100 0 0 470 150 0 470 0 +TGCGCTCATT 7650 100 0 0 7650 407 0 7650 0 +TTGTGTTCGA 9422 100 0 0 9422 420 0 9422 0 diff --git a/src/eset/create_pdata/starLogs.txt b/src/eset/create_pdata/starLogs.txt new file mode 100644 index 00000000..665f2adf --- /dev/null +++ b/src/eset/create_pdata/starLogs.txt @@ -0,0 +1,8 @@ +WellBC NumberOfInputReads NumberOfMappedReads PctMappedReads NumberOfReadsMappedToMultipleLoci PectOfReadsMappedToMultipleLoci NumberOfReadsMappedToTooManyLoci PectOfReadsMappedToTooManyLoci NumberOfReadsUnmappedTooManyMismatches PectOfReadsUnmappedTooManyMismatches NumberOfReadsUnmappedTooShort PectOfReadsUnmappedTooShort NumberOfReadsUnmappedOther PectOfReadsUnmappedOther ReadsWithValidBarcodes SequencingSaturation Q30BasesInCB+UMI ReadsMappedToTranscriptome:Unique+MultipeGenes EstimatedNumberOfCells FractionOfReadsInCells MeanReadsPerCell NumberOfUMIs NumberOfGenes NumberOfCountedReads +ACGCCTTCGT 96430 16869 17.49 0 0 6124 6.35 0 0 73375 76.09 62 0.06 0.999782 0.0665302 0.980077 0.0620969 1 1 5862 5472 377 6463 +GTCTCGAGTG 10158 1902 18.72 0 0 967 9.52 0 0 7280 71.67 9 0.09 0.999803 0.0553191 0.984451 0.0476472 1 1 470 444 150 533 +GCAAGCGAAT 156134 24005 15.37 0 0 7961 5.1 0 0 124096 79.48 72 0.05 0.999744 0.0680872 0.982779 0.0658665 1 1 10090 9403 420 11273 +CCATACTGAC 113577 17319 15.25 0 0 5905 5.2 0 0 90292 79.5 61 0.05 0.999859 0.0717282 0.982313 0.066554 1 1 7389 6859 391 8299 +TGCGCTCATT 126989 19272 15.18 0 0 7141 5.62 0 0 100515 79.15 61 0.05 0.999843 0.0667974 0.986581 0.0616668 1 1 7650 7139 407 8444 +TTGTGTTCGA 142560 22129 15.52 0 0 7045 4.94 0 0 113324 79.49 62 0.04 0.999783 0.060828 0.986622 0.0676838 1 1 9420 8847 420 10383 +AACAAGGTAC 141303 23749 16.81 0 0 8458 5.99 0 0 109035 77.16 61 0.04 0.999816 0.0698056 0.979965 0.0618175 1 1 8538 7942 408 9535 diff --git a/src/eset/create_pdata/test.py b/src/eset/create_pdata/test.py new file mode 100644 index 00000000..7385df8f --- /dev/null +++ b/src/eset/create_pdata/test.py @@ -0,0 +1,98 @@ +import pytest +import sys +import pandas as pd +from pathlib import Path +from uuid import uuid4 + +### VIASH START +meta = { + "resources_dir": "./src/eset/create_pdata/", + "executable": "target/executable/eset/create_pdata/create_pdata", + "config": "src/eset/create_pdata/config.vsh.yaml" +} +### VIASH END + +@pytest.fixture +def test_reads_and_genes_per_chr_path(): + return Path(meta["resources_dir"]) / "nrReadsNrGenesPerChromPool.txt" + + +@pytest.fixture +def test_star_logs_summary_path(): + return Path(meta["resources_dir"]) / "starLogs.txt" + + +@pytest.fixture +def random_path(tmp_path): + def wrapper(extension=None): + extension = "" if not extension else f".{extension}" + return tmp_path / f"{uuid4()}{extension}" + return wrapper + + +def test_create_fdata(run_component, test_reads_and_genes_per_chr_path, + test_star_logs_summary_path, random_path): + output_path = random_path("tsv") + run_component([ + "--star_stats_file", test_star_logs_summary_path, + "--nrReadsNrGenesPerChromPool", test_reads_and_genes_per_chr_path, + "--output", output_path + ]) + assert output_path.is_file() + result = pd.read_csv(output_path, sep="\t", dtype=pd.StringDtype()) + expected_dict = { + 'WellBC': ['AACAAGGTAC', 'ACGCCTTCGT', 'CCATACTGAC', 'GCAAGCGAAT', + 'GTCTCGAGTG', 'TGCGCTCATT', 'TTGTGTTCGA'], + 'NumberOfMTReads': ['0', '0', '0', '0', '0', '0', '0'], + 'pctMT': ['0', '0', '0', '0', '0', '0', '0'], + 'NumberOfERCCReads': ['0', '0', '0', '0', '0', '0', '0'], + 'pctERCC': ['0', '0', '0', '0', '0', '0', '0'], + 'NumberOfChromReads': ['8542', '5863', '7396', '10092', '470', + '7650', '9422'], + 'pctChrom': ['100', '100', '100', '100', '100', '100', '100'], + 'NumberOfInputReads': ['141303', '96430', '113577', '156134', '10158', + '126989', '142560'], + 'NumberOfMappedReads': ['23749', '16869', '17319', '24005', '1902', + '19272', '22129'], + 'PctMappedReads': ['16.81', '17.49', '15.25', '15.37', '18.72', + '15.18', '15.52'], + 'NumberOfReadsMappedToMultipleLoci': ['0', '0', '0', '0', '0', '0', '0'], + 'PectOfReadsMappedToMultipleLoci': ['0', '0', '0', '0', '0', '0', '0'], + 'NumberOfReadsMappedToTooManyLoci': ['8458', '6124', '5905', '7961', '967', + '7141', '7045'], + 'PectOfReadsMappedToTooManyLoci': ['5.99', '6.35', '5.2', '5.1', '9.52', + '5.62', '4.94'], + 'NumberOfReadsUnmappedTooManyMismatches': ['0', '0', '0', '0', '0', '0', '0'], + 'PectOfReadsUnmappedTooManyMismatches': ['0', '0', '0', '0', '0', '0', '0'], + 'NumberOfReadsUnmappedTooShort': ['109035', '73375', '90292', '124096', + '7280', '100515', '113324'], + 'PectOfReadsUnmappedTooShort': ['77.16', '76.09', '79.5', '79.48', + '71.67', '79.15', '79.49'], + 'NumberOfReadsUnmappedOther': ['61', '62', '61', '72', '9', '61', '62'], + 'PectOfReadsUnmappedOther': ['0.04', '0.06', '0.05', '0.05', + '0.09', '0.05', '0.04'], + 'ReadsWithValidBarcodes': ['0.999816', '0.999782', '0.999859', '0.999744', + '0.999803', '0.999843', '0.999783'], + 'SequencingSaturation': ['0.0698056', '0.0665302', '0.0717282', '0.0680872', + '0.0553191', '0.0667974', '0.060828'], + 'Q30BasesInCB+UMI': ['0.979965', '0.980077', '0.982313', '0.982779', + '0.984451', '0.986581', '0.986622'], + 'ReadsMappedToTranscriptome:Unique+MultipeGenes': ['0.0618175', '0.0620969', + '0.066554', '0.0658665', + '0.0476472', '0.0616668', + '0.0676838'], + 'EstimatedNumberOfCells': ['1', '1', '1', '1', '1', '1', '1'], + 'FractionOfReadsInCells': ['1', '1', '1', '1', '1', '1', '1'], + 'MeanReadsPerCell': ['8538', '5862', '7389', + '10090', '470', '7650', '9420'], + 'NumberOfUMIs': ['7942', '5472', '6859', '9403', + '444', '7139', '8847'], + 'NumberOfGenes': ['408', '377', '391', '420', '150', '407', '420'], + 'NumberOfCountedReads': ['9535', '6463', '8299', '11273', + '533', '8444', '10383'] + } + expected = pd.DataFrame.from_dict(expected_dict, dtype=pd.StringDtype()) + pd.testing.assert_frame_equal(result, expected, check_like=True) + +if __name__ == '__main__': + sys.exit(pytest.main([__file__])) \ No newline at end of file diff --git a/src/integration_test_components/htrnaseq/check_eset/config.vsh.yaml b/src/integration_test_components/htrnaseq/check_eset/config.vsh.yaml new file mode 100644 index 00000000..1b470ad4 --- /dev/null +++ b/src/integration_test_components/htrnaseq/check_eset/config.vsh.yaml @@ -0,0 +1,31 @@ +name: "check_eset" +namespace: "integration_test_components/htrnaseq" +description: "This component test the ExpressionSet object as output by the main pipeline." +argument_groups: + - name: Inputs + arguments: + - name: "--eset" + type: file + required: true + description: Path to an ExpressionSet object. + example: eset.rds + - name: "--star_output" + type: file + required: true + multiple: true +resources: + - type: r_script + path: script.R +engines: + - type: docker + image: bioconductor/bioconductor_docker:3.19 + setup: + - type: r + cran: + - bit64 + bioc: + - Biobase + +runners: + - type: executable + - type: nextflow \ No newline at end of file diff --git a/src/integration_test_components/htrnaseq/check_eset/script.R b/src/integration_test_components/htrnaseq/check_eset/script.R new file mode 100644 index 00000000..179195bf --- /dev/null +++ b/src/integration_test_components/htrnaseq/check_eset/script.R @@ -0,0 +1,197 @@ +library(Biobase) +library(testthat) +library(Matrix) + +sample_1_result <- readRDS(par$eset) +expected_sample_names <- c( + "sample_one_AACAAGGTAC", "sample_one_AACAATCAGG", "sample_one_AACACCTAGT", + "sample_one_AACAGGCAAT", "sample_one_AACATGGAGA", "sample_one_AACATTACCG", + "sample_one_AACCAGCCAG", "sample_one_AACCAGTTGA", "sample_one_AACCGCGACT", + "sample_one_AACCGGAAGG", "sample_one_AACCGGCGTA", "sample_one_AACCTAGTCC", + "sample_one_AACCTCATAG", "sample_one_AACGTAAGCT", "sample_one_AACTCTACAC", + "sample_one_AACTGTGTCA", "sample_one_AAGACGGATT", "sample_one_AAGATCGGCG", + "sample_one_AAGATGTCCA", "sample_one_AAGCATATGG", "sample_one_AAGCGATGTT", + "sample_one_AAGCGTTCAG", "sample_one_AAGCTCACCT", "sample_one_AAGGCATGCG", + "sample_one_AAGGTCTGGA", "sample_one_AAGTTAGCGC", "sample_one_AAGTTCCTTG", + "sample_one_AATACCGGTA", "sample_one_AATAGCCACA", "sample_one_AATCACGCGA", + "sample_one_AATCCATCTG", "sample_one_AATCCGCTCC", "sample_one_AATCCTACCA", + "sample_one_AATCGTCCGC", "sample_one_AATGAACACG", "sample_one_AATGACCTTC", + "sample_one_AATGAGAGCA", "sample_one_AATGTCAGTG", "sample_one_AATTAGGCCG", + "sample_one_AATTGCGATG", "sample_one_ACAACAGTCG", "sample_one_ACAACCATAC", + "sample_one_ACAACGGAGC", "sample_one_ACAAGCGCGA", "sample_one_ACACAATCTC", + "sample_one_ACACAGTGAA", "sample_one_ACACCGAATT", "sample_one_ACACGCAGTA", + "sample_one_ACACGGTCCT", "sample_one_ACACTTGCTG", "sample_one_ACAGTGCCAA", + "sample_one_ACATGTGTGC", "sample_one_ACCAGGACCA", "sample_one_ACCATAACAC", + "sample_one_ACCGAACCGT", "sample_one_ACCGAGAGTC", "sample_one_ACCGGTACAG", + "sample_one_ACCGTACTTC", "sample_one_ACCTCCGACA", "sample_one_ACCTCTCTCC", + "sample_one_ACCTGTCCGA", "sample_one_ACCTTATGTG", "sample_one_ACGAATGACA", + "sample_one_ACGCCTCAAC", "sample_one_ACGCCTTCGT", "sample_one_ACGCTGGATA", + "sample_one_ACGGTCCGTT", "sample_one_ACGTAGGCAC", "sample_one_ACGTGCTGAT", + "sample_one_ACTCCAAGCC", "sample_one_ACTGGCGCAT", "sample_one_ACTGGCTTCC", + "sample_one_ACTTAACTGC", "sample_one_ACTTCATCAC", "sample_one_ACTTCGTTGA", + "sample_one_ACTTCTCCTG", "sample_one_ACTTGAGGAA", "sample_one_ACTTGTAAGG", + "sample_one_AGAACCACGG", "sample_one_AGAAGCAATC", "sample_one_AGACCGTTAT", + "sample_one_AGACTAGCAT", "sample_one_AGAGATGCAG", "sample_one_AGAGCTTACA", + "sample_one_AGAGTGTAAC", "sample_one_AGAGTTCTGC", "sample_one_AGATAGTGCT", + "sample_one_AGCAATGCGC", "sample_one_AGCATGTCAT", "sample_one_AGCCACTAGC", + "sample_one_AGCCAGAATA", "sample_one_AGCCAGCTCT", "sample_one_AGCGATAACG", + "sample_one_AGCGTACAAT", "sample_one_AGCTATTCCA", "sample_one_AGCTCCTCAG", + "sample_one_AGGAGGCATA", "sample_one_AGGCGTCTGT", "sample_one_AGTAACTCAC", + "sample_one_AGTAAGCGTT", "sample_one_AGTCTGTACG", "sample_one_AGTGCAATGT", + "sample_one_ATAAGGTGCA", "sample_one_ATACACGACA", "sample_one_ATAGGCCATT", + "sample_one_ATATCCGCAT", "sample_one_ATCAGCACTT", "sample_one_ATCAGCGAGG", + "sample_one_ATCCAATACG", "sample_one_ATCCGCTGTG", "sample_one_ATCCGTCCAT", + "sample_one_ATCGACGGCT", "sample_one_ATCGCGATTA", "sample_one_ATCGGTAGGC", + "sample_one_ATCTAAGGAG", "sample_one_ATGACGGTAA", "sample_one_ATGACTCAGT", + "sample_one_ATGCACCGGA", "sample_one_ATGCGGACTG", "sample_one_ATGCTTCCTA", + "sample_one_ATGGACCAAC", "sample_one_ATGGTCTTAG", "sample_one_ATGGTGAGCG", + "sample_one_ATGTGGAAGC", "sample_one_ATTATCGGAC", "sample_one_ATTCGGAACA", + "sample_one_CAACAATCCA", "sample_one_CAAGAAGCAT", "sample_one_CAAGATGAGG", + "sample_one_CAAGCCAACG", "sample_one_CAAGTGGATC", "sample_one_CACAGTTCAT", + "sample_one_CACGAGTCTG", "sample_one_CACGCTCCAA", "sample_one_CACTGAGCAC", + "sample_one_CAGATCAATG", "sample_one_CAGTGCTCTT", "sample_one_CAGTTAAGCA", + "sample_one_CATAGCTATC", "sample_one_CATCACCACC", "sample_one_CATGTACGCC", + "sample_one_CATTACACTG", "sample_one_CATTCGACGA", "sample_one_CCAACTATGG", + "sample_one_CCAAGGAGTT", "sample_one_CCAATTGTTC", "sample_one_CCACAAGTGC", + "sample_one_CCAGCTTAGT", "sample_one_CCATAACTTG", "sample_one_CCATACTGAC", + "sample_one_CCATAGATCA", "sample_one_CCATGTGCTT", "sample_one_CCATTCAGCG", + "sample_one_CCGAACAAGC", "sample_one_CCGAACCTAA", "sample_one_CCGAAGACCT", + "sample_one_CCGAATAGTG", "sample_one_CCGACTTCTC", "sample_one_CCGATCCACT", + "sample_one_CCGATGATAC", "sample_one_CCGCGTTATG", "sample_one_CCGCTAGCTT", + "sample_one_CCGGAGTATC", "sample_one_CCGGCCAATT", "sample_one_CCGGTCTCTA", + "sample_one_CCGTACGATG", "sample_one_CCGTCAGAAC", "sample_one_CCTAGACACG", + "sample_one_CCTAGTTGAG", "sample_one_CCTATTCTGT", "sample_one_CCTCAACCGA", + "sample_one_CCTCCATAAG", "sample_one_CCTGATGCCA", "sample_one_CCTGCAATAC", + "sample_one_CCTTGTATTC", "sample_one_CGAGATCTCT", "sample_one_CGAGGAACAA", + "sample_one_CGATAACCGC", "sample_one_CGATCCTGTG", "sample_one_CGCCAACCAT", + "sample_one_CGCCAGTGTT", "sample_one_CGCCTTGTAC", "sample_one_CGCGGATTCA", + "sample_one_CGCTTAAGGC", "sample_one_CGCTTACTAA", "sample_one_CGCTTCTTGG", + "sample_one_CGGAAGCTGT", "sample_one_CGGAATACAC", "sample_one_CGGAGATTGG", + "sample_one_CGGAGCTCAA", "sample_one_CGGATCGGTA", "sample_one_CGGATTCTAG", + "sample_one_CGGCAACTTA", "sample_one_CGGCTCATCA", "sample_one_CGGTCGTATT", + "sample_one_CGGTGACATC", "sample_one_CGTAACGGAT", "sample_one_CGTAAGATTC", + "sample_one_CGTACTGTAA", "sample_one_CGTAGAAGAC", "sample_one_CGTCCTAGGA", + "sample_one_CGTCGGCAAT", "sample_one_CGTGAGTTAT", "sample_one_CGTGTCAAGC", + "sample_one_CTAACTTCAG", "sample_one_CTAATAGCGT", "sample_one_CTACACCAGG", + "sample_one_CTAGCACAAT", "sample_one_CTATGAACGG", "sample_one_CTCAAGGACC", + "sample_one_CTCACCTGTC", "sample_one_CTCCTATTGT", "sample_one_CTCGCAACGT", + "sample_one_CTCGTGCCTA", "sample_one_CTGGATTGAC", "sample_one_CTGTAGTCAG", + "sample_one_CTGTCGCTTC", "sample_one_CTGTCTGTGT", "sample_one_CTTCATATCG", + "sample_one_CTTGCTGACG", "sample_one_GAAGGATTAG", "sample_one_GAATCGAGCC", + "sample_one_GACCATCTAA", "sample_one_GACGACCACA", "sample_one_GAGACATCTT", + "sample_one_GAGCGAGTCA", "sample_one_GAGTAGACCA", "sample_one_GATACGCTTA", + "sample_one_GATAGACTGT", "sample_one_GATAGAGGCG", "sample_one_GATAGGTCAA", + "sample_one_GATATCAGGA", "sample_one_GATCTCATTC", "sample_one_GATCTGGTCG", + "sample_one_GATGAGTGAC", "sample_one_GATGGATACA", "sample_one_GATGTGACAG", + "sample_one_GATTAAGTCC", "sample_one_GATTGCACGC", "sample_one_GCAAGCGAAT", + "sample_one_GCAATGTAAG", "sample_one_GCACACTATA", "sample_one_GCACTCGGAA", + "sample_one_GCACTGCGTT", "sample_one_GCACTTAATC", "sample_one_GCAGGAGATG", + "sample_one_GCAGTACTGG", "sample_one_GCATATGAGT", "sample_one_GCATCCGATC", + "sample_one_GCCAAGTACA", "sample_one_GCCACGATTC", "sample_one_GCCATAGGTT", + "sample_one_GCCATATCGA", "sample_one_GCCGTCAATA", "sample_one_GCCTGGACAT", + "sample_one_GCGTAATTAC", "sample_one_GCTATTATCC", "sample_one_GCTCAGTAAT", + "sample_one_GCTGCTTATA", "sample_one_GGAATAAGCA", "sample_one_GGACGATGCT", + "sample_one_GGCATCGTGA", "sample_one_GGCATTATTG", "sample_one_GGCCGAGATT", + "sample_one_GGCGCTATAA", "sample_one_GGCGTTAAGT", "sample_one_GGCTATTGAT", + "sample_one_GGCTGCTACT", "sample_one_GGTAATGTGT", "sample_one_GGTGGTTGGA", + "sample_one_GGTGTTCACC", "sample_one_GGTTAGATCT", "sample_one_GGTTATGGCG", + "sample_one_GGTTCACTGG", "sample_one_GGTTGTGCAA", "sample_one_GTAACCAGTA", + "sample_one_GTAACCTTGG", "sample_one_GTAAGAACCT", "sample_one_GTAAGGCTCC", + "sample_one_GTAATCCACG", "sample_one_GTATTGTGGA", "sample_one_GTCCGCATCA", + "sample_one_GTCCTTCGGT", "sample_one_GTCGCTCTCT", "sample_one_GTCGGTGACA", + "sample_one_GTCTCGAGTG", "sample_one_GTCTCTTAAG", "sample_one_GTCTTCCGAG", + "sample_one_GTGACTATAC", "sample_one_GTGGTTAATG", "sample_one_GTGTGCCTGT", + "sample_one_GTGTGTGTCC", "sample_one_GTTCATTGCC", "sample_one_GTTCCGGTGA", + "sample_one_GTTCGTCGAA", "sample_one_GTTGAATTGG", "sample_one_GTTGATCCGC", + "sample_one_GTTGTATGCT", "sample_one_TAACCGTAGC", "sample_one_TAACGTCGAT", + "sample_one_TAAGGTACGG", "sample_one_TACGGACATA", "sample_one_TACTACCGCC", + "sample_one_TACTGTCAAG", "sample_one_TAGCGAACGC", "sample_one_TAGCGCCAAC", + "sample_one_TAGGACGCCT", "sample_one_TAGGTTGCAA", "sample_one_TAGTAGTCTC", + "sample_one_TAGTCCGCTG", "sample_one_TAGTGGAACT", "sample_one_TATCATGCAG", + "sample_one_TATCGTTACG", "sample_one_TCAAGTGCAG", "sample_one_TCACAGATAC", + "sample_one_TCACCGCCTA", "sample_one_TCACGCCACT", "sample_one_TCACGTTGGC", + "sample_one_TCATTGTCCA", "sample_one_TCCACACTAG", "sample_one_TCCACGGTCA", + "sample_one_TCCACTCGCT", "sample_one_TCCGACTAAC", "sample_one_TCCGTTATCT", + "sample_one_TCCTAAGAGA", "sample_one_TCCTCTAGTA", "sample_one_TCGAAGCATT", + "sample_one_TCGAGAGAGC", "sample_one_TCGCACTTGA", "sample_one_TCGCCTACTG", + "sample_one_TCGCGTAGCA", "sample_one_TCGGCGTTAA", "sample_one_TCTACATCCG", + "sample_one_TCTCCACATT", "sample_one_TCTCTCCTAT", "sample_one_TCTTGCTCGG", + "sample_one_TGAACTAACC", "sample_one_TGAAGAAGGT", "sample_one_TGAGCGTTCC", + "sample_one_TGAGTACGTA", "sample_one_TGGAATGGAG", "sample_one_TGTCATTCGC", + "sample_one_TGTGCTTCAG", "sample_one_TGTTCAGGAT", "sample_one_TTACACACGT", + "sample_one_TTACTGTGAC", "sample_one_TTATAGGAGG", "sample_one_TTATCGCGTT", + "sample_one_TTATGCCGCG", "sample_one_TTCACGGAAG", "sample_one_TTCAGGAGTA", + "sample_one_TTCCATCGAG", "sample_one_TTCGAGTGAT", "sample_one_TTCTGTACCT", + "sample_one_TTGGCAATTC", "sample_one_TTGGCTCCAC", "sample_one_TTGGTAACAG", + "sample_one_TTGGTCAGTA", "sample_one_TTGTCGGCCA", "sample_one_TTGTGTTCGA" +) +stopifnot(identical(sampleNames(sample_1_result), expected_sample_names)) + +expected_var_labels <- c( + "WellBC", + "NumberOfMTReads", + "pctMT", + "NumberOfERCCReads", + "pctERCC", + "NumberOfChromReads", + "pctChrom", + "NumberOfInputReads", + "NumberOfMappedReads", + "PctMappedReads", + "NumberOfReadsMappedToMultipleLoci", + "PectOfReadsMappedToMultipleLoci", + "NumberOfReadsMappedToTooManyLoci", + "PectOfReadsMappedToTooManyLoci", + "NumberOfReadsUnmappedTooManyMismatches", + "PectOfReadsUnmappedTooManyMismatches", + "NumberOfReadsUnmappedTooShort", + "PectOfReadsUnmappedTooShort", + "NumberOfReadsUnmappedOther", + "PectOfReadsUnmappedOther", + "ReadsWithValidBarcodes", + "SequencingSaturation", + "Q30BasesInCB.UMI", + "ReadsMappedToTranscriptome.Unique.MultipeGenes", + "EstimatedNumberOfCells", + "FractionOfReadsInCells", + "MeanReadsPerCell", + "NumberOfUMIs", + "NumberOfGenes", + "NumberOfCountedReads", + "PoolName" +) +stopifnot(identical(varLabels(sample_1_result), expected_var_labels)) + +read_mm <- function(mapping_dir) { + market_matrix_file <- file.path(mapping_dir, "Solo.out", + "Gene", "raw", "matrix.mtx") + result <- readMM(market_matrix_file) + feature_file <- file.path(mapping_dir, "Solo.out", + "Gene", "raw", "features.tsv") + features <- read.table(feature_file, sep = "\t", header = FALSE, + col.names = c("ID", "Name", "Type"))$ID + rownames(result) <- gsub("\\.\\d+$", "", features) + barcodes_file <- file.path(mapping_dir, + "Solo.out", "Gene", "raw", "barcodes.tsv") + if (!file.exists(barcodes_file)) { + stop(paste0("Expected the 'Solo.out/Gene/raw' directory at ", + mapping_dir, " to contain a 'barcodes.tsv' file.")) + } + barcodes <- readLines(barcodes_file) + if (length(barcodes) != 1) { + stop(paste0("A single STAR Solo folder should only have ", + "mapped one (1) barcode, but found '", + length(barcodes), "'for mapping directory ", mapping_dir)) + } + colnames(result) <- paste0("sample_one_", barcodes) + return(result) +} +expected_matrices <- lapply(par$star_output, read_mm) +expected_matrix <- as.matrix(do.call(cbind, expected_matrices)) +result_counts <- exprs(sample_1_result) +stopifnot(length(setdiff(colnames(expected_matrix), + colnames(exprs(sample_1_result)))) == 0) +stopifnot(length(setdiff(rownames(expected_matrix), + rownames(exprs(sample_1_result)))) == 0) +expected_matrix_sorted <- expected_matrix[, colnames(exprs(sample_1_result))] +stopifnot(identical(exprs(sample_1_result), expected_matrix_sorted)) \ No newline at end of file diff --git a/src/parallel_map/STAR b/src/parallel_map/STAR new file mode 100755 index 0000000000000000000000000000000000000000..331a838d12c5f93aa5078a876f7ac8ff356ab016 GIT binary patch literal 2791592 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�eaj^n~P>^gPp<>+dQDN>ry)oK=N{ocPX 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

qAb>6Y$QD0VG)aNi#mPbhZQC>*2Z-Q3Lj;D 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

QmU(Ks|8E;N`^aT%` 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%0D7%33Or1YPpR?uJU!k-3 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

O9YPphFE__fRBmw&cl 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

;6~9`6aaROK9Vl(8jOI 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%0A_o4fP474~)HHb2n7Ig=AKR9fp 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

RT4=ntg>JfDrjyRNic8~_UUmp=Jaq* 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


Hn4=!}tu?AAiO1{^wvf7tVwFKkHlI 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 E3&apGrT_o{ literal 0 HcmV?d00001 diff --git a/src/parallel_map/config.vsh.yaml b/src/parallel_map/config.vsh.yaml index abaf8e57..8856f4ad 100644 --- a/src/parallel_map/config.vsh.yaml +++ b/src/parallel_map/config.vsh.yaml @@ -3,6 +3,11 @@ description: | Map wells in batch, using STAR Spliced Transcripts Alignment to a Reference (C) Alexander Dobin https://github.com/alexdobin/STAR +requirements: + commands: + - STAR + - file + - parallel argument_groups: - name: Input arguments arguments: @@ -64,6 +69,7 @@ argument_groups: resources: - type: bash_script path: script.sh +- path: STAR test_resources: - type: bash_script @@ -76,26 +82,24 @@ engines: - type: apt packages: - procps - - gzip - - bzip2 - - parallel - wget + - automake + - make + - gcc + - g++ - zlib1g-dev - - unzip - - xxd + - parallel - file - type: docker + build_args: + - STAR_V=2.7.6a env: - - STAR_VERSION "2.7.11b" - - STAR_SOURCE "https://github.com/alexdobin/STAR/releases/download/$STAR_VERSION/STAR_$STAR_VERSION.zip" - - STAR_TARGET "/tmp/star.zip" - - STAR_BINARY "STAR" - run: | - wget -O $STAR_TARGET $STAR_SOURCE && \ - unzip $STAR_TARGET -d /tmp && \ - mv /tmp/STAR_$STAR_VERSION/Linux_x86_64_static/STAR /usr/local/bin/$STAR_BINARY && \ - chmod +x /usr/local/bin/$STAR_BINARY && \ - rm $STAR_TARGET && rm -rf /tmp/STAR_$STAR_VERSION + - STAR_SOURCE="https://github.com/alexdobin/STAR/archive/refs/tags/$STAR_V.tar.gz" + - STAR_TARGET="/app/star-$STAR_V.tar.gz" + - STAR_INSTALL_DIR="/app/STAR-$STAR_V" + - STAR_BINARY=STAR + copy: + - STAR /usr/local/bin/$STAR_BINARY runners: - type: executable - type: nextflow diff --git a/src/parallel_map/test.sh b/src/parallel_map/test.sh index 641863b9..1c8cc37e 100755 --- a/src/parallel_map/test.sh +++ b/src/parallel_map/test.sh @@ -148,7 +148,7 @@ done echo ">> Check contents of output" echo ">>> Sample 1" -assert_file_contains "$sample1_out/Solo.out/Barcodes.stats" "yesWLmatchExact 2" +assert_file_contains "$sample1_out/Solo.out/Barcodes.stats" "nExactMatch 2" assert_file_contains "$sample1_out/Log.final.out" "Uniquely mapped reads number | 2" assert_file_contains "$sample1_out/Log.final.out" "Number of input reads | 2" @@ -169,7 +169,7 @@ cat << EOF | cmp -s "$sample1_out/Solo.out/Gene/filtered/matrix.mtx" || { echo " EOF echo ">>> Sample 2" -assert_file_contains "$sample2_out/Solo.out/Barcodes.stats" "yesWLmatchExact 2" +assert_file_contains "$sample2_out/Solo.out/Barcodes.stats" "nExactMatch 2" assert_file_contains "$sample2_out/Log.final.out" "Uniquely mapped reads number | 2" assert_file_contains "$sample2_out/Log.final.out" "Number of input reads | 2" @@ -241,7 +241,7 @@ done echo ">> Check contents of output" echo ">>> Sample 1" -assert_file_contains "$sample1_out/Solo.out/Barcodes.stats" "yesWLmatchExact 2" +assert_file_contains "$sample1_out/Solo.out/Barcodes.stats" "nExactMatch 2" assert_file_contains "$sample1_out/Log.final.out" "Uniquely mapped reads number | 2" assert_file_contains "$sample1_out/Log.final.out" "Number of input reads | 2" @@ -262,7 +262,7 @@ cat << EOF | cmp -s "$sample1_out/Solo.out/Gene/filtered/matrix.mtx" || { echo " EOF echo ">>> Sample 2" -assert_file_contains "$sample2_out/Solo.out/Barcodes.stats" "yesWLmatchExact 2" +assert_file_contains "$sample2_out/Solo.out/Barcodes.stats" "nExactMatch 2" assert_file_contains "$sample2_out/Log.final.out" "Uniquely mapped reads number | 2" assert_file_contains "$sample2_out/Log.final.out" "Number of input reads | 2" diff --git a/src/stats/combine_star_logs/config.vsh.yaml b/src/stats/combine_star_logs/config.vsh.yaml index 1a596899..fb3fd831 100644 --- a/src/stats/combine_star_logs/config.vsh.yaml +++ b/src/stats/combine_star_logs/config.vsh.yaml @@ -6,11 +6,13 @@ argument_groups: - name: "--barcodes" type: string multiple: true + required: true description: | Barcodes responding to the respective log files. - name: "--star_logs" type: file multiple: true + required: true description: | Paths to the STAR log files (most frequently called Log.final.out) direction: input @@ -19,6 +21,7 @@ argument_groups: direction: input type: file multiple: true + required: true description: | Paths to the Summary.csv files from the STAR Solo output. Can be found in the 'Solo.out/Gene' folder relative to the root of the STAR output directory. @@ -27,6 +30,7 @@ argument_groups: direction: input type: file multiple: true + required: true description: | Paths to the 'ReadsPerGene.out.tab' files as output by STAR. - name: "--output" diff --git a/src/stats/combine_star_logs/script.py b/src/stats/combine_star_logs/script.py index aaa27b0d..6409c03c 100644 --- a/src/stats/combine_star_logs/script.py +++ b/src/stats/combine_star_logs/script.py @@ -1,6 +1,5 @@ import logging import pandas as pd -import numpy as np from itertools import batched, starmap ### VIASH START @@ -8,12 +7,12 @@ meta = { "name": "combine_star_logs", } par = { - "star_logs": ["testData/STAR/ACGCCTTCGT/Log.final.out", - "testData/STAR/GTCTCGAGTG/Log.final.out"], - "gene_summary_logs": ["testData/STAR/ACGCCTTCGT/Solo.out/Gene/Summary.csv", - "testData/STAR/GTCTCGAGTG/Solo.out/Gene/Summary.csv"], - "reads_per_gene_logs": ["testData/STAR/ACGCCTTCGT/ReadsPerGene.out.tab", - "testData/STAR/GTCTCGAGTG/ReadsPerGene.out.tab"], + "star_logs": ["src/stats/combine_star_logs/test_data/barcode_1/Log.final.out", + "src/stats/combine_star_logs/test_data/barcode_2/Log.final.out"], + "gene_summary_logs": ["src/stats/combine_star_logs/test_data/barcode_1/summary.csv", + "src/stats/combine_star_logs/test_data/barcode_2/summary.csv"], + "reads_per_gene_logs": ["src/stats/combine_star_logs/test_data/barcode_1/ReadsPerGene.out.tab", + "src/stats/combine_star_logs/test_data/barcode_2/ReadsPerGene.out.tab"], "output": "output.txt", "barcodes": ["ACGG", "TTTT"], } @@ -29,7 +28,7 @@ logger.setLevel(logging.DEBUG) def handle_percentages(column_value): # TODO: handle this more gracefully if column_value: - return np.float64(column_value.strip('%')) + return column_value.strip('%') return column_value def star_log_to_dataframe(barcode: str, log_path) -> pd.DataFrame: @@ -47,7 +46,7 @@ def summary_to_dataframe(barcode: str, summary_path) -> pd.DataFrame: logger.info("Reading summary log %s for barcode %s", summary_path, barcode) result = pd.read_table(summary_path, sep=",", header=None, names=["Category", "Value"], - index_col=0) + index_col=0, dtype=pd.StringDtype()) logger.info("Read %d row(s) and %d column(s) from summary file at %s", *result.shape, summary_path) return result @@ -56,9 +55,14 @@ def summary_to_dataframe(barcode: str, summary_path) -> pd.DataFrame: def reads_per_gene_to_dataframe(barcode, read_per_gene_path) -> pd.DataFrame: logger.info("Reading reads per gene file %s for barcode %s", read_per_gene_path, barcode) result = pd.read_table(read_per_gene_path, skiprows=[0, 1, 2, 3], header=None, sep="\t", + dtype={"geneID": pd.StringDtype(), + "Unstranded": pd.Int64Dtype(), + "posStrand": pd.Int64Dtype(), + "negStrand": pd.Int64Dtype()}, index_col=0, names=["geneID", "Unstranded", "posStrand", "negStrand"]) result = result[["Unstranded"]] # Do not use .loc here because we need a DataFrame, not a Series df = pd.DataFrame({"Value": result.sum()}) + df = df.rename({"Unstranded": "NumberOfCountedReads"}, errors="raise") df.index.name = "Category" logger.info("Read %d row(s) and %d column(s) from reads per gene file at %s", *df.shape, read_per_gene_path) @@ -87,12 +91,16 @@ def star_log_remove_unwanted_entries_and_adjust_format(barcode, df: pd.DataFrame "\n\t".join(to_keep[~to_keep].index.to_list())) result = df.loc[to_keep] + # Replace % by pect, remove columns, use camel case and remove spaces + # You might be tempted to use .title() to make everything uppercase, + # but characters which are already uppercase should stay that way. + # (example: NumberOfUMIs and not NumberOfUmis) result.index = result.index.str.replace("%", "pect")\ .str.replace(":", "")\ .str.replace(r"(?:^|\s).", lambda m:m.group(0).upper(), regex=True)\ .str.replace(" ", "") result = result.rename({"UniquelyMappedReadsNumber": "NumberOfMappedReads", - "UniquelyMappedReadsPect": "pctMappedReads"}, errors="raise") + "UniquelyMappedReadsPect": "PctMappedReads"}, errors="raise") logger.info("Done filtering STAR logs for barcode %s. Result has %d row(s) and %d column(s). " "Found entries:\n\t%s", barcode, *result.shape, "\n\t".join(result.index.to_list())) @@ -108,13 +116,9 @@ def summary_remove_unwanted_entries_and_adjust_format(barcode, df: pd.DataFrame) "Reads Mapped to Genome: Unique", "Reads Mapped to Transcriptome: Unique Genes", "Reads in Cells Mapped to Unique Genes", - "Mean Reads per Cell", "Median UMI per Cell", "Median Genes per Cell", - "Q30 Bases in CB+UMI", "Reads Mapped to Genome: Unique+Multiple", - "Reads Mapped to Transcriptome: Unique+Multipe Genes", - "Fraction of Reads in Cells", "Median Reads per Cell", "Mean UMI per Cell", "Mean Genes per Cell", @@ -127,8 +131,15 @@ def summary_remove_unwanted_entries_and_adjust_format(barcode, df: pd.DataFrame) result = df.loc[to_keep] result.index = result.index.str.replace(r"(?:^|\s).", lambda m:m.group(0).upper(), regex=True).str.replace(" ", "") - result = result.rename({"UMIsInCells": "NumberOfUMIs", - "TotalGenesDetected": "NumberOfGenes"}, errors="raise") + to_rename = {"UMIsInCells": "NumberOfUMIs", + "TotalGenesDetected": "NumberOfGenes"} + try: + result = result.rename(to_rename, errors="raise") + except KeyError as e: + raise KeyError(f"Tried to rename log entries ({','.join(to_rename)}) in the summary " + f"log for barcode {barcode}, but an entry was not found in the file. " + "Make sure that you are using the correct version of STAR." + f"Available entries: {", ".join(result.index.to_list())}") from e logger.info("Done filtering summary logs for barcode %s. Result has %d row(s) and %d column(s). " "Found entries:\n\t%s", barcode, *result.shape, "\n\t".join(result.index.to_list())) @@ -177,13 +188,40 @@ def main(par): all_stats = pd.concat(all_logs_data, axis=1) logger.info("Log statistics were gathered for the following barcodes: %s", ", ".join(all_stats.index.to_list())) + dtypes = { + 'NumberOfInputReads': pd.UInt64Dtype(), + 'NumberOfMappedReads': pd.UInt64Dtype(), + 'PctMappedReads': pd.Float64Dtype(), + 'NumberOfReadsMappedToMultipleLoci': pd.UInt64Dtype(), + 'PectOfReadsMappedToMultipleLoci': pd.Float64Dtype(), + 'NumberOfReadsMappedToTooManyLoci': pd.UInt64Dtype(), + 'PectOfReadsMappedToTooManyLoci': pd.Float64Dtype(), + 'NumberOfReadsUnmappedTooManyMismatches': pd.UInt64Dtype(), + 'PectOfReadsUnmappedTooManyMismatches': pd.Float64Dtype(), + 'NumberOfReadsUnmappedTooShort': pd.UInt64Dtype(), + 'PectOfReadsUnmappedTooShort': pd.Float64Dtype(), + 'NumberOfReadsUnmappedOther': pd.UInt64Dtype(), + 'PectOfReadsUnmappedOther': pd.Float64Dtype(), + 'ReadsWithValidBarcodes': pd.Float64Dtype(), + 'SequencingSaturation': pd.Float64Dtype(), + 'Q30BasesInCB+UMI': pd.Float64Dtype(), + 'ReadsMappedToTranscriptome:Unique+MultipeGenes': pd.Float64Dtype(), + 'EstimatedNumberOfCells': pd.UInt64Dtype(), + 'FractionOfReadsInCells': pd.Float64Dtype(), + 'MeanReadsPerCell': pd.UInt64Dtype(), + 'NumberOfUMIs': pd.UInt64Dtype(), + 'NumberOfGenes': pd.UInt64Dtype(), + 'NumberOfCountedReads': pd.UInt64Dtype(), + } + all_stats = all_stats.astype(dtypes) # batched() is used here to print a limited amount of columnns at a time # to make sure that they are all displayed (pandas might limit the view for readability) logger.info("Summary of final output:\n%s\n", "\n".join(repr(all_stats.loc[:,columns].describe()) for columns in batched(all_stats.columns, 3))) logger.info("Writing output to %s", par["output"]) - all_stats.reset_index("WellBC").to_csv(par["output"], sep="\t", header=True, index=False) + all_stats.reset_index("WellBC").to_csv(par["output"], sep="\t", header=True, + index=False, float_format='%g') logger.info("Finished %s.", meta["name"]) if __name__ == "__main__": diff --git a/src/stats/combine_star_logs/test.py b/src/stats/combine_star_logs/test.py index 02f66675..439bf138 100644 --- a/src/stats/combine_star_logs/test.py +++ b/src/stats/combine_star_logs/test.py @@ -82,31 +82,41 @@ def test_equal_number_of_argument(run_component, "--gene_summary_logs", f"{barcode_1_summary};{barcode_2_summary}", "--output", output_path, ]) + # We use strings here to make a comparison of the file contents without + # doing any inferences of the numerical data type (i.e. exact file contents). expected_dict = { - 'NumberOfInputReads': [96398.0, 10155.0], - 'NumberOfMappedReads': [70824.0, 7179.0], - 'pctMappedReads': [73.47, 70.69], - 'NumberOfReadsMappedToMultipleLoci': [0.0, 0.0], - 'PectOfReadsMappedToMultipleLoci': [0.0, 0.0], - 'NumberOfReadsMappedToTooManyLoci': [22281.0, 2248.0], - 'PectOfReadsMappedToTooManyLoci': [23.11, 22.14], - 'NumberOfReadsUnmappedTooManyMismatches': [0.0, 0.0], - 'PectOfReadsUnmappedTooManyMismatches': [0.0, 0.0], - 'NumberOfReadsUnmappedTooShort': [2697.0, 553.0], - 'PectOfReadsUnmappedTooShort': [2.8, 5.45], - 'NumberOfReadsUnmappedOther': [596.0, 175.0], - 'PectOfReadsUnmappedOther': [0.62, 1.72], - 'ReadsWithValidBarcodes': [0.999782, 0.999803], - 'SequencingSaturation': [0.0602963, 0.0539344], - 'EstimatedNumberOfCells': [1.0, 1.0], - 'NumberOfUMIs': [50370.0, 4701.0], - 'NumberOfGenes': [8767.0, 2397.0], - 'Unstranded': [17, 15], + 'NumberOfInputReads': ["96398", "10155"], + 'NumberOfMappedReads': ["70824", "7179"], + 'PctMappedReads': ["73.47", "70.69"], + 'NumberOfReadsMappedToMultipleLoci': ["0", "0"], + 'PectOfReadsMappedToMultipleLoci': ["0", "0"], + 'NumberOfReadsMappedToTooManyLoci': ["22281", "2248"], + 'PectOfReadsMappedToTooManyLoci': ["23.11", "22.14"], + 'NumberOfReadsUnmappedTooManyMismatches': ["0", "0"], + 'PectOfReadsUnmappedTooManyMismatches': ["0", "0"], + 'NumberOfReadsUnmappedTooShort': ["2697", "553"], + 'PectOfReadsUnmappedTooShort': ["2.8", "5.45"], + 'NumberOfReadsUnmappedOther': ["596", "175"], + 'PectOfReadsUnmappedOther': ["0.62", "1.72"], + 'ReadsWithValidBarcodes': ["0.999782", "0.999803"], + 'SequencingSaturation': ["0.0602963", "0.0539344"], + 'Q30BasesInCB+UMI': ["0.980096", "0.984461"], + 'ReadsMappedToTranscriptome:Unique+MultipeGenes': ["0.60411", "0.530871"], + 'EstimatedNumberOfCells': ["1", "1"], + 'FractionOfReadsInCells': ["1", "1"], + 'MeanReadsPerCell': ["53602", "4969"], + 'NumberOfUMIs': ["50370", "4701"], + 'NumberOfGenes': ["8767", "2397"], + 'NumberOfCountedReads': ["17", "15"], } - expected = pd.DataFrame.from_dict(expected_dict) - expected.index = pd.Index(["foo", "bar"], name="WellBC") + expected = pd.DataFrame.from_dict(expected_dict, dtype=pd.StringDtype()) + expected.index = pd.Index(["foo", "bar"], name="WellBC", dtype=pd.StringDtype()) assert output_path.is_file() - contents = pd.read_csv(output_path, sep="\t", index_col=0) + + contents = pd.read_csv(output_path, sep="\t", index_col=0, dtype=pd.StringDtype()) + assert set(("NumberOfInputReads", "SequencingSaturation", + "NumberOfGenes", "NumberOfUMIs", "NumberOfCountedReads", + "PctMappedReads")).issubset(set(contents.columns)) pd.testing.assert_frame_equal(contents, expected) diff --git a/src/stats/generate_pool_statistics/config.vsh.yaml b/src/stats/generate_pool_statistics/config.vsh.yaml index 7978e8b3..68f8fa8b 100644 --- a/src/stats/generate_pool_statistics/config.vsh.yaml +++ b/src/stats/generate_pool_statistics/config.vsh.yaml @@ -34,7 +34,7 @@ test_resources: engines: - type: docker - image: python:3.11-slim + image: python:3.12-slim setup: - type: apt packages: diff --git a/src/stats/generate_pool_statistics/script.py b/src/stats/generate_pool_statistics/script.py index 824ea2c2..92c4a4d4 100644 --- a/src/stats/generate_pool_statistics/script.py +++ b/src/stats/generate_pool_statistics/script.py @@ -3,7 +3,7 @@ import re ### VIASH START par = { - "nrReadsNrGenesPerChrom": ["test/nrReadsNrGenesPerChrom_2.txt", "test/nrReadsNrGenesPerChrom.txt"], + "nrReadsNrGenesPerChrom": ["src/stats/generate_pool_statistics/test1.tsv", "src/stats/generate_pool_statistics/test2.tsv"], "nrReadsNrGenesPerChromPool": "nrReadsNrGenesPerChrom_pool.txt" } @@ -16,9 +16,13 @@ if __name__ == "__main__": nr_reads_nr_genes_wells = [] for nr_reads_nr_genes_file in par["nrReadsNrGenesPerChrom"]: nr_reads_nr_genes_wells.append(pd.read_csv(nr_reads_nr_genes_file, - header=0, delimiter="\t")) - nr_reads_nr_genes_pool = pd.concat(nr_reads_nr_genes_wells, ignore_index=True) - total_nr_reads_per_chromosome = nr_reads_nr_genes_pool.pivot_table(index="WellBC", columns="Chr", + header=0, delimiter="\t", + dtype={"WellBC": pd.StringDtype(), + "Chr": pd.StringDtype(), + "NumberOfReads": pd.UInt64Dtype(), + "NumberOfGenes": pd.UInt64Dtype()})) + nr_reads_nr_genes_pool = pd.concat(nr_reads_nr_genes_wells, ignore_index=True,) + total_nr_reads_per_chromosome = nr_reads_nr_genes_pool.pivot_table(index="WellBC", columns="Chr", values=["NumberOfReads"], fill_value=0, aggfunc="sum").droplevel(0, axis=1) total_nr_reads_per_chromosome.columns.name = None @@ -59,17 +63,23 @@ if __name__ == "__main__": total_chromosomal_reads = total_nr_reads_per_chromosome.loc[:,matching_chromosomes].sum(axis=1) percentage_chromosomal_reads = round(total_chromosomal_reads / total_sum_of_reads * 100, 2) + cols_to_add = { + "pctChrom": percentage_chromosomal_reads, + "pctMT": percentage_mitochondrial_reads, + "pctERCC": percentage_ercc_reads, + "SumReads": total_sum_of_reads, + "NumberOfGenes": total_nr_genes, + "NumberOfERCCReads": total_ercc_reads, + "NumberOfChromReads": total_chromosomal_reads, + "NumberOfMTReads": mitochondrial_reads, + } total_nr_reads_per_chromosome = total_nr_reads_per_chromosome.assign( - pctChrom=percentage_chromosomal_reads, - pctMT=percentage_mitochondrial_reads, - pctERCC=percentage_ercc_reads, - SumReads=total_sum_of_reads, - NumberOfGenes=total_nr_genes, + **cols_to_add ) total_nr_reads_per_chromosome.reset_index(names="WellBC")\ .to_csv(par["nrReadsNrGenesPerChromPool"], sep="\t", - header=True, index=False, - columns=("WellBC",) + tuple(chromosome_names) + \ - ("SumReads", "pctMT", "pctERCC", "pctChrom", "NumberOfGenes")) + header=True, index=False, float_format="%g", + columns=("WellBC",) + tuple(chromosome_names) + tuple(cols_to_add.keys()) + ) diff --git a/src/stats/generate_pool_statistics/test.py b/src/stats/generate_pool_statistics/test.py index 56af6621..aa757870 100644 --- a/src/stats/generate_pool_statistics/test.py +++ b/src/stats/generate_pool_statistics/test.py @@ -70,6 +70,7 @@ def simple_input_file_two(random_tsv_path, request): open_file.write(contents) return output_file + @pytest.mark.parametrize("simple_input_file_one,simple_input_file_two,expected", [("chr", "chr", "chr"), ("", "", "")], indirect=["simple_input_file_one", "simple_input_file_two"]) def test_generate_pool_statistics_simple(run_component, simple_input_file_one, @@ -82,15 +83,89 @@ def test_generate_pool_statistics_simple(run_component, simple_input_file_one, "--nrReadsNrGenesPerChromPool", output_path ]) mito_name = f"{expected}M{'T' if not expected else ''}" - expected_output = StringIO(dedent( - f"""\ - WellBC ERCC-1 ERCC-2 ERCC-3 {expected}1 {expected}2 {expected}3 {expected}5 {mito_name} {expected}X {expected}Y SumReads pctMT pctERCC pctChrom NumberOfGenes - AGG 1 1 0 2 3 4 0 4 2 0 17 23.53 11.76 52.94 12 - CCC 0 1 1 4 2 3 4 0 2 2 19 0.0 10.53 68.42 15 - """)) + expected_dict = { + "WellBC": ["AGG", "CCC"], + "ERCC-1": ["1", "0"], + "ERCC-2": ["1", "1"], + "ERCC-3": ["0", "1"], + f"{expected}1": ["2", "4"], + f"{expected}2": ["3", "2"], + f"{expected}3": ["4", "3"], + f"{expected}5": ["0", "4"], + f"{mito_name}": ["4", "0"], + f"{expected}X": ["2", "2"], + f"{expected}Y": ["0", "2"], + "SumReads": ["17", "19"], + "pctMT": ["23.53", "0"], + "pctERCC": ["11.76", "10.53"], + "pctChrom": ["52.94", "68.42"], + "NumberOfGenes": ["12", "15"], + "NumberOfMTReads": ["4", "0"], + "NumberOfChromReads": ["9", "13"], + "NumberOfERCCReads": ["2", "2"], + } + expected_frame = pd.DataFrame.from_dict(expected_dict, dtype=pd.StringDtype()) assert output_path.is_file() - contents = pd.read_csv(output_path, sep="\t") - expected_frame = pd.read_csv(expected_output, sep="\t") + contents = pd.read_csv(output_path, sep="\t", dtype=pd.StringDtype()) + pd.testing.assert_frame_equal(contents, expected_frame, check_like=True) + + +def test_only_numerical_chromosomes(run_component, random_tsv_path): + """ + The chromosome column might be read as an integer instead of a string, + make sure that a numerical column only works. + """ + output_path = random_tsv_path() + contents1 = dedent( + f"""\ + WellBC Chr NumberOfReads NumberOfGenes + CCC 2 2 1 + CCC 3 3 2 + CCC 5 4 2 + CCC 1 4 2 + """) + input_file_1 = random_tsv_path() + with input_file_1.open("w") as open_file: + open_file.write(contents1) + + contents2 = dedent( + f"""\ + WellBC Chr NumberOfReads NumberOfGenes + AGG 2 2 1 + AGG 3 3 2 + AGG 5 4 2 + AGG 1 4 2 + """) + input_file_2 = random_tsv_path() + with input_file_2.open("w") as open_file: + open_file.write(contents2) + output_path = random_tsv_path() + run_component([ + "--nrReadsNrGenesPerChrom", input_file_1, + "--nrReadsNrGenesPerChrom", input_file_2, + "--nrReadsNrGenesPerChromPool", output_path + ]) + + expected_dict = { + "WellBC": ["AGG", "CCC"], + "1": ["4", "4"], + "2": ["2", "2"], + "3": ["3", "3"], + "5": ["4", "4"], + "pctChrom": ["100", "100"], + "pctMT": ["0", "0"], + "pctERCC": ["0", "0"], + "SumReads": ["13", "13"], + "NumberOfGenes": ["7", "7"], + "NumberOfERCCReads": ["0", "0"], + "NumberOfChromReads": ["13", "13"], + "NumberOfMTReads": ["0", "0"], + } + expected_frame = pd.DataFrame.from_dict(expected_dict, + dtype=pd.StringDtype()) + + assert output_path.is_file() + contents = pd.read_csv(output_path, sep="\t", dtype=pd.StringDtype()) pd.testing.assert_frame_equal(contents, expected_frame, check_like=True) diff --git a/src/workflows/htrnaseq/config.vsh.yaml b/src/workflows/htrnaseq/config.vsh.yaml index 4a19ab40..d4523c77 100644 --- a/src/workflows/htrnaseq/config.vsh.yaml +++ b/src/workflows/htrnaseq/config.vsh.yaml @@ -4,19 +4,28 @@ argument_groups: - name: Input arguments arguments: - name: --input_r1 - description: R1 + description: | + Forward reads in FASTQ format. Multiple files can be provided which will + be demultiplexed separately before joining the results for each individual well. type: file required: true + multiple: true - name: --input_r2 - description: R2 + description: | + Reverse reads in FASTQ format. Multiple files can be provided which will + be demultiplexed separately before joining the results for each individual well. type: file required: true + multiple: true - name: --barcodesFasta type: file required: true - name: --genomeDir type: file required: true + - name: --annotation + type: file + required: true - name: Output arguments arguments: - name: --fastq_output_r1 @@ -44,18 +53,38 @@ argument_groups: type: file direction: output required: true - default: "nrReadsNrGenesPerChrom.txt" + default: "nrReadsNrGenesPerChrom.$id.txt" + - name: "--star_qc_metrics" + type: file + direction: output + required: true + default: "starLogs.$id.txt" + - name: "--eset" + type: file + direction: output + required: true + default: eset.$id.rds + - name: "--f_data" + type: file + direction: output + required: true + default: fData.$id.tsv + - name: "--p_data" + type: file + direction: output + required: true + default: pData.$id.tsv resources: - type: nextflow_script path: main.nf entrypoint: run_wf - -# test_resources: -# - type: nextflow_script -# path: test.nf -# entrypoint: test_wf - +test_resources: + - type: nextflow_script + path: test.nf + entrypoint: test_wf dependencies: + - name: stats/combine_star_logs + repository: local - name: stats/generate_pool_statistics repository: local - name: stats/generate_well_statistics @@ -66,8 +95,12 @@ dependencies: repository: local - name: workflows/utils/groupWells repository: local - - name: concat_text - repository: cb + - name: eset/create_eset + repository: local + - name: eset/create_fdata + repository: local + - name: eset/create_pdata + repository: local repositories: - name: local type: local @@ -75,10 +108,6 @@ repositories: type: vsh repo: biobox tag: v0.1.0 - - name: cb - type: vsh - repo: craftbox - tag: concat_text runners: - type: nextflow diff --git a/src/workflows/htrnaseq/integration_test.sh b/src/workflows/htrnaseq/integration_test.sh index 7a6cd2ab..57f83a39 100755 --- a/src/workflows/htrnaseq/integration_test.sh +++ b/src/workflows/htrnaseq/integration_test.sh @@ -7,26 +7,15 @@ REPO_ROOT=$(git rev-parse --show-toplevel) cd "$REPO_ROOT" # Make sure the workflow is built -viash ns build --setup cb +viash ns build --setup cb --parallel export NXF_VER=24.04.4 -nextflow run . \ - -main-script target/nextflow/workflows/htrnaseq/main.nf \ - -params-file ./src/workflows/htrnaseq/params.yaml \ - -config ./src/config/tests.config \ - -profile docker \ +nextflow \ + run . \ + -main-script src/workflows/htrnaseq/test.nf \ + -config ./src/config/labels.config \ + -entry test_wf \ + -resume \ + -profile docker,local \ --publish_dir output \ - -resume - -# bin/nextflow run . \ -# -main-script src/workflows/htrnaseq_wf/test.nf \ -# -entry test_wf_NextSeq550 \ -# -profile docker,local \ -# -resume \ -# --mappingReferenceRoot testData/genomeDir/subset \ -# --barcodesReferenceRoot testData \ -# --compoundAnnotationRoot testData \ -# -ansi-log false \ -# --publish_dir htrnaseq_test_results -# diff --git a/src/workflows/htrnaseq/main.nf b/src/workflows/htrnaseq/main.nf index 30bc0f24..170b0f49 100644 --- a/src/workflows/htrnaseq/main.nf +++ b/src/workflows/htrnaseq/main.nf @@ -3,72 +3,68 @@ workflow run_wf { input_ch main: - output_ch = input_ch - | well_demultiplex.run( - fromState: { id, state -> - [ - input_r1: state.input_r1, - input_r2: state.input_r2, - barcodesFasta: state.barcodesFasta, - ] - }, - toState: { id, result, state -> - state + result + [ - fastq_output_r1: result.output_r1, - fastq_output_r2: result.output_r2, - input_r1: result.output_r1, - input_r2: result.output_r2, - ] - }, - directives: [label: ["midmem", "midcpu"]] + // The featureData only has one requirement: the genome annotation. + // It can be generated straight away. + f_data_ch = input_ch + | create_fdata.run( + directives: [label: ["lowmem", "lowcpu"]], + fromState: ["gtf": "annotation"], + toState: {id, result, state -> ["f_data": result.output]} ) - // TODO: Expand this into matching a whitelist/blacklist of barcodes - // ... and turn into separate component - | filter{ id, state -> state.barcode != "unknown" } - | concat_text.run( - key: "concat_txt_r1", - runIf: {id, state -> state.input_r1.size() > 1}, - fromState: { id, state -> - [ - input: state.input_r1, - gzip_output: true, - ] - }, + // Perform mapping of each well. The input here are events per pool, + // the output channel is one event per well. + mapping_ch = input_ch + | map {id, state -> + def n_barcodes = state.barcodesFasta.countFasta() as int + def newState = state + ["n_barcodes": n_barcodes] + // The header is the full header, the id is the part header up to the first whitespace character + // We do not allow whitespace in the header of the fasta file, so assert this. + def fasta_entries = state.barcodesFasta.splitFasta(record: ["id": true, "header": true, "seqString": true]) + assert fasta_entries.every{it.id == it.header}, "The barcodes FASTA headers must not contain any whitespace!" + // Check if the fasta headers are unique + def fasta_ids = fasta_entries.collect{it.id} + assert fasta_ids.clone().unique() == fasta_ids, "The barcodes FASTA entries must have a unique name!" + // Check if the sequences are unique + def fasta_sequences = fasta_entries.collect{it.seqString} + assert fasta_sequences.clone().unique() == fasta_sequences, "The barcodes FASTA sequences must be unique!" + [id, newState] + } + | well_demultiplex.run( + fromState: [ + "input_r1": "input_r1", + "input_r2": "input_r2", + "barcodesFasta": "barcodesFasta", + ], toState: { id, result, state -> - state + [ input_r1: [ result.output ] ] - } - ) - | concat_text.run( - key: "concat_text_r2", - runIf: {id, state -> state.input_r2.size() > 1}, - fromState: { id, state -> - [ - input: state.input_r2, - gzip_output: true + def filtered_input = state.findAll{!["input_r1", "input_r2"].contains(it.key)} + def filtered_results = result.findAll{!["output_r1", "output_r2"].contains(it.key)} + def new_state = filtered_input + filtered_results + [ + "fastq_output_r1": result.output_r1, + "fastq_output_r2": result.output_r2, ] - }, - toState: { id, result, state -> - state + [ input_r2: [ result.output ] ] + return new_state } ) | parallel_map_wf.run( fromState: {id, state -> - def star_output = state.star_output[0] [ - "input_r1": state.input_r1[0], - "input_r2": state.input_r2[0], + "input_r1": state.fastq_output_r1[0], + "input_r2": state.fastq_output_r2[0], "barcode": state.barcode, "pool": state.pool, "output": state.star_output[0], "genomeDir": state.genomeDir, ] }, - toState: {id, result, state -> - state + ["star_output": result.output] - }, + toState: ["star_output": "output"] ) + + // From the mapped wells, create statistics based on the BAM file + // and join the events back to pool level. + pool_ch = mapping_ch | generate_well_statistics.run( + directives: [label: ["verylowmem", "verylowcpu"]], fromState: { id, state -> [ "input": state.star_output.resolve('Aligned.sortedByCoord.out.bam'), @@ -77,39 +73,132 @@ workflow run_wf { }, toState: [ "nrReadsNrGenesPerChrom": "nrReadsNrGenesPerChrom", - "nrReadsNrUMIsPerCB": "nrReadsNrUMIsPerCB", ] ) - | map {id, state -> - [state.pool, id, state] + | map {id, state -> + // Create a special groupKey, such that groupTuple + // knows when all the barcodes have been grouped into 1 event. + // This way the processing is as distributed as possible. + def key = groupKey(state.pool, state.n_barcodes) + def newEvent = [key, state] + return newEvent } - | groupTuple(by: 0, sort: "hash") - | map {id, well_ids, states -> - def collected_state = [ + // Use a custom sorting function because sort: 'hash' + // requires a hash to be calculated on every entry of the state + // This is inefficient when the number of events is large + // (i.e large number or barcodes). + // Sorting on lexographical order of the barcode is sufficient here. + | groupTuple(sort: {a, b -> a.barcode <=> b.barcode}) + | map {id, states -> + // Gather the keys from all states. for some state items, + // we need gather all the different items from across the states + def barcodes = states.collect{it.barcode} + assert barcodes.clone().unique().size() == barcodes.size(), \ + "Error when gathering information for pool ${id}, barcodes are not unique!" + def custom_state = [ "fastq_output_r1": states.collect{it.fastq_output_r1[0]}, "fastq_output_r2": states.collect{it.fastq_output_r2[0]}, + "barcode": barcodes, + "star_output": states.collect{it.star_output}, "nrReadsNrGenesPerChrom": states.collect{it.nrReadsNrGenesPerChrom}, ] - def newState = states[0] + collected_state - [id, newState] + //For many state items, the value is the same across states. + def other_state_keys = states.inject([].toSet()){ current_keys, state -> + def new_keys = current_keys + state.keySet() + return new_keys + }.minus(custom_state.keySet()) + // All other state should have a unique value + def old_state_items = other_state_keys.inject([:]){ old_state, argument_name -> + argument_values = states.collect{it.get(argument_name)}.unique() + assert argument_values.size() == 1, "Arguments should be the same across modalities. Please report this \ + as a bug. Argument name: $argument_name, \ + argument value: $argument_values" + def argument_value + argument_values.each { argument_value = it } + def current_state = old_state + [(argument_name): argument_value] + return current_state + } + + def new_state = custom_state + old_state_items + [id.getGroupTarget(), new_state] } + + // The well statistics are merged on pool level. + pool_statistics_ch = pool_ch | generate_pool_statistics.run( + directives: ["label": ["lowmem", "verylowcpu"]], fromState: [ "nrReadsNrGenesPerChrom": "nrReadsNrGenesPerChrom", ], - toState: {id, result, state -> - state + ["nrReadsNrGenesPerChrom": result.nrReadsNrGenesPerChromPool] - } + toState: [ + "nrReadsNrGenesPerChromPool": "nrReadsNrGenesPerChromPool" + ] + ) + + // The statistics from the STAR logs of different wells are joined + // on pool level + star_logs_ch = pool_ch + | combine_star_logs.run( + directives: ["label": ["lowmem", "verylowcpu"]], + fromState: {id, state -> [ + "star_logs": state.star_output.collect{it.resolve("Log.final.out")}, + "gene_summary_logs": state.star_output.collect{it.resolve("Solo.out/Gene/Summary.csv")}, + "reads_per_gene_logs": state.star_output.collect{it.resolve("ReadsPerGene.out.tab")}, + "barcodes": state.barcode, + "output": state.star_qc_metrics + ] + }, + toState: [ + "star_qc_metrics": "output", + ] + ) + + p_data_ch = star_logs_ch.join(pool_statistics_ch, remainder: true) + | map {id, star_logs_state, pool_statistics_state -> + def newState = star_logs_state + ["nrReadsNrGenesPerChromPool": pool_statistics_state.nrReadsNrGenesPerChromPool] + return [id, newState] + } + | create_pdata.run( + directives: [label: ["lowmem", "lowcpu"]], + fromState: [ + "star_stats_file": "star_qc_metrics", + "nrReadsNrGenesPerChromPool": "nrReadsNrGenesPerChromPool", + ], + toState: ["p_data": "output"], + ) + + output_ch = p_data_ch.join(f_data_ch, remainder: true) + | map {id, p_data_state, f_data_state -> + def newState = p_data_state + ["f_data": f_data_state["f_data"]] + [id, newState] + } + | create_eset.run( + directives: [label: ["lowmem", "lowcpu"]], + fromState: [ + "pDataFile": "p_data", + "fDataFile": "f_data", + "mappingDir": "star_output", + "output": "eset", + "barcodes": "barcode", + "poolName": "pool", + ], + toState: [ + "eset": "output", + ] ) - | niceView() | setState([ - "star_output", - "fastq_output_r1", - "fastq_output_r2", - "star_output", - "nrReadsNrGenesPerChrom", + "star_output": "star_output", + "fastq_output_r1": "fastq_output_r1", + "fastq_output_r2": "fastq_output_r2", + "star_output": "star_output", + "nrReadsNrGenesPerChrom": "nrReadsNrGenesPerChromPool", + "star_qc_metrics": "star_qc_metrics", + "eset": "eset", + "f_data": "f_data", + "p_data": "p_data" ]) + emit: output_ch } diff --git a/src/workflows/htrnaseq/nextflow.config b/src/workflows/htrnaseq/nextflow.config new file mode 100644 index 00000000..5a3b9c84 --- /dev/null +++ b/src/workflows/htrnaseq/nextflow.config @@ -0,0 +1,8 @@ + +params { + rootDir = java.nio.file.Paths.get("$projectDir/../../../").toAbsolutePath().normalize().toString() +} + + +// include common settings +includeConfig("${params.rootDir}/src/config/labels.config") \ No newline at end of file diff --git a/src/workflows/htrnaseq/params.yaml b/src/workflows/htrnaseq/params.yaml deleted file mode 100644 index 348b8a32..00000000 --- a/src/workflows/htrnaseq/params.yaml +++ /dev/null @@ -1,11 +0,0 @@ -param_list: - - input_r1: "gs://viash-hub-test-data/htrnaseq/v1/100k/SRR14730301/VH02001612_S9_R1_001.fastq" - input_r2: "gs://viash-hub-test-data/htrnaseq/v1/100k/SRR14730301/VH02001612_S9_R2_001.fastq" - genomeDir: "gs://viash-hub-test-data/htrnaseq/v1/genomeDir/gencode.v41.star.sparse" - barcodesFasta: "gs://viash-hub-test-data/htrnaseq/v1/2-wells.fasta" - id: sample_one - - input_r1: "gs://viash-hub-test-data/htrnaseq/v1/100k/SRR14730302/VH02001614_S8_R1_001.fastq" - input_r2: "gs://viash-hub-test-data/htrnaseq/v1/100k/SRR14730302/VH02001614_S8_R2_001.fastq" - genomeDir: "gs://viash-hub-test-data/htrnaseq/v1/genomeDir/gencode.v41.star.sparse" - barcodesFasta: "gs://viash-hub-test-data/htrnaseq/v1/2-wells.fasta" - id: sample_two diff --git a/src/workflows/htrnaseq/test.nf b/src/workflows/htrnaseq/test.nf new file mode 100644 index 00000000..2f38249a --- /dev/null +++ b/src/workflows/htrnaseq/test.nf @@ -0,0 +1,45 @@ +nextflow.enable.dsl=2 +targetDir = params.rootDir + "/target/nextflow" + +include { htrnaseq } from targetDir + "/workflows/htrnaseq/main.nf" +include { check_eset } from targetDir + "/integration_test_components/htrnaseq/check_eset/main.nf" + + +params.resources_test = "gs://viash-hub-test-data/htrnaseq/v1/" + +workflow test_wf { + resources_test_file = file(params.resources_test) + input_ch = Channel.fromList([ + [ + id: "sample_one", + input_r1: resources_test_file.resolve("100k/SRR14730301/VH02001612_S9_R1_001.fastq"), + input_r2: resources_test_file.resolve("100k/SRR14730301/VH02001612_S9_R2_001.fastq"), + genomeDir: resources_test_file.resolve("genomeDir/gencode.v41.star.sparse"), + barcodesFasta: resources_test_file.resolve("360-wells.fasta"), + annotation: resources_test_file.resolve("genomeDir/gencode.v41.annotation.gtf.gz") + ], + [ + id: "sample_two", + input_r1: resources_test_file.resolve("100k/SRR14730302/VH02001614_S8_R1_001.fastq"), + input_r2: resources_test_file.resolve("100k/SRR14730302/VH02001614_S8_R2_001.fastq"), + genomeDir: resources_test_file.resolve("genomeDir/gencode.v41.star.sparse"), + barcodesFasta: resources_test_file.resolve("360-wells.fasta"), + annotation: resources_test_file.resolve("genomeDir/gencode.v41.annotation.gtf.gz") + ] + ]) + | map{ state -> [state.id, state] } + | view { "Input: $it" } + | htrnaseq.run( + toState: [ + "eset": "eset", + "star_output": "star_output", + ] + ) + | check_eset.run( + runIf: {id, state -> id == "sample_one"}, + toState: [ + "eset": "eset", + "star_output": "star_output" + ] + ) +} diff --git a/src/workflows/parallel_map_wf/main.nf b/src/workflows/parallel_map_wf/main.nf index 643a0661..c1c03f11 100644 --- a/src/workflows/parallel_map_wf/main.nf +++ b/src/workflows/parallel_map_wf/main.nf @@ -5,21 +5,17 @@ workflow run_wf { main: pool_ch = input_ch | groupWells.run( - fromState: { id, state -> - [ - "input_r1": state.input_r1, - "input_r2": state.input_r2, - "well": state.barcode, - "pool": state.pool, - ] - }, - toState: { id, result, state -> - state + [ - "wells": result.wells, - "input_r1": result.output_r1, - "input_r2": result.output_r2, - ] - } + fromState: [ + "input_r1": "input_r1", + "input_r2": "input_r2", + "well": "barcode", + "pool": "pool", + ], + toState: [ + "wells": "wells", + "input_r1": "output_r1", + "input_r2": "output_r2", + ] ) | parallel_map.run( fromState: { id, state -> @@ -34,36 +30,41 @@ workflow run_wf { "output": state.output, ] }, - toState: { id, result, state -> - state + [ - output: result.output, - ] - }, - directives: [label: ["midmem", "midcpu"]] + toState: ["output": "output"], + directives: ["label": ["highmem", "lowcpu"]], ) - | setState(["output"]) + | setState(["output", "pool"]) + // input_ch is on pool level, while parallel_map + // outputs multiple events per pool. + // Join the results back to pool level input_join_ch = input_ch | map {id, state -> - [state.pool, id, state] + def newEvent = [state.pool, id, state] + return newEvent } + output_ch = input_join_ch.combine(pool_ch, by: 0) | map {pool, well_id, state_well, state_pool -> - well_output = state_pool.output.findAll{star_output_dir -> + def well_output = state_pool.output.findAll{star_output_dir -> def barcodes_list = [] - def barcode_file_regex = ~/.*\/raw\/barcodes\.tsv$/ - star_output_dir.eachFileRecurse{barcode_file -> - if (barcode_file =~ barcode_file_regex) { - assert barcode_file.countLines() == 1, "Expected only one barcode in a single STAR output." - barcodes_list.add(barcode_file.text.trim()) - } - } - assert barcodes_list.size() == 1, "Exactly one file should have matched the barcodes file regex (found: $barcodes_list)." + // Get the barcode from the STAR file. + // One STAR output contains the results for one + // well barcode. We can look for the barcode in + // the 'Solo.out/Gene/raw/barcode.tsv' file. + def barcodes_files = files("${star_output_dir}/Solo.out/Gene/raw/barcodes.tsv") + assert barcodes_files.size() == 1, \ + "Exactly one file should have matched the barcodes files (found: $barcodes_files)." def barcode - barcodes_list.each{ it -> barcode = it } + barcodes_files.each{ it -> + assert it.countLines() == 1, + "Expected only one barcode in a single STAR output." + barcode = it.text.trim() + } return barcode == state_well.barcode } - assert well_output.size() == 1, "Two or more outputs from the mapping seemed to have processed barcode '$barcode'." + assert well_output.size() == 1, \ + "Two or more outputs from the mapping seemed to have processed barcode '$barcode'." [well_id, ["output": well_output[0]]] } diff --git a/src/workflows/well_demultiplex/config.vsh.yaml b/src/workflows/well_demultiplex/config.vsh.yaml index 6a8d03d7..465f8e2c 100644 --- a/src/workflows/well_demultiplex/config.vsh.yaml +++ b/src/workflows/well_demultiplex/config.vsh.yaml @@ -5,13 +5,19 @@ argument_groups: - name: Input arguments arguments: - name: --input_r1 - description: R1 + description: | + Forward reads in FASTQ format. Multiple files can be provided which will + be demultiplexed separately before joining the results for each individual well. type: file required: true + multiple: true - name: --input_r2 - description: R2 + description: | + Reverse reads in FASTQ format. Multiple files can be provided which will + be demultiplexed separately before joining the results for each individual well. type: file required: true + multiple: true - name: --barcodesFasta type: file required: true @@ -58,10 +64,16 @@ test_resources: dependencies: - name: cutadapt repository: bb + - name: concat_text + repository: cb repositories: - name: bb type: vsh repo: biobox + tag: main + - name: cb + type: vsh + repo: craftbox tag: v0.1.0 runners: diff --git a/src/workflows/well_demultiplex/integration_test.sh b/src/workflows/well_demultiplex/integration_test.sh new file mode 100755 index 00000000..59080a53 --- /dev/null +++ b/src/workflows/well_demultiplex/integration_test.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +# get the root of the directory +REPO_ROOT=$(git rev-parse --show-toplevel) + +# ensure that the command below is run from the root of the repository +cd "$REPO_ROOT" + +# Make sure the workflow is built +viash ns build --setup cb --parallel + +export NXF_VER=24.04.4 + +nextflow \ + run . \ + -main-script src/workflows/well_demultiplex/test.nf \ + -config ./src/config/labels.config \ + -entry test_wf \ + -resume \ + -profile docker,local \ + --publish_dir output \ diff --git a/src/workflows/well_demultiplex/main.nf b/src/workflows/well_demultiplex/main.nf index 9fd6207c..317535c0 100644 --- a/src/workflows/well_demultiplex/main.nf +++ b/src/workflows/well_demultiplex/main.nf @@ -4,61 +4,134 @@ workflow run_wf { main: output_ch = input_ch + | flatMap {id, state -> + assert state.input_r1.size() == state.input_r2.size(), "Expected equal number of inputs for R1 and R2" + def n_lanes = state.input_r1.size() + [state.input_r1, state.input_r2].transpose().withIndex().collect{ input_pair, index -> + def single_input_r1 = input_pair[0] + def single_input_r2 = input_pair[1] + def newState = state + ["input_r1": single_input_r1, + "input_r2": single_input_r2, + "pool": id, + "lane_sorting": index, + "n_lanes": n_lanes] + def newId = id + "_" + index + [newId, newState] + } + } | cutadapt.run( - // TODO: Remove hard-coded directives and replace with profiles - directives: [ - cpus: 4 - ], + directives: [label: ["highmem", "midcpu"]], fromState: { id, state -> + def new_output = ("fastq_${state.lane_sorting}/*_001.fastq") [ input: state.input_r1, input_r2: state.input_r2, no_indels: true, action: "none", front_fasta: state.barcodesFasta, - output: "fastq/*_001.fastq" + output: new_output, + error_rate: 0.10, + demultiplex_mode: "single", ] }, toState: { id, result, state -> - [ + def newState = [ + pool: state.pool, + n_lanes: state.n_lanes, output: result.output, + lane_sorting: state.lane_sorting, ] + return newState } ) // Parse the file names to obtain metadata about the output | flatMap{ id, state -> + def pool = state.pool state.output.collect{ p -> def barcode = (p =~ /.*\\/([ACTG]*|unknown)_R?.*/)[0][1] def pair_end = (p =~ /.*_(R[12])_.*/)[0][1] def lane = (p =~ /.*_(L\d+).*/) ? (p =~ /.*_(L\d+).*/)[0][1] : "NA" - def new_id = id + "__" + barcode + def new_id = pool + "__" + barcode + def group_key = groupKey(new_id, state.n_lanes * 2) [ - new_id, + group_key, [ - pool: id, + pool: pool, barcode: barcode, output: p, lane: lane, pair_end: pair_end, - _meta: [ join_id: id ] + lane_sorting: state.lane_sorting, + _meta: [ join_id: pool ] ] ] } } // Group the outputs from across lanes - | groupTuple(by: 0, sort: "hash") - | map {id, states -> + | groupTuple(sort: "hash") + | map {_, states -> def r1_output = states.findAll{ it.pair_end == "R1" }.collect{it.output} def r2_output = states.findAll{ it.pair_end == "R2" }.collect{it.output} + def lane_sorting_r1 = states.findAll{ it.pair_end == "R1" }.collect{it.lane_sorting} + def lane_sorting_r2 = states.findAll{ it.pair_end == "R2" }.collect{it.lane_sorting} + + // At this point, the lane_sorting hold the positios the items in r1_output and r2_output + // should become in a new list. + def r1_output_sorted = new ArrayList(r1_output.size()) + def r2_output_sorted = new ArrayList(r2_output.size()) + + lane_sorting_r1.eachWithIndex { pos, index -> + r1_output_sorted[pos] = r1_output[index] + } + + lane_sorting_r2.eachWithIndex { pos, index -> + r2_output_sorted[pos] = r2_output[index] + } + assert r1_output.size() == r2_output.size() // Here we pick the state from the first item in the list of states // and overwrite the keys which are different across states // TODO: we can assert that these keys are the same def first_state = states[0] def new_id = first_state.pool + "__" + first_state.barcode - def new_state = first_state + ["output_r1": r1_output, "output_r2": r2_output] + def new_state = first_state + ["output_r1": r1_output_sorted, "output_r2": r2_output_sorted] [new_id, new_state] } + // TODO: Expand this into matching a whitelist/blacklist of barcodes + // ... and turn into separate component + | filter{ id, state -> state.barcode != "unknown" } + | concat_text.run( + directives: [label: ["lowmem", "lowcpu"]], + key: "concat_txt_r1", + runIf: {id, state -> state.output_r1.size() > 1}, + fromState: { id, state -> + [ + input: state.output_r1, + gzip_output: false, + output: "${id}_R1.fastq" + ] + }, + toState: { id, result, state -> + def newState = state + [ output_r1: [ result.output ] ] + return newState + } + ) + | concat_text.run( + directives: [label: ["lowmem", "lowcpu"]], + key: "concat_text_r2", + runIf: {id, state -> state.output_r2.size() > 1}, + fromState: { id, state -> + [ + input: state.output_r2, + gzip_output: false, + output: "${id}_R2.fastq", + ] + }, + toState: { id, result, state -> + def newState = state + [ output_r2: [ result.output ] ] + return newState + } + ) | setState(["pool", "barcode", "lane", "_meta", "output_r1", "output_r2"]) emit: diff --git a/src/workflows/well_demultiplex/nextflow.config b/src/workflows/well_demultiplex/nextflow.config index 45949e1e..3643e2fe 100644 --- a/src/workflows/well_demultiplex/nextflow.config +++ b/src/workflows/well_demultiplex/nextflow.config @@ -7,3 +7,5 @@ params { } +// include common settings +includeConfig("${params.rootDir}/src/config/labels.config") \ No newline at end of file diff --git a/src/workflows/well_demultiplex/test.nf b/src/workflows/well_demultiplex/test.nf index 05cc73c1..03d60a45 100644 --- a/src/workflows/well_demultiplex/test.nf +++ b/src/workflows/well_demultiplex/test.nf @@ -1,20 +1,21 @@ include { well_demultiplex } from params.rootDir + "/target/nextflow/workflows/well_demultiplex/main.nf" -base = "gs://viash-hub-test-data/htrnaseq/v1/" +params.resources_test = "gs://viash-hub-test-data/htrnaseq/v1/" workflow test_wf { + resources_test_file = file(params.resources_test) output_ch = Channel.fromList([ [ id: "SRR14730301", - input_r1: base + "100k/SRR14730301/VH02001612_S9_R1_001.fastq", - input_r2: base + "100k/SRR14730301/VH02001612_S9_R2_001.fastq", - barcodesFasta: base + "2-wells.fasta", + input_r1: resources_test_file.resolve("100k/SRR14730301/VH02001612_S9_R1_001.fastq"), + input_r2: resources_test_file.resolve("100k/SRR14730301/VH02001612_S9_R2_001.fastq"), + barcodesFasta: resources_test_file.resolve("2-wells.fasta"), ], [ id: "SRR14730302", - input_r1: base + "100k/SRR14730302/VH02001614_S8_R1_001.fastq", - input_r2: base + "100k/SRR14730302/VH02001614_S8_R2_001.fastq", - barcodesFasta: base + "2-wells.fasta", + input_r1: resources_test_file.resolve("100k/SRR14730302/VH02001614_S8_R1_001.fastq"), + input_r2: resources_test_file.resolve("100k/SRR14730302/VH02001614_S8_R2_001.fastq"), + barcodesFasta: resources_test_file.resolve("2-wells.fasta"), ], ]) | map { state -> [ state.id, state ] } @@ -35,7 +36,7 @@ workflow test_wf { } | toSortedList() | view { output -> - assert output.size() == 6 : "2 samples, each with 2 barcodes and 1 unkown" + assert output.size() == 4 : "2 samples, each with 2 barcodes" } } diff --git a/target/dependencies/vsh/vsh/biobox/v0.1.0/nextflow/cutadapt/.config.vsh.yaml b/target/dependencies/vsh/vsh/biobox/main/nextflow/cutadapt/.config.vsh.yaml similarity index 93% rename from target/dependencies/vsh/vsh/biobox/v0.1.0/nextflow/cutadapt/.config.vsh.yaml rename to target/dependencies/vsh/vsh/biobox/main/nextflow/cutadapt/.config.vsh.yaml index d26efaf8..ed9ca980 100644 --- a/target/dependencies/vsh/vsh/biobox/v0.1.0/nextflow/cutadapt/.config.vsh.yaml +++ b/target/dependencies/vsh/vsh/biobox/main/nextflow/cutadapt/.config.vsh.yaml @@ -1,5 +1,18 @@ name: "cutadapt" -version: "v0.1.0" +version: "main" +authors: +- name: "Toni Verbeiren" + roles: + - "author" + - "maintainer" + info: + links: + github: "tverbeiren" + linkedin: "verbeiren" + organizations: + - name: "Data Intuitive" + href: "https://www.data-intuitive.com" + role: "Data Scientist and CEO" argument_groups: - name: "Specify Adapters for R1" arguments: @@ -238,7 +251,7 @@ argument_groups: direction: "input" multiple: false multiple_sep: ";" - - type: "boolean_false" + - type: "boolean_true" name: "--no_indels" description: "Allow only mismatches in alignments.\n" info: null @@ -273,7 +286,7 @@ argument_groups: description: "Interpret IUPAC wildcards in reads.\n" info: null direction: "input" - - type: "boolean_false" + - type: "boolean_true" name: "--no_match_adapter_wildcards" description: "Do not interpret IUPAC wildcards in adapters.\n" info: null @@ -305,6 +318,26 @@ argument_groups: \ If match is on reverse-complemented version,\noutput that one.\n" info: null direction: "input" +- name: "Demultiplexing options" + arguments: + - type: "string" + name: "--demultiplex_mode" + description: "Enable demultiplexing and set the mode for it.\nWith mode 'unique_dual',\ + \ adapters from the first and second read are used,\nand the indexes from the\ + \ reads are only used in pairs. This implies\n--pair_adapters.\nEnabling mode\ + \ 'combinatorial_dual' allows all combinations of the sets of indexes\non R1\ + \ and R2. It is necessary to write each read pair to an output\nfile depending\ + \ on the adapters found on both R1 and R2.\nMode 'single', uses indexes or barcodes\ + \ located at the 5'\nend of the R1 read (single). \n" + info: null + required: false + choices: + - "single" + - "unique_dual" + - "combinatorial_dual" + direction: "input" + multiple: false + multiple_sep: ";" - name: "Read modifications" arguments: - type: "integer" @@ -685,7 +718,7 @@ engines: id: "docker" image: "python:3.12" target_registry: "images.viash-hub.com" - target_tag: "v0.1.0" + target_tag: "main" namespace_separator: "/" setup: - type: "python" @@ -706,22 +739,23 @@ build_info: engine: "docker|native" output: "target/nextflow/cutadapt" executable: "target/nextflow/cutadapt/main.nf" - viash_version: "0.9.0-RC6" - git_commit: "b84b29747d0635f2ac83ea63b496be9a9edb6724" - git_remote: "https://github.com/viash-hub/biobox" + viash_version: "0.9.0" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" - version: "v0.1.0" + version: "main" description: "A collection of bioinformatics tools for working with sequence data.\n" info: null - viash_version: "0.9.0-RC6" + viash_version: "0.9.0" source: "src" target: "target" config_mods: - ".requirements.commands := ['ps']\n" - ".engines += { type: \"native\" }" - ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'" - - ".engines[.type == 'docker'].target_tag := 'v0.1.0'" + - ".engines[.type == 'docker'].target_tag := 'main'" keywords: - "bioinformatics" - "modules" diff --git a/target/dependencies/vsh/vsh/biobox/v0.1.0/nextflow/cutadapt/main.nf b/target/dependencies/vsh/vsh/biobox/main/nextflow/cutadapt/main.nf similarity index 96% rename from target/dependencies/vsh/vsh/biobox/v0.1.0/nextflow/cutadapt/main.nf rename to target/dependencies/vsh/vsh/biobox/main/nextflow/cutadapt/main.nf index 8956722f..1dc4d2ee 100644 --- a/target/dependencies/vsh/vsh/biobox/v0.1.0/nextflow/cutadapt/main.nf +++ b/target/dependencies/vsh/vsh/biobox/main/nextflow/cutadapt/main.nf @@ -1,13 +1,16 @@ -// cutadapt v0.1.0 +// cutadapt main // -// This wrapper script is auto-generated by viash 0.9.0-RC6 and is thus a -// derivative work thereof. This software comes with ABSOLUTELY NO WARRANTY from -// Data Intuitive. +// This wrapper script is auto-generated by viash 0.9.0 and is thus a derivative +// work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data +// Intuitive. // // The component may contain files which fall under a different license. The // authors of this component should specify the license in the header of such // files, or include a separate license file detailing the licenses of all included // files. +// +// Component authors: +// * Toni Verbeiren (author, maintainer) //////////////////////////// // VDSL3 helper functions // @@ -760,8 +763,11 @@ def runEach(Map args) { def fromState_ = args.fromState def toState_ = args.toState def filter_ = args.filter + def runIf_ = args.runIf def id_ = args.id + assert !runIf_ || runIf_ instanceof Closure: "runEach: must pass a Closure to runIf." + workflow runEachWf { take: input_ch main: @@ -783,7 +789,20 @@ def runEach(Map args) { [new_id] + tup.drop(1) } : filter_ch - def data_ch = id_ch | map{tup -> + def chPassthrough = null + def chRun = null + if (runIf_) { + def idRunIfBranch = id_ch.branch{ tup -> + run: runIf_(tup[0], tup[1], comp_) + passthrough: true + } + chPassthrough = idRunIfBranch.passthrough + chRun = idRunIfBranch.run + } else { + chRun = id_ch + chPassthrough = Channel.empty() + } + def data_ch = chRun | map{tup -> def new_data = tup[1] if (fromState_ instanceof Map) { new_data = fromState_.collectEntries{ key0, key1 -> @@ -821,8 +840,11 @@ def runEach(Map args) { [tup[0], new_state] + tup.drop(3) } : out_ch + + def return_ch = post_ch + | concat(chPassthrough) - post_ch + return_ch } // mix all results @@ -1598,8 +1620,8 @@ def findStates(Map params, Map config) { // construct renameMap if (args.rename_keys) { def renameMap = args.rename_keys.collectEntries{renameString -> - def split = renameString.split(";") - assert split.size() == 2: "Argument 'rename_keys' should be of the form 'newKey:oldKey,newKey:oldKey'" + def split = renameString.split(":") + assert split.size() == 2: "Argument 'rename_keys' should be of the form 'newKey:oldKey', or 'newKey:oldKey;newKey:oldKey' in case of multiple values" split } @@ -1709,7 +1731,9 @@ def publishStates(Map args) { def yamlFilename = yamlTemplate_ .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) // TODO: do the pathnames in state_ match up with the outputFilenames_? @@ -1780,7 +1804,9 @@ def publishStatesByConfig(Map args) { def yamlTemplate = params.containsKey("output_state") ? params.output_state : '$id.$key.state.yaml' def yamlFilename = yamlTemplate .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) def yamlDir = java.nio.file.Paths.get(yamlFilename).getParent() // the processed state is a list of [key, value, inputPath, outputFilename] tuples, where @@ -1822,7 +1848,9 @@ def publishStatesByConfig(Map args) { // instantiate the template def filename = filenameTemplate .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) if (par.multiple) { // if the parameter is multiple: true, the filename // should contain a wildcard '*' that is replaced with @@ -2626,30 +2654,31 @@ def workflowFactory(Map args, Map defaultWfArgs, Map meta) { tuple } - def chModifiedFiltered = workflowArgs.filter ? - chModified | filter{workflowArgs.filter(it)} : - chModified def chRun = null def chPassthrough = null if (workflowArgs.runIf) { - def runIfBranch = chModifiedFiltered.branch{ tup -> + def runIfBranch = chModified.branch{ tup -> run: workflowArgs.runIf(tup[0], tup[1]) passthrough: true } chRun = runIfBranch.run chPassthrough = runIfBranch.passthrough } else { - chRun = chModifiedFiltered + chRun = chModified chPassthrough = Channel.empty() } + def chRunFiltered = workflowArgs.filter ? + chRun | filter{workflowArgs.filter(it)} : + chRun + def chArgs = workflowArgs.fromState ? - chRun | map{ + chRunFiltered | map{ def new_data = workflowArgs.fromState(it.take(2)) [it[0], new_data] } : - chRun | map {tup -> tup.take(2)} + chRunFiltered | map {tup -> tup.take(2)} // fill in defaults def chArgsWithDefaults = chArgs @@ -2720,7 +2749,7 @@ def workflowFactory(Map args, Map defaultWfArgs, Map meta) { // | view{"chInitialOutput: ${it.take(3)}"} // join the output [prev_id, new_id, output] with the previous state [prev_id, state, ...] - def chNewState = safeJoin(chInitialOutput, chModifiedFiltered, key_) + def chNewState = safeJoin(chInitialOutput, chRunFiltered, key_) // input tuple format: [join_id, id, output, prev_state, ...] // output tuple format: [join_id, id, new_state, ...] | map{ tup -> @@ -2779,7 +2808,29 @@ meta = [ "resources_dir": moduleDir.toRealPath().normalize(), "config": processConfig(readJsonBlob('''{ "name" : "cutadapt", - "version" : "v0.1.0", + "version" : "main", + "authors" : [ + { + "name" : "Toni Verbeiren", + "roles" : [ + "author", + "maintainer" + ], + "info" : { + "links" : { + "github" : "tverbeiren", + "linkedin" : "verbeiren" + }, + "organizations" : [ + { + "name" : "Data Intuitive", + "href" : "https://www.data-intuitive.com", + "role" : "Data Scientist and CEO" + } + ] + } + } + ], "argument_groups" : [ { "name" : "Specify Adapters for R1", @@ -3012,7 +3063,7 @@ meta = [ "multiple_sep" : ";" }, { - "type" : "boolean_false", + "type" : "boolean_true", "name" : "--no_indels", "description" : "Allow only mismatches in alignments.\n", "direction" : "input" @@ -3054,7 +3105,7 @@ meta = [ "direction" : "input" }, { - "type" : "boolean_false", + "type" : "boolean_true", "name" : "--no_match_adapter_wildcards", "description" : "Do not interpret IUPAC wildcards in adapters.\n", "direction" : "input" @@ -3089,6 +3140,25 @@ meta = [ } ] }, + { + "name" : "Demultiplexing options", + "arguments" : [ + { + "type" : "string", + "name" : "--demultiplex_mode", + "description" : "Enable demultiplexing and set the mode for it.\nWith mode 'unique_dual', adapters from the first and second read are used,\nand the indexes from the reads are only used in pairs. This implies\n--pair_adapters.\nEnabling mode 'combinatorial_dual' allows all combinations of the sets of indexes\non R1 and R2. It is necessary to write each read pair to an output\nfile depending on the adapters found on both R1 and R2.\nMode 'single', uses indexes or barcodes located at the 5'\nend of the R1 read (single). \n", + "required" : false, + "choices" : [ + "single", + "unique_dual", + "combinatorial_dual" + ], + "direction" : "input", + "multiple" : false, + "multiple_sep" : ";" + } + ] + }, { "name" : "Read modifications", "arguments" : [ @@ -3519,7 +3589,7 @@ meta = [ "id" : "docker", "image" : "python:3.12", "target_registry" : "images.viash-hub.com", - "target_tag" : "v0.1.0", + "target_tag" : "main", "namespace_separator" : "/", "setup" : [ { @@ -3548,22 +3618,23 @@ meta = [ "runner" : "nextflow", "engine" : "docker|native", "output" : "target/nextflow/cutadapt", - "viash_version" : "0.9.0-RC6", - "git_commit" : "b84b29747d0635f2ac83ea63b496be9a9edb6724", - "git_remote" : "https://github.com/viash-hub/biobox" + "viash_version" : "0.9.0", + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", - "version" : "v0.1.0", + "version" : "main", "description" : "A collection of bioinformatics tools for working with sequence data.\n", - "viash_version" : "0.9.0-RC6", + "viash_version" : "0.9.0", "source" : "src", "target" : "target", "config_mods" : [ ".requirements.commands := ['ps']\n", ".engines += { type: \\"native\\" }", ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'", - ".engines[.type == 'docker'].target_tag := 'v0.1.0'" + ".engines[.type == 'docker'].target_tag := 'main'" ], "keywords" : [ "bioinformatics", @@ -3618,6 +3689,7 @@ $( if [ ! -z ${VIASH_PAR_MATCH_READ_WILDCARDS+x} ]; then echo "${VIASH_PAR_MATCH $( if [ ! -z ${VIASH_PAR_NO_MATCH_ADAPTER_WILDCARDS+x} ]; then echo "${VIASH_PAR_NO_MATCH_ADAPTER_WILDCARDS}" | sed "s#'#'\\"'\\"'#g;s#.*#par_no_match_adapter_wildcards='&'#" ; else echo "# par_no_match_adapter_wildcards="; fi ) $( if [ ! -z ${VIASH_PAR_ACTION+x} ]; then echo "${VIASH_PAR_ACTION}" | sed "s#'#'\\"'\\"'#g;s#.*#par_action='&'#" ; else echo "# par_action="; fi ) $( if [ ! -z ${VIASH_PAR_REVCOMP+x} ]; then echo "${VIASH_PAR_REVCOMP}" | sed "s#'#'\\"'\\"'#g;s#.*#par_revcomp='&'#" ; else echo "# par_revcomp="; fi ) +$( if [ ! -z ${VIASH_PAR_DEMULTIPLEX_MODE+x} ]; then echo "${VIASH_PAR_DEMULTIPLEX_MODE}" | sed "s#'#'\\"'\\"'#g;s#.*#par_demultiplex_mode='&'#" ; else echo "# par_demultiplex_mode="; fi ) $( if [ ! -z ${VIASH_PAR_CUT+x} ]; then echo "${VIASH_PAR_CUT}" | sed "s#'#'\\"'\\"'#g;s#.*#par_cut='&'#" ; else echo "# par_cut="; fi ) $( if [ ! -z ${VIASH_PAR_CUT_R2+x} ]; then echo "${VIASH_PAR_CUT_R2}" | sed "s#'#'\\"'\\"'#g;s#.*#par_cut_r2='&'#" ; else echo "# par_cut_r2="; fi ) $( if [ ! -z ${VIASH_PAR_NEXTSEQ_TRIM+x} ]; then echo "${VIASH_PAR_NEXTSEQ_TRIM}" | sed "s#'#'\\"'\\"'#g;s#.*#par_nextseq_trim='&'#" ; else echo "# par_nextseq_trim="; fi ) @@ -3754,9 +3826,9 @@ debug # Input arguments ########################################################### echo ">> Parsing input arguments" -[[ "\\$par_no_indels" == "true" ]] && unset par_no_indels +[[ "\\$par_no_indels" == "false" ]] && unset par_no_indels [[ "\\$par_match_read_wildcards" == "false" ]] && unset par_match_read_wildcards -[[ "\\$par_no_match_adapter_wildcards" == "true" ]] && unset par_no_match_adapter_wildcards +[[ "\\$par_no_match_adapter_wildcards" == "false" ]] && unset par_no_match_adapter_wildcards [[ "\\$par_revcomp" == "false" ]] && unset par_revcomp input_args=\\$(echo \\\\ @@ -3766,7 +3838,7 @@ input_args=\\$(echo \\\\ \\${par_overlap:+--overlap "\\${par_overlap}"} \\\\ \\${par_match_read_wildcards:+--match-read-wildcards} \\\\ \\${par_no_match_adapter_wildcards:+--no-match-adapter-wildcards} \\\\ - \\${par_action:+--action "\\${par_action}"} \\\\ + \\${par_action:+--action="\\${par_action}"} \\\\ \\${par_revcomp:+--revcomp} \\\\ ) debug "Arguments to cutadapt:" @@ -3785,7 +3857,7 @@ mod_args=\\$(echo \\\\ \\${par_cut_r2:+--cut_r2 "\\${par_cut_r2}"} \\\\ \\${par_nextseq_trim:+--nextseq-trim "\\${par_nextseq_trim}"} \\\\ \\${par_quality_cutoff:+--quality-cutoff "\\${par_quality_cutoff}"} \\\\ - \\${par_quality_cutoff_r2:+--quality-cutoff_r2 "\\${par_quality_cutoff_r2}"} \\\\ + \\${par_quality_cutoff_r2:+-Q "\\${par_quality_cutoff_r2}"} \\\\ \\${par_quality_base:+--quality-base "\\${par_quality_base}"} \\\\ \\${par_poly_a:+--poly-a} \\\\ \\${par_length:+--length "\\${par_length}"} \\\\ @@ -3854,14 +3926,35 @@ else ext="fasta" fi -if [ \\$mode = "se" ]; then +demultiplex_mode="\\$par_demultiplex_mode" +if [[ \\$mode == "se" ]]; then + if [[ "\\$demultiplex_mode" == "unique_dual" ]] || [[ "\\$demultiplex_mode" == "combinatorial_dual" ]]; then + echo "Demultiplexing dual indexes is not possible with single-end data." + exit 1 + fi + prefix="trimmed_" + if [[ ! -z "\\$demultiplex_mode" ]]; then + prefix="{name}_" + fi output_args=\\$(echo \\\\ - --output "\\$output_dir/{name}_001.\\$ext" \\\\ + --output "\\$output_dir/\\${prefix}001.\\$ext" \\\\ ) else + demultiplex_indicator_r1='{name}_' + demultiplex_indicator_r2=\\$demultiplex_indicator_r1 + if [[ "\\$demultiplex_mode" == "combinatorial_dual" ]]; then + demultiplex_indicator_r1='{name1}_{name2}_' + demultiplex_indicator_r2='{name1}_{name2}_' + fi + prefix_r1="trimmed_" + prefix_r2="trimmed_" + if [[ ! -z "\\$demultiplex_mode" ]]; then + prefix_r1=\\$demultiplex_indicator_r1 + prefix_r2=\\$demultiplex_indicator_r2 + fi output_args=\\$(echo \\\\ - --output "\\$output_dir/{name}_R1_001.\\$ext" \\\\ - --paired-output "\\$output_dir/{name}_R2_001.\\$ext" \\\\ + --output "\\$output_dir/\\${prefix_r1}R1_001.\\$ext" \\\\ + --paired-output "\\$output_dir/\\${prefix_r2}R2_001.\\$ext" \\\\ ) fi @@ -3973,7 +4066,11 @@ def vdsl3WorkflowFactory(Map args, Map meta, String rawScript) { val = val.join(par.multiple_sep) } if (par.direction == "output" && par.type == "file") { - val = val.replaceAll('\\$id', id).replaceAll('\\$key', key) + val = val + .replaceAll('\\$id', id) + .replaceAll('\\$\\{id\\}', id) + .replaceAll('\\$key', key) + .replaceAll('\\$\\{key\\}', key) } [parName, val] } @@ -4104,7 +4201,8 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) { def createParentStr = meta.config.allArguments .findAll { it.type == "file" && it.direction == "output" && it.create_parent } .collect { par -> - "\${ args.containsKey(\"${par.plainName}\") ? \"mkdir_parent \\\"\" + (args[\"${par.plainName}\"] instanceof String ? args[\"${par.plainName}\"] : args[\"${par.plainName}\"].join('\" \"')) + \"\\\"\" : \"\" }" + def contents = "args[\"${par.plainName}\"] instanceof List ? args[\"${par.plainName}\"].join('\" \"') : args[\"${par.plainName}\"]" + "\${ args.containsKey(\"${par.plainName}\") ? \"mkdir_parent '\" + escapeText(${contents}) + \"'\" : \"\" }" } .join("\n") @@ -4112,8 +4210,8 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) { def inputFileExports = meta.config.allArguments .findAll { it.type == "file" && it.direction.toLowerCase() == "input" } .collect { par -> - def viash_par_contents = "(viash_par_${par.plainName} instanceof List ? viash_par_${par.plainName}.join(\"${par.multiple_sep}\") : viash_par_${par.plainName})" - "\n\${viash_par_${par.plainName}.empty ? \"\" : \"export VIASH_PAR_${par.plainName.toUpperCase()}=\\\"\" + ${viash_par_contents} + \"\\\"\"}" + def contents = "viash_par_${par.plainName} instanceof List ? viash_par_${par.plainName}.join(\"${par.multiple_sep}\") : viash_par_${par.plainName}" + "\n\${viash_par_${par.plainName}.empty ? \"\" : \"export VIASH_PAR_${par.plainName.toUpperCase()}='\" + escapeText(${contents}) + \"'\"}" } // NOTE: if using docker, use /tmp instead of tmpDir! @@ -4150,6 +4248,7 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) { def procStr = """nextflow.enable.dsl=2 | + |def escapeText = { s -> s.toString().replaceAll("'", "'\\\"'\\\"'") } |process $procKey {$drctvStrs |input: | tuple val(id)$inputPaths, val(args), path(resourcesDir, stageAs: ".viash_meta_resources") @@ -4161,10 +4260,9 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) { |$stub |\"\"\" |script:$assertStr - |def escapeText = { s -> s.toString().replaceAll('([`"])', '\\\\\\\\\$1') } |def parInject = args | .findAll{key, value -> value != null} - | .collect{key, value -> "export VIASH_PAR_\${key.toUpperCase()}=\\\"\${escapeText(value)}\\\""} + | .collect{key, value -> "export VIASH_PAR_\${key.toUpperCase()}='\${escapeText(value)}'"} | .join("\\n") |\"\"\" |# meta exports @@ -4249,7 +4347,7 @@ meta["defaults"] = [ "container" : { "registry" : "images.viash-hub.com", "image" : "vsh/biobox/cutadapt", - "tag" : "v0.1.0" + "tag" : "main" }, "tag" : "$id" }'''), diff --git a/target/dependencies/vsh/vsh/biobox/v0.1.0/nextflow/cutadapt/nextflow.config b/target/dependencies/vsh/vsh/biobox/main/nextflow/cutadapt/nextflow.config similarity index 98% rename from target/dependencies/vsh/vsh/biobox/v0.1.0/nextflow/cutadapt/nextflow.config rename to target/dependencies/vsh/vsh/biobox/main/nextflow/cutadapt/nextflow.config index 0b8b606f..629e04bf 100644 --- a/target/dependencies/vsh/vsh/biobox/v0.1.0/nextflow/cutadapt/nextflow.config +++ b/target/dependencies/vsh/vsh/biobox/main/nextflow/cutadapt/nextflow.config @@ -2,8 +2,9 @@ manifest { name = 'cutadapt' mainScript = 'main.nf' nextflowVersion = '!>=20.12.1-edge' - version = 'v0.1.0' + version = 'main' description = 'Cutadapt removes adapter sequences from high-throughput sequencing reads.\n' + author = 'Toni Verbeiren' } process.container = 'nextflow/bash:latest' diff --git a/target/dependencies/vsh/vsh/biobox/v0.1.0/nextflow/cutadapt/nextflow_schema.json b/target/dependencies/vsh/vsh/biobox/main/nextflow/cutadapt/nextflow_schema.json similarity index 90% rename from target/dependencies/vsh/vsh/biobox/v0.1.0/nextflow/cutadapt/nextflow_schema.json rename to target/dependencies/vsh/vsh/biobox/main/nextflow/cutadapt/nextflow_schema.json index 2438aca0..09c66f90 100644 --- a/target/dependencies/vsh/vsh/biobox/v0.1.0/nextflow/cutadapt/nextflow_schema.json +++ b/target/dependencies/vsh/vsh/biobox/main/nextflow/cutadapt/nextflow_schema.json @@ -17,8 +17,8 @@ "adapter": { "type": "string", - "description": "Type: List of `string`, multiple_sep: `\":\"`. Sequence of an adapter ligated to the 3\u0027 end (paired data:\nof the first read)", - "help_text": "Type: List of `string`, multiple_sep: `\":\"`. Sequence of an adapter ligated to the 3\u0027 end (paired data:\nof the first read). The adapter and subsequent bases are\ntrimmed. If a \u0027$\u0027 character is appended (\u0027anchoring\u0027), the\nadapter is only found if it is a suffix of the read.\n" + "description": "Type: List of `string`, multiple_sep: `\";\"`. Sequence of an adapter ligated to the 3\u0027 end (paired data:\nof the first read)", + "help_text": "Type: List of `string`, multiple_sep: `\";\"`. Sequence of an adapter ligated to the 3\u0027 end (paired data:\nof the first read). The adapter and subsequent bases are\ntrimmed. If a \u0027$\u0027 character is appended (\u0027anchoring\u0027), the\nadapter is only found if it is a suffix of the read.\n" } @@ -27,8 +27,8 @@ "front": { "type": "string", - "description": "Type: List of `string`, multiple_sep: `\":\"`. Sequence of an adapter ligated to the 5\u0027 end (paired data:\nof the first read)", - "help_text": "Type: List of `string`, multiple_sep: `\":\"`. Sequence of an adapter ligated to the 5\u0027 end (paired data:\nof the first read). The adapter and any preceding bases\nare trimmed. Partial matches at the 5\u0027 end are allowed. If\na \u0027^\u0027 character is prepended (\u0027anchoring\u0027), the adapter is\nonly found if it is a prefix of the read.\n" + "description": "Type: List of `string`, multiple_sep: `\";\"`. Sequence of an adapter ligated to the 5\u0027 end (paired data:\nof the first read)", + "help_text": "Type: List of `string`, multiple_sep: `\";\"`. Sequence of an adapter ligated to the 5\u0027 end (paired data:\nof the first read). The adapter and any preceding bases\nare trimmed. Partial matches at the 5\u0027 end are allowed. If\na \u0027^\u0027 character is prepended (\u0027anchoring\u0027), the adapter is\nonly found if it is a prefix of the read.\n" } @@ -37,8 +37,8 @@ "anywhere": { "type": "string", - "description": "Type: List of `string`, multiple_sep: `\":\"`. Sequence of an adapter that may be ligated to the 5\u0027 or 3\u0027\nend (paired data: of the first read)", - "help_text": "Type: List of `string`, multiple_sep: `\":\"`. Sequence of an adapter that may be ligated to the 5\u0027 or 3\u0027\nend (paired data: of the first read). Both types of\nmatches as described under -a and -g are allowed. If the\nfirst base of the read is part of the match, the behavior\nis as with -g, otherwise as with -a. This option is mostly\nfor rescuing failed library preparations - do not use if\nyou know which end your adapter was ligated to!\n" + "description": "Type: List of `string`, multiple_sep: `\";\"`. Sequence of an adapter that may be ligated to the 5\u0027 or 3\u0027\nend (paired data: of the first read)", + "help_text": "Type: List of `string`, multiple_sep: `\";\"`. Sequence of an adapter that may be ligated to the 5\u0027 or 3\u0027\nend (paired data: of the first read). Both types of\nmatches as described under -a and -g are allowed. If the\nfirst base of the read is part of the match, the behavior\nis as with -g, otherwise as with -a. This option is mostly\nfor rescuing failed library preparations - do not use if\nyou know which end your adapter was ligated to!\n" } @@ -57,8 +57,8 @@ "adapter_fasta": { "type": "string", - "description": "Type: List of `file`, multiple_sep: `\":\"`. Fasta file containing sequences of an adapter ligated to the 3\u0027 end (paired data:\nof the first read)", - "help_text": "Type: List of `file`, multiple_sep: `\":\"`. Fasta file containing sequences of an adapter ligated to the 3\u0027 end (paired data:\nof the first read). The adapter and subsequent bases are\ntrimmed. If a \u0027$\u0027 character is appended (\u0027anchoring\u0027), the\nadapter is only found if it is a suffix of the read.\n" + "description": "Type: List of `file`, multiple_sep: `\";\"`. Fasta file containing sequences of an adapter ligated to the 3\u0027 end (paired data:\nof the first read)", + "help_text": "Type: List of `file`, multiple_sep: `\";\"`. Fasta file containing sequences of an adapter ligated to the 3\u0027 end (paired data:\nof the first read). The adapter and subsequent bases are\ntrimmed. If a \u0027$\u0027 character is appended (\u0027anchoring\u0027), the\nadapter is only found if it is a suffix of the read.\n" } @@ -97,8 +97,8 @@ "adapter_r2": { "type": "string", - "description": "Type: List of `string`, multiple_sep: `\":\"`. Sequence of an adapter ligated to the 3\u0027 end (paired data:\nof the first read)", - "help_text": "Type: List of `string`, multiple_sep: `\":\"`. Sequence of an adapter ligated to the 3\u0027 end (paired data:\nof the first read). The adapter and subsequent bases are\ntrimmed. If a \u0027$\u0027 character is appended (\u0027anchoring\u0027), the\nadapter is only found if it is a suffix of the read.\n" + "description": "Type: List of `string`, multiple_sep: `\";\"`. Sequence of an adapter ligated to the 3\u0027 end (paired data:\nof the first read)", + "help_text": "Type: List of `string`, multiple_sep: `\";\"`. Sequence of an adapter ligated to the 3\u0027 end (paired data:\nof the first read). The adapter and subsequent bases are\ntrimmed. If a \u0027$\u0027 character is appended (\u0027anchoring\u0027), the\nadapter is only found if it is a suffix of the read.\n" } @@ -107,8 +107,8 @@ "front_r2": { "type": "string", - "description": "Type: List of `string`, multiple_sep: `\":\"`. Sequence of an adapter ligated to the 5\u0027 end (paired data:\nof the first read)", - "help_text": "Type: List of `string`, multiple_sep: `\":\"`. Sequence of an adapter ligated to the 5\u0027 end (paired data:\nof the first read). The adapter and any preceding bases\nare trimmed. Partial matches at the 5\u0027 end are allowed. If\na \u0027^\u0027 character is prepended (\u0027anchoring\u0027), the adapter is\nonly found if it is a prefix of the read.\n" + "description": "Type: List of `string`, multiple_sep: `\";\"`. Sequence of an adapter ligated to the 5\u0027 end (paired data:\nof the first read)", + "help_text": "Type: List of `string`, multiple_sep: `\";\"`. Sequence of an adapter ligated to the 5\u0027 end (paired data:\nof the first read). The adapter and any preceding bases\nare trimmed. Partial matches at the 5\u0027 end are allowed. If\na \u0027^\u0027 character is prepended (\u0027anchoring\u0027), the adapter is\nonly found if it is a prefix of the read.\n" } @@ -117,8 +117,8 @@ "anywhere_r2": { "type": "string", - "description": "Type: List of `string`, multiple_sep: `\":\"`. Sequence of an adapter that may be ligated to the 5\u0027 or 3\u0027\nend (paired data: of the first read)", - "help_text": "Type: List of `string`, multiple_sep: `\":\"`. Sequence of an adapter that may be ligated to the 5\u0027 or 3\u0027\nend (paired data: of the first read). Both types of\nmatches as described under -a and -g are allowed. If the\nfirst base of the read is part of the match, the behavior\nis as with -g, otherwise as with -a. This option is mostly\nfor rescuing failed library preparations - do not use if\nyou know which end your adapter was ligated to!\n" + "description": "Type: List of `string`, multiple_sep: `\";\"`. Sequence of an adapter that may be ligated to the 5\u0027 or 3\u0027\nend (paired data: of the first read)", + "help_text": "Type: List of `string`, multiple_sep: `\";\"`. Sequence of an adapter that may be ligated to the 5\u0027 or 3\u0027\nend (paired data: of the first read). Both types of\nmatches as described under -a and -g are allowed. If the\nfirst base of the read is part of the match, the behavior\nis as with -g, otherwise as with -a. This option is mostly\nfor rescuing failed library preparations - do not use if\nyou know which end your adapter was ligated to!\n" } @@ -251,10 +251,10 @@ "no_indels": { "type": "boolean", - "description": "Type: `boolean_false`, default: `true`. Allow only mismatches in alignments", - "help_text": "Type: `boolean_false`, default: `true`. Allow only mismatches in alignments.\n" + "description": "Type: `boolean_true`, default: `false`. Allow only mismatches in alignments", + "help_text": "Type: `boolean_true`, default: `false`. Allow only mismatches in alignments.\n" , - "default": "True" + "default": "False" } @@ -293,10 +293,10 @@ "no_match_adapter_wildcards": { "type": "boolean", - "description": "Type: `boolean_false`, default: `true`. Do not interpret IUPAC wildcards in adapters", - "help_text": "Type: `boolean_false`, default: `true`. Do not interpret IUPAC wildcards in adapters.\n" + "description": "Type: `boolean_true`, default: `false`. Do not interpret IUPAC wildcards in adapters", + "help_text": "Type: `boolean_true`, default: `false`. Do not interpret IUPAC wildcards in adapters.\n" , - "default": "True" + "default": "False" } @@ -323,6 +323,28 @@ } +} +}, + + + "demultiplexing options" : { + "title": "Demultiplexing options", + "type": "object", + "description": "No description", + "properties": { + + + "demultiplex_mode": { + "type": + "string", + "description": "Type: `string`, choices: ``single`, `unique_dual`, `combinatorial_dual``. Enable demultiplexing and set the mode for it", + "help_text": "Type: `string`, choices: ``single`, `unique_dual`, `combinatorial_dual``. Enable demultiplexing and set the mode for it.\nWith mode \u0027unique_dual\u0027, adapters from the first and second read are used,\nand the indexes from the reads are only used in pairs. This implies\n--pair_adapters.\nEnabling mode \u0027combinatorial_dual\u0027 allows all combinations of the sets of indexes\non R1 and R2. It is necessary to write each read pair to an output\nfile depending on the adapters found on both R1 and R2.\nMode \u0027single\u0027, uses indexes or barcodes located at the 5\u0027\nend of the R1 read (single). \n", + "enum": ["single", "unique_dual", "combinatorial_dual"] + + + } + + } }, @@ -337,8 +359,8 @@ "cut": { "type": "string", - "description": "Type: List of `integer`, multiple_sep: `\":\"`. Remove LEN bases from each read (or R1 if paired; use --cut_r2\noption for R2)", - "help_text": "Type: List of `integer`, multiple_sep: `\":\"`. Remove LEN bases from each read (or R1 if paired; use --cut_r2\noption for R2). If LEN is positive, remove bases from the\nbeginning. If LEN is negative, remove bases from the end.\nCan be used twice if LENs have different signs. Applied\n*before* adapter trimming.\n" + "description": "Type: List of `integer`, multiple_sep: `\";\"`. Remove LEN bases from each read (or R1 if paired; use --cut_r2\noption for R2)", + "help_text": "Type: List of `integer`, multiple_sep: `\";\"`. Remove LEN bases from each read (or R1 if paired; use --cut_r2\noption for R2). If LEN is positive, remove bases from the\nbeginning. If LEN is negative, remove bases from the end.\nCan be used twice if LENs have different signs. Applied\n*before* adapter trimming.\n" } @@ -347,8 +369,8 @@ "cut_r2": { "type": "string", - "description": "Type: List of `integer`, multiple_sep: `\":\"`. Remove LEN bases from each read (for R2)", - "help_text": "Type: List of `integer`, multiple_sep: `\":\"`. Remove LEN bases from each read (for R2). If LEN is positive, remove bases from the\nbeginning. If LEN is negative, remove bases from the end.\nCan be used twice if LENs have different signs. Applied\n*before* adapter trimming.\n" + "description": "Type: List of `integer`, multiple_sep: `\";\"`. Remove LEN bases from each read (for R2)", + "help_text": "Type: List of `integer`, multiple_sep: `\";\"`. Remove LEN bases from each read (for R2). If LEN is positive, remove bases from the\nbeginning. If LEN is negative, remove bases from the end.\nCan be used twice if LENs have different signs. Applied\n*before* adapter trimming.\n" } @@ -616,8 +638,8 @@ "output": { "type": "string", - "description": "Type: List of `file`, required, default: `$id.$key.output_*.fast[a,q]`, example: `fastq/*_001.fast[a,q]`, multiple_sep: `\":\"`. Glob pattern for matching the expected output files", - "help_text": "Type: List of `file`, required, default: `$id.$key.output_*.fast[a,q]`, example: `fastq/*_001.fast[a,q]`, multiple_sep: `\":\"`. Glob pattern for matching the expected output files.\nShould include `$output_dir`.\n" + "description": "Type: List of `file`, required, default: `$id.$key.output_*.fast[a,q]`, example: `fastq/*_001.fast[a,q]`, multiple_sep: `\";\"`. Glob pattern for matching the expected output files", + "help_text": "Type: List of `file`, required, default: `$id.$key.output_*.fast[a,q]`, example: `fastq/*_001.fast[a,q]`, multiple_sep: `\";\"`. Glob pattern for matching the expected output files.\nShould include `$output_dir`.\n" , "default": "$id.$key.output_*.fast[a,q]" } @@ -726,6 +748,10 @@ "$ref": "#/definitions/input parameters" }, + { + "$ref": "#/definitions/demultiplexing options" + }, + { "$ref": "#/definitions/read modifications" }, diff --git a/target/dependencies/vsh/vsh/craftbox/concat_text/nextflow/concat_text/.config.vsh.yaml b/target/dependencies/vsh/vsh/craftbox/v0.1.0/nextflow/concat_text/.config.vsh.yaml similarity index 95% rename from target/dependencies/vsh/vsh/craftbox/concat_text/nextflow/concat_text/.config.vsh.yaml rename to target/dependencies/vsh/vsh/craftbox/v0.1.0/nextflow/concat_text/.config.vsh.yaml index 11db8f52..d9abf799 100644 --- a/target/dependencies/vsh/vsh/craftbox/concat_text/nextflow/concat_text/.config.vsh.yaml +++ b/target/dependencies/vsh/vsh/craftbox/v0.1.0/nextflow/concat_text/.config.vsh.yaml @@ -1,5 +1,5 @@ name: "concat_text" -version: "concat_text" +version: "v0.1.0" authors: - name: "Toni Verbeiren" roles: @@ -152,7 +152,7 @@ engines: id: "docker" image: "alpine:latest" target_registry: "images.viash-hub.com" - target_tag: "concat_text" + target_tag: "v0.1.0" namespace_separator: "/" setup: - type: "apk" @@ -170,22 +170,22 @@ build_info: engine: "docker|native" output: "target/nextflow/concat_text" executable: "target/nextflow/concat_text/main.nf" - viash_version: "0.9.0-RC6" - git_commit: "53228705a20c6764e3f0ae9ed2147e99009d7c34" + viash_version: "0.9.0" + git_commit: "3143dd6e4c2c3107f79639fe8602d92f3141ad82" git_remote: "https://github.com/viash-hub/craftbox" package_config: name: "craftbox" - version: "concat_text" + version: "v0.1.0" description: "A collection of custom-tailored scripts and applied tools.\n" info: null - viash_version: "0.9.0-RC6" + viash_version: "0.9.0" source: "src" target: "target" config_mods: - ".requirements.commands := ['ps']\n" - ".engines += { type: \"native\" }" - ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'" - - ".engines[.type == 'docker'].target_tag := 'concat_text'" + - ".engines[.type == 'docker'].target_tag := 'v0.1.0'" keywords: - "scripts" - "custom" diff --git a/target/dependencies/vsh/vsh/craftbox/concat_text/nextflow/concat_text/main.nf b/target/dependencies/vsh/vsh/craftbox/v0.1.0/nextflow/concat_text/main.nf similarity index 97% rename from target/dependencies/vsh/vsh/craftbox/concat_text/nextflow/concat_text/main.nf rename to target/dependencies/vsh/vsh/craftbox/v0.1.0/nextflow/concat_text/main.nf index 4f81a248..cb758a83 100644 --- a/target/dependencies/vsh/vsh/craftbox/concat_text/nextflow/concat_text/main.nf +++ b/target/dependencies/vsh/vsh/craftbox/v0.1.0/nextflow/concat_text/main.nf @@ -1,8 +1,8 @@ -// concat_text concat_text +// concat_text v0.1.0 // -// This wrapper script is auto-generated by viash 0.9.0-RC6 and is thus a -// derivative work thereof. This software comes with ABSOLUTELY NO WARRANTY from -// Data Intuitive. +// This wrapper script is auto-generated by viash 0.9.0 and is thus a derivative +// work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data +// Intuitive. // // The component may contain files which fall under a different license. The // authors of this component should specify the license in the header of such @@ -764,8 +764,11 @@ def runEach(Map args) { def fromState_ = args.fromState def toState_ = args.toState def filter_ = args.filter + def runIf_ = args.runIf def id_ = args.id + assert !runIf_ || runIf_ instanceof Closure: "runEach: must pass a Closure to runIf." + workflow runEachWf { take: input_ch main: @@ -787,7 +790,20 @@ def runEach(Map args) { [new_id] + tup.drop(1) } : filter_ch - def data_ch = id_ch | map{tup -> + def chPassthrough = null + def chRun = null + if (runIf_) { + def idRunIfBranch = id_ch.branch{ tup -> + run: runIf_(tup[0], tup[1], comp_) + passthrough: true + } + chPassthrough = idRunIfBranch.passthrough + chRun = idRunIfBranch.run + } else { + chRun = id_ch + chPassthrough = Channel.empty() + } + def data_ch = chRun | map{tup -> def new_data = tup[1] if (fromState_ instanceof Map) { new_data = fromState_.collectEntries{ key0, key1 -> @@ -825,8 +841,11 @@ def runEach(Map args) { [tup[0], new_state] + tup.drop(3) } : out_ch + + def return_ch = post_ch + | concat(chPassthrough) - post_ch + return_ch } // mix all results @@ -1602,8 +1621,8 @@ def findStates(Map params, Map config) { // construct renameMap if (args.rename_keys) { def renameMap = args.rename_keys.collectEntries{renameString -> - def split = renameString.split(";") - assert split.size() == 2: "Argument 'rename_keys' should be of the form 'newKey:oldKey,newKey:oldKey'" + def split = renameString.split(":") + assert split.size() == 2: "Argument 'rename_keys' should be of the form 'newKey:oldKey', or 'newKey:oldKey;newKey:oldKey' in case of multiple values" split } @@ -1713,7 +1732,9 @@ def publishStates(Map args) { def yamlFilename = yamlTemplate_ .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) // TODO: do the pathnames in state_ match up with the outputFilenames_? @@ -1784,7 +1805,9 @@ def publishStatesByConfig(Map args) { def yamlTemplate = params.containsKey("output_state") ? params.output_state : '$id.$key.state.yaml' def yamlFilename = yamlTemplate .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) def yamlDir = java.nio.file.Paths.get(yamlFilename).getParent() // the processed state is a list of [key, value, inputPath, outputFilename] tuples, where @@ -1826,7 +1849,9 @@ def publishStatesByConfig(Map args) { // instantiate the template def filename = filenameTemplate .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) if (par.multiple) { // if the parameter is multiple: true, the filename // should contain a wildcard '*' that is replaced with @@ -2630,30 +2655,31 @@ def workflowFactory(Map args, Map defaultWfArgs, Map meta) { tuple } - def chModifiedFiltered = workflowArgs.filter ? - chModified | filter{workflowArgs.filter(it)} : - chModified def chRun = null def chPassthrough = null if (workflowArgs.runIf) { - def runIfBranch = chModifiedFiltered.branch{ tup -> + def runIfBranch = chModified.branch{ tup -> run: workflowArgs.runIf(tup[0], tup[1]) passthrough: true } chRun = runIfBranch.run chPassthrough = runIfBranch.passthrough } else { - chRun = chModifiedFiltered + chRun = chModified chPassthrough = Channel.empty() } + def chRunFiltered = workflowArgs.filter ? + chRun | filter{workflowArgs.filter(it)} : + chRun + def chArgs = workflowArgs.fromState ? - chRun | map{ + chRunFiltered | map{ def new_data = workflowArgs.fromState(it.take(2)) [it[0], new_data] } : - chRun | map {tup -> tup.take(2)} + chRunFiltered | map {tup -> tup.take(2)} // fill in defaults def chArgsWithDefaults = chArgs @@ -2724,7 +2750,7 @@ def workflowFactory(Map args, Map defaultWfArgs, Map meta) { // | view{"chInitialOutput: ${it.take(3)}"} // join the output [prev_id, new_id, output] with the previous state [prev_id, state, ...] - def chNewState = safeJoin(chInitialOutput, chModifiedFiltered, key_) + def chNewState = safeJoin(chInitialOutput, chRunFiltered, key_) // input tuple format: [join_id, id, output, prev_state, ...] // output tuple format: [join_id, id, new_state, ...] | map{ tup -> @@ -2783,7 +2809,7 @@ meta = [ "resources_dir": moduleDir.toRealPath().normalize(), "config": processConfig(readJsonBlob('''{ "name" : "concat_text", - "version" : "concat_text", + "version" : "v0.1.0", "authors" : [ { "name" : "Toni Verbeiren", @@ -2981,7 +3007,7 @@ meta = [ "id" : "docker", "image" : "alpine:latest", "target_registry" : "images.viash-hub.com", - "target_tag" : "concat_text", + "target_tag" : "v0.1.0", "namespace_separator" : "/", "setup" : [ { @@ -3004,22 +3030,22 @@ meta = [ "runner" : "nextflow", "engine" : "docker|native", "output" : "target/nextflow/concat_text", - "viash_version" : "0.9.0-RC6", - "git_commit" : "53228705a20c6764e3f0ae9ed2147e99009d7c34", + "viash_version" : "0.9.0", + "git_commit" : "3143dd6e4c2c3107f79639fe8602d92f3141ad82", "git_remote" : "https://github.com/viash-hub/craftbox" }, "package_config" : { "name" : "craftbox", - "version" : "concat_text", + "version" : "v0.1.0", "description" : "A collection of custom-tailored scripts and applied tools.\n", - "viash_version" : "0.9.0-RC6", + "viash_version" : "0.9.0", "source" : "src", "target" : "target", "config_mods" : [ ".requirements.commands := ['ps']\n", ".engines += { type: \\"native\\" }", ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'", - ".engines[.type == 'docker'].target_tag := 'concat_text'" + ".engines[.type == 'docker'].target_tag := 'v0.1.0'" ], "keywords" : [ "scripts", @@ -3184,7 +3210,11 @@ def vdsl3WorkflowFactory(Map args, Map meta, String rawScript) { val = val.join(par.multiple_sep) } if (par.direction == "output" && par.type == "file") { - val = val.replaceAll('\\$id', id).replaceAll('\\$key', key) + val = val + .replaceAll('\\$id', id) + .replaceAll('\\$\\{id\\}', id) + .replaceAll('\\$key', key) + .replaceAll('\\$\\{key\\}', key) } [parName, val] } @@ -3315,7 +3345,8 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) { def createParentStr = meta.config.allArguments .findAll { it.type == "file" && it.direction == "output" && it.create_parent } .collect { par -> - "\${ args.containsKey(\"${par.plainName}\") ? \"mkdir_parent \\\"\" + (args[\"${par.plainName}\"] instanceof String ? args[\"${par.plainName}\"] : args[\"${par.plainName}\"].join('\" \"')) + \"\\\"\" : \"\" }" + def contents = "args[\"${par.plainName}\"] instanceof List ? args[\"${par.plainName}\"].join('\" \"') : args[\"${par.plainName}\"]" + "\${ args.containsKey(\"${par.plainName}\") ? \"mkdir_parent '\" + escapeText(${contents}) + \"'\" : \"\" }" } .join("\n") @@ -3323,8 +3354,8 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) { def inputFileExports = meta.config.allArguments .findAll { it.type == "file" && it.direction.toLowerCase() == "input" } .collect { par -> - def viash_par_contents = "(viash_par_${par.plainName} instanceof List ? viash_par_${par.plainName}.join(\"${par.multiple_sep}\") : viash_par_${par.plainName})" - "\n\${viash_par_${par.plainName}.empty ? \"\" : \"export VIASH_PAR_${par.plainName.toUpperCase()}=\\\"\" + ${viash_par_contents} + \"\\\"\"}" + def contents = "viash_par_${par.plainName} instanceof List ? viash_par_${par.plainName}.join(\"${par.multiple_sep}\") : viash_par_${par.plainName}" + "\n\${viash_par_${par.plainName}.empty ? \"\" : \"export VIASH_PAR_${par.plainName.toUpperCase()}='\" + escapeText(${contents}) + \"'\"}" } // NOTE: if using docker, use /tmp instead of tmpDir! @@ -3361,6 +3392,7 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) { def procStr = """nextflow.enable.dsl=2 | + |def escapeText = { s -> s.toString().replaceAll("'", "'\\\"'\\\"'") } |process $procKey {$drctvStrs |input: | tuple val(id)$inputPaths, val(args), path(resourcesDir, stageAs: ".viash_meta_resources") @@ -3372,10 +3404,9 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) { |$stub |\"\"\" |script:$assertStr - |def escapeText = { s -> s.toString().replaceAll('([`"])', '\\\\\\\\\$1') } |def parInject = args | .findAll{key, value -> value != null} - | .collect{key, value -> "export VIASH_PAR_\${key.toUpperCase()}=\\\"\${escapeText(value)}\\\""} + | .collect{key, value -> "export VIASH_PAR_\${key.toUpperCase()}='\${escapeText(value)}'"} | .join("\\n") |\"\"\" |# meta exports @@ -3460,7 +3491,7 @@ meta["defaults"] = [ "container" : { "registry" : "images.viash-hub.com", "image" : "vsh/craftbox/concat_text", - "tag" : "concat_text" + "tag" : "v0.1.0" }, "tag" : "$id" }'''), diff --git a/target/dependencies/vsh/vsh/craftbox/concat_text/nextflow/concat_text/nextflow.config b/target/dependencies/vsh/vsh/craftbox/v0.1.0/nextflow/concat_text/nextflow.config similarity index 99% rename from target/dependencies/vsh/vsh/craftbox/concat_text/nextflow/concat_text/nextflow.config rename to target/dependencies/vsh/vsh/craftbox/v0.1.0/nextflow/concat_text/nextflow.config index 1d6fe370..31a083a4 100644 --- a/target/dependencies/vsh/vsh/craftbox/concat_text/nextflow/concat_text/nextflow.config +++ b/target/dependencies/vsh/vsh/craftbox/v0.1.0/nextflow/concat_text/nextflow.config @@ -2,7 +2,7 @@ manifest { name = 'concat_text' mainScript = 'main.nf' nextflowVersion = '!>=20.12.1-edge' - version = 'concat_text' + version = 'v0.1.0' description = 'Concatenate a number of text files, handle gzipped text files gracefully and\noptionally gzip the output text file.\n\nThis component is useful for concatening fastq files from different lanes, for instance.\n' author = 'Toni Verbeiren, Dries Schaumont' } diff --git a/target/dependencies/vsh/vsh/craftbox/concat_text/nextflow/concat_text/nextflow_schema.json b/target/dependencies/vsh/vsh/craftbox/v0.1.0/nextflow/concat_text/nextflow_schema.json similarity index 97% rename from target/dependencies/vsh/vsh/craftbox/concat_text/nextflow/concat_text/nextflow_schema.json rename to target/dependencies/vsh/vsh/craftbox/v0.1.0/nextflow/concat_text/nextflow_schema.json index 07a599a4..230c6141 100644 --- a/target/dependencies/vsh/vsh/craftbox/concat_text/nextflow/concat_text/nextflow_schema.json +++ b/target/dependencies/vsh/vsh/craftbox/v0.1.0/nextflow/concat_text/nextflow_schema.json @@ -17,8 +17,8 @@ "input": { "type": "string", - "description": "Type: List of `file`, required, example: `input?.txt.gz`, multiple_sep: `\":\"`. A list of (gzipped) text files", - "help_text": "Type: List of `file`, required, example: `input?.txt.gz`, multiple_sep: `\":\"`. A list of (gzipped) text files." + "description": "Type: List of `file`, required, example: `input?.txt.gz`, multiple_sep: `\";\"`. A list of (gzipped) text files", + "help_text": "Type: List of `file`, required, example: `input?.txt.gz`, multiple_sep: `\";\"`. A list of (gzipped) text files." } diff --git a/target/executable/eset/create_eset/.config.vsh.yaml b/target/executable/eset/create_eset/.config.vsh.yaml new file mode 100644 index 00000000..26fbe30f --- /dev/null +++ b/target/executable/eset/create_eset/.config.vsh.yaml @@ -0,0 +1,228 @@ +name: "create_eset" +namespace: "eset" +version: "main" +argument_groups: +- name: "Arguments" + arguments: + - type: "file" + name: "--pDataFile" + info: null + must_exist: true + create_parent: true + required: true + direction: "input" + multiple: false + multiple_sep: ";" + - type: "file" + name: "--fDataFile" + info: null + must_exist: true + create_parent: true + required: true + direction: "input" + multiple: false + multiple_sep: ";" + - type: "file" + name: "--mappingDir" + info: null + must_exist: true + create_parent: true + required: true + direction: "input" + multiple: true + multiple_sep: ";" + - type: "string" + name: "--poolName" + info: null + required: true + direction: "input" + multiple: false + multiple_sep: ";" + - type: "file" + name: "--output" + info: null + default: + - "eset.$id.rds" + must_exist: true + create_parent: true + required: true + direction: "output" + multiple: false + multiple_sep: ";" +resources: +- type: "r_script" + path: "script.R" + is_executable: true +- type: "file" + path: "nextflow_labels.config" + dest: "nextflow_labels.config" +test_resources: +- type: "r_script" + path: "test.R" + is_executable: true +- type: "file" + path: "pData.tsv" +- type: "file" + path: "fData.tsv" +- type: "file" + path: "mapping_dir" +info: null +status: "enabled" +requirements: + commands: + - "ps" +license: "MIT" +links: + repository: "https://github.com/viash-hub/htrnaseq" +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: "r-base:4.3.0" + target_registry: "images.viash-hub.com" + target_tag: "main" + namespace_separator: "/" + setup: + - type: "apt" + packages: + - "libcurl4-openssl-dev" + - "libssl-dev" + - "libxml2-dev" + - "libfftw3-dev" + - "libfontconfig1-dev" + - "libfreetype-dev" + - "libhdf5-dev" + - "bzip2" + - "libharfbuzz-dev" + - "libfribidi-dev" + - "libtiff-dev" + - "libgsl-dev" + - "libcairo-dev" + - "libudunits2-dev" + - "procps" + interactive: false + - type: "r" + cran: + - "nlcv" + bioc: + - "Biobase" + - "limma" + - "a4Core" + - "MLInterfaces" + - "multtest" + script: + - "remotes::install_url(\"https://cran.r-project.org/src/contrib/Archive/Matrix/Matrix_1.6-5.tar.gz\"\ + , dependencies=TRUE, upgrade_dependencies=FALSE);\\\nremotes::install_url(\"\ + https://cran.r-project.org/src/contrib/Archive/Seurat/Seurat_4.4.0.tar.gz\"\ + , repos=BiocManager::repositories(), dependencies=TRUE, upgrade_dependencies=FALSE)\\\ + \n" + bioc_force_install: false + entrypoint: [] + cmd: null +- type: "native" + id: "native" +build_info: + config: "src/eset/create_eset/config.vsh.yaml" + runner: "executable" + engine: "docker|native" + output: "target/executable/eset/create_eset" + executable: "target/executable/eset/create_eset/create_eset" + viash_version: "0.9.0" + git_commit: "65dd41d8b1b4a307735c72320c96c0880c75f17f" + git_remote: "https://x-access-token:ghs_McZDF0yobnnHmOEb2Q4JaaB3pzr9mz1VbIOs@github.com/viash-hub/htrnaseq" +package_config: + name: "htrnaseq" + version: "main" + description: "High-throughput pipeline [WIP]\n" + info: + test_resources: + - path: "gs://viash-hub-test-data/htrnaseq/v1/" + dest: "resources_test" + viash_version: "0.9.0" + source: "src" + target: "target" + config_mods: + - ".requirements.commands := ['ps']\n.runners[.type == 'nextflow'].config.script\ + \ := 'includeConfig(\"nextflow_labels.config\")'\n.resources += {path: '/src/config/labels.config',\ + \ dest: 'nextflow_labels.config'}\n" + - ".engines += { type: \"native\" }" + - ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'" + - ".engines[.type == 'docker'].target_tag := 'main'" + keywords: + - "bioinformatics" + - "sequence" + - "high-throughput" + - "mapping" + - "counting" + - "pipeline" + license: "MIT" + organization: "vsh" + links: + repository: "https://github.com/viash-hub/htrnaseq" + issue_tracker: "https://github.com/viash-hub/htrnaseq/issues" diff --git a/target/executable/eset/create_eset/create_eset b/target/executable/eset/create_eset/create_eset new file mode 100755 index 00000000..6ba70c39 --- /dev/null +++ b/target/executable/eset/create_eset/create_eset @@ -0,0 +1,1627 @@ +#!/usr/bin/env bash + +# create_eset main +# +# This wrapper script is auto-generated by viash 0.9.0 and is thus a derivative +# work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data +# Intuitive. +# +# The component may contain files which fall under a different license. The +# authors of this component should specify the license in the header of such +# files, or include a separate license file detailing the licenses of all included +# files. + +set -e + +if [ -z "$VIASH_TEMP" ]; then + VIASH_TEMP=${VIASH_TEMP:-$VIASH_TMPDIR} + VIASH_TEMP=${VIASH_TEMP:-$VIASH_TEMPDIR} + VIASH_TEMP=${VIASH_TEMP:-$VIASH_TMP} + VIASH_TEMP=${VIASH_TEMP:-$TMPDIR} + VIASH_TEMP=${VIASH_TEMP:-$TMP} + VIASH_TEMP=${VIASH_TEMP:-$TEMPDIR} + VIASH_TEMP=${VIASH_TEMP:-$TEMP} + VIASH_TEMP=${VIASH_TEMP:-/tmp} +fi + +# define helper functions +# ViashQuote: put quotes around non flag values +# $1 : unquoted string +# return : possibly quoted string +# examples: +# ViashQuote --foo # returns --foo +# ViashQuote bar # returns 'bar' +# Viashquote --foo=bar # returns --foo='bar' +function ViashQuote { + if [[ "$1" =~ ^-+[a-zA-Z0-9_\-]+=.+$ ]]; then + echo "$1" | sed "s#=\(.*\)#='\1'#" + elif [[ "$1" =~ ^-+[a-zA-Z0-9_\-]+$ ]]; then + echo "$1" + else + echo "'$1'" + fi +} +# ViashRemoveFlags: Remove leading flag +# $1 : string with a possible leading flag +# return : string without possible leading flag +# examples: +# ViashRemoveFlags --foo=bar # returns bar +function ViashRemoveFlags { + echo "$1" | sed 's/^--*[a-zA-Z0-9_\-]*=//' +} +# ViashSourceDir: return the path of a bash file, following symlinks +# usage : ViashSourceDir ${BASH_SOURCE[0]} +# $1 : Should always be set to ${BASH_SOURCE[0]} +# returns : The absolute path of the bash file +function ViashSourceDir { + local source="$1" + while [ -h "$source" ]; do + local dir="$( cd -P "$( dirname "$source" )" >/dev/null 2>&1 && pwd )" + source="$(readlink "$source")" + [[ $source != /* ]] && source="$dir/$source" + done + cd -P "$( dirname "$source" )" >/dev/null 2>&1 && pwd +} +# ViashFindTargetDir: return the path of the '.build.yaml' file, following symlinks +# usage : ViashFindTargetDir 'ScriptPath' +# $1 : The location from where to start the upward search +# returns : The absolute path of the '.build.yaml' file +function ViashFindTargetDir { + local source="$1" + while [[ "$source" != "" && ! -e "$source/.build.yaml" ]]; do + source=${source%/*} + done + echo $source +} +# see https://en.wikipedia.org/wiki/Syslog#Severity_level +VIASH_LOGCODE_EMERGENCY=0 +VIASH_LOGCODE_ALERT=1 +VIASH_LOGCODE_CRITICAL=2 +VIASH_LOGCODE_ERROR=3 +VIASH_LOGCODE_WARNING=4 +VIASH_LOGCODE_NOTICE=5 +VIASH_LOGCODE_INFO=6 +VIASH_LOGCODE_DEBUG=7 +VIASH_VERBOSITY=$VIASH_LOGCODE_NOTICE + +# ViashLog: Log events depending on the verbosity level +# usage: ViashLog 1 alert Oh no something went wrong! +# $1: required verbosity level +# $2: display tag +# $3+: messages to display +# stdout: Your input, prepended by '[$2] '. +function ViashLog { + local required_level="$1" + local display_tag="$2" + shift 2 + if [ $VIASH_VERBOSITY -ge $required_level ]; then + >&2 echo "[$display_tag]" "$@" + fi +} + +# ViashEmergency: log events when the system is unstable +# usage: ViashEmergency Oh no something went wrong. +# stdout: Your input, prepended by '[emergency] '. +function ViashEmergency { + ViashLog $VIASH_LOGCODE_EMERGENCY emergency "$@" +} + +# ViashAlert: log events when actions must be taken immediately (e.g. corrupted system database) +# usage: ViashAlert Oh no something went wrong. +# stdout: Your input, prepended by '[alert] '. +function ViashAlert { + ViashLog $VIASH_LOGCODE_ALERT alert "$@" +} + +# ViashCritical: log events when a critical condition occurs +# usage: ViashCritical Oh no something went wrong. +# stdout: Your input, prepended by '[critical] '. +function ViashCritical { + ViashLog $VIASH_LOGCODE_CRITICAL critical "$@" +} + +# ViashError: log events when an error condition occurs +# usage: ViashError Oh no something went wrong. +# stdout: Your input, prepended by '[error] '. +function ViashError { + ViashLog $VIASH_LOGCODE_ERROR error "$@" +} + +# ViashWarning: log potentially abnormal events +# usage: ViashWarning Something may have gone wrong. +# stdout: Your input, prepended by '[warning] '. +function ViashWarning { + ViashLog $VIASH_LOGCODE_WARNING warning "$@" +} + +# ViashNotice: log significant but normal events +# usage: ViashNotice This just happened. +# stdout: Your input, prepended by '[notice] '. +function ViashNotice { + ViashLog $VIASH_LOGCODE_NOTICE notice "$@" +} + +# ViashInfo: log normal events +# usage: ViashInfo This just happened. +# stdout: Your input, prepended by '[info] '. +function ViashInfo { + ViashLog $VIASH_LOGCODE_INFO info "$@" +} + +# ViashDebug: log all events, for debugging purposes +# usage: ViashDebug This just happened. +# stdout: Your input, prepended by '[debug] '. +function ViashDebug { + ViashLog $VIASH_LOGCODE_DEBUG debug "$@" +} + +# find source folder of this component +VIASH_META_RESOURCES_DIR=`ViashSourceDir ${BASH_SOURCE[0]}` + +# find the root of the built components & dependencies +VIASH_TARGET_DIR=`ViashFindTargetDir $VIASH_META_RESOURCES_DIR` + +# define meta fields +VIASH_META_NAME="create_eset" +VIASH_META_FUNCTIONALITY_NAME="create_eset" +VIASH_META_EXECUTABLE="$VIASH_META_RESOURCES_DIR/$VIASH_META_NAME" +VIASH_META_CONFIG="$VIASH_META_RESOURCES_DIR/.config.vsh.yaml" +VIASH_META_TEMP_DIR="$VIASH_TEMP" + + +# ViashHelp: Display helpful explanation about this executable +function ViashHelp { + echo "create_eset main" + echo "" + echo "Arguments:" + echo " --pDataFile" + echo " type: file, required parameter, file must exist" + echo "" + echo " --fDataFile" + echo " type: file, required parameter, file must exist" + echo "" + echo " --mappingDir" + echo " type: file, required parameter, multiple values allowed, file must exist" + echo "" + echo " --poolName" + echo " type: string, required parameter" + echo "" + echo " --output" + echo " type: file, required parameter, output, file must exist" + echo " default: eset.\$id.rds" +} + +# initialise variables +VIASH_MODE='run' +VIASH_ENGINE_ID='docker' + +######## Helper functions for setting up Docker images for viash ######## +# expects: ViashDockerBuild + +# ViashDockerInstallationCheck: check whether Docker is installed correctly +# +# examples: +# ViashDockerInstallationCheck +function ViashDockerInstallationCheck { + ViashDebug "Checking whether Docker is installed" + if [ ! command -v docker &> /dev/null ]; then + ViashCritical "Docker doesn't seem to be installed. See 'https://docs.docker.com/get-docker/' for instructions." + exit 1 + fi + + ViashDebug "Checking whether the Docker daemon is running" + local save=$-; set +e + local docker_version=$(docker version --format '{{.Client.APIVersion}}' 2> /dev/null) + local out=$? + [[ $save =~ e ]] && set -e + if [ $out -ne 0 ]; then + ViashCritical "Docker daemon does not seem to be running. Try one of the following:" + ViashCritical "- Try running 'dockerd' in the command line" + ViashCritical "- See https://docs.docker.com/config/daemon/" + exit 1 + fi +} + +# ViashDockerRemoteTagCheck: check whether a Docker image is available +# on a remote. Assumes `docker login` has been performed, if relevant. +# +# $1 : image identifier with format `[registry/]image[:tag]` +# exit code $? : whether or not the image was found +# examples: +# ViashDockerRemoteTagCheck python:latest +# echo $? # returns '0' +# ViashDockerRemoteTagCheck sdaizudceahifu +# echo $? # returns '1' +function ViashDockerRemoteTagCheck { + docker manifest inspect $1 > /dev/null 2> /dev/null +} + +# ViashDockerLocalTagCheck: check whether a Docker image is available locally +# +# $1 : image identifier with format `[registry/]image[:tag]` +# exit code $? : whether or not the image was found +# examples: +# docker pull python:latest +# ViashDockerLocalTagCheck python:latest +# echo $? # returns '0' +# ViashDockerLocalTagCheck sdaizudceahifu +# echo $? # returns '1' +function ViashDockerLocalTagCheck { + [ -n "$(docker images -q $1)" ] +} + +# ViashDockerPull: pull a Docker image +# +# $1 : image identifier with format `[registry/]image[:tag]` +# exit code $? : whether or not the image was found +# examples: +# ViashDockerPull python:latest +# echo $? # returns '0' +# ViashDockerPull sdaizudceahifu +# echo $? # returns '1' +function ViashDockerPull { + ViashNotice "Checking if Docker image is available at '$1'" + if [ $VIASH_VERBOSITY -ge $VIASH_LOGCODE_INFO ]; then + docker pull $1 && return 0 || return 1 + else + local save=$-; set +e + docker pull $1 2> /dev/null > /dev/null + local out=$? + [[ $save =~ e ]] && set -e + if [ $out -ne 0 ]; then + ViashWarning "Could not pull from '$1'. Docker image doesn't exist or is not accessible." + fi + return $out + fi +} + +# ViashDockerPush: push a Docker image +# +# $1 : image identifier with format `[registry/]image[:tag]` +# exit code $? : whether or not the image was found +# examples: +# ViashDockerPush python:latest +# echo $? # returns '0' +# ViashDockerPush sdaizudceahifu +# echo $? # returns '1' +function ViashDockerPush { + ViashNotice "Pushing image to '$1'" + local save=$-; set +e + local out + if [ $VIASH_VERBOSITY -ge $VIASH_LOGCODE_INFO ]; then + docker push $1 + out=$? + else + docker push $1 2> /dev/null > /dev/null + out=$? + fi + [[ $save =~ e ]] && set -e + if [ $out -eq 0 ]; then + ViashNotice "Container '$1' push succeeded." + else + ViashError "Container '$1' push errored. You might not be logged in or have the necessary permissions." + fi + return $out +} + +# ViashDockerPullElseBuild: pull a Docker image, else build it +# +# $1 : image identifier with format `[registry/]image[:tag]` +# ViashDockerBuild : a Bash function which builds a docker image, takes image identifier as argument. +# examples: +# ViashDockerPullElseBuild mynewcomponent +function ViashDockerPullElseBuild { + local save=$-; set +e + ViashDockerPull $1 + local out=$? + [[ $save =~ e ]] && set -e + if [ $out -ne 0 ]; then + ViashDockerBuild $@ + fi +} + +# ViashDockerSetup: create a Docker image, according to specified docker setup strategy +# +# $1 : image identifier with format `[registry/]image[:tag]` +# $2 : docker setup strategy, see DockerSetupStrategy.scala +# examples: +# ViashDockerSetup mynewcomponent alwaysbuild +function ViashDockerSetup { + local image_id="$1" + local setup_strategy="$2" + if [ "$setup_strategy" == "alwaysbuild" -o "$setup_strategy" == "build" -o "$setup_strategy" == "b" ]; then + ViashDockerBuild $image_id --no-cache $(ViashDockerBuildArgs "$engine_id") + elif [ "$setup_strategy" == "alwayspull" -o "$setup_strategy" == "pull" -o "$setup_strategy" == "p" ]; then + ViashDockerPull $image_id + elif [ "$setup_strategy" == "alwayspullelsebuild" -o "$setup_strategy" == "pullelsebuild" ]; then + ViashDockerPullElseBuild $image_id --no-cache $(ViashDockerBuildArgs "$engine_id") + elif [ "$setup_strategy" == "alwayspullelsecachedbuild" -o "$setup_strategy" == "pullelsecachedbuild" ]; then + ViashDockerPullElseBuild $image_id $(ViashDockerBuildArgs "$engine_id") + elif [ "$setup_strategy" == "alwayscachedbuild" -o "$setup_strategy" == "cachedbuild" -o "$setup_strategy" == "cb" ]; then + ViashDockerBuild $image_id $(ViashDockerBuildArgs "$engine_id") + elif [[ "$setup_strategy" =~ ^ifneedbe ]]; then + local save=$-; set +e + ViashDockerLocalTagCheck $image_id + local outCheck=$? + [[ $save =~ e ]] && set -e + if [ $outCheck -eq 0 ]; then + ViashInfo "Image $image_id already exists" + elif [ "$setup_strategy" == "ifneedbebuild" ]; then + ViashDockerBuild $image_id --no-cache $(ViashDockerBuildArgs "$engine_id") + elif [ "$setup_strategy" == "ifneedbecachedbuild" ]; then + ViashDockerBuild $image_id $(ViashDockerBuildArgs "$engine_id") + elif [ "$setup_strategy" == "ifneedbepull" ]; then + ViashDockerPull $image_id + elif [ "$setup_strategy" == "ifneedbepullelsebuild" ]; then + ViashDockerPullElseBuild $image_id --no-cache $(ViashDockerBuildArgs "$engine_id") + elif [ "$setup_strategy" == "ifneedbepullelsecachedbuild" ]; then + ViashDockerPullElseBuild $image_id $(ViashDockerBuildArgs "$engine_id") + else + ViashError "Unrecognised Docker strategy: $setup_strategy" + exit 1 + fi + elif [ "$setup_strategy" == "push" -o "$setup_strategy" == "forcepush" -o "$setup_strategy" == "alwayspush" ]; then + ViashDockerPush "$image_id" + elif [ "$setup_strategy" == "pushifnotpresent" -o "$setup_strategy" == "gentlepush" -o "$setup_strategy" == "maybepush" ]; then + local save=$-; set +e + ViashDockerRemoteTagCheck $image_id + local outCheck=$? + [[ $save =~ e ]] && set -e + if [ $outCheck -eq 0 ]; then + ViashNotice "Container '$image_id' exists, doing nothing." + else + ViashNotice "Container '$image_id' does not yet exist." + ViashDockerPush "$image_id" + fi + elif [ "$setup_strategy" == "donothing" -o "$setup_strategy" == "meh" ]; then + ViashNotice "Skipping setup." + else + ViashError "Unrecognised Docker strategy: $setup_strategy" + exit 1 + fi +} + +# ViashDockerCheckCommands: Check whether a docker container has the required commands +# +# $1 : image identifier with format `[registry/]image[:tag]` +# $@ : commands to verify being present +# examples: +# ViashDockerCheckCommands bash:4.0 bash ps foo +function ViashDockerCheckCommands { + local image_id="$1" + shift 1 + local commands="$@" + local save=$-; set +e + local missing # mark 'missing' as local in advance, otherwise the exit code of the command will be missing and always be '0' + missing=$(docker run --rm --entrypoint=sh "$image_id" -c "for command in $commands; do command -v \$command >/dev/null 2>&1; if [ \$? -ne 0 ]; then echo \$command; exit 1; fi; done") + local outCheck=$? + [[ $save =~ e ]] && set -e + if [ $outCheck -ne 0 ]; then + ViashError "Docker container '$image_id' does not contain command '$missing'." + exit 1 + fi +} + +# ViashDockerBuild: build a docker image +# $1 : image identifier with format `[registry/]image[:tag]` +# $... : additional arguments to pass to docker build +# $VIASH_META_TEMP_DIR : temporary directory to store dockerfile & optional resources in +# $VIASH_META_NAME : name of the component +# $VIASH_META_RESOURCES_DIR : directory containing the resources +# $VIASH_VERBOSITY : verbosity level +# exit code $? : whether or not the image was built successfully +function ViashDockerBuild { + local image_id="$1" + shift 1 + + # create temporary directory to store dockerfile & optional resources in + local tmpdir=$(mktemp -d "$VIASH_META_TEMP_DIR/dockerbuild-$VIASH_META_NAME-XXXXXX") + local dockerfile="$tmpdir/Dockerfile" + function clean_up { + rm -rf "$tmpdir" + } + trap clean_up EXIT + + # store dockerfile and resources + ViashDockerfile "$VIASH_ENGINE_ID" > "$dockerfile" + + # generate the build command + local docker_build_cmd="docker build -t '$image_id' $@ '$VIASH_META_RESOURCES_DIR' -f '$dockerfile'" + + # build the container + ViashNotice "Building container '$image_id' with Dockerfile" + ViashInfo "$docker_build_cmd" + local save=$-; set +e + if [ $VIASH_VERBOSITY -ge $VIASH_LOGCODE_INFO ]; then + eval $docker_build_cmd + else + eval $docker_build_cmd &> "$tmpdir/docker_build.log" + fi + + # check exit code + local out=$? + [[ $save =~ e ]] && set -e + if [ $out -ne 0 ]; then + ViashError "Error occurred while building container '$image_id'" + if [ $VIASH_VERBOSITY -lt $VIASH_LOGCODE_INFO ]; then + ViashError "Transcript: --------------------------------" + cat "$tmpdir/docker_build.log" + ViashError "End of transcript --------------------------" + fi + exit 1 + fi +} + +######## End of helper functions for setting up Docker images for viash ######## + +# ViashDockerFile: print the dockerfile to stdout +# $1 : engine identifier +# return : dockerfile required to run this component +# examples: +# ViashDockerFile +function ViashDockerfile { + local engine_id="$1" + + if [[ "$engine_id" == "docker" ]]; then + cat << 'VIASHDOCKER' +FROM r-base:4.3.0 +ENTRYPOINT [] +RUN apt-get update && \ + DEBIAN_FRONTEND=noninteractive apt-get install -y libcurl4-openssl-dev libssl-dev libxml2-dev libfftw3-dev libfontconfig1-dev libfreetype-dev libhdf5-dev bzip2 libharfbuzz-dev libfribidi-dev libtiff-dev libgsl-dev libcairo-dev libudunits2-dev procps && \ + rm -rf /var/lib/apt/lists/* + +RUN Rscript -e 'if (!requireNamespace("remotes", quietly = TRUE)) install.packages("remotes")' && \ + Rscript -e 'if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager")' && \ + Rscript -e 'if (!requireNamespace("Biobase", quietly = TRUE)) BiocManager::install("Biobase")' && \ + Rscript -e 'if (!requireNamespace("limma", quietly = TRUE)) BiocManager::install("limma")' && \ + Rscript -e 'if (!requireNamespace("a4Core", quietly = TRUE)) BiocManager::install("a4Core")' && \ + Rscript -e 'if (!requireNamespace("MLInterfaces", quietly = TRUE)) BiocManager::install("MLInterfaces")' && \ + Rscript -e 'if (!requireNamespace("multtest", quietly = TRUE)) BiocManager::install("multtest")' && \ + Rscript -e 'remotes::install_cran(c("nlcv"), repos = "https://cran.rstudio.com")' && \ + Rscript -e 'remotes::install_url("https://cran.r-project.org/src/contrib/Archive/Matrix/Matrix_1.6-5.tar.gz", dependencies=TRUE, upgrade_dependencies=FALSE);\ +remotes::install_url("https://cran.r-project.org/src/contrib/Archive/Seurat/Seurat_4.4.0.tar.gz", repos=BiocManager::repositories(), dependencies=TRUE, upgrade_dependencies=FALSE)\ +' + +LABEL org.opencontainers.image.description="Companion container for running component eset create_eset" +LABEL org.opencontainers.image.created="2024-11-05T15:39:43Z" +LABEL org.opencontainers.image.source="https://github.com/viash-hub/htrnaseq" +LABEL org.opencontainers.image.revision="65dd41d8b1b4a307735c72320c96c0880c75f17f" +LABEL org.opencontainers.image.version="main" + +VIASHDOCKER + fi +} + +# ViashDockerBuildArgs: return the arguments to pass to docker build +# $1 : engine identifier +# return : arguments to pass to docker build +function ViashDockerBuildArgs { + local engine_id="$1" + + if [[ "$engine_id" == "docker" ]]; then + echo "" + fi +} + +# ViashAbsolutePath: generate absolute path from relative path +# borrowed from https://stackoverflow.com/a/21951256 +# $1 : relative filename +# return : absolute path +# examples: +# ViashAbsolutePath some_file.txt # returns /path/to/some_file.txt +# ViashAbsolutePath /foo/bar/.. # returns /foo +function ViashAbsolutePath { + local thePath + local parr + local outp + local len + if [[ ! "$1" =~ ^/ ]]; then + thePath="$PWD/$1" + else + thePath="$1" + fi + echo "$thePath" | ( + IFS=/ + read -a parr + declare -a outp + for i in "${parr[@]}"; do + case "$i" in + ''|.) continue ;; + ..) + len=${#outp[@]} + if ((len==0)); then + continue + else + unset outp[$((len-1))] + fi + ;; + *) + len=${#outp[@]} + outp[$len]="$i" + ;; + esac + done + echo /"${outp[*]}" + ) +} +# ViashDockerAutodetectMount: auto configuring docker mounts from parameters +# $1 : The parameter value +# returns : New parameter +# $VIASH_DIRECTORY_MOUNTS : Added another parameter to be passed to docker +# $VIASH_DOCKER_AUTOMOUNT_PREFIX : The prefix to be used for the automounts +# examples: +# ViashDockerAutodetectMount /path/to/bar # returns '/viash_automount/path/to/bar' +# ViashDockerAutodetectMountArg /path/to/bar # returns '--volume="/path/to:/viash_automount/path/to"' +function ViashDockerAutodetectMount { + local abs_path=$(ViashAbsolutePath "$1") + local mount_source + local base_name + if [ -d "$abs_path" ]; then + mount_source="$abs_path" + base_name="" + else + mount_source=`dirname "$abs_path"` + base_name=`basename "$abs_path"` + fi + local mount_target="$VIASH_DOCKER_AUTOMOUNT_PREFIX$mount_source" + if [ -z "$base_name" ]; then + echo "$mount_target" + else + echo "$mount_target/$base_name" + fi +} +function ViashDockerAutodetectMountArg { + local abs_path=$(ViashAbsolutePath "$1") + local mount_source + local base_name + if [ -d "$abs_path" ]; then + mount_source="$abs_path" + base_name="" + else + mount_source=`dirname "$abs_path"` + base_name=`basename "$abs_path"` + fi + local mount_target="$VIASH_DOCKER_AUTOMOUNT_PREFIX$mount_source" + ViashDebug "ViashDockerAutodetectMountArg $1 -> $mount_source -> $mount_target" + echo "--volume=\"$mount_source:$mount_target\"" +} +function ViashDockerStripAutomount { + local abs_path=$(ViashAbsolutePath "$1") + echo "${abs_path#$VIASH_DOCKER_AUTOMOUNT_PREFIX}" +} +# initialise variables +VIASH_DIRECTORY_MOUNTS=() + +# configure default docker automount prefix if it is unset +if [ -z "${VIASH_DOCKER_AUTOMOUNT_PREFIX+x}" ]; then + VIASH_DOCKER_AUTOMOUNT_PREFIX="/viash_automount" +fi + +# initialise docker variables +VIASH_DOCKER_RUN_ARGS=(-i --rm) + +# initialise array +VIASH_POSITIONAL_ARGS='' + +while [[ $# -gt 0 ]]; do + case "$1" in + -h|--help) + ViashHelp + exit + ;; + ---v|---verbose) + let "VIASH_VERBOSITY=VIASH_VERBOSITY+1" + shift 1 + ;; + ---verbosity) + VIASH_VERBOSITY="$2" + shift 2 + ;; + ---verbosity=*) + VIASH_VERBOSITY="$(ViashRemoveFlags "$1")" + shift 1 + ;; + --version) + echo "create_eset main" + exit + ;; + --pDataFile) + [ -n "$VIASH_PAR_PDATAFILE" ] && ViashError Bad arguments for option \'--pDataFile\': \'$VIASH_PAR_PDATAFILE\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_PDATAFILE="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --pDataFile. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --pDataFile=*) + [ -n "$VIASH_PAR_PDATAFILE" ] && ViashError Bad arguments for option \'--pDataFile=*\': \'$VIASH_PAR_PDATAFILE\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_PDATAFILE=$(ViashRemoveFlags "$1") + shift 1 + ;; + --fDataFile) + [ -n "$VIASH_PAR_FDATAFILE" ] && ViashError Bad arguments for option \'--fDataFile\': \'$VIASH_PAR_FDATAFILE\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_FDATAFILE="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --fDataFile. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --fDataFile=*) + [ -n "$VIASH_PAR_FDATAFILE" ] && ViashError Bad arguments for option \'--fDataFile=*\': \'$VIASH_PAR_FDATAFILE\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_FDATAFILE=$(ViashRemoveFlags "$1") + shift 1 + ;; + --mappingDir) + if [ -z "$VIASH_PAR_MAPPINGDIR" ]; then + VIASH_PAR_MAPPINGDIR="$2" + else + VIASH_PAR_MAPPINGDIR="$VIASH_PAR_MAPPINGDIR;""$2" + fi + [ $# -lt 2 ] && ViashError Not enough arguments passed to --mappingDir. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --mappingDir=*) + if [ -z "$VIASH_PAR_MAPPINGDIR" ]; then + VIASH_PAR_MAPPINGDIR=$(ViashRemoveFlags "$1") + else + VIASH_PAR_MAPPINGDIR="$VIASH_PAR_MAPPINGDIR;"$(ViashRemoveFlags "$1") + fi + shift 1 + ;; + --poolName) + [ -n "$VIASH_PAR_POOLNAME" ] && ViashError Bad arguments for option \'--poolName\': \'$VIASH_PAR_POOLNAME\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_POOLNAME="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --poolName. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --poolName=*) + [ -n "$VIASH_PAR_POOLNAME" ] && ViashError Bad arguments for option \'--poolName=*\': \'$VIASH_PAR_POOLNAME\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_POOLNAME=$(ViashRemoveFlags "$1") + shift 1 + ;; + --output) + [ -n "$VIASH_PAR_OUTPUT" ] && ViashError Bad arguments for option \'--output\': \'$VIASH_PAR_OUTPUT\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_OUTPUT="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --output. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --output=*) + [ -n "$VIASH_PAR_OUTPUT" ] && ViashError Bad arguments for option \'--output=*\': \'$VIASH_PAR_OUTPUT\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_OUTPUT=$(ViashRemoveFlags "$1") + shift 1 + ;; + ---engine) + VIASH_ENGINE_ID="$2" + shift 2 + ;; + ---engine=*) + VIASH_ENGINE_ID="$(ViashRemoveFlags "$1")" + shift 1 + ;; + ---setup) + VIASH_MODE='setup' + VIASH_SETUP_STRATEGY="$2" + shift 2 + ;; + ---setup=*) + VIASH_MODE='setup' + VIASH_SETUP_STRATEGY="$(ViashRemoveFlags "$1")" + shift 1 + ;; + ---dockerfile) + VIASH_MODE='dockerfile' + shift 1 + ;; + ---docker_run_args) + VIASH_DOCKER_RUN_ARGS+=("$2") + shift 2 + ;; + ---docker_run_args=*) + VIASH_DOCKER_RUN_ARGS+=("$(ViashRemoveFlags "$1")") + shift 1 + ;; + ---docker_image_id) + VIASH_MODE='docker_image_id' + shift 1 + ;; + ---debug) + VIASH_MODE='debug' + shift 1 + ;; + ---cpus) + [ -n "$VIASH_META_CPUS" ] && ViashError Bad arguments for option \'---cpus\': \'$VIASH_META_CPUS\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_META_CPUS="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to ---cpus. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + ---cpus=*) + [ -n "$VIASH_META_CPUS" ] && ViashError Bad arguments for option \'---cpus=*\': \'$VIASH_META_CPUS\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_META_CPUS=$(ViashRemoveFlags "$1") + shift 1 + ;; + ---memory) + [ -n "$VIASH_META_MEMORY" ] && ViashError Bad arguments for option \'---memory\': \'$VIASH_META_MEMORY\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_META_MEMORY="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to ---memory. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + ---memory=*) + [ -n "$VIASH_META_MEMORY" ] && ViashError Bad arguments for option \'---memory=*\': \'$VIASH_META_MEMORY\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_META_MEMORY=$(ViashRemoveFlags "$1") + shift 1 + ;; + *) # positional arg or unknown option + # since the positional args will be eval'd, can we always quote, instead of using ViashQuote + VIASH_POSITIONAL_ARGS="$VIASH_POSITIONAL_ARGS '$1'" + [[ $1 == -* ]] && ViashWarning $1 looks like a parameter but is not a defined parameter and will instead be treated as a positional argument. Use "--help" to get more information on the parameters. + shift # past argument + ;; + esac +done + +# parse positional parameters +eval set -- $VIASH_POSITIONAL_ARGS + + +if [ "$VIASH_ENGINE_ID" == "native" ] ; then + VIASH_ENGINE_TYPE='native' +elif [ "$VIASH_ENGINE_ID" == "docker" ] ; then + VIASH_ENGINE_TYPE='docker' +else + ViashError "Engine '$VIASH_ENGINE_ID' is not recognized. Options are: docker, native." + exit 1 +fi + +if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then + # check if docker is installed properly + ViashDockerInstallationCheck + + # determine docker image id + if [[ "$VIASH_ENGINE_ID" == 'docker' ]]; then + VIASH_DOCKER_IMAGE_ID='images.viash-hub.com/vsh/htrnaseq/eset/create_eset:main' + fi + + # print dockerfile + if [ "$VIASH_MODE" == "dockerfile" ]; then + ViashDockerfile "$VIASH_ENGINE_ID" + exit 0 + + elif [ "$VIASH_MODE" == "docker_image_id" ]; then + echo "$VIASH_DOCKER_IMAGE_ID" + exit 0 + + # enter docker container + elif [[ "$VIASH_MODE" == "debug" ]]; then + VIASH_CMD="docker run --entrypoint=bash ${VIASH_DOCKER_RUN_ARGS[@]} -v '$(pwd)':/pwd --workdir /pwd -t $VIASH_DOCKER_IMAGE_ID" + ViashNotice "+ $VIASH_CMD" + eval $VIASH_CMD + exit + + # build docker image + elif [ "$VIASH_MODE" == "setup" ]; then + ViashDockerSetup "$VIASH_DOCKER_IMAGE_ID" "$VIASH_SETUP_STRATEGY" + ViashDockerCheckCommands "$VIASH_DOCKER_IMAGE_ID" 'ps' 'bash' + exit 0 + fi + + # check if docker image exists + ViashDockerSetup "$VIASH_DOCKER_IMAGE_ID" ifneedbepullelsecachedbuild + ViashDockerCheckCommands "$VIASH_DOCKER_IMAGE_ID" 'ps' 'bash' +fi + +# setting computational defaults + +# helper function for parsing memory strings +function ViashMemoryAsBytes { + local memory=`echo "$1" | tr '[:upper:]' '[:lower:]' | tr -d '[:space:]'` + local memory_regex='^([0-9]+)([kmgtp]i?b?|b)$' + if [[ $memory =~ $memory_regex ]]; then + local number=${memory/[^0-9]*/} + local symbol=${memory/*[0-9]/} + + case $symbol in + b) memory_b=$number ;; + kb|k) memory_b=$(( $number * 1000 )) ;; + mb|m) memory_b=$(( $number * 1000 * 1000 )) ;; + gb|g) memory_b=$(( $number * 1000 * 1000 * 1000 )) ;; + tb|t) memory_b=$(( $number * 1000 * 1000 * 1000 * 1000 )) ;; + pb|p) memory_b=$(( $number * 1000 * 1000 * 1000 * 1000 * 1000 )) ;; + kib|ki) memory_b=$(( $number * 1024 )) ;; + mib|mi) memory_b=$(( $number * 1024 * 1024 )) ;; + gib|gi) memory_b=$(( $number * 1024 * 1024 * 1024 )) ;; + tib|ti) memory_b=$(( $number * 1024 * 1024 * 1024 * 1024 )) ;; + pib|pi) memory_b=$(( $number * 1024 * 1024 * 1024 * 1024 * 1024 )) ;; + esac + echo "$memory_b" + fi +} +# compute memory in different units +if [ ! -z ${VIASH_META_MEMORY+x} ]; then + VIASH_META_MEMORY_B=`ViashMemoryAsBytes $VIASH_META_MEMORY` + # do not define other variables if memory_b is an empty string + if [ ! -z "$VIASH_META_MEMORY_B" ]; then + VIASH_META_MEMORY_KB=$(( ($VIASH_META_MEMORY_B+999) / 1000 )) + VIASH_META_MEMORY_MB=$(( ($VIASH_META_MEMORY_KB+999) / 1000 )) + VIASH_META_MEMORY_GB=$(( ($VIASH_META_MEMORY_MB+999) / 1000 )) + VIASH_META_MEMORY_TB=$(( ($VIASH_META_MEMORY_GB+999) / 1000 )) + VIASH_META_MEMORY_PB=$(( ($VIASH_META_MEMORY_TB+999) / 1000 )) + VIASH_META_MEMORY_KIB=$(( ($VIASH_META_MEMORY_B+1023) / 1024 )) + VIASH_META_MEMORY_MIB=$(( ($VIASH_META_MEMORY_KIB+1023) / 1024 )) + VIASH_META_MEMORY_GIB=$(( ($VIASH_META_MEMORY_MIB+1023) / 1024 )) + VIASH_META_MEMORY_TIB=$(( ($VIASH_META_MEMORY_GIB+1023) / 1024 )) + VIASH_META_MEMORY_PIB=$(( ($VIASH_META_MEMORY_TIB+1023) / 1024 )) + else + # unset memory if string is empty + unset $VIASH_META_MEMORY_B + fi +fi +# unset nproc if string is empty +if [ -z "$VIASH_META_CPUS" ]; then + unset $VIASH_META_CPUS +fi + + +# check whether required parameters exist +if [ -z ${VIASH_PAR_PDATAFILE+x} ]; then + ViashError '--pDataFile' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_PAR_FDATAFILE+x} ]; then + ViashError '--fDataFile' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_PAR_MAPPINGDIR+x} ]; then + ViashError '--mappingDir' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_PAR_POOLNAME+x} ]; then + ViashError '--poolName' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_PAR_OUTPUT+x} ]; then + ViashError '--output' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_META_NAME+x} ]; then + ViashError 'name' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_META_FUNCTIONALITY_NAME+x} ]; then + ViashError 'functionality_name' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_META_RESOURCES_DIR+x} ]; then + ViashError 'resources_dir' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_META_EXECUTABLE+x} ]; then + ViashError 'executable' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_META_CONFIG+x} ]; then + ViashError 'config' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_META_TEMP_DIR+x} ]; then + ViashError 'temp_dir' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi + +# check whether required files exist +if [ ! -z "$VIASH_PAR_PDATAFILE" ] && [ ! -e "$VIASH_PAR_PDATAFILE" ]; then + ViashError "Input file '$VIASH_PAR_PDATAFILE' does not exist." + exit 1 +fi +if [ ! -z "$VIASH_PAR_FDATAFILE" ] && [ ! -e "$VIASH_PAR_FDATAFILE" ]; then + ViashError "Input file '$VIASH_PAR_FDATAFILE' does not exist." + exit 1 +fi +if [ ! -z "$VIASH_PAR_MAPPINGDIR" ]; then + IFS=';' + set -f + for file in $VIASH_PAR_MAPPINGDIR; do + unset IFS + if [ ! -e "$file" ]; then + ViashError "Input file '$file' does not exist." + exit 1 + fi + done + set +f +fi + +# check whether parameters values are of the right type +if [[ -n "$VIASH_META_CPUS" ]]; then + if ! [[ "$VIASH_META_CPUS" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'cpus' has to be an integer. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_B" ]]; then + if ! [[ "$VIASH_META_MEMORY_B" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_b' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_KB" ]]; then + if ! [[ "$VIASH_META_MEMORY_KB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_kb' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_MB" ]]; then + if ! [[ "$VIASH_META_MEMORY_MB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_mb' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_GB" ]]; then + if ! [[ "$VIASH_META_MEMORY_GB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_gb' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_TB" ]]; then + if ! [[ "$VIASH_META_MEMORY_TB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_tb' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_PB" ]]; then + if ! [[ "$VIASH_META_MEMORY_PB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_pb' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_KIB" ]]; then + if ! [[ "$VIASH_META_MEMORY_KIB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_kib' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_MIB" ]]; then + if ! [[ "$VIASH_META_MEMORY_MIB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_mib' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_GIB" ]]; then + if ! [[ "$VIASH_META_MEMORY_GIB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_gib' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_TIB" ]]; then + if ! [[ "$VIASH_META_MEMORY_TIB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_tib' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_PIB" ]]; then + if ! [[ "$VIASH_META_MEMORY_PIB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_pib' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi + +# create parent directories of output files, if so desired +if [ ! -z "$VIASH_PAR_OUTPUT" ] && [ ! -d "$(dirname "$VIASH_PAR_OUTPUT")" ]; then + mkdir -p "$(dirname "$VIASH_PAR_OUTPUT")" +fi + +if [ "$VIASH_ENGINE_ID" == "native" ] ; then + if [ "$VIASH_MODE" == "run" ]; then + VIASH_CMD="bash" + else + ViashError "Engine '$VIASH_ENGINE_ID' does not support mode '$VIASH_MODE'." + exit 1 + fi +fi + +if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then + # detect volumes from file arguments + VIASH_CHOWN_VARS=() +if [ ! -z "$VIASH_PAR_PDATAFILE" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_PAR_PDATAFILE")" ) + VIASH_PAR_PDATAFILE=$(ViashDockerAutodetectMount "$VIASH_PAR_PDATAFILE") +fi +if [ ! -z "$VIASH_PAR_FDATAFILE" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_PAR_FDATAFILE")" ) + VIASH_PAR_FDATAFILE=$(ViashDockerAutodetectMount "$VIASH_PAR_FDATAFILE") +fi +if [ ! -z "$VIASH_PAR_MAPPINGDIR" ]; then + VIASH_TEST_MAPPINGDIR=() + IFS=';' + for var in $VIASH_PAR_MAPPINGDIR; do + unset IFS + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$var")" ) + var=$(ViashDockerAutodetectMount "$var") + VIASH_TEST_MAPPINGDIR+=( "$var" ) + done + VIASH_PAR_MAPPINGDIR=$(IFS=';' ; echo "${VIASH_TEST_MAPPINGDIR[*]}") +fi +if [ ! -z "$VIASH_PAR_OUTPUT" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_PAR_OUTPUT")" ) + VIASH_PAR_OUTPUT=$(ViashDockerAutodetectMount "$VIASH_PAR_OUTPUT") + VIASH_CHOWN_VARS+=( "$VIASH_PAR_OUTPUT" ) +fi +if [ ! -z "$VIASH_META_RESOURCES_DIR" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_META_RESOURCES_DIR")" ) + VIASH_META_RESOURCES_DIR=$(ViashDockerAutodetectMount "$VIASH_META_RESOURCES_DIR") +fi +if [ ! -z "$VIASH_META_EXECUTABLE" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_META_EXECUTABLE")" ) + VIASH_META_EXECUTABLE=$(ViashDockerAutodetectMount "$VIASH_META_EXECUTABLE") +fi +if [ ! -z "$VIASH_META_CONFIG" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_META_CONFIG")" ) + VIASH_META_CONFIG=$(ViashDockerAutodetectMount "$VIASH_META_CONFIG") +fi +if [ ! -z "$VIASH_META_TEMP_DIR" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_META_TEMP_DIR")" ) + VIASH_META_TEMP_DIR=$(ViashDockerAutodetectMount "$VIASH_META_TEMP_DIR") +fi + + # get unique mounts + VIASH_UNIQUE_MOUNTS=($(for val in "${VIASH_DIRECTORY_MOUNTS[@]}"; do echo "$val"; done | sort -u)) +fi + +if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then + # change file ownership + function ViashPerformChown { + if (( ${#VIASH_CHOWN_VARS[@]} )); then + set +e + VIASH_CMD="docker run --entrypoint=bash --rm ${VIASH_UNIQUE_MOUNTS[@]} $VIASH_DOCKER_IMAGE_ID -c 'chown $(id -u):$(id -g) --silent --recursive ${VIASH_CHOWN_VARS[@]}'" + ViashDebug "+ $VIASH_CMD" + eval $VIASH_CMD + set -e + fi + } + trap ViashPerformChown EXIT +fi + +if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then + # helper function for filling in extra docker args + if [ ! -z "$VIASH_META_MEMORY_B" ]; then + VIASH_DOCKER_RUN_ARGS+=("--memory=${VIASH_META_MEMORY_B}") + fi + if [ ! -z "$VIASH_META_CPUS" ]; then + VIASH_DOCKER_RUN_ARGS+=("--cpus=${VIASH_META_CPUS}") + fi +fi + +if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then + VIASH_CMD="docker run --entrypoint=bash ${VIASH_DOCKER_RUN_ARGS[@]} ${VIASH_UNIQUE_MOUNTS[@]} $VIASH_DOCKER_IMAGE_ID" +fi + + +# set dependency paths + + +ViashDebug "Running command: $(echo $VIASH_CMD)" +cat << VIASHEOF | eval $VIASH_CMD +set -e +tempscript=\$(mktemp "$VIASH_META_TEMP_DIR/viash-run-create_eset-XXXXXX").R +function clean_up { + rm "\$tempscript" +} +function interrupt { + echo -e "\nCTRL-C Pressed..." + exit 1 +} +trap clean_up EXIT +trap interrupt INT SIGINT +cat > "\$tempscript" << 'VIASHMAIN' +library(Biobase) +library(data.table) +library(nlcv) +library(Matrix) +library(Seurat) + +### VIASH START +# The following code has been auto-generated by Viash. +# treat warnings as errors +.viash_orig_warn <- options(warn = 2) + +par <- list( + "pDataFile" = $( if [ ! -z ${VIASH_PAR_PDATAFILE+x} ]; then echo -n "'"; echo -n "$VIASH_PAR_PDATAFILE" | sed "s#['\\]#\\\\&#g"; echo "'"; else echo NULL; fi ), + "fDataFile" = $( if [ ! -z ${VIASH_PAR_FDATAFILE+x} ]; then echo -n "'"; echo -n "$VIASH_PAR_FDATAFILE" | sed "s#['\\]#\\\\&#g"; echo "'"; else echo NULL; fi ), + "mappingDir" = $( if [ ! -z ${VIASH_PAR_MAPPINGDIR+x} ]; then echo -n "strsplit('"; echo -n "$VIASH_PAR_MAPPINGDIR" | sed "s#['\\]#\\\\&#g"; echo "', split = ';')[[1]]"; else echo NULL; fi ), + "poolName" = $( if [ ! -z ${VIASH_PAR_POOLNAME+x} ]; then echo -n "'"; echo -n "$VIASH_PAR_POOLNAME" | sed "s#['\\]#\\\\&#g"; echo "'"; else echo NULL; fi ), + "output" = $( if [ ! -z ${VIASH_PAR_OUTPUT+x} ]; then echo -n "'"; echo -n "$VIASH_PAR_OUTPUT" | sed "s#['\\]#\\\\&#g"; echo "'"; else echo NULL; fi ) +) +meta <- list( + "name" = $( if [ ! -z ${VIASH_META_NAME+x} ]; then echo -n "'"; echo -n "$VIASH_META_NAME" | sed "s#['\\]#\\\\&#g"; echo "'"; else echo NULL; fi ), + "functionality_name" = $( if [ ! -z ${VIASH_META_FUNCTIONALITY_NAME+x} ]; then echo -n "'"; echo -n "$VIASH_META_FUNCTIONALITY_NAME" | sed "s#['\\]#\\\\&#g"; echo "'"; else echo NULL; fi ), + "resources_dir" = $( if [ ! -z ${VIASH_META_RESOURCES_DIR+x} ]; then echo -n "'"; echo -n "$VIASH_META_RESOURCES_DIR" | sed "s#['\\]#\\\\&#g"; echo "'"; else echo NULL; fi ), + "executable" = $( if [ ! -z ${VIASH_META_EXECUTABLE+x} ]; then echo -n "'"; echo -n "$VIASH_META_EXECUTABLE" | sed "s#['\\]#\\\\&#g"; echo "'"; else echo NULL; fi ), + "config" = $( if [ ! -z ${VIASH_META_CONFIG+x} ]; then echo -n "'"; echo -n "$VIASH_META_CONFIG" | sed "s#['\\]#\\\\&#g"; echo "'"; else echo NULL; fi ), + "temp_dir" = $( if [ ! -z ${VIASH_META_TEMP_DIR+x} ]; then echo -n "'"; echo -n "$VIASH_META_TEMP_DIR" | sed "s#['\\]#\\\\&#g"; echo "'"; else echo NULL; fi ), + "cpus" = $( if [ ! -z ${VIASH_META_CPUS+x} ]; then echo -n "as.integer('"; echo -n "$VIASH_META_CPUS" | sed "s#['\\]#\\\\&#g"; echo "')"; else echo NULL; fi ), + "memory_b" = $( if [ ! -z ${VIASH_META_MEMORY_B+x} ]; then echo -n "bit64::as.integer64('"; echo -n "$VIASH_META_MEMORY_B" | sed "s#['\\]#\\\\&#g"; echo "')"; else echo NULL; fi ), + "memory_kb" = $( if [ ! -z ${VIASH_META_MEMORY_KB+x} ]; then echo -n "bit64::as.integer64('"; echo -n "$VIASH_META_MEMORY_KB" | sed "s#['\\]#\\\\&#g"; echo "')"; else echo NULL; fi ), + "memory_mb" = $( if [ ! -z ${VIASH_META_MEMORY_MB+x} ]; then echo -n "bit64::as.integer64('"; echo -n "$VIASH_META_MEMORY_MB" | sed "s#['\\]#\\\\&#g"; echo "')"; else echo NULL; fi ), + "memory_gb" = $( if [ ! -z ${VIASH_META_MEMORY_GB+x} ]; then echo -n "bit64::as.integer64('"; echo -n "$VIASH_META_MEMORY_GB" | sed "s#['\\]#\\\\&#g"; echo "')"; else echo NULL; fi ), + "memory_tb" = $( if [ ! -z ${VIASH_META_MEMORY_TB+x} ]; then echo -n "bit64::as.integer64('"; echo -n "$VIASH_META_MEMORY_TB" | sed "s#['\\]#\\\\&#g"; echo "')"; else echo NULL; fi ), + "memory_pb" = $( if [ ! -z ${VIASH_META_MEMORY_PB+x} ]; then echo -n "bit64::as.integer64('"; echo -n "$VIASH_META_MEMORY_PB" | sed "s#['\\]#\\\\&#g"; echo "')"; else echo NULL; fi ), + "memory_kib" = $( if [ ! -z ${VIASH_META_MEMORY_KIB+x} ]; then echo -n "bit64::as.integer64('"; echo -n "$VIASH_META_MEMORY_KIB" | sed "s#['\\]#\\\\&#g"; echo "')"; else echo NULL; fi ), + "memory_mib" = $( if [ ! -z ${VIASH_META_MEMORY_MIB+x} ]; then echo -n "bit64::as.integer64('"; echo -n "$VIASH_META_MEMORY_MIB" | sed "s#['\\]#\\\\&#g"; echo "')"; else echo NULL; fi ), + "memory_gib" = $( if [ ! -z ${VIASH_META_MEMORY_GIB+x} ]; then echo -n "bit64::as.integer64('"; echo -n "$VIASH_META_MEMORY_GIB" | sed "s#['\\]#\\\\&#g"; echo "')"; else echo NULL; fi ), + "memory_tib" = $( if [ ! -z ${VIASH_META_MEMORY_TIB+x} ]; then echo -n "bit64::as.integer64('"; echo -n "$VIASH_META_MEMORY_TIB" | sed "s#['\\]#\\\\&#g"; echo "')"; else echo NULL; fi ), + "memory_pib" = $( if [ ! -z ${VIASH_META_MEMORY_PIB+x} ]; then echo -n "bit64::as.integer64('"; echo -n "$VIASH_META_MEMORY_PIB" | sed "s#['\\]#\\\\&#g"; echo "')"; else echo NULL; fi ) +) +dep <- list( + +) + + +# restore original warn setting +options(.viash_orig_warn) +rm(.viash_orig_warn) + +### VIASH END + + +Read10X <- function(data_dir = NULL, gene_column = 2, unique_features = TRUE) { + full.data <- list() + for (i in seq_along(along.with = data_dir)) { + run <- data_dir[i] + if (!dir.exists(paths = run)) { + stop("Directory provided does not exist") + } + barcode.loc <- file.path(run, "barcodes.tsv") + gene.loc <- file.path(run, "features.tsv") + features.loc <- file.path(run, "features.tsv.gz") + matrix.loc <- file.path(run, "matrix.mtx") + pre_ver_3 <- file.exists(gene.loc) + if (!pre_ver_3) { + addgz <- function(s) { + return(paste0(s, ".gz")) + } + barcode.loc <- addgz(s = barcode.loc) + matrix.loc <- addgz(s = matrix.loc) + } + if (!file.exists(barcode.loc)) { + stop("Barcode file missing") + } + if (!pre_ver_3 && !file.exists(features.loc)) { + stop("Gene name or features file missing") + } + if (!file.exists(matrix.loc)) { + stop("Expression matrix file missing") + } + data <- readMM(file = matrix.loc) + cell.names <- readLines(barcode.loc) + if (all(grepl(pattern = "\\\\-1\$", x = cell.names))) { + cell.names <- as.vector(x = as.character(x = sapply(X = cell.names, + FUN = ExtractField, field = 1, delim = "-"))) + } + if (is.null(x = names(x = data_dir))) { + if (i < 2) { + colnames(x = data) <- cell.names + } + else { + colnames(x = data) <- paste0(i, "_", cell.names) + } + } + else { + colnames(x = data) <- paste0(names(x = data_dir)[i], + "_", cell.names) + } + feature.names <- read.delim(file = ifelse(test = pre_ver_3, + yes = gene.loc, no = features.loc), header = FALSE, + stringsAsFactors = FALSE) + if (any(is.na(x = feature.names[, gene_column]))) { + warning("Some features names are NA. Replacing NA names with ID from the opposite column requested", + call. = FALSE, immediate. = TRUE) + na.features <- which(x = is.na(x = feature.names[, + gene_column])) + replacement.column <- ifelse(test = gene_column == + 2, yes = 1, no = 2) + feature.names[na.features, gene_column] <- feature.names[na.features, + replacement.column] + } + if (unique_features) { + fcols = ncol(x = feature.names) + if (fcols < gene_column) { + stop(paste0("gene_column was set to ", gene_column, + " but feature.tsv.gz (or genes.tsv) only has ", + fcols, " columns.", " Try setting the gene_column ", + "argument to a value <= to ", + fcols, ".")) + } + rownames(x = data) <- make.unique(names = feature.names[, + gene_column]) + } + if (ncol(x = feature.names) > 2) { + data_types <- factor(x = feature.names\$V3) + lvls <- levels(x = data_types) + if (length(x = lvls) > 1 && length(x = full.data) == 0) { + message(paste0("10X data contains more than one type and is ", + "being returned as a list containing matrices ", + "of each type.")) + } + expr_name <- "Gene Expression" + if (expr_name %in% lvls) { + lvls <- c(expr_name, lvls[-which(x = lvls == + expr_name)]) + } + data <- lapply(X = lvls, FUN = function(l) { + return(data[data_types == l, , drop = FALSE]) + }) + names(x = data) <- lvls + } else { + data <- list(data) + } + full.data[[length(x = full.data) + 1]] <- data + } + list_of_data <- list() + for (j in 1:length(x = full.data[[1]])) { + list_of_data[[j]] <- do.call(cbind, lapply(X = full.data, + FUN = \`[[\`, j)) + list_of_data[[j]] <- as(object = list_of_data[[j]], Class = "CsparseMatrix") + } + names(x = list_of_data) <- names(x = full.data[[1]]) + if (length(x = list_of_data) == 1) { + return(list_of_data[[1]]) + } else { + return(list_of_data) + } +} + +match_features <- function(exprs_matrix, fdata) { + + identical_features <- all(rownames(exprs_matrix) == rownames(fdata)) + + if (nrow(exprs_matrix) != nrow(fdata) || !identical_features) { + message(paste0("Features in 'fData' and expression matrix differ. ", + "Only matching features are returned.")) + } + + features <- intersect(rownames(exprs_matrix), rownames(fdata)) + exprs_matrix <- exprs_matrix[which(rownames(exprs_matrix) %in% features), ] + fdata <- fdata[which(rownames(fdata) %in% features), ] + + fdata[, seq_len(ncol(fdata))] <- lapply(fdata[, seq_len(ncol(fdata)), drop = FALSE], as.character) + # order features in exprs mat according to fdata + exprs_matrix <- exprs_matrix[match(rownames(fdata), rownames(exprs_matrix)), ] + + list(exprs_matrix = exprs_matrix, fdata = fdata) + +} + + +create_pdata <- function(sample_file, pool_name, barcodes) { + cols_to_remove <- c("SampleFileName", "Output", "Measure", "Strandedness") + pData <- sample_file[, !colnames(sample_file) %in% cols_to_remove, + drop = FALSE] + rownames(pData) <- lapply(sample_file\$WellBC, + \\(x) paste(pool_name, x, sep = "_")) + # pData[, ] <- lapply(pData, as.factor) + pData\$PoolName <- pool_name + pData <- pData[match(barcodes, pData\$WellBC), ] + return(pData) +} + +check_sample_file <- function(mapping_dir, sample_file){ + + message("Checking sample annotation:") + + requireNamespace("tools") + mapping_dir <- unlist(lapply(mapping_dir, function(x) { + if (!dir.exists(x)) { + stop(sprintf(paste0("Could not find directory ", + "provided in 'mappingDir' argument (%s)."), x)) + } + tools::file_path_as_absolute(x) + })) + + + # additional check for STARsolo + check_STARsolo_output <- function(x) { + files <- c("barcodes.tsv", "features.tsv", "matrix.mtx") + test <- list.files(x) %in% c(files, paste0(files, ".gz")) + length(test) != 0 && all(test) + } + + + if (!"WellBC" %in% colnames(sample_file)) { + stop(paste0("STARsolo output is used. The sample annotation must ", + "contain 'WellBC' column providing cell barcodes.")) + } + + mapping_dir <- unique(mapping_dir) + all_STARsolo_files_present <- all( + unlist( + lapply(mapping_dir, function(x) { + check_STARsolo_output(x) + }) + ) + ) + if (!all_STARsolo_files_present) { + stop(paste0("Could not find files: 'barcodes', 'features' and 'matrix'", + " for STARsolo output. Please check 'mappingDir' argument.")) + } + + message("- 'SampleFileName' column - OK") + + + + list(sample_expression_files = mapping_dir) +} + +create_exprs_matrix <- function(exprs_matrix_path, exprs_file_paths, + output, measure, col_names, cell_barcodes) { + + read_matrix <- Read10X(data_dir = exprs_file_paths, gene_column = 1) + read_matrix <- read_matrix[, which(colSums(read_matrix) != 0)] + # keep index of feature names containing "_" because Seurat + #changes them to "-" and they no longer match with fdata[, "gene_id"] + idx <- grep("_", rownames(read_matrix)) + + requireNamespace("Seurat") + seurat_object <- Seurat::CreateSeuratObject(counts = read_matrix) + + exprs_matrix <- as.matrix(seurat_object[['RNA']]@counts) + # replace "-" with "_" for features with "_" + # before converting to Seurat object + rownames(exprs_matrix)[idx] <- gsub("-", "_", rownames(exprs_matrix)[idx]) + requireNamespace("stringr") + exprs_matrix <- exprs_matrix[, stringr::str_detect(colnames(exprs_matrix), + paste(cell_barcodes, collapse = "|"))] + + + # check if rownames are ENSEMBL and remove version suffix + isENSEMBL <- all(grepl("ENS", rownames(exprs_matrix))) + if (isENSEMBL) { + # do not use gsub("(.+)[.]\\\\d+", "\\\\1", rownames(exprs_matrix)), + # so that ENS000000.1_PAR_Y can be kept + rownames(exprs_matrix) <- gsub("\\\\.\\\\d+\$", "", rownames(exprs_matrix)) + } + + + colnames(exprs_matrix) <- col_names + + exprs_matrix +} + +create_eset <- function(feature_annotation_path, + sample_annotation_path, + mapping_dir, + barcodes, + output_path, + pool_name, + exprs_matrix_path = NULL, + path = NULL, + add_eset_annotation = NULL) { + if (!file.exists(feature_annotation_path)) { + stop("Could not find feature annotation at '", feature_annotation_path, "'") + } + + if (!file.exists(sample_annotation_path)) { + stop("Could not find sample annotation at '", sample_annotation_path, "'") + } + + if(!is.null(exprs_matrix_path)) { + if(!file.exists(exprs_matrix_path)) { + stop("Could not find expression matrix at '", exprs_matrix_path, "'") + } + } + + if(!is.null(path)) { + if(!dir.exists(path)) { + stop("Provided 'path': '", path, "' does not exist.") + } + } + + ##### Import annotation files ##### + message("Importing feature annotation") + fdata_file <- read.table(feature_annotation_path, header = TRUE, + sep = "\\t", quote = "\\"", + comment.char = "", stringsAsFactors = FALSE) + + # for backwards compatibility + if("ENSEMBL" %in% colnames(fdata_file) && !all(grepl("ENS", fdata_file[, "ENSEMBL"])) & !"gene_id" %in% colnames(fdata_file)) { + colnames(fdata_file)[which(colnames(fdata_file) == "ENSEMBL")] <- "gene_id" + } + + # Check gene annotation + if(!"gene_id" %in% colnames(fdata_file)) + stop("'gene_id' column with unique feature identifiers must be present in 'feature_annotation_path'.") + + # check if duplicated ids are present + if(any(duplicated(fdata_file\$gene_id))) + stop("Duplicated features ids are not allowed. Please check the 'gene_id' column in 'feature_annotation_path'.") + + message("Importing sample annotation") + sample_file <- read.table(sample_annotation_path, header = TRUE, + sep = "\\t", quote = "\\"", + comment.char = "", stringsAsFactors = FALSE) + # Check sample annotation + check_sample_file_list <- check_sample_file(mapping_dir = mapping_dir, + sample_file = sample_file) + output <- "STARsolo" + measure <- "counts" + sample_expression_files <- check_sample_file_list\$sample_expression_files + + ##### Create phenodata ##### + pdata_eset <- create_pdata(sample_file = sample_file, pool_name = pool_name, + barcodes = barcodes) + + ##### Create expression matrix ##### + message("Creating expression matrix") + + exprs_matrix_eset <- create_exprs_matrix( + exprs_matrix_path = exprs_matrix_path, + exprs_file_paths = sample_expression_files, + output = output, + measure = measure, + col_names = rownames(pdata_eset), + cell_barcodes = barcodes + ) + + + ##### Create featuredata ##### + message("Creating feature data") + + fdata_eset <- fdata_file + rownames(fdata_eset) <- fdata_eset[, "gene_id"] + + # intersect features between exprs matrix and fdata + feature_files <- match_features(exprs_matrix = exprs_matrix_eset, + fdata = fdata_eset) + + fdata_eset <- feature_files\$fdata + exprs_matrix_eset <- feature_files\$exprs_matrix + + ##### Create eSet ##### + message("Creating eset") + + if (nrow(pdata_eset) != ncol(exprs_matrix_eset)) { + stop("nrow(pData) and ncol(exprsMatrix) differ") + } + + if (nrow(fdata_eset) != nrow(exprs_matrix_eset)) { + stop("nrow(fData) and nrow(exprsMatrix) differ") + } + + if (!all(rownames(pdata_eset) == colnames(exprs_matrix_eset))) { + stop("rownames(pData) and colnames(exprsMatrix) differ") + } + + if (!all(rownames(fdata_eset) == rownames(exprs_matrix_eset))) { + stop("rownames(fData) and rownames(exprsMatrix) differ") + } + + if (!inherits(exprs_matrix_eset, "matrix")) { + stop("exprsMatrix must be of class 'matrix'") + } + + + + additional_info <- paste0("Additional information about eSet \\n", + " Expression matrix created from ", + output, " output. \\n", + " Expression matrix contains non-transformed ", + ifelse(output %in% c("STAR", "STARsolo"), + "counts", + ifelse(measure == "expected_count", + "counts", measure)), ".") + + + if (isTRUE(!is.null(add_eset_annotation) & + is.character(add_eset_annotation))) { + additional_info <- paste0(additional_info, "\\n", " ", add_eset_annotation) + } + + fdata_eset <- new("AnnotatedDataFrame", data = fdata_eset) + pdata_eset <- new("AnnotatedDataFrame", data = pdata_eset) + + requireNamespace("Biobase") + eset <- Biobase::ExpressionSet(assayData = exprs_matrix_eset, + phenoData = pdata_eset, + featureData = fdata_eset, + annotation = additional_info) + + + saveRDS(eset, file = output_path) + + message(paste0("eset created succesfully for ", ncol(eset), + " samples and ", nrow(eset), + " genes and saved at ", output_path, ".")) + + eset +} + + +p_data_file <- par\$pDataFile +f_data_file <- par\$fDataFile +pool_name <- par\$poolName +mapping_dir <- lapply(par\$mappingDir, + \\(x) file.path(x, "Solo.out", "Gene", "raw")) + +get_barcode_from_mapping_dir <- function(raw_dir) { + barcodes_file <- file.path(raw_dir, "barcodes.tsv") + if (!file.exists(barcodes_file)) { + stop(paste0("Expected the 'Solo.out/Gene/raw' directory at ", + raw_dir, " to contain a 'barcodes.tsv' file.")) + } + barcodes <- readLines(barcodes_file) + if (length(barcodes) != 1) { + stop(paste0("A single STAR Solo folder should only have ", + "mapped one (1) barcode, but found '", + length(barcodes), "'for mapping directory ", raw_dir)) + } + return(barcodes) +} + +barcodes <- lapply(mapping_dir, get_barcode_from_mapping_dir) + +print(paste0("mappingDir: ", mapping_dir)) +print(paste0("pDataFile: ", p_data_file)) +print(paste0("fDataFile: ", f_data_file)) +print(paste0("poolName: ", pool_name)) +print(paste0("barcodes: ", barcodes)) + + + +# CREATE ESET WITH RAW UMI COUNTS + +eset <- create_eset(feature_annotation_path = f_data_file, + sample_annotation_path = p_data_file, + mapping_dir = mapping_dir, + barcodes = barcodes, + output_path = par\$output, + pool_name = pool_name, + path = NULL, + exprs_matrix_path = NULL) +VIASHMAIN +Rscript "\$tempscript" & +wait "\$!" + +VIASHEOF + + +if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then + # strip viash automount from file paths + + if [ ! -z "$VIASH_PAR_PDATAFILE" ]; then + VIASH_PAR_PDATAFILE=$(ViashDockerStripAutomount "$VIASH_PAR_PDATAFILE") + fi + if [ ! -z "$VIASH_PAR_FDATAFILE" ]; then + VIASH_PAR_FDATAFILE=$(ViashDockerStripAutomount "$VIASH_PAR_FDATAFILE") + fi + if [ ! -z "$VIASH_PAR_MAPPINGDIR" ]; then + unset VIASH_TEST_MAPPINGDIR + IFS=';' + for var in $VIASH_PAR_MAPPINGDIR; do + unset IFS + if [ -z "$VIASH_TEST_MAPPINGDIR" ]; then + VIASH_TEST_MAPPINGDIR="$(ViashDockerStripAutomount "$var")" + else + VIASH_TEST_MAPPINGDIR="$VIASH_TEST_MAPPINGDIR;""$(ViashDockerStripAutomount "$var")" + fi + done + VIASH_PAR_MAPPINGDIR="$VIASH_TEST_MAPPINGDIR" + fi + if [ ! -z "$VIASH_PAR_OUTPUT" ]; then + VIASH_PAR_OUTPUT=$(ViashDockerStripAutomount "$VIASH_PAR_OUTPUT") + fi + if [ ! -z "$VIASH_META_RESOURCES_DIR" ]; then + VIASH_META_RESOURCES_DIR=$(ViashDockerStripAutomount "$VIASH_META_RESOURCES_DIR") + fi + if [ ! -z "$VIASH_META_EXECUTABLE" ]; then + VIASH_META_EXECUTABLE=$(ViashDockerStripAutomount "$VIASH_META_EXECUTABLE") + fi + if [ ! -z "$VIASH_META_CONFIG" ]; then + VIASH_META_CONFIG=$(ViashDockerStripAutomount "$VIASH_META_CONFIG") + fi + if [ ! -z "$VIASH_META_TEMP_DIR" ]; then + VIASH_META_TEMP_DIR=$(ViashDockerStripAutomount "$VIASH_META_TEMP_DIR") + fi +fi + + +# check whether required files exist +if [ ! -z "$VIASH_PAR_OUTPUT" ] && [ ! -e "$VIASH_PAR_OUTPUT" ]; then + ViashError "Output file '$VIASH_PAR_OUTPUT' does not exist." + exit 1 +fi + + +exit 0 diff --git a/target/executable/eset/create_eset/nextflow_labels.config b/target/executable/eset/create_eset/nextflow_labels.config new file mode 100644 index 00000000..66f5e21c --- /dev/null +++ b/target/executable/eset/create_eset/nextflow_labels.config @@ -0,0 +1,105 @@ +executor { + $k8s { + submitRateLimit = '10sec' + pollInterval = '1 sec' + } +} + +process { + container = 'nextflow/bash:latest' + + // default resources + memory = { 8.Gb * task.attempt } + cpus = 8 + maxForks = 36 + + // Retry for exit codes that have something to do with memory issues + errorStrategy = { task.exitStatus in 137..140 ? 'retry' : 'terminate' } + maxRetries = 3 + maxMemory = 192.GB + + // Resource labels + withLabel: verylowcpu { cpus = 2 } + withLabel: lowcpu { cpus = 8 } + withLabel: midcpu { cpus = 16 } + withLabel: highcpu { cpus = 32 } + + withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } } + withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } } + withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } } + withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } } + +} + +profiles { + // detect tempdir + tempDir = java.nio.file.Paths.get( + System.getenv('NXF_TEMP') ?: + System.getenv('VIASH_TEMP') ?: + System.getenv('TEMPDIR') ?: + System.getenv('TMPDIR') ?: + '/tmp' + ).toAbsolutePath() + + mount_temp { + docker.temp = tempDir + podman.temp = tempDir + charliecloud.temp = tempDir + } + + no_publish { + process { + withName: '.*' { + publishDir = [ + enabled: false + ] + } + } + } + + docker { + docker.fixOwnership = true + docker.enabled = true + // docker.userEmulation = true + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + + local { + // This config is for local processing. + process { + maxMemory = 25.GB + withLabel: verylowcpu { cpus = 2 } + withLabel: lowcpu { cpus = 4 } + withLabel: midcpu { cpus = 6 } + withLabel: highcpu { cpus = 12 } + + withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } } + withLabel: midmem { memory = { get_memory( 12.GB * task.attempt ) } } + withLabel: highmem { memory = { get_memory( 20.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) + } + } diff --git a/target/executable/eset/create_fdata/.config.vsh.yaml b/target/executable/eset/create_fdata/.config.vsh.yaml new file mode 100644 index 00000000..d2298f4e --- /dev/null +++ b/target/executable/eset/create_fdata/.config.vsh.yaml @@ -0,0 +1,185 @@ +name: "create_fdata" +namespace: "eset" +version: "main" +argument_groups: +- name: "Arguments" + arguments: + - type: "file" + name: "--gtf" + description: "Genome annotation file in GTF format." + info: null + must_exist: true + create_parent: true + required: true + direction: "input" + multiple: false + multiple_sep: ";" + - type: "file" + name: "--output" + description: "Tab-delimited text file containing information about the 'gene'\ + \ or 'transcript'\nentries from the input GTF file. The 'transcript' entries\ + \ are used in case the source\nof the GTF was 'refGene' or 'ncbiRefSeq'. \n" + info: null + default: + - "fData.$id.txt" + must_exist: true + create_parent: true + required: false + direction: "output" + multiple: false + multiple_sep: ";" +resources: +- type: "python_script" + path: "create_fdata.py" + is_executable: true +- type: "file" + path: "nextflow_labels.config" + dest: "nextflow_labels.config" +description: "Create a fdata file\n" +test_resources: +- type: "python_script" + path: "test.py" + is_executable: true +- type: "file" + path: "test_annotation.gtf" +info: null +status: "enabled" +requirements: + commands: + - "ps" +license: "MIT" +links: + repository: "https://github.com/viash-hub/htrnaseq" +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: "main" + namespace_separator: "/" + setup: + - type: "apt" + packages: + - "procps" + interactive: false + - type: "python" + user: false + packages: + - "pandas" + upgrade: true + test_setup: + - type: "python" + user: false + packages: + - "viashpy" + upgrade: true + entrypoint: [] + cmd: null +- type: "native" + id: "native" +build_info: + config: "src/eset/create_fdata/config.vsh.yaml" + runner: "executable" + engine: "docker|native" + output: "target/executable/eset/create_fdata" + executable: "target/executable/eset/create_fdata/create_fdata" + viash_version: "0.9.0" + git_commit: "65dd41d8b1b4a307735c72320c96c0880c75f17f" + git_remote: "https://x-access-token:ghs_McZDF0yobnnHmOEb2Q4JaaB3pzr9mz1VbIOs@github.com/viash-hub/htrnaseq" +package_config: + name: "htrnaseq" + version: "main" + description: "High-throughput pipeline [WIP]\n" + info: + test_resources: + - path: "gs://viash-hub-test-data/htrnaseq/v1/" + dest: "resources_test" + viash_version: "0.9.0" + source: "src" + target: "target" + config_mods: + - ".requirements.commands := ['ps']\n.runners[.type == 'nextflow'].config.script\ + \ := 'includeConfig(\"nextflow_labels.config\")'\n.resources += {path: '/src/config/labels.config',\ + \ dest: 'nextflow_labels.config'}\n" + - ".engines += { type: \"native\" }" + - ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'" + - ".engines[.type == 'docker'].target_tag := 'main'" + keywords: + - "bioinformatics" + - "sequence" + - "high-throughput" + - "mapping" + - "counting" + - "pipeline" + license: "MIT" + organization: "vsh" + links: + repository: "https://github.com/viash-hub/htrnaseq" + issue_tracker: "https://github.com/viash-hub/htrnaseq/issues" diff --git a/target/executable/eset/create_fdata/create_fdata b/target/executable/eset/create_fdata/create_fdata new file mode 100755 index 00000000..2c076b66 --- /dev/null +++ b/target/executable/eset/create_fdata/create_fdata @@ -0,0 +1,1207 @@ +#!/usr/bin/env bash + +# create_fdata main +# +# This wrapper script is auto-generated by viash 0.9.0 and is thus a derivative +# work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data +# Intuitive. +# +# The component may contain files which fall under a different license. The +# authors of this component should specify the license in the header of such +# files, or include a separate license file detailing the licenses of all included +# files. + +set -e + +if [ -z "$VIASH_TEMP" ]; then + VIASH_TEMP=${VIASH_TEMP:-$VIASH_TMPDIR} + VIASH_TEMP=${VIASH_TEMP:-$VIASH_TEMPDIR} + VIASH_TEMP=${VIASH_TEMP:-$VIASH_TMP} + VIASH_TEMP=${VIASH_TEMP:-$TMPDIR} + VIASH_TEMP=${VIASH_TEMP:-$TMP} + VIASH_TEMP=${VIASH_TEMP:-$TEMPDIR} + VIASH_TEMP=${VIASH_TEMP:-$TEMP} + VIASH_TEMP=${VIASH_TEMP:-/tmp} +fi + +# define helper functions +# ViashQuote: put quotes around non flag values +# $1 : unquoted string +# return : possibly quoted string +# examples: +# ViashQuote --foo # returns --foo +# ViashQuote bar # returns 'bar' +# Viashquote --foo=bar # returns --foo='bar' +function ViashQuote { + if [[ "$1" =~ ^-+[a-zA-Z0-9_\-]+=.+$ ]]; then + echo "$1" | sed "s#=\(.*\)#='\1'#" + elif [[ "$1" =~ ^-+[a-zA-Z0-9_\-]+$ ]]; then + echo "$1" + else + echo "'$1'" + fi +} +# ViashRemoveFlags: Remove leading flag +# $1 : string with a possible leading flag +# return : string without possible leading flag +# examples: +# ViashRemoveFlags --foo=bar # returns bar +function ViashRemoveFlags { + echo "$1" | sed 's/^--*[a-zA-Z0-9_\-]*=//' +} +# ViashSourceDir: return the path of a bash file, following symlinks +# usage : ViashSourceDir ${BASH_SOURCE[0]} +# $1 : Should always be set to ${BASH_SOURCE[0]} +# returns : The absolute path of the bash file +function ViashSourceDir { + local source="$1" + while [ -h "$source" ]; do + local dir="$( cd -P "$( dirname "$source" )" >/dev/null 2>&1 && pwd )" + source="$(readlink "$source")" + [[ $source != /* ]] && source="$dir/$source" + done + cd -P "$( dirname "$source" )" >/dev/null 2>&1 && pwd +} +# ViashFindTargetDir: return the path of the '.build.yaml' file, following symlinks +# usage : ViashFindTargetDir 'ScriptPath' +# $1 : The location from where to start the upward search +# returns : The absolute path of the '.build.yaml' file +function ViashFindTargetDir { + local source="$1" + while [[ "$source" != "" && ! -e "$source/.build.yaml" ]]; do + source=${source%/*} + done + echo $source +} +# see https://en.wikipedia.org/wiki/Syslog#Severity_level +VIASH_LOGCODE_EMERGENCY=0 +VIASH_LOGCODE_ALERT=1 +VIASH_LOGCODE_CRITICAL=2 +VIASH_LOGCODE_ERROR=3 +VIASH_LOGCODE_WARNING=4 +VIASH_LOGCODE_NOTICE=5 +VIASH_LOGCODE_INFO=6 +VIASH_LOGCODE_DEBUG=7 +VIASH_VERBOSITY=$VIASH_LOGCODE_NOTICE + +# ViashLog: Log events depending on the verbosity level +# usage: ViashLog 1 alert Oh no something went wrong! +# $1: required verbosity level +# $2: display tag +# $3+: messages to display +# stdout: Your input, prepended by '[$2] '. +function ViashLog { + local required_level="$1" + local display_tag="$2" + shift 2 + if [ $VIASH_VERBOSITY -ge $required_level ]; then + >&2 echo "[$display_tag]" "$@" + fi +} + +# ViashEmergency: log events when the system is unstable +# usage: ViashEmergency Oh no something went wrong. +# stdout: Your input, prepended by '[emergency] '. +function ViashEmergency { + ViashLog $VIASH_LOGCODE_EMERGENCY emergency "$@" +} + +# ViashAlert: log events when actions must be taken immediately (e.g. corrupted system database) +# usage: ViashAlert Oh no something went wrong. +# stdout: Your input, prepended by '[alert] '. +function ViashAlert { + ViashLog $VIASH_LOGCODE_ALERT alert "$@" +} + +# ViashCritical: log events when a critical condition occurs +# usage: ViashCritical Oh no something went wrong. +# stdout: Your input, prepended by '[critical] '. +function ViashCritical { + ViashLog $VIASH_LOGCODE_CRITICAL critical "$@" +} + +# ViashError: log events when an error condition occurs +# usage: ViashError Oh no something went wrong. +# stdout: Your input, prepended by '[error] '. +function ViashError { + ViashLog $VIASH_LOGCODE_ERROR error "$@" +} + +# ViashWarning: log potentially abnormal events +# usage: ViashWarning Something may have gone wrong. +# stdout: Your input, prepended by '[warning] '. +function ViashWarning { + ViashLog $VIASH_LOGCODE_WARNING warning "$@" +} + +# ViashNotice: log significant but normal events +# usage: ViashNotice This just happened. +# stdout: Your input, prepended by '[notice] '. +function ViashNotice { + ViashLog $VIASH_LOGCODE_NOTICE notice "$@" +} + +# ViashInfo: log normal events +# usage: ViashInfo This just happened. +# stdout: Your input, prepended by '[info] '. +function ViashInfo { + ViashLog $VIASH_LOGCODE_INFO info "$@" +} + +# ViashDebug: log all events, for debugging purposes +# usage: ViashDebug This just happened. +# stdout: Your input, prepended by '[debug] '. +function ViashDebug { + ViashLog $VIASH_LOGCODE_DEBUG debug "$@" +} + +# find source folder of this component +VIASH_META_RESOURCES_DIR=`ViashSourceDir ${BASH_SOURCE[0]}` + +# find the root of the built components & dependencies +VIASH_TARGET_DIR=`ViashFindTargetDir $VIASH_META_RESOURCES_DIR` + +# define meta fields +VIASH_META_NAME="create_fdata" +VIASH_META_FUNCTIONALITY_NAME="create_fdata" +VIASH_META_EXECUTABLE="$VIASH_META_RESOURCES_DIR/$VIASH_META_NAME" +VIASH_META_CONFIG="$VIASH_META_RESOURCES_DIR/.config.vsh.yaml" +VIASH_META_TEMP_DIR="$VIASH_TEMP" + + +# ViashHelp: Display helpful explanation about this executable +function ViashHelp { + echo "create_fdata main" + echo "" + echo "Create a fdata file" + echo "" + echo "Arguments:" + echo " --gtf" + echo " type: file, required parameter, file must exist" + echo " Genome annotation file in GTF format." + echo "" + echo " --output" + echo " type: file, output, file must exist" + echo " default: fData.\$id.txt" + echo " Tab-delimited text file containing information about the 'gene' or" + echo " 'transcript'" + echo " entries from the input GTF file. The 'transcript' entries are used in" + echo " case the source" + echo " of the GTF was 'refGene' or 'ncbiRefSeq'." +} + +# initialise variables +VIASH_MODE='run' +VIASH_ENGINE_ID='docker' + +######## Helper functions for setting up Docker images for viash ######## +# expects: ViashDockerBuild + +# ViashDockerInstallationCheck: check whether Docker is installed correctly +# +# examples: +# ViashDockerInstallationCheck +function ViashDockerInstallationCheck { + ViashDebug "Checking whether Docker is installed" + if [ ! command -v docker &> /dev/null ]; then + ViashCritical "Docker doesn't seem to be installed. See 'https://docs.docker.com/get-docker/' for instructions." + exit 1 + fi + + ViashDebug "Checking whether the Docker daemon is running" + local save=$-; set +e + local docker_version=$(docker version --format '{{.Client.APIVersion}}' 2> /dev/null) + local out=$? + [[ $save =~ e ]] && set -e + if [ $out -ne 0 ]; then + ViashCritical "Docker daemon does not seem to be running. Try one of the following:" + ViashCritical "- Try running 'dockerd' in the command line" + ViashCritical "- See https://docs.docker.com/config/daemon/" + exit 1 + fi +} + +# ViashDockerRemoteTagCheck: check whether a Docker image is available +# on a remote. Assumes `docker login` has been performed, if relevant. +# +# $1 : image identifier with format `[registry/]image[:tag]` +# exit code $? : whether or not the image was found +# examples: +# ViashDockerRemoteTagCheck python:latest +# echo $? # returns '0' +# ViashDockerRemoteTagCheck sdaizudceahifu +# echo $? # returns '1' +function ViashDockerRemoteTagCheck { + docker manifest inspect $1 > /dev/null 2> /dev/null +} + +# ViashDockerLocalTagCheck: check whether a Docker image is available locally +# +# $1 : image identifier with format `[registry/]image[:tag]` +# exit code $? : whether or not the image was found +# examples: +# docker pull python:latest +# ViashDockerLocalTagCheck python:latest +# echo $? # returns '0' +# ViashDockerLocalTagCheck sdaizudceahifu +# echo $? # returns '1' +function ViashDockerLocalTagCheck { + [ -n "$(docker images -q $1)" ] +} + +# ViashDockerPull: pull a Docker image +# +# $1 : image identifier with format `[registry/]image[:tag]` +# exit code $? : whether or not the image was found +# examples: +# ViashDockerPull python:latest +# echo $? # returns '0' +# ViashDockerPull sdaizudceahifu +# echo $? # returns '1' +function ViashDockerPull { + ViashNotice "Checking if Docker image is available at '$1'" + if [ $VIASH_VERBOSITY -ge $VIASH_LOGCODE_INFO ]; then + docker pull $1 && return 0 || return 1 + else + local save=$-; set +e + docker pull $1 2> /dev/null > /dev/null + local out=$? + [[ $save =~ e ]] && set -e + if [ $out -ne 0 ]; then + ViashWarning "Could not pull from '$1'. Docker image doesn't exist or is not accessible." + fi + return $out + fi +} + +# ViashDockerPush: push a Docker image +# +# $1 : image identifier with format `[registry/]image[:tag]` +# exit code $? : whether or not the image was found +# examples: +# ViashDockerPush python:latest +# echo $? # returns '0' +# ViashDockerPush sdaizudceahifu +# echo $? # returns '1' +function ViashDockerPush { + ViashNotice "Pushing image to '$1'" + local save=$-; set +e + local out + if [ $VIASH_VERBOSITY -ge $VIASH_LOGCODE_INFO ]; then + docker push $1 + out=$? + else + docker push $1 2> /dev/null > /dev/null + out=$? + fi + [[ $save =~ e ]] && set -e + if [ $out -eq 0 ]; then + ViashNotice "Container '$1' push succeeded." + else + ViashError "Container '$1' push errored. You might not be logged in or have the necessary permissions." + fi + return $out +} + +# ViashDockerPullElseBuild: pull a Docker image, else build it +# +# $1 : image identifier with format `[registry/]image[:tag]` +# ViashDockerBuild : a Bash function which builds a docker image, takes image identifier as argument. +# examples: +# ViashDockerPullElseBuild mynewcomponent +function ViashDockerPullElseBuild { + local save=$-; set +e + ViashDockerPull $1 + local out=$? + [[ $save =~ e ]] && set -e + if [ $out -ne 0 ]; then + ViashDockerBuild $@ + fi +} + +# ViashDockerSetup: create a Docker image, according to specified docker setup strategy +# +# $1 : image identifier with format `[registry/]image[:tag]` +# $2 : docker setup strategy, see DockerSetupStrategy.scala +# examples: +# ViashDockerSetup mynewcomponent alwaysbuild +function ViashDockerSetup { + local image_id="$1" + local setup_strategy="$2" + if [ "$setup_strategy" == "alwaysbuild" -o "$setup_strategy" == "build" -o "$setup_strategy" == "b" ]; then + ViashDockerBuild $image_id --no-cache $(ViashDockerBuildArgs "$engine_id") + elif [ "$setup_strategy" == "alwayspull" -o "$setup_strategy" == "pull" -o "$setup_strategy" == "p" ]; then + ViashDockerPull $image_id + elif [ "$setup_strategy" == "alwayspullelsebuild" -o "$setup_strategy" == "pullelsebuild" ]; then + ViashDockerPullElseBuild $image_id --no-cache $(ViashDockerBuildArgs "$engine_id") + elif [ "$setup_strategy" == "alwayspullelsecachedbuild" -o "$setup_strategy" == "pullelsecachedbuild" ]; then + ViashDockerPullElseBuild $image_id $(ViashDockerBuildArgs "$engine_id") + elif [ "$setup_strategy" == "alwayscachedbuild" -o "$setup_strategy" == "cachedbuild" -o "$setup_strategy" == "cb" ]; then + ViashDockerBuild $image_id $(ViashDockerBuildArgs "$engine_id") + elif [[ "$setup_strategy" =~ ^ifneedbe ]]; then + local save=$-; set +e + ViashDockerLocalTagCheck $image_id + local outCheck=$? + [[ $save =~ e ]] && set -e + if [ $outCheck -eq 0 ]; then + ViashInfo "Image $image_id already exists" + elif [ "$setup_strategy" == "ifneedbebuild" ]; then + ViashDockerBuild $image_id --no-cache $(ViashDockerBuildArgs "$engine_id") + elif [ "$setup_strategy" == "ifneedbecachedbuild" ]; then + ViashDockerBuild $image_id $(ViashDockerBuildArgs "$engine_id") + elif [ "$setup_strategy" == "ifneedbepull" ]; then + ViashDockerPull $image_id + elif [ "$setup_strategy" == "ifneedbepullelsebuild" ]; then + ViashDockerPullElseBuild $image_id --no-cache $(ViashDockerBuildArgs "$engine_id") + elif [ "$setup_strategy" == "ifneedbepullelsecachedbuild" ]; then + ViashDockerPullElseBuild $image_id $(ViashDockerBuildArgs "$engine_id") + else + ViashError "Unrecognised Docker strategy: $setup_strategy" + exit 1 + fi + elif [ "$setup_strategy" == "push" -o "$setup_strategy" == "forcepush" -o "$setup_strategy" == "alwayspush" ]; then + ViashDockerPush "$image_id" + elif [ "$setup_strategy" == "pushifnotpresent" -o "$setup_strategy" == "gentlepush" -o "$setup_strategy" == "maybepush" ]; then + local save=$-; set +e + ViashDockerRemoteTagCheck $image_id + local outCheck=$? + [[ $save =~ e ]] && set -e + if [ $outCheck -eq 0 ]; then + ViashNotice "Container '$image_id' exists, doing nothing." + else + ViashNotice "Container '$image_id' does not yet exist." + ViashDockerPush "$image_id" + fi + elif [ "$setup_strategy" == "donothing" -o "$setup_strategy" == "meh" ]; then + ViashNotice "Skipping setup." + else + ViashError "Unrecognised Docker strategy: $setup_strategy" + exit 1 + fi +} + +# ViashDockerCheckCommands: Check whether a docker container has the required commands +# +# $1 : image identifier with format `[registry/]image[:tag]` +# $@ : commands to verify being present +# examples: +# ViashDockerCheckCommands bash:4.0 bash ps foo +function ViashDockerCheckCommands { + local image_id="$1" + shift 1 + local commands="$@" + local save=$-; set +e + local missing # mark 'missing' as local in advance, otherwise the exit code of the command will be missing and always be '0' + missing=$(docker run --rm --entrypoint=sh "$image_id" -c "for command in $commands; do command -v \$command >/dev/null 2>&1; if [ \$? -ne 0 ]; then echo \$command; exit 1; fi; done") + local outCheck=$? + [[ $save =~ e ]] && set -e + if [ $outCheck -ne 0 ]; then + ViashError "Docker container '$image_id' does not contain command '$missing'." + exit 1 + fi +} + +# ViashDockerBuild: build a docker image +# $1 : image identifier with format `[registry/]image[:tag]` +# $... : additional arguments to pass to docker build +# $VIASH_META_TEMP_DIR : temporary directory to store dockerfile & optional resources in +# $VIASH_META_NAME : name of the component +# $VIASH_META_RESOURCES_DIR : directory containing the resources +# $VIASH_VERBOSITY : verbosity level +# exit code $? : whether or not the image was built successfully +function ViashDockerBuild { + local image_id="$1" + shift 1 + + # create temporary directory to store dockerfile & optional resources in + local tmpdir=$(mktemp -d "$VIASH_META_TEMP_DIR/dockerbuild-$VIASH_META_NAME-XXXXXX") + local dockerfile="$tmpdir/Dockerfile" + function clean_up { + rm -rf "$tmpdir" + } + trap clean_up EXIT + + # store dockerfile and resources + ViashDockerfile "$VIASH_ENGINE_ID" > "$dockerfile" + + # generate the build command + local docker_build_cmd="docker build -t '$image_id' $@ '$VIASH_META_RESOURCES_DIR' -f '$dockerfile'" + + # build the container + ViashNotice "Building container '$image_id' with Dockerfile" + ViashInfo "$docker_build_cmd" + local save=$-; set +e + if [ $VIASH_VERBOSITY -ge $VIASH_LOGCODE_INFO ]; then + eval $docker_build_cmd + else + eval $docker_build_cmd &> "$tmpdir/docker_build.log" + fi + + # check exit code + local out=$? + [[ $save =~ e ]] && set -e + if [ $out -ne 0 ]; then + ViashError "Error occurred while building container '$image_id'" + if [ $VIASH_VERBOSITY -lt $VIASH_LOGCODE_INFO ]; then + ViashError "Transcript: --------------------------------" + cat "$tmpdir/docker_build.log" + ViashError "End of transcript --------------------------" + fi + exit 1 + fi +} + +######## End of helper functions for setting up Docker images for viash ######## + +# ViashDockerFile: print the dockerfile to stdout +# $1 : engine identifier +# return : dockerfile required to run this component +# examples: +# ViashDockerFile +function ViashDockerfile { + local engine_id="$1" + + if [[ "$engine_id" == "docker" ]]; then + cat << 'VIASHDOCKER' +FROM python:3.12-slim +ENTRYPOINT [] +RUN apt-get update && \ + DEBIAN_FRONTEND=noninteractive apt-get install -y procps && \ + rm -rf /var/lib/apt/lists/* + +RUN pip install --upgrade pip && \ + pip install --upgrade --no-cache-dir "pandas" + +LABEL org.opencontainers.image.description="Companion container for running component eset create_fdata" +LABEL org.opencontainers.image.created="2024-11-05T15:39:42Z" +LABEL org.opencontainers.image.source="https://github.com/viash-hub/htrnaseq" +LABEL org.opencontainers.image.revision="65dd41d8b1b4a307735c72320c96c0880c75f17f" +LABEL org.opencontainers.image.version="main" + +VIASHDOCKER + fi +} + +# ViashDockerBuildArgs: return the arguments to pass to docker build +# $1 : engine identifier +# return : arguments to pass to docker build +function ViashDockerBuildArgs { + local engine_id="$1" + + if [[ "$engine_id" == "docker" ]]; then + echo "" + fi +} + +# ViashAbsolutePath: generate absolute path from relative path +# borrowed from https://stackoverflow.com/a/21951256 +# $1 : relative filename +# return : absolute path +# examples: +# ViashAbsolutePath some_file.txt # returns /path/to/some_file.txt +# ViashAbsolutePath /foo/bar/.. # returns /foo +function ViashAbsolutePath { + local thePath + local parr + local outp + local len + if [[ ! "$1" =~ ^/ ]]; then + thePath="$PWD/$1" + else + thePath="$1" + fi + echo "$thePath" | ( + IFS=/ + read -a parr + declare -a outp + for i in "${parr[@]}"; do + case "$i" in + ''|.) continue ;; + ..) + len=${#outp[@]} + if ((len==0)); then + continue + else + unset outp[$((len-1))] + fi + ;; + *) + len=${#outp[@]} + outp[$len]="$i" + ;; + esac + done + echo /"${outp[*]}" + ) +} +# ViashDockerAutodetectMount: auto configuring docker mounts from parameters +# $1 : The parameter value +# returns : New parameter +# $VIASH_DIRECTORY_MOUNTS : Added another parameter to be passed to docker +# $VIASH_DOCKER_AUTOMOUNT_PREFIX : The prefix to be used for the automounts +# examples: +# ViashDockerAutodetectMount /path/to/bar # returns '/viash_automount/path/to/bar' +# ViashDockerAutodetectMountArg /path/to/bar # returns '--volume="/path/to:/viash_automount/path/to"' +function ViashDockerAutodetectMount { + local abs_path=$(ViashAbsolutePath "$1") + local mount_source + local base_name + if [ -d "$abs_path" ]; then + mount_source="$abs_path" + base_name="" + else + mount_source=`dirname "$abs_path"` + base_name=`basename "$abs_path"` + fi + local mount_target="$VIASH_DOCKER_AUTOMOUNT_PREFIX$mount_source" + if [ -z "$base_name" ]; then + echo "$mount_target" + else + echo "$mount_target/$base_name" + fi +} +function ViashDockerAutodetectMountArg { + local abs_path=$(ViashAbsolutePath "$1") + local mount_source + local base_name + if [ -d "$abs_path" ]; then + mount_source="$abs_path" + base_name="" + else + mount_source=`dirname "$abs_path"` + base_name=`basename "$abs_path"` + fi + local mount_target="$VIASH_DOCKER_AUTOMOUNT_PREFIX$mount_source" + ViashDebug "ViashDockerAutodetectMountArg $1 -> $mount_source -> $mount_target" + echo "--volume=\"$mount_source:$mount_target\"" +} +function ViashDockerStripAutomount { + local abs_path=$(ViashAbsolutePath "$1") + echo "${abs_path#$VIASH_DOCKER_AUTOMOUNT_PREFIX}" +} +# initialise variables +VIASH_DIRECTORY_MOUNTS=() + +# configure default docker automount prefix if it is unset +if [ -z "${VIASH_DOCKER_AUTOMOUNT_PREFIX+x}" ]; then + VIASH_DOCKER_AUTOMOUNT_PREFIX="/viash_automount" +fi + +# initialise docker variables +VIASH_DOCKER_RUN_ARGS=(-i --rm) + +# initialise array +VIASH_POSITIONAL_ARGS='' + +while [[ $# -gt 0 ]]; do + case "$1" in + -h|--help) + ViashHelp + exit + ;; + ---v|---verbose) + let "VIASH_VERBOSITY=VIASH_VERBOSITY+1" + shift 1 + ;; + ---verbosity) + VIASH_VERBOSITY="$2" + shift 2 + ;; + ---verbosity=*) + VIASH_VERBOSITY="$(ViashRemoveFlags "$1")" + shift 1 + ;; + --version) + echo "create_fdata main" + exit + ;; + --gtf) + [ -n "$VIASH_PAR_GTF" ] && ViashError Bad arguments for option \'--gtf\': \'$VIASH_PAR_GTF\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_GTF="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --gtf. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --gtf=*) + [ -n "$VIASH_PAR_GTF" ] && ViashError Bad arguments for option \'--gtf=*\': \'$VIASH_PAR_GTF\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_GTF=$(ViashRemoveFlags "$1") + shift 1 + ;; + --output) + [ -n "$VIASH_PAR_OUTPUT" ] && ViashError Bad arguments for option \'--output\': \'$VIASH_PAR_OUTPUT\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_OUTPUT="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --output. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --output=*) + [ -n "$VIASH_PAR_OUTPUT" ] && ViashError Bad arguments for option \'--output=*\': \'$VIASH_PAR_OUTPUT\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_OUTPUT=$(ViashRemoveFlags "$1") + shift 1 + ;; + ---engine) + VIASH_ENGINE_ID="$2" + shift 2 + ;; + ---engine=*) + VIASH_ENGINE_ID="$(ViashRemoveFlags "$1")" + shift 1 + ;; + ---setup) + VIASH_MODE='setup' + VIASH_SETUP_STRATEGY="$2" + shift 2 + ;; + ---setup=*) + VIASH_MODE='setup' + VIASH_SETUP_STRATEGY="$(ViashRemoveFlags "$1")" + shift 1 + ;; + ---dockerfile) + VIASH_MODE='dockerfile' + shift 1 + ;; + ---docker_run_args) + VIASH_DOCKER_RUN_ARGS+=("$2") + shift 2 + ;; + ---docker_run_args=*) + VIASH_DOCKER_RUN_ARGS+=("$(ViashRemoveFlags "$1")") + shift 1 + ;; + ---docker_image_id) + VIASH_MODE='docker_image_id' + shift 1 + ;; + ---debug) + VIASH_MODE='debug' + shift 1 + ;; + ---cpus) + [ -n "$VIASH_META_CPUS" ] && ViashError Bad arguments for option \'---cpus\': \'$VIASH_META_CPUS\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_META_CPUS="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to ---cpus. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + ---cpus=*) + [ -n "$VIASH_META_CPUS" ] && ViashError Bad arguments for option \'---cpus=*\': \'$VIASH_META_CPUS\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_META_CPUS=$(ViashRemoveFlags "$1") + shift 1 + ;; + ---memory) + [ -n "$VIASH_META_MEMORY" ] && ViashError Bad arguments for option \'---memory\': \'$VIASH_META_MEMORY\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_META_MEMORY="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to ---memory. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + ---memory=*) + [ -n "$VIASH_META_MEMORY" ] && ViashError Bad arguments for option \'---memory=*\': \'$VIASH_META_MEMORY\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_META_MEMORY=$(ViashRemoveFlags "$1") + shift 1 + ;; + *) # positional arg or unknown option + # since the positional args will be eval'd, can we always quote, instead of using ViashQuote + VIASH_POSITIONAL_ARGS="$VIASH_POSITIONAL_ARGS '$1'" + [[ $1 == -* ]] && ViashWarning $1 looks like a parameter but is not a defined parameter and will instead be treated as a positional argument. Use "--help" to get more information on the parameters. + shift # past argument + ;; + esac +done + +# parse positional parameters +eval set -- $VIASH_POSITIONAL_ARGS + + +if [ "$VIASH_ENGINE_ID" == "native" ] ; then + VIASH_ENGINE_TYPE='native' +elif [ "$VIASH_ENGINE_ID" == "docker" ] ; then + VIASH_ENGINE_TYPE='docker' +else + ViashError "Engine '$VIASH_ENGINE_ID' is not recognized. Options are: docker, native." + exit 1 +fi + +if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then + # check if docker is installed properly + ViashDockerInstallationCheck + + # determine docker image id + if [[ "$VIASH_ENGINE_ID" == 'docker' ]]; then + VIASH_DOCKER_IMAGE_ID='images.viash-hub.com/vsh/htrnaseq/eset/create_fdata:main' + fi + + # print dockerfile + if [ "$VIASH_MODE" == "dockerfile" ]; then + ViashDockerfile "$VIASH_ENGINE_ID" + exit 0 + + elif [ "$VIASH_MODE" == "docker_image_id" ]; then + echo "$VIASH_DOCKER_IMAGE_ID" + exit 0 + + # enter docker container + elif [[ "$VIASH_MODE" == "debug" ]]; then + VIASH_CMD="docker run --entrypoint=bash ${VIASH_DOCKER_RUN_ARGS[@]} -v '$(pwd)':/pwd --workdir /pwd -t $VIASH_DOCKER_IMAGE_ID" + ViashNotice "+ $VIASH_CMD" + eval $VIASH_CMD + exit + + # build docker image + elif [ "$VIASH_MODE" == "setup" ]; then + ViashDockerSetup "$VIASH_DOCKER_IMAGE_ID" "$VIASH_SETUP_STRATEGY" + ViashDockerCheckCommands "$VIASH_DOCKER_IMAGE_ID" 'ps' 'bash' + exit 0 + fi + + # check if docker image exists + ViashDockerSetup "$VIASH_DOCKER_IMAGE_ID" ifneedbepullelsecachedbuild + ViashDockerCheckCommands "$VIASH_DOCKER_IMAGE_ID" 'ps' 'bash' +fi + +# setting computational defaults + +# helper function for parsing memory strings +function ViashMemoryAsBytes { + local memory=`echo "$1" | tr '[:upper:]' '[:lower:]' | tr -d '[:space:]'` + local memory_regex='^([0-9]+)([kmgtp]i?b?|b)$' + if [[ $memory =~ $memory_regex ]]; then + local number=${memory/[^0-9]*/} + local symbol=${memory/*[0-9]/} + + case $symbol in + b) memory_b=$number ;; + kb|k) memory_b=$(( $number * 1000 )) ;; + mb|m) memory_b=$(( $number * 1000 * 1000 )) ;; + gb|g) memory_b=$(( $number * 1000 * 1000 * 1000 )) ;; + tb|t) memory_b=$(( $number * 1000 * 1000 * 1000 * 1000 )) ;; + pb|p) memory_b=$(( $number * 1000 * 1000 * 1000 * 1000 * 1000 )) ;; + kib|ki) memory_b=$(( $number * 1024 )) ;; + mib|mi) memory_b=$(( $number * 1024 * 1024 )) ;; + gib|gi) memory_b=$(( $number * 1024 * 1024 * 1024 )) ;; + tib|ti) memory_b=$(( $number * 1024 * 1024 * 1024 * 1024 )) ;; + pib|pi) memory_b=$(( $number * 1024 * 1024 * 1024 * 1024 * 1024 )) ;; + esac + echo "$memory_b" + fi +} +# compute memory in different units +if [ ! -z ${VIASH_META_MEMORY+x} ]; then + VIASH_META_MEMORY_B=`ViashMemoryAsBytes $VIASH_META_MEMORY` + # do not define other variables if memory_b is an empty string + if [ ! -z "$VIASH_META_MEMORY_B" ]; then + VIASH_META_MEMORY_KB=$(( ($VIASH_META_MEMORY_B+999) / 1000 )) + VIASH_META_MEMORY_MB=$(( ($VIASH_META_MEMORY_KB+999) / 1000 )) + VIASH_META_MEMORY_GB=$(( ($VIASH_META_MEMORY_MB+999) / 1000 )) + VIASH_META_MEMORY_TB=$(( ($VIASH_META_MEMORY_GB+999) / 1000 )) + VIASH_META_MEMORY_PB=$(( ($VIASH_META_MEMORY_TB+999) / 1000 )) + VIASH_META_MEMORY_KIB=$(( ($VIASH_META_MEMORY_B+1023) / 1024 )) + VIASH_META_MEMORY_MIB=$(( ($VIASH_META_MEMORY_KIB+1023) / 1024 )) + VIASH_META_MEMORY_GIB=$(( ($VIASH_META_MEMORY_MIB+1023) / 1024 )) + VIASH_META_MEMORY_TIB=$(( ($VIASH_META_MEMORY_GIB+1023) / 1024 )) + VIASH_META_MEMORY_PIB=$(( ($VIASH_META_MEMORY_TIB+1023) / 1024 )) + else + # unset memory if string is empty + unset $VIASH_META_MEMORY_B + fi +fi +# unset nproc if string is empty +if [ -z "$VIASH_META_CPUS" ]; then + unset $VIASH_META_CPUS +fi + + +# check whether required parameters exist +if [ -z ${VIASH_PAR_GTF+x} ]; then + ViashError '--gtf' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_META_NAME+x} ]; then + ViashError 'name' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_META_FUNCTIONALITY_NAME+x} ]; then + ViashError 'functionality_name' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_META_RESOURCES_DIR+x} ]; then + ViashError 'resources_dir' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_META_EXECUTABLE+x} ]; then + ViashError 'executable' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_META_CONFIG+x} ]; then + ViashError 'config' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_META_TEMP_DIR+x} ]; then + ViashError 'temp_dir' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi + +# filling in defaults +if [ -z ${VIASH_PAR_OUTPUT+x} ]; then + VIASH_PAR_OUTPUT="fData.\$id.txt" +fi + +# check whether required files exist +if [ ! -z "$VIASH_PAR_GTF" ] && [ ! -e "$VIASH_PAR_GTF" ]; then + ViashError "Input file '$VIASH_PAR_GTF' does not exist." + exit 1 +fi + +# check whether parameters values are of the right type +if [[ -n "$VIASH_META_CPUS" ]]; then + if ! [[ "$VIASH_META_CPUS" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'cpus' has to be an integer. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_B" ]]; then + if ! [[ "$VIASH_META_MEMORY_B" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_b' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_KB" ]]; then + if ! [[ "$VIASH_META_MEMORY_KB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_kb' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_MB" ]]; then + if ! [[ "$VIASH_META_MEMORY_MB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_mb' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_GB" ]]; then + if ! [[ "$VIASH_META_MEMORY_GB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_gb' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_TB" ]]; then + if ! [[ "$VIASH_META_MEMORY_TB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_tb' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_PB" ]]; then + if ! [[ "$VIASH_META_MEMORY_PB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_pb' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_KIB" ]]; then + if ! [[ "$VIASH_META_MEMORY_KIB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_kib' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_MIB" ]]; then + if ! [[ "$VIASH_META_MEMORY_MIB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_mib' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_GIB" ]]; then + if ! [[ "$VIASH_META_MEMORY_GIB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_gib' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_TIB" ]]; then + if ! [[ "$VIASH_META_MEMORY_TIB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_tib' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_PIB" ]]; then + if ! [[ "$VIASH_META_MEMORY_PIB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_pib' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi + +# create parent directories of output files, if so desired +if [ ! -z "$VIASH_PAR_OUTPUT" ] && [ ! -d "$(dirname "$VIASH_PAR_OUTPUT")" ]; then + mkdir -p "$(dirname "$VIASH_PAR_OUTPUT")" +fi + +if [ "$VIASH_ENGINE_ID" == "native" ] ; then + if [ "$VIASH_MODE" == "run" ]; then + VIASH_CMD="bash" + else + ViashError "Engine '$VIASH_ENGINE_ID' does not support mode '$VIASH_MODE'." + exit 1 + fi +fi + +if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then + # detect volumes from file arguments + VIASH_CHOWN_VARS=() +if [ ! -z "$VIASH_PAR_GTF" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_PAR_GTF")" ) + VIASH_PAR_GTF=$(ViashDockerAutodetectMount "$VIASH_PAR_GTF") +fi +if [ ! -z "$VIASH_PAR_OUTPUT" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_PAR_OUTPUT")" ) + VIASH_PAR_OUTPUT=$(ViashDockerAutodetectMount "$VIASH_PAR_OUTPUT") + VIASH_CHOWN_VARS+=( "$VIASH_PAR_OUTPUT" ) +fi +if [ ! -z "$VIASH_META_RESOURCES_DIR" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_META_RESOURCES_DIR")" ) + VIASH_META_RESOURCES_DIR=$(ViashDockerAutodetectMount "$VIASH_META_RESOURCES_DIR") +fi +if [ ! -z "$VIASH_META_EXECUTABLE" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_META_EXECUTABLE")" ) + VIASH_META_EXECUTABLE=$(ViashDockerAutodetectMount "$VIASH_META_EXECUTABLE") +fi +if [ ! -z "$VIASH_META_CONFIG" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_META_CONFIG")" ) + VIASH_META_CONFIG=$(ViashDockerAutodetectMount "$VIASH_META_CONFIG") +fi +if [ ! -z "$VIASH_META_TEMP_DIR" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_META_TEMP_DIR")" ) + VIASH_META_TEMP_DIR=$(ViashDockerAutodetectMount "$VIASH_META_TEMP_DIR") +fi + + # get unique mounts + VIASH_UNIQUE_MOUNTS=($(for val in "${VIASH_DIRECTORY_MOUNTS[@]}"; do echo "$val"; done | sort -u)) +fi + +if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then + # change file ownership + function ViashPerformChown { + if (( ${#VIASH_CHOWN_VARS[@]} )); then + set +e + VIASH_CMD="docker run --entrypoint=bash --rm ${VIASH_UNIQUE_MOUNTS[@]} $VIASH_DOCKER_IMAGE_ID -c 'chown $(id -u):$(id -g) --silent --recursive ${VIASH_CHOWN_VARS[@]}'" + ViashDebug "+ $VIASH_CMD" + eval $VIASH_CMD + set -e + fi + } + trap ViashPerformChown EXIT +fi + +if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then + # helper function for filling in extra docker args + if [ ! -z "$VIASH_META_MEMORY_B" ]; then + VIASH_DOCKER_RUN_ARGS+=("--memory=${VIASH_META_MEMORY_B}") + fi + if [ ! -z "$VIASH_META_CPUS" ]; then + VIASH_DOCKER_RUN_ARGS+=("--cpus=${VIASH_META_CPUS}") + fi +fi + +if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then + VIASH_CMD="docker run --entrypoint=bash ${VIASH_DOCKER_RUN_ARGS[@]} ${VIASH_UNIQUE_MOUNTS[@]} $VIASH_DOCKER_IMAGE_ID" +fi + + +# set dependency paths + + +ViashDebug "Running command: $(echo $VIASH_CMD)" +cat << VIASHEOF | eval $VIASH_CMD +set -e +tempscript=\$(mktemp "$VIASH_META_TEMP_DIR/viash-run-create_fdata-XXXXXX").py +function clean_up { + rm "\$tempscript" +} +function interrupt { + echo -e "\nCTRL-C Pressed..." + exit 1 +} +trap clean_up EXIT +trap interrupt INT SIGINT +cat > "\$tempscript" << 'VIASHMAIN' +import logging +import pandas as pd +import numpy as np +from textwrap import fill + + +### VIASH START +# The following code has been auto-generated by Viash. +par = { + 'gtf': $( if [ ! -z ${VIASH_PAR_GTF+x} ]; then echo "r'${VIASH_PAR_GTF//\'/\'\"\'\"r\'}'"; else echo None; fi ), + 'output': $( if [ ! -z ${VIASH_PAR_OUTPUT+x} ]; then echo "r'${VIASH_PAR_OUTPUT//\'/\'\"\'\"r\'}'"; else echo None; fi ) +} +meta = { + 'name': $( if [ ! -z ${VIASH_META_NAME+x} ]; then echo "r'${VIASH_META_NAME//\'/\'\"\'\"r\'}'"; else echo None; fi ), + 'functionality_name': $( if [ ! -z ${VIASH_META_FUNCTIONALITY_NAME+x} ]; then echo "r'${VIASH_META_FUNCTIONALITY_NAME//\'/\'\"\'\"r\'}'"; else echo None; fi ), + 'resources_dir': $( if [ ! -z ${VIASH_META_RESOURCES_DIR+x} ]; then echo "r'${VIASH_META_RESOURCES_DIR//\'/\'\"\'\"r\'}'"; else echo None; fi ), + 'executable': $( if [ ! -z ${VIASH_META_EXECUTABLE+x} ]; then echo "r'${VIASH_META_EXECUTABLE//\'/\'\"\'\"r\'}'"; else echo None; fi ), + 'config': $( if [ ! -z ${VIASH_META_CONFIG+x} ]; then echo "r'${VIASH_META_CONFIG//\'/\'\"\'\"r\'}'"; else echo None; fi ), + 'temp_dir': $( if [ ! -z ${VIASH_META_TEMP_DIR+x} ]; then echo "r'${VIASH_META_TEMP_DIR//\'/\'\"\'\"r\'}'"; else echo None; fi ), + 'cpus': $( if [ ! -z ${VIASH_META_CPUS+x} ]; then echo "int(r'${VIASH_META_CPUS//\'/\'\"\'\"r\'}')"; else echo None; fi ), + 'memory_b': $( if [ ! -z ${VIASH_META_MEMORY_B+x} ]; then echo "int(r'${VIASH_META_MEMORY_B//\'/\'\"\'\"r\'}')"; else echo None; fi ), + 'memory_kb': $( if [ ! -z ${VIASH_META_MEMORY_KB+x} ]; then echo "int(r'${VIASH_META_MEMORY_KB//\'/\'\"\'\"r\'}')"; else echo None; fi ), + 'memory_mb': $( if [ ! -z ${VIASH_META_MEMORY_MB+x} ]; then echo "int(r'${VIASH_META_MEMORY_MB//\'/\'\"\'\"r\'}')"; else echo None; fi ), + 'memory_gb': $( if [ ! -z ${VIASH_META_MEMORY_GB+x} ]; then echo "int(r'${VIASH_META_MEMORY_GB//\'/\'\"\'\"r\'}')"; else echo None; fi ), + 'memory_tb': $( if [ ! -z ${VIASH_META_MEMORY_TB+x} ]; then echo "int(r'${VIASH_META_MEMORY_TB//\'/\'\"\'\"r\'}')"; else echo None; fi ), + 'memory_pb': $( if [ ! -z ${VIASH_META_MEMORY_PB+x} ]; then echo "int(r'${VIASH_META_MEMORY_PB//\'/\'\"\'\"r\'}')"; else echo None; fi ), + 'memory_kib': $( if [ ! -z ${VIASH_META_MEMORY_KIB+x} ]; then echo "int(r'${VIASH_META_MEMORY_KIB//\'/\'\"\'\"r\'}')"; else echo None; fi ), + 'memory_mib': $( if [ ! -z ${VIASH_META_MEMORY_MIB+x} ]; then echo "int(r'${VIASH_META_MEMORY_MIB//\'/\'\"\'\"r\'}')"; else echo None; fi ), + 'memory_gib': $( if [ ! -z ${VIASH_META_MEMORY_GIB+x} ]; then echo "int(r'${VIASH_META_MEMORY_GIB//\'/\'\"\'\"r\'}')"; else echo None; fi ), + 'memory_tib': $( if [ ! -z ${VIASH_META_MEMORY_TIB+x} ]; then echo "int(r'${VIASH_META_MEMORY_TIB//\'/\'\"\'\"r\'}')"; else echo None; fi ), + 'memory_pib': $( if [ ! -z ${VIASH_META_MEMORY_PIB+x} ]; then echo "int(r'${VIASH_META_MEMORY_PIB//\'/\'\"\'\"r\'}')"; else echo None; fi ) +} +dep = { + +} + +### VIASH END + +logger = logging.getLogger() +console_handler = logging.StreamHandler() +logger.addHandler(console_handler) +logger.setLevel(logging.DEBUG) + + +def read_gtf(gtf_path: str) -> pd.DataFrame: + logger.info("Reading %s", gtf_path) + result = pd.read_csv(gtf_path, sep="\\t", + header=None, names=("seqname", "source", + "feature", "start", "end", + "score", "strand", "frame", + "attribute"), + dtype={ + "seqname": pd.StringDtype(), + "source": pd.StringDtype(), + "feature": pd.StringDtype(), + "start": pd.Int64Dtype(), + "end": pd.Int64Dtype(), + "score": pd.StringDtype(), + "strand": pd.CategoricalDtype(categories=["+", "-"], + ordered=False), + "frame": pd.StringDtype(), + "attribute": pd.StringDtype(), + }, + comment='#' + ) + logger.info("Done reading %s. Found %d GTF entries ", par["gtf"], result.shape[0]) + logger.info("GTF file is providing information for the following chromosomes: \\n%s", + fill(", ".join(result['seqname'].unique()), width=100)) + logger.info("The following sources were specified in the GTF file:\\n%s", + ", ".join(result["source"].unique())) + return result + + +def parse_attributes(attributes_series: pd.Series): + attribute_dict = dict() + attributes_list = [attr.strip().split(" ") + for attr in attributes_series["attribute"].strip(";").split(";")] + for (attr_name, attr_value) in attributes_list: + attribute_dict.setdefault(attr_name, []).append(attr_value.strip('"')) + attribute_dict = {attr_name: "|".join(attr_value) + for attr_name, attr_value in attribute_dict.items()} + return pd.Series(attribute_dict) + + +def main(par): + logger.info(f"{meta['name']} started.") + parameters_str = [f'\\t{param}: {param_val}\\n' for param, param_val in par.items()] + logger.info("Parameters:\\n%s", "".join(parameters_str).rstrip()) + gtf_file = read_gtf(par["gtf"]) + sources = set(source for source in gtf_file["source"].unique() if source != "ERCC") + specific_gtf = False + feature = "gene" + if len(sources) == 1 and (source := sources[0]) \\ + and (source == "refGene" or source == "ncbiRefSeq"): + feature = "transcript" + specific_gtf = True + logger.info("Found specific GTF from %s, forcing filtering on feature type %s", source, feature) + logger.info("Filtering GTF entries for feature type '%s'.", feature) + gtf_file = gtf_file[gtf_file["feature"] == feature] + logger.info("After filtering %d entries are left.", gtf_file.shape[0]) + logger.info("Parsing the GTF attributes") + annotation = gtf_file[["attribute"]].apply(parse_attributes, result_type="expand", axis=1) + logger.info("Found the following attributes in the GTF:\\n%s", ", ".join(annotation.columns)) + annotation = pd.concat([gtf_file.drop(["attribute"], axis=1), annotation], axis=1) + if specific_gtf: + logger.info("Because the source of the GTF is either 'ncbiRefSeq' or 'refGene', which" + "caused forced filtering based on %s, the duplicate genes still need to be dropped.", + feature) + annotation = annotation.drop_duplicates(subset=("gene_id", "gene_name"), keep=False) + logger.info("After dropping duplicates, %d entries are left", annotation.shape[0]) + + # detect ensembl ids + # some GTF files contain version in ENSEMBL, e.g. ENS00000000046319.1 + # we remove the version, because the annotation packages don't contain the version + if "gene_id" in annotation.columns: + logger.info("'gene_id' column was detected in attributes. Performing extra parsing of ENSEMBL ids.") + annotation["ENSEMBL_with_version"] = annotation["gene_id"].where(annotation["gene_id"].str.startswith("ENS")) + annotation["ENSEMBL"] = annotation["ENSEMBL_with_version"].str.replace(r"\\.\\d+\$", "", regex=True) + annotation["gene_id"] = annotation["gene_id"].str.replace(r"\\.\\d+\$", "", regex=True) + + possible_name_columns = ("Name", "name", "gene_name") + found_columns = list(filter(lambda col_name: col_name in annotation, possible_name_columns)) + # The following code allows to select a value for the SYMBOL column based on the first non-na column + if found_columns: + logger.info("Found one the following columns: %s; which can be used to populate the SYMBOL column", + ", ".join(possible_name_columns)) + # For each row (gtf entry), get the name of the first column that actually holds a value. + column_to_get = annotation.loc[:,found_columns].apply(pd.Series.first_valid_index, axis=1) + counts_per_column = column_to_get.value_counts(dropna=False).to_dict() + counts_per_column_str = [f'\\t{col}: {counts}\\n' for col, counts in counts_per_column.items()] + logger.info("Frequencies of the origin for the entries in the SYMBOL column:\\n%s", + "".join(counts_per_column_str).rstrip()) + # If all columns hold NA for a certain row, first_valid_index will return None. + # Just use the name of the first column. + column_to_get = column_to_get.fillna(found_columns[0]) + # We now have a list one column name per row, use it so select the values + # Loc cannot be used here because 1 value per row is required, + # and loc will select for each row all the columns in columns_to_get + idx, cols = pd.factorize(column_to_get) + symbol_values = annotation.reindex(cols, axis=1).to_numpy()[np.arange(len(annotation)), idx] + annotation["SYMBOL"] = symbol_values + + logger.info("Writing to %s", par["output"]) + annotation = annotation.drop(["score", "source", "frame", "feature"], axis=1) + annotation.to_csv(par["output"], sep="\\t", header=True, index=False, na_rep="NA") + logger.info("%s finished", meta['name']) + + +if __name__ == "__main__": + main(par) +VIASHMAIN +python -B "\$tempscript" & +wait "\$!" + +VIASHEOF + + +if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then + # strip viash automount from file paths + + if [ ! -z "$VIASH_PAR_GTF" ]; then + VIASH_PAR_GTF=$(ViashDockerStripAutomount "$VIASH_PAR_GTF") + fi + if [ ! -z "$VIASH_PAR_OUTPUT" ]; then + VIASH_PAR_OUTPUT=$(ViashDockerStripAutomount "$VIASH_PAR_OUTPUT") + fi + if [ ! -z "$VIASH_META_RESOURCES_DIR" ]; then + VIASH_META_RESOURCES_DIR=$(ViashDockerStripAutomount "$VIASH_META_RESOURCES_DIR") + fi + if [ ! -z "$VIASH_META_EXECUTABLE" ]; then + VIASH_META_EXECUTABLE=$(ViashDockerStripAutomount "$VIASH_META_EXECUTABLE") + fi + if [ ! -z "$VIASH_META_CONFIG" ]; then + VIASH_META_CONFIG=$(ViashDockerStripAutomount "$VIASH_META_CONFIG") + fi + if [ ! -z "$VIASH_META_TEMP_DIR" ]; then + VIASH_META_TEMP_DIR=$(ViashDockerStripAutomount "$VIASH_META_TEMP_DIR") + fi +fi + + +# check whether required files exist +if [ ! -z "$VIASH_PAR_OUTPUT" ] && [ ! -e "$VIASH_PAR_OUTPUT" ]; then + ViashError "Output file '$VIASH_PAR_OUTPUT' does not exist." + exit 1 +fi + + +exit 0 diff --git a/target/executable/eset/create_fdata/nextflow_labels.config b/target/executable/eset/create_fdata/nextflow_labels.config new file mode 100644 index 00000000..66f5e21c --- /dev/null +++ b/target/executable/eset/create_fdata/nextflow_labels.config @@ -0,0 +1,105 @@ +executor { + $k8s { + submitRateLimit = '10sec' + pollInterval = '1 sec' + } +} + +process { + container = 'nextflow/bash:latest' + + // default resources + memory = { 8.Gb * task.attempt } + cpus = 8 + maxForks = 36 + + // Retry for exit codes that have something to do with memory issues + errorStrategy = { task.exitStatus in 137..140 ? 'retry' : 'terminate' } + maxRetries = 3 + maxMemory = 192.GB + + // Resource labels + withLabel: verylowcpu { cpus = 2 } + withLabel: lowcpu { cpus = 8 } + withLabel: midcpu { cpus = 16 } + withLabel: highcpu { cpus = 32 } + + withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } } + withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } } + withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } } + withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } } + +} + +profiles { + // detect tempdir + tempDir = java.nio.file.Paths.get( + System.getenv('NXF_TEMP') ?: + System.getenv('VIASH_TEMP') ?: + System.getenv('TEMPDIR') ?: + System.getenv('TMPDIR') ?: + '/tmp' + ).toAbsolutePath() + + mount_temp { + docker.temp = tempDir + podman.temp = tempDir + charliecloud.temp = tempDir + } + + no_publish { + process { + withName: '.*' { + publishDir = [ + enabled: false + ] + } + } + } + + docker { + docker.fixOwnership = true + docker.enabled = true + // docker.userEmulation = true + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + + local { + // This config is for local processing. + process { + maxMemory = 25.GB + withLabel: verylowcpu { cpus = 2 } + withLabel: lowcpu { cpus = 4 } + withLabel: midcpu { cpus = 6 } + withLabel: highcpu { cpus = 12 } + + withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } } + withLabel: midmem { memory = { get_memory( 12.GB * task.attempt ) } } + withLabel: highmem { memory = { get_memory( 20.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) + } + } diff --git a/target/executable/eset/create_pdata/.config.vsh.yaml b/target/executable/eset/create_pdata/.config.vsh.yaml new file mode 100644 index 00000000..1025c55e --- /dev/null +++ b/target/executable/eset/create_pdata/.config.vsh.yaml @@ -0,0 +1,199 @@ +name: "create_pdata" +namespace: "eset" +version: "main" +argument_groups: +- name: "Arguments" + arguments: + - type: "file" + name: "--star_stats_file" + description: "Tab-delimited text file containing statistics (per column) that\ + \ were generated\nfrom the STAR log files (Log.final.out, Summary.csv, ReadsPerGene.out.tab).\n\ + Each entry (row) in the file describes the values for one well (barcode).\n" + info: null + must_exist: true + create_parent: true + required: true + direction: "input" + multiple: false + multiple_sep: ";" + - type: "file" + name: "--nrReadsNrGenesPerChromPool" + description: "Pivot table in tsv format of the combined nrReadsNrGenesPerChrom\ + \ files from STAR. \nDescribes per chromosome (as columns) the number of reads,\ + \ as well as the total number \nof reads per cell barcode and the percentage\ + \ of nuclear, ERCC and mitochondrial\nreads.\n" + info: null + must_exist: true + create_parent: true + required: true + direction: "input" + multiple: false + multiple_sep: ";" + - type: "file" + name: "--output" + info: null + default: + - "pData.$id.txt" + must_exist: true + create_parent: true + required: false + direction: "output" + multiple: false + multiple_sep: ";" +resources: +- type: "python_script" + path: "create_pdata.py" + is_executable: true +- type: "file" + path: "nextflow_labels.config" + dest: "nextflow_labels.config" +description: "Create a pdata file by combining the mapping statistics \n" +test_resources: +- type: "python_script" + path: "test.py" + is_executable: true +- type: "file" + path: "nrReadsNrGenesPerChromPool.txt" +- type: "file" + path: "starLogs.txt" +info: null +status: "enabled" +requirements: + commands: + - "ps" +license: "MIT" +links: + repository: "https://github.com/viash-hub/htrnaseq" +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: "main" + namespace_separator: "/" + setup: + - type: "apt" + packages: + - "procps" + interactive: false + - type: "python" + user: false + packages: + - "pandas" + upgrade: true + test_setup: + - type: "python" + user: false + packages: + - "viashpy" + upgrade: true + entrypoint: [] + cmd: null +- type: "native" + id: "native" +build_info: + config: "src/eset/create_pdata/config.vsh.yaml" + runner: "executable" + engine: "docker|native" + output: "target/executable/eset/create_pdata" + executable: "target/executable/eset/create_pdata/create_pdata" + viash_version: "0.9.0" + git_commit: "65dd41d8b1b4a307735c72320c96c0880c75f17f" + git_remote: "https://x-access-token:ghs_McZDF0yobnnHmOEb2Q4JaaB3pzr9mz1VbIOs@github.com/viash-hub/htrnaseq" +package_config: + name: "htrnaseq" + version: "main" + description: "High-throughput pipeline [WIP]\n" + info: + test_resources: + - path: "gs://viash-hub-test-data/htrnaseq/v1/" + dest: "resources_test" + viash_version: "0.9.0" + source: "src" + target: "target" + config_mods: + - ".requirements.commands := ['ps']\n.runners[.type == 'nextflow'].config.script\ + \ := 'includeConfig(\"nextflow_labels.config\")'\n.resources += {path: '/src/config/labels.config',\ + \ dest: 'nextflow_labels.config'}\n" + - ".engines += { type: \"native\" }" + - ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'" + - ".engines[.type == 'docker'].target_tag := 'main'" + keywords: + - "bioinformatics" + - "sequence" + - "high-throughput" + - "mapping" + - "counting" + - "pipeline" + license: "MIT" + organization: "vsh" + links: + repository: "https://github.com/viash-hub/htrnaseq" + issue_tracker: "https://github.com/viash-hub/htrnaseq/issues" diff --git a/target/executable/eset/create_pdata/create_pdata b/target/executable/eset/create_pdata/create_pdata new file mode 100755 index 00000000..a88f8505 --- /dev/null +++ b/target/executable/eset/create_pdata/create_pdata @@ -0,0 +1,1173 @@ +#!/usr/bin/env bash + +# create_pdata main +# +# This wrapper script is auto-generated by viash 0.9.0 and is thus a derivative +# work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data +# Intuitive. +# +# The component may contain files which fall under a different license. The +# authors of this component should specify the license in the header of such +# files, or include a separate license file detailing the licenses of all included +# files. + +set -e + +if [ -z "$VIASH_TEMP" ]; then + VIASH_TEMP=${VIASH_TEMP:-$VIASH_TMPDIR} + VIASH_TEMP=${VIASH_TEMP:-$VIASH_TEMPDIR} + VIASH_TEMP=${VIASH_TEMP:-$VIASH_TMP} + VIASH_TEMP=${VIASH_TEMP:-$TMPDIR} + VIASH_TEMP=${VIASH_TEMP:-$TMP} + VIASH_TEMP=${VIASH_TEMP:-$TEMPDIR} + VIASH_TEMP=${VIASH_TEMP:-$TEMP} + VIASH_TEMP=${VIASH_TEMP:-/tmp} +fi + +# define helper functions +# ViashQuote: put quotes around non flag values +# $1 : unquoted string +# return : possibly quoted string +# examples: +# ViashQuote --foo # returns --foo +# ViashQuote bar # returns 'bar' +# Viashquote --foo=bar # returns --foo='bar' +function ViashQuote { + if [[ "$1" =~ ^-+[a-zA-Z0-9_\-]+=.+$ ]]; then + echo "$1" | sed "s#=\(.*\)#='\1'#" + elif [[ "$1" =~ ^-+[a-zA-Z0-9_\-]+$ ]]; then + echo "$1" + else + echo "'$1'" + fi +} +# ViashRemoveFlags: Remove leading flag +# $1 : string with a possible leading flag +# return : string without possible leading flag +# examples: +# ViashRemoveFlags --foo=bar # returns bar +function ViashRemoveFlags { + echo "$1" | sed 's/^--*[a-zA-Z0-9_\-]*=//' +} +# ViashSourceDir: return the path of a bash file, following symlinks +# usage : ViashSourceDir ${BASH_SOURCE[0]} +# $1 : Should always be set to ${BASH_SOURCE[0]} +# returns : The absolute path of the bash file +function ViashSourceDir { + local source="$1" + while [ -h "$source" ]; do + local dir="$( cd -P "$( dirname "$source" )" >/dev/null 2>&1 && pwd )" + source="$(readlink "$source")" + [[ $source != /* ]] && source="$dir/$source" + done + cd -P "$( dirname "$source" )" >/dev/null 2>&1 && pwd +} +# ViashFindTargetDir: return the path of the '.build.yaml' file, following symlinks +# usage : ViashFindTargetDir 'ScriptPath' +# $1 : The location from where to start the upward search +# returns : The absolute path of the '.build.yaml' file +function ViashFindTargetDir { + local source="$1" + while [[ "$source" != "" && ! -e "$source/.build.yaml" ]]; do + source=${source%/*} + done + echo $source +} +# see https://en.wikipedia.org/wiki/Syslog#Severity_level +VIASH_LOGCODE_EMERGENCY=0 +VIASH_LOGCODE_ALERT=1 +VIASH_LOGCODE_CRITICAL=2 +VIASH_LOGCODE_ERROR=3 +VIASH_LOGCODE_WARNING=4 +VIASH_LOGCODE_NOTICE=5 +VIASH_LOGCODE_INFO=6 +VIASH_LOGCODE_DEBUG=7 +VIASH_VERBOSITY=$VIASH_LOGCODE_NOTICE + +# ViashLog: Log events depending on the verbosity level +# usage: ViashLog 1 alert Oh no something went wrong! +# $1: required verbosity level +# $2: display tag +# $3+: messages to display +# stdout: Your input, prepended by '[$2] '. +function ViashLog { + local required_level="$1" + local display_tag="$2" + shift 2 + if [ $VIASH_VERBOSITY -ge $required_level ]; then + >&2 echo "[$display_tag]" "$@" + fi +} + +# ViashEmergency: log events when the system is unstable +# usage: ViashEmergency Oh no something went wrong. +# stdout: Your input, prepended by '[emergency] '. +function ViashEmergency { + ViashLog $VIASH_LOGCODE_EMERGENCY emergency "$@" +} + +# ViashAlert: log events when actions must be taken immediately (e.g. corrupted system database) +# usage: ViashAlert Oh no something went wrong. +# stdout: Your input, prepended by '[alert] '. +function ViashAlert { + ViashLog $VIASH_LOGCODE_ALERT alert "$@" +} + +# ViashCritical: log events when a critical condition occurs +# usage: ViashCritical Oh no something went wrong. +# stdout: Your input, prepended by '[critical] '. +function ViashCritical { + ViashLog $VIASH_LOGCODE_CRITICAL critical "$@" +} + +# ViashError: log events when an error condition occurs +# usage: ViashError Oh no something went wrong. +# stdout: Your input, prepended by '[error] '. +function ViashError { + ViashLog $VIASH_LOGCODE_ERROR error "$@" +} + +# ViashWarning: log potentially abnormal events +# usage: ViashWarning Something may have gone wrong. +# stdout: Your input, prepended by '[warning] '. +function ViashWarning { + ViashLog $VIASH_LOGCODE_WARNING warning "$@" +} + +# ViashNotice: log significant but normal events +# usage: ViashNotice This just happened. +# stdout: Your input, prepended by '[notice] '. +function ViashNotice { + ViashLog $VIASH_LOGCODE_NOTICE notice "$@" +} + +# ViashInfo: log normal events +# usage: ViashInfo This just happened. +# stdout: Your input, prepended by '[info] '. +function ViashInfo { + ViashLog $VIASH_LOGCODE_INFO info "$@" +} + +# ViashDebug: log all events, for debugging purposes +# usage: ViashDebug This just happened. +# stdout: Your input, prepended by '[debug] '. +function ViashDebug { + ViashLog $VIASH_LOGCODE_DEBUG debug "$@" +} + +# find source folder of this component +VIASH_META_RESOURCES_DIR=`ViashSourceDir ${BASH_SOURCE[0]}` + +# find the root of the built components & dependencies +VIASH_TARGET_DIR=`ViashFindTargetDir $VIASH_META_RESOURCES_DIR` + +# define meta fields +VIASH_META_NAME="create_pdata" +VIASH_META_FUNCTIONALITY_NAME="create_pdata" +VIASH_META_EXECUTABLE="$VIASH_META_RESOURCES_DIR/$VIASH_META_NAME" +VIASH_META_CONFIG="$VIASH_META_RESOURCES_DIR/.config.vsh.yaml" +VIASH_META_TEMP_DIR="$VIASH_TEMP" + + +# ViashHelp: Display helpful explanation about this executable +function ViashHelp { + echo "create_pdata main" + echo "" + echo "Create a pdata file by combining the mapping statistics" + echo "" + echo "Arguments:" + echo " --star_stats_file" + echo " type: file, required parameter, file must exist" + echo " Tab-delimited text file containing statistics (per column) that were" + echo " generated" + echo " from the STAR log files (Log.final.out, Summary.csv," + echo " ReadsPerGene.out.tab)." + echo " Each entry (row) in the file describes the values for one well" + echo " (barcode)." + echo "" + echo " --nrReadsNrGenesPerChromPool" + echo " type: file, required parameter, file must exist" + echo " Pivot table in tsv format of the combined nrReadsNrGenesPerChrom files" + echo " from STAR." + echo " Describes per chromosome (as columns) the number of reads, as well as" + echo " the total number" + echo " of reads per cell barcode and the percentage of nuclear, ERCC and" + echo " mitochondrial" + echo " reads." + echo "" + echo " --output" + echo " type: file, output, file must exist" + echo " default: pData.\$id.txt" +} + +# initialise variables +VIASH_MODE='run' +VIASH_ENGINE_ID='docker' + +######## Helper functions for setting up Docker images for viash ######## +# expects: ViashDockerBuild + +# ViashDockerInstallationCheck: check whether Docker is installed correctly +# +# examples: +# ViashDockerInstallationCheck +function ViashDockerInstallationCheck { + ViashDebug "Checking whether Docker is installed" + if [ ! command -v docker &> /dev/null ]; then + ViashCritical "Docker doesn't seem to be installed. See 'https://docs.docker.com/get-docker/' for instructions." + exit 1 + fi + + ViashDebug "Checking whether the Docker daemon is running" + local save=$-; set +e + local docker_version=$(docker version --format '{{.Client.APIVersion}}' 2> /dev/null) + local out=$? + [[ $save =~ e ]] && set -e + if [ $out -ne 0 ]; then + ViashCritical "Docker daemon does not seem to be running. Try one of the following:" + ViashCritical "- Try running 'dockerd' in the command line" + ViashCritical "- See https://docs.docker.com/config/daemon/" + exit 1 + fi +} + +# ViashDockerRemoteTagCheck: check whether a Docker image is available +# on a remote. Assumes `docker login` has been performed, if relevant. +# +# $1 : image identifier with format `[registry/]image[:tag]` +# exit code $? : whether or not the image was found +# examples: +# ViashDockerRemoteTagCheck python:latest +# echo $? # returns '0' +# ViashDockerRemoteTagCheck sdaizudceahifu +# echo $? # returns '1' +function ViashDockerRemoteTagCheck { + docker manifest inspect $1 > /dev/null 2> /dev/null +} + +# ViashDockerLocalTagCheck: check whether a Docker image is available locally +# +# $1 : image identifier with format `[registry/]image[:tag]` +# exit code $? : whether or not the image was found +# examples: +# docker pull python:latest +# ViashDockerLocalTagCheck python:latest +# echo $? # returns '0' +# ViashDockerLocalTagCheck sdaizudceahifu +# echo $? # returns '1' +function ViashDockerLocalTagCheck { + [ -n "$(docker images -q $1)" ] +} + +# ViashDockerPull: pull a Docker image +# +# $1 : image identifier with format `[registry/]image[:tag]` +# exit code $? : whether or not the image was found +# examples: +# ViashDockerPull python:latest +# echo $? # returns '0' +# ViashDockerPull sdaizudceahifu +# echo $? # returns '1' +function ViashDockerPull { + ViashNotice "Checking if Docker image is available at '$1'" + if [ $VIASH_VERBOSITY -ge $VIASH_LOGCODE_INFO ]; then + docker pull $1 && return 0 || return 1 + else + local save=$-; set +e + docker pull $1 2> /dev/null > /dev/null + local out=$? + [[ $save =~ e ]] && set -e + if [ $out -ne 0 ]; then + ViashWarning "Could not pull from '$1'. Docker image doesn't exist or is not accessible." + fi + return $out + fi +} + +# ViashDockerPush: push a Docker image +# +# $1 : image identifier with format `[registry/]image[:tag]` +# exit code $? : whether or not the image was found +# examples: +# ViashDockerPush python:latest +# echo $? # returns '0' +# ViashDockerPush sdaizudceahifu +# echo $? # returns '1' +function ViashDockerPush { + ViashNotice "Pushing image to '$1'" + local save=$-; set +e + local out + if [ $VIASH_VERBOSITY -ge $VIASH_LOGCODE_INFO ]; then + docker push $1 + out=$? + else + docker push $1 2> /dev/null > /dev/null + out=$? + fi + [[ $save =~ e ]] && set -e + if [ $out -eq 0 ]; then + ViashNotice "Container '$1' push succeeded." + else + ViashError "Container '$1' push errored. You might not be logged in or have the necessary permissions." + fi + return $out +} + +# ViashDockerPullElseBuild: pull a Docker image, else build it +# +# $1 : image identifier with format `[registry/]image[:tag]` +# ViashDockerBuild : a Bash function which builds a docker image, takes image identifier as argument. +# examples: +# ViashDockerPullElseBuild mynewcomponent +function ViashDockerPullElseBuild { + local save=$-; set +e + ViashDockerPull $1 + local out=$? + [[ $save =~ e ]] && set -e + if [ $out -ne 0 ]; then + ViashDockerBuild $@ + fi +} + +# ViashDockerSetup: create a Docker image, according to specified docker setup strategy +# +# $1 : image identifier with format `[registry/]image[:tag]` +# $2 : docker setup strategy, see DockerSetupStrategy.scala +# examples: +# ViashDockerSetup mynewcomponent alwaysbuild +function ViashDockerSetup { + local image_id="$1" + local setup_strategy="$2" + if [ "$setup_strategy" == "alwaysbuild" -o "$setup_strategy" == "build" -o "$setup_strategy" == "b" ]; then + ViashDockerBuild $image_id --no-cache $(ViashDockerBuildArgs "$engine_id") + elif [ "$setup_strategy" == "alwayspull" -o "$setup_strategy" == "pull" -o "$setup_strategy" == "p" ]; then + ViashDockerPull $image_id + elif [ "$setup_strategy" == "alwayspullelsebuild" -o "$setup_strategy" == "pullelsebuild" ]; then + ViashDockerPullElseBuild $image_id --no-cache $(ViashDockerBuildArgs "$engine_id") + elif [ "$setup_strategy" == "alwayspullelsecachedbuild" -o "$setup_strategy" == "pullelsecachedbuild" ]; then + ViashDockerPullElseBuild $image_id $(ViashDockerBuildArgs "$engine_id") + elif [ "$setup_strategy" == "alwayscachedbuild" -o "$setup_strategy" == "cachedbuild" -o "$setup_strategy" == "cb" ]; then + ViashDockerBuild $image_id $(ViashDockerBuildArgs "$engine_id") + elif [[ "$setup_strategy" =~ ^ifneedbe ]]; then + local save=$-; set +e + ViashDockerLocalTagCheck $image_id + local outCheck=$? + [[ $save =~ e ]] && set -e + if [ $outCheck -eq 0 ]; then + ViashInfo "Image $image_id already exists" + elif [ "$setup_strategy" == "ifneedbebuild" ]; then + ViashDockerBuild $image_id --no-cache $(ViashDockerBuildArgs "$engine_id") + elif [ "$setup_strategy" == "ifneedbecachedbuild" ]; then + ViashDockerBuild $image_id $(ViashDockerBuildArgs "$engine_id") + elif [ "$setup_strategy" == "ifneedbepull" ]; then + ViashDockerPull $image_id + elif [ "$setup_strategy" == "ifneedbepullelsebuild" ]; then + ViashDockerPullElseBuild $image_id --no-cache $(ViashDockerBuildArgs "$engine_id") + elif [ "$setup_strategy" == "ifneedbepullelsecachedbuild" ]; then + ViashDockerPullElseBuild $image_id $(ViashDockerBuildArgs "$engine_id") + else + ViashError "Unrecognised Docker strategy: $setup_strategy" + exit 1 + fi + elif [ "$setup_strategy" == "push" -o "$setup_strategy" == "forcepush" -o "$setup_strategy" == "alwayspush" ]; then + ViashDockerPush "$image_id" + elif [ "$setup_strategy" == "pushifnotpresent" -o "$setup_strategy" == "gentlepush" -o "$setup_strategy" == "maybepush" ]; then + local save=$-; set +e + ViashDockerRemoteTagCheck $image_id + local outCheck=$? + [[ $save =~ e ]] && set -e + if [ $outCheck -eq 0 ]; then + ViashNotice "Container '$image_id' exists, doing nothing." + else + ViashNotice "Container '$image_id' does not yet exist." + ViashDockerPush "$image_id" + fi + elif [ "$setup_strategy" == "donothing" -o "$setup_strategy" == "meh" ]; then + ViashNotice "Skipping setup." + else + ViashError "Unrecognised Docker strategy: $setup_strategy" + exit 1 + fi +} + +# ViashDockerCheckCommands: Check whether a docker container has the required commands +# +# $1 : image identifier with format `[registry/]image[:tag]` +# $@ : commands to verify being present +# examples: +# ViashDockerCheckCommands bash:4.0 bash ps foo +function ViashDockerCheckCommands { + local image_id="$1" + shift 1 + local commands="$@" + local save=$-; set +e + local missing # mark 'missing' as local in advance, otherwise the exit code of the command will be missing and always be '0' + missing=$(docker run --rm --entrypoint=sh "$image_id" -c "for command in $commands; do command -v \$command >/dev/null 2>&1; if [ \$? -ne 0 ]; then echo \$command; exit 1; fi; done") + local outCheck=$? + [[ $save =~ e ]] && set -e + if [ $outCheck -ne 0 ]; then + ViashError "Docker container '$image_id' does not contain command '$missing'." + exit 1 + fi +} + +# ViashDockerBuild: build a docker image +# $1 : image identifier with format `[registry/]image[:tag]` +# $... : additional arguments to pass to docker build +# $VIASH_META_TEMP_DIR : temporary directory to store dockerfile & optional resources in +# $VIASH_META_NAME : name of the component +# $VIASH_META_RESOURCES_DIR : directory containing the resources +# $VIASH_VERBOSITY : verbosity level +# exit code $? : whether or not the image was built successfully +function ViashDockerBuild { + local image_id="$1" + shift 1 + + # create temporary directory to store dockerfile & optional resources in + local tmpdir=$(mktemp -d "$VIASH_META_TEMP_DIR/dockerbuild-$VIASH_META_NAME-XXXXXX") + local dockerfile="$tmpdir/Dockerfile" + function clean_up { + rm -rf "$tmpdir" + } + trap clean_up EXIT + + # store dockerfile and resources + ViashDockerfile "$VIASH_ENGINE_ID" > "$dockerfile" + + # generate the build command + local docker_build_cmd="docker build -t '$image_id' $@ '$VIASH_META_RESOURCES_DIR' -f '$dockerfile'" + + # build the container + ViashNotice "Building container '$image_id' with Dockerfile" + ViashInfo "$docker_build_cmd" + local save=$-; set +e + if [ $VIASH_VERBOSITY -ge $VIASH_LOGCODE_INFO ]; then + eval $docker_build_cmd + else + eval $docker_build_cmd &> "$tmpdir/docker_build.log" + fi + + # check exit code + local out=$? + [[ $save =~ e ]] && set -e + if [ $out -ne 0 ]; then + ViashError "Error occurred while building container '$image_id'" + if [ $VIASH_VERBOSITY -lt $VIASH_LOGCODE_INFO ]; then + ViashError "Transcript: --------------------------------" + cat "$tmpdir/docker_build.log" + ViashError "End of transcript --------------------------" + fi + exit 1 + fi +} + +######## End of helper functions for setting up Docker images for viash ######## + +# ViashDockerFile: print the dockerfile to stdout +# $1 : engine identifier +# return : dockerfile required to run this component +# examples: +# ViashDockerFile +function ViashDockerfile { + local engine_id="$1" + + if [[ "$engine_id" == "docker" ]]; then + cat << 'VIASHDOCKER' +FROM python:3.12-slim +ENTRYPOINT [] +RUN apt-get update && \ + DEBIAN_FRONTEND=noninteractive apt-get install -y procps && \ + rm -rf /var/lib/apt/lists/* + +RUN pip install --upgrade pip && \ + pip install --upgrade --no-cache-dir "pandas" + +LABEL org.opencontainers.image.description="Companion container for running component eset create_pdata" +LABEL org.opencontainers.image.created="2024-11-05T15:39:43Z" +LABEL org.opencontainers.image.source="https://github.com/viash-hub/htrnaseq" +LABEL org.opencontainers.image.revision="65dd41d8b1b4a307735c72320c96c0880c75f17f" +LABEL org.opencontainers.image.version="main" + +VIASHDOCKER + fi +} + +# ViashDockerBuildArgs: return the arguments to pass to docker build +# $1 : engine identifier +# return : arguments to pass to docker build +function ViashDockerBuildArgs { + local engine_id="$1" + + if [[ "$engine_id" == "docker" ]]; then + echo "" + fi +} + +# ViashAbsolutePath: generate absolute path from relative path +# borrowed from https://stackoverflow.com/a/21951256 +# $1 : relative filename +# return : absolute path +# examples: +# ViashAbsolutePath some_file.txt # returns /path/to/some_file.txt +# ViashAbsolutePath /foo/bar/.. # returns /foo +function ViashAbsolutePath { + local thePath + local parr + local outp + local len + if [[ ! "$1" =~ ^/ ]]; then + thePath="$PWD/$1" + else + thePath="$1" + fi + echo "$thePath" | ( + IFS=/ + read -a parr + declare -a outp + for i in "${parr[@]}"; do + case "$i" in + ''|.) continue ;; + ..) + len=${#outp[@]} + if ((len==0)); then + continue + else + unset outp[$((len-1))] + fi + ;; + *) + len=${#outp[@]} + outp[$len]="$i" + ;; + esac + done + echo /"${outp[*]}" + ) +} +# ViashDockerAutodetectMount: auto configuring docker mounts from parameters +# $1 : The parameter value +# returns : New parameter +# $VIASH_DIRECTORY_MOUNTS : Added another parameter to be passed to docker +# $VIASH_DOCKER_AUTOMOUNT_PREFIX : The prefix to be used for the automounts +# examples: +# ViashDockerAutodetectMount /path/to/bar # returns '/viash_automount/path/to/bar' +# ViashDockerAutodetectMountArg /path/to/bar # returns '--volume="/path/to:/viash_automount/path/to"' +function ViashDockerAutodetectMount { + local abs_path=$(ViashAbsolutePath "$1") + local mount_source + local base_name + if [ -d "$abs_path" ]; then + mount_source="$abs_path" + base_name="" + else + mount_source=`dirname "$abs_path"` + base_name=`basename "$abs_path"` + fi + local mount_target="$VIASH_DOCKER_AUTOMOUNT_PREFIX$mount_source" + if [ -z "$base_name" ]; then + echo "$mount_target" + else + echo "$mount_target/$base_name" + fi +} +function ViashDockerAutodetectMountArg { + local abs_path=$(ViashAbsolutePath "$1") + local mount_source + local base_name + if [ -d "$abs_path" ]; then + mount_source="$abs_path" + base_name="" + else + mount_source=`dirname "$abs_path"` + base_name=`basename "$abs_path"` + fi + local mount_target="$VIASH_DOCKER_AUTOMOUNT_PREFIX$mount_source" + ViashDebug "ViashDockerAutodetectMountArg $1 -> $mount_source -> $mount_target" + echo "--volume=\"$mount_source:$mount_target\"" +} +function ViashDockerStripAutomount { + local abs_path=$(ViashAbsolutePath "$1") + echo "${abs_path#$VIASH_DOCKER_AUTOMOUNT_PREFIX}" +} +# initialise variables +VIASH_DIRECTORY_MOUNTS=() + +# configure default docker automount prefix if it is unset +if [ -z "${VIASH_DOCKER_AUTOMOUNT_PREFIX+x}" ]; then + VIASH_DOCKER_AUTOMOUNT_PREFIX="/viash_automount" +fi + +# initialise docker variables +VIASH_DOCKER_RUN_ARGS=(-i --rm) + +# initialise array +VIASH_POSITIONAL_ARGS='' + +while [[ $# -gt 0 ]]; do + case "$1" in + -h|--help) + ViashHelp + exit + ;; + ---v|---verbose) + let "VIASH_VERBOSITY=VIASH_VERBOSITY+1" + shift 1 + ;; + ---verbosity) + VIASH_VERBOSITY="$2" + shift 2 + ;; + ---verbosity=*) + VIASH_VERBOSITY="$(ViashRemoveFlags "$1")" + shift 1 + ;; + --version) + echo "create_pdata main" + exit + ;; + --star_stats_file) + [ -n "$VIASH_PAR_STAR_STATS_FILE" ] && ViashError Bad arguments for option \'--star_stats_file\': \'$VIASH_PAR_STAR_STATS_FILE\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_STAR_STATS_FILE="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --star_stats_file. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --star_stats_file=*) + [ -n "$VIASH_PAR_STAR_STATS_FILE" ] && ViashError Bad arguments for option \'--star_stats_file=*\': \'$VIASH_PAR_STAR_STATS_FILE\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_STAR_STATS_FILE=$(ViashRemoveFlags "$1") + shift 1 + ;; + --nrReadsNrGenesPerChromPool) + [ -n "$VIASH_PAR_NRREADSNRGENESPERCHROMPOOL" ] && ViashError Bad arguments for option \'--nrReadsNrGenesPerChromPool\': \'$VIASH_PAR_NRREADSNRGENESPERCHROMPOOL\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_NRREADSNRGENESPERCHROMPOOL="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --nrReadsNrGenesPerChromPool. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --nrReadsNrGenesPerChromPool=*) + [ -n "$VIASH_PAR_NRREADSNRGENESPERCHROMPOOL" ] && ViashError Bad arguments for option \'--nrReadsNrGenesPerChromPool=*\': \'$VIASH_PAR_NRREADSNRGENESPERCHROMPOOL\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_NRREADSNRGENESPERCHROMPOOL=$(ViashRemoveFlags "$1") + shift 1 + ;; + --output) + [ -n "$VIASH_PAR_OUTPUT" ] && ViashError Bad arguments for option \'--output\': \'$VIASH_PAR_OUTPUT\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_OUTPUT="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --output. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --output=*) + [ -n "$VIASH_PAR_OUTPUT" ] && ViashError Bad arguments for option \'--output=*\': \'$VIASH_PAR_OUTPUT\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_OUTPUT=$(ViashRemoveFlags "$1") + shift 1 + ;; + ---engine) + VIASH_ENGINE_ID="$2" + shift 2 + ;; + ---engine=*) + VIASH_ENGINE_ID="$(ViashRemoveFlags "$1")" + shift 1 + ;; + ---setup) + VIASH_MODE='setup' + VIASH_SETUP_STRATEGY="$2" + shift 2 + ;; + ---setup=*) + VIASH_MODE='setup' + VIASH_SETUP_STRATEGY="$(ViashRemoveFlags "$1")" + shift 1 + ;; + ---dockerfile) + VIASH_MODE='dockerfile' + shift 1 + ;; + ---docker_run_args) + VIASH_DOCKER_RUN_ARGS+=("$2") + shift 2 + ;; + ---docker_run_args=*) + VIASH_DOCKER_RUN_ARGS+=("$(ViashRemoveFlags "$1")") + shift 1 + ;; + ---docker_image_id) + VIASH_MODE='docker_image_id' + shift 1 + ;; + ---debug) + VIASH_MODE='debug' + shift 1 + ;; + ---cpus) + [ -n "$VIASH_META_CPUS" ] && ViashError Bad arguments for option \'---cpus\': \'$VIASH_META_CPUS\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_META_CPUS="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to ---cpus. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + ---cpus=*) + [ -n "$VIASH_META_CPUS" ] && ViashError Bad arguments for option \'---cpus=*\': \'$VIASH_META_CPUS\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_META_CPUS=$(ViashRemoveFlags "$1") + shift 1 + ;; + ---memory) + [ -n "$VIASH_META_MEMORY" ] && ViashError Bad arguments for option \'---memory\': \'$VIASH_META_MEMORY\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_META_MEMORY="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to ---memory. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + ---memory=*) + [ -n "$VIASH_META_MEMORY" ] && ViashError Bad arguments for option \'---memory=*\': \'$VIASH_META_MEMORY\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_META_MEMORY=$(ViashRemoveFlags "$1") + shift 1 + ;; + *) # positional arg or unknown option + # since the positional args will be eval'd, can we always quote, instead of using ViashQuote + VIASH_POSITIONAL_ARGS="$VIASH_POSITIONAL_ARGS '$1'" + [[ $1 == -* ]] && ViashWarning $1 looks like a parameter but is not a defined parameter and will instead be treated as a positional argument. Use "--help" to get more information on the parameters. + shift # past argument + ;; + esac +done + +# parse positional parameters +eval set -- $VIASH_POSITIONAL_ARGS + + +if [ "$VIASH_ENGINE_ID" == "native" ] ; then + VIASH_ENGINE_TYPE='native' +elif [ "$VIASH_ENGINE_ID" == "docker" ] ; then + VIASH_ENGINE_TYPE='docker' +else + ViashError "Engine '$VIASH_ENGINE_ID' is not recognized. Options are: docker, native." + exit 1 +fi + +if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then + # check if docker is installed properly + ViashDockerInstallationCheck + + # determine docker image id + if [[ "$VIASH_ENGINE_ID" == 'docker' ]]; then + VIASH_DOCKER_IMAGE_ID='images.viash-hub.com/vsh/htrnaseq/eset/create_pdata:main' + fi + + # print dockerfile + if [ "$VIASH_MODE" == "dockerfile" ]; then + ViashDockerfile "$VIASH_ENGINE_ID" + exit 0 + + elif [ "$VIASH_MODE" == "docker_image_id" ]; then + echo "$VIASH_DOCKER_IMAGE_ID" + exit 0 + + # enter docker container + elif [[ "$VIASH_MODE" == "debug" ]]; then + VIASH_CMD="docker run --entrypoint=bash ${VIASH_DOCKER_RUN_ARGS[@]} -v '$(pwd)':/pwd --workdir /pwd -t $VIASH_DOCKER_IMAGE_ID" + ViashNotice "+ $VIASH_CMD" + eval $VIASH_CMD + exit + + # build docker image + elif [ "$VIASH_MODE" == "setup" ]; then + ViashDockerSetup "$VIASH_DOCKER_IMAGE_ID" "$VIASH_SETUP_STRATEGY" + ViashDockerCheckCommands "$VIASH_DOCKER_IMAGE_ID" 'ps' 'bash' + exit 0 + fi + + # check if docker image exists + ViashDockerSetup "$VIASH_DOCKER_IMAGE_ID" ifneedbepullelsecachedbuild + ViashDockerCheckCommands "$VIASH_DOCKER_IMAGE_ID" 'ps' 'bash' +fi + +# setting computational defaults + +# helper function for parsing memory strings +function ViashMemoryAsBytes { + local memory=`echo "$1" | tr '[:upper:]' '[:lower:]' | tr -d '[:space:]'` + local memory_regex='^([0-9]+)([kmgtp]i?b?|b)$' + if [[ $memory =~ $memory_regex ]]; then + local number=${memory/[^0-9]*/} + local symbol=${memory/*[0-9]/} + + case $symbol in + b) memory_b=$number ;; + kb|k) memory_b=$(( $number * 1000 )) ;; + mb|m) memory_b=$(( $number * 1000 * 1000 )) ;; + gb|g) memory_b=$(( $number * 1000 * 1000 * 1000 )) ;; + tb|t) memory_b=$(( $number * 1000 * 1000 * 1000 * 1000 )) ;; + pb|p) memory_b=$(( $number * 1000 * 1000 * 1000 * 1000 * 1000 )) ;; + kib|ki) memory_b=$(( $number * 1024 )) ;; + mib|mi) memory_b=$(( $number * 1024 * 1024 )) ;; + gib|gi) memory_b=$(( $number * 1024 * 1024 * 1024 )) ;; + tib|ti) memory_b=$(( $number * 1024 * 1024 * 1024 * 1024 )) ;; + pib|pi) memory_b=$(( $number * 1024 * 1024 * 1024 * 1024 * 1024 )) ;; + esac + echo "$memory_b" + fi +} +# compute memory in different units +if [ ! -z ${VIASH_META_MEMORY+x} ]; then + VIASH_META_MEMORY_B=`ViashMemoryAsBytes $VIASH_META_MEMORY` + # do not define other variables if memory_b is an empty string + if [ ! -z "$VIASH_META_MEMORY_B" ]; then + VIASH_META_MEMORY_KB=$(( ($VIASH_META_MEMORY_B+999) / 1000 )) + VIASH_META_MEMORY_MB=$(( ($VIASH_META_MEMORY_KB+999) / 1000 )) + VIASH_META_MEMORY_GB=$(( ($VIASH_META_MEMORY_MB+999) / 1000 )) + VIASH_META_MEMORY_TB=$(( ($VIASH_META_MEMORY_GB+999) / 1000 )) + VIASH_META_MEMORY_PB=$(( ($VIASH_META_MEMORY_TB+999) / 1000 )) + VIASH_META_MEMORY_KIB=$(( ($VIASH_META_MEMORY_B+1023) / 1024 )) + VIASH_META_MEMORY_MIB=$(( ($VIASH_META_MEMORY_KIB+1023) / 1024 )) + VIASH_META_MEMORY_GIB=$(( ($VIASH_META_MEMORY_MIB+1023) / 1024 )) + VIASH_META_MEMORY_TIB=$(( ($VIASH_META_MEMORY_GIB+1023) / 1024 )) + VIASH_META_MEMORY_PIB=$(( ($VIASH_META_MEMORY_TIB+1023) / 1024 )) + else + # unset memory if string is empty + unset $VIASH_META_MEMORY_B + fi +fi +# unset nproc if string is empty +if [ -z "$VIASH_META_CPUS" ]; then + unset $VIASH_META_CPUS +fi + + +# check whether required parameters exist +if [ -z ${VIASH_PAR_STAR_STATS_FILE+x} ]; then + ViashError '--star_stats_file' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_PAR_NRREADSNRGENESPERCHROMPOOL+x} ]; then + ViashError '--nrReadsNrGenesPerChromPool' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_META_NAME+x} ]; then + ViashError 'name' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_META_FUNCTIONALITY_NAME+x} ]; then + ViashError 'functionality_name' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_META_RESOURCES_DIR+x} ]; then + ViashError 'resources_dir' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_META_EXECUTABLE+x} ]; then + ViashError 'executable' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_META_CONFIG+x} ]; then + ViashError 'config' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_META_TEMP_DIR+x} ]; then + ViashError 'temp_dir' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi + +# filling in defaults +if [ -z ${VIASH_PAR_OUTPUT+x} ]; then + VIASH_PAR_OUTPUT="pData.\$id.txt" +fi + +# check whether required files exist +if [ ! -z "$VIASH_PAR_STAR_STATS_FILE" ] && [ ! -e "$VIASH_PAR_STAR_STATS_FILE" ]; then + ViashError "Input file '$VIASH_PAR_STAR_STATS_FILE' does not exist." + exit 1 +fi +if [ ! -z "$VIASH_PAR_NRREADSNRGENESPERCHROMPOOL" ] && [ ! -e "$VIASH_PAR_NRREADSNRGENESPERCHROMPOOL" ]; then + ViashError "Input file '$VIASH_PAR_NRREADSNRGENESPERCHROMPOOL' does not exist." + exit 1 +fi + +# check whether parameters values are of the right type +if [[ -n "$VIASH_META_CPUS" ]]; then + if ! [[ "$VIASH_META_CPUS" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'cpus' has to be an integer. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_B" ]]; then + if ! [[ "$VIASH_META_MEMORY_B" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_b' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_KB" ]]; then + if ! [[ "$VIASH_META_MEMORY_KB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_kb' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_MB" ]]; then + if ! [[ "$VIASH_META_MEMORY_MB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_mb' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_GB" ]]; then + if ! [[ "$VIASH_META_MEMORY_GB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_gb' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_TB" ]]; then + if ! [[ "$VIASH_META_MEMORY_TB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_tb' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_PB" ]]; then + if ! [[ "$VIASH_META_MEMORY_PB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_pb' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_KIB" ]]; then + if ! [[ "$VIASH_META_MEMORY_KIB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_kib' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_MIB" ]]; then + if ! [[ "$VIASH_META_MEMORY_MIB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_mib' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_GIB" ]]; then + if ! [[ "$VIASH_META_MEMORY_GIB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_gib' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_TIB" ]]; then + if ! [[ "$VIASH_META_MEMORY_TIB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_tib' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_PIB" ]]; then + if ! [[ "$VIASH_META_MEMORY_PIB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_pib' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi + +# create parent directories of output files, if so desired +if [ ! -z "$VIASH_PAR_OUTPUT" ] && [ ! -d "$(dirname "$VIASH_PAR_OUTPUT")" ]; then + mkdir -p "$(dirname "$VIASH_PAR_OUTPUT")" +fi + +if [ "$VIASH_ENGINE_ID" == "native" ] ; then + if [ "$VIASH_MODE" == "run" ]; then + VIASH_CMD="bash" + else + ViashError "Engine '$VIASH_ENGINE_ID' does not support mode '$VIASH_MODE'." + exit 1 + fi +fi + +if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then + # detect volumes from file arguments + VIASH_CHOWN_VARS=() +if [ ! -z "$VIASH_PAR_STAR_STATS_FILE" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_PAR_STAR_STATS_FILE")" ) + VIASH_PAR_STAR_STATS_FILE=$(ViashDockerAutodetectMount "$VIASH_PAR_STAR_STATS_FILE") +fi +if [ ! -z "$VIASH_PAR_NRREADSNRGENESPERCHROMPOOL" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_PAR_NRREADSNRGENESPERCHROMPOOL")" ) + VIASH_PAR_NRREADSNRGENESPERCHROMPOOL=$(ViashDockerAutodetectMount "$VIASH_PAR_NRREADSNRGENESPERCHROMPOOL") +fi +if [ ! -z "$VIASH_PAR_OUTPUT" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_PAR_OUTPUT")" ) + VIASH_PAR_OUTPUT=$(ViashDockerAutodetectMount "$VIASH_PAR_OUTPUT") + VIASH_CHOWN_VARS+=( "$VIASH_PAR_OUTPUT" ) +fi +if [ ! -z "$VIASH_META_RESOURCES_DIR" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_META_RESOURCES_DIR")" ) + VIASH_META_RESOURCES_DIR=$(ViashDockerAutodetectMount "$VIASH_META_RESOURCES_DIR") +fi +if [ ! -z "$VIASH_META_EXECUTABLE" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_META_EXECUTABLE")" ) + VIASH_META_EXECUTABLE=$(ViashDockerAutodetectMount "$VIASH_META_EXECUTABLE") +fi +if [ ! -z "$VIASH_META_CONFIG" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_META_CONFIG")" ) + VIASH_META_CONFIG=$(ViashDockerAutodetectMount "$VIASH_META_CONFIG") +fi +if [ ! -z "$VIASH_META_TEMP_DIR" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_META_TEMP_DIR")" ) + VIASH_META_TEMP_DIR=$(ViashDockerAutodetectMount "$VIASH_META_TEMP_DIR") +fi + + # get unique mounts + VIASH_UNIQUE_MOUNTS=($(for val in "${VIASH_DIRECTORY_MOUNTS[@]}"; do echo "$val"; done | sort -u)) +fi + +if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then + # change file ownership + function ViashPerformChown { + if (( ${#VIASH_CHOWN_VARS[@]} )); then + set +e + VIASH_CMD="docker run --entrypoint=bash --rm ${VIASH_UNIQUE_MOUNTS[@]} $VIASH_DOCKER_IMAGE_ID -c 'chown $(id -u):$(id -g) --silent --recursive ${VIASH_CHOWN_VARS[@]}'" + ViashDebug "+ $VIASH_CMD" + eval $VIASH_CMD + set -e + fi + } + trap ViashPerformChown EXIT +fi + +if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then + # helper function for filling in extra docker args + if [ ! -z "$VIASH_META_MEMORY_B" ]; then + VIASH_DOCKER_RUN_ARGS+=("--memory=${VIASH_META_MEMORY_B}") + fi + if [ ! -z "$VIASH_META_CPUS" ]; then + VIASH_DOCKER_RUN_ARGS+=("--cpus=${VIASH_META_CPUS}") + fi +fi + +if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then + VIASH_CMD="docker run --entrypoint=bash ${VIASH_DOCKER_RUN_ARGS[@]} ${VIASH_UNIQUE_MOUNTS[@]} $VIASH_DOCKER_IMAGE_ID" +fi + + +# set dependency paths + + +ViashDebug "Running command: $(echo $VIASH_CMD)" +cat << VIASHEOF | eval $VIASH_CMD +set -e +tempscript=\$(mktemp "$VIASH_META_TEMP_DIR/viash-run-create_pdata-XXXXXX").py +function clean_up { + rm "\$tempscript" +} +function interrupt { + echo -e "\nCTRL-C Pressed..." + exit 1 +} +trap clean_up EXIT +trap interrupt INT SIGINT +cat > "\$tempscript" << 'VIASHMAIN' +from itertools import batched +import pandas as pd +import logging + +### VIASH START +# The following code has been auto-generated by Viash. +par = { + 'star_stats_file': $( if [ ! -z ${VIASH_PAR_STAR_STATS_FILE+x} ]; then echo "r'${VIASH_PAR_STAR_STATS_FILE//\'/\'\"\'\"r\'}'"; else echo None; fi ), + 'nrReadsNrGenesPerChromPool': $( if [ ! -z ${VIASH_PAR_NRREADSNRGENESPERCHROMPOOL+x} ]; then echo "r'${VIASH_PAR_NRREADSNRGENESPERCHROMPOOL//\'/\'\"\'\"r\'}'"; else echo None; fi ), + 'output': $( if [ ! -z ${VIASH_PAR_OUTPUT+x} ]; then echo "r'${VIASH_PAR_OUTPUT//\'/\'\"\'\"r\'}'"; else echo None; fi ) +} +meta = { + 'name': $( if [ ! -z ${VIASH_META_NAME+x} ]; then echo "r'${VIASH_META_NAME//\'/\'\"\'\"r\'}'"; else echo None; fi ), + 'functionality_name': $( if [ ! -z ${VIASH_META_FUNCTIONALITY_NAME+x} ]; then echo "r'${VIASH_META_FUNCTIONALITY_NAME//\'/\'\"\'\"r\'}'"; else echo None; fi ), + 'resources_dir': $( if [ ! -z ${VIASH_META_RESOURCES_DIR+x} ]; then echo "r'${VIASH_META_RESOURCES_DIR//\'/\'\"\'\"r\'}'"; else echo None; fi ), + 'executable': $( if [ ! -z ${VIASH_META_EXECUTABLE+x} ]; then echo "r'${VIASH_META_EXECUTABLE//\'/\'\"\'\"r\'}'"; else echo None; fi ), + 'config': $( if [ ! -z ${VIASH_META_CONFIG+x} ]; then echo "r'${VIASH_META_CONFIG//\'/\'\"\'\"r\'}'"; else echo None; fi ), + 'temp_dir': $( if [ ! -z ${VIASH_META_TEMP_DIR+x} ]; then echo "r'${VIASH_META_TEMP_DIR//\'/\'\"\'\"r\'}'"; else echo None; fi ), + 'cpus': $( if [ ! -z ${VIASH_META_CPUS+x} ]; then echo "int(r'${VIASH_META_CPUS//\'/\'\"\'\"r\'}')"; else echo None; fi ), + 'memory_b': $( if [ ! -z ${VIASH_META_MEMORY_B+x} ]; then echo "int(r'${VIASH_META_MEMORY_B//\'/\'\"\'\"r\'}')"; else echo None; fi ), + 'memory_kb': $( if [ ! -z ${VIASH_META_MEMORY_KB+x} ]; then echo "int(r'${VIASH_META_MEMORY_KB//\'/\'\"\'\"r\'}')"; else echo None; fi ), + 'memory_mb': $( if [ ! -z ${VIASH_META_MEMORY_MB+x} ]; then echo "int(r'${VIASH_META_MEMORY_MB//\'/\'\"\'\"r\'}')"; else echo None; fi ), + 'memory_gb': $( if [ ! -z ${VIASH_META_MEMORY_GB+x} ]; then echo "int(r'${VIASH_META_MEMORY_GB//\'/\'\"\'\"r\'}')"; else echo None; fi ), + 'memory_tb': $( if [ ! -z ${VIASH_META_MEMORY_TB+x} ]; then echo "int(r'${VIASH_META_MEMORY_TB//\'/\'\"\'\"r\'}')"; else echo None; fi ), + 'memory_pb': $( if [ ! -z ${VIASH_META_MEMORY_PB+x} ]; then echo "int(r'${VIASH_META_MEMORY_PB//\'/\'\"\'\"r\'}')"; else echo None; fi ), + 'memory_kib': $( if [ ! -z ${VIASH_META_MEMORY_KIB+x} ]; then echo "int(r'${VIASH_META_MEMORY_KIB//\'/\'\"\'\"r\'}')"; else echo None; fi ), + 'memory_mib': $( if [ ! -z ${VIASH_META_MEMORY_MIB+x} ]; then echo "int(r'${VIASH_META_MEMORY_MIB//\'/\'\"\'\"r\'}')"; else echo None; fi ), + 'memory_gib': $( if [ ! -z ${VIASH_META_MEMORY_GIB+x} ]; then echo "int(r'${VIASH_META_MEMORY_GIB//\'/\'\"\'\"r\'}')"; else echo None; fi ), + 'memory_tib': $( if [ ! -z ${VIASH_META_MEMORY_TIB+x} ]; then echo "int(r'${VIASH_META_MEMORY_TIB//\'/\'\"\'\"r\'}')"; else echo None; fi ), + 'memory_pib': $( if [ ! -z ${VIASH_META_MEMORY_PIB+x} ]; then echo "int(r'${VIASH_META_MEMORY_PIB//\'/\'\"\'\"r\'}')"; else echo None; fi ) +} +dep = { + +} + +### VIASH END + +logger = logging.getLogger() +console_handler = logging.StreamHandler() +logger.addHandler(console_handler) +logger.setLevel(logging.DEBUG) + +def main(par): + logger.info(f"{meta['name']} started.") + parameters_str = [f'\\t{param}: {param_val}\\n' for param, param_val in par.items()] + logger.info("Parameters:\\n%s", "".join(parameters_str).rstrip()) + logger.info("Reading %s", par["star_stats_file"]) + star_log_stats = pd.read_csv(par["star_stats_file"], sep="\\t", index_col=0) + logger.info("STAR log statics file contains information for the following barcodes: %s", + ", ".join(star_log_stats.index)) + logger.info("Reading %s", par["nrReadsNrGenesPerChromPool"]) + reads_and_genes_per_chr_stats = pd.read_csv(par["nrReadsNrGenesPerChromPool"], sep="\\t", index_col=0) + logger.info("Reads per gene and chromosome table contains information for the following barcodes: %s", + ", ".join(reads_and_genes_per_chr_stats.index)) + logger.info("Filtering mapping statistics file columns.") + cols_to_keep = ("NumberOfMTReads", "pctMT", "NumberOfERCCReads", + "pctERCC", "NumberOfChromReads", "pctChrom") + try: + reads_and_genes_per_chr_stats = reads_and_genes_per_chr_stats.loc[:,cols_to_keep] + except KeyError as e: + raise KeyError("When trying to subset the reads per genes and chromosomes file, " + "a column was missing. Available columns in the file: " + f"{', '.join(reads_and_genes_per_chr_stats.columns)}.") from e + combined_stats = pd.concat([reads_and_genes_per_chr_stats, star_log_stats], axis=1) + if combined_stats.isna().any(axis=None): # For non-overlapping indices, the values get filled with NA + raise ValueError("Error while combining two log files. It seems that the entries (barcodes) " + f"do not fully overlap. Barcodes in '{par['star_stats_file']}: " + f"{', '.join(reads_and_genes_per_chr_stats.index)}. Barcodes in " + f"'{par['nrReadsNrGenesPerChromPool']}': " + f"{', '.join(star_log_stats.index)}") + logger.info("Summary of final output:\\n%s\\n", + "\\n".join(repr(combined_stats.loc[:,columns].describe()) + for columns in batched(combined_stats.columns, 3))) + logger.info("Writing to %s", par["output"]) + combined_stats.reset_index("WellBC").to_csv(par["output"], sep="\\t", header=True, index=False) + logger.info("Finished %s.", meta["name"]) + + +if __name__ == "__main__": + main(par) +VIASHMAIN +python -B "\$tempscript" & +wait "\$!" + +VIASHEOF + + +if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then + # strip viash automount from file paths + + if [ ! -z "$VIASH_PAR_STAR_STATS_FILE" ]; then + VIASH_PAR_STAR_STATS_FILE=$(ViashDockerStripAutomount "$VIASH_PAR_STAR_STATS_FILE") + fi + if [ ! -z "$VIASH_PAR_NRREADSNRGENESPERCHROMPOOL" ]; then + VIASH_PAR_NRREADSNRGENESPERCHROMPOOL=$(ViashDockerStripAutomount "$VIASH_PAR_NRREADSNRGENESPERCHROMPOOL") + fi + if [ ! -z "$VIASH_PAR_OUTPUT" ]; then + VIASH_PAR_OUTPUT=$(ViashDockerStripAutomount "$VIASH_PAR_OUTPUT") + fi + if [ ! -z "$VIASH_META_RESOURCES_DIR" ]; then + VIASH_META_RESOURCES_DIR=$(ViashDockerStripAutomount "$VIASH_META_RESOURCES_DIR") + fi + if [ ! -z "$VIASH_META_EXECUTABLE" ]; then + VIASH_META_EXECUTABLE=$(ViashDockerStripAutomount "$VIASH_META_EXECUTABLE") + fi + if [ ! -z "$VIASH_META_CONFIG" ]; then + VIASH_META_CONFIG=$(ViashDockerStripAutomount "$VIASH_META_CONFIG") + fi + if [ ! -z "$VIASH_META_TEMP_DIR" ]; then + VIASH_META_TEMP_DIR=$(ViashDockerStripAutomount "$VIASH_META_TEMP_DIR") + fi +fi + + +# check whether required files exist +if [ ! -z "$VIASH_PAR_OUTPUT" ] && [ ! -e "$VIASH_PAR_OUTPUT" ]; then + ViashError "Output file '$VIASH_PAR_OUTPUT' does not exist." + exit 1 +fi + + +exit 0 diff --git a/target/executable/eset/create_pdata/nextflow_labels.config b/target/executable/eset/create_pdata/nextflow_labels.config new file mode 100644 index 00000000..66f5e21c --- /dev/null +++ b/target/executable/eset/create_pdata/nextflow_labels.config @@ -0,0 +1,105 @@ +executor { + $k8s { + submitRateLimit = '10sec' + pollInterval = '1 sec' + } +} + +process { + container = 'nextflow/bash:latest' + + // default resources + memory = { 8.Gb * task.attempt } + cpus = 8 + maxForks = 36 + + // Retry for exit codes that have something to do with memory issues + errorStrategy = { task.exitStatus in 137..140 ? 'retry' : 'terminate' } + maxRetries = 3 + maxMemory = 192.GB + + // Resource labels + withLabel: verylowcpu { cpus = 2 } + withLabel: lowcpu { cpus = 8 } + withLabel: midcpu { cpus = 16 } + withLabel: highcpu { cpus = 32 } + + withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } } + withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } } + withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } } + withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } } + +} + +profiles { + // detect tempdir + tempDir = java.nio.file.Paths.get( + System.getenv('NXF_TEMP') ?: + System.getenv('VIASH_TEMP') ?: + System.getenv('TEMPDIR') ?: + System.getenv('TMPDIR') ?: + '/tmp' + ).toAbsolutePath() + + mount_temp { + docker.temp = tempDir + podman.temp = tempDir + charliecloud.temp = tempDir + } + + no_publish { + process { + withName: '.*' { + publishDir = [ + enabled: false + ] + } + } + } + + docker { + docker.fixOwnership = true + docker.enabled = true + // docker.userEmulation = true + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + + local { + // This config is for local processing. + process { + maxMemory = 25.GB + withLabel: verylowcpu { cpus = 2 } + withLabel: lowcpu { cpus = 4 } + withLabel: midcpu { cpus = 6 } + withLabel: highcpu { cpus = 12 } + + withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } } + withLabel: midmem { memory = { get_memory( 12.GB * task.attempt ) } } + withLabel: highmem { memory = { get_memory( 20.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) + } + } diff --git a/target/executable/integration_test_components/htrnaseq/check_eset/.config.vsh.yaml b/target/executable/integration_test_components/htrnaseq/check_eset/.config.vsh.yaml new file mode 100644 index 00000000..8967ce4b --- /dev/null +++ b/target/executable/integration_test_components/htrnaseq/check_eset/.config.vsh.yaml @@ -0,0 +1,167 @@ +name: "check_eset" +namespace: "integration_test_components/htrnaseq" +version: "main" +argument_groups: +- name: "Inputs" + arguments: + - type: "file" + name: "--eset" + description: "Path to an ExpressionSet object." + info: null + example: + - "eset.rds" + must_exist: true + create_parent: true + required: true + direction: "input" + multiple: false + multiple_sep: ";" + - type: "file" + name: "--star_output" + info: null + must_exist: true + create_parent: true + required: true + direction: "input" + multiple: true + multiple_sep: ";" +resources: +- type: "r_script" + path: "script.R" + is_executable: true +- type: "file" + path: "nextflow_labels.config" + dest: "nextflow_labels.config" +description: "This component test the ExpressionSet object as output by the main pipeline." +info: null +status: "enabled" +requirements: + commands: + - "ps" +license: "MIT" +links: + repository: "https://github.com/viash-hub/htrnaseq" +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: "bioconductor/bioconductor_docker:3.19" + target_registry: "images.viash-hub.com" + target_tag: "main" + namespace_separator: "/" + setup: + - type: "r" + cran: + - "bit64" + bioc: + - "Biobase" + bioc_force_install: false + entrypoint: [] + cmd: null +- type: "native" + id: "native" +build_info: + config: "src/integration_test_components/htrnaseq/check_eset/config.vsh.yaml" + runner: "executable" + engine: "docker|native" + output: "target/executable/integration_test_components/htrnaseq/check_eset" + executable: "target/executable/integration_test_components/htrnaseq/check_eset/check_eset" + viash_version: "0.9.0" + git_commit: "65dd41d8b1b4a307735c72320c96c0880c75f17f" + git_remote: "https://x-access-token:ghs_McZDF0yobnnHmOEb2Q4JaaB3pzr9mz1VbIOs@github.com/viash-hub/htrnaseq" +package_config: + name: "htrnaseq" + version: "main" + description: "High-throughput pipeline [WIP]\n" + info: + test_resources: + - path: "gs://viash-hub-test-data/htrnaseq/v1/" + dest: "resources_test" + viash_version: "0.9.0" + source: "src" + target: "target" + config_mods: + - ".requirements.commands := ['ps']\n.runners[.type == 'nextflow'].config.script\ + \ := 'includeConfig(\"nextflow_labels.config\")'\n.resources += {path: '/src/config/labels.config',\ + \ dest: 'nextflow_labels.config'}\n" + - ".engines += { type: \"native\" }" + - ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'" + - ".engines[.type == 'docker'].target_tag := 'main'" + keywords: + - "bioinformatics" + - "sequence" + - "high-throughput" + - "mapping" + - "counting" + - "pipeline" + license: "MIT" + organization: "vsh" + links: + repository: "https://github.com/viash-hub/htrnaseq" + issue_tracker: "https://github.com/viash-hub/htrnaseq/issues" diff --git a/target/executable/integration_test_components/htrnaseq/check_eset/check_eset b/target/executable/integration_test_components/htrnaseq/check_eset/check_eset new file mode 100755 index 00000000..185f19b8 --- /dev/null +++ b/target/executable/integration_test_components/htrnaseq/check_eset/check_eset @@ -0,0 +1,1307 @@ +#!/usr/bin/env bash + +# check_eset main +# +# This wrapper script is auto-generated by viash 0.9.0 and is thus a derivative +# work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data +# Intuitive. +# +# The component may contain files which fall under a different license. The +# authors of this component should specify the license in the header of such +# files, or include a separate license file detailing the licenses of all included +# files. + +set -e + +if [ -z "$VIASH_TEMP" ]; then + VIASH_TEMP=${VIASH_TEMP:-$VIASH_TMPDIR} + VIASH_TEMP=${VIASH_TEMP:-$VIASH_TEMPDIR} + VIASH_TEMP=${VIASH_TEMP:-$VIASH_TMP} + VIASH_TEMP=${VIASH_TEMP:-$TMPDIR} + VIASH_TEMP=${VIASH_TEMP:-$TMP} + VIASH_TEMP=${VIASH_TEMP:-$TEMPDIR} + VIASH_TEMP=${VIASH_TEMP:-$TEMP} + VIASH_TEMP=${VIASH_TEMP:-/tmp} +fi + +# define helper functions +# ViashQuote: put quotes around non flag values +# $1 : unquoted string +# return : possibly quoted string +# examples: +# ViashQuote --foo # returns --foo +# ViashQuote bar # returns 'bar' +# Viashquote --foo=bar # returns --foo='bar' +function ViashQuote { + if [[ "$1" =~ ^-+[a-zA-Z0-9_\-]+=.+$ ]]; then + echo "$1" | sed "s#=\(.*\)#='\1'#" + elif [[ "$1" =~ ^-+[a-zA-Z0-9_\-]+$ ]]; then + echo "$1" + else + echo "'$1'" + fi +} +# ViashRemoveFlags: Remove leading flag +# $1 : string with a possible leading flag +# return : string without possible leading flag +# examples: +# ViashRemoveFlags --foo=bar # returns bar +function ViashRemoveFlags { + echo "$1" | sed 's/^--*[a-zA-Z0-9_\-]*=//' +} +# ViashSourceDir: return the path of a bash file, following symlinks +# usage : ViashSourceDir ${BASH_SOURCE[0]} +# $1 : Should always be set to ${BASH_SOURCE[0]} +# returns : The absolute path of the bash file +function ViashSourceDir { + local source="$1" + while [ -h "$source" ]; do + local dir="$( cd -P "$( dirname "$source" )" >/dev/null 2>&1 && pwd )" + source="$(readlink "$source")" + [[ $source != /* ]] && source="$dir/$source" + done + cd -P "$( dirname "$source" )" >/dev/null 2>&1 && pwd +} +# ViashFindTargetDir: return the path of the '.build.yaml' file, following symlinks +# usage : ViashFindTargetDir 'ScriptPath' +# $1 : The location from where to start the upward search +# returns : The absolute path of the '.build.yaml' file +function ViashFindTargetDir { + local source="$1" + while [[ "$source" != "" && ! -e "$source/.build.yaml" ]]; do + source=${source%/*} + done + echo $source +} +# see https://en.wikipedia.org/wiki/Syslog#Severity_level +VIASH_LOGCODE_EMERGENCY=0 +VIASH_LOGCODE_ALERT=1 +VIASH_LOGCODE_CRITICAL=2 +VIASH_LOGCODE_ERROR=3 +VIASH_LOGCODE_WARNING=4 +VIASH_LOGCODE_NOTICE=5 +VIASH_LOGCODE_INFO=6 +VIASH_LOGCODE_DEBUG=7 +VIASH_VERBOSITY=$VIASH_LOGCODE_NOTICE + +# ViashLog: Log events depending on the verbosity level +# usage: ViashLog 1 alert Oh no something went wrong! +# $1: required verbosity level +# $2: display tag +# $3+: messages to display +# stdout: Your input, prepended by '[$2] '. +function ViashLog { + local required_level="$1" + local display_tag="$2" + shift 2 + if [ $VIASH_VERBOSITY -ge $required_level ]; then + >&2 echo "[$display_tag]" "$@" + fi +} + +# ViashEmergency: log events when the system is unstable +# usage: ViashEmergency Oh no something went wrong. +# stdout: Your input, prepended by '[emergency] '. +function ViashEmergency { + ViashLog $VIASH_LOGCODE_EMERGENCY emergency "$@" +} + +# ViashAlert: log events when actions must be taken immediately (e.g. corrupted system database) +# usage: ViashAlert Oh no something went wrong. +# stdout: Your input, prepended by '[alert] '. +function ViashAlert { + ViashLog $VIASH_LOGCODE_ALERT alert "$@" +} + +# ViashCritical: log events when a critical condition occurs +# usage: ViashCritical Oh no something went wrong. +# stdout: Your input, prepended by '[critical] '. +function ViashCritical { + ViashLog $VIASH_LOGCODE_CRITICAL critical "$@" +} + +# ViashError: log events when an error condition occurs +# usage: ViashError Oh no something went wrong. +# stdout: Your input, prepended by '[error] '. +function ViashError { + ViashLog $VIASH_LOGCODE_ERROR error "$@" +} + +# ViashWarning: log potentially abnormal events +# usage: ViashWarning Something may have gone wrong. +# stdout: Your input, prepended by '[warning] '. +function ViashWarning { + ViashLog $VIASH_LOGCODE_WARNING warning "$@" +} + +# ViashNotice: log significant but normal events +# usage: ViashNotice This just happened. +# stdout: Your input, prepended by '[notice] '. +function ViashNotice { + ViashLog $VIASH_LOGCODE_NOTICE notice "$@" +} + +# ViashInfo: log normal events +# usage: ViashInfo This just happened. +# stdout: Your input, prepended by '[info] '. +function ViashInfo { + ViashLog $VIASH_LOGCODE_INFO info "$@" +} + +# ViashDebug: log all events, for debugging purposes +# usage: ViashDebug This just happened. +# stdout: Your input, prepended by '[debug] '. +function ViashDebug { + ViashLog $VIASH_LOGCODE_DEBUG debug "$@" +} + +# find source folder of this component +VIASH_META_RESOURCES_DIR=`ViashSourceDir ${BASH_SOURCE[0]}` + +# find the root of the built components & dependencies +VIASH_TARGET_DIR=`ViashFindTargetDir $VIASH_META_RESOURCES_DIR` + +# define meta fields +VIASH_META_NAME="check_eset" +VIASH_META_FUNCTIONALITY_NAME="check_eset" +VIASH_META_EXECUTABLE="$VIASH_META_RESOURCES_DIR/$VIASH_META_NAME" +VIASH_META_CONFIG="$VIASH_META_RESOURCES_DIR/.config.vsh.yaml" +VIASH_META_TEMP_DIR="$VIASH_TEMP" + + +# ViashHelp: Display helpful explanation about this executable +function ViashHelp { + echo "check_eset main" + echo "" + echo "This component test the ExpressionSet object as output by the main pipeline." + echo "" + echo "Inputs:" + echo " --eset" + echo " type: file, required parameter, file must exist" + echo " example: eset.rds" + echo " Path to an ExpressionSet object." + echo "" + echo " --star_output" + echo " type: file, required parameter, multiple values allowed, file must exist" +} + +# initialise variables +VIASH_MODE='run' +VIASH_ENGINE_ID='docker' + +######## Helper functions for setting up Docker images for viash ######## +# expects: ViashDockerBuild + +# ViashDockerInstallationCheck: check whether Docker is installed correctly +# +# examples: +# ViashDockerInstallationCheck +function ViashDockerInstallationCheck { + ViashDebug "Checking whether Docker is installed" + if [ ! command -v docker &> /dev/null ]; then + ViashCritical "Docker doesn't seem to be installed. See 'https://docs.docker.com/get-docker/' for instructions." + exit 1 + fi + + ViashDebug "Checking whether the Docker daemon is running" + local save=$-; set +e + local docker_version=$(docker version --format '{{.Client.APIVersion}}' 2> /dev/null) + local out=$? + [[ $save =~ e ]] && set -e + if [ $out -ne 0 ]; then + ViashCritical "Docker daemon does not seem to be running. Try one of the following:" + ViashCritical "- Try running 'dockerd' in the command line" + ViashCritical "- See https://docs.docker.com/config/daemon/" + exit 1 + fi +} + +# ViashDockerRemoteTagCheck: check whether a Docker image is available +# on a remote. Assumes `docker login` has been performed, if relevant. +# +# $1 : image identifier with format `[registry/]image[:tag]` +# exit code $? : whether or not the image was found +# examples: +# ViashDockerRemoteTagCheck python:latest +# echo $? # returns '0' +# ViashDockerRemoteTagCheck sdaizudceahifu +# echo $? # returns '1' +function ViashDockerRemoteTagCheck { + docker manifest inspect $1 > /dev/null 2> /dev/null +} + +# ViashDockerLocalTagCheck: check whether a Docker image is available locally +# +# $1 : image identifier with format `[registry/]image[:tag]` +# exit code $? : whether or not the image was found +# examples: +# docker pull python:latest +# ViashDockerLocalTagCheck python:latest +# echo $? # returns '0' +# ViashDockerLocalTagCheck sdaizudceahifu +# echo $? # returns '1' +function ViashDockerLocalTagCheck { + [ -n "$(docker images -q $1)" ] +} + +# ViashDockerPull: pull a Docker image +# +# $1 : image identifier with format `[registry/]image[:tag]` +# exit code $? : whether or not the image was found +# examples: +# ViashDockerPull python:latest +# echo $? # returns '0' +# ViashDockerPull sdaizudceahifu +# echo $? # returns '1' +function ViashDockerPull { + ViashNotice "Checking if Docker image is available at '$1'" + if [ $VIASH_VERBOSITY -ge $VIASH_LOGCODE_INFO ]; then + docker pull $1 && return 0 || return 1 + else + local save=$-; set +e + docker pull $1 2> /dev/null > /dev/null + local out=$? + [[ $save =~ e ]] && set -e + if [ $out -ne 0 ]; then + ViashWarning "Could not pull from '$1'. Docker image doesn't exist or is not accessible." + fi + return $out + fi +} + +# ViashDockerPush: push a Docker image +# +# $1 : image identifier with format `[registry/]image[:tag]` +# exit code $? : whether or not the image was found +# examples: +# ViashDockerPush python:latest +# echo $? # returns '0' +# ViashDockerPush sdaizudceahifu +# echo $? # returns '1' +function ViashDockerPush { + ViashNotice "Pushing image to '$1'" + local save=$-; set +e + local out + if [ $VIASH_VERBOSITY -ge $VIASH_LOGCODE_INFO ]; then + docker push $1 + out=$? + else + docker push $1 2> /dev/null > /dev/null + out=$? + fi + [[ $save =~ e ]] && set -e + if [ $out -eq 0 ]; then + ViashNotice "Container '$1' push succeeded." + else + ViashError "Container '$1' push errored. You might not be logged in or have the necessary permissions." + fi + return $out +} + +# ViashDockerPullElseBuild: pull a Docker image, else build it +# +# $1 : image identifier with format `[registry/]image[:tag]` +# ViashDockerBuild : a Bash function which builds a docker image, takes image identifier as argument. +# examples: +# ViashDockerPullElseBuild mynewcomponent +function ViashDockerPullElseBuild { + local save=$-; set +e + ViashDockerPull $1 + local out=$? + [[ $save =~ e ]] && set -e + if [ $out -ne 0 ]; then + ViashDockerBuild $@ + fi +} + +# ViashDockerSetup: create a Docker image, according to specified docker setup strategy +# +# $1 : image identifier with format `[registry/]image[:tag]` +# $2 : docker setup strategy, see DockerSetupStrategy.scala +# examples: +# ViashDockerSetup mynewcomponent alwaysbuild +function ViashDockerSetup { + local image_id="$1" + local setup_strategy="$2" + if [ "$setup_strategy" == "alwaysbuild" -o "$setup_strategy" == "build" -o "$setup_strategy" == "b" ]; then + ViashDockerBuild $image_id --no-cache $(ViashDockerBuildArgs "$engine_id") + elif [ "$setup_strategy" == "alwayspull" -o "$setup_strategy" == "pull" -o "$setup_strategy" == "p" ]; then + ViashDockerPull $image_id + elif [ "$setup_strategy" == "alwayspullelsebuild" -o "$setup_strategy" == "pullelsebuild" ]; then + ViashDockerPullElseBuild $image_id --no-cache $(ViashDockerBuildArgs "$engine_id") + elif [ "$setup_strategy" == "alwayspullelsecachedbuild" -o "$setup_strategy" == "pullelsecachedbuild" ]; then + ViashDockerPullElseBuild $image_id $(ViashDockerBuildArgs "$engine_id") + elif [ "$setup_strategy" == "alwayscachedbuild" -o "$setup_strategy" == "cachedbuild" -o "$setup_strategy" == "cb" ]; then + ViashDockerBuild $image_id $(ViashDockerBuildArgs "$engine_id") + elif [[ "$setup_strategy" =~ ^ifneedbe ]]; then + local save=$-; set +e + ViashDockerLocalTagCheck $image_id + local outCheck=$? + [[ $save =~ e ]] && set -e + if [ $outCheck -eq 0 ]; then + ViashInfo "Image $image_id already exists" + elif [ "$setup_strategy" == "ifneedbebuild" ]; then + ViashDockerBuild $image_id --no-cache $(ViashDockerBuildArgs "$engine_id") + elif [ "$setup_strategy" == "ifneedbecachedbuild" ]; then + ViashDockerBuild $image_id $(ViashDockerBuildArgs "$engine_id") + elif [ "$setup_strategy" == "ifneedbepull" ]; then + ViashDockerPull $image_id + elif [ "$setup_strategy" == "ifneedbepullelsebuild" ]; then + ViashDockerPullElseBuild $image_id --no-cache $(ViashDockerBuildArgs "$engine_id") + elif [ "$setup_strategy" == "ifneedbepullelsecachedbuild" ]; then + ViashDockerPullElseBuild $image_id $(ViashDockerBuildArgs "$engine_id") + else + ViashError "Unrecognised Docker strategy: $setup_strategy" + exit 1 + fi + elif [ "$setup_strategy" == "push" -o "$setup_strategy" == "forcepush" -o "$setup_strategy" == "alwayspush" ]; then + ViashDockerPush "$image_id" + elif [ "$setup_strategy" == "pushifnotpresent" -o "$setup_strategy" == "gentlepush" -o "$setup_strategy" == "maybepush" ]; then + local save=$-; set +e + ViashDockerRemoteTagCheck $image_id + local outCheck=$? + [[ $save =~ e ]] && set -e + if [ $outCheck -eq 0 ]; then + ViashNotice "Container '$image_id' exists, doing nothing." + else + ViashNotice "Container '$image_id' does not yet exist." + ViashDockerPush "$image_id" + fi + elif [ "$setup_strategy" == "donothing" -o "$setup_strategy" == "meh" ]; then + ViashNotice "Skipping setup." + else + ViashError "Unrecognised Docker strategy: $setup_strategy" + exit 1 + fi +} + +# ViashDockerCheckCommands: Check whether a docker container has the required commands +# +# $1 : image identifier with format `[registry/]image[:tag]` +# $@ : commands to verify being present +# examples: +# ViashDockerCheckCommands bash:4.0 bash ps foo +function ViashDockerCheckCommands { + local image_id="$1" + shift 1 + local commands="$@" + local save=$-; set +e + local missing # mark 'missing' as local in advance, otherwise the exit code of the command will be missing and always be '0' + missing=$(docker run --rm --entrypoint=sh "$image_id" -c "for command in $commands; do command -v \$command >/dev/null 2>&1; if [ \$? -ne 0 ]; then echo \$command; exit 1; fi; done") + local outCheck=$? + [[ $save =~ e ]] && set -e + if [ $outCheck -ne 0 ]; then + ViashError "Docker container '$image_id' does not contain command '$missing'." + exit 1 + fi +} + +# ViashDockerBuild: build a docker image +# $1 : image identifier with format `[registry/]image[:tag]` +# $... : additional arguments to pass to docker build +# $VIASH_META_TEMP_DIR : temporary directory to store dockerfile & optional resources in +# $VIASH_META_NAME : name of the component +# $VIASH_META_RESOURCES_DIR : directory containing the resources +# $VIASH_VERBOSITY : verbosity level +# exit code $? : whether or not the image was built successfully +function ViashDockerBuild { + local image_id="$1" + shift 1 + + # create temporary directory to store dockerfile & optional resources in + local tmpdir=$(mktemp -d "$VIASH_META_TEMP_DIR/dockerbuild-$VIASH_META_NAME-XXXXXX") + local dockerfile="$tmpdir/Dockerfile" + function clean_up { + rm -rf "$tmpdir" + } + trap clean_up EXIT + + # store dockerfile and resources + ViashDockerfile "$VIASH_ENGINE_ID" > "$dockerfile" + + # generate the build command + local docker_build_cmd="docker build -t '$image_id' $@ '$VIASH_META_RESOURCES_DIR' -f '$dockerfile'" + + # build the container + ViashNotice "Building container '$image_id' with Dockerfile" + ViashInfo "$docker_build_cmd" + local save=$-; set +e + if [ $VIASH_VERBOSITY -ge $VIASH_LOGCODE_INFO ]; then + eval $docker_build_cmd + else + eval $docker_build_cmd &> "$tmpdir/docker_build.log" + fi + + # check exit code + local out=$? + [[ $save =~ e ]] && set -e + if [ $out -ne 0 ]; then + ViashError "Error occurred while building container '$image_id'" + if [ $VIASH_VERBOSITY -lt $VIASH_LOGCODE_INFO ]; then + ViashError "Transcript: --------------------------------" + cat "$tmpdir/docker_build.log" + ViashError "End of transcript --------------------------" + fi + exit 1 + fi +} + +######## End of helper functions for setting up Docker images for viash ######## + +# ViashDockerFile: print the dockerfile to stdout +# $1 : engine identifier +# return : dockerfile required to run this component +# examples: +# ViashDockerFile +function ViashDockerfile { + local engine_id="$1" + + if [[ "$engine_id" == "docker" ]]; then + cat << 'VIASHDOCKER' +FROM bioconductor/bioconductor_docker:3.19 +ENTRYPOINT [] +RUN Rscript -e 'if (!requireNamespace("remotes", quietly = TRUE)) install.packages("remotes")' && \ + Rscript -e 'if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager")' && \ + Rscript -e 'if (!requireNamespace("Biobase", quietly = TRUE)) BiocManager::install("Biobase")' && \ + Rscript -e 'remotes::install_cran(c("bit64"), repos = "https://cran.rstudio.com")' + +LABEL org.opencontainers.image.description="Companion container for running component integration_test_components/htrnaseq check_eset" +LABEL org.opencontainers.image.created="2024-11-05T15:39:42Z" +LABEL org.opencontainers.image.source="https://github.com/viash-hub/htrnaseq" +LABEL org.opencontainers.image.revision="65dd41d8b1b4a307735c72320c96c0880c75f17f" +LABEL org.opencontainers.image.version="main" + +VIASHDOCKER + fi +} + +# ViashDockerBuildArgs: return the arguments to pass to docker build +# $1 : engine identifier +# return : arguments to pass to docker build +function ViashDockerBuildArgs { + local engine_id="$1" + + if [[ "$engine_id" == "docker" ]]; then + echo "" + fi +} + +# ViashAbsolutePath: generate absolute path from relative path +# borrowed from https://stackoverflow.com/a/21951256 +# $1 : relative filename +# return : absolute path +# examples: +# ViashAbsolutePath some_file.txt # returns /path/to/some_file.txt +# ViashAbsolutePath /foo/bar/.. # returns /foo +function ViashAbsolutePath { + local thePath + local parr + local outp + local len + if [[ ! "$1" =~ ^/ ]]; then + thePath="$PWD/$1" + else + thePath="$1" + fi + echo "$thePath" | ( + IFS=/ + read -a parr + declare -a outp + for i in "${parr[@]}"; do + case "$i" in + ''|.) continue ;; + ..) + len=${#outp[@]} + if ((len==0)); then + continue + else + unset outp[$((len-1))] + fi + ;; + *) + len=${#outp[@]} + outp[$len]="$i" + ;; + esac + done + echo /"${outp[*]}" + ) +} +# ViashDockerAutodetectMount: auto configuring docker mounts from parameters +# $1 : The parameter value +# returns : New parameter +# $VIASH_DIRECTORY_MOUNTS : Added another parameter to be passed to docker +# $VIASH_DOCKER_AUTOMOUNT_PREFIX : The prefix to be used for the automounts +# examples: +# ViashDockerAutodetectMount /path/to/bar # returns '/viash_automount/path/to/bar' +# ViashDockerAutodetectMountArg /path/to/bar # returns '--volume="/path/to:/viash_automount/path/to"' +function ViashDockerAutodetectMount { + local abs_path=$(ViashAbsolutePath "$1") + local mount_source + local base_name + if [ -d "$abs_path" ]; then + mount_source="$abs_path" + base_name="" + else + mount_source=`dirname "$abs_path"` + base_name=`basename "$abs_path"` + fi + local mount_target="$VIASH_DOCKER_AUTOMOUNT_PREFIX$mount_source" + if [ -z "$base_name" ]; then + echo "$mount_target" + else + echo "$mount_target/$base_name" + fi +} +function ViashDockerAutodetectMountArg { + local abs_path=$(ViashAbsolutePath "$1") + local mount_source + local base_name + if [ -d "$abs_path" ]; then + mount_source="$abs_path" + base_name="" + else + mount_source=`dirname "$abs_path"` + base_name=`basename "$abs_path"` + fi + local mount_target="$VIASH_DOCKER_AUTOMOUNT_PREFIX$mount_source" + ViashDebug "ViashDockerAutodetectMountArg $1 -> $mount_source -> $mount_target" + echo "--volume=\"$mount_source:$mount_target\"" +} +function ViashDockerStripAutomount { + local abs_path=$(ViashAbsolutePath "$1") + echo "${abs_path#$VIASH_DOCKER_AUTOMOUNT_PREFIX}" +} +# initialise variables +VIASH_DIRECTORY_MOUNTS=() + +# configure default docker automount prefix if it is unset +if [ -z "${VIASH_DOCKER_AUTOMOUNT_PREFIX+x}" ]; then + VIASH_DOCKER_AUTOMOUNT_PREFIX="/viash_automount" +fi + +# initialise docker variables +VIASH_DOCKER_RUN_ARGS=(-i --rm) + +# initialise array +VIASH_POSITIONAL_ARGS='' + +while [[ $# -gt 0 ]]; do + case "$1" in + -h|--help) + ViashHelp + exit + ;; + ---v|---verbose) + let "VIASH_VERBOSITY=VIASH_VERBOSITY+1" + shift 1 + ;; + ---verbosity) + VIASH_VERBOSITY="$2" + shift 2 + ;; + ---verbosity=*) + VIASH_VERBOSITY="$(ViashRemoveFlags "$1")" + shift 1 + ;; + --version) + echo "check_eset main" + exit + ;; + --eset) + [ -n "$VIASH_PAR_ESET" ] && ViashError Bad arguments for option \'--eset\': \'$VIASH_PAR_ESET\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_ESET="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --eset. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --eset=*) + [ -n "$VIASH_PAR_ESET" ] && ViashError Bad arguments for option \'--eset=*\': \'$VIASH_PAR_ESET\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_ESET=$(ViashRemoveFlags "$1") + shift 1 + ;; + --star_output) + if [ -z "$VIASH_PAR_STAR_OUTPUT" ]; then + VIASH_PAR_STAR_OUTPUT="$2" + else + VIASH_PAR_STAR_OUTPUT="$VIASH_PAR_STAR_OUTPUT;""$2" + fi + [ $# -lt 2 ] && ViashError Not enough arguments passed to --star_output. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --star_output=*) + if [ -z "$VIASH_PAR_STAR_OUTPUT" ]; then + VIASH_PAR_STAR_OUTPUT=$(ViashRemoveFlags "$1") + else + VIASH_PAR_STAR_OUTPUT="$VIASH_PAR_STAR_OUTPUT;"$(ViashRemoveFlags "$1") + fi + shift 1 + ;; + ---engine) + VIASH_ENGINE_ID="$2" + shift 2 + ;; + ---engine=*) + VIASH_ENGINE_ID="$(ViashRemoveFlags "$1")" + shift 1 + ;; + ---setup) + VIASH_MODE='setup' + VIASH_SETUP_STRATEGY="$2" + shift 2 + ;; + ---setup=*) + VIASH_MODE='setup' + VIASH_SETUP_STRATEGY="$(ViashRemoveFlags "$1")" + shift 1 + ;; + ---dockerfile) + VIASH_MODE='dockerfile' + shift 1 + ;; + ---docker_run_args) + VIASH_DOCKER_RUN_ARGS+=("$2") + shift 2 + ;; + ---docker_run_args=*) + VIASH_DOCKER_RUN_ARGS+=("$(ViashRemoveFlags "$1")") + shift 1 + ;; + ---docker_image_id) + VIASH_MODE='docker_image_id' + shift 1 + ;; + ---debug) + VIASH_MODE='debug' + shift 1 + ;; + ---cpus) + [ -n "$VIASH_META_CPUS" ] && ViashError Bad arguments for option \'---cpus\': \'$VIASH_META_CPUS\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_META_CPUS="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to ---cpus. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + ---cpus=*) + [ -n "$VIASH_META_CPUS" ] && ViashError Bad arguments for option \'---cpus=*\': \'$VIASH_META_CPUS\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_META_CPUS=$(ViashRemoveFlags "$1") + shift 1 + ;; + ---memory) + [ -n "$VIASH_META_MEMORY" ] && ViashError Bad arguments for option \'---memory\': \'$VIASH_META_MEMORY\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_META_MEMORY="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to ---memory. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + ---memory=*) + [ -n "$VIASH_META_MEMORY" ] && ViashError Bad arguments for option \'---memory=*\': \'$VIASH_META_MEMORY\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_META_MEMORY=$(ViashRemoveFlags "$1") + shift 1 + ;; + *) # positional arg or unknown option + # since the positional args will be eval'd, can we always quote, instead of using ViashQuote + VIASH_POSITIONAL_ARGS="$VIASH_POSITIONAL_ARGS '$1'" + [[ $1 == -* ]] && ViashWarning $1 looks like a parameter but is not a defined parameter and will instead be treated as a positional argument. Use "--help" to get more information on the parameters. + shift # past argument + ;; + esac +done + +# parse positional parameters +eval set -- $VIASH_POSITIONAL_ARGS + + +if [ "$VIASH_ENGINE_ID" == "native" ] ; then + VIASH_ENGINE_TYPE='native' +elif [ "$VIASH_ENGINE_ID" == "docker" ] ; then + VIASH_ENGINE_TYPE='docker' +else + ViashError "Engine '$VIASH_ENGINE_ID' is not recognized. Options are: docker, native." + exit 1 +fi + +if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then + # check if docker is installed properly + ViashDockerInstallationCheck + + # determine docker image id + if [[ "$VIASH_ENGINE_ID" == 'docker' ]]; then + VIASH_DOCKER_IMAGE_ID='images.viash-hub.com/vsh/htrnaseq/integration_test_components/htrnaseq/check_eset:main' + fi + + # print dockerfile + if [ "$VIASH_MODE" == "dockerfile" ]; then + ViashDockerfile "$VIASH_ENGINE_ID" + exit 0 + + elif [ "$VIASH_MODE" == "docker_image_id" ]; then + echo "$VIASH_DOCKER_IMAGE_ID" + exit 0 + + # enter docker container + elif [[ "$VIASH_MODE" == "debug" ]]; then + VIASH_CMD="docker run --entrypoint=bash ${VIASH_DOCKER_RUN_ARGS[@]} -v '$(pwd)':/pwd --workdir /pwd -t $VIASH_DOCKER_IMAGE_ID" + ViashNotice "+ $VIASH_CMD" + eval $VIASH_CMD + exit + + # build docker image + elif [ "$VIASH_MODE" == "setup" ]; then + ViashDockerSetup "$VIASH_DOCKER_IMAGE_ID" "$VIASH_SETUP_STRATEGY" + ViashDockerCheckCommands "$VIASH_DOCKER_IMAGE_ID" 'ps' 'bash' + exit 0 + fi + + # check if docker image exists + ViashDockerSetup "$VIASH_DOCKER_IMAGE_ID" ifneedbepullelsecachedbuild + ViashDockerCheckCommands "$VIASH_DOCKER_IMAGE_ID" 'ps' 'bash' +fi + +# setting computational defaults + +# helper function for parsing memory strings +function ViashMemoryAsBytes { + local memory=`echo "$1" | tr '[:upper:]' '[:lower:]' | tr -d '[:space:]'` + local memory_regex='^([0-9]+)([kmgtp]i?b?|b)$' + if [[ $memory =~ $memory_regex ]]; then + local number=${memory/[^0-9]*/} + local symbol=${memory/*[0-9]/} + + case $symbol in + b) memory_b=$number ;; + kb|k) memory_b=$(( $number * 1000 )) ;; + mb|m) memory_b=$(( $number * 1000 * 1000 )) ;; + gb|g) memory_b=$(( $number * 1000 * 1000 * 1000 )) ;; + tb|t) memory_b=$(( $number * 1000 * 1000 * 1000 * 1000 )) ;; + pb|p) memory_b=$(( $number * 1000 * 1000 * 1000 * 1000 * 1000 )) ;; + kib|ki) memory_b=$(( $number * 1024 )) ;; + mib|mi) memory_b=$(( $number * 1024 * 1024 )) ;; + gib|gi) memory_b=$(( $number * 1024 * 1024 * 1024 )) ;; + tib|ti) memory_b=$(( $number * 1024 * 1024 * 1024 * 1024 )) ;; + pib|pi) memory_b=$(( $number * 1024 * 1024 * 1024 * 1024 * 1024 )) ;; + esac + echo "$memory_b" + fi +} +# compute memory in different units +if [ ! -z ${VIASH_META_MEMORY+x} ]; then + VIASH_META_MEMORY_B=`ViashMemoryAsBytes $VIASH_META_MEMORY` + # do not define other variables if memory_b is an empty string + if [ ! -z "$VIASH_META_MEMORY_B" ]; then + VIASH_META_MEMORY_KB=$(( ($VIASH_META_MEMORY_B+999) / 1000 )) + VIASH_META_MEMORY_MB=$(( ($VIASH_META_MEMORY_KB+999) / 1000 )) + VIASH_META_MEMORY_GB=$(( ($VIASH_META_MEMORY_MB+999) / 1000 )) + VIASH_META_MEMORY_TB=$(( ($VIASH_META_MEMORY_GB+999) / 1000 )) + VIASH_META_MEMORY_PB=$(( ($VIASH_META_MEMORY_TB+999) / 1000 )) + VIASH_META_MEMORY_KIB=$(( ($VIASH_META_MEMORY_B+1023) / 1024 )) + VIASH_META_MEMORY_MIB=$(( ($VIASH_META_MEMORY_KIB+1023) / 1024 )) + VIASH_META_MEMORY_GIB=$(( ($VIASH_META_MEMORY_MIB+1023) / 1024 )) + VIASH_META_MEMORY_TIB=$(( ($VIASH_META_MEMORY_GIB+1023) / 1024 )) + VIASH_META_MEMORY_PIB=$(( ($VIASH_META_MEMORY_TIB+1023) / 1024 )) + else + # unset memory if string is empty + unset $VIASH_META_MEMORY_B + fi +fi +# unset nproc if string is empty +if [ -z "$VIASH_META_CPUS" ]; then + unset $VIASH_META_CPUS +fi + + +# check whether required parameters exist +if [ -z ${VIASH_PAR_ESET+x} ]; then + ViashError '--eset' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_PAR_STAR_OUTPUT+x} ]; then + ViashError '--star_output' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_META_NAME+x} ]; then + ViashError 'name' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_META_FUNCTIONALITY_NAME+x} ]; then + ViashError 'functionality_name' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_META_RESOURCES_DIR+x} ]; then + ViashError 'resources_dir' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_META_EXECUTABLE+x} ]; then + ViashError 'executable' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_META_CONFIG+x} ]; then + ViashError 'config' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_META_TEMP_DIR+x} ]; then + ViashError 'temp_dir' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi + +# check whether required files exist +if [ ! -z "$VIASH_PAR_ESET" ] && [ ! -e "$VIASH_PAR_ESET" ]; then + ViashError "Input file '$VIASH_PAR_ESET' does not exist." + exit 1 +fi +if [ ! -z "$VIASH_PAR_STAR_OUTPUT" ]; then + IFS=';' + set -f + for file in $VIASH_PAR_STAR_OUTPUT; do + unset IFS + if [ ! -e "$file" ]; then + ViashError "Input file '$file' does not exist." + exit 1 + fi + done + set +f +fi + +# check whether parameters values are of the right type +if [[ -n "$VIASH_META_CPUS" ]]; then + if ! [[ "$VIASH_META_CPUS" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'cpus' has to be an integer. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_B" ]]; then + if ! [[ "$VIASH_META_MEMORY_B" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_b' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_KB" ]]; then + if ! [[ "$VIASH_META_MEMORY_KB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_kb' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_MB" ]]; then + if ! [[ "$VIASH_META_MEMORY_MB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_mb' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_GB" ]]; then + if ! [[ "$VIASH_META_MEMORY_GB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_gb' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_TB" ]]; then + if ! [[ "$VIASH_META_MEMORY_TB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_tb' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_PB" ]]; then + if ! [[ "$VIASH_META_MEMORY_PB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_pb' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_KIB" ]]; then + if ! [[ "$VIASH_META_MEMORY_KIB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_kib' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_MIB" ]]; then + if ! [[ "$VIASH_META_MEMORY_MIB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_mib' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_GIB" ]]; then + if ! [[ "$VIASH_META_MEMORY_GIB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_gib' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_TIB" ]]; then + if ! [[ "$VIASH_META_MEMORY_TIB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_tib' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_PIB" ]]; then + if ! [[ "$VIASH_META_MEMORY_PIB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_pib' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi + +if [ "$VIASH_ENGINE_ID" == "native" ] ; then + if [ "$VIASH_MODE" == "run" ]; then + VIASH_CMD="bash" + else + ViashError "Engine '$VIASH_ENGINE_ID' does not support mode '$VIASH_MODE'." + exit 1 + fi +fi + +if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then + # detect volumes from file arguments + VIASH_CHOWN_VARS=() +if [ ! -z "$VIASH_PAR_ESET" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_PAR_ESET")" ) + VIASH_PAR_ESET=$(ViashDockerAutodetectMount "$VIASH_PAR_ESET") +fi +if [ ! -z "$VIASH_PAR_STAR_OUTPUT" ]; then + VIASH_TEST_STAR_OUTPUT=() + IFS=';' + for var in $VIASH_PAR_STAR_OUTPUT; do + unset IFS + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$var")" ) + var=$(ViashDockerAutodetectMount "$var") + VIASH_TEST_STAR_OUTPUT+=( "$var" ) + done + VIASH_PAR_STAR_OUTPUT=$(IFS=';' ; echo "${VIASH_TEST_STAR_OUTPUT[*]}") +fi +if [ ! -z "$VIASH_META_RESOURCES_DIR" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_META_RESOURCES_DIR")" ) + VIASH_META_RESOURCES_DIR=$(ViashDockerAutodetectMount "$VIASH_META_RESOURCES_DIR") +fi +if [ ! -z "$VIASH_META_EXECUTABLE" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_META_EXECUTABLE")" ) + VIASH_META_EXECUTABLE=$(ViashDockerAutodetectMount "$VIASH_META_EXECUTABLE") +fi +if [ ! -z "$VIASH_META_CONFIG" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_META_CONFIG")" ) + VIASH_META_CONFIG=$(ViashDockerAutodetectMount "$VIASH_META_CONFIG") +fi +if [ ! -z "$VIASH_META_TEMP_DIR" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_META_TEMP_DIR")" ) + VIASH_META_TEMP_DIR=$(ViashDockerAutodetectMount "$VIASH_META_TEMP_DIR") +fi + + # get unique mounts + VIASH_UNIQUE_MOUNTS=($(for val in "${VIASH_DIRECTORY_MOUNTS[@]}"; do echo "$val"; done | sort -u)) +fi + +if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then + # change file ownership + function ViashPerformChown { + if (( ${#VIASH_CHOWN_VARS[@]} )); then + set +e + VIASH_CMD="docker run --entrypoint=bash --rm ${VIASH_UNIQUE_MOUNTS[@]} $VIASH_DOCKER_IMAGE_ID -c 'chown $(id -u):$(id -g) --silent --recursive ${VIASH_CHOWN_VARS[@]}'" + ViashDebug "+ $VIASH_CMD" + eval $VIASH_CMD + set -e + fi + } + trap ViashPerformChown EXIT +fi + +if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then + # helper function for filling in extra docker args + if [ ! -z "$VIASH_META_MEMORY_B" ]; then + VIASH_DOCKER_RUN_ARGS+=("--memory=${VIASH_META_MEMORY_B}") + fi + if [ ! -z "$VIASH_META_CPUS" ]; then + VIASH_DOCKER_RUN_ARGS+=("--cpus=${VIASH_META_CPUS}") + fi +fi + +if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then + VIASH_CMD="docker run --entrypoint=bash ${VIASH_DOCKER_RUN_ARGS[@]} ${VIASH_UNIQUE_MOUNTS[@]} $VIASH_DOCKER_IMAGE_ID" +fi + + +# set dependency paths + + +ViashDebug "Running command: $(echo $VIASH_CMD)" +cat << VIASHEOF | eval $VIASH_CMD +set -e +tempscript=\$(mktemp "$VIASH_META_TEMP_DIR/viash-run-check_eset-XXXXXX").R +function clean_up { + rm "\$tempscript" +} +function interrupt { + echo -e "\nCTRL-C Pressed..." + exit 1 +} +trap clean_up EXIT +trap interrupt INT SIGINT +cat > "\$tempscript" << 'VIASHMAIN' +## VIASH START +# The following code has been auto-generated by Viash. +# treat warnings as errors +.viash_orig_warn <- options(warn = 2) + +par <- list( + "eset" = $( if [ ! -z ${VIASH_PAR_ESET+x} ]; then echo -n "'"; echo -n "$VIASH_PAR_ESET" | sed "s#['\\]#\\\\&#g"; echo "'"; else echo NULL; fi ), + "star_output" = $( if [ ! -z ${VIASH_PAR_STAR_OUTPUT+x} ]; then echo -n "strsplit('"; echo -n "$VIASH_PAR_STAR_OUTPUT" | sed "s#['\\]#\\\\&#g"; echo "', split = ';')[[1]]"; else echo NULL; fi ) +) +meta <- list( + "name" = $( if [ ! -z ${VIASH_META_NAME+x} ]; then echo -n "'"; echo -n "$VIASH_META_NAME" | sed "s#['\\]#\\\\&#g"; echo "'"; else echo NULL; fi ), + "functionality_name" = $( if [ ! -z ${VIASH_META_FUNCTIONALITY_NAME+x} ]; then echo -n "'"; echo -n "$VIASH_META_FUNCTIONALITY_NAME" | sed "s#['\\]#\\\\&#g"; echo "'"; else echo NULL; fi ), + "resources_dir" = $( if [ ! -z ${VIASH_META_RESOURCES_DIR+x} ]; then echo -n "'"; echo -n "$VIASH_META_RESOURCES_DIR" | sed "s#['\\]#\\\\&#g"; echo "'"; else echo NULL; fi ), + "executable" = $( if [ ! -z ${VIASH_META_EXECUTABLE+x} ]; then echo -n "'"; echo -n "$VIASH_META_EXECUTABLE" | sed "s#['\\]#\\\\&#g"; echo "'"; else echo NULL; fi ), + "config" = $( if [ ! -z ${VIASH_META_CONFIG+x} ]; then echo -n "'"; echo -n "$VIASH_META_CONFIG" | sed "s#['\\]#\\\\&#g"; echo "'"; else echo NULL; fi ), + "temp_dir" = $( if [ ! -z ${VIASH_META_TEMP_DIR+x} ]; then echo -n "'"; echo -n "$VIASH_META_TEMP_DIR" | sed "s#['\\]#\\\\&#g"; echo "'"; else echo NULL; fi ), + "cpus" = $( if [ ! -z ${VIASH_META_CPUS+x} ]; then echo -n "as.integer('"; echo -n "$VIASH_META_CPUS" | sed "s#['\\]#\\\\&#g"; echo "')"; else echo NULL; fi ), + "memory_b" = $( if [ ! -z ${VIASH_META_MEMORY_B+x} ]; then echo -n "bit64::as.integer64('"; echo -n "$VIASH_META_MEMORY_B" | sed "s#['\\]#\\\\&#g"; echo "')"; else echo NULL; fi ), + "memory_kb" = $( if [ ! -z ${VIASH_META_MEMORY_KB+x} ]; then echo -n "bit64::as.integer64('"; echo -n "$VIASH_META_MEMORY_KB" | sed "s#['\\]#\\\\&#g"; echo "')"; else echo NULL; fi ), + "memory_mb" = $( if [ ! -z ${VIASH_META_MEMORY_MB+x} ]; then echo -n "bit64::as.integer64('"; echo -n "$VIASH_META_MEMORY_MB" | sed "s#['\\]#\\\\&#g"; echo "')"; else echo NULL; fi ), + "memory_gb" = $( if [ ! -z ${VIASH_META_MEMORY_GB+x} ]; then echo -n "bit64::as.integer64('"; echo -n "$VIASH_META_MEMORY_GB" | sed "s#['\\]#\\\\&#g"; echo "')"; else echo NULL; fi ), + "memory_tb" = $( if [ ! -z ${VIASH_META_MEMORY_TB+x} ]; then echo -n "bit64::as.integer64('"; echo -n "$VIASH_META_MEMORY_TB" | sed "s#['\\]#\\\\&#g"; echo "')"; else echo NULL; fi ), + "memory_pb" = $( if [ ! -z ${VIASH_META_MEMORY_PB+x} ]; then echo -n "bit64::as.integer64('"; echo -n "$VIASH_META_MEMORY_PB" | sed "s#['\\]#\\\\&#g"; echo "')"; else echo NULL; fi ), + "memory_kib" = $( if [ ! -z ${VIASH_META_MEMORY_KIB+x} ]; then echo -n "bit64::as.integer64('"; echo -n "$VIASH_META_MEMORY_KIB" | sed "s#['\\]#\\\\&#g"; echo "')"; else echo NULL; fi ), + "memory_mib" = $( if [ ! -z ${VIASH_META_MEMORY_MIB+x} ]; then echo -n "bit64::as.integer64('"; echo -n "$VIASH_META_MEMORY_MIB" | sed "s#['\\]#\\\\&#g"; echo "')"; else echo NULL; fi ), + "memory_gib" = $( if [ ! -z ${VIASH_META_MEMORY_GIB+x} ]; then echo -n "bit64::as.integer64('"; echo -n "$VIASH_META_MEMORY_GIB" | sed "s#['\\]#\\\\&#g"; echo "')"; else echo NULL; fi ), + "memory_tib" = $( if [ ! -z ${VIASH_META_MEMORY_TIB+x} ]; then echo -n "bit64::as.integer64('"; echo -n "$VIASH_META_MEMORY_TIB" | sed "s#['\\]#\\\\&#g"; echo "')"; else echo NULL; fi ), + "memory_pib" = $( if [ ! -z ${VIASH_META_MEMORY_PIB+x} ]; then echo -n "bit64::as.integer64('"; echo -n "$VIASH_META_MEMORY_PIB" | sed "s#['\\]#\\\\&#g"; echo "')"; else echo NULL; fi ) +) +dep <- list( + +) + + +# restore original warn setting +options(.viash_orig_warn) +rm(.viash_orig_warn) + +## VIASH END +library(Biobase) +library(testthat) +library(Matrix) + +sample_1_result <- readRDS(par\$eset) +expected_sample_names <- c( + "sample_one_AACAAGGTAC", "sample_one_AACAATCAGG", "sample_one_AACACCTAGT", + "sample_one_AACAGGCAAT", "sample_one_AACATGGAGA", "sample_one_AACATTACCG", + "sample_one_AACCAGCCAG", "sample_one_AACCAGTTGA", "sample_one_AACCGCGACT", + "sample_one_AACCGGAAGG", "sample_one_AACCGGCGTA", "sample_one_AACCTAGTCC", + "sample_one_AACCTCATAG", "sample_one_AACGTAAGCT", "sample_one_AACTCTACAC", + "sample_one_AACTGTGTCA", "sample_one_AAGACGGATT", "sample_one_AAGATCGGCG", + "sample_one_AAGATGTCCA", "sample_one_AAGCATATGG", "sample_one_AAGCGATGTT", + "sample_one_AAGCGTTCAG", "sample_one_AAGCTCACCT", "sample_one_AAGGCATGCG", + "sample_one_AAGGTCTGGA", "sample_one_AAGTTAGCGC", "sample_one_AAGTTCCTTG", + "sample_one_AATACCGGTA", "sample_one_AATAGCCACA", "sample_one_AATCACGCGA", + "sample_one_AATCCATCTG", "sample_one_AATCCGCTCC", "sample_one_AATCCTACCA", + "sample_one_AATCGTCCGC", "sample_one_AATGAACACG", "sample_one_AATGACCTTC", + "sample_one_AATGAGAGCA", "sample_one_AATGTCAGTG", "sample_one_AATTAGGCCG", + "sample_one_AATTGCGATG", "sample_one_ACAACAGTCG", "sample_one_ACAACCATAC", + "sample_one_ACAACGGAGC", "sample_one_ACAAGCGCGA", "sample_one_ACACAATCTC", + "sample_one_ACACAGTGAA", "sample_one_ACACCGAATT", "sample_one_ACACGCAGTA", + "sample_one_ACACGGTCCT", "sample_one_ACACTTGCTG", "sample_one_ACAGTGCCAA", + "sample_one_ACATGTGTGC", "sample_one_ACCAGGACCA", "sample_one_ACCATAACAC", + "sample_one_ACCGAACCGT", "sample_one_ACCGAGAGTC", "sample_one_ACCGGTACAG", + "sample_one_ACCGTACTTC", "sample_one_ACCTCCGACA", "sample_one_ACCTCTCTCC", + "sample_one_ACCTGTCCGA", "sample_one_ACCTTATGTG", "sample_one_ACGAATGACA", + "sample_one_ACGCCTCAAC", "sample_one_ACGCCTTCGT", "sample_one_ACGCTGGATA", + "sample_one_ACGGTCCGTT", "sample_one_ACGTAGGCAC", "sample_one_ACGTGCTGAT", + "sample_one_ACTCCAAGCC", "sample_one_ACTGGCGCAT", "sample_one_ACTGGCTTCC", + "sample_one_ACTTAACTGC", "sample_one_ACTTCATCAC", "sample_one_ACTTCGTTGA", + "sample_one_ACTTCTCCTG", "sample_one_ACTTGAGGAA", "sample_one_ACTTGTAAGG", + "sample_one_AGAACCACGG", "sample_one_AGAAGCAATC", "sample_one_AGACCGTTAT", + "sample_one_AGACTAGCAT", "sample_one_AGAGATGCAG", "sample_one_AGAGCTTACA", + "sample_one_AGAGTGTAAC", "sample_one_AGAGTTCTGC", "sample_one_AGATAGTGCT", + "sample_one_AGCAATGCGC", "sample_one_AGCATGTCAT", "sample_one_AGCCACTAGC", + "sample_one_AGCCAGAATA", "sample_one_AGCCAGCTCT", "sample_one_AGCGATAACG", + "sample_one_AGCGTACAAT", "sample_one_AGCTATTCCA", "sample_one_AGCTCCTCAG", + "sample_one_AGGAGGCATA", "sample_one_AGGCGTCTGT", "sample_one_AGTAACTCAC", + "sample_one_AGTAAGCGTT", "sample_one_AGTCTGTACG", "sample_one_AGTGCAATGT", + "sample_one_ATAAGGTGCA", "sample_one_ATACACGACA", "sample_one_ATAGGCCATT", + "sample_one_ATATCCGCAT", "sample_one_ATCAGCACTT", "sample_one_ATCAGCGAGG", + "sample_one_ATCCAATACG", "sample_one_ATCCGCTGTG", "sample_one_ATCCGTCCAT", + "sample_one_ATCGACGGCT", "sample_one_ATCGCGATTA", "sample_one_ATCGGTAGGC", + "sample_one_ATCTAAGGAG", "sample_one_ATGACGGTAA", "sample_one_ATGACTCAGT", + "sample_one_ATGCACCGGA", "sample_one_ATGCGGACTG", "sample_one_ATGCTTCCTA", + "sample_one_ATGGACCAAC", "sample_one_ATGGTCTTAG", "sample_one_ATGGTGAGCG", + "sample_one_ATGTGGAAGC", "sample_one_ATTATCGGAC", "sample_one_ATTCGGAACA", + "sample_one_CAACAATCCA", "sample_one_CAAGAAGCAT", "sample_one_CAAGATGAGG", + "sample_one_CAAGCCAACG", "sample_one_CAAGTGGATC", "sample_one_CACAGTTCAT", + "sample_one_CACGAGTCTG", "sample_one_CACGCTCCAA", "sample_one_CACTGAGCAC", + "sample_one_CAGATCAATG", "sample_one_CAGTGCTCTT", "sample_one_CAGTTAAGCA", + "sample_one_CATAGCTATC", "sample_one_CATCACCACC", "sample_one_CATGTACGCC", + "sample_one_CATTACACTG", "sample_one_CATTCGACGA", "sample_one_CCAACTATGG", + "sample_one_CCAAGGAGTT", "sample_one_CCAATTGTTC", "sample_one_CCACAAGTGC", + "sample_one_CCAGCTTAGT", "sample_one_CCATAACTTG", "sample_one_CCATACTGAC", + "sample_one_CCATAGATCA", "sample_one_CCATGTGCTT", "sample_one_CCATTCAGCG", + "sample_one_CCGAACAAGC", "sample_one_CCGAACCTAA", "sample_one_CCGAAGACCT", + "sample_one_CCGAATAGTG", "sample_one_CCGACTTCTC", "sample_one_CCGATCCACT", + "sample_one_CCGATGATAC", "sample_one_CCGCGTTATG", "sample_one_CCGCTAGCTT", + "sample_one_CCGGAGTATC", "sample_one_CCGGCCAATT", "sample_one_CCGGTCTCTA", + "sample_one_CCGTACGATG", "sample_one_CCGTCAGAAC", "sample_one_CCTAGACACG", + "sample_one_CCTAGTTGAG", "sample_one_CCTATTCTGT", "sample_one_CCTCAACCGA", + "sample_one_CCTCCATAAG", "sample_one_CCTGATGCCA", "sample_one_CCTGCAATAC", + "sample_one_CCTTGTATTC", "sample_one_CGAGATCTCT", "sample_one_CGAGGAACAA", + "sample_one_CGATAACCGC", "sample_one_CGATCCTGTG", "sample_one_CGCCAACCAT", + "sample_one_CGCCAGTGTT", "sample_one_CGCCTTGTAC", "sample_one_CGCGGATTCA", + "sample_one_CGCTTAAGGC", "sample_one_CGCTTACTAA", "sample_one_CGCTTCTTGG", + "sample_one_CGGAAGCTGT", "sample_one_CGGAATACAC", "sample_one_CGGAGATTGG", + "sample_one_CGGAGCTCAA", "sample_one_CGGATCGGTA", "sample_one_CGGATTCTAG", + "sample_one_CGGCAACTTA", "sample_one_CGGCTCATCA", "sample_one_CGGTCGTATT", + "sample_one_CGGTGACATC", "sample_one_CGTAACGGAT", "sample_one_CGTAAGATTC", + "sample_one_CGTACTGTAA", "sample_one_CGTAGAAGAC", "sample_one_CGTCCTAGGA", + "sample_one_CGTCGGCAAT", "sample_one_CGTGAGTTAT", "sample_one_CGTGTCAAGC", + "sample_one_CTAACTTCAG", "sample_one_CTAATAGCGT", "sample_one_CTACACCAGG", + "sample_one_CTAGCACAAT", "sample_one_CTATGAACGG", "sample_one_CTCAAGGACC", + "sample_one_CTCACCTGTC", "sample_one_CTCCTATTGT", "sample_one_CTCGCAACGT", + "sample_one_CTCGTGCCTA", "sample_one_CTGGATTGAC", "sample_one_CTGTAGTCAG", + "sample_one_CTGTCGCTTC", "sample_one_CTGTCTGTGT", "sample_one_CTTCATATCG", + "sample_one_CTTGCTGACG", "sample_one_GAAGGATTAG", "sample_one_GAATCGAGCC", + "sample_one_GACCATCTAA", "sample_one_GACGACCACA", "sample_one_GAGACATCTT", + "sample_one_GAGCGAGTCA", "sample_one_GAGTAGACCA", "sample_one_GATACGCTTA", + "sample_one_GATAGACTGT", "sample_one_GATAGAGGCG", "sample_one_GATAGGTCAA", + "sample_one_GATATCAGGA", "sample_one_GATCTCATTC", "sample_one_GATCTGGTCG", + "sample_one_GATGAGTGAC", "sample_one_GATGGATACA", "sample_one_GATGTGACAG", + "sample_one_GATTAAGTCC", "sample_one_GATTGCACGC", "sample_one_GCAAGCGAAT", + "sample_one_GCAATGTAAG", "sample_one_GCACACTATA", "sample_one_GCACTCGGAA", + "sample_one_GCACTGCGTT", "sample_one_GCACTTAATC", "sample_one_GCAGGAGATG", + "sample_one_GCAGTACTGG", "sample_one_GCATATGAGT", "sample_one_GCATCCGATC", + "sample_one_GCCAAGTACA", "sample_one_GCCACGATTC", "sample_one_GCCATAGGTT", + "sample_one_GCCATATCGA", "sample_one_GCCGTCAATA", "sample_one_GCCTGGACAT", + "sample_one_GCGTAATTAC", "sample_one_GCTATTATCC", "sample_one_GCTCAGTAAT", + "sample_one_GCTGCTTATA", "sample_one_GGAATAAGCA", "sample_one_GGACGATGCT", + "sample_one_GGCATCGTGA", "sample_one_GGCATTATTG", "sample_one_GGCCGAGATT", + "sample_one_GGCGCTATAA", "sample_one_GGCGTTAAGT", "sample_one_GGCTATTGAT", + "sample_one_GGCTGCTACT", "sample_one_GGTAATGTGT", "sample_one_GGTGGTTGGA", + "sample_one_GGTGTTCACC", "sample_one_GGTTAGATCT", "sample_one_GGTTATGGCG", + "sample_one_GGTTCACTGG", "sample_one_GGTTGTGCAA", "sample_one_GTAACCAGTA", + "sample_one_GTAACCTTGG", "sample_one_GTAAGAACCT", "sample_one_GTAAGGCTCC", + "sample_one_GTAATCCACG", "sample_one_GTATTGTGGA", "sample_one_GTCCGCATCA", + "sample_one_GTCCTTCGGT", "sample_one_GTCGCTCTCT", "sample_one_GTCGGTGACA", + "sample_one_GTCTCGAGTG", "sample_one_GTCTCTTAAG", "sample_one_GTCTTCCGAG", + "sample_one_GTGACTATAC", "sample_one_GTGGTTAATG", "sample_one_GTGTGCCTGT", + "sample_one_GTGTGTGTCC", "sample_one_GTTCATTGCC", "sample_one_GTTCCGGTGA", + "sample_one_GTTCGTCGAA", "sample_one_GTTGAATTGG", "sample_one_GTTGATCCGC", + "sample_one_GTTGTATGCT", "sample_one_TAACCGTAGC", "sample_one_TAACGTCGAT", + "sample_one_TAAGGTACGG", "sample_one_TACGGACATA", "sample_one_TACTACCGCC", + "sample_one_TACTGTCAAG", "sample_one_TAGCGAACGC", "sample_one_TAGCGCCAAC", + "sample_one_TAGGACGCCT", "sample_one_TAGGTTGCAA", "sample_one_TAGTAGTCTC", + "sample_one_TAGTCCGCTG", "sample_one_TAGTGGAACT", "sample_one_TATCATGCAG", + "sample_one_TATCGTTACG", "sample_one_TCAAGTGCAG", "sample_one_TCACAGATAC", + "sample_one_TCACCGCCTA", "sample_one_TCACGCCACT", "sample_one_TCACGTTGGC", + "sample_one_TCATTGTCCA", "sample_one_TCCACACTAG", "sample_one_TCCACGGTCA", + "sample_one_TCCACTCGCT", "sample_one_TCCGACTAAC", "sample_one_TCCGTTATCT", + "sample_one_TCCTAAGAGA", "sample_one_TCCTCTAGTA", "sample_one_TCGAAGCATT", + "sample_one_TCGAGAGAGC", "sample_one_TCGCACTTGA", "sample_one_TCGCCTACTG", + "sample_one_TCGCGTAGCA", "sample_one_TCGGCGTTAA", "sample_one_TCTACATCCG", + "sample_one_TCTCCACATT", "sample_one_TCTCTCCTAT", "sample_one_TCTTGCTCGG", + "sample_one_TGAACTAACC", "sample_one_TGAAGAAGGT", "sample_one_TGAGCGTTCC", + "sample_one_TGAGTACGTA", "sample_one_TGGAATGGAG", "sample_one_TGTCATTCGC", + "sample_one_TGTGCTTCAG", "sample_one_TGTTCAGGAT", "sample_one_TTACACACGT", + "sample_one_TTACTGTGAC", "sample_one_TTATAGGAGG", "sample_one_TTATCGCGTT", + "sample_one_TTATGCCGCG", "sample_one_TTCACGGAAG", "sample_one_TTCAGGAGTA", + "sample_one_TTCCATCGAG", "sample_one_TTCGAGTGAT", "sample_one_TTCTGTACCT", + "sample_one_TTGGCAATTC", "sample_one_TTGGCTCCAC", "sample_one_TTGGTAACAG", + "sample_one_TTGGTCAGTA", "sample_one_TTGTCGGCCA", "sample_one_TTGTGTTCGA" +) +stopifnot(identical(sampleNames(sample_1_result), expected_sample_names)) + +expected_var_labels <- c( + "WellBC", + "NumberOfMTReads", + "pctMT", + "NumberOfERCCReads", + "pctERCC", + "NumberOfChromReads", + "pctChrom", + "NumberOfInputReads", + "NumberOfMappedReads", + "PctMappedReads", + "NumberOfReadsMappedToMultipleLoci", + "PectOfReadsMappedToMultipleLoci", + "NumberOfReadsMappedToTooManyLoci", + "PectOfReadsMappedToTooManyLoci", + "NumberOfReadsUnmappedTooManyMismatches", + "PectOfReadsUnmappedTooManyMismatches", + "NumberOfReadsUnmappedTooShort", + "PectOfReadsUnmappedTooShort", + "NumberOfReadsUnmappedOther", + "PectOfReadsUnmappedOther", + "ReadsWithValidBarcodes", + "SequencingSaturation", + "Q30BasesInCB.UMI", + "ReadsMappedToTranscriptome.Unique.MultipeGenes", + "EstimatedNumberOfCells", + "FractionOfReadsInCells", + "MeanReadsPerCell", + "NumberOfUMIs", + "NumberOfGenes", + "NumberOfCountedReads", + "PoolName" +) +stopifnot(identical(varLabels(sample_1_result), expected_var_labels)) + +read_mm <- function(mapping_dir) { + market_matrix_file <- file.path(mapping_dir, "Solo.out", + "Gene", "raw", "matrix.mtx") + result <- readMM(market_matrix_file) + feature_file <- file.path(mapping_dir, "Solo.out", + "Gene", "raw", "features.tsv") + features <- read.table(feature_file, sep = "\\t", header = FALSE, + col.names = c("ID", "Name", "Type"))\$ID + rownames(result) <- gsub("\\\\.\\\\d+\$", "", features) + barcodes_file <- file.path(mapping_dir, + "Solo.out", "Gene", "raw", "barcodes.tsv") + if (!file.exists(barcodes_file)) { + stop(paste0("Expected the 'Solo.out/Gene/raw' directory at ", + mapping_dir, " to contain a 'barcodes.tsv' file.")) + } + barcodes <- readLines(barcodes_file) + if (length(barcodes) != 1) { + stop(paste0("A single STAR Solo folder should only have ", + "mapped one (1) barcode, but found '", + length(barcodes), "'for mapping directory ", mapping_dir)) + } + colnames(result) <- paste0("sample_one_", barcodes) + return(result) +} +expected_matrices <- lapply(par\$star_output, read_mm) +expected_matrix <- as.matrix(do.call(cbind, expected_matrices)) +result_counts <- exprs(sample_1_result) +stopifnot(length(setdiff(colnames(expected_matrix), + colnames(exprs(sample_1_result)))) == 0) +stopifnot(length(setdiff(rownames(expected_matrix), + rownames(exprs(sample_1_result)))) == 0) +expected_matrix_sorted <- expected_matrix[, colnames(exprs(sample_1_result))] +stopifnot(identical(exprs(sample_1_result), expected_matrix_sorted)) +VIASHMAIN +Rscript "\$tempscript" & +wait "\$!" + +VIASHEOF + + +if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then + # strip viash automount from file paths + + if [ ! -z "$VIASH_PAR_ESET" ]; then + VIASH_PAR_ESET=$(ViashDockerStripAutomount "$VIASH_PAR_ESET") + fi + if [ ! -z "$VIASH_PAR_STAR_OUTPUT" ]; then + unset VIASH_TEST_STAR_OUTPUT + IFS=';' + for var in $VIASH_PAR_STAR_OUTPUT; do + unset IFS + if [ -z "$VIASH_TEST_STAR_OUTPUT" ]; then + VIASH_TEST_STAR_OUTPUT="$(ViashDockerStripAutomount "$var")" + else + VIASH_TEST_STAR_OUTPUT="$VIASH_TEST_STAR_OUTPUT;""$(ViashDockerStripAutomount "$var")" + fi + done + VIASH_PAR_STAR_OUTPUT="$VIASH_TEST_STAR_OUTPUT" + fi + if [ ! -z "$VIASH_META_RESOURCES_DIR" ]; then + VIASH_META_RESOURCES_DIR=$(ViashDockerStripAutomount "$VIASH_META_RESOURCES_DIR") + fi + if [ ! -z "$VIASH_META_EXECUTABLE" ]; then + VIASH_META_EXECUTABLE=$(ViashDockerStripAutomount "$VIASH_META_EXECUTABLE") + fi + if [ ! -z "$VIASH_META_CONFIG" ]; then + VIASH_META_CONFIG=$(ViashDockerStripAutomount "$VIASH_META_CONFIG") + fi + if [ ! -z "$VIASH_META_TEMP_DIR" ]; then + VIASH_META_TEMP_DIR=$(ViashDockerStripAutomount "$VIASH_META_TEMP_DIR") + fi +fi + + +exit 0 diff --git a/target/executable/integration_test_components/htrnaseq/check_eset/nextflow_labels.config b/target/executable/integration_test_components/htrnaseq/check_eset/nextflow_labels.config new file mode 100644 index 00000000..66f5e21c --- /dev/null +++ b/target/executable/integration_test_components/htrnaseq/check_eset/nextflow_labels.config @@ -0,0 +1,105 @@ +executor { + $k8s { + submitRateLimit = '10sec' + pollInterval = '1 sec' + } +} + +process { + container = 'nextflow/bash:latest' + + // default resources + memory = { 8.Gb * task.attempt } + cpus = 8 + maxForks = 36 + + // Retry for exit codes that have something to do with memory issues + errorStrategy = { task.exitStatus in 137..140 ? 'retry' : 'terminate' } + maxRetries = 3 + maxMemory = 192.GB + + // Resource labels + withLabel: verylowcpu { cpus = 2 } + withLabel: lowcpu { cpus = 8 } + withLabel: midcpu { cpus = 16 } + withLabel: highcpu { cpus = 32 } + + withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } } + withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } } + withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } } + withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } } + +} + +profiles { + // detect tempdir + tempDir = java.nio.file.Paths.get( + System.getenv('NXF_TEMP') ?: + System.getenv('VIASH_TEMP') ?: + System.getenv('TEMPDIR') ?: + System.getenv('TMPDIR') ?: + '/tmp' + ).toAbsolutePath() + + mount_temp { + docker.temp = tempDir + podman.temp = tempDir + charliecloud.temp = tempDir + } + + no_publish { + process { + withName: '.*' { + publishDir = [ + enabled: false + ] + } + } + } + + docker { + docker.fixOwnership = true + docker.enabled = true + // docker.userEmulation = true + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + + local { + // This config is for local processing. + process { + maxMemory = 25.GB + withLabel: verylowcpu { cpus = 2 } + withLabel: lowcpu { cpus = 4 } + withLabel: midcpu { cpus = 6 } + withLabel: highcpu { cpus = 12 } + + withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } } + withLabel: midmem { memory = { get_memory( 12.GB * task.attempt ) } } + withLabel: highmem { memory = { get_memory( 20.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) + } + } diff --git a/target/executable/parallel_map/.config.vsh.yaml b/target/executable/parallel_map/.config.vsh.yaml index 19624b4f..8652642a 100644 --- a/target/executable/parallel_map/.config.vsh.yaml +++ b/target/executable/parallel_map/.config.vsh.yaml @@ -110,6 +110,8 @@ resources: - type: "bash_script" path: "script.sh" is_executable: true +- type: "file" + path: "STAR" - type: "file" path: "nextflow_labels.config" dest: "nextflow_labels.config" @@ -205,26 +207,25 @@ engines: - type: "apt" packages: - "procps" - - "gzip" - - "bzip2" - - "parallel" - "wget" + - "automake" + - "make" + - "gcc" + - "g++" - "zlib1g-dev" - - "unzip" - - "xxd" + - "parallel" - "file" interactive: false - type: "docker" - run: - - "wget -O $STAR_TARGET $STAR_SOURCE && \\\n unzip $STAR_TARGET -d /tmp && \\\ - \n mv /tmp/STAR_$STAR_VERSION/Linux_x86_64_static/STAR /usr/local/bin/$STAR_BINARY\ - \ && \\\n chmod +x /usr/local/bin/$STAR_BINARY && \\\n rm $STAR_TARGET &&\ - \ rm -rf /tmp/STAR_$STAR_VERSION\n" + copy: + - "STAR /usr/local/bin/$STAR_BINARY" + build_args: + - "STAR_V=2.7.6a" env: - - "STAR_VERSION \"2.7.11b\"" - - "STAR_SOURCE \"https://github.com/alexdobin/STAR/releases/download/$STAR_VERSION/STAR_$STAR_VERSION.zip\"" - - "STAR_TARGET \"/tmp/star.zip\"" - - "STAR_BINARY \"STAR\"" + - "STAR_SOURCE=\"https://github.com/alexdobin/STAR/archive/refs/tags/$STAR_V.tar.gz\"" + - "STAR_TARGET=\"/app/star-$STAR_V.tar.gz\"" + - "STAR_INSTALL_DIR=\"/app/STAR-$STAR_V\"" + - "STAR_BINARY=STAR" entrypoint: [] cmd: null - type: "native" @@ -235,15 +236,18 @@ build_info: engine: "docker|native" output: "target/executable/parallel_map" executable: "target/executable/parallel_map/parallel_map" - viash_version: "0.9.0-RC7" - git_commit: "cf9797232db1306bfd5696287928cababe317d99" - git_remote: "https://x-access-token:ghs_KjB7pWu8DQM3iFulLu7RI06qnt5K8S1A0eaE@github.com/viash-hub/htrnaseq" + viash_version: "0.9.0" + git_commit: "65dd41d8b1b4a307735c72320c96c0880c75f17f" + git_remote: "https://x-access-token:ghs_McZDF0yobnnHmOEb2Q4JaaB3pzr9mz1VbIOs@github.com/viash-hub/htrnaseq" package_config: name: "htrnaseq" version: "main" description: "High-throughput pipeline [WIP]\n" - info: null - viash_version: "0.9.0-RC7" + info: + test_resources: + - path: "gs://viash-hub-test-data/htrnaseq/v1/" + dest: "resources_test" + viash_version: "0.9.0" source: "src" target: "target" config_mods: diff --git a/target/executable/parallel_map/STAR b/target/executable/parallel_map/STAR new file mode 100755 index 0000000000000000000000000000000000000000..331a838d12c5f93aa5078a876f7ac8ff356ab016 GIT binary patch literal 2791592 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
nmG~aI#%FL(veque%_ciNjzD@9azDrIG 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�eaj^n~P>^gPp<>+dQDN>ry)oK=N{ocPX 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

qAb>6Y$QD0VG)aNi#mPbhZQC>*2Z-Q3Lj;D z>q{F~8Fr5zEN7t*t1M3T-uf+!Cr>jW99>>xXazrOk>akv>H#*PQ{oqXl^eSGaP&LE z>EDd|glJsY4AR%ODUfRP3)ssdj?kJAam3yP`mH@It$%AfyX&82-$NqRU2#Wqh2uQk zj1lfQ+X<_t8CWsnRcRYO zp22$K3ti+cZy<4JJaL{-bL<%83@dq#R2u!1gnH@@7Y;*RsU)V^0s1& z^!sS<{U`d}^4?APa_@cHSFCMVsrT;ccd%yd-uIS%$NJa!|H=DxuxETCHsJYu2TiqO znF_%yJyEq__mQ$qwOB^%hJv6_ZFRc|g~Mg<)hRVpz^W>k6ySezKq_1l)&x>7HmTzS zsRPOLPSj-sSGf{dJ6-o7ns!iKq{%4WpO=q zlDF5DF$H2bnG%YP`P$q3Fc!U`NDu@9XQ~)8+$|0knc0%e-V51@he5FF2&gwA8^Aqe zR1zB52W!l*TT%DI`2^ACFTh*T=T?b)~M_H!IS+( zOe3H{^4za>ZoNF!`rom$1sbhpv>r@2^&-}VhD@=32bscLPn+$>|7Q9(Ak#m5`E3B4 zCp9>?gL*yxM>BR$f-@wMRf~N0UZnWC61wGCf05HzkBD^*`P~>@kk-xCWe58;|J&gu9=i}dgOEE(u^;T8C z@!KwSDKJNxybUGXivd@P7jix9?GM3fg~hsOa)xycH3Jese~XuD=VH8kRC_5mHBkNMwIc~n#JL>FpV#$D zK-xhctF||X9b7YrzMY2IQ0>&^av$#jxQU>jb!$-`<`SHjmxRx2dq(Wf6D_P0<<_g~ zkj%P!hV9Q1cZ8iQklLj#HmNXYY>-V4a)NwBb4FDiDr|E5m=m(ftwhV3eV8JL`-=cL z<@Pm2U`5ciWciDrUgf?eGl8Z+Q)KNI8aQbPwjAZ&Z;Alrx|W5eNH4-t=w8nJpqbM@ zoWNIdJY~ZX%RxC{c@nr{#JK`3kI2PNpk;506e*bTwajNAU>xVIa!RbCjb7>vXH&`* zA%fT@4xNp-IBs-Z$ZG$zhqd+X=(;Sc>{BZ=;&m&!eYa54W>I&yWe&6JAfxNxGBGZD z+E^>Ptp`%Fk+K6RIn#zBB?~E-)OFjD(tBDlQnHcK8!6u+C3o6^Na=|baOS#ikkW4& z^S;JY9#Z>RWiQrV7`8tR7p<(eUkSInJx+;d^W2Y^F^;XmRzf&_Z9Jpoxrw3Q^e&hf zn%oZUxgF|g2d-S2Ibvg^?71mlM2ePImn|L{?{@>NX3-tE_V<|DzIf8;Uq28+t_I*_>#Cild1N?1?%htAUAr#KdAW zycn2hCnhR3;x;H?qHH;~IO}VFX2nONxnf*ARl66SbE@pg*?d8wSc82=)+H&Tvz!x> zTM{SZf}L>DW?phk^1|WorjI}u;j+&`+hP0taHw)wxM*v*y{kt!6M+S$GqYnESQr%N z4HC&ieFmMDH{^!xf62xySXa1cQ@H(`9uaJ4jEeVbb@m9`E?SDN1u-fhdQB82`Z5I! zV-K9f$hbyfVA$>ziH`%@9hyDuRJ`}FM`j~o2NH6o{Q?PD_Q)J0Y)3-xX#QaXET{*))DB`$ zl2hWnZxqx|D98csmk92|#C?T_{LjNhIFR2_P5kd4#;v3kc1~?yJoKo*E>~?f{>Anf zc4^z!_o&tj8yw=@s{Toy4wjWuow+p}@BKKa6bofeXEgp3D}E$5SYd~FSvIOaRZS?5 z-7(n$&U{g8sTX_-4w|{Sn)8L^T#bLYh2kG(t~ZjEVaxkdb&|A<>EJ>P!-9+T*6L8h z76<^S_YA%MsmpuYee}V6W%Ad!r$GSeb$0v5Js6S#Q3N=bH{hl%K)<@SpVht&L%oAc zeih`Gbd!suOvILXPw)S???BNlwfkY~>uGjWi03`VF8mX|urlApW^pJMMpKw3oSlGd z*RvD8ESR0c&Ft(=S@vI?ouODeMRd_i*oF&(T(S4B2L}rWVOGf*TEH2)G&n=UWvj0G z!YbPe;+hwVUB#O8EVasB$6-MIE;E%04W}c)Jq`c(@!wWA63a1iOna3}qzL{ov#~LT zq7=4cB5(z$w!az1*y&r`JCW?$p*W4p$c&3C)qy%*WII^KPq!U(_F(1;hku?NoA zb$v`ad&Q*&i9kC&+`|H}P`<-Z`QP&#g1&+^f$G==Ax?T?`GqnHEi#z)d zwRm==l)e5?2&(H3x1vq7{AR-10eO!%T8uNj`n~EEXL+o zo>pXjU2ony@#}x5b=v<RxL49 zZ~{<2SHM<$Dwd9XyX-t3UmgqXE1ry8Q+ElBeqFWwt*FE+L!`PI7czn-qNT;Z)ctlU zxnDCLHjCN- zuXy2%jEZs9_Oc4Zw|QY)#D0-(b9VvCijE9ai8`<4hP$~O02|dMtJQg*vsD=B;q70K zqVPbpu;Z!Le?k=27LacV5DR7qZVG?F|IlRvE_0AbN^({HXOC3~;PS^?=*P^0h zSO(^C7q0y!Fg{Zq%Iv6Jt4lKKL46BvV92O_9YQ8F`z$<%o&Bnv-UY)-R)-N929gR8 zg*%o=Z?IVqDSF;&|0WC8nri35w>smIy>|?=->i6beRauJMp|yl1~Aow%R)DNgL>m* z;G#FNxhg(9v#M#Yk`Bkh$?Y(CQP^zTr^ z0z8GI-*n+Bjh^Td_pG8{;~EBfxP|RaiP=CRq81IqTIE0#KnEfizH+XTpcdmvA9_a_ zgXq?^6U%)eKT6tE6&J&PHUBQy=+cD| zvJP&PA$u5}32?-IPhf6{Ff+QNt8R}9=+f?mWU>Z&3x`1JQ6oHLsGCF9!!-d4bQ{(V zfZazZY4F3v23?p1KD|>HuBF86t_vT7aM%SBjQbwMMzsUC6#B~Xnw;`TQ9EO{RS%A= z=)7uZ_28T-Cq>=Nk}Xy7GcbOyaQsTl`1S4#HT8o^X161Q}uLW@qzV;OW(}wb4(%nDt0Dl536^`=wBb_-=skqn0V?;Qcid8%a0*d5{lPbvVzCiVG zZSjynum5iSxSS<^pg@i~26{e)DohWxF#2^gA_tQC1LC4DSO|^~aG%u5ShssQS%i3s z3z-6`O@la|YC>A;R&kFFku@3Upr)QhD(7*cLN@pabK^OnjjLy^XT~hz03)`>6MKgp zTkVPcAH?FmGX6boOem>_6R<)b34!+Nz!qhk@P;R}*`!;z6w9F!Sub=r-if#F|HwfB zIF`h6+=a_G(6xr|c6G;&H56iV%uDcsxEGoT@X6Oa{&^iF6=Qr-swYfJT zm$iq{O}f2SKt`bkvOoOC$w9RC0|3(P^<<|ezN6*@I0>L%Emm;vFEOem`VnPny5lnI z|2W+rfzgZ88K)H@2@0?xSj*Tsv=YwG(Ql`x)&baAsf`8f_g7cIpAhg=ZtW&+G93{= z>x(tvL9U402%RyOj=8WG2LA;Tg1jb_`oUxOrxg2^uvW)=#m#nowNkbuHhf6p<1QOv z!vD6QErh92mmdBNwPxDnlI@;~BHfDdT4D^)+G01S8^&$kK{;{I4^fGhShxty$`J>F zdvaWYF(kr=X{`g2BKGMxQx~8SP;D{_S^RrEQsC}`!QpI)f6}p zB@~pl0M=A=APtC7dlR=h)=sp;+t-Hdmj8p4W>+A_?Ly=KiWqmM*e#x}#@rdsVTPNt zGn9KWT;R^|@14kS8e-gSkD=|ZaB99gu+-BQul;*7Muupw6;H9;hY_@D(Pwx5t=5f< z$uMKm01Xst{Q+ynvg&hjU^#>V_%GG`kgn!OtmaEr(=)pomUtF-Y5ZPXiY<+0S{?Yg+sQ{rB6($Px%t1R*A ze5gNRZH|>e|4B=5e~x!{!)-4Y`c5!%=Yroc;Z2tGPlG-lJ=OWh95%olS(>b7zspsd z=CVw?r@Vbh-tHHFk{q+`$^x^bfek!T7e~`;5>ciPGRp^g$}RPlE3T4d-dpUTPLv+4 z(ATNeCJQY!%Lk}Jb=BA%`R>L7dlO4VCwExacx+=uM{2A;U2dkacDZqHx#Ewq%zJUM zW_yi@AFa>_IHW-IFd#aCee>s_VKzRR990`lR@6Yx48sfvJvmn?D}nrUBQGEdXaRQ( zh6Zw>BaF*FFvZ#9a-6HH6ytv>nTsQk-Yb$&jyNv!z2%D6KOy>D<1+tfh3+Jhjyx_E zofzJ5W`jGk*j%Ry(@pP)TYxK z#{mW>i&8z=S`Uya<16@$Qf5$MIA$eiu|bv-mrkR3lK&h_p|uXoNroSD_twwmpl|f~ z|ET)*^LsA7ksFodglKm3Xn;pwK-R9w3xM_=^0R-DV;tuM7FK8Ej(EO03zl;_ID4ET z?KyU)T#udNT)aprcqjM1gBJray79GSj3g(bk-0)K^=O!A*@jX354wqYRkqIBp%y>2 zpOAbZ2tmv4t=7%Hx>;W?aXqj@JdMrGT0_OU7Dj_z(@U-UQ?1>`P$Rs_BJ*n+5-($p_WOfjFX-e@t(d zUrgtD8+&&(mk_EP(tyFN#MON74$1sc5e`c|7L;XZAj&T%Po2v;6VwAUudabm`JrL> zB=^UP(KFb+Lha;$5^m4gOhU{)O+0_Z)5Ju^##c|$gSdy(5_@ejj6&0-hK;ROGzfC% z0n}C|MA6hH6fXc#iMH5PtPJ?C7G`BN9u%C09#z2{qSCLoI*Ra0%Z5fAYape%3nq_w zW6<~IQVG0&H)&J@7T`p+uT>@vK=-Sn1}v`ZmP8oNZMEX_cS+UwQl1d6yK7vIxUGZz zg+7sDirT@Qu|=SY4AC`gm4xB)L@NFui&C;BS7}8o%_crh`suQ`M4%p+_LMjVC8D9Y z0FZk`Hoj@cqY&e2MxqJi>!p3GyNC8+Wi6}cz>1|?K*Tr5J%!ch7!@_npj*cwnp^?S z`@p@T1Ui_Hn!|9SzGl!cvv9VadonP7O{wnd1FMUwHOOy$fYv(vnDJg}8Rn2*QDQCZ z)AnhzuSA0+I?L8cw1|@=ek)2nP{n|<0f?oqH~esz$VglbhY0`cV)1WCA-#*m*I1RT zce*SL{&`)-Mp_t#31#!ORMIi95^V%yL#% z7I2dpaO#_-*X5rP{AR?sdG+kW2<|*whg+L<R zsaHMapY19?&t3jFmQQaUso%R$lJdF`JJ*%_E_d!C=Kd*StQ)XexeIvLQ@y)@Qa8D5 z-G~CtK#bMz|6IUzJp4QOd7K4|K#bfR|8Ff=i5(+dz%?x3CB#_2<)R{uI+d;c(YtWI zyMRI#P{abR`#%@(DEQ@c3pQhkv1XHlrh9l#3tRzfC($gITO2p1lBk`950pU#V3M_% z^A-vl&s5Tj+z4C*JfEqTA=O>*9~^OxgpLI+lyr3mLE*u`1G*ic))YiqcVwj`k>W1& zV?ycxTGoS3?dO3?-O0y;IdO*rn86uVPTp_Pz9F;}%u$Y`p@eM}rm+1_#*J|Jo|&N#QbF325!`N_P#*v_Z+h5;GG1Bb0&;y?X${KvmD zahsiIr@&Gwsty0hszQ9GlgfVMU0jR8?!nlsm+Yqvhi+QV$)C`hYdb(cy)@ z22lty(14VKQ#S@mvnYY4o$szgTa8qK8vL@n(*7j%xOfFy62kU2{RU3C=)#|UBb+B{srKtMbn zY>oENPw+p&-Hi3IKKRYm8m>l+d2L~GY@fpb&dB8P zb8jk;CorliEdSWA_uP!@y?Wr?Id=g&cOuxZ!`MDuqx^dL_mU?GuDrhxmzBl1th_;a zp@0@W`VrhdQ@~rn#P1*ohYE>4afjBpm$(LJ2pu=v6aEvH{Ne?$Pu!CbwO2H~hX7Us zaEUIqkh$nzL0&#I{w-4mbm(OnKX=ODi7$G@GG;OtS}CtxT@Aghscc6jnDxXDSkuaO zSl{4B@wa80Wc(sT5SL|}9BekcOqld|N6h1O^Ewev`K%TsH0kC^G(^I!jWr!%#b5jw zGIY;QGtISC-2%EG3N%rR>1&ZE+hV6`xC*sUGGTNsso6I?FO!YO& zA5+2lRM*To9V$)!m~*zNko+;{>{225WB&iy*2#7r&E5?PDv?~rtL!y2ck3q`j`;>_ z4Qab(!m2-fV#d1dD(r2z>N=8j+qq049Z2>c!VqQMb|$0a-&fbcFk-Lh13hODy{#~1 z?+3JJ8&S$T|M%EbwXV-M-%`HI1P^|vVZ;jZ68r8gOEck#0M?eWVn4qHGiYF zv`9Bbl;fX{^zn9jjr}`G{WjL)R~flUZ4CRfDHA(C^Vy6~{=pz^f%@Vn8^Avum3H8l z9vfPxf`^AjTW_%wi?p6}+(|zgXa+=UJyO$cOu};Qbr+PA&}sq-vj^DzPRw@!Q2J8O zVt%6lio`vh)UknD$2QF`ZpuokX?;=UDi-0aq-w_utyGj`C6%|np>hop$7dy#wysi1 z0%p`%-=Pm*|13?%9NejXl>35I1@(A7l=`+wn?qLTGp*XP!dl9m80n-w_k3*#6bZe!iAf$<^dt;bmCs1d^vtxW(pmI<* zz?1M-JE4=6x{I1@C+y2kxX4Zr*$M0Igk9MQNjqU%cEVCSp(8utNlM9+Z?qtONj3h1 znUYUy7>wai=66@AFI*-=7wNy7-}O>POt-;;$uYjeehTBe$4gNOY`us?qk$NUBuNLA;9z)Fn`G^hmV!e;nC|SyqH`4Xh zv*1j9GKl)x7@b{TuB=bVs_2RBW3IktL6|5b(^K>Md zzmr5h@i9fx(2&s0?!WDKDLV2>TRu@fphG;c90jAm>Lr-VIjvt1b;q#HjKgLjey(a} zxIC>QQEvBR$xX;4#;vmZNRhYGK?ubus;Yr!7$INpnr(MT=aq56Kb|fqHb>lc0gBk9dn=a57?yC2hHjddf~{&Ms=Ttl6eQcaCj#LR)r@ zbI_{z8ysU?CLT*6-8;c9yyfYcC6Rt8_lv#o`_Z~ z<%#G8M&LvW%CmQs7dYdrVtE}<&Lb=uzDlCg$P3(G8cnLlCT#h<lkEPT>8k$xXS%-L6!S^g1_ekL$CN-Xzhu+fGHZbEBg#%4$#_UHn zI`lgzmNMzz2s-VSuV7A;#i~^j`JW)rEr>&Yv#tiR;qloG8j^g^Gtq8yIMbmN*DYazloe_=zR{^6PiZYw!2k5;y?uL1@3`R0IQ0BcM;ghX6o zKSTU@t!U>VN>9!x;KQbJ2w~ZJ8J?WB_9I~l8-P@3%4SmgF?9gi@H)8jjAOQ*kUelU zZbM^qqc9*6a#b%3SbHHbLVLa7bj9ldzs3Ql7KJTjWP_-Ak2xo9UBU&;=C4tYY%CL^ zcEUnd>`u7EPLM5fC!ETJq$G54<@+#EH5=x;YWf}~ZHQ`eMF|x(*A=xzMb*2aR>&w| zOUe@xGE|3q)fvU&WO$c`r~yytaAN(ON#MDj#(pSSqH7Cc5h=ZJZr^y<#s#@tT#kj` z+Jm42=zZkla~rT)6cTU;g6<>WEAGGsrwFf4{j(&gDvXMEFy}4a{W-8+Z?H7QbdW5b zA?y!XH6FpIzT6?`Xph77yB1nsG* zz%OJ2pJD_1MFW9*F-YUmFC1P<+_4htVDN+3DN^DAPd{A7iG{>#OnATUGjSOj<)HsY zPg^?VBtu`txh#G;gI>GZ!Ol|tnafUC>1kbr>FOc}i+aAUFa+-|Cxk7Y$=M>OQehzV zG-jq)PyPht`wR?5VZ1>l=Dp&v#W3}(M<3G2X#rE=Y5iEc^)+G=%CjmFOauQBJCg_a z4GC;hSC?7e`#&I#9qj#@d_7;wottdV=Iv9(AWhW@c(ZvD1 zgKdmCx}1d`u@gGkMqndd2lX77V_$Z{sdj?MPWYGXW+JdFJK-5SVVgIhu8QS%cq6q$ zClq=V#n}eZpHY=+9%Wo!Dn8#iKz=6u47>8o{If%t;%rQl)Dv!^UFW394JcPmdJwJs zB!pcjrQZ&m*a?EQ2B#;24bsOAvXmf)(MDG*w0Y9>$f3XA5M*UG$Zyy$2V^Qi8nZ!o zt(*qAnjoXHL8M}zQ%Wg8v}};wBp?UmID%|OjHkJOb%T74xnMoP7*OVRdse-!e(^rg zjU)w;p?=A9yw;HWNL;ZrPa9AdmM^hlnDnNFBf7=s$`!j8dTs`@(1ocA%18|*1q z4+0WHn0FLn99XZ<>XDqB#vySc!RRa9)pTd%)jirqrvR@%>aFq)3_FF`gqdrtMUXRf zH#RpZKec+J|L#K9dpo*pudAc;Si}p6@xsh@!`x1o+Ac7aZkQ2-xugqBz8mIj!W@8t zinp$xx?v740?g!qJJJ=i$~&s>ihubcPQ=p`F; z80?aDf{6mM%53A)et){;!!>~GpcOUmFOMdFSy~m`8+#s#N?^!F6zj=fl~$TRlm1DS zf%*>6n!4{ZNBbkjp4168KMy%7gty?_HpPw)j`ZJ!c8y_{y04?bZ(_%Uf>-*dPG44x z>`}@p#q%H>oQa^;s+$PME(+mk^H4j^zc@y<56`!M3+&$_{=)b!Ab*YFe(Gf4J=t-7 zF&j~=b`*-E6QrEjc$mOb^pKB9uE#5?eU-l3V4iVUjKKIrgD`P!*AlC^sGy&+e>8qQ zAIlkfWL=A2oLH2m`|iJ^2w)QzlxtEgFr|+@TXxtS<_`sj`^&XQ+Eb6({ij>BX!2M2 zG#jG_Z-e)P1(D!4TH>#0lX?E&U;6JF7B#08MS?gG?Zbn>v9n$!W1a&)b7CH`%O;JUyWCTxZ|Q-{+Fp&tBNOVITtODMzcYnKo|9dRt-URlBl zT?>0lz@f)JFQZ(X^vX7+3s>hMJwCHICx% zh@0C2iEUtAOB^GcveF#o4}LZ66QmWD9Zv1$eFaR)0tHx7>WWh17^Y>ClW`qb5#y~8 z#@`?OX3B0RG2f?zD^Fk$KB~igTJRfK{dPpO;j65@7&9B+=%lgT`WGU=HUckI!B1l+ zP+jqa7kM22$gBlANyEPCH z^5{N+erCsl;s=vCyj9W{f~M{VTGzp|yWLJWn1zN&kxNUD zXL8tK(jJsCSJBB}Wce3EBfeEI>&!bC+4w^=`00IGsv;wgu7VvbOsJyCJow_=m8bhU zBgsjJ&7x?saBrn~YB;zfq77RS)rPH(ngvzCU3h!`N~3VYeeDNU`0C)~;PY-UQ--1R z(5P>PzVSPlHOKCY80$jDdboN3eSUL4q?*@YLP?;AuOqUtbJ*bC?bG_H{u%kq!i;s{VByv&n?0FrdQMKhfIgP@ zMopNdV_tNqhx{D;(7Ejvy1g#>PEAqZ=xR*Se0|n;jUWW=p-rG+@abCOP7-tSCfwfd zi%Nlu2J}ZALu=T3-!3j59;~T{v8QgQwQUD-n@v}2eOZxO2ZeL8_EmQJ}F6; zbFlq1uj)iK)0$C^4pgJ4DX*doWSzEJ-o@_~((j1@{~;n;@=+QswAtkG*Q zgWpaWz@DA~(nJr(2J%>eZVrkVLjp$rTzIE2$92jsN()Mb1!?S8iR){kp^}ymp}CL< z6V&<|rAjT4v=Ory*Vy#yLg# z(r3{UT%tgbR|#tVE>}poRQ!8wCRab(vnp554EOfgPze(%cC%GRY9gc z$g{??7cnePJco~P-B^zBi#revtM$XN|A8Qoa8Vmhcfsj?QORiYlBjtv+W1+RLbCYE z0&#{79dSWN{NiLpQ!)f+IX`frLA@hg5F`EK8$`pAE+Iz#SwW0)L5%W?&CF=lO#+DY zHM-I+DCz=>_7cxCI@k}c(ffifY^+o(tk9LIz=*CI?`$?wH=-Vt1^m^GC#Klv@pjR} zTtyG_i>nar!A+?RSK)%I@QV^gb7q-0)Sx)CRJ6aOx)gQ+hW#Q3fP5LEU5xva0;qHW zRQkov7g$oJ&l?y9@`k&>hW8RJj7F~{ZFss?&VIpzzwDPp+k+g=1udg?@d(Qf?yP%3;heyJlqTU(q~9;v z04(Lz?cz_&2Z&M^L}@Sadqy7tGnx4i|L!mr0W>OrXjtJ7^ zEOw(gyasNj8``Fi1-DxTz8Ru%3Rd{XZ^{w)$8QQ6_(#)JiYXvpjZ4iCU;VwcIdypH zV5t(yNI`4PAJLmxt5~Iriq$?HHlLs@1qxK%r>zVd?^PLZ!&Su~EPg5-M~~?d@KobN z=44z0#M=wR!_N_C>c%mRHgzxL7YQU%4umoKxeeEhdR=e~`o#n!rbqL|r&WpM*j$hd z`o+b7RFpf{2CMgiG3Xb^0*nn!FJ#~Sm4)I&n=TO=mA%Brh_>Fxj->h*G5@*%`6H&$ z%pdqiDp?yf)YBR~zO-u%uaaMg$J>zZvz|gu$>%0RrO=#;Xq7M=ztgWw{4H#K z3a~d|G&pqd!2vzCIg^kF1#kd;_FFB0_|7-&^GN*e@c_7%7gBZ>>oT^jDPl$@Ma-*e zb!9lu15i&`=4lTd<|U=w8u%NMigI@&j-1V5ZlPwJ*WAvL^CE7{we;RIoytUsk0c1( zSDC%wgDT%Q;31ev)O}^Gm%JwVcVLOtiYeEa0TCJ6p(QS6_w9qAmiP`Km^(swLwvsgb@4D5@=Xo|tnV=Q z^dM4Do0c#+gxVW8Q$S;Jj~?GQlwPh1^oboUL(v4j36U(!5wAgWnU>br){q*R)u}kg zZ4f#}lMmMeGMWVQkc<>GRhomsgM(3=>f`~ca`5y{FhbMwBFXa3DFxOHG)(fnWGCU- z6<9Pb4g*L})^<+$JZuaqpF2G-YOKYJ0^mNELr-Ky-QR%UC>;t>`W`Yb4h5%l;wc%F zdk@MT);X=f@_EW#tDE3rdkwBdv3lo}lu^o3BN*4zYarrEZSnX#M?n?G9vz)rjiP}v zpy8dcF(EJ@DsQw)@GcGP^`jCg_%C0)4{jlhQ{jLp=*Lf_;K>N0jO=pQ2!`ig$L3o@ zuppzVrmj7r-!VCNs?0Yy#j5(h(TpE>9m~Z5ayl0Y=pl&;n=L7IP191p7=mb^+-vRctE(aS~Ifw`4?*|KDb3pU$6`|TyRkdGi z1O#yW4cDwXfinVg_s1eu9!F1pL~C?@z`14N9}D zcqJkyv!Lth7qL|riYeEkq-yEq>3qcKrc&0_v9gxJ&~meG_A$DV7VA-kF)WV*2Rp`N zbyL}i7*q1~+_8aT-RL6?TCnIP0BIvR20aq#i{Hn5)*v~3ReJr5T0G==A2|~ ztoz8m$?NRi*pyUv*f-Uqu+i%%ox&K?h_qn_rZf5?P@+$IkYFL?|A?tUPOGFOD>qj+ zunj47RiipzcKveZ2h+QdS>!Z3_BZI%tW}&oE~ZyE=TZP4HS3G<6A6x8+o{cd1u&6d zf!6pOK0Mx&PISB{MS_K$Q?65qn8V`Y4ZBc)8tN);1MSP1svB!l zv(tTdR+--O(S58kVeD1pS3~3UX>d%-bSTij-D~i&u z{`{@%OJ~1Mzx%Tm6ei#Osh6dX!k}Kw8ln(0N6m_2`vIVfLAxl+pLqbN$bJCmm2^vS zkw#7MlV#OA#b_3&-UQ0CqlO^L{a%iPhVQY&k~_f?TV(3_z<#1UFU>w{4YwemgA+ZT zI-KFO@Zmy5C0bB)BZ52Z)J{gRmxsFB67m>Rnn$+U=ff1NJhQN^V4 zV{K-VjucV}vKC5^Q}#{mB^A5od>|`wR77a*{5=oUsxGwlQ8hUol}Z?8ksOk*4#EXb z)NHQ7(28|LJ(`By;#09yp2rbbf;}UrwU$U6q}oP>KTdT%fC5Rxr?kzHT&bgH`MLPl zH@!fmFek&-fgLY%iT^m;iCEyk6?+*6%~?R)39D`JS`YZoBzU%_QPY-fS#k|;y#G~Sah5x=w;VtRH zXSEmSV>JJUvbt38xLv_RN2_3?L=3KrzBKE(Lf{l~uFY>$_#yf=FX4mGcr{B5p1{sj zICFa^o7JOBvpjt+Vw28bpPMs%&b6ELJ%5ix1NWgxEd040*$C~@=hv`@WL21`JdDbefDr$kEWLoJ3V#gIZ{s@3nixi^qiDi;5m3$cWdsnq!KLVO}2D)Pg@n%bE!TV*I) z)n_kfXo!yuIZHOA9Hmx*diLsYhG$Om$KS~lk6>&qJ__Qt*3uFugScH5TNeO;^Ze1r z0PXJrUE+m~NIcLM>=wdbhM>3fe*%ZD(qjN%>6a4vXI-FEUg%RL^d6B<=;OLT)0v&C z?66(-cC5tKkGnw6^g{nho-Ou>=LtO@0dKp@ywIB@^rzx}La*)uUEzhEZbMfS`t~g7 z*sok|{<95vE+K!D4LQaIc?LQ}VO>3_Q5?jAD-}7oU#91Vv&utL?3gA++sEUW=+bdW zneM;>cb8*sTlT*0${t{4IfzL;?9P33TXv3Xx~Wm-z6LQ?HFz9%0bWCJ-PPAdcLB$; zfI7rD+l$?2A_Anu^;n#Y^E;>Vnb?@!RlMxUgQI|x;nRn>s9>jXBDUBO4k7V-X=7()AhCR~WF!{8JGKIVn zaH(Z#1N9`TJrg_d9$DVGgnNRlkqsrW>kjjA2Y2|)tneXnqUoJjHvC_*=r@xn`Vs3H zOnnzBtz95aclZH}h&xRBbcfeuh3SaHojyG)y?0i45yFz+#r>a$$0K`6CU@2fa>3+y zM*}UR{fLBwaRivJ5z|2$I372WMEHl#x$29b&6!Uw?fi2a>a|PxyB*ucU;F`Jt@`3; zN9L2q68<4}7k}}GPoci}xi9nCnfc_|g?|9xIoNnFFTBZeo7svmoKIdjWn=+sC zGoQ_w&jp#!g_+Nm%x9bZDPKhuw~>X$smQ!U9t3T+&c7OSkgOmrAMl3<7~0!0PcboX zFV!c)O_bw&Ah;GfD&L7^2G_X?oTDp>&FXw;ZQ+gARSST9=LCfdTjzYXfM}4#gHZvS zyO2D+_`yUGG6Fp7UNkG3e71;ySdg&ReJ1`Po0@I#bV_%EOvZU;;t8wCWa9W`#D5UYnM;%=IpQBHqVF@4hQt6*BObE z9_o@G= z7=&6oPT}cbuXvx?%~#|Q5+UP+ScfQiXl%XH90#Cw@fu@Fn63C!mF-W6iJCa>p+-N8 zj+hNRDMXVkJSA{%td)nD0g{Mt8jZ?3xnPGj$3Q_*K4PAOG^l9d;TB0i(ZHF}l6@Ee z3KyXEVXRkAkX%QqjSmUnna1VOWI42@{sIi^W+8O_;4%a7yr{SuOrE@yfaeT-*0(um zlh*Ja$S%sQ(k4%kC5@C$CPQeV8Sqa*4Ld%c#)d%7p(TEcK(yp*zHE0U8`DAcY1t;b zJ?lVA-uCo3LVH$%CF|0j=RmkeXiuYr&7Ly@09<8=*KZ@fjPF`&7Tt~CgTmUp=g7>&h(!R1y-2ER(k zi23P=T`HnJ9kD@0a1&5jT2(}KI^qRHM3aB>BLWK{<8cA1CAMJ5A|}@iDT8bTR0M8h zQXe(xNpG{CLaRJ{bXA&>mFuN8Z#^#$u-Fa**;#KO-~sQS2G{0UgycFbP9p4f1YIms z%43U!i$BRpVquL1;QJ1^>VsBV+c6OCBrN<$IuJ+FGA7|xnVmDHV=~7Kfu{qkD>&Wl)?i!t61_J)PO|mK9-CNA?f{04FC`vqh&a-+yp4= zIt4;HmPx1tNp(!RLX~RIeT=hA`U#VYkmR9@>s@s58fK^*W^oA9!CHWzJyT>2YV=P) zF_Jjtbh5}lLzEC`4{;O09P_OS`-*a`E4+Mo>JOe;N4jd|*_5@Gin*-y2?RZ`Zpy7l z!%iUVz^qCZy2*HhHI%#h5!%)l1n=CRK{XpbgmiN>n1mjD%L7l5ESEb4`-g`o4x(4l zWG$XwTUBN3j`p7%C>Uir3{>LR&Hf;ix*n;%^k;;9Z>V^+o~B)g>-JGp z1(*Wt6gIOZzP(=(SApJMQ7m!SUg77js7EFqGpF+x7g^nLyi5I_)CE1qA%QYlzhOkw z-Mn}i#YC`>lhAWUwTFMiU%9Guh)YpIGBQm^x3a9ps~6ccTnZHl7O=B*Xi@ptS{E0LOS@t)t8)1$-?!ziJK@B@6_#cUcVqd zi{X}7?pE7KoW-gCN#9TDcnqL8PsZ|!wH_rx+ZnJXx-v*l<~7C#9j^PQZZ48ln1w&) zr4I5$%)We80nJL++Di{YjTWjsvA?pdRmN5hC~hCr1!t836^pg0vz1&6^%lu`G4SEQ zB)oVCAxp%(jD;7mWL5K4*1Qm{O4p3n3Qj&+&3f!Fs%9wHg6Uw*3y`h&}C(<&B&QLk$O0I{5Ki|gN}!- zum(rWE2Ilu)wz$@IfBYckbo+Vj8cDWF*_DDmP$?-8s4mhd?T=&>X(@h&{08sQQUYY z_)vqa5Bk`y`k2YCuTKPXFWDPzRe2kDCkV$U2?saFs4qG2F@R!4eNZy1SZ#qvj_>r; zX=(a_@gnNO`klB|a>PY%MXnpMVsKo3}xYzXB3$C{s7wo(GyEM6+gF-AEQG)X!JpEP_?gt{_LrLWXg_w z9z|lcgQN!A)iLnKc)a873{JyD$-tE(UX3QmCPOL>Td+N;c4CO5rcGpN(ru`8rGI6? zQV~r^u(Kq;Dr3EM0ivpm4&=6;<6bdq71t)$snvlGU0c=`GPY_jz9ZK$<88PrH2y7B zDX<~%xRM95%_)fm^1?w8#Teylaq|E6I1Nws^H&B_T6_fJz>GHJgpF-xxFIKW35=WC zwb>UT9^-{q7ANRiR0U&ub-ZYFp zmSgsTPOX;s7*WBFSOt1e%4t3qVM-49i(9jSQvN@9IOfd(rr^Q_({C(bxxU)q&^gnM z;rYo5*qUKsh&JSyJ}90R8e5aGoWrv|11Zc59@H9tj1SyM%)Jc1csAvIbqHVQgxSSH_{8jV`Q-y53a5Gc)rT$VIE_2 zgSifpyIHK&rVLy#g4>Ylj~q)72Tb6^7SJlG0mK14Ad(4)0}0l*B#x%ceyCQN|IoCA zPD8)BT3USqp*(?_eX-sYpe|72zO+&xym8)!HR!IMSfzg(LG1vnLqo5DJ|$d~eeF0> zrJu=CXRhGxupYxg_LPg5V#@JRBqQT7!-zzd|s=c(9 zf+VW|!c;u`C+=v#OTMwWpwV zwO2K5ArdL16*yuz_z7KW>{BNQ+dg(B6l-|0mxHC7jq`y-@OZ_#nFr$tDz_MTDtA}6 z_)r{&!h!Js5deX*-+V3c4wgSE-1t#ID|OfK#ttP=`3Uom-vzF3iVgUOXlB8_G?XC4 zcCqXo%I zSY`H(SDJXFdkrjw^@9h26C5lybM1v$cs@AhrVs_CbY-iXJ!xE^A+l_ff(~xRdyvTo z1NCfj($**hwkRuU-3V0(vewN=6zAfRGvbjcl%g76!`M#j;?rk10+Y=xh?w`I;IN5a zw6T3fXb=6~n&3iJlQ3j#lG>NhuGsV=x9O8*oOSa2%ASC-NVM&U!?t~LdpX=tfdptX zM#W#)H`4C!px6YpMX0a$j{C4J3W;4}GwfR(6jS@@;49gB>u+*zSl&CeHJZG$z~aV2 z)pLTtq%D zh)JUm`XUno<1q@iz!ns_9}SRci6mpELjb;y4!Ckp!ZXRnMu<+d#xpSgBH+F{FnY}B zN8@j4&*OZS@y+eFq^5`0n*m3_;Y`X{-^Or(zYX%o)}{ z?-km|%y}AHfP9FOyCtW4=nX7;hf_DGaW-=XBR+OcD0xk;u`y)i%?l-~@?e}YPc}AL z)jecvVNhmGUgJYM3PSO`C!l_VU5BkM3gx2xCaZicxJ{e$2O%vBtLgC30q*xl zpktL|q&SN!9NGsFQ+g$!VELbnkGILKwG`7u?nf-QTsQB=nlRkVTWB{{myM+c5*7v7 z&WqBEg4%E7dPN)_rM+rxc>EsB4D|9;qN?0p8*o;A&AU42OlFhV%$H$W&-K9`zdoES zwOkB{0c(KVz{}C~P`V@Xg=~jEh-1lEABwNeUBU-ouqia5k^CdmgW67i@&I0&OY)8DgAkjg=UHdZcM{X5^7VK+sWpz@kZWnk z*bd>Mx$r@3C_3VskwrK10^;ud@X4JVaDCMH58TEBBT`>*B3yWbm&UohH%^sPJ_Ey9 zAXg+hFvXlWES6(?mbGEb3yxUhk?ZS;`gqKe4KSaQ*dQKupxR3Z;{Avmp%;lITO-xQx z^CFeahxhDMPSF4kit}j~;IK%@Tb8qK|KYH20##a{ zyi)@?$brSwC-=cgj3*nxwI~AZaxRrfE->?rfe)DZ@#Q|FAAW)E+W7KrG7bxBJge4Kc9L6 zcGGZh?_CS==5x1nbluaT26!c*Fa-=vaMdq;;m<~ATB~C($Gcv#r_PWV|@u?y#%4+>L)?-9UzJ`hE zoD`PiBF(&3 zd|_gzxS0nbOtofokvLz#Uu+E}2jLG163+quK}3%Au)Ind@+AY}LgwK!m=uz2#P53D zhizjY(&FED)8>4JkK44pZR{!DpT~NIjS$Qm=q9*)zcw@Pl4&XCF98d*h183^Gp|ES zG(#LoD__ObwwGhI;~@Zw3WwXv^BJ%=G7DS@?2Y!Qm6<7Ana}$rF1hv+82f{SR@;F6 z$r;T*F0Re;OMSD){A2t=^(nvGT;FS5-yQb1)rZ?8y1@=uVL1`)lMnF71RbI7*|2L(Ph(g2dy;u~m&n9Tcq#6D(Ot%xwM zg&+kSA8|tFt&(~^@Cx!#H__(~a>Sg|+KUG&sTaa>LdiSuC1)&o{JFs1z7_)2^6?cm1PiQ(iFUpP4?H*Bm! zrlt|W!iBLAocL%BbI=Lnp9}ITjox#Uqww6wb%+sa=c`Zz2uo=H$V_*wja>2-juuVwD94TbrBmEV(2#)<7GU>*K+{<)`rW-qD zwgc3(sdf|GL9rNHBY1pgZ*%sjhBv~3QH5;}UL4tOR)88w`-GWAVp zG0_3(K~Z=!`|-S--JJL1qrNZGCqcV^Oea#RlHu+-mY=5e!Sz~WgnfW+;Hi@FUIF%@ z>`N(tUsjtBYn|tAqRPtvd81~X4p<>z<1F_>$Vt?m_c*ZV-4_#fOf#`1_r)oU0l$LX zUycm!-G9#8_NaL_0ZxmW7l|tYL#IT?1C6OYWstmD=klSlu9xl!w2JreT`t{^mDTJN zxw5EFV%_106sphmTyj=A*8+H%Ea`t)0AD4}F|=P|&0-n5*e%(6Fg&DJr5_EqjtG>s zVV%DP5INQ_q}RvQ)-k}FoM(`_2CvO)!6@WR%hw)j(-yZK+_s-em});YPYRygH8nk* zy7(IeSM)3V(=gkW#Xqj<*GxMFCVR=emtffkOHs#BQs_pk*?I}ysrq*ed&5l33p|Dd z*Mh-A)BKU;pQw2Ov1P>fg$Ue8S>MF`)G~Gc(p%93{$VP>+183k@LjF(Y4ie4%V`s? zrb0xkco$RQt~-gVr$HuBxUYd8EAD!2>W4rtf|EX}zYjX}(N7tf=^t z2^ctsif=?e>~msh?6Pw70;2paSBt$|Hu)ym%GiDOAywMN;0;?Tjl`M0y`l)<{Po+v z#r$orC{@D8ia`wG?nKPSWOmCQp*MnuNe8%Pjx$kTgg3{Zb4h9!FQSp?84k4DxXrE< z_p=NnT>1#fCA&2>ezhdVY*<)ZrY{M~`0t4vXgnWQ!OB;q7W`-HIkKz&YYP5Cux$^TfDFIk=w> zqbb759hJnybhhE7b){7c`JziM^Q9hn`F?P9lm?&>UV7{8kSGN{dGmwl^ z-Sk!*>QDfPwGh|;5au4NL;lVxBk-P{TZxSwoiz$l&t~>Jw9+aBd5M)UYvIt{3#J^+ zEEYGT(Hyo1WCHkGB=B_R=jwMHng43isIfD(ho^X`rQC;uP)5z@k)J5|f(TX@Np$@1 z6Y1h4NjRU0U(te#9`qAhAP(B39$B*)_iwt6K> zF`y(_%ehi=O}$ofLz7l=YqM5z$3m^7u1zbM(E(}#gN#v2CW`8Y%fePd;`sQs@e9 zuLuEw@LlDjZ_%V)6dQ;gQMr*5!{t<19+`EBdcbvM5d)sSSgTjtZm{*-wZ*xi zxxXV1`fTSq_^O^HSX} zt+>lVNf(&D>S-uy!S4Yy#SCAurkAkeNiFz~5sKiPhCLv&tQtu$@L?S)El+Y#`> z4miGMjQHX@)m(ySG{;55wV7yMCF~|`*`+V(kNR4RiqWeZ31(vQC@p5G!mPt+co#~u z&6D*cI)|XVlfX(1N*8~5mKx3~-qY!m@xTrf*cwm5l_!!n?;VJL+kIM*+%NUbyB1sm z?jC4bfTx7^OGxbg1QGbfBv#H=Y9oHP$*Qxs?e%ZJ} z-5-*2Y5Bc0P|b`qPxB0=6gI*twFXqL1j>+JzDWWy2V(lEY+?z|j`pBCk@A{tjT-## zUc=xU(EkT=WIb-GzyCB8eI&}5aJov6J$2_e(N2))aVNaO-l3=__Qjnr*-qe4dJ=9v zMdgq~=FV}NozRh;qXWzVmIkdMQK)8XF`51c(Wqf-F^K5_!(|)>>{PBq_J9#Y^rS=p@NEcSmfEuhDo)}iZudwb3PUX; zjyP+cq`V6guava`widr~)`+w0+>CKene(q^{gQ0!nI|)4WY8J0toNwqYyzs)lv&F! zyHz0D^RZ9bWZTTTIb}$=40z_tOJmX%FU+KIzQ`adZew(I#pcOQ#k2TjBMKG2Bq_gu z;tse(SY+e-Q90{4XI00VArfV<;i8M$-3jk%#*gZO(@%f5|1t z)v9AL=gGGhfH>z8`}$DG`Mk9DqL876sXRY$etEnB`o$KEmF?5VI5V#wOq~TJpU-2TD#&H~Izi$>ZAUv9vA`x1~u!rImFE&h^e3m;> zBr`9c3_x!d02s;z@==K&tpasH{A-_c2ww!CF!%yL5L2nW_`IB>;oJexL{?iYuBOer zrev*8+$y;iC46-ur5UCA#eBJ9P_P2D3Jfz-VakfrPXp65MAt(>nC(QWazl%s5|hK?qiRn7gv}wiIIYj*y{XL?xoNwZ z3Gk;0G`da@Tmkl>abhFa6FZ>ZuKR$T-pDH%o#FHd%d^~UauBFrhF#SpPJ+b4Z8@PO zdVvjULD%@+R5uLwy#0`@5=Xnx6miN}NS8m9KH%h4qhb}LmIW$MW}WfX`J#;Nlj2u# zuB;oQg#62V(ZL{!CHA*^C(3$PHRjo=hke*WLPJ~{A9Q<4n-lE z6(Ebm9cnoXIO)oORr6vJTS>ia(^3qyvz5GuE;Bb{B#kJiIytqwoJtxnKW)CGKh-Hk5q9@y5e#8 zQV*)#o~g5dd5+9=Ma_lex^T~wFRmjYqlpBkdR;`$U5A@i@ot98_&XUcSc546zk9SB z%6kw$PF~lfI3ZUh$o{yfwc#zf$lH6RJK=geVIh0rPAIe!IC!3frHpU}$(^IlPLN1+ zC!B=@vPlJI^<*x*pMZ{_XkxvDUt4aK3+I2Z>7*l0W$wBi2v#(6<4|%2ID>!-T7}q% z`D1cTk}q2%!!Sum|@ z<#+n&1*AXa>%!QWMw~Nj=ouyJ?G9IyV8^OZQLoS$_6lN zD}o;A%RSI@($I&n_FB^rboc7-u7EWW*mQ+c%RJ>?<0<#Vbh&?KxyNL+LQA}wm(}I< zI6`t|YzCc*JDI5kG4A^Q0+CSqh?cx3bKZ~2Sz_~|?u2f3f|@?A9FNLb;&9%sgpqcF znm(?CFEB)$a2@>3%&R)ApgTo3p5^gS(KKMljTFc?ydygkDg%q8VuN@HyGROpx<~HP z-+`Vqd+qL$bhd`YvWX3KC*;{V>a!E*`;W%`<+P_Bh9IqONdz$4Gp z?COS(yXsdYX>?^53Kc7{q+2_^G-_#Cg~Y}>1R@LI?OnQn*({&|G45JpLp&L(+!?N7 zhQX|HSZ7i{Y>ezoJ(vEpt|y_U6IOT%9q%c0C&|?5#t)-VD5sA*gO(skcrx)7z;vc| zW}1nZOoe}zgX-)Uivn-iBqQD&!9BOjj!`!{z5BTaG(q>R?v}*Hd0O$cJzwMqgxHE* zj4@WGp7N65U|0LW5zTyrZ6`5^W05Nr&oq1iX?V9P#X6vV*^5MbX@2nM(*VT%RxnMMF(EgC@CxdRxk^$myfx-G0}pij=LrVI+z&83ST2 zU?rG4ZiGFZMLQ5-YihA&1l=*GDQi$$QfM3hW`N#cXzRs z6j$Au9C=thcoy~=<61fhkJ#<7QP4&d?8f$G?flX^m=H@K&FQS15yVcKtZF03gv$#r z1$d{>dF~8Dnc>9j3>SK8_(1A^*pv2nW_XhwNY9ka6iRh?D9>B(40kc@I*OqqE>8yU z)V;)=;c;f*OQJ`r*V<1EryI1wO&>AurdkJ#>L&N&FiX4*K{qrUoWO^X(|t)z=cjY@ zWscJjbPZlfpreG7lr|y^Bt-KopeHG{_Hr3Ai+-cc!oG0}%_^3L( zWRdK1D9wYo5gu|ik!(GtYG%{a`DamJz0Tc;h*?Yt9%Ov?mt(SN$NGv(N4s`E1r(KL#PwsvhjCuO8jQ_4rJ9*FReg?Dm=co#1x z*JmXDixG4~YYDyu-h!&r$Ls@m@=xV>l{r2`&^6MSTykWQVJNS5Co1`jI#2vjo~NY< zj2F^gDVVJyZ*|X_-?4K%)i3(Oss2({|0e{+WNdHlHhA6YdAa86)A==osD9 zI|5_E?teib1bqtYek3lV&b4U6Sm@@74M>srC@@c)g>RU;#BhTR1fd=GT|pS!ZY0N} zoOY`mxm{?r9wV3K+I>I6Ug5@B)&?;yy$qktwPyr^ZfIPXL(|iP;bYS|z6v474_FCZ z^`$omHF%2x8;ETj1;qZ#0lgC^OKeKlG_LM^^jSAX!0AB=l=p z&{|@6cKP?FbCfa1WCXqK#{$|0%A-hcG&#n*1*%XdkY-7dnL|KB_0i4~$JhzA**O*y zAJ`$9ya{!+jAXr@ZR49PUPVisih><{Nseff&EQCizp)$*Zet7H;h4FP0lS30uBxna9~249$!kf7+njd(3F z#MJ~z022YiCa_R(1DkLaW58!T%KsLy!d;{~FYXdoW52Tg2*Ikm%X=}Mp{=I@=kDl< zASrkF6@=ZGiFpMZZ+(OYm}EQO=B$4MK{vFPcrAO_XEBE}81tFwSBP;{nNorc=Sp`` z;2m~}3(IeVfIg_YZ0*g$SL_lOv!u=IuyIvOT$QmJihf+xSbW#W&GD>rC+>jNh&w!t zbdQRTGrW5SBS$-eF04Sv;M#w-0u`Pfd6$|V_JCA# zK$=-v_L3Ky;2FU;h+1dD{fZg>h8Xu!Ry$sWz6VeZkwt1=kosqOMJ(L z(THMr!-gs6DMxY~QV;xq6rp(qO-S(%?)%b7N{Cop+R_bRA z!hPTwSS;|aMTOS7j~Y)Gf$ifR+j)|SP`73-Ii1$fikxOHSR(s9OMa|p8T0;)6{?}_ zwkFNkkFSh=8od!ixL28f=rA*O*AhPgJe-eciCOqSPhoAgQ$3MciU{%KP@3UAA83|H z8yh&Ibyx}5ER*_|dqovSl&Gu?wOj^(u6H=m5|01a0Jt<*0kpOOL88dcq>cpY>Lzdr z`6LJ)$EF`L&>`5b(bXYC7xJ-!DR``)cAqxqO0K_nwm@qP^NS6D&L?hcF1Sn;15r&q z+LOMqVZd`^v*=>GK5XroG@eIg5NmKVqs^>}`TUcr_!WM!PNHEk)-0}BQ3oiwoz-eYq>*+ut^IgbRV0I9S{sIt{dX%~VtJrxImEoovx?!xP;EE->6Xx<3 z$!WMd;SxJXeRht7%t7qB!8h8m)t=ac@9T>x9^FXvx~l2Cfr*JIujjt;DCm) z$rtZ|b(1pJN??sB+bN#i#zm>3xOL<4z=hdDB`&dNki1{%86S+R{*5dfkaypE2(Q6o z@=HBmpr}RCN~Q7;0Gu7JF109WXF5r`;bg8-c*xo;pKMgrSosJ#`qdQT$q|Nyshb%u|k*;cXIg_FN2`ZayL(KEgpc@jJGygs*<(vW7pSc6Hw* z-n{ug5J9EG?7+4Y(E$qnm7SMpx#`eh+xhKI@#I!)>nCENv+t__-}zS*F$^05;pNiP zBr7)S*^E>p`$?Y@^zo3n@A-&}D_!nLy<2?-s=kGC%}_W% zmEZm-T_r9F?TN1njl$(^B>8F^W`_7$&Q(|gE-65*t-XoTU$QCb#nGPa=n2Rl#%FuP zo@Y3jvFPJ=&@+G9?Wx(!4!9@Q?4!-ub7VsHJluW6IcwUn<({HP*|9aA*stuFEGLD# zCC(J*+T_V`HjbE4^Dany7LzO^=A0(Z4rusXe)yGDdD@(E;1`MWRpJ77;bMR~yjR)K$cpI&2*;azX z>VdAV6dY9^_KIh@GuTTl_tan8JB2w$90(Wqu@UkZ6-mx05XIQ4<+ATcm&HFarGi@y9nx#DipldAL#>{Sgk<4Glj~dr63@r9o5n+m2ZptxoOE?Zr&qY5p)UxC% zQIF!7F4qn5UOeW^W< z_QE1S{9z!Q4&9_yStm4YV3z{fpqP3A5~!LK@ok7056RS7%UO1nA?raT2h$qutY4^~ zi0)edsQ*&`nd$mvpEC6y7~s@zJS0cVw?R+W&w5ZlX^&)Wg|PHvF-{OYa+lU+>%IF8 z8%oc89Q4c@d?Ut8KB+1K{fP=Gdsh<(VqO-987AhlHCX4HK^%Lfu)P|XnC3I9$POyzpv zk9SwG32V9aLsphpr3;LSvf%58^80mxxV0jSQ)eT}4>CK%wsNF(AhDHpJ$z94OY2*!tTAS341>+7abW zL{B@S#);@GVOwlY*e>Q1J5Ca_9oNA)@;9J*aY-=)xV%*4nlinl@Fd8@h03Kk>7hDt z1E!Ysq72ApW0#E46*w9`#ja5y)^S=r!H%s*c}{zE#94GW;I1E5Rhh=X1*oTZ=Qx9E zjz#9w6K-ry@Rnq4Aa*l_Sshv7jalI>b{H5`Q{U-PGg0K=)jiCOc7p7bJK>iyK{Dzt zsu+)0>vhloT9x`c|D(!9>OD8cW5Zq8{t>4)u)Pk2uQ?+Cxtfr>5pW?U zwa6XV=qbZp+kCr>SuDduzys;7ZM+S6Eg?t!|J8O#PQg9m1eWnt_Vjhv)@nmqpm*yf z1l-;EFMV@6x&A530Ew20XIaXa?E3nJyT30>~UE&dYxR8z|@fsg)90$7nxqe zD0}CA{db;*TN|^&7i5J$$qL_<75+EE8Fs9RUN1vS!3pHRqqg*I2nQZ;>(~Ee$4%i3 z9y`bph&FkKhO#yoTnb3YCBVI`bbpeoo0sBZW;F_ex4|v3yodo=2yH7j(ESSxp5GC* za#tP^otwSEO`pop(x-d3|A;IJI}AeHEzsu=PvM z*4ObL|IUO0U7nqy2iHcm;U8I5h|hE|G%iBdo)H5s9NELov|)pPYx5*?a<@F)Y@}xr zefe&D=E3-a&RCy87l4Cea#t{IdJE^kar1(>noeDUz_ zyXTlEM9fR+Gw+YU6+D!%h}K`60|AQfBjLZccMe`PMV!C&DjX-^_$$xI6+LCNkqeb~ z_^AqzEc{i*xg-kP8m#V2Mi#hZF72 zQ^Yt#(xZVY2(Cwc%Xl0L!Q9`69UJ}@i_9_Oso;5s49+W<$anCb*!3WO20tu7u3F<5 zCJ`orj}Uc9bJ{DZrUX~Ne~CJrO{T= z(@~S)5N(wx9ZYN@CX^cKX3#3EQXHZraUj!JFLo`@Z*ic^))ZH$nA5ybjNo_#{k1>{D^i$X>Tmpwm1viKdWw-8vLpk20^4BdFBf}dePK!vjk@9Zh*56X^ z*KJh`n||VN!QyA-iVgW=zSp|RyR;H_Eft#@ylE{vs;F*iCSIKMUSjG~O}qQu#8qlf z`8O}sD;iDt*Qt9w```TetD-B^4dXakNx4N``n&+j1 z6RXm}Ppi^{cTW#KFq3$*`A_NKu4)wt9@fuE`GJ2tF+cFV3`&mbOkXq|nZf-BlKU8L z{NKz3KO^&JYlUQYH+9oOB#cly^cBYq0}W#lDp&|mL{*>ritQry><`ZXN#_>i_7 zUW{(zzY@Dk(El zSGb>&x&q*mJ1Ti%F}ahH93w?LvfYz;4_Y9+QD*{?J#Q6Q)&OT!W$^{ODgK@Tv~ZlpTaB}@jodH<)@YS>j{%= zIBPVCx@lC>km)<}GRql7(tkQ#i_na9(-(bpo{&r|nRFR((7B|Bmp~akS=RpM=x+|) zP5M_M8=HrahO-*Z##8txGI5fTZ(7225gq@^Rd@av)RCX`l_v~L_V#*OBgG4J_-Ty< zH^k0kLeT!7)2SxrtL^XhwF{T)!YS&2)MiIpp&=CNk=nUwd`W!m3M6~rw&=Kiu{e+ zLPT6H92tKX?m7@}872O9{wMRdgV~sEGk|Iz#rEryG*>%xck|L^B7=i1s3wo-7r^Y@oz z_Px)0=1*QQy_PSVzcFgguA+Fo37G2PoCpg1 zB$;@6(mA%3b%>VOd_`Tlf-!%Pu3hKl?qOW=LSOrVm(v)N73^XmMSRK>$q|28@8ev_ zUnk6K{YDI^&KFDd$+NUmvN>q3aU)~zd+OKNN#>6^ETW&zKZ2qTkE7Z~s5XN`^U6+Q zxwHt(!t-!Yv7N$&F&?Y^YWu?IC&PY`UW$GM_rlP)oO2cQ#besCup^cmq@=$od>1H+ zrT9ymcI&W)f{`^1{&6)y-&DtOT(}qIUp|26YCWg?OR5@h-GhMT8QF2(LJKMXI5u+^ zR%iSV8E^BBoj+|&`L9`9Vb-;P-lM61)WYZ*e`F0h^`eudfOw@HBdrCWdvRy7<;~#= z=G-csE8snMWB3DFA;KxGT+F-oo9}SS0^F;^7zLZp#Y5z0YGZidOJ8gaU;C=&WKmdY zOlWnuUm3bw(E5L~f1JjB8Oym}>L2GoVbJ#d;~XMjb1?J&gMXY7eF~B+OI&aX41511 z9(;&}1b(iT$w_umRe1k_bb`17>r)-0B|Y}x*I`e`XeC*AcTD-C$wr)3>U546M9D;6HfB}5adMRc_}=@akb-G0dmTxa2RHM?X$=Ps=TVlorszo+v* ztvD$^bRZ7Pc1%^gmdam&B51FH_)kx@uj!YnSd|Hg7xl#DJE#38hz^C;39o#2x!KG_f-01K1t>xL&Q zmM2$qr|5CZX-I<_&4BdLj3%feKm~$-J>K!^tIg?8NBsc%WsG$Ub{N7S_9fReTetnq zf>Nqtb85vG;_>b8^}}@fh;*X;iqkUwdctz_)A@fLLuFuZFxrg2V}pQa!=d|d2IiNA z2^j>>RrzahfWZghe~^_<95(RkMxFlEF<2s5v2#;pe*b|DbOk3x&DCME7PWjcpW-|t z{FyCrqXs5RG+bV;8>G-6>&tQ=!Wx>JIG3p; zRL@!~lJxiVPrxn%y!iozdEoP_284C?C3m(<5TyAmp-fF_&Op#*Sfo@|M8-es&|lyh zdyWHF)qdsYvP~mP06wkVsYd^>2ddHXTS&E~#b&u;S5vGog&8ab`NO4&=gQ%4@#|yt zwAfYRW7D>KEpp$H#))4#vBhiIRTQ6x7}6-|;bk7p3DfJkm&p+0&vUU@$gefY1- zjET2(NIL2K4?e4(j5i#}W~}o`>Ducx z)#sn(rurNE^qT51rE};zx|&|Qhe*U}k(wltm;>s1s$ z$C2HP^|q~IN^s9a*cO4T_S58yPY+;K@@`lqa~*t=4?s6Q7&SpMKMCZXW*)+(+f+9R z|7FZZR1i**04sG+CW-+^uFZ8-vNnXDA%Lm{PM@+YO1PN$tRKQGThukEZQz=Vk}E#L z1ud&!r#6i^h0G4r@|alWUHczsw#+|f;tANoXhXk7R&4NWviv~`hhPXT1Fd5nqiqTD zvRCuHd=?uj)TM&s)}-=hcbTILup&4v6kj-x?PMl@LATI_HRHYTR5FAGjVw1zDiXjN zQj=ME!tnd{&hTMv_$^D^JaCqvQF5m*_f>%o!%pi>>5EDB;xu&#$3-#y?COTremO35 z>Vf$pK(#C5p7dcl|1WEj!6`7N<(Kaj``5{?uQ6YdiRBYF5xdE|&a`+VSt2#k{8iO} zNW1+#CD95pNTmXlt)r57jpE>;jYW{ji|CmH1P93ra5xF|Cy)`t0Y@q+zjC011Iuyv z9eZhjK;E@PO9Y7G;gOg7k+hbaLpwl}yg0~^Yf%lRsD;n8tgt>JS{s6_4&5~c{1C5_ zL**DDj~5a~2>B-yoM1+U{{^|px$w1pVq{s}M~z}Z1?g)MuzfukYM3Jt5sYtSMU4@M zUjqrqz?;cMpoC-CsHXE5(l5h|4Pk??o>cn8><2poHmD7;O-?6~f%I(=W4 z^wpy`gmE7rKBx2N4=ZBan`FfGf^l@b#ws2?C|qiHIHXCD1)`FLEv$3Q1|nk5}OUS%s>S?dJ`w zie+{L+hpxU1FJfR89!kB6H+X3C6a}gn=WkU&G@q1OW~7*gRjvWwlT=P&=rHFoDn?_ z6O1ENu&m0%pSZx7;Fw`!Ix2_h#h75Ir1o(l1PQg&ByL6UUL#?hraSJ=2X$5xjN$|N z_lC+HA1tBrc4OPyA^%r+f%k1McYqc%nwU_=KQE0o8RdiPFZ#y^tP=_ZwEXA+#`Lr~ zVDW(+$XHoy1ep!-S6O3??eQ=!?XOAJt{M}ZR#$`IQCDLSVW8v58m6paE=zg=vL_hB z8;#&iQ{l0D3KQW^Zr^aYC8?bV-v*~t?fa<0fir$$%~D@&H!=<5H2>SqKpEnNv$QqbR}Mk?y8rFG~SJ88KXiX2;ba^FHR&`-io(v zD|Y>yb!=>SufF+Px8Q=+f{6_s)#2Aq0|(e=Jd5a4+I-XavZiOr&daK~K-EkkS=w~d z@Lq$PpmwbM_f-BzBum7o!gqi~NxJj4o?AujWxXg~ezY5ljw1;GYj&j8b74@$4-0n# zz|uOOF^zK1`whJS-0Q~nW5ph~sP5S$3oCn7`BFh%mkN*Y2g$$i0KX;jVBrs>%YZ8{ zypmhThqLtrm?wDUVD?%*={?KrU<`C8g`f4KBfF6-1&P<9ix_hwTr#lqEq?L1zW5M^ zS^mYE-fetZ{NgwIqH~)z4(Q#+$NBs=a$xRW>UF>25*y2}@glkhv?{ zsh9Wt1x&5n@GnqmKo;X>dc zP>yYwyBmPt_A1taTs@EOe<1lRXw(IUeDslXX6CM9{T8nh(N(Pa;^m6d*f+s9$M$lb zcf~I5Le_k-IFYLDu)?JvTy%?LeDM~?__A9ZNA$E3U+>V8(^wQt%kOW*4RKJ1_;?ZJ z@(&KwxTV=Wqo+A|Qm-3bD2DTMWQZBoRX7OM%-e_LfaCnlffSrjn7ethQ1`*^5HN`{`N9V*95kcYImy2~lo+S?Xl>XZ~=H}QCAjh`1$GZ znhtEY!h6V6+3`_Xd9WM5OZczKmPUuuxda7SkDI2orh-W<_m{FWUz-XJNM$<)gg;WH zU?fw8a#Q|48g~v))7O>`6IQ>Q&0=@l$aW47vvNp?9pP7c>QS@=e1d8Yb_sVTKb=6I z+kCCWfU0o9uGEe7#4#+WqLY#ZwKbV{LKF9XDt3Sfm$3esJSWN_b3Hg>HvqQ1U^N4l z-uYieWPx!(5Xiu|=*RqR5r|}>U!3vRD5E~k_+6Ay7iY9a8Dry&X_n!J9_L-CJedCF zI}2co;^sSFDotEhn)qdD;)c@1zm_qlE6Nz_G5|rF;gefGgRS;R1(G8kZ#tu_Y&I(U zzf|^$-erfCmDOzu)qAPWnl#a&mLxU)2|xU8$CS{d)gRd8xmS)(eSBvDp&a9Q)e zj>>+xg|dD*i|;Jc%9I;4r^{;L&WW{npK8Hmy}ZS8O;EROHMGc0SLp)D(t(wm{g(Co z#PK3upI&^`FbWj`7HFcPGks&Mn21 zKgZ{biYKx)GMbIg2ea!3rGpFXlqYiGEJ?ZwN@G)pxUUB%)^i??1`!vP*TR(upW(lu z=t5gl9I50;$#oC}n?5vn%s|X$GqjOTpctTt*YdC8YyPIx{FtZ3 zdYWeT+&_d1oxuN*)v4MKQthAi%@7+mlUsSs@U*`&x#ClT;hciom!;{Wcb<4?;Xe8o zk58vXE4q0HEAIac@4f7AH4ctgFadiri8?BoKQT-Pr*|u_@9AABVpL^wl*v@ANY%Ed zQANwqkt*tY9Bfm7jvMFWz98RBg_&B0W?(Xy{J& zZRn!P6sKTOwUh2i!XT?TWLKrwTJJAqp1+g$w*?6@Llm|d3bf=OkFx3bny4ej*uC6D z^kJTIEqRPBfJa8BN5!2;PXw|`E?;#8nYZe7M*s^pAC7GVP3^)nFIR6MK0{xDq@ zmFOBg!JwjR@UMC;k5bq4t8@)M;K_Svq^`m1G;ENB6czx{J2qo-AG|q51E7hs8~^&p zyvQydRKn;%H7v}+*MFvRAg2WsEBb5V2xIxAF)5$p!FT&fg4m4sD|`d(Xh~PGYZa`k zU*wx(bvQ~*1brUcs-^{^-`UpShKoH?w3L z)RDWITmU8$Ag?8jcp^L*liyEs&ETg}!5gW*56NwH`2P81B}UKkS{~@9ml<9X8udE8 zOb1iI)!aC$4587jB=Rc7yY0rTsbMd8AOI);Un{LCZG?aNjz@ zd#G{{Hy$cR%&JTv9$^D&Z6$+Bn*Ft#^QFnYL-$D~HhbB7=|+ZVRe2)bQdRQD+-1SZaihsMNkcd8-tF(WMW>4{+lKJDjq{3)}*=CIiErpN% zq90=;QXt)v5*9(uA_2*<8p9bIhGP)aakmv%J!y=iRcl~vc)9oKpZYK$>O=Z})c9~3 zM`;Q!zc(g-%rLcyT9-DjfSjxcQA6deCxgZ?6`TqvD4)uwkED{x;fP?=9^5aLf98|Y zno|zWyyJ*z-+(OK7-GniI$E)!8{sLL*`@R9wY(+Cn_I)0PGi*+vMFusPWcURg^`?B zbC6{KcK81K$;be1pUN)BKocGiuScW7rh2S`CU^B|-c|R&2g`>> z+5f_NHdrT_=wU(x$1lJ#p+$HJ!jFmYaks%Hpq&4dz#zAXVqO7&T62!<0 zTE$ku2MtWDI-MW=mt;OOo0*CrhD~!X zG*z*}T{Iki?fuUp{vdh!+2VC486|CE;Wr&U$FvAuf3tb@+1}ZqJQgfraySFbKcs2J zdL~RL>4-Kp*d|+YfUW+Q>SWJfHDo1XI1z|Qm>&e>pQ1dPuYAE?h-qUR6A1=MA76#b z&*FoG3b$Nlw51LO$b7MUZ~^R-vlELkeW^(Y7Tg!axG?P8+vJ~7euyB@knz`M6h51x zO~<+@cM=6I4butir`ExkUkLw>V1y{J93_2f22er{SjGdrGdbWq*kbOT=7qMk_gX4x z59LA)q7<7C>fw&yTUO6KuAcpgc$}_%GZrbn9*Gp*^-r+YOFZ#rwege+&Z)y5e^4ra zJS!f?BI(52Ud!{62MA6|CowXqeOKW$wRiF6w7F3GIY)^sR{r1n&mWaL_%ianp8(1PE&l^A%x9H z`xZNqm|zJeuu%`;BPUv)2W5gw>+DR1*mz7aK|$0UFrGk=OC4Ibs5l&fL*~A$IEkl| z-iU$|;$LTgAP@F=kf*?wfcdshd@h|hZ(yU>awUs~ChDjZSRf9Nzr5PcS5lmqG3BP* zsR{oM5~s3@!O_cQiW9y`+B(3wxURD>HJs0wp+t}UMZ=>KPI}S;MkevDms?~QhFaT6 z$)|Bbhc8+#laygL8bS7jvVdRcU0W|2W)T?%uIqZKvlDbtABH@RDBa1K{V16We4=;{ zJYrq2U=1T5va%t&xMDPuBllaCx|ULr{P^Q}2MJ<&_Wsh5>|6QF7{78$#7fe^Vb3gR z{1ygZgAZFqUN_Zn!Gy=-V1To1hm*g@?Qk}Rxxb5j9iiEl)7vXZMyjkO@lqK6luT2B zZ48f7@e-9<6!mL3+2!Nc*wLcsH^q6 zgf|TFw0vi6A+ zgT1(hyVp^vzP|{QgZZCWs{J=(@@pBExF4o;*40ekyKFiJA7+DFkW|mN*>(P%B_+l8 za15K2H%a#rP8NkvY2A??a&>r_ws?%Rm#5M*1%*XLcrwup zh|UTxvy3cZ0a9c!D%0t;xOW=rJSUk?>vVHVBrTws4gIqPsgA-PTC+5Xs|q*jYwQtQ zRjWuqR-%X1xhUIUmQEDMcFURkdBQV*a89@oiY)w4$!&(vjCt?t&1(xd*`PWoPIY!L zD$YdC02WT)m0O8J`Drh>+M1}XliOd>Y0u^)V+H27Bch25!8;Z;y~81Sm7Nu<0|Hri z@!IHp^V^+Ew2w0TY_pNmW#Jj?lV;0u5=+^9=goXh8(T`YLU;2MG>p@p_#$2PJGToZ z&=tx2>06LVXRA#6o%*Rn`m$uU4MVHN9GWJ9YZZl-tB^Qg)Avg7HM_3DjTGBj=!cp+ z>TB%R$KKYj9{@VnC9|JyX@=S6tWO=eHUMP@+xhu=#C8~L8V4U~;MXE=9u-b}Pv~dw z=gF7ef?L7ru>U*7Tx7!VVu`f*TR3M`*?Od%1!EBt!zF;1j5;zJ<{rw|+aCWMv_jw9 z0^O=)jXt#_pkKOAmEowv0$JYtHWf;Db<0?_75mt7DK6boy4O*VH*-(mk<91pgZvyT zf&@HoldCB|zmb}v)1X`QTy`FGaIwMGo>xeOmSXF)ZG-WV&~)O-CG&HvM1H=?hsPD$ z>{4aOn35OcLAY7rx+MmO6PV~K>JIl5rseOng85rCOF+qe{jwl`@EMAlWM!FGdr?Z$ zCmu#8*c_W&T0-k>gDqdZD&qmGTz+Hk{JXzp<;V8Uf7In`mdff`=kg8MrTtm)U8~0d zrKCTb>MY-luOxq`A>?=DTEPw>YKc6N7kCuF*)~PDRk%$Nd(CkJy)IGcL40j&5qim>E%6-T|JN00K!quJsR zJl6L-CVL*o#*hB>{kk+uLBD#}hzzb&ueJr@UhC*oahNJNjJ`%)8SftZ(5u#mEmtlI z?c4n1B!#NuB;k^K9&36Y2lYJGMUP>7C^#7Cqn6YDn^dM|y8b$afXfn~qE^P)lK34> zPt?m`PLkK$FJ0*hin)Pm)#1Y>L&-N*lQ%v*l4A{MPSY0wJN!VLD!ARUvR4tfs^wtB zir|Fq+~bpRd@)}y!l_zrU7_hmAMCYEl~m=}Bq7a)NhZwCs?(33S5yi@zk4m+$fs%l z&MwmF;HnT89G&~d@~+!&4CjVXCb)v_#z#%Zq=IW|Pzh@FWW#}e(3FE&Mj^#xruK_? zxA8>0+nC3UaVt_L{2TI18dMp$1rJEKBZPE{hG6_2>r2 zeye-u|K8;b?q%hdyZq(7^Pgo$K>fni(()~v;en-RbzaNA0fV`b=wt>oD=DId;+L?a z!V(hh{$Ajg3=z`u^}t2~$%*@0E3Lg+$=&g7%kLwG+mRd3k5Ow!t}%XO(F*FvDH3YS z7Q(#Z`ImxoL01*@T4wFqQ$aAf&TXxJZm`T-t@y7{jdu2CH^>9K_>T_gK%P zDkT@u&Iv*li==W)tZLfFjVs&9x0fRztPaN=kHDFDtr-h(6T67KUg|TzIo*6)zMhdZWM6dJI2xd>+eOp9OuS5i_|dtNm9xf48%;$k> z#!u3C+Xn~~&fD%P&Zlf+vnYJsqzuQmA{u%^$`S2J z^jh z#g|-WPH#LThT%ja5wqIxu* zrqzgBTIa^!aoFqULJ^M?0Z+dyNY82Gt-cxHmRA)XK##(+fk|{_j)@Cb(-2y26V8IX zW{x)2fc}zmxUklg=-FX{hEu+&!=a9dPFR>rB3>S@*2`OWw~ zetwQB4)=Ra9kh2=+!X_p^>!XyQrHnb^pZ+3OOdlw-CLe-{X2TTu!`6@TF5!K`_quN z&WA)dc$T4tQYM<)^bN`|JVwvB#`E(JXKs2m6@@ z=BYKB8Q79agkPMAYiW7f5FfsSQoZS;6THXTWqUkd#Vea{DLiEpF~^4MSZ(-o2j)hr*Y>NLaL{{>W2bJDg~KQ-P#+E+ z5pv2zJ>f}En~@o1^)@`#$j=tAbT9!M^~qH-aBo?Hs0CPN!=4c=1&g$AgJN}o%UEwy zD98QRxL((}hdbO(`<)rCnNxudx2M)%f|L%XAq{@+4xpb851{AnaQl-IO?2tu_Qi;q z?{m2AK!|E4B^}S(2%9z`X!=^Fm_*np3KNhdaH8^cO7rK!N8$1Ut62~#DpH8o<*i$% zc{dE38zn0{kJpm^lbw5x^1C?X7+!)9Y&wJxTb#AShtAsJ z`EYkS?KU0nara*HG>uKi7HDMpR5l$B8y15GY&z6-5gXK^*HUY{BW*pPuoKaUa*Otf zsGA&pJQv;<5t$4epg~ok%4(OzNTIVHoFRbLb;+a04MQ#HwOr5G3@_$!Y0T@q{Q~bCNH1cUkjPeQlVFnq*Z+3 z0?daB3bo~`ag{t~C^>(5+1KB&MJ(S{UWt<7fmFigtME&G=ag|swtrTKr@t@4wW?SU zY{77X!v)^Pwq!nUSnbPeD?L)L?IzVmuAf-{^m_-j>UVbZt51|(9{sN2H@r`gUGhdG znLKAo`BOQW*$6W8^HJEUw?Xc1N&*~Jq-&ckzK|u~2);jwe(hFe*KX2oIX?n#LmT?a z?-nc^Q?~8~@1{0PrRu$#IvT3Fy_R|X`82y_Pw%?fJf*NC@jFHjX-lnGcT&Fp9-F*t zMqqWuaY|P1rY>sZuGdLj7kJONZ<6n+Ok&}r*HVeUkI7dqYvPRklFCJXE5;+2USIb ziH+d{;x`EAf3`*ScDLwTjp@AGMCJ424LNRcyQbA)pG&Z%3Fd1)HP7k56$s`CrTD5# zppGYhHH(JkQ6#sNB-Zfe0pl53fwBhtrZte@pm`m`G9G-3quDYynNe7oY!(tC5o?YeQ*k z_($QMhfoyFfRe$z!}OB~F=7*s)2YK8eJ$qoE$ucVNejvF7Jb2o`T}B{tT{s6tWv?F`F7r9e(5v4MAb zir&rQx9K}333G4X6d@N%>g{zpHnda{mO>Bv;E%(hEDF(J!&^7XM)-F1SQF|i>41!W zQLl0ij?ORbx7?SF3^+X76|JLF;VG`Dp+!F0%cHpc>?t)ApRmj>qTIPF$#%g=9W37LAzV^qbYqs2C#;9szJSc;Fa9wrb z4FKimXr$8L+#<<6yQB(9w;7_eJ~PEC4s^yE!q2e@k5HUB);p(G2G5Fv#JESL*_-n| z0#!U#suJFZhn^&~i&&OZ_PL`7l?TnogXZJu#astl=K3IA2KCg(~r$3>M|GjENx;cJq=lCF#(6e*APm6D_>b@({KCTYYN1r;a zUtg*$A(Hdf8<7Z1;W$0xb=I)V5lKIlb|-XU!WC^*(Qmt=hQy`EOTW~aTi{kj7$ZPM z^(i!e>RHW-t!nXBBAFjMAbimBZ?XR6=P##e$I1IYtC2rowll$>osmUgKWL=sfq|Bt zYy9ZD<0wuwXj3nH;q76Z^_JtUY5{Lm9=ugWhPRt2*b8r~pWGI2qp$5V;q9Y*2Ht7_ z!rRwhEXP|b9^9_tAe(p&fL7D6lvZW3Z`atPRYb)d^4x9o~20JZb6CY%Wb|;-`Kle z>x#aMrbORHk1Fbh;pnU51a&LcI9F@g2hBAKry9UT{A2P z=g;IgTGLbXu8PvV$nDs#tJQL~%1+9Q>7z()YnK|ft4HAp1rbAWF*!y_5R?&xb@nRf zVCd-Nb@!zvHvEb!+NGlXTv4F~*rC_jD2Ml{cm#+JI|#7u2hq@fWh0!?ZUFsNQA^ZCAfTNs4-9Ym z)JJ-b(-PJc>J2rF%URy10@EI@Aw#Eh!P&(+*F0l&?#p>vs`lmhJgqu9PrLeZJ4>5< z5$5U))yN=gFs;BSb&%*x(2w3EX35R_6;1ei7n&8Gmv9?QWXqvltJI=i%XFd}m*+LV zR=AK%_yXi)KteStSOxP1bL8*?Y=-lF7;?0!WXa1Z8Qu@p7yiX|qD}#fa4JN|-g_%Q zSk)mg`%A+s(WJ#w6`f?cb8Uwj58tZE@@Lo&VyS9C#^lG|EAI9Ti))OK>fY(c-uW}` z=G&&Pg*z=4+PT*44$4Q1gz%AK*(tiB-mEtjPE4v}U5)yQdSm$K&v0ny7zF}f{N8#q z*RabdpPr77-}y5X9+}=uQRBgUtJ``rfeaZ8Vt-*aAv!f%Y)4}8lHBO}p&!?eDRnH# zre|<(CdY5o13RRe?q2A}0i&Uww!c_tZCicT_IhQ+Td_taq$B+8ftnC!K7@{u3c~9a z+ML_Q$Ud9n>akswW&F`)Xj|si+nZd5K6e?{x{OuDjLTd`TQOt2%dq{qReF-kXmurU zZ%u61@F+41hw?O}4ZJK|L|k@m9nB!teY^m>4JJEFYdkVu`A3I9OqGf|Sgj`29jBbd zfL??rKBrdfbbwHJ!%8;lK|MDkbXjDskq1Vn+niTlwyd~GKb^;IHt8qZd(5#`hu`Dz zOE%~`vVn6O^!p*`k`4MEa3D?JE(GE2frPsAr5p5f&ejIKbXQ&uv<#>J>{i{`gh8h4 zAV3>w1IzcH5LnF8OxCn~l3iLCu2@QL{t+WwVg>@v@CNNZ^N$$yM5uKYS&^(%)23?X z_aN0tZHBEqICQMbh)~AMDO_@4-?yYFe5SA~N~VmzrI6&8YMhx)k5PJMxE#n7Zhn)u zfH-Sal^wF~v5{A%d4p*kkW4J{X7-ni+5R@m(CY9_c0!utSQ#_h32AqCL)L}c72Kx$ z+v~iZZ|^LAtG#}_$0+;-=8C7cL8AD-a->_hi}=-OHwBPv$Dr^(ly@I~3c`2htMSD& z-U@GJO?9}6%1SEGT9i3z2rHq5=y)jgTMYuER#e?Wf;&y3Xn%C+G>j-)zc@JyI zf1&RS7_zJ$Cw8+y-nbI-iZqU(w3a4TS@HkyQ6ov0>GSCkb-|!a}rqPwh#vX!7W0U4bGMk+zqiGHsu=!-5W5o@SDGUr6 z{{qXd>y9pKqTy8615K^gNt;=dG$@-eh8e5Xp*JahPzQ-SSp?3xvbtPG^yR7<> ztS4NSXp|3iM4(0=B)9NGo8?8@oLBC|Zfik^J(>{n7fiECXqUMR80+voJYOq#bjEkj z8@MER$5lml+9(s_s#+RDOP#kxI=w~VtNVVjwe$DkALmhlzo@nIkEP1?rXQ6l+V^-f{m!X`=jI{m`-wY!GvbH2tTj zrq_*I8N{l?Hmo@cAJLD}>XxxH=4h^Izt}9{s^Gt0QDUgqH{jAj0VIx}@rNfTw2bH6;4Nzi0}qm>qAF6q`@6!pQP2 z7Y41>e*O(GdAq&#`G(i(b*FiqEd%>OWdOUOhf#$GLc@irWR!yE6Q6i@!9;wNUr?cI1B8SoF$Uw98dDjdmESwG8NG$dYd=rL7g4Fj^!qT$3c$b9^~YjIcAvW`Sqi-(t$ePneH+Px}5{ZBGVTfMI| z@pM^D<*gn_L($?C{z^4f_inj-tUE`&JYQu$N4hF)sI1j;vZ*iY|4n=t&&Iy0>DppV z(R|Hy3@ZEriYWY zM{fCz%jgk?uX7n)s=_4OW-`PYIjb$^{nQoek%z~+j2?M-xXWmDpLi|(y6NS&$Sizj zreljPXe|t90WO=M(Pf}IL&A|8OxPvjJdTWceA9E~;ZY>&7@AM3$e+n5h1cIo;I-e& z1~09rVYQx-M0&yN;fJW>Nk>qf&q+j`ggB5&tZv#b#ic>l8Lob_BLunurFqxf_g*)x7+vefx_UC|H)2%L_rRPZX7eopl zI0gQ{pVtNENVdV&b!h_WZac)Y)Z0ldZ50ZtHYqNO1 zVTT)X1Rk9X2=068`;UZKu`R};a5$_IFjQ;kN9fsgt&@EY1mh$zcT&>13d1X#&7yH? z^HCZ?I`Ih?V{Uk*7gGMP3@O_pE^y9V`tSe=fpFqhK-kzl?csQF_w!CiV%8|(5tK!3 zU|E4>b>3Ktq<<<$nRy7G@jP^kV(w8!8OnIMTiDISX!CZVRV9F4wSdC!flP2~_?bzH zwn>pZZq)pz2htNgheu_Hs_b`*Y@VA{1iAWh z|3xUbnA+bybToe;kd35V3iqh+1^`>zmFE$Daoj)+UaZcY4{xr-CMbvXjFIV)VE zDk$1<#}_PMY2(AYMfW2%l|jdRpi9q)35#ecs;SI&yh{Sjl!$hnU3x5vpAV9BE-QtT z*Rn7B(6SNsf7-#dN+aC*ltZW89a_aK;uMh5?JEsg^K*v~0+=^)kp%67iQtq<1{I~SMs zXubR9!@u&)nhX9fjK}p0u+;$nzZH+`7-pI~sLV~TcwBu!mVYiDR{;dm#pQn(kE@M> z+l}YM759HW9@mv>?w^n6bQSAf&-Kgg%wGmWYg~WD(VUY03sE#DMK5Uoq@SWXU4|_S z_D;)OJTHD2Z$KljQ{nxhBCl@Pf z$&T6Ag+m~Nl6jLeQuH$lZ=z%Ph2dB9UgK8yG&!8+t^ncFvhS^Np|^@dX!(IE_MbHe zY_CEnszZfGzxJP{73hB)PJZ%X7s)ErxW~jgdEw@JT)P|B_a0nk^;VPZKGl~Ei z-s4sdHyEFZNu-10>Fy;==kR2(dj|hp{`w3TwrZbBwSTb#KE`&)RIHb8nweW*{^{T( z>{y>j*M7>$*$%11^OI5;|0(kLnXxcwogWU$O^`aC2%JKJYeR28Zd77&=+$|z{QG%IC;P(#X{md_WsVOP5b}pv#pQaC7ZAvcuMC7 zN~Y~oc*{_hdKyk=9C5twA@74|I9prKX~pSyh58y{Y*akiaeP(uizyaq9mLY^DU2;c z+;aX`rF`Q41m}XDgV8Rf66>1|wDn7NFOdU*<(hSjSlqI?z8UXdX9>BgW8`ALTEu?z z?F%P;HJLxmxnseW;4&5hG+Uj&3}+f;cZ9=Xm1u^V_DKah+A@~PE_J)cAKuMi6Pudf z3wH(TEc)RQe1j1($StRH{dh0c^AD)Ahx*um$)7Ochy;-rTm*C@ye|Vpa18?<0jQ2m z4ko(cRu`eNqN8*e9p21#j%J3mF*y?Ob9VqjI_I@K%R?r>{|gjdyGFh&(zRb$oJ+C7 zcHV-8T)AvMSwY=W!Nt(U#eDjH(_oZ$)#Bp>#Z1?}WfLNLc;9{F<(@L~#ZQYP-x9WM z6f8W$(+Qe?5NBPuqe)JEL61S5H#_{wANB=x!TdLd-Nq=7mRM-OTXq+q%vT=97>LHF zt|f8J=;elhj`X&0D!)a3C_eu;QEANQnOFw5LjB7RRDX?3Z&n*xrs*5Udl)gdqK;tx+G zEAUYHoPGRpxUUV4%GVly_}C^92Py4ug5q1t`NL`!9b;Q1{DGq&SRFLKE^O0lu{vDD zR6LC*&uCI5%)uWHTjDy59T4=rF8r0%27h?pf%URGHBy)+aX-Z(F0U>$^w4`eU)Iv; zd@5o~SJ(^}_U@ogd z(iaj7UWZEP3#kG6($VL3=<7)uFQc!1j=m(|crzd7?LR?Zd?Whe8|dqG_l=i(RQT(l zFD|}4`a;f#>FX|A@5<;)@`L|Hc$-@!inMjnAGS|hM>2Dwtuy#_d=3AYVn7K!Q8=cjMq}OE(33poB4wb*mr315=c067IKnFHA*X}Dz+U8Z zN)H}7Ig$A>dfJh1OX;aru!z>#|0zAq)6!yKMu9{<1^wwwPfg@Gdb;p`x#BTBUHCiF z(9<7a$>D!Mn{M?UrDDKP2ivMJ=CAlmD|#_c&UN0*|8o}?+;MZs0>(`&q((*Q{(d_6 zTH41cD1zbUbnQwPSNYSvDeo^K|A}69-dDLyi41uXR7Gez?l7-N*TPmmQ5nvco|^Qd z47&*b@pPilbPPfe5@ty+6ja$PwVsZvG}8Ikm~`$DidMh^EjDbqWZ4JlMS|s?ga$tk zB-R=gPQDkKKzKtU`#P}^SpgNWRH8o2cU_o5uqop8VRsn)9DYK6uS4Oaod2^nu|A!O zWQjsDV=HK3WRVZb#OmP~Y-z+pHbHb=fRHmY@rhGJH(EnNWXvvy^9u193MsDm#V z3uO)YBsnj3zsyP&M_=~-!lk4q()d_TwXb1SdA#YX#K~oQlg7VVRp_(ArSTF}m8s~` z825?B*dgSM#(2J#T*YH&EIm!+`w!A0<6>Z|#|X50BQn`S<3w-)Xb>MqA~>R}lYc-b z$lonAbbLFqs9RsD&3L#OAsDT^!ZL-M2}F0B!oo12cQGKeZqUrsh6o~U{-%ksE21?- z5wjf5Pr5Be>x+3xU$|yKVUFQ6@f?u8EFL(n|ByrRP=SDTI9{ciu0V9GZWVxj(#w}r z)0HLdZ|jU{M5He<$7;l?%CL`2v4>3H(GSFKZ#pjK zC&JFdlEHVA{*Yi|m46w~$8E2F89RcBIQt!8q1j05*@a}wF04sr+iQ}E=b9ICB`TS} zw7TiUBEQpoU6m#jwZ-bZy4}8Dqw=b~#Xte>W`9j>XMqmzTR3^6k7=tA@WyuGZTM-5}lq za${qcX)`pv2N-EuldnK3MxJW7U^<3v`@EO+xo|x7I26D6w`ds0bmuSIntR-z*gb7^ zuUcD5Ywc_=!b|=yKX!$KJHf^A3r2RCUo{{!n%I@y z4gTov@FS!J+!_*}YN|@ta20|0NXjI_SM!s)L5W@^Sz$fWpG4)rrk_Yggl643s(rxm zbSO=H*w|*D1AVWhz$#OMzuVB0m-~sP4{4tUlqjdzJIs&F#Mc4ApD&Y z3aiMdWwn8J8T5+f==m{T3n2K(0gVgq@y86BD>d^)!O*5$HnFY72t(l^!+? zm)+NY+pn*c_G{hrC#)3ZU$v{)2T&K~6r@H^XoJJ`Lg zp>pOS{4>~9x^i$Br20>z{?5OZzF6j79IY3Rnl!vI{EkQxd}tbAqtvn0zhhjJ%vRz- zP=v$%t>3`@^FKpPa^}DT_^jwtFftq4SML*RIVQL-s`O>yyMQLIsEeBRP_RznWmvDO zxsbFWyz3uSy7bqo^mA1zUCf_M#$6pgrtXsdO_aXWT8g6<{FINvG&QS8Q&i-7KIx%u zt)Hc`t`<%l6uO8Q3qUgbe>M*YUjp)(U@FcqFCLT$&aX}-HhL}hxpjeyxTa5w*Qp-f z#5(oHe}kvZ%{FmvY57>|)KnUma_R0{5Y~dxH99tn4{d&~+b}osLelM_7Jm<-DV#;m zwpph>F0NDM3mSCQd3(H8HJV}O6ycO1$Pp|!7N@%`qSvv;1UMfu7fh3jrTeM$&z0PU z-!^~UA*4L23g0Gf<x-aCJtheLPNHbZQbP_ z$efztCYYPk-gW1SxffYgvZKRxm5_BfgDFo3M7>07$No6uFHO~MNl86lv9#$(cxWbn zP0T}6{*H*o7H0hypbdIJc&Oa)ejNUobX-kZ4kY#zC(KVms=@2aTSY##QWtw+3cCc! zDt`&#qZR zRNBh=R^6$&N*(RND=q~t?1fil^3PNmyRBsiI0Ei&UZCMSyc&BGBk?b04|mwWw0}M^ zMc(a)zMse5qEF9^G(4ttBC0ILD>F4W#n4^@wICE)wQvwMtfupp7-2?qGgUWU7GsRt zsyt(`WYH^(+dl3bYJE4OBdAsy)_+IJ7S7jeqjbZ+Lef(hMkynE%5cdwaB0U zYi<|yuMU5$-LFt#@MvVYHEW=(>aZO<@6P)(ivPW+>E={+18b0}fe*0r>QiWom(A}L zn(1q5K7aIYr*vYScimP79N}8pXKfH`cXZezk9*t5<1$@m10BiZ=~|>7E^hxb@_459 zL*(&FlgBrU@wC5J8Oh`SCIFc{&Nc@-UACa@P2Vq-$G_p^aU}4nWXBGMh7!y>M!4AW z*@aAhd$k1c6{$qnl#KL4+mXAa^7>M_yV2-AlUR!U*!)-~*eQdag~c4}9;orTR!xBx z-ghehvE<#y$=$9pFLw!m@4Q!XX)JbYF^*Z8Y|N)!Ygmx(bd-NX~??5ehPPrFNH&4u3A%D;0bC=X7p zNZi_aW9ds$zlG5%LnvmsZt&G#*KSjpR*cSFr_|0 z3cQqAkymUVkJj3PE!Sv+?;s6@oi&pCe?Z3ct1EMDQ*ci^x_SXDj^(DUsh**y!AwFH zF^4H#LqzMA_zYOT&9WJu3a17?QBrjipV;}+x#oVV7=RO5UbNM>prm^XU3Bw>D6#~M z8u!WJ>Du^C%&ihcv4Q*@lk4H!dv>;p#Y%Kp#H;AkYU%5Hi);-SO!k%XY%Mu{Fh1)ZLz+`D?S9{EeD( zURZ$svk!;*{K8iB)!p#Qr@W7)fd_-nJDm0-iUN;UAUA#r0G))2N~A?)#2Fy zN4{jOM{uM{fOH95@qJk03*j0B2M0PYr!MIH)A3gChO0?y-Qz?{sJ0nffZnih^p%}9 zs87?&F!>s-s_<^?DZ+H{GqB-Z5Q}lY5Kgj&ng>XWHbYhg)29822b!3E^-iPwHDKg# zge|WWu1Ah=^}1OB94ru?FOh>1*{cj3F9Q-z=U=h-(>=6m`bIl%en#ibQrFL~p%F3a z$Le{2ga?IJLNyQ+5^z(J-E|Ei*gAN}+a3q&lJS%lw*#3rhUW(e!NkbmmKXERLtXqZ zOb-TMw7ILp{aBk|gHo^iFEk}+D49Q@%4>O(QjZxgFysgy)bgJlISAiHy_GFC{tRmZ z`>Trv4oW39;Kfg55$S8amT6Qb9YBu`5Vgp$6ahcC(WQAgo%l-@dE4!+HfaB^ND8*O zI$@SJSMu@Sv%7LeMiMZ;&0E*Q?sB{^?2KSP^NYRF&dq}GVjJ$L4n9;nRor;B+UDnH){cpm|{H24;WcE zmS)Oj>%G;mZKEbJTZLUnmKjf;9v8R0+y2GUDV6q=+;;DFxZAreqERf7q)*t_HVtdT zJ!c|%Z{d#4 z8Q`_-rD?}P$CS_?>G&{GUHjT-95aw$0<1$U7fxBxBBzOo7Vm<4W^BpbKbhrKp%kcY|23S1x=IkBjD zg*M(5Z)9o_L?=~YGgXPj(ly@_ACl2awi9vJ+;sF~$nwvDn&hgg@MB<@lE&}lWcC=m zFa>809B|EGNB6o~_i^|F5{*+7Vi1Bll?@m7vy`dNu*F=QEXT(r+X&MoF^?EUaoDs8 z-!heg4Z2g#-gFgEB1T7t9XSDCw5p3RUs#l^Smb4Y2Ux;$n4lCD!6#D*H2p6MR;VMB zCGj;m68h)hgO;#)1s8PzL6>9rU2L_wi12_HGMgFc&Msn_oxbGNrhOy3p6=_|m*&p} zR?SF^Yr~MVh~EH_c)$6%lu2Fy3ZH2&>a3w25#!aUUj+0hnYR;q&D$d8Z6W&_`URAP zB-W=hcdX6?ho%#6c`YxCj}+w}wwmr-T-(`_O*f*?oj|9R`9M}>7g@?ZbdHY2QuABv z4KoNV@EbdG=oh}8Whmex->{nd=b%Dg11fsSie=G>L+QNgWu%#BSsBFzeu^cQ2zrCO zmL|1=4UPXg_$Gbpf$ji1oSPH!AVC_!i4#ju_&vFV69S4$s)-2H{4`OK=msb;*vN#Y zDwdiFPM46Gu!T)S;HUred>cJzLI)W>C;KXHWbNx{$=RkNwoIz>ZWzVt5Yd^#^Y`IB z+u->sWo{48*^+uQPq!5Ymr0Yv99W7XQ?kl|5PqM+NL~XE$DbYiz1;WUUxi7=#9lI^ zHyd|^gf5~obQ9Y>dp8bOQJ^?p2Z?(UX4#W+vnLoc^Bd5dxf6>tsog4D>ZgcE0m0S zh|ox*)}^XN;Rs20aPJ?B3(;}^Ot83pZKZ|EQGo-a0-u-|2wq`{0ktiYI%UszsAsOw zP|qA#-Tc1szNVcOyfs`hoz-MET~B?W=$@ z9Vdn1om(7;XNA0k{g%$2C9;+-4t=%%q@#cLvipnSMOH@Ile2fmra|6dLk!^^pIXV$ zp<5rK_$G31l3gfn+WaQeZtKB^Zaw(CFZ|=0{cJsePq4n4fynA`Gecv>Dw@|Ov-CJx z0``U8j4r^6s&IuQlPm^^A_dCzV)>Gg>1_$$KcL9>u~&odLmJ-9ZsXxR!uh+k$oJ;_ zifb00&zu?OUt)~EMjyep{dJ=M?T=Ud{Z05gL+TPd+e1!WMlFGH2xqy(0Z|Nqf0&;# zTLf#EUpSB!H2jpki=S*e<|5n+zA85~eJ|$Yv_}Pd#%r&^SDu=eG`}f$Fd3#QQ+sE& zSHZUx;LJQ?$4XJJa%TiDR2I@@ox-kKyo+!C2st-j@fD;77XtN_t@4I z`R{>_|85`thHqlE@LN{Vh~LH@v=?*7PG+DeT&yE2ev=O1|wl^pCEj zzWgz-8@Y&U6?S77;fSfR>>AyBn<(lK(+|I|-kwV`{04=@l13xwius-8yY!JR&G5rr zth;bDjEQ=8cz<={E#W|a5J31CzIqj$ZYlYyc7qlcs@;)l-MSd_J2r2G4@dA->SbDmK=0Xe`9YoBNAoE$VKjQwm3U*sNrN*pp7G()hc zWA+*-f1qLhQ((Z33qig!zDKe|}^vzo8}bNVkN!~d!N z%YE{HTK{D;_rI_Ia+|#`9+L*aX;N94rCm&ht0i%uG2rHM%T+8vz4Q|K`WiN2T}H

QmU(Ks|8E;N`^aT%` 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%0D7%33Or1YPpR?uJU!k-3 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

O9YPphFE__fRBmw&cl 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

;6~9`6aaROK9Vl(8jOI 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%0A_o4fP474~)HHb2n7Ig=AKR9fp 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

RT4=ntg>JfDrjyRNic8~_UUmp=Jaq* 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


Hn4=!}tu?AAiO1{^wvf7tVwFKkHlI zuQ=ZSPVDc7i{NvxHU5g@{a?iH6}SR^1%GC}703J6V)s4#1-8ZSE2uc$|Dc|xxfm{l zk3w(%BKp?7>_}g@BlPy=y-jl`TntC_G5r)c1D*zFK_BmktxR(!tn6#!8=$wB-Hq7K z$L`?-`xfYThZRtHeEdFJn`RFsL$msW$f*f>|VlN{|EQ| z1b_AKaQdk4<2Wv1e;kND9~Q&)^>58OPj>rj{9v1z_LJ7>6xRC;=;yC^6J5N&Gxqk6 zkmqNp^F#Yt`%HN+Ag}hF_P6@x7rjmA|j&AK1MQ zKZdKIw@Y4JUAcr8SXu8eA<4- zFJSKeHXZ@fupFiiu;a(UTcAFdZbzfXtB89)%!(J8)=396Fn*V`1sDxi!f&7ppZei2 z({!C=tT^2G5cKvxVXyBekiEV)!Q1CeHjTbd{ojnk&vPAV$D6|Turu`W?l{ggAHv+@ zZCnn$z5Y+da*nTpEvI-(8;?VO@QF5_1do6-;I=2(@w}eD%e95&PEbX#3qw>jSSWIHks zE{5KI752|evm-CVhWf82&Sujsj{JSTro>mi`s$N?6@K;EZ-m|Y+N;hE^yeVgw<$Ah z2D_hX{2K0ZnxC1C)#n`iDzKjmy;lwSTCAu2)x=o_{|QxBR($Flf4Uu+G23`A^!ClM z+xNe;zbzrYuVX284_Ej~Y`l7wu{m}d!5(l+I0E`8ioZ>T9T^07f~JigFFMQQXW$F4 z+1ZiJ+EOLQABFG0MhW({==VRzqWm4|`|Q__oslP=Ynp1f0Dca=ea;-y+ydX9YvWot z?*bdohu(iOcJiBip;=VGmGBGrZ`k@GAIZjJQI|tKE$Qio%WaD7ma4!`?PD6LXVH7; zw($iH{1cwj*n~>>KvNq(4WDa{p~EP~H83gO-7enpX6Eo6Op1RraW99euSFA6%*Fp= z7jJ`vdcP))<~y3YR9|=E><;gPs#kHxC&a&#&j~5M;`JpC=|e1Up#5mpXCgcV9sy5= zGhvtrA<6F;=coF;zve%L`Rj8PdnfcG2YqkY53aBOc-HyX4Xl!;te4hJ`%`_^x@lkN z`*pOATDQj&>g`OPpP}NvL|)&Iyaw7oi@m-V=~c#W!cXDn(C16?d&l{ye(!$@^PUCI zg4ZPUgWKoSc?8mB@M6X_@HOc1ggbx!!T25c8PvY={y(-b&5j!ySHkb0x36evntAXF zcs-mCmqPEqABuB1FKeLA)76YyC!AlW;9r{H@AJ)Lf9w0oD_Fk z0tQomYxeanuo^CfAHznh(}%Db`=uPdkg$LDr4P!dcwZCO_hU)}?Z3lb>#~M%Bj(o) z_DEQ-B){g)Z_5OK&Ho1GukX*gJ)s|`qdy<&`@h%MUwvFkJ-4zR^Wj2R1ATvwXTNCO zhp`T4yLDDv#YtLsAHNU#R`CZ@$FPKY(hanK4f_>P*S+@{{{|Z+?5`w0U3cZD@5lG^ z>&3d|!X4oV=OQAPRQrGihR}Z8JA!2 zeddBHyv_NvOKdAphK?ddb(!<-4A-kLTyB zy0mXkVV^z%ucS`xEA3m=t$nLJ+PA9P=lem=%dPB4AE^AwcXPu2_5LFo=r8+A@axAs zw}S(q>hbmegkKZv+QAOc+sm$nv+Ks#=k@*vvF_ub{tv@R3HzZLpW9mrt2eWV%{uzX zHkMs^2OE#ZeiA$aDo!bJ<|M@Xxt+y%t-VqI|KMWcoKTPdZ}_J+HUAtq6`l^ShWh@s zjmW3?GZX6D{{JZ6K;rHMhr(elpUowlI%dp!a_pyYJx|_~Pbf`3~HxtBnhx zkNZ6FUxoTyna?+)i)m)T3V1d=AKnAK{}bq+f~rrS^Qv|Ad4Ks`z`SmSx5GQ(QmD_V zJxW~l@#%zq_UmRD`@>z~P?!gc;mY1-pV!A%YGc{y^Fr6;nErZL-qXf4&_>Z?L+x|B zo9~VACg|hTa8}D2Eo8?%gEnz#Td88BiljOHQ{-fY%==-mEs&6Ux(-FTdU=I9W z#cyam+DAL~utEnzA4mJVg1(h=-c&$;9^I30KCNNCzr)7l+X!w9bD)oJRYs4h_eAVZ zhG)WRtuu8-o+jmCw-+1%|7^VT@V^1x4DW=x&QvG#C&}*v{6B$T!xZx>Pnh35*e!y8 zhkrUAbw3A}!Pnpl_zrBgmG${B==(pRuW62k$HSB1O!yRh1}=v_-hb==6>-OHZIMg2 zHI9Qv!}Fle-yJ{s*JnQ-`$J)MKZ{ttjgM?&Z@-`(dmaBPb`QW$q0e$3bsWp_8<^)E z3G;pMPuf3*pFZ#SJ!4L=D@LV3j7Q7^-L$;sc;TFA6^8P zz-h#p31`7G;9PhK^!WztV46I5!j3lnU?*eg&c`#Lg@Futj*1#oyGTx>5 zKj`8;QBS;ku=jO5gT9=3*1%|HCQ0x6p?P?F^)Wrjj!cI0VT!zy;cC}sAMbM3#mAdV zyo=%G|7HAY^4tdh0)4%{KH1%i{WGxlK(p)z2SM+jMqdKIgqp9nS3jpQ-w{ z7}i2Rzm3uVxBl&j(;jXHw}9Ki`s%41Y8CF1XRL$|LeoZ%FJu1-Tn*pf!)zAfm*n3Z zyY;niiT$Rq6C4er%1k4)!StbjI(9xwir_Lt&!CAC`tPNJ@v z@N_sEo&_I=QKcpg+#Ah4#!^@g4}<#NY45M!^G<7QM48461 z6x>dv_Gi3FBNO(47ZUF(nDl)!t*CQ2)aRgbRF5m*Z^YN<7d~U0!oM#Z2Az9qCiZ8; zt6-JlIETJXP0=3?gZjLVGf!>b+%&V{YS^iTx3saoS7c5r8{ZD^hTiL+ZA{a4W8*^j zIP~`Vy|;d!zMz>|ybND~)2Y+@_oXkJ($5@tAAAsg4ZZ(-{9l8gyLjHdJ?q{PZVm^+ zHq_e~?{>!(#Y7O!|F)DaTds(Tr7ZbMm%#r}Kx7T{qk~fd|d%@vw9Q6Kk z(O(GX!8_neSPQ-XUFh|B&?SuZJ!Ri9{uwr6pC#>|`r`Tg_c8Bfa2)ZEPT0>w(eDL^ zL;1~Qd_MH~9!LKad>+08b^hyfjQzO|e$HaPviMV{hmZUDf+2?tG|aZ&x@e1=b1lQPagFQ zq@Lj}|Ef)_-tOf63w#x-@6!|d->jwiE572j!rzWYk0Tmr|1$O~;QR0ssP7?E{wR}4 zNq)cL--N!jft$egup?9+A7A~^|067Tt@$| zg<4l%zxJc{h4!P?QTsysQ~N^uQ~N^u)5qV6{gn%MfkWZRa5nV*Nq)uHkAsK9BjGXd zc&I!+zUsf9b@)4c7<&6F(BA-Wg6r$A>qKkLOI;UE(e=S4yqufVzJFJ;DD= z>{@eul-;rfd+A@{`0McBQ2Rjp%$1wcbyNQj^IiJ05`F}AUH!BEjkqq~1C!!y#qqu2 z_0G@dA4i|`eSL>9J{%qe&xW>}vT+aeTfrUSUY+dttuS|U8y^KP*djjO{`e2; zXvfdxb0jOE{Huvm)z$2tfqjUZ6o0eL%wF*o?_%Qls!AJZ|1S2Q!dmzP+>UuEzt5NC z*9yOOa0{3N^?wxmFjgKPU;PrvKOF84*VkY3TtQu9S*MBc2si`!dbNN2 zKG1&BK2Ti6N!k}a{^5L{O7UM|AN-K8ALcjEemnN<&M*(|1NAv8<@fa^`IX^+2s{=} zfhR$I51aD%_#e=BeLvPWjGHFxhw^R~VPFrVK2LEPV;}#do~HQ}rh3_UH<)BU9s3#Z zRCp%52r8aFSL5S-N}ey^cd+r6W;qZZ)Z4}_`WQPyA5Z>25vQ<${<5#cZxDI)f4PP* zRy{ud1{~iMc85Kox0hWjy663{W0)(I2E1@I}SAaJgDE3`KYBFFN0Iz8tCos z7-X8iz>z!Jcq#PuEq5}_rm!>2fqh|rI0pU;{=o0C+VFcTAHT=Wrr8<05%2`)?Z*u< z%|v)8d>eZE(Yu-E-QA6y_0dXvB^(I#eK>nC9tjs{O#DLVRklW)ctls{m<-gaee%e3H@wA z9qVg3bZ<605_&ot%gv;S;@C~RuKEC=>Nq??`RSEr?ivDzX23%i% z%~St3Ui(e!xDoqeQ@1}(U_DQPT4z5W?E}T}`@q}JDlp9)cmbRTUxIHy@1Nwi0Q(=#zSGxX~z!tp6i;6=Pi&cBU?$zoyhQ zJ;oUI{|(cOy}j%Paa?wD6726m|0Dbfwj67b)8mXa(C6!f-QI9GoCptvli(EiGJF-T zf?q)8U0G%sKZReyAE2*Cb$(5~wNP=qeR_gv%HTx!AoTY4PBhK^a3vgFZu%+kBxu^` zG0A@i>>KL;G5O^mWisg^;vRjljq?sM-Un?IJ=T_+JbXRvXJdCZJQrREtKbhX%4AZK zerrVo+bJ!N{41Iik?)-L+FM#*K#c(D341NK> zhnwg6$TnWV>)We%J-Z5i4mTfSc7vdgl15($$G|DD0;YB|&%W@Cp+1t0%dkJ#`7dJp zYy;y}ljjyVAKne`fs5f%IARa0X9|2}SbV)cp8S6zPHX(vH{OPvPh;VDcrc8w;t#Y< zQjJoB8|P(NGzmVzRurpmlA0Q;-yl^Pt8bdBY?7DqKTT52Qnfj8`sS%FyT$2Sq~;Bc z({Gr{&5P4-l&an{PTw-scYK__RVp2;Z=Gs;e4Kro)ZQ(!@8X&SzX2|f)wfNh|B-#y z*(9||YQ-;c`gWpPm|y;^Cy2c!>dzGQteZVzlzg$NY%vZH%l#z)pty-{w6L? zr&OvoPTx6|`YBG|B~|{{Q)24eJWH2RG)Z+$(8vE~ph>D*f_?V{eNKYDM}od*mOgWi zZIJr*cYh$0v2m((Ds}d-xL70jo_Z0q33F{58NJ+IF4ogi-JXKbKvleP|w zQ|N=0uKUS+7%^_XcN4!i=Y{6=CHlO(te$=(Q2ZPhKQDN)ZWNp^H5=M_v>AD42Kr3> z^Je7LX?*>IUH$h5_HlJ)zRakuKTlXaCsWT2L7(d4KWX|J@|Fir`WgMMZeBN`Pd{b$ z1+2>x&CPz{Gp5&kJGL*hGw7pg6Z|4;>?%sWa_D1X8KpK z&-@e4jDGoxrvE7Dd*)|B@FARxzJ_O`3)l}=x3WGjY-N3JYv!pJ0)57Q%FMhvjqh`* z>$BD|&#mKcL7ce$cMVR7O#D%^#-^ z_=w`1lUHZw*Q*oujVw&+i-bCxY;5&h?CRVTeZ>>&)_E2Bg-@DZUw-*9`gwEW>ly6o z(Y$ipymkpTWZXI)5a=^~yT#S1IC(D41%Z90pL_MTe)5^L)N{nCo*Q3hsjG9ZgnG2T zi(NgLFa4>zj%{UmgJIpzz(B~cJqBKh!fX0)&HZbUvX+&oOh{n&#kTgVB6RI^xV|uo375Q8~Zv}xH=~V z_Hp%85U14?i_@VlS}OGz`sE|n?PvS;mUrF(rq>@M{0IH=QKmnM3&DyYU}hht^G*LT z`bEJLZbqNSZ_~Q609OPbp2@6N?lv}G)w2qHIeJ}Zngkm)W1mJJoIZ6wnSTu_?Gv5X zw^L90-uQY}B-B&m>UpJ}dZxL0GGAJi=|lP9`=&BKy8evlV*0lC$Jf*8u~X{owV!nz zNTCmwweIJVAWqyq)ViGS>baV{HI?huqx0yJq1HF${Sy21qj`1t`g1_{?JE-MtZ{Yr z3tnQy)wx%o&-ACt)p=&1&#dFhJ*=MKvS0UeANCcG<<*V-`MWxyo|Uei%s+vQt4G)2 zMXsJ7$y?iLcwOGV(}yd9mx!7A7j`lI)97~yULt1n61do21| z^t_BnWxm8K)1UIk^Xe+}`=L`!!g+*V=h68=oVfj<{rQ~R4>yswVz$jo&tJoO)6X+Z ze*yFTH~Q3Brq?74XPbT+{r?#K!a3{euh?N7QNdLZA7v zp}IbAVfs1fKSsYCz4pnj+n9Z-yV=jh{&@8B&<|%nJcGXN0JDDu`_+)ar;WocRRSey3XW`w)Zn> zPb%|a#!NlwFXQVO{CNCzBL}^%8@DC&LHB{fT|M`bH}~uKyrl_w^IYCn67s75WiIbG zbz#cy8CLw?QC9`qHjT+ zI|TYnAEx{iUuUN$;`dt$z4qHRL7cccweHusI`1cM?yvEAOB3?uxx61IGIAY@4^k@ z^R7t9TjTP+RZre;T;4Cqn>uj+y7}t-%6zF-X1~pA7GKZmgnCxGdM*s&#P$Df;%{)G zt*@T%R8P(s>(=vCV4pePTO48MOPjiCQ>mTE{yTIlBl)Ni@#^+s;khjL=?KUXB&)RQ~yS#aUeWuS9edF^EemY@&(QAFrNXV<_ zyEk0kyU3ffU3}ikguE3l@5lAz{levKv!l&7wMTs3#m~ggw;H|XoB7hgxa+50*Q8Eb z_d0)x^75&3J@0&kK6n0sb?5ssZtOCD^pd&$pD@#|{~L4tAB_Gm^sUh!hCYqHJ^HHy zecknB@A&x+el~u-Ip{UtdxAJ|^VRxxaP!UlGw-^6wQqdh(uBNuF7HM=$LH04?&tFA zK64JA&Td2>dIfRnt|uen>zR>IPr0k-(1dz)9oxgzGmX4?BjfW{CgiPfc^^&4tJe`l zF7MlceP;hmnO#!Xfp+vk{W%l8`qOeS=fy$sb*@OLv&PlAYY-=HpJ=^~bajp-Z{C#$ z)m7M;g04irlD}H=_ob^7>RIXP`8c5-?b}(dp8t@yCO^IprAy<_mpt^H=<~L_{Ba*H zcX@{d_I2lJVSL^h33oIxAeA8}Az5AJw_U)!93+&-AD5#Q3~}pF5?l^Nr}g-iOISuXQ=3p1iNRyeE=3 z=ivCfr3rcST;2x~^6I?!)a8ASyerQfRX3w?jcsBbhj5-A8eh+hgnG(dJx2v`;?7g` ze~qi>O!Bs^wtDpZ^=6>Y?340~Y@g_Pr{``~=gPz4>#R(uv%=MROc3Xf>fB^%UR`54 zSbI_xUVU8N_X7J&A9lQA-SegG?wr??5b6%%UjIVRVzv9p9T=Y7x_YUI3_2=$fi$BTLIgY%k%603!7k%65@%5aSP|p-s zPi;ay+CMX0J(({t&GaGl{JQl_L|=Pyd_D6M>Y3;2xhseh*B?C(UgGL`guKg7iO;(< zA@4$$_p5}wy3X9{@-_`l=S&|Ko*JKbbwb{iF7J*(oVfWa?}IMy0m|Dpf1Q0>jeg$g z@%40iH-3Mn&})BwoKVlN#9vN5S@$^)#m8TXUh&Ti%8Q%t4S~My{5ma26#V%3GZH>8 zSMEM9_fA6mHN>wyBR>9$g!nZs{yuxg*MDfB&(y#CtoZn=6XLIQ@vlgTe=G5)%(eLb z_gTBR&y~HN5a$EpR9p~W=L{D|_b27<^KTmmzwnA%$6kRx(}(hl;^S8)#IJDik4%Vv zI`Q)^iI2ZHA%3-se_ulUSBSsxGvAy`^Xl|| z->yigr^eNDdJreBpVt#Vb-Bg&>;9ID|IdUtUkCck^ID3}4YsYTHWhvzd!?(V_dYhS zT=M#Pt#*0G1@>|EPbW_K{npQpjV$qqeJy^)BGWf%Z2FGFP2cuPo3GE?X-WKbCWT(t znUjM!arIOZzxJy5_=6MT=eYR4CB*L%{93l|I`E0jt3C75>)BW6KW#`&!+zfN@%2Rw;@iSl2kf}fSzWDg76XLIQ@wW+n4I0<~QGq@azjjf4{J{yIYszt- zYuY0r{yD^7{y=>E(uDYVF8=EY@xLej!o~6NXC%Zgckw3#zcz~N&&)ud>Ce1};^S8) z#IJDiA5MtBjQCR?iI2ZHA%3-s-!%9&M_m1xUw>rkPdytSe@4RRAIjb5AI2oaKZN+@ zAH>J6Oo(6M;-8fe|8n9_`N-n?=a*|;{J$r}d4V|9#PQed#V(HSE2>?cO%9CjbNfJ_ z>2u!a@qOr&@Oglg`#iud3Gqh;`polV%|Rup%unz#uq;^%b%aoW~e9N)JYE{^(E?&ft*5GQVbE+u~LxAE~S6XI96_|1d2-QwbBzT~Cu z{QWUL{_2GID_#6U65`JY^qFL|h;G2Kr1NsyoKl*(u@ol_~f8 z$`caeUr+qJE#l+PNQhtV;{P)t{u<)vbdQf;nGnCi#osx2yCAMVqXT`WKQ&v%$6uWg zf2E5*HzEG5#INoXAHP$=?@v?i_ouHU#Q&D~<^AI0mnOu|bMbo>#P?_4K%ePP-v3A4 zm%ztWRsTOI`x>O|paDTv%gkhFbDB17({)H%mV!(s$t0bSWQLhZ+Z2%qD2pHg5m^+Y zvMC4=MK;l}iHJZ@HW4s_AhHIOMN#>G&pqEe^XAQaZ7Kcz{{R1clxeGG@=pgY@=t{Q`9BrFf6T-G3jzGE zB>%B0fBx?W@SpJTp9tXp9{G>d`19X6U>)4?tb@k`#@{q>(a%twKmYmw{*@m7a@mq! z|GJO-+Zz1&9}~bo>fyh8Kz=&}+}P)#{`^-4@Ne_*mrJ|+%hmaUXPIfSffAx_XGG(c=&I5v_JpP z02lcy=lk=&HDFzM#Ir8k8o)n8{%uDG@DEtu9PzAg{wRR|W8@z_)}Q}V0sO~2{0~0H zUq3P6MnA{-^M5~p|AdGCl>z*3C4cAh%HJD5{L{mKB7o1v$Eutm^6|!jI|r;!IiB^Y z&x4Pj9p=e@vdv%41`q#-0{FZ}K5f1J`rP?9gQkCNVE$Xo`#HpSCjQB#{&F4)-1wP( zfBy9W{3|{DzZSs%RPwLP1n9xT|B3)UH<3?_eBNe-?YWQrp7qy51#zo~-v;o1mi#m4 zA~3_p`m6A9w3EEQewGE48}pQVJoxz8NjLBfobvls@+^1cR4tdy=qx8b?!nI{UNKZk z{~g1BSLZ3uI?fFSFTd~Qaq``jCIynnrR55PYgfX@rS(*gLG0`N-%@b3ec z`R2A<|J{rVeJFtbG2qfKLNy3P@%cRI|3rM4_z#G`K|ETk^fwUyFY!s@oy0cy}_K5zLPru3T-KNGmfe=p_Pg5{17zm52o#BU>hg9rZ|@hd%iUIi|Cm|Uvm&LW?8 zNk8o2v+W5g&k*qn((gyS&qF^QxL<#425#EDOUs=?KCQ%~#Jh;M5g#S~bK?EPGu_JP z2;wU&J@GK{A>xz7u?%58XA_SuQ$E&iFCZQxo*?~Y#K%1N_lSp5%I7@NUk6;;vF!@A z!~KZ=jCiF7zZvNgpC!NBiHD^qB#rxAmP$ ze2DnhNq+$G$`wj~71xidfs6h_KT`c~&2k$_9~x5n&?oeVqevemy|wdB;-l9qpB>2O z6ykp&ZuwtKe4O}H(#vI|qPN&LwA^nJzk~QBadboT87H5;D9<*;pCi5#aq9o@*I{4L6}E%|KUruuP6Z{^<;xSt&!3|!=I+XfSGe0HLq8;K89DE=@z(gNUepVi(T zds|Ap(t~#!9OvABta{$b(a#WYKY6|eT;v&9q2+E&d$^kT=t{+>5&s48i9yBhqnuX$ z(bG!he~|P;yfyiT2FHA!0WNkGy+h@+?fVY#5OHfi+a#2}jrexT#@Uzn2=QHrM~M#+ z-;wyS!2R^l1zhytNJ0aj4$^;_e4IN~PFwC30er3{pUS!pl|Dn<%DD^i3gUJ=-JAHt-O4{i{s#jWJxsKy zJZBI;lz669@#DABADS)Rp?D7+;&J33W4X4!=ZV)4xBc-v;`Z~Oa}FbrvzG2+&4_Xh4)?m+=~ zHE`nx##H{_vtEtFqjxD@Pkae*@dHuzciWC};vtV8NCWqiXMp@e4=Mk?O|^hk0rcmR ze&|W1-+Du(zbt_M8q!CfQF<(cn$KOthl!uea;-n9_>0n8e=<(`iPseW>n6(QrGRqZ z3Badxs-81@BO!**#mdIngLuV0ioef#9SGb{Z;=4JApoCA{;@jceBlw5u|!GxYjz_kY{T zr}8Gs!ygBTk9;uOAeU~WKU@r4>Kod%$pD*grue9#*MGbJ8{S^!8QO2Aftwh3ZI|+I z$Gr@Wbv?cn$KLak0xsoN#8s1hEaYs`w_Tw<_xuC&hleen{k6UJBfVT+?`J>%BK^ck zN^j$tO?tH4q2tw_r_fF!#A6+ehO_N2gTSR-qRt$Ht5zN7THw--L!Z-j3{jr@EWIrF z;&UePN66plZZ?RWcTAFg^iL|!uh}jKov3n-%Z5FCtR1!k_p9$2q#t`*+jkM`bun;} zGdg>T;bZl7lfic_+~>T~{OUOAtv2xG{|{3x?DKWi=aZ!0x>xlR%cy2<-&}v#3%Kz= zZ>c=ZlxLXqZ8s<%Td(huK6F=Uzk8DOlV_w7xudnfSi zFduQap0ye2|7huXKRn5uSBZ}`DgO;w-*<=)b3D3__>_!)eK$8a{A9n%vlq*qN__I? z%KuOnydUw(3uA_IH`31}9(qvezszzM5YNn8r1Zp30xs?A^;Z`XAMVwD{V@4ILq5^_ zRZg4Vdzbj|e`AL7E2Q7{B(=lLi%P!-{azTj@f&+K8cJ<7$JrEyWcu}>(pQtuCx}ms zXg{694sad@R-qq#U+wLSObk_$K14Y;A)mv5OS!{usGQon9Vbru*dto5)&Ch74ut>E zU(|2UrvATpt>V3&^`MpHKk}~1Glldw0pAmLHNkuJhbYfmq#uoFy#`6YB1iq~rTzU0 zw%2F!Qf~QY9&q8`_LD*LVLa$Q_E?ap9lDLw9Mr|AqYb zU#@({pHjS%hIlJ*saGY>Umr{QXGtI3OWWmX;_s4vxKaD{J=UKfpcOt9RXV<$L_w#( zYy_V?MJ@adw(o=6C_Zsbqv3oZ0e_R zUxwM+HgXl~ToQm^2i)-S#9eV?vX949u zll0EdbbP#D**NzZoPW5!UL<{VnYOQ8@B6#u^DD(S;xqpQZpwW}?dl%lGfq}HhY~9P z5asD2UfHDbhe$sN-0*o;+t-$R59wnZH_ssb?+wmBTwnhs{m>I?4|bhm?=L9-kw;X{ zKk}K&iHAN^Id>v{7jS9!&}UShM#{fyz2Xz6t3FTIP9J!Ld@{eBZh&Rvv(YJRuWQr~ z*q852C7!8Pd}q?{PJHY>)pG^$n|Dz@lMA#TRZP_%_9lJwLZ!F1S4Vszsr6k*`#Im> zWa|35lJw3`l+U*O?PtU%xo&ta@w4q z+W|N8)96u#v$cn5z=i+F&s2UpZ(2Y;lRGJ&jVRCY#GPxkU6h;Se8u1-a(!LNc5J&? z>33s0UPC@3_iMdu+_)8*RqUaS`y#Gky`BfX$T_(k=N_GKZ12In8H zugeXNcq6NN{(!$-ZSh9svjy?niDx*@TKzvjeB=YAzmM`f0bKMp%>2d^@N-(<3C35iY@-ES2l`5u<^H;{O6fc_U-xWV0=_1`Z5H}fpd{C$Jd{P|A}z-xe;`lfYUwlABWZ|E^U`l|Nd z9*Ph@M(gDqs`}|+$L=Kk$R(=J`5Wj1XA*CFLhE%u@oRx^hk4=%^Suu7TY#JX>#5gc zhEKU38lhL|7vBE$9?K1-w7>srQ+@V=)0IBT`KH#waee~a#Ic^Z>m5U1UhaiUlustB zHE^+?iZ|6?Wl6GU0R0i9ALsn&E|&W>;-RIg zpMA*ZfnWQV`-yToBK^}_sXk**PB+NwDwgvPTdpS_IN~e*{ErR5&jBv>*~a-k zhEemm#?WJYKSS;O*R0pg#3vX(EGPZnh>vXwL&67Qo6p~Yn|V6-_ije~14GY0Twhbp z^p}5kgKv$bzWT{)SwK?&{pU#^{j|z|C(DrQ_r*R#C#jv=JU|cVMGuwC^H@EcNj&Pw zhg=y@?k`ww#qZSq&)-xFe$Md0`sq&*xZ+c3{_8lGK@5?nZMOETZ&A-LrUfs5|6Mq& z^s&=4{!hR!%V*EC6d&tU{VXA$gAA@T?*E>8w9-#}N(Svg`6oOBT&f>=j!OK721}O9s8_hI7 ze(TdpGoSn`lPb>uAMFJ$^dqNhxsPn5Ka7%o?4lV4=%YU0CmuaP`LvPG_UEYl-Z(G< z+_WRtm1ri;0@An5WL!l4J*1y}TkXfjU4x|0oTGBC+)xXC6}a^4Hrg|m`ON3GYAtto zd)3>8wEqpis&WoJJ=f4ppQ7|95RWo$|AE5J6~O)UJZf;nljE}u}xWVe<1yb0sKFCp6c0~XRaka`ndL^-;jUQ(tlRVeR^Xp;BKew{nf0KTK^V9c9zsdQuhXHNJUy!~Txak+e${))g z=5xHk`LOFNL;CU4Vg{|IU7Zs^e-m)2SExeud=Ys)LO!EE((&Rt;(z+A$`fUK+5S60 zKEupA?N9o{hK0WT6Eir<{e#-W5J~!hi#)L>wO#h7{J$ps1n0jI(m!JPaNaSU_%p;u z_EPz^)g0$dgOkYhHRS>=clh(_XAY$O*8}&Hf570F&wBE%Un3uHzkY@EZTG4?l`MP8 zg<5XKRq9Vh*uIZ}OxnHe_yvaYp{e@7QqT)Nmeu}y>^6#jnRr{X+R0DI=NkrRVXm)h z1MnxwXX3&m4fPRx<|W|LE){R6oHvvI;a^vL{20~SwQR2e;3DVbn@WEd@oyX4B?$ld z0O_L~*A627I`Po2TMYv9GoN>ew;iW)+Vwl%5nBBsLR+@T-)&l zmVGh#w4JMbc4a$WOML9Ns-Gn3M-A>0od0|bxY567{d9|qwcO#~DgQX-+{@tQd=3LH ze1<%J^0_ zGl2h70r({O#GY0AL0D)$+h3~sbavKy(afDs5g+p8F&Yfchh1Ntq>t^=V$eINpB!+h zuk*7(gIDsIpOJoq`x#adpFU0HnUo7^@Tp>ZJ!ScCq;kGW{k#ZV>}2xSsy90ypL&_{ ziG4|NxHa>sC*C$!`TULiXBwPDuCMT6$|w5WMFxHRQ2nuue8ywiFRJ*=NdbH=04{QR z^T59%KF)FZ$jz0}3*_&Wf78oVo}sI?+;iBEK0!Qss@e&=g|j=C|Doyk?*2G@yTqV zKMY$uq4ZlT?2K4Gr>fpmTC5|XJ4m^ep84s`pcnbuu2IRKAfML_AO7L`id><5GP~mJT39+U6jw)BZ`ktRXtCGUz5*8 z5J32keL>58N@3?@mRoU&YWQf{!&fQ)(D$bs%7w(gJfeI?tF*oPD9;7JMQ_n(l)qiC z{1Ner+f@(t{L9bDC;Bht)4920J`a$7WJ}e9{?~C{AbsT~YM-`Uw)w8gGs1ZU&C2-{ zaPj|@^#3cBy>m2h$s4zEzY5*C(*<1QA3Ip(tUFvESY`P0Vb|9s2FJL3zS`%78|aVM zkWbrID*0W+Ul>+7L!0RMuC3!Zt#=4s{&~;vFUL3ko2mtppo z^R`r;wWOc$oI5xixami~Pz(ReUq@W zQI+B&Gqt69H&I4mLrM;e5N`o4 z`k&lV$D=)ocM%`CPyNZ=2kH-5@~Jp!h5;_5KJPa4eAxB%80j-y2eZa9MuoI zsWatjk*E9aV^hBe;&Z+cfdu@L(i%F`?Gx)!LCIQZQO5G zO+HuGYQC<*lZWp!^yPAXiF`8esor)b$yb3(x!ye0O#ytyEuXm>H@-(ce*-T5aKsZ2 z?{%%pU$KYkQ~&EYVdCS1Dvyopjvzk5`FjodFCae2e2DdL3CsVF%K1Cg+aEEEir%7^ z%rYFlNItJ2UK89KzpVtH3ZMPf7K6!fB7eFaM%gY zogGG!Jn^wUmA{Gj3rADVI@R;N>|b91y|kA%uD%qw#Gg^my5udSuN<9eIDd`&9|^$! z3S9Ive1MjF`BwVC&Oh|8*C!2*yvjW)|K8+ZPrPle_KQP^w+HZ9NqXl1<&!1-FmO{} z&pw~01Ngj4KBIdopV!D|$lsv)e}a4#5wCn+?GuNE%;yrrANu6EAsdJMkoYL~*IiFLzlnUDcI9L3|25*# z4b(mt(kQn?MWlUWhikvH>)Ja27db0Cn~fX;l(U9-TOTTjPdm%)16$#f;l7t7=|}Lm z;1#cGeVr}zhlel>nR53=$HeE@jTKLm|M>A*uAS#z0o<=2-AQ`ye!tg=PkPQfoR5xX zGM~Ex=wAgc^0#rHz`mrP{bQA9^cnR_cAowdur>YS9#jyY z-_Z^i!7v05-KRL1nooj!ocGi|?Kz{fh{w1-Xvez|;37}vciQfDed_w@%HN5oe|vcw z<$vH!NiEA3#1w0T(@tc>LRP;ttp8o+tgcfJ;Gk$-oK~5n4CIT(NC+=)A$SwQn4}S)|$TQxrda&y? zJN{JZod;F^qsZq#i*tRXjrbwJg^zb0U466i8J(~4(0rVk2Is@BuMXfwKc0QX9RcI) z>Ez$W^A}dm^DNHwMB87!LH?tkQoFM2FE;^~b?24TC*75EAL+gG{ZAv%5`DHUj~VG- z=lF6z8ba`lCoZjF95wu|go;@sT;o-`>ygD@%Wp_AlGt|84k_sq1UoUx+;ApS=R`MuWqDKB@e7m_A|+L-{CHQy&V*QHya#!<9_@5SZ+LkK1ce> zU#NbbCjAg_kw5dIw!4kT{z81*Gf&*@ZqnbR^mg2w1KjB6UhQ`cl8mA{Tqg!f4IK3 zxJT<%>DkA=BXFr#>?zgT%^T`NVd8DvM{zBA)ss)CN9}oQ%5yB~hZ!Hj?U+xN_~@0Y zw{H>u0`cfJir=w`{%{`oPd=yme`O=Zx4hTies(uF?2~!;zmosH#J%&8PT&$}R&xDu zBhs%j^!&s1_1}Z2pM|Rbzc66BO!#cLi*pR)Rr|=*z{TE1ADU^PH>jT{0{Fj6`iYR* zgZ2N%!r+CEcRl(n;@GzTSM! z;%iCoSugvh;lqbrUq3ZC?DKu?7yqGOx+{R*v2oyEb=>(WdHs=mDtUkA#>8I&zTJk~ zI?K3jXp5e?v&!kr*Z%tz{_uCuOTE13VfT7K=_kIT`kzbv*AgG)I{0+zbB@7nX~l0@ zW-|IbW`O~pC7*84OSxk&sXUDv=`)A?M(M{MZ#IC9E9Mgqas9NDMSLE(@EOf2{W-*M zvwVJ_JtE0+e@pr?o?Cf=^rA+Qv*LQybAt7Hmwci(Dj%!otsWHm^3SJ$i#!vfGt7^6 zKgm^w9(EPgc0Zr|e-yxHjPw=T%rSf#Hr29TA@1C${Qp2c+x%ALcewB3QHr*k!TE>l zYYFXYl6Ezp6P1Gl=;xAul;`q3Ltg#F$CzjM2JLy6_&CpfBuPJF={@WFe`SK#!&!9#7nR-XR;n zN4A%UoFl8WT{fkhXM$er!8`x@7Wq4u&o`3T{h7Cu-n&2iapL2g&+bF{!w<8*ydUyS z8t8Q56;su2?Rm5Xz(t<%SLPZH`d_#;(vS1J^RmsgfV&LN!dzc}BA<%WrW^D+{`N2O zY2!UhpCjIPxXKwlK)*XR%LhZUcEbDjZqBK?MsC_d)dhdDK>3EzzLm81_1 zX?^!5eh_e@f6x6|gQTzIe0Cb?Pq%z{?&d(^-z7fYtQz|&@!N=xa9#3X+W-B;#~4>* zST~=?E&UGKum4Eo_+Z~vSCoi;4FNZH+okpWkiUN6cZ!dkt@u5}?*%U9 z#<*WXOTqqD;v-YE9T)7W54=b`w1<^SLg%4dhisJC~Nzdfh9C-KlpGY#Qk9FMLrxIXLt@2`MM zd$nCP+rTfiXzFyQzi>4(P_8%nE(TlQD_=#R8s-``6aU0~?R z)b;fSaM8oixa#c<{#O5l;-Q~wzqp!meh;|F6XU*-<4FG#;^T}_yps(3t7OW z#D{qvd0*1sYH%w>@%y*HjouE{a%~*d{*>w`^KXs!uHYjl6R%*u(5D>d9OB+{g(Jj= z?$G+$`^JA{`S894Ed}!_;37}#8f|yG&hnw%2|oO~`lWds*fxJ!@e0O`ouuE%;QYh&bs+JHuBZ!joW=n9CFCFdmCCaT zpUME2`et_2`r3Pqp11U#b5H*zUhxyPhubz)MqB?;<)7p|ht^M48oWeA^G9s}-U3|Y zsr1|c--|_c0+)5S;adj{QbGJQ(oZzC7-Yo(`ol%QrCe{m z{UJlohh1M^3TwGzH)}le_`dq%pUFRVg!5&mb;1H3|#8f)~58>*C)9slyP-1b{*&^L zj;a6OllJyy;?4$3455xDj`K~6-@L%!hfGyIKLIZJnM%)naZg(QX|?AqsE1dHSKO-o zWjo6APv9c|#4MH5w#$waDre>tZTH`j&)x=C8QlME1TK6=xzEb-i5q&X7xZhnU#I?i z4esWk|2{PUztrG}|9PJJQ9gPl@hJCS+53_1Bpy0L^>7vI`>4g4k5X%NoIewfou+a= z!}`8yaHs53|7Ys$>od%67`Du(A9w}YWw9p@xeB;nzj(ml@T)tieLhb8yiI(ZaovoK zl>e0HwOsG|!V$oYf9C$u8!68m(tF3*Wu$kQPqVU}O+3VXDW4>tOUWn7_3Lip4;gy? z;req@eiJRfd2_sX!Mh6G=#6xfqsYdQSQGwo$@?H{+VNx|M7e34}T-Q2kK95CjB>w zPjG+fdBm?Fp6Szm&1yL}7@S1zuNSpmG0r!4;BQ-4ocX0;j{7@Xob$w)q^~2MS*gek zb^61%wp0GYznfuz$t@K>*7D)`yDIWY6CYi!`gxpsSVesNKk7NZLi&qSPWqwS2 zWU-ceGU;D7eE5g!YqOX9+i{`6F)!eHjnz*F@ycCP&OO<_Ip88sWs~Z``pFUEqgfqK z?_#|+`m5?^{8P%u&bzk-IT=yDG|mo*jVy zn0(rHQ-5_N`9B{(|1Rl6d9}~4ZmtE?y{vMEeyIKH64v)f;+35L9zc1H11|OT?vuZY z^b_1~W9{un7H7O_`{2U{FR$<4$-gqC{%32}YwF)PV)nbaHqk`<#{v!e}Q}|Yt#=MLcP6aaZmp0AHa>Bc+N?+p+kv0 z74y`uKD4RI@TEhDcj&zPH=j~`=T{UT|GSp^E9zk%;HF(BW*NdQiT{wecb$3*u$6LS z8?#(ieS-8AcW4XFnW8`J{i@POxvyqd(npC`-l_fKE#eD-i#$=z`)s=p7VGcTxV0U(<3&|1{U&FYuX4;1UNqp8Ss-7nOQtxF7!Sq(2<=Mjp?8h8+11Wm*j7 z{iHw3;QYh&btUO1s0Zy$*e@AC|98??OwKc02B#{sPrgohJon5u0k^tx73&;J`q4jW z``Y#H|2AuVM>-V$CGGI50erq=aKwjasK4D4DwNLy#3$bbLwruz%6vIny`lUoxxb=E zVP|*X5?464={%^C_!2|UKU`mZz(xNt&-tdy1L$8eIQ;pE>L>p}Uau3MY*Kr({`|cF zKHI!W`TLbmKlz-ukb0X?yV`dP{b2_~?-HE(MAmv^52iAlx1=d+dq z7yIg*TJ`_Pl*#7DV*ZzJOWw)8n|_uV$p zANEE^7CA>5e_ET25O15Q{C8$QJq)<$!Mpyug!Dr^f2Xr5$2q~^6vFj&3i(vX1?Kov z@V6fl_wK9z4f#j8?|L87KTdpvepq{l<4lmxDEE`^!2WVJ6k`0wb<+)pe{Zjh4u4zm z;my=Pbd$fNafCj4kM^VEsnEHkpFBzR6CwSv2In8HukQgDy?O7Me}R0WZzvz6Da_{s z;tto*HYUCs9G%EBaR~&&XC?b@47k}R%zhdp{aL`J+!5Z>RZILj;zK`BJ`Yeo|JYXf zhkm90`QfShz+YKz=)M*MyvB*jCjSun^3PO*Z|yjIKh(Y?sSKd6CVlLDmHc7SA7%M? z;)*`tQm^Q=CPSH{eV$F+d!PBH2Wh>$=Qn>(dhb1iXTyz)o-58$i~2MT^dFRG_;uC8 zwUsL97VofMq*b1sX^49Q7e29*l>P-a;38$?Of&TS!}T>k0B^JWQ>})& zlX~bUKK{J&A7T5RAHe5P(mNe$=eM)$o!_PW^OcWX->)>dOF;g!8o2Qfo^wX0kWYyA zZ~*Dg4B&G;=__{Da_zp~JAq3cCd&63KgIg~Hh|9#?`ixniF14J6Q$XPd{G^z`tj3_@!=@|47O?N<1@N^=9MPdo0fVNY);n3gG{G z0KVxzX`jsFol5__FYz|6gX~Uus?j~AKMr4}cHTc#f0%Ch%v8z8Nx#tIyQ=(S)XxdT z$KO@@1*BhQaQ@-?It94s*?Vu;Wx&O657BQA@tMaAj(ta5@7tO9Tjb-!)j!+$>>mHp zdbN4(nW;0lOA!7u3tZ$G@!TtTA^8k*y|R|{HwEx{ntUof_VX!BxFl{L^4$M(C~!Z! zS_)j`@!q?*%Fx4qUaWe)js5*P3=?J?Y|#j9$`lp!%b*wkP~pkbem|hx+gR>oRQ0(P z+xJD_B7X(*&vgIJe**X%{cn{g^Onk)rJU^sFW3Ka(zo$F8V8c(JmR6y9E1Fx_>X~$ ze!TBjdNhFlHvdujvER=$99mefUjX;h|CIl#{9_Y3f0?$87924+g>Zc>1#aY_o$SKj z2FYiVdCqTA4_^=9b0hh9-wUwkhboWv+)X3#ahAJ3%k40@OF;g!hx8M?&z!@r6G8VE z`x$LhKX3}^PY&SoUEosR%vowD_MXyhaiCTBOop|+o;p<-)ew(9pq^m|&O43)E_{ZW z&-@C@JrlUtThud7T}eJ|zgIpVWb}c%$fwe?pKXr~D34r-hfg>4UkzOPg~RvMSDIh( zo>t|O-qe$a#yEPz6Z?6U1Yv|#Bc>hd< z|K{08`ttz#=M6plyhonhun=bK%5&~D0bKM}!ST`B`6`1`IM>$&q#x$KxE=Z1rR4A3 z_wr}bk8i1Vay04R4&cB0#wyPQ-`DdAjU% z`#K)K)C^qYkKU~Fod;#+wcO_8b82BR=|fZO2Qg|3`_B@%;7mtjZsNOSv)L-?9Vof0BNfd8f}3pWC2z zIC;HV!j#SRhs`%veGYl<1OE(gv0LZx7DM<99nj|tPNuG})&P8I0KN*i__vTJF1o_d zV_ht+al%U4=ko!4w#EXtU%TvOaOn9Sokz?e(V@UaZ{GXx7g_u?ZO7|aw;u8dQUCfY z_MKY(?`S`=_d%U*aF=5E&x=Vvxk&rVp~N?~?ZWlDA-4N>NI%5;Kwc*ObpiZ;8G!$u ze7yHU{|&g@_u^fro+SMk-z#x1<@u2K_?zkYXk^PKN%0xl|V>y1)!{pvC} z;+D^;9^N7U<>WIqq8k1OpV|}?ZNK*YyulGKalhFQ$)`Vn{&dohT&U%y*zYbRp5gl+ zvn=-p%l{ABPwjc+hk#3cz56O(H}oY{HGgb`g(Tzux6*R&pq$$S7e6+^@!H0#A<}!# zl{6W=oc}W5B9C`p^tr^n`}dw8|F+%KZac^_je$($9Iw;-+s~`@ho7Li1s|Hwc7K=i znwQ9D;v|jFpCX@VKtGLdqk0(mgZiIuZKw~NWpF<1`nnvr)N3@O`ag%iy+=M{Ju3ex z^z$2StNb&(*LNxD_cOSQG5l=w_T4a4FZjZ)YwJKnWh&M)mVG%6}ekKl{8Y z0Dm9=f7RfKZ|S!ODd*e7L$9g*967yI87<3*V_#*MpwOZeE$^WYXe0~UA>gBzk^Z5Y! zjdt+Y^Bx8VAFkv4i?Z$;KtG-Im9te&r1i{aFHB@aZ{GJB%nRVtPd?s#AU_MB{~d6t zulGL5mjdYjN&cbRRnA$|=Vm)9AMd?$Uk2{iudgJ%_a4Px9HI3MU8*y?5XYBy3?IZ% zuc_r9xV`FUr=4h5e7~yopZgLY+g<1H2T`95z-7Fs^z0}9+__S2`R6Fmi+(CEQ9tkm zNxnwhdq4lnEO&_K;`5~61Pg7#$Gfhv7jS9ckwNxo>T|Ba%jG#c0KbfU#yK7xMLyR7 zmvV>qSNWf(K0gTHv+XV_kN5uAh{4O{Ss8$jkk9A^I=-C7M}G=jiozt1bZY7OrvC!aR%m#E|qZ(9D(X`FB!>$?XI1o_F+6@U*0;O7|}{-5if2$Rg` zM&d)<50E5&J8;ow<=tv0n{KE-Op<;gq4T?^h&#B**H6v^1MmTZV;uai@|k40rvaC8 zGp*VmZJh7`@yaW;AH72QJ@?T5GSZ-S`#R@$pCvwYjmBwq{(dC!36I^Th>v^rYvq9( zJ$U@j^~A?G&$4-jCk!77=lc3E0C!r`z3ExWM1CNfjCZ65`tz-QiEO?#dD66wOvZ^X zZOw&Tj=#8iH$!sE@&Nj!EE)0iV zT*Fl*Y@3!hg{$*}nIsEcvY@#&U%NcnA;FAm2SN8-~`xol!uP1wlZn*;Z7xMNu&8_#DGseG=vqp7JyD%GCI zr8?s2Tt1sj^fh-ZjyJW|#AEY1re#q7Y2i==3>FqeTXU^yUA3BFG>NK&QI&8c*_Y`} zbR^^LiH;MS6>M5QGqY%Md|F4kKbOyB)0t`E`g+xOZ9Jap&u7!QbT%LFO{f1CRlb(` zZk-`2hrX%oI+x(NWHz5l_s2#0|213rNOG&t^&<2dOm$j3-Is}X^-l{q@!9hiHBO%& zkLL#3(hpcj0Y<&ZGdUO~G`^qof9wp9NvT(-Y=0ywR@ii$lkWY!OP8vw`=ND%a z{ke{8Dw8j0>ErsW8V_TLAE|}|VL3CQkytj}-kQ%2bmWUpBEWz7a9gtntF1OB6gJ-A zV|6N@;y-d_w1fF@@>WD$gLbh7@u98xbvD^>82wJ1FuGA^GM`BGHpCYsGH|20WbWUv>cT7-QH+;MG(e{<=nn9vOq`<4p@&<6#Ue$zBXj;at86awK6Fz34a1 zgZQg@St7R#{}Q_T_=0q290t;zj0=oDC3qwhpPB4R4D{ypw@&jTe~D#NeaUz>DfID7 zx;NFKyz1g}faDYHy-7Q0&2JAi>Hou!Z+<)en_7u+EP{TtzI%1VbZZQeAAcPBXzDMt zVre(}h^AK&-USG?uHauGiuctxYDfMg89k6FM!<|J3~_q0?%9$(i%n!)14B?BB&~cq^)&v+ku*zRFzeIh-7;t4je!L z+nL0m6&GlI`Vt9ai(bOxJ>X)B{!6`1zPdM=%Qg2H|1&+_Jg=t};Vpam9MjXKMOxb7 z6_QDjo(}MTxE>go}KsDsckL%eXdLOj^L!2vdp9qX z_*8!)pZxfGl?Zq}Yob~-5pM7iwh7PhY@q+dmfG3L z{&ZimrCR10tDC!geC|$B5L1{<7OZoBk-0DWe03?`a7ZRksYGvTRkA7OuKrp~C)S#m zDcUG4T#KoA2fXm~{!X>_wJ|&M=!{5{Pm{PsZV6Wvrz&VCcZXL?T)oFY38@kj@G^{r zYosy6DjE~n4tUd8tTpZ~CZ0B3xFwlGNSdShuV?$Mk(s8~eOHwf+|=%EzG)cgk+NC6 z0>WM{B~@d~wIn;xy=~pRa#WX6`81hVvNg%HW{!?_ONr(Cb6rT6>E9pU`IrpG`km5O z;e}7@lJr|h-xCfWmB^+rDR1uYN@M7^(Qs)`;!Sowy1a;r&k`csC;6767;Qz^rwJwruBkNZ0uG>dS zl76JR_5N?QnpUnbX^qrK&Sa^T)zv{75t*KtJ35O*yL6C3$I90vvf0F7^WglxDs%zN zD%UY)|;FzJCTR5~*^`@b$79K64D>lVAYbr<>g4I2uO&dduw zUfkuDG}r`}YL{5O`4x1iaYeY=WQ*5tFdb=-?rj6Hj})x9Yr2{?S*xmQgUAB8Yt1%N z=U!i0XW4>V0TI;NdI7I!HS_@=eF4I)wvQ{CT8LM++W#kHQ~y*Zo4ZLrQrz#>Td=vU zRg1c4f zr77B=UhSE2Afr=*cK40B!sWi%X)O&?kRMy;NToK{Bk2cMgc33PilA$JdNDylTByFf zz;GznGb7#Go5)~2iNOkc8uq#dD?K`ATU{jOCuempW+6?nj*{HR%wq0imMgky zE{U#cCC$2?qyKQ-I`3OrLqn}oD|z-Ng~RJCU7?q+zM1@`T-!Ekol`O_hu3}E$J&Xz zKBQHD5U!DsX`TGk>f7C4#5HtI_r8;GwG4!7#m3{bf}Se2W}&azoFi7uy-dn{o?j;} ztxws!-7M?$CHrlbzKmyaejTpW`E~ITS-iuR$7JV%WM4WvsE)LZLpb6llGTNF*RoE* z`>yknPFTiQY$6C(bFXC=Hk+BvmcYDwGON=_AT?qCC4Q@lH>Y#)MF9G+hT+<97O9r# zYhk#duu5e7d`F@;kwpSns*q~U#ZckGuF8lELhIY*Ma=fn068#cw}P}H3FVT+IA7Ec zYkPL@Dbi)ZN`CpBX13*D)Ua3t4}=%3!(J0Dr?9I}O}RLU(#H3E!s zYjCYCLjL70Q-~vFHa*WRi2-@FQUR(;o&dA*@|eLwQKf0PaBZP+bDBJJuqqJP4QkAf zwb^7YnO}&4iir-%xyhd7_?y|VFBm4KveisxWS>oct4pwrST>dbJo#9F2+k#Bb5Sz_*n005C+WR<0U~FzrWRpv9*dR74QOjkjOJ~|A| z8hJMqNIl%(r(6uv{bt|)8rjv65N1-Wwz{mNQ~jOk6|Kpn-3YNd71xzL1J4O{cDO=- z8OyL&Ig0}`#r-$|@`dY*FfL)W=rFZHeA) z`0+S9P1$TZdvqe(kJ(mG10+|b@<*rg%M2~dqBY$bFO9q$ov6(k=nt@qa7_oIwtRAC zDr=524z}icJoY9tHFye6h*PU`6*V2bX-Pxsc|@7_B6um?_kfvUi7LxFsaKC>3_O!B zCx?9$5|qx$ru$aY1HyG>ge8Kw*Ug18mQ6~e5up39i^TP02}kJC8VbfGd7yD1)!W%z z>{Cm_)unLB^TzZ%Hfh3V%N5(mR%?MDm${L-*=#Sf1CI@A*YmtG9FjZ(b`Xm?JSCRs zq)_!p+@Pg$<3<7ie4ypMexv ziBi|t;_kFH z#W(lk=t}X%wzo7hwDrSUYst@w&5s> ze+=ehJraHv>WPIh)T^Wl9m(EaI6$0G2@JM8wWun21Wr&i!t)FMa*_dQVD&iGbM!LI zLFVIJHW`Rp4S2fV9+L2;rc$P8c@jg3oFZ5g1EigWtZ5MAl3PzL;TqvGy}v(=)HSBE zxdP`kRLpyT!z-ef50c#Z8I6hl&f+Pt_3XuJ>K$3i_vwlY%Z{6b!+iVM637C0iV4M-YQxZ)h0Jm7DwtQYt01z@d-B(=Qa+8gUTf4kw`2{z)-TQ|YL4ysaU}2>C$ef7 zom$){m%L+px!r~%?x!#S^z^v;8iyCTBA_{3orO2jEivZ83M{wOVlRvl!lmT5?fQs7T+`f*g!g&lTLlKb0Tf^47#1kCq*#C|R9EMh2^Wc}?M%CCY%& z#yzrx>&qW2ZePb)zv5u+f84B0-V*L*5*K1nur?!_1o(1Lev#&=U0eDCq<1B0F*x`< zC$pY%slqPKW(@S%u2tf+W5t3T*R%25idGEKNri$2bl5@hm_)d`^cmTd(1XJYHJ%M) zt2cW&4qqZj7xI7P5TL43DZ;J?%)W?l98wh1AV?^fP);Q0WY?=k>;rJoAn!Jh89lRx zSXeSFwrqf4Mb&!45o;gb6FC_D7Ef>SV~0Et4>0p$6ilHDiB7)${16^II zl_oj5ntU8Oi&^19l5%lcJ6b_tEau|V-qP+g_bB9(y2>q7A}T8~~l zW6rdOYRCQyIXiEQL_#7`Z&Eh)K&piUeeH6TyQ4KeSWb*&L9siVLW_UKO{8v2J4k7+ zhr^*FxvXPLSXMGKbTM8o=Qky0oo?=YTN~~*o@X%krlBEMS9BXI61mKRgf77$q?Emg zUj4Y-XC2AW+C>&c4-z0((Nx2sA~ATho8xn`!2;Vm{U62xj++P?Dyl_>0-c)8NXy-9 zz5XmD!D>=mq%y7M7Jnrakdd2xaM-mwzYIGJFsiJ@B3%S&v4CgIHV14A7<7=?NMr|F zageoRS;SvJ)X_~O`y-I&c4^qV`Wd+T?9z07`9t3HOH3E5-OHSsEN@zw$H75eugpmT z-Z(XX;a%1dsbAgWP>HKbGVkrib}0O3aav1SBmZ!N&r_=D!FD(EOp-RWAerq>TJv6= zVTbF=p7Gi^GAcTUUbCDLSb2fGgpXaREUc%lnOR-gGppx_71}j2h0F6<*ahDiUO0eN zxUP&6-KxZY#Y*SjG0bW@3Z8!LR%YGtLs@x+HRFOV7hv~~zq|<1STSR9#zkY^WqGzH zyN&ZN2`%jt1@^HfthRUCyxMBKBqC?88tt=~567`)B|DhZ=#4x9LtMDNoN{mwn<@qe z-EMF&HoY!BSX8d372qYI`=V!XFhfW0UQL${hg~FQ92`ugWMsyok-K14gq^tPm;Kuy zQl+&iBNxv2l!{$66?ch)1p{T1`4@$GnWt&J##u6s6qv3?Cm2L5OG9NCdP_kbE>$pb zm&Qw;EZ8lkLF%Km66-rr>wD0{Qwyv?(^3n<$c-+=rbLZgrX#T#4hR?5`b#xes9CEq z@YUoROLbY4qVOONQp99<=VE$c4cqKZ2a`?4kjU?@AE|OeLW3Msiy3FKU z^Cke18K^lRES$Tsab(s&Z?9p#+Q7!U>>H5{3}w%HvzSPVm1QxDp^WE(Ob8UvKZ>>) zt}lNGCQ!Pj?MX->ec&7^mwcwWWWhpGsR8ALYdm!5Ha(ukkZPN&d2`b{SLc*@yU6!S~xTlMx>)X%CK}PRj9InA?S-eB`n4^v1h+?$>!tuP*ki**1E~_Yu8w3Q z=HsS;bAvf97pAnuq1_q9J)^iHOQ+#%n806g2&JP>=Uj`i5f80v_T6b4VFCo5wGOn) zh>aVM(U7KaqtpaqEZNIY$G=jsd2rVAr`1Gof32{@{;IwV4j4e-!eNeT zryFUo?ofOwmimi~on!%?p4rP?_WcNY)jB`55xkZX_OtLj75b*?|;e5g-h_2HT- zWr$6nF80X6$Gh~61UzV{RDvUbK(=$xwuvn}o{OX$?&FWcovP*d7Frch_4?`n^RKU# z>j?bh4;c-Y_s{xpq*_JhmQU9o@Wx3IuVWyaqiOlu0hmzvDcnZttm;j*$E7RK-8gbU z2YkA4akRN_-!=!J912OpLF!O#UWX8I`rGmHgK72Qa1H)BC_6v!Z+|POkA!P&5;Icg z`e(g#=Nt@9b~)<5jTl{tlvXj5&I}l52s(eARaXU6w^~-+{IpzcjZpmxTre&I$Chbo zM^SiZOvqIT^ox8t-3xE+%%4_MhXV$thnO${m|r1v4N$iK56DuAhZAmnvzq5)Da+~W zl3J_6L)ZtKg7xR}xKWg^j&RT?mnHi9G5&OlG3syCA#}mM&KfXiPj?PFvRzEpXz*GH zx==~@n}5eUQ(4o!ZM3C-V8BbtPFB}2RAsxLI0KA`1;T+0T$Nr$j^IKES>%i{*r5Ep zNm0UbB#r6h%|GBlSK^X#qer}SLQ?Yf7mi}fdz09+=d9{726-ZUE#=M$bzXKM_ha9y z!#`KxZ5z&sUHOb`Q4q!%*@Eo!4T`Tep56S2UC9^=`Z}ExRY;VuOb+{DT(!e)JcEJ3 zRp}ZB=9`ZrZwfzw>;_tn9;-ftAPJAhQ=KbuXmPn*bCyjyR7P*QtE=#iCj{q0Om$@-02^8zaT||r{=llH@+mr8luZYg@3s8{4%z2v^#w#qVM47 z7{ZQ~r7{#I9hetlZdEIF(TioX<_#BePaW3RkO=5lh6pkmojt#~aYj5cEi$df_&Ny< zq*l3Fz3fgF<@!i=%rWt*Y1M_^Cr;i323YGs&;V=ArWs_2?_~sz{)FGebV?=VHkq)$ zVp`_O`AB_xj6S#8O=mM@xvUQYiNA4jgMGN^^2E~0#g{H__CHdcZz_a0rs)|OVYY$| zEO@s;9G)b-B94k+Ekm6Xlv1h_(^1rsnLd{26RAtvE*v(q@?=(ChXQ$ppzIj1sfiR^ z2Zti}bvDacanCt&SXJo@elX91v*~L#F9~YGeWER`?ai|Ps7AK1G~r*R;wD#SyxLh< z)w(c-+ob!kdfjMNh_Dcla?ST)G&sM?W=NSmabn$a-H3e4o%*Iq0ms&7hPBGYOi4YW z9J7(uyNn{qOF8OR>{`qxJ0Kw5fznV%CLSTDmEM z`-4P&-00JU-7Yz~gV{8mi?(!A5{dmSR~fl1x6}qAH8V_HfoWwkx~5)Du&BKULy9SN z@lpOZnu3kWBn?I(bH(68`LrJ#43f(bXC^cGWwTP*9M)lFz0AFLrZtYs_08@~slGU= z7W}tVOP%A(D-uBF0!tdh;-eyA_w5W# zD?1=C(qEund=%`yUU#JGph+7K><^_Tu00a-v%W+>G6rVsLco&MF-@n(g)mENU3}|+ z*7&euSzkyemv*9WgpP$Fa8HbVR)99K_a$NrL$E6l#boBR_UVB zLYg^(^Gn#JX?F|rFiPWK>s;i->1}+wW~yms2)`TiGNHWWR5GO^!Bz?*i?tTKv|@n- z>gK&K94z{bCq=N6Nt;VbP5#1!K_#89;6`+7ZGmIyE5u4iN7J7D$rWN^8XJp<{=KEA ziQS;gWBEbDOGAV;8|~vuE@zFF7X$7pSWa1hZ3x5+{b{>gtVnfTkQzf z>>1&3-lRN7)PjvL*bGzXmPG^Y!P_tz;?12%g<+;BZ_{wUe*!iljnk3N3}XC-)q37O z(bE*e7y)U^^n=rWddrApA8^@3u@6gtfDDm|bNdJSWKcwh&qbq)7R2IVygRHbk4@2~ z^uYz70T^5MW9fA$BYkF z=gq=5VA^gH^Cr47PSoEr5q{Z$usFUHx&v-E#!mA>ckuPPb72wUtgRC;YLw;0EDlaE z(vq23R%%lts*|K`lUbr{jm_(c^=Q>yAsV9jjCGMFvX?p~yWst$g2j`_*|)j43d7O&3f=*8d%7l&Y=Gudm> zD4a<$3ukobuMp8$jHbqd!|BT>6t`lfk&S?N$?f@7mbyDz-Z${wfZ>qa^L zA?q%8=%{NzdNDW{Ec0USm*~hXBz%jQywc0vRwjV6&I3Op6p)B6BDN>P6X%V{dF64D zdG(}r~9$K)!W=Tzptjs@W2KD%#D#g z$m70lSt~%0EkSP|?u?5x&F`y?RO7!@4R!M0F#dy^j_RuGt7^kF_#-Sxb)=!Xp|&p4 zAc)XKYO87+BK5V^c$-+Cp{ou>B6U@vx*A~_t~dWd`l_lb0x{%`fGvoU(b5nXw{dE? z-!9P%&PXr!YE}Xh-ffgh<4v1*$P=D7l|G_9R3ng_+*8e@mGrW(=k*;0=a7~LP~|uG zN@$i|TpGhqYbfi-GSyv!HAEb`0IjKwEfaHps`uaSxNf6BQ_mzW9;jrO*RHApl-0+k(>l{luU|~7C^z97{ehZo}urGAj)?BGyu0eIMNR5}^v4Px&QT$#OD<0cy5r<$4u_?Vd zW`V_VTB4ci8p&Z?mxcwTv>a_?VCULFuq2O*+D!P9 z%6HY9taW=Y)?RS0Qmd>XhVkl3$)?W24!K^~Rbc@(y}EPSMilR*GPsWdFXWk}ak*S% z*3_Dl8ROdA5n&km#-p7Yk9H(eo@hdRHa6DglDu*4BSb?cR<-FDbz{xVEfPvw&j_h8 zYu1;J6&e9UR(q3qgRK$Qd#t1$qrTB;6DOB&tiB^=aj5qk1%d6!jKR2FoK;wd0kuA8 zK&=lRP|Z*N11i|9c|eVX3%<#Y3Gz}i^zGO}yi$@{;ET>`&0FbYpTM%dPES0UXon%v zl`scY(qmUU{haHXe#VzpMa+a(_ZlzinxSdhWTymii)c1o=Ae)-JB zv)xCAOGzB~&($PUlV6M8C|u1>)`Hl%G1cwreyhDEK`!MonyJT-W8Msk{GMlIGQJln zL5Tsg2v;TEEzxGdpLqh1wF)!AsdzYuX_KP;qoTSn4UdTXKMFy%fB794%hwdxd`KY~u1l)IIR#5YR#nf`$uZLwTq9OKOvabW+}NB$SvY`LFr7~!S-CiE_oYjC zZ`6yKQqiZBqyUPh6Fi9MOC>$Q6%I();0mF?n2Q{lsFp<#NNa+Qa6>V?G)Lc-;f}oK zp7|+x{V5|%)KG`qH{?8sQl*wBmycEP~rX;+!~TH5K$;#DaK19a$?bvs$`Knoh{ z;q*6Lhcz5M7u2*e-9JCwk&>aKtUqA_BR55(ni52|n3Q1{Z!Rh{xH*uO$YE~9@dO>EnSo-} zY+;fN5R)v-P&FS6(W=7529#^YTw6vKm`x$PcT7w+2R4#X2P?_pmWELv(3h-%Cg#0= ztz%=cq%v6nmL8 zU%GxX)@6#piOw9d7I~N1BjFt|B`VjeyJx$mvPGS7s6lTnogLw|ptb|+yjR{6y7~+s zD4b=Is5ME?)*RH7>BS1DjE`lDDVUR*EFkjJCIg3t!?dGg85Y`*iPo^)xKvrnGdT?e z?%gI;QqtzD9V+2WU4!Lp$=G0nWnSiDl7BQ~uubD&zRSzuWQ>~8xRw_KV5y*Ne8AS$ zT45rmad`j}`K)l+eoItDu3OifUA((5-LFz%3D0bgqzDHPm1@;9MrrP8?Gg&PJ%SWc{(Cl7l)1hG4{qN; zSMVM3n(wmtkvMbP3pk9~gaU?1Gw{h^R(M0*EUZ7_&qBaa^#3?sjh)Ei&kI@Ba7_>Q z%Ei*~p2;i-WH?^D7=7_$EC9rpcJ{_RF;YpFLA19FE^%2g6j2K-%PMndK+QQx3|C{W zCiiSDfO}1JCy}O=o3u(?w5%IrlR!g5JeNb}qpN6K=7omFEzoUc{sV*;Jd6m}QjvMk@R!!>*&#|2B0_qi9#l%#cHRqPs>zzT#Jk>W zlvWIk)|h%;t#|BM%_3nBCj92KcVWU`xJ6nPIH7NyYWn3|%y25aYX+o6Jga>LOI(}K z)0<(9$8kyuhnVBo0pyvILNy2)YdR!-jo}=5_66}3h%Wn0fA&P^)67-ji(CBz4|Hh> z(M<3q>`;|zTwWR&w(6!;%yZ%{w+*PDS#l{`Z(!F#ndeFjg6Y} zp23`1T}5^xFZ*;lRwl3&$fOaY(HX}aGrh4HDLXy;3oChCWJkDTCyLd=8&T)#JYhR}PdnnmYM3t!u$Or)35KfTjoA5x zTW65M#Y>W|z^VZ|QMGvv(#YJ4En; zFl=#HZT_r$PmWpclx8jrdax;k#(0CH4)O@{IbSH@?6uZ-N#A0_h4Y?L5UcsJFtVU)WH3#Yy1^6{ANEAh8Ac6NlMo%!u%4N zP?)Si6;flZIV2rhWoZ_@53k#7j$wZaW`AfN+@z#)oxoP=O?OAiEWEf)L?&MDK+G=5 z#ynHE;FPhyQs`K4@vvWoLQgQNmeRNmkgVwkQlj-VHGCl#nBR) zDuzlQbtgeYI;2bw*ha1e7$y%~M(n$zg)y~RBQ=pewlJs4D^m!@qyyL`Z*fc}ODty0 z|^PW3JG|yU4v+RpDRZs)2s&XTT|vPT6+d zEMZ4A*AdaDa4`WUFZr}AeWUNn-XvTd0oyfy;$=pr;~|ZK2))-mrE5a|9U<#NuL)9#Hu90M&pT`5xUZomk4x;5 z&2y!>QMEpr)IdXr0bPt9Hu1E~z@UjhfBOKC6*s!EaDjplq>OvZBQ# z5k{PBX|xy?_z1^W#U9$(6~DUQft_jG{X+WXmSs&>4+y3Zs6`1*ORF%FX4Qv)j$~NGVO-{OW$T2e#yDH9Eu8$oC=|>X4AAKzHD-@GT>_q0`F8;`-7%)*Ff`i`E4%JyLsuXk91 zE2y?B(5e3A*dd9{&Drh&IZclkzf{8#Y?vc?kt~vt>sm!@4zN|EQIu7&NZ~uk1Q}1+ z>UOwR(iOeQl}FFV=qvL%X0vsc+aMtXG-Q^E88wvF7_nDP)*M)x1@$h<;u30^`OK@9 z#BnNCHEZ$FP9NTPFS{g7Os}V`WCg%%Hg#Y6xFFTPNY6l(oLwJ`_2eat3R;!U`>aZ1 zTM_pDW)kKunK)cp7xy9QYP@hOs*pK{@JC)nUS@hKqBD$O2(0Q>7xzZ0T~kN6rm9FD zZweHZ_n68R!zdw_*{*bRmn=91h3heK-y( z8)Nc*`Rbs^=>NCfSF2qt#{R967$#yDi**tW<>12lV!KNgOEL^WyM{3^!kUpcHzT8K zN2{EwQ?F~1-{Sg_P?qBl#k9BCaBSah0q?T5YYP$FbMM(Qhy&qrA0M`F$~Err(&F~H zYoV|?Vl_nszb3BKHqmkA91^k-UL8fWBTknc_Hz<_edzczkwX*nMwe{qDXe0_4{Khd zu!YdQgGffr;t2?BBt|#YtuJMRk?C3NQj2FwGfDpT0sJW|YC8{Dr zhuy^|(PXKU?Lc6IDQLKKYmh*$PFajmG3|*}H_l!xPR{isJGL_aAsO1EnTV?yC!0EX_~(ut5^De0neJy<61^tH$M9)kMXGe(y1448L;f zTF*Z4RFKP_vv59m?}OH-G?OQF@HhdKBfI=k{T*2p*i|^pWCnJ-)2|tg9pN60!VU_L zRH4Ok(8;_Tq$wQIcZA3QC7G2-RWavfb`cTc`J@l`2(yPx*~pnDu$@p^_`I za7hX-kt$YNME4~5i))eVVTq$PpXm)=1Hs8Ja|}!le!<_@#&H4w_sc-0V!Tv70klhB zO#b|z@~$N|((Ec%CJ=%WK_Uf21_&(?K@t?pRkr&fMNxOV-81e?cbCc@5)BG9ew6KM z+f`0g+1=G_K*|CnKv{q^uwfP~Sg?u^gxxG7!3t#&v0zJr6s1>aqKJg=JLjJJ`tM(^ zN_UV#S~ITKfB(mQoO{l9zH<&rKn({Z7!L41iXIJ5VKl+i<{7=YK-4Ajpb6!JjHeJQ zf^2;vXvhhQrgWWd0|^tMK9~{0VGz)VyyXD;7^6YJo*T2k9$@PbPAmNTVC!}r$H$p<@PvpjpWEnhk=&lx}%nK!?E~Dy3hYz9gHp0=Xnz&88!1 zaM}3vvE~GVlri{(z#=v*qbS9>3X<`ydm3B6JcgDTscQWszDU%FR@>E!HjbJ70Pq7&x1cOo8=xj3=xQ28a zC8SmMtX>=_DpNo*O%qX6y|tX8>aXI2ph3)yt)u(IOW>4FL}!JlEXrTUdULv-ZK>WT z9%6ZC^eiS1e>Lryrb?jj^YT}mCQQN-HVrbnOKHnV*^~dM@aV6 z%lLxHe&((a;&&Y)bGmcf^Rk7&^ECmU4;T>(*t{NnzDCXlN&`n@Fq5F0*bNh$FHkR_8pW*i*@AmZZcNKuyN|s!k177C$J=`Xw%CJRi(81>B8KDq<|A zsktyZNu{J@Hrr+Asfw508@0)*E=s*37WOYVJ1m!%qOwrd80U+}9!|NdRre5i`Ydq` zLoH<&<=t02IlOsN#;JK^nzC)OVC~5gx4aJ;gJYA!3ojR&W6DP66K*a`xQxIc?5=IH zm?gKQB*WYr?V)^Cq5wpACY=TeRf=^{M_c4ez9zXK)B@_EKzZZBML?y~-crq2k^-A9 z@?a*17YZq$S0oN8FrYzU^YrREQBe$u9t2ec`qv;z7*&f!bz&mLTyEVbgd@{)$esEi zPbdIL4+h?OFZR`{@eiGc+`$MTNHlgFiV8lK6x-K&UinK|3!g&? ze{Gjs`X|^?VFJU;#q3QQ`W8u1~~ci z(9dD!j-bp4Q?LT`&(=`A6evCy0?SCy;KK`3t9weaUE0-G$B&r0hl4mHt|!uin3O{p zn`+;w_((;Hvnl8zQIV2xQCcflQ*j=U?IEHDhNG$K?$yN0ncPpL8XpD*`i-6?(pY_b z1Q%q67*#BqM+F;(GYrB;kb}Z@kH{28#V36lXu9X`ho^n{1SBR{MMbDf-a7_DXNk9*+A@6o2?! zkMp^ZgiR8t$t((nf5MrX$Al9GdJa#QL$5BUR3QfvQU5Jb^Dt+|dyy)STZ3o-FF{5z zD}%v-)S#tkqmPo_czRexuw(uLVV}KqUS$F!v3hTmnLRH}nm8+86X+1c%1G=ZP6;TUjJ`6pfd>(b)-()IvE4R;-l0EnpY#T&4d2< z{(Y=U$GE|-)l5e5s5=L_his4>u0lquXz^}`A*=EXAjrhW>12sH4DiczzKDk-+zgi} z#4=Nx>FvtcDmI7vcd1^uO!FAqT5xOc;zA0$H3Tlxol>9B} z+VJbAtajd`wqUR+Q&b|1lNw-LEuN(LQG=b!aHa=^3)SU8*m>+SCHV}^*otXI%cG>lM+BIfw~z~Z;)YZ{ zVAj7J(u(x1#Ua$lOmK~paOK2NqB&EXw(6TL~A9A0oS8q(jb*0$|@2wFIb)746uGD6bQsaoDwH69OVS!1$!s%iM1V4hjZnjodsdQqEd8@dtwSmjz z3r&B3nT*2BmpL}pp)kjeSRC@vZGlV^zfzz=`;CeouNgZPm2Ie++^Q}&+@q;z z8gzLoUXJAg<#c&W*!hunSddc#EFU3WJ+)Cpt>G3QjHcWf?#-g24&}nEv_!EuD&TLJ zfOZoPX%=GQ9#(xSk_`nI;8=6a6k@q0)k4*1O7I*pt4nb;!8>D7lpa-}t>}?UQDdaD zF{_)#q*d`4SvhE`wW}xRy{TTZ1^}GGG>tX!OMtP=wS3j^;>6h zvx-XM9=95N$OJ`T(;%Org^oGzKkn0KX{egb-R=A9@SI4x`dFBHXfsPbmnt!qPX-IR z>Xyq^9i7gLC4ro+Cr~>~0>5P?X5$Two z9$4H*lpwiz^?X1)thb*k_c#UqOHY6=Cc`LYgW?b9z&#k%?oclhxtYy_pj9D;KGM%wCd? zUD;x*L{1=4M}@0Xq2)3euGXJ3Coip?Pgte~VN_=7q(K%rl@ekExvMP`3uZ!f23~z#BJAYOqFrY$=Mi^t zPnCkJ1`-48e3(+1lSVY}$*4t3&-2Nv;SjRpfMqTfnD)m*M5+$u%b7hMX~{A# zWHH9*oh$rcARP3pF2;g!IithH&L+v5^zQS=P$pw8AjyM#y9 zSt5pZ+yHDR#4!v<4GAGlrJbBIsAo|a_M9-nbCLcr7DD=$nT$kAC)Hd{M6)WD!7WZ5 zMIl%)Vz&bpwk*}$PR->JR~9RlNM3M}^hQgKjKQI#06D9=P9e+MEYP+usi2!{`#p>2 zmM;v9&a+87aLaiWLeg@x_Yw&yT1SB&3@xzj)r^>M{!}6+bZ*#QG*jwT_agQRDNhsv za-#kUCQknRK~5mXiN{NiCrM3k^8n;E|7K;LrLdPnTmo~x**b#`DJ8~H{Yd3&AreD& z5bkj)mf-AC@=RZZrxQU%pskAmWArdMhP0Et2d@hvzJwZird&ZO%VV+_HRK2@poh%N|6ENFhfD&39d5@TL+_?>$H9G>|wA;3`!qw zrboYMT%}%0PAc;LB$uSyq+86~@G5xC>pLfV2%P|C&5Onc&I&XL#7&1>i|tpsn|J6r zLXRR~l9k`kris)7lKl)Q+V=33-T)B_&0H)@J1(;xa_a3JcQ+p1l}C*8Ya{hdF~2tN z9uE7a!eJGPIHJk}jII3^geb<))a?aq+`7$gA*cYGpF#!CyZPDf!=jIPzB;PjK2$Kt zd31J;qF@*O(F6mWcxh#WsRw*)>Q?C$KY_`Sxhh6I$rl3Va#l&mTXpjgR?_+>rw5jv z$}DaKBaP^idkvW(ZQJ27EI@@gFhm)1Qf4yJ!w-hHTAYY8-HkY8KL_#;jLT!yV&F&z<;sHy{^62NtByuXNvyn^i8Cy926TX;9C`fTC+9o9Wr0VIt8wu zm~qTK9vQL;r51*|M*=%1t)LXs#-2C-y*t{foVmz0Q{L1bM_Gh&Kc$dfjjs+iMobZt zGd-tFpIL~9hDaN56$v}cAd&EOQq*H@9aT&QP9-YpJriT+!z8u9YlaWOk*M8V>R(k} zs_Nir@01a$sRAdpES+kXcC*6|yst)_P=TCi%OYoG zqXn~yK}P237w34|$sjhx%Rb`aQu*XwStdH+=5k&53f6NHjOnP|JiJ-Q?QYhSyXB`cyBnvgjj=@a7ZSUXwok$d)~n8J&{acLmq^Grd;WQYO{mpf9s z<;p#UOt zTsRBf3(<-=X6(}=2Yp>jKJ?Oj>OayqCxxzU}#rYhWOB; zWZbYUWk6!`r^{eeaYO`sB!S9HyADvZ%~OL7)IQ07nM-kMaaxAWMyn#vND87 zJp(Mo?*^9M5NP8e`Nb6sBU%DXR-siLY}0IsRtb%p2F(V9){LruuvCz@6Se>3jKpVX z?jTX*U=RE#_)o-Mz;{wWDRj9*!4n;Yh?iU%G7vZkKvIG%WbvfJK3P@H;p$HWJ-3jNc-$2J?dbtqUGV6}5DD(`QFLD+%fjxaK;2h}%jKyLO?5Jn(~WR>_%hDw5+ zVMZx(G^=4r)RchJOE;S*sFcGTekdLRnITlWTD9c4F=5zHAcGeYpi|`N;u~uaJcSB1 ztrHetgJeK&H7m54&WUPbIMxCx80#}8vzNN~JTc7k<_U99N9&f4;lRMc<&67+M_VA& zPVWE_k>jw3?nVRXO3tQ&38NEH8!mYK?Rq+uiBLu+ow2}>R@TWidBv;}Dt z770EO3d{UCZX~@8R_s+rC-?c1Xj;&ts!)&-5@4rxBUtySy_~!b}~H}oH9(q)auh41R?It8O(Jj zxtZ+&yC&8|jR-HuZw^2UJA~A(V*Dj?vQ@j73xC{flJ__XIYhx5I-x{24aC>2PWn6M7>Sfp>{m{*m zQiGU&3^oDaoxqn^-b9>2Ae)GS?dEkv{WDiIJ%`-O1$8p8Hw;qmdK~odh)o=c0Nf?~1)d7|{1q zxNEcC%8s^#P+JaFigM?G&WNEhd7GsvQnjKGF@n^(jPf-{5QgG_d4^l7fzR%$=yiJ7 zhnW{3u31MSDHuzK14;2+kj0_96CCeH$U8Wjs|K4&R&xhBvXJ}4mB3HXh&ekezO5RL zvoUGPLy{9}VuPPGq6AU#mA7(4rO^Kn5q`|vrFBGPb_cMbwAEe5D!_u+x_3z}IbA81 zX2W03ZOIbuuZsmD_N-Ex1&eI1q&AX$0bUnK%}Q1-?nR!o;c`1Ro0x3tw?RO9{r)C- zWQbXl%*CdoUVBxDP8vC%Ij?YhjkK8(X&=+fLXATg7#pXInVICLI)RZ#Xrt4we4lHx zZZfgHQ88|6flQ!uCop`WkQL{MN@%NbjM7mOFeC%JU!599A^y^@Pj+zn7*qg!d}0@_ zfYAy36FOOba)Dw|FaZ>&yF(-=FZFDu1P7c)X$>%Phaoe1p(8>X@1VUfyyVQc*(aG zqb)<+d6dWRY6aMcwH2F>8A~9eZzkHKObvsN)Fy#3CTdXP(`_!FvC5uu)ii-eDXMyv zuo`3xysxG+xLFFSJ?6Q{%*7K%I<;O+PPqqECw;9CPgYdvHe3?B!ueTm6uIvKv`Wg2 zV%`}w%osb_1J|)amv)JNHZ>D2Z4cfWazRPCgYKV*mv$mG*c|49AVjasciTiGzMz5uX)};kw|V@My}i zn+HB=9Mj9)J8ghh3!&;R5s^Us-1kG3MPt;tYht@jCYls;4Ou16k@B>VSrQRg-cA?e z8+{5ST&1N7N!__F@yD!5c^IN@TEhW#9GJ&B@54H!7eN;&){g0r_6UQe({E&?P3Smf zSA>qx!EoCQwu!QJaQgSJ!XCgZ*f`1bCOMgsON?78UvV#U_4f99{gdn#IH6-guG@#1 z1!)1TY6a4{2o{;}gX=xxdDaYlwoDaUO?z!5xxdrz3bGJ+$ITy8;heDGD9|9Lxk9uG zU;PY)v*EaVc4$N@R4_&_4oWscH31+?IjP1ZWfwv%bMH2sG{JA%fscBG(jRbUY*f66 zm6#CEZPP_!V^^gWatl%L4N$gpy@&G>phbXK+vTud)a2+V|DcLAW*UjN0StXfrfqW> zyAzx@D7H8T!Xyt6bHYyN;)KmPNh<|T5nfYcFL~u|X99i-XGuD5tJ{!!PB>|)BvN^j zHQk)$(d)j_*zX@4FtW6A`k)PXhe9381rwscBBapqpzoY~DBTx9;cX&wIEvuVqsjCO z?(SUZ7vUrKa0k?tvk+L|k88k5w&)1kK$O;Cf2*xFY`g_GTVtdcfQ!Y#mijKoK&sHX zZuN2UxHS)+h|rk7Fqd?QZ=3>Mp|@X*gPOVw^$G_ZMgcuYpvp`-v;E4(t%5Z7ETnQG zNYvB0FZ`+Q?lJNcB?Gn8yv_v`m}bcFq2(bF35W`jKpWv}j0dH%{v;pWa645)lxtYC za%7noWsAyM*&;C~$co)Ns%(>ZUgtEG%7-_)M!jN|-ni-plB&phu$U>W5s7dqW?PvJ z&OQR@XrB8hP!f~BUkE@*!ciFe7dbOM>n%h*2#@Ato`hc!@Fq*dOK0 zsB2ZlWz3nlw8V4)X9YYo&+|GkIv(uinna5Pl^w>2T1Mvmx*-p%o-cEX!r{nSQUmos zYi$;=o;r<7t76;bR@G~P>#^!C_g`En+fFo-o1 z5Bk+2;G%|^Sphw64$^Rbe~}1b84r!MzROr+%wUZ}a!s73Dl&t4RO&Q2tfD9te{3{C z^A(m2^YPPaB7%>>naAp@+;-UWW`;YZ=t~;lP%IY>^%|)$Mu?dXwwHVIr>ZY-$imgV zk(t3hWjr83e@yI(_xZRtje5;$=$g41_goV_N8Ha52kW?R4Dg}l2G|#|xti>VgrE8h ztz*QSGYsbJWM{9(2(XRQ(`qh}2jmb?)pCL_nWzH!hvb=IX94tQkeoSTVRNpu9MKoI zs=nhKWLk?srt6H(EArHK)z}g2GZ$)s;w!4Knhpipr2)D{l!`mzDmMON37-WZL%liF zZ*dQfTbeYE6tnGGiW1BPS5h-wdeT^7LPy4fbw`0DE2+HKprVS**Ba40Z-n=3PaQm= zG$SWa(9%0rulH{65anjdD$`JESDsx~yE3IU=gUDQbg)Mu2Ww>w^m2Ji*?M~6H(?LAX=g~ob)lvnMRD09xF)*MMt8LkSc_V7T`(fTz9V6$Oo&g zp6<@>==^MQLbI|WYQ0_RX0sN>OsLJ8O(PwS!>1%GdGk;U-O)3V9o7xE$8trtU<3(& zuQ!Izjxfcmv7DGKidrf8_I%_r6##*}qf{AA-p$u`mp3-xA#;)&Nqb&I?Gmk8aadIv)ES#N_DwJYV@?7c0kOVbp-TJbcl6(X*>upQXrS1kW zUG3?@sGw1W#bchXd7|@j!j#N%B_Ap;3QHnO-_%^&V-}~oSY-ef*O3Z83MX^{`n8_B zsxnEMP6r9q6p(k-J%!$RLx=-ZDAY>4i>;K5)I_C$_#He>p$YD& zffq^>bt2WNt7d4CnjAl?f}AIJ;RGhd2h@0;D>l~?3oXd%7lR)jP7;x?I2ac5M@+@m?(hIq0@6) zDk}=dB^E_8wOYo8;3fU&z{zA6+`O1^k zc?QHCnA480!Q`RknA2Zs!_Ma-x}gaV-JH({RZW~{9jS@ASx139O*^zuxsGSY~6!#Gfgy9L*mdM0JI-39z&QuF6VUY#ePDYyx>KXUJyt_ zFeq4u)K`m~cA`u+=L*#~PC@Ktwjw#B=s&STUu1P2N+96^SqGu!CM2Z^N(b5s+#Z{^ zby$kxrDe6=`NdC5u!yqm1xlmgac*pkB&zAoLp)#W2dHFK_hJX&(HPO9JBJ&ms4eqU#)`k}>_0lk z4@?=ed6|SnWQ8plC!{wvPEheJE`%Y`Gdh)UjTUJOk>VJEc20$qsW*;O`Y87i<&&Mi zgOjjw;o6O>Zg;Rq9_Li?6q%v_E? zbn)A$ce29=&0X`65;+>(cA%%lqVUO%GX z$I#yI?Ct`owoe2&?LB(X-a-Ynx9&`h=l%DqIKg}H|4Z&f*I&9R@2 z_nY|ebNJudZ@+XCpBjyA_r(?Y6#o27cq{Lk_#3yMymV8(pSboPmrvnO-u@1L`tKk9 zaA?!q7=@LTqUyWyXeZySyGyH|U8fHxn&|91FW@4YEMz4cysX?)?=_4R#t;i;_s zujto}-^D8rwf4`h+>~FQU6Gf@r`W;Kzr6o`AHV%Dy8o9yb5o9f`7_#R7;M*S@3ezxEw%Z^y|=@y9;f>wn=p zKA~Oz9oPPyOWND{zKb`UyVm~euKm|t`(-ziXjc3~anOzXa@t=LP*Z1M#@%0`myn0cm3t;du#vc?0eoT|Jm!yuDyO6{{E4>{vT%Z$J*JEpR8&B zo`2H&f8$%}3G()9HSK@zZ$2iMxYD&N>1*D8y{7#i{6O3P>$hgNf9Trh{rAd${)ROC z=>2kgyN@?&uK(uh6>0c^GwvGUpS81ZdNu8j|5gRhSDx9C`kJ@rXOn%&k$?FK`S|v~ z>$e}r%im*?*}T=+*=SI{+T7D4_3zumPs*E*d@Q|U`l-?2_E2j74}bP4X+O>yWFH&< E3&apGrT_o{ literal 0 HcmV?d00001 diff --git a/target/executable/parallel_map/nextflow_labels.config b/target/executable/parallel_map/nextflow_labels.config index 9ea88b1b..66f5e21c 100644 --- a/target/executable/parallel_map/nextflow_labels.config +++ b/target/executable/parallel_map/nextflow_labels.config @@ -1,26 +1,88 @@ +executor { + $k8s { + submitRateLimit = '10sec' + pollInterval = '1 sec' + } +} + process { - // Default resources for components that hardly do any processing - memory = { 2.GB * task.attempt } - cpus = 1 + container = 'nextflow/bash:latest' + + // default resources + memory = { 8.Gb * task.attempt } + cpus = 8 + maxForks = 36 // Retry for exit codes that have something to do with memory issues errorStrategy = { task.exitStatus in 137..140 ? 'retry' : 'terminate' } maxRetries = 3 - maxMemory = null + maxMemory = 192.GB // Resource labels - withLabel: singlecpu { cpus = 1 } - withLabel: lowcpu { cpus = 4 } - withLabel: midcpu { cpus = 10 } - withLabel: highcpu { cpus = 20 } + withLabel: verylowcpu { cpus = 2 } + withLabel: lowcpu { cpus = 8 } + withLabel: midcpu { cpus = 16 } + withLabel: highcpu { cpus = 32 } - 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 ) } } + withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } } + withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } } + withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } } + withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } } } +profiles { + // detect tempdir + tempDir = java.nio.file.Paths.get( + System.getenv('NXF_TEMP') ?: + System.getenv('VIASH_TEMP') ?: + System.getenv('TEMPDIR') ?: + System.getenv('TMPDIR') ?: + '/tmp' + ).toAbsolutePath() + + mount_temp { + docker.temp = tempDir + podman.temp = tempDir + charliecloud.temp = tempDir + } + + no_publish { + process { + withName: '.*' { + publishDir = [ + enabled: false + ] + } + } + } + + docker { + docker.fixOwnership = true + docker.enabled = true + // docker.userEmulation = true + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + + local { + // This config is for local processing. + process { + maxMemory = 25.GB + withLabel: verylowcpu { cpus = 2 } + withLabel: lowcpu { cpus = 4 } + withLabel: midcpu { cpus = 6 } + withLabel: highcpu { cpus = 12 } + + withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } } + withLabel: midmem { memory = { get_memory( 12.GB * task.attempt ) } } + withLabel: highmem { memory = { get_memory( 20.GB * task.attempt ) } } + } + } +} + def get_memory(to_compare) { if (!process.containsKey("maxMemory") || !process.maxMemory) { return to_compare diff --git a/target/executable/parallel_map/parallel_map b/target/executable/parallel_map/parallel_map index 923f1960..efef30c2 100755 --- a/target/executable/parallel_map/parallel_map +++ b/target/executable/parallel_map/parallel_map @@ -2,9 +2,9 @@ # parallel_map main # -# This wrapper script is auto-generated by viash 0.9.0-RC7 and is thus a -# derivative work thereof. This software comes with ABSOLUTELY NO WARRANTY from -# Data Intuitive. +# This wrapper script is auto-generated by viash 0.9.0 and is thus a derivative +# work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data +# Intuitive. # # The component may contain files which fall under a different license. The # authors of this component should specify the license in the header of such @@ -502,23 +502,19 @@ function ViashDockerfile { FROM debian:stable-slim ENTRYPOINT [] RUN apt-get update && \ - DEBIAN_FRONTEND=noninteractive apt-get install -y procps gzip bzip2 parallel wget zlib1g-dev unzip xxd file && \ + DEBIAN_FRONTEND=noninteractive apt-get install -y procps wget automake make gcc g++ zlib1g-dev parallel file && \ rm -rf /var/lib/apt/lists/* -ENV STAR_VERSION "2.7.11b" -ENV STAR_SOURCE "https://github.com/alexdobin/STAR/releases/download/$STAR_VERSION/STAR_$STAR_VERSION.zip" -ENV STAR_TARGET "/tmp/star.zip" -ENV STAR_BINARY "STAR" -RUN wget -O $STAR_TARGET $STAR_SOURCE && \ - unzip $STAR_TARGET -d /tmp && \ - mv /tmp/STAR_$STAR_VERSION/Linux_x86_64_static/STAR /usr/local/bin/$STAR_BINARY && \ - chmod +x /usr/local/bin/$STAR_BINARY && \ - rm $STAR_TARGET && rm -rf /tmp/STAR_$STAR_VERSION - +ARG STAR_V +ENV STAR_SOURCE="https://github.com/alexdobin/STAR/archive/refs/tags/$STAR_V.tar.gz" +ENV STAR_TARGET="/app/star-$STAR_V.tar.gz" +ENV STAR_INSTALL_DIR="/app/STAR-$STAR_V" +ENV STAR_BINARY=STAR +COPY STAR /usr/local/bin/$STAR_BINARY LABEL org.opencontainers.image.description="Companion container for running component parallel_map" -LABEL org.opencontainers.image.created="2024-09-17T08:52:47Z" +LABEL org.opencontainers.image.created="2024-11-05T15:39:41Z" LABEL org.opencontainers.image.source="https://github.com/viash-hub/htrnaseq" -LABEL org.opencontainers.image.revision="cf9797232db1306bfd5696287928cababe317d99" +LABEL org.opencontainers.image.revision="65dd41d8b1b4a307735c72320c96c0880c75f17f" LABEL org.opencontainers.image.version="main" VIASHDOCKER @@ -532,7 +528,7 @@ function ViashDockerBuildArgs { local engine_id="$1" if [[ "$engine_id" == "docker" ]]; then - echo "" + echo "--build-arg 'STAR_V=2.7.6a'" fi } diff --git a/target/executable/stats/combine_star_logs/.config.vsh.yaml b/target/executable/stats/combine_star_logs/.config.vsh.yaml index 58056219..e87340e2 100644 --- a/target/executable/stats/combine_star_logs/.config.vsh.yaml +++ b/target/executable/stats/combine_star_logs/.config.vsh.yaml @@ -8,7 +8,7 @@ argument_groups: name: "--barcodes" description: "Barcodes responding to the respective log files.\n" info: null - required: false + required: true direction: "input" multiple: true multiple_sep: ";" @@ -20,7 +20,7 @@ argument_groups: - "Log.final.out" must_exist: true create_parent: true - required: false + required: true direction: "input" multiple: true multiple_sep: ";" @@ -34,7 +34,7 @@ argument_groups: - "Summary.txt" must_exist: true create_parent: true - required: false + required: true direction: "input" multiple: true multiple_sep: ";" @@ -44,7 +44,7 @@ argument_groups: info: null must_exist: true create_parent: true - required: false + required: true direction: "input" multiple: true multiple_sep: ";" @@ -182,15 +182,18 @@ build_info: engine: "docker|native" output: "target/executable/stats/combine_star_logs" executable: "target/executable/stats/combine_star_logs/combine_star_logs" - viash_version: "0.9.0-RC7" - git_commit: "cf9797232db1306bfd5696287928cababe317d99" - git_remote: "https://x-access-token:ghs_KjB7pWu8DQM3iFulLu7RI06qnt5K8S1A0eaE@github.com/viash-hub/htrnaseq" + viash_version: "0.9.0" + git_commit: "65dd41d8b1b4a307735c72320c96c0880c75f17f" + git_remote: "https://x-access-token:ghs_McZDF0yobnnHmOEb2Q4JaaB3pzr9mz1VbIOs@github.com/viash-hub/htrnaseq" package_config: name: "htrnaseq" version: "main" description: "High-throughput pipeline [WIP]\n" - info: null - viash_version: "0.9.0-RC7" + info: + test_resources: + - path: "gs://viash-hub-test-data/htrnaseq/v1/" + dest: "resources_test" + viash_version: "0.9.0" source: "src" target: "target" config_mods: diff --git a/target/executable/stats/combine_star_logs/combine_star_logs b/target/executable/stats/combine_star_logs/combine_star_logs index b4da01b9..7c36dead 100755 --- a/target/executable/stats/combine_star_logs/combine_star_logs +++ b/target/executable/stats/combine_star_logs/combine_star_logs @@ -2,9 +2,9 @@ # combine_star_logs main # -# This wrapper script is auto-generated by viash 0.9.0-RC7 and is thus a -# derivative work thereof. This software comes with ABSOLUTELY NO WARRANTY from -# Data Intuitive. +# This wrapper script is auto-generated by viash 0.9.0 and is thus a derivative +# work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data +# Intuitive. # # The component may contain files which fall under a different license. The # authors of this component should specify the license in the header of such @@ -175,16 +175,16 @@ function ViashHelp { echo "" echo "Arguments:" echo " --barcodes" - echo " type: string, multiple values allowed" + echo " type: string, required parameter, multiple values allowed" echo " Barcodes responding to the respective log files." echo "" echo " --star_logs" - echo " type: file, multiple values allowed, file must exist" + echo " type: file, required parameter, multiple values allowed, file must exist" echo " example: Log.final.out" echo " Paths to the STAR log files (most frequently called Log.final.out)" echo "" echo " --gene_summary_logs" - echo " type: file, multiple values allowed, file must exist" + echo " type: file, required parameter, multiple values allowed, file must exist" echo " example: Summary.txt" echo " Paths to the Summary.csv files from the STAR Solo output. Can be found" echo " in" @@ -192,7 +192,7 @@ function ViashHelp { echo " directory." echo "" echo " --reads_per_gene_logs" - echo " type: file, multiple values allowed, file must exist" + echo " type: file, required parameter, multiple values allowed, file must exist" echo " Paths to the 'ReadsPerGene.out.tab' files as output by STAR." echo "" echo " --output" @@ -486,9 +486,9 @@ RUN pip install --upgrade pip && \ pip install --upgrade --no-cache-dir "pandas" LABEL org.opencontainers.image.description="Companion container for running component stats combine_star_logs" -LABEL org.opencontainers.image.created="2024-09-17T08:52:49Z" +LABEL org.opencontainers.image.created="2024-11-05T15:39:41Z" LABEL org.opencontainers.image.source="https://github.com/viash-hub/htrnaseq" -LABEL org.opencontainers.image.revision="cf9797232db1306bfd5696287928cababe317d99" +LABEL org.opencontainers.image.revision="65dd41d8b1b4a307735c72320c96c0880c75f17f" LABEL org.opencontainers.image.version="main" VIASHDOCKER @@ -879,6 +879,22 @@ fi # check whether required parameters exist +if [ -z ${VIASH_PAR_BARCODES+x} ]; then + ViashError '--barcodes' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_PAR_STAR_LOGS+x} ]; then + ViashError '--star_logs' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_PAR_GENE_SUMMARY_LOGS+x} ]; then + ViashError '--gene_summary_logs' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_PAR_READS_PER_GENE_LOGS+x} ]; then + ViashError '--reads_per_gene_logs' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi if [ -z ${VIASH_META_NAME+x} ]; then ViashError 'name' is a required argument. Use "--help" to get more information on the parameters. exit 1 @@ -1145,7 +1161,6 @@ trap interrupt INT SIGINT cat > "\$tempscript" << 'VIASHMAIN' import logging import pandas as pd -import numpy as np from itertools import batched, starmap ### VIASH START @@ -1192,7 +1207,7 @@ logger.setLevel(logging.DEBUG) def handle_percentages(column_value): # TODO: handle this more gracefully if column_value: - return np.float64(column_value.strip('%')) + return column_value.strip('%') return column_value def star_log_to_dataframe(barcode: str, log_path) -> pd.DataFrame: @@ -1210,7 +1225,7 @@ def summary_to_dataframe(barcode: str, summary_path) -> pd.DataFrame: logger.info("Reading summary log %s for barcode %s", summary_path, barcode) result = pd.read_table(summary_path, sep=",", header=None, names=["Category", "Value"], - index_col=0) + index_col=0, dtype=pd.StringDtype()) logger.info("Read %d row(s) and %d column(s) from summary file at %s", *result.shape, summary_path) return result @@ -1219,9 +1234,14 @@ def summary_to_dataframe(barcode: str, summary_path) -> pd.DataFrame: def reads_per_gene_to_dataframe(barcode, read_per_gene_path) -> pd.DataFrame: logger.info("Reading reads per gene file %s for barcode %s", read_per_gene_path, barcode) result = pd.read_table(read_per_gene_path, skiprows=[0, 1, 2, 3], header=None, sep="\\t", + dtype={"geneID": pd.StringDtype(), + "Unstranded": pd.Int64Dtype(), + "posStrand": pd.Int64Dtype(), + "negStrand": pd.Int64Dtype()}, index_col=0, names=["geneID", "Unstranded", "posStrand", "negStrand"]) result = result[["Unstranded"]] # Do not use .loc here because we need a DataFrame, not a Series df = pd.DataFrame({"Value": result.sum()}) + df = df.rename({"Unstranded": "NumberOfCountedReads"}, errors="raise") df.index.name = "Category" logger.info("Read %d row(s) and %d column(s) from reads per gene file at %s", *df.shape, read_per_gene_path) @@ -1250,12 +1270,16 @@ def star_log_remove_unwanted_entries_and_adjust_format(barcode, df: pd.DataFrame "\\n\\t".join(to_keep[~to_keep].index.to_list())) result = df.loc[to_keep] + # Replace % by pect, remove columns, use camel case and remove spaces + # You might be tempted to use .title() to make everything uppercase, + # but characters which are already uppercase should stay that way. + # (example: NumberOfUMIs and not NumberOfUmis) result.index = result.index.str.replace("%", "pect")\\ .str.replace(":", "")\\ .str.replace(r"(?:^|\\s).", lambda m:m.group(0).upper(), regex=True)\\ .str.replace(" ", "") result = result.rename({"UniquelyMappedReadsNumber": "NumberOfMappedReads", - "UniquelyMappedReadsPect": "pctMappedReads"}, errors="raise") + "UniquelyMappedReadsPect": "PctMappedReads"}, errors="raise") logger.info("Done filtering STAR logs for barcode %s. Result has %d row(s) and %d column(s). " "Found entries:\\n\\t%s", barcode, *result.shape, "\\n\\t".join(result.index.to_list())) @@ -1271,13 +1295,9 @@ def summary_remove_unwanted_entries_and_adjust_format(barcode, df: pd.DataFrame) "Reads Mapped to Genome: Unique", "Reads Mapped to Transcriptome: Unique Genes", "Reads in Cells Mapped to Unique Genes", - "Mean Reads per Cell", "Median UMI per Cell", "Median Genes per Cell", - "Q30 Bases in CB+UMI", "Reads Mapped to Genome: Unique+Multiple", - "Reads Mapped to Transcriptome: Unique+Multipe Genes", - "Fraction of Reads in Cells", "Median Reads per Cell", "Mean UMI per Cell", "Mean Genes per Cell", @@ -1290,8 +1310,15 @@ def summary_remove_unwanted_entries_and_adjust_format(barcode, df: pd.DataFrame) result = df.loc[to_keep] result.index = result.index.str.replace(r"(?:^|\\s).", lambda m:m.group(0).upper(), regex=True).str.replace(" ", "") - result = result.rename({"UMIsInCells": "NumberOfUMIs", - "TotalGenesDetected": "NumberOfGenes"}, errors="raise") + to_rename = {"UMIsInCells": "NumberOfUMIs", + "TotalGenesDetected": "NumberOfGenes"} + try: + result = result.rename(to_rename, errors="raise") + except KeyError as e: + raise KeyError(f"Tried to rename log entries ({','.join(to_rename)}) in the summary " + f"log for barcode {barcode}, but an entry was not found in the file. " + "Make sure that you are using the correct version of STAR." + f"Available entries: {", ".join(result.index.to_list())}") from e logger.info("Done filtering summary logs for barcode %s. Result has %d row(s) and %d column(s). " "Found entries:\\n\\t%s", barcode, *result.shape, "\\n\\t".join(result.index.to_list())) @@ -1340,13 +1367,40 @@ def main(par): all_stats = pd.concat(all_logs_data, axis=1) logger.info("Log statistics were gathered for the following barcodes: %s", ", ".join(all_stats.index.to_list())) + dtypes = { + 'NumberOfInputReads': pd.UInt64Dtype(), + 'NumberOfMappedReads': pd.UInt64Dtype(), + 'PctMappedReads': pd.Float64Dtype(), + 'NumberOfReadsMappedToMultipleLoci': pd.UInt64Dtype(), + 'PectOfReadsMappedToMultipleLoci': pd.Float64Dtype(), + 'NumberOfReadsMappedToTooManyLoci': pd.UInt64Dtype(), + 'PectOfReadsMappedToTooManyLoci': pd.Float64Dtype(), + 'NumberOfReadsUnmappedTooManyMismatches': pd.UInt64Dtype(), + 'PectOfReadsUnmappedTooManyMismatches': pd.Float64Dtype(), + 'NumberOfReadsUnmappedTooShort': pd.UInt64Dtype(), + 'PectOfReadsUnmappedTooShort': pd.Float64Dtype(), + 'NumberOfReadsUnmappedOther': pd.UInt64Dtype(), + 'PectOfReadsUnmappedOther': pd.Float64Dtype(), + 'ReadsWithValidBarcodes': pd.Float64Dtype(), + 'SequencingSaturation': pd.Float64Dtype(), + 'Q30BasesInCB+UMI': pd.Float64Dtype(), + 'ReadsMappedToTranscriptome:Unique+MultipeGenes': pd.Float64Dtype(), + 'EstimatedNumberOfCells': pd.UInt64Dtype(), + 'FractionOfReadsInCells': pd.Float64Dtype(), + 'MeanReadsPerCell': pd.UInt64Dtype(), + 'NumberOfUMIs': pd.UInt64Dtype(), + 'NumberOfGenes': pd.UInt64Dtype(), + 'NumberOfCountedReads': pd.UInt64Dtype(), + } + all_stats = all_stats.astype(dtypes) # batched() is used here to print a limited amount of columnns at a time # to make sure that they are all displayed (pandas might limit the view for readability) logger.info("Summary of final output:\\n%s\\n", "\\n".join(repr(all_stats.loc[:,columns].describe()) for columns in batched(all_stats.columns, 3))) logger.info("Writing output to %s", par["output"]) - all_stats.reset_index("WellBC").to_csv(par["output"], sep="\\t", header=True, index=False) + all_stats.reset_index("WellBC").to_csv(par["output"], sep="\\t", header=True, + index=False, float_format='%g') logger.info("Finished %s.", meta["name"]) if __name__ == "__main__": diff --git a/target/executable/stats/combine_star_logs/nextflow_labels.config b/target/executable/stats/combine_star_logs/nextflow_labels.config index 9ea88b1b..66f5e21c 100644 --- a/target/executable/stats/combine_star_logs/nextflow_labels.config +++ b/target/executable/stats/combine_star_logs/nextflow_labels.config @@ -1,26 +1,88 @@ +executor { + $k8s { + submitRateLimit = '10sec' + pollInterval = '1 sec' + } +} + process { - // Default resources for components that hardly do any processing - memory = { 2.GB * task.attempt } - cpus = 1 + container = 'nextflow/bash:latest' + + // default resources + memory = { 8.Gb * task.attempt } + cpus = 8 + maxForks = 36 // Retry for exit codes that have something to do with memory issues errorStrategy = { task.exitStatus in 137..140 ? 'retry' : 'terminate' } maxRetries = 3 - maxMemory = null + maxMemory = 192.GB // Resource labels - withLabel: singlecpu { cpus = 1 } - withLabel: lowcpu { cpus = 4 } - withLabel: midcpu { cpus = 10 } - withLabel: highcpu { cpus = 20 } + withLabel: verylowcpu { cpus = 2 } + withLabel: lowcpu { cpus = 8 } + withLabel: midcpu { cpus = 16 } + withLabel: highcpu { cpus = 32 } - 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 ) } } + withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } } + withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } } + withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } } + withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } } } +profiles { + // detect tempdir + tempDir = java.nio.file.Paths.get( + System.getenv('NXF_TEMP') ?: + System.getenv('VIASH_TEMP') ?: + System.getenv('TEMPDIR') ?: + System.getenv('TMPDIR') ?: + '/tmp' + ).toAbsolutePath() + + mount_temp { + docker.temp = tempDir + podman.temp = tempDir + charliecloud.temp = tempDir + } + + no_publish { + process { + withName: '.*' { + publishDir = [ + enabled: false + ] + } + } + } + + docker { + docker.fixOwnership = true + docker.enabled = true + // docker.userEmulation = true + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + + local { + // This config is for local processing. + process { + maxMemory = 25.GB + withLabel: verylowcpu { cpus = 2 } + withLabel: lowcpu { cpus = 4 } + withLabel: midcpu { cpus = 6 } + withLabel: highcpu { cpus = 12 } + + withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } } + withLabel: midmem { memory = { get_memory( 12.GB * task.attempt ) } } + withLabel: highmem { memory = { get_memory( 20.GB * task.attempt ) } } + } + } +} + def get_memory(to_compare) { if (!process.containsKey("maxMemory") || !process.maxMemory) { return to_compare diff --git a/target/executable/stats/generate_pool_statistics/.config.vsh.yaml b/target/executable/stats/generate_pool_statistics/.config.vsh.yaml index 49bbbe24..09b52aef 100644 --- a/target/executable/stats/generate_pool_statistics/.config.vsh.yaml +++ b/target/executable/stats/generate_pool_statistics/.config.vsh.yaml @@ -124,7 +124,7 @@ runners: engines: - type: "docker" id: "docker" - image: "python:3.11-slim" + image: "python:3.12-slim" target_registry: "images.viash-hub.com" target_tag: "main" namespace_separator: "/" @@ -154,15 +154,18 @@ build_info: engine: "docker|native" output: "target/executable/stats/generate_pool_statistics" executable: "target/executable/stats/generate_pool_statistics/generate_pool_statistics" - viash_version: "0.9.0-RC7" - git_commit: "cf9797232db1306bfd5696287928cababe317d99" - git_remote: "https://x-access-token:ghs_KjB7pWu8DQM3iFulLu7RI06qnt5K8S1A0eaE@github.com/viash-hub/htrnaseq" + viash_version: "0.9.0" + git_commit: "65dd41d8b1b4a307735c72320c96c0880c75f17f" + git_remote: "https://x-access-token:ghs_McZDF0yobnnHmOEb2Q4JaaB3pzr9mz1VbIOs@github.com/viash-hub/htrnaseq" package_config: name: "htrnaseq" version: "main" description: "High-throughput pipeline [WIP]\n" - info: null - viash_version: "0.9.0-RC7" + info: + test_resources: + - path: "gs://viash-hub-test-data/htrnaseq/v1/" + dest: "resources_test" + viash_version: "0.9.0" source: "src" target: "target" config_mods: diff --git a/target/executable/stats/generate_pool_statistics/generate_pool_statistics b/target/executable/stats/generate_pool_statistics/generate_pool_statistics index 86645dc8..2b6b0a02 100755 --- a/target/executable/stats/generate_pool_statistics/generate_pool_statistics +++ b/target/executable/stats/generate_pool_statistics/generate_pool_statistics @@ -2,9 +2,9 @@ # generate_pool_statistics main # -# This wrapper script is auto-generated by viash 0.9.0-RC7 and is thus a -# derivative work thereof. This software comes with ABSOLUTELY NO WARRANTY from -# Data Intuitive. +# This wrapper script is auto-generated by viash 0.9.0 and is thus a derivative +# work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data +# Intuitive. # # The component may contain files which fall under a different license. The # authors of this component should specify the license in the header of such @@ -468,7 +468,7 @@ function ViashDockerfile { if [[ "$engine_id" == "docker" ]]; then cat << 'VIASHDOCKER' -FROM python:3.11-slim +FROM python:3.12-slim ENTRYPOINT [] RUN apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install -y procps && \ @@ -478,9 +478,9 @@ RUN pip install --upgrade pip && \ pip install --upgrade --no-cache-dir "pandas" LABEL org.opencontainers.image.description="Companion container for running component stats generate_pool_statistics" -LABEL org.opencontainers.image.created="2024-09-17T08:52:49Z" +LABEL org.opencontainers.image.created="2024-11-05T15:39:43Z" LABEL org.opencontainers.image.source="https://github.com/viash-hub/htrnaseq" -LABEL org.opencontainers.image.revision="cf9797232db1306bfd5696287928cababe317d99" +LABEL org.opencontainers.image.revision="65dd41d8b1b4a307735c72320c96c0880c75f17f" LABEL org.opencontainers.image.version="main" VIASHDOCKER @@ -1080,9 +1080,13 @@ if __name__ == "__main__": nr_reads_nr_genes_wells = [] for nr_reads_nr_genes_file in par["nrReadsNrGenesPerChrom"]: nr_reads_nr_genes_wells.append(pd.read_csv(nr_reads_nr_genes_file, - header=0, delimiter="\\t")) - nr_reads_nr_genes_pool = pd.concat(nr_reads_nr_genes_wells, ignore_index=True) - total_nr_reads_per_chromosome = nr_reads_nr_genes_pool.pivot_table(index="WellBC", columns="Chr", + header=0, delimiter="\\t", + dtype={"WellBC": pd.StringDtype(), + "Chr": pd.StringDtype(), + "NumberOfReads": pd.UInt64Dtype(), + "NumberOfGenes": pd.UInt64Dtype()})) + nr_reads_nr_genes_pool = pd.concat(nr_reads_nr_genes_wells, ignore_index=True,) + total_nr_reads_per_chromosome = nr_reads_nr_genes_pool.pivot_table(index="WellBC", columns="Chr", values=["NumberOfReads"], fill_value=0, aggfunc="sum").droplevel(0, axis=1) total_nr_reads_per_chromosome.columns.name = None @@ -1123,19 +1127,25 @@ if __name__ == "__main__": total_chromosomal_reads = total_nr_reads_per_chromosome.loc[:,matching_chromosomes].sum(axis=1) percentage_chromosomal_reads = round(total_chromosomal_reads / total_sum_of_reads * 100, 2) + cols_to_add = { + "pctChrom": percentage_chromosomal_reads, + "pctMT": percentage_mitochondrial_reads, + "pctERCC": percentage_ercc_reads, + "SumReads": total_sum_of_reads, + "NumberOfGenes": total_nr_genes, + "NumberOfERCCReads": total_ercc_reads, + "NumberOfChromReads": total_chromosomal_reads, + "NumberOfMTReads": mitochondrial_reads, + } total_nr_reads_per_chromosome = total_nr_reads_per_chromosome.assign( - pctChrom=percentage_chromosomal_reads, - pctMT=percentage_mitochondrial_reads, - pctERCC=percentage_ercc_reads, - SumReads=total_sum_of_reads, - NumberOfGenes=total_nr_genes, + **cols_to_add ) total_nr_reads_per_chromosome.reset_index(names="WellBC")\\ .to_csv(par["nrReadsNrGenesPerChromPool"], sep="\\t", - header=True, index=False, - columns=("WellBC",) + tuple(chromosome_names) + \\ - ("SumReads", "pctMT", "pctERCC", "pctChrom", "NumberOfGenes")) + header=True, index=False, float_format="%g", + columns=("WellBC",) + tuple(chromosome_names) + tuple(cols_to_add.keys()) + ) VIASHMAIN python -B "\$tempscript" & wait "\$!" diff --git a/target/executable/stats/generate_pool_statistics/nextflow_labels.config b/target/executable/stats/generate_pool_statistics/nextflow_labels.config index 9ea88b1b..66f5e21c 100644 --- a/target/executable/stats/generate_pool_statistics/nextflow_labels.config +++ b/target/executable/stats/generate_pool_statistics/nextflow_labels.config @@ -1,26 +1,88 @@ +executor { + $k8s { + submitRateLimit = '10sec' + pollInterval = '1 sec' + } +} + process { - // Default resources for components that hardly do any processing - memory = { 2.GB * task.attempt } - cpus = 1 + container = 'nextflow/bash:latest' + + // default resources + memory = { 8.Gb * task.attempt } + cpus = 8 + maxForks = 36 // Retry for exit codes that have something to do with memory issues errorStrategy = { task.exitStatus in 137..140 ? 'retry' : 'terminate' } maxRetries = 3 - maxMemory = null + maxMemory = 192.GB // Resource labels - withLabel: singlecpu { cpus = 1 } - withLabel: lowcpu { cpus = 4 } - withLabel: midcpu { cpus = 10 } - withLabel: highcpu { cpus = 20 } + withLabel: verylowcpu { cpus = 2 } + withLabel: lowcpu { cpus = 8 } + withLabel: midcpu { cpus = 16 } + withLabel: highcpu { cpus = 32 } - 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 ) } } + withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } } + withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } } + withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } } + withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } } } +profiles { + // detect tempdir + tempDir = java.nio.file.Paths.get( + System.getenv('NXF_TEMP') ?: + System.getenv('VIASH_TEMP') ?: + System.getenv('TEMPDIR') ?: + System.getenv('TMPDIR') ?: + '/tmp' + ).toAbsolutePath() + + mount_temp { + docker.temp = tempDir + podman.temp = tempDir + charliecloud.temp = tempDir + } + + no_publish { + process { + withName: '.*' { + publishDir = [ + enabled: false + ] + } + } + } + + docker { + docker.fixOwnership = true + docker.enabled = true + // docker.userEmulation = true + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + + local { + // This config is for local processing. + process { + maxMemory = 25.GB + withLabel: verylowcpu { cpus = 2 } + withLabel: lowcpu { cpus = 4 } + withLabel: midcpu { cpus = 6 } + withLabel: highcpu { cpus = 12 } + + withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } } + withLabel: midmem { memory = { get_memory( 12.GB * task.attempt ) } } + withLabel: highmem { memory = { get_memory( 20.GB * task.attempt ) } } + } + } +} + def get_memory(to_compare) { if (!process.containsKey("maxMemory") || !process.maxMemory) { return to_compare diff --git a/target/executable/stats/generate_well_statistics/.config.vsh.yaml b/target/executable/stats/generate_well_statistics/.config.vsh.yaml index 82cdce3d..87ae083e 100644 --- a/target/executable/stats/generate_well_statistics/.config.vsh.yaml +++ b/target/executable/stats/generate_well_statistics/.config.vsh.yaml @@ -225,15 +225,18 @@ build_info: engine: "docker|native" output: "target/executable/stats/generate_well_statistics" executable: "target/executable/stats/generate_well_statistics/generate_well_statistics" - viash_version: "0.9.0-RC7" - git_commit: "cf9797232db1306bfd5696287928cababe317d99" - git_remote: "https://x-access-token:ghs_KjB7pWu8DQM3iFulLu7RI06qnt5K8S1A0eaE@github.com/viash-hub/htrnaseq" + viash_version: "0.9.0" + git_commit: "65dd41d8b1b4a307735c72320c96c0880c75f17f" + git_remote: "https://x-access-token:ghs_McZDF0yobnnHmOEb2Q4JaaB3pzr9mz1VbIOs@github.com/viash-hub/htrnaseq" package_config: name: "htrnaseq" version: "main" description: "High-throughput pipeline [WIP]\n" - info: null - viash_version: "0.9.0-RC7" + info: + test_resources: + - path: "gs://viash-hub-test-data/htrnaseq/v1/" + dest: "resources_test" + viash_version: "0.9.0" source: "src" target: "target" config_mods: diff --git a/target/executable/stats/generate_well_statistics/generate_well_statistics b/target/executable/stats/generate_well_statistics/generate_well_statistics index 06600fbd..d0b797e2 100755 --- a/target/executable/stats/generate_well_statistics/generate_well_statistics +++ b/target/executable/stats/generate_well_statistics/generate_well_statistics @@ -2,9 +2,9 @@ # generate_well_statistics main # -# This wrapper script is auto-generated by viash 0.9.0-RC7 and is thus a -# derivative work thereof. This software comes with ABSOLUTELY NO WARRANTY from -# Data Intuitive. +# This wrapper script is auto-generated by viash 0.9.0 and is thus a derivative +# work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data +# Intuitive. # # The component may contain files which fall under a different license. The # authors of this component should specify the license in the header of such @@ -511,9 +511,9 @@ RUN pip install --upgrade pip && \ pip install --upgrade --no-cache-dir "pysam" "pandas" LABEL org.opencontainers.image.description="Companion container for running component stats generate_well_statistics" -LABEL org.opencontainers.image.created="2024-09-17T08:52:48Z" +LABEL org.opencontainers.image.created="2024-11-05T15:39:43Z" LABEL org.opencontainers.image.source="https://github.com/viash-hub/htrnaseq" -LABEL org.opencontainers.image.revision="cf9797232db1306bfd5696287928cababe317d99" +LABEL org.opencontainers.image.revision="65dd41d8b1b4a307735c72320c96c0880c75f17f" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/stats/generate_well_statistics/nextflow_labels.config b/target/executable/stats/generate_well_statistics/nextflow_labels.config index 9ea88b1b..66f5e21c 100644 --- a/target/executable/stats/generate_well_statistics/nextflow_labels.config +++ b/target/executable/stats/generate_well_statistics/nextflow_labels.config @@ -1,26 +1,88 @@ +executor { + $k8s { + submitRateLimit = '10sec' + pollInterval = '1 sec' + } +} + process { - // Default resources for components that hardly do any processing - memory = { 2.GB * task.attempt } - cpus = 1 + container = 'nextflow/bash:latest' + + // default resources + memory = { 8.Gb * task.attempt } + cpus = 8 + maxForks = 36 // Retry for exit codes that have something to do with memory issues errorStrategy = { task.exitStatus in 137..140 ? 'retry' : 'terminate' } maxRetries = 3 - maxMemory = null + maxMemory = 192.GB // Resource labels - withLabel: singlecpu { cpus = 1 } - withLabel: lowcpu { cpus = 4 } - withLabel: midcpu { cpus = 10 } - withLabel: highcpu { cpus = 20 } + withLabel: verylowcpu { cpus = 2 } + withLabel: lowcpu { cpus = 8 } + withLabel: midcpu { cpus = 16 } + withLabel: highcpu { cpus = 32 } - 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 ) } } + withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } } + withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } } + withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } } + withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } } } +profiles { + // detect tempdir + tempDir = java.nio.file.Paths.get( + System.getenv('NXF_TEMP') ?: + System.getenv('VIASH_TEMP') ?: + System.getenv('TEMPDIR') ?: + System.getenv('TMPDIR') ?: + '/tmp' + ).toAbsolutePath() + + mount_temp { + docker.temp = tempDir + podman.temp = tempDir + charliecloud.temp = tempDir + } + + no_publish { + process { + withName: '.*' { + publishDir = [ + enabled: false + ] + } + } + } + + docker { + docker.fixOwnership = true + docker.enabled = true + // docker.userEmulation = true + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + + local { + // This config is for local processing. + process { + maxMemory = 25.GB + withLabel: verylowcpu { cpus = 2 } + withLabel: lowcpu { cpus = 4 } + withLabel: midcpu { cpus = 6 } + withLabel: highcpu { cpus = 12 } + + withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } } + withLabel: midmem { memory = { get_memory( 12.GB * task.attempt ) } } + withLabel: highmem { memory = { get_memory( 20.GB * task.attempt ) } } + } + } +} + def get_memory(to_compare) { if (!process.containsKey("maxMemory") || !process.maxMemory) { return to_compare diff --git a/target/nextflow/eset/create_eset/.config.vsh.yaml b/target/nextflow/eset/create_eset/.config.vsh.yaml new file mode 100644 index 00000000..a54d5449 --- /dev/null +++ b/target/nextflow/eset/create_eset/.config.vsh.yaml @@ -0,0 +1,228 @@ +name: "create_eset" +namespace: "eset" +version: "main" +argument_groups: +- name: "Arguments" + arguments: + - type: "file" + name: "--pDataFile" + info: null + must_exist: true + create_parent: true + required: true + direction: "input" + multiple: false + multiple_sep: ";" + - type: "file" + name: "--fDataFile" + info: null + must_exist: true + create_parent: true + required: true + direction: "input" + multiple: false + multiple_sep: ";" + - type: "file" + name: "--mappingDir" + info: null + must_exist: true + create_parent: true + required: true + direction: "input" + multiple: true + multiple_sep: ";" + - type: "string" + name: "--poolName" + info: null + required: true + direction: "input" + multiple: false + multiple_sep: ";" + - type: "file" + name: "--output" + info: null + default: + - "eset.$id.rds" + must_exist: true + create_parent: true + required: true + direction: "output" + multiple: false + multiple_sep: ";" +resources: +- type: "r_script" + path: "script.R" + is_executable: true +- type: "file" + path: "nextflow_labels.config" + dest: "nextflow_labels.config" +test_resources: +- type: "r_script" + path: "test.R" + is_executable: true +- type: "file" + path: "pData.tsv" +- type: "file" + path: "fData.tsv" +- type: "file" + path: "mapping_dir" +info: null +status: "enabled" +requirements: + commands: + - "ps" +license: "MIT" +links: + repository: "https://github.com/viash-hub/htrnaseq" +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: "r-base:4.3.0" + target_registry: "images.viash-hub.com" + target_tag: "main" + namespace_separator: "/" + setup: + - type: "apt" + packages: + - "libcurl4-openssl-dev" + - "libssl-dev" + - "libxml2-dev" + - "libfftw3-dev" + - "libfontconfig1-dev" + - "libfreetype-dev" + - "libhdf5-dev" + - "bzip2" + - "libharfbuzz-dev" + - "libfribidi-dev" + - "libtiff-dev" + - "libgsl-dev" + - "libcairo-dev" + - "libudunits2-dev" + - "procps" + interactive: false + - type: "r" + cran: + - "nlcv" + bioc: + - "Biobase" + - "limma" + - "a4Core" + - "MLInterfaces" + - "multtest" + script: + - "remotes::install_url(\"https://cran.r-project.org/src/contrib/Archive/Matrix/Matrix_1.6-5.tar.gz\"\ + , dependencies=TRUE, upgrade_dependencies=FALSE);\\\nremotes::install_url(\"\ + https://cran.r-project.org/src/contrib/Archive/Seurat/Seurat_4.4.0.tar.gz\"\ + , repos=BiocManager::repositories(), dependencies=TRUE, upgrade_dependencies=FALSE)\\\ + \n" + bioc_force_install: false + entrypoint: [] + cmd: null +- type: "native" + id: "native" +build_info: + config: "src/eset/create_eset/config.vsh.yaml" + runner: "nextflow" + engine: "docker|native" + output: "target/nextflow/eset/create_eset" + executable: "target/nextflow/eset/create_eset/main.nf" + viash_version: "0.9.0" + git_commit: "65dd41d8b1b4a307735c72320c96c0880c75f17f" + git_remote: "https://x-access-token:ghs_McZDF0yobnnHmOEb2Q4JaaB3pzr9mz1VbIOs@github.com/viash-hub/htrnaseq" +package_config: + name: "htrnaseq" + version: "main" + description: "High-throughput pipeline [WIP]\n" + info: + test_resources: + - path: "gs://viash-hub-test-data/htrnaseq/v1/" + dest: "resources_test" + viash_version: "0.9.0" + source: "src" + target: "target" + config_mods: + - ".requirements.commands := ['ps']\n.runners[.type == 'nextflow'].config.script\ + \ := 'includeConfig(\"nextflow_labels.config\")'\n.resources += {path: '/src/config/labels.config',\ + \ dest: 'nextflow_labels.config'}\n" + - ".engines += { type: \"native\" }" + - ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'" + - ".engines[.type == 'docker'].target_tag := 'main'" + keywords: + - "bioinformatics" + - "sequence" + - "high-throughput" + - "mapping" + - "counting" + - "pipeline" + license: "MIT" + organization: "vsh" + links: + repository: "https://github.com/viash-hub/htrnaseq" + issue_tracker: "https://github.com/viash-hub/htrnaseq/issues" diff --git a/target/nextflow/eset/create_eset/main.nf b/target/nextflow/eset/create_eset/main.nf new file mode 100644 index 00000000..bebb5acc --- /dev/null +++ b/target/nextflow/eset/create_eset/main.nf @@ -0,0 +1,4040 @@ +// create_eset main +// +// This wrapper script is auto-generated by viash 0.9.0 and is thus a derivative +// work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data +// Intuitive. +// +// The component may contain files which fall under a different license. The +// authors of this component should specify the license in the header of such +// files, or include a separate license file detailing the licenses of all included +// files. + +//////////////////////////// +// VDSL3 helper functions // +//////////////////////////// + +// helper file: 'src/main/resources/io/viash/runners/nextflow/arguments/_checkArgumentType.nf' +class UnexpectedArgumentTypeException extends Exception { + String errorIdentifier + String stage + String plainName + String expectedClass + String foundClass + + // ${key ? " in module '$key'" : ""}${id ? " id '$id'" : ""} + UnexpectedArgumentTypeException(String errorIdentifier, String stage, String plainName, String expectedClass, String foundClass) { + super("Error${errorIdentifier ? " $errorIdentifier" : ""}:${stage ? " $stage" : "" } argument '${plainName}' has the wrong type. " + + "Expected type: ${expectedClass}. Found type: ${foundClass}") + this.errorIdentifier = errorIdentifier + this.stage = stage + this.plainName = plainName + this.expectedClass = expectedClass + this.foundClass = foundClass + } +} + +/** + * Checks if the given value is of the expected type. If not, an exception is thrown. + * + * @param stage The stage of the argument (input or output) + * @param par The parameter definition + * @param value The value to check + * @param errorIdentifier The identifier to use in the error message + * @return The value, if it is of the expected type + * @throws UnexpectedArgumentTypeException If the value is not of the expected type +*/ +def _checkArgumentType(String stage, Map par, Object value, String errorIdentifier) { + // expectedClass will only be != null if value is not of the expected type + def expectedClass = null + def foundClass = null + + // todo: split if need be + + if (!par.required && value == null) { + expectedClass = null + } else if (par.multiple) { + if (value !instanceof Collection) { + value = [value] + } + + // split strings + value = value.collectMany{ val -> + if (val instanceof String) { + // collect() to ensure that the result is a List and not simply an array + val.split(par.multiple_sep).collect() + } else { + [val] + } + } + + // process globs + if (par.type == "file" && par.direction == "input") { + value = value.collect{ it instanceof String ? file(it, hidden: true) : it }.flatten() + } + + // check types of elements in list + try { + value = value.collect { listVal -> + _checkArgumentType(stage, par + [multiple: false], listVal, errorIdentifier) + } + } catch (UnexpectedArgumentTypeException e) { + expectedClass = "List[${e.expectedClass}]" + foundClass = "List[${e.foundClass}]" + } + } else if (par.type == "string") { + // cast to string if need be + if (value instanceof GString) { + value = value.toString() + } + expectedClass = value instanceof String ? null : "String" + } else if (par.type == "integer") { + // cast to integer if need be + if (value instanceof String) { + try { + value = value.toInteger() + } catch (NumberFormatException e) { + // do nothing + } + } + if (value instanceof java.math.BigInteger) { + value = value.intValue() + } + expectedClass = value instanceof Integer ? null : "Integer" + } else if (par.type == "long") { + // cast to long if need be + if (value instanceof String) { + try { + value = value.toLong() + } catch (NumberFormatException e) { + // do nothing + } + } + if (value instanceof Integer) { + value = value.toLong() + } + expectedClass = value instanceof Long ? null : "Long" + } else if (par.type == "double") { + // cast to double if need be + if (value instanceof String) { + try { + value = value.toDouble() + } catch (NumberFormatException e) { + // do nothing + } + } + if (value instanceof java.math.BigDecimal) { + value = value.doubleValue() + } + if (value instanceof Float) { + value = value.toDouble() + } + expectedClass = value instanceof Double ? null : "Double" + } else if (par.type == "boolean" | par.type == "boolean_true" | par.type == "boolean_false") { + // cast to boolean if need be + if (value instanceof String) { + def valueLower = value.toLowerCase() + if (valueLower == "true") { + value = true + } else if (valueLower == "false") { + value = false + } + } + expectedClass = value instanceof Boolean ? null : "Boolean" + } else if (par.type == "file" && (par.direction == "input" || stage == "output")) { + // cast to path if need be + if (value instanceof String) { + value = file(value, hidden: true) + } + if (value instanceof File) { + value = value.toPath() + } + expectedClass = value instanceof Path ? null : "Path" + } else if (par.type == "file" && stage == "input" && par.direction == "output") { + // cast to string if need be + if (value instanceof GString) { + value = value.toString() + } + expectedClass = value instanceof String ? null : "String" + } else { + // didn't find a match for par.type + expectedClass = par.type + } + + if (expectedClass != null) { + if (foundClass == null) { + foundClass = value.getClass().getName() + } + throw new UnexpectedArgumentTypeException(errorIdentifier, stage, par.plainName, expectedClass, foundClass) + } + + return value +} +// helper file: 'src/main/resources/io/viash/runners/nextflow/arguments/_processInputValues.nf' +Map _processInputValues(Map inputs, Map config, String id, String key) { + if (!workflow.stubRun) { + config.allArguments.each { arg -> + if (arg.required) { + assert inputs.containsKey(arg.plainName) && inputs.get(arg.plainName) != null : + "Error in module '${key}' id '${id}': required input argument '${arg.plainName}' is missing" + } + } + + inputs = inputs.collectEntries { name, value -> + def par = config.allArguments.find { it.plainName == name && (it.direction == "input" || it.type == "file") } + assert par != null : "Error in module '${key}' id '${id}': '${name}' is not a valid input argument" + + value = _checkArgumentType("input", par, value, "in module '$key' id '$id'") + + [ name, value ] + } + } + return inputs +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/arguments/_processOutputValues.nf' +Map _processOutputValues(Map outputs, Map config, String id, String key) { + if (!workflow.stubRun) { + config.allArguments.each { arg -> + if (arg.direction == "output" && arg.required) { + assert outputs.containsKey(arg.plainName) && outputs.get(arg.plainName) != null : + "Error in module '${key}' id '${id}': required output argument '${arg.plainName}' is missing" + } + } + + outputs = outputs.collectEntries { name, value -> + def par = config.allArguments.find { it.plainName == name && it.direction == "output" } + assert par != null : "Error in module '${key}' id '${id}': '${name}' is not a valid output argument" + + value = _checkArgumentType("output", par, value, "in module '$key' id '$id'") + + [ name, value ] + } + } + return outputs +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/IDChecker.nf' +class IDChecker { + final def items = [] as Set + + @groovy.transform.WithWriteLock + boolean observe(String item) { + if (items.contains(item)) { + return false + } else { + items << item + return true + } + } + + @groovy.transform.WithReadLock + boolean contains(String item) { + return items.contains(item) + } + + @groovy.transform.WithReadLock + Set getItems() { + return items.clone() + } +} +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/_checkUniqueIds.nf' + +/** + * Check if the ids are unique across parameter sets + * + * @param parameterSets a list of parameter sets. + */ +private void _checkUniqueIds(List>> parameterSets) { + def ppIds = parameterSets.collect{it[0]} + assert ppIds.size() == ppIds.unique().size() : "All argument sets should have unique ids. Detected ids: $ppIds" +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/_getChild.nf' + +// helper functions for reading params from file // +def _getChild(parent, child) { + if (child.contains("://") || java.nio.file.Paths.get(child).isAbsolute()) { + child + } else { + def parentAbsolute = java.nio.file.Paths.get(parent).toAbsolutePath().toString() + parentAbsolute.replaceAll('/[^/]*$', "/") + child + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/_parseParamList.nf' +/** + * Figure out the param list format based on the file extension + * + * @param param_list A String containing the path to the parameter list file. + * + * @return A String containing the format of the parameter list file. + */ +def _paramListGuessFormat(param_list) { + if (param_list !instanceof String) { + "asis" + } else if (param_list.endsWith(".csv")) { + "csv" + } else if (param_list.endsWith(".json") || param_list.endsWith(".jsn")) { + "json" + } else if (param_list.endsWith(".yaml") || param_list.endsWith(".yml")) { + "yaml" + } else { + "yaml_blob" + } +} + + +/** + * Read the param list + * + * @param param_list One of the following: + * - A String containing the path to the parameter list file (csv, json or yaml), + * - A yaml blob of a list of maps (yaml_blob), + * - Or a groovy list of maps (asis). + * @param config A Map of the Viash configuration. + * + * @return A List of Maps containing the parameters. + */ +def _parseParamList(param_list, Map config) { + // first determine format by extension + def paramListFormat = _paramListGuessFormat(param_list) + + def paramListPath = (paramListFormat != "asis" && paramListFormat != "yaml_blob") ? + file(param_list, hidden: true) : + null + + // get the correct parser function for the detected params_list format + def paramSets = [] + if (paramListFormat == "asis") { + paramSets = param_list + } else if (paramListFormat == "yaml_blob") { + paramSets = readYamlBlob(param_list) + } else if (paramListFormat == "yaml") { + paramSets = readYaml(paramListPath) + } else if (paramListFormat == "json") { + paramSets = readJson(paramListPath) + } else if (paramListFormat == "csv") { + paramSets = readCsv(paramListPath) + } else { + error "Format of provided --param_list not recognised.\n" + + "Found: '$paramListFormat'.\n" + + "Expected: a csv file, a json file, a yaml file,\n" + + "a yaml blob or a groovy list of maps." + } + + // data checks + assert paramSets instanceof List: "--param_list should contain a list of maps" + for (value in paramSets) { + assert value instanceof Map: "--param_list should contain a list of maps" + } + + // id is argument + def idIsArgument = config.allArguments.any{it.plainName == "id"} + + // Reformat from List to List> by adding the ID as first element of a Tuple2 + paramSets = paramSets.collect({ data -> + def id = data.id + if (!idIsArgument) { + data = data.findAll{k, v -> k != "id"} + } + [id, data] + }) + + // Split parameters with 'multiple: true' + paramSets = paramSets.collect({ id, data -> + data = _splitParams(data, config) + [id, data] + }) + + // The paths of input files inside a param_list file may have been specified relatively to the + // location of the param_list file. These paths must be made absolute. + if (paramListPath) { + paramSets = paramSets.collect({ id, data -> + def new_data = data.collectEntries{ parName, parValue -> + def par = config.allArguments.find{it.plainName == parName} + if (par && par.type == "file" && par.direction == "input") { + if (parValue instanceof Collection) { + parValue = parValue.collectMany{path -> + def x = _resolveSiblingIfNotAbsolute(path, paramListPath) + x instanceof Collection ? x : [x] + } + } else { + parValue = _resolveSiblingIfNotAbsolute(parValue, paramListPath) + } + } + [parName, parValue] + } + [id, new_data] + }) + } + + return paramSets +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/_splitParams.nf' +/** + * Split parameters for arguments that accept multiple values using their separator + * + * @param paramList A Map containing parameters to split. + * @param config A Map of the Viash configuration. This Map can be generated from the config file + * using the readConfig() function. + * + * @return A Map of parameters where the parameter values have been split into a list using + * their seperator. + */ +Map _splitParams(Map parValues, Map config){ + def parsedParamValues = parValues.collectEntries { parName, parValue -> + def parameterSettings = config.allArguments.find({it.plainName == parName}) + + if (!parameterSettings) { + // if argument is not found, do not alter + return [parName, parValue] + } + if (parameterSettings.multiple) { // Check if parameter can accept multiple values + if (parValue instanceof Collection) { + parValue = parValue.collect{it instanceof String ? it.split(parameterSettings.multiple_sep) : it } + } else if (parValue instanceof String) { + parValue = parValue.split(parameterSettings.multiple_sep) + } else if (parValue == null) { + parValue = [] + } else { + parValue = [ parValue ] + } + parValue = parValue.flatten() + } + // For all parameters check if multiple values are only passed for + // arguments that allow it. Quietly simplify lists of length 1. + if (!parameterSettings.multiple && parValue instanceof Collection) { + assert parValue.size() == 1 : + "Error: argument ${parName} has too many values.\n" + + " Expected amount: 1. Found: ${parValue.size()}" + parValue = parValue[0] + } + [parName, parValue] + } + return parsedParamValues +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/channelFromParams.nf' +/** + * Parse nextflow parameters based on settings defined in a viash config. + * Return a list of parameter sets, each parameter set corresponding to + * an event in a nextflow channel. The output from this function can be used + * with Channel.fromList to create a nextflow channel with Vdsl3 formatted + * events. + * + * This function performs: + * - A filtering of the params which can be found in the config file. + * - Process the params_list argument which allows a user to to initialise + * a Vsdl3 channel with multiple parameter sets. Possible formats are + * csv, json, yaml, or simply a yaml_blob. A csv should have column names + * which correspond to the different arguments of this pipeline. A json or a yaml + * file should be a list of maps, each of which has keys corresponding to the + * arguments of the pipeline. A yaml blob can also be passed directly as a parameter. + * When passing a csv, json or yaml, relative path names are relativized to the + * location of the parameter file. + * - Combine the parameter sets into a vdsl3 Channel. + * + * @param params Input parameters. Can optionaly contain a 'param_list' key that + * provides a list of arguments that can be split up into multiple events + * in the output channel possible formats of param_lists are: a csv file, + * json file, a yaml file or a yaml blob. Each parameters set (event) must + * have a unique ID. + * @param config A Map of the Viash configuration. This Map can be generated from the config file + * using the readConfig() function. + * + * @return A list of parameters with the first element of the event being + * the event ID and the second element containing a map of the parsed parameters. + */ + +private List>> _paramsToParamSets(Map params, Map config){ + // todo: fetch key from run args + def key_ = config.name + + /* parse regular parameters (not in param_list) */ + /*************************************************/ + def globalParams = config.allArguments + .findAll { params.containsKey(it.plainName) } + .collectEntries { [ it.plainName, params[it.plainName] ] } + def globalID = params.get("id", null) + + /* process params_list arguments */ + /*********************************/ + def paramList = params.containsKey("param_list") && params.param_list != null ? + params.param_list : [] + // if (paramList instanceof String) { + // paramList = [paramList] + // } + // def paramSets = paramList.collectMany{ _parseParamList(it, config) } + // TODO: be able to process param_list when it is a list of strings + def paramSets = _parseParamList(paramList, config) + if (paramSets.isEmpty()) { + paramSets = [[null, [:]]] + } + + /* combine arguments into channel */ + /**********************************/ + def processedParams = paramSets.indexed().collect{ index, tup -> + // Process ID + def id = tup[0] ?: globalID + + if (workflow.stubRun && !id) { + // if stub run, explicitly add an id if missing + id = "stub${index}" + } + assert id != null: "Each parameter set should have at least an 'id'" + + // Process params + def parValues = globalParams + tup[1] + // // Remove parameters which are null, if the default is also null + // parValues = parValues.collectEntries{paramName, paramValue -> + // parameterSettings = config.functionality.allArguments.find({it.plainName == paramName}) + // if ( paramValue != null || parameterSettings.get("default", null) != null ) { + // [paramName, paramValue] + // } + // } + parValues = parValues.collectEntries { name, value -> + def par = config.allArguments.find { it.plainName == name && (it.direction == "input" || it.type == "file") } + assert par != null : "Error in module '${key_}' id '${id}': '${name}' is not a valid input argument" + + if (par == null) { + return [:] + } + value = _checkArgumentType("input", par, value, "in module '$key_' id '$id'") + + [ name, value ] + } + + [id, parValues] + } + + // Check if ids (first element of each list) is unique + _checkUniqueIds(processedParams) + return processedParams +} + +/** + * Parse nextflow parameters based on settings defined in a viash config + * and return a nextflow channel. + * + * @param params Input parameters. Can optionaly contain a 'param_list' key that + * provides a list of arguments that can be split up into multiple events + * in the output channel possible formats of param_lists are: a csv file, + * json file, a yaml file or a yaml blob. Each parameters set (event) must + * have a unique ID. + * @param config A Map of the Viash configuration. This Map can be generated from the config file + * using the readConfig() function. + * + * @return A nextflow Channel with events. Events are formatted as a tuple that contains + * first contains the ID of the event and as second element holds a parameter map. + * + * + */ +def channelFromParams(Map params, Map config) { + def processedParams = _paramsToParamSets(params, config) + return Channel.fromList(processedParams) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/checkUniqueIds.nf' +def checkUniqueIds(Map args) { + def stopOnError = args.stopOnError == null ? args.stopOnError : true + + def idChecker = new IDChecker() + + return filter { tup -> + if (!idChecker.observe(tup[0])) { + if (stopOnError) { + error "Duplicate id: ${tup[0]}" + } else { + log.warn "Duplicate id: ${tup[0]}, removing duplicate entry" + return false + } + } + return true + } +} +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/preprocessInputs.nf' +// This helper file will be deprecated soon +preprocessInputsDeprecationWarningPrinted = false + +def preprocessInputsDeprecationWarning() { + if (!preprocessInputsDeprecationWarningPrinted) { + preprocessInputsDeprecationWarningPrinted = true + System.err.println("Warning: preprocessInputs() is deprecated and will be removed in Viash 0.9.0.") + } +} + +/** + * Generate a nextflow Workflow that allows processing a channel of + * Vdsl3 formatted events and apply a Viash config to them: + * - Gather default parameters from the Viash config and make + * sure that they are correctly formatted (see applyConfig method). + * - Format the input parameters (also using the applyConfig method). + * - Apply the default parameter to the input parameters. + * - Do some assertions: + * ~ Check if the event IDs in the channel are unique. + * + * The events in the channel are formatted as tuples, with the + * first element of the tuples being a unique id of the parameter set, + * and the second element containg the the parameters themselves. + * Optional extra elements of the tuples will be passed to the output as is. + * + * @param args A map that must contain a 'config' key that points + * to a parsed config (see readConfig()). Optionally, a + * 'key' key can be provided which can be used to create a unique + * name for the workflow process. + * + * @return A workflow that allows processing a channel of Vdsl3 formatted events + * and apply a Viash config to them. + */ +def preprocessInputs(Map args) { + preprocessInputsDeprecationWarning() + + def config = args.config + assert config instanceof Map : + "Error in preprocessInputs: config must be a map. " + + "Expected class: Map. Found: config.getClass() is ${config.getClass()}" + def key_ = args.key ?: config.name + + // Get different parameter types (used throughout this function) + def defaultArgs = config.allArguments + .findAll { it.containsKey("default") } + .collectEntries { [ it.plainName, it.default ] } + + map { tup -> + def id = tup[0] + def data = tup[1] + def passthrough = tup.drop(2) + + def new_data = (defaultArgs + data).collectEntries { name, value -> + def par = config.allArguments.find { it.plainName == name && (it.direction == "input" || it.type == "file") } + + if (par != null) { + value = _checkArgumentType("input", par, value, "in module '$key_' id '$id'") + } + + [ name, value ] + } + + [ id, new_data ] + passthrough + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/runComponents.nf' +/** + * Run a list of components on a stream of data. + * + * @param components: list of Viash VDSL3 modules to run + * @param fromState: a closure, a map or a list of keys to extract from the input data. + * If a closure, it will be called with the id, the data and the component config. + * @param toState: a closure, a map or a list of keys to extract from the output data + * If a closure, it will be called with the id, the output data, the old state and the component config. + * @param filter: filter function to apply to the input. + * It will be called with the id, the data and the component config. + * @param id: id to use for the output data + * If a closure, it will be called with the id, the data and the component config. + * @param auto: auto options to pass to the components + * + * @return: a workflow that runs the components + **/ +def runComponents(Map args) { + log.warn("runComponents is deprecated, use runEach instead") + assert args.components: "runComponents should be passed a list of components to run" + + def components_ = args.components + if (components_ !instanceof List) { + components_ = [ components_ ] + } + assert components_.size() > 0: "pass at least one component to runComponents" + + def fromState_ = args.fromState + def toState_ = args.toState + def filter_ = args.filter + def id_ = args.id + + workflow runComponentsWf { + take: input_ch + main: + + // generate one channel per method + out_chs = components_.collect{ comp_ -> + def comp_config = comp_.config + + def filter_ch = filter_ + ? input_ch | filter{tup -> + filter_(tup[0], tup[1], comp_config) + } + : input_ch + def id_ch = id_ + ? filter_ch | map{tup -> + // def new_id = id_(tup[0], tup[1], comp_config) + def new_id = tup[0] + if (id_ instanceof String) { + new_id = id_ + } else if (id_ instanceof Closure) { + new_id = id_(new_id, tup[1], comp_config) + } + [new_id] + tup.drop(1) + } + : filter_ch + def data_ch = id_ch | map{tup -> + def new_data = tup[1] + if (fromState_ instanceof Map) { + new_data = fromState_.collectEntries{ key0, key1 -> + [key0, new_data[key1]] + } + } else if (fromState_ instanceof List) { + new_data = fromState_.collectEntries{ key -> + [key, new_data[key]] + } + } else if (fromState_ instanceof Closure) { + new_data = fromState_(tup[0], new_data, comp_config) + } + tup.take(1) + [new_data] + tup.drop(1) + } + def out_ch = data_ch + | comp_.run( + auto: (args.auto ?: [:]) + [simplifyInput: false, simplifyOutput: false] + ) + def post_ch = toState_ + ? out_ch | map{tup -> + def output = tup[1] + def old_state = tup[2] + def new_state = null + if (toState_ instanceof Map) { + new_state = old_state + toState_.collectEntries{ key0, key1 -> + [key0, output[key1]] + } + } else if (toState_ instanceof List) { + new_state = old_state + toState_.collectEntries{ key -> + [key, output[key]] + } + } else if (toState_ instanceof Closure) { + new_state = toState_(tup[0], output, old_state, comp_config) + } + [tup[0], new_state] + tup.drop(3) + } + : out_ch + + post_ch + } + + // mix all results + output_ch = + (out_chs.size == 1) + ? out_chs[0] + : out_chs[0].mix(*out_chs.drop(1)) + + emit: output_ch + } + + return runComponentsWf +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/runEach.nf' +/** + * Run a list of components on a stream of data. + * + * @param components: list of Viash VDSL3 modules to run + * @param fromState: a closure, a map or a list of keys to extract from the input data. + * If a closure, it will be called with the id, the data and the component itself. + * @param toState: a closure, a map or a list of keys to extract from the output data + * If a closure, it will be called with the id, the output data, the old state and the component itself. + * @param filter: filter function to apply to the input. + * It will be called with the id, the data and the component itself. + * @param id: id to use for the output data + * If a closure, it will be called with the id, the data and the component itself. + * @param auto: auto options to pass to the components + * + * @return: a workflow that runs the components + **/ +def runEach(Map args) { + assert args.components: "runEach should be passed a list of components to run" + + def components_ = args.components + if (components_ !instanceof List) { + components_ = [ components_ ] + } + assert components_.size() > 0: "pass at least one component to runEach" + + def fromState_ = args.fromState + def toState_ = args.toState + def filter_ = args.filter + def runIf_ = args.runIf + def id_ = args.id + + assert !runIf_ || runIf_ instanceof Closure: "runEach: must pass a Closure to runIf." + + workflow runEachWf { + take: input_ch + main: + + // generate one channel per method + out_chs = components_.collect{ comp_ -> + def filter_ch = filter_ + ? input_ch | filter{tup -> + filter_(tup[0], tup[1], comp_) + } + : input_ch + def id_ch = id_ + ? filter_ch | map{tup -> + def new_id = id_ + if (new_id instanceof Closure) { + new_id = new_id(tup[0], tup[1], comp_) + } + assert new_id instanceof String : "Error in runEach: id should be a String or a Closure that returns a String. Expected: id instanceof String. Found: ${new_id.getClass()}" + [new_id] + tup.drop(1) + } + : filter_ch + def chPassthrough = null + def chRun = null + if (runIf_) { + def idRunIfBranch = id_ch.branch{ tup -> + run: runIf_(tup[0], tup[1], comp_) + passthrough: true + } + chPassthrough = idRunIfBranch.passthrough + chRun = idRunIfBranch.run + } else { + chRun = id_ch + chPassthrough = Channel.empty() + } + def data_ch = chRun | map{tup -> + def new_data = tup[1] + if (fromState_ instanceof Map) { + new_data = fromState_.collectEntries{ key0, key1 -> + [key0, new_data[key1]] + } + } else if (fromState_ instanceof List) { + new_data = fromState_.collectEntries{ key -> + [key, new_data[key]] + } + } else if (fromState_ instanceof Closure) { + new_data = fromState_(tup[0], new_data, comp_) + } + tup.take(1) + [new_data] + tup.drop(1) + } + def out_ch = data_ch + | comp_.run( + auto: (args.auto ?: [:]) + [simplifyInput: false, simplifyOutput: false] + ) + def post_ch = toState_ + ? out_ch | map{tup -> + def output = tup[1] + def old_state = tup[2] + def new_state = null + if (toState_ instanceof Map) { + new_state = old_state + toState_.collectEntries{ key0, key1 -> + [key0, output[key1]] + } + } else if (toState_ instanceof List) { + new_state = old_state + toState_.collectEntries{ key -> + [key, output[key]] + } + } else if (toState_ instanceof Closure) { + new_state = toState_(tup[0], output, old_state, comp_) + } + [tup[0], new_state] + tup.drop(3) + } + : out_ch + + def return_ch = post_ch + | concat(chPassthrough) + + return_ch + } + + // mix all results + output_ch = + (out_chs.size == 1) + ? out_chs[0] + : out_chs[0].mix(*out_chs.drop(1)) + + emit: output_ch + } + + return runEachWf +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/safeJoin.nf' +/** + * Join sourceChannel to targetChannel + * + * This function joins the sourceChannel to the targetChannel. + * However, each id in the targetChannel must be present in the + * sourceChannel. If _meta.join_id exists in the targetChannel, that is + * used as an id instead. If the id doesn't match any id in the sourceChannel, + * an error is thrown. + */ + +def safeJoin(targetChannel, sourceChannel, key) { + def sourceIDs = new IDChecker() + + def sourceCheck = sourceChannel + | map { tup -> + sourceIDs.observe(tup[0]) + tup + } + def targetCheck = targetChannel + | map { tup -> + def id = tup[0] + + if (!sourceIDs.contains(id)) { + error ( + "Error in module '${key}' when merging output with original state.\n" + + " Reason: output with id '${id}' could not be joined with source channel.\n" + + " If the IDs in the output channel differ from the input channel,\n" + + " please set `tup[1]._meta.join_id to the original ID.\n" + + " Original IDs in input channel: ['${sourceIDs.getItems().join("', '")}'].\n" + + " Unexpected ID in the output channel: '${id}'.\n" + + " Example input event: [\"id\", [input: file(...)]],\n" + + " Example output event: [\"newid\", [output: file(...), _meta: [join_id: \"id\"]]]" + ) + } + // TODO: add link to our documentation on how to fix this + + tup + } + + sourceCheck.cross(targetChannel) + | map{ left, right -> + right + left.drop(1) + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/config/_processArgument.nf' +def _processArgument(arg) { + arg.multiple = arg.multiple != null ? arg.multiple : false + arg.required = arg.required != null ? arg.required : false + arg.direction = arg.direction != null ? arg.direction : "input" + arg.multiple_sep = arg.multiple_sep != null ? arg.multiple_sep : ";" + arg.plainName = arg.name.replaceAll("^-*", "") + + if (arg.type == "file") { + arg.must_exist = arg.must_exist != null ? arg.must_exist : true + arg.create_parent = arg.create_parent != null ? arg.create_parent : true + } + + // add default values to output files which haven't already got a default + if (arg.type == "file" && arg.direction == "output" && arg.default == null) { + def mult = arg.multiple ? "_*" : "" + def extSearch = "" + if (arg.default != null) { + extSearch = arg.default + } else if (arg.example != null) { + extSearch = arg.example + } + if (extSearch instanceof List) { + extSearch = extSearch[0] + } + def extSearchResult = extSearch.find("\\.[^\\.]+\$") + def ext = extSearchResult != null ? extSearchResult : "" + arg.default = "\$id.\$key.${arg.plainName}${mult}${ext}" + if (arg.multiple) { + arg.default = [arg.default] + } + } + + if (!arg.multiple) { + if (arg.default != null && arg.default instanceof List) { + arg.default = arg.default[0] + } + if (arg.example != null && arg.example instanceof List) { + arg.example = arg.example[0] + } + } + + if (arg.type == "boolean_true") { + arg.default = false + } + if (arg.type == "boolean_false") { + arg.default = true + } + + arg +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/config/addGlobalParams.nf' +def addGlobalArguments(config) { + def localConfig = [ + "argument_groups": [ + [ + "name": "Nextflow input-output arguments", + "description": "Input/output parameters for Nextflow itself. Please note that both publishDir and publish_dir are supported but at least one has to be configured.", + "arguments" : [ + [ + 'name': '--publish_dir', + 'required': true, + 'type': 'string', + 'description': 'Path to an output directory.', + 'example': 'output/', + 'multiple': false + ], + [ + 'name': '--param_list', + 'required': false, + 'type': 'string', + 'description': '''Allows inputting multiple parameter sets to initialise a Nextflow channel. A `param_list` can either be a list of maps, a csv file, a json file, a yaml file, or simply a yaml blob. + | + |* A list of maps (as-is) where the keys of each map corresponds to the arguments of the pipeline. Example: in a `nextflow.config` file: `param_list: [ ['id': 'foo', 'input': 'foo.txt'], ['id': 'bar', 'input': 'bar.txt'] ]`. + |* A csv file should have column names which correspond to the different arguments of this pipeline. Example: `--param_list data.csv` with columns `id,input`. + |* A json or a yaml file should be a list of maps, each of which has keys corresponding to the arguments of the pipeline. Example: `--param_list data.json` with contents `[ {'id': 'foo', 'input': 'foo.txt'}, {'id': 'bar', 'input': 'bar.txt'} ]`. + |* A yaml blob can also be passed directly as a string. Example: `--param_list "[ {'id': 'foo', 'input': 'foo.txt'}, {'id': 'bar', 'input': 'bar.txt'} ]"`. + | + |When passing a csv, json or yaml file, relative path names are relativized to the location of the parameter file. No relativation is performed when `param_list` is a list of maps (as-is) or a yaml blob.'''.stripMargin(), + 'example': 'my_params.yaml', + 'multiple': false, + 'hidden': true + ] + // TODO: allow multiple: true in param_list? + // TODO: allow to specify a --param_list_regex to filter the param_list? + // TODO: allow to specify a --param_list_from_state to remap entries in the param_list? + ] + ] + ] + ] + + return processConfig(_mergeMap(config, localConfig)) +} + +def _mergeMap(Map lhs, Map rhs) { + return rhs.inject(lhs.clone()) { map, entry -> + if (map[entry.key] instanceof Map && entry.value instanceof Map) { + map[entry.key] = _mergeMap(map[entry.key], entry.value) + } else if (map[entry.key] instanceof Collection && entry.value instanceof Collection) { + map[entry.key] += entry.value + } else { + map[entry.key] = entry.value + } + return map + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/config/generateHelp.nf' +def _generateArgumentHelp(param) { + // alternatives are not supported + // def names = param.alternatives ::: List(param.name) + + def unnamedProps = [ + ["required parameter", param.required], + ["multiple values allowed", param.multiple], + ["output", param.direction.toLowerCase() == "output"], + ["file must exist", param.type == "file" && param.must_exist] + ].findAll{it[1]}.collect{it[0]} + + def dflt = null + if (param.default != null) { + if (param.default instanceof List) { + dflt = param.default.join(param.multiple_sep != null ? param.multiple_sep : ", ") + } else { + dflt = param.default.toString() + } + } + def example = null + if (param.example != null) { + if (param.example instanceof List) { + example = param.example.join(param.multiple_sep != null ? param.multiple_sep : ", ") + } else { + example = param.example.toString() + } + } + def min = param.min?.toString() + def max = param.max?.toString() + + def escapeChoice = { choice -> + def s1 = choice.replaceAll("\\n", "\\\\n") + def s2 = s1.replaceAll("\"", """\\\"""") + s2.contains(",") || s2 != choice ? "\"" + s2 + "\"" : s2 + } + def choices = param.choices == null ? + null : + "[ " + param.choices.collect{escapeChoice(it.toString())}.join(", ") + " ]" + + def namedPropsStr = [ + ["type", ([param.type] + unnamedProps).join(", ")], + ["default", dflt], + ["example", example], + ["choices", choices], + ["min", min], + ["max", max] + ] + .findAll{it[1]} + .collect{"\n " + it[0] + ": " + it[1].replaceAll("\n", "\\n")} + .join("") + + def descStr = param.description == null ? + "" : + _paragraphWrap("\n" + param.description.trim(), 80 - 8).join("\n ") + + "\n --" + param.plainName + + namedPropsStr + + descStr +} + +// Based on Helper.generateHelp() in Helper.scala +def _generateHelp(config) { + def fun = config + + // PART 1: NAME AND VERSION + def nameStr = fun.name + + (fun.version == null ? "" : " " + fun.version) + + // PART 2: DESCRIPTION + def descrStr = fun.description == null ? + "" : + "\n\n" + _paragraphWrap(fun.description.trim(), 80).join("\n") + + // PART 3: Usage + def usageStr = fun.usage == null ? + "" : + "\n\nUsage:\n" + fun.usage.trim() + + // PART 4: Options + def argGroupStrs = fun.allArgumentGroups.collect{argGroup -> + def name = argGroup.name + def descriptionStr = argGroup.description == null ? + "" : + "\n " + _paragraphWrap(argGroup.description.trim(), 80-4).join("\n ") + "\n" + def arguments = argGroup.arguments.collect{arg -> + arg instanceof String ? fun.allArguments.find{it.plainName == arg} : arg + }.findAll{it != null} + def argumentStrs = arguments.collect{param -> _generateArgumentHelp(param)} + + "\n\n$name:" + + descriptionStr + + argumentStrs.join("\n") + } + + // FINAL: combine + def out = nameStr + + descrStr + + usageStr + + argGroupStrs.join("") + + return out +} + +// based on Format._paragraphWrap +def _paragraphWrap(str, maxLength) { + def outLines = [] + str.split("\n").each{par -> + def words = par.split("\\s").toList() + + def word = null + def line = words.pop() + while(!words.isEmpty()) { + word = words.pop() + if (line.length() + word.length() + 1 <= maxLength) { + line = line + " " + word + } else { + outLines.add(line) + line = word + } + } + if (words.isEmpty()) { + outLines.add(line) + } + } + return outLines +} + +def helpMessage(config) { + if (params.containsKey("help") && params.help) { + def mergedConfig = addGlobalArguments(config) + def helpStr = _generateHelp(mergedConfig) + println(helpStr) + exit 0 + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/config/processConfig.nf' +def processConfig(config) { + // set defaults for arguments + config.arguments = + (config.arguments ?: []).collect{_processArgument(it)} + + // set defaults for argument_group arguments + config.argument_groups = + (config.argument_groups ?: []).collect{grp -> + grp.arguments = (grp.arguments ?: []).collect{_processArgument(it)} + grp + } + + // create combined arguments list + config.allArguments = + config.arguments + + config.argument_groups.collectMany{it.arguments} + + // add missing argument groups (based on Functionality::allArgumentGroups()) + def argGroups = config.argument_groups + if (argGroups.any{it.name.toLowerCase() == "arguments"}) { + argGroups = argGroups.collect{ grp -> + if (grp.name.toLowerCase() == "arguments") { + grp = grp + [ + arguments: grp.arguments + config.arguments + ] + } + grp + } + } else { + argGroups = argGroups + [ + name: "Arguments", + arguments: config.arguments + ] + } + config.allArgumentGroups = argGroups + + config +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/config/readConfig.nf' + +def readConfig(file) { + def config = readYaml(file ?: moduleDir.resolve("config.vsh.yaml")) + processConfig(config) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/_resolveSiblingIfNotAbsolute.nf' +/** + * Resolve a path relative to the current file. + * + * @param str The path to resolve, as a String. + * @param parentPath The path to resolve relative to, as a Path. + * + * @return The path that may have been resovled, as a Path. + */ +def _resolveSiblingIfNotAbsolute(str, parentPath) { + if (str !instanceof String) { + return str + } + if (!_stringIsAbsolutePath(str)) { + return parentPath.resolveSibling(str) + } else { + return file(str, hidden: true) + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/_stringIsAbsolutePath.nf' +/** + * Check whether a path as a string is absolute. + * + * In the past, we tried using `file(., relative: true).isAbsolute()`, + * but the 'relative' option was added in 22.10.0. + * + * @param path The path to check, as a String. + * + * @return Whether the path is absolute, as a boolean. + */ +def _stringIsAbsolutePath(path) { + def _resolve_URL_PROTOCOL = ~/^([a-zA-Z][a-zA-Z0-9]*:)?\\/.+/ + + assert path instanceof String + return _resolve_URL_PROTOCOL.matcher(path).matches() +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/collectTraces.nf' +class CustomTraceObserver implements nextflow.trace.TraceObserver { + List traces + + CustomTraceObserver(List traces) { + this.traces = traces + } + + @Override + void onProcessComplete(nextflow.processor.TaskHandler handler, nextflow.trace.TraceRecord trace) { + def trace2 = trace.store.clone() + trace2.script = null + traces.add(trace2) + } + + @Override + void onProcessCached(nextflow.processor.TaskHandler handler, nextflow.trace.TraceRecord trace) { + def trace2 = trace.store.clone() + trace2.script = null + traces.add(trace2) + } +} + +def collectTraces() { + def traces = Collections.synchronizedList([]) + + // add custom trace observer which stores traces in the traces object + session.observers.add(new CustomTraceObserver(traces)) + + traces +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/deepClone.nf' +/** + * Performs a deep clone of the given object. + * @param x an object + */ +def deepClone(x) { + iterateMap(x, {it instanceof Cloneable ? it.clone() : it}) +} +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/getPublishDir.nf' +def getPublishDir() { + return params.containsKey("publish_dir") ? params.publish_dir : + params.containsKey("publishDir") ? params.publishDir : + null +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/getRootDir.nf' + +// Recurse upwards until we find a '.build.yaml' file +def _findBuildYamlFile(pathPossiblySymlink) { + def path = pathPossiblySymlink.toRealPath() + def child = path.resolve(".build.yaml") + if (java.nio.file.Files.isDirectory(path) && java.nio.file.Files.exists(child)) { + return child + } else { + def parent = path.getParent() + if (parent == null) { + return null + } else { + return _findBuildYamlFile(parent) + } + } +} + +// get the root of the target folder +def getRootDir() { + def dir = _findBuildYamlFile(meta.resources_dir) + assert dir != null: "Could not find .build.yaml in the folder structure" + dir.getParent() +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/iterateMap.nf' +/** + * Recursively apply a function over the leaves of an object. + * @param obj The object to iterate over. + * @param fun The function to apply to each value. + * @return The object with the function applied to each value. + */ +def iterateMap(obj, fun) { + if (obj instanceof List && obj !instanceof String) { + return obj.collect{item -> + iterateMap(item, fun) + } + } else if (obj instanceof Map) { + return obj.collectEntries{key, item -> + [key.toString(), iterateMap(item, fun)] + } + } else { + return fun(obj) + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/niceView.nf' +/** + * A view for printing the event of each channel as a YAML blob. + * This is useful for debugging. + */ +def niceView() { + workflow niceViewWf { + take: input + main: + output = input + | view{toYamlBlob(it)} + emit: output + } + return niceViewWf +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/readCsv.nf' + +def readCsv(file_path) { + def output = [] + def inputFile = file_path !instanceof Path ? file(file_path, hidden: true) : file_path + + // todo: allow escaped quotes in string + // todo: allow single quotes? + def splitRegex = java.util.regex.Pattern.compile(''',(?=(?:[^"]*"[^"]*")*[^"]*$)''') + def removeQuote = java.util.regex.Pattern.compile('''"(.*)"''') + + def br = java.nio.file.Files.newBufferedReader(inputFile) + + def row = -1 + def header = null + while (br.ready() && header == null) { + def line = br.readLine() + row++ + if (!line.startsWith("#")) { + header = splitRegex.split(line, -1).collect{field -> + m = removeQuote.matcher(field) + m.find() ? m.replaceFirst('$1') : field + } + } + } + assert header != null: "CSV file should contain a header" + + while (br.ready()) { + def line = br.readLine() + row++ + if (line == null) { + br.close() + break + } + + if (!line.startsWith("#")) { + def predata = splitRegex.split(line, -1) + def data = predata.collect{field -> + if (field == "") { + return null + } + def m = removeQuote.matcher(field) + if (m.find()) { + return m.replaceFirst('$1') + } else { + return field + } + } + assert header.size() == data.size(): "Row $row should contain the same number as fields as the header" + + def dataMap = [header, data].transpose().collectEntries().findAll{it.value != null} + output.add(dataMap) + } + } + + output +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/readJson.nf' +def readJson(file_path) { + def inputFile = file_path !instanceof Path ? file(file_path, hidden: true) : file_path + def jsonSlurper = new groovy.json.JsonSlurper() + jsonSlurper.parse(inputFile) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/readJsonBlob.nf' +def readJsonBlob(str) { + def jsonSlurper = new groovy.json.JsonSlurper() + jsonSlurper.parseText(str) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/readTaggedYaml.nf' +// Custom constructor to modify how certain objects are parsed from YAML +class CustomConstructor extends org.yaml.snakeyaml.constructor.Constructor { + Path root + + class ConstructPath extends org.yaml.snakeyaml.constructor.AbstractConstruct { + public Object construct(org.yaml.snakeyaml.nodes.Node node) { + String filename = (String) constructScalar(node); + if (root != null) { + return root.resolve(filename); + } + return java.nio.file.Paths.get(filename); + } + } + + CustomConstructor(org.yaml.snakeyaml.LoaderOptions options, Path root) { + super(options) + this.root = root + // Handling !file tag and parse it back to a File type + this.yamlConstructors.put(new org.yaml.snakeyaml.nodes.Tag("!file"), new ConstructPath()) + } +} + +def readTaggedYaml(Path path) { + def options = new org.yaml.snakeyaml.LoaderOptions() + def constructor = new CustomConstructor(options, path.getParent()) + def yaml = new org.yaml.snakeyaml.Yaml(constructor) + return yaml.load(path.text) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/readYaml.nf' +def readYaml(file_path) { + def inputFile = file_path !instanceof Path ? file(file_path, hidden: true) : file_path + def yamlSlurper = new org.yaml.snakeyaml.Yaml() + yamlSlurper.load(inputFile) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/readYamlBlob.nf' +def readYamlBlob(str) { + def yamlSlurper = new org.yaml.snakeyaml.Yaml() + yamlSlurper.load(str) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/toJsonBlob.nf' +String toJsonBlob(data) { + return groovy.json.JsonOutput.toJson(data) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/toTaggedYamlBlob.nf' +// Custom representer to modify how certain objects are represented in YAML +class CustomRepresenter extends org.yaml.snakeyaml.representer.Representer { + Path relativizer + + class RepresentPath implements org.yaml.snakeyaml.representer.Represent { + public String getFileName(Object obj) { + if (obj instanceof File) { + obj = ((File) obj).toPath(); + } + if (obj !instanceof Path) { + throw new IllegalArgumentException("Object: " + obj + " is not a Path or File"); + } + def path = (Path) obj; + + if (relativizer != null) { + return relativizer.relativize(path).toString() + } else { + return path.toString() + } + } + + public org.yaml.snakeyaml.nodes.Node representData(Object data) { + String filename = getFileName(data); + def tag = new org.yaml.snakeyaml.nodes.Tag("!file"); + return representScalar(tag, filename); + } + } + CustomRepresenter(org.yaml.snakeyaml.DumperOptions options, Path relativizer) { + super(options) + this.relativizer = relativizer + this.representers.put(sun.nio.fs.UnixPath, new RepresentPath()) + this.representers.put(Path, new RepresentPath()) + this.representers.put(File, new RepresentPath()) + } +} + +String toTaggedYamlBlob(data) { + return toRelativeTaggedYamlBlob(data, null) +} +String toRelativeTaggedYamlBlob(data, Path relativizer) { + def options = new org.yaml.snakeyaml.DumperOptions() + options.setDefaultFlowStyle(org.yaml.snakeyaml.DumperOptions.FlowStyle.BLOCK) + def representer = new CustomRepresenter(options, relativizer) + def yaml = new org.yaml.snakeyaml.Yaml(representer, options) + return yaml.dump(data) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/toYamlBlob.nf' +String toYamlBlob(data) { + def options = new org.yaml.snakeyaml.DumperOptions() + options.setDefaultFlowStyle(org.yaml.snakeyaml.DumperOptions.FlowStyle.BLOCK) + options.setPrettyFlow(true) + def yaml = new org.yaml.snakeyaml.Yaml(options) + def cleanData = iterateMap(data, { it instanceof Path ? it.toString() : it }) + return yaml.dump(cleanData) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/writeJson.nf' +void writeJson(data, file) { + assert data: "writeJson: data should not be null" + assert file: "writeJson: file should not be null" + file.write(toJsonBlob(data)) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/writeYaml.nf' +void writeYaml(data, file) { + assert data: "writeYaml: data should not be null" + assert file: "writeYaml: file should not be null" + file.write(toYamlBlob(data)) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/states/findStates.nf' +def findStates(Map params, Map config) { + def auto_config = deepClone(config) + def auto_params = deepClone(params) + + auto_config = auto_config.clone() + // override arguments + auto_config.argument_groups = [] + auto_config.arguments = [ + [ + type: "string", + name: "--id", + description: "A dummy identifier", + required: false + ], + [ + type: "file", + name: "--input_states", + example: "/path/to/input/directory/**/state.yaml", + description: "Path to input directory containing the datasets to be integrated.", + required: true, + multiple: true, + multiple_sep: ";" + ], + [ + type: "string", + name: "--filter", + example: "foo/.*/state.yaml", + description: "Regex to filter state files by path.", + required: false + ], + // to do: make this a yaml blob? + [ + type: "string", + name: "--rename_keys", + example: ["newKey1:oldKey1", "newKey2:oldKey2"], + description: "Rename keys in the detected input files. This is useful if the input files do not match the set of input arguments of the workflow.", + required: false, + multiple: true, + multiple_sep: ";" + ], + [ + type: "string", + name: "--settings", + example: '{"output_dataset": "dataset.h5ad", "k": 10}', + description: "Global arguments as a JSON glob to be passed to all components.", + required: false + ] + ] + if (!(auto_params.containsKey("id"))) { + auto_params["id"] = "auto" + } + + // run auto config through processConfig once more + auto_config = processConfig(auto_config) + + workflow findStatesWf { + helpMessage(auto_config) + + output_ch = + channelFromParams(auto_params, auto_config) + | flatMap { autoId, args -> + + def globalSettings = args.settings ? readYamlBlob(args.settings) : [:] + + // look for state files in input dir + def stateFiles = args.input_states + + // filter state files by regex + if (args.filter) { + stateFiles = stateFiles.findAll{ stateFile -> + def stateFileStr = stateFile.toString() + def matcher = stateFileStr =~ args.filter + matcher.matches()} + } + + // read in states + def states = stateFiles.collect { stateFile -> + def state_ = readTaggedYaml(stateFile) + [state_.id, state_] + } + + // construct renameMap + if (args.rename_keys) { + def renameMap = args.rename_keys.collectEntries{renameString -> + def split = renameString.split(":") + assert split.size() == 2: "Argument 'rename_keys' should be of the form 'newKey:oldKey', or 'newKey:oldKey;newKey:oldKey' in case of multiple values" + split + } + + // rename keys in state, only let states through which have all keys + // also add global settings + states = states.collectMany{id, state -> + def newState = [:] + + for (key in renameMap.keySet()) { + def origKey = renameMap[key] + if (!(state.containsKey(origKey))) { + return [] + } + newState[key] = state[origKey] + } + + [[id, globalSettings + newState]] + } + } + + states + } + emit: + output_ch + } + + return findStatesWf +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/states/joinStates.nf' +def joinStates(Closure apply_) { + workflow joinStatesWf { + take: input_ch + main: + output_ch = input_ch + | toSortedList + | filter{ it.size() > 0 } + | map{ tups -> + def ids = tups.collect{it[0]} + def states = tups.collect{it[1]} + apply_(ids, states) + } + + emit: output_ch + } + return joinStatesWf +} +// helper file: 'src/main/resources/io/viash/runners/nextflow/states/publishStates.nf' +def collectFiles(obj) { + if (obj instanceof java.io.File || obj instanceof Path) { + return [obj] + } else if (obj instanceof List && obj !instanceof String) { + return obj.collectMany{item -> + collectFiles(item) + } + } else if (obj instanceof Map) { + return obj.collectMany{key, item -> + collectFiles(item) + } + } else { + return [] + } +} + +/** + * Recurse through a state and collect all input files and their target output filenames. + * @param obj The state to recurse through. + * @param prefix The prefix to prepend to the output filenames. + */ +def collectInputOutputPaths(obj, prefix) { + if (obj instanceof File || obj instanceof Path) { + def path = obj instanceof Path ? obj : obj.toPath() + def ext = path.getFileName().toString().find("\\.[^\\.]+\$") ?: "" + def newFilename = prefix + ext + return [[obj, newFilename]] + } else if (obj instanceof List && obj !instanceof String) { + return obj.withIndex().collectMany{item, ix -> + collectInputOutputPaths(item, prefix + "_" + ix) + } + } else if (obj instanceof Map) { + return obj.collectMany{key, item -> + collectInputOutputPaths(item, prefix + "." + key) + } + } else { + return [] + } +} + +def publishStates(Map args) { + def key_ = args.get("key") + def yamlTemplate_ = args.get("output_state", args.get("outputState", '$id.$key.state.yaml')) + + assert key_ != null : "publishStates: key must be specified" + + workflow publishStatesWf { + take: input_ch + main: + input_ch + | map { tup -> + def id_ = tup[0] + def state_ = tup[1] + + // the input files and the target output filenames + def inputoutputFilenames_ = collectInputOutputPaths(state_, id_ + "." + key_).transpose() + def inputFiles_ = inputoutputFilenames_[0] + def outputFilenames_ = inputoutputFilenames_[1] + + def yamlFilename = yamlTemplate_ + .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) + .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) + + // TODO: do the pathnames in state_ match up with the outputFilenames_? + + // convert state to yaml blob + def yamlBlob_ = toRelativeTaggedYamlBlob([id: id_] + state_, java.nio.file.Paths.get(yamlFilename)) + + [id_, yamlBlob_, yamlFilename, inputFiles_, outputFilenames_] + } + | publishStatesProc + emit: input_ch + } + return publishStatesWf +} +process publishStatesProc { + // todo: check publishpath? + publishDir path: "${getPublishDir()}/", mode: "copy" + tag "$id" + input: + tuple val(id), val(yamlBlob), val(yamlFile), path(inputFiles, stageAs: "_inputfile?/*"), val(outputFiles) + output: + tuple val(id), path{[yamlFile] + outputFiles} + script: + def copyCommands = [ + inputFiles instanceof List ? inputFiles : [inputFiles], + outputFiles instanceof List ? outputFiles : [outputFiles] + ] + .transpose() + .collectMany{infile, outfile -> + if (infile.toString() != outfile.toString()) { + [ + "[ -d \"\$(dirname '${outfile.toString()}')\" ] || mkdir -p \"\$(dirname '${outfile.toString()}')\"", + "cp -r '${infile.toString()}' '${outfile.toString()}'" + ] + } else { + // no need to copy if infile is the same as outfile + [] + } + } + """ +mkdir -p "\$(dirname '${yamlFile}')" +echo "Storing state as yaml" +echo '${yamlBlob}' > '${yamlFile}' +echo "Copying output files to destination folder" +${copyCommands.join("\n ")} +""" +} + + +// this assumes that the state contains no other values other than those specified in the config +def publishStatesByConfig(Map args) { + def config = args.get("config") + assert config != null : "publishStatesByConfig: config must be specified" + + def key_ = args.get("key", config.name) + assert key_ != null : "publishStatesByConfig: key must be specified" + + workflow publishStatesSimpleWf { + take: input_ch + main: + input_ch + | map { tup -> + def id_ = tup[0] + def state_ = tup[1] // e.g. [output: new File("myoutput.h5ad"), k: 10] + def origState_ = tup[2] // e.g. [output: '$id.$key.foo.h5ad'] + + // TODO: allow overriding the state.yaml template + // TODO TODO: if auto.publish == "state", add output_state as an argument + def yamlTemplate = params.containsKey("output_state") ? params.output_state : '$id.$key.state.yaml' + def yamlFilename = yamlTemplate + .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) + .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) + def yamlDir = java.nio.file.Paths.get(yamlFilename).getParent() + + // the processed state is a list of [key, value, inputPath, outputFilename] tuples, where + // - key is a String + // - value is any object that can be serialized to a Yaml (so a String/Integer/Long/Double/Boolean, a List, a Map, or a Path) + // - inputPath is a List[Path] + // - outputFilename is a List[String] + // - (key, value) are the tuples that will be saved to the state.yaml file + // - (inputPath, outputFilename) are the files that will be copied from src to dest (relative to the state.yaml) + def processedState = + config.allArguments + .findAll { it.direction == "output" } + .collectMany { par -> + def plainName_ = par.plainName + // if the state does not contain the key, it's an + // optional argument for which the component did + // not generate any output + if (!state_.containsKey(plainName_)) { + return [] + } + def value = state_[plainName_] + // if the parameter is not a file, it should be stored + // in the state as-is, but is not something that needs + // to be copied from the source path to the dest path + if (par.type != "file") { + return [[key: plainName_, value: value, inputPath: [], outputFilename: []]] + } + // if the orig state does not contain this filename, + // it's an optional argument for which the user specified + // that it should not be returned as a state + if (!origState_.containsKey(plainName_)) { + return [] + } + def filenameTemplate = origState_[plainName_] + // if the pararameter is multiple: true, fetch the template + if (par.multiple && filenameTemplate instanceof List) { + filenameTemplate = filenameTemplate[0] + } + // instantiate the template + def filename = filenameTemplate + .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) + .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) + if (par.multiple) { + // if the parameter is multiple: true, the filename + // should contain a wildcard '*' that is replaced with + // the index of the file + assert filename.contains("*") : "Module '${key_}' id '${id_}': Multiple output files specified, but no wildcard '*' in the filename: ${filename}" + def outputPerFile = value.withIndex().collect{ val, ix -> + def filename_ix = filename.replace("*", ix.toString()) + def value_ = java.nio.file.Paths.get(filename_ix) + // if id contains a slash + if (yamlDir != null) { + value_ = yamlDir.relativize(value_) + } + def inputPath = val instanceof File ? val.toPath() : val + [value: value_, inputPath: inputPath, outputFilename: filename_ix] + } + def transposedOutputs = ["value", "inputPath", "outputFilename"].collectEntries{ key -> + [key, outputPerFile.collect{dic -> dic[key]}] + } + return [[key: plainName_] + transposedOutputs] + } else { + def value_ = java.nio.file.Paths.get(filename) + // if id contains a slash + if (yamlDir != null) { + value_ = yamlDir.relativize(value_) + } + def inputPath = value instanceof File ? value.toPath() : value + return [[key: plainName_, value: value_, inputPath: [inputPath], outputFilename: [filename]]] + } + } + + def updatedState_ = processedState.collectEntries{[it.key, it.value]} + def inputPaths = processedState.collectMany{it.inputPath} + def outputFilenames = processedState.collectMany{it.outputFilename} + + // convert state to yaml blob + def yamlBlob_ = toTaggedYamlBlob([id: id_] + updatedState_) + + [id_, yamlBlob_, yamlFilename, inputPaths, outputFilenames] + } + | publishStatesProc + emit: input_ch + } + return publishStatesSimpleWf +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/states/setState.nf' +def setState(fun) { + assert fun instanceof Closure || fun instanceof Map || fun instanceof List : + "Error in setState: Expected process argument to be a Closure, a Map, or a List. Found: class ${fun.getClass()}" + + // if fun is a List, convert to map + if (fun instanceof List) { + // check whether fun is a list[string] + assert fun.every{it instanceof CharSequence} : "Error in setState: argument is a List, but not all elements are Strings" + fun = fun.collectEntries{[it, it]} + } + + // if fun is a map, convert to closure + if (fun instanceof Map) { + // check whether fun is a map[string, string] + assert fun.values().every{it instanceof CharSequence} : "Error in setState: argument is a Map, but not all values are Strings" + assert fun.keySet().every{it instanceof CharSequence} : "Error in setState: argument is a Map, but not all keys are Strings" + def funMap = fun.clone() + // turn the map into a closure to be used later on + fun = { id_, state_ -> + assert state_ instanceof Map : "Error in setState: the state is not a Map" + funMap.collectMany{newkey, origkey -> + if (state_.containsKey(origkey)) { + [[newkey, state_[origkey]]] + } else { + [] + } + }.collectEntries() + } + } + + map { tup -> + def id = tup[0] + def state = tup[1] + def unfilteredState = fun(id, state) + def newState = unfilteredState.findAll{key, val -> val != null} + [id, newState] + tup.drop(2) + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/workflowFactory/processAuto.nf' +// TODO: unit test processAuto +def processAuto(Map auto) { + // remove null values + auto = auto.findAll{k, v -> v != null} + + // check for unexpected keys + def expectedKeys = ["simplifyInput", "simplifyOutput", "transcript", "publish"] + def unexpectedKeys = auto.keySet() - expectedKeys + assert unexpectedKeys.isEmpty(), "unexpected keys in auto: '${unexpectedKeys.join("', '")}'" + + // check auto.simplifyInput + assert auto.simplifyInput instanceof Boolean, "auto.simplifyInput must be a boolean" + + // check auto.simplifyOutput + assert auto.simplifyOutput instanceof Boolean, "auto.simplifyOutput must be a boolean" + + // check auto.transcript + assert auto.transcript instanceof Boolean, "auto.transcript must be a boolean" + + // check auto.publish + assert auto.publish instanceof Boolean || auto.publish == "state", "auto.publish must be a boolean or 'state'" + + return auto.subMap(expectedKeys) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/workflowFactory/processDirectives.nf' +def assertMapKeys(map, expectedKeys, requiredKeys, mapName) { + assert map instanceof Map : "Expected argument '$mapName' to be a Map. Found: class ${map.getClass()}" + map.forEach { key, val -> + assert key in expectedKeys : "Unexpected key '$key' in ${mapName ? mapName + " " : ""}map" + } + requiredKeys.forEach { requiredKey -> + assert map.containsKey(requiredKey) : "Missing required key '$key' in ${mapName ? mapName + " " : ""}map" + } +} + +// TODO: unit test processDirectives +def processDirectives(Map drctv) { + // remove null values + drctv = drctv.findAll{k, v -> v != null} + + // check for unexpected keys + def expectedKeys = [ + "accelerator", "afterScript", "beforeScript", "cache", "conda", "container", "containerOptions", "cpus", "disk", "echo", "errorStrategy", "executor", "machineType", "maxErrors", "maxForks", "maxRetries", "memory", "module", "penv", "pod", "publishDir", "queue", "label", "scratch", "storeDir", "stageInMode", "stageOutMode", "tag", "time" + ] + def unexpectedKeys = drctv.keySet() - expectedKeys + assert unexpectedKeys.isEmpty() : "Unexpected keys in process directive: '${unexpectedKeys.join("', '")}'" + + /* DIRECTIVE accelerator + accepted examples: + - [ limit: 4, type: "nvidia-tesla-k80" ] + */ + if (drctv.containsKey("accelerator")) { + assertMapKeys(drctv["accelerator"], ["type", "limit", "request", "runtime"], [], "accelerator") + } + + /* DIRECTIVE afterScript + accepted examples: + - "source /cluster/bin/cleanup" + */ + if (drctv.containsKey("afterScript")) { + assert drctv["afterScript"] instanceof CharSequence + } + + /* DIRECTIVE beforeScript + accepted examples: + - "source /cluster/bin/setup" + */ + if (drctv.containsKey("beforeScript")) { + assert drctv["beforeScript"] instanceof CharSequence + } + + /* DIRECTIVE cache + accepted examples: + - true + - false + - "deep" + - "lenient" + */ + if (drctv.containsKey("cache")) { + assert drctv["cache"] instanceof CharSequence || drctv["cache"] instanceof Boolean + if (drctv["cache"] instanceof CharSequence) { + assert drctv["cache"] in ["deep", "lenient"] : "Unexpected value for cache" + } + } + + /* DIRECTIVE conda + accepted examples: + - "bwa=0.7.15" + - "bwa=0.7.15 fastqc=0.11.5" + - ["bwa=0.7.15", "fastqc=0.11.5"] + */ + if (drctv.containsKey("conda")) { + if (drctv["conda"] instanceof List) { + drctv["conda"] = drctv["conda"].join(" ") + } + assert drctv["conda"] instanceof CharSequence + } + + /* DIRECTIVE container + accepted examples: + - "foo/bar:tag" + - [ registry: "reg", image: "im", tag: "ta" ] + is transformed to "reg/im:ta" + - [ image: "im" ] + is transformed to "im:latest" + */ + if (drctv.containsKey("container")) { + assert drctv["container"] instanceof Map || drctv["container"] instanceof CharSequence + if (drctv["container"] instanceof Map) { + def m = drctv["container"] + assertMapKeys(m, [ "registry", "image", "tag" ], ["image"], "container") + def part1 = + System.getenv('OVERRIDE_CONTAINER_REGISTRY') ? System.getenv('OVERRIDE_CONTAINER_REGISTRY') + "/" : + params.containsKey("override_container_registry") ? params["override_container_registry"] + "/" : // todo: remove? + m.registry ? m.registry + "/" : + "" + def part2 = m.image + def part3 = m.tag ? ":" + m.tag : ":latest" + drctv["container"] = part1 + part2 + part3 + } + } + + /* DIRECTIVE containerOptions + accepted examples: + - "--foo bar" + - ["--foo bar", "-f b"] + */ + if (drctv.containsKey("containerOptions")) { + if (drctv["containerOptions"] instanceof List) { + drctv["containerOptions"] = drctv["containerOptions"].join(" ") + } + assert drctv["containerOptions"] instanceof CharSequence + } + + /* DIRECTIVE cpus + accepted examples: + - 1 + - 10 + */ + if (drctv.containsKey("cpus")) { + assert drctv["cpus"] instanceof Integer + } + + /* DIRECTIVE disk + accepted examples: + - "1 GB" + - "2TB" + - "3.2KB" + - "10.B" + */ + if (drctv.containsKey("disk")) { + assert drctv["disk"] instanceof CharSequence + // assert drctv["disk"].matches("[0-9]+(\\.[0-9]*)? *[KMGTPEZY]?B") + // ^ does not allow closures + } + + /* DIRECTIVE echo + accepted examples: + - true + - false + */ + if (drctv.containsKey("echo")) { + assert drctv["echo"] instanceof Boolean + } + + /* DIRECTIVE errorStrategy + accepted examples: + - "terminate" + - "finish" + */ + if (drctv.containsKey("errorStrategy")) { + assert drctv["errorStrategy"] instanceof CharSequence + assert drctv["errorStrategy"] in ["terminate", "finish", "ignore", "retry"] : "Unexpected value for errorStrategy" + } + + /* DIRECTIVE executor + accepted examples: + - "local" + - "sge" + */ + if (drctv.containsKey("executor")) { + assert drctv["executor"] instanceof CharSequence + assert drctv["executor"] in ["local", "sge", "uge", "lsf", "slurm", "pbs", "pbspro", "moab", "condor", "nqsii", "ignite", "k8s", "awsbatch", "google-pipelines"] : "Unexpected value for executor" + } + + /* DIRECTIVE machineType + accepted examples: + - "n1-highmem-8" + */ + if (drctv.containsKey("machineType")) { + assert drctv["machineType"] instanceof CharSequence + } + + /* DIRECTIVE maxErrors + accepted examples: + - 1 + - 3 + */ + if (drctv.containsKey("maxErrors")) { + assert drctv["maxErrors"] instanceof Integer + } + + /* DIRECTIVE maxForks + accepted examples: + - 1 + - 3 + */ + if (drctv.containsKey("maxForks")) { + assert drctv["maxForks"] instanceof Integer + } + + /* DIRECTIVE maxRetries + accepted examples: + - 1 + - 3 + */ + if (drctv.containsKey("maxRetries")) { + assert drctv["maxRetries"] instanceof Integer + } + + /* DIRECTIVE memory + accepted examples: + - "1 GB" + - "2TB" + - "3.2KB" + - "10.B" + */ + if (drctv.containsKey("memory")) { + assert drctv["memory"] instanceof CharSequence + // assert drctv["memory"].matches("[0-9]+(\\.[0-9]*)? *[KMGTPEZY]?B") + // ^ does not allow closures + } + + /* DIRECTIVE module + accepted examples: + - "ncbi-blast/2.2.27" + - "ncbi-blast/2.2.27:t_coffee/10.0" + - ["ncbi-blast/2.2.27", "t_coffee/10.0"] + */ + if (drctv.containsKey("module")) { + if (drctv["module"] instanceof List) { + drctv["module"] = drctv["module"].join(":") + } + assert drctv["module"] instanceof CharSequence + } + + /* DIRECTIVE penv + accepted examples: + - "smp" + */ + if (drctv.containsKey("penv")) { + assert drctv["penv"] instanceof CharSequence + } + + /* DIRECTIVE pod + accepted examples: + - [ label: "key", value: "val" ] + - [ annotation: "key", value: "val" ] + - [ env: "key", value: "val" ] + - [ [label: "l", value: "v"], [env: "e", value: "v"]] + */ + if (drctv.containsKey("pod")) { + if (drctv["pod"] instanceof Map) { + drctv["pod"] = [ drctv["pod"] ] + } + assert drctv["pod"] instanceof List + drctv["pod"].forEach { pod -> + assert pod instanceof Map + // TODO: should more checks be added? + // See https://www.nextflow.io/docs/latest/process.html?highlight=directives#pod + // e.g. does it contain 'label' and 'value', or 'annotation' and 'value', or ...? + } + } + + /* DIRECTIVE publishDir + accepted examples: + - [] + - [ [ path: "foo", enabled: true ], [ path: "bar", enabled: false ] ] + - "/path/to/dir" + is transformed to [[ path: "/path/to/dir" ]] + - [ path: "/path/to/dir", mode: "cache" ] + is transformed to [[ path: "/path/to/dir", mode: "cache" ]] + */ + // TODO: should we also look at params["publishDir"]? + if (drctv.containsKey("publishDir")) { + def pblsh = drctv["publishDir"] + + // check different options + assert pblsh instanceof List || pblsh instanceof Map || pblsh instanceof CharSequence + + // turn into list if not already so + // for some reason, 'if (!pblsh instanceof List) pblsh = [ pblsh ]' doesn't work. + pblsh = pblsh instanceof List ? pblsh : [ pblsh ] + + // check elements of publishDir + pblsh = pblsh.collect{ elem -> + // turn into map if not already so + elem = elem instanceof CharSequence ? [ path: elem ] : elem + + // check types and keys + assert elem instanceof Map : "Expected publish argument '$elem' to be a String or a Map. Found: class ${elem.getClass()}" + assertMapKeys(elem, [ "path", "mode", "overwrite", "pattern", "saveAs", "enabled" ], ["path"], "publishDir") + + // check elements in map + assert elem.containsKey("path") + assert elem["path"] instanceof CharSequence + if (elem.containsKey("mode")) { + assert elem["mode"] instanceof CharSequence + assert elem["mode"] in [ "symlink", "rellink", "link", "copy", "copyNoFollow", "move" ] + } + if (elem.containsKey("overwrite")) { + assert elem["overwrite"] instanceof Boolean + } + if (elem.containsKey("pattern")) { + assert elem["pattern"] instanceof CharSequence + } + if (elem.containsKey("saveAs")) { + assert elem["saveAs"] instanceof CharSequence //: "saveAs as a Closure is currently not supported. Surround your closure with single quotes to get the desired effect. Example: '\{ foo \}'" + } + if (elem.containsKey("enabled")) { + assert elem["enabled"] instanceof Boolean + } + + // return final result + elem + } + // store final directive + drctv["publishDir"] = pblsh + } + + /* DIRECTIVE queue + accepted examples: + - "long" + - "short,long" + - ["short", "long"] + */ + if (drctv.containsKey("queue")) { + if (drctv["queue"] instanceof List) { + drctv["queue"] = drctv["queue"].join(",") + } + assert drctv["queue"] instanceof CharSequence + } + + /* DIRECTIVE label + accepted examples: + - "big_mem" + - "big_cpu" + - ["big_mem", "big_cpu"] + */ + if (drctv.containsKey("label")) { + if (drctv["label"] instanceof CharSequence) { + drctv["label"] = [ drctv["label"] ] + } + assert drctv["label"] instanceof List + drctv["label"].forEach { label -> + assert label instanceof CharSequence + // assert label.matches("[a-zA-Z0-9]([a-zA-Z0-9_]*[a-zA-Z0-9])?") + // ^ does not allow closures + } + } + + /* DIRECTIVE scratch + accepted examples: + - true + - "/path/to/scratch" + - '$MY_PATH_TO_SCRATCH' + - "ram-disk" + */ + if (drctv.containsKey("scratch")) { + assert drctv["scratch"] == true || drctv["scratch"] instanceof CharSequence + } + + /* DIRECTIVE storeDir + accepted examples: + - "/path/to/storeDir" + */ + if (drctv.containsKey("storeDir")) { + assert drctv["storeDir"] instanceof CharSequence + } + + /* DIRECTIVE stageInMode + accepted examples: + - "copy" + - "link" + */ + if (drctv.containsKey("stageInMode")) { + assert drctv["stageInMode"] instanceof CharSequence + assert drctv["stageInMode"] in ["copy", "link", "symlink", "rellink"] + } + + /* DIRECTIVE stageOutMode + accepted examples: + - "copy" + - "link" + */ + if (drctv.containsKey("stageOutMode")) { + assert drctv["stageOutMode"] instanceof CharSequence + assert drctv["stageOutMode"] in ["copy", "move", "rsync"] + } + + /* DIRECTIVE tag + accepted examples: + - "foo" + - '$id' + */ + if (drctv.containsKey("tag")) { + assert drctv["tag"] instanceof CharSequence + } + + /* DIRECTIVE time + accepted examples: + - "1h" + - "2days" + - "1day 6hours 3minutes 30seconds" + */ + if (drctv.containsKey("time")) { + assert drctv["time"] instanceof CharSequence + // todo: validation regex? + } + + return drctv +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/workflowFactory/processWorkflowArgs.nf' +def processWorkflowArgs(Map args, Map defaultWfArgs, Map meta) { + // override defaults with args + def workflowArgs = defaultWfArgs + args + + // check whether 'key' exists + assert workflowArgs.containsKey("key") : "Error in module '${meta.config.name}': key is a required argument" + + // if 'key' is a closure, apply it to the original key + if (workflowArgs["key"] instanceof Closure) { + workflowArgs["key"] = workflowArgs["key"](meta.config.name) + } + def key = workflowArgs["key"] + assert key instanceof CharSequence : "Expected process argument 'key' to be a String. Found: class ${key.getClass()}" + assert key ==~ /^[a-zA-Z_]\w*$/ : "Error in module '$key': Expected process argument 'key' to consist of only letters, digits or underscores. Found: ${key}" + + // check for any unexpected keys + def expectedKeys = ["key", "directives", "auto", "map", "mapId", "mapData", "mapPassthrough", "filter", "runIf", "fromState", "toState", "args", "renameKeys", "debug"] + def unexpectedKeys = workflowArgs.keySet() - expectedKeys + assert unexpectedKeys.isEmpty() : "Error in module '$key': unexpected arguments to the '.run()' function: '${unexpectedKeys.join("', '")}'" + + // check whether directives exists and apply defaults + assert workflowArgs.containsKey("directives") : "Error in module '$key': directives is a required argument" + assert workflowArgs["directives"] instanceof Map : "Error in module '$key': Expected process argument 'directives' to be a Map. Found: class ${workflowArgs['directives'].getClass()}" + workflowArgs["directives"] = processDirectives(defaultWfArgs.directives + workflowArgs["directives"]) + + // check whether directives exists and apply defaults + assert workflowArgs.containsKey("auto") : "Error in module '$key': auto is a required argument" + assert workflowArgs["auto"] instanceof Map : "Error in module '$key': Expected process argument 'auto' to be a Map. Found: class ${workflowArgs['auto'].getClass()}" + workflowArgs["auto"] = processAuto(defaultWfArgs.auto + workflowArgs["auto"]) + + // auto define publish, if so desired + if (workflowArgs.auto.publish == true && (workflowArgs.directives.publishDir != null ? workflowArgs.directives.publishDir : [:]).isEmpty()) { + // can't assert at this level thanks to the no_publish profile + // assert params.containsKey("publishDir") || params.containsKey("publish_dir") : + // "Error in module '${workflowArgs['key']}': if auto.publish is true, params.publish_dir needs to be defined.\n" + + // " Example: params.publish_dir = \"./output/\"" + def publishDir = getPublishDir() + + if (publishDir != null) { + workflowArgs.directives.publishDir = [[ + path: publishDir, + saveAs: "{ it.startsWith('.') ? null : it }", // don't publish hidden files, by default + mode: "copy" + ]] + } + } + + // auto define transcript, if so desired + if (workflowArgs.auto.transcript == true) { + // can't assert at this level thanks to the no_publish profile + // assert params.containsKey("transcriptsDir") || params.containsKey("transcripts_dir") || params.containsKey("publishDir") || params.containsKey("publish_dir") : + // "Error in module '${workflowArgs['key']}': if auto.transcript is true, either params.transcripts_dir or params.publish_dir needs to be defined.\n" + + // " Example: params.transcripts_dir = \"./transcripts/\"" + def transcriptsDir = + params.containsKey("transcripts_dir") ? params.transcripts_dir : + params.containsKey("transcriptsDir") ? params.transcriptsDir : + params.containsKey("publish_dir") ? params.publish_dir + "/_transcripts" : + params.containsKey("publishDir") ? params.publishDir + "/_transcripts" : + null + if (transcriptsDir != null) { + def timestamp = nextflow.Nextflow.getSession().getWorkflowMetadata().start.format('yyyy-MM-dd_HH-mm-ss') + def transcriptsPublishDir = [ + path: "$transcriptsDir/$timestamp/\${task.process.replaceAll(':', '-')}/\${id}/", + saveAs: "{ it.startsWith('.') ? it.replaceAll('^.', '') : null }", + mode: "copy" + ] + def publishDirs = workflowArgs.directives.publishDir != null ? workflowArgs.directives.publishDir : null ? workflowArgs.directives.publishDir : [] + workflowArgs.directives.publishDir = publishDirs + transcriptsPublishDir + } + } + + // if this is a stubrun, remove certain directives? + if (workflow.stubRun) { + workflowArgs.directives.keySet().removeAll(["publishDir", "cpus", "memory", "label"]) + } + + for (nam in ["map", "mapId", "mapData", "mapPassthrough", "filter", "runIf"]) { + if (workflowArgs.containsKey(nam) && workflowArgs[nam]) { + assert workflowArgs[nam] instanceof Closure : "Error in module '$key': Expected process argument '$nam' to be null or a Closure. Found: class ${workflowArgs[nam].getClass()}" + } + } + + // TODO: should functions like 'map', 'mapId', 'mapData', 'mapPassthrough' be deprecated as well? + for (nam in ["map", "mapData", "mapPassthrough", "renameKeys"]) { + if (workflowArgs.containsKey(nam) && workflowArgs[nam] != null) { + log.warn "module '$key': workflow argument '$nam' is deprecated and will be removed in Viash 0.9.0. Please use 'fromState' and 'toState' instead." + } + } + + // check fromState + workflowArgs["fromState"] = _processFromState(workflowArgs.get("fromState"), key, meta.config) + + // check toState + workflowArgs["toState"] = _processToState(workflowArgs.get("toState"), key, meta.config) + + // return output + return workflowArgs +} + +def _processFromState(fromState, key_, config_) { + assert fromState == null || fromState instanceof Closure || fromState instanceof Map || fromState instanceof List : + "Error in module '$key_': Expected process argument 'fromState' to be null, a Closure, a Map, or a List. Found: class ${fromState.getClass()}" + if (fromState == null) { + return null + } + + // if fromState is a List, convert to map + if (fromState instanceof List) { + // check whether fromstate is a list[string] + assert fromState.every{it instanceof CharSequence} : "Error in module '$key_': fromState is a List, but not all elements are Strings" + fromState = fromState.collectEntries{[it, it]} + } + + // if fromState is a map, convert to closure + if (fromState instanceof Map) { + // check whether fromstate is a map[string, string] + assert fromState.values().every{it instanceof CharSequence} : "Error in module '$key_': fromState is a Map, but not all values are Strings" + assert fromState.keySet().every{it instanceof CharSequence} : "Error in module '$key_': fromState is a Map, but not all keys are Strings" + def fromStateMap = fromState.clone() + def requiredInputNames = meta.config.allArguments.findAll{it.required && it.direction == "Input"}.collect{it.plainName} + // turn the map into a closure to be used later on + fromState = { it -> + def state = it[1] + assert state instanceof Map : "Error in module '$key_': the state is not a Map" + def data = fromStateMap.collectMany{newkey, origkey -> + // check whether newkey corresponds to a required argument + if (state.containsKey(origkey)) { + [[newkey, state[origkey]]] + } else if (!requiredInputNames.contains(origkey)) { + [] + } else { + throw new Exception("Error in module '$key_': fromState key '$origkey' not found in current state") + } + }.collectEntries() + data + } + } + + return fromState +} + +def _processToState(toState, key_, config_) { + if (toState == null) { + toState = { tup -> tup[1] } + } + + // toState should be a closure, map[string, string], or list[string] + assert toState instanceof Closure || toState instanceof Map || toState instanceof List : + "Error in module '$key_': Expected process argument 'toState' to be a Closure, a Map, or a List. Found: class ${toState.getClass()}" + + // if toState is a List, convert to map + if (toState instanceof List) { + // check whether toState is a list[string] + assert toState.every{it instanceof CharSequence} : "Error in module '$key_': toState is a List, but not all elements are Strings" + toState = toState.collectEntries{[it, it]} + } + + // if toState is a map, convert to closure + if (toState instanceof Map) { + // check whether toState is a map[string, string] + assert toState.values().every{it instanceof CharSequence} : "Error in module '$key_': toState is a Map, but not all values are Strings" + assert toState.keySet().every{it instanceof CharSequence} : "Error in module '$key_': toState is a Map, but not all keys are Strings" + def toStateMap = toState.clone() + def requiredOutputNames = config_.allArguments.findAll{it.required && it.direction == "Output"}.collect{it.plainName} + // turn the map into a closure to be used later on + toState = { it -> + def output = it[1] + def state = it[2] + assert output instanceof Map : "Error in module '$key_': the output is not a Map" + assert state instanceof Map : "Error in module '$key_': the state is not a Map" + def extraEntries = toStateMap.collectMany{newkey, origkey -> + // check whether newkey corresponds to a required argument + if (output.containsKey(origkey)) { + [[newkey, output[origkey]]] + } else if (!requiredOutputNames.contains(origkey)) { + [] + } else { + throw new Exception("Error in module '$key_': toState key '$origkey' not found in current output") + } + }.collectEntries() + state + extraEntries + } + } + + return toState +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/workflowFactory/workflowFactory.nf' +def _debug(workflowArgs, debugKey) { + if (workflowArgs.debug) { + view { "process '${workflowArgs.key}' $debugKey tuple: $it" } + } else { + map { it } + } +} + +// depends on: innerWorkflowFactory +def workflowFactory(Map args, Map defaultWfArgs, Map meta) { + def workflowArgs = processWorkflowArgs(args, defaultWfArgs, meta) + def key_ = workflowArgs["key"] + + workflow workflowInstance { + take: input_ + + main: + def chModified = input_ + | checkUniqueIds([:]) + | _debug(workflowArgs, "input") + | map { tuple -> + tuple = deepClone(tuple) + + if (workflowArgs.map) { + tuple = workflowArgs.map(tuple) + } + if (workflowArgs.mapId) { + tuple[0] = workflowArgs.mapId(tuple[0]) + } + if (workflowArgs.mapData) { + tuple[1] = workflowArgs.mapData(tuple[1]) + } + if (workflowArgs.mapPassthrough) { + tuple = tuple.take(2) + workflowArgs.mapPassthrough(tuple.drop(2)) + } + + // check tuple + assert tuple instanceof List : + "Error in module '${key_}': element in channel should be a tuple [id, data, ...otherargs...]\n" + + " Example: [\"id\", [input: file('foo.txt'), arg: 10]].\n" + + " Expected class: List. Found: tuple.getClass() is ${tuple.getClass()}" + assert tuple.size() >= 2 : + "Error in module '${key_}': expected length of tuple in input channel to be two or greater.\n" + + " Example: [\"id\", [input: file('foo.txt'), arg: 10]].\n" + + " Found: tuple.size() == ${tuple.size()}" + + // check id field + if (tuple[0] instanceof GString) { + tuple[0] = tuple[0].toString() + } + assert tuple[0] instanceof CharSequence : + "Error in module '${key_}': first element of tuple in channel should be a String\n" + + " Example: [\"id\", [input: file('foo.txt'), arg: 10]].\n" + + " Found: ${tuple[0]}" + + // match file to input file + if (workflowArgs.auto.simplifyInput && (tuple[1] instanceof Path || tuple[1] instanceof List)) { + def inputFiles = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "input" } + + assert inputFiles.size() == 1 : + "Error in module '${key_}' id '${tuple[0]}'.\n" + + " Anonymous file inputs are only allowed when the process has exactly one file input.\n" + + " Expected: inputFiles.size() == 1. Found: inputFiles.size() is ${inputFiles.size()}" + + tuple[1] = [[ inputFiles[0].plainName, tuple[1] ]].collectEntries() + } + + // check data field + assert tuple[1] instanceof Map : + "Error in module '${key_}' id '${tuple[0]}': second element of tuple in channel should be a Map\n" + + " Example: [\"id\", [input: file('foo.txt'), arg: 10]].\n" + + " Expected class: Map. Found: tuple[1].getClass() is ${tuple[1].getClass()}" + + // rename keys of data field in tuple + if (workflowArgs.renameKeys) { + assert workflowArgs.renameKeys instanceof Map : + "Error renaming data keys in module '${key_}' id '${tuple[0]}'.\n" + + " Example: renameKeys: ['new_key': 'old_key'].\n" + + " Expected class: Map. Found: renameKeys.getClass() is ${workflowArgs.renameKeys.getClass()}" + assert tuple[1] instanceof Map : + "Error renaming data keys in module '${key_}' id '${tuple[0]}'.\n" + + " Expected class: Map. Found: tuple[1].getClass() is ${tuple[1].getClass()}" + + // TODO: allow renameKeys to be a function? + workflowArgs.renameKeys.each { newKey, oldKey -> + assert newKey instanceof CharSequence : + "Error renaming data keys in module '${key_}' id '${tuple[0]}'.\n" + + " Example: renameKeys: ['new_key': 'old_key'].\n" + + " Expected class of newKey: String. Found: newKey.getClass() is ${newKey.getClass()}" + assert oldKey instanceof CharSequence : + "Error renaming data keys in module '${key_}' id '${tuple[0]}'.\n" + + " Example: renameKeys: ['new_key': 'old_key'].\n" + + " Expected class of oldKey: String. Found: oldKey.getClass() is ${oldKey.getClass()}" + assert tuple[1].containsKey(oldKey) : + "Error renaming data keys in module '${key}' id '${tuple[0]}'.\n" + + " Key '$oldKey' is missing in the data map. tuple[1].keySet() is '${tuple[1].keySet()}'" + tuple[1].put(newKey, tuple[1][oldKey]) + } + tuple[1].keySet().removeAll(workflowArgs.renameKeys.collect{ newKey, oldKey -> oldKey }) + } + tuple + } + + + def chRun = null + def chPassthrough = null + if (workflowArgs.runIf) { + def runIfBranch = chModified.branch{ tup -> + run: workflowArgs.runIf(tup[0], tup[1]) + passthrough: true + } + chRun = runIfBranch.run + chPassthrough = runIfBranch.passthrough + } else { + chRun = chModified + chPassthrough = Channel.empty() + } + + def chRunFiltered = workflowArgs.filter ? + chRun | filter{workflowArgs.filter(it)} : + chRun + + def chArgs = workflowArgs.fromState ? + chRunFiltered | map{ + def new_data = workflowArgs.fromState(it.take(2)) + [it[0], new_data] + } : + chRunFiltered | map {tup -> tup.take(2)} + + // fill in defaults + def chArgsWithDefaults = chArgs + | map { tuple -> + def id_ = tuple[0] + def data_ = tuple[1] + + // TODO: could move fromState to here + + // fetch default params from functionality + def defaultArgs = meta.config.allArguments + .findAll { it.containsKey("default") } + .collectEntries { [ it.plainName, it.default ] } + + // fetch overrides in params + def paramArgs = meta.config.allArguments + .findAll { par -> + def argKey = key_ + "__" + par.plainName + params.containsKey(argKey) + } + .collectEntries { [ it.plainName, params[key_ + "__" + it.plainName] ] } + + // fetch overrides in data + def dataArgs = meta.config.allArguments + .findAll { data_.containsKey(it.plainName) } + .collectEntries { [ it.plainName, data_[it.plainName] ] } + + // combine params + def combinedArgs = defaultArgs + paramArgs + workflowArgs.args + dataArgs + + // remove arguments with explicit null values + combinedArgs + .removeAll{_, val -> val == null || val == "viash_no_value" || val == "force_null"} + + combinedArgs = _processInputValues(combinedArgs, meta.config, id_, key_) + + [id_, combinedArgs] + tuple.drop(2) + } + + // TODO: move some of the _meta.join_id wrangling to the safeJoin() function. + def chInitialOutput = chArgsWithDefaults + | _debug(workflowArgs, "processed") + // run workflow + | innerWorkflowFactory(workflowArgs) + // check output tuple + | map { id_, output_ -> + + // see if output map contains metadata + def meta_ = + output_ instanceof Map && output_.containsKey("_meta") ? + output_["_meta"] : + [:] + def join_id = meta_.join_id ?: id_ + + // remove metadata + output_ = output_.findAll{k, v -> k != "_meta"} + + // check value types + output_ = _processOutputValues(output_, meta.config, id_, key_) + + // simplify output if need be + if (workflowArgs.auto.simplifyOutput && output_.size() == 1) { + output_ = output_.values()[0] + } + + [join_id, id_, output_] + } + // | view{"chInitialOutput: ${it.take(3)}"} + + // join the output [prev_id, new_id, output] with the previous state [prev_id, state, ...] + def chNewState = safeJoin(chInitialOutput, chRunFiltered, key_) + // input tuple format: [join_id, id, output, prev_state, ...] + // output tuple format: [join_id, id, new_state, ...] + | map{ tup -> + def new_state = workflowArgs.toState(tup.drop(1).take(3)) + tup.take(2) + [new_state] + tup.drop(4) + } + + if (workflowArgs.auto.publish == "state") { + def chPublish = chNewState + // input tuple format: [join_id, id, new_state, ...] + // output tuple format: [join_id, id, new_state] + | map{ tup -> + tup.take(3) + } + + safeJoin(chPublish, chArgsWithDefaults, key_) + // input tuple format: [join_id, id, new_state, orig_state, ...] + // output tuple format: [id, new_state, orig_state] + | map { tup -> + tup.drop(1).take(3) + } + | publishStatesByConfig(key: key_, config: meta.config) + } + + // remove join_id and meta + chReturn = chNewState + | map { tup -> + // input tuple format: [join_id, id, new_state, ...] + // output tuple format: [id, new_state, ...] + tup.drop(1) + } + | _debug(workflowArgs, "output") + | concat(chPassthrough) + + emit: chReturn + } + + def wf = workflowInstance.cloneWithName(key_) + + // add factory function + wf.metaClass.run = { runArgs -> + workflowFactory(runArgs, workflowArgs, meta) + } + // add config to module for later introspection + wf.metaClass.config = meta.config + + return wf +} + +nextflow.enable.dsl=2 + +// START COMPONENT-SPECIFIC CODE + +// create meta object +meta = [ + "resources_dir": moduleDir.toRealPath().normalize(), + "config": processConfig(readJsonBlob('''{ + "name" : "create_eset", + "namespace" : "eset", + "version" : "main", + "argument_groups" : [ + { + "name" : "Arguments", + "arguments" : [ + { + "type" : "file", + "name" : "--pDataFile", + "must_exist" : true, + "create_parent" : true, + "required" : true, + "direction" : "input", + "multiple" : false, + "multiple_sep" : ";" + }, + { + "type" : "file", + "name" : "--fDataFile", + "must_exist" : true, + "create_parent" : true, + "required" : true, + "direction" : "input", + "multiple" : false, + "multiple_sep" : ";" + }, + { + "type" : "file", + "name" : "--mappingDir", + "must_exist" : true, + "create_parent" : true, + "required" : true, + "direction" : "input", + "multiple" : true, + "multiple_sep" : ";" + }, + { + "type" : "string", + "name" : "--poolName", + "required" : true, + "direction" : "input", + "multiple" : false, + "multiple_sep" : ";" + }, + { + "type" : "file", + "name" : "--output", + "default" : [ + "eset.$id.rds" + ], + "must_exist" : true, + "create_parent" : true, + "required" : true, + "direction" : "output", + "multiple" : false, + "multiple_sep" : ";" + } + ] + } + ], + "resources" : [ + { + "type" : "r_script", + "path" : "script.R", + "is_executable" : true + }, + { + "type" : "file", + "path" : "/src/config/labels.config", + "dest" : "nextflow_labels.config" + } + ], + "test_resources" : [ + { + "type" : "r_script", + "path" : "test.R", + "is_executable" : true + }, + { + "type" : "file", + "path" : "test_data/pData.tsv" + }, + { + "type" : "file", + "path" : "test_data/fData.tsv" + }, + { + "type" : "file", + "path" : "test_data/mapping_dir" + } + ], + "status" : "enabled", + "requirements" : { + "commands" : [ + "ps" + ] + }, + "license" : "MIT", + "links" : { + "repository" : "https://github.com/viash-hub/htrnaseq" + }, + "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" : "r-base:4.3.0", + "target_registry" : "images.viash-hub.com", + "target_tag" : "main", + "namespace_separator" : "/", + "setup" : [ + { + "type" : "apt", + "packages" : [ + "libcurl4-openssl-dev", + "libssl-dev", + "libxml2-dev", + "libfftw3-dev", + "libfontconfig1-dev", + "libfreetype-dev", + "libhdf5-dev", + "bzip2", + "libharfbuzz-dev", + "libfribidi-dev", + "libtiff-dev", + "libgsl-dev", + "libcairo-dev", + "libudunits2-dev", + "procps" + ], + "interactive" : false + }, + { + "type" : "r", + "cran" : [ + "nlcv" + ], + "bioc" : [ + "Biobase", + "limma", + "a4Core", + "MLInterfaces", + "multtest" + ], + "script" : [ + "remotes::install_url(\\"https://cran.r-project.org/src/contrib/Archive/Matrix/Matrix_1.6-5.tar.gz\\", dependencies=TRUE, upgrade_dependencies=FALSE);\\\\\nremotes::install_url(\\"https://cran.r-project.org/src/contrib/Archive/Seurat/Seurat_4.4.0.tar.gz\\", repos=BiocManager::repositories(), dependencies=TRUE, upgrade_dependencies=FALSE)\\\\\n" + ], + "bioc_force_install" : false + } + ] + }, + { + "type" : "native", + "id" : "native" + } + ], + "build_info" : { + "config" : "/workdir/root/repo/src/eset/create_eset/config.vsh.yaml", + "runner" : "nextflow", + "engine" : "docker|native", + "output" : "target/nextflow/eset/create_eset", + "viash_version" : "0.9.0", + "git_commit" : "65dd41d8b1b4a307735c72320c96c0880c75f17f", + "git_remote" : "https://x-access-token:ghs_McZDF0yobnnHmOEb2Q4JaaB3pzr9mz1VbIOs@github.com/viash-hub/htrnaseq" + }, + "package_config" : { + "name" : "htrnaseq", + "version" : "main", + "description" : "High-throughput pipeline [WIP]\n", + "info" : { + "test_resources" : [ + { + "path" : "gs://viash-hub-test-data/htrnaseq/v1/", + "dest" : "resources_test" + } + ] + }, + "viash_version" : "0.9.0", + "source" : "src", + "target" : "target", + "config_mods" : [ + ".requirements.commands := ['ps']\n.runners[.type == 'nextflow'].config.script := 'includeConfig(\\"nextflow_labels.config\\")'\n.resources += {path: '/src/config/labels.config', dest: 'nextflow_labels.config'}\n", + ".engines += { type: \\"native\\" }", + ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'", + ".engines[.type == 'docker'].target_tag := 'main'" + ], + "keywords" : [ + "bioinformatics", + "sequence", + "high-throughput", + "mapping", + "counting", + "pipeline" + ], + "license" : "MIT", + "organization" : "vsh", + "links" : { + "repository" : "https://github.com/viash-hub/htrnaseq", + "issue_tracker" : "https://github.com/viash-hub/htrnaseq/issues" + } + } +}''')) +] + +// resolve dependencies dependencies (if any) + + +// inner workflow +// inner workflow hook +def innerWorkflowFactory(args) { + def rawScript = '''set -e +tempscript=".viash_script.sh" +cat > "$tempscript" << VIASHMAIN +library(Biobase) +library(data.table) +library(nlcv) +library(Matrix) +library(Seurat) + +### VIASH START +# The following code has been auto-generated by Viash. +# treat warnings as errors +.viash_orig_warn <- options(warn = 2) + +par <- list( + "pDataFile" = $( if [ ! -z ${VIASH_PAR_PDATAFILE+x} ]; then echo -n "'"; echo -n "$VIASH_PAR_PDATAFILE" | sed "s#['\\\\]#\\\\\\\\&#g"; echo "'"; else echo NULL; fi ), + "fDataFile" = $( if [ ! -z ${VIASH_PAR_FDATAFILE+x} ]; then echo -n "'"; echo -n "$VIASH_PAR_FDATAFILE" | sed "s#['\\\\]#\\\\\\\\&#g"; echo "'"; else echo NULL; fi ), + "mappingDir" = $( if [ ! -z ${VIASH_PAR_MAPPINGDIR+x} ]; then echo -n "strsplit('"; echo -n "$VIASH_PAR_MAPPINGDIR" | sed "s#['\\\\]#\\\\\\\\&#g"; echo "', split = ';')[[1]]"; else echo NULL; fi ), + "poolName" = $( if [ ! -z ${VIASH_PAR_POOLNAME+x} ]; then echo -n "'"; echo -n "$VIASH_PAR_POOLNAME" | sed "s#['\\\\]#\\\\\\\\&#g"; echo "'"; else echo NULL; fi ), + "output" = $( if [ ! -z ${VIASH_PAR_OUTPUT+x} ]; then echo -n "'"; echo -n "$VIASH_PAR_OUTPUT" | sed "s#['\\\\]#\\\\\\\\&#g"; echo "'"; else echo NULL; fi ) +) +meta <- list( + "name" = $( if [ ! -z ${VIASH_META_NAME+x} ]; then echo -n "'"; echo -n "$VIASH_META_NAME" | sed "s#['\\\\]#\\\\\\\\&#g"; echo "'"; else echo NULL; fi ), + "functionality_name" = $( if [ ! -z ${VIASH_META_FUNCTIONALITY_NAME+x} ]; then echo -n "'"; echo -n "$VIASH_META_FUNCTIONALITY_NAME" | sed "s#['\\\\]#\\\\\\\\&#g"; echo "'"; else echo NULL; fi ), + "resources_dir" = $( if [ ! -z ${VIASH_META_RESOURCES_DIR+x} ]; then echo -n "'"; echo -n "$VIASH_META_RESOURCES_DIR" | sed "s#['\\\\]#\\\\\\\\&#g"; echo "'"; else echo NULL; fi ), + "executable" = $( if [ ! -z ${VIASH_META_EXECUTABLE+x} ]; then echo -n "'"; echo -n "$VIASH_META_EXECUTABLE" | sed "s#['\\\\]#\\\\\\\\&#g"; echo "'"; else echo NULL; fi ), + "config" = $( if [ ! -z ${VIASH_META_CONFIG+x} ]; then echo -n "'"; echo -n "$VIASH_META_CONFIG" | sed "s#['\\\\]#\\\\\\\\&#g"; echo "'"; else echo NULL; fi ), + "temp_dir" = $( if [ ! -z ${VIASH_META_TEMP_DIR+x} ]; then echo -n "'"; echo -n "$VIASH_META_TEMP_DIR" | sed "s#['\\\\]#\\\\\\\\&#g"; echo "'"; else echo NULL; fi ), + "cpus" = $( if [ ! -z ${VIASH_META_CPUS+x} ]; then echo -n "as.integer('"; echo -n "$VIASH_META_CPUS" | sed "s#['\\\\]#\\\\\\\\&#g"; echo "')"; else echo NULL; fi ), + "memory_b" = $( if [ ! -z ${VIASH_META_MEMORY_B+x} ]; then echo -n "bit64::as.integer64('"; echo -n "$VIASH_META_MEMORY_B" | sed "s#['\\\\]#\\\\\\\\&#g"; echo "')"; else echo NULL; fi ), + "memory_kb" = $( if [ ! -z ${VIASH_META_MEMORY_KB+x} ]; then echo -n "bit64::as.integer64('"; echo -n "$VIASH_META_MEMORY_KB" | sed "s#['\\\\]#\\\\\\\\&#g"; echo "')"; else echo NULL; fi ), + "memory_mb" = $( if [ ! -z ${VIASH_META_MEMORY_MB+x} ]; then echo -n "bit64::as.integer64('"; echo -n "$VIASH_META_MEMORY_MB" | sed "s#['\\\\]#\\\\\\\\&#g"; echo "')"; else echo NULL; fi ), + "memory_gb" = $( if [ ! -z ${VIASH_META_MEMORY_GB+x} ]; then echo -n "bit64::as.integer64('"; echo -n "$VIASH_META_MEMORY_GB" | sed "s#['\\\\]#\\\\\\\\&#g"; echo "')"; else echo NULL; fi ), + "memory_tb" = $( if [ ! -z ${VIASH_META_MEMORY_TB+x} ]; then echo -n "bit64::as.integer64('"; echo -n "$VIASH_META_MEMORY_TB" | sed "s#['\\\\]#\\\\\\\\&#g"; echo "')"; else echo NULL; fi ), + "memory_pb" = $( if [ ! -z ${VIASH_META_MEMORY_PB+x} ]; then echo -n "bit64::as.integer64('"; echo -n "$VIASH_META_MEMORY_PB" | sed "s#['\\\\]#\\\\\\\\&#g"; echo "')"; else echo NULL; fi ), + "memory_kib" = $( if [ ! -z ${VIASH_META_MEMORY_KIB+x} ]; then echo -n "bit64::as.integer64('"; echo -n "$VIASH_META_MEMORY_KIB" | sed "s#['\\\\]#\\\\\\\\&#g"; echo "')"; else echo NULL; fi ), + "memory_mib" = $( if [ ! -z ${VIASH_META_MEMORY_MIB+x} ]; then echo -n "bit64::as.integer64('"; echo -n "$VIASH_META_MEMORY_MIB" | sed "s#['\\\\]#\\\\\\\\&#g"; echo "')"; else echo NULL; fi ), + "memory_gib" = $( if [ ! -z ${VIASH_META_MEMORY_GIB+x} ]; then echo -n "bit64::as.integer64('"; echo -n "$VIASH_META_MEMORY_GIB" | sed "s#['\\\\]#\\\\\\\\&#g"; echo "')"; else echo NULL; fi ), + "memory_tib" = $( if [ ! -z ${VIASH_META_MEMORY_TIB+x} ]; then echo -n "bit64::as.integer64('"; echo -n "$VIASH_META_MEMORY_TIB" | sed "s#['\\\\]#\\\\\\\\&#g"; echo "')"; else echo NULL; fi ), + "memory_pib" = $( if [ ! -z ${VIASH_META_MEMORY_PIB+x} ]; then echo -n "bit64::as.integer64('"; echo -n "$VIASH_META_MEMORY_PIB" | sed "s#['\\\\]#\\\\\\\\&#g"; echo "')"; else echo NULL; fi ) +) +dep <- list( + +) + + +# restore original warn setting +options(.viash_orig_warn) +rm(.viash_orig_warn) + +### VIASH END + + +Read10X <- function(data_dir = NULL, gene_column = 2, unique_features = TRUE) { + full.data <- list() + for (i in seq_along(along.with = data_dir)) { + run <- data_dir[i] + if (!dir.exists(paths = run)) { + stop("Directory provided does not exist") + } + barcode.loc <- file.path(run, "barcodes.tsv") + gene.loc <- file.path(run, "features.tsv") + features.loc <- file.path(run, "features.tsv.gz") + matrix.loc <- file.path(run, "matrix.mtx") + pre_ver_3 <- file.exists(gene.loc) + if (!pre_ver_3) { + addgz <- function(s) { + return(paste0(s, ".gz")) + } + barcode.loc <- addgz(s = barcode.loc) + matrix.loc <- addgz(s = matrix.loc) + } + if (!file.exists(barcode.loc)) { + stop("Barcode file missing") + } + if (!pre_ver_3 && !file.exists(features.loc)) { + stop("Gene name or features file missing") + } + if (!file.exists(matrix.loc)) { + stop("Expression matrix file missing") + } + data <- readMM(file = matrix.loc) + cell.names <- readLines(barcode.loc) + if (all(grepl(pattern = "\\\\\\\\-1\\$", x = cell.names))) { + cell.names <- as.vector(x = as.character(x = sapply(X = cell.names, + FUN = ExtractField, field = 1, delim = "-"))) + } + if (is.null(x = names(x = data_dir))) { + if (i < 2) { + colnames(x = data) <- cell.names + } + else { + colnames(x = data) <- paste0(i, "_", cell.names) + } + } + else { + colnames(x = data) <- paste0(names(x = data_dir)[i], + "_", cell.names) + } + feature.names <- read.delim(file = ifelse(test = pre_ver_3, + yes = gene.loc, no = features.loc), header = FALSE, + stringsAsFactors = FALSE) + if (any(is.na(x = feature.names[, gene_column]))) { + warning("Some features names are NA. Replacing NA names with ID from the opposite column requested", + call. = FALSE, immediate. = TRUE) + na.features <- which(x = is.na(x = feature.names[, + gene_column])) + replacement.column <- ifelse(test = gene_column == + 2, yes = 1, no = 2) + feature.names[na.features, gene_column] <- feature.names[na.features, + replacement.column] + } + if (unique_features) { + fcols = ncol(x = feature.names) + if (fcols < gene_column) { + stop(paste0("gene_column was set to ", gene_column, + " but feature.tsv.gz (or genes.tsv) only has ", + fcols, " columns.", " Try setting the gene_column ", + "argument to a value <= to ", + fcols, ".")) + } + rownames(x = data) <- make.unique(names = feature.names[, + gene_column]) + } + if (ncol(x = feature.names) > 2) { + data_types <- factor(x = feature.names\\$V3) + lvls <- levels(x = data_types) + if (length(x = lvls) > 1 && length(x = full.data) == 0) { + message(paste0("10X data contains more than one type and is ", + "being returned as a list containing matrices ", + "of each type.")) + } + expr_name <- "Gene Expression" + if (expr_name %in% lvls) { + lvls <- c(expr_name, lvls[-which(x = lvls == + expr_name)]) + } + data <- lapply(X = lvls, FUN = function(l) { + return(data[data_types == l, , drop = FALSE]) + }) + names(x = data) <- lvls + } else { + data <- list(data) + } + full.data[[length(x = full.data) + 1]] <- data + } + list_of_data <- list() + for (j in 1:length(x = full.data[[1]])) { + list_of_data[[j]] <- do.call(cbind, lapply(X = full.data, + FUN = \\`[[\\`, j)) + list_of_data[[j]] <- as(object = list_of_data[[j]], Class = "CsparseMatrix") + } + names(x = list_of_data) <- names(x = full.data[[1]]) + if (length(x = list_of_data) == 1) { + return(list_of_data[[1]]) + } else { + return(list_of_data) + } +} + +match_features <- function(exprs_matrix, fdata) { + + identical_features <- all(rownames(exprs_matrix) == rownames(fdata)) + + if (nrow(exprs_matrix) != nrow(fdata) || !identical_features) { + message(paste0("Features in 'fData' and expression matrix differ. ", + "Only matching features are returned.")) + } + + features <- intersect(rownames(exprs_matrix), rownames(fdata)) + exprs_matrix <- exprs_matrix[which(rownames(exprs_matrix) %in% features), ] + fdata <- fdata[which(rownames(fdata) %in% features), ] + + fdata[, seq_len(ncol(fdata))] <- lapply(fdata[, seq_len(ncol(fdata)), drop = FALSE], as.character) + # order features in exprs mat according to fdata + exprs_matrix <- exprs_matrix[match(rownames(fdata), rownames(exprs_matrix)), ] + + list(exprs_matrix = exprs_matrix, fdata = fdata) + +} + + +create_pdata <- function(sample_file, pool_name, barcodes) { + cols_to_remove <- c("SampleFileName", "Output", "Measure", "Strandedness") + pData <- sample_file[, !colnames(sample_file) %in% cols_to_remove, + drop = FALSE] + rownames(pData) <- lapply(sample_file\\$WellBC, + \\\\(x) paste(pool_name, x, sep = "_")) + # pData[, ] <- lapply(pData, as.factor) + pData\\$PoolName <- pool_name + pData <- pData[match(barcodes, pData\\$WellBC), ] + return(pData) +} + +check_sample_file <- function(mapping_dir, sample_file){ + + message("Checking sample annotation:") + + requireNamespace("tools") + mapping_dir <- unlist(lapply(mapping_dir, function(x) { + if (!dir.exists(x)) { + stop(sprintf(paste0("Could not find directory ", + "provided in 'mappingDir' argument (%s)."), x)) + } + tools::file_path_as_absolute(x) + })) + + + # additional check for STARsolo + check_STARsolo_output <- function(x) { + files <- c("barcodes.tsv", "features.tsv", "matrix.mtx") + test <- list.files(x) %in% c(files, paste0(files, ".gz")) + length(test) != 0 && all(test) + } + + + if (!"WellBC" %in% colnames(sample_file)) { + stop(paste0("STARsolo output is used. The sample annotation must ", + "contain 'WellBC' column providing cell barcodes.")) + } + + mapping_dir <- unique(mapping_dir) + all_STARsolo_files_present <- all( + unlist( + lapply(mapping_dir, function(x) { + check_STARsolo_output(x) + }) + ) + ) + if (!all_STARsolo_files_present) { + stop(paste0("Could not find files: 'barcodes', 'features' and 'matrix'", + " for STARsolo output. Please check 'mappingDir' argument.")) + } + + message("- 'SampleFileName' column - OK") + + + + list(sample_expression_files = mapping_dir) +} + +create_exprs_matrix <- function(exprs_matrix_path, exprs_file_paths, + output, measure, col_names, cell_barcodes) { + + read_matrix <- Read10X(data_dir = exprs_file_paths, gene_column = 1) + read_matrix <- read_matrix[, which(colSums(read_matrix) != 0)] + # keep index of feature names containing "_" because Seurat + #changes them to "-" and they no longer match with fdata[, "gene_id"] + idx <- grep("_", rownames(read_matrix)) + + requireNamespace("Seurat") + seurat_object <- Seurat::CreateSeuratObject(counts = read_matrix) + + exprs_matrix <- as.matrix(seurat_object[['RNA']]@counts) + # replace "-" with "_" for features with "_" + # before converting to Seurat object + rownames(exprs_matrix)[idx] <- gsub("-", "_", rownames(exprs_matrix)[idx]) + requireNamespace("stringr") + exprs_matrix <- exprs_matrix[, stringr::str_detect(colnames(exprs_matrix), + paste(cell_barcodes, collapse = "|"))] + + + # check if rownames are ENSEMBL and remove version suffix + isENSEMBL <- all(grepl("ENS", rownames(exprs_matrix))) + if (isENSEMBL) { + # do not use gsub("(.+)[.]\\\\\\\\d+", "\\\\\\\\1", rownames(exprs_matrix)), + # so that ENS000000.1_PAR_Y can be kept + rownames(exprs_matrix) <- gsub("\\\\\\\\.\\\\\\\\d+\\$", "", rownames(exprs_matrix)) + } + + + colnames(exprs_matrix) <- col_names + + exprs_matrix +} + +create_eset <- function(feature_annotation_path, + sample_annotation_path, + mapping_dir, + barcodes, + output_path, + pool_name, + exprs_matrix_path = NULL, + path = NULL, + add_eset_annotation = NULL) { + if (!file.exists(feature_annotation_path)) { + stop("Could not find feature annotation at '", feature_annotation_path, "'") + } + + if (!file.exists(sample_annotation_path)) { + stop("Could not find sample annotation at '", sample_annotation_path, "'") + } + + if(!is.null(exprs_matrix_path)) { + if(!file.exists(exprs_matrix_path)) { + stop("Could not find expression matrix at '", exprs_matrix_path, "'") + } + } + + if(!is.null(path)) { + if(!dir.exists(path)) { + stop("Provided 'path': '", path, "' does not exist.") + } + } + + ##### Import annotation files ##### + message("Importing feature annotation") + fdata_file <- read.table(feature_annotation_path, header = TRUE, + sep = "\\\\t", quote = "\\\\"", + comment.char = "", stringsAsFactors = FALSE) + + # for backwards compatibility + if("ENSEMBL" %in% colnames(fdata_file) && !all(grepl("ENS", fdata_file[, "ENSEMBL"])) & !"gene_id" %in% colnames(fdata_file)) { + colnames(fdata_file)[which(colnames(fdata_file) == "ENSEMBL")] <- "gene_id" + } + + # Check gene annotation + if(!"gene_id" %in% colnames(fdata_file)) + stop("'gene_id' column with unique feature identifiers must be present in 'feature_annotation_path'.") + + # check if duplicated ids are present + if(any(duplicated(fdata_file\\$gene_id))) + stop("Duplicated features ids are not allowed. Please check the 'gene_id' column in 'feature_annotation_path'.") + + message("Importing sample annotation") + sample_file <- read.table(sample_annotation_path, header = TRUE, + sep = "\\\\t", quote = "\\\\"", + comment.char = "", stringsAsFactors = FALSE) + # Check sample annotation + check_sample_file_list <- check_sample_file(mapping_dir = mapping_dir, + sample_file = sample_file) + output <- "STARsolo" + measure <- "counts" + sample_expression_files <- check_sample_file_list\\$sample_expression_files + + ##### Create phenodata ##### + pdata_eset <- create_pdata(sample_file = sample_file, pool_name = pool_name, + barcodes = barcodes) + + ##### Create expression matrix ##### + message("Creating expression matrix") + + exprs_matrix_eset <- create_exprs_matrix( + exprs_matrix_path = exprs_matrix_path, + exprs_file_paths = sample_expression_files, + output = output, + measure = measure, + col_names = rownames(pdata_eset), + cell_barcodes = barcodes + ) + + + ##### Create featuredata ##### + message("Creating feature data") + + fdata_eset <- fdata_file + rownames(fdata_eset) <- fdata_eset[, "gene_id"] + + # intersect features between exprs matrix and fdata + feature_files <- match_features(exprs_matrix = exprs_matrix_eset, + fdata = fdata_eset) + + fdata_eset <- feature_files\\$fdata + exprs_matrix_eset <- feature_files\\$exprs_matrix + + ##### Create eSet ##### + message("Creating eset") + + if (nrow(pdata_eset) != ncol(exprs_matrix_eset)) { + stop("nrow(pData) and ncol(exprsMatrix) differ") + } + + if (nrow(fdata_eset) != nrow(exprs_matrix_eset)) { + stop("nrow(fData) and nrow(exprsMatrix) differ") + } + + if (!all(rownames(pdata_eset) == colnames(exprs_matrix_eset))) { + stop("rownames(pData) and colnames(exprsMatrix) differ") + } + + if (!all(rownames(fdata_eset) == rownames(exprs_matrix_eset))) { + stop("rownames(fData) and rownames(exprsMatrix) differ") + } + + if (!inherits(exprs_matrix_eset, "matrix")) { + stop("exprsMatrix must be of class 'matrix'") + } + + + + additional_info <- paste0("Additional information about eSet \\\\n", + " Expression matrix created from ", + output, " output. \\\\n", + " Expression matrix contains non-transformed ", + ifelse(output %in% c("STAR", "STARsolo"), + "counts", + ifelse(measure == "expected_count", + "counts", measure)), ".") + + + if (isTRUE(!is.null(add_eset_annotation) & + is.character(add_eset_annotation))) { + additional_info <- paste0(additional_info, "\\\\n", " ", add_eset_annotation) + } + + fdata_eset <- new("AnnotatedDataFrame", data = fdata_eset) + pdata_eset <- new("AnnotatedDataFrame", data = pdata_eset) + + requireNamespace("Biobase") + eset <- Biobase::ExpressionSet(assayData = exprs_matrix_eset, + phenoData = pdata_eset, + featureData = fdata_eset, + annotation = additional_info) + + + saveRDS(eset, file = output_path) + + message(paste0("eset created succesfully for ", ncol(eset), + " samples and ", nrow(eset), + " genes and saved at ", output_path, ".")) + + eset +} + + +p_data_file <- par\\$pDataFile +f_data_file <- par\\$fDataFile +pool_name <- par\\$poolName +mapping_dir <- lapply(par\\$mappingDir, + \\\\(x) file.path(x, "Solo.out", "Gene", "raw")) + +get_barcode_from_mapping_dir <- function(raw_dir) { + barcodes_file <- file.path(raw_dir, "barcodes.tsv") + if (!file.exists(barcodes_file)) { + stop(paste0("Expected the 'Solo.out/Gene/raw' directory at ", + raw_dir, " to contain a 'barcodes.tsv' file.")) + } + barcodes <- readLines(barcodes_file) + if (length(barcodes) != 1) { + stop(paste0("A single STAR Solo folder should only have ", + "mapped one (1) barcode, but found '", + length(barcodes), "'for mapping directory ", raw_dir)) + } + return(barcodes) +} + +barcodes <- lapply(mapping_dir, get_barcode_from_mapping_dir) + +print(paste0("mappingDir: ", mapping_dir)) +print(paste0("pDataFile: ", p_data_file)) +print(paste0("fDataFile: ", f_data_file)) +print(paste0("poolName: ", pool_name)) +print(paste0("barcodes: ", barcodes)) + + + +# CREATE ESET WITH RAW UMI COUNTS + +eset <- create_eset(feature_annotation_path = f_data_file, + sample_annotation_path = p_data_file, + mapping_dir = mapping_dir, + barcodes = barcodes, + output_path = par\\$output, + pool_name = pool_name, + path = NULL, + exprs_matrix_path = NULL) +VIASHMAIN +Rscript "$tempscript" +''' + + return vdsl3WorkflowFactory(args, meta, rawScript) +} + + + +/** + * Generate a workflow for VDSL3 modules. + * + * This function is called by the workflowFactory() function. + * + * Input channel: [id, input_map] + * Output channel: [id, output_map] + * + * Internally, this workflow will convert the input channel + * to a format which the Nextflow module will be able to handle. + */ +def vdsl3WorkflowFactory(Map args, Map meta, String rawScript) { + def key = args["key"] + def processObj = null + + workflow processWf { + take: input_ + main: + + if (processObj == null) { + processObj = _vdsl3ProcessFactory(args, meta, rawScript) + } + + output_ = input_ + | map { tuple -> + def id = tuple[0] + def data_ = tuple[1] + + if (workflow.stubRun) { + // add id if missing + data_ = [id: 'stub'] + data_ + } + + // process input files separately + def inputPaths = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "input" } + .collect { par -> + def val = data_.containsKey(par.plainName) ? data_[par.plainName] : [] + def inputFiles = [] + if (val == null) { + inputFiles = [] + } else if (val instanceof List) { + inputFiles = val + } else if (val instanceof Path) { + inputFiles = [ val ] + } else { + inputFiles = [] + } + if (!workflow.stubRun) { + // throw error when an input file doesn't exist + inputFiles.each{ file -> + assert file.exists() : + "Error in module '${key}' id '${id}' argument '${par.plainName}'.\n" + + " Required input file does not exist.\n" + + " Path: '$file'.\n" + + " Expected input file to exist" + } + } + inputFiles + } + + // remove input files + def argsExclInputFiles = meta.config.allArguments + .findAll { (it.type != "file" || it.direction != "input") && data_.containsKey(it.plainName) } + .collectEntries { par -> + def parName = par.plainName + def val = data_[parName] + if (par.multiple && val instanceof Collection) { + val = val.join(par.multiple_sep) + } + if (par.direction == "output" && par.type == "file") { + val = val + .replaceAll('\\$id', id) + .replaceAll('\\$\\{id\\}', id) + .replaceAll('\\$key', key) + .replaceAll('\\$\\{key\\}', key) + } + [parName, val] + } + + [ id ] + inputPaths + [ argsExclInputFiles, meta.resources_dir ] + } + | processObj + | map { output -> + def outputFiles = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "output" } + .indexed() + .collectEntries{ index, par -> + def out = output[index + 1] + // strip dummy '.exitcode' file from output (see nextflow-io/nextflow#2678) + if (!out instanceof List || out.size() <= 1) { + if (par.multiple) { + out = [] + } else { + assert !par.required : + "Error in module '${key}' id '${output[0]}' argument '${par.plainName}'.\n" + + " Required output file is missing" + out = null + } + } else if (out.size() == 2 && !par.multiple) { + out = out[1] + } else { + out = out.drop(1) + } + [ par.plainName, out ] + } + + // drop null outputs + outputFiles.removeAll{it.value == null} + + [ output[0], outputFiles ] + } + emit: output_ + } + + return processWf +} + +// depends on: session? +def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) { + // autodetect process key + def wfKey = workflowArgs["key"] + def procKeyPrefix = "${wfKey}_process" + def scriptMeta = nextflow.script.ScriptMeta.current() + def existing = scriptMeta.getProcessNames().findAll{it.startsWith(procKeyPrefix)} + def numbers = existing.collect{it.replace(procKeyPrefix, "0").toInteger()} + def newNumber = (numbers + [-1]).max() + 1 + + def procKey = newNumber == 0 ? procKeyPrefix : "$procKeyPrefix$newNumber" + + if (newNumber > 0) { + log.warn "Key for module '${wfKey}' is duplicated.\n", + "If you run a component multiple times in the same workflow,\n" + + "it's recommended you set a unique key for every call,\n" + + "for example: ${wfKey}.run(key: \"foo\")." + } + + // subset directives and convert to list of tuples + def drctv = workflowArgs.directives + + // TODO: unit test the two commands below + // convert publish array into tags + def valueToStr = { val -> + // ignore closures + if (val instanceof CharSequence) { + if (!val.matches('^[{].*[}]$')) { + '"' + val + '"' + } else { + val + } + } else if (val instanceof List) { + "[" + val.collect{valueToStr(it)}.join(", ") + "]" + } else if (val instanceof Map) { + "[" + val.collect{k, v -> k + ": " + valueToStr(v)}.join(", ") + "]" + } else { + val.inspect() + } + } + + // multiple entries allowed: label, publishdir + def drctvStrs = drctv.collect { key, value -> + if (key in ["label", "publishDir"]) { + value.collect{ val -> + if (val instanceof Map) { + "\n$key " + val.collect{ k, v -> k + ": " + valueToStr(v) }.join(", ") + } else if (val == null) { + "" + } else { + "\n$key " + valueToStr(val) + } + }.join() + } else if (value instanceof Map) { + "\n$key " + value.collect{ k, v -> k + ": " + valueToStr(v) }.join(", ") + } else { + "\n$key " + valueToStr(value) + } + }.join() + + def inputPaths = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "input" } + .collect { ', path(viash_par_' + it.plainName + ', stageAs: "_viash_par/' + it.plainName + '_?/*")' } + .join() + + def outputPaths = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "output" } + .collect { par -> + // insert dummy into every output (see nextflow-io/nextflow#2678) + if (!par.multiple) { + ', path{[".exitcode", args.' + par.plainName + ']}' + } else { + ', path{[".exitcode"] + args.' + par.plainName + '}' + } + } + .join() + + // TODO: move this functionality somewhere else? + if (workflowArgs.auto.transcript) { + outputPaths = outputPaths + ', path{[".exitcode", ".command*"]}' + } else { + outputPaths = outputPaths + ', path{[".exitcode"]}' + } + + // create dirs for output files (based on BashWrapper.createParentFiles) + def createParentStr = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "output" && it.create_parent } + .collect { par -> + def contents = "args[\"${par.plainName}\"] instanceof List ? args[\"${par.plainName}\"].join('\" \"') : args[\"${par.plainName}\"]" + "\${ args.containsKey(\"${par.plainName}\") ? \"mkdir_parent '\" + escapeText(${contents}) + \"'\" : \"\" }" + } + .join("\n") + + // construct inputFileExports + def inputFileExports = meta.config.allArguments + .findAll { it.type == "file" && it.direction.toLowerCase() == "input" } + .collect { par -> + def contents = "viash_par_${par.plainName} instanceof List ? viash_par_${par.plainName}.join(\"${par.multiple_sep}\") : viash_par_${par.plainName}" + "\n\${viash_par_${par.plainName}.empty ? \"\" : \"export VIASH_PAR_${par.plainName.toUpperCase()}='\" + escapeText(${contents}) + \"'\"}" + } + + // NOTE: if using docker, use /tmp instead of tmpDir! + def tmpDir = java.nio.file.Paths.get( + System.getenv('NXF_TEMP') ?: + System.getenv('VIASH_TEMP') ?: + System.getenv('VIASH_TMPDIR') ?: + System.getenv('VIASH_TEMPDIR') ?: + System.getenv('VIASH_TMP') ?: + System.getenv('TEMP') ?: + System.getenv('TMPDIR') ?: + System.getenv('TEMPDIR') ?: + System.getenv('TMP') ?: + '/tmp' + ).toAbsolutePath() + + // construct stub + def stub = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "output" } + .collect { par -> + "\${ args.containsKey(\"${par.plainName}\") ? \"touch2 \\\"\" + (args[\"${par.plainName}\"] instanceof String ? args[\"${par.plainName}\"].replace(\"_*\", \"_0\") : args[\"${par.plainName}\"].join('\" \"')) + \"\\\"\" : \"\" }" + } + .join("\n") + + // escape script + def escapedScript = rawScript.replace('\\', '\\\\').replace('$', '\\$').replace('"""', '\\"\\"\\"') + + // publishdir assert + def assertStr = (workflowArgs.auto.publish == true) || workflowArgs.auto.transcript ? + """\nassert task.publishDir.size() > 0: "if auto.publish is true, params.publish_dir needs to be defined.\\n Example: --publish_dir './output/'" """ : + "" + + // generate process string + def procStr = + """nextflow.enable.dsl=2 + | + |def escapeText = { s -> s.toString().replaceAll("'", "'\\\"'\\\"'") } + |process $procKey {$drctvStrs + |input: + | tuple val(id)$inputPaths, val(args), path(resourcesDir, stageAs: ".viash_meta_resources") + |output: + | tuple val("\$id")$outputPaths, optional: true + |stub: + |\"\"\" + |touch2() { mkdir -p "\\\$(dirname "\\\$1")" && touch "\\\$1" ; } + |$stub + |\"\"\" + |script:$assertStr + |def parInject = args + | .findAll{key, value -> value != null} + | .collect{key, value -> "export VIASH_PAR_\${key.toUpperCase()}='\${escapeText(value)}'"} + | .join("\\n") + |\"\"\" + |# meta exports + |export VIASH_META_RESOURCES_DIR="\${resourcesDir}" + |export VIASH_META_TEMP_DIR="${['docker', 'podman', 'charliecloud'].any{ it == workflow.containerEngine } ? '/tmp' : tmpDir}" + |export VIASH_META_NAME="${meta.config.name}" + |# export VIASH_META_EXECUTABLE="\\\$VIASH_META_RESOURCES_DIR/\\\$VIASH_META_NAME" + |export VIASH_META_CONFIG="\\\$VIASH_META_RESOURCES_DIR/.config.vsh.yaml" + |\${task.cpus ? "export VIASH_META_CPUS=\$task.cpus" : "" } + |\${task.memory?.bytes != null ? "export VIASH_META_MEMORY_B=\$task.memory.bytes" : "" } + |if [ ! -z \\\${VIASH_META_MEMORY_B+x} ]; then + | export VIASH_META_MEMORY_KB=\\\$(( (\\\$VIASH_META_MEMORY_B+999) / 1000 )) + | export VIASH_META_MEMORY_MB=\\\$(( (\\\$VIASH_META_MEMORY_KB+999) / 1000 )) + | export VIASH_META_MEMORY_GB=\\\$(( (\\\$VIASH_META_MEMORY_MB+999) / 1000 )) + | export VIASH_META_MEMORY_TB=\\\$(( (\\\$VIASH_META_MEMORY_GB+999) / 1000 )) + | export VIASH_META_MEMORY_PB=\\\$(( (\\\$VIASH_META_MEMORY_TB+999) / 1000 )) + | export VIASH_META_MEMORY_KIB=\\\$(( (\\\$VIASH_META_MEMORY_B+1023) / 1024 )) + | export VIASH_META_MEMORY_MIB=\\\$(( (\\\$VIASH_META_MEMORY_KIB+1023) / 1024 )) + | export VIASH_META_MEMORY_GIB=\\\$(( (\\\$VIASH_META_MEMORY_MIB+1023) / 1024 )) + | export VIASH_META_MEMORY_TIB=\\\$(( (\\\$VIASH_META_MEMORY_GIB+1023) / 1024 )) + | export VIASH_META_MEMORY_PIB=\\\$(( (\\\$VIASH_META_MEMORY_TIB+1023) / 1024 )) + |fi + | + |# meta synonyms + |export VIASH_TEMP="\\\$VIASH_META_TEMP_DIR" + |export TEMP_DIR="\\\$VIASH_META_TEMP_DIR" + | + |# create output dirs if need be + |function mkdir_parent { + | for file in "\\\$@"; do + | mkdir -p "\\\$(dirname "\\\$file")" + | done + |} + |$createParentStr + | + |# argument exports${inputFileExports.join()} + |\$parInject + | + |# process script + |${escapedScript} + |\"\"\" + |} + |""".stripMargin() + + // TODO: print on debug + // if (workflowArgs.debug == true) { + // println("######################\n$procStr\n######################") + // } + + // write process to temp file + def tempFile = java.nio.file.Files.createTempFile("viash-process-${procKey}-", ".nf") + addShutdownHook { java.nio.file.Files.deleteIfExists(tempFile) } + tempFile.text = procStr + + // create process from temp file + def binding = new nextflow.script.ScriptBinding([:]) + def session = nextflow.Nextflow.getSession() + def parser = new nextflow.script.ScriptParser(session) + .setModule(true) + .setBinding(binding) + def moduleScript = parser.runScript(tempFile) + .getScript() + + // register module in meta + def module = new nextflow.script.IncludeDef.Module(name: procKey) + scriptMeta.addModule(moduleScript, module.name, module.alias) + + // retrieve and return process from meta + return scriptMeta.getProcess(procKey) +} + +// defaults +meta["defaults"] = [ + // key to be used to trace the process and determine output names + key: null, + + // fixed arguments to be passed to script + args: [:], + + // default directives + directives: readJsonBlob('''{ + "container" : { + "registry" : "images.viash-hub.com", + "image" : "vsh/htrnaseq/eset/create_eset", + "tag" : "main" + }, + "tag" : "$id" +}'''), + + // auto settings + auto: readJsonBlob('''{ + "simplifyInput" : true, + "simplifyOutput" : false, + "transcript" : false, + "publish" : false +}'''), + + // Apply a map over the incoming tuple + // Example: `{ tup -> [ tup[0], [input: tup[1].output] ] + tup.drop(2) }` + map: null, + + // Apply a map over the ID element of a tuple (i.e. the first element) + // Example: `{ id -> id + "_foo" }` + mapId: null, + + // Apply a map over the data element of a tuple (i.e. the second element) + // Example: `{ data -> [ input: data.output ] }` + mapData: null, + + // Apply a map over the passthrough elements of a tuple (i.e. the tuple excl. the first two elements) + // Example: `{ pt -> pt.drop(1) }` + mapPassthrough: null, + + // Filter the channel + // Example: `{ tup -> tup[0] == "foo" }` + filter: null, + + // Choose whether or not to run the component on the tuple if the condition is true. + // Otherwise, the tuple will be passed through. + // Example: `{ tup -> tup[0] != "skip_this" }` + runIf: null, + + // Rename keys in the data field of the tuple (i.e. the second element) + // Will likely be deprecated in favour of `fromState`. + // Example: `[ "new_key": "old_key" ]` + renameKeys: null, + + // Fetch data from the state and pass it to the module without altering the current state. + // + // `fromState` should be `null`, `List[String]`, `Map[String, String]` or a function. + // + // - If it is `null`, the state will be passed to the module as is. + // - If it is a `List[String]`, the data will be the values of the state at the given keys. + // - If it is a `Map[String, String]`, the data will be the values of the state at the given keys, with the keys renamed according to the map. + // - If it is a function, the tuple (`[id, state]`) in the channel will be passed to the function, and the result will be used as the data. + // + // Example: `{ id, state -> [input: state.fastq_file] }` + // Default: `null` + fromState: null, + + // Determine how the state should be updated after the module has been run. + // + // `toState` should be `null`, `List[String]`, `Map[String, String]` or a function. + // + // - If it is `null`, the state will be replaced with the output of the module. + // - If it is a `List[String]`, the state will be updated with the values of the data at the given keys. + // - If it is a `Map[String, String]`, the state will be updated with the values of the data at the given keys, with the keys renamed according to the map. + // - If it is a function, a tuple (`[id, output, state]`) will be passed to the function, and the result will be used as the new state. + // + // Example: `{ id, output, state -> state + [counts: state.output] }` + // Default: `{ id, output, state -> output }` + toState: null, + + // Whether or not to print debug messages + // Default: `false` + debug: false +] + +// initialise default workflow +meta["workflow"] = workflowFactory([key: meta.config.name], meta.defaults, meta) + +// add workflow to environment +nextflow.script.ScriptMeta.current().addDefinition(meta.workflow) + +// anonymous workflow for running this module as a standalone +workflow { + // add id argument if it's not already in the config + // TODO: deep copy + def newConfig = deepClone(meta.config) + def newParams = deepClone(params) + + def argsContainsId = newConfig.allArguments.any{it.plainName == "id"} + if (!argsContainsId) { + def idArg = [ + 'name': '--id', + 'required': false, + 'type': 'string', + 'description': 'A unique id for every entry.', + 'multiple': false + ] + newConfig.arguments.add(0, idArg) + newConfig = processConfig(newConfig) + } + if (!newParams.containsKey("id")) { + newParams.id = "run" + } + + helpMessage(newConfig) + + channelFromParams(newParams, newConfig) + // make sure id is not in the state if id is not in the args + | map {id, state -> + if (!argsContainsId) { + [id, state.findAll{k, v -> k != "id"}] + } else { + [id, state] + } + } + | meta.workflow.run( + auto: [ publish: "state" ] + ) +} + +// END COMPONENT-SPECIFIC CODE diff --git a/target/nextflow/eset/create_eset/nextflow.config b/target/nextflow/eset/create_eset/nextflow.config new file mode 100644 index 00000000..224ef5ea --- /dev/null +++ b/target/nextflow/eset/create_eset/nextflow.config @@ -0,0 +1,124 @@ +manifest { + name = 'eset/create_eset' + mainScript = 'main.nf' + nextflowVersion = '!>=20.12.1-edge' + version = 'main' +} + +process.container = 'nextflow/bash:latest' + +// detect tempdir +tempDir = java.nio.file.Paths.get( + System.getenv('NXF_TEMP') ?: + System.getenv('VIASH_TEMP') ?: + System.getenv('TEMPDIR') ?: + System.getenv('TMPDIR') ?: + '/tmp' +).toAbsolutePath() + +profiles { + no_publish { + process { + withName: '.*' { + publishDir = [ + enabled: false + ] + } + } + } + mount_temp { + docker.temp = tempDir + podman.temp = tempDir + charliecloud.temp = tempDir + } + docker { + docker.enabled = true + // docker.userEmulation = true + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + singularity { + singularity.enabled = true + singularity.autoMounts = true + docker.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + podman { + podman.enabled = true + docker.enabled = false + singularity.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + shifter { + shifter.enabled = true + docker.enabled = false + singularity.enabled = false + podman.enabled = false + charliecloud.enabled = false + } + charliecloud { + charliecloud.enabled = true + docker.enabled = false + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + } +} + +process{ + withLabel: mem1gb { memory = 1000000000.B } + withLabel: mem2gb { memory = 2000000000.B } + withLabel: mem5gb { memory = 5000000000.B } + withLabel: mem10gb { memory = 10000000000.B } + withLabel: mem20gb { memory = 20000000000.B } + withLabel: mem50gb { memory = 50000000000.B } + withLabel: mem100gb { memory = 100000000000.B } + withLabel: mem200gb { memory = 200000000000.B } + withLabel: mem500gb { memory = 500000000000.B } + withLabel: mem1tb { memory = 1000000000000.B } + withLabel: mem2tb { memory = 2000000000000.B } + withLabel: mem5tb { memory = 5000000000000.B } + withLabel: mem10tb { memory = 10000000000000.B } + withLabel: mem20tb { memory = 20000000000000.B } + withLabel: mem50tb { memory = 50000000000000.B } + withLabel: mem100tb { memory = 100000000000000.B } + withLabel: mem200tb { memory = 200000000000000.B } + withLabel: mem500tb { memory = 500000000000000.B } + withLabel: mem1gib { memory = 1073741824.B } + withLabel: mem2gib { memory = 2147483648.B } + withLabel: mem4gib { memory = 4294967296.B } + withLabel: mem8gib { memory = 8589934592.B } + withLabel: mem16gib { memory = 17179869184.B } + withLabel: mem32gib { memory = 34359738368.B } + withLabel: mem64gib { memory = 68719476736.B } + withLabel: mem128gib { memory = 137438953472.B } + withLabel: mem256gib { memory = 274877906944.B } + withLabel: mem512gib { memory = 549755813888.B } + withLabel: mem1tib { memory = 1099511627776.B } + withLabel: mem2tib { memory = 2199023255552.B } + withLabel: mem4tib { memory = 4398046511104.B } + withLabel: mem8tib { memory = 8796093022208.B } + withLabel: mem16tib { memory = 17592186044416.B } + withLabel: mem32tib { memory = 35184372088832.B } + withLabel: mem64tib { memory = 70368744177664.B } + withLabel: mem128tib { memory = 140737488355328.B } + withLabel: mem256tib { memory = 281474976710656.B } + withLabel: mem512tib { memory = 562949953421312.B } + withLabel: cpu1 { cpus = 1 } + withLabel: cpu2 { cpus = 2 } + withLabel: cpu5 { cpus = 5 } + withLabel: cpu10 { cpus = 10 } + withLabel: cpu20 { cpus = 20 } + withLabel: cpu50 { cpus = 50 } + withLabel: cpu100 { cpus = 100 } + withLabel: cpu200 { cpus = 200 } + withLabel: cpu500 { cpus = 500 } + withLabel: cpu1000 { cpus = 1000 } +} + +includeConfig("nextflow_labels.config") diff --git a/target/nextflow/eset/create_eset/nextflow_labels.config b/target/nextflow/eset/create_eset/nextflow_labels.config new file mode 100644 index 00000000..66f5e21c --- /dev/null +++ b/target/nextflow/eset/create_eset/nextflow_labels.config @@ -0,0 +1,105 @@ +executor { + $k8s { + submitRateLimit = '10sec' + pollInterval = '1 sec' + } +} + +process { + container = 'nextflow/bash:latest' + + // default resources + memory = { 8.Gb * task.attempt } + cpus = 8 + maxForks = 36 + + // Retry for exit codes that have something to do with memory issues + errorStrategy = { task.exitStatus in 137..140 ? 'retry' : 'terminate' } + maxRetries = 3 + maxMemory = 192.GB + + // Resource labels + withLabel: verylowcpu { cpus = 2 } + withLabel: lowcpu { cpus = 8 } + withLabel: midcpu { cpus = 16 } + withLabel: highcpu { cpus = 32 } + + withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } } + withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } } + withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } } + withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } } + +} + +profiles { + // detect tempdir + tempDir = java.nio.file.Paths.get( + System.getenv('NXF_TEMP') ?: + System.getenv('VIASH_TEMP') ?: + System.getenv('TEMPDIR') ?: + System.getenv('TMPDIR') ?: + '/tmp' + ).toAbsolutePath() + + mount_temp { + docker.temp = tempDir + podman.temp = tempDir + charliecloud.temp = tempDir + } + + no_publish { + process { + withName: '.*' { + publishDir = [ + enabled: false + ] + } + } + } + + docker { + docker.fixOwnership = true + docker.enabled = true + // docker.userEmulation = true + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + + local { + // This config is for local processing. + process { + maxMemory = 25.GB + withLabel: verylowcpu { cpus = 2 } + withLabel: lowcpu { cpus = 4 } + withLabel: midcpu { cpus = 6 } + withLabel: highcpu { cpus = 12 } + + withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } } + withLabel: midmem { memory = { get_memory( 12.GB * task.attempt ) } } + withLabel: highmem { memory = { get_memory( 20.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) + } + } diff --git a/target/nextflow/eset/create_eset/nextflow_schema.json b/target/nextflow/eset/create_eset/nextflow_schema.json new file mode 100644 index 00000000..84b5f12d --- /dev/null +++ b/target/nextflow/eset/create_eset/nextflow_schema.json @@ -0,0 +1,111 @@ +{ +"$schema": "http://json-schema.org/draft-07/schema", +"title": "create_eset", +"description": "No description", +"type": "object", +"definitions": { + + + + "arguments" : { + "title": "Arguments", + "type": "object", + "description": "No description", + "properties": { + + + "pDataFile": { + "type": + "string", + "description": "Type: `file`, required. ", + "help_text": "Type: `file`, required. " + + } + + + , + "fDataFile": { + "type": + "string", + "description": "Type: `file`, required. ", + "help_text": "Type: `file`, required. " + + } + + + , + "mappingDir": { + "type": + "string", + "description": "Type: List of `file`, required, multiple_sep: `\";\"`. ", + "help_text": "Type: List of `file`, required, multiple_sep: `\";\"`. " + + } + + + , + "poolName": { + "type": + "string", + "description": "Type: `string`, required. ", + "help_text": "Type: `string`, required. " + + } + + + , + "output": { + "type": + "string", + "description": "Type: `file`, required, default: `$id.$key.output.rds`. ", + "help_text": "Type: `file`, required, default: `$id.$key.output.rds`. " + , + "default": "$id.$key.output.rds" + } + + +} +}, + + + "nextflow input-output arguments" : { + "title": "Nextflow input-output arguments", + "type": "object", + "description": "Input/output parameters for Nextflow itself. Please note that both publishDir and publish_dir are supported but at least one has to be configured.", + "properties": { + + + "publish_dir": { + "type": + "string", + "description": "Type: `string`, required, example: `output/`. Path to an output directory", + "help_text": "Type: `string`, required, example: `output/`. Path to an output directory." + + } + + + , + "param_list": { + "type": + "string", + "description": "Type: `string`, example: `my_params.yaml`. Allows inputting multiple parameter sets to initialise a Nextflow channel", + "help_text": "Type: `string`, example: `my_params.yaml`. Allows inputting multiple parameter sets to initialise a Nextflow channel. A `param_list` can either be a list of maps, a csv file, a json file, a yaml file, or simply a yaml blob.\n\n* A list of maps (as-is) where the keys of each map corresponds to the arguments of the pipeline. Example: in a `nextflow.config` file: `param_list: [ [\u0027id\u0027: \u0027foo\u0027, \u0027input\u0027: \u0027foo.txt\u0027], [\u0027id\u0027: \u0027bar\u0027, \u0027input\u0027: \u0027bar.txt\u0027] ]`.\n* A csv file should have column names which correspond to the different arguments of this pipeline. Example: `--param_list data.csv` with columns `id,input`.\n* A json or a yaml file should be a list of maps, each of which has keys corresponding to the arguments of the pipeline. Example: `--param_list data.json` with contents `[ {\u0027id\u0027: \u0027foo\u0027, \u0027input\u0027: \u0027foo.txt\u0027}, {\u0027id\u0027: \u0027bar\u0027, \u0027input\u0027: \u0027bar.txt\u0027} ]`.\n* A yaml blob can also be passed directly as a string. Example: `--param_list \"[ {\u0027id\u0027: \u0027foo\u0027, \u0027input\u0027: \u0027foo.txt\u0027}, {\u0027id\u0027: \u0027bar\u0027, \u0027input\u0027: \u0027bar.txt\u0027} ]\"`.\n\nWhen passing a csv, json or yaml file, relative path names are relativized to the location of the parameter file. No relativation is performed when `param_list` is a list of maps (as-is) or a yaml blob.", + "hidden": true + + } + + +} +} +}, +"allOf": [ + + { + "$ref": "#/definitions/arguments" + }, + + { + "$ref": "#/definitions/nextflow input-output arguments" + } +] +} diff --git a/target/nextflow/eset/create_fdata/.config.vsh.yaml b/target/nextflow/eset/create_fdata/.config.vsh.yaml new file mode 100644 index 00000000..99a19dcc --- /dev/null +++ b/target/nextflow/eset/create_fdata/.config.vsh.yaml @@ -0,0 +1,185 @@ +name: "create_fdata" +namespace: "eset" +version: "main" +argument_groups: +- name: "Arguments" + arguments: + - type: "file" + name: "--gtf" + description: "Genome annotation file in GTF format." + info: null + must_exist: true + create_parent: true + required: true + direction: "input" + multiple: false + multiple_sep: ";" + - type: "file" + name: "--output" + description: "Tab-delimited text file containing information about the 'gene'\ + \ or 'transcript'\nentries from the input GTF file. The 'transcript' entries\ + \ are used in case the source\nof the GTF was 'refGene' or 'ncbiRefSeq'. \n" + info: null + default: + - "fData.$id.txt" + must_exist: true + create_parent: true + required: false + direction: "output" + multiple: false + multiple_sep: ";" +resources: +- type: "python_script" + path: "create_fdata.py" + is_executable: true +- type: "file" + path: "nextflow_labels.config" + dest: "nextflow_labels.config" +description: "Create a fdata file\n" +test_resources: +- type: "python_script" + path: "test.py" + is_executable: true +- type: "file" + path: "test_annotation.gtf" +info: null +status: "enabled" +requirements: + commands: + - "ps" +license: "MIT" +links: + repository: "https://github.com/viash-hub/htrnaseq" +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: "main" + namespace_separator: "/" + setup: + - type: "apt" + packages: + - "procps" + interactive: false + - type: "python" + user: false + packages: + - "pandas" + upgrade: true + test_setup: + - type: "python" + user: false + packages: + - "viashpy" + upgrade: true + entrypoint: [] + cmd: null +- type: "native" + id: "native" +build_info: + config: "src/eset/create_fdata/config.vsh.yaml" + runner: "nextflow" + engine: "docker|native" + output: "target/nextflow/eset/create_fdata" + executable: "target/nextflow/eset/create_fdata/main.nf" + viash_version: "0.9.0" + git_commit: "65dd41d8b1b4a307735c72320c96c0880c75f17f" + git_remote: "https://x-access-token:ghs_McZDF0yobnnHmOEb2Q4JaaB3pzr9mz1VbIOs@github.com/viash-hub/htrnaseq" +package_config: + name: "htrnaseq" + version: "main" + description: "High-throughput pipeline [WIP]\n" + info: + test_resources: + - path: "gs://viash-hub-test-data/htrnaseq/v1/" + dest: "resources_test" + viash_version: "0.9.0" + source: "src" + target: "target" + config_mods: + - ".requirements.commands := ['ps']\n.runners[.type == 'nextflow'].config.script\ + \ := 'includeConfig(\"nextflow_labels.config\")'\n.resources += {path: '/src/config/labels.config',\ + \ dest: 'nextflow_labels.config'}\n" + - ".engines += { type: \"native\" }" + - ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'" + - ".engines[.type == 'docker'].target_tag := 'main'" + keywords: + - "bioinformatics" + - "sequence" + - "high-throughput" + - "mapping" + - "counting" + - "pipeline" + license: "MIT" + organization: "vsh" + links: + repository: "https://github.com/viash-hub/htrnaseq" + issue_tracker: "https://github.com/viash-hub/htrnaseq/issues" diff --git a/target/nextflow/eset/create_fdata/main.nf b/target/nextflow/eset/create_fdata/main.nf new file mode 100644 index 00000000..0948b6b0 --- /dev/null +++ b/target/nextflow/eset/create_fdata/main.nf @@ -0,0 +1,3681 @@ +// create_fdata main +// +// This wrapper script is auto-generated by viash 0.9.0 and is thus a derivative +// work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data +// Intuitive. +// +// The component may contain files which fall under a different license. The +// authors of this component should specify the license in the header of such +// files, or include a separate license file detailing the licenses of all included +// files. + +//////////////////////////// +// VDSL3 helper functions // +//////////////////////////// + +// helper file: 'src/main/resources/io/viash/runners/nextflow/arguments/_checkArgumentType.nf' +class UnexpectedArgumentTypeException extends Exception { + String errorIdentifier + String stage + String plainName + String expectedClass + String foundClass + + // ${key ? " in module '$key'" : ""}${id ? " id '$id'" : ""} + UnexpectedArgumentTypeException(String errorIdentifier, String stage, String plainName, String expectedClass, String foundClass) { + super("Error${errorIdentifier ? " $errorIdentifier" : ""}:${stage ? " $stage" : "" } argument '${plainName}' has the wrong type. " + + "Expected type: ${expectedClass}. Found type: ${foundClass}") + this.errorIdentifier = errorIdentifier + this.stage = stage + this.plainName = plainName + this.expectedClass = expectedClass + this.foundClass = foundClass + } +} + +/** + * Checks if the given value is of the expected type. If not, an exception is thrown. + * + * @param stage The stage of the argument (input or output) + * @param par The parameter definition + * @param value The value to check + * @param errorIdentifier The identifier to use in the error message + * @return The value, if it is of the expected type + * @throws UnexpectedArgumentTypeException If the value is not of the expected type +*/ +def _checkArgumentType(String stage, Map par, Object value, String errorIdentifier) { + // expectedClass will only be != null if value is not of the expected type + def expectedClass = null + def foundClass = null + + // todo: split if need be + + if (!par.required && value == null) { + expectedClass = null + } else if (par.multiple) { + if (value !instanceof Collection) { + value = [value] + } + + // split strings + value = value.collectMany{ val -> + if (val instanceof String) { + // collect() to ensure that the result is a List and not simply an array + val.split(par.multiple_sep).collect() + } else { + [val] + } + } + + // process globs + if (par.type == "file" && par.direction == "input") { + value = value.collect{ it instanceof String ? file(it, hidden: true) : it }.flatten() + } + + // check types of elements in list + try { + value = value.collect { listVal -> + _checkArgumentType(stage, par + [multiple: false], listVal, errorIdentifier) + } + } catch (UnexpectedArgumentTypeException e) { + expectedClass = "List[${e.expectedClass}]" + foundClass = "List[${e.foundClass}]" + } + } else if (par.type == "string") { + // cast to string if need be + if (value instanceof GString) { + value = value.toString() + } + expectedClass = value instanceof String ? null : "String" + } else if (par.type == "integer") { + // cast to integer if need be + if (value instanceof String) { + try { + value = value.toInteger() + } catch (NumberFormatException e) { + // do nothing + } + } + if (value instanceof java.math.BigInteger) { + value = value.intValue() + } + expectedClass = value instanceof Integer ? null : "Integer" + } else if (par.type == "long") { + // cast to long if need be + if (value instanceof String) { + try { + value = value.toLong() + } catch (NumberFormatException e) { + // do nothing + } + } + if (value instanceof Integer) { + value = value.toLong() + } + expectedClass = value instanceof Long ? null : "Long" + } else if (par.type == "double") { + // cast to double if need be + if (value instanceof String) { + try { + value = value.toDouble() + } catch (NumberFormatException e) { + // do nothing + } + } + if (value instanceof java.math.BigDecimal) { + value = value.doubleValue() + } + if (value instanceof Float) { + value = value.toDouble() + } + expectedClass = value instanceof Double ? null : "Double" + } else if (par.type == "boolean" | par.type == "boolean_true" | par.type == "boolean_false") { + // cast to boolean if need be + if (value instanceof String) { + def valueLower = value.toLowerCase() + if (valueLower == "true") { + value = true + } else if (valueLower == "false") { + value = false + } + } + expectedClass = value instanceof Boolean ? null : "Boolean" + } else if (par.type == "file" && (par.direction == "input" || stage == "output")) { + // cast to path if need be + if (value instanceof String) { + value = file(value, hidden: true) + } + if (value instanceof File) { + value = value.toPath() + } + expectedClass = value instanceof Path ? null : "Path" + } else if (par.type == "file" && stage == "input" && par.direction == "output") { + // cast to string if need be + if (value instanceof GString) { + value = value.toString() + } + expectedClass = value instanceof String ? null : "String" + } else { + // didn't find a match for par.type + expectedClass = par.type + } + + if (expectedClass != null) { + if (foundClass == null) { + foundClass = value.getClass().getName() + } + throw new UnexpectedArgumentTypeException(errorIdentifier, stage, par.plainName, expectedClass, foundClass) + } + + return value +} +// helper file: 'src/main/resources/io/viash/runners/nextflow/arguments/_processInputValues.nf' +Map _processInputValues(Map inputs, Map config, String id, String key) { + if (!workflow.stubRun) { + config.allArguments.each { arg -> + if (arg.required) { + assert inputs.containsKey(arg.plainName) && inputs.get(arg.plainName) != null : + "Error in module '${key}' id '${id}': required input argument '${arg.plainName}' is missing" + } + } + + inputs = inputs.collectEntries { name, value -> + def par = config.allArguments.find { it.plainName == name && (it.direction == "input" || it.type == "file") } + assert par != null : "Error in module '${key}' id '${id}': '${name}' is not a valid input argument" + + value = _checkArgumentType("input", par, value, "in module '$key' id '$id'") + + [ name, value ] + } + } + return inputs +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/arguments/_processOutputValues.nf' +Map _processOutputValues(Map outputs, Map config, String id, String key) { + if (!workflow.stubRun) { + config.allArguments.each { arg -> + if (arg.direction == "output" && arg.required) { + assert outputs.containsKey(arg.plainName) && outputs.get(arg.plainName) != null : + "Error in module '${key}' id '${id}': required output argument '${arg.plainName}' is missing" + } + } + + outputs = outputs.collectEntries { name, value -> + def par = config.allArguments.find { it.plainName == name && it.direction == "output" } + assert par != null : "Error in module '${key}' id '${id}': '${name}' is not a valid output argument" + + value = _checkArgumentType("output", par, value, "in module '$key' id '$id'") + + [ name, value ] + } + } + return outputs +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/IDChecker.nf' +class IDChecker { + final def items = [] as Set + + @groovy.transform.WithWriteLock + boolean observe(String item) { + if (items.contains(item)) { + return false + } else { + items << item + return true + } + } + + @groovy.transform.WithReadLock + boolean contains(String item) { + return items.contains(item) + } + + @groovy.transform.WithReadLock + Set getItems() { + return items.clone() + } +} +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/_checkUniqueIds.nf' + +/** + * Check if the ids are unique across parameter sets + * + * @param parameterSets a list of parameter sets. + */ +private void _checkUniqueIds(List>> parameterSets) { + def ppIds = parameterSets.collect{it[0]} + assert ppIds.size() == ppIds.unique().size() : "All argument sets should have unique ids. Detected ids: $ppIds" +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/_getChild.nf' + +// helper functions for reading params from file // +def _getChild(parent, child) { + if (child.contains("://") || java.nio.file.Paths.get(child).isAbsolute()) { + child + } else { + def parentAbsolute = java.nio.file.Paths.get(parent).toAbsolutePath().toString() + parentAbsolute.replaceAll('/[^/]*$', "/") + child + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/_parseParamList.nf' +/** + * Figure out the param list format based on the file extension + * + * @param param_list A String containing the path to the parameter list file. + * + * @return A String containing the format of the parameter list file. + */ +def _paramListGuessFormat(param_list) { + if (param_list !instanceof String) { + "asis" + } else if (param_list.endsWith(".csv")) { + "csv" + } else if (param_list.endsWith(".json") || param_list.endsWith(".jsn")) { + "json" + } else if (param_list.endsWith(".yaml") || param_list.endsWith(".yml")) { + "yaml" + } else { + "yaml_blob" + } +} + + +/** + * Read the param list + * + * @param param_list One of the following: + * - A String containing the path to the parameter list file (csv, json or yaml), + * - A yaml blob of a list of maps (yaml_blob), + * - Or a groovy list of maps (asis). + * @param config A Map of the Viash configuration. + * + * @return A List of Maps containing the parameters. + */ +def _parseParamList(param_list, Map config) { + // first determine format by extension + def paramListFormat = _paramListGuessFormat(param_list) + + def paramListPath = (paramListFormat != "asis" && paramListFormat != "yaml_blob") ? + file(param_list, hidden: true) : + null + + // get the correct parser function for the detected params_list format + def paramSets = [] + if (paramListFormat == "asis") { + paramSets = param_list + } else if (paramListFormat == "yaml_blob") { + paramSets = readYamlBlob(param_list) + } else if (paramListFormat == "yaml") { + paramSets = readYaml(paramListPath) + } else if (paramListFormat == "json") { + paramSets = readJson(paramListPath) + } else if (paramListFormat == "csv") { + paramSets = readCsv(paramListPath) + } else { + error "Format of provided --param_list not recognised.\n" + + "Found: '$paramListFormat'.\n" + + "Expected: a csv file, a json file, a yaml file,\n" + + "a yaml blob or a groovy list of maps." + } + + // data checks + assert paramSets instanceof List: "--param_list should contain a list of maps" + for (value in paramSets) { + assert value instanceof Map: "--param_list should contain a list of maps" + } + + // id is argument + def idIsArgument = config.allArguments.any{it.plainName == "id"} + + // Reformat from List to List> by adding the ID as first element of a Tuple2 + paramSets = paramSets.collect({ data -> + def id = data.id + if (!idIsArgument) { + data = data.findAll{k, v -> k != "id"} + } + [id, data] + }) + + // Split parameters with 'multiple: true' + paramSets = paramSets.collect({ id, data -> + data = _splitParams(data, config) + [id, data] + }) + + // The paths of input files inside a param_list file may have been specified relatively to the + // location of the param_list file. These paths must be made absolute. + if (paramListPath) { + paramSets = paramSets.collect({ id, data -> + def new_data = data.collectEntries{ parName, parValue -> + def par = config.allArguments.find{it.plainName == parName} + if (par && par.type == "file" && par.direction == "input") { + if (parValue instanceof Collection) { + parValue = parValue.collectMany{path -> + def x = _resolveSiblingIfNotAbsolute(path, paramListPath) + x instanceof Collection ? x : [x] + } + } else { + parValue = _resolveSiblingIfNotAbsolute(parValue, paramListPath) + } + } + [parName, parValue] + } + [id, new_data] + }) + } + + return paramSets +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/_splitParams.nf' +/** + * Split parameters for arguments that accept multiple values using their separator + * + * @param paramList A Map containing parameters to split. + * @param config A Map of the Viash configuration. This Map can be generated from the config file + * using the readConfig() function. + * + * @return A Map of parameters where the parameter values have been split into a list using + * their seperator. + */ +Map _splitParams(Map parValues, Map config){ + def parsedParamValues = parValues.collectEntries { parName, parValue -> + def parameterSettings = config.allArguments.find({it.plainName == parName}) + + if (!parameterSettings) { + // if argument is not found, do not alter + return [parName, parValue] + } + if (parameterSettings.multiple) { // Check if parameter can accept multiple values + if (parValue instanceof Collection) { + parValue = parValue.collect{it instanceof String ? it.split(parameterSettings.multiple_sep) : it } + } else if (parValue instanceof String) { + parValue = parValue.split(parameterSettings.multiple_sep) + } else if (parValue == null) { + parValue = [] + } else { + parValue = [ parValue ] + } + parValue = parValue.flatten() + } + // For all parameters check if multiple values are only passed for + // arguments that allow it. Quietly simplify lists of length 1. + if (!parameterSettings.multiple && parValue instanceof Collection) { + assert parValue.size() == 1 : + "Error: argument ${parName} has too many values.\n" + + " Expected amount: 1. Found: ${parValue.size()}" + parValue = parValue[0] + } + [parName, parValue] + } + return parsedParamValues +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/channelFromParams.nf' +/** + * Parse nextflow parameters based on settings defined in a viash config. + * Return a list of parameter sets, each parameter set corresponding to + * an event in a nextflow channel. The output from this function can be used + * with Channel.fromList to create a nextflow channel with Vdsl3 formatted + * events. + * + * This function performs: + * - A filtering of the params which can be found in the config file. + * - Process the params_list argument which allows a user to to initialise + * a Vsdl3 channel with multiple parameter sets. Possible formats are + * csv, json, yaml, or simply a yaml_blob. A csv should have column names + * which correspond to the different arguments of this pipeline. A json or a yaml + * file should be a list of maps, each of which has keys corresponding to the + * arguments of the pipeline. A yaml blob can also be passed directly as a parameter. + * When passing a csv, json or yaml, relative path names are relativized to the + * location of the parameter file. + * - Combine the parameter sets into a vdsl3 Channel. + * + * @param params Input parameters. Can optionaly contain a 'param_list' key that + * provides a list of arguments that can be split up into multiple events + * in the output channel possible formats of param_lists are: a csv file, + * json file, a yaml file or a yaml blob. Each parameters set (event) must + * have a unique ID. + * @param config A Map of the Viash configuration. This Map can be generated from the config file + * using the readConfig() function. + * + * @return A list of parameters with the first element of the event being + * the event ID and the second element containing a map of the parsed parameters. + */ + +private List>> _paramsToParamSets(Map params, Map config){ + // todo: fetch key from run args + def key_ = config.name + + /* parse regular parameters (not in param_list) */ + /*************************************************/ + def globalParams = config.allArguments + .findAll { params.containsKey(it.plainName) } + .collectEntries { [ it.plainName, params[it.plainName] ] } + def globalID = params.get("id", null) + + /* process params_list arguments */ + /*********************************/ + def paramList = params.containsKey("param_list") && params.param_list != null ? + params.param_list : [] + // if (paramList instanceof String) { + // paramList = [paramList] + // } + // def paramSets = paramList.collectMany{ _parseParamList(it, config) } + // TODO: be able to process param_list when it is a list of strings + def paramSets = _parseParamList(paramList, config) + if (paramSets.isEmpty()) { + paramSets = [[null, [:]]] + } + + /* combine arguments into channel */ + /**********************************/ + def processedParams = paramSets.indexed().collect{ index, tup -> + // Process ID + def id = tup[0] ?: globalID + + if (workflow.stubRun && !id) { + // if stub run, explicitly add an id if missing + id = "stub${index}" + } + assert id != null: "Each parameter set should have at least an 'id'" + + // Process params + def parValues = globalParams + tup[1] + // // Remove parameters which are null, if the default is also null + // parValues = parValues.collectEntries{paramName, paramValue -> + // parameterSettings = config.functionality.allArguments.find({it.plainName == paramName}) + // if ( paramValue != null || parameterSettings.get("default", null) != null ) { + // [paramName, paramValue] + // } + // } + parValues = parValues.collectEntries { name, value -> + def par = config.allArguments.find { it.plainName == name && (it.direction == "input" || it.type == "file") } + assert par != null : "Error in module '${key_}' id '${id}': '${name}' is not a valid input argument" + + if (par == null) { + return [:] + } + value = _checkArgumentType("input", par, value, "in module '$key_' id '$id'") + + [ name, value ] + } + + [id, parValues] + } + + // Check if ids (first element of each list) is unique + _checkUniqueIds(processedParams) + return processedParams +} + +/** + * Parse nextflow parameters based on settings defined in a viash config + * and return a nextflow channel. + * + * @param params Input parameters. Can optionaly contain a 'param_list' key that + * provides a list of arguments that can be split up into multiple events + * in the output channel possible formats of param_lists are: a csv file, + * json file, a yaml file or a yaml blob. Each parameters set (event) must + * have a unique ID. + * @param config A Map of the Viash configuration. This Map can be generated from the config file + * using the readConfig() function. + * + * @return A nextflow Channel with events. Events are formatted as a tuple that contains + * first contains the ID of the event and as second element holds a parameter map. + * + * + */ +def channelFromParams(Map params, Map config) { + def processedParams = _paramsToParamSets(params, config) + return Channel.fromList(processedParams) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/checkUniqueIds.nf' +def checkUniqueIds(Map args) { + def stopOnError = args.stopOnError == null ? args.stopOnError : true + + def idChecker = new IDChecker() + + return filter { tup -> + if (!idChecker.observe(tup[0])) { + if (stopOnError) { + error "Duplicate id: ${tup[0]}" + } else { + log.warn "Duplicate id: ${tup[0]}, removing duplicate entry" + return false + } + } + return true + } +} +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/preprocessInputs.nf' +// This helper file will be deprecated soon +preprocessInputsDeprecationWarningPrinted = false + +def preprocessInputsDeprecationWarning() { + if (!preprocessInputsDeprecationWarningPrinted) { + preprocessInputsDeprecationWarningPrinted = true + System.err.println("Warning: preprocessInputs() is deprecated and will be removed in Viash 0.9.0.") + } +} + +/** + * Generate a nextflow Workflow that allows processing a channel of + * Vdsl3 formatted events and apply a Viash config to them: + * - Gather default parameters from the Viash config and make + * sure that they are correctly formatted (see applyConfig method). + * - Format the input parameters (also using the applyConfig method). + * - Apply the default parameter to the input parameters. + * - Do some assertions: + * ~ Check if the event IDs in the channel are unique. + * + * The events in the channel are formatted as tuples, with the + * first element of the tuples being a unique id of the parameter set, + * and the second element containg the the parameters themselves. + * Optional extra elements of the tuples will be passed to the output as is. + * + * @param args A map that must contain a 'config' key that points + * to a parsed config (see readConfig()). Optionally, a + * 'key' key can be provided which can be used to create a unique + * name for the workflow process. + * + * @return A workflow that allows processing a channel of Vdsl3 formatted events + * and apply a Viash config to them. + */ +def preprocessInputs(Map args) { + preprocessInputsDeprecationWarning() + + def config = args.config + assert config instanceof Map : + "Error in preprocessInputs: config must be a map. " + + "Expected class: Map. Found: config.getClass() is ${config.getClass()}" + def key_ = args.key ?: config.name + + // Get different parameter types (used throughout this function) + def defaultArgs = config.allArguments + .findAll { it.containsKey("default") } + .collectEntries { [ it.plainName, it.default ] } + + map { tup -> + def id = tup[0] + def data = tup[1] + def passthrough = tup.drop(2) + + def new_data = (defaultArgs + data).collectEntries { name, value -> + def par = config.allArguments.find { it.plainName == name && (it.direction == "input" || it.type == "file") } + + if (par != null) { + value = _checkArgumentType("input", par, value, "in module '$key_' id '$id'") + } + + [ name, value ] + } + + [ id, new_data ] + passthrough + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/runComponents.nf' +/** + * Run a list of components on a stream of data. + * + * @param components: list of Viash VDSL3 modules to run + * @param fromState: a closure, a map or a list of keys to extract from the input data. + * If a closure, it will be called with the id, the data and the component config. + * @param toState: a closure, a map or a list of keys to extract from the output data + * If a closure, it will be called with the id, the output data, the old state and the component config. + * @param filter: filter function to apply to the input. + * It will be called with the id, the data and the component config. + * @param id: id to use for the output data + * If a closure, it will be called with the id, the data and the component config. + * @param auto: auto options to pass to the components + * + * @return: a workflow that runs the components + **/ +def runComponents(Map args) { + log.warn("runComponents is deprecated, use runEach instead") + assert args.components: "runComponents should be passed a list of components to run" + + def components_ = args.components + if (components_ !instanceof List) { + components_ = [ components_ ] + } + assert components_.size() > 0: "pass at least one component to runComponents" + + def fromState_ = args.fromState + def toState_ = args.toState + def filter_ = args.filter + def id_ = args.id + + workflow runComponentsWf { + take: input_ch + main: + + // generate one channel per method + out_chs = components_.collect{ comp_ -> + def comp_config = comp_.config + + def filter_ch = filter_ + ? input_ch | filter{tup -> + filter_(tup[0], tup[1], comp_config) + } + : input_ch + def id_ch = id_ + ? filter_ch | map{tup -> + // def new_id = id_(tup[0], tup[1], comp_config) + def new_id = tup[0] + if (id_ instanceof String) { + new_id = id_ + } else if (id_ instanceof Closure) { + new_id = id_(new_id, tup[1], comp_config) + } + [new_id] + tup.drop(1) + } + : filter_ch + def data_ch = id_ch | map{tup -> + def new_data = tup[1] + if (fromState_ instanceof Map) { + new_data = fromState_.collectEntries{ key0, key1 -> + [key0, new_data[key1]] + } + } else if (fromState_ instanceof List) { + new_data = fromState_.collectEntries{ key -> + [key, new_data[key]] + } + } else if (fromState_ instanceof Closure) { + new_data = fromState_(tup[0], new_data, comp_config) + } + tup.take(1) + [new_data] + tup.drop(1) + } + def out_ch = data_ch + | comp_.run( + auto: (args.auto ?: [:]) + [simplifyInput: false, simplifyOutput: false] + ) + def post_ch = toState_ + ? out_ch | map{tup -> + def output = tup[1] + def old_state = tup[2] + def new_state = null + if (toState_ instanceof Map) { + new_state = old_state + toState_.collectEntries{ key0, key1 -> + [key0, output[key1]] + } + } else if (toState_ instanceof List) { + new_state = old_state + toState_.collectEntries{ key -> + [key, output[key]] + } + } else if (toState_ instanceof Closure) { + new_state = toState_(tup[0], output, old_state, comp_config) + } + [tup[0], new_state] + tup.drop(3) + } + : out_ch + + post_ch + } + + // mix all results + output_ch = + (out_chs.size == 1) + ? out_chs[0] + : out_chs[0].mix(*out_chs.drop(1)) + + emit: output_ch + } + + return runComponentsWf +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/runEach.nf' +/** + * Run a list of components on a stream of data. + * + * @param components: list of Viash VDSL3 modules to run + * @param fromState: a closure, a map or a list of keys to extract from the input data. + * If a closure, it will be called with the id, the data and the component itself. + * @param toState: a closure, a map or a list of keys to extract from the output data + * If a closure, it will be called with the id, the output data, the old state and the component itself. + * @param filter: filter function to apply to the input. + * It will be called with the id, the data and the component itself. + * @param id: id to use for the output data + * If a closure, it will be called with the id, the data and the component itself. + * @param auto: auto options to pass to the components + * + * @return: a workflow that runs the components + **/ +def runEach(Map args) { + assert args.components: "runEach should be passed a list of components to run" + + def components_ = args.components + if (components_ !instanceof List) { + components_ = [ components_ ] + } + assert components_.size() > 0: "pass at least one component to runEach" + + def fromState_ = args.fromState + def toState_ = args.toState + def filter_ = args.filter + def runIf_ = args.runIf + def id_ = args.id + + assert !runIf_ || runIf_ instanceof Closure: "runEach: must pass a Closure to runIf." + + workflow runEachWf { + take: input_ch + main: + + // generate one channel per method + out_chs = components_.collect{ comp_ -> + def filter_ch = filter_ + ? input_ch | filter{tup -> + filter_(tup[0], tup[1], comp_) + } + : input_ch + def id_ch = id_ + ? filter_ch | map{tup -> + def new_id = id_ + if (new_id instanceof Closure) { + new_id = new_id(tup[0], tup[1], comp_) + } + assert new_id instanceof String : "Error in runEach: id should be a String or a Closure that returns a String. Expected: id instanceof String. Found: ${new_id.getClass()}" + [new_id] + tup.drop(1) + } + : filter_ch + def chPassthrough = null + def chRun = null + if (runIf_) { + def idRunIfBranch = id_ch.branch{ tup -> + run: runIf_(tup[0], tup[1], comp_) + passthrough: true + } + chPassthrough = idRunIfBranch.passthrough + chRun = idRunIfBranch.run + } else { + chRun = id_ch + chPassthrough = Channel.empty() + } + def data_ch = chRun | map{tup -> + def new_data = tup[1] + if (fromState_ instanceof Map) { + new_data = fromState_.collectEntries{ key0, key1 -> + [key0, new_data[key1]] + } + } else if (fromState_ instanceof List) { + new_data = fromState_.collectEntries{ key -> + [key, new_data[key]] + } + } else if (fromState_ instanceof Closure) { + new_data = fromState_(tup[0], new_data, comp_) + } + tup.take(1) + [new_data] + tup.drop(1) + } + def out_ch = data_ch + | comp_.run( + auto: (args.auto ?: [:]) + [simplifyInput: false, simplifyOutput: false] + ) + def post_ch = toState_ + ? out_ch | map{tup -> + def output = tup[1] + def old_state = tup[2] + def new_state = null + if (toState_ instanceof Map) { + new_state = old_state + toState_.collectEntries{ key0, key1 -> + [key0, output[key1]] + } + } else if (toState_ instanceof List) { + new_state = old_state + toState_.collectEntries{ key -> + [key, output[key]] + } + } else if (toState_ instanceof Closure) { + new_state = toState_(tup[0], output, old_state, comp_) + } + [tup[0], new_state] + tup.drop(3) + } + : out_ch + + def return_ch = post_ch + | concat(chPassthrough) + + return_ch + } + + // mix all results + output_ch = + (out_chs.size == 1) + ? out_chs[0] + : out_chs[0].mix(*out_chs.drop(1)) + + emit: output_ch + } + + return runEachWf +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/safeJoin.nf' +/** + * Join sourceChannel to targetChannel + * + * This function joins the sourceChannel to the targetChannel. + * However, each id in the targetChannel must be present in the + * sourceChannel. If _meta.join_id exists in the targetChannel, that is + * used as an id instead. If the id doesn't match any id in the sourceChannel, + * an error is thrown. + */ + +def safeJoin(targetChannel, sourceChannel, key) { + def sourceIDs = new IDChecker() + + def sourceCheck = sourceChannel + | map { tup -> + sourceIDs.observe(tup[0]) + tup + } + def targetCheck = targetChannel + | map { tup -> + def id = tup[0] + + if (!sourceIDs.contains(id)) { + error ( + "Error in module '${key}' when merging output with original state.\n" + + " Reason: output with id '${id}' could not be joined with source channel.\n" + + " If the IDs in the output channel differ from the input channel,\n" + + " please set `tup[1]._meta.join_id to the original ID.\n" + + " Original IDs in input channel: ['${sourceIDs.getItems().join("', '")}'].\n" + + " Unexpected ID in the output channel: '${id}'.\n" + + " Example input event: [\"id\", [input: file(...)]],\n" + + " Example output event: [\"newid\", [output: file(...), _meta: [join_id: \"id\"]]]" + ) + } + // TODO: add link to our documentation on how to fix this + + tup + } + + sourceCheck.cross(targetChannel) + | map{ left, right -> + right + left.drop(1) + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/config/_processArgument.nf' +def _processArgument(arg) { + arg.multiple = arg.multiple != null ? arg.multiple : false + arg.required = arg.required != null ? arg.required : false + arg.direction = arg.direction != null ? arg.direction : "input" + arg.multiple_sep = arg.multiple_sep != null ? arg.multiple_sep : ";" + arg.plainName = arg.name.replaceAll("^-*", "") + + if (arg.type == "file") { + arg.must_exist = arg.must_exist != null ? arg.must_exist : true + arg.create_parent = arg.create_parent != null ? arg.create_parent : true + } + + // add default values to output files which haven't already got a default + if (arg.type == "file" && arg.direction == "output" && arg.default == null) { + def mult = arg.multiple ? "_*" : "" + def extSearch = "" + if (arg.default != null) { + extSearch = arg.default + } else if (arg.example != null) { + extSearch = arg.example + } + if (extSearch instanceof List) { + extSearch = extSearch[0] + } + def extSearchResult = extSearch.find("\\.[^\\.]+\$") + def ext = extSearchResult != null ? extSearchResult : "" + arg.default = "\$id.\$key.${arg.plainName}${mult}${ext}" + if (arg.multiple) { + arg.default = [arg.default] + } + } + + if (!arg.multiple) { + if (arg.default != null && arg.default instanceof List) { + arg.default = arg.default[0] + } + if (arg.example != null && arg.example instanceof List) { + arg.example = arg.example[0] + } + } + + if (arg.type == "boolean_true") { + arg.default = false + } + if (arg.type == "boolean_false") { + arg.default = true + } + + arg +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/config/addGlobalParams.nf' +def addGlobalArguments(config) { + def localConfig = [ + "argument_groups": [ + [ + "name": "Nextflow input-output arguments", + "description": "Input/output parameters for Nextflow itself. Please note that both publishDir and publish_dir are supported but at least one has to be configured.", + "arguments" : [ + [ + 'name': '--publish_dir', + 'required': true, + 'type': 'string', + 'description': 'Path to an output directory.', + 'example': 'output/', + 'multiple': false + ], + [ + 'name': '--param_list', + 'required': false, + 'type': 'string', + 'description': '''Allows inputting multiple parameter sets to initialise a Nextflow channel. A `param_list` can either be a list of maps, a csv file, a json file, a yaml file, or simply a yaml blob. + | + |* A list of maps (as-is) where the keys of each map corresponds to the arguments of the pipeline. Example: in a `nextflow.config` file: `param_list: [ ['id': 'foo', 'input': 'foo.txt'], ['id': 'bar', 'input': 'bar.txt'] ]`. + |* A csv file should have column names which correspond to the different arguments of this pipeline. Example: `--param_list data.csv` with columns `id,input`. + |* A json or a yaml file should be a list of maps, each of which has keys corresponding to the arguments of the pipeline. Example: `--param_list data.json` with contents `[ {'id': 'foo', 'input': 'foo.txt'}, {'id': 'bar', 'input': 'bar.txt'} ]`. + |* A yaml blob can also be passed directly as a string. Example: `--param_list "[ {'id': 'foo', 'input': 'foo.txt'}, {'id': 'bar', 'input': 'bar.txt'} ]"`. + | + |When passing a csv, json or yaml file, relative path names are relativized to the location of the parameter file. No relativation is performed when `param_list` is a list of maps (as-is) or a yaml blob.'''.stripMargin(), + 'example': 'my_params.yaml', + 'multiple': false, + 'hidden': true + ] + // TODO: allow multiple: true in param_list? + // TODO: allow to specify a --param_list_regex to filter the param_list? + // TODO: allow to specify a --param_list_from_state to remap entries in the param_list? + ] + ] + ] + ] + + return processConfig(_mergeMap(config, localConfig)) +} + +def _mergeMap(Map lhs, Map rhs) { + return rhs.inject(lhs.clone()) { map, entry -> + if (map[entry.key] instanceof Map && entry.value instanceof Map) { + map[entry.key] = _mergeMap(map[entry.key], entry.value) + } else if (map[entry.key] instanceof Collection && entry.value instanceof Collection) { + map[entry.key] += entry.value + } else { + map[entry.key] = entry.value + } + return map + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/config/generateHelp.nf' +def _generateArgumentHelp(param) { + // alternatives are not supported + // def names = param.alternatives ::: List(param.name) + + def unnamedProps = [ + ["required parameter", param.required], + ["multiple values allowed", param.multiple], + ["output", param.direction.toLowerCase() == "output"], + ["file must exist", param.type == "file" && param.must_exist] + ].findAll{it[1]}.collect{it[0]} + + def dflt = null + if (param.default != null) { + if (param.default instanceof List) { + dflt = param.default.join(param.multiple_sep != null ? param.multiple_sep : ", ") + } else { + dflt = param.default.toString() + } + } + def example = null + if (param.example != null) { + if (param.example instanceof List) { + example = param.example.join(param.multiple_sep != null ? param.multiple_sep : ", ") + } else { + example = param.example.toString() + } + } + def min = param.min?.toString() + def max = param.max?.toString() + + def escapeChoice = { choice -> + def s1 = choice.replaceAll("\\n", "\\\\n") + def s2 = s1.replaceAll("\"", """\\\"""") + s2.contains(",") || s2 != choice ? "\"" + s2 + "\"" : s2 + } + def choices = param.choices == null ? + null : + "[ " + param.choices.collect{escapeChoice(it.toString())}.join(", ") + " ]" + + def namedPropsStr = [ + ["type", ([param.type] + unnamedProps).join(", ")], + ["default", dflt], + ["example", example], + ["choices", choices], + ["min", min], + ["max", max] + ] + .findAll{it[1]} + .collect{"\n " + it[0] + ": " + it[1].replaceAll("\n", "\\n")} + .join("") + + def descStr = param.description == null ? + "" : + _paragraphWrap("\n" + param.description.trim(), 80 - 8).join("\n ") + + "\n --" + param.plainName + + namedPropsStr + + descStr +} + +// Based on Helper.generateHelp() in Helper.scala +def _generateHelp(config) { + def fun = config + + // PART 1: NAME AND VERSION + def nameStr = fun.name + + (fun.version == null ? "" : " " + fun.version) + + // PART 2: DESCRIPTION + def descrStr = fun.description == null ? + "" : + "\n\n" + _paragraphWrap(fun.description.trim(), 80).join("\n") + + // PART 3: Usage + def usageStr = fun.usage == null ? + "" : + "\n\nUsage:\n" + fun.usage.trim() + + // PART 4: Options + def argGroupStrs = fun.allArgumentGroups.collect{argGroup -> + def name = argGroup.name + def descriptionStr = argGroup.description == null ? + "" : + "\n " + _paragraphWrap(argGroup.description.trim(), 80-4).join("\n ") + "\n" + def arguments = argGroup.arguments.collect{arg -> + arg instanceof String ? fun.allArguments.find{it.plainName == arg} : arg + }.findAll{it != null} + def argumentStrs = arguments.collect{param -> _generateArgumentHelp(param)} + + "\n\n$name:" + + descriptionStr + + argumentStrs.join("\n") + } + + // FINAL: combine + def out = nameStr + + descrStr + + usageStr + + argGroupStrs.join("") + + return out +} + +// based on Format._paragraphWrap +def _paragraphWrap(str, maxLength) { + def outLines = [] + str.split("\n").each{par -> + def words = par.split("\\s").toList() + + def word = null + def line = words.pop() + while(!words.isEmpty()) { + word = words.pop() + if (line.length() + word.length() + 1 <= maxLength) { + line = line + " " + word + } else { + outLines.add(line) + line = word + } + } + if (words.isEmpty()) { + outLines.add(line) + } + } + return outLines +} + +def helpMessage(config) { + if (params.containsKey("help") && params.help) { + def mergedConfig = addGlobalArguments(config) + def helpStr = _generateHelp(mergedConfig) + println(helpStr) + exit 0 + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/config/processConfig.nf' +def processConfig(config) { + // set defaults for arguments + config.arguments = + (config.arguments ?: []).collect{_processArgument(it)} + + // set defaults for argument_group arguments + config.argument_groups = + (config.argument_groups ?: []).collect{grp -> + grp.arguments = (grp.arguments ?: []).collect{_processArgument(it)} + grp + } + + // create combined arguments list + config.allArguments = + config.arguments + + config.argument_groups.collectMany{it.arguments} + + // add missing argument groups (based on Functionality::allArgumentGroups()) + def argGroups = config.argument_groups + if (argGroups.any{it.name.toLowerCase() == "arguments"}) { + argGroups = argGroups.collect{ grp -> + if (grp.name.toLowerCase() == "arguments") { + grp = grp + [ + arguments: grp.arguments + config.arguments + ] + } + grp + } + } else { + argGroups = argGroups + [ + name: "Arguments", + arguments: config.arguments + ] + } + config.allArgumentGroups = argGroups + + config +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/config/readConfig.nf' + +def readConfig(file) { + def config = readYaml(file ?: moduleDir.resolve("config.vsh.yaml")) + processConfig(config) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/_resolveSiblingIfNotAbsolute.nf' +/** + * Resolve a path relative to the current file. + * + * @param str The path to resolve, as a String. + * @param parentPath The path to resolve relative to, as a Path. + * + * @return The path that may have been resovled, as a Path. + */ +def _resolveSiblingIfNotAbsolute(str, parentPath) { + if (str !instanceof String) { + return str + } + if (!_stringIsAbsolutePath(str)) { + return parentPath.resolveSibling(str) + } else { + return file(str, hidden: true) + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/_stringIsAbsolutePath.nf' +/** + * Check whether a path as a string is absolute. + * + * In the past, we tried using `file(., relative: true).isAbsolute()`, + * but the 'relative' option was added in 22.10.0. + * + * @param path The path to check, as a String. + * + * @return Whether the path is absolute, as a boolean. + */ +def _stringIsAbsolutePath(path) { + def _resolve_URL_PROTOCOL = ~/^([a-zA-Z][a-zA-Z0-9]*:)?\\/.+/ + + assert path instanceof String + return _resolve_URL_PROTOCOL.matcher(path).matches() +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/collectTraces.nf' +class CustomTraceObserver implements nextflow.trace.TraceObserver { + List traces + + CustomTraceObserver(List traces) { + this.traces = traces + } + + @Override + void onProcessComplete(nextflow.processor.TaskHandler handler, nextflow.trace.TraceRecord trace) { + def trace2 = trace.store.clone() + trace2.script = null + traces.add(trace2) + } + + @Override + void onProcessCached(nextflow.processor.TaskHandler handler, nextflow.trace.TraceRecord trace) { + def trace2 = trace.store.clone() + trace2.script = null + traces.add(trace2) + } +} + +def collectTraces() { + def traces = Collections.synchronizedList([]) + + // add custom trace observer which stores traces in the traces object + session.observers.add(new CustomTraceObserver(traces)) + + traces +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/deepClone.nf' +/** + * Performs a deep clone of the given object. + * @param x an object + */ +def deepClone(x) { + iterateMap(x, {it instanceof Cloneable ? it.clone() : it}) +} +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/getPublishDir.nf' +def getPublishDir() { + return params.containsKey("publish_dir") ? params.publish_dir : + params.containsKey("publishDir") ? params.publishDir : + null +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/getRootDir.nf' + +// Recurse upwards until we find a '.build.yaml' file +def _findBuildYamlFile(pathPossiblySymlink) { + def path = pathPossiblySymlink.toRealPath() + def child = path.resolve(".build.yaml") + if (java.nio.file.Files.isDirectory(path) && java.nio.file.Files.exists(child)) { + return child + } else { + def parent = path.getParent() + if (parent == null) { + return null + } else { + return _findBuildYamlFile(parent) + } + } +} + +// get the root of the target folder +def getRootDir() { + def dir = _findBuildYamlFile(meta.resources_dir) + assert dir != null: "Could not find .build.yaml in the folder structure" + dir.getParent() +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/iterateMap.nf' +/** + * Recursively apply a function over the leaves of an object. + * @param obj The object to iterate over. + * @param fun The function to apply to each value. + * @return The object with the function applied to each value. + */ +def iterateMap(obj, fun) { + if (obj instanceof List && obj !instanceof String) { + return obj.collect{item -> + iterateMap(item, fun) + } + } else if (obj instanceof Map) { + return obj.collectEntries{key, item -> + [key.toString(), iterateMap(item, fun)] + } + } else { + return fun(obj) + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/niceView.nf' +/** + * A view for printing the event of each channel as a YAML blob. + * This is useful for debugging. + */ +def niceView() { + workflow niceViewWf { + take: input + main: + output = input + | view{toYamlBlob(it)} + emit: output + } + return niceViewWf +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/readCsv.nf' + +def readCsv(file_path) { + def output = [] + def inputFile = file_path !instanceof Path ? file(file_path, hidden: true) : file_path + + // todo: allow escaped quotes in string + // todo: allow single quotes? + def splitRegex = java.util.regex.Pattern.compile(''',(?=(?:[^"]*"[^"]*")*[^"]*$)''') + def removeQuote = java.util.regex.Pattern.compile('''"(.*)"''') + + def br = java.nio.file.Files.newBufferedReader(inputFile) + + def row = -1 + def header = null + while (br.ready() && header == null) { + def line = br.readLine() + row++ + if (!line.startsWith("#")) { + header = splitRegex.split(line, -1).collect{field -> + m = removeQuote.matcher(field) + m.find() ? m.replaceFirst('$1') : field + } + } + } + assert header != null: "CSV file should contain a header" + + while (br.ready()) { + def line = br.readLine() + row++ + if (line == null) { + br.close() + break + } + + if (!line.startsWith("#")) { + def predata = splitRegex.split(line, -1) + def data = predata.collect{field -> + if (field == "") { + return null + } + def m = removeQuote.matcher(field) + if (m.find()) { + return m.replaceFirst('$1') + } else { + return field + } + } + assert header.size() == data.size(): "Row $row should contain the same number as fields as the header" + + def dataMap = [header, data].transpose().collectEntries().findAll{it.value != null} + output.add(dataMap) + } + } + + output +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/readJson.nf' +def readJson(file_path) { + def inputFile = file_path !instanceof Path ? file(file_path, hidden: true) : file_path + def jsonSlurper = new groovy.json.JsonSlurper() + jsonSlurper.parse(inputFile) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/readJsonBlob.nf' +def readJsonBlob(str) { + def jsonSlurper = new groovy.json.JsonSlurper() + jsonSlurper.parseText(str) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/readTaggedYaml.nf' +// Custom constructor to modify how certain objects are parsed from YAML +class CustomConstructor extends org.yaml.snakeyaml.constructor.Constructor { + Path root + + class ConstructPath extends org.yaml.snakeyaml.constructor.AbstractConstruct { + public Object construct(org.yaml.snakeyaml.nodes.Node node) { + String filename = (String) constructScalar(node); + if (root != null) { + return root.resolve(filename); + } + return java.nio.file.Paths.get(filename); + } + } + + CustomConstructor(org.yaml.snakeyaml.LoaderOptions options, Path root) { + super(options) + this.root = root + // Handling !file tag and parse it back to a File type + this.yamlConstructors.put(new org.yaml.snakeyaml.nodes.Tag("!file"), new ConstructPath()) + } +} + +def readTaggedYaml(Path path) { + def options = new org.yaml.snakeyaml.LoaderOptions() + def constructor = new CustomConstructor(options, path.getParent()) + def yaml = new org.yaml.snakeyaml.Yaml(constructor) + return yaml.load(path.text) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/readYaml.nf' +def readYaml(file_path) { + def inputFile = file_path !instanceof Path ? file(file_path, hidden: true) : file_path + def yamlSlurper = new org.yaml.snakeyaml.Yaml() + yamlSlurper.load(inputFile) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/readYamlBlob.nf' +def readYamlBlob(str) { + def yamlSlurper = new org.yaml.snakeyaml.Yaml() + yamlSlurper.load(str) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/toJsonBlob.nf' +String toJsonBlob(data) { + return groovy.json.JsonOutput.toJson(data) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/toTaggedYamlBlob.nf' +// Custom representer to modify how certain objects are represented in YAML +class CustomRepresenter extends org.yaml.snakeyaml.representer.Representer { + Path relativizer + + class RepresentPath implements org.yaml.snakeyaml.representer.Represent { + public String getFileName(Object obj) { + if (obj instanceof File) { + obj = ((File) obj).toPath(); + } + if (obj !instanceof Path) { + throw new IllegalArgumentException("Object: " + obj + " is not a Path or File"); + } + def path = (Path) obj; + + if (relativizer != null) { + return relativizer.relativize(path).toString() + } else { + return path.toString() + } + } + + public org.yaml.snakeyaml.nodes.Node representData(Object data) { + String filename = getFileName(data); + def tag = new org.yaml.snakeyaml.nodes.Tag("!file"); + return representScalar(tag, filename); + } + } + CustomRepresenter(org.yaml.snakeyaml.DumperOptions options, Path relativizer) { + super(options) + this.relativizer = relativizer + this.representers.put(sun.nio.fs.UnixPath, new RepresentPath()) + this.representers.put(Path, new RepresentPath()) + this.representers.put(File, new RepresentPath()) + } +} + +String toTaggedYamlBlob(data) { + return toRelativeTaggedYamlBlob(data, null) +} +String toRelativeTaggedYamlBlob(data, Path relativizer) { + def options = new org.yaml.snakeyaml.DumperOptions() + options.setDefaultFlowStyle(org.yaml.snakeyaml.DumperOptions.FlowStyle.BLOCK) + def representer = new CustomRepresenter(options, relativizer) + def yaml = new org.yaml.snakeyaml.Yaml(representer, options) + return yaml.dump(data) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/toYamlBlob.nf' +String toYamlBlob(data) { + def options = new org.yaml.snakeyaml.DumperOptions() + options.setDefaultFlowStyle(org.yaml.snakeyaml.DumperOptions.FlowStyle.BLOCK) + options.setPrettyFlow(true) + def yaml = new org.yaml.snakeyaml.Yaml(options) + def cleanData = iterateMap(data, { it instanceof Path ? it.toString() : it }) + return yaml.dump(cleanData) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/writeJson.nf' +void writeJson(data, file) { + assert data: "writeJson: data should not be null" + assert file: "writeJson: file should not be null" + file.write(toJsonBlob(data)) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/writeYaml.nf' +void writeYaml(data, file) { + assert data: "writeYaml: data should not be null" + assert file: "writeYaml: file should not be null" + file.write(toYamlBlob(data)) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/states/findStates.nf' +def findStates(Map params, Map config) { + def auto_config = deepClone(config) + def auto_params = deepClone(params) + + auto_config = auto_config.clone() + // override arguments + auto_config.argument_groups = [] + auto_config.arguments = [ + [ + type: "string", + name: "--id", + description: "A dummy identifier", + required: false + ], + [ + type: "file", + name: "--input_states", + example: "/path/to/input/directory/**/state.yaml", + description: "Path to input directory containing the datasets to be integrated.", + required: true, + multiple: true, + multiple_sep: ";" + ], + [ + type: "string", + name: "--filter", + example: "foo/.*/state.yaml", + description: "Regex to filter state files by path.", + required: false + ], + // to do: make this a yaml blob? + [ + type: "string", + name: "--rename_keys", + example: ["newKey1:oldKey1", "newKey2:oldKey2"], + description: "Rename keys in the detected input files. This is useful if the input files do not match the set of input arguments of the workflow.", + required: false, + multiple: true, + multiple_sep: ";" + ], + [ + type: "string", + name: "--settings", + example: '{"output_dataset": "dataset.h5ad", "k": 10}', + description: "Global arguments as a JSON glob to be passed to all components.", + required: false + ] + ] + if (!(auto_params.containsKey("id"))) { + auto_params["id"] = "auto" + } + + // run auto config through processConfig once more + auto_config = processConfig(auto_config) + + workflow findStatesWf { + helpMessage(auto_config) + + output_ch = + channelFromParams(auto_params, auto_config) + | flatMap { autoId, args -> + + def globalSettings = args.settings ? readYamlBlob(args.settings) : [:] + + // look for state files in input dir + def stateFiles = args.input_states + + // filter state files by regex + if (args.filter) { + stateFiles = stateFiles.findAll{ stateFile -> + def stateFileStr = stateFile.toString() + def matcher = stateFileStr =~ args.filter + matcher.matches()} + } + + // read in states + def states = stateFiles.collect { stateFile -> + def state_ = readTaggedYaml(stateFile) + [state_.id, state_] + } + + // construct renameMap + if (args.rename_keys) { + def renameMap = args.rename_keys.collectEntries{renameString -> + def split = renameString.split(":") + assert split.size() == 2: "Argument 'rename_keys' should be of the form 'newKey:oldKey', or 'newKey:oldKey;newKey:oldKey' in case of multiple values" + split + } + + // rename keys in state, only let states through which have all keys + // also add global settings + states = states.collectMany{id, state -> + def newState = [:] + + for (key in renameMap.keySet()) { + def origKey = renameMap[key] + if (!(state.containsKey(origKey))) { + return [] + } + newState[key] = state[origKey] + } + + [[id, globalSettings + newState]] + } + } + + states + } + emit: + output_ch + } + + return findStatesWf +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/states/joinStates.nf' +def joinStates(Closure apply_) { + workflow joinStatesWf { + take: input_ch + main: + output_ch = input_ch + | toSortedList + | filter{ it.size() > 0 } + | map{ tups -> + def ids = tups.collect{it[0]} + def states = tups.collect{it[1]} + apply_(ids, states) + } + + emit: output_ch + } + return joinStatesWf +} +// helper file: 'src/main/resources/io/viash/runners/nextflow/states/publishStates.nf' +def collectFiles(obj) { + if (obj instanceof java.io.File || obj instanceof Path) { + return [obj] + } else if (obj instanceof List && obj !instanceof String) { + return obj.collectMany{item -> + collectFiles(item) + } + } else if (obj instanceof Map) { + return obj.collectMany{key, item -> + collectFiles(item) + } + } else { + return [] + } +} + +/** + * Recurse through a state and collect all input files and their target output filenames. + * @param obj The state to recurse through. + * @param prefix The prefix to prepend to the output filenames. + */ +def collectInputOutputPaths(obj, prefix) { + if (obj instanceof File || obj instanceof Path) { + def path = obj instanceof Path ? obj : obj.toPath() + def ext = path.getFileName().toString().find("\\.[^\\.]+\$") ?: "" + def newFilename = prefix + ext + return [[obj, newFilename]] + } else if (obj instanceof List && obj !instanceof String) { + return obj.withIndex().collectMany{item, ix -> + collectInputOutputPaths(item, prefix + "_" + ix) + } + } else if (obj instanceof Map) { + return obj.collectMany{key, item -> + collectInputOutputPaths(item, prefix + "." + key) + } + } else { + return [] + } +} + +def publishStates(Map args) { + def key_ = args.get("key") + def yamlTemplate_ = args.get("output_state", args.get("outputState", '$id.$key.state.yaml')) + + assert key_ != null : "publishStates: key must be specified" + + workflow publishStatesWf { + take: input_ch + main: + input_ch + | map { tup -> + def id_ = tup[0] + def state_ = tup[1] + + // the input files and the target output filenames + def inputoutputFilenames_ = collectInputOutputPaths(state_, id_ + "." + key_).transpose() + def inputFiles_ = inputoutputFilenames_[0] + def outputFilenames_ = inputoutputFilenames_[1] + + def yamlFilename = yamlTemplate_ + .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) + .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) + + // TODO: do the pathnames in state_ match up with the outputFilenames_? + + // convert state to yaml blob + def yamlBlob_ = toRelativeTaggedYamlBlob([id: id_] + state_, java.nio.file.Paths.get(yamlFilename)) + + [id_, yamlBlob_, yamlFilename, inputFiles_, outputFilenames_] + } + | publishStatesProc + emit: input_ch + } + return publishStatesWf +} +process publishStatesProc { + // todo: check publishpath? + publishDir path: "${getPublishDir()}/", mode: "copy" + tag "$id" + input: + tuple val(id), val(yamlBlob), val(yamlFile), path(inputFiles, stageAs: "_inputfile?/*"), val(outputFiles) + output: + tuple val(id), path{[yamlFile] + outputFiles} + script: + def copyCommands = [ + inputFiles instanceof List ? inputFiles : [inputFiles], + outputFiles instanceof List ? outputFiles : [outputFiles] + ] + .transpose() + .collectMany{infile, outfile -> + if (infile.toString() != outfile.toString()) { + [ + "[ -d \"\$(dirname '${outfile.toString()}')\" ] || mkdir -p \"\$(dirname '${outfile.toString()}')\"", + "cp -r '${infile.toString()}' '${outfile.toString()}'" + ] + } else { + // no need to copy if infile is the same as outfile + [] + } + } + """ +mkdir -p "\$(dirname '${yamlFile}')" +echo "Storing state as yaml" +echo '${yamlBlob}' > '${yamlFile}' +echo "Copying output files to destination folder" +${copyCommands.join("\n ")} +""" +} + + +// this assumes that the state contains no other values other than those specified in the config +def publishStatesByConfig(Map args) { + def config = args.get("config") + assert config != null : "publishStatesByConfig: config must be specified" + + def key_ = args.get("key", config.name) + assert key_ != null : "publishStatesByConfig: key must be specified" + + workflow publishStatesSimpleWf { + take: input_ch + main: + input_ch + | map { tup -> + def id_ = tup[0] + def state_ = tup[1] // e.g. [output: new File("myoutput.h5ad"), k: 10] + def origState_ = tup[2] // e.g. [output: '$id.$key.foo.h5ad'] + + // TODO: allow overriding the state.yaml template + // TODO TODO: if auto.publish == "state", add output_state as an argument + def yamlTemplate = params.containsKey("output_state") ? params.output_state : '$id.$key.state.yaml' + def yamlFilename = yamlTemplate + .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) + .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) + def yamlDir = java.nio.file.Paths.get(yamlFilename).getParent() + + // the processed state is a list of [key, value, inputPath, outputFilename] tuples, where + // - key is a String + // - value is any object that can be serialized to a Yaml (so a String/Integer/Long/Double/Boolean, a List, a Map, or a Path) + // - inputPath is a List[Path] + // - outputFilename is a List[String] + // - (key, value) are the tuples that will be saved to the state.yaml file + // - (inputPath, outputFilename) are the files that will be copied from src to dest (relative to the state.yaml) + def processedState = + config.allArguments + .findAll { it.direction == "output" } + .collectMany { par -> + def plainName_ = par.plainName + // if the state does not contain the key, it's an + // optional argument for which the component did + // not generate any output + if (!state_.containsKey(plainName_)) { + return [] + } + def value = state_[plainName_] + // if the parameter is not a file, it should be stored + // in the state as-is, but is not something that needs + // to be copied from the source path to the dest path + if (par.type != "file") { + return [[key: plainName_, value: value, inputPath: [], outputFilename: []]] + } + // if the orig state does not contain this filename, + // it's an optional argument for which the user specified + // that it should not be returned as a state + if (!origState_.containsKey(plainName_)) { + return [] + } + def filenameTemplate = origState_[plainName_] + // if the pararameter is multiple: true, fetch the template + if (par.multiple && filenameTemplate instanceof List) { + filenameTemplate = filenameTemplate[0] + } + // instantiate the template + def filename = filenameTemplate + .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) + .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) + if (par.multiple) { + // if the parameter is multiple: true, the filename + // should contain a wildcard '*' that is replaced with + // the index of the file + assert filename.contains("*") : "Module '${key_}' id '${id_}': Multiple output files specified, but no wildcard '*' in the filename: ${filename}" + def outputPerFile = value.withIndex().collect{ val, ix -> + def filename_ix = filename.replace("*", ix.toString()) + def value_ = java.nio.file.Paths.get(filename_ix) + // if id contains a slash + if (yamlDir != null) { + value_ = yamlDir.relativize(value_) + } + def inputPath = val instanceof File ? val.toPath() : val + [value: value_, inputPath: inputPath, outputFilename: filename_ix] + } + def transposedOutputs = ["value", "inputPath", "outputFilename"].collectEntries{ key -> + [key, outputPerFile.collect{dic -> dic[key]}] + } + return [[key: plainName_] + transposedOutputs] + } else { + def value_ = java.nio.file.Paths.get(filename) + // if id contains a slash + if (yamlDir != null) { + value_ = yamlDir.relativize(value_) + } + def inputPath = value instanceof File ? value.toPath() : value + return [[key: plainName_, value: value_, inputPath: [inputPath], outputFilename: [filename]]] + } + } + + def updatedState_ = processedState.collectEntries{[it.key, it.value]} + def inputPaths = processedState.collectMany{it.inputPath} + def outputFilenames = processedState.collectMany{it.outputFilename} + + // convert state to yaml blob + def yamlBlob_ = toTaggedYamlBlob([id: id_] + updatedState_) + + [id_, yamlBlob_, yamlFilename, inputPaths, outputFilenames] + } + | publishStatesProc + emit: input_ch + } + return publishStatesSimpleWf +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/states/setState.nf' +def setState(fun) { + assert fun instanceof Closure || fun instanceof Map || fun instanceof List : + "Error in setState: Expected process argument to be a Closure, a Map, or a List. Found: class ${fun.getClass()}" + + // if fun is a List, convert to map + if (fun instanceof List) { + // check whether fun is a list[string] + assert fun.every{it instanceof CharSequence} : "Error in setState: argument is a List, but not all elements are Strings" + fun = fun.collectEntries{[it, it]} + } + + // if fun is a map, convert to closure + if (fun instanceof Map) { + // check whether fun is a map[string, string] + assert fun.values().every{it instanceof CharSequence} : "Error in setState: argument is a Map, but not all values are Strings" + assert fun.keySet().every{it instanceof CharSequence} : "Error in setState: argument is a Map, but not all keys are Strings" + def funMap = fun.clone() + // turn the map into a closure to be used later on + fun = { id_, state_ -> + assert state_ instanceof Map : "Error in setState: the state is not a Map" + funMap.collectMany{newkey, origkey -> + if (state_.containsKey(origkey)) { + [[newkey, state_[origkey]]] + } else { + [] + } + }.collectEntries() + } + } + + map { tup -> + def id = tup[0] + def state = tup[1] + def unfilteredState = fun(id, state) + def newState = unfilteredState.findAll{key, val -> val != null} + [id, newState] + tup.drop(2) + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/workflowFactory/processAuto.nf' +// TODO: unit test processAuto +def processAuto(Map auto) { + // remove null values + auto = auto.findAll{k, v -> v != null} + + // check for unexpected keys + def expectedKeys = ["simplifyInput", "simplifyOutput", "transcript", "publish"] + def unexpectedKeys = auto.keySet() - expectedKeys + assert unexpectedKeys.isEmpty(), "unexpected keys in auto: '${unexpectedKeys.join("', '")}'" + + // check auto.simplifyInput + assert auto.simplifyInput instanceof Boolean, "auto.simplifyInput must be a boolean" + + // check auto.simplifyOutput + assert auto.simplifyOutput instanceof Boolean, "auto.simplifyOutput must be a boolean" + + // check auto.transcript + assert auto.transcript instanceof Boolean, "auto.transcript must be a boolean" + + // check auto.publish + assert auto.publish instanceof Boolean || auto.publish == "state", "auto.publish must be a boolean or 'state'" + + return auto.subMap(expectedKeys) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/workflowFactory/processDirectives.nf' +def assertMapKeys(map, expectedKeys, requiredKeys, mapName) { + assert map instanceof Map : "Expected argument '$mapName' to be a Map. Found: class ${map.getClass()}" + map.forEach { key, val -> + assert key in expectedKeys : "Unexpected key '$key' in ${mapName ? mapName + " " : ""}map" + } + requiredKeys.forEach { requiredKey -> + assert map.containsKey(requiredKey) : "Missing required key '$key' in ${mapName ? mapName + " " : ""}map" + } +} + +// TODO: unit test processDirectives +def processDirectives(Map drctv) { + // remove null values + drctv = drctv.findAll{k, v -> v != null} + + // check for unexpected keys + def expectedKeys = [ + "accelerator", "afterScript", "beforeScript", "cache", "conda", "container", "containerOptions", "cpus", "disk", "echo", "errorStrategy", "executor", "machineType", "maxErrors", "maxForks", "maxRetries", "memory", "module", "penv", "pod", "publishDir", "queue", "label", "scratch", "storeDir", "stageInMode", "stageOutMode", "tag", "time" + ] + def unexpectedKeys = drctv.keySet() - expectedKeys + assert unexpectedKeys.isEmpty() : "Unexpected keys in process directive: '${unexpectedKeys.join("', '")}'" + + /* DIRECTIVE accelerator + accepted examples: + - [ limit: 4, type: "nvidia-tesla-k80" ] + */ + if (drctv.containsKey("accelerator")) { + assertMapKeys(drctv["accelerator"], ["type", "limit", "request", "runtime"], [], "accelerator") + } + + /* DIRECTIVE afterScript + accepted examples: + - "source /cluster/bin/cleanup" + */ + if (drctv.containsKey("afterScript")) { + assert drctv["afterScript"] instanceof CharSequence + } + + /* DIRECTIVE beforeScript + accepted examples: + - "source /cluster/bin/setup" + */ + if (drctv.containsKey("beforeScript")) { + assert drctv["beforeScript"] instanceof CharSequence + } + + /* DIRECTIVE cache + accepted examples: + - true + - false + - "deep" + - "lenient" + */ + if (drctv.containsKey("cache")) { + assert drctv["cache"] instanceof CharSequence || drctv["cache"] instanceof Boolean + if (drctv["cache"] instanceof CharSequence) { + assert drctv["cache"] in ["deep", "lenient"] : "Unexpected value for cache" + } + } + + /* DIRECTIVE conda + accepted examples: + - "bwa=0.7.15" + - "bwa=0.7.15 fastqc=0.11.5" + - ["bwa=0.7.15", "fastqc=0.11.5"] + */ + if (drctv.containsKey("conda")) { + if (drctv["conda"] instanceof List) { + drctv["conda"] = drctv["conda"].join(" ") + } + assert drctv["conda"] instanceof CharSequence + } + + /* DIRECTIVE container + accepted examples: + - "foo/bar:tag" + - [ registry: "reg", image: "im", tag: "ta" ] + is transformed to "reg/im:ta" + - [ image: "im" ] + is transformed to "im:latest" + */ + if (drctv.containsKey("container")) { + assert drctv["container"] instanceof Map || drctv["container"] instanceof CharSequence + if (drctv["container"] instanceof Map) { + def m = drctv["container"] + assertMapKeys(m, [ "registry", "image", "tag" ], ["image"], "container") + def part1 = + System.getenv('OVERRIDE_CONTAINER_REGISTRY') ? System.getenv('OVERRIDE_CONTAINER_REGISTRY') + "/" : + params.containsKey("override_container_registry") ? params["override_container_registry"] + "/" : // todo: remove? + m.registry ? m.registry + "/" : + "" + def part2 = m.image + def part3 = m.tag ? ":" + m.tag : ":latest" + drctv["container"] = part1 + part2 + part3 + } + } + + /* DIRECTIVE containerOptions + accepted examples: + - "--foo bar" + - ["--foo bar", "-f b"] + */ + if (drctv.containsKey("containerOptions")) { + if (drctv["containerOptions"] instanceof List) { + drctv["containerOptions"] = drctv["containerOptions"].join(" ") + } + assert drctv["containerOptions"] instanceof CharSequence + } + + /* DIRECTIVE cpus + accepted examples: + - 1 + - 10 + */ + if (drctv.containsKey("cpus")) { + assert drctv["cpus"] instanceof Integer + } + + /* DIRECTIVE disk + accepted examples: + - "1 GB" + - "2TB" + - "3.2KB" + - "10.B" + */ + if (drctv.containsKey("disk")) { + assert drctv["disk"] instanceof CharSequence + // assert drctv["disk"].matches("[0-9]+(\\.[0-9]*)? *[KMGTPEZY]?B") + // ^ does not allow closures + } + + /* DIRECTIVE echo + accepted examples: + - true + - false + */ + if (drctv.containsKey("echo")) { + assert drctv["echo"] instanceof Boolean + } + + /* DIRECTIVE errorStrategy + accepted examples: + - "terminate" + - "finish" + */ + if (drctv.containsKey("errorStrategy")) { + assert drctv["errorStrategy"] instanceof CharSequence + assert drctv["errorStrategy"] in ["terminate", "finish", "ignore", "retry"] : "Unexpected value for errorStrategy" + } + + /* DIRECTIVE executor + accepted examples: + - "local" + - "sge" + */ + if (drctv.containsKey("executor")) { + assert drctv["executor"] instanceof CharSequence + assert drctv["executor"] in ["local", "sge", "uge", "lsf", "slurm", "pbs", "pbspro", "moab", "condor", "nqsii", "ignite", "k8s", "awsbatch", "google-pipelines"] : "Unexpected value for executor" + } + + /* DIRECTIVE machineType + accepted examples: + - "n1-highmem-8" + */ + if (drctv.containsKey("machineType")) { + assert drctv["machineType"] instanceof CharSequence + } + + /* DIRECTIVE maxErrors + accepted examples: + - 1 + - 3 + */ + if (drctv.containsKey("maxErrors")) { + assert drctv["maxErrors"] instanceof Integer + } + + /* DIRECTIVE maxForks + accepted examples: + - 1 + - 3 + */ + if (drctv.containsKey("maxForks")) { + assert drctv["maxForks"] instanceof Integer + } + + /* DIRECTIVE maxRetries + accepted examples: + - 1 + - 3 + */ + if (drctv.containsKey("maxRetries")) { + assert drctv["maxRetries"] instanceof Integer + } + + /* DIRECTIVE memory + accepted examples: + - "1 GB" + - "2TB" + - "3.2KB" + - "10.B" + */ + if (drctv.containsKey("memory")) { + assert drctv["memory"] instanceof CharSequence + // assert drctv["memory"].matches("[0-9]+(\\.[0-9]*)? *[KMGTPEZY]?B") + // ^ does not allow closures + } + + /* DIRECTIVE module + accepted examples: + - "ncbi-blast/2.2.27" + - "ncbi-blast/2.2.27:t_coffee/10.0" + - ["ncbi-blast/2.2.27", "t_coffee/10.0"] + */ + if (drctv.containsKey("module")) { + if (drctv["module"] instanceof List) { + drctv["module"] = drctv["module"].join(":") + } + assert drctv["module"] instanceof CharSequence + } + + /* DIRECTIVE penv + accepted examples: + - "smp" + */ + if (drctv.containsKey("penv")) { + assert drctv["penv"] instanceof CharSequence + } + + /* DIRECTIVE pod + accepted examples: + - [ label: "key", value: "val" ] + - [ annotation: "key", value: "val" ] + - [ env: "key", value: "val" ] + - [ [label: "l", value: "v"], [env: "e", value: "v"]] + */ + if (drctv.containsKey("pod")) { + if (drctv["pod"] instanceof Map) { + drctv["pod"] = [ drctv["pod"] ] + } + assert drctv["pod"] instanceof List + drctv["pod"].forEach { pod -> + assert pod instanceof Map + // TODO: should more checks be added? + // See https://www.nextflow.io/docs/latest/process.html?highlight=directives#pod + // e.g. does it contain 'label' and 'value', or 'annotation' and 'value', or ...? + } + } + + /* DIRECTIVE publishDir + accepted examples: + - [] + - [ [ path: "foo", enabled: true ], [ path: "bar", enabled: false ] ] + - "/path/to/dir" + is transformed to [[ path: "/path/to/dir" ]] + - [ path: "/path/to/dir", mode: "cache" ] + is transformed to [[ path: "/path/to/dir", mode: "cache" ]] + */ + // TODO: should we also look at params["publishDir"]? + if (drctv.containsKey("publishDir")) { + def pblsh = drctv["publishDir"] + + // check different options + assert pblsh instanceof List || pblsh instanceof Map || pblsh instanceof CharSequence + + // turn into list if not already so + // for some reason, 'if (!pblsh instanceof List) pblsh = [ pblsh ]' doesn't work. + pblsh = pblsh instanceof List ? pblsh : [ pblsh ] + + // check elements of publishDir + pblsh = pblsh.collect{ elem -> + // turn into map if not already so + elem = elem instanceof CharSequence ? [ path: elem ] : elem + + // check types and keys + assert elem instanceof Map : "Expected publish argument '$elem' to be a String or a Map. Found: class ${elem.getClass()}" + assertMapKeys(elem, [ "path", "mode", "overwrite", "pattern", "saveAs", "enabled" ], ["path"], "publishDir") + + // check elements in map + assert elem.containsKey("path") + assert elem["path"] instanceof CharSequence + if (elem.containsKey("mode")) { + assert elem["mode"] instanceof CharSequence + assert elem["mode"] in [ "symlink", "rellink", "link", "copy", "copyNoFollow", "move" ] + } + if (elem.containsKey("overwrite")) { + assert elem["overwrite"] instanceof Boolean + } + if (elem.containsKey("pattern")) { + assert elem["pattern"] instanceof CharSequence + } + if (elem.containsKey("saveAs")) { + assert elem["saveAs"] instanceof CharSequence //: "saveAs as a Closure is currently not supported. Surround your closure with single quotes to get the desired effect. Example: '\{ foo \}'" + } + if (elem.containsKey("enabled")) { + assert elem["enabled"] instanceof Boolean + } + + // return final result + elem + } + // store final directive + drctv["publishDir"] = pblsh + } + + /* DIRECTIVE queue + accepted examples: + - "long" + - "short,long" + - ["short", "long"] + */ + if (drctv.containsKey("queue")) { + if (drctv["queue"] instanceof List) { + drctv["queue"] = drctv["queue"].join(",") + } + assert drctv["queue"] instanceof CharSequence + } + + /* DIRECTIVE label + accepted examples: + - "big_mem" + - "big_cpu" + - ["big_mem", "big_cpu"] + */ + if (drctv.containsKey("label")) { + if (drctv["label"] instanceof CharSequence) { + drctv["label"] = [ drctv["label"] ] + } + assert drctv["label"] instanceof List + drctv["label"].forEach { label -> + assert label instanceof CharSequence + // assert label.matches("[a-zA-Z0-9]([a-zA-Z0-9_]*[a-zA-Z0-9])?") + // ^ does not allow closures + } + } + + /* DIRECTIVE scratch + accepted examples: + - true + - "/path/to/scratch" + - '$MY_PATH_TO_SCRATCH' + - "ram-disk" + */ + if (drctv.containsKey("scratch")) { + assert drctv["scratch"] == true || drctv["scratch"] instanceof CharSequence + } + + /* DIRECTIVE storeDir + accepted examples: + - "/path/to/storeDir" + */ + if (drctv.containsKey("storeDir")) { + assert drctv["storeDir"] instanceof CharSequence + } + + /* DIRECTIVE stageInMode + accepted examples: + - "copy" + - "link" + */ + if (drctv.containsKey("stageInMode")) { + assert drctv["stageInMode"] instanceof CharSequence + assert drctv["stageInMode"] in ["copy", "link", "symlink", "rellink"] + } + + /* DIRECTIVE stageOutMode + accepted examples: + - "copy" + - "link" + */ + if (drctv.containsKey("stageOutMode")) { + assert drctv["stageOutMode"] instanceof CharSequence + assert drctv["stageOutMode"] in ["copy", "move", "rsync"] + } + + /* DIRECTIVE tag + accepted examples: + - "foo" + - '$id' + */ + if (drctv.containsKey("tag")) { + assert drctv["tag"] instanceof CharSequence + } + + /* DIRECTIVE time + accepted examples: + - "1h" + - "2days" + - "1day 6hours 3minutes 30seconds" + */ + if (drctv.containsKey("time")) { + assert drctv["time"] instanceof CharSequence + // todo: validation regex? + } + + return drctv +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/workflowFactory/processWorkflowArgs.nf' +def processWorkflowArgs(Map args, Map defaultWfArgs, Map meta) { + // override defaults with args + def workflowArgs = defaultWfArgs + args + + // check whether 'key' exists + assert workflowArgs.containsKey("key") : "Error in module '${meta.config.name}': key is a required argument" + + // if 'key' is a closure, apply it to the original key + if (workflowArgs["key"] instanceof Closure) { + workflowArgs["key"] = workflowArgs["key"](meta.config.name) + } + def key = workflowArgs["key"] + assert key instanceof CharSequence : "Expected process argument 'key' to be a String. Found: class ${key.getClass()}" + assert key ==~ /^[a-zA-Z_]\w*$/ : "Error in module '$key': Expected process argument 'key' to consist of only letters, digits or underscores. Found: ${key}" + + // check for any unexpected keys + def expectedKeys = ["key", "directives", "auto", "map", "mapId", "mapData", "mapPassthrough", "filter", "runIf", "fromState", "toState", "args", "renameKeys", "debug"] + def unexpectedKeys = workflowArgs.keySet() - expectedKeys + assert unexpectedKeys.isEmpty() : "Error in module '$key': unexpected arguments to the '.run()' function: '${unexpectedKeys.join("', '")}'" + + // check whether directives exists and apply defaults + assert workflowArgs.containsKey("directives") : "Error in module '$key': directives is a required argument" + assert workflowArgs["directives"] instanceof Map : "Error in module '$key': Expected process argument 'directives' to be a Map. Found: class ${workflowArgs['directives'].getClass()}" + workflowArgs["directives"] = processDirectives(defaultWfArgs.directives + workflowArgs["directives"]) + + // check whether directives exists and apply defaults + assert workflowArgs.containsKey("auto") : "Error in module '$key': auto is a required argument" + assert workflowArgs["auto"] instanceof Map : "Error in module '$key': Expected process argument 'auto' to be a Map. Found: class ${workflowArgs['auto'].getClass()}" + workflowArgs["auto"] = processAuto(defaultWfArgs.auto + workflowArgs["auto"]) + + // auto define publish, if so desired + if (workflowArgs.auto.publish == true && (workflowArgs.directives.publishDir != null ? workflowArgs.directives.publishDir : [:]).isEmpty()) { + // can't assert at this level thanks to the no_publish profile + // assert params.containsKey("publishDir") || params.containsKey("publish_dir") : + // "Error in module '${workflowArgs['key']}': if auto.publish is true, params.publish_dir needs to be defined.\n" + + // " Example: params.publish_dir = \"./output/\"" + def publishDir = getPublishDir() + + if (publishDir != null) { + workflowArgs.directives.publishDir = [[ + path: publishDir, + saveAs: "{ it.startsWith('.') ? null : it }", // don't publish hidden files, by default + mode: "copy" + ]] + } + } + + // auto define transcript, if so desired + if (workflowArgs.auto.transcript == true) { + // can't assert at this level thanks to the no_publish profile + // assert params.containsKey("transcriptsDir") || params.containsKey("transcripts_dir") || params.containsKey("publishDir") || params.containsKey("publish_dir") : + // "Error in module '${workflowArgs['key']}': if auto.transcript is true, either params.transcripts_dir or params.publish_dir needs to be defined.\n" + + // " Example: params.transcripts_dir = \"./transcripts/\"" + def transcriptsDir = + params.containsKey("transcripts_dir") ? params.transcripts_dir : + params.containsKey("transcriptsDir") ? params.transcriptsDir : + params.containsKey("publish_dir") ? params.publish_dir + "/_transcripts" : + params.containsKey("publishDir") ? params.publishDir + "/_transcripts" : + null + if (transcriptsDir != null) { + def timestamp = nextflow.Nextflow.getSession().getWorkflowMetadata().start.format('yyyy-MM-dd_HH-mm-ss') + def transcriptsPublishDir = [ + path: "$transcriptsDir/$timestamp/\${task.process.replaceAll(':', '-')}/\${id}/", + saveAs: "{ it.startsWith('.') ? it.replaceAll('^.', '') : null }", + mode: "copy" + ] + def publishDirs = workflowArgs.directives.publishDir != null ? workflowArgs.directives.publishDir : null ? workflowArgs.directives.publishDir : [] + workflowArgs.directives.publishDir = publishDirs + transcriptsPublishDir + } + } + + // if this is a stubrun, remove certain directives? + if (workflow.stubRun) { + workflowArgs.directives.keySet().removeAll(["publishDir", "cpus", "memory", "label"]) + } + + for (nam in ["map", "mapId", "mapData", "mapPassthrough", "filter", "runIf"]) { + if (workflowArgs.containsKey(nam) && workflowArgs[nam]) { + assert workflowArgs[nam] instanceof Closure : "Error in module '$key': Expected process argument '$nam' to be null or a Closure. Found: class ${workflowArgs[nam].getClass()}" + } + } + + // TODO: should functions like 'map', 'mapId', 'mapData', 'mapPassthrough' be deprecated as well? + for (nam in ["map", "mapData", "mapPassthrough", "renameKeys"]) { + if (workflowArgs.containsKey(nam) && workflowArgs[nam] != null) { + log.warn "module '$key': workflow argument '$nam' is deprecated and will be removed in Viash 0.9.0. Please use 'fromState' and 'toState' instead." + } + } + + // check fromState + workflowArgs["fromState"] = _processFromState(workflowArgs.get("fromState"), key, meta.config) + + // check toState + workflowArgs["toState"] = _processToState(workflowArgs.get("toState"), key, meta.config) + + // return output + return workflowArgs +} + +def _processFromState(fromState, key_, config_) { + assert fromState == null || fromState instanceof Closure || fromState instanceof Map || fromState instanceof List : + "Error in module '$key_': Expected process argument 'fromState' to be null, a Closure, a Map, or a List. Found: class ${fromState.getClass()}" + if (fromState == null) { + return null + } + + // if fromState is a List, convert to map + if (fromState instanceof List) { + // check whether fromstate is a list[string] + assert fromState.every{it instanceof CharSequence} : "Error in module '$key_': fromState is a List, but not all elements are Strings" + fromState = fromState.collectEntries{[it, it]} + } + + // if fromState is a map, convert to closure + if (fromState instanceof Map) { + // check whether fromstate is a map[string, string] + assert fromState.values().every{it instanceof CharSequence} : "Error in module '$key_': fromState is a Map, but not all values are Strings" + assert fromState.keySet().every{it instanceof CharSequence} : "Error in module '$key_': fromState is a Map, but not all keys are Strings" + def fromStateMap = fromState.clone() + def requiredInputNames = meta.config.allArguments.findAll{it.required && it.direction == "Input"}.collect{it.plainName} + // turn the map into a closure to be used later on + fromState = { it -> + def state = it[1] + assert state instanceof Map : "Error in module '$key_': the state is not a Map" + def data = fromStateMap.collectMany{newkey, origkey -> + // check whether newkey corresponds to a required argument + if (state.containsKey(origkey)) { + [[newkey, state[origkey]]] + } else if (!requiredInputNames.contains(origkey)) { + [] + } else { + throw new Exception("Error in module '$key_': fromState key '$origkey' not found in current state") + } + }.collectEntries() + data + } + } + + return fromState +} + +def _processToState(toState, key_, config_) { + if (toState == null) { + toState = { tup -> tup[1] } + } + + // toState should be a closure, map[string, string], or list[string] + assert toState instanceof Closure || toState instanceof Map || toState instanceof List : + "Error in module '$key_': Expected process argument 'toState' to be a Closure, a Map, or a List. Found: class ${toState.getClass()}" + + // if toState is a List, convert to map + if (toState instanceof List) { + // check whether toState is a list[string] + assert toState.every{it instanceof CharSequence} : "Error in module '$key_': toState is a List, but not all elements are Strings" + toState = toState.collectEntries{[it, it]} + } + + // if toState is a map, convert to closure + if (toState instanceof Map) { + // check whether toState is a map[string, string] + assert toState.values().every{it instanceof CharSequence} : "Error in module '$key_': toState is a Map, but not all values are Strings" + assert toState.keySet().every{it instanceof CharSequence} : "Error in module '$key_': toState is a Map, but not all keys are Strings" + def toStateMap = toState.clone() + def requiredOutputNames = config_.allArguments.findAll{it.required && it.direction == "Output"}.collect{it.plainName} + // turn the map into a closure to be used later on + toState = { it -> + def output = it[1] + def state = it[2] + assert output instanceof Map : "Error in module '$key_': the output is not a Map" + assert state instanceof Map : "Error in module '$key_': the state is not a Map" + def extraEntries = toStateMap.collectMany{newkey, origkey -> + // check whether newkey corresponds to a required argument + if (output.containsKey(origkey)) { + [[newkey, output[origkey]]] + } else if (!requiredOutputNames.contains(origkey)) { + [] + } else { + throw new Exception("Error in module '$key_': toState key '$origkey' not found in current output") + } + }.collectEntries() + state + extraEntries + } + } + + return toState +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/workflowFactory/workflowFactory.nf' +def _debug(workflowArgs, debugKey) { + if (workflowArgs.debug) { + view { "process '${workflowArgs.key}' $debugKey tuple: $it" } + } else { + map { it } + } +} + +// depends on: innerWorkflowFactory +def workflowFactory(Map args, Map defaultWfArgs, Map meta) { + def workflowArgs = processWorkflowArgs(args, defaultWfArgs, meta) + def key_ = workflowArgs["key"] + + workflow workflowInstance { + take: input_ + + main: + def chModified = input_ + | checkUniqueIds([:]) + | _debug(workflowArgs, "input") + | map { tuple -> + tuple = deepClone(tuple) + + if (workflowArgs.map) { + tuple = workflowArgs.map(tuple) + } + if (workflowArgs.mapId) { + tuple[0] = workflowArgs.mapId(tuple[0]) + } + if (workflowArgs.mapData) { + tuple[1] = workflowArgs.mapData(tuple[1]) + } + if (workflowArgs.mapPassthrough) { + tuple = tuple.take(2) + workflowArgs.mapPassthrough(tuple.drop(2)) + } + + // check tuple + assert tuple instanceof List : + "Error in module '${key_}': element in channel should be a tuple [id, data, ...otherargs...]\n" + + " Example: [\"id\", [input: file('foo.txt'), arg: 10]].\n" + + " Expected class: List. Found: tuple.getClass() is ${tuple.getClass()}" + assert tuple.size() >= 2 : + "Error in module '${key_}': expected length of tuple in input channel to be two or greater.\n" + + " Example: [\"id\", [input: file('foo.txt'), arg: 10]].\n" + + " Found: tuple.size() == ${tuple.size()}" + + // check id field + if (tuple[0] instanceof GString) { + tuple[0] = tuple[0].toString() + } + assert tuple[0] instanceof CharSequence : + "Error in module '${key_}': first element of tuple in channel should be a String\n" + + " Example: [\"id\", [input: file('foo.txt'), arg: 10]].\n" + + " Found: ${tuple[0]}" + + // match file to input file + if (workflowArgs.auto.simplifyInput && (tuple[1] instanceof Path || tuple[1] instanceof List)) { + def inputFiles = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "input" } + + assert inputFiles.size() == 1 : + "Error in module '${key_}' id '${tuple[0]}'.\n" + + " Anonymous file inputs are only allowed when the process has exactly one file input.\n" + + " Expected: inputFiles.size() == 1. Found: inputFiles.size() is ${inputFiles.size()}" + + tuple[1] = [[ inputFiles[0].plainName, tuple[1] ]].collectEntries() + } + + // check data field + assert tuple[1] instanceof Map : + "Error in module '${key_}' id '${tuple[0]}': second element of tuple in channel should be a Map\n" + + " Example: [\"id\", [input: file('foo.txt'), arg: 10]].\n" + + " Expected class: Map. Found: tuple[1].getClass() is ${tuple[1].getClass()}" + + // rename keys of data field in tuple + if (workflowArgs.renameKeys) { + assert workflowArgs.renameKeys instanceof Map : + "Error renaming data keys in module '${key_}' id '${tuple[0]}'.\n" + + " Example: renameKeys: ['new_key': 'old_key'].\n" + + " Expected class: Map. Found: renameKeys.getClass() is ${workflowArgs.renameKeys.getClass()}" + assert tuple[1] instanceof Map : + "Error renaming data keys in module '${key_}' id '${tuple[0]}'.\n" + + " Expected class: Map. Found: tuple[1].getClass() is ${tuple[1].getClass()}" + + // TODO: allow renameKeys to be a function? + workflowArgs.renameKeys.each { newKey, oldKey -> + assert newKey instanceof CharSequence : + "Error renaming data keys in module '${key_}' id '${tuple[0]}'.\n" + + " Example: renameKeys: ['new_key': 'old_key'].\n" + + " Expected class of newKey: String. Found: newKey.getClass() is ${newKey.getClass()}" + assert oldKey instanceof CharSequence : + "Error renaming data keys in module '${key_}' id '${tuple[0]}'.\n" + + " Example: renameKeys: ['new_key': 'old_key'].\n" + + " Expected class of oldKey: String. Found: oldKey.getClass() is ${oldKey.getClass()}" + assert tuple[1].containsKey(oldKey) : + "Error renaming data keys in module '${key}' id '${tuple[0]}'.\n" + + " Key '$oldKey' is missing in the data map. tuple[1].keySet() is '${tuple[1].keySet()}'" + tuple[1].put(newKey, tuple[1][oldKey]) + } + tuple[1].keySet().removeAll(workflowArgs.renameKeys.collect{ newKey, oldKey -> oldKey }) + } + tuple + } + + + def chRun = null + def chPassthrough = null + if (workflowArgs.runIf) { + def runIfBranch = chModified.branch{ tup -> + run: workflowArgs.runIf(tup[0], tup[1]) + passthrough: true + } + chRun = runIfBranch.run + chPassthrough = runIfBranch.passthrough + } else { + chRun = chModified + chPassthrough = Channel.empty() + } + + def chRunFiltered = workflowArgs.filter ? + chRun | filter{workflowArgs.filter(it)} : + chRun + + def chArgs = workflowArgs.fromState ? + chRunFiltered | map{ + def new_data = workflowArgs.fromState(it.take(2)) + [it[0], new_data] + } : + chRunFiltered | map {tup -> tup.take(2)} + + // fill in defaults + def chArgsWithDefaults = chArgs + | map { tuple -> + def id_ = tuple[0] + def data_ = tuple[1] + + // TODO: could move fromState to here + + // fetch default params from functionality + def defaultArgs = meta.config.allArguments + .findAll { it.containsKey("default") } + .collectEntries { [ it.plainName, it.default ] } + + // fetch overrides in params + def paramArgs = meta.config.allArguments + .findAll { par -> + def argKey = key_ + "__" + par.plainName + params.containsKey(argKey) + } + .collectEntries { [ it.plainName, params[key_ + "__" + it.plainName] ] } + + // fetch overrides in data + def dataArgs = meta.config.allArguments + .findAll { data_.containsKey(it.plainName) } + .collectEntries { [ it.plainName, data_[it.plainName] ] } + + // combine params + def combinedArgs = defaultArgs + paramArgs + workflowArgs.args + dataArgs + + // remove arguments with explicit null values + combinedArgs + .removeAll{_, val -> val == null || val == "viash_no_value" || val == "force_null"} + + combinedArgs = _processInputValues(combinedArgs, meta.config, id_, key_) + + [id_, combinedArgs] + tuple.drop(2) + } + + // TODO: move some of the _meta.join_id wrangling to the safeJoin() function. + def chInitialOutput = chArgsWithDefaults + | _debug(workflowArgs, "processed") + // run workflow + | innerWorkflowFactory(workflowArgs) + // check output tuple + | map { id_, output_ -> + + // see if output map contains metadata + def meta_ = + output_ instanceof Map && output_.containsKey("_meta") ? + output_["_meta"] : + [:] + def join_id = meta_.join_id ?: id_ + + // remove metadata + output_ = output_.findAll{k, v -> k != "_meta"} + + // check value types + output_ = _processOutputValues(output_, meta.config, id_, key_) + + // simplify output if need be + if (workflowArgs.auto.simplifyOutput && output_.size() == 1) { + output_ = output_.values()[0] + } + + [join_id, id_, output_] + } + // | view{"chInitialOutput: ${it.take(3)}"} + + // join the output [prev_id, new_id, output] with the previous state [prev_id, state, ...] + def chNewState = safeJoin(chInitialOutput, chRunFiltered, key_) + // input tuple format: [join_id, id, output, prev_state, ...] + // output tuple format: [join_id, id, new_state, ...] + | map{ tup -> + def new_state = workflowArgs.toState(tup.drop(1).take(3)) + tup.take(2) + [new_state] + tup.drop(4) + } + + if (workflowArgs.auto.publish == "state") { + def chPublish = chNewState + // input tuple format: [join_id, id, new_state, ...] + // output tuple format: [join_id, id, new_state] + | map{ tup -> + tup.take(3) + } + + safeJoin(chPublish, chArgsWithDefaults, key_) + // input tuple format: [join_id, id, new_state, orig_state, ...] + // output tuple format: [id, new_state, orig_state] + | map { tup -> + tup.drop(1).take(3) + } + | publishStatesByConfig(key: key_, config: meta.config) + } + + // remove join_id and meta + chReturn = chNewState + | map { tup -> + // input tuple format: [join_id, id, new_state, ...] + // output tuple format: [id, new_state, ...] + tup.drop(1) + } + | _debug(workflowArgs, "output") + | concat(chPassthrough) + + emit: chReturn + } + + def wf = workflowInstance.cloneWithName(key_) + + // add factory function + wf.metaClass.run = { runArgs -> + workflowFactory(runArgs, workflowArgs, meta) + } + // add config to module for later introspection + wf.metaClass.config = meta.config + + return wf +} + +nextflow.enable.dsl=2 + +// START COMPONENT-SPECIFIC CODE + +// create meta object +meta = [ + "resources_dir": moduleDir.toRealPath().normalize(), + "config": processConfig(readJsonBlob('''{ + "name" : "create_fdata", + "namespace" : "eset", + "version" : "main", + "argument_groups" : [ + { + "name" : "Arguments", + "arguments" : [ + { + "type" : "file", + "name" : "--gtf", + "description" : "Genome annotation file in GTF format.", + "must_exist" : true, + "create_parent" : true, + "required" : true, + "direction" : "input", + "multiple" : false, + "multiple_sep" : ";" + }, + { + "type" : "file", + "name" : "--output", + "description" : "Tab-delimited text file containing information about the 'gene' or 'transcript'\nentries from the input GTF file. The 'transcript' entries are used in case the source\nof the GTF was 'refGene' or 'ncbiRefSeq'. \n", + "default" : [ + "fData.$id.txt" + ], + "must_exist" : true, + "create_parent" : true, + "required" : false, + "direction" : "output", + "multiple" : false, + "multiple_sep" : ";" + } + ] + } + ], + "resources" : [ + { + "type" : "python_script", + "path" : "create_fdata.py", + "is_executable" : true + }, + { + "type" : "file", + "path" : "/src/config/labels.config", + "dest" : "nextflow_labels.config" + } + ], + "description" : "Create a fdata file\n", + "test_resources" : [ + { + "type" : "python_script", + "path" : "test.py", + "is_executable" : true + }, + { + "type" : "file", + "path" : "test_annotation.gtf" + } + ], + "status" : "enabled", + "requirements" : { + "commands" : [ + "ps" + ] + }, + "license" : "MIT", + "links" : { + "repository" : "https://github.com/viash-hub/htrnaseq" + }, + "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" : "main", + "namespace_separator" : "/", + "setup" : [ + { + "type" : "apt", + "packages" : [ + "procps" + ], + "interactive" : false + }, + { + "type" : "python", + "user" : false, + "packages" : [ + "pandas" + ], + "upgrade" : true + } + ], + "test_setup" : [ + { + "type" : "python", + "user" : false, + "packages" : [ + "viashpy" + ], + "upgrade" : true + } + ] + }, + { + "type" : "native", + "id" : "native" + } + ], + "build_info" : { + "config" : "/workdir/root/repo/src/eset/create_fdata/config.vsh.yaml", + "runner" : "nextflow", + "engine" : "docker|native", + "output" : "target/nextflow/eset/create_fdata", + "viash_version" : "0.9.0", + "git_commit" : "65dd41d8b1b4a307735c72320c96c0880c75f17f", + "git_remote" : "https://x-access-token:ghs_McZDF0yobnnHmOEb2Q4JaaB3pzr9mz1VbIOs@github.com/viash-hub/htrnaseq" + }, + "package_config" : { + "name" : "htrnaseq", + "version" : "main", + "description" : "High-throughput pipeline [WIP]\n", + "info" : { + "test_resources" : [ + { + "path" : "gs://viash-hub-test-data/htrnaseq/v1/", + "dest" : "resources_test" + } + ] + }, + "viash_version" : "0.9.0", + "source" : "src", + "target" : "target", + "config_mods" : [ + ".requirements.commands := ['ps']\n.runners[.type == 'nextflow'].config.script := 'includeConfig(\\"nextflow_labels.config\\")'\n.resources += {path: '/src/config/labels.config', dest: 'nextflow_labels.config'}\n", + ".engines += { type: \\"native\\" }", + ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'", + ".engines[.type == 'docker'].target_tag := 'main'" + ], + "keywords" : [ + "bioinformatics", + "sequence", + "high-throughput", + "mapping", + "counting", + "pipeline" + ], + "license" : "MIT", + "organization" : "vsh", + "links" : { + "repository" : "https://github.com/viash-hub/htrnaseq", + "issue_tracker" : "https://github.com/viash-hub/htrnaseq/issues" + } + } +}''')) +] + +// resolve dependencies dependencies (if any) + + +// inner workflow +// inner workflow hook +def innerWorkflowFactory(args) { + def rawScript = '''set -e +tempscript=".viash_script.sh" +cat > "$tempscript" << VIASHMAIN +import logging +import pandas as pd +import numpy as np +from textwrap import fill + + +### VIASH START +# The following code has been auto-generated by Viash. +par = { + 'gtf': $( if [ ! -z ${VIASH_PAR_GTF+x} ]; then echo "r'${VIASH_PAR_GTF//\\'/\\'\\"\\'\\"r\\'}'"; else echo None; fi ), + 'output': $( if [ ! -z ${VIASH_PAR_OUTPUT+x} ]; then echo "r'${VIASH_PAR_OUTPUT//\\'/\\'\\"\\'\\"r\\'}'"; else echo None; fi ) +} +meta = { + 'name': $( if [ ! -z ${VIASH_META_NAME+x} ]; then echo "r'${VIASH_META_NAME//\\'/\\'\\"\\'\\"r\\'}'"; else echo None; fi ), + 'functionality_name': $( if [ ! -z ${VIASH_META_FUNCTIONALITY_NAME+x} ]; then echo "r'${VIASH_META_FUNCTIONALITY_NAME//\\'/\\'\\"\\'\\"r\\'}'"; else echo None; fi ), + 'resources_dir': $( if [ ! -z ${VIASH_META_RESOURCES_DIR+x} ]; then echo "r'${VIASH_META_RESOURCES_DIR//\\'/\\'\\"\\'\\"r\\'}'"; else echo None; fi ), + 'executable': $( if [ ! -z ${VIASH_META_EXECUTABLE+x} ]; then echo "r'${VIASH_META_EXECUTABLE//\\'/\\'\\"\\'\\"r\\'}'"; else echo None; fi ), + 'config': $( if [ ! -z ${VIASH_META_CONFIG+x} ]; then echo "r'${VIASH_META_CONFIG//\\'/\\'\\"\\'\\"r\\'}'"; else echo None; fi ), + 'temp_dir': $( if [ ! -z ${VIASH_META_TEMP_DIR+x} ]; then echo "r'${VIASH_META_TEMP_DIR//\\'/\\'\\"\\'\\"r\\'}'"; else echo None; fi ), + 'cpus': $( if [ ! -z ${VIASH_META_CPUS+x} ]; then echo "int(r'${VIASH_META_CPUS//\\'/\\'\\"\\'\\"r\\'}')"; else echo None; fi ), + 'memory_b': $( if [ ! -z ${VIASH_META_MEMORY_B+x} ]; then echo "int(r'${VIASH_META_MEMORY_B//\\'/\\'\\"\\'\\"r\\'}')"; else echo None; fi ), + 'memory_kb': $( if [ ! -z ${VIASH_META_MEMORY_KB+x} ]; then echo "int(r'${VIASH_META_MEMORY_KB//\\'/\\'\\"\\'\\"r\\'}')"; else echo None; fi ), + 'memory_mb': $( if [ ! -z ${VIASH_META_MEMORY_MB+x} ]; then echo "int(r'${VIASH_META_MEMORY_MB//\\'/\\'\\"\\'\\"r\\'}')"; else echo None; fi ), + 'memory_gb': $( if [ ! -z ${VIASH_META_MEMORY_GB+x} ]; then echo "int(r'${VIASH_META_MEMORY_GB//\\'/\\'\\"\\'\\"r\\'}')"; else echo None; fi ), + 'memory_tb': $( if [ ! -z ${VIASH_META_MEMORY_TB+x} ]; then echo "int(r'${VIASH_META_MEMORY_TB//\\'/\\'\\"\\'\\"r\\'}')"; else echo None; fi ), + 'memory_pb': $( if [ ! -z ${VIASH_META_MEMORY_PB+x} ]; then echo "int(r'${VIASH_META_MEMORY_PB//\\'/\\'\\"\\'\\"r\\'}')"; else echo None; fi ), + 'memory_kib': $( if [ ! -z ${VIASH_META_MEMORY_KIB+x} ]; then echo "int(r'${VIASH_META_MEMORY_KIB//\\'/\\'\\"\\'\\"r\\'}')"; else echo None; fi ), + 'memory_mib': $( if [ ! -z ${VIASH_META_MEMORY_MIB+x} ]; then echo "int(r'${VIASH_META_MEMORY_MIB//\\'/\\'\\"\\'\\"r\\'}')"; else echo None; fi ), + 'memory_gib': $( if [ ! -z ${VIASH_META_MEMORY_GIB+x} ]; then echo "int(r'${VIASH_META_MEMORY_GIB//\\'/\\'\\"\\'\\"r\\'}')"; else echo None; fi ), + 'memory_tib': $( if [ ! -z ${VIASH_META_MEMORY_TIB+x} ]; then echo "int(r'${VIASH_META_MEMORY_TIB//\\'/\\'\\"\\'\\"r\\'}')"; else echo None; fi ), + 'memory_pib': $( if [ ! -z ${VIASH_META_MEMORY_PIB+x} ]; then echo "int(r'${VIASH_META_MEMORY_PIB//\\'/\\'\\"\\'\\"r\\'}')"; else echo None; fi ) +} +dep = { + +} + +### VIASH END + +logger = logging.getLogger() +console_handler = logging.StreamHandler() +logger.addHandler(console_handler) +logger.setLevel(logging.DEBUG) + + +def read_gtf(gtf_path: str) -> pd.DataFrame: + logger.info("Reading %s", gtf_path) + result = pd.read_csv(gtf_path, sep="\\\\t", + header=None, names=("seqname", "source", + "feature", "start", "end", + "score", "strand", "frame", + "attribute"), + dtype={ + "seqname": pd.StringDtype(), + "source": pd.StringDtype(), + "feature": pd.StringDtype(), + "start": pd.Int64Dtype(), + "end": pd.Int64Dtype(), + "score": pd.StringDtype(), + "strand": pd.CategoricalDtype(categories=["+", "-"], + ordered=False), + "frame": pd.StringDtype(), + "attribute": pd.StringDtype(), + }, + comment='#' + ) + logger.info("Done reading %s. Found %d GTF entries ", par["gtf"], result.shape[0]) + logger.info("GTF file is providing information for the following chromosomes: \\\\n%s", + fill(", ".join(result['seqname'].unique()), width=100)) + logger.info("The following sources were specified in the GTF file:\\\\n%s", + ", ".join(result["source"].unique())) + return result + + +def parse_attributes(attributes_series: pd.Series): + attribute_dict = dict() + attributes_list = [attr.strip().split(" ") + for attr in attributes_series["attribute"].strip(";").split(";")] + for (attr_name, attr_value) in attributes_list: + attribute_dict.setdefault(attr_name, []).append(attr_value.strip('"')) + attribute_dict = {attr_name: "|".join(attr_value) + for attr_name, attr_value in attribute_dict.items()} + return pd.Series(attribute_dict) + + +def main(par): + logger.info(f"{meta['name']} started.") + parameters_str = [f'\\\\t{param}: {param_val}\\\\n' for param, param_val in par.items()] + logger.info("Parameters:\\\\n%s", "".join(parameters_str).rstrip()) + gtf_file = read_gtf(par["gtf"]) + sources = set(source for source in gtf_file["source"].unique() if source != "ERCC") + specific_gtf = False + feature = "gene" + if len(sources) == 1 and (source := sources[0]) \\\\ + and (source == "refGene" or source == "ncbiRefSeq"): + feature = "transcript" + specific_gtf = True + logger.info("Found specific GTF from %s, forcing filtering on feature type %s", source, feature) + logger.info("Filtering GTF entries for feature type '%s'.", feature) + gtf_file = gtf_file[gtf_file["feature"] == feature] + logger.info("After filtering %d entries are left.", gtf_file.shape[0]) + logger.info("Parsing the GTF attributes") + annotation = gtf_file[["attribute"]].apply(parse_attributes, result_type="expand", axis=1) + logger.info("Found the following attributes in the GTF:\\\\n%s", ", ".join(annotation.columns)) + annotation = pd.concat([gtf_file.drop(["attribute"], axis=1), annotation], axis=1) + if specific_gtf: + logger.info("Because the source of the GTF is either 'ncbiRefSeq' or 'refGene', which" + "caused forced filtering based on %s, the duplicate genes still need to be dropped.", + feature) + annotation = annotation.drop_duplicates(subset=("gene_id", "gene_name"), keep=False) + logger.info("After dropping duplicates, %d entries are left", annotation.shape[0]) + + # detect ensembl ids + # some GTF files contain version in ENSEMBL, e.g. ENS00000000046319.1 + # we remove the version, because the annotation packages don't contain the version + if "gene_id" in annotation.columns: + logger.info("'gene_id' column was detected in attributes. Performing extra parsing of ENSEMBL ids.") + annotation["ENSEMBL_with_version"] = annotation["gene_id"].where(annotation["gene_id"].str.startswith("ENS")) + annotation["ENSEMBL"] = annotation["ENSEMBL_with_version"].str.replace(r"\\\\.\\\\d+\\$", "", regex=True) + annotation["gene_id"] = annotation["gene_id"].str.replace(r"\\\\.\\\\d+\\$", "", regex=True) + + possible_name_columns = ("Name", "name", "gene_name") + found_columns = list(filter(lambda col_name: col_name in annotation, possible_name_columns)) + # The following code allows to select a value for the SYMBOL column based on the first non-na column + if found_columns: + logger.info("Found one the following columns: %s; which can be used to populate the SYMBOL column", + ", ".join(possible_name_columns)) + # For each row (gtf entry), get the name of the first column that actually holds a value. + column_to_get = annotation.loc[:,found_columns].apply(pd.Series.first_valid_index, axis=1) + counts_per_column = column_to_get.value_counts(dropna=False).to_dict() + counts_per_column_str = [f'\\\\t{col}: {counts}\\\\n' for col, counts in counts_per_column.items()] + logger.info("Frequencies of the origin for the entries in the SYMBOL column:\\\\n%s", + "".join(counts_per_column_str).rstrip()) + # If all columns hold NA for a certain row, first_valid_index will return None. + # Just use the name of the first column. + column_to_get = column_to_get.fillna(found_columns[0]) + # We now have a list one column name per row, use it so select the values + # Loc cannot be used here because 1 value per row is required, + # and loc will select for each row all the columns in columns_to_get + idx, cols = pd.factorize(column_to_get) + symbol_values = annotation.reindex(cols, axis=1).to_numpy()[np.arange(len(annotation)), idx] + annotation["SYMBOL"] = symbol_values + + logger.info("Writing to %s", par["output"]) + annotation = annotation.drop(["score", "source", "frame", "feature"], axis=1) + annotation.to_csv(par["output"], sep="\\\\t", header=True, index=False, na_rep="NA") + logger.info("%s finished", meta['name']) + + +if __name__ == "__main__": + main(par) +VIASHMAIN +python -B "$tempscript" +''' + + return vdsl3WorkflowFactory(args, meta, rawScript) +} + + + +/** + * Generate a workflow for VDSL3 modules. + * + * This function is called by the workflowFactory() function. + * + * Input channel: [id, input_map] + * Output channel: [id, output_map] + * + * Internally, this workflow will convert the input channel + * to a format which the Nextflow module will be able to handle. + */ +def vdsl3WorkflowFactory(Map args, Map meta, String rawScript) { + def key = args["key"] + def processObj = null + + workflow processWf { + take: input_ + main: + + if (processObj == null) { + processObj = _vdsl3ProcessFactory(args, meta, rawScript) + } + + output_ = input_ + | map { tuple -> + def id = tuple[0] + def data_ = tuple[1] + + if (workflow.stubRun) { + // add id if missing + data_ = [id: 'stub'] + data_ + } + + // process input files separately + def inputPaths = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "input" } + .collect { par -> + def val = data_.containsKey(par.plainName) ? data_[par.plainName] : [] + def inputFiles = [] + if (val == null) { + inputFiles = [] + } else if (val instanceof List) { + inputFiles = val + } else if (val instanceof Path) { + inputFiles = [ val ] + } else { + inputFiles = [] + } + if (!workflow.stubRun) { + // throw error when an input file doesn't exist + inputFiles.each{ file -> + assert file.exists() : + "Error in module '${key}' id '${id}' argument '${par.plainName}'.\n" + + " Required input file does not exist.\n" + + " Path: '$file'.\n" + + " Expected input file to exist" + } + } + inputFiles + } + + // remove input files + def argsExclInputFiles = meta.config.allArguments + .findAll { (it.type != "file" || it.direction != "input") && data_.containsKey(it.plainName) } + .collectEntries { par -> + def parName = par.plainName + def val = data_[parName] + if (par.multiple && val instanceof Collection) { + val = val.join(par.multiple_sep) + } + if (par.direction == "output" && par.type == "file") { + val = val + .replaceAll('\\$id', id) + .replaceAll('\\$\\{id\\}', id) + .replaceAll('\\$key', key) + .replaceAll('\\$\\{key\\}', key) + } + [parName, val] + } + + [ id ] + inputPaths + [ argsExclInputFiles, meta.resources_dir ] + } + | processObj + | map { output -> + def outputFiles = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "output" } + .indexed() + .collectEntries{ index, par -> + def out = output[index + 1] + // strip dummy '.exitcode' file from output (see nextflow-io/nextflow#2678) + if (!out instanceof List || out.size() <= 1) { + if (par.multiple) { + out = [] + } else { + assert !par.required : + "Error in module '${key}' id '${output[0]}' argument '${par.plainName}'.\n" + + " Required output file is missing" + out = null + } + } else if (out.size() == 2 && !par.multiple) { + out = out[1] + } else { + out = out.drop(1) + } + [ par.plainName, out ] + } + + // drop null outputs + outputFiles.removeAll{it.value == null} + + [ output[0], outputFiles ] + } + emit: output_ + } + + return processWf +} + +// depends on: session? +def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) { + // autodetect process key + def wfKey = workflowArgs["key"] + def procKeyPrefix = "${wfKey}_process" + def scriptMeta = nextflow.script.ScriptMeta.current() + def existing = scriptMeta.getProcessNames().findAll{it.startsWith(procKeyPrefix)} + def numbers = existing.collect{it.replace(procKeyPrefix, "0").toInteger()} + def newNumber = (numbers + [-1]).max() + 1 + + def procKey = newNumber == 0 ? procKeyPrefix : "$procKeyPrefix$newNumber" + + if (newNumber > 0) { + log.warn "Key for module '${wfKey}' is duplicated.\n", + "If you run a component multiple times in the same workflow,\n" + + "it's recommended you set a unique key for every call,\n" + + "for example: ${wfKey}.run(key: \"foo\")." + } + + // subset directives and convert to list of tuples + def drctv = workflowArgs.directives + + // TODO: unit test the two commands below + // convert publish array into tags + def valueToStr = { val -> + // ignore closures + if (val instanceof CharSequence) { + if (!val.matches('^[{].*[}]$')) { + '"' + val + '"' + } else { + val + } + } else if (val instanceof List) { + "[" + val.collect{valueToStr(it)}.join(", ") + "]" + } else if (val instanceof Map) { + "[" + val.collect{k, v -> k + ": " + valueToStr(v)}.join(", ") + "]" + } else { + val.inspect() + } + } + + // multiple entries allowed: label, publishdir + def drctvStrs = drctv.collect { key, value -> + if (key in ["label", "publishDir"]) { + value.collect{ val -> + if (val instanceof Map) { + "\n$key " + val.collect{ k, v -> k + ": " + valueToStr(v) }.join(", ") + } else if (val == null) { + "" + } else { + "\n$key " + valueToStr(val) + } + }.join() + } else if (value instanceof Map) { + "\n$key " + value.collect{ k, v -> k + ": " + valueToStr(v) }.join(", ") + } else { + "\n$key " + valueToStr(value) + } + }.join() + + def inputPaths = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "input" } + .collect { ', path(viash_par_' + it.plainName + ', stageAs: "_viash_par/' + it.plainName + '_?/*")' } + .join() + + def outputPaths = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "output" } + .collect { par -> + // insert dummy into every output (see nextflow-io/nextflow#2678) + if (!par.multiple) { + ', path{[".exitcode", args.' + par.plainName + ']}' + } else { + ', path{[".exitcode"] + args.' + par.plainName + '}' + } + } + .join() + + // TODO: move this functionality somewhere else? + if (workflowArgs.auto.transcript) { + outputPaths = outputPaths + ', path{[".exitcode", ".command*"]}' + } else { + outputPaths = outputPaths + ', path{[".exitcode"]}' + } + + // create dirs for output files (based on BashWrapper.createParentFiles) + def createParentStr = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "output" && it.create_parent } + .collect { par -> + def contents = "args[\"${par.plainName}\"] instanceof List ? args[\"${par.plainName}\"].join('\" \"') : args[\"${par.plainName}\"]" + "\${ args.containsKey(\"${par.plainName}\") ? \"mkdir_parent '\" + escapeText(${contents}) + \"'\" : \"\" }" + } + .join("\n") + + // construct inputFileExports + def inputFileExports = meta.config.allArguments + .findAll { it.type == "file" && it.direction.toLowerCase() == "input" } + .collect { par -> + def contents = "viash_par_${par.plainName} instanceof List ? viash_par_${par.plainName}.join(\"${par.multiple_sep}\") : viash_par_${par.plainName}" + "\n\${viash_par_${par.plainName}.empty ? \"\" : \"export VIASH_PAR_${par.plainName.toUpperCase()}='\" + escapeText(${contents}) + \"'\"}" + } + + // NOTE: if using docker, use /tmp instead of tmpDir! + def tmpDir = java.nio.file.Paths.get( + System.getenv('NXF_TEMP') ?: + System.getenv('VIASH_TEMP') ?: + System.getenv('VIASH_TMPDIR') ?: + System.getenv('VIASH_TEMPDIR') ?: + System.getenv('VIASH_TMP') ?: + System.getenv('TEMP') ?: + System.getenv('TMPDIR') ?: + System.getenv('TEMPDIR') ?: + System.getenv('TMP') ?: + '/tmp' + ).toAbsolutePath() + + // construct stub + def stub = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "output" } + .collect { par -> + "\${ args.containsKey(\"${par.plainName}\") ? \"touch2 \\\"\" + (args[\"${par.plainName}\"] instanceof String ? args[\"${par.plainName}\"].replace(\"_*\", \"_0\") : args[\"${par.plainName}\"].join('\" \"')) + \"\\\"\" : \"\" }" + } + .join("\n") + + // escape script + def escapedScript = rawScript.replace('\\', '\\\\').replace('$', '\\$').replace('"""', '\\"\\"\\"') + + // publishdir assert + def assertStr = (workflowArgs.auto.publish == true) || workflowArgs.auto.transcript ? + """\nassert task.publishDir.size() > 0: "if auto.publish is true, params.publish_dir needs to be defined.\\n Example: --publish_dir './output/'" """ : + "" + + // generate process string + def procStr = + """nextflow.enable.dsl=2 + | + |def escapeText = { s -> s.toString().replaceAll("'", "'\\\"'\\\"'") } + |process $procKey {$drctvStrs + |input: + | tuple val(id)$inputPaths, val(args), path(resourcesDir, stageAs: ".viash_meta_resources") + |output: + | tuple val("\$id")$outputPaths, optional: true + |stub: + |\"\"\" + |touch2() { mkdir -p "\\\$(dirname "\\\$1")" && touch "\\\$1" ; } + |$stub + |\"\"\" + |script:$assertStr + |def parInject = args + | .findAll{key, value -> value != null} + | .collect{key, value -> "export VIASH_PAR_\${key.toUpperCase()}='\${escapeText(value)}'"} + | .join("\\n") + |\"\"\" + |# meta exports + |export VIASH_META_RESOURCES_DIR="\${resourcesDir}" + |export VIASH_META_TEMP_DIR="${['docker', 'podman', 'charliecloud'].any{ it == workflow.containerEngine } ? '/tmp' : tmpDir}" + |export VIASH_META_NAME="${meta.config.name}" + |# export VIASH_META_EXECUTABLE="\\\$VIASH_META_RESOURCES_DIR/\\\$VIASH_META_NAME" + |export VIASH_META_CONFIG="\\\$VIASH_META_RESOURCES_DIR/.config.vsh.yaml" + |\${task.cpus ? "export VIASH_META_CPUS=\$task.cpus" : "" } + |\${task.memory?.bytes != null ? "export VIASH_META_MEMORY_B=\$task.memory.bytes" : "" } + |if [ ! -z \\\${VIASH_META_MEMORY_B+x} ]; then + | export VIASH_META_MEMORY_KB=\\\$(( (\\\$VIASH_META_MEMORY_B+999) / 1000 )) + | export VIASH_META_MEMORY_MB=\\\$(( (\\\$VIASH_META_MEMORY_KB+999) / 1000 )) + | export VIASH_META_MEMORY_GB=\\\$(( (\\\$VIASH_META_MEMORY_MB+999) / 1000 )) + | export VIASH_META_MEMORY_TB=\\\$(( (\\\$VIASH_META_MEMORY_GB+999) / 1000 )) + | export VIASH_META_MEMORY_PB=\\\$(( (\\\$VIASH_META_MEMORY_TB+999) / 1000 )) + | export VIASH_META_MEMORY_KIB=\\\$(( (\\\$VIASH_META_MEMORY_B+1023) / 1024 )) + | export VIASH_META_MEMORY_MIB=\\\$(( (\\\$VIASH_META_MEMORY_KIB+1023) / 1024 )) + | export VIASH_META_MEMORY_GIB=\\\$(( (\\\$VIASH_META_MEMORY_MIB+1023) / 1024 )) + | export VIASH_META_MEMORY_TIB=\\\$(( (\\\$VIASH_META_MEMORY_GIB+1023) / 1024 )) + | export VIASH_META_MEMORY_PIB=\\\$(( (\\\$VIASH_META_MEMORY_TIB+1023) / 1024 )) + |fi + | + |# meta synonyms + |export VIASH_TEMP="\\\$VIASH_META_TEMP_DIR" + |export TEMP_DIR="\\\$VIASH_META_TEMP_DIR" + | + |# create output dirs if need be + |function mkdir_parent { + | for file in "\\\$@"; do + | mkdir -p "\\\$(dirname "\\\$file")" + | done + |} + |$createParentStr + | + |# argument exports${inputFileExports.join()} + |\$parInject + | + |# process script + |${escapedScript} + |\"\"\" + |} + |""".stripMargin() + + // TODO: print on debug + // if (workflowArgs.debug == true) { + // println("######################\n$procStr\n######################") + // } + + // write process to temp file + def tempFile = java.nio.file.Files.createTempFile("viash-process-${procKey}-", ".nf") + addShutdownHook { java.nio.file.Files.deleteIfExists(tempFile) } + tempFile.text = procStr + + // create process from temp file + def binding = new nextflow.script.ScriptBinding([:]) + def session = nextflow.Nextflow.getSession() + def parser = new nextflow.script.ScriptParser(session) + .setModule(true) + .setBinding(binding) + def moduleScript = parser.runScript(tempFile) + .getScript() + + // register module in meta + def module = new nextflow.script.IncludeDef.Module(name: procKey) + scriptMeta.addModule(moduleScript, module.name, module.alias) + + // retrieve and return process from meta + return scriptMeta.getProcess(procKey) +} + +// defaults +meta["defaults"] = [ + // key to be used to trace the process and determine output names + key: null, + + // fixed arguments to be passed to script + args: [:], + + // default directives + directives: readJsonBlob('''{ + "container" : { + "registry" : "images.viash-hub.com", + "image" : "vsh/htrnaseq/eset/create_fdata", + "tag" : "main" + }, + "tag" : "$id" +}'''), + + // auto settings + auto: readJsonBlob('''{ + "simplifyInput" : true, + "simplifyOutput" : false, + "transcript" : false, + "publish" : false +}'''), + + // Apply a map over the incoming tuple + // Example: `{ tup -> [ tup[0], [input: tup[1].output] ] + tup.drop(2) }` + map: null, + + // Apply a map over the ID element of a tuple (i.e. the first element) + // Example: `{ id -> id + "_foo" }` + mapId: null, + + // Apply a map over the data element of a tuple (i.e. the second element) + // Example: `{ data -> [ input: data.output ] }` + mapData: null, + + // Apply a map over the passthrough elements of a tuple (i.e. the tuple excl. the first two elements) + // Example: `{ pt -> pt.drop(1) }` + mapPassthrough: null, + + // Filter the channel + // Example: `{ tup -> tup[0] == "foo" }` + filter: null, + + // Choose whether or not to run the component on the tuple if the condition is true. + // Otherwise, the tuple will be passed through. + // Example: `{ tup -> tup[0] != "skip_this" }` + runIf: null, + + // Rename keys in the data field of the tuple (i.e. the second element) + // Will likely be deprecated in favour of `fromState`. + // Example: `[ "new_key": "old_key" ]` + renameKeys: null, + + // Fetch data from the state and pass it to the module without altering the current state. + // + // `fromState` should be `null`, `List[String]`, `Map[String, String]` or a function. + // + // - If it is `null`, the state will be passed to the module as is. + // - If it is a `List[String]`, the data will be the values of the state at the given keys. + // - If it is a `Map[String, String]`, the data will be the values of the state at the given keys, with the keys renamed according to the map. + // - If it is a function, the tuple (`[id, state]`) in the channel will be passed to the function, and the result will be used as the data. + // + // Example: `{ id, state -> [input: state.fastq_file] }` + // Default: `null` + fromState: null, + + // Determine how the state should be updated after the module has been run. + // + // `toState` should be `null`, `List[String]`, `Map[String, String]` or a function. + // + // - If it is `null`, the state will be replaced with the output of the module. + // - If it is a `List[String]`, the state will be updated with the values of the data at the given keys. + // - If it is a `Map[String, String]`, the state will be updated with the values of the data at the given keys, with the keys renamed according to the map. + // - If it is a function, a tuple (`[id, output, state]`) will be passed to the function, and the result will be used as the new state. + // + // Example: `{ id, output, state -> state + [counts: state.output] }` + // Default: `{ id, output, state -> output }` + toState: null, + + // Whether or not to print debug messages + // Default: `false` + debug: false +] + +// initialise default workflow +meta["workflow"] = workflowFactory([key: meta.config.name], meta.defaults, meta) + +// add workflow to environment +nextflow.script.ScriptMeta.current().addDefinition(meta.workflow) + +// anonymous workflow for running this module as a standalone +workflow { + // add id argument if it's not already in the config + // TODO: deep copy + def newConfig = deepClone(meta.config) + def newParams = deepClone(params) + + def argsContainsId = newConfig.allArguments.any{it.plainName == "id"} + if (!argsContainsId) { + def idArg = [ + 'name': '--id', + 'required': false, + 'type': 'string', + 'description': 'A unique id for every entry.', + 'multiple': false + ] + newConfig.arguments.add(0, idArg) + newConfig = processConfig(newConfig) + } + if (!newParams.containsKey("id")) { + newParams.id = "run" + } + + helpMessage(newConfig) + + channelFromParams(newParams, newConfig) + // make sure id is not in the state if id is not in the args + | map {id, state -> + if (!argsContainsId) { + [id, state.findAll{k, v -> k != "id"}] + } else { + [id, state] + } + } + | meta.workflow.run( + auto: [ publish: "state" ] + ) +} + +// END COMPONENT-SPECIFIC CODE diff --git a/target/nextflow/eset/create_fdata/nextflow.config b/target/nextflow/eset/create_fdata/nextflow.config new file mode 100644 index 00000000..9487f5c3 --- /dev/null +++ b/target/nextflow/eset/create_fdata/nextflow.config @@ -0,0 +1,125 @@ +manifest { + name = 'eset/create_fdata' + mainScript = 'main.nf' + nextflowVersion = '!>=20.12.1-edge' + version = 'main' + description = 'Create a fdata file\n' +} + +process.container = 'nextflow/bash:latest' + +// detect tempdir +tempDir = java.nio.file.Paths.get( + System.getenv('NXF_TEMP') ?: + System.getenv('VIASH_TEMP') ?: + System.getenv('TEMPDIR') ?: + System.getenv('TMPDIR') ?: + '/tmp' +).toAbsolutePath() + +profiles { + no_publish { + process { + withName: '.*' { + publishDir = [ + enabled: false + ] + } + } + } + mount_temp { + docker.temp = tempDir + podman.temp = tempDir + charliecloud.temp = tempDir + } + docker { + docker.enabled = true + // docker.userEmulation = true + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + singularity { + singularity.enabled = true + singularity.autoMounts = true + docker.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + podman { + podman.enabled = true + docker.enabled = false + singularity.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + shifter { + shifter.enabled = true + docker.enabled = false + singularity.enabled = false + podman.enabled = false + charliecloud.enabled = false + } + charliecloud { + charliecloud.enabled = true + docker.enabled = false + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + } +} + +process{ + withLabel: mem1gb { memory = 1000000000.B } + withLabel: mem2gb { memory = 2000000000.B } + withLabel: mem5gb { memory = 5000000000.B } + withLabel: mem10gb { memory = 10000000000.B } + withLabel: mem20gb { memory = 20000000000.B } + withLabel: mem50gb { memory = 50000000000.B } + withLabel: mem100gb { memory = 100000000000.B } + withLabel: mem200gb { memory = 200000000000.B } + withLabel: mem500gb { memory = 500000000000.B } + withLabel: mem1tb { memory = 1000000000000.B } + withLabel: mem2tb { memory = 2000000000000.B } + withLabel: mem5tb { memory = 5000000000000.B } + withLabel: mem10tb { memory = 10000000000000.B } + withLabel: mem20tb { memory = 20000000000000.B } + withLabel: mem50tb { memory = 50000000000000.B } + withLabel: mem100tb { memory = 100000000000000.B } + withLabel: mem200tb { memory = 200000000000000.B } + withLabel: mem500tb { memory = 500000000000000.B } + withLabel: mem1gib { memory = 1073741824.B } + withLabel: mem2gib { memory = 2147483648.B } + withLabel: mem4gib { memory = 4294967296.B } + withLabel: mem8gib { memory = 8589934592.B } + withLabel: mem16gib { memory = 17179869184.B } + withLabel: mem32gib { memory = 34359738368.B } + withLabel: mem64gib { memory = 68719476736.B } + withLabel: mem128gib { memory = 137438953472.B } + withLabel: mem256gib { memory = 274877906944.B } + withLabel: mem512gib { memory = 549755813888.B } + withLabel: mem1tib { memory = 1099511627776.B } + withLabel: mem2tib { memory = 2199023255552.B } + withLabel: mem4tib { memory = 4398046511104.B } + withLabel: mem8tib { memory = 8796093022208.B } + withLabel: mem16tib { memory = 17592186044416.B } + withLabel: mem32tib { memory = 35184372088832.B } + withLabel: mem64tib { memory = 70368744177664.B } + withLabel: mem128tib { memory = 140737488355328.B } + withLabel: mem256tib { memory = 281474976710656.B } + withLabel: mem512tib { memory = 562949953421312.B } + withLabel: cpu1 { cpus = 1 } + withLabel: cpu2 { cpus = 2 } + withLabel: cpu5 { cpus = 5 } + withLabel: cpu10 { cpus = 10 } + withLabel: cpu20 { cpus = 20 } + withLabel: cpu50 { cpus = 50 } + withLabel: cpu100 { cpus = 100 } + withLabel: cpu200 { cpus = 200 } + withLabel: cpu500 { cpus = 500 } + withLabel: cpu1000 { cpus = 1000 } +} + +includeConfig("nextflow_labels.config") diff --git a/target/nextflow/eset/create_fdata/nextflow_labels.config b/target/nextflow/eset/create_fdata/nextflow_labels.config new file mode 100644 index 00000000..66f5e21c --- /dev/null +++ b/target/nextflow/eset/create_fdata/nextflow_labels.config @@ -0,0 +1,105 @@ +executor { + $k8s { + submitRateLimit = '10sec' + pollInterval = '1 sec' + } +} + +process { + container = 'nextflow/bash:latest' + + // default resources + memory = { 8.Gb * task.attempt } + cpus = 8 + maxForks = 36 + + // Retry for exit codes that have something to do with memory issues + errorStrategy = { task.exitStatus in 137..140 ? 'retry' : 'terminate' } + maxRetries = 3 + maxMemory = 192.GB + + // Resource labels + withLabel: verylowcpu { cpus = 2 } + withLabel: lowcpu { cpus = 8 } + withLabel: midcpu { cpus = 16 } + withLabel: highcpu { cpus = 32 } + + withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } } + withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } } + withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } } + withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } } + +} + +profiles { + // detect tempdir + tempDir = java.nio.file.Paths.get( + System.getenv('NXF_TEMP') ?: + System.getenv('VIASH_TEMP') ?: + System.getenv('TEMPDIR') ?: + System.getenv('TMPDIR') ?: + '/tmp' + ).toAbsolutePath() + + mount_temp { + docker.temp = tempDir + podman.temp = tempDir + charliecloud.temp = tempDir + } + + no_publish { + process { + withName: '.*' { + publishDir = [ + enabled: false + ] + } + } + } + + docker { + docker.fixOwnership = true + docker.enabled = true + // docker.userEmulation = true + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + + local { + // This config is for local processing. + process { + maxMemory = 25.GB + withLabel: verylowcpu { cpus = 2 } + withLabel: lowcpu { cpus = 4 } + withLabel: midcpu { cpus = 6 } + withLabel: highcpu { cpus = 12 } + + withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } } + withLabel: midmem { memory = { get_memory( 12.GB * task.attempt ) } } + withLabel: highmem { memory = { get_memory( 20.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) + } + } diff --git a/target/nextflow/eset/create_fdata/nextflow_schema.json b/target/nextflow/eset/create_fdata/nextflow_schema.json new file mode 100644 index 00000000..1917415c --- /dev/null +++ b/target/nextflow/eset/create_fdata/nextflow_schema.json @@ -0,0 +1,81 @@ +{ +"$schema": "http://json-schema.org/draft-07/schema", +"title": "create_fdata", +"description": "Create a fdata file\n", +"type": "object", +"definitions": { + + + + "arguments" : { + "title": "Arguments", + "type": "object", + "description": "No description", + "properties": { + + + "gtf": { + "type": + "string", + "description": "Type: `file`, required. Genome annotation file in GTF format", + "help_text": "Type: `file`, required. Genome annotation file in GTF format." + + } + + + , + "output": { + "type": + "string", + "description": "Type: `file`, default: `$id.$key.output.txt`. Tab-delimited text file containing information about the \u0027gene\u0027 or \u0027transcript\u0027\nentries from the input GTF file", + "help_text": "Type: `file`, default: `$id.$key.output.txt`. Tab-delimited text file containing information about the \u0027gene\u0027 or \u0027transcript\u0027\nentries from the input GTF file. The \u0027transcript\u0027 entries are used in case the source\nof the GTF was \u0027refGene\u0027 or \u0027ncbiRefSeq\u0027. \n" + , + "default": "$id.$key.output.txt" + } + + +} +}, + + + "nextflow input-output arguments" : { + "title": "Nextflow input-output arguments", + "type": "object", + "description": "Input/output parameters for Nextflow itself. Please note that both publishDir and publish_dir are supported but at least one has to be configured.", + "properties": { + + + "publish_dir": { + "type": + "string", + "description": "Type: `string`, required, example: `output/`. Path to an output directory", + "help_text": "Type: `string`, required, example: `output/`. Path to an output directory." + + } + + + , + "param_list": { + "type": + "string", + "description": "Type: `string`, example: `my_params.yaml`. Allows inputting multiple parameter sets to initialise a Nextflow channel", + "help_text": "Type: `string`, example: `my_params.yaml`. Allows inputting multiple parameter sets to initialise a Nextflow channel. A `param_list` can either be a list of maps, a csv file, a json file, a yaml file, or simply a yaml blob.\n\n* A list of maps (as-is) where the keys of each map corresponds to the arguments of the pipeline. Example: in a `nextflow.config` file: `param_list: [ [\u0027id\u0027: \u0027foo\u0027, \u0027input\u0027: \u0027foo.txt\u0027], [\u0027id\u0027: \u0027bar\u0027, \u0027input\u0027: \u0027bar.txt\u0027] ]`.\n* A csv file should have column names which correspond to the different arguments of this pipeline. Example: `--param_list data.csv` with columns `id,input`.\n* A json or a yaml file should be a list of maps, each of which has keys corresponding to the arguments of the pipeline. Example: `--param_list data.json` with contents `[ {\u0027id\u0027: \u0027foo\u0027, \u0027input\u0027: \u0027foo.txt\u0027}, {\u0027id\u0027: \u0027bar\u0027, \u0027input\u0027: \u0027bar.txt\u0027} ]`.\n* A yaml blob can also be passed directly as a string. Example: `--param_list \"[ {\u0027id\u0027: \u0027foo\u0027, \u0027input\u0027: \u0027foo.txt\u0027}, {\u0027id\u0027: \u0027bar\u0027, \u0027input\u0027: \u0027bar.txt\u0027} ]\"`.\n\nWhen passing a csv, json or yaml file, relative path names are relativized to the location of the parameter file. No relativation is performed when `param_list` is a list of maps (as-is) or a yaml blob.", + "hidden": true + + } + + +} +} +}, +"allOf": [ + + { + "$ref": "#/definitions/arguments" + }, + + { + "$ref": "#/definitions/nextflow input-output arguments" + } +] +} diff --git a/target/nextflow/eset/create_pdata/.config.vsh.yaml b/target/nextflow/eset/create_pdata/.config.vsh.yaml new file mode 100644 index 00000000..64fab900 --- /dev/null +++ b/target/nextflow/eset/create_pdata/.config.vsh.yaml @@ -0,0 +1,199 @@ +name: "create_pdata" +namespace: "eset" +version: "main" +argument_groups: +- name: "Arguments" + arguments: + - type: "file" + name: "--star_stats_file" + description: "Tab-delimited text file containing statistics (per column) that\ + \ were generated\nfrom the STAR log files (Log.final.out, Summary.csv, ReadsPerGene.out.tab).\n\ + Each entry (row) in the file describes the values for one well (barcode).\n" + info: null + must_exist: true + create_parent: true + required: true + direction: "input" + multiple: false + multiple_sep: ";" + - type: "file" + name: "--nrReadsNrGenesPerChromPool" + description: "Pivot table in tsv format of the combined nrReadsNrGenesPerChrom\ + \ files from STAR. \nDescribes per chromosome (as columns) the number of reads,\ + \ as well as the total number \nof reads per cell barcode and the percentage\ + \ of nuclear, ERCC and mitochondrial\nreads.\n" + info: null + must_exist: true + create_parent: true + required: true + direction: "input" + multiple: false + multiple_sep: ";" + - type: "file" + name: "--output" + info: null + default: + - "pData.$id.txt" + must_exist: true + create_parent: true + required: false + direction: "output" + multiple: false + multiple_sep: ";" +resources: +- type: "python_script" + path: "create_pdata.py" + is_executable: true +- type: "file" + path: "nextflow_labels.config" + dest: "nextflow_labels.config" +description: "Create a pdata file by combining the mapping statistics \n" +test_resources: +- type: "python_script" + path: "test.py" + is_executable: true +- type: "file" + path: "nrReadsNrGenesPerChromPool.txt" +- type: "file" + path: "starLogs.txt" +info: null +status: "enabled" +requirements: + commands: + - "ps" +license: "MIT" +links: + repository: "https://github.com/viash-hub/htrnaseq" +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: "main" + namespace_separator: "/" + setup: + - type: "apt" + packages: + - "procps" + interactive: false + - type: "python" + user: false + packages: + - "pandas" + upgrade: true + test_setup: + - type: "python" + user: false + packages: + - "viashpy" + upgrade: true + entrypoint: [] + cmd: null +- type: "native" + id: "native" +build_info: + config: "src/eset/create_pdata/config.vsh.yaml" + runner: "nextflow" + engine: "docker|native" + output: "target/nextflow/eset/create_pdata" + executable: "target/nextflow/eset/create_pdata/main.nf" + viash_version: "0.9.0" + git_commit: "65dd41d8b1b4a307735c72320c96c0880c75f17f" + git_remote: "https://x-access-token:ghs_McZDF0yobnnHmOEb2Q4JaaB3pzr9mz1VbIOs@github.com/viash-hub/htrnaseq" +package_config: + name: "htrnaseq" + version: "main" + description: "High-throughput pipeline [WIP]\n" + info: + test_resources: + - path: "gs://viash-hub-test-data/htrnaseq/v1/" + dest: "resources_test" + viash_version: "0.9.0" + source: "src" + target: "target" + config_mods: + - ".requirements.commands := ['ps']\n.runners[.type == 'nextflow'].config.script\ + \ := 'includeConfig(\"nextflow_labels.config\")'\n.resources += {path: '/src/config/labels.config',\ + \ dest: 'nextflow_labels.config'}\n" + - ".engines += { type: \"native\" }" + - ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'" + - ".engines[.type == 'docker'].target_tag := 'main'" + keywords: + - "bioinformatics" + - "sequence" + - "high-throughput" + - "mapping" + - "counting" + - "pipeline" + license: "MIT" + organization: "vsh" + links: + repository: "https://github.com/viash-hub/htrnaseq" + issue_tracker: "https://github.com/viash-hub/htrnaseq/issues" diff --git a/target/nextflow/eset/create_pdata/main.nf b/target/nextflow/eset/create_pdata/main.nf new file mode 100644 index 00000000..6c0a3e8f --- /dev/null +++ b/target/nextflow/eset/create_pdata/main.nf @@ -0,0 +1,3625 @@ +// create_pdata main +// +// This wrapper script is auto-generated by viash 0.9.0 and is thus a derivative +// work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data +// Intuitive. +// +// The component may contain files which fall under a different license. The +// authors of this component should specify the license in the header of such +// files, or include a separate license file detailing the licenses of all included +// files. + +//////////////////////////// +// VDSL3 helper functions // +//////////////////////////// + +// helper file: 'src/main/resources/io/viash/runners/nextflow/arguments/_checkArgumentType.nf' +class UnexpectedArgumentTypeException extends Exception { + String errorIdentifier + String stage + String plainName + String expectedClass + String foundClass + + // ${key ? " in module '$key'" : ""}${id ? " id '$id'" : ""} + UnexpectedArgumentTypeException(String errorIdentifier, String stage, String plainName, String expectedClass, String foundClass) { + super("Error${errorIdentifier ? " $errorIdentifier" : ""}:${stage ? " $stage" : "" } argument '${plainName}' has the wrong type. " + + "Expected type: ${expectedClass}. Found type: ${foundClass}") + this.errorIdentifier = errorIdentifier + this.stage = stage + this.plainName = plainName + this.expectedClass = expectedClass + this.foundClass = foundClass + } +} + +/** + * Checks if the given value is of the expected type. If not, an exception is thrown. + * + * @param stage The stage of the argument (input or output) + * @param par The parameter definition + * @param value The value to check + * @param errorIdentifier The identifier to use in the error message + * @return The value, if it is of the expected type + * @throws UnexpectedArgumentTypeException If the value is not of the expected type +*/ +def _checkArgumentType(String stage, Map par, Object value, String errorIdentifier) { + // expectedClass will only be != null if value is not of the expected type + def expectedClass = null + def foundClass = null + + // todo: split if need be + + if (!par.required && value == null) { + expectedClass = null + } else if (par.multiple) { + if (value !instanceof Collection) { + value = [value] + } + + // split strings + value = value.collectMany{ val -> + if (val instanceof String) { + // collect() to ensure that the result is a List and not simply an array + val.split(par.multiple_sep).collect() + } else { + [val] + } + } + + // process globs + if (par.type == "file" && par.direction == "input") { + value = value.collect{ it instanceof String ? file(it, hidden: true) : it }.flatten() + } + + // check types of elements in list + try { + value = value.collect { listVal -> + _checkArgumentType(stage, par + [multiple: false], listVal, errorIdentifier) + } + } catch (UnexpectedArgumentTypeException e) { + expectedClass = "List[${e.expectedClass}]" + foundClass = "List[${e.foundClass}]" + } + } else if (par.type == "string") { + // cast to string if need be + if (value instanceof GString) { + value = value.toString() + } + expectedClass = value instanceof String ? null : "String" + } else if (par.type == "integer") { + // cast to integer if need be + if (value instanceof String) { + try { + value = value.toInteger() + } catch (NumberFormatException e) { + // do nothing + } + } + if (value instanceof java.math.BigInteger) { + value = value.intValue() + } + expectedClass = value instanceof Integer ? null : "Integer" + } else if (par.type == "long") { + // cast to long if need be + if (value instanceof String) { + try { + value = value.toLong() + } catch (NumberFormatException e) { + // do nothing + } + } + if (value instanceof Integer) { + value = value.toLong() + } + expectedClass = value instanceof Long ? null : "Long" + } else if (par.type == "double") { + // cast to double if need be + if (value instanceof String) { + try { + value = value.toDouble() + } catch (NumberFormatException e) { + // do nothing + } + } + if (value instanceof java.math.BigDecimal) { + value = value.doubleValue() + } + if (value instanceof Float) { + value = value.toDouble() + } + expectedClass = value instanceof Double ? null : "Double" + } else if (par.type == "boolean" | par.type == "boolean_true" | par.type == "boolean_false") { + // cast to boolean if need be + if (value instanceof String) { + def valueLower = value.toLowerCase() + if (valueLower == "true") { + value = true + } else if (valueLower == "false") { + value = false + } + } + expectedClass = value instanceof Boolean ? null : "Boolean" + } else if (par.type == "file" && (par.direction == "input" || stage == "output")) { + // cast to path if need be + if (value instanceof String) { + value = file(value, hidden: true) + } + if (value instanceof File) { + value = value.toPath() + } + expectedClass = value instanceof Path ? null : "Path" + } else if (par.type == "file" && stage == "input" && par.direction == "output") { + // cast to string if need be + if (value instanceof GString) { + value = value.toString() + } + expectedClass = value instanceof String ? null : "String" + } else { + // didn't find a match for par.type + expectedClass = par.type + } + + if (expectedClass != null) { + if (foundClass == null) { + foundClass = value.getClass().getName() + } + throw new UnexpectedArgumentTypeException(errorIdentifier, stage, par.plainName, expectedClass, foundClass) + } + + return value +} +// helper file: 'src/main/resources/io/viash/runners/nextflow/arguments/_processInputValues.nf' +Map _processInputValues(Map inputs, Map config, String id, String key) { + if (!workflow.stubRun) { + config.allArguments.each { arg -> + if (arg.required) { + assert inputs.containsKey(arg.plainName) && inputs.get(arg.plainName) != null : + "Error in module '${key}' id '${id}': required input argument '${arg.plainName}' is missing" + } + } + + inputs = inputs.collectEntries { name, value -> + def par = config.allArguments.find { it.plainName == name && (it.direction == "input" || it.type == "file") } + assert par != null : "Error in module '${key}' id '${id}': '${name}' is not a valid input argument" + + value = _checkArgumentType("input", par, value, "in module '$key' id '$id'") + + [ name, value ] + } + } + return inputs +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/arguments/_processOutputValues.nf' +Map _processOutputValues(Map outputs, Map config, String id, String key) { + if (!workflow.stubRun) { + config.allArguments.each { arg -> + if (arg.direction == "output" && arg.required) { + assert outputs.containsKey(arg.plainName) && outputs.get(arg.plainName) != null : + "Error in module '${key}' id '${id}': required output argument '${arg.plainName}' is missing" + } + } + + outputs = outputs.collectEntries { name, value -> + def par = config.allArguments.find { it.plainName == name && it.direction == "output" } + assert par != null : "Error in module '${key}' id '${id}': '${name}' is not a valid output argument" + + value = _checkArgumentType("output", par, value, "in module '$key' id '$id'") + + [ name, value ] + } + } + return outputs +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/IDChecker.nf' +class IDChecker { + final def items = [] as Set + + @groovy.transform.WithWriteLock + boolean observe(String item) { + if (items.contains(item)) { + return false + } else { + items << item + return true + } + } + + @groovy.transform.WithReadLock + boolean contains(String item) { + return items.contains(item) + } + + @groovy.transform.WithReadLock + Set getItems() { + return items.clone() + } +} +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/_checkUniqueIds.nf' + +/** + * Check if the ids are unique across parameter sets + * + * @param parameterSets a list of parameter sets. + */ +private void _checkUniqueIds(List>> parameterSets) { + def ppIds = parameterSets.collect{it[0]} + assert ppIds.size() == ppIds.unique().size() : "All argument sets should have unique ids. Detected ids: $ppIds" +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/_getChild.nf' + +// helper functions for reading params from file // +def _getChild(parent, child) { + if (child.contains("://") || java.nio.file.Paths.get(child).isAbsolute()) { + child + } else { + def parentAbsolute = java.nio.file.Paths.get(parent).toAbsolutePath().toString() + parentAbsolute.replaceAll('/[^/]*$', "/") + child + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/_parseParamList.nf' +/** + * Figure out the param list format based on the file extension + * + * @param param_list A String containing the path to the parameter list file. + * + * @return A String containing the format of the parameter list file. + */ +def _paramListGuessFormat(param_list) { + if (param_list !instanceof String) { + "asis" + } else if (param_list.endsWith(".csv")) { + "csv" + } else if (param_list.endsWith(".json") || param_list.endsWith(".jsn")) { + "json" + } else if (param_list.endsWith(".yaml") || param_list.endsWith(".yml")) { + "yaml" + } else { + "yaml_blob" + } +} + + +/** + * Read the param list + * + * @param param_list One of the following: + * - A String containing the path to the parameter list file (csv, json or yaml), + * - A yaml blob of a list of maps (yaml_blob), + * - Or a groovy list of maps (asis). + * @param config A Map of the Viash configuration. + * + * @return A List of Maps containing the parameters. + */ +def _parseParamList(param_list, Map config) { + // first determine format by extension + def paramListFormat = _paramListGuessFormat(param_list) + + def paramListPath = (paramListFormat != "asis" && paramListFormat != "yaml_blob") ? + file(param_list, hidden: true) : + null + + // get the correct parser function for the detected params_list format + def paramSets = [] + if (paramListFormat == "asis") { + paramSets = param_list + } else if (paramListFormat == "yaml_blob") { + paramSets = readYamlBlob(param_list) + } else if (paramListFormat == "yaml") { + paramSets = readYaml(paramListPath) + } else if (paramListFormat == "json") { + paramSets = readJson(paramListPath) + } else if (paramListFormat == "csv") { + paramSets = readCsv(paramListPath) + } else { + error "Format of provided --param_list not recognised.\n" + + "Found: '$paramListFormat'.\n" + + "Expected: a csv file, a json file, a yaml file,\n" + + "a yaml blob or a groovy list of maps." + } + + // data checks + assert paramSets instanceof List: "--param_list should contain a list of maps" + for (value in paramSets) { + assert value instanceof Map: "--param_list should contain a list of maps" + } + + // id is argument + def idIsArgument = config.allArguments.any{it.plainName == "id"} + + // Reformat from List to List> by adding the ID as first element of a Tuple2 + paramSets = paramSets.collect({ data -> + def id = data.id + if (!idIsArgument) { + data = data.findAll{k, v -> k != "id"} + } + [id, data] + }) + + // Split parameters with 'multiple: true' + paramSets = paramSets.collect({ id, data -> + data = _splitParams(data, config) + [id, data] + }) + + // The paths of input files inside a param_list file may have been specified relatively to the + // location of the param_list file. These paths must be made absolute. + if (paramListPath) { + paramSets = paramSets.collect({ id, data -> + def new_data = data.collectEntries{ parName, parValue -> + def par = config.allArguments.find{it.plainName == parName} + if (par && par.type == "file" && par.direction == "input") { + if (parValue instanceof Collection) { + parValue = parValue.collectMany{path -> + def x = _resolveSiblingIfNotAbsolute(path, paramListPath) + x instanceof Collection ? x : [x] + } + } else { + parValue = _resolveSiblingIfNotAbsolute(parValue, paramListPath) + } + } + [parName, parValue] + } + [id, new_data] + }) + } + + return paramSets +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/_splitParams.nf' +/** + * Split parameters for arguments that accept multiple values using their separator + * + * @param paramList A Map containing parameters to split. + * @param config A Map of the Viash configuration. This Map can be generated from the config file + * using the readConfig() function. + * + * @return A Map of parameters where the parameter values have been split into a list using + * their seperator. + */ +Map _splitParams(Map parValues, Map config){ + def parsedParamValues = parValues.collectEntries { parName, parValue -> + def parameterSettings = config.allArguments.find({it.plainName == parName}) + + if (!parameterSettings) { + // if argument is not found, do not alter + return [parName, parValue] + } + if (parameterSettings.multiple) { // Check if parameter can accept multiple values + if (parValue instanceof Collection) { + parValue = parValue.collect{it instanceof String ? it.split(parameterSettings.multiple_sep) : it } + } else if (parValue instanceof String) { + parValue = parValue.split(parameterSettings.multiple_sep) + } else if (parValue == null) { + parValue = [] + } else { + parValue = [ parValue ] + } + parValue = parValue.flatten() + } + // For all parameters check if multiple values are only passed for + // arguments that allow it. Quietly simplify lists of length 1. + if (!parameterSettings.multiple && parValue instanceof Collection) { + assert parValue.size() == 1 : + "Error: argument ${parName} has too many values.\n" + + " Expected amount: 1. Found: ${parValue.size()}" + parValue = parValue[0] + } + [parName, parValue] + } + return parsedParamValues +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/channelFromParams.nf' +/** + * Parse nextflow parameters based on settings defined in a viash config. + * Return a list of parameter sets, each parameter set corresponding to + * an event in a nextflow channel. The output from this function can be used + * with Channel.fromList to create a nextflow channel with Vdsl3 formatted + * events. + * + * This function performs: + * - A filtering of the params which can be found in the config file. + * - Process the params_list argument which allows a user to to initialise + * a Vsdl3 channel with multiple parameter sets. Possible formats are + * csv, json, yaml, or simply a yaml_blob. A csv should have column names + * which correspond to the different arguments of this pipeline. A json or a yaml + * file should be a list of maps, each of which has keys corresponding to the + * arguments of the pipeline. A yaml blob can also be passed directly as a parameter. + * When passing a csv, json or yaml, relative path names are relativized to the + * location of the parameter file. + * - Combine the parameter sets into a vdsl3 Channel. + * + * @param params Input parameters. Can optionaly contain a 'param_list' key that + * provides a list of arguments that can be split up into multiple events + * in the output channel possible formats of param_lists are: a csv file, + * json file, a yaml file or a yaml blob. Each parameters set (event) must + * have a unique ID. + * @param config A Map of the Viash configuration. This Map can be generated from the config file + * using the readConfig() function. + * + * @return A list of parameters with the first element of the event being + * the event ID and the second element containing a map of the parsed parameters. + */ + +private List>> _paramsToParamSets(Map params, Map config){ + // todo: fetch key from run args + def key_ = config.name + + /* parse regular parameters (not in param_list) */ + /*************************************************/ + def globalParams = config.allArguments + .findAll { params.containsKey(it.plainName) } + .collectEntries { [ it.plainName, params[it.plainName] ] } + def globalID = params.get("id", null) + + /* process params_list arguments */ + /*********************************/ + def paramList = params.containsKey("param_list") && params.param_list != null ? + params.param_list : [] + // if (paramList instanceof String) { + // paramList = [paramList] + // } + // def paramSets = paramList.collectMany{ _parseParamList(it, config) } + // TODO: be able to process param_list when it is a list of strings + def paramSets = _parseParamList(paramList, config) + if (paramSets.isEmpty()) { + paramSets = [[null, [:]]] + } + + /* combine arguments into channel */ + /**********************************/ + def processedParams = paramSets.indexed().collect{ index, tup -> + // Process ID + def id = tup[0] ?: globalID + + if (workflow.stubRun && !id) { + // if stub run, explicitly add an id if missing + id = "stub${index}" + } + assert id != null: "Each parameter set should have at least an 'id'" + + // Process params + def parValues = globalParams + tup[1] + // // Remove parameters which are null, if the default is also null + // parValues = parValues.collectEntries{paramName, paramValue -> + // parameterSettings = config.functionality.allArguments.find({it.plainName == paramName}) + // if ( paramValue != null || parameterSettings.get("default", null) != null ) { + // [paramName, paramValue] + // } + // } + parValues = parValues.collectEntries { name, value -> + def par = config.allArguments.find { it.plainName == name && (it.direction == "input" || it.type == "file") } + assert par != null : "Error in module '${key_}' id '${id}': '${name}' is not a valid input argument" + + if (par == null) { + return [:] + } + value = _checkArgumentType("input", par, value, "in module '$key_' id '$id'") + + [ name, value ] + } + + [id, parValues] + } + + // Check if ids (first element of each list) is unique + _checkUniqueIds(processedParams) + return processedParams +} + +/** + * Parse nextflow parameters based on settings defined in a viash config + * and return a nextflow channel. + * + * @param params Input parameters. Can optionaly contain a 'param_list' key that + * provides a list of arguments that can be split up into multiple events + * in the output channel possible formats of param_lists are: a csv file, + * json file, a yaml file or a yaml blob. Each parameters set (event) must + * have a unique ID. + * @param config A Map of the Viash configuration. This Map can be generated from the config file + * using the readConfig() function. + * + * @return A nextflow Channel with events. Events are formatted as a tuple that contains + * first contains the ID of the event and as second element holds a parameter map. + * + * + */ +def channelFromParams(Map params, Map config) { + def processedParams = _paramsToParamSets(params, config) + return Channel.fromList(processedParams) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/checkUniqueIds.nf' +def checkUniqueIds(Map args) { + def stopOnError = args.stopOnError == null ? args.stopOnError : true + + def idChecker = new IDChecker() + + return filter { tup -> + if (!idChecker.observe(tup[0])) { + if (stopOnError) { + error "Duplicate id: ${tup[0]}" + } else { + log.warn "Duplicate id: ${tup[0]}, removing duplicate entry" + return false + } + } + return true + } +} +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/preprocessInputs.nf' +// This helper file will be deprecated soon +preprocessInputsDeprecationWarningPrinted = false + +def preprocessInputsDeprecationWarning() { + if (!preprocessInputsDeprecationWarningPrinted) { + preprocessInputsDeprecationWarningPrinted = true + System.err.println("Warning: preprocessInputs() is deprecated and will be removed in Viash 0.9.0.") + } +} + +/** + * Generate a nextflow Workflow that allows processing a channel of + * Vdsl3 formatted events and apply a Viash config to them: + * - Gather default parameters from the Viash config and make + * sure that they are correctly formatted (see applyConfig method). + * - Format the input parameters (also using the applyConfig method). + * - Apply the default parameter to the input parameters. + * - Do some assertions: + * ~ Check if the event IDs in the channel are unique. + * + * The events in the channel are formatted as tuples, with the + * first element of the tuples being a unique id of the parameter set, + * and the second element containg the the parameters themselves. + * Optional extra elements of the tuples will be passed to the output as is. + * + * @param args A map that must contain a 'config' key that points + * to a parsed config (see readConfig()). Optionally, a + * 'key' key can be provided which can be used to create a unique + * name for the workflow process. + * + * @return A workflow that allows processing a channel of Vdsl3 formatted events + * and apply a Viash config to them. + */ +def preprocessInputs(Map args) { + preprocessInputsDeprecationWarning() + + def config = args.config + assert config instanceof Map : + "Error in preprocessInputs: config must be a map. " + + "Expected class: Map. Found: config.getClass() is ${config.getClass()}" + def key_ = args.key ?: config.name + + // Get different parameter types (used throughout this function) + def defaultArgs = config.allArguments + .findAll { it.containsKey("default") } + .collectEntries { [ it.plainName, it.default ] } + + map { tup -> + def id = tup[0] + def data = tup[1] + def passthrough = tup.drop(2) + + def new_data = (defaultArgs + data).collectEntries { name, value -> + def par = config.allArguments.find { it.plainName == name && (it.direction == "input" || it.type == "file") } + + if (par != null) { + value = _checkArgumentType("input", par, value, "in module '$key_' id '$id'") + } + + [ name, value ] + } + + [ id, new_data ] + passthrough + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/runComponents.nf' +/** + * Run a list of components on a stream of data. + * + * @param components: list of Viash VDSL3 modules to run + * @param fromState: a closure, a map or a list of keys to extract from the input data. + * If a closure, it will be called with the id, the data and the component config. + * @param toState: a closure, a map or a list of keys to extract from the output data + * If a closure, it will be called with the id, the output data, the old state and the component config. + * @param filter: filter function to apply to the input. + * It will be called with the id, the data and the component config. + * @param id: id to use for the output data + * If a closure, it will be called with the id, the data and the component config. + * @param auto: auto options to pass to the components + * + * @return: a workflow that runs the components + **/ +def runComponents(Map args) { + log.warn("runComponents is deprecated, use runEach instead") + assert args.components: "runComponents should be passed a list of components to run" + + def components_ = args.components + if (components_ !instanceof List) { + components_ = [ components_ ] + } + assert components_.size() > 0: "pass at least one component to runComponents" + + def fromState_ = args.fromState + def toState_ = args.toState + def filter_ = args.filter + def id_ = args.id + + workflow runComponentsWf { + take: input_ch + main: + + // generate one channel per method + out_chs = components_.collect{ comp_ -> + def comp_config = comp_.config + + def filter_ch = filter_ + ? input_ch | filter{tup -> + filter_(tup[0], tup[1], comp_config) + } + : input_ch + def id_ch = id_ + ? filter_ch | map{tup -> + // def new_id = id_(tup[0], tup[1], comp_config) + def new_id = tup[0] + if (id_ instanceof String) { + new_id = id_ + } else if (id_ instanceof Closure) { + new_id = id_(new_id, tup[1], comp_config) + } + [new_id] + tup.drop(1) + } + : filter_ch + def data_ch = id_ch | map{tup -> + def new_data = tup[1] + if (fromState_ instanceof Map) { + new_data = fromState_.collectEntries{ key0, key1 -> + [key0, new_data[key1]] + } + } else if (fromState_ instanceof List) { + new_data = fromState_.collectEntries{ key -> + [key, new_data[key]] + } + } else if (fromState_ instanceof Closure) { + new_data = fromState_(tup[0], new_data, comp_config) + } + tup.take(1) + [new_data] + tup.drop(1) + } + def out_ch = data_ch + | comp_.run( + auto: (args.auto ?: [:]) + [simplifyInput: false, simplifyOutput: false] + ) + def post_ch = toState_ + ? out_ch | map{tup -> + def output = tup[1] + def old_state = tup[2] + def new_state = null + if (toState_ instanceof Map) { + new_state = old_state + toState_.collectEntries{ key0, key1 -> + [key0, output[key1]] + } + } else if (toState_ instanceof List) { + new_state = old_state + toState_.collectEntries{ key -> + [key, output[key]] + } + } else if (toState_ instanceof Closure) { + new_state = toState_(tup[0], output, old_state, comp_config) + } + [tup[0], new_state] + tup.drop(3) + } + : out_ch + + post_ch + } + + // mix all results + output_ch = + (out_chs.size == 1) + ? out_chs[0] + : out_chs[0].mix(*out_chs.drop(1)) + + emit: output_ch + } + + return runComponentsWf +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/runEach.nf' +/** + * Run a list of components on a stream of data. + * + * @param components: list of Viash VDSL3 modules to run + * @param fromState: a closure, a map or a list of keys to extract from the input data. + * If a closure, it will be called with the id, the data and the component itself. + * @param toState: a closure, a map or a list of keys to extract from the output data + * If a closure, it will be called with the id, the output data, the old state and the component itself. + * @param filter: filter function to apply to the input. + * It will be called with the id, the data and the component itself. + * @param id: id to use for the output data + * If a closure, it will be called with the id, the data and the component itself. + * @param auto: auto options to pass to the components + * + * @return: a workflow that runs the components + **/ +def runEach(Map args) { + assert args.components: "runEach should be passed a list of components to run" + + def components_ = args.components + if (components_ !instanceof List) { + components_ = [ components_ ] + } + assert components_.size() > 0: "pass at least one component to runEach" + + def fromState_ = args.fromState + def toState_ = args.toState + def filter_ = args.filter + def runIf_ = args.runIf + def id_ = args.id + + assert !runIf_ || runIf_ instanceof Closure: "runEach: must pass a Closure to runIf." + + workflow runEachWf { + take: input_ch + main: + + // generate one channel per method + out_chs = components_.collect{ comp_ -> + def filter_ch = filter_ + ? input_ch | filter{tup -> + filter_(tup[0], tup[1], comp_) + } + : input_ch + def id_ch = id_ + ? filter_ch | map{tup -> + def new_id = id_ + if (new_id instanceof Closure) { + new_id = new_id(tup[0], tup[1], comp_) + } + assert new_id instanceof String : "Error in runEach: id should be a String or a Closure that returns a String. Expected: id instanceof String. Found: ${new_id.getClass()}" + [new_id] + tup.drop(1) + } + : filter_ch + def chPassthrough = null + def chRun = null + if (runIf_) { + def idRunIfBranch = id_ch.branch{ tup -> + run: runIf_(tup[0], tup[1], comp_) + passthrough: true + } + chPassthrough = idRunIfBranch.passthrough + chRun = idRunIfBranch.run + } else { + chRun = id_ch + chPassthrough = Channel.empty() + } + def data_ch = chRun | map{tup -> + def new_data = tup[1] + if (fromState_ instanceof Map) { + new_data = fromState_.collectEntries{ key0, key1 -> + [key0, new_data[key1]] + } + } else if (fromState_ instanceof List) { + new_data = fromState_.collectEntries{ key -> + [key, new_data[key]] + } + } else if (fromState_ instanceof Closure) { + new_data = fromState_(tup[0], new_data, comp_) + } + tup.take(1) + [new_data] + tup.drop(1) + } + def out_ch = data_ch + | comp_.run( + auto: (args.auto ?: [:]) + [simplifyInput: false, simplifyOutput: false] + ) + def post_ch = toState_ + ? out_ch | map{tup -> + def output = tup[1] + def old_state = tup[2] + def new_state = null + if (toState_ instanceof Map) { + new_state = old_state + toState_.collectEntries{ key0, key1 -> + [key0, output[key1]] + } + } else if (toState_ instanceof List) { + new_state = old_state + toState_.collectEntries{ key -> + [key, output[key]] + } + } else if (toState_ instanceof Closure) { + new_state = toState_(tup[0], output, old_state, comp_) + } + [tup[0], new_state] + tup.drop(3) + } + : out_ch + + def return_ch = post_ch + | concat(chPassthrough) + + return_ch + } + + // mix all results + output_ch = + (out_chs.size == 1) + ? out_chs[0] + : out_chs[0].mix(*out_chs.drop(1)) + + emit: output_ch + } + + return runEachWf +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/safeJoin.nf' +/** + * Join sourceChannel to targetChannel + * + * This function joins the sourceChannel to the targetChannel. + * However, each id in the targetChannel must be present in the + * sourceChannel. If _meta.join_id exists in the targetChannel, that is + * used as an id instead. If the id doesn't match any id in the sourceChannel, + * an error is thrown. + */ + +def safeJoin(targetChannel, sourceChannel, key) { + def sourceIDs = new IDChecker() + + def sourceCheck = sourceChannel + | map { tup -> + sourceIDs.observe(tup[0]) + tup + } + def targetCheck = targetChannel + | map { tup -> + def id = tup[0] + + if (!sourceIDs.contains(id)) { + error ( + "Error in module '${key}' when merging output with original state.\n" + + " Reason: output with id '${id}' could not be joined with source channel.\n" + + " If the IDs in the output channel differ from the input channel,\n" + + " please set `tup[1]._meta.join_id to the original ID.\n" + + " Original IDs in input channel: ['${sourceIDs.getItems().join("', '")}'].\n" + + " Unexpected ID in the output channel: '${id}'.\n" + + " Example input event: [\"id\", [input: file(...)]],\n" + + " Example output event: [\"newid\", [output: file(...), _meta: [join_id: \"id\"]]]" + ) + } + // TODO: add link to our documentation on how to fix this + + tup + } + + sourceCheck.cross(targetChannel) + | map{ left, right -> + right + left.drop(1) + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/config/_processArgument.nf' +def _processArgument(arg) { + arg.multiple = arg.multiple != null ? arg.multiple : false + arg.required = arg.required != null ? arg.required : false + arg.direction = arg.direction != null ? arg.direction : "input" + arg.multiple_sep = arg.multiple_sep != null ? arg.multiple_sep : ";" + arg.plainName = arg.name.replaceAll("^-*", "") + + if (arg.type == "file") { + arg.must_exist = arg.must_exist != null ? arg.must_exist : true + arg.create_parent = arg.create_parent != null ? arg.create_parent : true + } + + // add default values to output files which haven't already got a default + if (arg.type == "file" && arg.direction == "output" && arg.default == null) { + def mult = arg.multiple ? "_*" : "" + def extSearch = "" + if (arg.default != null) { + extSearch = arg.default + } else if (arg.example != null) { + extSearch = arg.example + } + if (extSearch instanceof List) { + extSearch = extSearch[0] + } + def extSearchResult = extSearch.find("\\.[^\\.]+\$") + def ext = extSearchResult != null ? extSearchResult : "" + arg.default = "\$id.\$key.${arg.plainName}${mult}${ext}" + if (arg.multiple) { + arg.default = [arg.default] + } + } + + if (!arg.multiple) { + if (arg.default != null && arg.default instanceof List) { + arg.default = arg.default[0] + } + if (arg.example != null && arg.example instanceof List) { + arg.example = arg.example[0] + } + } + + if (arg.type == "boolean_true") { + arg.default = false + } + if (arg.type == "boolean_false") { + arg.default = true + } + + arg +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/config/addGlobalParams.nf' +def addGlobalArguments(config) { + def localConfig = [ + "argument_groups": [ + [ + "name": "Nextflow input-output arguments", + "description": "Input/output parameters for Nextflow itself. Please note that both publishDir and publish_dir are supported but at least one has to be configured.", + "arguments" : [ + [ + 'name': '--publish_dir', + 'required': true, + 'type': 'string', + 'description': 'Path to an output directory.', + 'example': 'output/', + 'multiple': false + ], + [ + 'name': '--param_list', + 'required': false, + 'type': 'string', + 'description': '''Allows inputting multiple parameter sets to initialise a Nextflow channel. A `param_list` can either be a list of maps, a csv file, a json file, a yaml file, or simply a yaml blob. + | + |* A list of maps (as-is) where the keys of each map corresponds to the arguments of the pipeline. Example: in a `nextflow.config` file: `param_list: [ ['id': 'foo', 'input': 'foo.txt'], ['id': 'bar', 'input': 'bar.txt'] ]`. + |* A csv file should have column names which correspond to the different arguments of this pipeline. Example: `--param_list data.csv` with columns `id,input`. + |* A json or a yaml file should be a list of maps, each of which has keys corresponding to the arguments of the pipeline. Example: `--param_list data.json` with contents `[ {'id': 'foo', 'input': 'foo.txt'}, {'id': 'bar', 'input': 'bar.txt'} ]`. + |* A yaml blob can also be passed directly as a string. Example: `--param_list "[ {'id': 'foo', 'input': 'foo.txt'}, {'id': 'bar', 'input': 'bar.txt'} ]"`. + | + |When passing a csv, json or yaml file, relative path names are relativized to the location of the parameter file. No relativation is performed when `param_list` is a list of maps (as-is) or a yaml blob.'''.stripMargin(), + 'example': 'my_params.yaml', + 'multiple': false, + 'hidden': true + ] + // TODO: allow multiple: true in param_list? + // TODO: allow to specify a --param_list_regex to filter the param_list? + // TODO: allow to specify a --param_list_from_state to remap entries in the param_list? + ] + ] + ] + ] + + return processConfig(_mergeMap(config, localConfig)) +} + +def _mergeMap(Map lhs, Map rhs) { + return rhs.inject(lhs.clone()) { map, entry -> + if (map[entry.key] instanceof Map && entry.value instanceof Map) { + map[entry.key] = _mergeMap(map[entry.key], entry.value) + } else if (map[entry.key] instanceof Collection && entry.value instanceof Collection) { + map[entry.key] += entry.value + } else { + map[entry.key] = entry.value + } + return map + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/config/generateHelp.nf' +def _generateArgumentHelp(param) { + // alternatives are not supported + // def names = param.alternatives ::: List(param.name) + + def unnamedProps = [ + ["required parameter", param.required], + ["multiple values allowed", param.multiple], + ["output", param.direction.toLowerCase() == "output"], + ["file must exist", param.type == "file" && param.must_exist] + ].findAll{it[1]}.collect{it[0]} + + def dflt = null + if (param.default != null) { + if (param.default instanceof List) { + dflt = param.default.join(param.multiple_sep != null ? param.multiple_sep : ", ") + } else { + dflt = param.default.toString() + } + } + def example = null + if (param.example != null) { + if (param.example instanceof List) { + example = param.example.join(param.multiple_sep != null ? param.multiple_sep : ", ") + } else { + example = param.example.toString() + } + } + def min = param.min?.toString() + def max = param.max?.toString() + + def escapeChoice = { choice -> + def s1 = choice.replaceAll("\\n", "\\\\n") + def s2 = s1.replaceAll("\"", """\\\"""") + s2.contains(",") || s2 != choice ? "\"" + s2 + "\"" : s2 + } + def choices = param.choices == null ? + null : + "[ " + param.choices.collect{escapeChoice(it.toString())}.join(", ") + " ]" + + def namedPropsStr = [ + ["type", ([param.type] + unnamedProps).join(", ")], + ["default", dflt], + ["example", example], + ["choices", choices], + ["min", min], + ["max", max] + ] + .findAll{it[1]} + .collect{"\n " + it[0] + ": " + it[1].replaceAll("\n", "\\n")} + .join("") + + def descStr = param.description == null ? + "" : + _paragraphWrap("\n" + param.description.trim(), 80 - 8).join("\n ") + + "\n --" + param.plainName + + namedPropsStr + + descStr +} + +// Based on Helper.generateHelp() in Helper.scala +def _generateHelp(config) { + def fun = config + + // PART 1: NAME AND VERSION + def nameStr = fun.name + + (fun.version == null ? "" : " " + fun.version) + + // PART 2: DESCRIPTION + def descrStr = fun.description == null ? + "" : + "\n\n" + _paragraphWrap(fun.description.trim(), 80).join("\n") + + // PART 3: Usage + def usageStr = fun.usage == null ? + "" : + "\n\nUsage:\n" + fun.usage.trim() + + // PART 4: Options + def argGroupStrs = fun.allArgumentGroups.collect{argGroup -> + def name = argGroup.name + def descriptionStr = argGroup.description == null ? + "" : + "\n " + _paragraphWrap(argGroup.description.trim(), 80-4).join("\n ") + "\n" + def arguments = argGroup.arguments.collect{arg -> + arg instanceof String ? fun.allArguments.find{it.plainName == arg} : arg + }.findAll{it != null} + def argumentStrs = arguments.collect{param -> _generateArgumentHelp(param)} + + "\n\n$name:" + + descriptionStr + + argumentStrs.join("\n") + } + + // FINAL: combine + def out = nameStr + + descrStr + + usageStr + + argGroupStrs.join("") + + return out +} + +// based on Format._paragraphWrap +def _paragraphWrap(str, maxLength) { + def outLines = [] + str.split("\n").each{par -> + def words = par.split("\\s").toList() + + def word = null + def line = words.pop() + while(!words.isEmpty()) { + word = words.pop() + if (line.length() + word.length() + 1 <= maxLength) { + line = line + " " + word + } else { + outLines.add(line) + line = word + } + } + if (words.isEmpty()) { + outLines.add(line) + } + } + return outLines +} + +def helpMessage(config) { + if (params.containsKey("help") && params.help) { + def mergedConfig = addGlobalArguments(config) + def helpStr = _generateHelp(mergedConfig) + println(helpStr) + exit 0 + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/config/processConfig.nf' +def processConfig(config) { + // set defaults for arguments + config.arguments = + (config.arguments ?: []).collect{_processArgument(it)} + + // set defaults for argument_group arguments + config.argument_groups = + (config.argument_groups ?: []).collect{grp -> + grp.arguments = (grp.arguments ?: []).collect{_processArgument(it)} + grp + } + + // create combined arguments list + config.allArguments = + config.arguments + + config.argument_groups.collectMany{it.arguments} + + // add missing argument groups (based on Functionality::allArgumentGroups()) + def argGroups = config.argument_groups + if (argGroups.any{it.name.toLowerCase() == "arguments"}) { + argGroups = argGroups.collect{ grp -> + if (grp.name.toLowerCase() == "arguments") { + grp = grp + [ + arguments: grp.arguments + config.arguments + ] + } + grp + } + } else { + argGroups = argGroups + [ + name: "Arguments", + arguments: config.arguments + ] + } + config.allArgumentGroups = argGroups + + config +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/config/readConfig.nf' + +def readConfig(file) { + def config = readYaml(file ?: moduleDir.resolve("config.vsh.yaml")) + processConfig(config) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/_resolveSiblingIfNotAbsolute.nf' +/** + * Resolve a path relative to the current file. + * + * @param str The path to resolve, as a String. + * @param parentPath The path to resolve relative to, as a Path. + * + * @return The path that may have been resovled, as a Path. + */ +def _resolveSiblingIfNotAbsolute(str, parentPath) { + if (str !instanceof String) { + return str + } + if (!_stringIsAbsolutePath(str)) { + return parentPath.resolveSibling(str) + } else { + return file(str, hidden: true) + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/_stringIsAbsolutePath.nf' +/** + * Check whether a path as a string is absolute. + * + * In the past, we tried using `file(., relative: true).isAbsolute()`, + * but the 'relative' option was added in 22.10.0. + * + * @param path The path to check, as a String. + * + * @return Whether the path is absolute, as a boolean. + */ +def _stringIsAbsolutePath(path) { + def _resolve_URL_PROTOCOL = ~/^([a-zA-Z][a-zA-Z0-9]*:)?\\/.+/ + + assert path instanceof String + return _resolve_URL_PROTOCOL.matcher(path).matches() +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/collectTraces.nf' +class CustomTraceObserver implements nextflow.trace.TraceObserver { + List traces + + CustomTraceObserver(List traces) { + this.traces = traces + } + + @Override + void onProcessComplete(nextflow.processor.TaskHandler handler, nextflow.trace.TraceRecord trace) { + def trace2 = trace.store.clone() + trace2.script = null + traces.add(trace2) + } + + @Override + void onProcessCached(nextflow.processor.TaskHandler handler, nextflow.trace.TraceRecord trace) { + def trace2 = trace.store.clone() + trace2.script = null + traces.add(trace2) + } +} + +def collectTraces() { + def traces = Collections.synchronizedList([]) + + // add custom trace observer which stores traces in the traces object + session.observers.add(new CustomTraceObserver(traces)) + + traces +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/deepClone.nf' +/** + * Performs a deep clone of the given object. + * @param x an object + */ +def deepClone(x) { + iterateMap(x, {it instanceof Cloneable ? it.clone() : it}) +} +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/getPublishDir.nf' +def getPublishDir() { + return params.containsKey("publish_dir") ? params.publish_dir : + params.containsKey("publishDir") ? params.publishDir : + null +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/getRootDir.nf' + +// Recurse upwards until we find a '.build.yaml' file +def _findBuildYamlFile(pathPossiblySymlink) { + def path = pathPossiblySymlink.toRealPath() + def child = path.resolve(".build.yaml") + if (java.nio.file.Files.isDirectory(path) && java.nio.file.Files.exists(child)) { + return child + } else { + def parent = path.getParent() + if (parent == null) { + return null + } else { + return _findBuildYamlFile(parent) + } + } +} + +// get the root of the target folder +def getRootDir() { + def dir = _findBuildYamlFile(meta.resources_dir) + assert dir != null: "Could not find .build.yaml in the folder structure" + dir.getParent() +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/iterateMap.nf' +/** + * Recursively apply a function over the leaves of an object. + * @param obj The object to iterate over. + * @param fun The function to apply to each value. + * @return The object with the function applied to each value. + */ +def iterateMap(obj, fun) { + if (obj instanceof List && obj !instanceof String) { + return obj.collect{item -> + iterateMap(item, fun) + } + } else if (obj instanceof Map) { + return obj.collectEntries{key, item -> + [key.toString(), iterateMap(item, fun)] + } + } else { + return fun(obj) + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/niceView.nf' +/** + * A view for printing the event of each channel as a YAML blob. + * This is useful for debugging. + */ +def niceView() { + workflow niceViewWf { + take: input + main: + output = input + | view{toYamlBlob(it)} + emit: output + } + return niceViewWf +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/readCsv.nf' + +def readCsv(file_path) { + def output = [] + def inputFile = file_path !instanceof Path ? file(file_path, hidden: true) : file_path + + // todo: allow escaped quotes in string + // todo: allow single quotes? + def splitRegex = java.util.regex.Pattern.compile(''',(?=(?:[^"]*"[^"]*")*[^"]*$)''') + def removeQuote = java.util.regex.Pattern.compile('''"(.*)"''') + + def br = java.nio.file.Files.newBufferedReader(inputFile) + + def row = -1 + def header = null + while (br.ready() && header == null) { + def line = br.readLine() + row++ + if (!line.startsWith("#")) { + header = splitRegex.split(line, -1).collect{field -> + m = removeQuote.matcher(field) + m.find() ? m.replaceFirst('$1') : field + } + } + } + assert header != null: "CSV file should contain a header" + + while (br.ready()) { + def line = br.readLine() + row++ + if (line == null) { + br.close() + break + } + + if (!line.startsWith("#")) { + def predata = splitRegex.split(line, -1) + def data = predata.collect{field -> + if (field == "") { + return null + } + def m = removeQuote.matcher(field) + if (m.find()) { + return m.replaceFirst('$1') + } else { + return field + } + } + assert header.size() == data.size(): "Row $row should contain the same number as fields as the header" + + def dataMap = [header, data].transpose().collectEntries().findAll{it.value != null} + output.add(dataMap) + } + } + + output +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/readJson.nf' +def readJson(file_path) { + def inputFile = file_path !instanceof Path ? file(file_path, hidden: true) : file_path + def jsonSlurper = new groovy.json.JsonSlurper() + jsonSlurper.parse(inputFile) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/readJsonBlob.nf' +def readJsonBlob(str) { + def jsonSlurper = new groovy.json.JsonSlurper() + jsonSlurper.parseText(str) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/readTaggedYaml.nf' +// Custom constructor to modify how certain objects are parsed from YAML +class CustomConstructor extends org.yaml.snakeyaml.constructor.Constructor { + Path root + + class ConstructPath extends org.yaml.snakeyaml.constructor.AbstractConstruct { + public Object construct(org.yaml.snakeyaml.nodes.Node node) { + String filename = (String) constructScalar(node); + if (root != null) { + return root.resolve(filename); + } + return java.nio.file.Paths.get(filename); + } + } + + CustomConstructor(org.yaml.snakeyaml.LoaderOptions options, Path root) { + super(options) + this.root = root + // Handling !file tag and parse it back to a File type + this.yamlConstructors.put(new org.yaml.snakeyaml.nodes.Tag("!file"), new ConstructPath()) + } +} + +def readTaggedYaml(Path path) { + def options = new org.yaml.snakeyaml.LoaderOptions() + def constructor = new CustomConstructor(options, path.getParent()) + def yaml = new org.yaml.snakeyaml.Yaml(constructor) + return yaml.load(path.text) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/readYaml.nf' +def readYaml(file_path) { + def inputFile = file_path !instanceof Path ? file(file_path, hidden: true) : file_path + def yamlSlurper = new org.yaml.snakeyaml.Yaml() + yamlSlurper.load(inputFile) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/readYamlBlob.nf' +def readYamlBlob(str) { + def yamlSlurper = new org.yaml.snakeyaml.Yaml() + yamlSlurper.load(str) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/toJsonBlob.nf' +String toJsonBlob(data) { + return groovy.json.JsonOutput.toJson(data) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/toTaggedYamlBlob.nf' +// Custom representer to modify how certain objects are represented in YAML +class CustomRepresenter extends org.yaml.snakeyaml.representer.Representer { + Path relativizer + + class RepresentPath implements org.yaml.snakeyaml.representer.Represent { + public String getFileName(Object obj) { + if (obj instanceof File) { + obj = ((File) obj).toPath(); + } + if (obj !instanceof Path) { + throw new IllegalArgumentException("Object: " + obj + " is not a Path or File"); + } + def path = (Path) obj; + + if (relativizer != null) { + return relativizer.relativize(path).toString() + } else { + return path.toString() + } + } + + public org.yaml.snakeyaml.nodes.Node representData(Object data) { + String filename = getFileName(data); + def tag = new org.yaml.snakeyaml.nodes.Tag("!file"); + return representScalar(tag, filename); + } + } + CustomRepresenter(org.yaml.snakeyaml.DumperOptions options, Path relativizer) { + super(options) + this.relativizer = relativizer + this.representers.put(sun.nio.fs.UnixPath, new RepresentPath()) + this.representers.put(Path, new RepresentPath()) + this.representers.put(File, new RepresentPath()) + } +} + +String toTaggedYamlBlob(data) { + return toRelativeTaggedYamlBlob(data, null) +} +String toRelativeTaggedYamlBlob(data, Path relativizer) { + def options = new org.yaml.snakeyaml.DumperOptions() + options.setDefaultFlowStyle(org.yaml.snakeyaml.DumperOptions.FlowStyle.BLOCK) + def representer = new CustomRepresenter(options, relativizer) + def yaml = new org.yaml.snakeyaml.Yaml(representer, options) + return yaml.dump(data) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/toYamlBlob.nf' +String toYamlBlob(data) { + def options = new org.yaml.snakeyaml.DumperOptions() + options.setDefaultFlowStyle(org.yaml.snakeyaml.DumperOptions.FlowStyle.BLOCK) + options.setPrettyFlow(true) + def yaml = new org.yaml.snakeyaml.Yaml(options) + def cleanData = iterateMap(data, { it instanceof Path ? it.toString() : it }) + return yaml.dump(cleanData) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/writeJson.nf' +void writeJson(data, file) { + assert data: "writeJson: data should not be null" + assert file: "writeJson: file should not be null" + file.write(toJsonBlob(data)) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/writeYaml.nf' +void writeYaml(data, file) { + assert data: "writeYaml: data should not be null" + assert file: "writeYaml: file should not be null" + file.write(toYamlBlob(data)) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/states/findStates.nf' +def findStates(Map params, Map config) { + def auto_config = deepClone(config) + def auto_params = deepClone(params) + + auto_config = auto_config.clone() + // override arguments + auto_config.argument_groups = [] + auto_config.arguments = [ + [ + type: "string", + name: "--id", + description: "A dummy identifier", + required: false + ], + [ + type: "file", + name: "--input_states", + example: "/path/to/input/directory/**/state.yaml", + description: "Path to input directory containing the datasets to be integrated.", + required: true, + multiple: true, + multiple_sep: ";" + ], + [ + type: "string", + name: "--filter", + example: "foo/.*/state.yaml", + description: "Regex to filter state files by path.", + required: false + ], + // to do: make this a yaml blob? + [ + type: "string", + name: "--rename_keys", + example: ["newKey1:oldKey1", "newKey2:oldKey2"], + description: "Rename keys in the detected input files. This is useful if the input files do not match the set of input arguments of the workflow.", + required: false, + multiple: true, + multiple_sep: ";" + ], + [ + type: "string", + name: "--settings", + example: '{"output_dataset": "dataset.h5ad", "k": 10}', + description: "Global arguments as a JSON glob to be passed to all components.", + required: false + ] + ] + if (!(auto_params.containsKey("id"))) { + auto_params["id"] = "auto" + } + + // run auto config through processConfig once more + auto_config = processConfig(auto_config) + + workflow findStatesWf { + helpMessage(auto_config) + + output_ch = + channelFromParams(auto_params, auto_config) + | flatMap { autoId, args -> + + def globalSettings = args.settings ? readYamlBlob(args.settings) : [:] + + // look for state files in input dir + def stateFiles = args.input_states + + // filter state files by regex + if (args.filter) { + stateFiles = stateFiles.findAll{ stateFile -> + def stateFileStr = stateFile.toString() + def matcher = stateFileStr =~ args.filter + matcher.matches()} + } + + // read in states + def states = stateFiles.collect { stateFile -> + def state_ = readTaggedYaml(stateFile) + [state_.id, state_] + } + + // construct renameMap + if (args.rename_keys) { + def renameMap = args.rename_keys.collectEntries{renameString -> + def split = renameString.split(":") + assert split.size() == 2: "Argument 'rename_keys' should be of the form 'newKey:oldKey', or 'newKey:oldKey;newKey:oldKey' in case of multiple values" + split + } + + // rename keys in state, only let states through which have all keys + // also add global settings + states = states.collectMany{id, state -> + def newState = [:] + + for (key in renameMap.keySet()) { + def origKey = renameMap[key] + if (!(state.containsKey(origKey))) { + return [] + } + newState[key] = state[origKey] + } + + [[id, globalSettings + newState]] + } + } + + states + } + emit: + output_ch + } + + return findStatesWf +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/states/joinStates.nf' +def joinStates(Closure apply_) { + workflow joinStatesWf { + take: input_ch + main: + output_ch = input_ch + | toSortedList + | filter{ it.size() > 0 } + | map{ tups -> + def ids = tups.collect{it[0]} + def states = tups.collect{it[1]} + apply_(ids, states) + } + + emit: output_ch + } + return joinStatesWf +} +// helper file: 'src/main/resources/io/viash/runners/nextflow/states/publishStates.nf' +def collectFiles(obj) { + if (obj instanceof java.io.File || obj instanceof Path) { + return [obj] + } else if (obj instanceof List && obj !instanceof String) { + return obj.collectMany{item -> + collectFiles(item) + } + } else if (obj instanceof Map) { + return obj.collectMany{key, item -> + collectFiles(item) + } + } else { + return [] + } +} + +/** + * Recurse through a state and collect all input files and their target output filenames. + * @param obj The state to recurse through. + * @param prefix The prefix to prepend to the output filenames. + */ +def collectInputOutputPaths(obj, prefix) { + if (obj instanceof File || obj instanceof Path) { + def path = obj instanceof Path ? obj : obj.toPath() + def ext = path.getFileName().toString().find("\\.[^\\.]+\$") ?: "" + def newFilename = prefix + ext + return [[obj, newFilename]] + } else if (obj instanceof List && obj !instanceof String) { + return obj.withIndex().collectMany{item, ix -> + collectInputOutputPaths(item, prefix + "_" + ix) + } + } else if (obj instanceof Map) { + return obj.collectMany{key, item -> + collectInputOutputPaths(item, prefix + "." + key) + } + } else { + return [] + } +} + +def publishStates(Map args) { + def key_ = args.get("key") + def yamlTemplate_ = args.get("output_state", args.get("outputState", '$id.$key.state.yaml')) + + assert key_ != null : "publishStates: key must be specified" + + workflow publishStatesWf { + take: input_ch + main: + input_ch + | map { tup -> + def id_ = tup[0] + def state_ = tup[1] + + // the input files and the target output filenames + def inputoutputFilenames_ = collectInputOutputPaths(state_, id_ + "." + key_).transpose() + def inputFiles_ = inputoutputFilenames_[0] + def outputFilenames_ = inputoutputFilenames_[1] + + def yamlFilename = yamlTemplate_ + .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) + .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) + + // TODO: do the pathnames in state_ match up with the outputFilenames_? + + // convert state to yaml blob + def yamlBlob_ = toRelativeTaggedYamlBlob([id: id_] + state_, java.nio.file.Paths.get(yamlFilename)) + + [id_, yamlBlob_, yamlFilename, inputFiles_, outputFilenames_] + } + | publishStatesProc + emit: input_ch + } + return publishStatesWf +} +process publishStatesProc { + // todo: check publishpath? + publishDir path: "${getPublishDir()}/", mode: "copy" + tag "$id" + input: + tuple val(id), val(yamlBlob), val(yamlFile), path(inputFiles, stageAs: "_inputfile?/*"), val(outputFiles) + output: + tuple val(id), path{[yamlFile] + outputFiles} + script: + def copyCommands = [ + inputFiles instanceof List ? inputFiles : [inputFiles], + outputFiles instanceof List ? outputFiles : [outputFiles] + ] + .transpose() + .collectMany{infile, outfile -> + if (infile.toString() != outfile.toString()) { + [ + "[ -d \"\$(dirname '${outfile.toString()}')\" ] || mkdir -p \"\$(dirname '${outfile.toString()}')\"", + "cp -r '${infile.toString()}' '${outfile.toString()}'" + ] + } else { + // no need to copy if infile is the same as outfile + [] + } + } + """ +mkdir -p "\$(dirname '${yamlFile}')" +echo "Storing state as yaml" +echo '${yamlBlob}' > '${yamlFile}' +echo "Copying output files to destination folder" +${copyCommands.join("\n ")} +""" +} + + +// this assumes that the state contains no other values other than those specified in the config +def publishStatesByConfig(Map args) { + def config = args.get("config") + assert config != null : "publishStatesByConfig: config must be specified" + + def key_ = args.get("key", config.name) + assert key_ != null : "publishStatesByConfig: key must be specified" + + workflow publishStatesSimpleWf { + take: input_ch + main: + input_ch + | map { tup -> + def id_ = tup[0] + def state_ = tup[1] // e.g. [output: new File("myoutput.h5ad"), k: 10] + def origState_ = tup[2] // e.g. [output: '$id.$key.foo.h5ad'] + + // TODO: allow overriding the state.yaml template + // TODO TODO: if auto.publish == "state", add output_state as an argument + def yamlTemplate = params.containsKey("output_state") ? params.output_state : '$id.$key.state.yaml' + def yamlFilename = yamlTemplate + .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) + .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) + def yamlDir = java.nio.file.Paths.get(yamlFilename).getParent() + + // the processed state is a list of [key, value, inputPath, outputFilename] tuples, where + // - key is a String + // - value is any object that can be serialized to a Yaml (so a String/Integer/Long/Double/Boolean, a List, a Map, or a Path) + // - inputPath is a List[Path] + // - outputFilename is a List[String] + // - (key, value) are the tuples that will be saved to the state.yaml file + // - (inputPath, outputFilename) are the files that will be copied from src to dest (relative to the state.yaml) + def processedState = + config.allArguments + .findAll { it.direction == "output" } + .collectMany { par -> + def plainName_ = par.plainName + // if the state does not contain the key, it's an + // optional argument for which the component did + // not generate any output + if (!state_.containsKey(plainName_)) { + return [] + } + def value = state_[plainName_] + // if the parameter is not a file, it should be stored + // in the state as-is, but is not something that needs + // to be copied from the source path to the dest path + if (par.type != "file") { + return [[key: plainName_, value: value, inputPath: [], outputFilename: []]] + } + // if the orig state does not contain this filename, + // it's an optional argument for which the user specified + // that it should not be returned as a state + if (!origState_.containsKey(plainName_)) { + return [] + } + def filenameTemplate = origState_[plainName_] + // if the pararameter is multiple: true, fetch the template + if (par.multiple && filenameTemplate instanceof List) { + filenameTemplate = filenameTemplate[0] + } + // instantiate the template + def filename = filenameTemplate + .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) + .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) + if (par.multiple) { + // if the parameter is multiple: true, the filename + // should contain a wildcard '*' that is replaced with + // the index of the file + assert filename.contains("*") : "Module '${key_}' id '${id_}': Multiple output files specified, but no wildcard '*' in the filename: ${filename}" + def outputPerFile = value.withIndex().collect{ val, ix -> + def filename_ix = filename.replace("*", ix.toString()) + def value_ = java.nio.file.Paths.get(filename_ix) + // if id contains a slash + if (yamlDir != null) { + value_ = yamlDir.relativize(value_) + } + def inputPath = val instanceof File ? val.toPath() : val + [value: value_, inputPath: inputPath, outputFilename: filename_ix] + } + def transposedOutputs = ["value", "inputPath", "outputFilename"].collectEntries{ key -> + [key, outputPerFile.collect{dic -> dic[key]}] + } + return [[key: plainName_] + transposedOutputs] + } else { + def value_ = java.nio.file.Paths.get(filename) + // if id contains a slash + if (yamlDir != null) { + value_ = yamlDir.relativize(value_) + } + def inputPath = value instanceof File ? value.toPath() : value + return [[key: plainName_, value: value_, inputPath: [inputPath], outputFilename: [filename]]] + } + } + + def updatedState_ = processedState.collectEntries{[it.key, it.value]} + def inputPaths = processedState.collectMany{it.inputPath} + def outputFilenames = processedState.collectMany{it.outputFilename} + + // convert state to yaml blob + def yamlBlob_ = toTaggedYamlBlob([id: id_] + updatedState_) + + [id_, yamlBlob_, yamlFilename, inputPaths, outputFilenames] + } + | publishStatesProc + emit: input_ch + } + return publishStatesSimpleWf +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/states/setState.nf' +def setState(fun) { + assert fun instanceof Closure || fun instanceof Map || fun instanceof List : + "Error in setState: Expected process argument to be a Closure, a Map, or a List. Found: class ${fun.getClass()}" + + // if fun is a List, convert to map + if (fun instanceof List) { + // check whether fun is a list[string] + assert fun.every{it instanceof CharSequence} : "Error in setState: argument is a List, but not all elements are Strings" + fun = fun.collectEntries{[it, it]} + } + + // if fun is a map, convert to closure + if (fun instanceof Map) { + // check whether fun is a map[string, string] + assert fun.values().every{it instanceof CharSequence} : "Error in setState: argument is a Map, but not all values are Strings" + assert fun.keySet().every{it instanceof CharSequence} : "Error in setState: argument is a Map, but not all keys are Strings" + def funMap = fun.clone() + // turn the map into a closure to be used later on + fun = { id_, state_ -> + assert state_ instanceof Map : "Error in setState: the state is not a Map" + funMap.collectMany{newkey, origkey -> + if (state_.containsKey(origkey)) { + [[newkey, state_[origkey]]] + } else { + [] + } + }.collectEntries() + } + } + + map { tup -> + def id = tup[0] + def state = tup[1] + def unfilteredState = fun(id, state) + def newState = unfilteredState.findAll{key, val -> val != null} + [id, newState] + tup.drop(2) + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/workflowFactory/processAuto.nf' +// TODO: unit test processAuto +def processAuto(Map auto) { + // remove null values + auto = auto.findAll{k, v -> v != null} + + // check for unexpected keys + def expectedKeys = ["simplifyInput", "simplifyOutput", "transcript", "publish"] + def unexpectedKeys = auto.keySet() - expectedKeys + assert unexpectedKeys.isEmpty(), "unexpected keys in auto: '${unexpectedKeys.join("', '")}'" + + // check auto.simplifyInput + assert auto.simplifyInput instanceof Boolean, "auto.simplifyInput must be a boolean" + + // check auto.simplifyOutput + assert auto.simplifyOutput instanceof Boolean, "auto.simplifyOutput must be a boolean" + + // check auto.transcript + assert auto.transcript instanceof Boolean, "auto.transcript must be a boolean" + + // check auto.publish + assert auto.publish instanceof Boolean || auto.publish == "state", "auto.publish must be a boolean or 'state'" + + return auto.subMap(expectedKeys) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/workflowFactory/processDirectives.nf' +def assertMapKeys(map, expectedKeys, requiredKeys, mapName) { + assert map instanceof Map : "Expected argument '$mapName' to be a Map. Found: class ${map.getClass()}" + map.forEach { key, val -> + assert key in expectedKeys : "Unexpected key '$key' in ${mapName ? mapName + " " : ""}map" + } + requiredKeys.forEach { requiredKey -> + assert map.containsKey(requiredKey) : "Missing required key '$key' in ${mapName ? mapName + " " : ""}map" + } +} + +// TODO: unit test processDirectives +def processDirectives(Map drctv) { + // remove null values + drctv = drctv.findAll{k, v -> v != null} + + // check for unexpected keys + def expectedKeys = [ + "accelerator", "afterScript", "beforeScript", "cache", "conda", "container", "containerOptions", "cpus", "disk", "echo", "errorStrategy", "executor", "machineType", "maxErrors", "maxForks", "maxRetries", "memory", "module", "penv", "pod", "publishDir", "queue", "label", "scratch", "storeDir", "stageInMode", "stageOutMode", "tag", "time" + ] + def unexpectedKeys = drctv.keySet() - expectedKeys + assert unexpectedKeys.isEmpty() : "Unexpected keys in process directive: '${unexpectedKeys.join("', '")}'" + + /* DIRECTIVE accelerator + accepted examples: + - [ limit: 4, type: "nvidia-tesla-k80" ] + */ + if (drctv.containsKey("accelerator")) { + assertMapKeys(drctv["accelerator"], ["type", "limit", "request", "runtime"], [], "accelerator") + } + + /* DIRECTIVE afterScript + accepted examples: + - "source /cluster/bin/cleanup" + */ + if (drctv.containsKey("afterScript")) { + assert drctv["afterScript"] instanceof CharSequence + } + + /* DIRECTIVE beforeScript + accepted examples: + - "source /cluster/bin/setup" + */ + if (drctv.containsKey("beforeScript")) { + assert drctv["beforeScript"] instanceof CharSequence + } + + /* DIRECTIVE cache + accepted examples: + - true + - false + - "deep" + - "lenient" + */ + if (drctv.containsKey("cache")) { + assert drctv["cache"] instanceof CharSequence || drctv["cache"] instanceof Boolean + if (drctv["cache"] instanceof CharSequence) { + assert drctv["cache"] in ["deep", "lenient"] : "Unexpected value for cache" + } + } + + /* DIRECTIVE conda + accepted examples: + - "bwa=0.7.15" + - "bwa=0.7.15 fastqc=0.11.5" + - ["bwa=0.7.15", "fastqc=0.11.5"] + */ + if (drctv.containsKey("conda")) { + if (drctv["conda"] instanceof List) { + drctv["conda"] = drctv["conda"].join(" ") + } + assert drctv["conda"] instanceof CharSequence + } + + /* DIRECTIVE container + accepted examples: + - "foo/bar:tag" + - [ registry: "reg", image: "im", tag: "ta" ] + is transformed to "reg/im:ta" + - [ image: "im" ] + is transformed to "im:latest" + */ + if (drctv.containsKey("container")) { + assert drctv["container"] instanceof Map || drctv["container"] instanceof CharSequence + if (drctv["container"] instanceof Map) { + def m = drctv["container"] + assertMapKeys(m, [ "registry", "image", "tag" ], ["image"], "container") + def part1 = + System.getenv('OVERRIDE_CONTAINER_REGISTRY') ? System.getenv('OVERRIDE_CONTAINER_REGISTRY') + "/" : + params.containsKey("override_container_registry") ? params["override_container_registry"] + "/" : // todo: remove? + m.registry ? m.registry + "/" : + "" + def part2 = m.image + def part3 = m.tag ? ":" + m.tag : ":latest" + drctv["container"] = part1 + part2 + part3 + } + } + + /* DIRECTIVE containerOptions + accepted examples: + - "--foo bar" + - ["--foo bar", "-f b"] + */ + if (drctv.containsKey("containerOptions")) { + if (drctv["containerOptions"] instanceof List) { + drctv["containerOptions"] = drctv["containerOptions"].join(" ") + } + assert drctv["containerOptions"] instanceof CharSequence + } + + /* DIRECTIVE cpus + accepted examples: + - 1 + - 10 + */ + if (drctv.containsKey("cpus")) { + assert drctv["cpus"] instanceof Integer + } + + /* DIRECTIVE disk + accepted examples: + - "1 GB" + - "2TB" + - "3.2KB" + - "10.B" + */ + if (drctv.containsKey("disk")) { + assert drctv["disk"] instanceof CharSequence + // assert drctv["disk"].matches("[0-9]+(\\.[0-9]*)? *[KMGTPEZY]?B") + // ^ does not allow closures + } + + /* DIRECTIVE echo + accepted examples: + - true + - false + */ + if (drctv.containsKey("echo")) { + assert drctv["echo"] instanceof Boolean + } + + /* DIRECTIVE errorStrategy + accepted examples: + - "terminate" + - "finish" + */ + if (drctv.containsKey("errorStrategy")) { + assert drctv["errorStrategy"] instanceof CharSequence + assert drctv["errorStrategy"] in ["terminate", "finish", "ignore", "retry"] : "Unexpected value for errorStrategy" + } + + /* DIRECTIVE executor + accepted examples: + - "local" + - "sge" + */ + if (drctv.containsKey("executor")) { + assert drctv["executor"] instanceof CharSequence + assert drctv["executor"] in ["local", "sge", "uge", "lsf", "slurm", "pbs", "pbspro", "moab", "condor", "nqsii", "ignite", "k8s", "awsbatch", "google-pipelines"] : "Unexpected value for executor" + } + + /* DIRECTIVE machineType + accepted examples: + - "n1-highmem-8" + */ + if (drctv.containsKey("machineType")) { + assert drctv["machineType"] instanceof CharSequence + } + + /* DIRECTIVE maxErrors + accepted examples: + - 1 + - 3 + */ + if (drctv.containsKey("maxErrors")) { + assert drctv["maxErrors"] instanceof Integer + } + + /* DIRECTIVE maxForks + accepted examples: + - 1 + - 3 + */ + if (drctv.containsKey("maxForks")) { + assert drctv["maxForks"] instanceof Integer + } + + /* DIRECTIVE maxRetries + accepted examples: + - 1 + - 3 + */ + if (drctv.containsKey("maxRetries")) { + assert drctv["maxRetries"] instanceof Integer + } + + /* DIRECTIVE memory + accepted examples: + - "1 GB" + - "2TB" + - "3.2KB" + - "10.B" + */ + if (drctv.containsKey("memory")) { + assert drctv["memory"] instanceof CharSequence + // assert drctv["memory"].matches("[0-9]+(\\.[0-9]*)? *[KMGTPEZY]?B") + // ^ does not allow closures + } + + /* DIRECTIVE module + accepted examples: + - "ncbi-blast/2.2.27" + - "ncbi-blast/2.2.27:t_coffee/10.0" + - ["ncbi-blast/2.2.27", "t_coffee/10.0"] + */ + if (drctv.containsKey("module")) { + if (drctv["module"] instanceof List) { + drctv["module"] = drctv["module"].join(":") + } + assert drctv["module"] instanceof CharSequence + } + + /* DIRECTIVE penv + accepted examples: + - "smp" + */ + if (drctv.containsKey("penv")) { + assert drctv["penv"] instanceof CharSequence + } + + /* DIRECTIVE pod + accepted examples: + - [ label: "key", value: "val" ] + - [ annotation: "key", value: "val" ] + - [ env: "key", value: "val" ] + - [ [label: "l", value: "v"], [env: "e", value: "v"]] + */ + if (drctv.containsKey("pod")) { + if (drctv["pod"] instanceof Map) { + drctv["pod"] = [ drctv["pod"] ] + } + assert drctv["pod"] instanceof List + drctv["pod"].forEach { pod -> + assert pod instanceof Map + // TODO: should more checks be added? + // See https://www.nextflow.io/docs/latest/process.html?highlight=directives#pod + // e.g. does it contain 'label' and 'value', or 'annotation' and 'value', or ...? + } + } + + /* DIRECTIVE publishDir + accepted examples: + - [] + - [ [ path: "foo", enabled: true ], [ path: "bar", enabled: false ] ] + - "/path/to/dir" + is transformed to [[ path: "/path/to/dir" ]] + - [ path: "/path/to/dir", mode: "cache" ] + is transformed to [[ path: "/path/to/dir", mode: "cache" ]] + */ + // TODO: should we also look at params["publishDir"]? + if (drctv.containsKey("publishDir")) { + def pblsh = drctv["publishDir"] + + // check different options + assert pblsh instanceof List || pblsh instanceof Map || pblsh instanceof CharSequence + + // turn into list if not already so + // for some reason, 'if (!pblsh instanceof List) pblsh = [ pblsh ]' doesn't work. + pblsh = pblsh instanceof List ? pblsh : [ pblsh ] + + // check elements of publishDir + pblsh = pblsh.collect{ elem -> + // turn into map if not already so + elem = elem instanceof CharSequence ? [ path: elem ] : elem + + // check types and keys + assert elem instanceof Map : "Expected publish argument '$elem' to be a String or a Map. Found: class ${elem.getClass()}" + assertMapKeys(elem, [ "path", "mode", "overwrite", "pattern", "saveAs", "enabled" ], ["path"], "publishDir") + + // check elements in map + assert elem.containsKey("path") + assert elem["path"] instanceof CharSequence + if (elem.containsKey("mode")) { + assert elem["mode"] instanceof CharSequence + assert elem["mode"] in [ "symlink", "rellink", "link", "copy", "copyNoFollow", "move" ] + } + if (elem.containsKey("overwrite")) { + assert elem["overwrite"] instanceof Boolean + } + if (elem.containsKey("pattern")) { + assert elem["pattern"] instanceof CharSequence + } + if (elem.containsKey("saveAs")) { + assert elem["saveAs"] instanceof CharSequence //: "saveAs as a Closure is currently not supported. Surround your closure with single quotes to get the desired effect. Example: '\{ foo \}'" + } + if (elem.containsKey("enabled")) { + assert elem["enabled"] instanceof Boolean + } + + // return final result + elem + } + // store final directive + drctv["publishDir"] = pblsh + } + + /* DIRECTIVE queue + accepted examples: + - "long" + - "short,long" + - ["short", "long"] + */ + if (drctv.containsKey("queue")) { + if (drctv["queue"] instanceof List) { + drctv["queue"] = drctv["queue"].join(",") + } + assert drctv["queue"] instanceof CharSequence + } + + /* DIRECTIVE label + accepted examples: + - "big_mem" + - "big_cpu" + - ["big_mem", "big_cpu"] + */ + if (drctv.containsKey("label")) { + if (drctv["label"] instanceof CharSequence) { + drctv["label"] = [ drctv["label"] ] + } + assert drctv["label"] instanceof List + drctv["label"].forEach { label -> + assert label instanceof CharSequence + // assert label.matches("[a-zA-Z0-9]([a-zA-Z0-9_]*[a-zA-Z0-9])?") + // ^ does not allow closures + } + } + + /* DIRECTIVE scratch + accepted examples: + - true + - "/path/to/scratch" + - '$MY_PATH_TO_SCRATCH' + - "ram-disk" + */ + if (drctv.containsKey("scratch")) { + assert drctv["scratch"] == true || drctv["scratch"] instanceof CharSequence + } + + /* DIRECTIVE storeDir + accepted examples: + - "/path/to/storeDir" + */ + if (drctv.containsKey("storeDir")) { + assert drctv["storeDir"] instanceof CharSequence + } + + /* DIRECTIVE stageInMode + accepted examples: + - "copy" + - "link" + */ + if (drctv.containsKey("stageInMode")) { + assert drctv["stageInMode"] instanceof CharSequence + assert drctv["stageInMode"] in ["copy", "link", "symlink", "rellink"] + } + + /* DIRECTIVE stageOutMode + accepted examples: + - "copy" + - "link" + */ + if (drctv.containsKey("stageOutMode")) { + assert drctv["stageOutMode"] instanceof CharSequence + assert drctv["stageOutMode"] in ["copy", "move", "rsync"] + } + + /* DIRECTIVE tag + accepted examples: + - "foo" + - '$id' + */ + if (drctv.containsKey("tag")) { + assert drctv["tag"] instanceof CharSequence + } + + /* DIRECTIVE time + accepted examples: + - "1h" + - "2days" + - "1day 6hours 3minutes 30seconds" + */ + if (drctv.containsKey("time")) { + assert drctv["time"] instanceof CharSequence + // todo: validation regex? + } + + return drctv +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/workflowFactory/processWorkflowArgs.nf' +def processWorkflowArgs(Map args, Map defaultWfArgs, Map meta) { + // override defaults with args + def workflowArgs = defaultWfArgs + args + + // check whether 'key' exists + assert workflowArgs.containsKey("key") : "Error in module '${meta.config.name}': key is a required argument" + + // if 'key' is a closure, apply it to the original key + if (workflowArgs["key"] instanceof Closure) { + workflowArgs["key"] = workflowArgs["key"](meta.config.name) + } + def key = workflowArgs["key"] + assert key instanceof CharSequence : "Expected process argument 'key' to be a String. Found: class ${key.getClass()}" + assert key ==~ /^[a-zA-Z_]\w*$/ : "Error in module '$key': Expected process argument 'key' to consist of only letters, digits or underscores. Found: ${key}" + + // check for any unexpected keys + def expectedKeys = ["key", "directives", "auto", "map", "mapId", "mapData", "mapPassthrough", "filter", "runIf", "fromState", "toState", "args", "renameKeys", "debug"] + def unexpectedKeys = workflowArgs.keySet() - expectedKeys + assert unexpectedKeys.isEmpty() : "Error in module '$key': unexpected arguments to the '.run()' function: '${unexpectedKeys.join("', '")}'" + + // check whether directives exists and apply defaults + assert workflowArgs.containsKey("directives") : "Error in module '$key': directives is a required argument" + assert workflowArgs["directives"] instanceof Map : "Error in module '$key': Expected process argument 'directives' to be a Map. Found: class ${workflowArgs['directives'].getClass()}" + workflowArgs["directives"] = processDirectives(defaultWfArgs.directives + workflowArgs["directives"]) + + // check whether directives exists and apply defaults + assert workflowArgs.containsKey("auto") : "Error in module '$key': auto is a required argument" + assert workflowArgs["auto"] instanceof Map : "Error in module '$key': Expected process argument 'auto' to be a Map. Found: class ${workflowArgs['auto'].getClass()}" + workflowArgs["auto"] = processAuto(defaultWfArgs.auto + workflowArgs["auto"]) + + // auto define publish, if so desired + if (workflowArgs.auto.publish == true && (workflowArgs.directives.publishDir != null ? workflowArgs.directives.publishDir : [:]).isEmpty()) { + // can't assert at this level thanks to the no_publish profile + // assert params.containsKey("publishDir") || params.containsKey("publish_dir") : + // "Error in module '${workflowArgs['key']}': if auto.publish is true, params.publish_dir needs to be defined.\n" + + // " Example: params.publish_dir = \"./output/\"" + def publishDir = getPublishDir() + + if (publishDir != null) { + workflowArgs.directives.publishDir = [[ + path: publishDir, + saveAs: "{ it.startsWith('.') ? null : it }", // don't publish hidden files, by default + mode: "copy" + ]] + } + } + + // auto define transcript, if so desired + if (workflowArgs.auto.transcript == true) { + // can't assert at this level thanks to the no_publish profile + // assert params.containsKey("transcriptsDir") || params.containsKey("transcripts_dir") || params.containsKey("publishDir") || params.containsKey("publish_dir") : + // "Error in module '${workflowArgs['key']}': if auto.transcript is true, either params.transcripts_dir or params.publish_dir needs to be defined.\n" + + // " Example: params.transcripts_dir = \"./transcripts/\"" + def transcriptsDir = + params.containsKey("transcripts_dir") ? params.transcripts_dir : + params.containsKey("transcriptsDir") ? params.transcriptsDir : + params.containsKey("publish_dir") ? params.publish_dir + "/_transcripts" : + params.containsKey("publishDir") ? params.publishDir + "/_transcripts" : + null + if (transcriptsDir != null) { + def timestamp = nextflow.Nextflow.getSession().getWorkflowMetadata().start.format('yyyy-MM-dd_HH-mm-ss') + def transcriptsPublishDir = [ + path: "$transcriptsDir/$timestamp/\${task.process.replaceAll(':', '-')}/\${id}/", + saveAs: "{ it.startsWith('.') ? it.replaceAll('^.', '') : null }", + mode: "copy" + ] + def publishDirs = workflowArgs.directives.publishDir != null ? workflowArgs.directives.publishDir : null ? workflowArgs.directives.publishDir : [] + workflowArgs.directives.publishDir = publishDirs + transcriptsPublishDir + } + } + + // if this is a stubrun, remove certain directives? + if (workflow.stubRun) { + workflowArgs.directives.keySet().removeAll(["publishDir", "cpus", "memory", "label"]) + } + + for (nam in ["map", "mapId", "mapData", "mapPassthrough", "filter", "runIf"]) { + if (workflowArgs.containsKey(nam) && workflowArgs[nam]) { + assert workflowArgs[nam] instanceof Closure : "Error in module '$key': Expected process argument '$nam' to be null or a Closure. Found: class ${workflowArgs[nam].getClass()}" + } + } + + // TODO: should functions like 'map', 'mapId', 'mapData', 'mapPassthrough' be deprecated as well? + for (nam in ["map", "mapData", "mapPassthrough", "renameKeys"]) { + if (workflowArgs.containsKey(nam) && workflowArgs[nam] != null) { + log.warn "module '$key': workflow argument '$nam' is deprecated and will be removed in Viash 0.9.0. Please use 'fromState' and 'toState' instead." + } + } + + // check fromState + workflowArgs["fromState"] = _processFromState(workflowArgs.get("fromState"), key, meta.config) + + // check toState + workflowArgs["toState"] = _processToState(workflowArgs.get("toState"), key, meta.config) + + // return output + return workflowArgs +} + +def _processFromState(fromState, key_, config_) { + assert fromState == null || fromState instanceof Closure || fromState instanceof Map || fromState instanceof List : + "Error in module '$key_': Expected process argument 'fromState' to be null, a Closure, a Map, or a List. Found: class ${fromState.getClass()}" + if (fromState == null) { + return null + } + + // if fromState is a List, convert to map + if (fromState instanceof List) { + // check whether fromstate is a list[string] + assert fromState.every{it instanceof CharSequence} : "Error in module '$key_': fromState is a List, but not all elements are Strings" + fromState = fromState.collectEntries{[it, it]} + } + + // if fromState is a map, convert to closure + if (fromState instanceof Map) { + // check whether fromstate is a map[string, string] + assert fromState.values().every{it instanceof CharSequence} : "Error in module '$key_': fromState is a Map, but not all values are Strings" + assert fromState.keySet().every{it instanceof CharSequence} : "Error in module '$key_': fromState is a Map, but not all keys are Strings" + def fromStateMap = fromState.clone() + def requiredInputNames = meta.config.allArguments.findAll{it.required && it.direction == "Input"}.collect{it.plainName} + // turn the map into a closure to be used later on + fromState = { it -> + def state = it[1] + assert state instanceof Map : "Error in module '$key_': the state is not a Map" + def data = fromStateMap.collectMany{newkey, origkey -> + // check whether newkey corresponds to a required argument + if (state.containsKey(origkey)) { + [[newkey, state[origkey]]] + } else if (!requiredInputNames.contains(origkey)) { + [] + } else { + throw new Exception("Error in module '$key_': fromState key '$origkey' not found in current state") + } + }.collectEntries() + data + } + } + + return fromState +} + +def _processToState(toState, key_, config_) { + if (toState == null) { + toState = { tup -> tup[1] } + } + + // toState should be a closure, map[string, string], or list[string] + assert toState instanceof Closure || toState instanceof Map || toState instanceof List : + "Error in module '$key_': Expected process argument 'toState' to be a Closure, a Map, or a List. Found: class ${toState.getClass()}" + + // if toState is a List, convert to map + if (toState instanceof List) { + // check whether toState is a list[string] + assert toState.every{it instanceof CharSequence} : "Error in module '$key_': toState is a List, but not all elements are Strings" + toState = toState.collectEntries{[it, it]} + } + + // if toState is a map, convert to closure + if (toState instanceof Map) { + // check whether toState is a map[string, string] + assert toState.values().every{it instanceof CharSequence} : "Error in module '$key_': toState is a Map, but not all values are Strings" + assert toState.keySet().every{it instanceof CharSequence} : "Error in module '$key_': toState is a Map, but not all keys are Strings" + def toStateMap = toState.clone() + def requiredOutputNames = config_.allArguments.findAll{it.required && it.direction == "Output"}.collect{it.plainName} + // turn the map into a closure to be used later on + toState = { it -> + def output = it[1] + def state = it[2] + assert output instanceof Map : "Error in module '$key_': the output is not a Map" + assert state instanceof Map : "Error in module '$key_': the state is not a Map" + def extraEntries = toStateMap.collectMany{newkey, origkey -> + // check whether newkey corresponds to a required argument + if (output.containsKey(origkey)) { + [[newkey, output[origkey]]] + } else if (!requiredOutputNames.contains(origkey)) { + [] + } else { + throw new Exception("Error in module '$key_': toState key '$origkey' not found in current output") + } + }.collectEntries() + state + extraEntries + } + } + + return toState +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/workflowFactory/workflowFactory.nf' +def _debug(workflowArgs, debugKey) { + if (workflowArgs.debug) { + view { "process '${workflowArgs.key}' $debugKey tuple: $it" } + } else { + map { it } + } +} + +// depends on: innerWorkflowFactory +def workflowFactory(Map args, Map defaultWfArgs, Map meta) { + def workflowArgs = processWorkflowArgs(args, defaultWfArgs, meta) + def key_ = workflowArgs["key"] + + workflow workflowInstance { + take: input_ + + main: + def chModified = input_ + | checkUniqueIds([:]) + | _debug(workflowArgs, "input") + | map { tuple -> + tuple = deepClone(tuple) + + if (workflowArgs.map) { + tuple = workflowArgs.map(tuple) + } + if (workflowArgs.mapId) { + tuple[0] = workflowArgs.mapId(tuple[0]) + } + if (workflowArgs.mapData) { + tuple[1] = workflowArgs.mapData(tuple[1]) + } + if (workflowArgs.mapPassthrough) { + tuple = tuple.take(2) + workflowArgs.mapPassthrough(tuple.drop(2)) + } + + // check tuple + assert tuple instanceof List : + "Error in module '${key_}': element in channel should be a tuple [id, data, ...otherargs...]\n" + + " Example: [\"id\", [input: file('foo.txt'), arg: 10]].\n" + + " Expected class: List. Found: tuple.getClass() is ${tuple.getClass()}" + assert tuple.size() >= 2 : + "Error in module '${key_}': expected length of tuple in input channel to be two or greater.\n" + + " Example: [\"id\", [input: file('foo.txt'), arg: 10]].\n" + + " Found: tuple.size() == ${tuple.size()}" + + // check id field + if (tuple[0] instanceof GString) { + tuple[0] = tuple[0].toString() + } + assert tuple[0] instanceof CharSequence : + "Error in module '${key_}': first element of tuple in channel should be a String\n" + + " Example: [\"id\", [input: file('foo.txt'), arg: 10]].\n" + + " Found: ${tuple[0]}" + + // match file to input file + if (workflowArgs.auto.simplifyInput && (tuple[1] instanceof Path || tuple[1] instanceof List)) { + def inputFiles = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "input" } + + assert inputFiles.size() == 1 : + "Error in module '${key_}' id '${tuple[0]}'.\n" + + " Anonymous file inputs are only allowed when the process has exactly one file input.\n" + + " Expected: inputFiles.size() == 1. Found: inputFiles.size() is ${inputFiles.size()}" + + tuple[1] = [[ inputFiles[0].plainName, tuple[1] ]].collectEntries() + } + + // check data field + assert tuple[1] instanceof Map : + "Error in module '${key_}' id '${tuple[0]}': second element of tuple in channel should be a Map\n" + + " Example: [\"id\", [input: file('foo.txt'), arg: 10]].\n" + + " Expected class: Map. Found: tuple[1].getClass() is ${tuple[1].getClass()}" + + // rename keys of data field in tuple + if (workflowArgs.renameKeys) { + assert workflowArgs.renameKeys instanceof Map : + "Error renaming data keys in module '${key_}' id '${tuple[0]}'.\n" + + " Example: renameKeys: ['new_key': 'old_key'].\n" + + " Expected class: Map. Found: renameKeys.getClass() is ${workflowArgs.renameKeys.getClass()}" + assert tuple[1] instanceof Map : + "Error renaming data keys in module '${key_}' id '${tuple[0]}'.\n" + + " Expected class: Map. Found: tuple[1].getClass() is ${tuple[1].getClass()}" + + // TODO: allow renameKeys to be a function? + workflowArgs.renameKeys.each { newKey, oldKey -> + assert newKey instanceof CharSequence : + "Error renaming data keys in module '${key_}' id '${tuple[0]}'.\n" + + " Example: renameKeys: ['new_key': 'old_key'].\n" + + " Expected class of newKey: String. Found: newKey.getClass() is ${newKey.getClass()}" + assert oldKey instanceof CharSequence : + "Error renaming data keys in module '${key_}' id '${tuple[0]}'.\n" + + " Example: renameKeys: ['new_key': 'old_key'].\n" + + " Expected class of oldKey: String. Found: oldKey.getClass() is ${oldKey.getClass()}" + assert tuple[1].containsKey(oldKey) : + "Error renaming data keys in module '${key}' id '${tuple[0]}'.\n" + + " Key '$oldKey' is missing in the data map. tuple[1].keySet() is '${tuple[1].keySet()}'" + tuple[1].put(newKey, tuple[1][oldKey]) + } + tuple[1].keySet().removeAll(workflowArgs.renameKeys.collect{ newKey, oldKey -> oldKey }) + } + tuple + } + + + def chRun = null + def chPassthrough = null + if (workflowArgs.runIf) { + def runIfBranch = chModified.branch{ tup -> + run: workflowArgs.runIf(tup[0], tup[1]) + passthrough: true + } + chRun = runIfBranch.run + chPassthrough = runIfBranch.passthrough + } else { + chRun = chModified + chPassthrough = Channel.empty() + } + + def chRunFiltered = workflowArgs.filter ? + chRun | filter{workflowArgs.filter(it)} : + chRun + + def chArgs = workflowArgs.fromState ? + chRunFiltered | map{ + def new_data = workflowArgs.fromState(it.take(2)) + [it[0], new_data] + } : + chRunFiltered | map {tup -> tup.take(2)} + + // fill in defaults + def chArgsWithDefaults = chArgs + | map { tuple -> + def id_ = tuple[0] + def data_ = tuple[1] + + // TODO: could move fromState to here + + // fetch default params from functionality + def defaultArgs = meta.config.allArguments + .findAll { it.containsKey("default") } + .collectEntries { [ it.plainName, it.default ] } + + // fetch overrides in params + def paramArgs = meta.config.allArguments + .findAll { par -> + def argKey = key_ + "__" + par.plainName + params.containsKey(argKey) + } + .collectEntries { [ it.plainName, params[key_ + "__" + it.plainName] ] } + + // fetch overrides in data + def dataArgs = meta.config.allArguments + .findAll { data_.containsKey(it.plainName) } + .collectEntries { [ it.plainName, data_[it.plainName] ] } + + // combine params + def combinedArgs = defaultArgs + paramArgs + workflowArgs.args + dataArgs + + // remove arguments with explicit null values + combinedArgs + .removeAll{_, val -> val == null || val == "viash_no_value" || val == "force_null"} + + combinedArgs = _processInputValues(combinedArgs, meta.config, id_, key_) + + [id_, combinedArgs] + tuple.drop(2) + } + + // TODO: move some of the _meta.join_id wrangling to the safeJoin() function. + def chInitialOutput = chArgsWithDefaults + | _debug(workflowArgs, "processed") + // run workflow + | innerWorkflowFactory(workflowArgs) + // check output tuple + | map { id_, output_ -> + + // see if output map contains metadata + def meta_ = + output_ instanceof Map && output_.containsKey("_meta") ? + output_["_meta"] : + [:] + def join_id = meta_.join_id ?: id_ + + // remove metadata + output_ = output_.findAll{k, v -> k != "_meta"} + + // check value types + output_ = _processOutputValues(output_, meta.config, id_, key_) + + // simplify output if need be + if (workflowArgs.auto.simplifyOutput && output_.size() == 1) { + output_ = output_.values()[0] + } + + [join_id, id_, output_] + } + // | view{"chInitialOutput: ${it.take(3)}"} + + // join the output [prev_id, new_id, output] with the previous state [prev_id, state, ...] + def chNewState = safeJoin(chInitialOutput, chRunFiltered, key_) + // input tuple format: [join_id, id, output, prev_state, ...] + // output tuple format: [join_id, id, new_state, ...] + | map{ tup -> + def new_state = workflowArgs.toState(tup.drop(1).take(3)) + tup.take(2) + [new_state] + tup.drop(4) + } + + if (workflowArgs.auto.publish == "state") { + def chPublish = chNewState + // input tuple format: [join_id, id, new_state, ...] + // output tuple format: [join_id, id, new_state] + | map{ tup -> + tup.take(3) + } + + safeJoin(chPublish, chArgsWithDefaults, key_) + // input tuple format: [join_id, id, new_state, orig_state, ...] + // output tuple format: [id, new_state, orig_state] + | map { tup -> + tup.drop(1).take(3) + } + | publishStatesByConfig(key: key_, config: meta.config) + } + + // remove join_id and meta + chReturn = chNewState + | map { tup -> + // input tuple format: [join_id, id, new_state, ...] + // output tuple format: [id, new_state, ...] + tup.drop(1) + } + | _debug(workflowArgs, "output") + | concat(chPassthrough) + + emit: chReturn + } + + def wf = workflowInstance.cloneWithName(key_) + + // add factory function + wf.metaClass.run = { runArgs -> + workflowFactory(runArgs, workflowArgs, meta) + } + // add config to module for later introspection + wf.metaClass.config = meta.config + + return wf +} + +nextflow.enable.dsl=2 + +// START COMPONENT-SPECIFIC CODE + +// create meta object +meta = [ + "resources_dir": moduleDir.toRealPath().normalize(), + "config": processConfig(readJsonBlob('''{ + "name" : "create_pdata", + "namespace" : "eset", + "version" : "main", + "argument_groups" : [ + { + "name" : "Arguments", + "arguments" : [ + { + "type" : "file", + "name" : "--star_stats_file", + "description" : "Tab-delimited text file containing statistics (per column) that were generated\nfrom the STAR log files (Log.final.out, Summary.csv, ReadsPerGene.out.tab).\nEach entry (row) in the file describes the values for one well (barcode).\n", + "must_exist" : true, + "create_parent" : true, + "required" : true, + "direction" : "input", + "multiple" : false, + "multiple_sep" : ";" + }, + { + "type" : "file", + "name" : "--nrReadsNrGenesPerChromPool", + "description" : "Pivot table in tsv format of the combined nrReadsNrGenesPerChrom files from STAR. \nDescribes per chromosome (as columns) the number of reads, as well as the total number \nof reads per cell barcode and the percentage of nuclear, ERCC and mitochondrial\nreads.\n", + "must_exist" : true, + "create_parent" : true, + "required" : true, + "direction" : "input", + "multiple" : false, + "multiple_sep" : ";" + }, + { + "type" : "file", + "name" : "--output", + "default" : [ + "pData.$id.txt" + ], + "must_exist" : true, + "create_parent" : true, + "required" : false, + "direction" : "output", + "multiple" : false, + "multiple_sep" : ";" + } + ] + } + ], + "resources" : [ + { + "type" : "python_script", + "path" : "create_pdata.py", + "is_executable" : true + }, + { + "type" : "file", + "path" : "/src/config/labels.config", + "dest" : "nextflow_labels.config" + } + ], + "description" : "Create a pdata file by combining the mapping statistics \n", + "test_resources" : [ + { + "type" : "python_script", + "path" : "test.py", + "is_executable" : true + }, + { + "type" : "file", + "path" : "nrReadsNrGenesPerChromPool.txt" + }, + { + "type" : "file", + "path" : "starLogs.txt" + } + ], + "status" : "enabled", + "requirements" : { + "commands" : [ + "ps" + ] + }, + "license" : "MIT", + "links" : { + "repository" : "https://github.com/viash-hub/htrnaseq" + }, + "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" : "main", + "namespace_separator" : "/", + "setup" : [ + { + "type" : "apt", + "packages" : [ + "procps" + ], + "interactive" : false + }, + { + "type" : "python", + "user" : false, + "packages" : [ + "pandas" + ], + "upgrade" : true + } + ], + "test_setup" : [ + { + "type" : "python", + "user" : false, + "packages" : [ + "viashpy" + ], + "upgrade" : true + } + ] + }, + { + "type" : "native", + "id" : "native" + } + ], + "build_info" : { + "config" : "/workdir/root/repo/src/eset/create_pdata/config.vsh.yaml", + "runner" : "nextflow", + "engine" : "docker|native", + "output" : "target/nextflow/eset/create_pdata", + "viash_version" : "0.9.0", + "git_commit" : "65dd41d8b1b4a307735c72320c96c0880c75f17f", + "git_remote" : "https://x-access-token:ghs_McZDF0yobnnHmOEb2Q4JaaB3pzr9mz1VbIOs@github.com/viash-hub/htrnaseq" + }, + "package_config" : { + "name" : "htrnaseq", + "version" : "main", + "description" : "High-throughput pipeline [WIP]\n", + "info" : { + "test_resources" : [ + { + "path" : "gs://viash-hub-test-data/htrnaseq/v1/", + "dest" : "resources_test" + } + ] + }, + "viash_version" : "0.9.0", + "source" : "src", + "target" : "target", + "config_mods" : [ + ".requirements.commands := ['ps']\n.runners[.type == 'nextflow'].config.script := 'includeConfig(\\"nextflow_labels.config\\")'\n.resources += {path: '/src/config/labels.config', dest: 'nextflow_labels.config'}\n", + ".engines += { type: \\"native\\" }", + ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'", + ".engines[.type == 'docker'].target_tag := 'main'" + ], + "keywords" : [ + "bioinformatics", + "sequence", + "high-throughput", + "mapping", + "counting", + "pipeline" + ], + "license" : "MIT", + "organization" : "vsh", + "links" : { + "repository" : "https://github.com/viash-hub/htrnaseq", + "issue_tracker" : "https://github.com/viash-hub/htrnaseq/issues" + } + } +}''')) +] + +// resolve dependencies dependencies (if any) + + +// inner workflow +// inner workflow hook +def innerWorkflowFactory(args) { + def rawScript = '''set -e +tempscript=".viash_script.sh" +cat > "$tempscript" << VIASHMAIN +from itertools import batched +import pandas as pd +import logging + +### VIASH START +# The following code has been auto-generated by Viash. +par = { + 'star_stats_file': $( if [ ! -z ${VIASH_PAR_STAR_STATS_FILE+x} ]; then echo "r'${VIASH_PAR_STAR_STATS_FILE//\\'/\\'\\"\\'\\"r\\'}'"; else echo None; fi ), + 'nrReadsNrGenesPerChromPool': $( if [ ! -z ${VIASH_PAR_NRREADSNRGENESPERCHROMPOOL+x} ]; then echo "r'${VIASH_PAR_NRREADSNRGENESPERCHROMPOOL//\\'/\\'\\"\\'\\"r\\'}'"; else echo None; fi ), + 'output': $( if [ ! -z ${VIASH_PAR_OUTPUT+x} ]; then echo "r'${VIASH_PAR_OUTPUT//\\'/\\'\\"\\'\\"r\\'}'"; else echo None; fi ) +} +meta = { + 'name': $( if [ ! -z ${VIASH_META_NAME+x} ]; then echo "r'${VIASH_META_NAME//\\'/\\'\\"\\'\\"r\\'}'"; else echo None; fi ), + 'functionality_name': $( if [ ! -z ${VIASH_META_FUNCTIONALITY_NAME+x} ]; then echo "r'${VIASH_META_FUNCTIONALITY_NAME//\\'/\\'\\"\\'\\"r\\'}'"; else echo None; fi ), + 'resources_dir': $( if [ ! -z ${VIASH_META_RESOURCES_DIR+x} ]; then echo "r'${VIASH_META_RESOURCES_DIR//\\'/\\'\\"\\'\\"r\\'}'"; else echo None; fi ), + 'executable': $( if [ ! -z ${VIASH_META_EXECUTABLE+x} ]; then echo "r'${VIASH_META_EXECUTABLE//\\'/\\'\\"\\'\\"r\\'}'"; else echo None; fi ), + 'config': $( if [ ! -z ${VIASH_META_CONFIG+x} ]; then echo "r'${VIASH_META_CONFIG//\\'/\\'\\"\\'\\"r\\'}'"; else echo None; fi ), + 'temp_dir': $( if [ ! -z ${VIASH_META_TEMP_DIR+x} ]; then echo "r'${VIASH_META_TEMP_DIR//\\'/\\'\\"\\'\\"r\\'}'"; else echo None; fi ), + 'cpus': $( if [ ! -z ${VIASH_META_CPUS+x} ]; then echo "int(r'${VIASH_META_CPUS//\\'/\\'\\"\\'\\"r\\'}')"; else echo None; fi ), + 'memory_b': $( if [ ! -z ${VIASH_META_MEMORY_B+x} ]; then echo "int(r'${VIASH_META_MEMORY_B//\\'/\\'\\"\\'\\"r\\'}')"; else echo None; fi ), + 'memory_kb': $( if [ ! -z ${VIASH_META_MEMORY_KB+x} ]; then echo "int(r'${VIASH_META_MEMORY_KB//\\'/\\'\\"\\'\\"r\\'}')"; else echo None; fi ), + 'memory_mb': $( if [ ! -z ${VIASH_META_MEMORY_MB+x} ]; then echo "int(r'${VIASH_META_MEMORY_MB//\\'/\\'\\"\\'\\"r\\'}')"; else echo None; fi ), + 'memory_gb': $( if [ ! -z ${VIASH_META_MEMORY_GB+x} ]; then echo "int(r'${VIASH_META_MEMORY_GB//\\'/\\'\\"\\'\\"r\\'}')"; else echo None; fi ), + 'memory_tb': $( if [ ! -z ${VIASH_META_MEMORY_TB+x} ]; then echo "int(r'${VIASH_META_MEMORY_TB//\\'/\\'\\"\\'\\"r\\'}')"; else echo None; fi ), + 'memory_pb': $( if [ ! -z ${VIASH_META_MEMORY_PB+x} ]; then echo "int(r'${VIASH_META_MEMORY_PB//\\'/\\'\\"\\'\\"r\\'}')"; else echo None; fi ), + 'memory_kib': $( if [ ! -z ${VIASH_META_MEMORY_KIB+x} ]; then echo "int(r'${VIASH_META_MEMORY_KIB//\\'/\\'\\"\\'\\"r\\'}')"; else echo None; fi ), + 'memory_mib': $( if [ ! -z ${VIASH_META_MEMORY_MIB+x} ]; then echo "int(r'${VIASH_META_MEMORY_MIB//\\'/\\'\\"\\'\\"r\\'}')"; else echo None; fi ), + 'memory_gib': $( if [ ! -z ${VIASH_META_MEMORY_GIB+x} ]; then echo "int(r'${VIASH_META_MEMORY_GIB//\\'/\\'\\"\\'\\"r\\'}')"; else echo None; fi ), + 'memory_tib': $( if [ ! -z ${VIASH_META_MEMORY_TIB+x} ]; then echo "int(r'${VIASH_META_MEMORY_TIB//\\'/\\'\\"\\'\\"r\\'}')"; else echo None; fi ), + 'memory_pib': $( if [ ! -z ${VIASH_META_MEMORY_PIB+x} ]; then echo "int(r'${VIASH_META_MEMORY_PIB//\\'/\\'\\"\\'\\"r\\'}')"; else echo None; fi ) +} +dep = { + +} + +### VIASH END + +logger = logging.getLogger() +console_handler = logging.StreamHandler() +logger.addHandler(console_handler) +logger.setLevel(logging.DEBUG) + +def main(par): + logger.info(f"{meta['name']} started.") + parameters_str = [f'\\\\t{param}: {param_val}\\\\n' for param, param_val in par.items()] + logger.info("Parameters:\\\\n%s", "".join(parameters_str).rstrip()) + logger.info("Reading %s", par["star_stats_file"]) + star_log_stats = pd.read_csv(par["star_stats_file"], sep="\\\\t", index_col=0) + logger.info("STAR log statics file contains information for the following barcodes: %s", + ", ".join(star_log_stats.index)) + logger.info("Reading %s", par["nrReadsNrGenesPerChromPool"]) + reads_and_genes_per_chr_stats = pd.read_csv(par["nrReadsNrGenesPerChromPool"], sep="\\\\t", index_col=0) + logger.info("Reads per gene and chromosome table contains information for the following barcodes: %s", + ", ".join(reads_and_genes_per_chr_stats.index)) + logger.info("Filtering mapping statistics file columns.") + cols_to_keep = ("NumberOfMTReads", "pctMT", "NumberOfERCCReads", + "pctERCC", "NumberOfChromReads", "pctChrom") + try: + reads_and_genes_per_chr_stats = reads_and_genes_per_chr_stats.loc[:,cols_to_keep] + except KeyError as e: + raise KeyError("When trying to subset the reads per genes and chromosomes file, " + "a column was missing. Available columns in the file: " + f"{', '.join(reads_and_genes_per_chr_stats.columns)}.") from e + combined_stats = pd.concat([reads_and_genes_per_chr_stats, star_log_stats], axis=1) + if combined_stats.isna().any(axis=None): # For non-overlapping indices, the values get filled with NA + raise ValueError("Error while combining two log files. It seems that the entries (barcodes) " + f"do not fully overlap. Barcodes in '{par['star_stats_file']}: " + f"{', '.join(reads_and_genes_per_chr_stats.index)}. Barcodes in " + f"'{par['nrReadsNrGenesPerChromPool']}': " + f"{', '.join(star_log_stats.index)}") + logger.info("Summary of final output:\\\\n%s\\\\n", + "\\\\n".join(repr(combined_stats.loc[:,columns].describe()) + for columns in batched(combined_stats.columns, 3))) + logger.info("Writing to %s", par["output"]) + combined_stats.reset_index("WellBC").to_csv(par["output"], sep="\\\\t", header=True, index=False) + logger.info("Finished %s.", meta["name"]) + + +if __name__ == "__main__": + main(par) +VIASHMAIN +python -B "$tempscript" +''' + + return vdsl3WorkflowFactory(args, meta, rawScript) +} + + + +/** + * Generate a workflow for VDSL3 modules. + * + * This function is called by the workflowFactory() function. + * + * Input channel: [id, input_map] + * Output channel: [id, output_map] + * + * Internally, this workflow will convert the input channel + * to a format which the Nextflow module will be able to handle. + */ +def vdsl3WorkflowFactory(Map args, Map meta, String rawScript) { + def key = args["key"] + def processObj = null + + workflow processWf { + take: input_ + main: + + if (processObj == null) { + processObj = _vdsl3ProcessFactory(args, meta, rawScript) + } + + output_ = input_ + | map { tuple -> + def id = tuple[0] + def data_ = tuple[1] + + if (workflow.stubRun) { + // add id if missing + data_ = [id: 'stub'] + data_ + } + + // process input files separately + def inputPaths = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "input" } + .collect { par -> + def val = data_.containsKey(par.plainName) ? data_[par.plainName] : [] + def inputFiles = [] + if (val == null) { + inputFiles = [] + } else if (val instanceof List) { + inputFiles = val + } else if (val instanceof Path) { + inputFiles = [ val ] + } else { + inputFiles = [] + } + if (!workflow.stubRun) { + // throw error when an input file doesn't exist + inputFiles.each{ file -> + assert file.exists() : + "Error in module '${key}' id '${id}' argument '${par.plainName}'.\n" + + " Required input file does not exist.\n" + + " Path: '$file'.\n" + + " Expected input file to exist" + } + } + inputFiles + } + + // remove input files + def argsExclInputFiles = meta.config.allArguments + .findAll { (it.type != "file" || it.direction != "input") && data_.containsKey(it.plainName) } + .collectEntries { par -> + def parName = par.plainName + def val = data_[parName] + if (par.multiple && val instanceof Collection) { + val = val.join(par.multiple_sep) + } + if (par.direction == "output" && par.type == "file") { + val = val + .replaceAll('\\$id', id) + .replaceAll('\\$\\{id\\}', id) + .replaceAll('\\$key', key) + .replaceAll('\\$\\{key\\}', key) + } + [parName, val] + } + + [ id ] + inputPaths + [ argsExclInputFiles, meta.resources_dir ] + } + | processObj + | map { output -> + def outputFiles = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "output" } + .indexed() + .collectEntries{ index, par -> + def out = output[index + 1] + // strip dummy '.exitcode' file from output (see nextflow-io/nextflow#2678) + if (!out instanceof List || out.size() <= 1) { + if (par.multiple) { + out = [] + } else { + assert !par.required : + "Error in module '${key}' id '${output[0]}' argument '${par.plainName}'.\n" + + " Required output file is missing" + out = null + } + } else if (out.size() == 2 && !par.multiple) { + out = out[1] + } else { + out = out.drop(1) + } + [ par.plainName, out ] + } + + // drop null outputs + outputFiles.removeAll{it.value == null} + + [ output[0], outputFiles ] + } + emit: output_ + } + + return processWf +} + +// depends on: session? +def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) { + // autodetect process key + def wfKey = workflowArgs["key"] + def procKeyPrefix = "${wfKey}_process" + def scriptMeta = nextflow.script.ScriptMeta.current() + def existing = scriptMeta.getProcessNames().findAll{it.startsWith(procKeyPrefix)} + def numbers = existing.collect{it.replace(procKeyPrefix, "0").toInteger()} + def newNumber = (numbers + [-1]).max() + 1 + + def procKey = newNumber == 0 ? procKeyPrefix : "$procKeyPrefix$newNumber" + + if (newNumber > 0) { + log.warn "Key for module '${wfKey}' is duplicated.\n", + "If you run a component multiple times in the same workflow,\n" + + "it's recommended you set a unique key for every call,\n" + + "for example: ${wfKey}.run(key: \"foo\")." + } + + // subset directives and convert to list of tuples + def drctv = workflowArgs.directives + + // TODO: unit test the two commands below + // convert publish array into tags + def valueToStr = { val -> + // ignore closures + if (val instanceof CharSequence) { + if (!val.matches('^[{].*[}]$')) { + '"' + val + '"' + } else { + val + } + } else if (val instanceof List) { + "[" + val.collect{valueToStr(it)}.join(", ") + "]" + } else if (val instanceof Map) { + "[" + val.collect{k, v -> k + ": " + valueToStr(v)}.join(", ") + "]" + } else { + val.inspect() + } + } + + // multiple entries allowed: label, publishdir + def drctvStrs = drctv.collect { key, value -> + if (key in ["label", "publishDir"]) { + value.collect{ val -> + if (val instanceof Map) { + "\n$key " + val.collect{ k, v -> k + ": " + valueToStr(v) }.join(", ") + } else if (val == null) { + "" + } else { + "\n$key " + valueToStr(val) + } + }.join() + } else if (value instanceof Map) { + "\n$key " + value.collect{ k, v -> k + ": " + valueToStr(v) }.join(", ") + } else { + "\n$key " + valueToStr(value) + } + }.join() + + def inputPaths = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "input" } + .collect { ', path(viash_par_' + it.plainName + ', stageAs: "_viash_par/' + it.plainName + '_?/*")' } + .join() + + def outputPaths = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "output" } + .collect { par -> + // insert dummy into every output (see nextflow-io/nextflow#2678) + if (!par.multiple) { + ', path{[".exitcode", args.' + par.plainName + ']}' + } else { + ', path{[".exitcode"] + args.' + par.plainName + '}' + } + } + .join() + + // TODO: move this functionality somewhere else? + if (workflowArgs.auto.transcript) { + outputPaths = outputPaths + ', path{[".exitcode", ".command*"]}' + } else { + outputPaths = outputPaths + ', path{[".exitcode"]}' + } + + // create dirs for output files (based on BashWrapper.createParentFiles) + def createParentStr = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "output" && it.create_parent } + .collect { par -> + def contents = "args[\"${par.plainName}\"] instanceof List ? args[\"${par.plainName}\"].join('\" \"') : args[\"${par.plainName}\"]" + "\${ args.containsKey(\"${par.plainName}\") ? \"mkdir_parent '\" + escapeText(${contents}) + \"'\" : \"\" }" + } + .join("\n") + + // construct inputFileExports + def inputFileExports = meta.config.allArguments + .findAll { it.type == "file" && it.direction.toLowerCase() == "input" } + .collect { par -> + def contents = "viash_par_${par.plainName} instanceof List ? viash_par_${par.plainName}.join(\"${par.multiple_sep}\") : viash_par_${par.plainName}" + "\n\${viash_par_${par.plainName}.empty ? \"\" : \"export VIASH_PAR_${par.plainName.toUpperCase()}='\" + escapeText(${contents}) + \"'\"}" + } + + // NOTE: if using docker, use /tmp instead of tmpDir! + def tmpDir = java.nio.file.Paths.get( + System.getenv('NXF_TEMP') ?: + System.getenv('VIASH_TEMP') ?: + System.getenv('VIASH_TMPDIR') ?: + System.getenv('VIASH_TEMPDIR') ?: + System.getenv('VIASH_TMP') ?: + System.getenv('TEMP') ?: + System.getenv('TMPDIR') ?: + System.getenv('TEMPDIR') ?: + System.getenv('TMP') ?: + '/tmp' + ).toAbsolutePath() + + // construct stub + def stub = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "output" } + .collect { par -> + "\${ args.containsKey(\"${par.plainName}\") ? \"touch2 \\\"\" + (args[\"${par.plainName}\"] instanceof String ? args[\"${par.plainName}\"].replace(\"_*\", \"_0\") : args[\"${par.plainName}\"].join('\" \"')) + \"\\\"\" : \"\" }" + } + .join("\n") + + // escape script + def escapedScript = rawScript.replace('\\', '\\\\').replace('$', '\\$').replace('"""', '\\"\\"\\"') + + // publishdir assert + def assertStr = (workflowArgs.auto.publish == true) || workflowArgs.auto.transcript ? + """\nassert task.publishDir.size() > 0: "if auto.publish is true, params.publish_dir needs to be defined.\\n Example: --publish_dir './output/'" """ : + "" + + // generate process string + def procStr = + """nextflow.enable.dsl=2 + | + |def escapeText = { s -> s.toString().replaceAll("'", "'\\\"'\\\"'") } + |process $procKey {$drctvStrs + |input: + | tuple val(id)$inputPaths, val(args), path(resourcesDir, stageAs: ".viash_meta_resources") + |output: + | tuple val("\$id")$outputPaths, optional: true + |stub: + |\"\"\" + |touch2() { mkdir -p "\\\$(dirname "\\\$1")" && touch "\\\$1" ; } + |$stub + |\"\"\" + |script:$assertStr + |def parInject = args + | .findAll{key, value -> value != null} + | .collect{key, value -> "export VIASH_PAR_\${key.toUpperCase()}='\${escapeText(value)}'"} + | .join("\\n") + |\"\"\" + |# meta exports + |export VIASH_META_RESOURCES_DIR="\${resourcesDir}" + |export VIASH_META_TEMP_DIR="${['docker', 'podman', 'charliecloud'].any{ it == workflow.containerEngine } ? '/tmp' : tmpDir}" + |export VIASH_META_NAME="${meta.config.name}" + |# export VIASH_META_EXECUTABLE="\\\$VIASH_META_RESOURCES_DIR/\\\$VIASH_META_NAME" + |export VIASH_META_CONFIG="\\\$VIASH_META_RESOURCES_DIR/.config.vsh.yaml" + |\${task.cpus ? "export VIASH_META_CPUS=\$task.cpus" : "" } + |\${task.memory?.bytes != null ? "export VIASH_META_MEMORY_B=\$task.memory.bytes" : "" } + |if [ ! -z \\\${VIASH_META_MEMORY_B+x} ]; then + | export VIASH_META_MEMORY_KB=\\\$(( (\\\$VIASH_META_MEMORY_B+999) / 1000 )) + | export VIASH_META_MEMORY_MB=\\\$(( (\\\$VIASH_META_MEMORY_KB+999) / 1000 )) + | export VIASH_META_MEMORY_GB=\\\$(( (\\\$VIASH_META_MEMORY_MB+999) / 1000 )) + | export VIASH_META_MEMORY_TB=\\\$(( (\\\$VIASH_META_MEMORY_GB+999) / 1000 )) + | export VIASH_META_MEMORY_PB=\\\$(( (\\\$VIASH_META_MEMORY_TB+999) / 1000 )) + | export VIASH_META_MEMORY_KIB=\\\$(( (\\\$VIASH_META_MEMORY_B+1023) / 1024 )) + | export VIASH_META_MEMORY_MIB=\\\$(( (\\\$VIASH_META_MEMORY_KIB+1023) / 1024 )) + | export VIASH_META_MEMORY_GIB=\\\$(( (\\\$VIASH_META_MEMORY_MIB+1023) / 1024 )) + | export VIASH_META_MEMORY_TIB=\\\$(( (\\\$VIASH_META_MEMORY_GIB+1023) / 1024 )) + | export VIASH_META_MEMORY_PIB=\\\$(( (\\\$VIASH_META_MEMORY_TIB+1023) / 1024 )) + |fi + | + |# meta synonyms + |export VIASH_TEMP="\\\$VIASH_META_TEMP_DIR" + |export TEMP_DIR="\\\$VIASH_META_TEMP_DIR" + | + |# create output dirs if need be + |function mkdir_parent { + | for file in "\\\$@"; do + | mkdir -p "\\\$(dirname "\\\$file")" + | done + |} + |$createParentStr + | + |# argument exports${inputFileExports.join()} + |\$parInject + | + |# process script + |${escapedScript} + |\"\"\" + |} + |""".stripMargin() + + // TODO: print on debug + // if (workflowArgs.debug == true) { + // println("######################\n$procStr\n######################") + // } + + // write process to temp file + def tempFile = java.nio.file.Files.createTempFile("viash-process-${procKey}-", ".nf") + addShutdownHook { java.nio.file.Files.deleteIfExists(tempFile) } + tempFile.text = procStr + + // create process from temp file + def binding = new nextflow.script.ScriptBinding([:]) + def session = nextflow.Nextflow.getSession() + def parser = new nextflow.script.ScriptParser(session) + .setModule(true) + .setBinding(binding) + def moduleScript = parser.runScript(tempFile) + .getScript() + + // register module in meta + def module = new nextflow.script.IncludeDef.Module(name: procKey) + scriptMeta.addModule(moduleScript, module.name, module.alias) + + // retrieve and return process from meta + return scriptMeta.getProcess(procKey) +} + +// defaults +meta["defaults"] = [ + // key to be used to trace the process and determine output names + key: null, + + // fixed arguments to be passed to script + args: [:], + + // default directives + directives: readJsonBlob('''{ + "container" : { + "registry" : "images.viash-hub.com", + "image" : "vsh/htrnaseq/eset/create_pdata", + "tag" : "main" + }, + "tag" : "$id" +}'''), + + // auto settings + auto: readJsonBlob('''{ + "simplifyInput" : true, + "simplifyOutput" : false, + "transcript" : false, + "publish" : false +}'''), + + // Apply a map over the incoming tuple + // Example: `{ tup -> [ tup[0], [input: tup[1].output] ] + tup.drop(2) }` + map: null, + + // Apply a map over the ID element of a tuple (i.e. the first element) + // Example: `{ id -> id + "_foo" }` + mapId: null, + + // Apply a map over the data element of a tuple (i.e. the second element) + // Example: `{ data -> [ input: data.output ] }` + mapData: null, + + // Apply a map over the passthrough elements of a tuple (i.e. the tuple excl. the first two elements) + // Example: `{ pt -> pt.drop(1) }` + mapPassthrough: null, + + // Filter the channel + // Example: `{ tup -> tup[0] == "foo" }` + filter: null, + + // Choose whether or not to run the component on the tuple if the condition is true. + // Otherwise, the tuple will be passed through. + // Example: `{ tup -> tup[0] != "skip_this" }` + runIf: null, + + // Rename keys in the data field of the tuple (i.e. the second element) + // Will likely be deprecated in favour of `fromState`. + // Example: `[ "new_key": "old_key" ]` + renameKeys: null, + + // Fetch data from the state and pass it to the module without altering the current state. + // + // `fromState` should be `null`, `List[String]`, `Map[String, String]` or a function. + // + // - If it is `null`, the state will be passed to the module as is. + // - If it is a `List[String]`, the data will be the values of the state at the given keys. + // - If it is a `Map[String, String]`, the data will be the values of the state at the given keys, with the keys renamed according to the map. + // - If it is a function, the tuple (`[id, state]`) in the channel will be passed to the function, and the result will be used as the data. + // + // Example: `{ id, state -> [input: state.fastq_file] }` + // Default: `null` + fromState: null, + + // Determine how the state should be updated after the module has been run. + // + // `toState` should be `null`, `List[String]`, `Map[String, String]` or a function. + // + // - If it is `null`, the state will be replaced with the output of the module. + // - If it is a `List[String]`, the state will be updated with the values of the data at the given keys. + // - If it is a `Map[String, String]`, the state will be updated with the values of the data at the given keys, with the keys renamed according to the map. + // - If it is a function, a tuple (`[id, output, state]`) will be passed to the function, and the result will be used as the new state. + // + // Example: `{ id, output, state -> state + [counts: state.output] }` + // Default: `{ id, output, state -> output }` + toState: null, + + // Whether or not to print debug messages + // Default: `false` + debug: false +] + +// initialise default workflow +meta["workflow"] = workflowFactory([key: meta.config.name], meta.defaults, meta) + +// add workflow to environment +nextflow.script.ScriptMeta.current().addDefinition(meta.workflow) + +// anonymous workflow for running this module as a standalone +workflow { + // add id argument if it's not already in the config + // TODO: deep copy + def newConfig = deepClone(meta.config) + def newParams = deepClone(params) + + def argsContainsId = newConfig.allArguments.any{it.plainName == "id"} + if (!argsContainsId) { + def idArg = [ + 'name': '--id', + 'required': false, + 'type': 'string', + 'description': 'A unique id for every entry.', + 'multiple': false + ] + newConfig.arguments.add(0, idArg) + newConfig = processConfig(newConfig) + } + if (!newParams.containsKey("id")) { + newParams.id = "run" + } + + helpMessage(newConfig) + + channelFromParams(newParams, newConfig) + // make sure id is not in the state if id is not in the args + | map {id, state -> + if (!argsContainsId) { + [id, state.findAll{k, v -> k != "id"}] + } else { + [id, state] + } + } + | meta.workflow.run( + auto: [ publish: "state" ] + ) +} + +// END COMPONENT-SPECIFIC CODE diff --git a/target/nextflow/eset/create_pdata/nextflow.config b/target/nextflow/eset/create_pdata/nextflow.config new file mode 100644 index 00000000..b61caab6 --- /dev/null +++ b/target/nextflow/eset/create_pdata/nextflow.config @@ -0,0 +1,125 @@ +manifest { + name = 'eset/create_pdata' + mainScript = 'main.nf' + nextflowVersion = '!>=20.12.1-edge' + version = 'main' + description = 'Create a pdata file by combining the mapping statistics \n' +} + +process.container = 'nextflow/bash:latest' + +// detect tempdir +tempDir = java.nio.file.Paths.get( + System.getenv('NXF_TEMP') ?: + System.getenv('VIASH_TEMP') ?: + System.getenv('TEMPDIR') ?: + System.getenv('TMPDIR') ?: + '/tmp' +).toAbsolutePath() + +profiles { + no_publish { + process { + withName: '.*' { + publishDir = [ + enabled: false + ] + } + } + } + mount_temp { + docker.temp = tempDir + podman.temp = tempDir + charliecloud.temp = tempDir + } + docker { + docker.enabled = true + // docker.userEmulation = true + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + singularity { + singularity.enabled = true + singularity.autoMounts = true + docker.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + podman { + podman.enabled = true + docker.enabled = false + singularity.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + shifter { + shifter.enabled = true + docker.enabled = false + singularity.enabled = false + podman.enabled = false + charliecloud.enabled = false + } + charliecloud { + charliecloud.enabled = true + docker.enabled = false + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + } +} + +process{ + withLabel: mem1gb { memory = 1000000000.B } + withLabel: mem2gb { memory = 2000000000.B } + withLabel: mem5gb { memory = 5000000000.B } + withLabel: mem10gb { memory = 10000000000.B } + withLabel: mem20gb { memory = 20000000000.B } + withLabel: mem50gb { memory = 50000000000.B } + withLabel: mem100gb { memory = 100000000000.B } + withLabel: mem200gb { memory = 200000000000.B } + withLabel: mem500gb { memory = 500000000000.B } + withLabel: mem1tb { memory = 1000000000000.B } + withLabel: mem2tb { memory = 2000000000000.B } + withLabel: mem5tb { memory = 5000000000000.B } + withLabel: mem10tb { memory = 10000000000000.B } + withLabel: mem20tb { memory = 20000000000000.B } + withLabel: mem50tb { memory = 50000000000000.B } + withLabel: mem100tb { memory = 100000000000000.B } + withLabel: mem200tb { memory = 200000000000000.B } + withLabel: mem500tb { memory = 500000000000000.B } + withLabel: mem1gib { memory = 1073741824.B } + withLabel: mem2gib { memory = 2147483648.B } + withLabel: mem4gib { memory = 4294967296.B } + withLabel: mem8gib { memory = 8589934592.B } + withLabel: mem16gib { memory = 17179869184.B } + withLabel: mem32gib { memory = 34359738368.B } + withLabel: mem64gib { memory = 68719476736.B } + withLabel: mem128gib { memory = 137438953472.B } + withLabel: mem256gib { memory = 274877906944.B } + withLabel: mem512gib { memory = 549755813888.B } + withLabel: mem1tib { memory = 1099511627776.B } + withLabel: mem2tib { memory = 2199023255552.B } + withLabel: mem4tib { memory = 4398046511104.B } + withLabel: mem8tib { memory = 8796093022208.B } + withLabel: mem16tib { memory = 17592186044416.B } + withLabel: mem32tib { memory = 35184372088832.B } + withLabel: mem64tib { memory = 70368744177664.B } + withLabel: mem128tib { memory = 140737488355328.B } + withLabel: mem256tib { memory = 281474976710656.B } + withLabel: mem512tib { memory = 562949953421312.B } + withLabel: cpu1 { cpus = 1 } + withLabel: cpu2 { cpus = 2 } + withLabel: cpu5 { cpus = 5 } + withLabel: cpu10 { cpus = 10 } + withLabel: cpu20 { cpus = 20 } + withLabel: cpu50 { cpus = 50 } + withLabel: cpu100 { cpus = 100 } + withLabel: cpu200 { cpus = 200 } + withLabel: cpu500 { cpus = 500 } + withLabel: cpu1000 { cpus = 1000 } +} + +includeConfig("nextflow_labels.config") diff --git a/target/nextflow/eset/create_pdata/nextflow_labels.config b/target/nextflow/eset/create_pdata/nextflow_labels.config new file mode 100644 index 00000000..66f5e21c --- /dev/null +++ b/target/nextflow/eset/create_pdata/nextflow_labels.config @@ -0,0 +1,105 @@ +executor { + $k8s { + submitRateLimit = '10sec' + pollInterval = '1 sec' + } +} + +process { + container = 'nextflow/bash:latest' + + // default resources + memory = { 8.Gb * task.attempt } + cpus = 8 + maxForks = 36 + + // Retry for exit codes that have something to do with memory issues + errorStrategy = { task.exitStatus in 137..140 ? 'retry' : 'terminate' } + maxRetries = 3 + maxMemory = 192.GB + + // Resource labels + withLabel: verylowcpu { cpus = 2 } + withLabel: lowcpu { cpus = 8 } + withLabel: midcpu { cpus = 16 } + withLabel: highcpu { cpus = 32 } + + withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } } + withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } } + withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } } + withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } } + +} + +profiles { + // detect tempdir + tempDir = java.nio.file.Paths.get( + System.getenv('NXF_TEMP') ?: + System.getenv('VIASH_TEMP') ?: + System.getenv('TEMPDIR') ?: + System.getenv('TMPDIR') ?: + '/tmp' + ).toAbsolutePath() + + mount_temp { + docker.temp = tempDir + podman.temp = tempDir + charliecloud.temp = tempDir + } + + no_publish { + process { + withName: '.*' { + publishDir = [ + enabled: false + ] + } + } + } + + docker { + docker.fixOwnership = true + docker.enabled = true + // docker.userEmulation = true + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + + local { + // This config is for local processing. + process { + maxMemory = 25.GB + withLabel: verylowcpu { cpus = 2 } + withLabel: lowcpu { cpus = 4 } + withLabel: midcpu { cpus = 6 } + withLabel: highcpu { cpus = 12 } + + withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } } + withLabel: midmem { memory = { get_memory( 12.GB * task.attempt ) } } + withLabel: highmem { memory = { get_memory( 20.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) + } + } diff --git a/target/nextflow/eset/create_pdata/nextflow_schema.json b/target/nextflow/eset/create_pdata/nextflow_schema.json new file mode 100644 index 00000000..fd9b1cbb --- /dev/null +++ b/target/nextflow/eset/create_pdata/nextflow_schema.json @@ -0,0 +1,91 @@ +{ +"$schema": "http://json-schema.org/draft-07/schema", +"title": "create_pdata", +"description": "Create a pdata file by combining the mapping statistics \n", +"type": "object", +"definitions": { + + + + "arguments" : { + "title": "Arguments", + "type": "object", + "description": "No description", + "properties": { + + + "star_stats_file": { + "type": + "string", + "description": "Type: `file`, required. Tab-delimited text file containing statistics (per column) that were generated\nfrom the STAR log files (Log", + "help_text": "Type: `file`, required. Tab-delimited text file containing statistics (per column) that were generated\nfrom the STAR log files (Log.final.out, Summary.csv, ReadsPerGene.out.tab).\nEach entry (row) in the file describes the values for one well (barcode).\n" + + } + + + , + "nrReadsNrGenesPerChromPool": { + "type": + "string", + "description": "Type: `file`, required. Pivot table in tsv format of the combined nrReadsNrGenesPerChrom files from STAR", + "help_text": "Type: `file`, required. Pivot table in tsv format of the combined nrReadsNrGenesPerChrom files from STAR. \nDescribes per chromosome (as columns) the number of reads, as well as the total number \nof reads per cell barcode and the percentage of nuclear, ERCC and mitochondrial\nreads.\n" + + } + + + , + "output": { + "type": + "string", + "description": "Type: `file`, default: `$id.$key.output.txt`. ", + "help_text": "Type: `file`, default: `$id.$key.output.txt`. " + , + "default": "$id.$key.output.txt" + } + + +} +}, + + + "nextflow input-output arguments" : { + "title": "Nextflow input-output arguments", + "type": "object", + "description": "Input/output parameters for Nextflow itself. Please note that both publishDir and publish_dir are supported but at least one has to be configured.", + "properties": { + + + "publish_dir": { + "type": + "string", + "description": "Type: `string`, required, example: `output/`. Path to an output directory", + "help_text": "Type: `string`, required, example: `output/`. Path to an output directory." + + } + + + , + "param_list": { + "type": + "string", + "description": "Type: `string`, example: `my_params.yaml`. Allows inputting multiple parameter sets to initialise a Nextflow channel", + "help_text": "Type: `string`, example: `my_params.yaml`. Allows inputting multiple parameter sets to initialise a Nextflow channel. A `param_list` can either be a list of maps, a csv file, a json file, a yaml file, or simply a yaml blob.\n\n* A list of maps (as-is) where the keys of each map corresponds to the arguments of the pipeline. Example: in a `nextflow.config` file: `param_list: [ [\u0027id\u0027: \u0027foo\u0027, \u0027input\u0027: \u0027foo.txt\u0027], [\u0027id\u0027: \u0027bar\u0027, \u0027input\u0027: \u0027bar.txt\u0027] ]`.\n* A csv file should have column names which correspond to the different arguments of this pipeline. Example: `--param_list data.csv` with columns `id,input`.\n* A json or a yaml file should be a list of maps, each of which has keys corresponding to the arguments of the pipeline. Example: `--param_list data.json` with contents `[ {\u0027id\u0027: \u0027foo\u0027, \u0027input\u0027: \u0027foo.txt\u0027}, {\u0027id\u0027: \u0027bar\u0027, \u0027input\u0027: \u0027bar.txt\u0027} ]`.\n* A yaml blob can also be passed directly as a string. Example: `--param_list \"[ {\u0027id\u0027: \u0027foo\u0027, \u0027input\u0027: \u0027foo.txt\u0027}, {\u0027id\u0027: \u0027bar\u0027, \u0027input\u0027: \u0027bar.txt\u0027} ]\"`.\n\nWhen passing a csv, json or yaml file, relative path names are relativized to the location of the parameter file. No relativation is performed when `param_list` is a list of maps (as-is) or a yaml blob.", + "hidden": true + + } + + +} +} +}, +"allOf": [ + + { + "$ref": "#/definitions/arguments" + }, + + { + "$ref": "#/definitions/nextflow input-output arguments" + } +] +} diff --git a/target/nextflow/integration_test_components/htrnaseq/check_eset/.config.vsh.yaml b/target/nextflow/integration_test_components/htrnaseq/check_eset/.config.vsh.yaml new file mode 100644 index 00000000..61f654fb --- /dev/null +++ b/target/nextflow/integration_test_components/htrnaseq/check_eset/.config.vsh.yaml @@ -0,0 +1,167 @@ +name: "check_eset" +namespace: "integration_test_components/htrnaseq" +version: "main" +argument_groups: +- name: "Inputs" + arguments: + - type: "file" + name: "--eset" + description: "Path to an ExpressionSet object." + info: null + example: + - "eset.rds" + must_exist: true + create_parent: true + required: true + direction: "input" + multiple: false + multiple_sep: ";" + - type: "file" + name: "--star_output" + info: null + must_exist: true + create_parent: true + required: true + direction: "input" + multiple: true + multiple_sep: ";" +resources: +- type: "r_script" + path: "script.R" + is_executable: true +- type: "file" + path: "nextflow_labels.config" + dest: "nextflow_labels.config" +description: "This component test the ExpressionSet object as output by the main pipeline." +info: null +status: "enabled" +requirements: + commands: + - "ps" +license: "MIT" +links: + repository: "https://github.com/viash-hub/htrnaseq" +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: "bioconductor/bioconductor_docker:3.19" + target_registry: "images.viash-hub.com" + target_tag: "main" + namespace_separator: "/" + setup: + - type: "r" + cran: + - "bit64" + bioc: + - "Biobase" + bioc_force_install: false + entrypoint: [] + cmd: null +- type: "native" + id: "native" +build_info: + config: "src/integration_test_components/htrnaseq/check_eset/config.vsh.yaml" + runner: "nextflow" + engine: "docker|native" + output: "target/nextflow/integration_test_components/htrnaseq/check_eset" + executable: "target/nextflow/integration_test_components/htrnaseq/check_eset/main.nf" + viash_version: "0.9.0" + git_commit: "65dd41d8b1b4a307735c72320c96c0880c75f17f" + git_remote: "https://x-access-token:ghs_McZDF0yobnnHmOEb2Q4JaaB3pzr9mz1VbIOs@github.com/viash-hub/htrnaseq" +package_config: + name: "htrnaseq" + version: "main" + description: "High-throughput pipeline [WIP]\n" + info: + test_resources: + - path: "gs://viash-hub-test-data/htrnaseq/v1/" + dest: "resources_test" + viash_version: "0.9.0" + source: "src" + target: "target" + config_mods: + - ".requirements.commands := ['ps']\n.runners[.type == 'nextflow'].config.script\ + \ := 'includeConfig(\"nextflow_labels.config\")'\n.resources += {path: '/src/config/labels.config',\ + \ dest: 'nextflow_labels.config'}\n" + - ".engines += { type: \"native\" }" + - ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'" + - ".engines[.type == 'docker'].target_tag := 'main'" + keywords: + - "bioinformatics" + - "sequence" + - "high-throughput" + - "mapping" + - "counting" + - "pipeline" + license: "MIT" + organization: "vsh" + links: + repository: "https://github.com/viash-hub/htrnaseq" + issue_tracker: "https://github.com/viash-hub/htrnaseq/issues" diff --git a/target/nextflow/integration_test_components/htrnaseq/check_eset/main.nf b/target/nextflow/integration_test_components/htrnaseq/check_eset/main.nf new file mode 100644 index 00000000..c3f99e44 --- /dev/null +++ b/target/nextflow/integration_test_components/htrnaseq/check_eset/main.nf @@ -0,0 +1,3740 @@ +// check_eset main +// +// This wrapper script is auto-generated by viash 0.9.0 and is thus a derivative +// work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data +// Intuitive. +// +// The component may contain files which fall under a different license. The +// authors of this component should specify the license in the header of such +// files, or include a separate license file detailing the licenses of all included +// files. + +//////////////////////////// +// VDSL3 helper functions // +//////////////////////////// + +// helper file: 'src/main/resources/io/viash/runners/nextflow/arguments/_checkArgumentType.nf' +class UnexpectedArgumentTypeException extends Exception { + String errorIdentifier + String stage + String plainName + String expectedClass + String foundClass + + // ${key ? " in module '$key'" : ""}${id ? " id '$id'" : ""} + UnexpectedArgumentTypeException(String errorIdentifier, String stage, String plainName, String expectedClass, String foundClass) { + super("Error${errorIdentifier ? " $errorIdentifier" : ""}:${stage ? " $stage" : "" } argument '${plainName}' has the wrong type. " + + "Expected type: ${expectedClass}. Found type: ${foundClass}") + this.errorIdentifier = errorIdentifier + this.stage = stage + this.plainName = plainName + this.expectedClass = expectedClass + this.foundClass = foundClass + } +} + +/** + * Checks if the given value is of the expected type. If not, an exception is thrown. + * + * @param stage The stage of the argument (input or output) + * @param par The parameter definition + * @param value The value to check + * @param errorIdentifier The identifier to use in the error message + * @return The value, if it is of the expected type + * @throws UnexpectedArgumentTypeException If the value is not of the expected type +*/ +def _checkArgumentType(String stage, Map par, Object value, String errorIdentifier) { + // expectedClass will only be != null if value is not of the expected type + def expectedClass = null + def foundClass = null + + // todo: split if need be + + if (!par.required && value == null) { + expectedClass = null + } else if (par.multiple) { + if (value !instanceof Collection) { + value = [value] + } + + // split strings + value = value.collectMany{ val -> + if (val instanceof String) { + // collect() to ensure that the result is a List and not simply an array + val.split(par.multiple_sep).collect() + } else { + [val] + } + } + + // process globs + if (par.type == "file" && par.direction == "input") { + value = value.collect{ it instanceof String ? file(it, hidden: true) : it }.flatten() + } + + // check types of elements in list + try { + value = value.collect { listVal -> + _checkArgumentType(stage, par + [multiple: false], listVal, errorIdentifier) + } + } catch (UnexpectedArgumentTypeException e) { + expectedClass = "List[${e.expectedClass}]" + foundClass = "List[${e.foundClass}]" + } + } else if (par.type == "string") { + // cast to string if need be + if (value instanceof GString) { + value = value.toString() + } + expectedClass = value instanceof String ? null : "String" + } else if (par.type == "integer") { + // cast to integer if need be + if (value instanceof String) { + try { + value = value.toInteger() + } catch (NumberFormatException e) { + // do nothing + } + } + if (value instanceof java.math.BigInteger) { + value = value.intValue() + } + expectedClass = value instanceof Integer ? null : "Integer" + } else if (par.type == "long") { + // cast to long if need be + if (value instanceof String) { + try { + value = value.toLong() + } catch (NumberFormatException e) { + // do nothing + } + } + if (value instanceof Integer) { + value = value.toLong() + } + expectedClass = value instanceof Long ? null : "Long" + } else if (par.type == "double") { + // cast to double if need be + if (value instanceof String) { + try { + value = value.toDouble() + } catch (NumberFormatException e) { + // do nothing + } + } + if (value instanceof java.math.BigDecimal) { + value = value.doubleValue() + } + if (value instanceof Float) { + value = value.toDouble() + } + expectedClass = value instanceof Double ? null : "Double" + } else if (par.type == "boolean" | par.type == "boolean_true" | par.type == "boolean_false") { + // cast to boolean if need be + if (value instanceof String) { + def valueLower = value.toLowerCase() + if (valueLower == "true") { + value = true + } else if (valueLower == "false") { + value = false + } + } + expectedClass = value instanceof Boolean ? null : "Boolean" + } else if (par.type == "file" && (par.direction == "input" || stage == "output")) { + // cast to path if need be + if (value instanceof String) { + value = file(value, hidden: true) + } + if (value instanceof File) { + value = value.toPath() + } + expectedClass = value instanceof Path ? null : "Path" + } else if (par.type == "file" && stage == "input" && par.direction == "output") { + // cast to string if need be + if (value instanceof GString) { + value = value.toString() + } + expectedClass = value instanceof String ? null : "String" + } else { + // didn't find a match for par.type + expectedClass = par.type + } + + if (expectedClass != null) { + if (foundClass == null) { + foundClass = value.getClass().getName() + } + throw new UnexpectedArgumentTypeException(errorIdentifier, stage, par.plainName, expectedClass, foundClass) + } + + return value +} +// helper file: 'src/main/resources/io/viash/runners/nextflow/arguments/_processInputValues.nf' +Map _processInputValues(Map inputs, Map config, String id, String key) { + if (!workflow.stubRun) { + config.allArguments.each { arg -> + if (arg.required) { + assert inputs.containsKey(arg.plainName) && inputs.get(arg.plainName) != null : + "Error in module '${key}' id '${id}': required input argument '${arg.plainName}' is missing" + } + } + + inputs = inputs.collectEntries { name, value -> + def par = config.allArguments.find { it.plainName == name && (it.direction == "input" || it.type == "file") } + assert par != null : "Error in module '${key}' id '${id}': '${name}' is not a valid input argument" + + value = _checkArgumentType("input", par, value, "in module '$key' id '$id'") + + [ name, value ] + } + } + return inputs +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/arguments/_processOutputValues.nf' +Map _processOutputValues(Map outputs, Map config, String id, String key) { + if (!workflow.stubRun) { + config.allArguments.each { arg -> + if (arg.direction == "output" && arg.required) { + assert outputs.containsKey(arg.plainName) && outputs.get(arg.plainName) != null : + "Error in module '${key}' id '${id}': required output argument '${arg.plainName}' is missing" + } + } + + outputs = outputs.collectEntries { name, value -> + def par = config.allArguments.find { it.plainName == name && it.direction == "output" } + assert par != null : "Error in module '${key}' id '${id}': '${name}' is not a valid output argument" + + value = _checkArgumentType("output", par, value, "in module '$key' id '$id'") + + [ name, value ] + } + } + return outputs +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/IDChecker.nf' +class IDChecker { + final def items = [] as Set + + @groovy.transform.WithWriteLock + boolean observe(String item) { + if (items.contains(item)) { + return false + } else { + items << item + return true + } + } + + @groovy.transform.WithReadLock + boolean contains(String item) { + return items.contains(item) + } + + @groovy.transform.WithReadLock + Set getItems() { + return items.clone() + } +} +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/_checkUniqueIds.nf' + +/** + * Check if the ids are unique across parameter sets + * + * @param parameterSets a list of parameter sets. + */ +private void _checkUniqueIds(List>> parameterSets) { + def ppIds = parameterSets.collect{it[0]} + assert ppIds.size() == ppIds.unique().size() : "All argument sets should have unique ids. Detected ids: $ppIds" +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/_getChild.nf' + +// helper functions for reading params from file // +def _getChild(parent, child) { + if (child.contains("://") || java.nio.file.Paths.get(child).isAbsolute()) { + child + } else { + def parentAbsolute = java.nio.file.Paths.get(parent).toAbsolutePath().toString() + parentAbsolute.replaceAll('/[^/]*$', "/") + child + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/_parseParamList.nf' +/** + * Figure out the param list format based on the file extension + * + * @param param_list A String containing the path to the parameter list file. + * + * @return A String containing the format of the parameter list file. + */ +def _paramListGuessFormat(param_list) { + if (param_list !instanceof String) { + "asis" + } else if (param_list.endsWith(".csv")) { + "csv" + } else if (param_list.endsWith(".json") || param_list.endsWith(".jsn")) { + "json" + } else if (param_list.endsWith(".yaml") || param_list.endsWith(".yml")) { + "yaml" + } else { + "yaml_blob" + } +} + + +/** + * Read the param list + * + * @param param_list One of the following: + * - A String containing the path to the parameter list file (csv, json or yaml), + * - A yaml blob of a list of maps (yaml_blob), + * - Or a groovy list of maps (asis). + * @param config A Map of the Viash configuration. + * + * @return A List of Maps containing the parameters. + */ +def _parseParamList(param_list, Map config) { + // first determine format by extension + def paramListFormat = _paramListGuessFormat(param_list) + + def paramListPath = (paramListFormat != "asis" && paramListFormat != "yaml_blob") ? + file(param_list, hidden: true) : + null + + // get the correct parser function for the detected params_list format + def paramSets = [] + if (paramListFormat == "asis") { + paramSets = param_list + } else if (paramListFormat == "yaml_blob") { + paramSets = readYamlBlob(param_list) + } else if (paramListFormat == "yaml") { + paramSets = readYaml(paramListPath) + } else if (paramListFormat == "json") { + paramSets = readJson(paramListPath) + } else if (paramListFormat == "csv") { + paramSets = readCsv(paramListPath) + } else { + error "Format of provided --param_list not recognised.\n" + + "Found: '$paramListFormat'.\n" + + "Expected: a csv file, a json file, a yaml file,\n" + + "a yaml blob or a groovy list of maps." + } + + // data checks + assert paramSets instanceof List: "--param_list should contain a list of maps" + for (value in paramSets) { + assert value instanceof Map: "--param_list should contain a list of maps" + } + + // id is argument + def idIsArgument = config.allArguments.any{it.plainName == "id"} + + // Reformat from List to List> by adding the ID as first element of a Tuple2 + paramSets = paramSets.collect({ data -> + def id = data.id + if (!idIsArgument) { + data = data.findAll{k, v -> k != "id"} + } + [id, data] + }) + + // Split parameters with 'multiple: true' + paramSets = paramSets.collect({ id, data -> + data = _splitParams(data, config) + [id, data] + }) + + // The paths of input files inside a param_list file may have been specified relatively to the + // location of the param_list file. These paths must be made absolute. + if (paramListPath) { + paramSets = paramSets.collect({ id, data -> + def new_data = data.collectEntries{ parName, parValue -> + def par = config.allArguments.find{it.plainName == parName} + if (par && par.type == "file" && par.direction == "input") { + if (parValue instanceof Collection) { + parValue = parValue.collectMany{path -> + def x = _resolveSiblingIfNotAbsolute(path, paramListPath) + x instanceof Collection ? x : [x] + } + } else { + parValue = _resolveSiblingIfNotAbsolute(parValue, paramListPath) + } + } + [parName, parValue] + } + [id, new_data] + }) + } + + return paramSets +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/_splitParams.nf' +/** + * Split parameters for arguments that accept multiple values using their separator + * + * @param paramList A Map containing parameters to split. + * @param config A Map of the Viash configuration. This Map can be generated from the config file + * using the readConfig() function. + * + * @return A Map of parameters where the parameter values have been split into a list using + * their seperator. + */ +Map _splitParams(Map parValues, Map config){ + def parsedParamValues = parValues.collectEntries { parName, parValue -> + def parameterSettings = config.allArguments.find({it.plainName == parName}) + + if (!parameterSettings) { + // if argument is not found, do not alter + return [parName, parValue] + } + if (parameterSettings.multiple) { // Check if parameter can accept multiple values + if (parValue instanceof Collection) { + parValue = parValue.collect{it instanceof String ? it.split(parameterSettings.multiple_sep) : it } + } else if (parValue instanceof String) { + parValue = parValue.split(parameterSettings.multiple_sep) + } else if (parValue == null) { + parValue = [] + } else { + parValue = [ parValue ] + } + parValue = parValue.flatten() + } + // For all parameters check if multiple values are only passed for + // arguments that allow it. Quietly simplify lists of length 1. + if (!parameterSettings.multiple && parValue instanceof Collection) { + assert parValue.size() == 1 : + "Error: argument ${parName} has too many values.\n" + + " Expected amount: 1. Found: ${parValue.size()}" + parValue = parValue[0] + } + [parName, parValue] + } + return parsedParamValues +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/channelFromParams.nf' +/** + * Parse nextflow parameters based on settings defined in a viash config. + * Return a list of parameter sets, each parameter set corresponding to + * an event in a nextflow channel. The output from this function can be used + * with Channel.fromList to create a nextflow channel with Vdsl3 formatted + * events. + * + * This function performs: + * - A filtering of the params which can be found in the config file. + * - Process the params_list argument which allows a user to to initialise + * a Vsdl3 channel with multiple parameter sets. Possible formats are + * csv, json, yaml, or simply a yaml_blob. A csv should have column names + * which correspond to the different arguments of this pipeline. A json or a yaml + * file should be a list of maps, each of which has keys corresponding to the + * arguments of the pipeline. A yaml blob can also be passed directly as a parameter. + * When passing a csv, json or yaml, relative path names are relativized to the + * location of the parameter file. + * - Combine the parameter sets into a vdsl3 Channel. + * + * @param params Input parameters. Can optionaly contain a 'param_list' key that + * provides a list of arguments that can be split up into multiple events + * in the output channel possible formats of param_lists are: a csv file, + * json file, a yaml file or a yaml blob. Each parameters set (event) must + * have a unique ID. + * @param config A Map of the Viash configuration. This Map can be generated from the config file + * using the readConfig() function. + * + * @return A list of parameters with the first element of the event being + * the event ID and the second element containing a map of the parsed parameters. + */ + +private List>> _paramsToParamSets(Map params, Map config){ + // todo: fetch key from run args + def key_ = config.name + + /* parse regular parameters (not in param_list) */ + /*************************************************/ + def globalParams = config.allArguments + .findAll { params.containsKey(it.plainName) } + .collectEntries { [ it.plainName, params[it.plainName] ] } + def globalID = params.get("id", null) + + /* process params_list arguments */ + /*********************************/ + def paramList = params.containsKey("param_list") && params.param_list != null ? + params.param_list : [] + // if (paramList instanceof String) { + // paramList = [paramList] + // } + // def paramSets = paramList.collectMany{ _parseParamList(it, config) } + // TODO: be able to process param_list when it is a list of strings + def paramSets = _parseParamList(paramList, config) + if (paramSets.isEmpty()) { + paramSets = [[null, [:]]] + } + + /* combine arguments into channel */ + /**********************************/ + def processedParams = paramSets.indexed().collect{ index, tup -> + // Process ID + def id = tup[0] ?: globalID + + if (workflow.stubRun && !id) { + // if stub run, explicitly add an id if missing + id = "stub${index}" + } + assert id != null: "Each parameter set should have at least an 'id'" + + // Process params + def parValues = globalParams + tup[1] + // // Remove parameters which are null, if the default is also null + // parValues = parValues.collectEntries{paramName, paramValue -> + // parameterSettings = config.functionality.allArguments.find({it.plainName == paramName}) + // if ( paramValue != null || parameterSettings.get("default", null) != null ) { + // [paramName, paramValue] + // } + // } + parValues = parValues.collectEntries { name, value -> + def par = config.allArguments.find { it.plainName == name && (it.direction == "input" || it.type == "file") } + assert par != null : "Error in module '${key_}' id '${id}': '${name}' is not a valid input argument" + + if (par == null) { + return [:] + } + value = _checkArgumentType("input", par, value, "in module '$key_' id '$id'") + + [ name, value ] + } + + [id, parValues] + } + + // Check if ids (first element of each list) is unique + _checkUniqueIds(processedParams) + return processedParams +} + +/** + * Parse nextflow parameters based on settings defined in a viash config + * and return a nextflow channel. + * + * @param params Input parameters. Can optionaly contain a 'param_list' key that + * provides a list of arguments that can be split up into multiple events + * in the output channel possible formats of param_lists are: a csv file, + * json file, a yaml file or a yaml blob. Each parameters set (event) must + * have a unique ID. + * @param config A Map of the Viash configuration. This Map can be generated from the config file + * using the readConfig() function. + * + * @return A nextflow Channel with events. Events are formatted as a tuple that contains + * first contains the ID of the event and as second element holds a parameter map. + * + * + */ +def channelFromParams(Map params, Map config) { + def processedParams = _paramsToParamSets(params, config) + return Channel.fromList(processedParams) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/checkUniqueIds.nf' +def checkUniqueIds(Map args) { + def stopOnError = args.stopOnError == null ? args.stopOnError : true + + def idChecker = new IDChecker() + + return filter { tup -> + if (!idChecker.observe(tup[0])) { + if (stopOnError) { + error "Duplicate id: ${tup[0]}" + } else { + log.warn "Duplicate id: ${tup[0]}, removing duplicate entry" + return false + } + } + return true + } +} +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/preprocessInputs.nf' +// This helper file will be deprecated soon +preprocessInputsDeprecationWarningPrinted = false + +def preprocessInputsDeprecationWarning() { + if (!preprocessInputsDeprecationWarningPrinted) { + preprocessInputsDeprecationWarningPrinted = true + System.err.println("Warning: preprocessInputs() is deprecated and will be removed in Viash 0.9.0.") + } +} + +/** + * Generate a nextflow Workflow that allows processing a channel of + * Vdsl3 formatted events and apply a Viash config to them: + * - Gather default parameters from the Viash config and make + * sure that they are correctly formatted (see applyConfig method). + * - Format the input parameters (also using the applyConfig method). + * - Apply the default parameter to the input parameters. + * - Do some assertions: + * ~ Check if the event IDs in the channel are unique. + * + * The events in the channel are formatted as tuples, with the + * first element of the tuples being a unique id of the parameter set, + * and the second element containg the the parameters themselves. + * Optional extra elements of the tuples will be passed to the output as is. + * + * @param args A map that must contain a 'config' key that points + * to a parsed config (see readConfig()). Optionally, a + * 'key' key can be provided which can be used to create a unique + * name for the workflow process. + * + * @return A workflow that allows processing a channel of Vdsl3 formatted events + * and apply a Viash config to them. + */ +def preprocessInputs(Map args) { + preprocessInputsDeprecationWarning() + + def config = args.config + assert config instanceof Map : + "Error in preprocessInputs: config must be a map. " + + "Expected class: Map. Found: config.getClass() is ${config.getClass()}" + def key_ = args.key ?: config.name + + // Get different parameter types (used throughout this function) + def defaultArgs = config.allArguments + .findAll { it.containsKey("default") } + .collectEntries { [ it.plainName, it.default ] } + + map { tup -> + def id = tup[0] + def data = tup[1] + def passthrough = tup.drop(2) + + def new_data = (defaultArgs + data).collectEntries { name, value -> + def par = config.allArguments.find { it.plainName == name && (it.direction == "input" || it.type == "file") } + + if (par != null) { + value = _checkArgumentType("input", par, value, "in module '$key_' id '$id'") + } + + [ name, value ] + } + + [ id, new_data ] + passthrough + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/runComponents.nf' +/** + * Run a list of components on a stream of data. + * + * @param components: list of Viash VDSL3 modules to run + * @param fromState: a closure, a map or a list of keys to extract from the input data. + * If a closure, it will be called with the id, the data and the component config. + * @param toState: a closure, a map or a list of keys to extract from the output data + * If a closure, it will be called with the id, the output data, the old state and the component config. + * @param filter: filter function to apply to the input. + * It will be called with the id, the data and the component config. + * @param id: id to use for the output data + * If a closure, it will be called with the id, the data and the component config. + * @param auto: auto options to pass to the components + * + * @return: a workflow that runs the components + **/ +def runComponents(Map args) { + log.warn("runComponents is deprecated, use runEach instead") + assert args.components: "runComponents should be passed a list of components to run" + + def components_ = args.components + if (components_ !instanceof List) { + components_ = [ components_ ] + } + assert components_.size() > 0: "pass at least one component to runComponents" + + def fromState_ = args.fromState + def toState_ = args.toState + def filter_ = args.filter + def id_ = args.id + + workflow runComponentsWf { + take: input_ch + main: + + // generate one channel per method + out_chs = components_.collect{ comp_ -> + def comp_config = comp_.config + + def filter_ch = filter_ + ? input_ch | filter{tup -> + filter_(tup[0], tup[1], comp_config) + } + : input_ch + def id_ch = id_ + ? filter_ch | map{tup -> + // def new_id = id_(tup[0], tup[1], comp_config) + def new_id = tup[0] + if (id_ instanceof String) { + new_id = id_ + } else if (id_ instanceof Closure) { + new_id = id_(new_id, tup[1], comp_config) + } + [new_id] + tup.drop(1) + } + : filter_ch + def data_ch = id_ch | map{tup -> + def new_data = tup[1] + if (fromState_ instanceof Map) { + new_data = fromState_.collectEntries{ key0, key1 -> + [key0, new_data[key1]] + } + } else if (fromState_ instanceof List) { + new_data = fromState_.collectEntries{ key -> + [key, new_data[key]] + } + } else if (fromState_ instanceof Closure) { + new_data = fromState_(tup[0], new_data, comp_config) + } + tup.take(1) + [new_data] + tup.drop(1) + } + def out_ch = data_ch + | comp_.run( + auto: (args.auto ?: [:]) + [simplifyInput: false, simplifyOutput: false] + ) + def post_ch = toState_ + ? out_ch | map{tup -> + def output = tup[1] + def old_state = tup[2] + def new_state = null + if (toState_ instanceof Map) { + new_state = old_state + toState_.collectEntries{ key0, key1 -> + [key0, output[key1]] + } + } else if (toState_ instanceof List) { + new_state = old_state + toState_.collectEntries{ key -> + [key, output[key]] + } + } else if (toState_ instanceof Closure) { + new_state = toState_(tup[0], output, old_state, comp_config) + } + [tup[0], new_state] + tup.drop(3) + } + : out_ch + + post_ch + } + + // mix all results + output_ch = + (out_chs.size == 1) + ? out_chs[0] + : out_chs[0].mix(*out_chs.drop(1)) + + emit: output_ch + } + + return runComponentsWf +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/runEach.nf' +/** + * Run a list of components on a stream of data. + * + * @param components: list of Viash VDSL3 modules to run + * @param fromState: a closure, a map or a list of keys to extract from the input data. + * If a closure, it will be called with the id, the data and the component itself. + * @param toState: a closure, a map or a list of keys to extract from the output data + * If a closure, it will be called with the id, the output data, the old state and the component itself. + * @param filter: filter function to apply to the input. + * It will be called with the id, the data and the component itself. + * @param id: id to use for the output data + * If a closure, it will be called with the id, the data and the component itself. + * @param auto: auto options to pass to the components + * + * @return: a workflow that runs the components + **/ +def runEach(Map args) { + assert args.components: "runEach should be passed a list of components to run" + + def components_ = args.components + if (components_ !instanceof List) { + components_ = [ components_ ] + } + assert components_.size() > 0: "pass at least one component to runEach" + + def fromState_ = args.fromState + def toState_ = args.toState + def filter_ = args.filter + def runIf_ = args.runIf + def id_ = args.id + + assert !runIf_ || runIf_ instanceof Closure: "runEach: must pass a Closure to runIf." + + workflow runEachWf { + take: input_ch + main: + + // generate one channel per method + out_chs = components_.collect{ comp_ -> + def filter_ch = filter_ + ? input_ch | filter{tup -> + filter_(tup[0], tup[1], comp_) + } + : input_ch + def id_ch = id_ + ? filter_ch | map{tup -> + def new_id = id_ + if (new_id instanceof Closure) { + new_id = new_id(tup[0], tup[1], comp_) + } + assert new_id instanceof String : "Error in runEach: id should be a String or a Closure that returns a String. Expected: id instanceof String. Found: ${new_id.getClass()}" + [new_id] + tup.drop(1) + } + : filter_ch + def chPassthrough = null + def chRun = null + if (runIf_) { + def idRunIfBranch = id_ch.branch{ tup -> + run: runIf_(tup[0], tup[1], comp_) + passthrough: true + } + chPassthrough = idRunIfBranch.passthrough + chRun = idRunIfBranch.run + } else { + chRun = id_ch + chPassthrough = Channel.empty() + } + def data_ch = chRun | map{tup -> + def new_data = tup[1] + if (fromState_ instanceof Map) { + new_data = fromState_.collectEntries{ key0, key1 -> + [key0, new_data[key1]] + } + } else if (fromState_ instanceof List) { + new_data = fromState_.collectEntries{ key -> + [key, new_data[key]] + } + } else if (fromState_ instanceof Closure) { + new_data = fromState_(tup[0], new_data, comp_) + } + tup.take(1) + [new_data] + tup.drop(1) + } + def out_ch = data_ch + | comp_.run( + auto: (args.auto ?: [:]) + [simplifyInput: false, simplifyOutput: false] + ) + def post_ch = toState_ + ? out_ch | map{tup -> + def output = tup[1] + def old_state = tup[2] + def new_state = null + if (toState_ instanceof Map) { + new_state = old_state + toState_.collectEntries{ key0, key1 -> + [key0, output[key1]] + } + } else if (toState_ instanceof List) { + new_state = old_state + toState_.collectEntries{ key -> + [key, output[key]] + } + } else if (toState_ instanceof Closure) { + new_state = toState_(tup[0], output, old_state, comp_) + } + [tup[0], new_state] + tup.drop(3) + } + : out_ch + + def return_ch = post_ch + | concat(chPassthrough) + + return_ch + } + + // mix all results + output_ch = + (out_chs.size == 1) + ? out_chs[0] + : out_chs[0].mix(*out_chs.drop(1)) + + emit: output_ch + } + + return runEachWf +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/safeJoin.nf' +/** + * Join sourceChannel to targetChannel + * + * This function joins the sourceChannel to the targetChannel. + * However, each id in the targetChannel must be present in the + * sourceChannel. If _meta.join_id exists in the targetChannel, that is + * used as an id instead. If the id doesn't match any id in the sourceChannel, + * an error is thrown. + */ + +def safeJoin(targetChannel, sourceChannel, key) { + def sourceIDs = new IDChecker() + + def sourceCheck = sourceChannel + | map { tup -> + sourceIDs.observe(tup[0]) + tup + } + def targetCheck = targetChannel + | map { tup -> + def id = tup[0] + + if (!sourceIDs.contains(id)) { + error ( + "Error in module '${key}' when merging output with original state.\n" + + " Reason: output with id '${id}' could not be joined with source channel.\n" + + " If the IDs in the output channel differ from the input channel,\n" + + " please set `tup[1]._meta.join_id to the original ID.\n" + + " Original IDs in input channel: ['${sourceIDs.getItems().join("', '")}'].\n" + + " Unexpected ID in the output channel: '${id}'.\n" + + " Example input event: [\"id\", [input: file(...)]],\n" + + " Example output event: [\"newid\", [output: file(...), _meta: [join_id: \"id\"]]]" + ) + } + // TODO: add link to our documentation on how to fix this + + tup + } + + sourceCheck.cross(targetChannel) + | map{ left, right -> + right + left.drop(1) + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/config/_processArgument.nf' +def _processArgument(arg) { + arg.multiple = arg.multiple != null ? arg.multiple : false + arg.required = arg.required != null ? arg.required : false + arg.direction = arg.direction != null ? arg.direction : "input" + arg.multiple_sep = arg.multiple_sep != null ? arg.multiple_sep : ";" + arg.plainName = arg.name.replaceAll("^-*", "") + + if (arg.type == "file") { + arg.must_exist = arg.must_exist != null ? arg.must_exist : true + arg.create_parent = arg.create_parent != null ? arg.create_parent : true + } + + // add default values to output files which haven't already got a default + if (arg.type == "file" && arg.direction == "output" && arg.default == null) { + def mult = arg.multiple ? "_*" : "" + def extSearch = "" + if (arg.default != null) { + extSearch = arg.default + } else if (arg.example != null) { + extSearch = arg.example + } + if (extSearch instanceof List) { + extSearch = extSearch[0] + } + def extSearchResult = extSearch.find("\\.[^\\.]+\$") + def ext = extSearchResult != null ? extSearchResult : "" + arg.default = "\$id.\$key.${arg.plainName}${mult}${ext}" + if (arg.multiple) { + arg.default = [arg.default] + } + } + + if (!arg.multiple) { + if (arg.default != null && arg.default instanceof List) { + arg.default = arg.default[0] + } + if (arg.example != null && arg.example instanceof List) { + arg.example = arg.example[0] + } + } + + if (arg.type == "boolean_true") { + arg.default = false + } + if (arg.type == "boolean_false") { + arg.default = true + } + + arg +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/config/addGlobalParams.nf' +def addGlobalArguments(config) { + def localConfig = [ + "argument_groups": [ + [ + "name": "Nextflow input-output arguments", + "description": "Input/output parameters for Nextflow itself. Please note that both publishDir and publish_dir are supported but at least one has to be configured.", + "arguments" : [ + [ + 'name': '--publish_dir', + 'required': true, + 'type': 'string', + 'description': 'Path to an output directory.', + 'example': 'output/', + 'multiple': false + ], + [ + 'name': '--param_list', + 'required': false, + 'type': 'string', + 'description': '''Allows inputting multiple parameter sets to initialise a Nextflow channel. A `param_list` can either be a list of maps, a csv file, a json file, a yaml file, or simply a yaml blob. + | + |* A list of maps (as-is) where the keys of each map corresponds to the arguments of the pipeline. Example: in a `nextflow.config` file: `param_list: [ ['id': 'foo', 'input': 'foo.txt'], ['id': 'bar', 'input': 'bar.txt'] ]`. + |* A csv file should have column names which correspond to the different arguments of this pipeline. Example: `--param_list data.csv` with columns `id,input`. + |* A json or a yaml file should be a list of maps, each of which has keys corresponding to the arguments of the pipeline. Example: `--param_list data.json` with contents `[ {'id': 'foo', 'input': 'foo.txt'}, {'id': 'bar', 'input': 'bar.txt'} ]`. + |* A yaml blob can also be passed directly as a string. Example: `--param_list "[ {'id': 'foo', 'input': 'foo.txt'}, {'id': 'bar', 'input': 'bar.txt'} ]"`. + | + |When passing a csv, json or yaml file, relative path names are relativized to the location of the parameter file. No relativation is performed when `param_list` is a list of maps (as-is) or a yaml blob.'''.stripMargin(), + 'example': 'my_params.yaml', + 'multiple': false, + 'hidden': true + ] + // TODO: allow multiple: true in param_list? + // TODO: allow to specify a --param_list_regex to filter the param_list? + // TODO: allow to specify a --param_list_from_state to remap entries in the param_list? + ] + ] + ] + ] + + return processConfig(_mergeMap(config, localConfig)) +} + +def _mergeMap(Map lhs, Map rhs) { + return rhs.inject(lhs.clone()) { map, entry -> + if (map[entry.key] instanceof Map && entry.value instanceof Map) { + map[entry.key] = _mergeMap(map[entry.key], entry.value) + } else if (map[entry.key] instanceof Collection && entry.value instanceof Collection) { + map[entry.key] += entry.value + } else { + map[entry.key] = entry.value + } + return map + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/config/generateHelp.nf' +def _generateArgumentHelp(param) { + // alternatives are not supported + // def names = param.alternatives ::: List(param.name) + + def unnamedProps = [ + ["required parameter", param.required], + ["multiple values allowed", param.multiple], + ["output", param.direction.toLowerCase() == "output"], + ["file must exist", param.type == "file" && param.must_exist] + ].findAll{it[1]}.collect{it[0]} + + def dflt = null + if (param.default != null) { + if (param.default instanceof List) { + dflt = param.default.join(param.multiple_sep != null ? param.multiple_sep : ", ") + } else { + dflt = param.default.toString() + } + } + def example = null + if (param.example != null) { + if (param.example instanceof List) { + example = param.example.join(param.multiple_sep != null ? param.multiple_sep : ", ") + } else { + example = param.example.toString() + } + } + def min = param.min?.toString() + def max = param.max?.toString() + + def escapeChoice = { choice -> + def s1 = choice.replaceAll("\\n", "\\\\n") + def s2 = s1.replaceAll("\"", """\\\"""") + s2.contains(",") || s2 != choice ? "\"" + s2 + "\"" : s2 + } + def choices = param.choices == null ? + null : + "[ " + param.choices.collect{escapeChoice(it.toString())}.join(", ") + " ]" + + def namedPropsStr = [ + ["type", ([param.type] + unnamedProps).join(", ")], + ["default", dflt], + ["example", example], + ["choices", choices], + ["min", min], + ["max", max] + ] + .findAll{it[1]} + .collect{"\n " + it[0] + ": " + it[1].replaceAll("\n", "\\n")} + .join("") + + def descStr = param.description == null ? + "" : + _paragraphWrap("\n" + param.description.trim(), 80 - 8).join("\n ") + + "\n --" + param.plainName + + namedPropsStr + + descStr +} + +// Based on Helper.generateHelp() in Helper.scala +def _generateHelp(config) { + def fun = config + + // PART 1: NAME AND VERSION + def nameStr = fun.name + + (fun.version == null ? "" : " " + fun.version) + + // PART 2: DESCRIPTION + def descrStr = fun.description == null ? + "" : + "\n\n" + _paragraphWrap(fun.description.trim(), 80).join("\n") + + // PART 3: Usage + def usageStr = fun.usage == null ? + "" : + "\n\nUsage:\n" + fun.usage.trim() + + // PART 4: Options + def argGroupStrs = fun.allArgumentGroups.collect{argGroup -> + def name = argGroup.name + def descriptionStr = argGroup.description == null ? + "" : + "\n " + _paragraphWrap(argGroup.description.trim(), 80-4).join("\n ") + "\n" + def arguments = argGroup.arguments.collect{arg -> + arg instanceof String ? fun.allArguments.find{it.plainName == arg} : arg + }.findAll{it != null} + def argumentStrs = arguments.collect{param -> _generateArgumentHelp(param)} + + "\n\n$name:" + + descriptionStr + + argumentStrs.join("\n") + } + + // FINAL: combine + def out = nameStr + + descrStr + + usageStr + + argGroupStrs.join("") + + return out +} + +// based on Format._paragraphWrap +def _paragraphWrap(str, maxLength) { + def outLines = [] + str.split("\n").each{par -> + def words = par.split("\\s").toList() + + def word = null + def line = words.pop() + while(!words.isEmpty()) { + word = words.pop() + if (line.length() + word.length() + 1 <= maxLength) { + line = line + " " + word + } else { + outLines.add(line) + line = word + } + } + if (words.isEmpty()) { + outLines.add(line) + } + } + return outLines +} + +def helpMessage(config) { + if (params.containsKey("help") && params.help) { + def mergedConfig = addGlobalArguments(config) + def helpStr = _generateHelp(mergedConfig) + println(helpStr) + exit 0 + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/config/processConfig.nf' +def processConfig(config) { + // set defaults for arguments + config.arguments = + (config.arguments ?: []).collect{_processArgument(it)} + + // set defaults for argument_group arguments + config.argument_groups = + (config.argument_groups ?: []).collect{grp -> + grp.arguments = (grp.arguments ?: []).collect{_processArgument(it)} + grp + } + + // create combined arguments list + config.allArguments = + config.arguments + + config.argument_groups.collectMany{it.arguments} + + // add missing argument groups (based on Functionality::allArgumentGroups()) + def argGroups = config.argument_groups + if (argGroups.any{it.name.toLowerCase() == "arguments"}) { + argGroups = argGroups.collect{ grp -> + if (grp.name.toLowerCase() == "arguments") { + grp = grp + [ + arguments: grp.arguments + config.arguments + ] + } + grp + } + } else { + argGroups = argGroups + [ + name: "Arguments", + arguments: config.arguments + ] + } + config.allArgumentGroups = argGroups + + config +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/config/readConfig.nf' + +def readConfig(file) { + def config = readYaml(file ?: moduleDir.resolve("config.vsh.yaml")) + processConfig(config) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/_resolveSiblingIfNotAbsolute.nf' +/** + * Resolve a path relative to the current file. + * + * @param str The path to resolve, as a String. + * @param parentPath The path to resolve relative to, as a Path. + * + * @return The path that may have been resovled, as a Path. + */ +def _resolveSiblingIfNotAbsolute(str, parentPath) { + if (str !instanceof String) { + return str + } + if (!_stringIsAbsolutePath(str)) { + return parentPath.resolveSibling(str) + } else { + return file(str, hidden: true) + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/_stringIsAbsolutePath.nf' +/** + * Check whether a path as a string is absolute. + * + * In the past, we tried using `file(., relative: true).isAbsolute()`, + * but the 'relative' option was added in 22.10.0. + * + * @param path The path to check, as a String. + * + * @return Whether the path is absolute, as a boolean. + */ +def _stringIsAbsolutePath(path) { + def _resolve_URL_PROTOCOL = ~/^([a-zA-Z][a-zA-Z0-9]*:)?\\/.+/ + + assert path instanceof String + return _resolve_URL_PROTOCOL.matcher(path).matches() +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/collectTraces.nf' +class CustomTraceObserver implements nextflow.trace.TraceObserver { + List traces + + CustomTraceObserver(List traces) { + this.traces = traces + } + + @Override + void onProcessComplete(nextflow.processor.TaskHandler handler, nextflow.trace.TraceRecord trace) { + def trace2 = trace.store.clone() + trace2.script = null + traces.add(trace2) + } + + @Override + void onProcessCached(nextflow.processor.TaskHandler handler, nextflow.trace.TraceRecord trace) { + def trace2 = trace.store.clone() + trace2.script = null + traces.add(trace2) + } +} + +def collectTraces() { + def traces = Collections.synchronizedList([]) + + // add custom trace observer which stores traces in the traces object + session.observers.add(new CustomTraceObserver(traces)) + + traces +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/deepClone.nf' +/** + * Performs a deep clone of the given object. + * @param x an object + */ +def deepClone(x) { + iterateMap(x, {it instanceof Cloneable ? it.clone() : it}) +} +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/getPublishDir.nf' +def getPublishDir() { + return params.containsKey("publish_dir") ? params.publish_dir : + params.containsKey("publishDir") ? params.publishDir : + null +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/getRootDir.nf' + +// Recurse upwards until we find a '.build.yaml' file +def _findBuildYamlFile(pathPossiblySymlink) { + def path = pathPossiblySymlink.toRealPath() + def child = path.resolve(".build.yaml") + if (java.nio.file.Files.isDirectory(path) && java.nio.file.Files.exists(child)) { + return child + } else { + def parent = path.getParent() + if (parent == null) { + return null + } else { + return _findBuildYamlFile(parent) + } + } +} + +// get the root of the target folder +def getRootDir() { + def dir = _findBuildYamlFile(meta.resources_dir) + assert dir != null: "Could not find .build.yaml in the folder structure" + dir.getParent() +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/iterateMap.nf' +/** + * Recursively apply a function over the leaves of an object. + * @param obj The object to iterate over. + * @param fun The function to apply to each value. + * @return The object with the function applied to each value. + */ +def iterateMap(obj, fun) { + if (obj instanceof List && obj !instanceof String) { + return obj.collect{item -> + iterateMap(item, fun) + } + } else if (obj instanceof Map) { + return obj.collectEntries{key, item -> + [key.toString(), iterateMap(item, fun)] + } + } else { + return fun(obj) + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/niceView.nf' +/** + * A view for printing the event of each channel as a YAML blob. + * This is useful for debugging. + */ +def niceView() { + workflow niceViewWf { + take: input + main: + output = input + | view{toYamlBlob(it)} + emit: output + } + return niceViewWf +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/readCsv.nf' + +def readCsv(file_path) { + def output = [] + def inputFile = file_path !instanceof Path ? file(file_path, hidden: true) : file_path + + // todo: allow escaped quotes in string + // todo: allow single quotes? + def splitRegex = java.util.regex.Pattern.compile(''',(?=(?:[^"]*"[^"]*")*[^"]*$)''') + def removeQuote = java.util.regex.Pattern.compile('''"(.*)"''') + + def br = java.nio.file.Files.newBufferedReader(inputFile) + + def row = -1 + def header = null + while (br.ready() && header == null) { + def line = br.readLine() + row++ + if (!line.startsWith("#")) { + header = splitRegex.split(line, -1).collect{field -> + m = removeQuote.matcher(field) + m.find() ? m.replaceFirst('$1') : field + } + } + } + assert header != null: "CSV file should contain a header" + + while (br.ready()) { + def line = br.readLine() + row++ + if (line == null) { + br.close() + break + } + + if (!line.startsWith("#")) { + def predata = splitRegex.split(line, -1) + def data = predata.collect{field -> + if (field == "") { + return null + } + def m = removeQuote.matcher(field) + if (m.find()) { + return m.replaceFirst('$1') + } else { + return field + } + } + assert header.size() == data.size(): "Row $row should contain the same number as fields as the header" + + def dataMap = [header, data].transpose().collectEntries().findAll{it.value != null} + output.add(dataMap) + } + } + + output +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/readJson.nf' +def readJson(file_path) { + def inputFile = file_path !instanceof Path ? file(file_path, hidden: true) : file_path + def jsonSlurper = new groovy.json.JsonSlurper() + jsonSlurper.parse(inputFile) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/readJsonBlob.nf' +def readJsonBlob(str) { + def jsonSlurper = new groovy.json.JsonSlurper() + jsonSlurper.parseText(str) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/readTaggedYaml.nf' +// Custom constructor to modify how certain objects are parsed from YAML +class CustomConstructor extends org.yaml.snakeyaml.constructor.Constructor { + Path root + + class ConstructPath extends org.yaml.snakeyaml.constructor.AbstractConstruct { + public Object construct(org.yaml.snakeyaml.nodes.Node node) { + String filename = (String) constructScalar(node); + if (root != null) { + return root.resolve(filename); + } + return java.nio.file.Paths.get(filename); + } + } + + CustomConstructor(org.yaml.snakeyaml.LoaderOptions options, Path root) { + super(options) + this.root = root + // Handling !file tag and parse it back to a File type + this.yamlConstructors.put(new org.yaml.snakeyaml.nodes.Tag("!file"), new ConstructPath()) + } +} + +def readTaggedYaml(Path path) { + def options = new org.yaml.snakeyaml.LoaderOptions() + def constructor = new CustomConstructor(options, path.getParent()) + def yaml = new org.yaml.snakeyaml.Yaml(constructor) + return yaml.load(path.text) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/readYaml.nf' +def readYaml(file_path) { + def inputFile = file_path !instanceof Path ? file(file_path, hidden: true) : file_path + def yamlSlurper = new org.yaml.snakeyaml.Yaml() + yamlSlurper.load(inputFile) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/readYamlBlob.nf' +def readYamlBlob(str) { + def yamlSlurper = new org.yaml.snakeyaml.Yaml() + yamlSlurper.load(str) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/toJsonBlob.nf' +String toJsonBlob(data) { + return groovy.json.JsonOutput.toJson(data) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/toTaggedYamlBlob.nf' +// Custom representer to modify how certain objects are represented in YAML +class CustomRepresenter extends org.yaml.snakeyaml.representer.Representer { + Path relativizer + + class RepresentPath implements org.yaml.snakeyaml.representer.Represent { + public String getFileName(Object obj) { + if (obj instanceof File) { + obj = ((File) obj).toPath(); + } + if (obj !instanceof Path) { + throw new IllegalArgumentException("Object: " + obj + " is not a Path or File"); + } + def path = (Path) obj; + + if (relativizer != null) { + return relativizer.relativize(path).toString() + } else { + return path.toString() + } + } + + public org.yaml.snakeyaml.nodes.Node representData(Object data) { + String filename = getFileName(data); + def tag = new org.yaml.snakeyaml.nodes.Tag("!file"); + return representScalar(tag, filename); + } + } + CustomRepresenter(org.yaml.snakeyaml.DumperOptions options, Path relativizer) { + super(options) + this.relativizer = relativizer + this.representers.put(sun.nio.fs.UnixPath, new RepresentPath()) + this.representers.put(Path, new RepresentPath()) + this.representers.put(File, new RepresentPath()) + } +} + +String toTaggedYamlBlob(data) { + return toRelativeTaggedYamlBlob(data, null) +} +String toRelativeTaggedYamlBlob(data, Path relativizer) { + def options = new org.yaml.snakeyaml.DumperOptions() + options.setDefaultFlowStyle(org.yaml.snakeyaml.DumperOptions.FlowStyle.BLOCK) + def representer = new CustomRepresenter(options, relativizer) + def yaml = new org.yaml.snakeyaml.Yaml(representer, options) + return yaml.dump(data) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/toYamlBlob.nf' +String toYamlBlob(data) { + def options = new org.yaml.snakeyaml.DumperOptions() + options.setDefaultFlowStyle(org.yaml.snakeyaml.DumperOptions.FlowStyle.BLOCK) + options.setPrettyFlow(true) + def yaml = new org.yaml.snakeyaml.Yaml(options) + def cleanData = iterateMap(data, { it instanceof Path ? it.toString() : it }) + return yaml.dump(cleanData) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/writeJson.nf' +void writeJson(data, file) { + assert data: "writeJson: data should not be null" + assert file: "writeJson: file should not be null" + file.write(toJsonBlob(data)) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/writeYaml.nf' +void writeYaml(data, file) { + assert data: "writeYaml: data should not be null" + assert file: "writeYaml: file should not be null" + file.write(toYamlBlob(data)) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/states/findStates.nf' +def findStates(Map params, Map config) { + def auto_config = deepClone(config) + def auto_params = deepClone(params) + + auto_config = auto_config.clone() + // override arguments + auto_config.argument_groups = [] + auto_config.arguments = [ + [ + type: "string", + name: "--id", + description: "A dummy identifier", + required: false + ], + [ + type: "file", + name: "--input_states", + example: "/path/to/input/directory/**/state.yaml", + description: "Path to input directory containing the datasets to be integrated.", + required: true, + multiple: true, + multiple_sep: ";" + ], + [ + type: "string", + name: "--filter", + example: "foo/.*/state.yaml", + description: "Regex to filter state files by path.", + required: false + ], + // to do: make this a yaml blob? + [ + type: "string", + name: "--rename_keys", + example: ["newKey1:oldKey1", "newKey2:oldKey2"], + description: "Rename keys in the detected input files. This is useful if the input files do not match the set of input arguments of the workflow.", + required: false, + multiple: true, + multiple_sep: ";" + ], + [ + type: "string", + name: "--settings", + example: '{"output_dataset": "dataset.h5ad", "k": 10}', + description: "Global arguments as a JSON glob to be passed to all components.", + required: false + ] + ] + if (!(auto_params.containsKey("id"))) { + auto_params["id"] = "auto" + } + + // run auto config through processConfig once more + auto_config = processConfig(auto_config) + + workflow findStatesWf { + helpMessage(auto_config) + + output_ch = + channelFromParams(auto_params, auto_config) + | flatMap { autoId, args -> + + def globalSettings = args.settings ? readYamlBlob(args.settings) : [:] + + // look for state files in input dir + def stateFiles = args.input_states + + // filter state files by regex + if (args.filter) { + stateFiles = stateFiles.findAll{ stateFile -> + def stateFileStr = stateFile.toString() + def matcher = stateFileStr =~ args.filter + matcher.matches()} + } + + // read in states + def states = stateFiles.collect { stateFile -> + def state_ = readTaggedYaml(stateFile) + [state_.id, state_] + } + + // construct renameMap + if (args.rename_keys) { + def renameMap = args.rename_keys.collectEntries{renameString -> + def split = renameString.split(":") + assert split.size() == 2: "Argument 'rename_keys' should be of the form 'newKey:oldKey', or 'newKey:oldKey;newKey:oldKey' in case of multiple values" + split + } + + // rename keys in state, only let states through which have all keys + // also add global settings + states = states.collectMany{id, state -> + def newState = [:] + + for (key in renameMap.keySet()) { + def origKey = renameMap[key] + if (!(state.containsKey(origKey))) { + return [] + } + newState[key] = state[origKey] + } + + [[id, globalSettings + newState]] + } + } + + states + } + emit: + output_ch + } + + return findStatesWf +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/states/joinStates.nf' +def joinStates(Closure apply_) { + workflow joinStatesWf { + take: input_ch + main: + output_ch = input_ch + | toSortedList + | filter{ it.size() > 0 } + | map{ tups -> + def ids = tups.collect{it[0]} + def states = tups.collect{it[1]} + apply_(ids, states) + } + + emit: output_ch + } + return joinStatesWf +} +// helper file: 'src/main/resources/io/viash/runners/nextflow/states/publishStates.nf' +def collectFiles(obj) { + if (obj instanceof java.io.File || obj instanceof Path) { + return [obj] + } else if (obj instanceof List && obj !instanceof String) { + return obj.collectMany{item -> + collectFiles(item) + } + } else if (obj instanceof Map) { + return obj.collectMany{key, item -> + collectFiles(item) + } + } else { + return [] + } +} + +/** + * Recurse through a state and collect all input files and their target output filenames. + * @param obj The state to recurse through. + * @param prefix The prefix to prepend to the output filenames. + */ +def collectInputOutputPaths(obj, prefix) { + if (obj instanceof File || obj instanceof Path) { + def path = obj instanceof Path ? obj : obj.toPath() + def ext = path.getFileName().toString().find("\\.[^\\.]+\$") ?: "" + def newFilename = prefix + ext + return [[obj, newFilename]] + } else if (obj instanceof List && obj !instanceof String) { + return obj.withIndex().collectMany{item, ix -> + collectInputOutputPaths(item, prefix + "_" + ix) + } + } else if (obj instanceof Map) { + return obj.collectMany{key, item -> + collectInputOutputPaths(item, prefix + "." + key) + } + } else { + return [] + } +} + +def publishStates(Map args) { + def key_ = args.get("key") + def yamlTemplate_ = args.get("output_state", args.get("outputState", '$id.$key.state.yaml')) + + assert key_ != null : "publishStates: key must be specified" + + workflow publishStatesWf { + take: input_ch + main: + input_ch + | map { tup -> + def id_ = tup[0] + def state_ = tup[1] + + // the input files and the target output filenames + def inputoutputFilenames_ = collectInputOutputPaths(state_, id_ + "." + key_).transpose() + def inputFiles_ = inputoutputFilenames_[0] + def outputFilenames_ = inputoutputFilenames_[1] + + def yamlFilename = yamlTemplate_ + .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) + .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) + + // TODO: do the pathnames in state_ match up with the outputFilenames_? + + // convert state to yaml blob + def yamlBlob_ = toRelativeTaggedYamlBlob([id: id_] + state_, java.nio.file.Paths.get(yamlFilename)) + + [id_, yamlBlob_, yamlFilename, inputFiles_, outputFilenames_] + } + | publishStatesProc + emit: input_ch + } + return publishStatesWf +} +process publishStatesProc { + // todo: check publishpath? + publishDir path: "${getPublishDir()}/", mode: "copy" + tag "$id" + input: + tuple val(id), val(yamlBlob), val(yamlFile), path(inputFiles, stageAs: "_inputfile?/*"), val(outputFiles) + output: + tuple val(id), path{[yamlFile] + outputFiles} + script: + def copyCommands = [ + inputFiles instanceof List ? inputFiles : [inputFiles], + outputFiles instanceof List ? outputFiles : [outputFiles] + ] + .transpose() + .collectMany{infile, outfile -> + if (infile.toString() != outfile.toString()) { + [ + "[ -d \"\$(dirname '${outfile.toString()}')\" ] || mkdir -p \"\$(dirname '${outfile.toString()}')\"", + "cp -r '${infile.toString()}' '${outfile.toString()}'" + ] + } else { + // no need to copy if infile is the same as outfile + [] + } + } + """ +mkdir -p "\$(dirname '${yamlFile}')" +echo "Storing state as yaml" +echo '${yamlBlob}' > '${yamlFile}' +echo "Copying output files to destination folder" +${copyCommands.join("\n ")} +""" +} + + +// this assumes that the state contains no other values other than those specified in the config +def publishStatesByConfig(Map args) { + def config = args.get("config") + assert config != null : "publishStatesByConfig: config must be specified" + + def key_ = args.get("key", config.name) + assert key_ != null : "publishStatesByConfig: key must be specified" + + workflow publishStatesSimpleWf { + take: input_ch + main: + input_ch + | map { tup -> + def id_ = tup[0] + def state_ = tup[1] // e.g. [output: new File("myoutput.h5ad"), k: 10] + def origState_ = tup[2] // e.g. [output: '$id.$key.foo.h5ad'] + + // TODO: allow overriding the state.yaml template + // TODO TODO: if auto.publish == "state", add output_state as an argument + def yamlTemplate = params.containsKey("output_state") ? params.output_state : '$id.$key.state.yaml' + def yamlFilename = yamlTemplate + .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) + .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) + def yamlDir = java.nio.file.Paths.get(yamlFilename).getParent() + + // the processed state is a list of [key, value, inputPath, outputFilename] tuples, where + // - key is a String + // - value is any object that can be serialized to a Yaml (so a String/Integer/Long/Double/Boolean, a List, a Map, or a Path) + // - inputPath is a List[Path] + // - outputFilename is a List[String] + // - (key, value) are the tuples that will be saved to the state.yaml file + // - (inputPath, outputFilename) are the files that will be copied from src to dest (relative to the state.yaml) + def processedState = + config.allArguments + .findAll { it.direction == "output" } + .collectMany { par -> + def plainName_ = par.plainName + // if the state does not contain the key, it's an + // optional argument for which the component did + // not generate any output + if (!state_.containsKey(plainName_)) { + return [] + } + def value = state_[plainName_] + // if the parameter is not a file, it should be stored + // in the state as-is, but is not something that needs + // to be copied from the source path to the dest path + if (par.type != "file") { + return [[key: plainName_, value: value, inputPath: [], outputFilename: []]] + } + // if the orig state does not contain this filename, + // it's an optional argument for which the user specified + // that it should not be returned as a state + if (!origState_.containsKey(plainName_)) { + return [] + } + def filenameTemplate = origState_[plainName_] + // if the pararameter is multiple: true, fetch the template + if (par.multiple && filenameTemplate instanceof List) { + filenameTemplate = filenameTemplate[0] + } + // instantiate the template + def filename = filenameTemplate + .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) + .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) + if (par.multiple) { + // if the parameter is multiple: true, the filename + // should contain a wildcard '*' that is replaced with + // the index of the file + assert filename.contains("*") : "Module '${key_}' id '${id_}': Multiple output files specified, but no wildcard '*' in the filename: ${filename}" + def outputPerFile = value.withIndex().collect{ val, ix -> + def filename_ix = filename.replace("*", ix.toString()) + def value_ = java.nio.file.Paths.get(filename_ix) + // if id contains a slash + if (yamlDir != null) { + value_ = yamlDir.relativize(value_) + } + def inputPath = val instanceof File ? val.toPath() : val + [value: value_, inputPath: inputPath, outputFilename: filename_ix] + } + def transposedOutputs = ["value", "inputPath", "outputFilename"].collectEntries{ key -> + [key, outputPerFile.collect{dic -> dic[key]}] + } + return [[key: plainName_] + transposedOutputs] + } else { + def value_ = java.nio.file.Paths.get(filename) + // if id contains a slash + if (yamlDir != null) { + value_ = yamlDir.relativize(value_) + } + def inputPath = value instanceof File ? value.toPath() : value + return [[key: plainName_, value: value_, inputPath: [inputPath], outputFilename: [filename]]] + } + } + + def updatedState_ = processedState.collectEntries{[it.key, it.value]} + def inputPaths = processedState.collectMany{it.inputPath} + def outputFilenames = processedState.collectMany{it.outputFilename} + + // convert state to yaml blob + def yamlBlob_ = toTaggedYamlBlob([id: id_] + updatedState_) + + [id_, yamlBlob_, yamlFilename, inputPaths, outputFilenames] + } + | publishStatesProc + emit: input_ch + } + return publishStatesSimpleWf +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/states/setState.nf' +def setState(fun) { + assert fun instanceof Closure || fun instanceof Map || fun instanceof List : + "Error in setState: Expected process argument to be a Closure, a Map, or a List. Found: class ${fun.getClass()}" + + // if fun is a List, convert to map + if (fun instanceof List) { + // check whether fun is a list[string] + assert fun.every{it instanceof CharSequence} : "Error in setState: argument is a List, but not all elements are Strings" + fun = fun.collectEntries{[it, it]} + } + + // if fun is a map, convert to closure + if (fun instanceof Map) { + // check whether fun is a map[string, string] + assert fun.values().every{it instanceof CharSequence} : "Error in setState: argument is a Map, but not all values are Strings" + assert fun.keySet().every{it instanceof CharSequence} : "Error in setState: argument is a Map, but not all keys are Strings" + def funMap = fun.clone() + // turn the map into a closure to be used later on + fun = { id_, state_ -> + assert state_ instanceof Map : "Error in setState: the state is not a Map" + funMap.collectMany{newkey, origkey -> + if (state_.containsKey(origkey)) { + [[newkey, state_[origkey]]] + } else { + [] + } + }.collectEntries() + } + } + + map { tup -> + def id = tup[0] + def state = tup[1] + def unfilteredState = fun(id, state) + def newState = unfilteredState.findAll{key, val -> val != null} + [id, newState] + tup.drop(2) + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/workflowFactory/processAuto.nf' +// TODO: unit test processAuto +def processAuto(Map auto) { + // remove null values + auto = auto.findAll{k, v -> v != null} + + // check for unexpected keys + def expectedKeys = ["simplifyInput", "simplifyOutput", "transcript", "publish"] + def unexpectedKeys = auto.keySet() - expectedKeys + assert unexpectedKeys.isEmpty(), "unexpected keys in auto: '${unexpectedKeys.join("', '")}'" + + // check auto.simplifyInput + assert auto.simplifyInput instanceof Boolean, "auto.simplifyInput must be a boolean" + + // check auto.simplifyOutput + assert auto.simplifyOutput instanceof Boolean, "auto.simplifyOutput must be a boolean" + + // check auto.transcript + assert auto.transcript instanceof Boolean, "auto.transcript must be a boolean" + + // check auto.publish + assert auto.publish instanceof Boolean || auto.publish == "state", "auto.publish must be a boolean or 'state'" + + return auto.subMap(expectedKeys) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/workflowFactory/processDirectives.nf' +def assertMapKeys(map, expectedKeys, requiredKeys, mapName) { + assert map instanceof Map : "Expected argument '$mapName' to be a Map. Found: class ${map.getClass()}" + map.forEach { key, val -> + assert key in expectedKeys : "Unexpected key '$key' in ${mapName ? mapName + " " : ""}map" + } + requiredKeys.forEach { requiredKey -> + assert map.containsKey(requiredKey) : "Missing required key '$key' in ${mapName ? mapName + " " : ""}map" + } +} + +// TODO: unit test processDirectives +def processDirectives(Map drctv) { + // remove null values + drctv = drctv.findAll{k, v -> v != null} + + // check for unexpected keys + def expectedKeys = [ + "accelerator", "afterScript", "beforeScript", "cache", "conda", "container", "containerOptions", "cpus", "disk", "echo", "errorStrategy", "executor", "machineType", "maxErrors", "maxForks", "maxRetries", "memory", "module", "penv", "pod", "publishDir", "queue", "label", "scratch", "storeDir", "stageInMode", "stageOutMode", "tag", "time" + ] + def unexpectedKeys = drctv.keySet() - expectedKeys + assert unexpectedKeys.isEmpty() : "Unexpected keys in process directive: '${unexpectedKeys.join("', '")}'" + + /* DIRECTIVE accelerator + accepted examples: + - [ limit: 4, type: "nvidia-tesla-k80" ] + */ + if (drctv.containsKey("accelerator")) { + assertMapKeys(drctv["accelerator"], ["type", "limit", "request", "runtime"], [], "accelerator") + } + + /* DIRECTIVE afterScript + accepted examples: + - "source /cluster/bin/cleanup" + */ + if (drctv.containsKey("afterScript")) { + assert drctv["afterScript"] instanceof CharSequence + } + + /* DIRECTIVE beforeScript + accepted examples: + - "source /cluster/bin/setup" + */ + if (drctv.containsKey("beforeScript")) { + assert drctv["beforeScript"] instanceof CharSequence + } + + /* DIRECTIVE cache + accepted examples: + - true + - false + - "deep" + - "lenient" + */ + if (drctv.containsKey("cache")) { + assert drctv["cache"] instanceof CharSequence || drctv["cache"] instanceof Boolean + if (drctv["cache"] instanceof CharSequence) { + assert drctv["cache"] in ["deep", "lenient"] : "Unexpected value for cache" + } + } + + /* DIRECTIVE conda + accepted examples: + - "bwa=0.7.15" + - "bwa=0.7.15 fastqc=0.11.5" + - ["bwa=0.7.15", "fastqc=0.11.5"] + */ + if (drctv.containsKey("conda")) { + if (drctv["conda"] instanceof List) { + drctv["conda"] = drctv["conda"].join(" ") + } + assert drctv["conda"] instanceof CharSequence + } + + /* DIRECTIVE container + accepted examples: + - "foo/bar:tag" + - [ registry: "reg", image: "im", tag: "ta" ] + is transformed to "reg/im:ta" + - [ image: "im" ] + is transformed to "im:latest" + */ + if (drctv.containsKey("container")) { + assert drctv["container"] instanceof Map || drctv["container"] instanceof CharSequence + if (drctv["container"] instanceof Map) { + def m = drctv["container"] + assertMapKeys(m, [ "registry", "image", "tag" ], ["image"], "container") + def part1 = + System.getenv('OVERRIDE_CONTAINER_REGISTRY') ? System.getenv('OVERRIDE_CONTAINER_REGISTRY') + "/" : + params.containsKey("override_container_registry") ? params["override_container_registry"] + "/" : // todo: remove? + m.registry ? m.registry + "/" : + "" + def part2 = m.image + def part3 = m.tag ? ":" + m.tag : ":latest" + drctv["container"] = part1 + part2 + part3 + } + } + + /* DIRECTIVE containerOptions + accepted examples: + - "--foo bar" + - ["--foo bar", "-f b"] + */ + if (drctv.containsKey("containerOptions")) { + if (drctv["containerOptions"] instanceof List) { + drctv["containerOptions"] = drctv["containerOptions"].join(" ") + } + assert drctv["containerOptions"] instanceof CharSequence + } + + /* DIRECTIVE cpus + accepted examples: + - 1 + - 10 + */ + if (drctv.containsKey("cpus")) { + assert drctv["cpus"] instanceof Integer + } + + /* DIRECTIVE disk + accepted examples: + - "1 GB" + - "2TB" + - "3.2KB" + - "10.B" + */ + if (drctv.containsKey("disk")) { + assert drctv["disk"] instanceof CharSequence + // assert drctv["disk"].matches("[0-9]+(\\.[0-9]*)? *[KMGTPEZY]?B") + // ^ does not allow closures + } + + /* DIRECTIVE echo + accepted examples: + - true + - false + */ + if (drctv.containsKey("echo")) { + assert drctv["echo"] instanceof Boolean + } + + /* DIRECTIVE errorStrategy + accepted examples: + - "terminate" + - "finish" + */ + if (drctv.containsKey("errorStrategy")) { + assert drctv["errorStrategy"] instanceof CharSequence + assert drctv["errorStrategy"] in ["terminate", "finish", "ignore", "retry"] : "Unexpected value for errorStrategy" + } + + /* DIRECTIVE executor + accepted examples: + - "local" + - "sge" + */ + if (drctv.containsKey("executor")) { + assert drctv["executor"] instanceof CharSequence + assert drctv["executor"] in ["local", "sge", "uge", "lsf", "slurm", "pbs", "pbspro", "moab", "condor", "nqsii", "ignite", "k8s", "awsbatch", "google-pipelines"] : "Unexpected value for executor" + } + + /* DIRECTIVE machineType + accepted examples: + - "n1-highmem-8" + */ + if (drctv.containsKey("machineType")) { + assert drctv["machineType"] instanceof CharSequence + } + + /* DIRECTIVE maxErrors + accepted examples: + - 1 + - 3 + */ + if (drctv.containsKey("maxErrors")) { + assert drctv["maxErrors"] instanceof Integer + } + + /* DIRECTIVE maxForks + accepted examples: + - 1 + - 3 + */ + if (drctv.containsKey("maxForks")) { + assert drctv["maxForks"] instanceof Integer + } + + /* DIRECTIVE maxRetries + accepted examples: + - 1 + - 3 + */ + if (drctv.containsKey("maxRetries")) { + assert drctv["maxRetries"] instanceof Integer + } + + /* DIRECTIVE memory + accepted examples: + - "1 GB" + - "2TB" + - "3.2KB" + - "10.B" + */ + if (drctv.containsKey("memory")) { + assert drctv["memory"] instanceof CharSequence + // assert drctv["memory"].matches("[0-9]+(\\.[0-9]*)? *[KMGTPEZY]?B") + // ^ does not allow closures + } + + /* DIRECTIVE module + accepted examples: + - "ncbi-blast/2.2.27" + - "ncbi-blast/2.2.27:t_coffee/10.0" + - ["ncbi-blast/2.2.27", "t_coffee/10.0"] + */ + if (drctv.containsKey("module")) { + if (drctv["module"] instanceof List) { + drctv["module"] = drctv["module"].join(":") + } + assert drctv["module"] instanceof CharSequence + } + + /* DIRECTIVE penv + accepted examples: + - "smp" + */ + if (drctv.containsKey("penv")) { + assert drctv["penv"] instanceof CharSequence + } + + /* DIRECTIVE pod + accepted examples: + - [ label: "key", value: "val" ] + - [ annotation: "key", value: "val" ] + - [ env: "key", value: "val" ] + - [ [label: "l", value: "v"], [env: "e", value: "v"]] + */ + if (drctv.containsKey("pod")) { + if (drctv["pod"] instanceof Map) { + drctv["pod"] = [ drctv["pod"] ] + } + assert drctv["pod"] instanceof List + drctv["pod"].forEach { pod -> + assert pod instanceof Map + // TODO: should more checks be added? + // See https://www.nextflow.io/docs/latest/process.html?highlight=directives#pod + // e.g. does it contain 'label' and 'value', or 'annotation' and 'value', or ...? + } + } + + /* DIRECTIVE publishDir + accepted examples: + - [] + - [ [ path: "foo", enabled: true ], [ path: "bar", enabled: false ] ] + - "/path/to/dir" + is transformed to [[ path: "/path/to/dir" ]] + - [ path: "/path/to/dir", mode: "cache" ] + is transformed to [[ path: "/path/to/dir", mode: "cache" ]] + */ + // TODO: should we also look at params["publishDir"]? + if (drctv.containsKey("publishDir")) { + def pblsh = drctv["publishDir"] + + // check different options + assert pblsh instanceof List || pblsh instanceof Map || pblsh instanceof CharSequence + + // turn into list if not already so + // for some reason, 'if (!pblsh instanceof List) pblsh = [ pblsh ]' doesn't work. + pblsh = pblsh instanceof List ? pblsh : [ pblsh ] + + // check elements of publishDir + pblsh = pblsh.collect{ elem -> + // turn into map if not already so + elem = elem instanceof CharSequence ? [ path: elem ] : elem + + // check types and keys + assert elem instanceof Map : "Expected publish argument '$elem' to be a String or a Map. Found: class ${elem.getClass()}" + assertMapKeys(elem, [ "path", "mode", "overwrite", "pattern", "saveAs", "enabled" ], ["path"], "publishDir") + + // check elements in map + assert elem.containsKey("path") + assert elem["path"] instanceof CharSequence + if (elem.containsKey("mode")) { + assert elem["mode"] instanceof CharSequence + assert elem["mode"] in [ "symlink", "rellink", "link", "copy", "copyNoFollow", "move" ] + } + if (elem.containsKey("overwrite")) { + assert elem["overwrite"] instanceof Boolean + } + if (elem.containsKey("pattern")) { + assert elem["pattern"] instanceof CharSequence + } + if (elem.containsKey("saveAs")) { + assert elem["saveAs"] instanceof CharSequence //: "saveAs as a Closure is currently not supported. Surround your closure with single quotes to get the desired effect. Example: '\{ foo \}'" + } + if (elem.containsKey("enabled")) { + assert elem["enabled"] instanceof Boolean + } + + // return final result + elem + } + // store final directive + drctv["publishDir"] = pblsh + } + + /* DIRECTIVE queue + accepted examples: + - "long" + - "short,long" + - ["short", "long"] + */ + if (drctv.containsKey("queue")) { + if (drctv["queue"] instanceof List) { + drctv["queue"] = drctv["queue"].join(",") + } + assert drctv["queue"] instanceof CharSequence + } + + /* DIRECTIVE label + accepted examples: + - "big_mem" + - "big_cpu" + - ["big_mem", "big_cpu"] + */ + if (drctv.containsKey("label")) { + if (drctv["label"] instanceof CharSequence) { + drctv["label"] = [ drctv["label"] ] + } + assert drctv["label"] instanceof List + drctv["label"].forEach { label -> + assert label instanceof CharSequence + // assert label.matches("[a-zA-Z0-9]([a-zA-Z0-9_]*[a-zA-Z0-9])?") + // ^ does not allow closures + } + } + + /* DIRECTIVE scratch + accepted examples: + - true + - "/path/to/scratch" + - '$MY_PATH_TO_SCRATCH' + - "ram-disk" + */ + if (drctv.containsKey("scratch")) { + assert drctv["scratch"] == true || drctv["scratch"] instanceof CharSequence + } + + /* DIRECTIVE storeDir + accepted examples: + - "/path/to/storeDir" + */ + if (drctv.containsKey("storeDir")) { + assert drctv["storeDir"] instanceof CharSequence + } + + /* DIRECTIVE stageInMode + accepted examples: + - "copy" + - "link" + */ + if (drctv.containsKey("stageInMode")) { + assert drctv["stageInMode"] instanceof CharSequence + assert drctv["stageInMode"] in ["copy", "link", "symlink", "rellink"] + } + + /* DIRECTIVE stageOutMode + accepted examples: + - "copy" + - "link" + */ + if (drctv.containsKey("stageOutMode")) { + assert drctv["stageOutMode"] instanceof CharSequence + assert drctv["stageOutMode"] in ["copy", "move", "rsync"] + } + + /* DIRECTIVE tag + accepted examples: + - "foo" + - '$id' + */ + if (drctv.containsKey("tag")) { + assert drctv["tag"] instanceof CharSequence + } + + /* DIRECTIVE time + accepted examples: + - "1h" + - "2days" + - "1day 6hours 3minutes 30seconds" + */ + if (drctv.containsKey("time")) { + assert drctv["time"] instanceof CharSequence + // todo: validation regex? + } + + return drctv +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/workflowFactory/processWorkflowArgs.nf' +def processWorkflowArgs(Map args, Map defaultWfArgs, Map meta) { + // override defaults with args + def workflowArgs = defaultWfArgs + args + + // check whether 'key' exists + assert workflowArgs.containsKey("key") : "Error in module '${meta.config.name}': key is a required argument" + + // if 'key' is a closure, apply it to the original key + if (workflowArgs["key"] instanceof Closure) { + workflowArgs["key"] = workflowArgs["key"](meta.config.name) + } + def key = workflowArgs["key"] + assert key instanceof CharSequence : "Expected process argument 'key' to be a String. Found: class ${key.getClass()}" + assert key ==~ /^[a-zA-Z_]\w*$/ : "Error in module '$key': Expected process argument 'key' to consist of only letters, digits or underscores. Found: ${key}" + + // check for any unexpected keys + def expectedKeys = ["key", "directives", "auto", "map", "mapId", "mapData", "mapPassthrough", "filter", "runIf", "fromState", "toState", "args", "renameKeys", "debug"] + def unexpectedKeys = workflowArgs.keySet() - expectedKeys + assert unexpectedKeys.isEmpty() : "Error in module '$key': unexpected arguments to the '.run()' function: '${unexpectedKeys.join("', '")}'" + + // check whether directives exists and apply defaults + assert workflowArgs.containsKey("directives") : "Error in module '$key': directives is a required argument" + assert workflowArgs["directives"] instanceof Map : "Error in module '$key': Expected process argument 'directives' to be a Map. Found: class ${workflowArgs['directives'].getClass()}" + workflowArgs["directives"] = processDirectives(defaultWfArgs.directives + workflowArgs["directives"]) + + // check whether directives exists and apply defaults + assert workflowArgs.containsKey("auto") : "Error in module '$key': auto is a required argument" + assert workflowArgs["auto"] instanceof Map : "Error in module '$key': Expected process argument 'auto' to be a Map. Found: class ${workflowArgs['auto'].getClass()}" + workflowArgs["auto"] = processAuto(defaultWfArgs.auto + workflowArgs["auto"]) + + // auto define publish, if so desired + if (workflowArgs.auto.publish == true && (workflowArgs.directives.publishDir != null ? workflowArgs.directives.publishDir : [:]).isEmpty()) { + // can't assert at this level thanks to the no_publish profile + // assert params.containsKey("publishDir") || params.containsKey("publish_dir") : + // "Error in module '${workflowArgs['key']}': if auto.publish is true, params.publish_dir needs to be defined.\n" + + // " Example: params.publish_dir = \"./output/\"" + def publishDir = getPublishDir() + + if (publishDir != null) { + workflowArgs.directives.publishDir = [[ + path: publishDir, + saveAs: "{ it.startsWith('.') ? null : it }", // don't publish hidden files, by default + mode: "copy" + ]] + } + } + + // auto define transcript, if so desired + if (workflowArgs.auto.transcript == true) { + // can't assert at this level thanks to the no_publish profile + // assert params.containsKey("transcriptsDir") || params.containsKey("transcripts_dir") || params.containsKey("publishDir") || params.containsKey("publish_dir") : + // "Error in module '${workflowArgs['key']}': if auto.transcript is true, either params.transcripts_dir or params.publish_dir needs to be defined.\n" + + // " Example: params.transcripts_dir = \"./transcripts/\"" + def transcriptsDir = + params.containsKey("transcripts_dir") ? params.transcripts_dir : + params.containsKey("transcriptsDir") ? params.transcriptsDir : + params.containsKey("publish_dir") ? params.publish_dir + "/_transcripts" : + params.containsKey("publishDir") ? params.publishDir + "/_transcripts" : + null + if (transcriptsDir != null) { + def timestamp = nextflow.Nextflow.getSession().getWorkflowMetadata().start.format('yyyy-MM-dd_HH-mm-ss') + def transcriptsPublishDir = [ + path: "$transcriptsDir/$timestamp/\${task.process.replaceAll(':', '-')}/\${id}/", + saveAs: "{ it.startsWith('.') ? it.replaceAll('^.', '') : null }", + mode: "copy" + ] + def publishDirs = workflowArgs.directives.publishDir != null ? workflowArgs.directives.publishDir : null ? workflowArgs.directives.publishDir : [] + workflowArgs.directives.publishDir = publishDirs + transcriptsPublishDir + } + } + + // if this is a stubrun, remove certain directives? + if (workflow.stubRun) { + workflowArgs.directives.keySet().removeAll(["publishDir", "cpus", "memory", "label"]) + } + + for (nam in ["map", "mapId", "mapData", "mapPassthrough", "filter", "runIf"]) { + if (workflowArgs.containsKey(nam) && workflowArgs[nam]) { + assert workflowArgs[nam] instanceof Closure : "Error in module '$key': Expected process argument '$nam' to be null or a Closure. Found: class ${workflowArgs[nam].getClass()}" + } + } + + // TODO: should functions like 'map', 'mapId', 'mapData', 'mapPassthrough' be deprecated as well? + for (nam in ["map", "mapData", "mapPassthrough", "renameKeys"]) { + if (workflowArgs.containsKey(nam) && workflowArgs[nam] != null) { + log.warn "module '$key': workflow argument '$nam' is deprecated and will be removed in Viash 0.9.0. Please use 'fromState' and 'toState' instead." + } + } + + // check fromState + workflowArgs["fromState"] = _processFromState(workflowArgs.get("fromState"), key, meta.config) + + // check toState + workflowArgs["toState"] = _processToState(workflowArgs.get("toState"), key, meta.config) + + // return output + return workflowArgs +} + +def _processFromState(fromState, key_, config_) { + assert fromState == null || fromState instanceof Closure || fromState instanceof Map || fromState instanceof List : + "Error in module '$key_': Expected process argument 'fromState' to be null, a Closure, a Map, or a List. Found: class ${fromState.getClass()}" + if (fromState == null) { + return null + } + + // if fromState is a List, convert to map + if (fromState instanceof List) { + // check whether fromstate is a list[string] + assert fromState.every{it instanceof CharSequence} : "Error in module '$key_': fromState is a List, but not all elements are Strings" + fromState = fromState.collectEntries{[it, it]} + } + + // if fromState is a map, convert to closure + if (fromState instanceof Map) { + // check whether fromstate is a map[string, string] + assert fromState.values().every{it instanceof CharSequence} : "Error in module '$key_': fromState is a Map, but not all values are Strings" + assert fromState.keySet().every{it instanceof CharSequence} : "Error in module '$key_': fromState is a Map, but not all keys are Strings" + def fromStateMap = fromState.clone() + def requiredInputNames = meta.config.allArguments.findAll{it.required && it.direction == "Input"}.collect{it.plainName} + // turn the map into a closure to be used later on + fromState = { it -> + def state = it[1] + assert state instanceof Map : "Error in module '$key_': the state is not a Map" + def data = fromStateMap.collectMany{newkey, origkey -> + // check whether newkey corresponds to a required argument + if (state.containsKey(origkey)) { + [[newkey, state[origkey]]] + } else if (!requiredInputNames.contains(origkey)) { + [] + } else { + throw new Exception("Error in module '$key_': fromState key '$origkey' not found in current state") + } + }.collectEntries() + data + } + } + + return fromState +} + +def _processToState(toState, key_, config_) { + if (toState == null) { + toState = { tup -> tup[1] } + } + + // toState should be a closure, map[string, string], or list[string] + assert toState instanceof Closure || toState instanceof Map || toState instanceof List : + "Error in module '$key_': Expected process argument 'toState' to be a Closure, a Map, or a List. Found: class ${toState.getClass()}" + + // if toState is a List, convert to map + if (toState instanceof List) { + // check whether toState is a list[string] + assert toState.every{it instanceof CharSequence} : "Error in module '$key_': toState is a List, but not all elements are Strings" + toState = toState.collectEntries{[it, it]} + } + + // if toState is a map, convert to closure + if (toState instanceof Map) { + // check whether toState is a map[string, string] + assert toState.values().every{it instanceof CharSequence} : "Error in module '$key_': toState is a Map, but not all values are Strings" + assert toState.keySet().every{it instanceof CharSequence} : "Error in module '$key_': toState is a Map, but not all keys are Strings" + def toStateMap = toState.clone() + def requiredOutputNames = config_.allArguments.findAll{it.required && it.direction == "Output"}.collect{it.plainName} + // turn the map into a closure to be used later on + toState = { it -> + def output = it[1] + def state = it[2] + assert output instanceof Map : "Error in module '$key_': the output is not a Map" + assert state instanceof Map : "Error in module '$key_': the state is not a Map" + def extraEntries = toStateMap.collectMany{newkey, origkey -> + // check whether newkey corresponds to a required argument + if (output.containsKey(origkey)) { + [[newkey, output[origkey]]] + } else if (!requiredOutputNames.contains(origkey)) { + [] + } else { + throw new Exception("Error in module '$key_': toState key '$origkey' not found in current output") + } + }.collectEntries() + state + extraEntries + } + } + + return toState +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/workflowFactory/workflowFactory.nf' +def _debug(workflowArgs, debugKey) { + if (workflowArgs.debug) { + view { "process '${workflowArgs.key}' $debugKey tuple: $it" } + } else { + map { it } + } +} + +// depends on: innerWorkflowFactory +def workflowFactory(Map args, Map defaultWfArgs, Map meta) { + def workflowArgs = processWorkflowArgs(args, defaultWfArgs, meta) + def key_ = workflowArgs["key"] + + workflow workflowInstance { + take: input_ + + main: + def chModified = input_ + | checkUniqueIds([:]) + | _debug(workflowArgs, "input") + | map { tuple -> + tuple = deepClone(tuple) + + if (workflowArgs.map) { + tuple = workflowArgs.map(tuple) + } + if (workflowArgs.mapId) { + tuple[0] = workflowArgs.mapId(tuple[0]) + } + if (workflowArgs.mapData) { + tuple[1] = workflowArgs.mapData(tuple[1]) + } + if (workflowArgs.mapPassthrough) { + tuple = tuple.take(2) + workflowArgs.mapPassthrough(tuple.drop(2)) + } + + // check tuple + assert tuple instanceof List : + "Error in module '${key_}': element in channel should be a tuple [id, data, ...otherargs...]\n" + + " Example: [\"id\", [input: file('foo.txt'), arg: 10]].\n" + + " Expected class: List. Found: tuple.getClass() is ${tuple.getClass()}" + assert tuple.size() >= 2 : + "Error in module '${key_}': expected length of tuple in input channel to be two or greater.\n" + + " Example: [\"id\", [input: file('foo.txt'), arg: 10]].\n" + + " Found: tuple.size() == ${tuple.size()}" + + // check id field + if (tuple[0] instanceof GString) { + tuple[0] = tuple[0].toString() + } + assert tuple[0] instanceof CharSequence : + "Error in module '${key_}': first element of tuple in channel should be a String\n" + + " Example: [\"id\", [input: file('foo.txt'), arg: 10]].\n" + + " Found: ${tuple[0]}" + + // match file to input file + if (workflowArgs.auto.simplifyInput && (tuple[1] instanceof Path || tuple[1] instanceof List)) { + def inputFiles = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "input" } + + assert inputFiles.size() == 1 : + "Error in module '${key_}' id '${tuple[0]}'.\n" + + " Anonymous file inputs are only allowed when the process has exactly one file input.\n" + + " Expected: inputFiles.size() == 1. Found: inputFiles.size() is ${inputFiles.size()}" + + tuple[1] = [[ inputFiles[0].plainName, tuple[1] ]].collectEntries() + } + + // check data field + assert tuple[1] instanceof Map : + "Error in module '${key_}' id '${tuple[0]}': second element of tuple in channel should be a Map\n" + + " Example: [\"id\", [input: file('foo.txt'), arg: 10]].\n" + + " Expected class: Map. Found: tuple[1].getClass() is ${tuple[1].getClass()}" + + // rename keys of data field in tuple + if (workflowArgs.renameKeys) { + assert workflowArgs.renameKeys instanceof Map : + "Error renaming data keys in module '${key_}' id '${tuple[0]}'.\n" + + " Example: renameKeys: ['new_key': 'old_key'].\n" + + " Expected class: Map. Found: renameKeys.getClass() is ${workflowArgs.renameKeys.getClass()}" + assert tuple[1] instanceof Map : + "Error renaming data keys in module '${key_}' id '${tuple[0]}'.\n" + + " Expected class: Map. Found: tuple[1].getClass() is ${tuple[1].getClass()}" + + // TODO: allow renameKeys to be a function? + workflowArgs.renameKeys.each { newKey, oldKey -> + assert newKey instanceof CharSequence : + "Error renaming data keys in module '${key_}' id '${tuple[0]}'.\n" + + " Example: renameKeys: ['new_key': 'old_key'].\n" + + " Expected class of newKey: String. Found: newKey.getClass() is ${newKey.getClass()}" + assert oldKey instanceof CharSequence : + "Error renaming data keys in module '${key_}' id '${tuple[0]}'.\n" + + " Example: renameKeys: ['new_key': 'old_key'].\n" + + " Expected class of oldKey: String. Found: oldKey.getClass() is ${oldKey.getClass()}" + assert tuple[1].containsKey(oldKey) : + "Error renaming data keys in module '${key}' id '${tuple[0]}'.\n" + + " Key '$oldKey' is missing in the data map. tuple[1].keySet() is '${tuple[1].keySet()}'" + tuple[1].put(newKey, tuple[1][oldKey]) + } + tuple[1].keySet().removeAll(workflowArgs.renameKeys.collect{ newKey, oldKey -> oldKey }) + } + tuple + } + + + def chRun = null + def chPassthrough = null + if (workflowArgs.runIf) { + def runIfBranch = chModified.branch{ tup -> + run: workflowArgs.runIf(tup[0], tup[1]) + passthrough: true + } + chRun = runIfBranch.run + chPassthrough = runIfBranch.passthrough + } else { + chRun = chModified + chPassthrough = Channel.empty() + } + + def chRunFiltered = workflowArgs.filter ? + chRun | filter{workflowArgs.filter(it)} : + chRun + + def chArgs = workflowArgs.fromState ? + chRunFiltered | map{ + def new_data = workflowArgs.fromState(it.take(2)) + [it[0], new_data] + } : + chRunFiltered | map {tup -> tup.take(2)} + + // fill in defaults + def chArgsWithDefaults = chArgs + | map { tuple -> + def id_ = tuple[0] + def data_ = tuple[1] + + // TODO: could move fromState to here + + // fetch default params from functionality + def defaultArgs = meta.config.allArguments + .findAll { it.containsKey("default") } + .collectEntries { [ it.plainName, it.default ] } + + // fetch overrides in params + def paramArgs = meta.config.allArguments + .findAll { par -> + def argKey = key_ + "__" + par.plainName + params.containsKey(argKey) + } + .collectEntries { [ it.plainName, params[key_ + "__" + it.plainName] ] } + + // fetch overrides in data + def dataArgs = meta.config.allArguments + .findAll { data_.containsKey(it.plainName) } + .collectEntries { [ it.plainName, data_[it.plainName] ] } + + // combine params + def combinedArgs = defaultArgs + paramArgs + workflowArgs.args + dataArgs + + // remove arguments with explicit null values + combinedArgs + .removeAll{_, val -> val == null || val == "viash_no_value" || val == "force_null"} + + combinedArgs = _processInputValues(combinedArgs, meta.config, id_, key_) + + [id_, combinedArgs] + tuple.drop(2) + } + + // TODO: move some of the _meta.join_id wrangling to the safeJoin() function. + def chInitialOutput = chArgsWithDefaults + | _debug(workflowArgs, "processed") + // run workflow + | innerWorkflowFactory(workflowArgs) + // check output tuple + | map { id_, output_ -> + + // see if output map contains metadata + def meta_ = + output_ instanceof Map && output_.containsKey("_meta") ? + output_["_meta"] : + [:] + def join_id = meta_.join_id ?: id_ + + // remove metadata + output_ = output_.findAll{k, v -> k != "_meta"} + + // check value types + output_ = _processOutputValues(output_, meta.config, id_, key_) + + // simplify output if need be + if (workflowArgs.auto.simplifyOutput && output_.size() == 1) { + output_ = output_.values()[0] + } + + [join_id, id_, output_] + } + // | view{"chInitialOutput: ${it.take(3)}"} + + // join the output [prev_id, new_id, output] with the previous state [prev_id, state, ...] + def chNewState = safeJoin(chInitialOutput, chRunFiltered, key_) + // input tuple format: [join_id, id, output, prev_state, ...] + // output tuple format: [join_id, id, new_state, ...] + | map{ tup -> + def new_state = workflowArgs.toState(tup.drop(1).take(3)) + tup.take(2) + [new_state] + tup.drop(4) + } + + if (workflowArgs.auto.publish == "state") { + def chPublish = chNewState + // input tuple format: [join_id, id, new_state, ...] + // output tuple format: [join_id, id, new_state] + | map{ tup -> + tup.take(3) + } + + safeJoin(chPublish, chArgsWithDefaults, key_) + // input tuple format: [join_id, id, new_state, orig_state, ...] + // output tuple format: [id, new_state, orig_state] + | map { tup -> + tup.drop(1).take(3) + } + | publishStatesByConfig(key: key_, config: meta.config) + } + + // remove join_id and meta + chReturn = chNewState + | map { tup -> + // input tuple format: [join_id, id, new_state, ...] + // output tuple format: [id, new_state, ...] + tup.drop(1) + } + | _debug(workflowArgs, "output") + | concat(chPassthrough) + + emit: chReturn + } + + def wf = workflowInstance.cloneWithName(key_) + + // add factory function + wf.metaClass.run = { runArgs -> + workflowFactory(runArgs, workflowArgs, meta) + } + // add config to module for later introspection + wf.metaClass.config = meta.config + + return wf +} + +nextflow.enable.dsl=2 + +// START COMPONENT-SPECIFIC CODE + +// create meta object +meta = [ + "resources_dir": moduleDir.toRealPath().normalize(), + "config": processConfig(readJsonBlob('''{ + "name" : "check_eset", + "namespace" : "integration_test_components/htrnaseq", + "version" : "main", + "argument_groups" : [ + { + "name" : "Inputs", + "arguments" : [ + { + "type" : "file", + "name" : "--eset", + "description" : "Path to an ExpressionSet object.", + "example" : [ + "eset.rds" + ], + "must_exist" : true, + "create_parent" : true, + "required" : true, + "direction" : "input", + "multiple" : false, + "multiple_sep" : ";" + }, + { + "type" : "file", + "name" : "--star_output", + "must_exist" : true, + "create_parent" : true, + "required" : true, + "direction" : "input", + "multiple" : true, + "multiple_sep" : ";" + } + ] + } + ], + "resources" : [ + { + "type" : "r_script", + "path" : "script.R", + "is_executable" : true + }, + { + "type" : "file", + "path" : "/src/config/labels.config", + "dest" : "nextflow_labels.config" + } + ], + "description" : "This component test the ExpressionSet object as output by the main pipeline.", + "status" : "enabled", + "requirements" : { + "commands" : [ + "ps" + ] + }, + "license" : "MIT", + "links" : { + "repository" : "https://github.com/viash-hub/htrnaseq" + }, + "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" : "bioconductor/bioconductor_docker:3.19", + "target_registry" : "images.viash-hub.com", + "target_tag" : "main", + "namespace_separator" : "/", + "setup" : [ + { + "type" : "r", + "cran" : [ + "bit64" + ], + "bioc" : [ + "Biobase" + ], + "bioc_force_install" : false + } + ] + }, + { + "type" : "native", + "id" : "native" + } + ], + "build_info" : { + "config" : "/workdir/root/repo/src/integration_test_components/htrnaseq/check_eset/config.vsh.yaml", + "runner" : "nextflow", + "engine" : "docker|native", + "output" : "target/nextflow/integration_test_components/htrnaseq/check_eset", + "viash_version" : "0.9.0", + "git_commit" : "65dd41d8b1b4a307735c72320c96c0880c75f17f", + "git_remote" : "https://x-access-token:ghs_McZDF0yobnnHmOEb2Q4JaaB3pzr9mz1VbIOs@github.com/viash-hub/htrnaseq" + }, + "package_config" : { + "name" : "htrnaseq", + "version" : "main", + "description" : "High-throughput pipeline [WIP]\n", + "info" : { + "test_resources" : [ + { + "path" : "gs://viash-hub-test-data/htrnaseq/v1/", + "dest" : "resources_test" + } + ] + }, + "viash_version" : "0.9.0", + "source" : "src", + "target" : "target", + "config_mods" : [ + ".requirements.commands := ['ps']\n.runners[.type == 'nextflow'].config.script := 'includeConfig(\\"nextflow_labels.config\\")'\n.resources += {path: '/src/config/labels.config', dest: 'nextflow_labels.config'}\n", + ".engines += { type: \\"native\\" }", + ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'", + ".engines[.type == 'docker'].target_tag := 'main'" + ], + "keywords" : [ + "bioinformatics", + "sequence", + "high-throughput", + "mapping", + "counting", + "pipeline" + ], + "license" : "MIT", + "organization" : "vsh", + "links" : { + "repository" : "https://github.com/viash-hub/htrnaseq", + "issue_tracker" : "https://github.com/viash-hub/htrnaseq/issues" + } + } +}''')) +] + +// resolve dependencies dependencies (if any) + + +// inner workflow +// inner workflow hook +def innerWorkflowFactory(args) { + def rawScript = '''set -e +tempscript=".viash_script.sh" +cat > "$tempscript" << VIASHMAIN +## VIASH START +# The following code has been auto-generated by Viash. +# treat warnings as errors +.viash_orig_warn <- options(warn = 2) + +par <- list( + "eset" = $( if [ ! -z ${VIASH_PAR_ESET+x} ]; then echo -n "'"; echo -n "$VIASH_PAR_ESET" | sed "s#['\\\\]#\\\\\\\\&#g"; echo "'"; else echo NULL; fi ), + "star_output" = $( if [ ! -z ${VIASH_PAR_STAR_OUTPUT+x} ]; then echo -n "strsplit('"; echo -n "$VIASH_PAR_STAR_OUTPUT" | sed "s#['\\\\]#\\\\\\\\&#g"; echo "', split = ';')[[1]]"; else echo NULL; fi ) +) +meta <- list( + "name" = $( if [ ! -z ${VIASH_META_NAME+x} ]; then echo -n "'"; echo -n "$VIASH_META_NAME" | sed "s#['\\\\]#\\\\\\\\&#g"; echo "'"; else echo NULL; fi ), + "functionality_name" = $( if [ ! -z ${VIASH_META_FUNCTIONALITY_NAME+x} ]; then echo -n "'"; echo -n "$VIASH_META_FUNCTIONALITY_NAME" | sed "s#['\\\\]#\\\\\\\\&#g"; echo "'"; else echo NULL; fi ), + "resources_dir" = $( if [ ! -z ${VIASH_META_RESOURCES_DIR+x} ]; then echo -n "'"; echo -n "$VIASH_META_RESOURCES_DIR" | sed "s#['\\\\]#\\\\\\\\&#g"; echo "'"; else echo NULL; fi ), + "executable" = $( if [ ! -z ${VIASH_META_EXECUTABLE+x} ]; then echo -n "'"; echo -n "$VIASH_META_EXECUTABLE" | sed "s#['\\\\]#\\\\\\\\&#g"; echo "'"; else echo NULL; fi ), + "config" = $( if [ ! -z ${VIASH_META_CONFIG+x} ]; then echo -n "'"; echo -n "$VIASH_META_CONFIG" | sed "s#['\\\\]#\\\\\\\\&#g"; echo "'"; else echo NULL; fi ), + "temp_dir" = $( if [ ! -z ${VIASH_META_TEMP_DIR+x} ]; then echo -n "'"; echo -n "$VIASH_META_TEMP_DIR" | sed "s#['\\\\]#\\\\\\\\&#g"; echo "'"; else echo NULL; fi ), + "cpus" = $( if [ ! -z ${VIASH_META_CPUS+x} ]; then echo -n "as.integer('"; echo -n "$VIASH_META_CPUS" | sed "s#['\\\\]#\\\\\\\\&#g"; echo "')"; else echo NULL; fi ), + "memory_b" = $( if [ ! -z ${VIASH_META_MEMORY_B+x} ]; then echo -n "bit64::as.integer64('"; echo -n "$VIASH_META_MEMORY_B" | sed "s#['\\\\]#\\\\\\\\&#g"; echo "')"; else echo NULL; fi ), + "memory_kb" = $( if [ ! -z ${VIASH_META_MEMORY_KB+x} ]; then echo -n "bit64::as.integer64('"; echo -n "$VIASH_META_MEMORY_KB" | sed "s#['\\\\]#\\\\\\\\&#g"; echo "')"; else echo NULL; fi ), + "memory_mb" = $( if [ ! -z ${VIASH_META_MEMORY_MB+x} ]; then echo -n "bit64::as.integer64('"; echo -n "$VIASH_META_MEMORY_MB" | sed "s#['\\\\]#\\\\\\\\&#g"; echo "')"; else echo NULL; fi ), + "memory_gb" = $( if [ ! -z ${VIASH_META_MEMORY_GB+x} ]; then echo -n "bit64::as.integer64('"; echo -n "$VIASH_META_MEMORY_GB" | sed "s#['\\\\]#\\\\\\\\&#g"; echo "')"; else echo NULL; fi ), + "memory_tb" = $( if [ ! -z ${VIASH_META_MEMORY_TB+x} ]; then echo -n "bit64::as.integer64('"; echo -n "$VIASH_META_MEMORY_TB" | sed "s#['\\\\]#\\\\\\\\&#g"; echo "')"; else echo NULL; fi ), + "memory_pb" = $( if [ ! -z ${VIASH_META_MEMORY_PB+x} ]; then echo -n "bit64::as.integer64('"; echo -n "$VIASH_META_MEMORY_PB" | sed "s#['\\\\]#\\\\\\\\&#g"; echo "')"; else echo NULL; fi ), + "memory_kib" = $( if [ ! -z ${VIASH_META_MEMORY_KIB+x} ]; then echo -n "bit64::as.integer64('"; echo -n "$VIASH_META_MEMORY_KIB" | sed "s#['\\\\]#\\\\\\\\&#g"; echo "')"; else echo NULL; fi ), + "memory_mib" = $( if [ ! -z ${VIASH_META_MEMORY_MIB+x} ]; then echo -n "bit64::as.integer64('"; echo -n "$VIASH_META_MEMORY_MIB" | sed "s#['\\\\]#\\\\\\\\&#g"; echo "')"; else echo NULL; fi ), + "memory_gib" = $( if [ ! -z ${VIASH_META_MEMORY_GIB+x} ]; then echo -n "bit64::as.integer64('"; echo -n "$VIASH_META_MEMORY_GIB" | sed "s#['\\\\]#\\\\\\\\&#g"; echo "')"; else echo NULL; fi ), + "memory_tib" = $( if [ ! -z ${VIASH_META_MEMORY_TIB+x} ]; then echo -n "bit64::as.integer64('"; echo -n "$VIASH_META_MEMORY_TIB" | sed "s#['\\\\]#\\\\\\\\&#g"; echo "')"; else echo NULL; fi ), + "memory_pib" = $( if [ ! -z ${VIASH_META_MEMORY_PIB+x} ]; then echo -n "bit64::as.integer64('"; echo -n "$VIASH_META_MEMORY_PIB" | sed "s#['\\\\]#\\\\\\\\&#g"; echo "')"; else echo NULL; fi ) +) +dep <- list( + +) + + +# restore original warn setting +options(.viash_orig_warn) +rm(.viash_orig_warn) + +## VIASH END +library(Biobase) +library(testthat) +library(Matrix) + +sample_1_result <- readRDS(par\\$eset) +expected_sample_names <- c( + "sample_one_AACAAGGTAC", "sample_one_AACAATCAGG", "sample_one_AACACCTAGT", + "sample_one_AACAGGCAAT", "sample_one_AACATGGAGA", "sample_one_AACATTACCG", + "sample_one_AACCAGCCAG", "sample_one_AACCAGTTGA", "sample_one_AACCGCGACT", + "sample_one_AACCGGAAGG", "sample_one_AACCGGCGTA", "sample_one_AACCTAGTCC", + "sample_one_AACCTCATAG", "sample_one_AACGTAAGCT", "sample_one_AACTCTACAC", + "sample_one_AACTGTGTCA", "sample_one_AAGACGGATT", "sample_one_AAGATCGGCG", + "sample_one_AAGATGTCCA", "sample_one_AAGCATATGG", "sample_one_AAGCGATGTT", + "sample_one_AAGCGTTCAG", "sample_one_AAGCTCACCT", "sample_one_AAGGCATGCG", + "sample_one_AAGGTCTGGA", "sample_one_AAGTTAGCGC", "sample_one_AAGTTCCTTG", + "sample_one_AATACCGGTA", "sample_one_AATAGCCACA", "sample_one_AATCACGCGA", + "sample_one_AATCCATCTG", "sample_one_AATCCGCTCC", "sample_one_AATCCTACCA", + "sample_one_AATCGTCCGC", "sample_one_AATGAACACG", "sample_one_AATGACCTTC", + "sample_one_AATGAGAGCA", "sample_one_AATGTCAGTG", "sample_one_AATTAGGCCG", + "sample_one_AATTGCGATG", "sample_one_ACAACAGTCG", "sample_one_ACAACCATAC", + "sample_one_ACAACGGAGC", "sample_one_ACAAGCGCGA", "sample_one_ACACAATCTC", + "sample_one_ACACAGTGAA", "sample_one_ACACCGAATT", "sample_one_ACACGCAGTA", + "sample_one_ACACGGTCCT", "sample_one_ACACTTGCTG", "sample_one_ACAGTGCCAA", + "sample_one_ACATGTGTGC", "sample_one_ACCAGGACCA", "sample_one_ACCATAACAC", + "sample_one_ACCGAACCGT", "sample_one_ACCGAGAGTC", "sample_one_ACCGGTACAG", + "sample_one_ACCGTACTTC", "sample_one_ACCTCCGACA", "sample_one_ACCTCTCTCC", + "sample_one_ACCTGTCCGA", "sample_one_ACCTTATGTG", "sample_one_ACGAATGACA", + "sample_one_ACGCCTCAAC", "sample_one_ACGCCTTCGT", "sample_one_ACGCTGGATA", + "sample_one_ACGGTCCGTT", "sample_one_ACGTAGGCAC", "sample_one_ACGTGCTGAT", + "sample_one_ACTCCAAGCC", "sample_one_ACTGGCGCAT", "sample_one_ACTGGCTTCC", + "sample_one_ACTTAACTGC", "sample_one_ACTTCATCAC", "sample_one_ACTTCGTTGA", + "sample_one_ACTTCTCCTG", "sample_one_ACTTGAGGAA", "sample_one_ACTTGTAAGG", + "sample_one_AGAACCACGG", "sample_one_AGAAGCAATC", "sample_one_AGACCGTTAT", + "sample_one_AGACTAGCAT", "sample_one_AGAGATGCAG", "sample_one_AGAGCTTACA", + "sample_one_AGAGTGTAAC", "sample_one_AGAGTTCTGC", "sample_one_AGATAGTGCT", + "sample_one_AGCAATGCGC", "sample_one_AGCATGTCAT", "sample_one_AGCCACTAGC", + "sample_one_AGCCAGAATA", "sample_one_AGCCAGCTCT", "sample_one_AGCGATAACG", + "sample_one_AGCGTACAAT", "sample_one_AGCTATTCCA", "sample_one_AGCTCCTCAG", + "sample_one_AGGAGGCATA", "sample_one_AGGCGTCTGT", "sample_one_AGTAACTCAC", + "sample_one_AGTAAGCGTT", "sample_one_AGTCTGTACG", "sample_one_AGTGCAATGT", + "sample_one_ATAAGGTGCA", "sample_one_ATACACGACA", "sample_one_ATAGGCCATT", + "sample_one_ATATCCGCAT", "sample_one_ATCAGCACTT", "sample_one_ATCAGCGAGG", + "sample_one_ATCCAATACG", "sample_one_ATCCGCTGTG", "sample_one_ATCCGTCCAT", + "sample_one_ATCGACGGCT", "sample_one_ATCGCGATTA", "sample_one_ATCGGTAGGC", + "sample_one_ATCTAAGGAG", "sample_one_ATGACGGTAA", "sample_one_ATGACTCAGT", + "sample_one_ATGCACCGGA", "sample_one_ATGCGGACTG", "sample_one_ATGCTTCCTA", + "sample_one_ATGGACCAAC", "sample_one_ATGGTCTTAG", "sample_one_ATGGTGAGCG", + "sample_one_ATGTGGAAGC", "sample_one_ATTATCGGAC", "sample_one_ATTCGGAACA", + "sample_one_CAACAATCCA", "sample_one_CAAGAAGCAT", "sample_one_CAAGATGAGG", + "sample_one_CAAGCCAACG", "sample_one_CAAGTGGATC", "sample_one_CACAGTTCAT", + "sample_one_CACGAGTCTG", "sample_one_CACGCTCCAA", "sample_one_CACTGAGCAC", + "sample_one_CAGATCAATG", "sample_one_CAGTGCTCTT", "sample_one_CAGTTAAGCA", + "sample_one_CATAGCTATC", "sample_one_CATCACCACC", "sample_one_CATGTACGCC", + "sample_one_CATTACACTG", "sample_one_CATTCGACGA", "sample_one_CCAACTATGG", + "sample_one_CCAAGGAGTT", "sample_one_CCAATTGTTC", "sample_one_CCACAAGTGC", + "sample_one_CCAGCTTAGT", "sample_one_CCATAACTTG", "sample_one_CCATACTGAC", + "sample_one_CCATAGATCA", "sample_one_CCATGTGCTT", "sample_one_CCATTCAGCG", + "sample_one_CCGAACAAGC", "sample_one_CCGAACCTAA", "sample_one_CCGAAGACCT", + "sample_one_CCGAATAGTG", "sample_one_CCGACTTCTC", "sample_one_CCGATCCACT", + "sample_one_CCGATGATAC", "sample_one_CCGCGTTATG", "sample_one_CCGCTAGCTT", + "sample_one_CCGGAGTATC", "sample_one_CCGGCCAATT", "sample_one_CCGGTCTCTA", + "sample_one_CCGTACGATG", "sample_one_CCGTCAGAAC", "sample_one_CCTAGACACG", + "sample_one_CCTAGTTGAG", "sample_one_CCTATTCTGT", "sample_one_CCTCAACCGA", + "sample_one_CCTCCATAAG", "sample_one_CCTGATGCCA", "sample_one_CCTGCAATAC", + "sample_one_CCTTGTATTC", "sample_one_CGAGATCTCT", "sample_one_CGAGGAACAA", + "sample_one_CGATAACCGC", "sample_one_CGATCCTGTG", "sample_one_CGCCAACCAT", + "sample_one_CGCCAGTGTT", "sample_one_CGCCTTGTAC", "sample_one_CGCGGATTCA", + "sample_one_CGCTTAAGGC", "sample_one_CGCTTACTAA", "sample_one_CGCTTCTTGG", + "sample_one_CGGAAGCTGT", "sample_one_CGGAATACAC", "sample_one_CGGAGATTGG", + "sample_one_CGGAGCTCAA", "sample_one_CGGATCGGTA", "sample_one_CGGATTCTAG", + "sample_one_CGGCAACTTA", "sample_one_CGGCTCATCA", "sample_one_CGGTCGTATT", + "sample_one_CGGTGACATC", "sample_one_CGTAACGGAT", "sample_one_CGTAAGATTC", + "sample_one_CGTACTGTAA", "sample_one_CGTAGAAGAC", "sample_one_CGTCCTAGGA", + "sample_one_CGTCGGCAAT", "sample_one_CGTGAGTTAT", "sample_one_CGTGTCAAGC", + "sample_one_CTAACTTCAG", "sample_one_CTAATAGCGT", "sample_one_CTACACCAGG", + "sample_one_CTAGCACAAT", "sample_one_CTATGAACGG", "sample_one_CTCAAGGACC", + "sample_one_CTCACCTGTC", "sample_one_CTCCTATTGT", "sample_one_CTCGCAACGT", + "sample_one_CTCGTGCCTA", "sample_one_CTGGATTGAC", "sample_one_CTGTAGTCAG", + "sample_one_CTGTCGCTTC", "sample_one_CTGTCTGTGT", "sample_one_CTTCATATCG", + "sample_one_CTTGCTGACG", "sample_one_GAAGGATTAG", "sample_one_GAATCGAGCC", + "sample_one_GACCATCTAA", "sample_one_GACGACCACA", "sample_one_GAGACATCTT", + "sample_one_GAGCGAGTCA", "sample_one_GAGTAGACCA", "sample_one_GATACGCTTA", + "sample_one_GATAGACTGT", "sample_one_GATAGAGGCG", "sample_one_GATAGGTCAA", + "sample_one_GATATCAGGA", "sample_one_GATCTCATTC", "sample_one_GATCTGGTCG", + "sample_one_GATGAGTGAC", "sample_one_GATGGATACA", "sample_one_GATGTGACAG", + "sample_one_GATTAAGTCC", "sample_one_GATTGCACGC", "sample_one_GCAAGCGAAT", + "sample_one_GCAATGTAAG", "sample_one_GCACACTATA", "sample_one_GCACTCGGAA", + "sample_one_GCACTGCGTT", "sample_one_GCACTTAATC", "sample_one_GCAGGAGATG", + "sample_one_GCAGTACTGG", "sample_one_GCATATGAGT", "sample_one_GCATCCGATC", + "sample_one_GCCAAGTACA", "sample_one_GCCACGATTC", "sample_one_GCCATAGGTT", + "sample_one_GCCATATCGA", "sample_one_GCCGTCAATA", "sample_one_GCCTGGACAT", + "sample_one_GCGTAATTAC", "sample_one_GCTATTATCC", "sample_one_GCTCAGTAAT", + "sample_one_GCTGCTTATA", "sample_one_GGAATAAGCA", "sample_one_GGACGATGCT", + "sample_one_GGCATCGTGA", "sample_one_GGCATTATTG", "sample_one_GGCCGAGATT", + "sample_one_GGCGCTATAA", "sample_one_GGCGTTAAGT", "sample_one_GGCTATTGAT", + "sample_one_GGCTGCTACT", "sample_one_GGTAATGTGT", "sample_one_GGTGGTTGGA", + "sample_one_GGTGTTCACC", "sample_one_GGTTAGATCT", "sample_one_GGTTATGGCG", + "sample_one_GGTTCACTGG", "sample_one_GGTTGTGCAA", "sample_one_GTAACCAGTA", + "sample_one_GTAACCTTGG", "sample_one_GTAAGAACCT", "sample_one_GTAAGGCTCC", + "sample_one_GTAATCCACG", "sample_one_GTATTGTGGA", "sample_one_GTCCGCATCA", + "sample_one_GTCCTTCGGT", "sample_one_GTCGCTCTCT", "sample_one_GTCGGTGACA", + "sample_one_GTCTCGAGTG", "sample_one_GTCTCTTAAG", "sample_one_GTCTTCCGAG", + "sample_one_GTGACTATAC", "sample_one_GTGGTTAATG", "sample_one_GTGTGCCTGT", + "sample_one_GTGTGTGTCC", "sample_one_GTTCATTGCC", "sample_one_GTTCCGGTGA", + "sample_one_GTTCGTCGAA", "sample_one_GTTGAATTGG", "sample_one_GTTGATCCGC", + "sample_one_GTTGTATGCT", "sample_one_TAACCGTAGC", "sample_one_TAACGTCGAT", + "sample_one_TAAGGTACGG", "sample_one_TACGGACATA", "sample_one_TACTACCGCC", + "sample_one_TACTGTCAAG", "sample_one_TAGCGAACGC", "sample_one_TAGCGCCAAC", + "sample_one_TAGGACGCCT", "sample_one_TAGGTTGCAA", "sample_one_TAGTAGTCTC", + "sample_one_TAGTCCGCTG", "sample_one_TAGTGGAACT", "sample_one_TATCATGCAG", + "sample_one_TATCGTTACG", "sample_one_TCAAGTGCAG", "sample_one_TCACAGATAC", + "sample_one_TCACCGCCTA", "sample_one_TCACGCCACT", "sample_one_TCACGTTGGC", + "sample_one_TCATTGTCCA", "sample_one_TCCACACTAG", "sample_one_TCCACGGTCA", + "sample_one_TCCACTCGCT", "sample_one_TCCGACTAAC", "sample_one_TCCGTTATCT", + "sample_one_TCCTAAGAGA", "sample_one_TCCTCTAGTA", "sample_one_TCGAAGCATT", + "sample_one_TCGAGAGAGC", "sample_one_TCGCACTTGA", "sample_one_TCGCCTACTG", + "sample_one_TCGCGTAGCA", "sample_one_TCGGCGTTAA", "sample_one_TCTACATCCG", + "sample_one_TCTCCACATT", "sample_one_TCTCTCCTAT", "sample_one_TCTTGCTCGG", + "sample_one_TGAACTAACC", "sample_one_TGAAGAAGGT", "sample_one_TGAGCGTTCC", + "sample_one_TGAGTACGTA", "sample_one_TGGAATGGAG", "sample_one_TGTCATTCGC", + "sample_one_TGTGCTTCAG", "sample_one_TGTTCAGGAT", "sample_one_TTACACACGT", + "sample_one_TTACTGTGAC", "sample_one_TTATAGGAGG", "sample_one_TTATCGCGTT", + "sample_one_TTATGCCGCG", "sample_one_TTCACGGAAG", "sample_one_TTCAGGAGTA", + "sample_one_TTCCATCGAG", "sample_one_TTCGAGTGAT", "sample_one_TTCTGTACCT", + "sample_one_TTGGCAATTC", "sample_one_TTGGCTCCAC", "sample_one_TTGGTAACAG", + "sample_one_TTGGTCAGTA", "sample_one_TTGTCGGCCA", "sample_one_TTGTGTTCGA" +) +stopifnot(identical(sampleNames(sample_1_result), expected_sample_names)) + +expected_var_labels <- c( + "WellBC", + "NumberOfMTReads", + "pctMT", + "NumberOfERCCReads", + "pctERCC", + "NumberOfChromReads", + "pctChrom", + "NumberOfInputReads", + "NumberOfMappedReads", + "PctMappedReads", + "NumberOfReadsMappedToMultipleLoci", + "PectOfReadsMappedToMultipleLoci", + "NumberOfReadsMappedToTooManyLoci", + "PectOfReadsMappedToTooManyLoci", + "NumberOfReadsUnmappedTooManyMismatches", + "PectOfReadsUnmappedTooManyMismatches", + "NumberOfReadsUnmappedTooShort", + "PectOfReadsUnmappedTooShort", + "NumberOfReadsUnmappedOther", + "PectOfReadsUnmappedOther", + "ReadsWithValidBarcodes", + "SequencingSaturation", + "Q30BasesInCB.UMI", + "ReadsMappedToTranscriptome.Unique.MultipeGenes", + "EstimatedNumberOfCells", + "FractionOfReadsInCells", + "MeanReadsPerCell", + "NumberOfUMIs", + "NumberOfGenes", + "NumberOfCountedReads", + "PoolName" +) +stopifnot(identical(varLabels(sample_1_result), expected_var_labels)) + +read_mm <- function(mapping_dir) { + market_matrix_file <- file.path(mapping_dir, "Solo.out", + "Gene", "raw", "matrix.mtx") + result <- readMM(market_matrix_file) + feature_file <- file.path(mapping_dir, "Solo.out", + "Gene", "raw", "features.tsv") + features <- read.table(feature_file, sep = "\\\\t", header = FALSE, + col.names = c("ID", "Name", "Type"))\\$ID + rownames(result) <- gsub("\\\\\\\\.\\\\\\\\d+\\$", "", features) + barcodes_file <- file.path(mapping_dir, + "Solo.out", "Gene", "raw", "barcodes.tsv") + if (!file.exists(barcodes_file)) { + stop(paste0("Expected the 'Solo.out/Gene/raw' directory at ", + mapping_dir, " to contain a 'barcodes.tsv' file.")) + } + barcodes <- readLines(barcodes_file) + if (length(barcodes) != 1) { + stop(paste0("A single STAR Solo folder should only have ", + "mapped one (1) barcode, but found '", + length(barcodes), "'for mapping directory ", mapping_dir)) + } + colnames(result) <- paste0("sample_one_", barcodes) + return(result) +} +expected_matrices <- lapply(par\\$star_output, read_mm) +expected_matrix <- as.matrix(do.call(cbind, expected_matrices)) +result_counts <- exprs(sample_1_result) +stopifnot(length(setdiff(colnames(expected_matrix), + colnames(exprs(sample_1_result)))) == 0) +stopifnot(length(setdiff(rownames(expected_matrix), + rownames(exprs(sample_1_result)))) == 0) +expected_matrix_sorted <- expected_matrix[, colnames(exprs(sample_1_result))] +stopifnot(identical(exprs(sample_1_result), expected_matrix_sorted)) +VIASHMAIN +Rscript "$tempscript" +''' + + return vdsl3WorkflowFactory(args, meta, rawScript) +} + + + +/** + * Generate a workflow for VDSL3 modules. + * + * This function is called by the workflowFactory() function. + * + * Input channel: [id, input_map] + * Output channel: [id, output_map] + * + * Internally, this workflow will convert the input channel + * to a format which the Nextflow module will be able to handle. + */ +def vdsl3WorkflowFactory(Map args, Map meta, String rawScript) { + def key = args["key"] + def processObj = null + + workflow processWf { + take: input_ + main: + + if (processObj == null) { + processObj = _vdsl3ProcessFactory(args, meta, rawScript) + } + + output_ = input_ + | map { tuple -> + def id = tuple[0] + def data_ = tuple[1] + + if (workflow.stubRun) { + // add id if missing + data_ = [id: 'stub'] + data_ + } + + // process input files separately + def inputPaths = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "input" } + .collect { par -> + def val = data_.containsKey(par.plainName) ? data_[par.plainName] : [] + def inputFiles = [] + if (val == null) { + inputFiles = [] + } else if (val instanceof List) { + inputFiles = val + } else if (val instanceof Path) { + inputFiles = [ val ] + } else { + inputFiles = [] + } + if (!workflow.stubRun) { + // throw error when an input file doesn't exist + inputFiles.each{ file -> + assert file.exists() : + "Error in module '${key}' id '${id}' argument '${par.plainName}'.\n" + + " Required input file does not exist.\n" + + " Path: '$file'.\n" + + " Expected input file to exist" + } + } + inputFiles + } + + // remove input files + def argsExclInputFiles = meta.config.allArguments + .findAll { (it.type != "file" || it.direction != "input") && data_.containsKey(it.plainName) } + .collectEntries { par -> + def parName = par.plainName + def val = data_[parName] + if (par.multiple && val instanceof Collection) { + val = val.join(par.multiple_sep) + } + if (par.direction == "output" && par.type == "file") { + val = val + .replaceAll('\\$id', id) + .replaceAll('\\$\\{id\\}', id) + .replaceAll('\\$key', key) + .replaceAll('\\$\\{key\\}', key) + } + [parName, val] + } + + [ id ] + inputPaths + [ argsExclInputFiles, meta.resources_dir ] + } + | processObj + | map { output -> + def outputFiles = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "output" } + .indexed() + .collectEntries{ index, par -> + def out = output[index + 1] + // strip dummy '.exitcode' file from output (see nextflow-io/nextflow#2678) + if (!out instanceof List || out.size() <= 1) { + if (par.multiple) { + out = [] + } else { + assert !par.required : + "Error in module '${key}' id '${output[0]}' argument '${par.plainName}'.\n" + + " Required output file is missing" + out = null + } + } else if (out.size() == 2 && !par.multiple) { + out = out[1] + } else { + out = out.drop(1) + } + [ par.plainName, out ] + } + + // drop null outputs + outputFiles.removeAll{it.value == null} + + [ output[0], outputFiles ] + } + emit: output_ + } + + return processWf +} + +// depends on: session? +def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) { + // autodetect process key + def wfKey = workflowArgs["key"] + def procKeyPrefix = "${wfKey}_process" + def scriptMeta = nextflow.script.ScriptMeta.current() + def existing = scriptMeta.getProcessNames().findAll{it.startsWith(procKeyPrefix)} + def numbers = existing.collect{it.replace(procKeyPrefix, "0").toInteger()} + def newNumber = (numbers + [-1]).max() + 1 + + def procKey = newNumber == 0 ? procKeyPrefix : "$procKeyPrefix$newNumber" + + if (newNumber > 0) { + log.warn "Key for module '${wfKey}' is duplicated.\n", + "If you run a component multiple times in the same workflow,\n" + + "it's recommended you set a unique key for every call,\n" + + "for example: ${wfKey}.run(key: \"foo\")." + } + + // subset directives and convert to list of tuples + def drctv = workflowArgs.directives + + // TODO: unit test the two commands below + // convert publish array into tags + def valueToStr = { val -> + // ignore closures + if (val instanceof CharSequence) { + if (!val.matches('^[{].*[}]$')) { + '"' + val + '"' + } else { + val + } + } else if (val instanceof List) { + "[" + val.collect{valueToStr(it)}.join(", ") + "]" + } else if (val instanceof Map) { + "[" + val.collect{k, v -> k + ": " + valueToStr(v)}.join(", ") + "]" + } else { + val.inspect() + } + } + + // multiple entries allowed: label, publishdir + def drctvStrs = drctv.collect { key, value -> + if (key in ["label", "publishDir"]) { + value.collect{ val -> + if (val instanceof Map) { + "\n$key " + val.collect{ k, v -> k + ": " + valueToStr(v) }.join(", ") + } else if (val == null) { + "" + } else { + "\n$key " + valueToStr(val) + } + }.join() + } else if (value instanceof Map) { + "\n$key " + value.collect{ k, v -> k + ": " + valueToStr(v) }.join(", ") + } else { + "\n$key " + valueToStr(value) + } + }.join() + + def inputPaths = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "input" } + .collect { ', path(viash_par_' + it.plainName + ', stageAs: "_viash_par/' + it.plainName + '_?/*")' } + .join() + + def outputPaths = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "output" } + .collect { par -> + // insert dummy into every output (see nextflow-io/nextflow#2678) + if (!par.multiple) { + ', path{[".exitcode", args.' + par.plainName + ']}' + } else { + ', path{[".exitcode"] + args.' + par.plainName + '}' + } + } + .join() + + // TODO: move this functionality somewhere else? + if (workflowArgs.auto.transcript) { + outputPaths = outputPaths + ', path{[".exitcode", ".command*"]}' + } else { + outputPaths = outputPaths + ', path{[".exitcode"]}' + } + + // create dirs for output files (based on BashWrapper.createParentFiles) + def createParentStr = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "output" && it.create_parent } + .collect { par -> + def contents = "args[\"${par.plainName}\"] instanceof List ? args[\"${par.plainName}\"].join('\" \"') : args[\"${par.plainName}\"]" + "\${ args.containsKey(\"${par.plainName}\") ? \"mkdir_parent '\" + escapeText(${contents}) + \"'\" : \"\" }" + } + .join("\n") + + // construct inputFileExports + def inputFileExports = meta.config.allArguments + .findAll { it.type == "file" && it.direction.toLowerCase() == "input" } + .collect { par -> + def contents = "viash_par_${par.plainName} instanceof List ? viash_par_${par.plainName}.join(\"${par.multiple_sep}\") : viash_par_${par.plainName}" + "\n\${viash_par_${par.plainName}.empty ? \"\" : \"export VIASH_PAR_${par.plainName.toUpperCase()}='\" + escapeText(${contents}) + \"'\"}" + } + + // NOTE: if using docker, use /tmp instead of tmpDir! + def tmpDir = java.nio.file.Paths.get( + System.getenv('NXF_TEMP') ?: + System.getenv('VIASH_TEMP') ?: + System.getenv('VIASH_TMPDIR') ?: + System.getenv('VIASH_TEMPDIR') ?: + System.getenv('VIASH_TMP') ?: + System.getenv('TEMP') ?: + System.getenv('TMPDIR') ?: + System.getenv('TEMPDIR') ?: + System.getenv('TMP') ?: + '/tmp' + ).toAbsolutePath() + + // construct stub + def stub = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "output" } + .collect { par -> + "\${ args.containsKey(\"${par.plainName}\") ? \"touch2 \\\"\" + (args[\"${par.plainName}\"] instanceof String ? args[\"${par.plainName}\"].replace(\"_*\", \"_0\") : args[\"${par.plainName}\"].join('\" \"')) + \"\\\"\" : \"\" }" + } + .join("\n") + + // escape script + def escapedScript = rawScript.replace('\\', '\\\\').replace('$', '\\$').replace('"""', '\\"\\"\\"') + + // publishdir assert + def assertStr = (workflowArgs.auto.publish == true) || workflowArgs.auto.transcript ? + """\nassert task.publishDir.size() > 0: "if auto.publish is true, params.publish_dir needs to be defined.\\n Example: --publish_dir './output/'" """ : + "" + + // generate process string + def procStr = + """nextflow.enable.dsl=2 + | + |def escapeText = { s -> s.toString().replaceAll("'", "'\\\"'\\\"'") } + |process $procKey {$drctvStrs + |input: + | tuple val(id)$inputPaths, val(args), path(resourcesDir, stageAs: ".viash_meta_resources") + |output: + | tuple val("\$id")$outputPaths, optional: true + |stub: + |\"\"\" + |touch2() { mkdir -p "\\\$(dirname "\\\$1")" && touch "\\\$1" ; } + |$stub + |\"\"\" + |script:$assertStr + |def parInject = args + | .findAll{key, value -> value != null} + | .collect{key, value -> "export VIASH_PAR_\${key.toUpperCase()}='\${escapeText(value)}'"} + | .join("\\n") + |\"\"\" + |# meta exports + |export VIASH_META_RESOURCES_DIR="\${resourcesDir}" + |export VIASH_META_TEMP_DIR="${['docker', 'podman', 'charliecloud'].any{ it == workflow.containerEngine } ? '/tmp' : tmpDir}" + |export VIASH_META_NAME="${meta.config.name}" + |# export VIASH_META_EXECUTABLE="\\\$VIASH_META_RESOURCES_DIR/\\\$VIASH_META_NAME" + |export VIASH_META_CONFIG="\\\$VIASH_META_RESOURCES_DIR/.config.vsh.yaml" + |\${task.cpus ? "export VIASH_META_CPUS=\$task.cpus" : "" } + |\${task.memory?.bytes != null ? "export VIASH_META_MEMORY_B=\$task.memory.bytes" : "" } + |if [ ! -z \\\${VIASH_META_MEMORY_B+x} ]; then + | export VIASH_META_MEMORY_KB=\\\$(( (\\\$VIASH_META_MEMORY_B+999) / 1000 )) + | export VIASH_META_MEMORY_MB=\\\$(( (\\\$VIASH_META_MEMORY_KB+999) / 1000 )) + | export VIASH_META_MEMORY_GB=\\\$(( (\\\$VIASH_META_MEMORY_MB+999) / 1000 )) + | export VIASH_META_MEMORY_TB=\\\$(( (\\\$VIASH_META_MEMORY_GB+999) / 1000 )) + | export VIASH_META_MEMORY_PB=\\\$(( (\\\$VIASH_META_MEMORY_TB+999) / 1000 )) + | export VIASH_META_MEMORY_KIB=\\\$(( (\\\$VIASH_META_MEMORY_B+1023) / 1024 )) + | export VIASH_META_MEMORY_MIB=\\\$(( (\\\$VIASH_META_MEMORY_KIB+1023) / 1024 )) + | export VIASH_META_MEMORY_GIB=\\\$(( (\\\$VIASH_META_MEMORY_MIB+1023) / 1024 )) + | export VIASH_META_MEMORY_TIB=\\\$(( (\\\$VIASH_META_MEMORY_GIB+1023) / 1024 )) + | export VIASH_META_MEMORY_PIB=\\\$(( (\\\$VIASH_META_MEMORY_TIB+1023) / 1024 )) + |fi + | + |# meta synonyms + |export VIASH_TEMP="\\\$VIASH_META_TEMP_DIR" + |export TEMP_DIR="\\\$VIASH_META_TEMP_DIR" + | + |# create output dirs if need be + |function mkdir_parent { + | for file in "\\\$@"; do + | mkdir -p "\\\$(dirname "\\\$file")" + | done + |} + |$createParentStr + | + |# argument exports${inputFileExports.join()} + |\$parInject + | + |# process script + |${escapedScript} + |\"\"\" + |} + |""".stripMargin() + + // TODO: print on debug + // if (workflowArgs.debug == true) { + // println("######################\n$procStr\n######################") + // } + + // write process to temp file + def tempFile = java.nio.file.Files.createTempFile("viash-process-${procKey}-", ".nf") + addShutdownHook { java.nio.file.Files.deleteIfExists(tempFile) } + tempFile.text = procStr + + // create process from temp file + def binding = new nextflow.script.ScriptBinding([:]) + def session = nextflow.Nextflow.getSession() + def parser = new nextflow.script.ScriptParser(session) + .setModule(true) + .setBinding(binding) + def moduleScript = parser.runScript(tempFile) + .getScript() + + // register module in meta + def module = new nextflow.script.IncludeDef.Module(name: procKey) + scriptMeta.addModule(moduleScript, module.name, module.alias) + + // retrieve and return process from meta + return scriptMeta.getProcess(procKey) +} + +// defaults +meta["defaults"] = [ + // key to be used to trace the process and determine output names + key: null, + + // fixed arguments to be passed to script + args: [:], + + // default directives + directives: readJsonBlob('''{ + "container" : { + "registry" : "images.viash-hub.com", + "image" : "vsh/htrnaseq/integration_test_components/htrnaseq/check_eset", + "tag" : "main" + }, + "tag" : "$id" +}'''), + + // auto settings + auto: readJsonBlob('''{ + "simplifyInput" : true, + "simplifyOutput" : false, + "transcript" : false, + "publish" : false +}'''), + + // Apply a map over the incoming tuple + // Example: `{ tup -> [ tup[0], [input: tup[1].output] ] + tup.drop(2) }` + map: null, + + // Apply a map over the ID element of a tuple (i.e. the first element) + // Example: `{ id -> id + "_foo" }` + mapId: null, + + // Apply a map over the data element of a tuple (i.e. the second element) + // Example: `{ data -> [ input: data.output ] }` + mapData: null, + + // Apply a map over the passthrough elements of a tuple (i.e. the tuple excl. the first two elements) + // Example: `{ pt -> pt.drop(1) }` + mapPassthrough: null, + + // Filter the channel + // Example: `{ tup -> tup[0] == "foo" }` + filter: null, + + // Choose whether or not to run the component on the tuple if the condition is true. + // Otherwise, the tuple will be passed through. + // Example: `{ tup -> tup[0] != "skip_this" }` + runIf: null, + + // Rename keys in the data field of the tuple (i.e. the second element) + // Will likely be deprecated in favour of `fromState`. + // Example: `[ "new_key": "old_key" ]` + renameKeys: null, + + // Fetch data from the state and pass it to the module without altering the current state. + // + // `fromState` should be `null`, `List[String]`, `Map[String, String]` or a function. + // + // - If it is `null`, the state will be passed to the module as is. + // - If it is a `List[String]`, the data will be the values of the state at the given keys. + // - If it is a `Map[String, String]`, the data will be the values of the state at the given keys, with the keys renamed according to the map. + // - If it is a function, the tuple (`[id, state]`) in the channel will be passed to the function, and the result will be used as the data. + // + // Example: `{ id, state -> [input: state.fastq_file] }` + // Default: `null` + fromState: null, + + // Determine how the state should be updated after the module has been run. + // + // `toState` should be `null`, `List[String]`, `Map[String, String]` or a function. + // + // - If it is `null`, the state will be replaced with the output of the module. + // - If it is a `List[String]`, the state will be updated with the values of the data at the given keys. + // - If it is a `Map[String, String]`, the state will be updated with the values of the data at the given keys, with the keys renamed according to the map. + // - If it is a function, a tuple (`[id, output, state]`) will be passed to the function, and the result will be used as the new state. + // + // Example: `{ id, output, state -> state + [counts: state.output] }` + // Default: `{ id, output, state -> output }` + toState: null, + + // Whether or not to print debug messages + // Default: `false` + debug: false +] + +// initialise default workflow +meta["workflow"] = workflowFactory([key: meta.config.name], meta.defaults, meta) + +// add workflow to environment +nextflow.script.ScriptMeta.current().addDefinition(meta.workflow) + +// anonymous workflow for running this module as a standalone +workflow { + // add id argument if it's not already in the config + // TODO: deep copy + def newConfig = deepClone(meta.config) + def newParams = deepClone(params) + + def argsContainsId = newConfig.allArguments.any{it.plainName == "id"} + if (!argsContainsId) { + def idArg = [ + 'name': '--id', + 'required': false, + 'type': 'string', + 'description': 'A unique id for every entry.', + 'multiple': false + ] + newConfig.arguments.add(0, idArg) + newConfig = processConfig(newConfig) + } + if (!newParams.containsKey("id")) { + newParams.id = "run" + } + + helpMessage(newConfig) + + channelFromParams(newParams, newConfig) + // make sure id is not in the state if id is not in the args + | map {id, state -> + if (!argsContainsId) { + [id, state.findAll{k, v -> k != "id"}] + } else { + [id, state] + } + } + | meta.workflow.run( + auto: [ publish: "state" ] + ) +} + +// END COMPONENT-SPECIFIC CODE diff --git a/target/nextflow/integration_test_components/htrnaseq/check_eset/nextflow.config b/target/nextflow/integration_test_components/htrnaseq/check_eset/nextflow.config new file mode 100644 index 00000000..be8d457d --- /dev/null +++ b/target/nextflow/integration_test_components/htrnaseq/check_eset/nextflow.config @@ -0,0 +1,125 @@ +manifest { + name = 'integration_test_components/htrnaseq/check_eset' + mainScript = 'main.nf' + nextflowVersion = '!>=20.12.1-edge' + version = 'main' + description = 'This component test the ExpressionSet object as output by the main pipeline.' +} + +process.container = 'nextflow/bash:latest' + +// detect tempdir +tempDir = java.nio.file.Paths.get( + System.getenv('NXF_TEMP') ?: + System.getenv('VIASH_TEMP') ?: + System.getenv('TEMPDIR') ?: + System.getenv('TMPDIR') ?: + '/tmp' +).toAbsolutePath() + +profiles { + no_publish { + process { + withName: '.*' { + publishDir = [ + enabled: false + ] + } + } + } + mount_temp { + docker.temp = tempDir + podman.temp = tempDir + charliecloud.temp = tempDir + } + docker { + docker.enabled = true + // docker.userEmulation = true + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + singularity { + singularity.enabled = true + singularity.autoMounts = true + docker.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + podman { + podman.enabled = true + docker.enabled = false + singularity.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + shifter { + shifter.enabled = true + docker.enabled = false + singularity.enabled = false + podman.enabled = false + charliecloud.enabled = false + } + charliecloud { + charliecloud.enabled = true + docker.enabled = false + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + } +} + +process{ + withLabel: mem1gb { memory = 1000000000.B } + withLabel: mem2gb { memory = 2000000000.B } + withLabel: mem5gb { memory = 5000000000.B } + withLabel: mem10gb { memory = 10000000000.B } + withLabel: mem20gb { memory = 20000000000.B } + withLabel: mem50gb { memory = 50000000000.B } + withLabel: mem100gb { memory = 100000000000.B } + withLabel: mem200gb { memory = 200000000000.B } + withLabel: mem500gb { memory = 500000000000.B } + withLabel: mem1tb { memory = 1000000000000.B } + withLabel: mem2tb { memory = 2000000000000.B } + withLabel: mem5tb { memory = 5000000000000.B } + withLabel: mem10tb { memory = 10000000000000.B } + withLabel: mem20tb { memory = 20000000000000.B } + withLabel: mem50tb { memory = 50000000000000.B } + withLabel: mem100tb { memory = 100000000000000.B } + withLabel: mem200tb { memory = 200000000000000.B } + withLabel: mem500tb { memory = 500000000000000.B } + withLabel: mem1gib { memory = 1073741824.B } + withLabel: mem2gib { memory = 2147483648.B } + withLabel: mem4gib { memory = 4294967296.B } + withLabel: mem8gib { memory = 8589934592.B } + withLabel: mem16gib { memory = 17179869184.B } + withLabel: mem32gib { memory = 34359738368.B } + withLabel: mem64gib { memory = 68719476736.B } + withLabel: mem128gib { memory = 137438953472.B } + withLabel: mem256gib { memory = 274877906944.B } + withLabel: mem512gib { memory = 549755813888.B } + withLabel: mem1tib { memory = 1099511627776.B } + withLabel: mem2tib { memory = 2199023255552.B } + withLabel: mem4tib { memory = 4398046511104.B } + withLabel: mem8tib { memory = 8796093022208.B } + withLabel: mem16tib { memory = 17592186044416.B } + withLabel: mem32tib { memory = 35184372088832.B } + withLabel: mem64tib { memory = 70368744177664.B } + withLabel: mem128tib { memory = 140737488355328.B } + withLabel: mem256tib { memory = 281474976710656.B } + withLabel: mem512tib { memory = 562949953421312.B } + withLabel: cpu1 { cpus = 1 } + withLabel: cpu2 { cpus = 2 } + withLabel: cpu5 { cpus = 5 } + withLabel: cpu10 { cpus = 10 } + withLabel: cpu20 { cpus = 20 } + withLabel: cpu50 { cpus = 50 } + withLabel: cpu100 { cpus = 100 } + withLabel: cpu200 { cpus = 200 } + withLabel: cpu500 { cpus = 500 } + withLabel: cpu1000 { cpus = 1000 } +} + +includeConfig("nextflow_labels.config") diff --git a/target/nextflow/integration_test_components/htrnaseq/check_eset/nextflow_labels.config b/target/nextflow/integration_test_components/htrnaseq/check_eset/nextflow_labels.config new file mode 100644 index 00000000..66f5e21c --- /dev/null +++ b/target/nextflow/integration_test_components/htrnaseq/check_eset/nextflow_labels.config @@ -0,0 +1,105 @@ +executor { + $k8s { + submitRateLimit = '10sec' + pollInterval = '1 sec' + } +} + +process { + container = 'nextflow/bash:latest' + + // default resources + memory = { 8.Gb * task.attempt } + cpus = 8 + maxForks = 36 + + // Retry for exit codes that have something to do with memory issues + errorStrategy = { task.exitStatus in 137..140 ? 'retry' : 'terminate' } + maxRetries = 3 + maxMemory = 192.GB + + // Resource labels + withLabel: verylowcpu { cpus = 2 } + withLabel: lowcpu { cpus = 8 } + withLabel: midcpu { cpus = 16 } + withLabel: highcpu { cpus = 32 } + + withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } } + withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } } + withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } } + withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } } + +} + +profiles { + // detect tempdir + tempDir = java.nio.file.Paths.get( + System.getenv('NXF_TEMP') ?: + System.getenv('VIASH_TEMP') ?: + System.getenv('TEMPDIR') ?: + System.getenv('TMPDIR') ?: + '/tmp' + ).toAbsolutePath() + + mount_temp { + docker.temp = tempDir + podman.temp = tempDir + charliecloud.temp = tempDir + } + + no_publish { + process { + withName: '.*' { + publishDir = [ + enabled: false + ] + } + } + } + + docker { + docker.fixOwnership = true + docker.enabled = true + // docker.userEmulation = true + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + + local { + // This config is for local processing. + process { + maxMemory = 25.GB + withLabel: verylowcpu { cpus = 2 } + withLabel: lowcpu { cpus = 4 } + withLabel: midcpu { cpus = 6 } + withLabel: highcpu { cpus = 12 } + + withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } } + withLabel: midmem { memory = { get_memory( 12.GB * task.attempt ) } } + withLabel: highmem { memory = { get_memory( 20.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) + } + } diff --git a/target/nextflow/integration_test_components/htrnaseq/check_eset/nextflow_schema.json b/target/nextflow/integration_test_components/htrnaseq/check_eset/nextflow_schema.json new file mode 100644 index 00000000..419acacf --- /dev/null +++ b/target/nextflow/integration_test_components/htrnaseq/check_eset/nextflow_schema.json @@ -0,0 +1,80 @@ +{ +"$schema": "http://json-schema.org/draft-07/schema", +"title": "check_eset", +"description": "This component test the ExpressionSet object as output by the main pipeline.", +"type": "object", +"definitions": { + + + + "inputs" : { + "title": "Inputs", + "type": "object", + "description": "No description", + "properties": { + + + "eset": { + "type": + "string", + "description": "Type: `file`, required, example: `eset.rds`. Path to an ExpressionSet object", + "help_text": "Type: `file`, required, example: `eset.rds`. Path to an ExpressionSet object." + + } + + + , + "star_output": { + "type": + "string", + "description": "Type: List of `file`, required, multiple_sep: `\";\"`. ", + "help_text": "Type: List of `file`, required, multiple_sep: `\";\"`. " + + } + + +} +}, + + + "nextflow input-output arguments" : { + "title": "Nextflow input-output arguments", + "type": "object", + "description": "Input/output parameters for Nextflow itself. Please note that both publishDir and publish_dir are supported but at least one has to be configured.", + "properties": { + + + "publish_dir": { + "type": + "string", + "description": "Type: `string`, required, example: `output/`. Path to an output directory", + "help_text": "Type: `string`, required, example: `output/`. Path to an output directory." + + } + + + , + "param_list": { + "type": + "string", + "description": "Type: `string`, example: `my_params.yaml`. Allows inputting multiple parameter sets to initialise a Nextflow channel", + "help_text": "Type: `string`, example: `my_params.yaml`. Allows inputting multiple parameter sets to initialise a Nextflow channel. A `param_list` can either be a list of maps, a csv file, a json file, a yaml file, or simply a yaml blob.\n\n* A list of maps (as-is) where the keys of each map corresponds to the arguments of the pipeline. Example: in a `nextflow.config` file: `param_list: [ [\u0027id\u0027: \u0027foo\u0027, \u0027input\u0027: \u0027foo.txt\u0027], [\u0027id\u0027: \u0027bar\u0027, \u0027input\u0027: \u0027bar.txt\u0027] ]`.\n* A csv file should have column names which correspond to the different arguments of this pipeline. Example: `--param_list data.csv` with columns `id,input`.\n* A json or a yaml file should be a list of maps, each of which has keys corresponding to the arguments of the pipeline. Example: `--param_list data.json` with contents `[ {\u0027id\u0027: \u0027foo\u0027, \u0027input\u0027: \u0027foo.txt\u0027}, {\u0027id\u0027: \u0027bar\u0027, \u0027input\u0027: \u0027bar.txt\u0027} ]`.\n* A yaml blob can also be passed directly as a string. Example: `--param_list \"[ {\u0027id\u0027: \u0027foo\u0027, \u0027input\u0027: \u0027foo.txt\u0027}, {\u0027id\u0027: \u0027bar\u0027, \u0027input\u0027: \u0027bar.txt\u0027} ]\"`.\n\nWhen passing a csv, json or yaml file, relative path names are relativized to the location of the parameter file. No relativation is performed when `param_list` is a list of maps (as-is) or a yaml blob.", + "hidden": true + + } + + +} +} +}, +"allOf": [ + + { + "$ref": "#/definitions/inputs" + }, + + { + "$ref": "#/definitions/nextflow input-output arguments" + } +] +} diff --git a/target/nextflow/parallel_map/.config.vsh.yaml b/target/nextflow/parallel_map/.config.vsh.yaml index 45922621..59270876 100644 --- a/target/nextflow/parallel_map/.config.vsh.yaml +++ b/target/nextflow/parallel_map/.config.vsh.yaml @@ -110,6 +110,8 @@ resources: - type: "bash_script" path: "script.sh" is_executable: true +- type: "file" + path: "STAR" - type: "file" path: "nextflow_labels.config" dest: "nextflow_labels.config" @@ -205,26 +207,25 @@ engines: - type: "apt" packages: - "procps" - - "gzip" - - "bzip2" - - "parallel" - "wget" + - "automake" + - "make" + - "gcc" + - "g++" - "zlib1g-dev" - - "unzip" - - "xxd" + - "parallel" - "file" interactive: false - type: "docker" - run: - - "wget -O $STAR_TARGET $STAR_SOURCE && \\\n unzip $STAR_TARGET -d /tmp && \\\ - \n mv /tmp/STAR_$STAR_VERSION/Linux_x86_64_static/STAR /usr/local/bin/$STAR_BINARY\ - \ && \\\n chmod +x /usr/local/bin/$STAR_BINARY && \\\n rm $STAR_TARGET &&\ - \ rm -rf /tmp/STAR_$STAR_VERSION\n" + copy: + - "STAR /usr/local/bin/$STAR_BINARY" + build_args: + - "STAR_V=2.7.6a" env: - - "STAR_VERSION \"2.7.11b\"" - - "STAR_SOURCE \"https://github.com/alexdobin/STAR/releases/download/$STAR_VERSION/STAR_$STAR_VERSION.zip\"" - - "STAR_TARGET \"/tmp/star.zip\"" - - "STAR_BINARY \"STAR\"" + - "STAR_SOURCE=\"https://github.com/alexdobin/STAR/archive/refs/tags/$STAR_V.tar.gz\"" + - "STAR_TARGET=\"/app/star-$STAR_V.tar.gz\"" + - "STAR_INSTALL_DIR=\"/app/STAR-$STAR_V\"" + - "STAR_BINARY=STAR" entrypoint: [] cmd: null - type: "native" @@ -235,15 +236,18 @@ build_info: engine: "docker|native" output: "target/nextflow/parallel_map" executable: "target/nextflow/parallel_map/main.nf" - viash_version: "0.9.0-RC7" - git_commit: "cf9797232db1306bfd5696287928cababe317d99" - git_remote: "https://x-access-token:ghs_KjB7pWu8DQM3iFulLu7RI06qnt5K8S1A0eaE@github.com/viash-hub/htrnaseq" + viash_version: "0.9.0" + git_commit: "65dd41d8b1b4a307735c72320c96c0880c75f17f" + git_remote: "https://x-access-token:ghs_McZDF0yobnnHmOEb2Q4JaaB3pzr9mz1VbIOs@github.com/viash-hub/htrnaseq" package_config: name: "htrnaseq" version: "main" description: "High-throughput pipeline [WIP]\n" - info: null - viash_version: "0.9.0-RC7" + info: + test_resources: + - path: "gs://viash-hub-test-data/htrnaseq/v1/" + dest: "resources_test" + viash_version: "0.9.0" source: "src" target: "target" config_mods: diff --git a/target/nextflow/parallel_map/STAR b/target/nextflow/parallel_map/STAR new file mode 100755 index 0000000000000000000000000000000000000000..331a838d12c5f93aa5078a876f7ac8ff356ab016 GIT binary patch literal 2791592 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
nmG~aI#%FL(veque%_ciNjzD@9azDrIG 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�eaj^n~P>^gPp<>+dQDN>ry)oK=N{ocPX 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

qAb>6Y$QD0VG)aNi#mPbhZQC>*2Z-Q3Lj;D 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

QmU(Ks|8E;N`^aT%` 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%0D7%33Or1YPpR?uJU!k-3 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

O9YPphFE__fRBmw&cl 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

;6~9`6aaROK9Vl(8jOI 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%0A_o4fP474~)HHb2n7Ig=AKR9fp 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

RT4=ntg>JfDrjyRNic8~_UUmp=Jaq* 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


Hn4=!}tu?AAiO1{^wvf7tVwFKkHlI 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 E3&apGrT_o{ literal 0 HcmV?d00001 diff --git a/target/nextflow/parallel_map/main.nf b/target/nextflow/parallel_map/main.nf index ddbcb10d..ffc031e8 100644 --- a/target/nextflow/parallel_map/main.nf +++ b/target/nextflow/parallel_map/main.nf @@ -1,8 +1,8 @@ // parallel_map main // -// This wrapper script is auto-generated by viash 0.9.0-RC7 and is thus a -// derivative work thereof. This software comes with ABSOLUTELY NO WARRANTY from -// Data Intuitive. +// This wrapper script is auto-generated by viash 0.9.0 and is thus a derivative +// work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data +// Intuitive. // // The component may contain files which fall under a different license. The // authors of this component should specify the license in the header of such @@ -1728,7 +1728,9 @@ def publishStates(Map args) { def yamlFilename = yamlTemplate_ .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) // TODO: do the pathnames in state_ match up with the outputFilenames_? @@ -1799,7 +1801,9 @@ def publishStatesByConfig(Map args) { def yamlTemplate = params.containsKey("output_state") ? params.output_state : '$id.$key.state.yaml' def yamlFilename = yamlTemplate .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) def yamlDir = java.nio.file.Paths.get(yamlFilename).getParent() // the processed state is a list of [key, value, inputPath, outputFilename] tuples, where @@ -1841,7 +1845,9 @@ def publishStatesByConfig(Map args) { // instantiate the template def filename = filenameTemplate .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) if (par.multiple) { // if the parameter is multiple: true, the filename // should contain a wildcard '*' that is replaced with @@ -2937,6 +2943,10 @@ meta = [ "path" : "script.sh", "is_executable" : true }, + { + "type" : "file", + "path" : "STAR" + }, { "type" : "file", "path" : "/src/config/labels.config", @@ -3051,27 +3061,30 @@ meta = [ "type" : "apt", "packages" : [ "procps", - "gzip", - "bzip2", - "parallel", "wget", + "automake", + "make", + "gcc", + "g++", "zlib1g-dev", - "unzip", - "xxd", + "parallel", "file" ], "interactive" : false }, { "type" : "docker", - "run" : [ - "wget -O $STAR_TARGET $STAR_SOURCE && \\\\\n unzip $STAR_TARGET -d /tmp && \\\\\n mv /tmp/STAR_$STAR_VERSION/Linux_x86_64_static/STAR /usr/local/bin/$STAR_BINARY && \\\\\n chmod +x /usr/local/bin/$STAR_BINARY && \\\\\n rm $STAR_TARGET && rm -rf /tmp/STAR_$STAR_VERSION\n" + "copy" : [ + "STAR /usr/local/bin/$STAR_BINARY" + ], + "build_args" : [ + "STAR_V=2.7.6a" ], "env" : [ - "STAR_VERSION \\"2.7.11b\\"", - "STAR_SOURCE \\"https://github.com/alexdobin/STAR/releases/download/$STAR_VERSION/STAR_$STAR_VERSION.zip\\"", - "STAR_TARGET \\"/tmp/star.zip\\"", - "STAR_BINARY \\"STAR\\"" + "STAR_SOURCE=\\"https://github.com/alexdobin/STAR/archive/refs/tags/$STAR_V.tar.gz\\"", + "STAR_TARGET=\\"/app/star-$STAR_V.tar.gz\\"", + "STAR_INSTALL_DIR=\\"/app/STAR-$STAR_V\\"", + "STAR_BINARY=STAR" ] } ] @@ -3086,15 +3099,23 @@ meta = [ "runner" : "nextflow", "engine" : "docker|native", "output" : "target/nextflow/parallel_map", - "viash_version" : "0.9.0-RC7", - "git_commit" : "cf9797232db1306bfd5696287928cababe317d99", - "git_remote" : "https://x-access-token:ghs_KjB7pWu8DQM3iFulLu7RI06qnt5K8S1A0eaE@github.com/viash-hub/htrnaseq" + "viash_version" : "0.9.0", + "git_commit" : "65dd41d8b1b4a307735c72320c96c0880c75f17f", + "git_remote" : "https://x-access-token:ghs_McZDF0yobnnHmOEb2Q4JaaB3pzr9mz1VbIOs@github.com/viash-hub/htrnaseq" }, "package_config" : { "name" : "htrnaseq", "version" : "main", "description" : "High-throughput pipeline [WIP]\n", - "viash_version" : "0.9.0-RC7", + "info" : { + "test_resources" : [ + { + "path" : "gs://viash-hub-test-data/htrnaseq/v1/", + "dest" : "resources_test" + } + ] + }, + "viash_version" : "0.9.0", "source" : "src", "target" : "target", "config_mods" : [ @@ -3516,7 +3537,11 @@ def vdsl3WorkflowFactory(Map args, Map meta, String rawScript) { val = val.join(par.multiple_sep) } if (par.direction == "output" && par.type == "file") { - val = val.replaceAll('\\$id', id).replaceAll('\\$key', key) + val = val + .replaceAll('\\$id', id) + .replaceAll('\\$\\{id\\}', id) + .replaceAll('\\$key', key) + .replaceAll('\\$\\{key\\}', key) } [parName, val] } @@ -3647,7 +3672,8 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) { def createParentStr = meta.config.allArguments .findAll { it.type == "file" && it.direction == "output" && it.create_parent } .collect { par -> - "\${ args.containsKey(\"${par.plainName}\") ? \"mkdir_parent \\\"\" + (args[\"${par.plainName}\"] instanceof String ? args[\"${par.plainName}\"] : args[\"${par.plainName}\"].join('\" \"')) + \"\\\"\" : \"\" }" + def contents = "args[\"${par.plainName}\"] instanceof List ? args[\"${par.plainName}\"].join('\" \"') : args[\"${par.plainName}\"]" + "\${ args.containsKey(\"${par.plainName}\") ? \"mkdir_parent '\" + escapeText(${contents}) + \"'\" : \"\" }" } .join("\n") @@ -3655,8 +3681,8 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) { def inputFileExports = meta.config.allArguments .findAll { it.type == "file" && it.direction.toLowerCase() == "input" } .collect { par -> - def viash_par_contents = "(viash_par_${par.plainName} instanceof List ? viash_par_${par.plainName}.join(\"${par.multiple_sep}\") : viash_par_${par.plainName})" - "\n\${viash_par_${par.plainName}.empty ? \"\" : \"export VIASH_PAR_${par.plainName.toUpperCase()}=\\\"\" + ${viash_par_contents} + \"\\\"\"}" + def contents = "viash_par_${par.plainName} instanceof List ? viash_par_${par.plainName}.join(\"${par.multiple_sep}\") : viash_par_${par.plainName}" + "\n\${viash_par_${par.plainName}.empty ? \"\" : \"export VIASH_PAR_${par.plainName.toUpperCase()}='\" + escapeText(${contents}) + \"'\"}" } // NOTE: if using docker, use /tmp instead of tmpDir! @@ -3693,6 +3719,7 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) { def procStr = """nextflow.enable.dsl=2 | + |def escapeText = { s -> s.toString().replaceAll("'", "'\\\"'\\\"'") } |process $procKey {$drctvStrs |input: | tuple val(id)$inputPaths, val(args), path(resourcesDir, stageAs: ".viash_meta_resources") @@ -3704,10 +3731,9 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) { |$stub |\"\"\" |script:$assertStr - |def escapeText = { s -> s.toString().replaceAll('([`"])', '\\\\\\\\\$1') } |def parInject = args | .findAll{key, value -> value != null} - | .collect{key, value -> "export VIASH_PAR_\${key.toUpperCase()}=\\\"\${escapeText(value)}\\\""} + | .collect{key, value -> "export VIASH_PAR_\${key.toUpperCase()}='\${escapeText(value)}'"} | .join("\\n") |\"\"\" |# meta exports diff --git a/target/nextflow/parallel_map/nextflow_labels.config b/target/nextflow/parallel_map/nextflow_labels.config index 9ea88b1b..66f5e21c 100644 --- a/target/nextflow/parallel_map/nextflow_labels.config +++ b/target/nextflow/parallel_map/nextflow_labels.config @@ -1,26 +1,88 @@ +executor { + $k8s { + submitRateLimit = '10sec' + pollInterval = '1 sec' + } +} + process { - // Default resources for components that hardly do any processing - memory = { 2.GB * task.attempt } - cpus = 1 + container = 'nextflow/bash:latest' + + // default resources + memory = { 8.Gb * task.attempt } + cpus = 8 + maxForks = 36 // Retry for exit codes that have something to do with memory issues errorStrategy = { task.exitStatus in 137..140 ? 'retry' : 'terminate' } maxRetries = 3 - maxMemory = null + maxMemory = 192.GB // Resource labels - withLabel: singlecpu { cpus = 1 } - withLabel: lowcpu { cpus = 4 } - withLabel: midcpu { cpus = 10 } - withLabel: highcpu { cpus = 20 } + withLabel: verylowcpu { cpus = 2 } + withLabel: lowcpu { cpus = 8 } + withLabel: midcpu { cpus = 16 } + withLabel: highcpu { cpus = 32 } - 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 ) } } + withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } } + withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } } + withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } } + withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } } } +profiles { + // detect tempdir + tempDir = java.nio.file.Paths.get( + System.getenv('NXF_TEMP') ?: + System.getenv('VIASH_TEMP') ?: + System.getenv('TEMPDIR') ?: + System.getenv('TMPDIR') ?: + '/tmp' + ).toAbsolutePath() + + mount_temp { + docker.temp = tempDir + podman.temp = tempDir + charliecloud.temp = tempDir + } + + no_publish { + process { + withName: '.*' { + publishDir = [ + enabled: false + ] + } + } + } + + docker { + docker.fixOwnership = true + docker.enabled = true + // docker.userEmulation = true + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + + local { + // This config is for local processing. + process { + maxMemory = 25.GB + withLabel: verylowcpu { cpus = 2 } + withLabel: lowcpu { cpus = 4 } + withLabel: midcpu { cpus = 6 } + withLabel: highcpu { cpus = 12 } + + withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } } + withLabel: midmem { memory = { get_memory( 12.GB * task.attempt ) } } + withLabel: highmem { memory = { get_memory( 20.GB * task.attempt ) } } + } + } +} + def get_memory(to_compare) { if (!process.containsKey("maxMemory") || !process.maxMemory) { return to_compare diff --git a/target/nextflow/stats/combine_star_logs/.config.vsh.yaml b/target/nextflow/stats/combine_star_logs/.config.vsh.yaml index bb1076cf..408f956c 100644 --- a/target/nextflow/stats/combine_star_logs/.config.vsh.yaml +++ b/target/nextflow/stats/combine_star_logs/.config.vsh.yaml @@ -8,7 +8,7 @@ argument_groups: name: "--barcodes" description: "Barcodes responding to the respective log files.\n" info: null - required: false + required: true direction: "input" multiple: true multiple_sep: ";" @@ -20,7 +20,7 @@ argument_groups: - "Log.final.out" must_exist: true create_parent: true - required: false + required: true direction: "input" multiple: true multiple_sep: ";" @@ -34,7 +34,7 @@ argument_groups: - "Summary.txt" must_exist: true create_parent: true - required: false + required: true direction: "input" multiple: true multiple_sep: ";" @@ -44,7 +44,7 @@ argument_groups: info: null must_exist: true create_parent: true - required: false + required: true direction: "input" multiple: true multiple_sep: ";" @@ -182,15 +182,18 @@ build_info: engine: "docker|native" output: "target/nextflow/stats/combine_star_logs" executable: "target/nextflow/stats/combine_star_logs/main.nf" - viash_version: "0.9.0-RC7" - git_commit: "cf9797232db1306bfd5696287928cababe317d99" - git_remote: "https://x-access-token:ghs_KjB7pWu8DQM3iFulLu7RI06qnt5K8S1A0eaE@github.com/viash-hub/htrnaseq" + viash_version: "0.9.0" + git_commit: "65dd41d8b1b4a307735c72320c96c0880c75f17f" + git_remote: "https://x-access-token:ghs_McZDF0yobnnHmOEb2Q4JaaB3pzr9mz1VbIOs@github.com/viash-hub/htrnaseq" package_config: name: "htrnaseq" version: "main" description: "High-throughput pipeline [WIP]\n" - info: null - viash_version: "0.9.0-RC7" + info: + test_resources: + - path: "gs://viash-hub-test-data/htrnaseq/v1/" + dest: "resources_test" + viash_version: "0.9.0" source: "src" target: "target" config_mods: diff --git a/target/nextflow/stats/combine_star_logs/main.nf b/target/nextflow/stats/combine_star_logs/main.nf index 3223fac1..9a2ea7e9 100644 --- a/target/nextflow/stats/combine_star_logs/main.nf +++ b/target/nextflow/stats/combine_star_logs/main.nf @@ -1,8 +1,8 @@ // combine_star_logs main // -// This wrapper script is auto-generated by viash 0.9.0-RC7 and is thus a -// derivative work thereof. This software comes with ABSOLUTELY NO WARRANTY from -// Data Intuitive. +// This wrapper script is auto-generated by viash 0.9.0 and is thus a derivative +// work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data +// Intuitive. // // The component may contain files which fall under a different license. The // authors of this component should specify the license in the header of such @@ -1728,7 +1728,9 @@ def publishStates(Map args) { def yamlFilename = yamlTemplate_ .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) // TODO: do the pathnames in state_ match up with the outputFilenames_? @@ -1799,7 +1801,9 @@ def publishStatesByConfig(Map args) { def yamlTemplate = params.containsKey("output_state") ? params.output_state : '$id.$key.state.yaml' def yamlFilename = yamlTemplate .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) def yamlDir = java.nio.file.Paths.get(yamlFilename).getParent() // the processed state is a list of [key, value, inputPath, outputFilename] tuples, where @@ -1841,7 +1845,9 @@ def publishStatesByConfig(Map args) { // instantiate the template def filename = filenameTemplate .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) if (par.multiple) { // if the parameter is multiple: true, the filename // should contain a wildcard '*' that is replaced with @@ -2809,7 +2815,7 @@ meta = [ "type" : "string", "name" : "--barcodes", "description" : "Barcodes responding to the respective log files.\n", - "required" : false, + "required" : true, "direction" : "input", "multiple" : true, "multiple_sep" : ";" @@ -2823,7 +2829,7 @@ meta = [ ], "must_exist" : true, "create_parent" : true, - "required" : false, + "required" : true, "direction" : "input", "multiple" : true, "multiple_sep" : ";" @@ -2837,7 +2843,7 @@ meta = [ ], "must_exist" : true, "create_parent" : true, - "required" : false, + "required" : true, "direction" : "input", "multiple" : true, "multiple_sep" : ";" @@ -2848,7 +2854,7 @@ meta = [ "description" : "Paths to the 'ReadsPerGene.out.tab' files as output by STAR.\n", "must_exist" : true, "create_parent" : true, - "required" : false, + "required" : true, "direction" : "input", "multiple" : true, "multiple_sep" : ";" @@ -3026,15 +3032,23 @@ meta = [ "runner" : "nextflow", "engine" : "docker|native", "output" : "target/nextflow/stats/combine_star_logs", - "viash_version" : "0.9.0-RC7", - "git_commit" : "cf9797232db1306bfd5696287928cababe317d99", - "git_remote" : "https://x-access-token:ghs_KjB7pWu8DQM3iFulLu7RI06qnt5K8S1A0eaE@github.com/viash-hub/htrnaseq" + "viash_version" : "0.9.0", + "git_commit" : "65dd41d8b1b4a307735c72320c96c0880c75f17f", + "git_remote" : "https://x-access-token:ghs_McZDF0yobnnHmOEb2Q4JaaB3pzr9mz1VbIOs@github.com/viash-hub/htrnaseq" }, "package_config" : { "name" : "htrnaseq", "version" : "main", "description" : "High-throughput pipeline [WIP]\n", - "viash_version" : "0.9.0-RC7", + "info" : { + "test_resources" : [ + { + "path" : "gs://viash-hub-test-data/htrnaseq/v1/", + "dest" : "resources_test" + } + ] + }, + "viash_version" : "0.9.0", "source" : "src", "target" : "target", "config_mods" : [ @@ -3072,7 +3086,6 @@ tempscript=".viash_script.sh" cat > "$tempscript" << VIASHMAIN import logging import pandas as pd -import numpy as np from itertools import batched, starmap ### VIASH START @@ -3119,7 +3132,7 @@ logger.setLevel(logging.DEBUG) def handle_percentages(column_value): # TODO: handle this more gracefully if column_value: - return np.float64(column_value.strip('%')) + return column_value.strip('%') return column_value def star_log_to_dataframe(barcode: str, log_path) -> pd.DataFrame: @@ -3137,7 +3150,7 @@ def summary_to_dataframe(barcode: str, summary_path) -> pd.DataFrame: logger.info("Reading summary log %s for barcode %s", summary_path, barcode) result = pd.read_table(summary_path, sep=",", header=None, names=["Category", "Value"], - index_col=0) + index_col=0, dtype=pd.StringDtype()) logger.info("Read %d row(s) and %d column(s) from summary file at %s", *result.shape, summary_path) return result @@ -3146,9 +3159,14 @@ def summary_to_dataframe(barcode: str, summary_path) -> pd.DataFrame: def reads_per_gene_to_dataframe(barcode, read_per_gene_path) -> pd.DataFrame: logger.info("Reading reads per gene file %s for barcode %s", read_per_gene_path, barcode) result = pd.read_table(read_per_gene_path, skiprows=[0, 1, 2, 3], header=None, sep="\\\\t", + dtype={"geneID": pd.StringDtype(), + "Unstranded": pd.Int64Dtype(), + "posStrand": pd.Int64Dtype(), + "negStrand": pd.Int64Dtype()}, index_col=0, names=["geneID", "Unstranded", "posStrand", "negStrand"]) result = result[["Unstranded"]] # Do not use .loc here because we need a DataFrame, not a Series df = pd.DataFrame({"Value": result.sum()}) + df = df.rename({"Unstranded": "NumberOfCountedReads"}, errors="raise") df.index.name = "Category" logger.info("Read %d row(s) and %d column(s) from reads per gene file at %s", *df.shape, read_per_gene_path) @@ -3177,12 +3195,16 @@ def star_log_remove_unwanted_entries_and_adjust_format(barcode, df: pd.DataFrame "\\\\n\\\\t".join(to_keep[~to_keep].index.to_list())) result = df.loc[to_keep] + # Replace % by pect, remove columns, use camel case and remove spaces + # You might be tempted to use .title() to make everything uppercase, + # but characters which are already uppercase should stay that way. + # (example: NumberOfUMIs and not NumberOfUmis) result.index = result.index.str.replace("%", "pect")\\\\ .str.replace(":", "")\\\\ .str.replace(r"(?:^|\\\\s).", lambda m:m.group(0).upper(), regex=True)\\\\ .str.replace(" ", "") result = result.rename({"UniquelyMappedReadsNumber": "NumberOfMappedReads", - "UniquelyMappedReadsPect": "pctMappedReads"}, errors="raise") + "UniquelyMappedReadsPect": "PctMappedReads"}, errors="raise") logger.info("Done filtering STAR logs for barcode %s. Result has %d row(s) and %d column(s). " "Found entries:\\\\n\\\\t%s", barcode, *result.shape, "\\\\n\\\\t".join(result.index.to_list())) @@ -3198,13 +3220,9 @@ def summary_remove_unwanted_entries_and_adjust_format(barcode, df: pd.DataFrame) "Reads Mapped to Genome: Unique", "Reads Mapped to Transcriptome: Unique Genes", "Reads in Cells Mapped to Unique Genes", - "Mean Reads per Cell", "Median UMI per Cell", "Median Genes per Cell", - "Q30 Bases in CB+UMI", "Reads Mapped to Genome: Unique+Multiple", - "Reads Mapped to Transcriptome: Unique+Multipe Genes", - "Fraction of Reads in Cells", "Median Reads per Cell", "Mean UMI per Cell", "Mean Genes per Cell", @@ -3217,8 +3235,15 @@ def summary_remove_unwanted_entries_and_adjust_format(barcode, df: pd.DataFrame) result = df.loc[to_keep] result.index = result.index.str.replace(r"(?:^|\\\\s).", lambda m:m.group(0).upper(), regex=True).str.replace(" ", "") - result = result.rename({"UMIsInCells": "NumberOfUMIs", - "TotalGenesDetected": "NumberOfGenes"}, errors="raise") + to_rename = {"UMIsInCells": "NumberOfUMIs", + "TotalGenesDetected": "NumberOfGenes"} + try: + result = result.rename(to_rename, errors="raise") + except KeyError as e: + raise KeyError(f"Tried to rename log entries ({','.join(to_rename)}) in the summary " + f"log for barcode {barcode}, but an entry was not found in the file. " + "Make sure that you are using the correct version of STAR." + f"Available entries: {", ".join(result.index.to_list())}") from e logger.info("Done filtering summary logs for barcode %s. Result has %d row(s) and %d column(s). " "Found entries:\\\\n\\\\t%s", barcode, *result.shape, "\\\\n\\\\t".join(result.index.to_list())) @@ -3267,13 +3292,40 @@ def main(par): all_stats = pd.concat(all_logs_data, axis=1) logger.info("Log statistics were gathered for the following barcodes: %s", ", ".join(all_stats.index.to_list())) + dtypes = { + 'NumberOfInputReads': pd.UInt64Dtype(), + 'NumberOfMappedReads': pd.UInt64Dtype(), + 'PctMappedReads': pd.Float64Dtype(), + 'NumberOfReadsMappedToMultipleLoci': pd.UInt64Dtype(), + 'PectOfReadsMappedToMultipleLoci': pd.Float64Dtype(), + 'NumberOfReadsMappedToTooManyLoci': pd.UInt64Dtype(), + 'PectOfReadsMappedToTooManyLoci': pd.Float64Dtype(), + 'NumberOfReadsUnmappedTooManyMismatches': pd.UInt64Dtype(), + 'PectOfReadsUnmappedTooManyMismatches': pd.Float64Dtype(), + 'NumberOfReadsUnmappedTooShort': pd.UInt64Dtype(), + 'PectOfReadsUnmappedTooShort': pd.Float64Dtype(), + 'NumberOfReadsUnmappedOther': pd.UInt64Dtype(), + 'PectOfReadsUnmappedOther': pd.Float64Dtype(), + 'ReadsWithValidBarcodes': pd.Float64Dtype(), + 'SequencingSaturation': pd.Float64Dtype(), + 'Q30BasesInCB+UMI': pd.Float64Dtype(), + 'ReadsMappedToTranscriptome:Unique+MultipeGenes': pd.Float64Dtype(), + 'EstimatedNumberOfCells': pd.UInt64Dtype(), + 'FractionOfReadsInCells': pd.Float64Dtype(), + 'MeanReadsPerCell': pd.UInt64Dtype(), + 'NumberOfUMIs': pd.UInt64Dtype(), + 'NumberOfGenes': pd.UInt64Dtype(), + 'NumberOfCountedReads': pd.UInt64Dtype(), + } + all_stats = all_stats.astype(dtypes) # batched() is used here to print a limited amount of columnns at a time # to make sure that they are all displayed (pandas might limit the view for readability) logger.info("Summary of final output:\\\\n%s\\\\n", "\\\\n".join(repr(all_stats.loc[:,columns].describe()) for columns in batched(all_stats.columns, 3))) logger.info("Writing output to %s", par["output"]) - all_stats.reset_index("WellBC").to_csv(par["output"], sep="\\\\t", header=True, index=False) + all_stats.reset_index("WellBC").to_csv(par["output"], sep="\\\\t", header=True, + index=False, float_format='%g') logger.info("Finished %s.", meta["name"]) if __name__ == "__main__": @@ -3358,7 +3410,11 @@ def vdsl3WorkflowFactory(Map args, Map meta, String rawScript) { val = val.join(par.multiple_sep) } if (par.direction == "output" && par.type == "file") { - val = val.replaceAll('\\$id', id).replaceAll('\\$key', key) + val = val + .replaceAll('\\$id', id) + .replaceAll('\\$\\{id\\}', id) + .replaceAll('\\$key', key) + .replaceAll('\\$\\{key\\}', key) } [parName, val] } @@ -3489,7 +3545,8 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) { def createParentStr = meta.config.allArguments .findAll { it.type == "file" && it.direction == "output" && it.create_parent } .collect { par -> - "\${ args.containsKey(\"${par.plainName}\") ? \"mkdir_parent \\\"\" + (args[\"${par.plainName}\"] instanceof String ? args[\"${par.plainName}\"] : args[\"${par.plainName}\"].join('\" \"')) + \"\\\"\" : \"\" }" + def contents = "args[\"${par.plainName}\"] instanceof List ? args[\"${par.plainName}\"].join('\" \"') : args[\"${par.plainName}\"]" + "\${ args.containsKey(\"${par.plainName}\") ? \"mkdir_parent '\" + escapeText(${contents}) + \"'\" : \"\" }" } .join("\n") @@ -3497,8 +3554,8 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) { def inputFileExports = meta.config.allArguments .findAll { it.type == "file" && it.direction.toLowerCase() == "input" } .collect { par -> - def viash_par_contents = "(viash_par_${par.plainName} instanceof List ? viash_par_${par.plainName}.join(\"${par.multiple_sep}\") : viash_par_${par.plainName})" - "\n\${viash_par_${par.plainName}.empty ? \"\" : \"export VIASH_PAR_${par.plainName.toUpperCase()}=\\\"\" + ${viash_par_contents} + \"\\\"\"}" + def contents = "viash_par_${par.plainName} instanceof List ? viash_par_${par.plainName}.join(\"${par.multiple_sep}\") : viash_par_${par.plainName}" + "\n\${viash_par_${par.plainName}.empty ? \"\" : \"export VIASH_PAR_${par.plainName.toUpperCase()}='\" + escapeText(${contents}) + \"'\"}" } // NOTE: if using docker, use /tmp instead of tmpDir! @@ -3535,6 +3592,7 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) { def procStr = """nextflow.enable.dsl=2 | + |def escapeText = { s -> s.toString().replaceAll("'", "'\\\"'\\\"'") } |process $procKey {$drctvStrs |input: | tuple val(id)$inputPaths, val(args), path(resourcesDir, stageAs: ".viash_meta_resources") @@ -3546,10 +3604,9 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) { |$stub |\"\"\" |script:$assertStr - |def escapeText = { s -> s.toString().replaceAll('([`"])', '\\\\\\\\\$1') } |def parInject = args | .findAll{key, value -> value != null} - | .collect{key, value -> "export VIASH_PAR_\${key.toUpperCase()}=\\\"\${escapeText(value)}\\\""} + | .collect{key, value -> "export VIASH_PAR_\${key.toUpperCase()}='\${escapeText(value)}'"} | .join("\\n") |\"\"\" |# meta exports diff --git a/target/nextflow/stats/combine_star_logs/nextflow_labels.config b/target/nextflow/stats/combine_star_logs/nextflow_labels.config index 9ea88b1b..66f5e21c 100644 --- a/target/nextflow/stats/combine_star_logs/nextflow_labels.config +++ b/target/nextflow/stats/combine_star_logs/nextflow_labels.config @@ -1,26 +1,88 @@ +executor { + $k8s { + submitRateLimit = '10sec' + pollInterval = '1 sec' + } +} + process { - // Default resources for components that hardly do any processing - memory = { 2.GB * task.attempt } - cpus = 1 + container = 'nextflow/bash:latest' + + // default resources + memory = { 8.Gb * task.attempt } + cpus = 8 + maxForks = 36 // Retry for exit codes that have something to do with memory issues errorStrategy = { task.exitStatus in 137..140 ? 'retry' : 'terminate' } maxRetries = 3 - maxMemory = null + maxMemory = 192.GB // Resource labels - withLabel: singlecpu { cpus = 1 } - withLabel: lowcpu { cpus = 4 } - withLabel: midcpu { cpus = 10 } - withLabel: highcpu { cpus = 20 } + withLabel: verylowcpu { cpus = 2 } + withLabel: lowcpu { cpus = 8 } + withLabel: midcpu { cpus = 16 } + withLabel: highcpu { cpus = 32 } - 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 ) } } + withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } } + withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } } + withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } } + withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } } } +profiles { + // detect tempdir + tempDir = java.nio.file.Paths.get( + System.getenv('NXF_TEMP') ?: + System.getenv('VIASH_TEMP') ?: + System.getenv('TEMPDIR') ?: + System.getenv('TMPDIR') ?: + '/tmp' + ).toAbsolutePath() + + mount_temp { + docker.temp = tempDir + podman.temp = tempDir + charliecloud.temp = tempDir + } + + no_publish { + process { + withName: '.*' { + publishDir = [ + enabled: false + ] + } + } + } + + docker { + docker.fixOwnership = true + docker.enabled = true + // docker.userEmulation = true + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + + local { + // This config is for local processing. + process { + maxMemory = 25.GB + withLabel: verylowcpu { cpus = 2 } + withLabel: lowcpu { cpus = 4 } + withLabel: midcpu { cpus = 6 } + withLabel: highcpu { cpus = 12 } + + withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } } + withLabel: midmem { memory = { get_memory( 12.GB * task.attempt ) } } + withLabel: highmem { memory = { get_memory( 20.GB * task.attempt ) } } + } + } +} + def get_memory(to_compare) { if (!process.containsKey("maxMemory") || !process.maxMemory) { return to_compare diff --git a/target/nextflow/stats/combine_star_logs/nextflow_schema.json b/target/nextflow/stats/combine_star_logs/nextflow_schema.json index bb76c2a6..12de4145 100644 --- a/target/nextflow/stats/combine_star_logs/nextflow_schema.json +++ b/target/nextflow/stats/combine_star_logs/nextflow_schema.json @@ -17,8 +17,8 @@ "barcodes": { "type": "string", - "description": "Type: List of `string`, multiple_sep: `\";\"`. Barcodes responding to the respective log files", - "help_text": "Type: List of `string`, multiple_sep: `\";\"`. Barcodes responding to the respective log files.\n" + "description": "Type: List of `string`, required, multiple_sep: `\";\"`. Barcodes responding to the respective log files", + "help_text": "Type: List of `string`, required, multiple_sep: `\";\"`. Barcodes responding to the respective log files.\n" } @@ -27,8 +27,8 @@ "star_logs": { "type": "string", - "description": "Type: List of `file`, example: `Log.final.out`, multiple_sep: `\";\"`. Paths to the STAR log files (most frequently called Log", - "help_text": "Type: List of `file`, example: `Log.final.out`, multiple_sep: `\";\"`. Paths to the STAR log files (most frequently called Log.final.out)\n" + "description": "Type: List of `file`, required, example: `Log.final.out`, multiple_sep: `\";\"`. Paths to the STAR log files (most frequently called Log", + "help_text": "Type: List of `file`, required, example: `Log.final.out`, multiple_sep: `\";\"`. Paths to the STAR log files (most frequently called Log.final.out)\n" } @@ -37,8 +37,8 @@ "gene_summary_logs": { "type": "string", - "description": "Type: List of `file`, example: `Summary.txt`, multiple_sep: `\";\"`. Paths to the Summary", - "help_text": "Type: List of `file`, example: `Summary.txt`, multiple_sep: `\";\"`. Paths to the Summary.csv files from the STAR Solo output. Can be found in\nthe \u0027Solo.out/Gene\u0027 folder relative to the root of the STAR output directory. \n" + "description": "Type: List of `file`, required, example: `Summary.txt`, multiple_sep: `\";\"`. Paths to the Summary", + "help_text": "Type: List of `file`, required, example: `Summary.txt`, multiple_sep: `\";\"`. Paths to the Summary.csv files from the STAR Solo output. Can be found in\nthe \u0027Solo.out/Gene\u0027 folder relative to the root of the STAR output directory. \n" } @@ -47,8 +47,8 @@ "reads_per_gene_logs": { "type": "string", - "description": "Type: List of `file`, multiple_sep: `\";\"`. Paths to the \u0027ReadsPerGene", - "help_text": "Type: List of `file`, multiple_sep: `\";\"`. Paths to the \u0027ReadsPerGene.out.tab\u0027 files as output by STAR.\n" + "description": "Type: List of `file`, required, multiple_sep: `\";\"`. Paths to the \u0027ReadsPerGene", + "help_text": "Type: List of `file`, required, multiple_sep: `\";\"`. Paths to the \u0027ReadsPerGene.out.tab\u0027 files as output by STAR.\n" } diff --git a/target/nextflow/stats/generate_pool_statistics/.config.vsh.yaml b/target/nextflow/stats/generate_pool_statistics/.config.vsh.yaml index 6d363c3d..0f89ee7e 100644 --- a/target/nextflow/stats/generate_pool_statistics/.config.vsh.yaml +++ b/target/nextflow/stats/generate_pool_statistics/.config.vsh.yaml @@ -124,7 +124,7 @@ runners: engines: - type: "docker" id: "docker" - image: "python:3.11-slim" + image: "python:3.12-slim" target_registry: "images.viash-hub.com" target_tag: "main" namespace_separator: "/" @@ -154,15 +154,18 @@ build_info: engine: "docker|native" output: "target/nextflow/stats/generate_pool_statistics" executable: "target/nextflow/stats/generate_pool_statistics/main.nf" - viash_version: "0.9.0-RC7" - git_commit: "cf9797232db1306bfd5696287928cababe317d99" - git_remote: "https://x-access-token:ghs_KjB7pWu8DQM3iFulLu7RI06qnt5K8S1A0eaE@github.com/viash-hub/htrnaseq" + viash_version: "0.9.0" + git_commit: "65dd41d8b1b4a307735c72320c96c0880c75f17f" + git_remote: "https://x-access-token:ghs_McZDF0yobnnHmOEb2Q4JaaB3pzr9mz1VbIOs@github.com/viash-hub/htrnaseq" package_config: name: "htrnaseq" version: "main" description: "High-throughput pipeline [WIP]\n" - info: null - viash_version: "0.9.0-RC7" + info: + test_resources: + - path: "gs://viash-hub-test-data/htrnaseq/v1/" + dest: "resources_test" + viash_version: "0.9.0" source: "src" target: "target" config_mods: diff --git a/target/nextflow/stats/generate_pool_statistics/main.nf b/target/nextflow/stats/generate_pool_statistics/main.nf index ed14b3ea..70d8d90d 100644 --- a/target/nextflow/stats/generate_pool_statistics/main.nf +++ b/target/nextflow/stats/generate_pool_statistics/main.nf @@ -1,8 +1,8 @@ // generate_pool_statistics main // -// This wrapper script is auto-generated by viash 0.9.0-RC7 and is thus a -// derivative work thereof. This software comes with ABSOLUTELY NO WARRANTY from -// Data Intuitive. +// This wrapper script is auto-generated by viash 0.9.0 and is thus a derivative +// work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data +// Intuitive. // // The component may contain files which fall under a different license. The // authors of this component should specify the license in the header of such @@ -1728,7 +1728,9 @@ def publishStates(Map args) { def yamlFilename = yamlTemplate_ .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) // TODO: do the pathnames in state_ match up with the outputFilenames_? @@ -1799,7 +1801,9 @@ def publishStatesByConfig(Map args) { def yamlTemplate = params.containsKey("output_state") ? params.output_state : '$id.$key.state.yaml' def yamlFilename = yamlTemplate .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) def yamlDir = java.nio.file.Paths.get(yamlFilename).getParent() // the processed state is a list of [key, value, inputPath, outputFilename] tuples, where @@ -1841,7 +1845,9 @@ def publishStatesByConfig(Map args) { // instantiate the template def filename = filenameTemplate .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) if (par.multiple) { // if the parameter is multiple: true, the filename // should contain a wildcard '*' that is replaced with @@ -2947,7 +2953,7 @@ meta = [ { "type" : "docker", "id" : "docker", - "image" : "python:3.11-slim", + "image" : "python:3.12-slim", "target_registry" : "images.viash-hub.com", "target_tag" : "main", "namespace_separator" : "/", @@ -2989,15 +2995,23 @@ meta = [ "runner" : "nextflow", "engine" : "docker|native", "output" : "target/nextflow/stats/generate_pool_statistics", - "viash_version" : "0.9.0-RC7", - "git_commit" : "cf9797232db1306bfd5696287928cababe317d99", - "git_remote" : "https://x-access-token:ghs_KjB7pWu8DQM3iFulLu7RI06qnt5K8S1A0eaE@github.com/viash-hub/htrnaseq" + "viash_version" : "0.9.0", + "git_commit" : "65dd41d8b1b4a307735c72320c96c0880c75f17f", + "git_remote" : "https://x-access-token:ghs_McZDF0yobnnHmOEb2Q4JaaB3pzr9mz1VbIOs@github.com/viash-hub/htrnaseq" }, "package_config" : { "name" : "htrnaseq", "version" : "main", "description" : "High-throughput pipeline [WIP]\n", - "viash_version" : "0.9.0-RC7", + "info" : { + "test_resources" : [ + { + "path" : "gs://viash-hub-test-data/htrnaseq/v1/", + "dest" : "resources_test" + } + ] + }, + "viash_version" : "0.9.0", "source" : "src", "target" : "target", "config_mods" : [ @@ -3075,9 +3089,13 @@ if __name__ == "__main__": nr_reads_nr_genes_wells = [] for nr_reads_nr_genes_file in par["nrReadsNrGenesPerChrom"]: nr_reads_nr_genes_wells.append(pd.read_csv(nr_reads_nr_genes_file, - header=0, delimiter="\\\\t")) - nr_reads_nr_genes_pool = pd.concat(nr_reads_nr_genes_wells, ignore_index=True) - total_nr_reads_per_chromosome = nr_reads_nr_genes_pool.pivot_table(index="WellBC", columns="Chr", + header=0, delimiter="\\\\t", + dtype={"WellBC": pd.StringDtype(), + "Chr": pd.StringDtype(), + "NumberOfReads": pd.UInt64Dtype(), + "NumberOfGenes": pd.UInt64Dtype()})) + nr_reads_nr_genes_pool = pd.concat(nr_reads_nr_genes_wells, ignore_index=True,) + total_nr_reads_per_chromosome = nr_reads_nr_genes_pool.pivot_table(index="WellBC", columns="Chr", values=["NumberOfReads"], fill_value=0, aggfunc="sum").droplevel(0, axis=1) total_nr_reads_per_chromosome.columns.name = None @@ -3118,19 +3136,25 @@ if __name__ == "__main__": total_chromosomal_reads = total_nr_reads_per_chromosome.loc[:,matching_chromosomes].sum(axis=1) percentage_chromosomal_reads = round(total_chromosomal_reads / total_sum_of_reads * 100, 2) + cols_to_add = { + "pctChrom": percentage_chromosomal_reads, + "pctMT": percentage_mitochondrial_reads, + "pctERCC": percentage_ercc_reads, + "SumReads": total_sum_of_reads, + "NumberOfGenes": total_nr_genes, + "NumberOfERCCReads": total_ercc_reads, + "NumberOfChromReads": total_chromosomal_reads, + "NumberOfMTReads": mitochondrial_reads, + } total_nr_reads_per_chromosome = total_nr_reads_per_chromosome.assign( - pctChrom=percentage_chromosomal_reads, - pctMT=percentage_mitochondrial_reads, - pctERCC=percentage_ercc_reads, - SumReads=total_sum_of_reads, - NumberOfGenes=total_nr_genes, + **cols_to_add ) total_nr_reads_per_chromosome.reset_index(names="WellBC")\\\\ .to_csv(par["nrReadsNrGenesPerChromPool"], sep="\\\\t", - header=True, index=False, - columns=("WellBC",) + tuple(chromosome_names) + \\\\ - ("SumReads", "pctMT", "pctERCC", "pctChrom", "NumberOfGenes")) + header=True, index=False, float_format="%g", + columns=("WellBC",) + tuple(chromosome_names) + tuple(cols_to_add.keys()) + ) VIASHMAIN python -B "$tempscript" ''' @@ -3211,7 +3235,11 @@ def vdsl3WorkflowFactory(Map args, Map meta, String rawScript) { val = val.join(par.multiple_sep) } if (par.direction == "output" && par.type == "file") { - val = val.replaceAll('\\$id', id).replaceAll('\\$key', key) + val = val + .replaceAll('\\$id', id) + .replaceAll('\\$\\{id\\}', id) + .replaceAll('\\$key', key) + .replaceAll('\\$\\{key\\}', key) } [parName, val] } @@ -3342,7 +3370,8 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) { def createParentStr = meta.config.allArguments .findAll { it.type == "file" && it.direction == "output" && it.create_parent } .collect { par -> - "\${ args.containsKey(\"${par.plainName}\") ? \"mkdir_parent \\\"\" + (args[\"${par.plainName}\"] instanceof String ? args[\"${par.plainName}\"] : args[\"${par.plainName}\"].join('\" \"')) + \"\\\"\" : \"\" }" + def contents = "args[\"${par.plainName}\"] instanceof List ? args[\"${par.plainName}\"].join('\" \"') : args[\"${par.plainName}\"]" + "\${ args.containsKey(\"${par.plainName}\") ? \"mkdir_parent '\" + escapeText(${contents}) + \"'\" : \"\" }" } .join("\n") @@ -3350,8 +3379,8 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) { def inputFileExports = meta.config.allArguments .findAll { it.type == "file" && it.direction.toLowerCase() == "input" } .collect { par -> - def viash_par_contents = "(viash_par_${par.plainName} instanceof List ? viash_par_${par.plainName}.join(\"${par.multiple_sep}\") : viash_par_${par.plainName})" - "\n\${viash_par_${par.plainName}.empty ? \"\" : \"export VIASH_PAR_${par.plainName.toUpperCase()}=\\\"\" + ${viash_par_contents} + \"\\\"\"}" + def contents = "viash_par_${par.plainName} instanceof List ? viash_par_${par.plainName}.join(\"${par.multiple_sep}\") : viash_par_${par.plainName}" + "\n\${viash_par_${par.plainName}.empty ? \"\" : \"export VIASH_PAR_${par.plainName.toUpperCase()}='\" + escapeText(${contents}) + \"'\"}" } // NOTE: if using docker, use /tmp instead of tmpDir! @@ -3388,6 +3417,7 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) { def procStr = """nextflow.enable.dsl=2 | + |def escapeText = { s -> s.toString().replaceAll("'", "'\\\"'\\\"'") } |process $procKey {$drctvStrs |input: | tuple val(id)$inputPaths, val(args), path(resourcesDir, stageAs: ".viash_meta_resources") @@ -3399,10 +3429,9 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) { |$stub |\"\"\" |script:$assertStr - |def escapeText = { s -> s.toString().replaceAll('([`"])', '\\\\\\\\\$1') } |def parInject = args | .findAll{key, value -> value != null} - | .collect{key, value -> "export VIASH_PAR_\${key.toUpperCase()}=\\\"\${escapeText(value)}\\\""} + | .collect{key, value -> "export VIASH_PAR_\${key.toUpperCase()}='\${escapeText(value)}'"} | .join("\\n") |\"\"\" |# meta exports diff --git a/target/nextflow/stats/generate_pool_statistics/nextflow_labels.config b/target/nextflow/stats/generate_pool_statistics/nextflow_labels.config index 9ea88b1b..66f5e21c 100644 --- a/target/nextflow/stats/generate_pool_statistics/nextflow_labels.config +++ b/target/nextflow/stats/generate_pool_statistics/nextflow_labels.config @@ -1,26 +1,88 @@ +executor { + $k8s { + submitRateLimit = '10sec' + pollInterval = '1 sec' + } +} + process { - // Default resources for components that hardly do any processing - memory = { 2.GB * task.attempt } - cpus = 1 + container = 'nextflow/bash:latest' + + // default resources + memory = { 8.Gb * task.attempt } + cpus = 8 + maxForks = 36 // Retry for exit codes that have something to do with memory issues errorStrategy = { task.exitStatus in 137..140 ? 'retry' : 'terminate' } maxRetries = 3 - maxMemory = null + maxMemory = 192.GB // Resource labels - withLabel: singlecpu { cpus = 1 } - withLabel: lowcpu { cpus = 4 } - withLabel: midcpu { cpus = 10 } - withLabel: highcpu { cpus = 20 } + withLabel: verylowcpu { cpus = 2 } + withLabel: lowcpu { cpus = 8 } + withLabel: midcpu { cpus = 16 } + withLabel: highcpu { cpus = 32 } - 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 ) } } + withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } } + withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } } + withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } } + withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } } } +profiles { + // detect tempdir + tempDir = java.nio.file.Paths.get( + System.getenv('NXF_TEMP') ?: + System.getenv('VIASH_TEMP') ?: + System.getenv('TEMPDIR') ?: + System.getenv('TMPDIR') ?: + '/tmp' + ).toAbsolutePath() + + mount_temp { + docker.temp = tempDir + podman.temp = tempDir + charliecloud.temp = tempDir + } + + no_publish { + process { + withName: '.*' { + publishDir = [ + enabled: false + ] + } + } + } + + docker { + docker.fixOwnership = true + docker.enabled = true + // docker.userEmulation = true + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + + local { + // This config is for local processing. + process { + maxMemory = 25.GB + withLabel: verylowcpu { cpus = 2 } + withLabel: lowcpu { cpus = 4 } + withLabel: midcpu { cpus = 6 } + withLabel: highcpu { cpus = 12 } + + withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } } + withLabel: midmem { memory = { get_memory( 12.GB * task.attempt ) } } + withLabel: highmem { memory = { get_memory( 20.GB * task.attempt ) } } + } + } +} + def get_memory(to_compare) { if (!process.containsKey("maxMemory") || !process.maxMemory) { return to_compare diff --git a/target/nextflow/stats/generate_well_statistics/.config.vsh.yaml b/target/nextflow/stats/generate_well_statistics/.config.vsh.yaml index 85d2cb55..49cf1187 100644 --- a/target/nextflow/stats/generate_well_statistics/.config.vsh.yaml +++ b/target/nextflow/stats/generate_well_statistics/.config.vsh.yaml @@ -225,15 +225,18 @@ build_info: engine: "docker|native" output: "target/nextflow/stats/generate_well_statistics" executable: "target/nextflow/stats/generate_well_statistics/main.nf" - viash_version: "0.9.0-RC7" - git_commit: "cf9797232db1306bfd5696287928cababe317d99" - git_remote: "https://x-access-token:ghs_KjB7pWu8DQM3iFulLu7RI06qnt5K8S1A0eaE@github.com/viash-hub/htrnaseq" + viash_version: "0.9.0" + git_commit: "65dd41d8b1b4a307735c72320c96c0880c75f17f" + git_remote: "https://x-access-token:ghs_McZDF0yobnnHmOEb2Q4JaaB3pzr9mz1VbIOs@github.com/viash-hub/htrnaseq" package_config: name: "htrnaseq" version: "main" description: "High-throughput pipeline [WIP]\n" - info: null - viash_version: "0.9.0-RC7" + info: + test_resources: + - path: "gs://viash-hub-test-data/htrnaseq/v1/" + dest: "resources_test" + viash_version: "0.9.0" source: "src" target: "target" config_mods: diff --git a/target/nextflow/stats/generate_well_statistics/main.nf b/target/nextflow/stats/generate_well_statistics/main.nf index 3ac06bc2..1cea56b8 100644 --- a/target/nextflow/stats/generate_well_statistics/main.nf +++ b/target/nextflow/stats/generate_well_statistics/main.nf @@ -1,8 +1,8 @@ // generate_well_statistics main // -// This wrapper script is auto-generated by viash 0.9.0-RC7 and is thus a -// derivative work thereof. This software comes with ABSOLUTELY NO WARRANTY from -// Data Intuitive. +// This wrapper script is auto-generated by viash 0.9.0 and is thus a derivative +// work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data +// Intuitive. // // The component may contain files which fall under a different license. The // authors of this component should specify the license in the header of such @@ -1728,7 +1728,9 @@ def publishStates(Map args) { def yamlFilename = yamlTemplate_ .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) // TODO: do the pathnames in state_ match up with the outputFilenames_? @@ -1799,7 +1801,9 @@ def publishStatesByConfig(Map args) { def yamlTemplate = params.containsKey("output_state") ? params.output_state : '$id.$key.state.yaml' def yamlFilename = yamlTemplate .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) def yamlDir = java.nio.file.Paths.get(yamlFilename).getParent() // the processed state is a list of [key, value, inputPath, outputFilename] tuples, where @@ -1841,7 +1845,9 @@ def publishStatesByConfig(Map args) { // instantiate the template def filename = filenameTemplate .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) if (par.multiple) { // if the parameter is multiple: true, the filename // should contain a wildcard '*' that is replaced with @@ -3071,15 +3077,23 @@ meta = [ "runner" : "nextflow", "engine" : "docker|native", "output" : "target/nextflow/stats/generate_well_statistics", - "viash_version" : "0.9.0-RC7", - "git_commit" : "cf9797232db1306bfd5696287928cababe317d99", - "git_remote" : "https://x-access-token:ghs_KjB7pWu8DQM3iFulLu7RI06qnt5K8S1A0eaE@github.com/viash-hub/htrnaseq" + "viash_version" : "0.9.0", + "git_commit" : "65dd41d8b1b4a307735c72320c96c0880c75f17f", + "git_remote" : "https://x-access-token:ghs_McZDF0yobnnHmOEb2Q4JaaB3pzr9mz1VbIOs@github.com/viash-hub/htrnaseq" }, "package_config" : { "name" : "htrnaseq", "version" : "main", "description" : "High-throughput pipeline [WIP]\n", - "viash_version" : "0.9.0-RC7", + "info" : { + "test_resources" : [ + { + "path" : "gs://viash-hub-test-data/htrnaseq/v1/", + "dest" : "resources_test" + } + ] + }, + "viash_version" : "0.9.0", "source" : "src", "target" : "target", "config_mods" : [ @@ -3297,7 +3311,11 @@ def vdsl3WorkflowFactory(Map args, Map meta, String rawScript) { val = val.join(par.multiple_sep) } if (par.direction == "output" && par.type == "file") { - val = val.replaceAll('\\$id', id).replaceAll('\\$key', key) + val = val + .replaceAll('\\$id', id) + .replaceAll('\\$\\{id\\}', id) + .replaceAll('\\$key', key) + .replaceAll('\\$\\{key\\}', key) } [parName, val] } @@ -3428,7 +3446,8 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) { def createParentStr = meta.config.allArguments .findAll { it.type == "file" && it.direction == "output" && it.create_parent } .collect { par -> - "\${ args.containsKey(\"${par.plainName}\") ? \"mkdir_parent \\\"\" + (args[\"${par.plainName}\"] instanceof String ? args[\"${par.plainName}\"] : args[\"${par.plainName}\"].join('\" \"')) + \"\\\"\" : \"\" }" + def contents = "args[\"${par.plainName}\"] instanceof List ? args[\"${par.plainName}\"].join('\" \"') : args[\"${par.plainName}\"]" + "\${ args.containsKey(\"${par.plainName}\") ? \"mkdir_parent '\" + escapeText(${contents}) + \"'\" : \"\" }" } .join("\n") @@ -3436,8 +3455,8 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) { def inputFileExports = meta.config.allArguments .findAll { it.type == "file" && it.direction.toLowerCase() == "input" } .collect { par -> - def viash_par_contents = "(viash_par_${par.plainName} instanceof List ? viash_par_${par.plainName}.join(\"${par.multiple_sep}\") : viash_par_${par.plainName})" - "\n\${viash_par_${par.plainName}.empty ? \"\" : \"export VIASH_PAR_${par.plainName.toUpperCase()}=\\\"\" + ${viash_par_contents} + \"\\\"\"}" + def contents = "viash_par_${par.plainName} instanceof List ? viash_par_${par.plainName}.join(\"${par.multiple_sep}\") : viash_par_${par.plainName}" + "\n\${viash_par_${par.plainName}.empty ? \"\" : \"export VIASH_PAR_${par.plainName.toUpperCase()}='\" + escapeText(${contents}) + \"'\"}" } // NOTE: if using docker, use /tmp instead of tmpDir! @@ -3474,6 +3493,7 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) { def procStr = """nextflow.enable.dsl=2 | + |def escapeText = { s -> s.toString().replaceAll("'", "'\\\"'\\\"'") } |process $procKey {$drctvStrs |input: | tuple val(id)$inputPaths, val(args), path(resourcesDir, stageAs: ".viash_meta_resources") @@ -3485,10 +3505,9 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) { |$stub |\"\"\" |script:$assertStr - |def escapeText = { s -> s.toString().replaceAll('([`"])', '\\\\\\\\\$1') } |def parInject = args | .findAll{key, value -> value != null} - | .collect{key, value -> "export VIASH_PAR_\${key.toUpperCase()}=\\\"\${escapeText(value)}\\\""} + | .collect{key, value -> "export VIASH_PAR_\${key.toUpperCase()}='\${escapeText(value)}'"} | .join("\\n") |\"\"\" |# meta exports diff --git a/target/nextflow/stats/generate_well_statistics/nextflow_labels.config b/target/nextflow/stats/generate_well_statistics/nextflow_labels.config index 9ea88b1b..66f5e21c 100644 --- a/target/nextflow/stats/generate_well_statistics/nextflow_labels.config +++ b/target/nextflow/stats/generate_well_statistics/nextflow_labels.config @@ -1,26 +1,88 @@ +executor { + $k8s { + submitRateLimit = '10sec' + pollInterval = '1 sec' + } +} + process { - // Default resources for components that hardly do any processing - memory = { 2.GB * task.attempt } - cpus = 1 + container = 'nextflow/bash:latest' + + // default resources + memory = { 8.Gb * task.attempt } + cpus = 8 + maxForks = 36 // Retry for exit codes that have something to do with memory issues errorStrategy = { task.exitStatus in 137..140 ? 'retry' : 'terminate' } maxRetries = 3 - maxMemory = null + maxMemory = 192.GB // Resource labels - withLabel: singlecpu { cpus = 1 } - withLabel: lowcpu { cpus = 4 } - withLabel: midcpu { cpus = 10 } - withLabel: highcpu { cpus = 20 } + withLabel: verylowcpu { cpus = 2 } + withLabel: lowcpu { cpus = 8 } + withLabel: midcpu { cpus = 16 } + withLabel: highcpu { cpus = 32 } - 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 ) } } + withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } } + withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } } + withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } } + withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } } } +profiles { + // detect tempdir + tempDir = java.nio.file.Paths.get( + System.getenv('NXF_TEMP') ?: + System.getenv('VIASH_TEMP') ?: + System.getenv('TEMPDIR') ?: + System.getenv('TMPDIR') ?: + '/tmp' + ).toAbsolutePath() + + mount_temp { + docker.temp = tempDir + podman.temp = tempDir + charliecloud.temp = tempDir + } + + no_publish { + process { + withName: '.*' { + publishDir = [ + enabled: false + ] + } + } + } + + docker { + docker.fixOwnership = true + docker.enabled = true + // docker.userEmulation = true + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + + local { + // This config is for local processing. + process { + maxMemory = 25.GB + withLabel: verylowcpu { cpus = 2 } + withLabel: lowcpu { cpus = 4 } + withLabel: midcpu { cpus = 6 } + withLabel: highcpu { cpus = 12 } + + withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } } + withLabel: midmem { memory = { get_memory( 12.GB * task.attempt ) } } + withLabel: highmem { memory = { get_memory( 20.GB * task.attempt ) } } + } + } +} + def get_memory(to_compare) { if (!process.containsKey("maxMemory") || !process.maxMemory) { return to_compare diff --git a/target/nextflow/workflows/htrnaseq/.config.vsh.yaml b/target/nextflow/workflows/htrnaseq/.config.vsh.yaml index 99bf47c8..d587fcfb 100644 --- a/target/nextflow/workflows/htrnaseq/.config.vsh.yaml +++ b/target/nextflow/workflows/htrnaseq/.config.vsh.yaml @@ -6,23 +6,27 @@ argument_groups: arguments: - type: "file" name: "--input_r1" - description: "R1" + description: "Forward reads in FASTQ format. Multiple files can be provided which\ + \ will\nbe demultiplexed separately before joining the results for each individual\ + \ well.\n" info: null must_exist: true create_parent: true required: true direction: "input" - multiple: false + multiple: true multiple_sep: ";" - type: "file" name: "--input_r2" - description: "R2" + description: "Reverse reads in FASTQ format. Multiple files can be provided which\ + \ will\nbe demultiplexed separately before joining the results for each individual\ + \ well.\n" info: null must_exist: true create_parent: true required: true direction: "input" - multiple: false + multiple: true multiple_sep: ";" - type: "file" name: "--barcodesFasta" @@ -42,6 +46,15 @@ argument_groups: direction: "input" multiple: false multiple_sep: ";" + - type: "file" + name: "--annotation" + info: null + must_exist: true + create_parent: true + required: true + direction: "input" + multiple: false + multiple_sep: ";" - name: "Output arguments" arguments: - type: "file" @@ -84,7 +97,51 @@ argument_groups: name: "--nrReadsNrGenesPerChrom" info: null default: - - "nrReadsNrGenesPerChrom.txt" + - "nrReadsNrGenesPerChrom.$id.txt" + must_exist: true + create_parent: true + required: true + direction: "output" + multiple: false + multiple_sep: ";" + - type: "file" + name: "--star_qc_metrics" + info: null + default: + - "starLogs.$id.txt" + must_exist: true + create_parent: true + required: true + direction: "output" + multiple: false + multiple_sep: ";" + - type: "file" + name: "--eset" + info: null + default: + - "eset.$id.rds" + must_exist: true + create_parent: true + required: true + direction: "output" + multiple: false + multiple_sep: ";" + - type: "file" + name: "--f_data" + info: null + default: + - "fData.$id.tsv" + must_exist: true + create_parent: true + required: true + direction: "output" + multiple: false + multiple_sep: ";" + - type: "file" + name: "--p_data" + info: null + default: + - "pData.$id.tsv" must_exist: true create_parent: true required: true @@ -99,12 +156,20 @@ resources: - type: "file" path: "nextflow_labels.config" dest: "nextflow_labels.config" +test_resources: +- type: "nextflow_script" + path: "test.nf" + is_executable: true + entrypoint: "test_wf" info: null status: "enabled" requirements: commands: - "ps" dependencies: +- name: "stats/combine_star_logs" + repository: + type: "local" - name: "stats/generate_pool_statistics" repository: type: "local" @@ -120,11 +185,15 @@ dependencies: - name: "workflows/utils/groupWells" repository: type: "local" -- name: "concat_text" +- name: "eset/create_eset" repository: - type: "vsh" - repo: "craftbox" - tag: "concat_text" + type: "local" +- name: "eset/create_fdata" + repository: + type: "local" +- name: "eset/create_pdata" + repository: + type: "local" repositories: - type: "local" name: "local" @@ -132,10 +201,6 @@ repositories: name: "bb" repo: "biobox" tag: "v0.1.0" -- type: "vsh" - name: "cb" - repo: "craftbox" - tag: "concat_text" license: "MIT" links: repository: "https://github.com/viash-hub/htrnaseq" @@ -214,22 +279,28 @@ build_info: engine: "native|native" output: "target/nextflow/workflows/htrnaseq" executable: "target/nextflow/workflows/htrnaseq/main.nf" - viash_version: "0.9.0-RC7" - git_commit: "cf9797232db1306bfd5696287928cababe317d99" - git_remote: "https://x-access-token:ghs_KjB7pWu8DQM3iFulLu7RI06qnt5K8S1A0eaE@github.com/viash-hub/htrnaseq" + viash_version: "0.9.0" + git_commit: "65dd41d8b1b4a307735c72320c96c0880c75f17f" + git_remote: "https://x-access-token:ghs_McZDF0yobnnHmOEb2Q4JaaB3pzr9mz1VbIOs@github.com/viash-hub/htrnaseq" dependencies: + - "target/nextflow/stats/combine_star_logs" - "target/nextflow/stats/generate_pool_statistics" - "target/nextflow/stats/generate_well_statistics" - "target/nextflow/workflows/well_demultiplex" - "target/nextflow/workflows/parallel_map_wf" - "target/nextflow/workflows/utils/groupWells" - - "target/dependencies/vsh/vsh/craftbox/concat_text/nextflow/concat_text" + - "target/nextflow/eset/create_eset" + - "target/nextflow/eset/create_fdata" + - "target/nextflow/eset/create_pdata" package_config: name: "htrnaseq" version: "main" description: "High-throughput pipeline [WIP]\n" - info: null - viash_version: "0.9.0-RC7" + info: + test_resources: + - path: "gs://viash-hub-test-data/htrnaseq/v1/" + dest: "resources_test" + viash_version: "0.9.0" source: "src" target: "target" config_mods: diff --git a/target/nextflow/workflows/htrnaseq/main.nf b/target/nextflow/workflows/htrnaseq/main.nf index 5ba86687..9b060782 100644 --- a/target/nextflow/workflows/htrnaseq/main.nf +++ b/target/nextflow/workflows/htrnaseq/main.nf @@ -1,8 +1,8 @@ // htrnaseq main // -// This wrapper script is auto-generated by viash 0.9.0-RC7 and is thus a -// derivative work thereof. This software comes with ABSOLUTELY NO WARRANTY from -// Data Intuitive. +// This wrapper script is auto-generated by viash 0.9.0 and is thus a derivative +// work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data +// Intuitive. // // The component may contain files which fall under a different license. The // authors of this component should specify the license in the header of such @@ -1728,7 +1728,9 @@ def publishStates(Map args) { def yamlFilename = yamlTemplate_ .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) // TODO: do the pathnames in state_ match up with the outputFilenames_? @@ -1799,7 +1801,9 @@ def publishStatesByConfig(Map args) { def yamlTemplate = params.containsKey("output_state") ? params.output_state : '$id.$key.state.yaml' def yamlFilename = yamlTemplate .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) def yamlDir = java.nio.file.Paths.get(yamlFilename).getParent() // the processed state is a list of [key, value, inputPath, outputFilename] tuples, where @@ -1841,7 +1845,9 @@ def publishStatesByConfig(Map args) { // instantiate the template def filename = filenameTemplate .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) if (par.multiple) { // if the parameter is multiple: true, the filename // should contain a wildcard '*' that is replaced with @@ -2808,23 +2814,23 @@ meta = [ { "type" : "file", "name" : "--input_r1", - "description" : "R1", + "description" : "Forward reads in FASTQ format. Multiple files can be provided which will\nbe demultiplexed separately before joining the results for each individual well.\n", "must_exist" : true, "create_parent" : true, "required" : true, "direction" : "input", - "multiple" : false, + "multiple" : true, "multiple_sep" : ";" }, { "type" : "file", "name" : "--input_r2", - "description" : "R2", + "description" : "Reverse reads in FASTQ format. Multiple files can be provided which will\nbe demultiplexed separately before joining the results for each individual well.\n", "must_exist" : true, "create_parent" : true, "required" : true, "direction" : "input", - "multiple" : false, + "multiple" : true, "multiple_sep" : ";" }, { @@ -2846,6 +2852,16 @@ meta = [ "direction" : "input", "multiple" : false, "multiple_sep" : ";" + }, + { + "type" : "file", + "name" : "--annotation", + "must_exist" : true, + "create_parent" : true, + "required" : true, + "direction" : "input", + "multiple" : false, + "multiple_sep" : ";" } ] }, @@ -2898,7 +2914,59 @@ meta = [ "type" : "file", "name" : "--nrReadsNrGenesPerChrom", "default" : [ - "nrReadsNrGenesPerChrom.txt" + "nrReadsNrGenesPerChrom.$id.txt" + ], + "must_exist" : true, + "create_parent" : true, + "required" : true, + "direction" : "output", + "multiple" : false, + "multiple_sep" : ";" + }, + { + "type" : "file", + "name" : "--star_qc_metrics", + "default" : [ + "starLogs.$id.txt" + ], + "must_exist" : true, + "create_parent" : true, + "required" : true, + "direction" : "output", + "multiple" : false, + "multiple_sep" : ";" + }, + { + "type" : "file", + "name" : "--eset", + "default" : [ + "eset.$id.rds" + ], + "must_exist" : true, + "create_parent" : true, + "required" : true, + "direction" : "output", + "multiple" : false, + "multiple_sep" : ";" + }, + { + "type" : "file", + "name" : "--f_data", + "default" : [ + "fData.$id.tsv" + ], + "must_exist" : true, + "create_parent" : true, + "required" : true, + "direction" : "output", + "multiple" : false, + "multiple_sep" : ";" + }, + { + "type" : "file", + "name" : "--p_data", + "default" : [ + "pData.$id.tsv" ], "must_exist" : true, "create_parent" : true, @@ -2923,6 +2991,14 @@ meta = [ "dest" : "nextflow_labels.config" } ], + "test_resources" : [ + { + "type" : "nextflow_script", + "path" : "test.nf", + "is_executable" : true, + "entrypoint" : "test_wf" + } + ], "status" : "enabled", "requirements" : { "commands" : [ @@ -2930,6 +3006,12 @@ meta = [ ] }, "dependencies" : [ + { + "name" : "stats/combine_star_logs", + "repository" : { + "type" : "local" + } + }, { "name" : "stats/generate_pool_statistics", "repository" : { @@ -2961,11 +3043,21 @@ meta = [ } }, { - "name" : "concat_text", + "name" : "eset/create_eset", "repository" : { - "type" : "vsh", - "repo" : "craftbox", - "tag" : "concat_text" + "type" : "local" + } + }, + { + "name" : "eset/create_fdata", + "repository" : { + "type" : "local" + } + }, + { + "name" : "eset/create_pdata", + "repository" : { + "type" : "local" } } ], @@ -2979,12 +3071,6 @@ meta = [ "name" : "bb", "repo" : "biobox", "tag" : "v0.1.0" - }, - { - "type" : "vsh", - "name" : "cb", - "repo" : "craftbox", - "tag" : "concat_text" } ], "license" : "MIT", @@ -3078,15 +3164,23 @@ meta = [ "runner" : "nextflow", "engine" : "native|native", "output" : "target/nextflow/workflows/htrnaseq", - "viash_version" : "0.9.0-RC7", - "git_commit" : "cf9797232db1306bfd5696287928cababe317d99", - "git_remote" : "https://x-access-token:ghs_KjB7pWu8DQM3iFulLu7RI06qnt5K8S1A0eaE@github.com/viash-hub/htrnaseq" + "viash_version" : "0.9.0", + "git_commit" : "65dd41d8b1b4a307735c72320c96c0880c75f17f", + "git_remote" : "https://x-access-token:ghs_McZDF0yobnnHmOEb2Q4JaaB3pzr9mz1VbIOs@github.com/viash-hub/htrnaseq" }, "package_config" : { "name" : "htrnaseq", "version" : "main", "description" : "High-throughput pipeline [WIP]\n", - "viash_version" : "0.9.0-RC7", + "info" : { + "test_resources" : [ + { + "path" : "gs://viash-hub-test-data/htrnaseq/v1/", + "dest" : "resources_test" + } + ] + }, + "viash_version" : "0.9.0", "source" : "src", "target" : "target", "config_mods" : [ @@ -3115,12 +3209,15 @@ meta = [ // resolve dependencies dependencies (if any) meta["root_dir"] = getRootDir() +include { combine_star_logs } from "${meta.resources_dir}/../../../nextflow/stats/combine_star_logs/main.nf" include { generate_pool_statistics } from "${meta.resources_dir}/../../../nextflow/stats/generate_pool_statistics/main.nf" include { generate_well_statistics } from "${meta.resources_dir}/../../../nextflow/stats/generate_well_statistics/main.nf" include { well_demultiplex } from "${meta.resources_dir}/../../../nextflow/workflows/well_demultiplex/main.nf" include { parallel_map_wf } from "${meta.resources_dir}/../../../nextflow/workflows/parallel_map_wf/main.nf" include { groupWells } from "${meta.resources_dir}/../../../nextflow/workflows/utils/groupWells/main.nf" -include { concat_text } from "${meta.root_dir}/dependencies/vsh/vsh/craftbox/concat_text/nextflow/concat_text/main.nf" +include { create_eset } from "${meta.resources_dir}/../../../nextflow/eset/create_eset/main.nf" +include { create_fdata } from "${meta.resources_dir}/../../../nextflow/eset/create_fdata/main.nf" +include { create_pdata } from "${meta.resources_dir}/../../../nextflow/eset/create_pdata/main.nf" // inner workflow // user-provided Nextflow code @@ -3129,72 +3226,68 @@ workflow run_wf { input_ch main: - output_ch = input_ch - | well_demultiplex.run( - fromState: { id, state -> - [ - input_r1: state.input_r1, - input_r2: state.input_r2, - barcodesFasta: state.barcodesFasta, - ] - }, - toState: { id, result, state -> - state + result + [ - fastq_output_r1: result.output_r1, - fastq_output_r2: result.output_r2, - input_r1: result.output_r1, - input_r2: result.output_r2, - ] - }, - directives: [label: ["midmem", "midcpu"]] + // The featureData only has one requirement: the genome annotation. + // It can be generated straight away. + f_data_ch = input_ch + | create_fdata.run( + directives: [label: ["lowmem", "lowcpu"]], + fromState: ["gtf": "annotation"], + toState: {id, result, state -> ["f_data": result.output]} ) - // TODO: Expand this into matching a whitelist/blacklist of barcodes - // ... and turn into separate component - | filter{ id, state -> state.barcode != "unknown" } - | concat_text.run( - key: "concat_txt_r1", - runIf: {id, state -> state.input_r1.size() > 1}, - fromState: { id, state -> - [ - input: state.input_r1, - gzip_output: true, - ] - }, + // Perform mapping of each well. The input here are events per pool, + // the output channel is one event per well. + mapping_ch = input_ch + | map {id, state -> + def n_barcodes = state.barcodesFasta.countFasta() as int + def newState = state + ["n_barcodes": n_barcodes] + // The header is the full header, the id is the part header up to the first whitespace character + // We do not allow whitespace in the header of the fasta file, so assert this. + def fasta_entries = state.barcodesFasta.splitFasta(record: ["id": true, "header": true, "seqString": true]) + assert fasta_entries.every{it.id == it.header}, "The barcodes FASTA headers must not contain any whitespace!" + // Check if the fasta headers are unique + def fasta_ids = fasta_entries.collect{it.id} + assert fasta_ids.clone().unique() == fasta_ids, "The barcodes FASTA entries must have a unique name!" + // Check if the sequences are unique + def fasta_sequences = fasta_entries.collect{it.seqString} + assert fasta_sequences.clone().unique() == fasta_sequences, "The barcodes FASTA sequences must be unique!" + [id, newState] + } + | well_demultiplex.run( + fromState: [ + "input_r1": "input_r1", + "input_r2": "input_r2", + "barcodesFasta": "barcodesFasta", + ], toState: { id, result, state -> - state + [ input_r1: [ result.output ] ] - } - ) - | concat_text.run( - key: "concat_text_r2", - runIf: {id, state -> state.input_r2.size() > 1}, - fromState: { id, state -> - [ - input: state.input_r2, - gzip_output: true + def filtered_input = state.findAll{!["input_r1", "input_r2"].contains(it.key)} + def filtered_results = result.findAll{!["output_r1", "output_r2"].contains(it.key)} + def new_state = filtered_input + filtered_results + [ + "fastq_output_r1": result.output_r1, + "fastq_output_r2": result.output_r2, ] - }, - toState: { id, result, state -> - state + [ input_r2: [ result.output ] ] + return new_state } ) | parallel_map_wf.run( fromState: {id, state -> - def star_output = state.star_output[0] [ - "input_r1": state.input_r1[0], - "input_r2": state.input_r2[0], + "input_r1": state.fastq_output_r1[0], + "input_r2": state.fastq_output_r2[0], "barcode": state.barcode, "pool": state.pool, "output": state.star_output[0], "genomeDir": state.genomeDir, ] }, - toState: {id, result, state -> - state + ["star_output": result.output] - }, + toState: ["star_output": "output"] ) + + // From the mapped wells, create statistics based on the BAM file + // and join the events back to pool level. + pool_ch = mapping_ch | generate_well_statistics.run( + directives: [label: ["verylowmem", "verylowcpu"]], fromState: { id, state -> [ "input": state.star_output.resolve('Aligned.sortedByCoord.out.bam'), @@ -3203,39 +3296,132 @@ workflow run_wf { }, toState: [ "nrReadsNrGenesPerChrom": "nrReadsNrGenesPerChrom", - "nrReadsNrUMIsPerCB": "nrReadsNrUMIsPerCB", ] ) - | map {id, state -> - [state.pool, id, state] + | map {id, state -> + // Create a special groupKey, such that groupTuple + // knows when all the barcodes have been grouped into 1 event. + // This way the processing is as distributed as possible. + def key = groupKey(state.pool, state.n_barcodes) + def newEvent = [key, state] + return newEvent } - | groupTuple(by: 0, sort: "hash") - | map {id, well_ids, states -> - def collected_state = [ + // Use a custom sorting function because sort: 'hash' + // requires a hash to be calculated on every entry of the state + // This is inefficient when the number of events is large + // (i.e large number or barcodes). + // Sorting on lexographical order of the barcode is sufficient here. + | groupTuple(sort: {a, b -> a.barcode <=> b.barcode}) + | map {id, states -> + // Gather the keys from all states. for some state items, + // we need gather all the different items from across the states + def barcodes = states.collect{it.barcode} + assert barcodes.clone().unique().size() == barcodes.size(), \ + "Error when gathering information for pool ${id}, barcodes are not unique!" + def custom_state = [ "fastq_output_r1": states.collect{it.fastq_output_r1[0]}, "fastq_output_r2": states.collect{it.fastq_output_r2[0]}, + "barcode": barcodes, + "star_output": states.collect{it.star_output}, "nrReadsNrGenesPerChrom": states.collect{it.nrReadsNrGenesPerChrom}, ] - def newState = states[0] + collected_state - [id, newState] + //For many state items, the value is the same across states. + def other_state_keys = states.inject([].toSet()){ current_keys, state -> + def new_keys = current_keys + state.keySet() + return new_keys + }.minus(custom_state.keySet()) + // All other state should have a unique value + def old_state_items = other_state_keys.inject([:]){ old_state, argument_name -> + argument_values = states.collect{it.get(argument_name)}.unique() + assert argument_values.size() == 1, "Arguments should be the same across modalities. Please report this \ + as a bug. Argument name: $argument_name, \ + argument value: $argument_values" + def argument_value + argument_values.each { argument_value = it } + def current_state = old_state + [(argument_name): argument_value] + return current_state + } + + def new_state = custom_state + old_state_items + [id.getGroupTarget(), new_state] } + + // The well statistics are merged on pool level. + pool_statistics_ch = pool_ch | generate_pool_statistics.run( + directives: ["label": ["lowmem", "verylowcpu"]], fromState: [ "nrReadsNrGenesPerChrom": "nrReadsNrGenesPerChrom", ], - toState: {id, result, state -> - state + ["nrReadsNrGenesPerChrom": result.nrReadsNrGenesPerChromPool] - } + toState: [ + "nrReadsNrGenesPerChromPool": "nrReadsNrGenesPerChromPool" + ] + ) + + // The statistics from the STAR logs of different wells are joined + // on pool level + star_logs_ch = pool_ch + | combine_star_logs.run( + directives: ["label": ["lowmem", "verylowcpu"]], + fromState: {id, state -> [ + "star_logs": state.star_output.collect{it.resolve("Log.final.out")}, + "gene_summary_logs": state.star_output.collect{it.resolve("Solo.out/Gene/Summary.csv")}, + "reads_per_gene_logs": state.star_output.collect{it.resolve("ReadsPerGene.out.tab")}, + "barcodes": state.barcode, + "output": state.star_qc_metrics + ] + }, + toState: [ + "star_qc_metrics": "output", + ] + ) + + p_data_ch = star_logs_ch.join(pool_statistics_ch, remainder: true) + | map {id, star_logs_state, pool_statistics_state -> + def newState = star_logs_state + ["nrReadsNrGenesPerChromPool": pool_statistics_state.nrReadsNrGenesPerChromPool] + return [id, newState] + } + | create_pdata.run( + directives: [label: ["lowmem", "lowcpu"]], + fromState: [ + "star_stats_file": "star_qc_metrics", + "nrReadsNrGenesPerChromPool": "nrReadsNrGenesPerChromPool", + ], + toState: ["p_data": "output"], + ) + + output_ch = p_data_ch.join(f_data_ch, remainder: true) + | map {id, p_data_state, f_data_state -> + def newState = p_data_state + ["f_data": f_data_state["f_data"]] + [id, newState] + } + | create_eset.run( + directives: [label: ["lowmem", "lowcpu"]], + fromState: [ + "pDataFile": "p_data", + "fDataFile": "f_data", + "mappingDir": "star_output", + "output": "eset", + "barcodes": "barcode", + "poolName": "pool", + ], + toState: [ + "eset": "output", + ] ) - | niceView() | setState([ - "star_output", - "fastq_output_r1", - "fastq_output_r2", - "star_output", - "nrReadsNrGenesPerChrom", + "star_output": "star_output", + "fastq_output_r1": "fastq_output_r1", + "fastq_output_r2": "fastq_output_r2", + "star_output": "star_output", + "nrReadsNrGenesPerChrom": "nrReadsNrGenesPerChromPool", + "star_qc_metrics": "star_qc_metrics", + "eset": "eset", + "f_data": "f_data", + "p_data": "p_data" ]) + emit: output_ch } diff --git a/target/nextflow/workflows/htrnaseq/nextflow_labels.config b/target/nextflow/workflows/htrnaseq/nextflow_labels.config index 9ea88b1b..66f5e21c 100644 --- a/target/nextflow/workflows/htrnaseq/nextflow_labels.config +++ b/target/nextflow/workflows/htrnaseq/nextflow_labels.config @@ -1,26 +1,88 @@ +executor { + $k8s { + submitRateLimit = '10sec' + pollInterval = '1 sec' + } +} + process { - // Default resources for components that hardly do any processing - memory = { 2.GB * task.attempt } - cpus = 1 + container = 'nextflow/bash:latest' + + // default resources + memory = { 8.Gb * task.attempt } + cpus = 8 + maxForks = 36 // Retry for exit codes that have something to do with memory issues errorStrategy = { task.exitStatus in 137..140 ? 'retry' : 'terminate' } maxRetries = 3 - maxMemory = null + maxMemory = 192.GB // Resource labels - withLabel: singlecpu { cpus = 1 } - withLabel: lowcpu { cpus = 4 } - withLabel: midcpu { cpus = 10 } - withLabel: highcpu { cpus = 20 } + withLabel: verylowcpu { cpus = 2 } + withLabel: lowcpu { cpus = 8 } + withLabel: midcpu { cpus = 16 } + withLabel: highcpu { cpus = 32 } - 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 ) } } + withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } } + withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } } + withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } } + withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } } } +profiles { + // detect tempdir + tempDir = java.nio.file.Paths.get( + System.getenv('NXF_TEMP') ?: + System.getenv('VIASH_TEMP') ?: + System.getenv('TEMPDIR') ?: + System.getenv('TMPDIR') ?: + '/tmp' + ).toAbsolutePath() + + mount_temp { + docker.temp = tempDir + podman.temp = tempDir + charliecloud.temp = tempDir + } + + no_publish { + process { + withName: '.*' { + publishDir = [ + enabled: false + ] + } + } + } + + docker { + docker.fixOwnership = true + docker.enabled = true + // docker.userEmulation = true + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + + local { + // This config is for local processing. + process { + maxMemory = 25.GB + withLabel: verylowcpu { cpus = 2 } + withLabel: lowcpu { cpus = 4 } + withLabel: midcpu { cpus = 6 } + withLabel: highcpu { cpus = 12 } + + withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } } + withLabel: midmem { memory = { get_memory( 12.GB * task.attempt ) } } + withLabel: highmem { memory = { get_memory( 20.GB * task.attempt ) } } + } + } +} + def get_memory(to_compare) { if (!process.containsKey("maxMemory") || !process.maxMemory) { return to_compare diff --git a/target/nextflow/workflows/htrnaseq/nextflow_schema.json b/target/nextflow/workflows/htrnaseq/nextflow_schema.json index 5534e137..89a8dc72 100644 --- a/target/nextflow/workflows/htrnaseq/nextflow_schema.json +++ b/target/nextflow/workflows/htrnaseq/nextflow_schema.json @@ -17,8 +17,8 @@ "input_r1": { "type": "string", - "description": "Type: `file`, required. R1", - "help_text": "Type: `file`, required. R1" + "description": "Type: List of `file`, required, multiple_sep: `\";\"`. Forward reads in FASTQ format", + "help_text": "Type: List of `file`, required, multiple_sep: `\";\"`. Forward reads in FASTQ format. Multiple files can be provided which will\nbe demultiplexed separately before joining the results for each individual well.\n" } @@ -27,8 +27,8 @@ "input_r2": { "type": "string", - "description": "Type: `file`, required. R2", - "help_text": "Type: `file`, required. R2" + "description": "Type: List of `file`, required, multiple_sep: `\";\"`. Reverse reads in FASTQ format", + "help_text": "Type: List of `file`, required, multiple_sep: `\";\"`. Reverse reads in FASTQ format. Multiple files can be provided which will\nbe demultiplexed separately before joining the results for each individual well.\n" } @@ -53,6 +53,16 @@ } + , + "annotation": { + "type": + "string", + "description": "Type: `file`, required. ", + "help_text": "Type: `file`, required. " + + } + + } }, @@ -107,6 +117,50 @@ } + , + "star_qc_metrics": { + "type": + "string", + "description": "Type: `file`, required, default: `$id.$key.star_qc_metrics.txt`. ", + "help_text": "Type: `file`, required, default: `$id.$key.star_qc_metrics.txt`. " + , + "default": "$id.$key.star_qc_metrics.txt" + } + + + , + "eset": { + "type": + "string", + "description": "Type: `file`, required, default: `$id.$key.eset.rds`. ", + "help_text": "Type: `file`, required, default: `$id.$key.eset.rds`. " + , + "default": "$id.$key.eset.rds" + } + + + , + "f_data": { + "type": + "string", + "description": "Type: `file`, required, default: `$id.$key.f_data.tsv`. ", + "help_text": "Type: `file`, required, default: `$id.$key.f_data.tsv`. " + , + "default": "$id.$key.f_data.tsv" + } + + + , + "p_data": { + "type": + "string", + "description": "Type: `file`, required, default: `$id.$key.p_data.tsv`. ", + "help_text": "Type: `file`, required, default: `$id.$key.p_data.tsv`. " + , + "default": "$id.$key.p_data.tsv" + } + + } }, diff --git a/target/nextflow/workflows/parallel_map_wf/.config.vsh.yaml b/target/nextflow/workflows/parallel_map_wf/.config.vsh.yaml index 726f8115..ab2bb5cd 100644 --- a/target/nextflow/workflows/parallel_map_wf/.config.vsh.yaml +++ b/target/nextflow/workflows/parallel_map_wf/.config.vsh.yaml @@ -160,9 +160,9 @@ build_info: engine: "native|native" output: "target/nextflow/workflows/parallel_map_wf" executable: "target/nextflow/workflows/parallel_map_wf/main.nf" - viash_version: "0.9.0-RC7" - git_commit: "cf9797232db1306bfd5696287928cababe317d99" - git_remote: "https://x-access-token:ghs_KjB7pWu8DQM3iFulLu7RI06qnt5K8S1A0eaE@github.com/viash-hub/htrnaseq" + viash_version: "0.9.0" + git_commit: "65dd41d8b1b4a307735c72320c96c0880c75f17f" + git_remote: "https://x-access-token:ghs_McZDF0yobnnHmOEb2Q4JaaB3pzr9mz1VbIOs@github.com/viash-hub/htrnaseq" dependencies: - "target/nextflow/parallel_map" - "target/nextflow/workflows/utils/groupWells" @@ -170,8 +170,11 @@ package_config: name: "htrnaseq" version: "main" description: "High-throughput pipeline [WIP]\n" - info: null - viash_version: "0.9.0-RC7" + info: + test_resources: + - path: "gs://viash-hub-test-data/htrnaseq/v1/" + dest: "resources_test" + viash_version: "0.9.0" source: "src" target: "target" config_mods: diff --git a/target/nextflow/workflows/parallel_map_wf/main.nf b/target/nextflow/workflows/parallel_map_wf/main.nf index 54cc13a0..10f35123 100644 --- a/target/nextflow/workflows/parallel_map_wf/main.nf +++ b/target/nextflow/workflows/parallel_map_wf/main.nf @@ -1,8 +1,8 @@ // parallel_map_wf main // -// This wrapper script is auto-generated by viash 0.9.0-RC7 and is thus a -// derivative work thereof. This software comes with ABSOLUTELY NO WARRANTY from -// Data Intuitive. +// This wrapper script is auto-generated by viash 0.9.0 and is thus a derivative +// work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data +// Intuitive. // // The component may contain files which fall under a different license. The // authors of this component should specify the license in the header of such @@ -1728,7 +1728,9 @@ def publishStates(Map args) { def yamlFilename = yamlTemplate_ .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) // TODO: do the pathnames in state_ match up with the outputFilenames_? @@ -1799,7 +1801,9 @@ def publishStatesByConfig(Map args) { def yamlTemplate = params.containsKey("output_state") ? params.output_state : '$id.$key.state.yaml' def yamlFilename = yamlTemplate .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) def yamlDir = java.nio.file.Paths.get(yamlFilename).getParent() // the processed state is a list of [key, value, inputPath, outputFilename] tuples, where @@ -1841,7 +1845,9 @@ def publishStatesByConfig(Map args) { // instantiate the template def filename = filenameTemplate .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) if (par.multiple) { // if the parameter is multiple: true, the filename // should contain a wildcard '*' that is replaced with @@ -2995,15 +3001,23 @@ meta = [ "runner" : "nextflow", "engine" : "native|native", "output" : "target/nextflow/workflows/parallel_map_wf", - "viash_version" : "0.9.0-RC7", - "git_commit" : "cf9797232db1306bfd5696287928cababe317d99", - "git_remote" : "https://x-access-token:ghs_KjB7pWu8DQM3iFulLu7RI06qnt5K8S1A0eaE@github.com/viash-hub/htrnaseq" + "viash_version" : "0.9.0", + "git_commit" : "65dd41d8b1b4a307735c72320c96c0880c75f17f", + "git_remote" : "https://x-access-token:ghs_McZDF0yobnnHmOEb2Q4JaaB3pzr9mz1VbIOs@github.com/viash-hub/htrnaseq" }, "package_config" : { "name" : "htrnaseq", "version" : "main", "description" : "High-throughput pipeline [WIP]\n", - "viash_version" : "0.9.0-RC7", + "info" : { + "test_resources" : [ + { + "path" : "gs://viash-hub-test-data/htrnaseq/v1/", + "dest" : "resources_test" + } + ] + }, + "viash_version" : "0.9.0", "source" : "src", "target" : "target", "config_mods" : [ @@ -3044,21 +3058,17 @@ workflow run_wf { main: pool_ch = input_ch | groupWells.run( - fromState: { id, state -> - [ - "input_r1": state.input_r1, - "input_r2": state.input_r2, - "well": state.barcode, - "pool": state.pool, - ] - }, - toState: { id, result, state -> - state + [ - "wells": result.wells, - "input_r1": result.output_r1, - "input_r2": result.output_r2, - ] - } + fromState: [ + "input_r1": "input_r1", + "input_r2": "input_r2", + "well": "barcode", + "pool": "pool", + ], + toState: [ + "wells": "wells", + "input_r1": "output_r1", + "input_r2": "output_r2", + ] ) | parallel_map.run( fromState: { id, state -> @@ -3073,36 +3083,41 @@ workflow run_wf { "output": state.output, ] }, - toState: { id, result, state -> - state + [ - output: result.output, - ] - }, - directives: [label: ["midmem", "midcpu"]] + toState: ["output": "output"], + directives: ["label": ["highmem", "lowcpu"]], ) - | setState(["output"]) + | setState(["output", "pool"]) + // input_ch is on pool level, while parallel_map + // outputs multiple events per pool. + // Join the results back to pool level input_join_ch = input_ch | map {id, state -> - [state.pool, id, state] + def newEvent = [state.pool, id, state] + return newEvent } + output_ch = input_join_ch.combine(pool_ch, by: 0) | map {pool, well_id, state_well, state_pool -> - well_output = state_pool.output.findAll{star_output_dir -> + def well_output = state_pool.output.findAll{star_output_dir -> def barcodes_list = [] - def barcode_file_regex = ~/.*\/raw\/barcodes\.tsv$/ - star_output_dir.eachFileRecurse{barcode_file -> - if (barcode_file =~ barcode_file_regex) { - assert barcode_file.countLines() == 1, "Expected only one barcode in a single STAR output." - barcodes_list.add(barcode_file.text.trim()) - } - } - assert barcodes_list.size() == 1, "Exactly one file should have matched the barcodes file regex (found: $barcodes_list)." + // Get the barcode from the STAR file. + // One STAR output contains the results for one + // well barcode. We can look for the barcode in + // the 'Solo.out/Gene/raw/barcode.tsv' file. + def barcodes_files = files("${star_output_dir}/Solo.out/Gene/raw/barcodes.tsv") + assert barcodes_files.size() == 1, \ + "Exactly one file should have matched the barcodes files (found: $barcodes_files)." def barcode - barcodes_list.each{ it -> barcode = it } + barcodes_files.each{ it -> + assert it.countLines() == 1, + "Expected only one barcode in a single STAR output." + barcode = it.text.trim() + } return barcode == state_well.barcode } - assert well_output.size() == 1, "Two or more outputs from the mapping seemed to have processed barcode '$barcode'." + assert well_output.size() == 1, \ + "Two or more outputs from the mapping seemed to have processed barcode '$barcode'." [well_id, ["output": well_output[0]]] } diff --git a/target/nextflow/workflows/parallel_map_wf/nextflow_labels.config b/target/nextflow/workflows/parallel_map_wf/nextflow_labels.config index 9ea88b1b..66f5e21c 100644 --- a/target/nextflow/workflows/parallel_map_wf/nextflow_labels.config +++ b/target/nextflow/workflows/parallel_map_wf/nextflow_labels.config @@ -1,26 +1,88 @@ +executor { + $k8s { + submitRateLimit = '10sec' + pollInterval = '1 sec' + } +} + process { - // Default resources for components that hardly do any processing - memory = { 2.GB * task.attempt } - cpus = 1 + container = 'nextflow/bash:latest' + + // default resources + memory = { 8.Gb * task.attempt } + cpus = 8 + maxForks = 36 // Retry for exit codes that have something to do with memory issues errorStrategy = { task.exitStatus in 137..140 ? 'retry' : 'terminate' } maxRetries = 3 - maxMemory = null + maxMemory = 192.GB // Resource labels - withLabel: singlecpu { cpus = 1 } - withLabel: lowcpu { cpus = 4 } - withLabel: midcpu { cpus = 10 } - withLabel: highcpu { cpus = 20 } + withLabel: verylowcpu { cpus = 2 } + withLabel: lowcpu { cpus = 8 } + withLabel: midcpu { cpus = 16 } + withLabel: highcpu { cpus = 32 } - 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 ) } } + withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } } + withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } } + withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } } + withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } } } +profiles { + // detect tempdir + tempDir = java.nio.file.Paths.get( + System.getenv('NXF_TEMP') ?: + System.getenv('VIASH_TEMP') ?: + System.getenv('TEMPDIR') ?: + System.getenv('TMPDIR') ?: + '/tmp' + ).toAbsolutePath() + + mount_temp { + docker.temp = tempDir + podman.temp = tempDir + charliecloud.temp = tempDir + } + + no_publish { + process { + withName: '.*' { + publishDir = [ + enabled: false + ] + } + } + } + + docker { + docker.fixOwnership = true + docker.enabled = true + // docker.userEmulation = true + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + + local { + // This config is for local processing. + process { + maxMemory = 25.GB + withLabel: verylowcpu { cpus = 2 } + withLabel: lowcpu { cpus = 4 } + withLabel: midcpu { cpus = 6 } + withLabel: highcpu { cpus = 12 } + + withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } } + withLabel: midmem { memory = { get_memory( 12.GB * task.attempt ) } } + withLabel: highmem { memory = { get_memory( 20.GB * task.attempt ) } } + } + } +} + def get_memory(to_compare) { if (!process.containsKey("maxMemory") || !process.maxMemory) { return to_compare diff --git a/target/nextflow/workflows/utils/groupWells/.config.vsh.yaml b/target/nextflow/workflows/utils/groupWells/.config.vsh.yaml index cb66d8fd..385e68a0 100644 --- a/target/nextflow/workflows/utils/groupWells/.config.vsh.yaml +++ b/target/nextflow/workflows/utils/groupWells/.config.vsh.yaml @@ -170,15 +170,18 @@ build_info: engine: "native" output: "target/nextflow/workflows/utils/groupWells" executable: "target/nextflow/workflows/utils/groupWells/main.nf" - viash_version: "0.9.0-RC7" - git_commit: "cf9797232db1306bfd5696287928cababe317d99" - git_remote: "https://x-access-token:ghs_KjB7pWu8DQM3iFulLu7RI06qnt5K8S1A0eaE@github.com/viash-hub/htrnaseq" + viash_version: "0.9.0" + git_commit: "65dd41d8b1b4a307735c72320c96c0880c75f17f" + git_remote: "https://x-access-token:ghs_McZDF0yobnnHmOEb2Q4JaaB3pzr9mz1VbIOs@github.com/viash-hub/htrnaseq" package_config: name: "htrnaseq" version: "main" description: "High-throughput pipeline [WIP]\n" - info: null - viash_version: "0.9.0-RC7" + info: + test_resources: + - path: "gs://viash-hub-test-data/htrnaseq/v1/" + dest: "resources_test" + viash_version: "0.9.0" source: "src" target: "target" config_mods: diff --git a/target/nextflow/workflows/utils/groupWells/main.nf b/target/nextflow/workflows/utils/groupWells/main.nf index 9d27978c..3e277950 100644 --- a/target/nextflow/workflows/utils/groupWells/main.nf +++ b/target/nextflow/workflows/utils/groupWells/main.nf @@ -1,8 +1,8 @@ // groupWells main // -// This wrapper script is auto-generated by viash 0.9.0-RC7 and is thus a -// derivative work thereof. This software comes with ABSOLUTELY NO WARRANTY from -// Data Intuitive. +// This wrapper script is auto-generated by viash 0.9.0 and is thus a derivative +// work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data +// Intuitive. // // The component may contain files which fall under a different license. The // authors of this component should specify the license in the header of such @@ -1728,7 +1728,9 @@ def publishStates(Map args) { def yamlFilename = yamlTemplate_ .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) // TODO: do the pathnames in state_ match up with the outputFilenames_? @@ -1799,7 +1801,9 @@ def publishStatesByConfig(Map args) { def yamlTemplate = params.containsKey("output_state") ? params.output_state : '$id.$key.state.yaml' def yamlFilename = yamlTemplate .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) def yamlDir = java.nio.file.Paths.get(yamlFilename).getParent() // the processed state is a list of [key, value, inputPath, outputFilename] tuples, where @@ -1841,7 +1845,9 @@ def publishStatesByConfig(Map args) { // instantiate the template def filename = filenameTemplate .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) if (par.multiple) { // if the parameter is multiple: true, the filename // should contain a wildcard '*' that is replaced with @@ -3006,15 +3012,23 @@ meta = [ "runner" : "nextflow", "engine" : "native", "output" : "target/nextflow/workflows/utils/groupWells", - "viash_version" : "0.9.0-RC7", - "git_commit" : "cf9797232db1306bfd5696287928cababe317d99", - "git_remote" : "https://x-access-token:ghs_KjB7pWu8DQM3iFulLu7RI06qnt5K8S1A0eaE@github.com/viash-hub/htrnaseq" + "viash_version" : "0.9.0", + "git_commit" : "65dd41d8b1b4a307735c72320c96c0880c75f17f", + "git_remote" : "https://x-access-token:ghs_McZDF0yobnnHmOEb2Q4JaaB3pzr9mz1VbIOs@github.com/viash-hub/htrnaseq" }, "package_config" : { "name" : "htrnaseq", "version" : "main", "description" : "High-throughput pipeline [WIP]\n", - "viash_version" : "0.9.0-RC7", + "info" : { + "test_resources" : [ + { + "path" : "gs://viash-hub-test-data/htrnaseq/v1/", + "dest" : "resources_test" + } + ] + }, + "viash_version" : "0.9.0", "source" : "src", "target" : "target", "config_mods" : [ diff --git a/target/nextflow/workflows/utils/groupWells/nextflow_labels.config b/target/nextflow/workflows/utils/groupWells/nextflow_labels.config index 9ea88b1b..66f5e21c 100644 --- a/target/nextflow/workflows/utils/groupWells/nextflow_labels.config +++ b/target/nextflow/workflows/utils/groupWells/nextflow_labels.config @@ -1,26 +1,88 @@ +executor { + $k8s { + submitRateLimit = '10sec' + pollInterval = '1 sec' + } +} + process { - // Default resources for components that hardly do any processing - memory = { 2.GB * task.attempt } - cpus = 1 + container = 'nextflow/bash:latest' + + // default resources + memory = { 8.Gb * task.attempt } + cpus = 8 + maxForks = 36 // Retry for exit codes that have something to do with memory issues errorStrategy = { task.exitStatus in 137..140 ? 'retry' : 'terminate' } maxRetries = 3 - maxMemory = null + maxMemory = 192.GB // Resource labels - withLabel: singlecpu { cpus = 1 } - withLabel: lowcpu { cpus = 4 } - withLabel: midcpu { cpus = 10 } - withLabel: highcpu { cpus = 20 } + withLabel: verylowcpu { cpus = 2 } + withLabel: lowcpu { cpus = 8 } + withLabel: midcpu { cpus = 16 } + withLabel: highcpu { cpus = 32 } - 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 ) } } + withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } } + withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } } + withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } } + withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } } } +profiles { + // detect tempdir + tempDir = java.nio.file.Paths.get( + System.getenv('NXF_TEMP') ?: + System.getenv('VIASH_TEMP') ?: + System.getenv('TEMPDIR') ?: + System.getenv('TMPDIR') ?: + '/tmp' + ).toAbsolutePath() + + mount_temp { + docker.temp = tempDir + podman.temp = tempDir + charliecloud.temp = tempDir + } + + no_publish { + process { + withName: '.*' { + publishDir = [ + enabled: false + ] + } + } + } + + docker { + docker.fixOwnership = true + docker.enabled = true + // docker.userEmulation = true + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + + local { + // This config is for local processing. + process { + maxMemory = 25.GB + withLabel: verylowcpu { cpus = 2 } + withLabel: lowcpu { cpus = 4 } + withLabel: midcpu { cpus = 6 } + withLabel: highcpu { cpus = 12 } + + withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } } + withLabel: midmem { memory = { get_memory( 12.GB * task.attempt ) } } + withLabel: highmem { memory = { get_memory( 20.GB * task.attempt ) } } + } + } +} + def get_memory(to_compare) { if (!process.containsKey("maxMemory") || !process.maxMemory) { return to_compare diff --git a/target/nextflow/workflows/well_demultiplex/.config.vsh.yaml b/target/nextflow/workflows/well_demultiplex/.config.vsh.yaml index d3fdaf2f..e188ace5 100644 --- a/target/nextflow/workflows/well_demultiplex/.config.vsh.yaml +++ b/target/nextflow/workflows/well_demultiplex/.config.vsh.yaml @@ -6,23 +6,27 @@ argument_groups: arguments: - type: "file" name: "--input_r1" - description: "R1" + description: "Forward reads in FASTQ format. Multiple files can be provided which\ + \ will\nbe demultiplexed separately before joining the results for each individual\ + \ well.\n" info: null must_exist: true create_parent: true required: true direction: "input" - multiple: false + multiple: true multiple_sep: ";" - type: "file" name: "--input_r2" - description: "R2" + description: "Reverse reads in FASTQ format. Multiple files can be provided which\ + \ will\nbe demultiplexed separately before joining the results for each individual\ + \ well.\n" info: null must_exist: true create_parent: true required: true direction: "input" - multiple: false + multiple: true multiple_sep: ";" - type: "file" name: "--barcodesFasta" @@ -112,11 +116,20 @@ dependencies: repository: type: "vsh" repo: "biobox" + tag: "main" +- name: "concat_text" + repository: + type: "vsh" + repo: "craftbox" tag: "v0.1.0" repositories: - type: "vsh" name: "bb" repo: "biobox" + tag: "main" +- type: "vsh" + name: "cb" + repo: "craftbox" tag: "v0.1.0" license: "MIT" links: @@ -196,17 +209,21 @@ build_info: engine: "native|native" output: "target/nextflow/workflows/well_demultiplex" executable: "target/nextflow/workflows/well_demultiplex/main.nf" - viash_version: "0.9.0-RC7" - git_commit: "cf9797232db1306bfd5696287928cababe317d99" - git_remote: "https://x-access-token:ghs_KjB7pWu8DQM3iFulLu7RI06qnt5K8S1A0eaE@github.com/viash-hub/htrnaseq" + viash_version: "0.9.0" + git_commit: "65dd41d8b1b4a307735c72320c96c0880c75f17f" + git_remote: "https://x-access-token:ghs_McZDF0yobnnHmOEb2Q4JaaB3pzr9mz1VbIOs@github.com/viash-hub/htrnaseq" dependencies: - - "target/dependencies/vsh/vsh/biobox/v0.1.0/nextflow/cutadapt" + - "target/dependencies/vsh/vsh/biobox/main/nextflow/cutadapt" + - "target/dependencies/vsh/vsh/craftbox/v0.1.0/nextflow/concat_text" package_config: name: "htrnaseq" version: "main" description: "High-throughput pipeline [WIP]\n" - info: null - viash_version: "0.9.0-RC7" + info: + test_resources: + - path: "gs://viash-hub-test-data/htrnaseq/v1/" + dest: "resources_test" + viash_version: "0.9.0" source: "src" target: "target" config_mods: diff --git a/target/nextflow/workflows/well_demultiplex/main.nf b/target/nextflow/workflows/well_demultiplex/main.nf index 0850482d..a4b4e9cd 100644 --- a/target/nextflow/workflows/well_demultiplex/main.nf +++ b/target/nextflow/workflows/well_demultiplex/main.nf @@ -1,8 +1,8 @@ // well_demultiplex main // -// This wrapper script is auto-generated by viash 0.9.0-RC7 and is thus a -// derivative work thereof. This software comes with ABSOLUTELY NO WARRANTY from -// Data Intuitive. +// This wrapper script is auto-generated by viash 0.9.0 and is thus a derivative +// work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data +// Intuitive. // // The component may contain files which fall under a different license. The // authors of this component should specify the license in the header of such @@ -1728,7 +1728,9 @@ def publishStates(Map args) { def yamlFilename = yamlTemplate_ .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) // TODO: do the pathnames in state_ match up with the outputFilenames_? @@ -1799,7 +1801,9 @@ def publishStatesByConfig(Map args) { def yamlTemplate = params.containsKey("output_state") ? params.output_state : '$id.$key.state.yaml' def yamlFilename = yamlTemplate .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) def yamlDir = java.nio.file.Paths.get(yamlFilename).getParent() // the processed state is a list of [key, value, inputPath, outputFilename] tuples, where @@ -1841,7 +1845,9 @@ def publishStatesByConfig(Map args) { // instantiate the template def filename = filenameTemplate .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) if (par.multiple) { // if the parameter is multiple: true, the filename // should contain a wildcard '*' that is replaced with @@ -2808,23 +2814,23 @@ meta = [ { "type" : "file", "name" : "--input_r1", - "description" : "R1", + "description" : "Forward reads in FASTQ format. Multiple files can be provided which will\nbe demultiplexed separately before joining the results for each individual well.\n", "must_exist" : true, "create_parent" : true, "required" : true, "direction" : "input", - "multiple" : false, + "multiple" : true, "multiple_sep" : ";" }, { "type" : "file", "name" : "--input_r2", - "description" : "R2", + "description" : "Reverse reads in FASTQ format. Multiple files can be provided which will\nbe demultiplexed separately before joining the results for each individual well.\n", "must_exist" : true, "create_parent" : true, "required" : true, "direction" : "input", - "multiple" : false, + "multiple" : true, "multiple_sep" : ";" }, { @@ -2940,6 +2946,14 @@ meta = [ "repository" : { "type" : "vsh", "repo" : "biobox", + "tag" : "main" + } + }, + { + "name" : "concat_text", + "repository" : { + "type" : "vsh", + "repo" : "craftbox", "tag" : "v0.1.0" } } @@ -2949,6 +2963,12 @@ meta = [ "type" : "vsh", "name" : "bb", "repo" : "biobox", + "tag" : "main" + }, + { + "type" : "vsh", + "name" : "cb", + "repo" : "craftbox", "tag" : "v0.1.0" } ], @@ -3043,15 +3063,23 @@ meta = [ "runner" : "nextflow", "engine" : "native|native", "output" : "target/nextflow/workflows/well_demultiplex", - "viash_version" : "0.9.0-RC7", - "git_commit" : "cf9797232db1306bfd5696287928cababe317d99", - "git_remote" : "https://x-access-token:ghs_KjB7pWu8DQM3iFulLu7RI06qnt5K8S1A0eaE@github.com/viash-hub/htrnaseq" + "viash_version" : "0.9.0", + "git_commit" : "65dd41d8b1b4a307735c72320c96c0880c75f17f", + "git_remote" : "https://x-access-token:ghs_McZDF0yobnnHmOEb2Q4JaaB3pzr9mz1VbIOs@github.com/viash-hub/htrnaseq" }, "package_config" : { "name" : "htrnaseq", "version" : "main", "description" : "High-throughput pipeline [WIP]\n", - "viash_version" : "0.9.0-RC7", + "info" : { + "test_resources" : [ + { + "path" : "gs://viash-hub-test-data/htrnaseq/v1/", + "dest" : "resources_test" + } + ] + }, + "viash_version" : "0.9.0", "source" : "src", "target" : "target", "config_mods" : [ @@ -3080,7 +3108,8 @@ meta = [ // resolve dependencies dependencies (if any) meta["root_dir"] = getRootDir() -include { cutadapt } from "${meta.root_dir}/dependencies/vsh/vsh/biobox/v0.1.0/nextflow/cutadapt/main.nf" +include { cutadapt } from "${meta.root_dir}/dependencies/vsh/vsh/biobox/main/nextflow/cutadapt/main.nf" +include { concat_text } from "${meta.root_dir}/dependencies/vsh/vsh/craftbox/v0.1.0/nextflow/concat_text/main.nf" // inner workflow // user-provided Nextflow code @@ -3090,61 +3119,134 @@ workflow run_wf { main: output_ch = input_ch + | flatMap {id, state -> + assert state.input_r1.size() == state.input_r2.size(), "Expected equal number of inputs for R1 and R2" + def n_lanes = state.input_r1.size() + [state.input_r1, state.input_r2].transpose().withIndex().collect{ input_pair, index -> + def single_input_r1 = input_pair[0] + def single_input_r2 = input_pair[1] + def newState = state + ["input_r1": single_input_r1, + "input_r2": single_input_r2, + "pool": id, + "lane_sorting": index, + "n_lanes": n_lanes] + def newId = id + "_" + index + [newId, newState] + } + } | cutadapt.run( - // TODO: Remove hard-coded directives and replace with profiles - directives: [ - cpus: 4 - ], + directives: [label: ["highmem", "midcpu"]], fromState: { id, state -> + def new_output = ("fastq_${state.lane_sorting}/*_001.fastq") [ input: state.input_r1, input_r2: state.input_r2, no_indels: true, action: "none", front_fasta: state.barcodesFasta, - output: "fastq/*_001.fastq" + output: new_output, + error_rate: 0.10, + demultiplex_mode: "single", ] }, toState: { id, result, state -> - [ + def newState = [ + pool: state.pool, + n_lanes: state.n_lanes, output: result.output, + lane_sorting: state.lane_sorting, ] + return newState } ) // Parse the file names to obtain metadata about the output | flatMap{ id, state -> + def pool = state.pool state.output.collect{ p -> def barcode = (p =~ /.*\\/([ACTG]*|unknown)_R?.*/)[0][1] def pair_end = (p =~ /.*_(R[12])_.*/)[0][1] def lane = (p =~ /.*_(L\d+).*/) ? (p =~ /.*_(L\d+).*/)[0][1] : "NA" - def new_id = id + "__" + barcode + def new_id = pool + "__" + barcode + def group_key = groupKey(new_id, state.n_lanes * 2) [ - new_id, + group_key, [ - pool: id, + pool: pool, barcode: barcode, output: p, lane: lane, pair_end: pair_end, - _meta: [ join_id: id ] + lane_sorting: state.lane_sorting, + _meta: [ join_id: pool ] ] ] } } // Group the outputs from across lanes - | groupTuple(by: 0, sort: "hash") - | map {id, states -> + | groupTuple(sort: "hash") + | map {_, states -> def r1_output = states.findAll{ it.pair_end == "R1" }.collect{it.output} def r2_output = states.findAll{ it.pair_end == "R2" }.collect{it.output} + def lane_sorting_r1 = states.findAll{ it.pair_end == "R1" }.collect{it.lane_sorting} + def lane_sorting_r2 = states.findAll{ it.pair_end == "R2" }.collect{it.lane_sorting} + + // At this point, the lane_sorting hold the positios the items in r1_output and r2_output + // should become in a new list. + def r1_output_sorted = new ArrayList(r1_output.size()) + def r2_output_sorted = new ArrayList(r2_output.size()) + + lane_sorting_r1.eachWithIndex { pos, index -> + r1_output_sorted[pos] = r1_output[index] + } + + lane_sorting_r2.eachWithIndex { pos, index -> + r2_output_sorted[pos] = r2_output[index] + } + assert r1_output.size() == r2_output.size() // Here we pick the state from the first item in the list of states // and overwrite the keys which are different across states // TODO: we can assert that these keys are the same def first_state = states[0] def new_id = first_state.pool + "__" + first_state.barcode - def new_state = first_state + ["output_r1": r1_output, "output_r2": r2_output] + def new_state = first_state + ["output_r1": r1_output_sorted, "output_r2": r2_output_sorted] [new_id, new_state] } + // TODO: Expand this into matching a whitelist/blacklist of barcodes + // ... and turn into separate component + | filter{ id, state -> state.barcode != "unknown" } + | concat_text.run( + directives: [label: ["lowmem", "lowcpu"]], + key: "concat_txt_r1", + runIf: {id, state -> state.output_r1.size() > 1}, + fromState: { id, state -> + [ + input: state.output_r1, + gzip_output: false, + output: "${id}_R1.fastq" + ] + }, + toState: { id, result, state -> + def newState = state + [ output_r1: [ result.output ] ] + return newState + } + ) + | concat_text.run( + directives: [label: ["lowmem", "lowcpu"]], + key: "concat_text_r2", + runIf: {id, state -> state.output_r2.size() > 1}, + fromState: { id, state -> + [ + input: state.output_r2, + gzip_output: false, + output: "${id}_R2.fastq", + ] + }, + toState: { id, result, state -> + def newState = state + [ output_r2: [ result.output ] ] + return newState + } + ) | setState(["pool", "barcode", "lane", "_meta", "output_r1", "output_r2"]) emit: diff --git a/target/nextflow/workflows/well_demultiplex/nextflow_labels.config b/target/nextflow/workflows/well_demultiplex/nextflow_labels.config index 9ea88b1b..66f5e21c 100644 --- a/target/nextflow/workflows/well_demultiplex/nextflow_labels.config +++ b/target/nextflow/workflows/well_demultiplex/nextflow_labels.config @@ -1,26 +1,88 @@ +executor { + $k8s { + submitRateLimit = '10sec' + pollInterval = '1 sec' + } +} + process { - // Default resources for components that hardly do any processing - memory = { 2.GB * task.attempt } - cpus = 1 + container = 'nextflow/bash:latest' + + // default resources + memory = { 8.Gb * task.attempt } + cpus = 8 + maxForks = 36 // Retry for exit codes that have something to do with memory issues errorStrategy = { task.exitStatus in 137..140 ? 'retry' : 'terminate' } maxRetries = 3 - maxMemory = null + maxMemory = 192.GB // Resource labels - withLabel: singlecpu { cpus = 1 } - withLabel: lowcpu { cpus = 4 } - withLabel: midcpu { cpus = 10 } - withLabel: highcpu { cpus = 20 } + withLabel: verylowcpu { cpus = 2 } + withLabel: lowcpu { cpus = 8 } + withLabel: midcpu { cpus = 16 } + withLabel: highcpu { cpus = 32 } - 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 ) } } + withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } } + withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } } + withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } } + withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } } } +profiles { + // detect tempdir + tempDir = java.nio.file.Paths.get( + System.getenv('NXF_TEMP') ?: + System.getenv('VIASH_TEMP') ?: + System.getenv('TEMPDIR') ?: + System.getenv('TMPDIR') ?: + '/tmp' + ).toAbsolutePath() + + mount_temp { + docker.temp = tempDir + podman.temp = tempDir + charliecloud.temp = tempDir + } + + no_publish { + process { + withName: '.*' { + publishDir = [ + enabled: false + ] + } + } + } + + docker { + docker.fixOwnership = true + docker.enabled = true + // docker.userEmulation = true + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + + local { + // This config is for local processing. + process { + maxMemory = 25.GB + withLabel: verylowcpu { cpus = 2 } + withLabel: lowcpu { cpus = 4 } + withLabel: midcpu { cpus = 6 } + withLabel: highcpu { cpus = 12 } + + withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } } + withLabel: midmem { memory = { get_memory( 12.GB * task.attempt ) } } + withLabel: highmem { memory = { get_memory( 20.GB * task.attempt ) } } + } + } +} + def get_memory(to_compare) { if (!process.containsKey("maxMemory") || !process.maxMemory) { return to_compare diff --git a/target/nextflow/workflows/well_demultiplex/nextflow_schema.json b/target/nextflow/workflows/well_demultiplex/nextflow_schema.json index 792f5606..a6b3497a 100644 --- a/target/nextflow/workflows/well_demultiplex/nextflow_schema.json +++ b/target/nextflow/workflows/well_demultiplex/nextflow_schema.json @@ -17,8 +17,8 @@ "input_r1": { "type": "string", - "description": "Type: `file`, required. R1", - "help_text": "Type: `file`, required. R1" + "description": "Type: List of `file`, required, multiple_sep: `\";\"`. Forward reads in FASTQ format", + "help_text": "Type: List of `file`, required, multiple_sep: `\";\"`. Forward reads in FASTQ format. Multiple files can be provided which will\nbe demultiplexed separately before joining the results for each individual well.\n" } @@ -27,8 +27,8 @@ "input_r2": { "type": "string", - "description": "Type: `file`, required. R2", - "help_text": "Type: `file`, required. R2" + "description": "Type: List of `file`, required, multiple_sep: `\";\"`. Reverse reads in FASTQ format", + "help_text": "Type: List of `file`, required, multiple_sep: `\";\"`. Reverse reads in FASTQ format. Multiple files can be provided which will\nbe demultiplexed separately before joining the results for each individual well.\n" }

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