Build branch main with version main (6e6be28)

Build pipeline: viash-hub.demultiplex.main-wmjf8

Source commit: 6e6be28b85

Source message: Prepare CHANGELOG for release 0.2.0
This commit is contained in:
CI
2024-12-05 10:37:33 +00:00
parent 304b1d24b3
commit fcc3a4d62e
44 changed files with 5504 additions and 256 deletions

View File

@@ -1,4 +1,12 @@
# demultiplex v0.1.2
# demultiplex v0.2.0
## Breaking changes
* `demultiplex` workflow: renamed `sample_sheet` argument to `run_information` (PR #24)
## New features
* Add support for `bases2fastq` demultiplexer (PR #24)
## Minor updates

View File

@@ -11,9 +11,11 @@ argument_groups:
- name: --forward_input
type: file
required: true
multiple: true
- name: --reverse_input
type: file
required: false
multiple: true
- name: Output arguments
arguments:
- name: --output_forward

View File

@@ -11,8 +11,8 @@ workflow run_wf {
| groupTuple(by: 0, sort: "hash")
| map {run_id, states ->
// Gather the following state for all samples
def forward_fastqs = states.collect{it.forward_input}
def reverse_fastqs = states.collect{it.reverse_input}.findAll{it != null}
def forward_fastqs = states.collect{it.forward_input}.flatten()
def reverse_fastqs = states.collect{it.reverse_input}.findAll{it != null}.flatten()
def resultState = [
"output_forward": forward_fastqs,

View File

@@ -20,10 +20,12 @@ argument_groups:
type: file
direction: output
required: true
multiple: true
- name: "--fastq_reverse"
type: file
direction: output
required: false
multiple: true
resources:
- type: nextflow_script
path: main.nf

View File

@@ -14,9 +14,11 @@ workflow run_wf {
def original_id = id
// Parse sample sheet for sample IDs
println "Processing run information file ${sample_sheet}"
csv_lines = sample_sheet.splitCsv(header: false, sep: ',')
csv_lines.any { csv_items ->
if (csv_items.isEmpty()) {
// skip empty line
return
}
def possible_header = csv_items[0]
@@ -24,22 +26,40 @@ workflow run_wf {
if (header) {
if (start_parsing) {
// Stop parsing when encountering the next header
println "Encountered next header '[${start_parsing}]', stopping parsing."
return true
}
if (header == "Data") {
// [Data] for illumina
// [Samples] for Element Biosciences
if (header in ["Data", "Samples"]) {
println "Found header [${header}], start parsing."
start_parsing = true
return
}
}
if (start_parsing) {
if ( !sample_id_column_index ) {
sample_id_column_index = csv_items.findIndexValues{it == "Sample_ID"}
assert sample_id_column_index != -1:
"Could not find column 'Sample_ID' in sample sheet!"
if ( sample_id_column_index == null) {
println "Looking for sample name column."
sample_id_column_index = csv_items.findIndexValues{it == "Sample_ID" || it == "SampleName"}
assert (!sample_id_column_index.isEmpty()):
"Could not find column 'Sample_ID' (Illumina) or 'SampleName' " +
"(Element Biosciences) in run information! Found: ${sample_id_column_index}"
assert sample_id_column_index.size() == 1, "Expected run information file to contain " +
"a column 'Sample_ID' or 'SampleName', not both. Found: ${sample_id_column_index}"
sample_id_column_index = sample_id_column_index[0]
println "Found sample names column '${csv_items[sample_id_column_index]}'."
return
}
samples += csv_items[sample_id_column_index]
}
// This return is important! (If 'true' is returned, the parsing stops.)
return
}
assert start_parsing:
"Sample information file does not contain [Data] or [Samples] header!"
assert samples.size() > 1:
"Sample information file does not seem to contain any information about the samples!"
println "Finished processing run information file, found samples: ${samples}."
println "Looking for fastq files in ${state.input}."
def allfastqs = state.input.listFiles().findAll{it.isFile() && it.name ==~ /^.+\.fastq.gz$/}
println "Found ${allfastqs.size()} fastq files, matching them to the following samples: ${samples}."
@@ -48,17 +68,15 @@ workflow run_wf {
def reverse_regex = ~/^${sample_id}_S(\d+)_(L(\d+)_)?R2_(\d+)\.fastq\.gz$/
def forward_fastq = state.input.listFiles().findAll{it.isFile() && it.name ==~ forward_regex}
def reverse_fastq = state.input.listFiles().findAll{it.isFile() && it.name ==~ reverse_regex}
assert forward_fastq : "No forward fastq files were found for sample ${sample_id}"
assert forward_fastq.size() < 2:
"Found multiple forward fastq files corresponding to sample ${sample_id}: ${forward_fastq}"
assert reverse_fastq.size() < 2:
"Found multiple reverse fastq files corresponding to sample ${sample_id}: ${reverse_fastq}."
assert !forward_fastq.isEmpty():
"Expected a forward fastq file to have been created correspondig to sample ${sample_id}."
// TODO: if one sample had reverse reads, the others must as well.
reverse_fastq = !reverse_fastq.isEmpty() ? reverse_fastq[0] : null
assert forward_fastq && !forward_fastq.isEmpty(): "No forward fastq files were found for sample ${sample_id}. " +
"All fastq files in directory: ${allfastqs.collect{it.name}}"
assert (reverse_fastq.isEmpty() || (forward_fastq.size() == reverse_fastq.size())):
"Expected equal number of forward and reverse fastq files for sample ${sample_id}. " +
"Found forward: ${forward_fastq} and reverse: ${reverse_fastq}."
println "Found ${forward_fastq.size()} forward and ${reverse_fastq.size()} reverse " +
"fastq files for sample ${sample_id}"
def fastqs_state = [
"fastq_forward": forward_fastq[0],
"fastq_forward": forward_fastq,
"fastq_reverse": reverse_fastq,
"_meta": [ "join_id": original_id ],
]

View File

@@ -7,12 +7,24 @@ argument_groups:
description: Directory containing raw sequencing data
type: file
required: true
- name: --sample_sheet
- name: --run_information
description: |
Sample sheet as input for BCL Convert. If not specified,
will try to autodetect the sample sheet in the input directory
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: Output arguments
arguments:
- name: --output
@@ -40,7 +52,10 @@ resources:
test_resources:
- type: nextflow_script
path: test.nf
entrypoint: test_wf
entrypoint: test_illumina
- type: nextflow_script
path: test.nf
entrypoint: test_bases2fastq
dependencies:
- name: io/untar
@@ -53,6 +68,8 @@ dependencies:
repository: local
- name: bcl_convert
repository: bb
- name: bases2fastq
repository: bb
- name: falco
repository: bb
- name: multiqc
@@ -61,7 +78,7 @@ repositories:
- name: bb
type: vsh
repo: biobox
tag: v0.2.0
tag: v0.3.0
runners:
- type: nextflow

View File

@@ -11,7 +11,14 @@ viash ns build --setup cb
nextflow run . \
-main-script src/demultiplex/test.nf \
-profile docker,no_publish,local \
-entry test_wf \
-entry test_illumina \
-c src/config/labels.config \
--resources_test https://raw.githubusercontent.com/nf-core/test-datasets/demultiplex/testdata/NovaSeq6000/ \
-resume
nextflow run . \
-main-script src/demultiplex/test.nf \
-profile docker,no_publish,local \
-entry test_bases2fastq \
-c src/config/labels.config \
-resume

View File

@@ -23,22 +23,79 @@ workflow run_wf {
// Gather input files from folder
| map {id, state ->
def newState = [:]
if (!state.sample_sheet) {
def sample_sheet = state.input.resolve("SampleSheet.csv")
assert (sample_sheet && sample_sheet.isFile()): "Could not find 'SampleSheet.csv' file in input directory."
newState["sample_sheet"] = sample_sheet
println("Provided run information: ${state.run_information} and demultiplexer: ${state.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,
]
}
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 resultState = state + newState
[id, resultState]
}
| interop_summary_to_csv.run(
runIf: {id, state -> state.demultiplexer in ["bclconvert"]},
directives: [label: ["lowmem", "verylowcpu"]],
fromState: [
"input": "input",
@@ -50,16 +107,40 @@ workflow run_wf {
)
// run bcl_convert
| bcl_convert.run(
runIf: {id, state -> state.demultiplexer in ["bclconvert"]},
directives: [label: ["highmem", "midcpu"]],
fromState: [
"bcl_input_directory": "input",
"sample_sheet": "sample_sheet",
"sample_sheet": "run_information",
"output_directory": "output",
],
toState: {id, result, state ->
def toAdd = [
"output_bclconvert" : result.output_directory,
"bclconvert_reports": result.reports,
"output_demultiplexer" : result.output_directory,
"run_id": id,
]
def newState = state + toAdd
return newState
}
)
// run bases2fastq
| bases2fastq.run(
runIf: {id, state -> state.demultiplexer in ["bases2fastq"]},
directives: [label: ["highmem", "midcpu"]],
fromState: [
"analysis_directory": "input",
"run_manifest": "run_information",
"output_directory": "output",
],
args: [
"no_projects": true, // Do not put output files in a subfolder for project
//"split_lanes": true,
"legacy_fastq": true, // Illumina style output names
"group_fastq": true, // No subdir per sample
],
toState: {id, result, state ->
def toAdd = [
"output_demultiplexer" : result.output_directory,
"run_id": id,
]
def newState = state + toAdd
@@ -68,8 +149,8 @@ workflow run_wf {
)
| gather_fastqs_and_validate.run(
fromState: [
"input": "output_bclconvert",
"sample_sheet": "sample_sheet",
"input": "output_demultiplexer",
"sample_sheet": "run_information",
],
toState: [
"fastq_forward": "fastq_forward",
@@ -110,15 +191,18 @@ workflow run_wf {
| multiqc.run(
directives: [label: ["lowcpu", "lowmem"]],
fromState: {id, state ->
[
"input": [
state.output_falco,
def new_state = [
"input": [state.output_falco],
"output_report": state.output_multiqc,
"cl_config": 'sp: {fastqc/data: {fn: "*_fastqc_data.txt"}}'
]
if (state.demultiplexer == "bclconvert") {
new_state["input"] += [
state.interop_run_summary.getParent(),
state.interop_index_summary.getParent()
],
"output_report": state.output_multiqc,
"cl_config": 'sp: {fastqc/data: {fn: "*_fastqc_data.txt"}}',
]
}
return new_state
},
toState: { id, result, state ->
state + [ "output_multiqc" : result.output_report ]
@@ -126,7 +210,7 @@ workflow run_wf {
)
| setState(
[
"output": "output_bclconvert",
"output": "output_demultiplexer",
"output_falco": "output_falco",
"output_multiqc": "output_multiqc"
]

View File

@@ -4,7 +4,7 @@ include { demultiplex } from params.rootDir + "/target/nextflow/demultiplex/main
params.resources_test = params.rootDir + "/testData/"
workflow test_wf {
workflow test_illumina {
output_ch = Channel.fromList([
[
// sample_sheet: resources_test.resolve("bcl_convert_samplesheet.csv"),
@@ -27,5 +27,36 @@ workflow test_wf {
assert state.output.isDirectory(): "Expected bclconvert output to be a directory"
assert state.output_falco.isDirectory(): "Expected falco output to be a directory"
assert state.output_multiqc.isFile(): "Expected multiQC output to be a file"
fastq_files = state.output.listFiles().collect{it.name}
assert ["Undetermined_S0_L001_R1_001.fastq.gz", "Sample23_S3_L001_R1_001.fastq.gz",
"sampletest_S4_L001_R1_001.fastq.gz", "Sample1_S1_L001_R1_001.fastq.gz",
"SampleA_S2_L001_R1_001.fastq.gz"].toSet() == fastq_files.toSet(): \
"Output directory should contain the expected FASTQ files"
fastq_files.each{
assert it.length() != 0: "Expected FASTQ file to not be empty"
}
}
}
workflow test_bases2fastq {
output_ch = Channel.fromList([
[
input: "http://element-public-data.s3.amazonaws.com/bases2fastq-share/bases2fastq-v2/20230404-bases2fastq-sim-151-151-9-9.tar.gz",
publish_dir: "output_dir/",
]
])
| map { state -> [ "run", state ] }
| demultiplex.run(
toState: { id, output, state ->
output + [ orig_input: state.input ] }
)
| view { output ->
assert output.size() == 2 : "outputs should contain two elements; [id, file]"
"Output: $output"
}
| map {id, state ->
assert state.output.isDirectory(): "Expected bases2fastq output to be a directory"
assert state.output_falco.isDirectory(): "Expected falco output to be a directory"
assert state.output_multiqc.isFile(): "Expected multiQC output to be a file"
}
}

View File

@@ -0,0 +1,421 @@
name: "bases2fastq"
version: "v0.3.0"
authors:
- name: "Dries Schaumont"
roles:
- "author"
- "maintainer"
info:
links:
email: "dries@data-intuitive.com"
github: "DriesSchaumont"
orcid: "0000-0002-4389-0440"
linkedin: "dries-schaumont"
organizations:
- name: "Data Intuitive"
href: "https://www.data-intuitive.com"
role: "Data Scientist"
argument_groups:
- name: "Input"
arguments:
- type: "file"
name: "--analysis_directory"
description: "Location of analysis directory"
info: null
example:
- "input"
must_exist: true
create_parent: true
required: true
direction: "input"
multiple: false
multiple_sep: ";"
- type: "file"
name: "--run_manifest"
alternatives:
- "-r"
description: "Location of run manifest to use instead of default RunManifest.csv\
\ found in analysis directory"
info: null
must_exist: true
create_parent: true
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- name: "Output"
arguments:
- type: "file"
name: "--output_directory"
alternatives:
- "-o"
description: "Location to save output fastqs"
info: null
example:
- "fastq_dir"
must_exist: true
create_parent: true
required: true
direction: "output"
multiple: false
multiple_sep: ";"
- type: "file"
name: "--report"
description: "Output location for the HTML report"
info: null
must_exist: true
create_parent: true
required: false
direction: "output"
multiple: false
multiple_sep: ";"
- type: "file"
name: "--logs"
description: "Directory containing log files"
info: null
example:
- "logs_dir"
must_exist: true
create_parent: true
required: false
direction: "output"
multiple: false
multiple_sep: ";"
- name: "Arguments"
arguments:
- type: "string"
name: "--chemistry_version"
description: "Run parameters override, chemistry version."
info: null
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- type: "boolean_true"
name: "--demux_only"
alternatives:
- "-d"
description: "Generate demux files and indexing stats without generating FASTQ\n"
info: null
direction: "input"
- type: "boolean_true"
name: "--detect_adapters"
description: "Detect adapters sequences, overriding any sequences present in run\
\ manifest.\n"
info: null
direction: "input"
- type: "boolean_true"
name: "--error_on_missing"
description: "Terminate execution for a missing file (by default, missing files\
\ are\nskipped and execution continues). Also set by --strict.\n"
info: null
direction: "input"
- type: "string"
name: "--exclude_tile"
alternatives:
- "-e"
description: "Regex matching tile names to exclude. This flag can be specified\
\ multiple times. (e.g. L1.*C0[23]S.)\n"
info: null
required: false
direction: "input"
multiple: true
multiple_sep: ";"
- type: "string"
name: "--filter_mask"
description: "Run parameters override, custom pass filter mask.\n"
info: null
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- type: "string"
name: "--flowcell_id"
description: "Run parameters override, flowcell ID.\n"
info: null
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- type: "boolean_true"
name: "--force_index_orientation"
description: "Do not attempt to find orientation for I1/I2 reads (reverse complement).\n\
Use orientation given in run manifest.\n"
info: null
direction: "input"
- type: "boolean_true"
name: "--group_fastq"
description: "Group all FASTQ/stats/metrics for a project are in the project folder.\n"
info: null
direction: "input"
- type: "integer"
name: "--i1_cycles"
description: "Run parameters override, I1 cycles.\n"
info: null
required: false
min: 1
direction: "input"
multiple: false
multiple_sep: ";"
- type: "integer"
name: "--i2_cycles"
description: "Run parameters override, I2 cycles\n"
info: null
required: false
min: 1
direction: "input"
multiple: false
multiple_sep: ";"
- type: "string"
name: "--include_tile"
alternatives:
- "-i"
description: "Regex matching tile names to include. This flag\ncan be specified\
\ multiple times. (e.g. L1.*C0[23]S.)\n"
info: null
required: false
direction: "input"
multiple: true
multiple_sep: ";"
- type: "string"
name: "--kit_configuration"
description: "Run parameters override, kit configuration.\n"
info: null
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- type: "boolean_true"
name: "--legacy_fastq"
description: "Legacy naming for FASTQ files (e.g. SampleName_S1_L001_R1_001.fastq.gz)\n"
info: null
direction: "input"
- type: "string"
name: "--log_level"
alternatives:
- "-l"
description: "Severity level for logging.\n"
info: null
example:
- "INFO"
required: false
choices:
- "DEBUG"
- "INFO"
- "WARNING"
- "ERROR"
direction: "input"
multiple: false
multiple_sep: ";"
- type: "boolean_true"
name: "--no_error_on_invalid"
description: "Skip invalid files and continue execution. Overridden by --strict\
\ options\n"
info: null
direction: "input"
- type: "boolean_true"
name: "--no_projects"
description: "Disable project directories\n"
info: null
direction: "input"
- type: "integer"
name: "--num_unassigned"
description: "Max Number of unassigned sequences to report.\n"
info: null
example:
- 30
required: false
min: 0
max: 1000
direction: "input"
multiple: false
multiple_sep: ";"
- type: "string"
name: "--preparation_workflow"
description: "Run parameters override, preparation workflow. \n"
info: null
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- type: "boolean_true"
name: "--qc_only"
description: "Quickly generate run stats for single tile without generating FASTQ.\n\
Use --include_tile/--exclude_tile to define custom tile set.\n"
info: null
direction: "input"
- type: "integer"
name: "--r1_cycles"
description: "Run parameters override, R1 cycles.\n"
info: null
required: false
min: 1
direction: "input"
multiple: false
multiple_sep: ";"
- type: "integer"
name: "--r2_cycles"
description: "Run parameters override, R2 cycles.\n"
info: null
required: false
min: 1
direction: "input"
multiple: false
multiple_sep: ";"
- type: "boolean_true"
name: "--split_lanes"
description: "Split FASTQ files by lane.\n"
info: null
direction: "input"
- type: "boolean_true"
name: "--strict"
description: "In strict mode any invalid or missing input file will terminate\
\ execution \n(overrides no_error_on_invalid and sets --error_on_missing)\n"
info: null
direction: "input"
resources:
- type: "bash_script"
path: "script.sh"
is_executable: true
description: "Bases2Fastq demultiplexes sequencing data generated by Element Biosciences\
\ instruments and converts base calls into FASTQ files.\n"
test_resources:
- type: "bash_script"
path: "test.sh"
is_executable: true
info: null
status: "enabled"
requirements:
commands:
- "ps"
keywords:
- "demultiplex"
- "fastq"
- "demux"
- "Element Biosciences"
license: "Proprietairy"
links:
repository: "https://github.com/viash-hub/biobox"
documentation: "https://docs.elembio.io/docs/bases2fastq/introduction/"
runners:
- type: "executable"
id: "executable"
docker_setup_strategy: "ifneedbepullelsecachedbuild"
- type: "nextflow"
id: "nextflow"
directives:
tag: "$id"
auto:
simplifyInput: true
simplifyOutput: false
transcript: false
publish: false
config:
labels:
mem1gb: "memory = 1000000000.B"
mem2gb: "memory = 2000000000.B"
mem5gb: "memory = 5000000000.B"
mem10gb: "memory = 10000000000.B"
mem20gb: "memory = 20000000000.B"
mem50gb: "memory = 50000000000.B"
mem100gb: "memory = 100000000000.B"
mem200gb: "memory = 200000000000.B"
mem500gb: "memory = 500000000000.B"
mem1tb: "memory = 1000000000000.B"
mem2tb: "memory = 2000000000000.B"
mem5tb: "memory = 5000000000000.B"
mem10tb: "memory = 10000000000000.B"
mem20tb: "memory = 20000000000000.B"
mem50tb: "memory = 50000000000000.B"
mem100tb: "memory = 100000000000000.B"
mem200tb: "memory = 200000000000000.B"
mem500tb: "memory = 500000000000000.B"
mem1gib: "memory = 1073741824.B"
mem2gib: "memory = 2147483648.B"
mem4gib: "memory = 4294967296.B"
mem8gib: "memory = 8589934592.B"
mem16gib: "memory = 17179869184.B"
mem32gib: "memory = 34359738368.B"
mem64gib: "memory = 68719476736.B"
mem128gib: "memory = 137438953472.B"
mem256gib: "memory = 274877906944.B"
mem512gib: "memory = 549755813888.B"
mem1tib: "memory = 1099511627776.B"
mem2tib: "memory = 2199023255552.B"
mem4tib: "memory = 4398046511104.B"
mem8tib: "memory = 8796093022208.B"
mem16tib: "memory = 17592186044416.B"
mem32tib: "memory = 35184372088832.B"
mem64tib: "memory = 70368744177664.B"
mem128tib: "memory = 140737488355328.B"
mem256tib: "memory = 281474976710656.B"
mem512tib: "memory = 562949953421312.B"
cpu1: "cpus = 1"
cpu2: "cpus = 2"
cpu5: "cpus = 5"
cpu10: "cpus = 10"
cpu20: "cpus = 20"
cpu50: "cpus = 50"
cpu100: "cpus = 100"
cpu200: "cpus = 200"
cpu500: "cpus = 500"
cpu1000: "cpus = 1000"
debug: false
container: "docker"
engines:
- type: "docker"
id: "docker"
image: "elembio/bases2fastq:2.1.0"
target_registry: "images.viash-hub.com"
target_tag: "v0.3.0"
namespace_separator: "/"
setup:
- type: "apt"
packages:
- "procps"
- "tree"
interactive: false
- type: "docker"
run:
- "echo \"bases2fastq: $(bases2fastq --version | cut -d' ' -f3)\" > /var/software_versions.txt\n"
test_setup:
- type: "apt"
packages:
- "curl"
interactive: false
entrypoint: []
cmd: null
- type: "native"
id: "native"
build_info:
config: "src/bases2fastq/config.vsh.yaml"
runner: "nextflow"
engine: "docker|native"
output: "target/nextflow/bases2fastq"
executable: "target/nextflow/bases2fastq/main.nf"
viash_version: "0.9.0"
git_commit: "d86bd5cf62104af02caa852aacd352b1aa97ed60"
git_remote: "https://x-access-token:ghs_EwAUAMYJ0K4VBHlAEMs4ZP2OyQYqJM0PSfEO@github.com/viash-hub/biobox"
git_tag: "v0.2.0-29-gd86bd5c"
package_config:
name: "biobox"
version: "v0.3.0"
description: "A collection of bioinformatics tools for working with sequence data.\n"
info: null
viash_version: "0.9.0"
source: "src"
target: "target"
config_mods:
- ".requirements.commands := ['ps']\n"
- ".engines += { type: \"native\" }"
- ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'"
- ".engines[.type == 'docker'].target_tag := 'v0.3.0'"
keywords:
- "bioinformatics"
- "modules"
- "sequencing"
license: "MIT"
organization: "vsh"
links:
repository: "https://github.com/viash-hub/biobox"
issue_tracker: "https://github.com/viash-hub/biobox/issues"

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,126 @@
manifest {
name = 'bases2fastq'
mainScript = 'main.nf'
nextflowVersion = '!>=20.12.1-edge'
version = 'v0.3.0'
description = 'Bases2Fastq demultiplexes sequencing data generated by Element Biosciences instruments and converts base calls into FASTQ files.\n'
author = 'Dries Schaumont'
}
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 }
}

View File

@@ -0,0 +1,394 @@
{
"$schema": "http://json-schema.org/draft-07/schema",
"title": "bases2fastq",
"description": "Bases2Fastq demultiplexes sequencing data generated by Element Biosciences instruments and converts base calls into FASTQ files.\n",
"type": "object",
"definitions": {
"arguments" : {
"title": "Arguments",
"type": "object",
"description": "No description",
"properties": {
"chemistry_version": {
"type":
"string",
"description": "Type: `string`. Run parameters override, chemistry version",
"help_text": "Type: `string`. Run parameters override, chemistry version."
}
,
"demux_only": {
"type":
"boolean",
"description": "Type: `boolean_true`, default: `false`. Generate demux files and indexing stats without generating FASTQ\n",
"help_text": "Type: `boolean_true`, default: `false`. Generate demux files and indexing stats without generating FASTQ\n"
,
"default":false
}
,
"detect_adapters": {
"type":
"boolean",
"description": "Type: `boolean_true`, default: `false`. Detect adapters sequences, overriding any sequences present in run manifest",
"help_text": "Type: `boolean_true`, default: `false`. Detect adapters sequences, overriding any sequences present in run manifest.\n"
,
"default":false
}
,
"error_on_missing": {
"type":
"boolean",
"description": "Type: `boolean_true`, default: `false`. Terminate execution for a missing file (by default, missing files are\nskipped and execution continues)",
"help_text": "Type: `boolean_true`, default: `false`. Terminate execution for a missing file (by default, missing files are\nskipped and execution continues). Also set by --strict.\n"
,
"default":false
}
,
"exclude_tile": {
"type":
"string",
"description": "Type: List of `string`, multiple_sep: `\";\"`. Regex matching tile names to exclude",
"help_text": "Type: List of `string`, multiple_sep: `\";\"`. Regex matching tile names to exclude. This flag can be specified multiple times. (e.g. L1.*C0[23]S.)\n"
}
,
"filter_mask": {
"type":
"string",
"description": "Type: `string`. Run parameters override, custom pass filter mask",
"help_text": "Type: `string`. Run parameters override, custom pass filter mask.\n"
}
,
"flowcell_id": {
"type":
"string",
"description": "Type: `string`. Run parameters override, flowcell ID",
"help_text": "Type: `string`. Run parameters override, flowcell ID.\n"
}
,
"force_index_orientation": {
"type":
"boolean",
"description": "Type: `boolean_true`, default: `false`. Do not attempt to find orientation for I1/I2 reads (reverse complement)",
"help_text": "Type: `boolean_true`, default: `false`. Do not attempt to find orientation for I1/I2 reads (reverse complement).\nUse orientation given in run manifest.\n"
,
"default":false
}
,
"group_fastq": {
"type":
"boolean",
"description": "Type: `boolean_true`, default: `false`. Group all FASTQ/stats/metrics for a project are in the project folder",
"help_text": "Type: `boolean_true`, default: `false`. Group all FASTQ/stats/metrics for a project are in the project folder.\n"
,
"default":false
}
,
"i1_cycles": {
"type":
"integer",
"description": "Type: `integer`. Run parameters override, I1 cycles",
"help_text": "Type: `integer`. Run parameters override, I1 cycles.\n"
}
,
"i2_cycles": {
"type":
"integer",
"description": "Type: `integer`. Run parameters override, I2 cycles\n",
"help_text": "Type: `integer`. Run parameters override, I2 cycles\n"
}
,
"include_tile": {
"type":
"string",
"description": "Type: List of `string`, multiple_sep: `\";\"`. Regex matching tile names to include",
"help_text": "Type: List of `string`, multiple_sep: `\";\"`. Regex matching tile names to include. This flag\ncan be specified multiple times. (e.g. L1.*C0[23]S.)\n"
}
,
"kit_configuration": {
"type":
"string",
"description": "Type: `string`. Run parameters override, kit configuration",
"help_text": "Type: `string`. Run parameters override, kit configuration.\n"
}
,
"legacy_fastq": {
"type":
"boolean",
"description": "Type: `boolean_true`, default: `false`. Legacy naming for FASTQ files (e",
"help_text": "Type: `boolean_true`, default: `false`. Legacy naming for FASTQ files (e.g. SampleName_S1_L001_R1_001.fastq.gz)\n"
,
"default":false
}
,
"log_level": {
"type":
"string",
"description": "Type: `string`, example: `INFO`, choices: ``DEBUG`, `INFO`, `WARNING`, `ERROR``. Severity level for logging",
"help_text": "Type: `string`, example: `INFO`, choices: ``DEBUG`, `INFO`, `WARNING`, `ERROR``. Severity level for logging.\n",
"enum": ["DEBUG", "INFO", "WARNING", "ERROR"]
}
,
"no_error_on_invalid": {
"type":
"boolean",
"description": "Type: `boolean_true`, default: `false`. Skip invalid files and continue execution",
"help_text": "Type: `boolean_true`, default: `false`. Skip invalid files and continue execution. Overridden by --strict options\n"
,
"default":false
}
,
"no_projects": {
"type":
"boolean",
"description": "Type: `boolean_true`, default: `false`. Disable project directories\n",
"help_text": "Type: `boolean_true`, default: `false`. Disable project directories\n"
,
"default":false
}
,
"num_unassigned": {
"type":
"integer",
"description": "Type: `integer`, example: `30`. Max Number of unassigned sequences to report",
"help_text": "Type: `integer`, example: `30`. Max Number of unassigned sequences to report.\n"
}
,
"preparation_workflow": {
"type":
"string",
"description": "Type: `string`. Run parameters override, preparation workflow",
"help_text": "Type: `string`. Run parameters override, preparation workflow. \n"
}
,
"qc_only": {
"type":
"boolean",
"description": "Type: `boolean_true`, default: `false`. Quickly generate run stats for single tile without generating FASTQ",
"help_text": "Type: `boolean_true`, default: `false`. Quickly generate run stats for single tile without generating FASTQ.\nUse --include_tile/--exclude_tile to define custom tile set.\n"
,
"default":false
}
,
"r1_cycles": {
"type":
"integer",
"description": "Type: `integer`. Run parameters override, R1 cycles",
"help_text": "Type: `integer`. Run parameters override, R1 cycles.\n"
}
,
"r2_cycles": {
"type":
"integer",
"description": "Type: `integer`. Run parameters override, R2 cycles",
"help_text": "Type: `integer`. Run parameters override, R2 cycles.\n"
}
,
"split_lanes": {
"type":
"boolean",
"description": "Type: `boolean_true`, default: `false`. Split FASTQ files by lane",
"help_text": "Type: `boolean_true`, default: `false`. Split FASTQ files by lane.\n"
,
"default":false
}
,
"strict": {
"type":
"boolean",
"description": "Type: `boolean_true`, default: `false`. In strict mode any invalid or missing input file will terminate execution \n(overrides no_error_on_invalid and sets --error_on_missing)\n",
"help_text": "Type: `boolean_true`, default: `false`. In strict mode any invalid or missing input file will terminate execution \n(overrides no_error_on_invalid and sets --error_on_missing)\n"
,
"default":false
}
}
},
"input" : {
"title": "Input",
"type": "object",
"description": "No description",
"properties": {
"analysis_directory": {
"type":
"string",
"description": "Type: `file`, required, example: `input`. Location of analysis directory",
"help_text": "Type: `file`, required, example: `input`. Location of analysis directory"
}
,
"run_manifest": {
"type":
"string",
"description": "Type: `file`. Location of run manifest to use instead of default RunManifest",
"help_text": "Type: `file`. Location of run manifest to use instead of default RunManifest.csv found in analysis directory"
}
}
},
"output" : {
"title": "Output",
"type": "object",
"description": "No description",
"properties": {
"output_directory": {
"type":
"string",
"description": "Type: `file`, required, default: `$id.$key.output_directory.output_directory`, example: `fastq_dir`. Location to save output fastqs",
"help_text": "Type: `file`, required, default: `$id.$key.output_directory.output_directory`, example: `fastq_dir`. Location to save output fastqs"
,
"default":"$id.$key.output_directory.output_directory"
}
,
"report": {
"type":
"string",
"description": "Type: `file`, default: `$id.$key.report.report`. Output location for the HTML report",
"help_text": "Type: `file`, default: `$id.$key.report.report`. Output location for the HTML report"
,
"default":"$id.$key.report.report"
}
,
"logs": {
"type":
"string",
"description": "Type: `file`, default: `$id.$key.logs.logs`, example: `logs_dir`. Directory containing log files",
"help_text": "Type: `file`, default: `$id.$key.logs.logs`, example: `logs_dir`. Directory containing log files"
,
"default":"$id.$key.logs.logs"
}
}
},
"nextflow input-output arguments" : {
"title": "Nextflow input-output arguments",
"type": "object",
"description": "Input/output parameters for Nextflow itself. Please note that both publishDir and publish_dir are supported but at least one has to be configured.",
"properties": {
"publish_dir": {
"type":
"string",
"description": "Type: `string`, required, example: `output/`. Path to an output directory",
"help_text": "Type: `string`, required, example: `output/`. Path to an output directory."
}
,
"param_list": {
"type":
"string",
"description": "Type: `string`, example: `my_params.yaml`. Allows inputting multiple parameter sets to initialise a Nextflow channel",
"help_text": "Type: `string`, example: `my_params.yaml`. Allows inputting multiple parameter sets to initialise a Nextflow channel. A `param_list` can either be a list of maps, a csv file, a json file, a yaml file, or simply a yaml blob.\n\n* A list of maps (as-is) where the keys of each map corresponds to the arguments of the pipeline. Example: in a `nextflow.config` file: `param_list: [ [\u0027id\u0027: \u0027foo\u0027, \u0027input\u0027: \u0027foo.txt\u0027], [\u0027id\u0027: \u0027bar\u0027, \u0027input\u0027: \u0027bar.txt\u0027] ]`.\n* A csv file should have column names which correspond to the different arguments of this pipeline. Example: `--param_list data.csv` with columns `id,input`.\n* A json or a yaml file should be a list of maps, each of which has keys corresponding to the arguments of the pipeline. Example: `--param_list data.json` with contents `[ {\u0027id\u0027: \u0027foo\u0027, \u0027input\u0027: \u0027foo.txt\u0027}, {\u0027id\u0027: \u0027bar\u0027, \u0027input\u0027: \u0027bar.txt\u0027} ]`.\n* A yaml blob can also be passed directly as a string. Example: `--param_list \"[ {\u0027id\u0027: \u0027foo\u0027, \u0027input\u0027: \u0027foo.txt\u0027}, {\u0027id\u0027: \u0027bar\u0027, \u0027input\u0027: \u0027bar.txt\u0027} ]\"`.\n\nWhen passing a csv, json or yaml file, relative path names are relativized to the location of the parameter file. No relativation is performed when `param_list` is a list of maps (as-is) or a yaml blob.",
"hidden": true
}
}
}
},
"allOf": [
{
"$ref": "#/definitions/arguments"
},
{
"$ref": "#/definitions/input"
},
{
"$ref": "#/definitions/output"
},
{
"$ref": "#/definitions/nextflow input-output arguments"
}
]
}

View File

@@ -1,5 +1,5 @@
name: "bcl_convert"
version: "v0.2.0"
version: "v0.3.0"
authors:
- name: "Toni Verbeiren"
roles:
@@ -386,7 +386,7 @@ engines:
id: "docker"
image: "debian:trixie-slim"
target_registry: "images.viash-hub.com"
target_tag: "v0.2.0"
target_tag: "v0.3.0"
namespace_separator: "/"
setup:
- type: "apt"
@@ -418,11 +418,12 @@ build_info:
output: "target/nextflow/bcl_convert"
executable: "target/nextflow/bcl_convert/main.nf"
viash_version: "0.9.0"
git_commit: "7e530218844c373048bc33de58f021b6460642e5"
git_remote: "https://x-access-token:ghs_kiUBq39QrAlnG6IaeAcTcXhllzqpOV4LDB3e@github.com/viash-hub/biobox"
git_commit: "d86bd5cf62104af02caa852aacd352b1aa97ed60"
git_remote: "https://x-access-token:ghs_EwAUAMYJ0K4VBHlAEMs4ZP2OyQYqJM0PSfEO@github.com/viash-hub/biobox"
git_tag: "v0.2.0-29-gd86bd5c"
package_config:
name: "biobox"
version: "v0.2.0"
version: "v0.3.0"
description: "A collection of bioinformatics tools for working with sequence data.\n"
info: null
viash_version: "0.9.0"
@@ -432,7 +433,7 @@ package_config:
- ".requirements.commands := ['ps']\n"
- ".engines += { type: \"native\" }"
- ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'"
- ".engines[.type == 'docker'].target_tag := 'v0.2.0'"
- ".engines[.type == 'docker'].target_tag := 'v0.3.0'"
keywords:
- "bioinformatics"
- "modules"

View File

@@ -1,4 +1,4 @@
// bcl_convert v0.2.0
// bcl_convert v0.3.0
//
// This wrapper script is auto-generated by viash 0.9.0 and is thus a derivative
// work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data
@@ -2809,7 +2809,7 @@ meta = [
"resources_dir": moduleDir.toRealPath().normalize(),
"config": processConfig(readJsonBlob('''{
"name" : "bcl_convert",
"version" : "v0.2.0",
"version" : "v0.3.0",
"authors" : [
{
"name" : "Toni Verbeiren",
@@ -3289,7 +3289,7 @@ meta = [
"id" : "docker",
"image" : "debian:trixie-slim",
"target_registry" : "images.viash-hub.com",
"target_tag" : "v0.2.0",
"target_tag" : "v0.3.0",
"namespace_separator" : "/",
"setup" : [
{
@@ -3329,12 +3329,13 @@ meta = [
"engine" : "docker|native",
"output" : "target/nextflow/bcl_convert",
"viash_version" : "0.9.0",
"git_commit" : "7e530218844c373048bc33de58f021b6460642e5",
"git_remote" : "https://x-access-token:ghs_kiUBq39QrAlnG6IaeAcTcXhllzqpOV4LDB3e@github.com/viash-hub/biobox"
"git_commit" : "d86bd5cf62104af02caa852aacd352b1aa97ed60",
"git_remote" : "https://x-access-token:ghs_EwAUAMYJ0K4VBHlAEMs4ZP2OyQYqJM0PSfEO@github.com/viash-hub/biobox",
"git_tag" : "v0.2.0-29-gd86bd5c"
},
"package_config" : {
"name" : "biobox",
"version" : "v0.2.0",
"version" : "v0.3.0",
"description" : "A collection of bioinformatics tools for working with sequence data.\n",
"viash_version" : "0.9.0",
"source" : "src",
@@ -3343,7 +3344,7 @@ meta = [
".requirements.commands := ['ps']\n",
".engines += { type: \\"native\\" }",
".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'",
".engines[.type == 'docker'].target_tag := 'v0.2.0'"
".engines[.type == 'docker'].target_tag := 'v0.3.0'"
],
"keywords" : [
"bioinformatics",
@@ -3815,7 +3816,7 @@ meta["defaults"] = [
"container" : {
"registry" : "images.viash-hub.com",
"image" : "vsh/biobox/bcl_convert",
"tag" : "v0.2.0"
"tag" : "v0.3.0"
},
"tag" : "$id"
}'''),

View File

@@ -2,7 +2,7 @@ manifest {
name = 'bcl_convert'
mainScript = 'main.nf'
nextflowVersion = '!>=20.12.1-edge'
version = 'v0.2.0'
version = 'v0.3.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'
author = 'Toni Verbeiren, Dorien Roosen'
}

View File

@@ -1,5 +1,5 @@
name: "falco"
version: "v0.2.0"
version: "v0.3.0"
authors:
- name: "Toni Verbeiren"
roles:
@@ -101,7 +101,7 @@ argument_groups:
info: null
direction: "input"
- type: "boolean_true"
name: "--reverse_complliment"
name: "--reverse_complement"
alternatives:
- "-r"
description: "[Falco only] The input is a \nreverse-complement. All modules will\
@@ -287,7 +287,7 @@ engines:
id: "docker"
image: "debian:trixie-slim"
target_registry: "images.viash-hub.com"
target_tag: "v0.2.0"
target_tag: "v0.3.0"
namespace_separator: "/"
setup:
- type: "apt"
@@ -317,11 +317,12 @@ build_info:
output: "target/nextflow/falco"
executable: "target/nextflow/falco/main.nf"
viash_version: "0.9.0"
git_commit: "7e530218844c373048bc33de58f021b6460642e5"
git_remote: "https://x-access-token:ghs_kiUBq39QrAlnG6IaeAcTcXhllzqpOV4LDB3e@github.com/viash-hub/biobox"
git_commit: "d86bd5cf62104af02caa852aacd352b1aa97ed60"
git_remote: "https://x-access-token:ghs_EwAUAMYJ0K4VBHlAEMs4ZP2OyQYqJM0PSfEO@github.com/viash-hub/biobox"
git_tag: "v0.2.0-29-gd86bd5c"
package_config:
name: "biobox"
version: "v0.2.0"
version: "v0.3.0"
description: "A collection of bioinformatics tools for working with sequence data.\n"
info: null
viash_version: "0.9.0"
@@ -331,7 +332,7 @@ package_config:
- ".requirements.commands := ['ps']\n"
- ".engines += { type: \"native\" }"
- ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'"
- ".engines[.type == 'docker'].target_tag := 'v0.2.0'"
- ".engines[.type == 'docker'].target_tag := 'v0.3.0'"
keywords:
- "bioinformatics"
- "modules"

View File

@@ -1,4 +1,4 @@
// falco v0.2.0
// falco v0.3.0
//
// This wrapper script is auto-generated by viash 0.9.0 and is thus a derivative
// work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data
@@ -2808,7 +2808,7 @@ meta = [
"resources_dir": moduleDir.toRealPath().normalize(),
"config": processConfig(readJsonBlob('''{
"name" : "falco",
"version" : "v0.2.0",
"version" : "v0.3.0",
"authors" : [
{
"name" : "Toni Verbeiren",
@@ -2919,7 +2919,7 @@ meta = [
},
{
"type" : "boolean_true",
"name" : "--reverse_complliment",
"name" : "--reverse_complement",
"alternatives" : [
"-r"
],
@@ -3131,7 +3131,7 @@ meta = [
"id" : "docker",
"image" : "debian:trixie-slim",
"target_registry" : "images.viash-hub.com",
"target_tag" : "v0.2.0",
"target_tag" : "v0.3.0",
"namespace_separator" : "/",
"setup" : [
{
@@ -3170,12 +3170,13 @@ meta = [
"engine" : "docker|native",
"output" : "target/nextflow/falco",
"viash_version" : "0.9.0",
"git_commit" : "7e530218844c373048bc33de58f021b6460642e5",
"git_remote" : "https://x-access-token:ghs_kiUBq39QrAlnG6IaeAcTcXhllzqpOV4LDB3e@github.com/viash-hub/biobox"
"git_commit" : "d86bd5cf62104af02caa852aacd352b1aa97ed60",
"git_remote" : "https://x-access-token:ghs_EwAUAMYJ0K4VBHlAEMs4ZP2OyQYqJM0PSfEO@github.com/viash-hub/biobox",
"git_tag" : "v0.2.0-29-gd86bd5c"
},
"package_config" : {
"name" : "biobox",
"version" : "v0.2.0",
"version" : "v0.3.0",
"description" : "A collection of bioinformatics tools for working with sequence data.\n",
"viash_version" : "0.9.0",
"source" : "src",
@@ -3184,7 +3185,7 @@ meta = [
".requirements.commands := ['ps']\n",
".engines += { type: \\"native\\" }",
".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'",
".engines[.type == 'docker'].target_tag := 'v0.2.0'"
".engines[.type == 'docker'].target_tag := 'v0.3.0'"
],
"keywords" : [
"bioinformatics",
@@ -3219,7 +3220,7 @@ $( if [ ! -z ${VIASH_PAR_ADAPTERS+x} ]; then echo "${VIASH_PAR_ADAPTERS}" | sed
$( if [ ! -z ${VIASH_PAR_LIMITS+x} ]; then echo "${VIASH_PAR_LIMITS}" | sed "s#'#'\\"'\\"'#g;s#.*#par_limits='&'#" ; else echo "# par_limits="; fi )
$( if [ ! -z ${VIASH_PAR_SUBSAMPLE+x} ]; then echo "${VIASH_PAR_SUBSAMPLE}" | sed "s#'#'\\"'\\"'#g;s#.*#par_subsample='&'#" ; else echo "# par_subsample="; fi )
$( if [ ! -z ${VIASH_PAR_BISULFITE+x} ]; then echo "${VIASH_PAR_BISULFITE}" | sed "s#'#'\\"'\\"'#g;s#.*#par_bisulfite='&'#" ; else echo "# par_bisulfite="; fi )
$( if [ ! -z ${VIASH_PAR_REVERSE_COMPLLIMENT+x} ]; then echo "${VIASH_PAR_REVERSE_COMPLLIMENT}" | sed "s#'#'\\"'\\"'#g;s#.*#par_reverse_complliment='&'#" ; else echo "# par_reverse_complliment="; fi )
$( if [ ! -z ${VIASH_PAR_REVERSE_COMPLEMENT+x} ]; then echo "${VIASH_PAR_REVERSE_COMPLEMENT}" | sed "s#'#'\\"'\\"'#g;s#.*#par_reverse_complement='&'#" ; else echo "# par_reverse_complement="; fi )
$( if [ ! -z ${VIASH_PAR_OUTDIR+x} ]; then echo "${VIASH_PAR_OUTDIR}" | sed "s#'#'\\"'\\"'#g;s#.*#par_outdir='&'#" ; else echo "# par_outdir="; fi )
$( if [ ! -z ${VIASH_PAR_FORMAT+x} ]; then echo "${VIASH_PAR_FORMAT}" | sed "s#'#'\\"'\\"'#g;s#.*#par_format='&'#" ; else echo "# par_format="; fi )
$( if [ ! -z ${VIASH_PAR_DATA_FILENAME+x} ]; then echo "${VIASH_PAR_DATA_FILENAME}" | sed "s#'#'\\"'\\"'#g;s#.*#par_data_filename='&'#" ; else echo "# par_data_filename="; fi )
@@ -3251,7 +3252,7 @@ set -eo pipefail
[[ "\\$par_nogroup" == "false" ]] && unset par_nogroup
[[ "\\$par_bisulfite" == "false" ]] && unset par_bisulfite
[[ "\\$par_reverse_compliment" == "false" ]] && unset par_reverse_compliment
[[ "\\$par_reverse_complement" == "false" ]] && unset par_reverse_complement
IFS=";" read -ra input <<< \\$par_input
@@ -3262,7 +3263,7 @@ IFS=";" read -ra input <<< \\$par_input
\\${par_limits:+--limits "\\$par_limits"} \\\\
\\${par_subsample:+-subsample \\$par_subsample} \\\\
\\${par_bisulfite:+-bisulfite} \\\\
\\${par_reverse_compliment:+-reverse-compliment} \\\\
\\${par_reverse_complement:+-reverse-complement} \\\\
\\${par_outdir:+--outdir "\\$par_outdir"} \\\\
\\${par_format:+--format "\\$par_format"} \\\\
\\${par_data_filename:+-data-filename "\\$par_data_filename"} \\\\
@@ -3630,7 +3631,7 @@ meta["defaults"] = [
"container" : {
"registry" : "images.viash-hub.com",
"image" : "vsh/biobox/falco",
"tag" : "v0.2.0"
"tag" : "v0.3.0"
},
"tag" : "$id"
}'''),

View File

@@ -2,7 +2,7 @@ manifest {
name = 'falco'
mainScript = 'main.nf'
nextflowVersion = '!>=20.12.1-edge'
version = 'v0.2.0'
version = 'v0.3.0'
description = 'A C++ drop-in replacement of FastQC to assess the quality of sequence read data'
author = 'Toni Verbeiren'
}

View File

@@ -40,7 +40,7 @@
"description": "Type: `boolean_true`, default: `false`. Disable grouping of bases for reads \u003e50bp",
"help_text": "Type: `boolean_true`, default: `false`. Disable grouping of bases for reads \u003e50bp. \nAll reports will show data for every base in \nthe read. WARNING: When using this option, \nyour plots may end up a ridiculous size. You \nhave been warned!\n"
,
"default": "False"
"default":false
}
@@ -91,18 +91,18 @@
"description": "Type: `boolean_true`, default: `false`. [Falco only] reads are whole genome \nbisulfite sequencing, and more Ts and fewer \nCs are therefore expected and will be \naccounted for in base content",
"help_text": "Type: `boolean_true`, default: `false`. [Falco only] reads are whole genome \nbisulfite sequencing, and more Ts and fewer \nCs are therefore expected and will be \naccounted for in base content.\n"
,
"default": "False"
"default":false
}
,
"reverse_complliment": {
"reverse_complement": {
"type":
"boolean",
"description": "Type: `boolean_true`, default: `false`. [Falco only] The input is a \nreverse-complement",
"help_text": "Type: `boolean_true`, default: `false`. [Falco only] The input is a \nreverse-complement. All modules will be \ntested by swapping A/T and C/G\n"
,
"default": "False"
"default":false
}

View File

@@ -1,5 +1,5 @@
name: "multiqc"
version: "v0.2.0"
version: "v0.3.0"
authors:
- name: "Dorien Roosen"
roles:
@@ -433,7 +433,7 @@ engines:
id: "docker"
image: "quay.io/biocontainers/multiqc:1.21--pyhdfd78af_0"
target_registry: "images.viash-hub.com"
target_tag: "v0.2.0"
target_tag: "v0.3.0"
namespace_separator: "/"
setup:
- type: "docker"
@@ -456,11 +456,12 @@ build_info:
output: "target/nextflow/multiqc"
executable: "target/nextflow/multiqc/main.nf"
viash_version: "0.9.0"
git_commit: "7e530218844c373048bc33de58f021b6460642e5"
git_remote: "https://x-access-token:ghs_kiUBq39QrAlnG6IaeAcTcXhllzqpOV4LDB3e@github.com/viash-hub/biobox"
git_commit: "d86bd5cf62104af02caa852aacd352b1aa97ed60"
git_remote: "https://x-access-token:ghs_EwAUAMYJ0K4VBHlAEMs4ZP2OyQYqJM0PSfEO@github.com/viash-hub/biobox"
git_tag: "v0.2.0-29-gd86bd5c"
package_config:
name: "biobox"
version: "v0.2.0"
version: "v0.3.0"
description: "A collection of bioinformatics tools for working with sequence data.\n"
info: null
viash_version: "0.9.0"
@@ -470,7 +471,7 @@ package_config:
- ".requirements.commands := ['ps']\n"
- ".engines += { type: \"native\" }"
- ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'"
- ".engines[.type == 'docker'].target_tag := 'v0.2.0'"
- ".engines[.type == 'docker'].target_tag := 'v0.3.0'"
keywords:
- "bioinformatics"
- "modules"

View File

@@ -1,4 +1,4 @@
// multiqc v0.2.0
// multiqc v0.3.0
//
// This wrapper script is auto-generated by viash 0.9.0 and is thus a derivative
// work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data
@@ -2808,7 +2808,7 @@ meta = [
"resources_dir": moduleDir.toRealPath().normalize(),
"config": processConfig(readJsonBlob('''{
"name" : "multiqc",
"version" : "v0.2.0",
"version" : "v0.3.0",
"authors" : [
{
"name" : "Dorien Roosen",
@@ -3335,7 +3335,7 @@ meta = [
"id" : "docker",
"image" : "quay.io/biocontainers/multiqc:1.21--pyhdfd78af_0",
"target_registry" : "images.viash-hub.com",
"target_tag" : "v0.2.0",
"target_tag" : "v0.3.0",
"namespace_separator" : "/",
"setup" : [
{
@@ -3366,12 +3366,13 @@ meta = [
"engine" : "docker|native",
"output" : "target/nextflow/multiqc",
"viash_version" : "0.9.0",
"git_commit" : "7e530218844c373048bc33de58f021b6460642e5",
"git_remote" : "https://x-access-token:ghs_kiUBq39QrAlnG6IaeAcTcXhllzqpOV4LDB3e@github.com/viash-hub/biobox"
"git_commit" : "d86bd5cf62104af02caa852aacd352b1aa97ed60",
"git_remote" : "https://x-access-token:ghs_EwAUAMYJ0K4VBHlAEMs4ZP2OyQYqJM0PSfEO@github.com/viash-hub/biobox",
"git_tag" : "v0.2.0-29-gd86bd5c"
},
"package_config" : {
"name" : "biobox",
"version" : "v0.2.0",
"version" : "v0.3.0",
"description" : "A collection of bioinformatics tools for working with sequence data.\n",
"viash_version" : "0.9.0",
"source" : "src",
@@ -3380,7 +3381,7 @@ meta = [
".requirements.commands := ['ps']\n",
".engines += { type: \\"native\\" }",
".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'",
".engines[.type == 'docker'].target_tag := 'v0.2.0'"
".engines[.type == 'docker'].target_tag := 'v0.3.0'"
],
"keywords" : [
"bioinformatics",
@@ -3961,7 +3962,7 @@ meta["defaults"] = [
"container" : {
"registry" : "images.viash-hub.com",
"image" : "vsh/biobox/multiqc",
"tag" : "v0.2.0"
"tag" : "v0.3.0"
},
"tag" : "$id"
}'''),

View File

@@ -2,7 +2,7 @@ manifest {
name = 'multiqc'
mainScript = 'main.nf'
nextflowVersion = '!>=20.12.1-edge'
version = 'v0.2.0'
version = 'v0.3.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'
author = 'Dorien Roosen'
}

View File

@@ -123,7 +123,7 @@
"description": "Type: `boolean_true`, default: `false`. Ignore symlinked directories and files",
"help_text": "Type: `boolean_true`, default: `false`. Ignore symlinked directories and files"
,
"default": "False"
"default":false
}
@@ -144,7 +144,7 @@
"description": "Type: `boolean_true`, default: `false`. Prepend directory to sample names to avoid clashing filenames",
"help_text": "Type: `boolean_true`, default: `false`. Prepend directory to sample names to avoid clashing filenames"
,
"default": "False"
"default":false
}
@@ -165,7 +165,7 @@
"description": "Type: `boolean_true`, default: `false`. Do not clean the sample names (leave as full file name)",
"help_text": "Type: `boolean_true`, default: `false`. Do not clean the sample names (leave as full file name)"
,
"default": "False"
"default":false
}
@@ -176,7 +176,7 @@
"description": "Type: `boolean_true`, default: `false`. Use the log filename as the sample name",
"help_text": "Type: `boolean_true`, default: `false`. Use the log filename as the sample name"
,
"default": "False"
"default":false
}
@@ -269,7 +269,7 @@
"description": "Type: `boolean_true`, default: `false`. Add analysis of how long MultiQC takes to run to the report\n",
"help_text": "Type: `boolean_true`, default: `false`. Add analysis of how long MultiQC takes to run to the report\n"
,
"default": "False"
"default":false
}
@@ -290,7 +290,7 @@
"description": "Type: `boolean_true`, default: `false`. Increase output verbosity",
"help_text": "Type: `boolean_true`, default: `false`. Increase output verbosity.\n"
,
"default": "False"
"default":false
}
@@ -301,7 +301,7 @@
"description": "Type: `boolean_true`, default: `false`. Only show log warnings\n",
"help_text": "Type: `boolean_true`, default: `false`. Only show log warnings\n"
,
"default": "False"
"default":false
}
@@ -312,7 +312,7 @@
"description": "Type: `boolean_true`, default: `false`. Don\u0027t catch exceptions, run additional code checks to help development",
"help_text": "Type: `boolean_true`, default: `false`. Don\u0027t catch exceptions, run additional code checks to help development.\n"
,
"default": "False"
"default":false
}
@@ -323,7 +323,7 @@
"description": "Type: `boolean_true`, default: `false`. Development mode",
"help_text": "Type: `boolean_true`, default: `false`. Development mode. Do not compress and minimise JS, export uncompressed plot data.\n"
,
"default": "False"
"default":false
}
@@ -334,7 +334,7 @@
"description": "Type: `boolean_true`, default: `false`. Require all explicitly requested modules to have log files",
"help_text": "Type: `boolean_true`, default: `false`. Require all explicitly requested modules to have log files. If not, MultiQC will exit with an error.\n"
,
"default": "False"
"default":false
}
@@ -345,7 +345,7 @@
"description": "Type: `boolean_true`, default: `false`. Don\u0027t upload generated report to MegaQC, even if MegaQC options are found",
"help_text": "Type: `boolean_true`, default: `false`. Don\u0027t upload generated report to MegaQC, even if MegaQC options are found.\n"
,
"default": "False"
"default":false
}
@@ -356,7 +356,7 @@
"description": "Type: `boolean_true`, default: `false`. Disable coloured log output",
"help_text": "Type: `boolean_true`, default: `false`. Disable coloured log output.\n"
,
"default": "False"
"default":false
}
@@ -387,7 +387,7 @@
"description": "Type: `boolean_true`, default: `false`. Use only flat plots (static images)",
"help_text": "Type: `boolean_true`, default: `false`. Use only flat plots (static images).\n"
,
"default": "False"
"default":false
}
@@ -398,7 +398,7 @@
"description": "Type: `boolean_true`, default: `false`. Use only interactive plots (in-browser Javascript)",
"help_text": "Type: `boolean_true`, default: `false`. Use only interactive plots (in-browser Javascript).\n"
,
"default": "False"
"default":false
}
@@ -409,7 +409,7 @@
"description": "Type: `boolean_true`, default: `false`. Force the parsed data directory to be created",
"help_text": "Type: `boolean_true`, default: `false`. Force the parsed data directory to be created.\n"
,
"default": "False"
"default":false
}
@@ -420,7 +420,7 @@
"description": "Type: `boolean_true`, default: `false`. Prevent the parsed data directory from being created",
"help_text": "Type: `boolean_true`, default: `false`. Prevent the parsed data directory from being created.\n"
,
"default": "False"
"default":false
}
@@ -431,7 +431,7 @@
"description": "Type: `boolean_true`, default: `false`. Compress the data directory",
"help_text": "Type: `boolean_true`, default: `false`. Compress the data directory.\n"
,
"default": "False"
"default":false
}
@@ -454,7 +454,7 @@
"description": "Type: `boolean_true`, default: `false`. Creates PDF report with the \u0027simple\u0027 template",
"help_text": "Type: `boolean_true`, default: `false`. Creates PDF report with the \u0027simple\u0027 template. Requires Pandoc to be installed.\n"
,
"default": "False"
"default":false
}

View File

@@ -141,9 +141,9 @@ 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.0"
git_commit: "5cb13230bf682321226addce896a3015e8864913"
git_remote: "https://x-access-token:ghs_x4A4kChpmjRCoWA3E68PwNsGJxIsF40DBeTf@github.com/viash-hub/demultiplex"
git_tag: "v0.1.1-3-g5cb1323"
git_commit: "6e6be28b85ab619214ae05a017a33498c0dc8890"
git_remote: "https://x-access-token:ghs_iopCikoFK5KlWGbHHLIwAf82AMtbiI0fzew1@github.com/viash-hub/demultiplex"
git_tag: "v0.1.1-5-g6e6be28"
package_config:
name: "demultiplex"
version: "main"

View File

@@ -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/
LABEL org.opencontainers.image.description="Companion container for running component io interop_summary_to_csv"
LABEL org.opencontainers.image.created="2024-11-06T17:42:24Z"
LABEL org.opencontainers.image.created="2024-12-05T10:21:34Z"
LABEL org.opencontainers.image.source="https://github.com/viash-hub/demultiplex"
LABEL org.opencontainers.image.revision="5cb13230bf682321226addce896a3015e8864913"
LABEL org.opencontainers.image.revision="6e6be28b85ab619214ae05a017a33498c0dc8890"
LABEL org.opencontainers.image.version="main"
VIASHDOCKER

View File

@@ -148,9 +148,9 @@ build_info:
output: "target/executable/io/untar"
executable: "target/executable/io/untar/untar"
viash_version: "0.9.0"
git_commit: "5cb13230bf682321226addce896a3015e8864913"
git_remote: "https://x-access-token:ghs_x4A4kChpmjRCoWA3E68PwNsGJxIsF40DBeTf@github.com/viash-hub/demultiplex"
git_tag: "v0.1.1-3-g5cb1323"
git_commit: "6e6be28b85ab619214ae05a017a33498c0dc8890"
git_remote: "https://x-access-token:ghs_iopCikoFK5KlWGbHHLIwAf82AMtbiI0fzew1@github.com/viash-hub/demultiplex"
git_tag: "v0.1.1-5-g6e6be28"
package_config:
name: "demultiplex"
version: "main"

View File

@@ -476,9 +476,9 @@ 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="2024-11-06T17:42:24Z"
LABEL org.opencontainers.image.created="2024-12-05T10:21:34Z"
LABEL org.opencontainers.image.source="https://github.com/viash-hub/demultiplex"
LABEL org.opencontainers.image.revision="5cb13230bf682321226addce896a3015e8864913"
LABEL org.opencontainers.image.revision="6e6be28b85ab619214ae05a017a33498c0dc8890"
LABEL org.opencontainers.image.version="main"
VIASHDOCKER

View File

@@ -19,7 +19,7 @@ argument_groups:
create_parent: true
required: true
direction: "input"
multiple: false
multiple: true
multiple_sep: ";"
- type: "file"
name: "--reverse_input"
@@ -28,7 +28,7 @@ argument_groups:
create_parent: true
required: false
direction: "input"
multiple: false
multiple: true
multiple_sep: ";"
- name: "Output arguments"
arguments:
@@ -139,9 +139,9 @@ build_info:
output: "target/nextflow/dataflow/combine_samples"
executable: "target/nextflow/dataflow/combine_samples/main.nf"
viash_version: "0.9.0"
git_commit: "5cb13230bf682321226addce896a3015e8864913"
git_remote: "https://x-access-token:ghs_x4A4kChpmjRCoWA3E68PwNsGJxIsF40DBeTf@github.com/viash-hub/demultiplex"
git_tag: "v0.1.1-3-g5cb1323"
git_commit: "6e6be28b85ab619214ae05a017a33498c0dc8890"
git_remote: "https://x-access-token:ghs_iopCikoFK5KlWGbHHLIwAf82AMtbiI0fzew1@github.com/viash-hub/demultiplex"
git_tag: "v0.1.1-5-g6e6be28"
package_config:
name: "demultiplex"
version: "main"

View File

@@ -2827,7 +2827,7 @@ meta = [
"create_parent" : true,
"required" : true,
"direction" : "input",
"multiple" : false,
"multiple" : true,
"multiple_sep" : ";"
},
{
@@ -2837,7 +2837,7 @@ meta = [
"create_parent" : true,
"required" : false,
"direction" : "input",
"multiple" : false,
"multiple" : true,
"multiple_sep" : ";"
}
]
@@ -2972,9 +2972,9 @@ meta = [
"engine" : "native|native",
"output" : "target/nextflow/dataflow/combine_samples",
"viash_version" : "0.9.0",
"git_commit" : "5cb13230bf682321226addce896a3015e8864913",
"git_remote" : "https://x-access-token:ghs_x4A4kChpmjRCoWA3E68PwNsGJxIsF40DBeTf@github.com/viash-hub/demultiplex",
"git_tag" : "v0.1.1-3-g5cb1323"
"git_commit" : "6e6be28b85ab619214ae05a017a33498c0dc8890",
"git_remote" : "https://x-access-token:ghs_iopCikoFK5KlWGbHHLIwAf82AMtbiI0fzew1@github.com/viash-hub/demultiplex",
"git_tag" : "v0.1.1-5-g6e6be28"
},
"package_config" : {
"name" : "demultiplex",
@@ -3031,8 +3031,8 @@ workflow run_wf {
| groupTuple(by: 0, sort: "hash")
| map {run_id, states ->
// Gather the following state for all samples
def forward_fastqs = states.collect{it.forward_input}
def reverse_fastqs = states.collect{it.reverse_input}.findAll{it != null}
def forward_fastqs = states.collect{it.forward_input}.flatten()
def reverse_fastqs = states.collect{it.reverse_input}.findAll{it != null}.flatten()
def resultState = [
"output_forward": forward_fastqs,

View File

@@ -27,8 +27,8 @@
"forward_input": {
"type":
"string",
"description": "Type: `file`, required. ",
"help_text": "Type: `file`, required. "
"description": "Type: List of `file`, required, multiple_sep: `\";\"`. ",
"help_text": "Type: List of `file`, required, multiple_sep: `\";\"`. "
}
@@ -37,8 +37,8 @@
"reverse_input": {
"type":
"string",
"description": "Type: `file`. ",
"help_text": "Type: `file`. "
"description": "Type: List of `file`, multiple_sep: `\";\"`. ",
"help_text": "Type: List of `file`, multiple_sep: `\";\"`. "
}

View File

@@ -33,7 +33,7 @@ argument_groups:
create_parent: true
required: true
direction: "output"
multiple: false
multiple: true
multiple_sep: ";"
- type: "file"
name: "--fastq_reverse"
@@ -42,7 +42,7 @@ argument_groups:
create_parent: true
required: false
direction: "output"
multiple: false
multiple: true
multiple_sep: ";"
resources:
- type: "nextflow_script"
@@ -133,9 +133,9 @@ build_info:
output: "target/nextflow/dataflow/gather_fastqs_and_validate"
executable: "target/nextflow/dataflow/gather_fastqs_and_validate/main.nf"
viash_version: "0.9.0"
git_commit: "5cb13230bf682321226addce896a3015e8864913"
git_remote: "https://x-access-token:ghs_x4A4kChpmjRCoWA3E68PwNsGJxIsF40DBeTf@github.com/viash-hub/demultiplex"
git_tag: "v0.1.1-3-g5cb1323"
git_commit: "6e6be28b85ab619214ae05a017a33498c0dc8890"
git_remote: "https://x-access-token:ghs_iopCikoFK5KlWGbHHLIwAf82AMtbiI0fzew1@github.com/viash-hub/demultiplex"
git_tag: "v0.1.1-5-g6e6be28"
package_config:
name: "demultiplex"
version: "main"

View File

@@ -2845,7 +2845,7 @@ meta = [
"create_parent" : true,
"required" : true,
"direction" : "output",
"multiple" : false,
"multiple" : true,
"multiple_sep" : ";"
},
{
@@ -2855,7 +2855,7 @@ meta = [
"create_parent" : true,
"required" : false,
"direction" : "output",
"multiple" : false,
"multiple" : true,
"multiple_sep" : ";"
}
]
@@ -2965,9 +2965,9 @@ meta = [
"engine" : "native|native",
"output" : "target/nextflow/dataflow/gather_fastqs_and_validate",
"viash_version" : "0.9.0",
"git_commit" : "5cb13230bf682321226addce896a3015e8864913",
"git_remote" : "https://x-access-token:ghs_x4A4kChpmjRCoWA3E68PwNsGJxIsF40DBeTf@github.com/viash-hub/demultiplex",
"git_tag" : "v0.1.1-3-g5cb1323"
"git_commit" : "6e6be28b85ab619214ae05a017a33498c0dc8890",
"git_remote" : "https://x-access-token:ghs_iopCikoFK5KlWGbHHLIwAf82AMtbiI0fzew1@github.com/viash-hub/demultiplex",
"git_tag" : "v0.1.1-5-g6e6be28"
},
"package_config" : {
"name" : "demultiplex",
@@ -3027,9 +3027,11 @@ workflow run_wf {
def original_id = id
// Parse sample sheet for sample IDs
println "Processing run information file ${sample_sheet}"
csv_lines = sample_sheet.splitCsv(header: false, sep: ',')
csv_lines.any { csv_items ->
if (csv_items.isEmpty()) {
// skip empty line
return
}
def possible_header = csv_items[0]
@@ -3037,22 +3039,40 @@ workflow run_wf {
if (header) {
if (start_parsing) {
// Stop parsing when encountering the next header
println "Encountered next header '[${start_parsing}]', stopping parsing."
return true
}
if (header == "Data") {
// [Data] for illumina
// [Samples] for Element Biosciences
if (header in ["Data", "Samples"]) {
println "Found header [${header}], start parsing."
start_parsing = true
return
}
}
if (start_parsing) {
if ( !sample_id_column_index ) {
sample_id_column_index = csv_items.findIndexValues{it == "Sample_ID"}
assert sample_id_column_index != -1:
"Could not find column 'Sample_ID' in sample sheet!"
if ( sample_id_column_index == null) {
println "Looking for sample name column."
sample_id_column_index = csv_items.findIndexValues{it == "Sample_ID" || it == "SampleName"}
assert (!sample_id_column_index.isEmpty()):
"Could not find column 'Sample_ID' (Illumina) or 'SampleName' " +
"(Element Biosciences) in run information! Found: ${sample_id_column_index}"
assert sample_id_column_index.size() == 1, "Expected run information file to contain " +
"a column 'Sample_ID' or 'SampleName', not both. Found: ${sample_id_column_index}"
sample_id_column_index = sample_id_column_index[0]
println "Found sample names column '${csv_items[sample_id_column_index]}'."
return
}
samples += csv_items[sample_id_column_index]
}
// This return is important! (If 'true' is returned, the parsing stops.)
return
}
assert start_parsing:
"Sample information file does not contain [Data] or [Samples] header!"
assert samples.size() > 1:
"Sample information file does not seem to contain any information about the samples!"
println "Finished processing run information file, found samples: ${samples}."
println "Looking for fastq files in ${state.input}."
def allfastqs = state.input.listFiles().findAll{it.isFile() && it.name ==~ /^.+\.fastq.gz$/}
println "Found ${allfastqs.size()} fastq files, matching them to the following samples: ${samples}."
@@ -3061,17 +3081,15 @@ workflow run_wf {
def reverse_regex = ~/^${sample_id}_S(\d+)_(L(\d+)_)?R2_(\d+)\.fastq\.gz$/
def forward_fastq = state.input.listFiles().findAll{it.isFile() && it.name ==~ forward_regex}
def reverse_fastq = state.input.listFiles().findAll{it.isFile() && it.name ==~ reverse_regex}
assert forward_fastq : "No forward fastq files were found for sample ${sample_id}"
assert forward_fastq.size() < 2:
"Found multiple forward fastq files corresponding to sample ${sample_id}: ${forward_fastq}"
assert reverse_fastq.size() < 2:
"Found multiple reverse fastq files corresponding to sample ${sample_id}: ${reverse_fastq}."
assert !forward_fastq.isEmpty():
"Expected a forward fastq file to have been created correspondig to sample ${sample_id}."
// TODO: if one sample had reverse reads, the others must as well.
reverse_fastq = !reverse_fastq.isEmpty() ? reverse_fastq[0] : null
assert forward_fastq && !forward_fastq.isEmpty(): "No forward fastq files were found for sample ${sample_id}. " +
"All fastq files in directory: ${allfastqs.collect{it.name}}"
assert (reverse_fastq.isEmpty() || (forward_fastq.size() == reverse_fastq.size())):
"Expected equal number of forward and reverse fastq files for sample ${sample_id}. " +
"Found forward: ${forward_fastq} and reverse: ${reverse_fastq}."
println "Found ${forward_fastq.size()} forward and ${reverse_fastq.size()} reverse " +
"fastq files for sample ${sample_id}"
def fastqs_state = [
"fastq_forward": forward_fastq[0],
"fastq_forward": forward_fastq,
"fastq_reverse": reverse_fastq,
"_meta": [ "join_id": original_id ],
]

View File

@@ -47,10 +47,10 @@
"fastq_forward": {
"type":
"string",
"description": "Type: `file`, required, default: `$id.$key.fastq_forward.fastq_forward`. ",
"help_text": "Type: `file`, required, default: `$id.$key.fastq_forward.fastq_forward`. "
"description": "Type: List of `file`, required, default: `$id.$key.fastq_forward_*.fastq_forward_*`, multiple_sep: `\";\"`. ",
"help_text": "Type: List of `file`, required, default: `$id.$key.fastq_forward_*.fastq_forward_*`, multiple_sep: `\";\"`. "
,
"default": "$id.$key.fastq_forward.fastq_forward"
"default":"$id.$key.fastq_forward_*.fastq_forward_*"
}
@@ -58,10 +58,10 @@
"fastq_reverse": {
"type":
"string",
"description": "Type: `file`, default: `$id.$key.fastq_reverse.fastq_reverse`. ",
"help_text": "Type: `file`, default: `$id.$key.fastq_reverse.fastq_reverse`. "
"description": "Type: List of `file`, default: `$id.$key.fastq_reverse_*.fastq_reverse_*`, multiple_sep: `\";\"`. ",
"help_text": "Type: List of `file`, default: `$id.$key.fastq_reverse_*.fastq_reverse_*`, multiple_sep: `\";\"`. "
,
"default": "$id.$key.fastq_reverse.fastq_reverse"
"default":"$id.$key.fastq_reverse_*.fastq_reverse_*"
}

View File

@@ -14,9 +14,11 @@ argument_groups:
multiple: false
multiple_sep: ";"
- type: "file"
name: "--sample_sheet"
description: "Sample sheet as input for BCL Convert. If not specified,\nwill try\
\ to autodetect the sample sheet in the input directory\n"
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
@@ -24,6 +26,19 @@ argument_groups:
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: ";"
- name: "Output arguments"
arguments:
- type: "file"
@@ -70,7 +85,11 @@ test_resources:
- type: "nextflow_script"
path: "test.nf"
is_executable: true
entrypoint: "test_wf"
entrypoint: "test_illumina"
- type: "nextflow_script"
path: "test.nf"
is_executable: true
entrypoint: "test_bases2fastq"
info: null
status: "enabled"
requirements:
@@ -93,22 +112,27 @@ dependencies:
repository:
type: "vsh"
repo: "biobox"
tag: "v0.2.0"
tag: "v0.3.0"
- name: "bases2fastq"
repository:
type: "vsh"
repo: "biobox"
tag: "v0.3.0"
- name: "falco"
repository:
type: "vsh"
repo: "biobox"
tag: "v0.2.0"
tag: "v0.3.0"
- name: "multiqc"
repository:
type: "vsh"
repo: "biobox"
tag: "v0.2.0"
tag: "v0.3.0"
repositories:
- type: "vsh"
name: "bb"
repo: "biobox"
tag: "v0.2.0"
tag: "v0.3.0"
license: "MIT"
links:
repository: "https://github.com/viash-hub/demultiplex"
@@ -186,17 +210,18 @@ build_info:
output: "target/nextflow/demultiplex"
executable: "target/nextflow/demultiplex/main.nf"
viash_version: "0.9.0"
git_commit: "5cb13230bf682321226addce896a3015e8864913"
git_remote: "https://x-access-token:ghs_x4A4kChpmjRCoWA3E68PwNsGJxIsF40DBeTf@github.com/viash-hub/demultiplex"
git_tag: "v0.1.1-3-g5cb1323"
git_commit: "6e6be28b85ab619214ae05a017a33498c0dc8890"
git_remote: "https://x-access-token:ghs_iopCikoFK5KlWGbHHLIwAf82AMtbiI0fzew1@github.com/viash-hub/demultiplex"
git_tag: "v0.1.1-5-g6e6be28"
dependencies:
- "target/nextflow/io/untar"
- "target/nextflow/dataflow/gather_fastqs_and_validate"
- "target/nextflow/io/interop_summary_to_csv"
- "target/nextflow/dataflow/combine_samples"
- "target/dependencies/vsh/vsh/biobox/v0.2.0/nextflow/bcl_convert"
- "target/dependencies/vsh/vsh/biobox/v0.2.0/nextflow/falco"
- "target/dependencies/vsh/vsh/biobox/v0.2.0/nextflow/multiqc"
- "target/dependencies/vsh/vsh/biobox/v0.3.0/nextflow/bcl_convert"
- "target/dependencies/vsh/vsh/biobox/v0.3.0/nextflow/bases2fastq"
- "target/dependencies/vsh/vsh/biobox/v0.3.0/nextflow/falco"
- "target/dependencies/vsh/vsh/biobox/v0.3.0/nextflow/multiqc"
package_config:
name: "demultiplex"
version: "main"

View File

@@ -2823,14 +2823,27 @@ meta = [
},
{
"type" : "file",
"name" : "--sample_sheet",
"description" : "Sample sheet as input for BCL Convert. If not specified,\nwill try to autodetect the sample sheet in the input directory\n",
"name" : "--run_information",
"description" : "CSV file containing sample information, which will be used as \ninput for the demultiplexer. Canonically called 'SampleSheet.csv' (Illumina)\nor 'RunManifest.csv' (Element Biosciences). If not specified,\nwill try to autodetect the sample sheet in the input directory.\nRequires --demultiplexer to be set.\n",
"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",
"required" : false,
"choices" : [
"bases2fastq",
"bclconvert"
],
"direction" : "input",
"multiple" : false,
"multiple_sep" : ";"
}
]
},
@@ -2893,7 +2906,13 @@ meta = [
"type" : "nextflow_script",
"path" : "test.nf",
"is_executable" : true,
"entrypoint" : "test_wf"
"entrypoint" : "test_illumina"
},
{
"type" : "nextflow_script",
"path" : "test.nf",
"is_executable" : true,
"entrypoint" : "test_bases2fastq"
}
],
"status" : "enabled",
@@ -2932,7 +2951,15 @@ meta = [
"repository" : {
"type" : "vsh",
"repo" : "biobox",
"tag" : "v0.2.0"
"tag" : "v0.3.0"
}
},
{
"name" : "bases2fastq",
"repository" : {
"type" : "vsh",
"repo" : "biobox",
"tag" : "v0.3.0"
}
},
{
@@ -2940,7 +2967,7 @@ meta = [
"repository" : {
"type" : "vsh",
"repo" : "biobox",
"tag" : "v0.2.0"
"tag" : "v0.3.0"
}
},
{
@@ -2948,7 +2975,7 @@ meta = [
"repository" : {
"type" : "vsh",
"repo" : "biobox",
"tag" : "v0.2.0"
"tag" : "v0.3.0"
}
}
],
@@ -2957,7 +2984,7 @@ meta = [
"type" : "vsh",
"name" : "bb",
"repo" : "biobox",
"tag" : "v0.2.0"
"tag" : "v0.3.0"
}
],
"license" : "MIT",
@@ -3049,9 +3076,9 @@ meta = [
"engine" : "native|native",
"output" : "target/nextflow/demultiplex",
"viash_version" : "0.9.0",
"git_commit" : "5cb13230bf682321226addce896a3015e8864913",
"git_remote" : "https://x-access-token:ghs_x4A4kChpmjRCoWA3E68PwNsGJxIsF40DBeTf@github.com/viash-hub/demultiplex",
"git_tag" : "v0.1.1-3-g5cb1323"
"git_commit" : "6e6be28b85ab619214ae05a017a33498c0dc8890",
"git_remote" : "https://x-access-token:ghs_iopCikoFK5KlWGbHHLIwAf82AMtbiI0fzew1@github.com/viash-hub/demultiplex",
"git_tag" : "v0.1.1-5-g6e6be28"
},
"package_config" : {
"name" : "demultiplex",
@@ -3096,9 +3123,10 @@ 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 { 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 { 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.2.0/nextflow/falco/main.nf"
include { multiqc } from "${meta.root_dir}/dependencies/vsh/vsh/biobox/v0.2.0/nextflow/multiqc/main.nf"
include { bcl_convert } from "${meta.root_dir}/dependencies/vsh/vsh/biobox/v0.3.0/nextflow/bcl_convert/main.nf"
include { bases2fastq } from "${meta.root_dir}/dependencies/vsh/vsh/biobox/v0.3.0/nextflow/bases2fastq/main.nf"
include { falco } from "${meta.root_dir}/dependencies/vsh/vsh/biobox/v0.3.0/nextflow/falco/main.nf"
include { multiqc } from "${meta.root_dir}/dependencies/vsh/vsh/biobox/v0.3.0/nextflow/multiqc/main.nf"
// inner workflow
// user-provided Nextflow code
@@ -3127,22 +3155,79 @@ workflow run_wf {
// Gather input files from folder
| map {id, state ->
def newState = [:]
if (!state.sample_sheet) {
def sample_sheet = state.input.resolve("SampleSheet.csv")
assert (sample_sheet && sample_sheet.isFile()): "Could not find 'SampleSheet.csv' file in input directory."
newState["sample_sheet"] = sample_sheet
println("Provided run information: ${state.run_information} and demultiplexer: ${state.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,
]
}
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 resultState = state + newState
[id, resultState]
}
| interop_summary_to_csv.run(
runIf: {id, state -> state.demultiplexer in ["bclconvert"]},
directives: [label: ["lowmem", "verylowcpu"]],
fromState: [
"input": "input",
@@ -3154,16 +3239,40 @@ workflow run_wf {
)
// run bcl_convert
| bcl_convert.run(
runIf: {id, state -> state.demultiplexer in ["bclconvert"]},
directives: [label: ["highmem", "midcpu"]],
fromState: [
"bcl_input_directory": "input",
"sample_sheet": "sample_sheet",
"sample_sheet": "run_information",
"output_directory": "output",
],
toState: {id, result, state ->
def toAdd = [
"output_bclconvert" : result.output_directory,
"bclconvert_reports": result.reports,
"output_demultiplexer" : result.output_directory,
"run_id": id,
]
def newState = state + toAdd
return newState
}
)
// run bases2fastq
| bases2fastq.run(
runIf: {id, state -> state.demultiplexer in ["bases2fastq"]},
directives: [label: ["highmem", "midcpu"]],
fromState: [
"analysis_directory": "input",
"run_manifest": "run_information",
"output_directory": "output",
],
args: [
"no_projects": true, // Do not put output files in a subfolder for project
//"split_lanes": true,
"legacy_fastq": true, // Illumina style output names
"group_fastq": true, // No subdir per sample
],
toState: {id, result, state ->
def toAdd = [
"output_demultiplexer" : result.output_directory,
"run_id": id,
]
def newState = state + toAdd
@@ -3172,8 +3281,8 @@ workflow run_wf {
)
| gather_fastqs_and_validate.run(
fromState: [
"input": "output_bclconvert",
"sample_sheet": "sample_sheet",
"input": "output_demultiplexer",
"sample_sheet": "run_information",
],
toState: [
"fastq_forward": "fastq_forward",
@@ -3214,15 +3323,18 @@ workflow run_wf {
| multiqc.run(
directives: [label: ["lowcpu", "lowmem"]],
fromState: {id, state ->
[
"input": [
state.output_falco,
def new_state = [
"input": [state.output_falco],
"output_report": state.output_multiqc,
"cl_config": 'sp: {fastqc/data: {fn: "*_fastqc_data.txt"}}'
]
if (state.demultiplexer == "bclconvert") {
new_state["input"] += [
state.interop_run_summary.getParent(),
state.interop_index_summary.getParent()
],
"output_report": state.output_multiqc,
"cl_config": 'sp: {fastqc/data: {fn: "*_fastqc_data.txt"}}',
]
}
return new_state
},
toState: { id, result, state ->
state + [ "output_multiqc" : result.output_report ]
@@ -3230,7 +3342,7 @@ workflow run_wf {
)
| setState(
[
"output": "output_bclconvert",
"output": "output_demultiplexer",
"output_falco": "output_falco",
"output_multiqc": "output_multiqc"
]

View File

@@ -24,11 +24,23 @@
,
"sample_sheet": {
"run_information": {
"type":
"string",
"description": "Type: `file`. Sample sheet as input for BCL Convert",
"help_text": "Type: `file`. Sample sheet as input for BCL Convert. If not specified,\nwill try to autodetect the sample sheet in the input directory\n"
"description": "Type: `file`. CSV file containing sample information, which will be used as \ninput for the demultiplexer",
"help_text": "Type: `file`. CSV file containing sample information, which will be used as \ninput for the demultiplexer. Canonically called \u0027SampleSheet.csv\u0027 (Illumina)\nor \u0027RunManifest.csv\u0027 (Element Biosciences). If not specified,\nwill try to autodetect the sample sheet in the input directory.\nRequires --demultiplexer to be set.\n"
}
,
"demultiplexer": {
"type":
"string",
"description": "Type: `string`, choices: ``bases2fastq`, `bclconvert``. Demultiplexer to use, choice depends on the provider\nof the instrument that was used to generate the data",
"help_text": "Type: `string`, choices: ``bases2fastq`, `bclconvert``. 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",
"enum": ["bases2fastq", "bclconvert"]
}

View File

@@ -141,9 +141,9 @@ build_info:
output: "target/nextflow/io/interop_summary_to_csv"
executable: "target/nextflow/io/interop_summary_to_csv/main.nf"
viash_version: "0.9.0"
git_commit: "5cb13230bf682321226addce896a3015e8864913"
git_remote: "https://x-access-token:ghs_x4A4kChpmjRCoWA3E68PwNsGJxIsF40DBeTf@github.com/viash-hub/demultiplex"
git_tag: "v0.1.1-3-g5cb1323"
git_commit: "6e6be28b85ab619214ae05a017a33498c0dc8890"
git_remote: "https://x-access-token:ghs_iopCikoFK5KlWGbHHLIwAf82AMtbiI0fzew1@github.com/viash-hub/demultiplex"
git_tag: "v0.1.1-5-g6e6be28"
package_config:
name: "demultiplex"
version: "main"

View File

@@ -2977,9 +2977,9 @@ meta = [
"engine" : "docker|native",
"output" : "target/nextflow/io/interop_summary_to_csv",
"viash_version" : "0.9.0",
"git_commit" : "5cb13230bf682321226addce896a3015e8864913",
"git_remote" : "https://x-access-token:ghs_x4A4kChpmjRCoWA3E68PwNsGJxIsF40DBeTf@github.com/viash-hub/demultiplex",
"git_tag" : "v0.1.1-3-g5cb1323"
"git_commit" : "6e6be28b85ab619214ae05a017a33498c0dc8890",
"git_remote" : "https://x-access-token:ghs_iopCikoFK5KlWGbHHLIwAf82AMtbiI0fzew1@github.com/viash-hub/demultiplex",
"git_tag" : "v0.1.1-5-g6e6be28"
},
"package_config" : {
"name" : "demultiplex",

View File

@@ -148,9 +148,9 @@ build_info:
output: "target/nextflow/io/untar"
executable: "target/nextflow/io/untar/main.nf"
viash_version: "0.9.0"
git_commit: "5cb13230bf682321226addce896a3015e8864913"
git_remote: "https://x-access-token:ghs_x4A4kChpmjRCoWA3E68PwNsGJxIsF40DBeTf@github.com/viash-hub/demultiplex"
git_tag: "v0.1.1-3-g5cb1323"
git_commit: "6e6be28b85ab619214ae05a017a33498c0dc8890"
git_remote: "https://x-access-token:ghs_iopCikoFK5KlWGbHHLIwAf82AMtbiI0fzew1@github.com/viash-hub/demultiplex"
git_tag: "v0.1.1-5-g6e6be28"
package_config:
name: "demultiplex"
version: "main"

View File

@@ -2989,9 +2989,9 @@ meta = [
"engine" : "docker|native",
"output" : "target/nextflow/io/untar",
"viash_version" : "0.9.0",
"git_commit" : "5cb13230bf682321226addce896a3015e8864913",
"git_remote" : "https://x-access-token:ghs_x4A4kChpmjRCoWA3E68PwNsGJxIsF40DBeTf@github.com/viash-hub/demultiplex",
"git_tag" : "v0.1.1-3-g5cb1323"
"git_commit" : "6e6be28b85ab619214ae05a017a33498c0dc8890",
"git_remote" : "https://x-access-token:ghs_iopCikoFK5KlWGbHHLIwAf82AMtbiI0fzew1@github.com/viash-hub/demultiplex",
"git_tag" : "v0.1.1-5-g6e6be28"
},
"package_config" : {
"name" : "demultiplex",