Compare commits

..

2 Commits

Author SHA1 Message Date
CI
c9f3fc3758 Build branch v0.4 with version v0.4.2 (21de648)
Build pipeline: viash-hub.demultiplex.v0.4-kjfkf

Source commit: 21de648b21

Source message: Bump version to v0.4.2
2025-07-28 13:10:16 +00:00
CI
997c850d5f Build branch v0.4 with version v0.4.1 (cc1c33e)
Build pipeline: viash-hub.demultiplex.v0.4-m2h96

Source commit: cc1c33e8fe

Source message: Bump version to v0.4.1
2025-07-25 09:20:19 +00:00
51 changed files with 4666 additions and 317 deletions

View File

@@ -1,3 +1,17 @@
# demultiplex v0.4.2
## Minor changes
* Provide output from `runner` workflow so it can be used as part of a larger workflow (PR #56).
* Add workflow identifier to version information during pipeline run (PR #56).
# demultiplex v0.4.1
## Minor changes
* Split off part of the workflow logic (`detect_demultiplexer`) from the main workflow to a dedicated subworkflow (PR #52).
* Add the package config (`_viash.yaml`) to every component's target dir. This makes introspection from, e.g. a `runner` workflow much more robust (PR #53).
# demultiplex v0.4.0
## Breaking changes

View File

@@ -1,5 +1,5 @@
name: demultiplex
version: v0.4.0
version: v0.4.2
description: |
Demultiplexing pipeline
license: MIT
@@ -19,3 +19,4 @@ config_mods: |
.runners[.type == 'nextflow'].directives.tag := '$id'
.resources += {path: '/src/config/labels.config', dest: 'nextflow_labels.config'}
.runners[.type == 'nextflow'].config.script := 'includeConfig("nextflow_labels.config")'
.resources += {path: '/_viash.yaml', dest: '_viash.yaml'}

View File

@@ -100,6 +100,8 @@ dependencies:
repository: bb
- name: multiqc
repository: bb
- name: detect_demultiplexer
repository: local
repositories:
- name: bb
type: vsh

View File

@@ -21,88 +21,21 @@ workflow run_wf {
state + ["input": result.output]
},
)
// Gather input files from folder
| map {id, state ->
def newState = [:]
println("Provided run information: ${state.run_information} and demultiplexer: ${state.demultiplexer}")
// No auto-detection of run information file (it is user provided),
// in this case the demultiplexer should also be specified.
assert (!state.run_information || state.demultiplexer): "When setting --run_information, " +
"you must also provide a demultiplexer"
if (!state.run_information) {
println("Run information was not specified, auto-detecting...")
// The supported_platforms hashmap must be a 1-on-1 mapping
// Also, it's keys must be present in the 'choices' field
// for the 'run_information' argument in the viash config.
def supported_platforms = [
"bclconvert": "SampleSheet.csv", // Illumina
"bases2fastq": "RunManifest.csv" // Element Biosciences
// detect demultiplexer
| detect_demultiplexer.run(
fromState: [
"input": "input",
"run_information": "run_information",
"demultiplexer": "demultiplexer",
],
toState: { id, result, state ->
state + [
"demultiplexer": result.demultiplexer_output,
"run_information": result.run_information_output
]
def found_sample_information = supported_platforms.collectEntries{demultiplexer, filename ->
println("Checking if ${filename} can be found in input folder ${state.input}.")
def resolved_filename = state.input.resolve(filename)
if (!resolved_filename.isFile()) {
resolved_filename = null
}
println("Result after looking for run information for ${demultiplexer}: ${resolved_filename}.")
[demultiplexer, resolved_filename]
}
def demultiplexer = null
def run_information = null
found_sample_information.each{demultiplexer_candidate, file_path ->
if (file_path) {
// At this point, a candicate run information file was found.
assert !run_information: "Autodetection of run information " +
"(SampleSheet, RunManifest) failed: " +
"multiple candidate files found in input folder. " +
"Please specify one using --run_information."
run_information = file_path
demultiplexer = demultiplexer_candidate
}
}
// When autodetecting, the run information should have been found
assert run_information: "No run information file (SampleSheet, RunManifest) " +
"found in input directory."
// When autodetecting, the demultiplexer must be set if the run information was found
assert demultiplexer: "State error: the demultiplexer should have been autodetected. " +
"Please report this as a bug."
// When autodetecting, the found demultiplexer must match
// with the demultiplexer that the user has provided (in case it was provided).
if (state.demultiplexer) {
assert state.demultiplexer == demultiplexer,
"Requested to use demultiplexer ${state.demultiplexer} " +
"but demultiplexer based on the autodetected run information "
"file ${run_information} seems to indicate that the demultiplexer "
"should be ${demultiplexer}. Either avoid specifying the demultiplexer "
"or override the autodetection of the run information by providing "
"the file."
}
println("Using run information ${run_information} and demultiplexer ${demultiplexer}")
// At this point, the autodetected state can override the user provided state.
newState = newState + [
"run_information": run_information,
"demultiplexer": demultiplexer,
]
} // end auto-detection logic
if (newState.demultiplexer in ["bclconvert"]) {
// Do not add InterOp to state because we generate the summary csv's in the next
// step based on the run dir, not the InterOp dir.
def interop_dir = state.input.resolve("InterOp")
assert interop_dir.isDirectory(): "Expected InterOp directory to be present."
def copycomplete_file = state.input.resolve("CopyComplete.txt")
assert (copycomplete_file.isFile() || state.skip_copycomplete_check):
"'CopyComplete.txt' file was not found!"
}
def resultState = state + newState
[id, resultState]
}
)
| interop_summary_to_csv.run(
runIf: {id, state -> state.demultiplexer in ["bclconvert"]},

View File

@@ -0,0 +1,57 @@
name: detect_demultiplexer
description: |
Detects the demultiplexer and accompanying sample information file which can be
used to generate the fastq files.
arguments:
- name: --id
description: Unique identifier for the run
type: string
- name: --input
description: Directory containing raw sequencing data
type: file
required: true
- name: --run_information
description: |
CSV file containing sample information, which will be used as
input for the demultiplexer. Canonically called 'SampleSheet.csv' (Illumina)
or 'RunManifest.csv' (Element Biosciences). If not specified,
will try to autodetect the sample sheet in the input directory.
Requires --demultiplexer to be set.
type: file
required: false
- name: "--demultiplexer"
type: string
required: false
choices: ["bases2fastq", "bclconvert"]
description: |
Demultiplexer to use, choice depends on the provider
of the instrument that was used to generate the data.
When not using --sample_sheet, specifying this argument is not
required.
- name: --demultiplexer_output
description: |
Demultiplexer program. The demultiplexer is either provided (with --demultiplexer),
or inferred from the contents of the input data.
type: string
direction: output
required: false
- name: --run_information_output
description: |
Sample information that can be used to demultiplex the input data.
An appropriate file was either provided (with --run_information), or
inferred from the contents of the input data.
type: file
direction: output
required: false
resources:
- type: nextflow_script
path: main.nf
entrypoint: run_wf
runners:
- type: nextflow
engines:
- type: native

View File

@@ -0,0 +1,96 @@
workflow run_wf {
take:
input_ch // Channel with [id, state] pairs
main:
output_ch = input_ch
// Gather input files from folder
| map {id, state ->
def newState = [:]
println("Provided run information: ${state.run_information} and demultiplexer: ${state.demultiplexer}")
// No auto-detection of run information file (it is user provided),
// in this case the demultiplexer should also be specified.
assert (!state.run_information || state.demultiplexer): "When setting --run_information, " +
"you must also provide a demultiplexer"
if (!state.run_information) {
println("Run information was not specified, auto-detecting...")
// The supported_platforms hashmap must be a 1-on-1 mapping
// Also, it's keys must be present in the 'choices' field
// for the 'run_information' argument in the viash config.
def supported_platforms = [
"bclconvert": "SampleSheet.csv", // Illumina
"bases2fastq": "RunManifest.csv" // Element Biosciences
]
def found_sample_information = supported_platforms.collectEntries{demultiplexer, filename ->
println("Checking if ${filename} can be found in input folder ${state.input}.")
def resolved_filename = state.input.resolve(filename)
if (!resolved_filename.isFile()) {
resolved_filename = null
}
println("Result after looking for run information for ${demultiplexer}: ${resolved_filename}.")
[demultiplexer, resolved_filename]
}
def demultiplexer = null
def run_information = null
found_sample_information.each{demultiplexer_candidate, file_path ->
if (file_path) {
// At this point, a candicate run information file was found.
assert !run_information: "Autodetection of run information " +
"(SampleSheet, RunManifest) failed: " +
"multiple candidate files found in input folder. " +
"Please specify one using --run_information."
run_information = file_path
demultiplexer = demultiplexer_candidate
}
}
// When autodetecting, the run information should have been found
assert run_information: "No run information file (SampleSheet, RunManifest) " +
"found in input directory."
// When autodetecting, the demultiplexer must be set if the run information was found
assert demultiplexer: "State error: the demultiplexer should have been autodetected. " +
"Please report this as a bug."
// When autodetecting, the found demultiplexer must match
// with the demultiplexer that the user has provided (in case it was provided).
if (state.demultiplexer) {
assert state.demultiplexer == demultiplexer,
"Requested to use demultiplexer ${state.demultiplexer} " +
"but demultiplexer based on the autodetected run information "
"file ${run_information} seems to indicate that the demultiplexer "
"should be ${demultiplexer}. Either avoid specifying the demultiplexer "
"or override the autodetection of the run information by providing "
"the file."
}
println("Using run information ${run_information} and demultiplexer ${demultiplexer}")
// At this point, the autodetected state can override the user provided state.
newState = newState + [
"run_information": run_information,
"demultiplexer": demultiplexer,
]
} // end auto-detection logic
if (newState.demultiplexer in ["bclconvert"]) {
// Do not add InterOp to state because we generate the summary csv's in the next
// step based on the run dir, not the InterOp dir.
def interop_dir = state.input.resolve("InterOp")
assert interop_dir.isDirectory(): "Expected InterOp directory to be present."
def copycomplete_file = state.input.resolve("CopyComplete.txt")
assert (copycomplete_file.isFile() || state.skip_copycomplete_check):
"'CopyComplete.txt' file was not found!"
}
def resultState = state + newState
[id, resultState]
}
| setState(["demultiplexer_output": "demultiplexer",
"run_information_output": "run_information"])
emit:
output_ch
}

View File

@@ -1,6 +1,6 @@
def date = new Date().format('yyyyMMdd_hhmmss')
def viash_config = java.nio.file.Paths.get("$projectDir/../../../").toAbsolutePath().normalize().toString() + "/_viash.yaml"
def viash_config = java.nio.file.Paths.get("${moduleDir}/_viash.yaml")
def version = get_version(viash_config)
workflow run_wf {
@@ -47,7 +47,8 @@ workflow run_wf {
state_to_pass
},
toState: { id, result, state ->
state + result
// Duplicate the results under its own key, makes it easier to access later.
state + result + [ to_return: result ]
},
)
| publish.run(
@@ -80,7 +81,7 @@ workflow run_wf {
output_demultiplexer_logs: demultiplexer_logs_output,
]
},
toState: { id, result, state -> [:] },
toState: { id, result, state -> [ fastq_output: state.to_return.output ] },
directives: [
publishDir: [
path: "${params.publish_dir}",
@@ -103,6 +104,6 @@ def get_version(input) {
def yamlSlurper = new groovy.yaml.YamlSlurper()
def loaded_viash_config = yamlSlurper.parse(inputFile)
def version = (loaded_viash_config.version) ? loaded_viash_config.version : "unknown_version"
println("Version to be used: ${version}")
println("Version of demultiplex to be used: ${version}")
return version
}

View File

@@ -51,7 +51,10 @@ workflow test {
def all_files = publish_subdir.listFiles()
assert all_files.size() == 1
def publish_dir = file(all_files[0])
assert publish_dir.name.endsWith("_demultiplex_unknown_version")
// version can be unknown_version (local tests) or actual version configured in _viash.yaml
// with the new approach to fetching the version from _viash.yaml, this will be the branch name during CI builds
// Disabling this test temporarily and creating an issue for it
// assert publish_dir.name.endsWith("_demultiplex_unknown_version")
def published_items = publish_dir.listFiles()
assert published_items.size() == 4
assert published_items.collect{it.name}.toSet() == ["demultiplexer_logs", "fastq", "qc", "SampleSheet.csv"].toSet()

View File

@@ -1,6 +1,6 @@
name: "interop_summary_to_csv"
namespace: "io"
version: "v0.4.0"
version: "v0.4.2"
argument_groups:
- name: "Input arguments"
arguments:
@@ -41,6 +41,9 @@ resources:
- type: "file"
path: "nextflow_labels.config"
dest: "nextflow_labels.config"
- type: "file"
path: "_viash.yaml"
dest: "_viash.yaml"
test_resources:
- type: "bash_script"
path: "test.sh"
@@ -132,7 +135,7 @@ engines:
id: "docker"
image: "debian:stable-slim"
target_registry: "images.viash-hub.com"
target_tag: "v0.4.0"
target_tag: "v0.4.2"
namespace_separator: "/"
setup:
- type: "apt"
@@ -157,12 +160,12 @@ build_info:
output: "target/executable/io/interop_summary_to_csv"
executable: "target/executable/io/interop_summary_to_csv/interop_summary_to_csv"
viash_version: "0.9.4"
git_commit: "d331781d1a699792462d6e2d5205ffc51ab3ecef"
git_commit: "21de648b218d114d3ab155462f4f08f4d585f741"
git_remote: "https://github.com/viash-hub/demultiplex"
git_tag: "v0.1.1-32-gd331781"
git_tag: "v0.1.1-40-g21de648"
package_config:
name: "demultiplex"
version: "v0.4.0"
version: "v0.4.2"
description: "Demultiplexing pipeline\n"
info:
test_resources:
@@ -175,10 +178,10 @@ package_config:
- ".requirements.commands += ['ps']\n.runners[.type == 'nextflow'].directives.tag\
\ := '$id'\n.resources += {path: '/src/config/labels.config', dest: 'nextflow_labels.config'}\n\
.runners[.type == 'nextflow'].config.script := 'includeConfig(\"nextflow_labels.config\"\
)'\n"
)'\n.resources += {path: '/_viash.yaml', dest: '_viash.yaml'}\n"
- ".engines += { type: \"native\" }"
- ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'"
- ".engines[.type == 'docker'].target_tag := 'v0.4.0'"
- ".engines[.type == 'docker'].target_tag := 'v0.4.2'"
keywords:
- "bioinformatics"
- "sequence"

View File

@@ -0,0 +1,21 @@
name: demultiplex
version: v0.4.2
description: |
Demultiplexing pipeline
license: MIT
keywords: [bioinformatics, sequence, demultiplexing, pipeline]
links:
issue_tracker: https://github.com/viash-hub/demultiplex/issues
repository: https://github.com/viash-hub/demultiplex
info:
test_resources:
- path: gs://viash-hub-resources/demultiplex/v4
dest: testData
viash_version: 0.9.4
config_mods: |
.requirements.commands += ['ps']
.runners[.type == 'nextflow'].directives.tag := '$id'
.resources += {path: '/src/config/labels.config', dest: 'nextflow_labels.config'}
.runners[.type == 'nextflow'].config.script := 'includeConfig("nextflow_labels.config")'
.resources += {path: '/_viash.yaml', dest: '_viash.yaml'}
organization: vsh

View File

@@ -1,6 +1,6 @@
#!/usr/bin/env bash
# interop_summary_to_csv v0.4.0
# interop_summary_to_csv v0.4.2
#
# This wrapper script is auto-generated by viash 0.9.4 and is thus a derivative
# work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data
@@ -454,10 +454,10 @@ tar -C /tmp/ --no-same-owner --no-same-permissions -xvf /tmp/interop.tar.gz && \
mv /tmp/interop-1.3.1-Linux-GNU/bin/index-summary /tmp/interop-1.3.1-Linux-GNU/bin/summary /usr/local/bin/
LABEL org.opencontainers.image.description="Companion container for running component io interop_summary_to_csv"
LABEL org.opencontainers.image.created="2025-05-28T11:07:09Z"
LABEL org.opencontainers.image.created="2025-07-28T12:45:25Z"
LABEL org.opencontainers.image.source="https://github.com/viash-hub/demultiplex"
LABEL org.opencontainers.image.revision="d331781d1a699792462d6e2d5205ffc51ab3ecef"
LABEL org.opencontainers.image.version="v0.4.0"
LABEL org.opencontainers.image.revision="21de648b218d114d3ab155462f4f08f4d585f741"
LABEL org.opencontainers.image.version="v0.4.2"
VIASHDOCKER
fi
@@ -574,7 +574,7 @@ VIASH_DOCKER_RUN_ARGS=(-i --rm)
# ViashHelp: Display helpful explanation about this executable
function ViashHelp {
echo "interop_summary_to_csv v0.4.0"
echo "interop_summary_to_csv v0.4.2"
echo ""
echo "Input arguments:"
echo " --input"
@@ -635,7 +635,7 @@ while [[ $# -gt 0 ]]; do
shift 1
;;
--version)
echo "interop_summary_to_csv v0.4.0"
echo "interop_summary_to_csv v0.4.2"
exit
;;
--input)
@@ -759,7 +759,7 @@ if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then
# determine docker image id
if [[ "$VIASH_ENGINE_ID" == 'docker' ]]; then
VIASH_DOCKER_IMAGE_ID='images.viash-hub.com/vsh/demultiplex/io/interop_summary_to_csv:v0.4.0'
VIASH_DOCKER_IMAGE_ID='images.viash-hub.com/vsh/demultiplex/io/interop_summary_to_csv:v0.4.2'
fi
# print dockerfile

View File

@@ -1,6 +1,6 @@
name: "publish"
namespace: "io"
version: "v0.4.0"
version: "v0.4.2"
argument_groups:
- name: "Input arguments"
arguments:
@@ -117,6 +117,9 @@ resources:
- type: "file"
path: "nextflow_labels.config"
dest: "nextflow_labels.config"
- type: "file"
path: "_viash.yaml"
dest: "_viash.yaml"
description: "Publish the processed results of the run"
info: null
status: "enabled"
@@ -201,7 +204,7 @@ engines:
id: "docker"
image: "debian:stable-slim"
target_registry: "images.viash-hub.com"
target_tag: "v0.4.0"
target_tag: "v0.4.2"
namespace_separator: "/"
setup:
- type: "apt"
@@ -219,12 +222,12 @@ build_info:
output: "target/executable/io/publish"
executable: "target/executable/io/publish/publish"
viash_version: "0.9.4"
git_commit: "d331781d1a699792462d6e2d5205ffc51ab3ecef"
git_commit: "21de648b218d114d3ab155462f4f08f4d585f741"
git_remote: "https://github.com/viash-hub/demultiplex"
git_tag: "v0.1.1-32-gd331781"
git_tag: "v0.1.1-40-g21de648"
package_config:
name: "demultiplex"
version: "v0.4.0"
version: "v0.4.2"
description: "Demultiplexing pipeline\n"
info:
test_resources:
@@ -237,10 +240,10 @@ package_config:
- ".requirements.commands += ['ps']\n.runners[.type == 'nextflow'].directives.tag\
\ := '$id'\n.resources += {path: '/src/config/labels.config', dest: 'nextflow_labels.config'}\n\
.runners[.type == 'nextflow'].config.script := 'includeConfig(\"nextflow_labels.config\"\
)'\n"
)'\n.resources += {path: '/_viash.yaml', dest: '_viash.yaml'}\n"
- ".engines += { type: \"native\" }"
- ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'"
- ".engines[.type == 'docker'].target_tag := 'v0.4.0'"
- ".engines[.type == 'docker'].target_tag := 'v0.4.2'"
keywords:
- "bioinformatics"
- "sequence"

View File

@@ -0,0 +1,21 @@
name: demultiplex
version: v0.4.2
description: |
Demultiplexing pipeline
license: MIT
keywords: [bioinformatics, sequence, demultiplexing, pipeline]
links:
issue_tracker: https://github.com/viash-hub/demultiplex/issues
repository: https://github.com/viash-hub/demultiplex
info:
test_resources:
- path: gs://viash-hub-resources/demultiplex/v4
dest: testData
viash_version: 0.9.4
config_mods: |
.requirements.commands += ['ps']
.runners[.type == 'nextflow'].directives.tag := '$id'
.resources += {path: '/src/config/labels.config', dest: 'nextflow_labels.config'}
.runners[.type == 'nextflow'].config.script := 'includeConfig("nextflow_labels.config")'
.resources += {path: '/_viash.yaml', dest: '_viash.yaml'}
organization: vsh

View File

@@ -1,6 +1,6 @@
#!/usr/bin/env bash
# publish v0.4.0
# publish v0.4.2
#
# This wrapper script is auto-generated by viash 0.9.4 and is thus a derivative
# work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data
@@ -450,10 +450,10 @@ RUN apt-get update && \
rm -rf /var/lib/apt/lists/*
LABEL org.opencontainers.image.description="Companion container for running component io publish"
LABEL org.opencontainers.image.created="2025-05-28T11:07:09Z"
LABEL org.opencontainers.image.created="2025-07-28T12:45:25Z"
LABEL org.opencontainers.image.source="https://github.com/viash-hub/demultiplex"
LABEL org.opencontainers.image.revision="d331781d1a699792462d6e2d5205ffc51ab3ecef"
LABEL org.opencontainers.image.version="v0.4.0"
LABEL org.opencontainers.image.revision="21de648b218d114d3ab155462f4f08f4d585f741"
LABEL org.opencontainers.image.version="v0.4.2"
VIASHDOCKER
fi
@@ -570,7 +570,7 @@ VIASH_DOCKER_RUN_ARGS=(-i --rm)
# ViashHelp: Display helpful explanation about this executable
function ViashHelp {
echo "publish v0.4.0"
echo "publish v0.4.2"
echo ""
echo "Publish the processed results of the run"
echo ""
@@ -662,7 +662,7 @@ while [[ $# -gt 0 ]]; do
shift 1
;;
--version)
echo "publish v0.4.0"
echo "publish v0.4.2"
exit
;;
--input)
@@ -869,7 +869,7 @@ if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then
# determine docker image id
if [[ "$VIASH_ENGINE_ID" == 'docker' ]]; then
VIASH_DOCKER_IMAGE_ID='images.viash-hub.com/vsh/demultiplex/io/publish:v0.4.0'
VIASH_DOCKER_IMAGE_ID='images.viash-hub.com/vsh/demultiplex/io/publish:v0.4.2'
fi
# print dockerfile

View File

@@ -1,6 +1,6 @@
name: "untar"
namespace: "io"
version: "v0.4.0"
version: "v0.4.2"
argument_groups:
- name: "Input arguments"
arguments:
@@ -48,6 +48,9 @@ resources:
- type: "file"
path: "nextflow_labels.config"
dest: "nextflow_labels.config"
- type: "file"
path: "_viash.yaml"
dest: "_viash.yaml"
description: "Unpack a .tar file. When the contents of the .tar file is just a single\
\ directory,\nput the contents of the directory into the output folder instead of\
\ that directory.\n"
@@ -138,7 +141,7 @@ engines:
id: "docker"
image: "debian:stable-slim"
target_registry: "images.viash-hub.com"
target_tag: "v0.4.0"
target_tag: "v0.4.2"
namespace_separator: "/"
setup:
- type: "apt"
@@ -156,12 +159,12 @@ build_info:
output: "target/executable/io/untar"
executable: "target/executable/io/untar/untar"
viash_version: "0.9.4"
git_commit: "d331781d1a699792462d6e2d5205ffc51ab3ecef"
git_commit: "21de648b218d114d3ab155462f4f08f4d585f741"
git_remote: "https://github.com/viash-hub/demultiplex"
git_tag: "v0.1.1-32-gd331781"
git_tag: "v0.1.1-40-g21de648"
package_config:
name: "demultiplex"
version: "v0.4.0"
version: "v0.4.2"
description: "Demultiplexing pipeline\n"
info:
test_resources:
@@ -174,10 +177,10 @@ package_config:
- ".requirements.commands += ['ps']\n.runners[.type == 'nextflow'].directives.tag\
\ := '$id'\n.resources += {path: '/src/config/labels.config', dest: 'nextflow_labels.config'}\n\
.runners[.type == 'nextflow'].config.script := 'includeConfig(\"nextflow_labels.config\"\
)'\n"
)'\n.resources += {path: '/_viash.yaml', dest: '_viash.yaml'}\n"
- ".engines += { type: \"native\" }"
- ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'"
- ".engines[.type == 'docker'].target_tag := 'v0.4.0'"
- ".engines[.type == 'docker'].target_tag := 'v0.4.2'"
keywords:
- "bioinformatics"
- "sequence"

View File

@@ -0,0 +1,21 @@
name: demultiplex
version: v0.4.2
description: |
Demultiplexing pipeline
license: MIT
keywords: [bioinformatics, sequence, demultiplexing, pipeline]
links:
issue_tracker: https://github.com/viash-hub/demultiplex/issues
repository: https://github.com/viash-hub/demultiplex
info:
test_resources:
- path: gs://viash-hub-resources/demultiplex/v4
dest: testData
viash_version: 0.9.4
config_mods: |
.requirements.commands += ['ps']
.runners[.type == 'nextflow'].directives.tag := '$id'
.resources += {path: '/src/config/labels.config', dest: 'nextflow_labels.config'}
.runners[.type == 'nextflow'].config.script := 'includeConfig("nextflow_labels.config")'
.resources += {path: '/_viash.yaml', dest: '_viash.yaml'}
organization: vsh

View File

@@ -1,6 +1,6 @@
#!/usr/bin/env bash
# untar v0.4.0
# untar v0.4.2
#
# This wrapper script is auto-generated by viash 0.9.4 and is thus a derivative
# work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data
@@ -450,10 +450,10 @@ RUN apt-get update && \
rm -rf /var/lib/apt/lists/*
LABEL org.opencontainers.image.description="Companion container for running component io untar"
LABEL org.opencontainers.image.created="2025-05-28T11:07:08Z"
LABEL org.opencontainers.image.created="2025-07-28T12:45:25Z"
LABEL org.opencontainers.image.source="https://github.com/viash-hub/demultiplex"
LABEL org.opencontainers.image.revision="d331781d1a699792462d6e2d5205ffc51ab3ecef"
LABEL org.opencontainers.image.version="v0.4.0"
LABEL org.opencontainers.image.revision="21de648b218d114d3ab155462f4f08f4d585f741"
LABEL org.opencontainers.image.version="v0.4.2"
VIASHDOCKER
fi
@@ -570,7 +570,7 @@ VIASH_DOCKER_RUN_ARGS=(-i --rm)
# ViashHelp: Display helpful explanation about this executable
function ViashHelp {
echo "untar v0.4.0"
echo "untar v0.4.2"
echo ""
echo "Unpack a .tar file. When the contents of the .tar file is just a single"
echo "directory,"
@@ -641,7 +641,7 @@ while [[ $# -gt 0 ]]; do
shift 1
;;
--version)
echo "untar v0.4.0"
echo "untar v0.4.2"
exit
;;
--input)
@@ -771,7 +771,7 @@ if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then
# determine docker image id
if [[ "$VIASH_ENGINE_ID" == 'docker' ]]; then
VIASH_DOCKER_IMAGE_ID='images.viash-hub.com/vsh/demultiplex/io/untar:v0.4.0'
VIASH_DOCKER_IMAGE_ID='images.viash-hub.com/vsh/demultiplex/io/untar:v0.4.2'
fi
# print dockerfile

View File

@@ -1,6 +1,6 @@
name: "combine_samples"
namespace: "dataflow"
version: "v0.4.0"
version: "v0.4.2"
argument_groups:
- name: "Input arguments"
arguments:
@@ -76,6 +76,9 @@ resources:
- type: "file"
path: "nextflow_labels.config"
dest: "nextflow_labels.config"
- type: "file"
path: "_viash.yaml"
dest: "_viash.yaml"
description: "Combine fastq files from across samples into one event with a list of\
\ fastq files per orientation."
info: null
@@ -165,12 +168,12 @@ build_info:
output: "target/nextflow/dataflow/combine_samples"
executable: "target/nextflow/dataflow/combine_samples/main.nf"
viash_version: "0.9.4"
git_commit: "d331781d1a699792462d6e2d5205ffc51ab3ecef"
git_commit: "21de648b218d114d3ab155462f4f08f4d585f741"
git_remote: "https://github.com/viash-hub/demultiplex"
git_tag: "v0.1.1-32-gd331781"
git_tag: "v0.1.1-40-g21de648"
package_config:
name: "demultiplex"
version: "v0.4.0"
version: "v0.4.2"
description: "Demultiplexing pipeline\n"
info:
test_resources:
@@ -183,10 +186,10 @@ package_config:
- ".requirements.commands += ['ps']\n.runners[.type == 'nextflow'].directives.tag\
\ := '$id'\n.resources += {path: '/src/config/labels.config', dest: 'nextflow_labels.config'}\n\
.runners[.type == 'nextflow'].config.script := 'includeConfig(\"nextflow_labels.config\"\
)'\n"
)'\n.resources += {path: '/_viash.yaml', dest: '_viash.yaml'}\n"
- ".engines += { type: \"native\" }"
- ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'"
- ".engines[.type == 'docker'].target_tag := 'v0.4.0'"
- ".engines[.type == 'docker'].target_tag := 'v0.4.2'"
keywords:
- "bioinformatics"
- "sequence"

View File

@@ -0,0 +1,21 @@
name: demultiplex
version: v0.4.2
description: |
Demultiplexing pipeline
license: MIT
keywords: [bioinformatics, sequence, demultiplexing, pipeline]
links:
issue_tracker: https://github.com/viash-hub/demultiplex/issues
repository: https://github.com/viash-hub/demultiplex
info:
test_resources:
- path: gs://viash-hub-resources/demultiplex/v4
dest: testData
viash_version: 0.9.4
config_mods: |
.requirements.commands += ['ps']
.runners[.type == 'nextflow'].directives.tag := '$id'
.resources += {path: '/src/config/labels.config', dest: 'nextflow_labels.config'}
.runners[.type == 'nextflow'].config.script := 'includeConfig("nextflow_labels.config")'
.resources += {path: '/_viash.yaml', dest: '_viash.yaml'}
organization: vsh

View File

@@ -1,4 +1,4 @@
// combine_samples v0.4.0
// combine_samples v0.4.2
//
// This wrapper script is auto-generated by viash 0.9.4 and is thus a derivative
// work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data
@@ -3032,7 +3032,7 @@ meta = [
"config": processConfig(readJsonBlob('''{
"name" : "combine_samples",
"namespace" : "dataflow",
"version" : "v0.4.0",
"version" : "v0.4.2",
"argument_groups" : [
{
"name" : "Input arguments",
@@ -3125,6 +3125,11 @@ meta = [
"type" : "file",
"path" : "/src/config/labels.config",
"dest" : "nextflow_labels.config"
},
{
"type" : "file",
"path" : "/_viash.yaml",
"dest" : "_viash.yaml"
}
],
"description" : "Combine fastq files from across samples into one event with a list of fastq files per orientation.",
@@ -3230,13 +3235,13 @@ meta = [
"engine" : "native|native",
"output" : "target/nextflow/dataflow/combine_samples",
"viash_version" : "0.9.4",
"git_commit" : "d331781d1a699792462d6e2d5205ffc51ab3ecef",
"git_commit" : "21de648b218d114d3ab155462f4f08f4d585f741",
"git_remote" : "https://github.com/viash-hub/demultiplex",
"git_tag" : "v0.1.1-32-gd331781"
"git_tag" : "v0.1.1-40-g21de648"
},
"package_config" : {
"name" : "demultiplex",
"version" : "v0.4.0",
"version" : "v0.4.2",
"description" : "Demultiplexing pipeline\n",
"info" : {
"test_resources" : [
@@ -3250,10 +3255,10 @@ meta = [
"source" : "src",
"target" : "target",
"config_mods" : [
".requirements.commands += ['ps']\n.runners[.type == 'nextflow'].directives.tag := '$id'\n.resources += {path: '/src/config/labels.config', dest: 'nextflow_labels.config'}\n.runners[.type == 'nextflow'].config.script := 'includeConfig(\\"nextflow_labels.config\\")'\n",
".requirements.commands += ['ps']\n.runners[.type == 'nextflow'].directives.tag := '$id'\n.resources += {path: '/src/config/labels.config', dest: 'nextflow_labels.config'}\n.runners[.type == 'nextflow'].config.script := 'includeConfig(\\"nextflow_labels.config\\")'\n.resources += {path: '/_viash.yaml', dest: '_viash.yaml'}\n",
".engines += { type: \\"native\\" }",
".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'",
".engines[.type == 'docker'].target_tag := 'v0.4.0'"
".engines[.type == 'docker'].target_tag := 'v0.4.2'"
],
"keywords" : [
"bioinformatics",

View File

@@ -2,7 +2,7 @@ manifest {
name = 'dataflow/combine_samples'
mainScript = 'main.nf'
nextflowVersion = '!>=20.12.1-edge'
version = 'v0.4.0'
version = 'v0.4.2'
description = 'Combine fastq files from across samples into one event with a list of fastq files per orientation.'
}

View File

@@ -1,6 +1,6 @@
name: "gather_fastqs_and_validate"
namespace: "dataflow"
version: "v0.4.0"
version: "v0.4.2"
argument_groups:
- name: "Input arguments"
arguments:
@@ -52,6 +52,9 @@ resources:
- type: "file"
path: "nextflow_labels.config"
dest: "nextflow_labels.config"
- type: "file"
path: "_viash.yaml"
dest: "_viash.yaml"
description: "From a directory containing fastq files, gather the files per sample\
\ \nand validate according to the contents of the sample sheet.\n"
test_resources:
@@ -156,12 +159,12 @@ build_info:
output: "target/nextflow/dataflow/gather_fastqs_and_validate"
executable: "target/nextflow/dataflow/gather_fastqs_and_validate/main.nf"
viash_version: "0.9.4"
git_commit: "d331781d1a699792462d6e2d5205ffc51ab3ecef"
git_commit: "21de648b218d114d3ab155462f4f08f4d585f741"
git_remote: "https://github.com/viash-hub/demultiplex"
git_tag: "v0.1.1-32-gd331781"
git_tag: "v0.1.1-40-g21de648"
package_config:
name: "demultiplex"
version: "v0.4.0"
version: "v0.4.2"
description: "Demultiplexing pipeline\n"
info:
test_resources:
@@ -174,10 +177,10 @@ package_config:
- ".requirements.commands += ['ps']\n.runners[.type == 'nextflow'].directives.tag\
\ := '$id'\n.resources += {path: '/src/config/labels.config', dest: 'nextflow_labels.config'}\n\
.runners[.type == 'nextflow'].config.script := 'includeConfig(\"nextflow_labels.config\"\
)'\n"
)'\n.resources += {path: '/_viash.yaml', dest: '_viash.yaml'}\n"
- ".engines += { type: \"native\" }"
- ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'"
- ".engines[.type == 'docker'].target_tag := 'v0.4.0'"
- ".engines[.type == 'docker'].target_tag := 'v0.4.2'"
keywords:
- "bioinformatics"
- "sequence"

View File

@@ -0,0 +1,21 @@
name: demultiplex
version: v0.4.2
description: |
Demultiplexing pipeline
license: MIT
keywords: [bioinformatics, sequence, demultiplexing, pipeline]
links:
issue_tracker: https://github.com/viash-hub/demultiplex/issues
repository: https://github.com/viash-hub/demultiplex
info:
test_resources:
- path: gs://viash-hub-resources/demultiplex/v4
dest: testData
viash_version: 0.9.4
config_mods: |
.requirements.commands += ['ps']
.runners[.type == 'nextflow'].directives.tag := '$id'
.resources += {path: '/src/config/labels.config', dest: 'nextflow_labels.config'}
.runners[.type == 'nextflow'].config.script := 'includeConfig("nextflow_labels.config")'
.resources += {path: '/_viash.yaml', dest: '_viash.yaml'}
organization: vsh

View File

@@ -1,4 +1,4 @@
// gather_fastqs_and_validate v0.4.0
// gather_fastqs_and_validate v0.4.2
//
// This wrapper script is auto-generated by viash 0.9.4 and is thus a derivative
// work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data
@@ -3032,7 +3032,7 @@ meta = [
"config": processConfig(readJsonBlob('''{
"name" : "gather_fastqs_and_validate",
"namespace" : "dataflow",
"version" : "v0.4.0",
"version" : "v0.4.2",
"argument_groups" : [
{
"name" : "Input arguments",
@@ -3098,6 +3098,11 @@ meta = [
"type" : "file",
"path" : "/src/config/labels.config",
"dest" : "nextflow_labels.config"
},
{
"type" : "file",
"path" : "/_viash.yaml",
"dest" : "_viash.yaml"
}
],
"description" : "From a directory containing fastq files, gather the files per sample \nand validate according to the contents of the sample sheet.\n",
@@ -3227,13 +3232,13 @@ meta = [
"engine" : "native|native",
"output" : "target/nextflow/dataflow/gather_fastqs_and_validate",
"viash_version" : "0.9.4",
"git_commit" : "d331781d1a699792462d6e2d5205ffc51ab3ecef",
"git_commit" : "21de648b218d114d3ab155462f4f08f4d585f741",
"git_remote" : "https://github.com/viash-hub/demultiplex",
"git_tag" : "v0.1.1-32-gd331781"
"git_tag" : "v0.1.1-40-g21de648"
},
"package_config" : {
"name" : "demultiplex",
"version" : "v0.4.0",
"version" : "v0.4.2",
"description" : "Demultiplexing pipeline\n",
"info" : {
"test_resources" : [
@@ -3247,10 +3252,10 @@ meta = [
"source" : "src",
"target" : "target",
"config_mods" : [
".requirements.commands += ['ps']\n.runners[.type == 'nextflow'].directives.tag := '$id'\n.resources += {path: '/src/config/labels.config', dest: 'nextflow_labels.config'}\n.runners[.type == 'nextflow'].config.script := 'includeConfig(\\"nextflow_labels.config\\")'\n",
".requirements.commands += ['ps']\n.runners[.type == 'nextflow'].directives.tag := '$id'\n.resources += {path: '/src/config/labels.config', dest: 'nextflow_labels.config'}\n.runners[.type == 'nextflow'].config.script := 'includeConfig(\\"nextflow_labels.config\\")'\n.resources += {path: '/_viash.yaml', dest: '_viash.yaml'}\n",
".engines += { type: \\"native\\" }",
".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'",
".engines[.type == 'docker'].target_tag := 'v0.4.0'"
".engines[.type == 'docker'].target_tag := 'v0.4.2'"
],
"keywords" : [
"bioinformatics",

View File

@@ -2,7 +2,7 @@ manifest {
name = 'dataflow/gather_fastqs_and_validate'
mainScript = 'main.nf'
nextflowVersion = '!>=20.12.1-edge'
version = 'v0.4.0'
version = 'v0.4.2'
description = 'From a directory containing fastq files, gather the files per sample \nand validate according to the contents of the sample sheet.\n'
}

View File

@@ -1,5 +1,5 @@
name: "demultiplex"
version: "v0.4.0"
version: "v0.4.2"
argument_groups:
- name: "Input arguments"
arguments:
@@ -123,6 +123,9 @@ resources:
- type: "file"
path: "nextflow_labels.config"
dest: "nextflow_labels.config"
- type: "file"
path: "_viash.yaml"
dest: "_viash.yaml"
description: "Demultiplexing of raw sequencing data"
test_resources:
- type: "nextflow_script"
@@ -178,6 +181,9 @@ dependencies:
type: "vsh"
repo: "biobox"
tag: "v0.3.1"
- name: "detect_demultiplexer"
repository:
type: "local"
repositories:
- type: "vsh"
name: "bb"
@@ -262,9 +268,9 @@ build_info:
output: "target/nextflow/demultiplex"
executable: "target/nextflow/demultiplex/main.nf"
viash_version: "0.9.4"
git_commit: "d331781d1a699792462d6e2d5205ffc51ab3ecef"
git_commit: "21de648b218d114d3ab155462f4f08f4d585f741"
git_remote: "https://github.com/viash-hub/demultiplex"
git_tag: "v0.1.1-32-gd331781"
git_tag: "v0.1.1-40-g21de648"
dependencies:
- "target/nextflow/io/untar"
- "target/nextflow/dataflow/gather_fastqs_and_validate"
@@ -274,9 +280,10 @@ build_info:
- "target/dependencies/vsh/vsh/biobox/v0.3.1/nextflow/bases2fastq"
- "target/dependencies/vsh/vsh/biobox/v0.3.1/nextflow/fastqc"
- "target/dependencies/vsh/vsh/biobox/v0.3.1/nextflow/multiqc"
- "target/nextflow/detect_demultiplexer"
package_config:
name: "demultiplex"
version: "v0.4.0"
version: "v0.4.2"
description: "Demultiplexing pipeline\n"
info:
test_resources:
@@ -289,10 +296,10 @@ package_config:
- ".requirements.commands += ['ps']\n.runners[.type == 'nextflow'].directives.tag\
\ := '$id'\n.resources += {path: '/src/config/labels.config', dest: 'nextflow_labels.config'}\n\
.runners[.type == 'nextflow'].config.script := 'includeConfig(\"nextflow_labels.config\"\
)'\n"
)'\n.resources += {path: '/_viash.yaml', dest: '_viash.yaml'}\n"
- ".engines += { type: \"native\" }"
- ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'"
- ".engines[.type == 'docker'].target_tag := 'v0.4.0'"
- ".engines[.type == 'docker'].target_tag := 'v0.4.2'"
keywords:
- "bioinformatics"
- "sequence"

View File

@@ -0,0 +1,21 @@
name: demultiplex
version: v0.4.2
description: |
Demultiplexing pipeline
license: MIT
keywords: [bioinformatics, sequence, demultiplexing, pipeline]
links:
issue_tracker: https://github.com/viash-hub/demultiplex/issues
repository: https://github.com/viash-hub/demultiplex
info:
test_resources:
- path: gs://viash-hub-resources/demultiplex/v4
dest: testData
viash_version: 0.9.4
config_mods: |
.requirements.commands += ['ps']
.runners[.type == 'nextflow'].directives.tag := '$id'
.resources += {path: '/src/config/labels.config', dest: 'nextflow_labels.config'}
.runners[.type == 'nextflow'].config.script := 'includeConfig("nextflow_labels.config")'
.resources += {path: '/_viash.yaml', dest: '_viash.yaml'}
organization: vsh

View File

@@ -1,4 +1,4 @@
// demultiplex v0.4.0
// demultiplex v0.4.2
//
// This wrapper script is auto-generated by viash 0.9.4 and is thus a derivative
// work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data
@@ -3031,7 +3031,7 @@ meta = [
"resources_dir": moduleDir.toRealPath().normalize(),
"config": processConfig(readJsonBlob('''{
"name" : "demultiplex",
"version" : "v0.4.0",
"version" : "v0.4.2",
"argument_groups" : [
{
"name" : "Input arguments",
@@ -3178,6 +3178,11 @@ meta = [
"type" : "file",
"path" : "/src/config/labels.config",
"dest" : "nextflow_labels.config"
},
{
"type" : "file",
"path" : "/_viash.yaml",
"dest" : "_viash.yaml"
}
],
"description" : "Demultiplexing of raw sequencing data",
@@ -3267,6 +3272,12 @@ meta = [
"repo" : "biobox",
"tag" : "v0.3.1"
}
},
{
"name" : "detect_demultiplexer",
"repository" : {
"type" : "local"
}
}
],
"repositories" : [
@@ -3369,13 +3380,13 @@ meta = [
"engine" : "native|native",
"output" : "target/nextflow/demultiplex",
"viash_version" : "0.9.4",
"git_commit" : "d331781d1a699792462d6e2d5205ffc51ab3ecef",
"git_commit" : "21de648b218d114d3ab155462f4f08f4d585f741",
"git_remote" : "https://github.com/viash-hub/demultiplex",
"git_tag" : "v0.1.1-32-gd331781"
"git_tag" : "v0.1.1-40-g21de648"
},
"package_config" : {
"name" : "demultiplex",
"version" : "v0.4.0",
"version" : "v0.4.2",
"description" : "Demultiplexing pipeline\n",
"info" : {
"test_resources" : [
@@ -3389,10 +3400,10 @@ meta = [
"source" : "src",
"target" : "target",
"config_mods" : [
".requirements.commands += ['ps']\n.runners[.type == 'nextflow'].directives.tag := '$id'\n.resources += {path: '/src/config/labels.config', dest: 'nextflow_labels.config'}\n.runners[.type == 'nextflow'].config.script := 'includeConfig(\\"nextflow_labels.config\\")'\n",
".requirements.commands += ['ps']\n.runners[.type == 'nextflow'].directives.tag := '$id'\n.resources += {path: '/src/config/labels.config', dest: 'nextflow_labels.config'}\n.runners[.type == 'nextflow'].config.script := 'includeConfig(\\"nextflow_labels.config\\")'\n.resources += {path: '/_viash.yaml', dest: '_viash.yaml'}\n",
".engines += { type: \\"native\\" }",
".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'",
".engines[.type == 'docker'].target_tag := 'v0.4.0'"
".engines[.type == 'docker'].target_tag := 'v0.4.2'"
],
"keywords" : [
"bioinformatics",
@@ -3420,6 +3431,7 @@ include { bcl_convert } from "${meta.root_dir}/dependencies/vsh/vsh/biobox/v0.3.
include { bases2fastq } from "${meta.root_dir}/dependencies/vsh/vsh/biobox/v0.3.1/nextflow/bases2fastq/main.nf"
include { fastqc } from "${meta.root_dir}/dependencies/vsh/vsh/biobox/v0.3.1/nextflow/fastqc/main.nf"
include { multiqc } from "${meta.root_dir}/dependencies/vsh/vsh/biobox/v0.3.1/nextflow/multiqc/main.nf"
include { detect_demultiplexer } from "${meta.resources_dir}/../../nextflow/detect_demultiplexer/main.nf"
// inner workflow
// user-provided Nextflow code
@@ -3446,88 +3458,21 @@ workflow run_wf {
state + ["input": result.output]
},
)
// Gather input files from folder
| map {id, state ->
def newState = [:]
println("Provided run information: ${state.run_information} and demultiplexer: ${state.demultiplexer}")
// No auto-detection of run information file (it is user provided),
// in this case the demultiplexer should also be specified.
assert (!state.run_information || state.demultiplexer): "When setting --run_information, " +
"you must also provide a demultiplexer"
if (!state.run_information) {
println("Run information was not specified, auto-detecting...")
// The supported_platforms hashmap must be a 1-on-1 mapping
// Also, it's keys must be present in the 'choices' field
// for the 'run_information' argument in the viash config.
def supported_platforms = [
"bclconvert": "SampleSheet.csv", // Illumina
"bases2fastq": "RunManifest.csv" // Element Biosciences
// detect demultiplexer
| detect_demultiplexer.run(
fromState: [
"input": "input",
"run_information": "run_information",
"demultiplexer": "demultiplexer",
],
toState: { id, result, state ->
state + [
"demultiplexer": result.demultiplexer_output,
"run_information": result.run_information_output
]
def found_sample_information = supported_platforms.collectEntries{demultiplexer, filename ->
println("Checking if ${filename} can be found in input folder ${state.input}.")
def resolved_filename = state.input.resolve(filename)
if (!resolved_filename.isFile()) {
resolved_filename = null
}
println("Result after looking for run information for ${demultiplexer}: ${resolved_filename}.")
[demultiplexer, resolved_filename]
}
def demultiplexer = null
def run_information = null
found_sample_information.each{demultiplexer_candidate, file_path ->
if (file_path) {
// At this point, a candicate run information file was found.
assert !run_information: "Autodetection of run information " +
"(SampleSheet, RunManifest) failed: " +
"multiple candidate files found in input folder. " +
"Please specify one using --run_information."
run_information = file_path
demultiplexer = demultiplexer_candidate
}
}
// When autodetecting, the run information should have been found
assert run_information: "No run information file (SampleSheet, RunManifest) " +
"found in input directory."
// When autodetecting, the demultiplexer must be set if the run information was found
assert demultiplexer: "State error: the demultiplexer should have been autodetected. " +
"Please report this as a bug."
// When autodetecting, the found demultiplexer must match
// with the demultiplexer that the user has provided (in case it was provided).
if (state.demultiplexer) {
assert state.demultiplexer == demultiplexer,
"Requested to use demultiplexer ${state.demultiplexer} " +
"but demultiplexer based on the autodetected run information "
"file ${run_information} seems to indicate that the demultiplexer "
"should be ${demultiplexer}. Either avoid specifying the demultiplexer "
"or override the autodetection of the run information by providing "
"the file."
}
println("Using run information ${run_information} and demultiplexer ${demultiplexer}")
// At this point, the autodetected state can override the user provided state.
newState = newState + [
"run_information": run_information,
"demultiplexer": demultiplexer,
]
} // end auto-detection logic
if (newState.demultiplexer in ["bclconvert"]) {
// Do not add InterOp to state because we generate the summary csv's in the next
// step based on the run dir, not the InterOp dir.
def interop_dir = state.input.resolve("InterOp")
assert interop_dir.isDirectory(): "Expected InterOp directory to be present."
def copycomplete_file = state.input.resolve("CopyComplete.txt")
assert (copycomplete_file.isFile() || state.skip_copycomplete_check):
"'CopyComplete.txt' file was not found!"
}
def resultState = state + newState
[id, resultState]
}
)
| interop_summary_to_csv.run(
runIf: {id, state -> state.demultiplexer in ["bclconvert"]},

View File

@@ -2,7 +2,7 @@ manifest {
name = 'demultiplex'
mainScript = 'main.nf'
nextflowVersion = '!>=20.12.1-edge'
version = 'v0.4.0'
version = 'v0.4.2'
description = 'Demultiplexing of raw sequencing data'
}

View File

@@ -0,0 +1,202 @@
name: "detect_demultiplexer"
version: "v0.4.2"
argument_groups:
- name: "Arguments"
arguments:
- type: "string"
name: "--id"
description: "Unique identifier for the run"
info: null
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- type: "file"
name: "--input"
description: "Directory containing raw sequencing data"
info: null
must_exist: true
create_parent: true
required: true
direction: "input"
multiple: false
multiple_sep: ";"
- type: "file"
name: "--run_information"
description: "CSV file containing sample information, which will be used as \n\
input for the demultiplexer. Canonically called 'SampleSheet.csv' (Illumina)\n\
or 'RunManifest.csv' (Element Biosciences). If not specified,\nwill try to autodetect\
\ the sample sheet in the input directory.\nRequires --demultiplexer to be set.\n"
info: null
must_exist: true
create_parent: true
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- type: "string"
name: "--demultiplexer"
description: "Demultiplexer to use, choice depends on the provider\nof the instrument\
\ that was used to generate the data.\nWhen not using --sample_sheet, specifying\
\ this argument is not\nrequired.\n"
info: null
required: false
choices:
- "bases2fastq"
- "bclconvert"
direction: "input"
multiple: false
multiple_sep: ";"
- type: "string"
name: "--demultiplexer_output"
description: "Demultiplexer program. The demultiplexer is either provided (with\
\ --demultiplexer), \nor inferred from the contents of the input data.\n"
info: null
required: false
direction: "output"
multiple: false
multiple_sep: ";"
- type: "file"
name: "--run_information_output"
description: "Sample information that can be used to demultiplex the input data.\
\ \nAn appropriate file was either provided (with --run_information), or \n\
inferred from the contents of the input data.\n"
info: null
must_exist: true
create_parent: true
required: false
direction: "output"
multiple: false
multiple_sep: ";"
resources:
- type: "nextflow_script"
path: "main.nf"
is_executable: true
entrypoint: "run_wf"
- type: "file"
path: "nextflow_labels.config"
dest: "nextflow_labels.config"
- type: "file"
path: "_viash.yaml"
dest: "_viash.yaml"
description: "Detects the demultiplexer and accompanying sample information file which\
\ can be \nused to generate the fastq files.\n"
info: null
status: "enabled"
scope:
image: "public"
target: "public"
requirements:
commands:
- "ps"
license: "MIT"
links:
repository: "https://github.com/viash-hub/demultiplex"
runners:
- 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: "native"
id: "native"
- type: "native"
id: "native"
build_info:
config: "src/detect_demultiplexer/config.vsh.yaml"
runner: "nextflow"
engine: "native|native"
output: "target/nextflow/detect_demultiplexer"
executable: "target/nextflow/detect_demultiplexer/main.nf"
viash_version: "0.9.4"
git_commit: "21de648b218d114d3ab155462f4f08f4d585f741"
git_remote: "https://github.com/viash-hub/demultiplex"
git_tag: "v0.1.1-40-g21de648"
package_config:
name: "demultiplex"
version: "v0.4.2"
description: "Demultiplexing pipeline\n"
info:
test_resources:
- path: "gs://viash-hub-resources/demultiplex/v4"
dest: "testData"
viash_version: "0.9.4"
source: "src"
target: "target"
config_mods:
- ".requirements.commands += ['ps']\n.runners[.type == 'nextflow'].directives.tag\
\ := '$id'\n.resources += {path: '/src/config/labels.config', dest: 'nextflow_labels.config'}\n\
.runners[.type == 'nextflow'].config.script := 'includeConfig(\"nextflow_labels.config\"\
)'\n.resources += {path: '/_viash.yaml', dest: '_viash.yaml'}\n"
- ".engines += { type: \"native\" }"
- ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'"
- ".engines[.type == 'docker'].target_tag := 'v0.4.2'"
keywords:
- "bioinformatics"
- "sequence"
- "demultiplexing"
- "pipeline"
license: "MIT"
organization: "vsh"
links:
repository: "https://github.com/viash-hub/demultiplex"
issue_tracker: "https://github.com/viash-hub/demultiplex/issues"

View File

@@ -0,0 +1,21 @@
name: demultiplex
version: v0.4.2
description: |
Demultiplexing pipeline
license: MIT
keywords: [bioinformatics, sequence, demultiplexing, pipeline]
links:
issue_tracker: https://github.com/viash-hub/demultiplex/issues
repository: https://github.com/viash-hub/demultiplex
info:
test_resources:
- path: gs://viash-hub-resources/demultiplex/v4
dest: testData
viash_version: 0.9.4
config_mods: |
.requirements.commands += ['ps']
.runners[.type == 'nextflow'].directives.tag := '$id'
.resources += {path: '/src/config/labels.config', dest: 'nextflow_labels.config'}
.runners[.type == 'nextflow'].config.script := 'includeConfig("nextflow_labels.config")'
.resources += {path: '/_viash.yaml', dest: '_viash.yaml'}
organization: vsh

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,125 @@
manifest {
name = 'detect_demultiplexer'
mainScript = 'main.nf'
nextflowVersion = '!>=20.12.1-edge'
version = 'v0.4.2'
description = 'Detects the demultiplexer and accompanying sample information file which can be \nused to generate the fastq files.\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")

View File

@@ -0,0 +1,98 @@
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)
}
}

View File

@@ -0,0 +1,74 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "detect_demultiplexer",
"description": "Detects the demultiplexer and accompanying sample information file which can be \nused to generate the fastq files.\n",
"type": "object",
"$defs": {
"arguments": {
"title": "Arguments",
"type": "object",
"description": "No description",
"properties": {
"id": {
"type": "string",
"description": "Unique identifier for the run",
"help_text": "Type: `string`, multiple: `False`. "
},
"input": {
"type": "string",
"format": "path",
"exists": true,
"description": "Directory containing raw sequencing data",
"help_text": "Type: `file`, multiple: `False`, required, direction: `input`. "
},
"run_information": {
"type": "string",
"format": "path",
"description": "CSV file containing sample information, which will be used as \ninput for the demultiplexer",
"help_text": "Type: `file`, multiple: `False`, direction: `input`. "
},
"demultiplexer": {
"type": "string",
"description": "Demultiplexer to use, choice depends on the provider\nof the instrument that was used to generate the data.\nWhen not using --sample_sheet, specifying this argument is not\nrequired.\n",
"help_text": "Type: `string`, multiple: `False`, choices: ``bases2fastq`, `bclconvert``. ",
"enum": [
"bases2fastq",
"bclconvert"
]
},
"demultiplexer_output": {
"type": "string",
"description": "Demultiplexer program",
"help_text": "Type: `string`, multiple: `False`. "
},
"run_information_output": {
"type": "string",
"format": "path",
"description": "Sample information that can be used to demultiplex the input data",
"help_text": "Type: `file`, multiple: `False`, default: `\"$id.$key.run_information_output\"`, direction: `output`. ",
"default": "$id.$key.run_information_output"
}
}
},
"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": "Path to an output directory.",
"help_text": "Type: `string`, multiple: `False`, required, example: `\"output/\"`. "
}
}
}
},
"allOf": [
{
"$ref": "#/$defs/arguments"
},
{
"$ref": "#/$defs/nextflow input-output arguments"
}
]
}

View File

@@ -1,6 +1,6 @@
name: "interop_summary_to_csv"
namespace: "io"
version: "v0.4.0"
version: "v0.4.2"
argument_groups:
- name: "Input arguments"
arguments:
@@ -41,6 +41,9 @@ resources:
- type: "file"
path: "nextflow_labels.config"
dest: "nextflow_labels.config"
- type: "file"
path: "_viash.yaml"
dest: "_viash.yaml"
test_resources:
- type: "bash_script"
path: "test.sh"
@@ -132,7 +135,7 @@ engines:
id: "docker"
image: "debian:stable-slim"
target_registry: "images.viash-hub.com"
target_tag: "v0.4.0"
target_tag: "v0.4.2"
namespace_separator: "/"
setup:
- type: "apt"
@@ -157,12 +160,12 @@ build_info:
output: "target/nextflow/io/interop_summary_to_csv"
executable: "target/nextflow/io/interop_summary_to_csv/main.nf"
viash_version: "0.9.4"
git_commit: "d331781d1a699792462d6e2d5205ffc51ab3ecef"
git_commit: "21de648b218d114d3ab155462f4f08f4d585f741"
git_remote: "https://github.com/viash-hub/demultiplex"
git_tag: "v0.1.1-32-gd331781"
git_tag: "v0.1.1-40-g21de648"
package_config:
name: "demultiplex"
version: "v0.4.0"
version: "v0.4.2"
description: "Demultiplexing pipeline\n"
info:
test_resources:
@@ -175,10 +178,10 @@ package_config:
- ".requirements.commands += ['ps']\n.runners[.type == 'nextflow'].directives.tag\
\ := '$id'\n.resources += {path: '/src/config/labels.config', dest: 'nextflow_labels.config'}\n\
.runners[.type == 'nextflow'].config.script := 'includeConfig(\"nextflow_labels.config\"\
)'\n"
)'\n.resources += {path: '/_viash.yaml', dest: '_viash.yaml'}\n"
- ".engines += { type: \"native\" }"
- ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'"
- ".engines[.type == 'docker'].target_tag := 'v0.4.0'"
- ".engines[.type == 'docker'].target_tag := 'v0.4.2'"
keywords:
- "bioinformatics"
- "sequence"

View File

@@ -0,0 +1,21 @@
name: demultiplex
version: v0.4.2
description: |
Demultiplexing pipeline
license: MIT
keywords: [bioinformatics, sequence, demultiplexing, pipeline]
links:
issue_tracker: https://github.com/viash-hub/demultiplex/issues
repository: https://github.com/viash-hub/demultiplex
info:
test_resources:
- path: gs://viash-hub-resources/demultiplex/v4
dest: testData
viash_version: 0.9.4
config_mods: |
.requirements.commands += ['ps']
.runners[.type == 'nextflow'].directives.tag := '$id'
.resources += {path: '/src/config/labels.config', dest: 'nextflow_labels.config'}
.runners[.type == 'nextflow'].config.script := 'includeConfig("nextflow_labels.config")'
.resources += {path: '/_viash.yaml', dest: '_viash.yaml'}
organization: vsh

View File

@@ -1,4 +1,4 @@
// interop_summary_to_csv v0.4.0
// interop_summary_to_csv v0.4.2
//
// This wrapper script is auto-generated by viash 0.9.4 and is thus a derivative
// work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data
@@ -3032,7 +3032,7 @@ meta = [
"config": processConfig(readJsonBlob('''{
"name" : "interop_summary_to_csv",
"namespace" : "io",
"version" : "v0.4.0",
"version" : "v0.4.2",
"argument_groups" : [
{
"name" : "Input arguments",
@@ -3086,6 +3086,11 @@ meta = [
"type" : "file",
"path" : "/src/config/labels.config",
"dest" : "nextflow_labels.config"
},
{
"type" : "file",
"path" : "/_viash.yaml",
"dest" : "_viash.yaml"
}
],
"test_resources" : [
@@ -3198,7 +3203,7 @@ meta = [
"id" : "docker",
"image" : "debian:stable-slim",
"target_registry" : "images.viash-hub.com",
"target_tag" : "v0.4.0",
"target_tag" : "v0.4.2",
"namespace_separator" : "/",
"setup" : [
{
@@ -3228,13 +3233,13 @@ meta = [
"engine" : "docker|native",
"output" : "target/nextflow/io/interop_summary_to_csv",
"viash_version" : "0.9.4",
"git_commit" : "d331781d1a699792462d6e2d5205ffc51ab3ecef",
"git_commit" : "21de648b218d114d3ab155462f4f08f4d585f741",
"git_remote" : "https://github.com/viash-hub/demultiplex",
"git_tag" : "v0.1.1-32-gd331781"
"git_tag" : "v0.1.1-40-g21de648"
},
"package_config" : {
"name" : "demultiplex",
"version" : "v0.4.0",
"version" : "v0.4.2",
"description" : "Demultiplexing pipeline\n",
"info" : {
"test_resources" : [
@@ -3248,10 +3253,10 @@ meta = [
"source" : "src",
"target" : "target",
"config_mods" : [
".requirements.commands += ['ps']\n.runners[.type == 'nextflow'].directives.tag := '$id'\n.resources += {path: '/src/config/labels.config', dest: 'nextflow_labels.config'}\n.runners[.type == 'nextflow'].config.script := 'includeConfig(\\"nextflow_labels.config\\")'\n",
".requirements.commands += ['ps']\n.runners[.type == 'nextflow'].directives.tag := '$id'\n.resources += {path: '/src/config/labels.config', dest: 'nextflow_labels.config'}\n.runners[.type == 'nextflow'].config.script := 'includeConfig(\\"nextflow_labels.config\\")'\n.resources += {path: '/_viash.yaml', dest: '_viash.yaml'}\n",
".engines += { type: \\"native\\" }",
".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'",
".engines[.type == 'docker'].target_tag := 'v0.4.0'"
".engines[.type == 'docker'].target_tag := 'v0.4.2'"
],
"keywords" : [
"bioinformatics",
@@ -3695,7 +3700,7 @@ meta["defaults"] = [
"container" : {
"registry" : "images.viash-hub.com",
"image" : "vsh/demultiplex/io/interop_summary_to_csv",
"tag" : "v0.4.0"
"tag" : "v0.4.2"
},
"tag" : "$id"
}'''),

View File

@@ -2,7 +2,7 @@ manifest {
name = 'io/interop_summary_to_csv'
mainScript = 'main.nf'
nextflowVersion = '!>=20.12.1-edge'
version = 'v0.4.0'
version = 'v0.4.2'
}
process.container = 'nextflow/bash:latest'

View File

@@ -1,6 +1,6 @@
name: "publish"
namespace: "io"
version: "v0.4.0"
version: "v0.4.2"
argument_groups:
- name: "Input arguments"
arguments:
@@ -117,6 +117,9 @@ resources:
- type: "file"
path: "nextflow_labels.config"
dest: "nextflow_labels.config"
- type: "file"
path: "_viash.yaml"
dest: "_viash.yaml"
description: "Publish the processed results of the run"
info: null
status: "enabled"
@@ -201,7 +204,7 @@ engines:
id: "docker"
image: "debian:stable-slim"
target_registry: "images.viash-hub.com"
target_tag: "v0.4.0"
target_tag: "v0.4.2"
namespace_separator: "/"
setup:
- type: "apt"
@@ -219,12 +222,12 @@ build_info:
output: "target/nextflow/io/publish"
executable: "target/nextflow/io/publish/main.nf"
viash_version: "0.9.4"
git_commit: "d331781d1a699792462d6e2d5205ffc51ab3ecef"
git_commit: "21de648b218d114d3ab155462f4f08f4d585f741"
git_remote: "https://github.com/viash-hub/demultiplex"
git_tag: "v0.1.1-32-gd331781"
git_tag: "v0.1.1-40-g21de648"
package_config:
name: "demultiplex"
version: "v0.4.0"
version: "v0.4.2"
description: "Demultiplexing pipeline\n"
info:
test_resources:
@@ -237,10 +240,10 @@ package_config:
- ".requirements.commands += ['ps']\n.runners[.type == 'nextflow'].directives.tag\
\ := '$id'\n.resources += {path: '/src/config/labels.config', dest: 'nextflow_labels.config'}\n\
.runners[.type == 'nextflow'].config.script := 'includeConfig(\"nextflow_labels.config\"\
)'\n"
)'\n.resources += {path: '/_viash.yaml', dest: '_viash.yaml'}\n"
- ".engines += { type: \"native\" }"
- ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'"
- ".engines[.type == 'docker'].target_tag := 'v0.4.0'"
- ".engines[.type == 'docker'].target_tag := 'v0.4.2'"
keywords:
- "bioinformatics"
- "sequence"

View File

@@ -0,0 +1,21 @@
name: demultiplex
version: v0.4.2
description: |
Demultiplexing pipeline
license: MIT
keywords: [bioinformatics, sequence, demultiplexing, pipeline]
links:
issue_tracker: https://github.com/viash-hub/demultiplex/issues
repository: https://github.com/viash-hub/demultiplex
info:
test_resources:
- path: gs://viash-hub-resources/demultiplex/v4
dest: testData
viash_version: 0.9.4
config_mods: |
.requirements.commands += ['ps']
.runners[.type == 'nextflow'].directives.tag := '$id'
.resources += {path: '/src/config/labels.config', dest: 'nextflow_labels.config'}
.runners[.type == 'nextflow'].config.script := 'includeConfig("nextflow_labels.config")'
.resources += {path: '/_viash.yaml', dest: '_viash.yaml'}
organization: vsh

View File

@@ -1,4 +1,4 @@
// publish v0.4.0
// publish v0.4.2
//
// This wrapper script is auto-generated by viash 0.9.4 and is thus a derivative
// work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data
@@ -3032,7 +3032,7 @@ meta = [
"config": processConfig(readJsonBlob('''{
"name" : "publish",
"namespace" : "io",
"version" : "v0.4.0",
"version" : "v0.4.2",
"argument_groups" : [
{
"name" : "Input arguments",
@@ -3174,6 +3174,11 @@ meta = [
"type" : "file",
"path" : "/src/config/labels.config",
"dest" : "nextflow_labels.config"
},
{
"type" : "file",
"path" : "/_viash.yaml",
"dest" : "_viash.yaml"
}
],
"description" : "Publish the processed results of the run",
@@ -3274,7 +3279,7 @@ meta = [
"id" : "docker",
"image" : "debian:stable-slim",
"target_registry" : "images.viash-hub.com",
"target_tag" : "v0.4.0",
"target_tag" : "v0.4.2",
"namespace_separator" : "/",
"setup" : [
{
@@ -3297,13 +3302,13 @@ meta = [
"engine" : "docker|native",
"output" : "target/nextflow/io/publish",
"viash_version" : "0.9.4",
"git_commit" : "d331781d1a699792462d6e2d5205ffc51ab3ecef",
"git_commit" : "21de648b218d114d3ab155462f4f08f4d585f741",
"git_remote" : "https://github.com/viash-hub/demultiplex",
"git_tag" : "v0.1.1-32-gd331781"
"git_tag" : "v0.1.1-40-g21de648"
},
"package_config" : {
"name" : "demultiplex",
"version" : "v0.4.0",
"version" : "v0.4.2",
"description" : "Demultiplexing pipeline\n",
"info" : {
"test_resources" : [
@@ -3317,10 +3322,10 @@ meta = [
"source" : "src",
"target" : "target",
"config_mods" : [
".requirements.commands += ['ps']\n.runners[.type == 'nextflow'].directives.tag := '$id'\n.resources += {path: '/src/config/labels.config', dest: 'nextflow_labels.config'}\n.runners[.type == 'nextflow'].config.script := 'includeConfig(\\"nextflow_labels.config\\")'\n",
".requirements.commands += ['ps']\n.runners[.type == 'nextflow'].directives.tag := '$id'\n.resources += {path: '/src/config/labels.config', dest: 'nextflow_labels.config'}\n.runners[.type == 'nextflow'].config.script := 'includeConfig(\\"nextflow_labels.config\\")'\n.resources += {path: '/_viash.yaml', dest: '_viash.yaml'}\n",
".engines += { type: \\"native\\" }",
".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'",
".engines[.type == 'docker'].target_tag := 'v0.4.0'"
".engines[.type == 'docker'].target_tag := 'v0.4.2'"
],
"keywords" : [
"bioinformatics",
@@ -3795,7 +3800,7 @@ meta["defaults"] = [
"container" : {
"registry" : "images.viash-hub.com",
"image" : "vsh/demultiplex/io/publish",
"tag" : "v0.4.0"
"tag" : "v0.4.2"
},
"tag" : "$id"
}'''),

View File

@@ -2,7 +2,7 @@ manifest {
name = 'io/publish'
mainScript = 'main.nf'
nextflowVersion = '!>=20.12.1-edge'
version = 'v0.4.0'
version = 'v0.4.2'
description = 'Publish the processed results of the run'
}

View File

@@ -1,6 +1,6 @@
name: "untar"
namespace: "io"
version: "v0.4.0"
version: "v0.4.2"
argument_groups:
- name: "Input arguments"
arguments:
@@ -48,6 +48,9 @@ resources:
- type: "file"
path: "nextflow_labels.config"
dest: "nextflow_labels.config"
- type: "file"
path: "_viash.yaml"
dest: "_viash.yaml"
description: "Unpack a .tar file. When the contents of the .tar file is just a single\
\ directory,\nput the contents of the directory into the output folder instead of\
\ that directory.\n"
@@ -138,7 +141,7 @@ engines:
id: "docker"
image: "debian:stable-slim"
target_registry: "images.viash-hub.com"
target_tag: "v0.4.0"
target_tag: "v0.4.2"
namespace_separator: "/"
setup:
- type: "apt"
@@ -156,12 +159,12 @@ build_info:
output: "target/nextflow/io/untar"
executable: "target/nextflow/io/untar/main.nf"
viash_version: "0.9.4"
git_commit: "d331781d1a699792462d6e2d5205ffc51ab3ecef"
git_commit: "21de648b218d114d3ab155462f4f08f4d585f741"
git_remote: "https://github.com/viash-hub/demultiplex"
git_tag: "v0.1.1-32-gd331781"
git_tag: "v0.1.1-40-g21de648"
package_config:
name: "demultiplex"
version: "v0.4.0"
version: "v0.4.2"
description: "Demultiplexing pipeline\n"
info:
test_resources:
@@ -174,10 +177,10 @@ package_config:
- ".requirements.commands += ['ps']\n.runners[.type == 'nextflow'].directives.tag\
\ := '$id'\n.resources += {path: '/src/config/labels.config', dest: 'nextflow_labels.config'}\n\
.runners[.type == 'nextflow'].config.script := 'includeConfig(\"nextflow_labels.config\"\
)'\n"
)'\n.resources += {path: '/_viash.yaml', dest: '_viash.yaml'}\n"
- ".engines += { type: \"native\" }"
- ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'"
- ".engines[.type == 'docker'].target_tag := 'v0.4.0'"
- ".engines[.type == 'docker'].target_tag := 'v0.4.2'"
keywords:
- "bioinformatics"
- "sequence"

View File

@@ -0,0 +1,21 @@
name: demultiplex
version: v0.4.2
description: |
Demultiplexing pipeline
license: MIT
keywords: [bioinformatics, sequence, demultiplexing, pipeline]
links:
issue_tracker: https://github.com/viash-hub/demultiplex/issues
repository: https://github.com/viash-hub/demultiplex
info:
test_resources:
- path: gs://viash-hub-resources/demultiplex/v4
dest: testData
viash_version: 0.9.4
config_mods: |
.requirements.commands += ['ps']
.runners[.type == 'nextflow'].directives.tag := '$id'
.resources += {path: '/src/config/labels.config', dest: 'nextflow_labels.config'}
.runners[.type == 'nextflow'].config.script := 'includeConfig("nextflow_labels.config")'
.resources += {path: '/_viash.yaml', dest: '_viash.yaml'}
organization: vsh

View File

@@ -1,4 +1,4 @@
// untar v0.4.0
// untar v0.4.2
//
// This wrapper script is auto-generated by viash 0.9.4 and is thus a derivative
// work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data
@@ -3032,7 +3032,7 @@ meta = [
"config": processConfig(readJsonBlob('''{
"name" : "untar",
"namespace" : "io",
"version" : "v0.4.0",
"version" : "v0.4.2",
"argument_groups" : [
{
"name" : "Input arguments",
@@ -3097,6 +3097,11 @@ meta = [
"type" : "file",
"path" : "/src/config/labels.config",
"dest" : "nextflow_labels.config"
},
{
"type" : "file",
"path" : "/_viash.yaml",
"dest" : "_viash.yaml"
}
],
"description" : "Unpack a .tar file. When the contents of the .tar file is just a single directory,\nput the contents of the directory into the output folder instead of that directory.\n",
@@ -3204,7 +3209,7 @@ meta = [
"id" : "docker",
"image" : "debian:stable-slim",
"target_registry" : "images.viash-hub.com",
"target_tag" : "v0.4.0",
"target_tag" : "v0.4.2",
"namespace_separator" : "/",
"setup" : [
{
@@ -3227,13 +3232,13 @@ meta = [
"engine" : "docker|native",
"output" : "target/nextflow/io/untar",
"viash_version" : "0.9.4",
"git_commit" : "d331781d1a699792462d6e2d5205ffc51ab3ecef",
"git_commit" : "21de648b218d114d3ab155462f4f08f4d585f741",
"git_remote" : "https://github.com/viash-hub/demultiplex",
"git_tag" : "v0.1.1-32-gd331781"
"git_tag" : "v0.1.1-40-g21de648"
},
"package_config" : {
"name" : "demultiplex",
"version" : "v0.4.0",
"version" : "v0.4.2",
"description" : "Demultiplexing pipeline\n",
"info" : {
"test_resources" : [
@@ -3247,10 +3252,10 @@ meta = [
"source" : "src",
"target" : "target",
"config_mods" : [
".requirements.commands += ['ps']\n.runners[.type == 'nextflow'].directives.tag := '$id'\n.resources += {path: '/src/config/labels.config', dest: 'nextflow_labels.config'}\n.runners[.type == 'nextflow'].config.script := 'includeConfig(\\"nextflow_labels.config\\")'\n",
".requirements.commands += ['ps']\n.runners[.type == 'nextflow'].directives.tag := '$id'\n.resources += {path: '/src/config/labels.config', dest: 'nextflow_labels.config'}\n.runners[.type == 'nextflow'].config.script := 'includeConfig(\\"nextflow_labels.config\\")'\n.resources += {path: '/_viash.yaml', dest: '_viash.yaml'}\n",
".engines += { type: \\"native\\" }",
".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'",
".engines[.type == 'docker'].target_tag := 'v0.4.0'"
".engines[.type == 'docker'].target_tag := 'v0.4.2'"
],
"keywords" : [
"bioinformatics",
@@ -3724,7 +3729,7 @@ meta["defaults"] = [
"container" : {
"registry" : "images.viash-hub.com",
"image" : "vsh/demultiplex/io/untar",
"tag" : "v0.4.0"
"tag" : "v0.4.2"
},
"tag" : "$id"
}'''),

View File

@@ -2,7 +2,7 @@ manifest {
name = 'io/untar'
mainScript = 'main.nf'
nextflowVersion = '!>=20.12.1-edge'
version = 'v0.4.0'
version = 'v0.4.2'
description = 'Unpack a .tar file. When the contents of the .tar file is just a single directory,\nput the contents of the directory into the output folder instead of that directory.\n'
}

View File

@@ -1,5 +1,5 @@
name: "runner"
version: "v0.4.0"
version: "v0.4.2"
argument_groups:
- name: "Input arguments"
arguments:
@@ -111,6 +111,9 @@ resources:
- type: "file"
path: "nextflow_labels.config"
dest: "nextflow_labels.config"
- type: "file"
path: "_viash.yaml"
dest: "_viash.yaml"
description: "Runner for demultiplexing of raw sequencing data"
test_resources:
- type: "nextflow_script"
@@ -211,15 +214,15 @@ build_info:
output: "target/nextflow/runner"
executable: "target/nextflow/runner/main.nf"
viash_version: "0.9.4"
git_commit: "d331781d1a699792462d6e2d5205ffc51ab3ecef"
git_commit: "21de648b218d114d3ab155462f4f08f4d585f741"
git_remote: "https://github.com/viash-hub/demultiplex"
git_tag: "v0.1.1-32-gd331781"
git_tag: "v0.1.1-40-g21de648"
dependencies:
- "target/nextflow/demultiplex"
- "target/nextflow/io/publish"
package_config:
name: "demultiplex"
version: "v0.4.0"
version: "v0.4.2"
description: "Demultiplexing pipeline\n"
info:
test_resources:
@@ -232,10 +235,10 @@ package_config:
- ".requirements.commands += ['ps']\n.runners[.type == 'nextflow'].directives.tag\
\ := '$id'\n.resources += {path: '/src/config/labels.config', dest: 'nextflow_labels.config'}\n\
.runners[.type == 'nextflow'].config.script := 'includeConfig(\"nextflow_labels.config\"\
)'\n"
)'\n.resources += {path: '/_viash.yaml', dest: '_viash.yaml'}\n"
- ".engines += { type: \"native\" }"
- ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'"
- ".engines[.type == 'docker'].target_tag := 'v0.4.0'"
- ".engines[.type == 'docker'].target_tag := 'v0.4.2'"
keywords:
- "bioinformatics"
- "sequence"

View File

@@ -0,0 +1,21 @@
name: demultiplex
version: v0.4.2
description: |
Demultiplexing pipeline
license: MIT
keywords: [bioinformatics, sequence, demultiplexing, pipeline]
links:
issue_tracker: https://github.com/viash-hub/demultiplex/issues
repository: https://github.com/viash-hub/demultiplex
info:
test_resources:
- path: gs://viash-hub-resources/demultiplex/v4
dest: testData
viash_version: 0.9.4
config_mods: |
.requirements.commands += ['ps']
.runners[.type == 'nextflow'].directives.tag := '$id'
.resources += {path: '/src/config/labels.config', dest: 'nextflow_labels.config'}
.runners[.type == 'nextflow'].config.script := 'includeConfig("nextflow_labels.config")'
.resources += {path: '/_viash.yaml', dest: '_viash.yaml'}
organization: vsh

View File

@@ -1,4 +1,4 @@
// runner v0.4.0
// runner v0.4.2
//
// This wrapper script is auto-generated by viash 0.9.4 and is thus a derivative
// work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data
@@ -3031,7 +3031,7 @@ meta = [
"resources_dir": moduleDir.toRealPath().normalize(),
"config": processConfig(readJsonBlob('''{
"name" : "runner",
"version" : "v0.4.0",
"version" : "v0.4.2",
"argument_groups" : [
{
"name" : "Input arguments",
@@ -3164,6 +3164,11 @@ meta = [
"type" : "file",
"path" : "/src/config/labels.config",
"dest" : "nextflow_labels.config"
},
{
"type" : "file",
"path" : "/_viash.yaml",
"dest" : "_viash.yaml"
}
],
"description" : "Runner for demultiplexing of raw sequencing data",
@@ -3291,13 +3296,13 @@ meta = [
"engine" : "native|native",
"output" : "target/nextflow/runner",
"viash_version" : "0.9.4",
"git_commit" : "d331781d1a699792462d6e2d5205ffc51ab3ecef",
"git_commit" : "21de648b218d114d3ab155462f4f08f4d585f741",
"git_remote" : "https://github.com/viash-hub/demultiplex",
"git_tag" : "v0.1.1-32-gd331781"
"git_tag" : "v0.1.1-40-g21de648"
},
"package_config" : {
"name" : "demultiplex",
"version" : "v0.4.0",
"version" : "v0.4.2",
"description" : "Demultiplexing pipeline\n",
"info" : {
"test_resources" : [
@@ -3311,10 +3316,10 @@ meta = [
"source" : "src",
"target" : "target",
"config_mods" : [
".requirements.commands += ['ps']\n.runners[.type == 'nextflow'].directives.tag := '$id'\n.resources += {path: '/src/config/labels.config', dest: 'nextflow_labels.config'}\n.runners[.type == 'nextflow'].config.script := 'includeConfig(\\"nextflow_labels.config\\")'\n",
".requirements.commands += ['ps']\n.runners[.type == 'nextflow'].directives.tag := '$id'\n.resources += {path: '/src/config/labels.config', dest: 'nextflow_labels.config'}\n.runners[.type == 'nextflow'].config.script := 'includeConfig(\\"nextflow_labels.config\\")'\n.resources += {path: '/_viash.yaml', dest: '_viash.yaml'}\n",
".engines += { type: \\"native\\" }",
".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'",
".engines[.type == 'docker'].target_tag := 'v0.4.0'"
".engines[.type == 'docker'].target_tag := 'v0.4.2'"
],
"keywords" : [
"bioinformatics",
@@ -3341,7 +3346,7 @@ include { publish } from "${meta.resources_dir}/../../nextflow/io/publish/main.n
// user-provided Nextflow code
def date = new Date().format('yyyyMMdd_hhmmss')
def viash_config = java.nio.file.Paths.get("$projectDir/../../../").toAbsolutePath().normalize().toString() + "/_viash.yaml"
def viash_config = java.nio.file.Paths.get("${moduleDir}/_viash.yaml")
def version = get_version(viash_config)
workflow run_wf {
@@ -3388,7 +3393,8 @@ workflow run_wf {
state_to_pass
},
toState: { id, result, state ->
state + result
// Duplicate the results under its own key, makes it easier to access later.
state + result + [ to_return: result ]
},
)
| publish.run(
@@ -3421,7 +3427,7 @@ workflow run_wf {
output_demultiplexer_logs: demultiplexer_logs_output,
]
},
toState: { id, result, state -> [:] },
toState: { id, result, state -> [ fastq_output: state.to_return.output ] },
directives: [
publishDir: [
path: "${params.publish_dir}",
@@ -3444,7 +3450,7 @@ def get_version(input) {
def yamlSlurper = new groovy.yaml.YamlSlurper()
def loaded_viash_config = yamlSlurper.parse(inputFile)
def version = (loaded_viash_config.version) ? loaded_viash_config.version : "unknown_version"
println("Version to be used: ${version}")
println("Version of demultiplex to be used: ${version}")
return version
}

View File

@@ -2,7 +2,7 @@ manifest {
name = 'runner'
mainScript = 'main.nf'
nextflowVersion = '!>=20.12.1-edge'
version = 'v0.4.0'
version = 'v0.4.2'
description = 'Runner for demultiplexing of raw sequencing data'
}