Build branch reporting with version reporting (6343c3c)

Build pipeline: viash-hub.rnaseq.reporting-bsrzh

Source commit: 6343c3cfef

Source message: add toolbox, update craftbox
This commit is contained in:
CI
2025-06-16 09:17:45 +00:00
commit 9405bcedbe
19 changed files with 8795 additions and 0 deletions

7
.gitignore vendored Normal file
View File

@@ -0,0 +1,7 @@
.nextflow*
work
testData
test_results
target
resources_test
resources

20
CHANGELOG.md Normal file
View File

@@ -0,0 +1,20 @@
# rnaseq v0.3.0
## Minor changes
* Pin biobox version to v0.3.1 (PR #44).
* Bump viash version to 0.9.4 (PR #45).
## Bug fixes
* Fix `summarizedexperiment` build PR (#42).
* Fix an issue with the `deseq2_qc` component not being able to create the DESeq2 object (PR #41).
## Known issues
The following caveats are known and will be addressed in future releases:
- [`bbmap_bbsplit` input file logic requires revision](https://github.com/viash-hub/rnaseq/issues/30)
- [Setting `--skip_deseq2_qc=false` results in an error](https://github.com/viash-hub/rnaseq/issues/31)

144
README.md Normal file
View File

@@ -0,0 +1,144 @@
# rnaseq
<!-- README.md is generated by running 'quarto render README.qmd' -->
## RNA-seq
``` mermaid
flowchart TB
subgraph inputs[Inputs]
input_r1[Input R1 FastQ]
input_r2[Input R2 FastQ]
sample_metadata[Sample metadata]
reference_fasta[Reference fasta]
reference_gtf[Reference GTF]
end
inputs:::io
input_r1 & input_r2 & sample_metadata --> prepare_reads --> processed_r1 & processed_r2 & processed_metadata
prepare_reads[/prepare_reads/]:::comp
reference_fasta & reference_gtf --> prepare_reference --> processed_fasta & processed_gtf & star_index
prepare_reference[/prepare_reference/]:::comp
processed_r1 & processed_r2 & star_index & processed_fasta & processed_gtf --> align_and_quant --> aligned_reads_bam & quant_matrix
align_and_quant[/align_and_quant/]:::comp
aligned_reads_bam --> postprocess_bam --> output_aligned_reads_bam
postprocess_bam[/postprocess_bam/]:::comp
quant_matrix & processed_metadata --> postprocess_mtx --> output_quant_matrix
postprocess_mtx[/postprocess_mtx/]:::comp
processed_metadata & output_quant_matrix & output_combined_qc_data --> conversion --> output_anndata & output_sce
conversion[/conversion/]:::comp
subgraph outputs[Outputs]
output_aligned_reads_bam[Aligned reads]
output_quant_matrix[Quant matrix]
output_combined_qc_data[QC Data]
output_combined_qc_report[QC Report]
output_anndata[AnnData]
output_sce[SCE]
end
outputs:::io
subgraph legend[Legend]
comp[/Component/]:::comp
end
legend:::info
classDef info stroke-dasharray: 4 4
```
## RNA-seq (With reporting)
``` mermaid
flowchart TB
subgraph inputs[Inputs]
input_r1[Input R1 FastQ]
input_r2[Input R2 FastQ]
sample_metadata[Sample metadata]
reference_fasta[Reference fasta]
reference_gtf[Reference GTF]
end
inputs:::io
input_r1 & input_r2 & sample_metadata --> prepare_reads --> processed_r1 & processed_r2 & processed_metadata
prepare_reads[/prepare_reads/]:::comp
prepare_reads -.-> prepare_reads_qc_data
reference_fasta & reference_gtf --> prepare_reference --> processed_fasta & processed_gtf & star_index
prepare_reference[/prepare_reference/]:::comp
prepare_reference -.-> prepare_reference_qc_data
processed_r1 & processed_r2 & star_index & processed_fasta & processed_gtf --> align_and_quant --> aligned_reads_bam & quant_matrix
align_and_quant[/align_and_quant/]:::comp
align_and_quant -.-> align_and_quant_qc_data
aligned_reads_bam --> postprocess_bam --> output_aligned_reads_bam
postprocess_bam[/postprocess_bam/]:::comp
postprocess_bam -.-> postprocess_bam_qc_data
quant_matrix & processed_metadata --> postprocess_mtx --> output_quant_matrix
postprocess_mtx[/postprocess_mtx/]:::comp
postprocess_mtx -.-> postprocess_mtx_qc_data
prepare_reads_qc_data & prepare_reference_qc_data & align_and_quant_qc_data & postprocess_bam_qc_data & postprocess_mtx_qc_data -.-> reporting -.-> output_combined_qc_data & output_combined_qc_report
reporting[/reporting/]:::comp
processed_metadata & output_quant_matrix & output_combined_qc_data --> conversion --> output_anndata & output_sce
conversion[/conversion/]:::comp
subgraph outputs[Outputs]
output_aligned_reads_bam[Aligned reads]
output_quant_matrix[Quant matrix]
output_combined_qc_data[QC Data]
output_combined_qc_report[QC Report]
output_anndata[AnnData]
output_sce[SCE]
end
outputs:::io
subgraph legend[Legend]
comp[/Component/]:::comp
end
legend:::info
classDef info stroke-dasharray: 4 4
```
## Prepare reads
``` mermaid
flowchart TB
subgraph inputs[Inputs]
input_r1[Input R1 FastQ]
input_r2[Input R2 FastQ]
sample_metadata[Sample metadata]
end
input_r1 --> cat_fastq_r1 --> trim_r1 --> infer_strandedness_r1 --> processed_r1
input_r2 --> cat_fastq_r2 --> trim_r2 --> infer_strandedness_r2 --> processed_r2
processed_r1 & processed_r2 --> fastqc --> prepare_reads_qc_data
sample_metadata --> processed_metadata
subgraph outputs[Outputs]
processed_r1
processed_r2
processed_metadata
prepare_reads_qc_data
end
classDef info stroke-dasharray: 4 4
```

150
README.qmd Normal file
View File

@@ -0,0 +1,150 @@
---
title: rnaseq
format: gfm
---
<!-- README.md is generated by running 'quarto render README.qmd' -->
```{r, echo = FALSE, message = FALSE, error = FALSE, warning = FALSE}
library(tidyverse)
```
## RNA-seq
```{mermaid}
flowchart TB
subgraph inputs[Inputs]
input_r1[Input R1 FastQ]
input_r2[Input R2 FastQ]
sample_metadata[Sample metadata]
reference_fasta[Reference fasta]
reference_gtf[Reference GTF]
end
inputs:::io
input_r1 & input_r2 & sample_metadata --> prepare_reads --> processed_r1 & processed_r2 & processed_metadata
prepare_reads[/prepare_reads/]:::comp
reference_fasta & reference_gtf --> prepare_reference --> processed_fasta & processed_gtf & star_index
prepare_reference[/prepare_reference/]:::comp
processed_r1 & processed_r2 & star_index & processed_fasta & processed_gtf --> align_and_quant --> aligned_reads_bam & quant_matrix
align_and_quant[/align_and_quant/]:::comp
aligned_reads_bam --> postprocess_bam --> output_aligned_reads_bam
postprocess_bam[/postprocess_bam/]:::comp
quant_matrix & processed_metadata --> postprocess_mtx --> output_quant_matrix
postprocess_mtx[/postprocess_mtx/]:::comp
processed_metadata & output_quant_matrix & output_combined_qc_data --> conversion --> output_anndata & output_sce
conversion[/conversion/]:::comp
subgraph outputs[Outputs]
output_aligned_reads_bam[Aligned reads]
output_quant_matrix[Quant matrix]
output_combined_qc_data[QC Data]
output_combined_qc_report[QC Report]
output_anndata[AnnData]
output_sce[SCE]
end
outputs:::io
subgraph legend[Legend]
comp[/Component/]:::comp
end
legend:::info
classDef info stroke-dasharray: 4 4
```
## RNA-seq (With reporting)
```{mermaid}
flowchart TB
subgraph inputs[Inputs]
input_r1[Input R1 FastQ]
input_r2[Input R2 FastQ]
sample_metadata[Sample metadata]
reference_fasta[Reference fasta]
reference_gtf[Reference GTF]
end
inputs:::io
input_r1 & input_r2 & sample_metadata --> prepare_reads --> processed_r1 & processed_r2 & processed_metadata
prepare_reads[/prepare_reads/]:::comp
prepare_reads -.-> prepare_reads_qc_data
reference_fasta & reference_gtf --> prepare_reference --> processed_fasta & processed_gtf & star_index
prepare_reference[/prepare_reference/]:::comp
prepare_reference -.-> prepare_reference_qc_data
processed_r1 & processed_r2 & star_index & processed_fasta & processed_gtf --> align_and_quant --> aligned_reads_bam & quant_matrix
align_and_quant[/align_and_quant/]:::comp
align_and_quant -.-> align_and_quant_qc_data
aligned_reads_bam --> postprocess_bam --> output_aligned_reads_bam
postprocess_bam[/postprocess_bam/]:::comp
postprocess_bam -.-> postprocess_bam_qc_data
quant_matrix & processed_metadata --> postprocess_mtx --> output_quant_matrix
postprocess_mtx[/postprocess_mtx/]:::comp
postprocess_mtx -.-> postprocess_mtx_qc_data
prepare_reads_qc_data & prepare_reference_qc_data & align_and_quant_qc_data & postprocess_bam_qc_data & postprocess_mtx_qc_data -.-> reporting -.-> output_combined_qc_data & output_combined_qc_report
reporting[/reporting/]:::comp
processed_metadata & output_quant_matrix & output_combined_qc_data --> conversion --> output_anndata & output_sce
conversion[/conversion/]:::comp
subgraph outputs[Outputs]
output_aligned_reads_bam[Aligned reads]
output_quant_matrix[Quant matrix]
output_combined_qc_data[QC Data]
output_combined_qc_report[QC Report]
output_anndata[AnnData]
output_sce[SCE]
end
outputs:::io
subgraph legend[Legend]
comp[/Component/]:::comp
end
legend:::info
classDef info stroke-dasharray: 4 4
```
## Prepare reads
```{mermaid}
flowchart TB
subgraph inputs[Inputs]
input_r1[Input R1 FastQ]
input_r2[Input R2 FastQ]
sample_metadata[Sample metadata]
end
input_r1 --> cat_fastq_r1 --> trim_r1 --> infer_strandedness_r1 --> processed_r1
input_r2 --> cat_fastq_r2 --> trim_r2 --> infer_strandedness_r2 --> processed_r2
processed_r1 & processed_r2 --> fastqc --> prepare_reads_qc_data
sample_metadata --> processed_metadata
subgraph outputs[Outputs]
processed_r1
processed_r2
processed_metadata
prepare_reads_qc_data
end
classDef info stroke-dasharray: 4 4
```

22
_viash.yaml Normal file
View File

@@ -0,0 +1,22 @@
name: rnaseq
viash_version: 0.9.4
repositories:
- name: biobox
type: vsh
repo: biobox
tag: v0.3.1
- name: craftbox
type: vsh
repo: craftbox
tag: v0.2.0
- name: toolbox
type: vsh
repo: toolbox
tag: v0.1.1
info:
test_resources:
- path: gs://viash-hub-resources/rnaseq/v1
dest: resources_test

3
main.nf Normal file
View File

@@ -0,0 +1,3 @@
workflow {
print("This is a dummy placeholder for pipeline execution. Please use the corresponding nf files for running pipelines.")
}

6
nextflow.config Normal file
View File

@@ -0,0 +1,6 @@
manifest {
nextflowVersion = '!>=20.12.1-edge'
homePage = 'https://github.com/viash-hub/rnaseq'
description = 'Bulk RNAseq pipeline'
mainScript = 'target/nextflow/workflows/rnaseq/main.nf'
}

3
scripts/sync_resources.sh Executable file
View File

@@ -0,0 +1,3 @@
#!/bin/bash
viash run https://raw.githubusercontent.com/viash-hub/craftbox/refs/heads/remove_authors/src/sync_resources/config.vsh.yaml

View File

@@ -0,0 +1,39 @@
name: prepare_genome
description: |
Prepare genome and transcriptome FASTA files for STAR alignment by adding
necessary headers and creating a STAR index.
argument_groups:
- name: Inputs
arguments:
- name: --input_genome_fasta
type: file
example: "genome.fasta.gz"
- name: --input_transcriptome_gtf
type: file
example: "genes.gtf.gz"
- name: Outputs
arguments:
- name: --output_genome_fasta
type: file
direction: output
example: "genome.fasta"
- name: --output_transcriptome_gtf
type: file
direction: output
example: "transcriptome.gtf"
- name: --output_star_index
type: file
direction: output
dependencies:
- name: bgzip
repository: toolbox
resources:
- type: nextflow_script
path: main.nf
entrypoint: run
runners:
- type: nextflow

View File

@@ -0,0 +1,28 @@
workflow run {
take: input_channel
main:
output_channel = input_channel
| bgzip.run(
runIf: { id, state ->
// TODO: check if the input_genome_fasta is gzipped
def is_fasta_gzipped = true
is_fasta_gzipped
},
fromState: [
input: "input_genome_fasta"
],
toState: [
input_genome_fasta: "output"
]
)
| setState(
[
output_genome_fasta: "input_genome_fasta",
output_transcriptome_gtf: "input_transcriptome_gtf",
]
)
emit: output_channel
}

0
target/.build.yaml Normal file
View File

View File

@@ -0,0 +1,268 @@
name: "bgzip"
version: "v0.1.1"
argument_groups:
- name: "Inputs"
arguments:
- type: "file"
name: "--input"
description: "file to be compressed or decompressed"
info: null
must_exist: true
create_parent: true
required: true
direction: "input"
multiple: false
multiple_sep: ";"
- name: "Outputs"
arguments:
- type: "file"
name: "--output"
description: "compressed or decompressed output"
info: null
must_exist: true
create_parent: true
required: true
direction: "output"
multiple: false
multiple_sep: ";"
- type: "file"
name: "--index_name"
alternatives:
- "-I"
description: "name of BGZF index file [file.gz.gzi]"
info: null
must_exist: true
create_parent: true
required: false
direction: "output"
multiple: false
multiple_sep: ";"
- name: "Arguments"
arguments:
- type: "integer"
name: "--offset"
alternatives:
- "-b"
description: "decompress at virtual file pointer (0-based uncompressed offset)"
info: null
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- type: "boolean_true"
name: "--decompress"
alternatives:
- "-d"
description: "decompress the input file"
info: null
direction: "input"
- type: "boolean_true"
name: "--rebgzip"
alternatives:
- "-g"
description: "use an index file to bgzip a file"
info: null
direction: "input"
- type: "boolean_true"
name: "--index"
alternatives:
- "-i"
description: "compress and create BGZF index"
info: null
direction: "input"
- type: "integer"
name: "--compress_level"
alternatives:
- "-l"
description: "compression level to use when compressing; 0 to 9, or -1 for default\
\ [-1]"
info: null
required: false
min: -1
max: 9
direction: "input"
multiple: false
multiple_sep: ";"
- type: "boolean_true"
name: "--reindex"
alternatives:
- "-r"
description: "(re)index the output file"
info: null
direction: "input"
- type: "integer"
name: "--size"
alternatives:
- "-s"
description: "decompress INT bytes (uncompressed size)"
info: null
required: false
min: 0
direction: "input"
multiple: false
multiple_sep: ";"
- type: "boolean_true"
name: "--test"
alternatives:
- "-t"
description: "test integrity of compressed file"
info: null
direction: "input"
- type: "boolean_true"
name: "--binary"
description: "Don't align blocks with text lines"
info: null
direction: "input"
resources:
- type: "bash_script"
path: "script.sh"
is_executable: true
description: "Block compression/decompression utility"
test_resources:
- type: "bash_script"
path: "test.sh"
is_executable: true
- type: "file"
path: "test_data"
info: null
status: "enabled"
scope:
image: "public"
target: "public"
requirements:
commands:
- "ps"
license: "MIT"
references:
doi:
- "10.1093/gigascience/giab007"
links:
repository: "https://github.com/samtools/htslib"
homepage: "https://www.htslib.org/"
documentation: "https://www.htslib.org/doc/bgzip.html"
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: "quay.io/biocontainers/htslib:1.19--h81da01d_0"
target_registry: "images.viash-hub.com"
target_tag: "v0.1.1"
namespace_separator: "/"
setup:
- type: "docker"
run:
- "bgzip -h | grep 'Version:' 2>&1 | sed 's/Version:\\s\\(.*\\)/bgzip: \"\\1\"\
/' > /var/software_versions.txt\n"
entrypoint: []
cmd: null
- type: "native"
id: "native"
build_info:
config: "src/bgzip/config.vsh.yaml"
runner: "nextflow"
engine: "docker|native"
output: "target/nextflow/bgzip"
executable: "target/nextflow/bgzip/main.nf"
viash_version: "0.9.4"
git_commit: "2c079795592b75ecd0db2bacaf0b748fa84e1293"
git_remote: "https://github.com/viash-hub/toolbox"
git_tag: "v0.1.0-13-g2c07979"
package_config:
name: "toolbox"
version: "v0.1.1"
summary: "A collection of curated command-line tools for general IT tasks, built\
\ with Viash.\n"
description: "`toolbox` provides a versatile suite of IT components, following the\
\ robust Viash (https://viash.io) framework.\nThis package focuses on delivering\
\ reliable, standalone tools that can be easily integrated into larger computational\
\ workflows.\n\nThe core philosophy emphasizes **reusability**, **reproducibility**,\
\ and adherence to **best practices** in component creation. Key features of `toolbox`\
\ components include:\n\n* **Standalone & Nextflow Ready:** Execute components\
\ directly from the command line or seamlessly incorporate them into Nextflow\
\ workflows.\n* **High Quality Standards:**\n * Comprehensive documentation\
\ for each component and its parameters.\n * Full exposure of the underlying\
\ tool's arguments for maximum flexibility.\n * Containerized (Docker) to ensure\
\ consistent environments and manage dependencies, leading to enhanced reproducibility.\n\
\ * Unit tested to verify functionality and ensure reliability.\n"
info: null
viash_version: "0.9.4"
source: "src"
target: "target"
config_mods:
- ".requirements.commands := ['ps']\n"
- ".engines += { type: \"native\" }"
- ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'"
- ".engines[.type == 'docker'].target_tag := 'v0.1.1'"
keywords:
- "toolbox"
- "command-line"
- "tools"
license: "MIT"
organization: "vsh"
links:
repository: "https://github.com/viash-hub/toolbox"
issue_tracker: "https://github.com/viash-hub/toolbox/issues"

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,125 @@
manifest {
name = 'bgzip'
mainScript = 'main.nf'
nextflowVersion = '!>=20.12.1-edge'
version = 'v0.1.1'
description = 'Block compression/decompression utility'
}
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,216 @@
{
"$schema": "http://json-schema.org/draft-07/schema",
"title": "bgzip",
"description": "Block compression/decompression utility",
"type": "object",
"definitions": {
"inputs" : {
"title": "Inputs",
"type": "object",
"description": "No description",
"properties": {
"input": {
"type":
"string",
"description": "Type: `file`, required. file to be compressed or decompressed",
"help_text": "Type: `file`, required. file to be compressed or decompressed"
}
}
},
"outputs" : {
"title": "Outputs",
"type": "object",
"description": "No description",
"properties": {
"output": {
"type":
"string",
"description": "Type: `file`, required, default: `$id.$key.output`. compressed or decompressed output",
"help_text": "Type: `file`, required, default: `$id.$key.output`. compressed or decompressed output"
,
"default":"$id.$key.output"
}
,
"index_name": {
"type":
"string",
"description": "Type: `file`, default: `$id.$key.index_name`. name of BGZF index file [file",
"help_text": "Type: `file`, default: `$id.$key.index_name`. name of BGZF index file [file.gz.gzi]"
,
"default":"$id.$key.index_name"
}
}
},
"arguments" : {
"title": "Arguments",
"type": "object",
"description": "No description",
"properties": {
"offset": {
"type":
"integer",
"description": "Type: `integer`. decompress at virtual file pointer (0-based uncompressed offset)",
"help_text": "Type: `integer`. decompress at virtual file pointer (0-based uncompressed offset)"
}
,
"decompress": {
"type":
"boolean",
"description": "Type: `boolean_true`, default: `false`. decompress the input file",
"help_text": "Type: `boolean_true`, default: `false`. decompress the input file"
,
"default":false
}
,
"rebgzip": {
"type":
"boolean",
"description": "Type: `boolean_true`, default: `false`. use an index file to bgzip a file",
"help_text": "Type: `boolean_true`, default: `false`. use an index file to bgzip a file"
,
"default":false
}
,
"index": {
"type":
"boolean",
"description": "Type: `boolean_true`, default: `false`. compress and create BGZF index",
"help_text": "Type: `boolean_true`, default: `false`. compress and create BGZF index"
,
"default":false
}
,
"compress_level": {
"type":
"integer",
"description": "Type: `integer`. compression level to use when compressing; 0 to 9, or -1 for default [-1]",
"help_text": "Type: `integer`. compression level to use when compressing; 0 to 9, or -1 for default [-1]"
}
,
"reindex": {
"type":
"boolean",
"description": "Type: `boolean_true`, default: `false`. (re)index the output file",
"help_text": "Type: `boolean_true`, default: `false`. (re)index the output file"
,
"default":false
}
,
"size": {
"type":
"integer",
"description": "Type: `integer`. decompress INT bytes (uncompressed size)",
"help_text": "Type: `integer`. decompress INT bytes (uncompressed size)"
}
,
"test": {
"type":
"boolean",
"description": "Type: `boolean_true`, default: `false`. test integrity of compressed file",
"help_text": "Type: `boolean_true`, default: `false`. test integrity of compressed file"
,
"default":false
}
,
"binary": {
"type":
"boolean",
"description": "Type: `boolean_true`, default: `false`. Don\u0027t align blocks with text lines",
"help_text": "Type: `boolean_true`, default: `false`. Don\u0027t align blocks with text lines"
,
"default":false
}
}
},
"nextflow input-output arguments" : {
"title": "Nextflow input-output arguments",
"type": "object",
"description": "Input/output parameters for Nextflow itself. Please note that both publishDir and publish_dir are supported but at least one has to be configured.",
"properties": {
"publish_dir": {
"type":
"string",
"description": "Type: `string`, required, example: `output/`. Path to an output directory",
"help_text": "Type: `string`, required, example: `output/`. Path to an output directory."
}
,
"param_list": {
"type":
"string",
"description": "Type: `string`, example: `my_params.yaml`. Allows inputting multiple parameter sets to initialise a Nextflow channel",
"help_text": "Type: `string`, example: `my_params.yaml`. Allows inputting multiple parameter sets to initialise a Nextflow channel. A `param_list` can either be a list of maps, a csv file, a json file, a yaml file, or simply a yaml blob.\n\n* A list of maps (as-is) where the keys of each map corresponds to the arguments of the pipeline. Example: in a `nextflow.config` file: `param_list: [ [\u0027id\u0027: \u0027foo\u0027, \u0027input\u0027: \u0027foo.txt\u0027], [\u0027id\u0027: \u0027bar\u0027, \u0027input\u0027: \u0027bar.txt\u0027] ]`.\n* A csv file should have column names which correspond to the different arguments of this pipeline. Example: `--param_list data.csv` with columns `id,input`.\n* A json or a yaml file should be a list of maps, each of which has keys corresponding to the arguments of the pipeline. Example: `--param_list data.json` with contents `[ {\u0027id\u0027: \u0027foo\u0027, \u0027input\u0027: \u0027foo.txt\u0027}, {\u0027id\u0027: \u0027bar\u0027, \u0027input\u0027: \u0027bar.txt\u0027} ]`.\n* A yaml blob can also be passed directly as a string. Example: `--param_list \"[ {\u0027id\u0027: \u0027foo\u0027, \u0027input\u0027: \u0027foo.txt\u0027}, {\u0027id\u0027: \u0027bar\u0027, \u0027input\u0027: \u0027bar.txt\u0027} ]\"`.\n\nWhen passing a csv, json or yaml file, relative path names are relativized to the location of the parameter file. No relativation is performed when `param_list` is a list of maps (as-is) or a yaml blob.",
"hidden": true
}
}
}
},
"allOf": [
{
"$ref": "#/definitions/inputs"
},
{
"$ref": "#/definitions/outputs"
},
{
"$ref": "#/definitions/arguments"
},
{
"$ref": "#/definitions/nextflow input-output arguments"
}
]
}

View File

@@ -0,0 +1,195 @@
name: "prepare_genome"
version: "reporting"
argument_groups:
- name: "Inputs"
arguments:
- type: "file"
name: "--input_genome_fasta"
info: null
example:
- "genome.fasta.gz"
must_exist: true
create_parent: true
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- type: "file"
name: "--input_transcriptome_gtf"
info: null
example:
- "genes.gtf.gz"
must_exist: true
create_parent: true
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- name: "Outputs"
arguments:
- type: "file"
name: "--output_genome_fasta"
info: null
example:
- "genome.fasta"
must_exist: true
create_parent: true
required: false
direction: "output"
multiple: false
multiple_sep: ";"
- type: "file"
name: "--output_transcriptome_gtf"
info: null
example:
- "transcriptome.gtf"
must_exist: true
create_parent: true
required: false
direction: "output"
multiple: false
multiple_sep: ";"
- type: "file"
name: "--output_star_index"
info: null
must_exist: true
create_parent: true
required: false
direction: "output"
multiple: false
multiple_sep: ";"
resources:
- type: "nextflow_script"
path: "main.nf"
is_executable: true
entrypoint: "run"
description: "Prepare genome and transcriptome FASTA files for STAR alignment by adding\n\
necessary headers and creating a STAR index.\n"
info: null
status: "enabled"
scope:
image: "public"
target: "public"
dependencies:
- name: "bgzip"
repository:
type: "vsh"
repo: "toolbox"
tag: "v0.1.1"
repositories:
- type: "vsh"
name: "biobox"
repo: "biobox"
tag: "v0.3.1"
- type: "vsh"
name: "craftbox"
repo: "craftbox"
tag: "v0.2.0"
- type: "vsh"
name: "toolbox"
repo: "toolbox"
tag: "v0.1.1"
runners:
- type: "nextflow"
id: "nextflow"
directives:
tag: "$id"
auto:
simplifyInput: true
simplifyOutput: false
transcript: false
publish: false
config:
labels:
mem1gb: "memory = 1000000000.B"
mem2gb: "memory = 2000000000.B"
mem5gb: "memory = 5000000000.B"
mem10gb: "memory = 10000000000.B"
mem20gb: "memory = 20000000000.B"
mem50gb: "memory = 50000000000.B"
mem100gb: "memory = 100000000000.B"
mem200gb: "memory = 200000000000.B"
mem500gb: "memory = 500000000000.B"
mem1tb: "memory = 1000000000000.B"
mem2tb: "memory = 2000000000000.B"
mem5tb: "memory = 5000000000000.B"
mem10tb: "memory = 10000000000000.B"
mem20tb: "memory = 20000000000000.B"
mem50tb: "memory = 50000000000000.B"
mem100tb: "memory = 100000000000000.B"
mem200tb: "memory = 200000000000000.B"
mem500tb: "memory = 500000000000000.B"
mem1gib: "memory = 1073741824.B"
mem2gib: "memory = 2147483648.B"
mem4gib: "memory = 4294967296.B"
mem8gib: "memory = 8589934592.B"
mem16gib: "memory = 17179869184.B"
mem32gib: "memory = 34359738368.B"
mem64gib: "memory = 68719476736.B"
mem128gib: "memory = 137438953472.B"
mem256gib: "memory = 274877906944.B"
mem512gib: "memory = 549755813888.B"
mem1tib: "memory = 1099511627776.B"
mem2tib: "memory = 2199023255552.B"
mem4tib: "memory = 4398046511104.B"
mem8tib: "memory = 8796093022208.B"
mem16tib: "memory = 17592186044416.B"
mem32tib: "memory = 35184372088832.B"
mem64tib: "memory = 70368744177664.B"
mem128tib: "memory = 140737488355328.B"
mem256tib: "memory = 281474976710656.B"
mem512tib: "memory = 562949953421312.B"
cpu1: "cpus = 1"
cpu2: "cpus = 2"
cpu5: "cpus = 5"
cpu10: "cpus = 10"
cpu20: "cpus = 20"
cpu50: "cpus = 50"
cpu100: "cpus = 100"
cpu200: "cpus = 200"
cpu500: "cpus = 500"
cpu1000: "cpus = 1000"
debug: false
container: "docker"
engines:
- type: "native"
id: "native"
build_info:
config: "src/prepare_reference/config.vsh.yaml"
runner: "nextflow"
engine: "native"
output: "target/nextflow/prepare_genome"
executable: "target/nextflow/prepare_genome/main.nf"
viash_version: "0.9.4"
git_commit: "6343c3cfeff7ead6e06bdfa0fa81091b32cd7c3d"
git_remote: "https://github.com/viash-hub/rnaseq"
dependencies:
- "target/dependencies/vsh/vsh/toolbox/v0.1.1/nextflow/bgzip"
package_config:
name: "rnaseq"
version: "reporting"
info:
test_resources:
- path: "gs://viash-hub-resources/rnaseq/v1"
dest: "resources_test"
repositories:
- type: "vsh"
name: "biobox"
repo: "biobox"
tag: "v0.3.1"
- type: "vsh"
name: "craftbox"
repo: "craftbox"
tag: "v0.2.0"
- type: "vsh"
name: "toolbox"
repo: "toolbox"
tag: "v0.1.1"
viash_version: "0.9.4"
source: "src"
target: "target"
config_mods:
- ".engines += { type: \"native\" }"
- ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'"
- ".engines[.type == 'docker'].target_tag := 'reporting'"
organization: "vsh"

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,125 @@
manifest {
name = 'prepare_genome'
mainScript = 'main.nf'
nextflowVersion = '!>=20.12.1-edge'
version = 'reporting'
description = 'Prepare genome and transcriptome FASTA files for STAR alignment by adding\nnecessary headers and creating a STAR index.\n'
}
process.container = 'nextflow/bash:latest'
// detect tempdir
tempDir = java.nio.file.Paths.get(
System.getenv('NXF_TEMP') ?:
System.getenv('VIASH_TEMP') ?:
System.getenv('TEMPDIR') ?:
System.getenv('TMPDIR') ?:
'/tmp'
).toAbsolutePath()
profiles {
no_publish {
process {
withName: '.*' {
publishDir = [
enabled: false
]
}
}
}
mount_temp {
docker.temp = tempDir
podman.temp = tempDir
charliecloud.temp = tempDir
}
docker {
docker.enabled = true
// docker.userEmulation = true
singularity.enabled = false
podman.enabled = false
shifter.enabled = false
charliecloud.enabled = false
}
singularity {
singularity.enabled = true
singularity.autoMounts = true
docker.enabled = false
podman.enabled = false
shifter.enabled = false
charliecloud.enabled = false
}
podman {
podman.enabled = true
docker.enabled = false
singularity.enabled = false
shifter.enabled = false
charliecloud.enabled = false
}
shifter {
shifter.enabled = true
docker.enabled = false
singularity.enabled = false
podman.enabled = false
charliecloud.enabled = false
}
charliecloud {
charliecloud.enabled = true
docker.enabled = false
singularity.enabled = false
podman.enabled = false
shifter.enabled = false
}
}
process{
withLabel: mem1gb { memory = 1000000000.B }
withLabel: mem2gb { memory = 2000000000.B }
withLabel: mem5gb { memory = 5000000000.B }
withLabel: mem10gb { memory = 10000000000.B }
withLabel: mem20gb { memory = 20000000000.B }
withLabel: mem50gb { memory = 50000000000.B }
withLabel: mem100gb { memory = 100000000000.B }
withLabel: mem200gb { memory = 200000000000.B }
withLabel: mem500gb { memory = 500000000000.B }
withLabel: mem1tb { memory = 1000000000000.B }
withLabel: mem2tb { memory = 2000000000000.B }
withLabel: mem5tb { memory = 5000000000000.B }
withLabel: mem10tb { memory = 10000000000000.B }
withLabel: mem20tb { memory = 20000000000000.B }
withLabel: mem50tb { memory = 50000000000000.B }
withLabel: mem100tb { memory = 100000000000000.B }
withLabel: mem200tb { memory = 200000000000000.B }
withLabel: mem500tb { memory = 500000000000000.B }
withLabel: mem1gib { memory = 1073741824.B }
withLabel: mem2gib { memory = 2147483648.B }
withLabel: mem4gib { memory = 4294967296.B }
withLabel: mem8gib { memory = 8589934592.B }
withLabel: mem16gib { memory = 17179869184.B }
withLabel: mem32gib { memory = 34359738368.B }
withLabel: mem64gib { memory = 68719476736.B }
withLabel: mem128gib { memory = 137438953472.B }
withLabel: mem256gib { memory = 274877906944.B }
withLabel: mem512gib { memory = 549755813888.B }
withLabel: mem1tib { memory = 1099511627776.B }
withLabel: mem2tib { memory = 2199023255552.B }
withLabel: mem4tib { memory = 4398046511104.B }
withLabel: mem8tib { memory = 8796093022208.B }
withLabel: mem16tib { memory = 17592186044416.B }
withLabel: mem32tib { memory = 35184372088832.B }
withLabel: mem64tib { memory = 70368744177664.B }
withLabel: mem128tib { memory = 140737488355328.B }
withLabel: mem256tib { memory = 281474976710656.B }
withLabel: mem512tib { memory = 562949953421312.B }
withLabel: cpu1 { cpus = 1 }
withLabel: cpu2 { cpus = 2 }
withLabel: cpu5 { cpus = 5 }
withLabel: cpu10 { cpus = 10 }
withLabel: cpu20 { cpus = 20 }
withLabel: cpu50 { cpus = 50 }
withLabel: cpu100 { cpus = 100 }
withLabel: cpu200 { cpus = 200 }
withLabel: cpu500 { cpus = 500 }
withLabel: cpu1000 { cpus = 1000 }
}

View File

@@ -0,0 +1,78 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "prepare_genome",
"description": "Prepare genome and transcriptome FASTA files for STAR alignment by adding\nnecessary headers and creating a STAR index.\n",
"type": "object",
"$defs": {
"inputs": {
"title": "Inputs",
"type": "object",
"description": "No description",
"properties": {
"input_genome_fasta": {
"type": "string",
"format": "path",
"description": "",
"help_text": "Type: `file`, multiple: `False`, direction: `input`, example: `\"genome.fasta.gz\"`. "
},
"input_transcriptome_gtf": {
"type": "string",
"format": "path",
"description": "",
"help_text": "Type: `file`, multiple: `False`, direction: `input`, example: `\"genes.gtf.gz\"`. "
}
}
},
"outputs": {
"title": "Outputs",
"type": "object",
"description": "No description",
"properties": {
"output_genome_fasta": {
"type": "string",
"format": "path",
"description": "",
"help_text": "Type: `file`, multiple: `False`, default: `\"$id.$key.output_genome_fasta.fasta\"`, direction: `output`, example: `\"genome.fasta\"`. ",
"default": "$id.$key.output_genome_fasta.fasta"
},
"output_transcriptome_gtf": {
"type": "string",
"format": "path",
"description": "",
"help_text": "Type: `file`, multiple: `False`, default: `\"$id.$key.output_transcriptome_gtf.gtf\"`, direction: `output`, example: `\"transcriptome.gtf\"`. ",
"default": "$id.$key.output_transcriptome_gtf.gtf"
},
"output_star_index": {
"type": "string",
"format": "path",
"description": "",
"help_text": "Type: `file`, multiple: `False`, default: `\"$id.$key.output_star_index\"`, direction: `output`. ",
"default": "$id.$key.output_star_index"
}
}
},
"nextflow input-output arguments": {
"title": "Nextflow input-output arguments",
"type": "object",
"description": "Input/output parameters for Nextflow itself. Please note that both publishDir and publish_dir are supported but at least one has to be configured.",
"properties": {
"publish_dir": {
"type": "string",
"description": "Path to an output directory.",
"help_text": "Type: `string`, multiple: `False`, required, example: `\"output/\"`. "
}
}
}
},
"allOf": [
{
"$ref": "#/$defs/inputs"
},
{
"$ref": "#/$defs/outputs"
},
{
"$ref": "#/$defs/nextflow input-output arguments"
}
]
}