Build branch main with version main (399e469)
Build pipeline: viash-hub.demultiplex.main-f55jt
Source commit: 399e46901d
Source message: Add test_resources to .gitignore
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1,7 +1,8 @@
|
|||||||
target
|
target
|
||||||
testData
|
testData
|
||||||
|
test_resources
|
||||||
|
|
||||||
# Nextflow related files
|
# Nextflow related files
|
||||||
.nextflow
|
.nextflow
|
||||||
.nextflow.log*
|
.nextflow.log*
|
||||||
work
|
work
|
||||||
|
|||||||
18
CHANGELOG.md
18
CHANGELOG.md
@@ -1,17 +1,13 @@
|
|||||||
# 0.1.2
|
# Unreleased
|
||||||
|
|
||||||
## NEW FEATURES
|
## Minor updates
|
||||||
|
|
||||||
|
* Bump viash to 0.9.0 (PR #14).
|
||||||
|
|
||||||
|
* `demultiplex` workflow: use `v0.2.0` release instead of `main` branch for `biobox` dependencies (PR #11).
|
||||||
|
|
||||||
* Renamed `biobase` repository to `biobox` (PR #13 and PR #15).
|
* Renamed `biobase` repository to `biobox` (PR #13 and PR #15).
|
||||||
|
|
||||||
* Bump viash to 0.9.0-RC6 (PR #14).
|
|
||||||
|
|
||||||
# v0.1.1
|
|
||||||
|
|
||||||
## NEW FEATURES
|
|
||||||
|
|
||||||
* `demultiplex` workflow: use `v0.1.0` release instead of `main` branch for `biobase` dependencies (PR #11).
|
|
||||||
|
|
||||||
# v0.1.0
|
# v0.1.0
|
||||||
|
|
||||||
Initial release
|
Initial release
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ repositories:
|
|||||||
- name: bb
|
- name: bb
|
||||||
type: vsh
|
type: vsh
|
||||||
repo: biobox
|
repo: biobox
|
||||||
tag: v0.1.0
|
tag: v0.2.0
|
||||||
|
|
||||||
runners:
|
runners:
|
||||||
- type: nextflow
|
- type: nextflow
|
||||||
|
|||||||
@@ -1,5 +1,30 @@
|
|||||||
name: "bcl_convert"
|
name: "bcl_convert"
|
||||||
version: "v0.1.0"
|
version: "0.2.0"
|
||||||
|
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"
|
||||||
|
- name: "Dorien Roosen"
|
||||||
|
roles:
|
||||||
|
- "author"
|
||||||
|
info:
|
||||||
|
links:
|
||||||
|
email: "dorien@data-intuitive.com"
|
||||||
|
github: "dorien-er"
|
||||||
|
linkedin: "dorien-roosen"
|
||||||
|
organizations:
|
||||||
|
- name: "Data Intuitive"
|
||||||
|
href: "https://www.data-intuitive.com"
|
||||||
|
role: "Data Scientist"
|
||||||
argument_groups:
|
argument_groups:
|
||||||
- name: "Input arguments"
|
- name: "Input arguments"
|
||||||
arguments:
|
arguments:
|
||||||
@@ -281,9 +306,16 @@ status: "enabled"
|
|||||||
requirements:
|
requirements:
|
||||||
commands:
|
commands:
|
||||||
- "ps"
|
- "ps"
|
||||||
license: "MIT"
|
keywords:
|
||||||
|
- "demultiplex"
|
||||||
|
- "fastq"
|
||||||
|
- "bcl"
|
||||||
|
- "illumina"
|
||||||
|
license: "Proprietary"
|
||||||
links:
|
links:
|
||||||
repository: "https://github.com/viash-hub/biobox"
|
repository: "https://github.com/viash-hub/biobox"
|
||||||
|
homepage: "https://support.illumina.com/sequencing/sequencing_software/bcl-convert.html"
|
||||||
|
documentation: "https://support.illumina.com/downloads/bcl-convert-user-guide.html"
|
||||||
runners:
|
runners:
|
||||||
- type: "executable"
|
- type: "executable"
|
||||||
id: "executable"
|
id: "executable"
|
||||||
@@ -354,7 +386,7 @@ engines:
|
|||||||
id: "docker"
|
id: "docker"
|
||||||
image: "debian:trixie-slim"
|
image: "debian:trixie-slim"
|
||||||
target_registry: "images.viash-hub.com"
|
target_registry: "images.viash-hub.com"
|
||||||
target_tag: "v0.1.0"
|
target_tag: "0.2.0"
|
||||||
namespace_separator: "/"
|
namespace_separator: "/"
|
||||||
setup:
|
setup:
|
||||||
- type: "apt"
|
- type: "apt"
|
||||||
@@ -385,22 +417,22 @@ build_info:
|
|||||||
engine: "docker|native"
|
engine: "docker|native"
|
||||||
output: "target/nextflow/bcl_convert"
|
output: "target/nextflow/bcl_convert"
|
||||||
executable: "target/nextflow/bcl_convert/main.nf"
|
executable: "target/nextflow/bcl_convert/main.nf"
|
||||||
viash_version: "0.9.0-RC6"
|
viash_version: "0.9.0"
|
||||||
git_commit: "b84b29747d0635f2ac83ea63b496be9a9edb6724"
|
git_commit: "5526b3e939030daea80595fa98387b469329bbfa"
|
||||||
git_remote: "https://github.com/viash-hub/biobox"
|
git_remote: "https://github.com/viash-hub/biobox"
|
||||||
package_config:
|
package_config:
|
||||||
name: "biobox"
|
name: "biobox"
|
||||||
version: "v0.1.0"
|
version: "0.2.0"
|
||||||
description: "A collection of bioinformatics tools for working with sequence data.\n"
|
description: "A collection of bioinformatics tools for working with sequence data.\n"
|
||||||
info: null
|
info: null
|
||||||
viash_version: "0.9.0-RC6"
|
viash_version: "0.9.0"
|
||||||
source: "src"
|
source: "src"
|
||||||
target: "target"
|
target: "target"
|
||||||
config_mods:
|
config_mods:
|
||||||
- ".requirements.commands := ['ps']\n"
|
- ".requirements.commands := ['ps']\n"
|
||||||
- ".engines += { type: \"native\" }"
|
- ".engines += { type: \"native\" }"
|
||||||
- ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'"
|
- ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'"
|
||||||
- ".engines[.type == 'docker'].target_tag := 'v0.1.0'"
|
- ".engines[.type == 'docker'].target_tag := '0.2.0'"
|
||||||
keywords:
|
keywords:
|
||||||
- "bioinformatics"
|
- "bioinformatics"
|
||||||
- "modules"
|
- "modules"
|
||||||
@@ -1,13 +1,17 @@
|
|||||||
// bcl_convert v0.1.0
|
// bcl_convert 0.2.0
|
||||||
//
|
//
|
||||||
// This wrapper script is auto-generated by viash 0.9.0-RC6 and is thus a
|
// This wrapper script is auto-generated by viash 0.9.0 and is thus a derivative
|
||||||
// derivative work thereof. This software comes with ABSOLUTELY NO WARRANTY from
|
// work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data
|
||||||
// Data Intuitive.
|
// Intuitive.
|
||||||
//
|
//
|
||||||
// The component may contain files which fall under a different license. The
|
// 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
|
// 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, or include a separate license file detailing the licenses of all included
|
||||||
// files.
|
// files.
|
||||||
|
//
|
||||||
|
// Component authors:
|
||||||
|
// * Toni Verbeiren (author, maintainer)
|
||||||
|
// * Dorien Roosen (author)
|
||||||
|
|
||||||
////////////////////////////
|
////////////////////////////
|
||||||
// VDSL3 helper functions //
|
// VDSL3 helper functions //
|
||||||
@@ -760,8 +764,11 @@ def runEach(Map args) {
|
|||||||
def fromState_ = args.fromState
|
def fromState_ = args.fromState
|
||||||
def toState_ = args.toState
|
def toState_ = args.toState
|
||||||
def filter_ = args.filter
|
def filter_ = args.filter
|
||||||
|
def runIf_ = args.runIf
|
||||||
def id_ = args.id
|
def id_ = args.id
|
||||||
|
|
||||||
|
assert !runIf_ || runIf_ instanceof Closure: "runEach: must pass a Closure to runIf."
|
||||||
|
|
||||||
workflow runEachWf {
|
workflow runEachWf {
|
||||||
take: input_ch
|
take: input_ch
|
||||||
main:
|
main:
|
||||||
@@ -783,7 +790,20 @@ def runEach(Map args) {
|
|||||||
[new_id] + tup.drop(1)
|
[new_id] + tup.drop(1)
|
||||||
}
|
}
|
||||||
: filter_ch
|
: 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]
|
def new_data = tup[1]
|
||||||
if (fromState_ instanceof Map) {
|
if (fromState_ instanceof Map) {
|
||||||
new_data = fromState_.collectEntries{ key0, key1 ->
|
new_data = fromState_.collectEntries{ key0, key1 ->
|
||||||
@@ -821,8 +841,11 @@ def runEach(Map args) {
|
|||||||
[tup[0], new_state] + tup.drop(3)
|
[tup[0], new_state] + tup.drop(3)
|
||||||
}
|
}
|
||||||
: out_ch
|
: out_ch
|
||||||
|
|
||||||
|
def return_ch = post_ch
|
||||||
|
| concat(chPassthrough)
|
||||||
|
|
||||||
post_ch
|
return_ch
|
||||||
}
|
}
|
||||||
|
|
||||||
// mix all results
|
// mix all results
|
||||||
@@ -1598,8 +1621,8 @@ def findStates(Map params, Map config) {
|
|||||||
// construct renameMap
|
// construct renameMap
|
||||||
if (args.rename_keys) {
|
if (args.rename_keys) {
|
||||||
def renameMap = args.rename_keys.collectEntries{renameString ->
|
def renameMap = args.rename_keys.collectEntries{renameString ->
|
||||||
def split = renameString.split(";")
|
def split = renameString.split(":")
|
||||||
assert split.size() == 2: "Argument 'rename_keys' should be of the form 'newKey:oldKey,newKey:oldKey'"
|
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
|
split
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1709,7 +1732,9 @@ def publishStates(Map args) {
|
|||||||
|
|
||||||
def yamlFilename = yamlTemplate_
|
def yamlFilename = yamlTemplate_
|
||||||
.replaceAll('\\$id', id_)
|
.replaceAll('\\$id', id_)
|
||||||
|
.replaceAll('\\$\\{id\\}', id_)
|
||||||
.replaceAll('\\$key', key_)
|
.replaceAll('\\$key', key_)
|
||||||
|
.replaceAll('\\$\\{key\\}', key_)
|
||||||
|
|
||||||
// TODO: do the pathnames in state_ match up with the outputFilenames_?
|
// TODO: do the pathnames in state_ match up with the outputFilenames_?
|
||||||
|
|
||||||
@@ -1780,7 +1805,9 @@ def publishStatesByConfig(Map args) {
|
|||||||
def yamlTemplate = params.containsKey("output_state") ? params.output_state : '$id.$key.state.yaml'
|
def yamlTemplate = params.containsKey("output_state") ? params.output_state : '$id.$key.state.yaml'
|
||||||
def yamlFilename = yamlTemplate
|
def yamlFilename = yamlTemplate
|
||||||
.replaceAll('\\$id', id_)
|
.replaceAll('\\$id', id_)
|
||||||
|
.replaceAll('\\$\\{id\\}', id_)
|
||||||
.replaceAll('\\$key', key_)
|
.replaceAll('\\$key', key_)
|
||||||
|
.replaceAll('\\$\\{key\\}', key_)
|
||||||
def yamlDir = java.nio.file.Paths.get(yamlFilename).getParent()
|
def yamlDir = java.nio.file.Paths.get(yamlFilename).getParent()
|
||||||
|
|
||||||
// the processed state is a list of [key, value, inputPath, outputFilename] tuples, where
|
// the processed state is a list of [key, value, inputPath, outputFilename] tuples, where
|
||||||
@@ -1822,7 +1849,9 @@ def publishStatesByConfig(Map args) {
|
|||||||
// instantiate the template
|
// instantiate the template
|
||||||
def filename = filenameTemplate
|
def filename = filenameTemplate
|
||||||
.replaceAll('\\$id', id_)
|
.replaceAll('\\$id', id_)
|
||||||
|
.replaceAll('\\$\\{id\\}', id_)
|
||||||
.replaceAll('\\$key', key_)
|
.replaceAll('\\$key', key_)
|
||||||
|
.replaceAll('\\$\\{key\\}', key_)
|
||||||
if (par.multiple) {
|
if (par.multiple) {
|
||||||
// if the parameter is multiple: true, the filename
|
// if the parameter is multiple: true, the filename
|
||||||
// should contain a wildcard '*' that is replaced with
|
// should contain a wildcard '*' that is replaced with
|
||||||
@@ -2626,30 +2655,31 @@ def workflowFactory(Map args, Map defaultWfArgs, Map meta) {
|
|||||||
tuple
|
tuple
|
||||||
}
|
}
|
||||||
|
|
||||||
def chModifiedFiltered = workflowArgs.filter ?
|
|
||||||
chModified | filter{workflowArgs.filter(it)} :
|
|
||||||
chModified
|
|
||||||
|
|
||||||
def chRun = null
|
def chRun = null
|
||||||
def chPassthrough = null
|
def chPassthrough = null
|
||||||
if (workflowArgs.runIf) {
|
if (workflowArgs.runIf) {
|
||||||
def runIfBranch = chModifiedFiltered.branch{ tup ->
|
def runIfBranch = chModified.branch{ tup ->
|
||||||
run: workflowArgs.runIf(tup[0], tup[1])
|
run: workflowArgs.runIf(tup[0], tup[1])
|
||||||
passthrough: true
|
passthrough: true
|
||||||
}
|
}
|
||||||
chRun = runIfBranch.run
|
chRun = runIfBranch.run
|
||||||
chPassthrough = runIfBranch.passthrough
|
chPassthrough = runIfBranch.passthrough
|
||||||
} else {
|
} else {
|
||||||
chRun = chModifiedFiltered
|
chRun = chModified
|
||||||
chPassthrough = Channel.empty()
|
chPassthrough = Channel.empty()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def chRunFiltered = workflowArgs.filter ?
|
||||||
|
chRun | filter{workflowArgs.filter(it)} :
|
||||||
|
chRun
|
||||||
|
|
||||||
def chArgs = workflowArgs.fromState ?
|
def chArgs = workflowArgs.fromState ?
|
||||||
chRun | map{
|
chRunFiltered | map{
|
||||||
def new_data = workflowArgs.fromState(it.take(2))
|
def new_data = workflowArgs.fromState(it.take(2))
|
||||||
[it[0], new_data]
|
[it[0], new_data]
|
||||||
} :
|
} :
|
||||||
chRun | map {tup -> tup.take(2)}
|
chRunFiltered | map {tup -> tup.take(2)}
|
||||||
|
|
||||||
// fill in defaults
|
// fill in defaults
|
||||||
def chArgsWithDefaults = chArgs
|
def chArgsWithDefaults = chArgs
|
||||||
@@ -2720,7 +2750,7 @@ def workflowFactory(Map args, Map defaultWfArgs, Map meta) {
|
|||||||
// | view{"chInitialOutput: ${it.take(3)}"}
|
// | view{"chInitialOutput: ${it.take(3)}"}
|
||||||
|
|
||||||
// join the output [prev_id, new_id, output] with the previous state [prev_id, state, ...]
|
// 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, ...]
|
// input tuple format: [join_id, id, output, prev_state, ...]
|
||||||
// output tuple format: [join_id, id, new_state, ...]
|
// output tuple format: [join_id, id, new_state, ...]
|
||||||
| map{ tup ->
|
| map{ tup ->
|
||||||
@@ -2779,7 +2809,49 @@ meta = [
|
|||||||
"resources_dir": moduleDir.toRealPath().normalize(),
|
"resources_dir": moduleDir.toRealPath().normalize(),
|
||||||
"config": processConfig(readJsonBlob('''{
|
"config": processConfig(readJsonBlob('''{
|
||||||
"name" : "bcl_convert",
|
"name" : "bcl_convert",
|
||||||
"version" : "v0.1.0",
|
"version" : "0.2.0",
|
||||||
|
"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"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "Dorien Roosen",
|
||||||
|
"roles" : [
|
||||||
|
"author"
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"links" : {
|
||||||
|
"email" : "dorien@data-intuitive.com",
|
||||||
|
"github" : "dorien-er",
|
||||||
|
"linkedin" : "dorien-roosen"
|
||||||
|
},
|
||||||
|
"organizations" : [
|
||||||
|
{
|
||||||
|
"name" : "Data Intuitive",
|
||||||
|
"href" : "https://www.data-intuitive.com",
|
||||||
|
"role" : "Data Scientist"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
"argument_groups" : [
|
"argument_groups" : [
|
||||||
{
|
{
|
||||||
"name" : "Input arguments",
|
"name" : "Input arguments",
|
||||||
@@ -3125,9 +3197,17 @@ meta = [
|
|||||||
"ps"
|
"ps"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"license" : "MIT",
|
"keywords" : [
|
||||||
|
"demultiplex",
|
||||||
|
"fastq",
|
||||||
|
"bcl",
|
||||||
|
"illumina"
|
||||||
|
],
|
||||||
|
"license" : "Proprietary",
|
||||||
"links" : {
|
"links" : {
|
||||||
"repository" : "https://github.com/viash-hub/biobox"
|
"repository" : "https://github.com/viash-hub/biobox",
|
||||||
|
"homepage" : "https://support.illumina.com/sequencing/sequencing_software/bcl-convert.html",
|
||||||
|
"documentation" : "https://support.illumina.com/downloads/bcl-convert-user-guide.html"
|
||||||
},
|
},
|
||||||
"runners" : [
|
"runners" : [
|
||||||
{
|
{
|
||||||
@@ -3209,7 +3289,7 @@ meta = [
|
|||||||
"id" : "docker",
|
"id" : "docker",
|
||||||
"image" : "debian:trixie-slim",
|
"image" : "debian:trixie-slim",
|
||||||
"target_registry" : "images.viash-hub.com",
|
"target_registry" : "images.viash-hub.com",
|
||||||
"target_tag" : "v0.1.0",
|
"target_tag" : "0.2.0",
|
||||||
"namespace_separator" : "/",
|
"namespace_separator" : "/",
|
||||||
"setup" : [
|
"setup" : [
|
||||||
{
|
{
|
||||||
@@ -3248,22 +3328,22 @@ meta = [
|
|||||||
"runner" : "nextflow",
|
"runner" : "nextflow",
|
||||||
"engine" : "docker|native",
|
"engine" : "docker|native",
|
||||||
"output" : "target/nextflow/bcl_convert",
|
"output" : "target/nextflow/bcl_convert",
|
||||||
"viash_version" : "0.9.0-RC6",
|
"viash_version" : "0.9.0",
|
||||||
"git_commit" : "b84b29747d0635f2ac83ea63b496be9a9edb6724",
|
"git_commit" : "5526b3e939030daea80595fa98387b469329bbfa",
|
||||||
"git_remote" : "https://github.com/viash-hub/biobox"
|
"git_remote" : "https://github.com/viash-hub/biobox"
|
||||||
},
|
},
|
||||||
"package_config" : {
|
"package_config" : {
|
||||||
"name" : "biobox",
|
"name" : "biobox",
|
||||||
"version" : "v0.1.0",
|
"version" : "0.2.0",
|
||||||
"description" : "A collection of bioinformatics tools for working with sequence data.\n",
|
"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",
|
"source" : "src",
|
||||||
"target" : "target",
|
"target" : "target",
|
||||||
"config_mods" : [
|
"config_mods" : [
|
||||||
".requirements.commands := ['ps']\n",
|
".requirements.commands := ['ps']\n",
|
||||||
".engines += { type: \\"native\\" }",
|
".engines += { type: \\"native\\" }",
|
||||||
".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'",
|
".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'",
|
||||||
".engines[.type == 'docker'].target_tag := 'v0.1.0'"
|
".engines[.type == 'docker'].target_tag := '0.2.0'"
|
||||||
],
|
],
|
||||||
"keywords" : [
|
"keywords" : [
|
||||||
"bioinformatics",
|
"bioinformatics",
|
||||||
@@ -3454,7 +3534,11 @@ def vdsl3WorkflowFactory(Map args, Map meta, String rawScript) {
|
|||||||
val = val.join(par.multiple_sep)
|
val = val.join(par.multiple_sep)
|
||||||
}
|
}
|
||||||
if (par.direction == "output" && par.type == "file") {
|
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]
|
[parName, val]
|
||||||
}
|
}
|
||||||
@@ -3585,7 +3669,8 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) {
|
|||||||
def createParentStr = meta.config.allArguments
|
def createParentStr = meta.config.allArguments
|
||||||
.findAll { it.type == "file" && it.direction == "output" && it.create_parent }
|
.findAll { it.type == "file" && it.direction == "output" && it.create_parent }
|
||||||
.collect { par ->
|
.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")
|
.join("\n")
|
||||||
|
|
||||||
@@ -3593,8 +3678,8 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) {
|
|||||||
def inputFileExports = meta.config.allArguments
|
def inputFileExports = meta.config.allArguments
|
||||||
.findAll { it.type == "file" && it.direction.toLowerCase() == "input" }
|
.findAll { it.type == "file" && it.direction.toLowerCase() == "input" }
|
||||||
.collect { par ->
|
.collect { par ->
|
||||||
def viash_par_contents = "(viash_par_${par.plainName} instanceof List ? viash_par_${par.plainName}.join(\"${par.multiple_sep}\") : viash_par_${par.plainName})"
|
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()}=\\\"\" + ${viash_par_contents} + \"\\\"\"}"
|
"\n\${viash_par_${par.plainName}.empty ? \"\" : \"export VIASH_PAR_${par.plainName.toUpperCase()}='\" + escapeText(${contents}) + \"'\"}"
|
||||||
}
|
}
|
||||||
|
|
||||||
// NOTE: if using docker, use /tmp instead of tmpDir!
|
// NOTE: if using docker, use /tmp instead of tmpDir!
|
||||||
@@ -3631,6 +3716,7 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) {
|
|||||||
def procStr =
|
def procStr =
|
||||||
"""nextflow.enable.dsl=2
|
"""nextflow.enable.dsl=2
|
||||||
|
|
|
|
||||||
|
|def escapeText = { s -> s.toString().replaceAll("'", "'\\\"'\\\"'") }
|
||||||
|process $procKey {$drctvStrs
|
|process $procKey {$drctvStrs
|
||||||
|input:
|
|input:
|
||||||
| tuple val(id)$inputPaths, val(args), path(resourcesDir, stageAs: ".viash_meta_resources")
|
| tuple val(id)$inputPaths, val(args), path(resourcesDir, stageAs: ".viash_meta_resources")
|
||||||
@@ -3642,10 +3728,9 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) {
|
|||||||
|$stub
|
|$stub
|
||||||
|\"\"\"
|
|\"\"\"
|
||||||
|script:$assertStr
|
|script:$assertStr
|
||||||
|def escapeText = { s -> s.toString().replaceAll('([`"])', '\\\\\\\\\$1') }
|
|
||||||
|def parInject = args
|
|def parInject = args
|
||||||
| .findAll{key, value -> value != null}
|
| .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")
|
| .join("\\n")
|
||||||
|\"\"\"
|
|\"\"\"
|
||||||
|# meta exports
|
|# meta exports
|
||||||
@@ -3730,7 +3815,7 @@ meta["defaults"] = [
|
|||||||
"container" : {
|
"container" : {
|
||||||
"registry" : "images.viash-hub.com",
|
"registry" : "images.viash-hub.com",
|
||||||
"image" : "vsh/biobox/bcl_convert",
|
"image" : "vsh/biobox/bcl_convert",
|
||||||
"tag" : "v0.1.0"
|
"tag" : "0.2.0"
|
||||||
},
|
},
|
||||||
"tag" : "$id"
|
"tag" : "$id"
|
||||||
}'''),
|
}'''),
|
||||||
@@ -2,8 +2,9 @@ manifest {
|
|||||||
name = 'bcl_convert'
|
name = 'bcl_convert'
|
||||||
mainScript = 'main.nf'
|
mainScript = 'main.nf'
|
||||||
nextflowVersion = '!>=20.12.1-edge'
|
nextflowVersion = '!>=20.12.1-edge'
|
||||||
version = 'v0.1.0'
|
version = '0.2.0'
|
||||||
description = 'Convert bcl files to fastq files using bcl-convert.\nInformation about upgrading from bcl2fastq via\n[Upgrading from bcl2fastq to BCL Convert](https://emea.support.illumina.com/bulletins/2020/10/upgrading-from-bcl2fastq-to-bcl-convert.html)\nand [BCL Convert Compatible Products](https://support.illumina.com/sequencing/sequencing_software/bcl-convert/compatibility.html)\n'
|
description = 'Convert bcl files to fastq files using bcl-convert.\nInformation about upgrading from bcl2fastq via\n[Upgrading from bcl2fastq to BCL Convert](https://emea.support.illumina.com/bulletins/2020/10/upgrading-from-bcl2fastq-to-bcl-convert.html)\nand [BCL Convert Compatible Products](https://support.illumina.com/sequencing/sequencing_software/bcl-convert/compatibility.html)\n'
|
||||||
|
author = 'Toni Verbeiren, Dorien Roosen'
|
||||||
}
|
}
|
||||||
|
|
||||||
process.container = 'nextflow/bash:latest'
|
process.container = 'nextflow/bash:latest'
|
||||||
@@ -1,5 +1,18 @@
|
|||||||
name: "falco"
|
name: "falco"
|
||||||
version: "v0.1.0"
|
version: "0.2.0"
|
||||||
|
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:
|
argument_groups:
|
||||||
- name: "Input arguments"
|
- name: "Input arguments"
|
||||||
arguments:
|
arguments:
|
||||||
@@ -274,7 +287,7 @@ engines:
|
|||||||
id: "docker"
|
id: "docker"
|
||||||
image: "debian:trixie-slim"
|
image: "debian:trixie-slim"
|
||||||
target_registry: "images.viash-hub.com"
|
target_registry: "images.viash-hub.com"
|
||||||
target_tag: "v0.1.0"
|
target_tag: "0.2.0"
|
||||||
namespace_separator: "/"
|
namespace_separator: "/"
|
||||||
setup:
|
setup:
|
||||||
- type: "apt"
|
- type: "apt"
|
||||||
@@ -303,22 +316,22 @@ build_info:
|
|||||||
engine: "docker|native"
|
engine: "docker|native"
|
||||||
output: "target/nextflow/falco"
|
output: "target/nextflow/falco"
|
||||||
executable: "target/nextflow/falco/main.nf"
|
executable: "target/nextflow/falco/main.nf"
|
||||||
viash_version: "0.9.0-RC6"
|
viash_version: "0.9.0"
|
||||||
git_commit: "b84b29747d0635f2ac83ea63b496be9a9edb6724"
|
git_commit: "5526b3e939030daea80595fa98387b469329bbfa"
|
||||||
git_remote: "https://github.com/viash-hub/biobox"
|
git_remote: "https://github.com/viash-hub/biobox"
|
||||||
package_config:
|
package_config:
|
||||||
name: "biobox"
|
name: "biobox"
|
||||||
version: "v0.1.0"
|
version: "0.2.0"
|
||||||
description: "A collection of bioinformatics tools for working with sequence data.\n"
|
description: "A collection of bioinformatics tools for working with sequence data.\n"
|
||||||
info: null
|
info: null
|
||||||
viash_version: "0.9.0-RC6"
|
viash_version: "0.9.0"
|
||||||
source: "src"
|
source: "src"
|
||||||
target: "target"
|
target: "target"
|
||||||
config_mods:
|
config_mods:
|
||||||
- ".requirements.commands := ['ps']\n"
|
- ".requirements.commands := ['ps']\n"
|
||||||
- ".engines += { type: \"native\" }"
|
- ".engines += { type: \"native\" }"
|
||||||
- ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'"
|
- ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'"
|
||||||
- ".engines[.type == 'docker'].target_tag := 'v0.1.0'"
|
- ".engines[.type == 'docker'].target_tag := '0.2.0'"
|
||||||
keywords:
|
keywords:
|
||||||
- "bioinformatics"
|
- "bioinformatics"
|
||||||
- "modules"
|
- "modules"
|
||||||
@@ -1,13 +1,16 @@
|
|||||||
// falco v0.1.0
|
// falco 0.2.0
|
||||||
//
|
//
|
||||||
// This wrapper script is auto-generated by viash 0.9.0-RC6 and is thus a
|
// This wrapper script is auto-generated by viash 0.9.0 and is thus a derivative
|
||||||
// derivative work thereof. This software comes with ABSOLUTELY NO WARRANTY from
|
// work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data
|
||||||
// Data Intuitive.
|
// Intuitive.
|
||||||
//
|
//
|
||||||
// The component may contain files which fall under a different license. The
|
// 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
|
// 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, or include a separate license file detailing the licenses of all included
|
||||||
// files.
|
// files.
|
||||||
|
//
|
||||||
|
// Component authors:
|
||||||
|
// * Toni Verbeiren (author, maintainer)
|
||||||
|
|
||||||
////////////////////////////
|
////////////////////////////
|
||||||
// VDSL3 helper functions //
|
// VDSL3 helper functions //
|
||||||
@@ -760,8 +763,11 @@ def runEach(Map args) {
|
|||||||
def fromState_ = args.fromState
|
def fromState_ = args.fromState
|
||||||
def toState_ = args.toState
|
def toState_ = args.toState
|
||||||
def filter_ = args.filter
|
def filter_ = args.filter
|
||||||
|
def runIf_ = args.runIf
|
||||||
def id_ = args.id
|
def id_ = args.id
|
||||||
|
|
||||||
|
assert !runIf_ || runIf_ instanceof Closure: "runEach: must pass a Closure to runIf."
|
||||||
|
|
||||||
workflow runEachWf {
|
workflow runEachWf {
|
||||||
take: input_ch
|
take: input_ch
|
||||||
main:
|
main:
|
||||||
@@ -783,7 +789,20 @@ def runEach(Map args) {
|
|||||||
[new_id] + tup.drop(1)
|
[new_id] + tup.drop(1)
|
||||||
}
|
}
|
||||||
: filter_ch
|
: 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]
|
def new_data = tup[1]
|
||||||
if (fromState_ instanceof Map) {
|
if (fromState_ instanceof Map) {
|
||||||
new_data = fromState_.collectEntries{ key0, key1 ->
|
new_data = fromState_.collectEntries{ key0, key1 ->
|
||||||
@@ -821,8 +840,11 @@ def runEach(Map args) {
|
|||||||
[tup[0], new_state] + tup.drop(3)
|
[tup[0], new_state] + tup.drop(3)
|
||||||
}
|
}
|
||||||
: out_ch
|
: out_ch
|
||||||
|
|
||||||
|
def return_ch = post_ch
|
||||||
|
| concat(chPassthrough)
|
||||||
|
|
||||||
post_ch
|
return_ch
|
||||||
}
|
}
|
||||||
|
|
||||||
// mix all results
|
// mix all results
|
||||||
@@ -1598,8 +1620,8 @@ def findStates(Map params, Map config) {
|
|||||||
// construct renameMap
|
// construct renameMap
|
||||||
if (args.rename_keys) {
|
if (args.rename_keys) {
|
||||||
def renameMap = args.rename_keys.collectEntries{renameString ->
|
def renameMap = args.rename_keys.collectEntries{renameString ->
|
||||||
def split = renameString.split(";")
|
def split = renameString.split(":")
|
||||||
assert split.size() == 2: "Argument 'rename_keys' should be of the form 'newKey:oldKey,newKey:oldKey'"
|
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
|
split
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1709,7 +1731,9 @@ def publishStates(Map args) {
|
|||||||
|
|
||||||
def yamlFilename = yamlTemplate_
|
def yamlFilename = yamlTemplate_
|
||||||
.replaceAll('\\$id', id_)
|
.replaceAll('\\$id', id_)
|
||||||
|
.replaceAll('\\$\\{id\\}', id_)
|
||||||
.replaceAll('\\$key', key_)
|
.replaceAll('\\$key', key_)
|
||||||
|
.replaceAll('\\$\\{key\\}', key_)
|
||||||
|
|
||||||
// TODO: do the pathnames in state_ match up with the outputFilenames_?
|
// 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 yamlTemplate = params.containsKey("output_state") ? params.output_state : '$id.$key.state.yaml'
|
||||||
def yamlFilename = yamlTemplate
|
def yamlFilename = yamlTemplate
|
||||||
.replaceAll('\\$id', id_)
|
.replaceAll('\\$id', id_)
|
||||||
|
.replaceAll('\\$\\{id\\}', id_)
|
||||||
.replaceAll('\\$key', key_)
|
.replaceAll('\\$key', key_)
|
||||||
|
.replaceAll('\\$\\{key\\}', key_)
|
||||||
def yamlDir = java.nio.file.Paths.get(yamlFilename).getParent()
|
def yamlDir = java.nio.file.Paths.get(yamlFilename).getParent()
|
||||||
|
|
||||||
// the processed state is a list of [key, value, inputPath, outputFilename] tuples, where
|
// the processed state is a list of [key, value, inputPath, outputFilename] tuples, where
|
||||||
@@ -1822,7 +1848,9 @@ def publishStatesByConfig(Map args) {
|
|||||||
// instantiate the template
|
// instantiate the template
|
||||||
def filename = filenameTemplate
|
def filename = filenameTemplate
|
||||||
.replaceAll('\\$id', id_)
|
.replaceAll('\\$id', id_)
|
||||||
|
.replaceAll('\\$\\{id\\}', id_)
|
||||||
.replaceAll('\\$key', key_)
|
.replaceAll('\\$key', key_)
|
||||||
|
.replaceAll('\\$\\{key\\}', key_)
|
||||||
if (par.multiple) {
|
if (par.multiple) {
|
||||||
// if the parameter is multiple: true, the filename
|
// if the parameter is multiple: true, the filename
|
||||||
// should contain a wildcard '*' that is replaced with
|
// should contain a wildcard '*' that is replaced with
|
||||||
@@ -2626,30 +2654,31 @@ def workflowFactory(Map args, Map defaultWfArgs, Map meta) {
|
|||||||
tuple
|
tuple
|
||||||
}
|
}
|
||||||
|
|
||||||
def chModifiedFiltered = workflowArgs.filter ?
|
|
||||||
chModified | filter{workflowArgs.filter(it)} :
|
|
||||||
chModified
|
|
||||||
|
|
||||||
def chRun = null
|
def chRun = null
|
||||||
def chPassthrough = null
|
def chPassthrough = null
|
||||||
if (workflowArgs.runIf) {
|
if (workflowArgs.runIf) {
|
||||||
def runIfBranch = chModifiedFiltered.branch{ tup ->
|
def runIfBranch = chModified.branch{ tup ->
|
||||||
run: workflowArgs.runIf(tup[0], tup[1])
|
run: workflowArgs.runIf(tup[0], tup[1])
|
||||||
passthrough: true
|
passthrough: true
|
||||||
}
|
}
|
||||||
chRun = runIfBranch.run
|
chRun = runIfBranch.run
|
||||||
chPassthrough = runIfBranch.passthrough
|
chPassthrough = runIfBranch.passthrough
|
||||||
} else {
|
} else {
|
||||||
chRun = chModifiedFiltered
|
chRun = chModified
|
||||||
chPassthrough = Channel.empty()
|
chPassthrough = Channel.empty()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def chRunFiltered = workflowArgs.filter ?
|
||||||
|
chRun | filter{workflowArgs.filter(it)} :
|
||||||
|
chRun
|
||||||
|
|
||||||
def chArgs = workflowArgs.fromState ?
|
def chArgs = workflowArgs.fromState ?
|
||||||
chRun | map{
|
chRunFiltered | map{
|
||||||
def new_data = workflowArgs.fromState(it.take(2))
|
def new_data = workflowArgs.fromState(it.take(2))
|
||||||
[it[0], new_data]
|
[it[0], new_data]
|
||||||
} :
|
} :
|
||||||
chRun | map {tup -> tup.take(2)}
|
chRunFiltered | map {tup -> tup.take(2)}
|
||||||
|
|
||||||
// fill in defaults
|
// fill in defaults
|
||||||
def chArgsWithDefaults = chArgs
|
def chArgsWithDefaults = chArgs
|
||||||
@@ -2720,7 +2749,7 @@ def workflowFactory(Map args, Map defaultWfArgs, Map meta) {
|
|||||||
// | view{"chInitialOutput: ${it.take(3)}"}
|
// | view{"chInitialOutput: ${it.take(3)}"}
|
||||||
|
|
||||||
// join the output [prev_id, new_id, output] with the previous state [prev_id, state, ...]
|
// 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, ...]
|
// input tuple format: [join_id, id, output, prev_state, ...]
|
||||||
// output tuple format: [join_id, id, new_state, ...]
|
// output tuple format: [join_id, id, new_state, ...]
|
||||||
| map{ tup ->
|
| map{ tup ->
|
||||||
@@ -2779,7 +2808,29 @@ meta = [
|
|||||||
"resources_dir": moduleDir.toRealPath().normalize(),
|
"resources_dir": moduleDir.toRealPath().normalize(),
|
||||||
"config": processConfig(readJsonBlob('''{
|
"config": processConfig(readJsonBlob('''{
|
||||||
"name" : "falco",
|
"name" : "falco",
|
||||||
"version" : "v0.1.0",
|
"version" : "0.2.0",
|
||||||
|
"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" : [
|
"argument_groups" : [
|
||||||
{
|
{
|
||||||
"name" : "Input arguments",
|
"name" : "Input arguments",
|
||||||
@@ -3080,7 +3131,7 @@ meta = [
|
|||||||
"id" : "docker",
|
"id" : "docker",
|
||||||
"image" : "debian:trixie-slim",
|
"image" : "debian:trixie-slim",
|
||||||
"target_registry" : "images.viash-hub.com",
|
"target_registry" : "images.viash-hub.com",
|
||||||
"target_tag" : "v0.1.0",
|
"target_tag" : "0.2.0",
|
||||||
"namespace_separator" : "/",
|
"namespace_separator" : "/",
|
||||||
"setup" : [
|
"setup" : [
|
||||||
{
|
{
|
||||||
@@ -3118,22 +3169,22 @@ meta = [
|
|||||||
"runner" : "nextflow",
|
"runner" : "nextflow",
|
||||||
"engine" : "docker|native",
|
"engine" : "docker|native",
|
||||||
"output" : "target/nextflow/falco",
|
"output" : "target/nextflow/falco",
|
||||||
"viash_version" : "0.9.0-RC6",
|
"viash_version" : "0.9.0",
|
||||||
"git_commit" : "b84b29747d0635f2ac83ea63b496be9a9edb6724",
|
"git_commit" : "5526b3e939030daea80595fa98387b469329bbfa",
|
||||||
"git_remote" : "https://github.com/viash-hub/biobox"
|
"git_remote" : "https://github.com/viash-hub/biobox"
|
||||||
},
|
},
|
||||||
"package_config" : {
|
"package_config" : {
|
||||||
"name" : "biobox",
|
"name" : "biobox",
|
||||||
"version" : "v0.1.0",
|
"version" : "0.2.0",
|
||||||
"description" : "A collection of bioinformatics tools for working with sequence data.\n",
|
"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",
|
"source" : "src",
|
||||||
"target" : "target",
|
"target" : "target",
|
||||||
"config_mods" : [
|
"config_mods" : [
|
||||||
".requirements.commands := ['ps']\n",
|
".requirements.commands := ['ps']\n",
|
||||||
".engines += { type: \\"native\\" }",
|
".engines += { type: \\"native\\" }",
|
||||||
".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'",
|
".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'",
|
||||||
".engines[.type == 'docker'].target_tag := 'v0.1.0'"
|
".engines[.type == 'docker'].target_tag := '0.2.0'"
|
||||||
],
|
],
|
||||||
"keywords" : [
|
"keywords" : [
|
||||||
"bioinformatics",
|
"bioinformatics",
|
||||||
@@ -3298,7 +3349,11 @@ def vdsl3WorkflowFactory(Map args, Map meta, String rawScript) {
|
|||||||
val = val.join(par.multiple_sep)
|
val = val.join(par.multiple_sep)
|
||||||
}
|
}
|
||||||
if (par.direction == "output" && par.type == "file") {
|
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]
|
[parName, val]
|
||||||
}
|
}
|
||||||
@@ -3429,7 +3484,8 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) {
|
|||||||
def createParentStr = meta.config.allArguments
|
def createParentStr = meta.config.allArguments
|
||||||
.findAll { it.type == "file" && it.direction == "output" && it.create_parent }
|
.findAll { it.type == "file" && it.direction == "output" && it.create_parent }
|
||||||
.collect { par ->
|
.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")
|
.join("\n")
|
||||||
|
|
||||||
@@ -3437,8 +3493,8 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) {
|
|||||||
def inputFileExports = meta.config.allArguments
|
def inputFileExports = meta.config.allArguments
|
||||||
.findAll { it.type == "file" && it.direction.toLowerCase() == "input" }
|
.findAll { it.type == "file" && it.direction.toLowerCase() == "input" }
|
||||||
.collect { par ->
|
.collect { par ->
|
||||||
def viash_par_contents = "(viash_par_${par.plainName} instanceof List ? viash_par_${par.plainName}.join(\"${par.multiple_sep}\") : viash_par_${par.plainName})"
|
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()}=\\\"\" + ${viash_par_contents} + \"\\\"\"}"
|
"\n\${viash_par_${par.plainName}.empty ? \"\" : \"export VIASH_PAR_${par.plainName.toUpperCase()}='\" + escapeText(${contents}) + \"'\"}"
|
||||||
}
|
}
|
||||||
|
|
||||||
// NOTE: if using docker, use /tmp instead of tmpDir!
|
// NOTE: if using docker, use /tmp instead of tmpDir!
|
||||||
@@ -3475,6 +3531,7 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) {
|
|||||||
def procStr =
|
def procStr =
|
||||||
"""nextflow.enable.dsl=2
|
"""nextflow.enable.dsl=2
|
||||||
|
|
|
|
||||||
|
|def escapeText = { s -> s.toString().replaceAll("'", "'\\\"'\\\"'") }
|
||||||
|process $procKey {$drctvStrs
|
|process $procKey {$drctvStrs
|
||||||
|input:
|
|input:
|
||||||
| tuple val(id)$inputPaths, val(args), path(resourcesDir, stageAs: ".viash_meta_resources")
|
| tuple val(id)$inputPaths, val(args), path(resourcesDir, stageAs: ".viash_meta_resources")
|
||||||
@@ -3486,10 +3543,9 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) {
|
|||||||
|$stub
|
|$stub
|
||||||
|\"\"\"
|
|\"\"\"
|
||||||
|script:$assertStr
|
|script:$assertStr
|
||||||
|def escapeText = { s -> s.toString().replaceAll('([`"])', '\\\\\\\\\$1') }
|
|
||||||
|def parInject = args
|
|def parInject = args
|
||||||
| .findAll{key, value -> value != null}
|
| .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")
|
| .join("\\n")
|
||||||
|\"\"\"
|
|\"\"\"
|
||||||
|# meta exports
|
|# meta exports
|
||||||
@@ -3574,7 +3630,7 @@ meta["defaults"] = [
|
|||||||
"container" : {
|
"container" : {
|
||||||
"registry" : "images.viash-hub.com",
|
"registry" : "images.viash-hub.com",
|
||||||
"image" : "vsh/biobox/falco",
|
"image" : "vsh/biobox/falco",
|
||||||
"tag" : "v0.1.0"
|
"tag" : "0.2.0"
|
||||||
},
|
},
|
||||||
"tag" : "$id"
|
"tag" : "$id"
|
||||||
}'''),
|
}'''),
|
||||||
@@ -2,8 +2,9 @@ manifest {
|
|||||||
name = 'falco'
|
name = 'falco'
|
||||||
mainScript = 'main.nf'
|
mainScript = 'main.nf'
|
||||||
nextflowVersion = '!>=20.12.1-edge'
|
nextflowVersion = '!>=20.12.1-edge'
|
||||||
version = 'v0.1.0'
|
version = '0.2.0'
|
||||||
description = 'A C++ drop-in replacement of FastQC to assess the quality of sequence read data'
|
description = 'A C++ drop-in replacement of FastQC to assess the quality of sequence read data'
|
||||||
|
author = 'Toni Verbeiren'
|
||||||
}
|
}
|
||||||
|
|
||||||
process.container = 'nextflow/bash:latest'
|
process.container = 'nextflow/bash:latest'
|
||||||
@@ -17,8 +17,8 @@
|
|||||||
"input": {
|
"input": {
|
||||||
"type":
|
"type":
|
||||||
"string",
|
"string",
|
||||||
"description": "Type: List of `file`, required, example: `input1.fastq;input2.fastq`, multiple_sep: `\":\"`. input fastq files",
|
"description": "Type: List of `file`, required, example: `input1.fastq;input2.fastq`, multiple_sep: `\";\"`. input fastq files",
|
||||||
"help_text": "Type: List of `file`, required, example: `input1.fastq;input2.fastq`, multiple_sep: `\":\"`. input fastq files"
|
"help_text": "Type: List of `file`, required, example: `input1.fastq;input2.fastq`, multiple_sep: `\";\"`. input fastq files"
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1,5 +1,19 @@
|
|||||||
name: "multiqc"
|
name: "multiqc"
|
||||||
version: "v0.1.0"
|
version: "0.2.0"
|
||||||
|
authors:
|
||||||
|
- name: "Dorien Roosen"
|
||||||
|
roles:
|
||||||
|
- "author"
|
||||||
|
- "maintainer"
|
||||||
|
info:
|
||||||
|
links:
|
||||||
|
email: "dorien@data-intuitive.com"
|
||||||
|
github: "dorien-er"
|
||||||
|
linkedin: "dorien-roosen"
|
||||||
|
organizations:
|
||||||
|
- name: "Data Intuitive"
|
||||||
|
href: "https://www.data-intuitive.com"
|
||||||
|
role: "Data Scientist"
|
||||||
argument_groups:
|
argument_groups:
|
||||||
- name: "Input"
|
- name: "Input"
|
||||||
arguments:
|
arguments:
|
||||||
@@ -63,39 +77,43 @@ argument_groups:
|
|||||||
description: "Use only these module"
|
description: "Use only these module"
|
||||||
info: null
|
info: null
|
||||||
example:
|
example:
|
||||||
- "fastqc,cutadapt"
|
- "fastqc"
|
||||||
|
- "cutadapt"
|
||||||
required: false
|
required: false
|
||||||
direction: "input"
|
direction: "input"
|
||||||
multiple: true
|
multiple: true
|
||||||
multiple_sep: ","
|
multiple_sep: ";"
|
||||||
- type: "string"
|
- type: "string"
|
||||||
name: "--exclude_modules"
|
name: "--exclude_modules"
|
||||||
description: "Do not use only these modules"
|
description: "Do not use only these modules"
|
||||||
info: null
|
info: null
|
||||||
example:
|
example:
|
||||||
- "fastqc,cutadapt"
|
- "fastqc"
|
||||||
|
- "cutadapt"
|
||||||
required: false
|
required: false
|
||||||
direction: "input"
|
direction: "input"
|
||||||
multiple: true
|
multiple: true
|
||||||
multiple_sep: ","
|
multiple_sep: ";"
|
||||||
- type: "string"
|
- type: "string"
|
||||||
name: "--ignore_analysis"
|
name: "--ignore_analysis"
|
||||||
info: null
|
info: null
|
||||||
example:
|
example:
|
||||||
- "run_one/*,run_two/*"
|
- "run_one/*"
|
||||||
|
- "run_two/*"
|
||||||
required: false
|
required: false
|
||||||
direction: "input"
|
direction: "input"
|
||||||
multiple: true
|
multiple: true
|
||||||
multiple_sep: ","
|
multiple_sep: ";"
|
||||||
- type: "string"
|
- type: "string"
|
||||||
name: "--ignore_samples"
|
name: "--ignore_samples"
|
||||||
info: null
|
info: null
|
||||||
example:
|
example:
|
||||||
- "sample_1*,sample_3*"
|
- "sample_1*"
|
||||||
|
- "sample_3*"
|
||||||
required: false
|
required: false
|
||||||
direction: "input"
|
direction: "input"
|
||||||
multiple: true
|
multiple: true
|
||||||
multiple_sep: ","
|
multiple_sep: ";"
|
||||||
- type: "boolean_true"
|
- type: "boolean_true"
|
||||||
name: "--ignore_symlinks"
|
name: "--ignore_symlinks"
|
||||||
description: "Ignore symlinked directories and files"
|
description: "Ignore symlinked directories and files"
|
||||||
@@ -415,7 +433,7 @@ engines:
|
|||||||
id: "docker"
|
id: "docker"
|
||||||
image: "quay.io/biocontainers/multiqc:1.21--pyhdfd78af_0"
|
image: "quay.io/biocontainers/multiqc:1.21--pyhdfd78af_0"
|
||||||
target_registry: "images.viash-hub.com"
|
target_registry: "images.viash-hub.com"
|
||||||
target_tag: "v0.1.0"
|
target_tag: "0.2.0"
|
||||||
namespace_separator: "/"
|
namespace_separator: "/"
|
||||||
setup:
|
setup:
|
||||||
- type: "docker"
|
- type: "docker"
|
||||||
@@ -437,22 +455,22 @@ build_info:
|
|||||||
engine: "docker|native"
|
engine: "docker|native"
|
||||||
output: "target/nextflow/multiqc"
|
output: "target/nextflow/multiqc"
|
||||||
executable: "target/nextflow/multiqc/main.nf"
|
executable: "target/nextflow/multiqc/main.nf"
|
||||||
viash_version: "0.9.0-RC6"
|
viash_version: "0.9.0"
|
||||||
git_commit: "b84b29747d0635f2ac83ea63b496be9a9edb6724"
|
git_commit: "5526b3e939030daea80595fa98387b469329bbfa"
|
||||||
git_remote: "https://github.com/viash-hub/biobox"
|
git_remote: "https://github.com/viash-hub/biobox"
|
||||||
package_config:
|
package_config:
|
||||||
name: "biobox"
|
name: "biobox"
|
||||||
version: "v0.1.0"
|
version: "0.2.0"
|
||||||
description: "A collection of bioinformatics tools for working with sequence data.\n"
|
description: "A collection of bioinformatics tools for working with sequence data.\n"
|
||||||
info: null
|
info: null
|
||||||
viash_version: "0.9.0-RC6"
|
viash_version: "0.9.0"
|
||||||
source: "src"
|
source: "src"
|
||||||
target: "target"
|
target: "target"
|
||||||
config_mods:
|
config_mods:
|
||||||
- ".requirements.commands := ['ps']\n"
|
- ".requirements.commands := ['ps']\n"
|
||||||
- ".engines += { type: \"native\" }"
|
- ".engines += { type: \"native\" }"
|
||||||
- ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'"
|
- ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'"
|
||||||
- ".engines[.type == 'docker'].target_tag := 'v0.1.0'"
|
- ".engines[.type == 'docker'].target_tag := '0.2.0'"
|
||||||
keywords:
|
keywords:
|
||||||
- "bioinformatics"
|
- "bioinformatics"
|
||||||
- "modules"
|
- "modules"
|
||||||
@@ -1,13 +1,16 @@
|
|||||||
// multiqc v0.1.0
|
// multiqc 0.2.0
|
||||||
//
|
//
|
||||||
// This wrapper script is auto-generated by viash 0.9.0-RC6 and is thus a
|
// This wrapper script is auto-generated by viash 0.9.0 and is thus a derivative
|
||||||
// derivative work thereof. This software comes with ABSOLUTELY NO WARRANTY from
|
// work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data
|
||||||
// Data Intuitive.
|
// Intuitive.
|
||||||
//
|
//
|
||||||
// The component may contain files which fall under a different license. The
|
// 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
|
// 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, or include a separate license file detailing the licenses of all included
|
||||||
// files.
|
// files.
|
||||||
|
//
|
||||||
|
// Component authors:
|
||||||
|
// * Dorien Roosen (author, maintainer)
|
||||||
|
|
||||||
////////////////////////////
|
////////////////////////////
|
||||||
// VDSL3 helper functions //
|
// VDSL3 helper functions //
|
||||||
@@ -760,8 +763,11 @@ def runEach(Map args) {
|
|||||||
def fromState_ = args.fromState
|
def fromState_ = args.fromState
|
||||||
def toState_ = args.toState
|
def toState_ = args.toState
|
||||||
def filter_ = args.filter
|
def filter_ = args.filter
|
||||||
|
def runIf_ = args.runIf
|
||||||
def id_ = args.id
|
def id_ = args.id
|
||||||
|
|
||||||
|
assert !runIf_ || runIf_ instanceof Closure: "runEach: must pass a Closure to runIf."
|
||||||
|
|
||||||
workflow runEachWf {
|
workflow runEachWf {
|
||||||
take: input_ch
|
take: input_ch
|
||||||
main:
|
main:
|
||||||
@@ -783,7 +789,20 @@ def runEach(Map args) {
|
|||||||
[new_id] + tup.drop(1)
|
[new_id] + tup.drop(1)
|
||||||
}
|
}
|
||||||
: filter_ch
|
: 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]
|
def new_data = tup[1]
|
||||||
if (fromState_ instanceof Map) {
|
if (fromState_ instanceof Map) {
|
||||||
new_data = fromState_.collectEntries{ key0, key1 ->
|
new_data = fromState_.collectEntries{ key0, key1 ->
|
||||||
@@ -821,8 +840,11 @@ def runEach(Map args) {
|
|||||||
[tup[0], new_state] + tup.drop(3)
|
[tup[0], new_state] + tup.drop(3)
|
||||||
}
|
}
|
||||||
: out_ch
|
: out_ch
|
||||||
|
|
||||||
|
def return_ch = post_ch
|
||||||
|
| concat(chPassthrough)
|
||||||
|
|
||||||
post_ch
|
return_ch
|
||||||
}
|
}
|
||||||
|
|
||||||
// mix all results
|
// mix all results
|
||||||
@@ -1598,8 +1620,8 @@ def findStates(Map params, Map config) {
|
|||||||
// construct renameMap
|
// construct renameMap
|
||||||
if (args.rename_keys) {
|
if (args.rename_keys) {
|
||||||
def renameMap = args.rename_keys.collectEntries{renameString ->
|
def renameMap = args.rename_keys.collectEntries{renameString ->
|
||||||
def split = renameString.split(";")
|
def split = renameString.split(":")
|
||||||
assert split.size() == 2: "Argument 'rename_keys' should be of the form 'newKey:oldKey,newKey:oldKey'"
|
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
|
split
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1709,7 +1731,9 @@ def publishStates(Map args) {
|
|||||||
|
|
||||||
def yamlFilename = yamlTemplate_
|
def yamlFilename = yamlTemplate_
|
||||||
.replaceAll('\\$id', id_)
|
.replaceAll('\\$id', id_)
|
||||||
|
.replaceAll('\\$\\{id\\}', id_)
|
||||||
.replaceAll('\\$key', key_)
|
.replaceAll('\\$key', key_)
|
||||||
|
.replaceAll('\\$\\{key\\}', key_)
|
||||||
|
|
||||||
// TODO: do the pathnames in state_ match up with the outputFilenames_?
|
// 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 yamlTemplate = params.containsKey("output_state") ? params.output_state : '$id.$key.state.yaml'
|
||||||
def yamlFilename = yamlTemplate
|
def yamlFilename = yamlTemplate
|
||||||
.replaceAll('\\$id', id_)
|
.replaceAll('\\$id', id_)
|
||||||
|
.replaceAll('\\$\\{id\\}', id_)
|
||||||
.replaceAll('\\$key', key_)
|
.replaceAll('\\$key', key_)
|
||||||
|
.replaceAll('\\$\\{key\\}', key_)
|
||||||
def yamlDir = java.nio.file.Paths.get(yamlFilename).getParent()
|
def yamlDir = java.nio.file.Paths.get(yamlFilename).getParent()
|
||||||
|
|
||||||
// the processed state is a list of [key, value, inputPath, outputFilename] tuples, where
|
// the processed state is a list of [key, value, inputPath, outputFilename] tuples, where
|
||||||
@@ -1822,7 +1848,9 @@ def publishStatesByConfig(Map args) {
|
|||||||
// instantiate the template
|
// instantiate the template
|
||||||
def filename = filenameTemplate
|
def filename = filenameTemplate
|
||||||
.replaceAll('\\$id', id_)
|
.replaceAll('\\$id', id_)
|
||||||
|
.replaceAll('\\$\\{id\\}', id_)
|
||||||
.replaceAll('\\$key', key_)
|
.replaceAll('\\$key', key_)
|
||||||
|
.replaceAll('\\$\\{key\\}', key_)
|
||||||
if (par.multiple) {
|
if (par.multiple) {
|
||||||
// if the parameter is multiple: true, the filename
|
// if the parameter is multiple: true, the filename
|
||||||
// should contain a wildcard '*' that is replaced with
|
// should contain a wildcard '*' that is replaced with
|
||||||
@@ -2626,30 +2654,31 @@ def workflowFactory(Map args, Map defaultWfArgs, Map meta) {
|
|||||||
tuple
|
tuple
|
||||||
}
|
}
|
||||||
|
|
||||||
def chModifiedFiltered = workflowArgs.filter ?
|
|
||||||
chModified | filter{workflowArgs.filter(it)} :
|
|
||||||
chModified
|
|
||||||
|
|
||||||
def chRun = null
|
def chRun = null
|
||||||
def chPassthrough = null
|
def chPassthrough = null
|
||||||
if (workflowArgs.runIf) {
|
if (workflowArgs.runIf) {
|
||||||
def runIfBranch = chModifiedFiltered.branch{ tup ->
|
def runIfBranch = chModified.branch{ tup ->
|
||||||
run: workflowArgs.runIf(tup[0], tup[1])
|
run: workflowArgs.runIf(tup[0], tup[1])
|
||||||
passthrough: true
|
passthrough: true
|
||||||
}
|
}
|
||||||
chRun = runIfBranch.run
|
chRun = runIfBranch.run
|
||||||
chPassthrough = runIfBranch.passthrough
|
chPassthrough = runIfBranch.passthrough
|
||||||
} else {
|
} else {
|
||||||
chRun = chModifiedFiltered
|
chRun = chModified
|
||||||
chPassthrough = Channel.empty()
|
chPassthrough = Channel.empty()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def chRunFiltered = workflowArgs.filter ?
|
||||||
|
chRun | filter{workflowArgs.filter(it)} :
|
||||||
|
chRun
|
||||||
|
|
||||||
def chArgs = workflowArgs.fromState ?
|
def chArgs = workflowArgs.fromState ?
|
||||||
chRun | map{
|
chRunFiltered | map{
|
||||||
def new_data = workflowArgs.fromState(it.take(2))
|
def new_data = workflowArgs.fromState(it.take(2))
|
||||||
[it[0], new_data]
|
[it[0], new_data]
|
||||||
} :
|
} :
|
||||||
chRun | map {tup -> tup.take(2)}
|
chRunFiltered | map {tup -> tup.take(2)}
|
||||||
|
|
||||||
// fill in defaults
|
// fill in defaults
|
||||||
def chArgsWithDefaults = chArgs
|
def chArgsWithDefaults = chArgs
|
||||||
@@ -2720,7 +2749,7 @@ def workflowFactory(Map args, Map defaultWfArgs, Map meta) {
|
|||||||
// | view{"chInitialOutput: ${it.take(3)}"}
|
// | view{"chInitialOutput: ${it.take(3)}"}
|
||||||
|
|
||||||
// join the output [prev_id, new_id, output] with the previous state [prev_id, state, ...]
|
// 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, ...]
|
// input tuple format: [join_id, id, output, prev_state, ...]
|
||||||
// output tuple format: [join_id, id, new_state, ...]
|
// output tuple format: [join_id, id, new_state, ...]
|
||||||
| map{ tup ->
|
| map{ tup ->
|
||||||
@@ -2779,7 +2808,30 @@ meta = [
|
|||||||
"resources_dir": moduleDir.toRealPath().normalize(),
|
"resources_dir": moduleDir.toRealPath().normalize(),
|
||||||
"config": processConfig(readJsonBlob('''{
|
"config": processConfig(readJsonBlob('''{
|
||||||
"name" : "multiqc",
|
"name" : "multiqc",
|
||||||
"version" : "v0.1.0",
|
"version" : "0.2.0",
|
||||||
|
"authors" : [
|
||||||
|
{
|
||||||
|
"name" : "Dorien Roosen",
|
||||||
|
"roles" : [
|
||||||
|
"author",
|
||||||
|
"maintainer"
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"links" : {
|
||||||
|
"email" : "dorien@data-intuitive.com",
|
||||||
|
"github" : "dorien-er",
|
||||||
|
"linkedin" : "dorien-roosen"
|
||||||
|
},
|
||||||
|
"organizations" : [
|
||||||
|
{
|
||||||
|
"name" : "Data Intuitive",
|
||||||
|
"href" : "https://www.data-intuitive.com",
|
||||||
|
"role" : "Data Scientist"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
"argument_groups" : [
|
"argument_groups" : [
|
||||||
{
|
{
|
||||||
"name" : "Input",
|
"name" : "Input",
|
||||||
@@ -2855,46 +2907,50 @@ meta = [
|
|||||||
"name" : "--include_modules",
|
"name" : "--include_modules",
|
||||||
"description" : "Use only these module",
|
"description" : "Use only these module",
|
||||||
"example" : [
|
"example" : [
|
||||||
"fastqc,cutadapt"
|
"fastqc",
|
||||||
|
"cutadapt"
|
||||||
],
|
],
|
||||||
"required" : false,
|
"required" : false,
|
||||||
"direction" : "input",
|
"direction" : "input",
|
||||||
"multiple" : true,
|
"multiple" : true,
|
||||||
"multiple_sep" : ","
|
"multiple_sep" : ";"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type" : "string",
|
"type" : "string",
|
||||||
"name" : "--exclude_modules",
|
"name" : "--exclude_modules",
|
||||||
"description" : "Do not use only these modules",
|
"description" : "Do not use only these modules",
|
||||||
"example" : [
|
"example" : [
|
||||||
"fastqc,cutadapt"
|
"fastqc",
|
||||||
|
"cutadapt"
|
||||||
],
|
],
|
||||||
"required" : false,
|
"required" : false,
|
||||||
"direction" : "input",
|
"direction" : "input",
|
||||||
"multiple" : true,
|
"multiple" : true,
|
||||||
"multiple_sep" : ","
|
"multiple_sep" : ";"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type" : "string",
|
"type" : "string",
|
||||||
"name" : "--ignore_analysis",
|
"name" : "--ignore_analysis",
|
||||||
"example" : [
|
"example" : [
|
||||||
"run_one/*,run_two/*"
|
"run_one/*",
|
||||||
|
"run_two/*"
|
||||||
],
|
],
|
||||||
"required" : false,
|
"required" : false,
|
||||||
"direction" : "input",
|
"direction" : "input",
|
||||||
"multiple" : true,
|
"multiple" : true,
|
||||||
"multiple_sep" : ","
|
"multiple_sep" : ";"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type" : "string",
|
"type" : "string",
|
||||||
"name" : "--ignore_samples",
|
"name" : "--ignore_samples",
|
||||||
"example" : [
|
"example" : [
|
||||||
"sample_1*,sample_3*"
|
"sample_1*",
|
||||||
|
"sample_3*"
|
||||||
],
|
],
|
||||||
"required" : false,
|
"required" : false,
|
||||||
"direction" : "input",
|
"direction" : "input",
|
||||||
"multiple" : true,
|
"multiple" : true,
|
||||||
"multiple_sep" : ","
|
"multiple_sep" : ";"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type" : "boolean_true",
|
"type" : "boolean_true",
|
||||||
@@ -3279,7 +3335,7 @@ meta = [
|
|||||||
"id" : "docker",
|
"id" : "docker",
|
||||||
"image" : "quay.io/biocontainers/multiqc:1.21--pyhdfd78af_0",
|
"image" : "quay.io/biocontainers/multiqc:1.21--pyhdfd78af_0",
|
||||||
"target_registry" : "images.viash-hub.com",
|
"target_registry" : "images.viash-hub.com",
|
||||||
"target_tag" : "v0.1.0",
|
"target_tag" : "0.2.0",
|
||||||
"namespace_separator" : "/",
|
"namespace_separator" : "/",
|
||||||
"setup" : [
|
"setup" : [
|
||||||
{
|
{
|
||||||
@@ -3309,22 +3365,22 @@ meta = [
|
|||||||
"runner" : "nextflow",
|
"runner" : "nextflow",
|
||||||
"engine" : "docker|native",
|
"engine" : "docker|native",
|
||||||
"output" : "target/nextflow/multiqc",
|
"output" : "target/nextflow/multiqc",
|
||||||
"viash_version" : "0.9.0-RC6",
|
"viash_version" : "0.9.0",
|
||||||
"git_commit" : "b84b29747d0635f2ac83ea63b496be9a9edb6724",
|
"git_commit" : "5526b3e939030daea80595fa98387b469329bbfa",
|
||||||
"git_remote" : "https://github.com/viash-hub/biobox"
|
"git_remote" : "https://github.com/viash-hub/biobox"
|
||||||
},
|
},
|
||||||
"package_config" : {
|
"package_config" : {
|
||||||
"name" : "biobox",
|
"name" : "biobox",
|
||||||
"version" : "v0.1.0",
|
"version" : "0.2.0",
|
||||||
"description" : "A collection of bioinformatics tools for working with sequence data.\n",
|
"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",
|
"source" : "src",
|
||||||
"target" : "target",
|
"target" : "target",
|
||||||
"config_mods" : [
|
"config_mods" : [
|
||||||
".requirements.commands := ['ps']\n",
|
".requirements.commands := ['ps']\n",
|
||||||
".engines += { type: \\"native\\" }",
|
".engines += { type: \\"native\\" }",
|
||||||
".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'",
|
".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'",
|
||||||
".engines[.type == 'docker'].target_tag := 'v0.1.0'"
|
".engines[.type == 'docker'].target_tag := '0.2.0'"
|
||||||
],
|
],
|
||||||
"keywords" : [
|
"keywords" : [
|
||||||
"bioinformatics",
|
"bioinformatics",
|
||||||
@@ -3411,26 +3467,32 @@ $( if [ ! -z ${VIASH_META_MEMORY_PIB+x} ]; then echo "${VIASH_META_MEMORY_PIB}"
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# disable flags
|
# disable flags
|
||||||
[[ "\\$par_ignore_symlinks" == "false" ]] && unset par_ignore_symlinks
|
unset_if_false=(
|
||||||
[[ "\\$par_dirs" == "false" ]] && unset par_dirs
|
par_ignore_symlinks
|
||||||
[[ "\\$par_full_names" == "false" ]] && unset par_full_names
|
par_dirs
|
||||||
[[ "\\$par_fn_as_s_name" == "false" ]] && unset par_fn_as_s_name
|
par_full_names
|
||||||
[[ "\\$par_profile_runtime" == "false" ]] && unset par_profile_runtime
|
par_fn_as_s_name
|
||||||
[[ "\\$par_verbose" == "false" ]] && unset par_verbose
|
par_profile_runtime
|
||||||
[[ "\\$par_quiet" == "false" ]] && unset par_quiet
|
par_verbose
|
||||||
[[ "\\$par_strict" == "false" ]] && unset par_strict
|
par_quiet
|
||||||
[[ "\\$par_development" == "false" ]] && unset par_development
|
par_strict
|
||||||
[[ "\\$par_require_logs" == "false" ]] && unset par_require_logs
|
par_development
|
||||||
[[ "\\$par_no_megaqc_upload" == "false" ]] && unset par_no_megaqc_upload
|
par_require_logs
|
||||||
[[ "\\$par_no_ansi" == "false" ]] && unset par_no_ansi
|
par_no_megaqc_upload
|
||||||
[[ "\\$par_flat" == "false" ]] && unset par_flat
|
par_no_ansi
|
||||||
[[ "\\$par_interactive" == "false" ]] && unset par_interactive
|
par_flat
|
||||||
[[ "\\$par_static_plot_export" == "false" ]] && unset par_static_plot_export
|
par_interactive
|
||||||
[[ "\\$par_data_dir" == "false" ]] && unset par_data_dir
|
par_static_plot_export
|
||||||
[[ "\\$par_no_data_dir" == "false" ]] && unset par_no_data_dir
|
par_data_dir
|
||||||
[[ "\\$par_zip_data_dir" == "false" ]] && unset par_zip_data_dir
|
par_no_data_dir
|
||||||
[[ "\\$par_pdf" == "false" ]] && unset par_pdf
|
par_zip_data_dir
|
||||||
|
par_pdf
|
||||||
|
)
|
||||||
|
|
||||||
|
for par in \\${unset_if_false[@]}; do
|
||||||
|
test_val="\\${!par}"
|
||||||
|
[[ "\\$test_val" == "false" ]] && unset \\$par
|
||||||
|
done
|
||||||
|
|
||||||
# handle inputs
|
# handle inputs
|
||||||
out_dir=\\$(dirname "\\$par_output_report")
|
out_dir=\\$(dirname "\\$par_output_report")
|
||||||
@@ -3448,7 +3510,7 @@ IFS=";" read -ra inputs <<< \\$par_input
|
|||||||
|
|
||||||
if [[ -n "\\$par_include_modules" ]]; then
|
if [[ -n "\\$par_include_modules" ]]; then
|
||||||
include_modules=""
|
include_modules=""
|
||||||
IFS="," read -ra incl_modules <<< \\$par_include_modules
|
IFS=";" read -ra incl_modules <<< \\$par_include_modules
|
||||||
for i in "\\${incl_modules[@]}"; do
|
for i in "\\${incl_modules[@]}"; do
|
||||||
include_modules+="--include \\$i "
|
include_modules+="--include \\$i "
|
||||||
done
|
done
|
||||||
@@ -3457,7 +3519,7 @@ fi
|
|||||||
|
|
||||||
if [[ -n "\\$par_exclude_modules" ]]; then
|
if [[ -n "\\$par_exclude_modules" ]]; then
|
||||||
exclude_modules=""
|
exclude_modules=""
|
||||||
IFS="," read -ra excl_modules <<< \\$par_exclude_modules
|
IFS=";" read -ra excl_modules <<< \\$par_exclude_modules
|
||||||
for i in "\\${excl_modules[@]}"; do
|
for i in "\\${excl_modules[@]}"; do
|
||||||
exclude_modules+="--exclude \\$i"
|
exclude_modules+="--exclude \\$i"
|
||||||
done
|
done
|
||||||
@@ -3466,7 +3528,7 @@ fi
|
|||||||
|
|
||||||
if [[ -n "\\$par_ignore_analysis" ]]; then
|
if [[ -n "\\$par_ignore_analysis" ]]; then
|
||||||
ignore=""
|
ignore=""
|
||||||
IFS="," read -ra ignore_analysis <<< \\$par_ignore_analysis
|
IFS=";" read -ra ignore_analysis <<< \\$par_ignore_analysis
|
||||||
for i in "\\${ignore_analysis[@]}"; do
|
for i in "\\${ignore_analysis[@]}"; do
|
||||||
ignore+="--ignore \\$i "
|
ignore+="--ignore \\$i "
|
||||||
done
|
done
|
||||||
@@ -3475,7 +3537,7 @@ fi
|
|||||||
|
|
||||||
if [[ -n "\\$par_ignore_samples" ]]; then
|
if [[ -n "\\$par_ignore_samples" ]]; then
|
||||||
ignore_samples=""
|
ignore_samples=""
|
||||||
IFS="," read -ra ign_samples <<< \\$par_ignore_samples
|
IFS=";" read -ra ign_samples <<< \\$par_ignore_samples
|
||||||
for i in "\\${ign_samples[@]}"; do
|
for i in "\\${ign_samples[@]}"; do
|
||||||
ignore_samples+="--ignore-samples \\$i"
|
ignore_samples+="--ignore-samples \\$i"
|
||||||
done
|
done
|
||||||
@@ -3618,7 +3680,11 @@ def vdsl3WorkflowFactory(Map args, Map meta, String rawScript) {
|
|||||||
val = val.join(par.multiple_sep)
|
val = val.join(par.multiple_sep)
|
||||||
}
|
}
|
||||||
if (par.direction == "output" && par.type == "file") {
|
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]
|
[parName, val]
|
||||||
}
|
}
|
||||||
@@ -3749,7 +3815,8 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) {
|
|||||||
def createParentStr = meta.config.allArguments
|
def createParentStr = meta.config.allArguments
|
||||||
.findAll { it.type == "file" && it.direction == "output" && it.create_parent }
|
.findAll { it.type == "file" && it.direction == "output" && it.create_parent }
|
||||||
.collect { par ->
|
.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")
|
.join("\n")
|
||||||
|
|
||||||
@@ -3757,8 +3824,8 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) {
|
|||||||
def inputFileExports = meta.config.allArguments
|
def inputFileExports = meta.config.allArguments
|
||||||
.findAll { it.type == "file" && it.direction.toLowerCase() == "input" }
|
.findAll { it.type == "file" && it.direction.toLowerCase() == "input" }
|
||||||
.collect { par ->
|
.collect { par ->
|
||||||
def viash_par_contents = "(viash_par_${par.plainName} instanceof List ? viash_par_${par.plainName}.join(\"${par.multiple_sep}\") : viash_par_${par.plainName})"
|
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()}=\\\"\" + ${viash_par_contents} + \"\\\"\"}"
|
"\n\${viash_par_${par.plainName}.empty ? \"\" : \"export VIASH_PAR_${par.plainName.toUpperCase()}='\" + escapeText(${contents}) + \"'\"}"
|
||||||
}
|
}
|
||||||
|
|
||||||
// NOTE: if using docker, use /tmp instead of tmpDir!
|
// NOTE: if using docker, use /tmp instead of tmpDir!
|
||||||
@@ -3795,6 +3862,7 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) {
|
|||||||
def procStr =
|
def procStr =
|
||||||
"""nextflow.enable.dsl=2
|
"""nextflow.enable.dsl=2
|
||||||
|
|
|
|
||||||
|
|def escapeText = { s -> s.toString().replaceAll("'", "'\\\"'\\\"'") }
|
||||||
|process $procKey {$drctvStrs
|
|process $procKey {$drctvStrs
|
||||||
|input:
|
|input:
|
||||||
| tuple val(id)$inputPaths, val(args), path(resourcesDir, stageAs: ".viash_meta_resources")
|
| tuple val(id)$inputPaths, val(args), path(resourcesDir, stageAs: ".viash_meta_resources")
|
||||||
@@ -3806,10 +3874,9 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) {
|
|||||||
|$stub
|
|$stub
|
||||||
|\"\"\"
|
|\"\"\"
|
||||||
|script:$assertStr
|
|script:$assertStr
|
||||||
|def escapeText = { s -> s.toString().replaceAll('([`"])', '\\\\\\\\\$1') }
|
|
||||||
|def parInject = args
|
|def parInject = args
|
||||||
| .findAll{key, value -> value != null}
|
| .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")
|
| .join("\\n")
|
||||||
|\"\"\"
|
|\"\"\"
|
||||||
|# meta exports
|
|# meta exports
|
||||||
@@ -3894,7 +3961,7 @@ meta["defaults"] = [
|
|||||||
"container" : {
|
"container" : {
|
||||||
"registry" : "images.viash-hub.com",
|
"registry" : "images.viash-hub.com",
|
||||||
"image" : "vsh/biobox/multiqc",
|
"image" : "vsh/biobox/multiqc",
|
||||||
"tag" : "v0.1.0"
|
"tag" : "0.2.0"
|
||||||
},
|
},
|
||||||
"tag" : "$id"
|
"tag" : "$id"
|
||||||
}'''),
|
}'''),
|
||||||
@@ -2,8 +2,9 @@ manifest {
|
|||||||
name = 'multiqc'
|
name = 'multiqc'
|
||||||
mainScript = 'main.nf'
|
mainScript = 'main.nf'
|
||||||
nextflowVersion = '!>=20.12.1-edge'
|
nextflowVersion = '!>=20.12.1-edge'
|
||||||
version = 'v0.1.0'
|
version = '0.2.0'
|
||||||
description = 'MultiQC aggregates results from bioinformatics analyses across many samples into a single report.\nIt searches a given directory for analysis logs and compiles a HTML report. It\'s a general use tool, perfect for summarising the output from numerous bioinformatics tools.\n'
|
description = 'MultiQC aggregates results from bioinformatics analyses across many samples into a single report.\nIt searches a given directory for analysis logs and compiles a HTML report. It\'s a general use tool, perfect for summarising the output from numerous bioinformatics tools.\n'
|
||||||
|
author = 'Dorien Roosen'
|
||||||
}
|
}
|
||||||
|
|
||||||
process.container = 'nextflow/bash:latest'
|
process.container = 'nextflow/bash:latest'
|
||||||
@@ -17,8 +17,8 @@
|
|||||||
"input": {
|
"input": {
|
||||||
"type":
|
"type":
|
||||||
"string",
|
"string",
|
||||||
"description": "Type: List of `file`, required, example: `data/results/`, multiple_sep: `\":\"`. File paths to be searched for analysis results to be included in the report",
|
"description": "Type: List of `file`, required, example: `data/results`, multiple_sep: `\";\"`. File paths to be searched for analysis results to be included in the report",
|
||||||
"help_text": "Type: List of `file`, required, example: `data/results/`, multiple_sep: `\":\"`. File paths to be searched for analysis results to be included in the report.\n"
|
"help_text": "Type: List of `file`, required, example: `data/results`, multiple_sep: `\";\"`. File paths to be searched for analysis results to be included in the report.\n"
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -80,8 +80,8 @@
|
|||||||
"include_modules": {
|
"include_modules": {
|
||||||
"type":
|
"type":
|
||||||
"string",
|
"string",
|
||||||
"description": "Type: List of `string`, example: `fastqc,cutadapt`, multiple_sep: `\",\"`. Use only these module",
|
"description": "Type: List of `string`, example: `fastqc;cutadapt`, multiple_sep: `\";\"`. Use only these module",
|
||||||
"help_text": "Type: List of `string`, example: `fastqc,cutadapt`, multiple_sep: `\",\"`. Use only these module"
|
"help_text": "Type: List of `string`, example: `fastqc;cutadapt`, multiple_sep: `\";\"`. Use only these module"
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -90,8 +90,8 @@
|
|||||||
"exclude_modules": {
|
"exclude_modules": {
|
||||||
"type":
|
"type":
|
||||||
"string",
|
"string",
|
||||||
"description": "Type: List of `string`, example: `fastqc,cutadapt`, multiple_sep: `\",\"`. Do not use only these modules",
|
"description": "Type: List of `string`, example: `fastqc;cutadapt`, multiple_sep: `\";\"`. Do not use only these modules",
|
||||||
"help_text": "Type: List of `string`, example: `fastqc,cutadapt`, multiple_sep: `\",\"`. Do not use only these modules"
|
"help_text": "Type: List of `string`, example: `fastqc;cutadapt`, multiple_sep: `\";\"`. Do not use only these modules"
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -100,8 +100,8 @@
|
|||||||
"ignore_analysis": {
|
"ignore_analysis": {
|
||||||
"type":
|
"type":
|
||||||
"string",
|
"string",
|
||||||
"description": "Type: List of `string`, example: `run_one/*,run_two/*`, multiple_sep: `\",\"`. ",
|
"description": "Type: List of `string`, example: `run_one/*;run_two/*`, multiple_sep: `\";\"`. ",
|
||||||
"help_text": "Type: List of `string`, example: `run_one/*,run_two/*`, multiple_sep: `\",\"`. "
|
"help_text": "Type: List of `string`, example: `run_one/*;run_two/*`, multiple_sep: `\";\"`. "
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -110,8 +110,8 @@
|
|||||||
"ignore_samples": {
|
"ignore_samples": {
|
||||||
"type":
|
"type":
|
||||||
"string",
|
"string",
|
||||||
"description": "Type: List of `string`, example: `sample_1*,sample_3*`, multiple_sep: `\",\"`. ",
|
"description": "Type: List of `string`, example: `sample_1*;sample_3*`, multiple_sep: `\";\"`. ",
|
||||||
"help_text": "Type: List of `string`, example: `sample_1*,sample_3*`, multiple_sep: `\",\"`. "
|
"help_text": "Type: List of `string`, example: `sample_1*;sample_3*`, multiple_sep: `\";\"`. "
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -141,7 +141,7 @@ build_info:
|
|||||||
output: "target/executable/io/interop_summary_to_csv"
|
output: "target/executable/io/interop_summary_to_csv"
|
||||||
executable: "target/executable/io/interop_summary_to_csv/interop_summary_to_csv"
|
executable: "target/executable/io/interop_summary_to_csv/interop_summary_to_csv"
|
||||||
viash_version: "0.9.0"
|
viash_version: "0.9.0"
|
||||||
git_commit: "cfefb99ef0d6eeeaf62a3f52654651bc59d06e0f"
|
git_commit: "399e46901d6ce882a7430842b0d74774736439e2"
|
||||||
git_remote: "https://github.com/viash-hub/demultiplex"
|
git_remote: "https://github.com/viash-hub/demultiplex"
|
||||||
package_config:
|
package_config:
|
||||||
name: "demultiplex"
|
name: "demultiplex"
|
||||||
|
|||||||
@@ -470,9 +470,9 @@ 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/
|
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.description="Companion container for running component io interop_summary_to_csv"
|
||||||
LABEL org.opencontainers.image.created="2024-09-12T12:25:58Z"
|
LABEL org.opencontainers.image.created="2024-09-13T09:38:22Z"
|
||||||
LABEL org.opencontainers.image.source="https://github.com/viash-hub/demultiplex"
|
LABEL org.opencontainers.image.source="https://github.com/viash-hub/demultiplex"
|
||||||
LABEL org.opencontainers.image.revision="cfefb99ef0d6eeeaf62a3f52654651bc59d06e0f"
|
LABEL org.opencontainers.image.revision="399e46901d6ce882a7430842b0d74774736439e2"
|
||||||
LABEL org.opencontainers.image.version="main"
|
LABEL org.opencontainers.image.version="main"
|
||||||
|
|
||||||
VIASHDOCKER
|
VIASHDOCKER
|
||||||
|
|||||||
@@ -148,7 +148,7 @@ build_info:
|
|||||||
output: "target/executable/io/untar"
|
output: "target/executable/io/untar"
|
||||||
executable: "target/executable/io/untar/untar"
|
executable: "target/executable/io/untar/untar"
|
||||||
viash_version: "0.9.0"
|
viash_version: "0.9.0"
|
||||||
git_commit: "cfefb99ef0d6eeeaf62a3f52654651bc59d06e0f"
|
git_commit: "399e46901d6ce882a7430842b0d74774736439e2"
|
||||||
git_remote: "https://github.com/viash-hub/demultiplex"
|
git_remote: "https://github.com/viash-hub/demultiplex"
|
||||||
package_config:
|
package_config:
|
||||||
name: "demultiplex"
|
name: "demultiplex"
|
||||||
|
|||||||
@@ -476,9 +476,9 @@ RUN apt-get update && \
|
|||||||
rm -rf /var/lib/apt/lists/*
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
LABEL org.opencontainers.image.description="Companion container for running component io untar"
|
LABEL org.opencontainers.image.description="Companion container for running component io untar"
|
||||||
LABEL org.opencontainers.image.created="2024-09-12T12:25:58Z"
|
LABEL org.opencontainers.image.created="2024-09-13T09:38:22Z"
|
||||||
LABEL org.opencontainers.image.source="https://github.com/viash-hub/demultiplex"
|
LABEL org.opencontainers.image.source="https://github.com/viash-hub/demultiplex"
|
||||||
LABEL org.opencontainers.image.revision="cfefb99ef0d6eeeaf62a3f52654651bc59d06e0f"
|
LABEL org.opencontainers.image.revision="399e46901d6ce882a7430842b0d74774736439e2"
|
||||||
LABEL org.opencontainers.image.version="main"
|
LABEL org.opencontainers.image.version="main"
|
||||||
|
|
||||||
VIASHDOCKER
|
VIASHDOCKER
|
||||||
|
|||||||
@@ -139,7 +139,7 @@ build_info:
|
|||||||
output: "target/nextflow/dataflow/combine_samples"
|
output: "target/nextflow/dataflow/combine_samples"
|
||||||
executable: "target/nextflow/dataflow/combine_samples/main.nf"
|
executable: "target/nextflow/dataflow/combine_samples/main.nf"
|
||||||
viash_version: "0.9.0"
|
viash_version: "0.9.0"
|
||||||
git_commit: "cfefb99ef0d6eeeaf62a3f52654651bc59d06e0f"
|
git_commit: "399e46901d6ce882a7430842b0d74774736439e2"
|
||||||
git_remote: "https://github.com/viash-hub/demultiplex"
|
git_remote: "https://github.com/viash-hub/demultiplex"
|
||||||
package_config:
|
package_config:
|
||||||
name: "demultiplex"
|
name: "demultiplex"
|
||||||
|
|||||||
@@ -2972,7 +2972,7 @@ meta = [
|
|||||||
"engine" : "native|native",
|
"engine" : "native|native",
|
||||||
"output" : "target/nextflow/dataflow/combine_samples",
|
"output" : "target/nextflow/dataflow/combine_samples",
|
||||||
"viash_version" : "0.9.0",
|
"viash_version" : "0.9.0",
|
||||||
"git_commit" : "cfefb99ef0d6eeeaf62a3f52654651bc59d06e0f",
|
"git_commit" : "399e46901d6ce882a7430842b0d74774736439e2",
|
||||||
"git_remote" : "https://github.com/viash-hub/demultiplex"
|
"git_remote" : "https://github.com/viash-hub/demultiplex"
|
||||||
},
|
},
|
||||||
"package_config" : {
|
"package_config" : {
|
||||||
|
|||||||
@@ -133,7 +133,7 @@ build_info:
|
|||||||
output: "target/nextflow/dataflow/gather_fastqs_and_validate"
|
output: "target/nextflow/dataflow/gather_fastqs_and_validate"
|
||||||
executable: "target/nextflow/dataflow/gather_fastqs_and_validate/main.nf"
|
executable: "target/nextflow/dataflow/gather_fastqs_and_validate/main.nf"
|
||||||
viash_version: "0.9.0"
|
viash_version: "0.9.0"
|
||||||
git_commit: "cfefb99ef0d6eeeaf62a3f52654651bc59d06e0f"
|
git_commit: "399e46901d6ce882a7430842b0d74774736439e2"
|
||||||
git_remote: "https://github.com/viash-hub/demultiplex"
|
git_remote: "https://github.com/viash-hub/demultiplex"
|
||||||
package_config:
|
package_config:
|
||||||
name: "demultiplex"
|
name: "demultiplex"
|
||||||
|
|||||||
@@ -2965,7 +2965,7 @@ meta = [
|
|||||||
"engine" : "native|native",
|
"engine" : "native|native",
|
||||||
"output" : "target/nextflow/dataflow/gather_fastqs_and_validate",
|
"output" : "target/nextflow/dataflow/gather_fastqs_and_validate",
|
||||||
"viash_version" : "0.9.0",
|
"viash_version" : "0.9.0",
|
||||||
"git_commit" : "cfefb99ef0d6eeeaf62a3f52654651bc59d06e0f",
|
"git_commit" : "399e46901d6ce882a7430842b0d74774736439e2",
|
||||||
"git_remote" : "https://github.com/viash-hub/demultiplex"
|
"git_remote" : "https://github.com/viash-hub/demultiplex"
|
||||||
},
|
},
|
||||||
"package_config" : {
|
"package_config" : {
|
||||||
|
|||||||
@@ -93,22 +93,22 @@ dependencies:
|
|||||||
repository:
|
repository:
|
||||||
type: "vsh"
|
type: "vsh"
|
||||||
repo: "biobox"
|
repo: "biobox"
|
||||||
tag: "v0.1.0"
|
tag: "v0.2.0"
|
||||||
- name: "falco"
|
- name: "falco"
|
||||||
repository:
|
repository:
|
||||||
type: "vsh"
|
type: "vsh"
|
||||||
repo: "biobox"
|
repo: "biobox"
|
||||||
tag: "v0.1.0"
|
tag: "v0.2.0"
|
||||||
- name: "multiqc"
|
- name: "multiqc"
|
||||||
repository:
|
repository:
|
||||||
type: "vsh"
|
type: "vsh"
|
||||||
repo: "biobox"
|
repo: "biobox"
|
||||||
tag: "v0.1.0"
|
tag: "v0.2.0"
|
||||||
repositories:
|
repositories:
|
||||||
- type: "vsh"
|
- type: "vsh"
|
||||||
name: "bb"
|
name: "bb"
|
||||||
repo: "biobox"
|
repo: "biobox"
|
||||||
tag: "v0.1.0"
|
tag: "v0.2.0"
|
||||||
license: "MIT"
|
license: "MIT"
|
||||||
links:
|
links:
|
||||||
repository: "https://github.com/viash-hub/demultiplex"
|
repository: "https://github.com/viash-hub/demultiplex"
|
||||||
@@ -186,16 +186,16 @@ build_info:
|
|||||||
output: "target/nextflow/demultiplex"
|
output: "target/nextflow/demultiplex"
|
||||||
executable: "target/nextflow/demultiplex/main.nf"
|
executable: "target/nextflow/demultiplex/main.nf"
|
||||||
viash_version: "0.9.0"
|
viash_version: "0.9.0"
|
||||||
git_commit: "cfefb99ef0d6eeeaf62a3f52654651bc59d06e0f"
|
git_commit: "399e46901d6ce882a7430842b0d74774736439e2"
|
||||||
git_remote: "https://github.com/viash-hub/demultiplex"
|
git_remote: "https://github.com/viash-hub/demultiplex"
|
||||||
dependencies:
|
dependencies:
|
||||||
- "target/nextflow/io/untar"
|
- "target/nextflow/io/untar"
|
||||||
- "target/nextflow/dataflow/gather_fastqs_and_validate"
|
- "target/nextflow/dataflow/gather_fastqs_and_validate"
|
||||||
- "target/nextflow/io/interop_summary_to_csv"
|
- "target/nextflow/io/interop_summary_to_csv"
|
||||||
- "target/nextflow/dataflow/combine_samples"
|
- "target/nextflow/dataflow/combine_samples"
|
||||||
- "target/dependencies/vsh/vsh/biobox/v0.1.0/nextflow/bcl_convert"
|
- "target/dependencies/vsh/vsh/biobox/v0.2.0/nextflow/bcl_convert"
|
||||||
- "target/dependencies/vsh/vsh/biobox/v0.1.0/nextflow/falco"
|
- "target/dependencies/vsh/vsh/biobox/v0.2.0/nextflow/falco"
|
||||||
- "target/dependencies/vsh/vsh/biobox/v0.1.0/nextflow/multiqc"
|
- "target/dependencies/vsh/vsh/biobox/v0.2.0/nextflow/multiqc"
|
||||||
package_config:
|
package_config:
|
||||||
name: "demultiplex"
|
name: "demultiplex"
|
||||||
version: "main"
|
version: "main"
|
||||||
|
|||||||
@@ -2932,7 +2932,7 @@ meta = [
|
|||||||
"repository" : {
|
"repository" : {
|
||||||
"type" : "vsh",
|
"type" : "vsh",
|
||||||
"repo" : "biobox",
|
"repo" : "biobox",
|
||||||
"tag" : "v0.1.0"
|
"tag" : "v0.2.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -2940,7 +2940,7 @@ meta = [
|
|||||||
"repository" : {
|
"repository" : {
|
||||||
"type" : "vsh",
|
"type" : "vsh",
|
||||||
"repo" : "biobox",
|
"repo" : "biobox",
|
||||||
"tag" : "v0.1.0"
|
"tag" : "v0.2.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -2948,7 +2948,7 @@ meta = [
|
|||||||
"repository" : {
|
"repository" : {
|
||||||
"type" : "vsh",
|
"type" : "vsh",
|
||||||
"repo" : "biobox",
|
"repo" : "biobox",
|
||||||
"tag" : "v0.1.0"
|
"tag" : "v0.2.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@@ -2957,7 +2957,7 @@ meta = [
|
|||||||
"type" : "vsh",
|
"type" : "vsh",
|
||||||
"name" : "bb",
|
"name" : "bb",
|
||||||
"repo" : "biobox",
|
"repo" : "biobox",
|
||||||
"tag" : "v0.1.0"
|
"tag" : "v0.2.0"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"license" : "MIT",
|
"license" : "MIT",
|
||||||
@@ -3049,7 +3049,7 @@ meta = [
|
|||||||
"engine" : "native|native",
|
"engine" : "native|native",
|
||||||
"output" : "target/nextflow/demultiplex",
|
"output" : "target/nextflow/demultiplex",
|
||||||
"viash_version" : "0.9.0",
|
"viash_version" : "0.9.0",
|
||||||
"git_commit" : "cfefb99ef0d6eeeaf62a3f52654651bc59d06e0f",
|
"git_commit" : "399e46901d6ce882a7430842b0d74774736439e2",
|
||||||
"git_remote" : "https://github.com/viash-hub/demultiplex"
|
"git_remote" : "https://github.com/viash-hub/demultiplex"
|
||||||
},
|
},
|
||||||
"package_config" : {
|
"package_config" : {
|
||||||
@@ -3095,9 +3095,9 @@ include { untar } from "${meta.resources_dir}/../../nextflow/io/untar/main.nf"
|
|||||||
include { gather_fastqs_and_validate } from "${meta.resources_dir}/../../nextflow/dataflow/gather_fastqs_and_validate/main.nf"
|
include { gather_fastqs_and_validate } from "${meta.resources_dir}/../../nextflow/dataflow/gather_fastqs_and_validate/main.nf"
|
||||||
include { interop_summary_to_csv } from "${meta.resources_dir}/../../nextflow/io/interop_summary_to_csv/main.nf"
|
include { interop_summary_to_csv } from "${meta.resources_dir}/../../nextflow/io/interop_summary_to_csv/main.nf"
|
||||||
include { combine_samples } from "${meta.resources_dir}/../../nextflow/dataflow/combine_samples/main.nf"
|
include { combine_samples } from "${meta.resources_dir}/../../nextflow/dataflow/combine_samples/main.nf"
|
||||||
include { bcl_convert } from "${meta.root_dir}/dependencies/vsh/vsh/biobox/v0.1.0/nextflow/bcl_convert/main.nf"
|
include { bcl_convert } from "${meta.root_dir}/dependencies/vsh/vsh/biobox/v0.2.0/nextflow/bcl_convert/main.nf"
|
||||||
include { falco } from "${meta.root_dir}/dependencies/vsh/vsh/biobox/v0.1.0/nextflow/falco/main.nf"
|
include { falco } from "${meta.root_dir}/dependencies/vsh/vsh/biobox/v0.2.0/nextflow/falco/main.nf"
|
||||||
include { multiqc } from "${meta.root_dir}/dependencies/vsh/vsh/biobox/v0.1.0/nextflow/multiqc/main.nf"
|
include { multiqc } from "${meta.root_dir}/dependencies/vsh/vsh/biobox/v0.2.0/nextflow/multiqc/main.nf"
|
||||||
|
|
||||||
// inner workflow
|
// inner workflow
|
||||||
// user-provided Nextflow code
|
// user-provided Nextflow code
|
||||||
|
|||||||
@@ -141,7 +141,7 @@ build_info:
|
|||||||
output: "target/nextflow/io/interop_summary_to_csv"
|
output: "target/nextflow/io/interop_summary_to_csv"
|
||||||
executable: "target/nextflow/io/interop_summary_to_csv/main.nf"
|
executable: "target/nextflow/io/interop_summary_to_csv/main.nf"
|
||||||
viash_version: "0.9.0"
|
viash_version: "0.9.0"
|
||||||
git_commit: "cfefb99ef0d6eeeaf62a3f52654651bc59d06e0f"
|
git_commit: "399e46901d6ce882a7430842b0d74774736439e2"
|
||||||
git_remote: "https://github.com/viash-hub/demultiplex"
|
git_remote: "https://github.com/viash-hub/demultiplex"
|
||||||
package_config:
|
package_config:
|
||||||
name: "demultiplex"
|
name: "demultiplex"
|
||||||
|
|||||||
@@ -2977,7 +2977,7 @@ meta = [
|
|||||||
"engine" : "docker|native",
|
"engine" : "docker|native",
|
||||||
"output" : "target/nextflow/io/interop_summary_to_csv",
|
"output" : "target/nextflow/io/interop_summary_to_csv",
|
||||||
"viash_version" : "0.9.0",
|
"viash_version" : "0.9.0",
|
||||||
"git_commit" : "cfefb99ef0d6eeeaf62a3f52654651bc59d06e0f",
|
"git_commit" : "399e46901d6ce882a7430842b0d74774736439e2",
|
||||||
"git_remote" : "https://github.com/viash-hub/demultiplex"
|
"git_remote" : "https://github.com/viash-hub/demultiplex"
|
||||||
},
|
},
|
||||||
"package_config" : {
|
"package_config" : {
|
||||||
|
|||||||
@@ -148,7 +148,7 @@ build_info:
|
|||||||
output: "target/nextflow/io/untar"
|
output: "target/nextflow/io/untar"
|
||||||
executable: "target/nextflow/io/untar/main.nf"
|
executable: "target/nextflow/io/untar/main.nf"
|
||||||
viash_version: "0.9.0"
|
viash_version: "0.9.0"
|
||||||
git_commit: "cfefb99ef0d6eeeaf62a3f52654651bc59d06e0f"
|
git_commit: "399e46901d6ce882a7430842b0d74774736439e2"
|
||||||
git_remote: "https://github.com/viash-hub/demultiplex"
|
git_remote: "https://github.com/viash-hub/demultiplex"
|
||||||
package_config:
|
package_config:
|
||||||
name: "demultiplex"
|
name: "demultiplex"
|
||||||
|
|||||||
@@ -2989,7 +2989,7 @@ meta = [
|
|||||||
"engine" : "docker|native",
|
"engine" : "docker|native",
|
||||||
"output" : "target/nextflow/io/untar",
|
"output" : "target/nextflow/io/untar",
|
||||||
"viash_version" : "0.9.0",
|
"viash_version" : "0.9.0",
|
||||||
"git_commit" : "cfefb99ef0d6eeeaf62a3f52654651bc59d06e0f",
|
"git_commit" : "399e46901d6ce882a7430842b0d74774736439e2",
|
||||||
"git_remote" : "https://github.com/viash-hub/demultiplex"
|
"git_remote" : "https://github.com/viash-hub/demultiplex"
|
||||||
},
|
},
|
||||||
"package_config" : {
|
"package_config" : {
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
/work/viash_hub_resources/viash-hub/demultiplex/ebb861b02ab66db004c32fa46573bb1e/200624_A00834_0183_BHMTFYDRXX.tar.gz
|
|
||||||
Reference in New Issue
Block a user