Build branch save-params with version save-params (dbca5cb)
Build pipeline: viash-hub.htrnaseq.save-params-jsfjj
Source commit: dbca5cbb3a
Source message: Apply suggestions from code review
28
CHANGELOG.md
@@ -1,3 +1,31 @@
|
||||
# htrnaseq v0.8.0
|
||||
|
||||
## New functionality
|
||||
|
||||
* `save_params`: added a component to save workflow input parameters as yaml (PR #48).
|
||||
|
||||
* Added `run_params` parameter to `htrnaseq` and `runner` workflows in order to save the input parameters
|
||||
used for the workflow run (PR #48).
|
||||
|
||||
# htrnaseq v0.7.2
|
||||
|
||||
## Documentation
|
||||
|
||||
* Update README (PR #54)
|
||||
|
||||
# htrnaseq v0.7.1
|
||||
|
||||
## Bug fixes
|
||||
|
||||
* Bump viash version to `0.9.4`. This adds support for nextflow versions starting major version 25.01 and
|
||||
fixes an issue where an integer being passed to a argument with `type: double` resulted in an error (PR #51).
|
||||
|
||||
* `reporting`: updated default colour mapping (PR #50).
|
||||
|
||||
## Minor changes
|
||||
|
||||
* `create_report`: bump bioconductor version to 3.21 in order to accommodate R version 4.5 (PR #52).
|
||||
|
||||
# htrnaseq v0.7.0
|
||||
|
||||
## Breaking changes
|
||||
|
||||
21
LICENSE
Normal file
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2021 OpenPipelines
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
292
README.md
@@ -1,129 +1,207 @@
|
||||
# HT-RNAseq - A pipeline for processing high-throughput RNA-seq data
|
||||
|
||||
|
||||
# HT-RNAseq
|
||||
|
||||
[](https://www.viash-hub.com/packages/htrnaseq)
|
||||
[](https://github.com/viash-hub/htrnaseq)
|
||||
[](https://github.com/viash-hub/htrnaseq/blob/main/LICENSE)
|
||||
[](https://github.com/viash-hub/htrnaseq/issues)
|
||||
[](https://viash.io)
|
||||
|
||||
## Introduction
|
||||
__TODO__: Add a description of the pipeline here.
|
||||
|
||||
## Test data
|
||||
This workflow is designed to process high-throughput RNA-seq data, where
|
||||
every well of a microarray plate is a sample. A fasta file provided as
|
||||
input defines the mapping between sample barcodes and wells.
|
||||
|
||||
As test data, we use [a DRUGseq dataset](https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE176150) from the [NCBI Sequence Read Archive](https://www.ncbi.nlm.nih.gov/sra).
|
||||
The workflow is built in a modular fashion, where most of the base
|
||||
functionality is provided by components from
|
||||
[`biobox`](https://www.viash-hub.com/packages/biobox/latest)
|
||||
supplemented by custom base components and workflow components in this
|
||||
package.
|
||||
|
||||
The original data has been (partly) subsampled to reduce the test runtime. We used [seqtk](https://github.com/lh3/seqtk) for this with a seed of 1, e.g.:
|
||||
The full workflow is split in two major subworkflows that can be run
|
||||
independently:
|
||||
|
||||
```bash
|
||||
- **Well-demultiplexing:** Split the input (plate/pool level) fastq
|
||||
files per well.
|
||||
- **Mapping, counting and QC:** Run per-well mapping, counting and
|
||||
generate QC reports.
|
||||
|
||||
Each of those can be started individually, or the full workflow can be
|
||||
run in two ways:
|
||||
|
||||
1. Run the [main
|
||||
workflow](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/htrnaseq)
|
||||
containing the main functionality.
|
||||
2. Run the [(opinionated)
|
||||
`runner`](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/runner)
|
||||
where a number of choices (input/output structure and location) have
|
||||
been made.
|
||||
|
||||
Input for the workflow has to be `fastq` files (zipped or not). For bcl
|
||||
or other formats, please consider running
|
||||
[demultiplex](https://www.viash-hub.com/packages/demultiplex) first.
|
||||
|
||||
``` mermaid lang="mermaid"
|
||||
flowchart TB
|
||||
subgraph runner [runner]
|
||||
direction TB
|
||||
subgraph htrnaseq [HT-RNAseq]
|
||||
direction LR
|
||||
demultiplex[Well demultiplexing]
|
||||
map
|
||||
report
|
||||
eset
|
||||
end
|
||||
end
|
||||
|
||||
demultiplex --> map --> report --> eset
|
||||
|
||||
class runner container
|
||||
class htrnaseq container
|
||||
class demultiplex container-inner
|
||||
class map container-inner
|
||||
class report container-inner
|
||||
class eset container-inner
|
||||
|
||||
class demultiplex node
|
||||
class map node
|
||||
class report node
|
||||
class eset node
|
||||
```
|
||||
|
||||
## Example usage
|
||||
|
||||
### Test and example data
|
||||
|
||||
If you want to explore this workflow, it’s possible to the use data we
|
||||
use as test data: [a DRUGseq
|
||||
dataset](https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE176150)
|
||||
from the [NCBI Sequence Read Archive](https://www.ncbi.nlm.nih.gov/sra).
|
||||
For the unit and integration tests, this data has been (partly)
|
||||
subsampled to reduce the test runtime. We used
|
||||
[seqtk](https://github.com/lh3/seqtk) for this with a seed of 1, e.g.:
|
||||
|
||||
``` bash
|
||||
seqtk sample -s1 orig/SRR14730302/VH02001614_S8_R1_001.fastq.gz 10000 > 10k/SRR14730302/VH02001614_S8_R1_001.fastq.gz
|
||||
```
|
||||
|
||||
The data is available at: `gs://viash-hub-test-data/htrnaseq/v1/`:
|
||||
This data is available at: `gs://viash-hub-resources/htrnaseq/v1/`.
|
||||
|
||||
```
|
||||
❯ gcstree -f viash-hub-test-data/htrnaseq/v1/
|
||||
viash-hub-test-data
|
||||
└── htrnaseq
|
||||
└── v1
|
||||
├── [ 48] 2-wells.fasta
|
||||
├── [465.3K] GSE176150_metadata.csv
|
||||
├── 100k
|
||||
│ ├── SRR14730301
|
||||
│ │ ├── [8.5M] VH02001612_S9_R1_001.fastq
|
||||
│ │ └── [14.9M] VH02001612_S9_R2_001.fastq
|
||||
│ └── SRR14730302
|
||||
│ ├── [8.5M] VH02001614_S8_R1_001.fastq.gz
|
||||
│ └── [14.9M] VH02001614_S8_R2_001.fastq.gz
|
||||
├── 10k
|
||||
│ ├── SRR14730301
|
||||
│ │ ├── [845.4K] VH02001612_S9_R1_001.fastq
|
||||
│ │ └── [1.5M] VH02001612_S9_R2_001.fastq
|
||||
│ └── SRR14730302
|
||||
│ ├── [845.3K] VH02001614_S8_R1_001.fastq.gz
|
||||
│ └── [1.5M] VH02001614_S8_R2_001.fastq.gz
|
||||
└── orig
|
||||
├── [20.4G] SRR14730301
|
||||
│ └── [20.4G] SRR14730301
|
||||
├── SRR14730301
|
||||
│ ├── [9.1G] VH02001612_S9_R1_001.fastq.gz
|
||||
│ └── [22.0G] VH02001612_S9_R2_001.fastq.gz
|
||||
├── [16.9G] SRR14730302
|
||||
│ └── [16.9G] SRR14730302
|
||||
├── SRR14730302
|
||||
│ ├── [7.6G] VH02001614_S8_R1_001.fastq.gz
|
||||
│ └── [18.0G] VH02001614_S8_R2_001.fastq.gz
|
||||
├── [18.0G] SRR14730303
|
||||
│ └── [18.0G] SRR14730303
|
||||
├── SRR14730303
|
||||
│ ├── [8.1G] VH02001618_S7_R1_001.fastq.gz
|
||||
│ └── [19.2G] VH02001618_S7_R2_001.fastq.gz
|
||||
├── [16.5G] SRR14730304
|
||||
│ └── [16.5G] SRR14730304
|
||||
├── SRR14730304
|
||||
│ ├── [7.5G] VH02001700_S6_R1_001.fastq.gz
|
||||
│ └── [17.8G] VH02001700_S6_R2_001.fastq.gz
|
||||
├── [19.0G] SRR14730305
|
||||
│ └── [19.0G] SRR14730305
|
||||
├── SRR14730305
|
||||
│ ├── [8.4G] VH02001702_S5_R1_001.fastq.gz
|
||||
│ └── [20.6G] VH02001702_S5_R2_001.fastq.gz
|
||||
├── [14.6G] SRR14730306
|
||||
│ └── [14.6G] SRR14730306
|
||||
├── SRR14730306
|
||||
│ ├── [6.6G] VH02001704_S4_R1_001.fastq.gz
|
||||
│ └── [16.0G] VH02001704_S4_R2_001.fastq.gz
|
||||
├── [21.5G] SRR14730307
|
||||
│ └── [21.5G] SRR14730307
|
||||
├── SRR14730307
|
||||
│ ├── [9.6G] VH02001708_S3_R1_001.fastq.gz
|
||||
│ └── [23.2G] VH02001708_S3_R2_001.fastq.gz
|
||||
├── [20.7G] SRR14730308
|
||||
│ └── [20.7G] SRR14730308
|
||||
├── SRR14730308
|
||||
│ ├── [9.3G] VH02001710_S2_R1_001.fastq.gz
|
||||
│ └── [22.1G] VH02001710_S2_R2_001.fastq.gz
|
||||
├── [15.8G] SRR14730309
|
||||
│ └── [15.8G] SRR14730309
|
||||
└── SRR14730309
|
||||
├── [7.2G] VH02001712_S1_R1_001.fastq.gz
|
||||
└── [16.9G] VH02001712_S1_R2_001.fastq.gz
|
||||
### Run from Viash Hub
|
||||
|
||||
18 directories, 37 files
|
||||
Open [Viash Hub](https://www.viash-hub.com) and browse to the [htrnaseq
|
||||
component](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/htrnaseq).
|
||||
Press the ‘Launch’ button and follow the instructions.
|
||||
|
||||

|
||||
|
||||
We will start an example run loading just one input and using a barcodes
|
||||
fasta file containing only 2 wells.
|
||||
|
||||
In the first step, we add the `local` profile to the list of profiles in
|
||||
order to limit the cpu and memory requirements of the workflow steps:
|
||||
|
||||

|
||||
|
||||
In the next step, we provide the paramters as follows:
|
||||
|
||||
- `input_r1`:
|
||||
`gs://viash-hub-test-data/htrnaseq/v1/100k/SRR14730301/VH02001612_S9_R1_001.fastq`
|
||||
- `input_r2`:
|
||||
`gs://viash-hub-test-data/htrnaseq/v1/100k/SRR14730301/VH02001612_S9_R2_001.fastq`
|
||||
- `genomeDir`:
|
||||
`gs://viash-hub-test-data/htrnaseq/v1/genomeDir/subset/Homo_sapiens/v0.0.3/`
|
||||
- `barcodesFasta`:
|
||||
`gs://viash-hub-test-data/htrnaseq/v1/2-wells-with-ids.fasta`
|
||||
- `annotation`:
|
||||
`gs://viash-hub-test-data/htrnaseq/v1/genomeDir/gencode.v41.annotation.gtf.gz`
|
||||
|
||||
Please note that both `input_r1` and `input_r2` can take multiple
|
||||
values. This means that one has to press ENTER after pasting the input
|
||||
path.
|
||||
|
||||

|
||||
|
||||
Press the ‘Launch’ button at the end to get the instructions on how to
|
||||
run the workflow from the CLI.
|
||||
|
||||
### Run using NF-Tower / Seqera Cloud
|
||||
|
||||
It’s possible to run the workflow directly from [Seqera
|
||||
Cloud](https://cloud.seqera.io). The necessary [Nextflow schema
|
||||
file](https://nextflow-io.github.io/nf-schema/latest/nextflow_schema/nextflow_schema_specification/)
|
||||
has been built and provided with the workflows in order to use the
|
||||
form-based input. However, Seqera Cloud can not deal with multiple-value
|
||||
parameters when using the form-based input. Therefore, it’s better to
|
||||
use Viash Hub also here:
|
||||
|
||||
First, select the option to run the workflow using Seqera Cloud. You
|
||||
will need to create an API token for your account. Once this token is
|
||||
filled in in the corresponding field, you will get the option to select
|
||||
a ‘Workspace’ and a ‘Compute environment’.
|
||||
|
||||

|
||||
|
||||
Next, we need to fill in the parameters for the run. This is similar to
|
||||
before:
|
||||
|
||||

|
||||
|
||||
In the next screen, pressing the ‘Launch’ button will actually start the
|
||||
workflow on Seqera Cloud. A message is shown when the submit was
|
||||
successful.
|
||||
|
||||

|
||||
|
||||
### Run from the CLI
|
||||
|
||||
Running from the CLI directly without using Viash hub is possible. The
|
||||
easiest is to just use the integrated help functionality, for instance
|
||||
using the following:
|
||||
|
||||
``` bash
|
||||
nextflow run https://packages.viash-hub.com/vsh/htrnaseq.git \
|
||||
-revision v0.3.0 \
|
||||
-main-script target/nextflow/workflows/runner/main.nf \
|
||||
--help
|
||||
```
|
||||
|
||||
### (Optional) Resource usage tuning
|
||||
|
||||
The `orig` directory contains the original fastq files. The fastq files are available for 10k and 100k subsamples in the `10k` and `100k` directories, respectively.
|
||||
Nextflow’s labels can be used to specify the amount of resources a
|
||||
process can use. This workflow uses the following labels for CPU and
|
||||
memory:
|
||||
|
||||
The `2-wells.fasta` file contains the barcodes for 2 wells.
|
||||
- `verylowmem`, `lowmem`, `midmem`, `highmem`
|
||||
- `verylowcpu`, `lowcpu`, `midcpu`, `highcpu`
|
||||
|
||||
## Test run
|
||||
The defaults for these labels can be found at
|
||||
`src/config/labels.config`. Nextflow checks that the specified resources
|
||||
for a process do not exceed what is available on the machine and will
|
||||
not start if it does. Create your own config file to tune the labels to
|
||||
your needs, for example:
|
||||
|
||||
The pipeline can be run by creating a `params.yaml` file like this:
|
||||
// Resource labels
|
||||
withLabel: verylowcpu { cpus = 2 }
|
||||
withLabel: lowcpu { cpus = 8 }
|
||||
withLabel: midcpu { cpus = 16 }
|
||||
withLabel: highcpu { cpus = 32 }
|
||||
|
||||
```yaml
|
||||
param_list:
|
||||
- input_r1: "gs://viash-hub-test-data/htrnaseq/v1/100k/SRR14730301/VH02001612_S9_R1_001.fastq"
|
||||
input_r2: "gs://viash-hub-test-data/htrnaseq/v1/100k/SRR14730301/VH02001612_S9_R2_001.fastq"
|
||||
genomeDir: "gs://viash-hub-test-data/htrnaseq/v1/genomeDir/gencode.v41.star.sparse"
|
||||
barcodesFasta: "gs://viash-hub-test-data/htrnaseq/v1/2-wells.fasta"
|
||||
id: sample_one
|
||||
- input_r1: "gs://viash-hub-test-data/htrnaseq/v1/100k/SRR14730302/VH02001614_S8_R1_001.fastq"
|
||||
input_r2: "gs://viash-hub-test-data/htrnaseq/v1/100k/SRR14730302/VH02001614_S8_R2_001.fastq"
|
||||
genomeDir: "gs://viash-hub-test-data/htrnaseq/v1/genomeDir/gencode.v41.star.sparse"
|
||||
barcodesFasta: "gs://viash-hub-test-data/htrnaseq/v1/2-wells.fasta"
|
||||
id: sample_two
|
||||
```
|
||||
withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } }
|
||||
withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } }
|
||||
withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } }
|
||||
|
||||
and then:
|
||||
When starting nextflow using the CLI, you can use `-c` to provide the
|
||||
file to nextflow and overwrite the defaults.
|
||||
|
||||
```bash
|
||||
viash ns build --setup cb
|
||||
nextflow run . -main-script target/nextflow/workflows/htrnaseq/main.nf \
|
||||
-profile docker \
|
||||
-c target/nextflow/workflows/htrnaseq/nextflow.config \
|
||||
-params-file params.yaml \
|
||||
-resume \
|
||||
--publish_dir output
|
||||
```
|
||||
## Contributions
|
||||
|
||||
Or, by running `src/workflows/htrnaseq/integration_test.sh`.
|
||||
Developed in collaboration with Data Intuitive and Open Analytics.
|
||||
|
||||
|
||||
# Special Thanks
|
||||
|
||||
Developed in collaboration with Data Intuitive and Open Analytics.
|
||||
Other contributions are welcome.
|
||||
|
||||
149
README.qmd
Normal file
@@ -0,0 +1,149 @@
|
||||
---
|
||||
format: gfm
|
||||
---
|
||||
|
||||
```{r setup, include=FALSE}
|
||||
project <- yaml::read_yaml("_viash.yaml")
|
||||
license <- paste0(project$links$repository, "/blob/main/LICENSE")
|
||||
contributing <- paste0(project$links$repository, "/blob/main/CONTRIBUTING.md")
|
||||
```
|
||||
|
||||
# HT-RNAseq
|
||||
|
||||
[](https://www.viash-hub.com/packages/`r project$name`)
|
||||
[](`r project$links$repository`)
|
||||
[](`r license`)
|
||||
[](`r project$links$issue_tracker`)
|
||||
[`-blue.svg)](https://viash.io)
|
||||
|
||||
## Introduction
|
||||
|
||||
`r project$description`
|
||||
|
||||
|
||||
```{mermaid lang='mermaid'}
|
||||
flowchart TB
|
||||
subgraph runner [runner]
|
||||
direction TB
|
||||
subgraph htrnaseq [HT-RNAseq]
|
||||
direction LR
|
||||
demultiplex[Well demultiplexing]
|
||||
map
|
||||
report
|
||||
eset
|
||||
end
|
||||
end
|
||||
|
||||
demultiplex --> map --> report --> eset
|
||||
|
||||
class runner container
|
||||
class htrnaseq container
|
||||
class demultiplex container-inner
|
||||
class map container-inner
|
||||
class report container-inner
|
||||
class eset container-inner
|
||||
|
||||
class demultiplex node
|
||||
class map node
|
||||
class report node
|
||||
class eset node
|
||||
```
|
||||
|
||||
|
||||
## Example usage
|
||||
|
||||
### Test and example data
|
||||
|
||||
If you want to explore this workflow, it's possible to the use data we use as test data: [a DRUGseq dataset](https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE176150) from the [NCBI Sequence Read Archive](https://www.ncbi.nlm.nih.gov/sra). For the unit and integration tests, this data has been (partly) subsampled to reduce the test runtime. We used [seqtk](https://github.com/lh3/seqtk) for this with a seed of 1, e.g.:
|
||||
|
||||
```bash
|
||||
seqtk sample -s1 orig/SRR14730302/VH02001614_S8_R1_001.fastq.gz 10000 > 10k/SRR14730302/VH02001614_S8_R1_001.fastq.gz
|
||||
```
|
||||
|
||||
This data is available at: `gs://viash-hub-test-data/htrnaseq/v1/`.
|
||||
|
||||
### Run from Viash Hub
|
||||
|
||||
Open [Viash Hub](https://www.viash-hub.com) and browse to the [htrnaseq component](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/htrnaseq). Press the 'Launch' button and follow the instructions.
|
||||
|
||||
|
||||

|
||||
|
||||
We will start an example run loading just one input and using a barcodes fasta file containing only 2 wells.
|
||||
|
||||
In the first step, we add the `local` profile to the list of profiles in order to limit the cpu and memory requirements of the workflow steps:
|
||||
|
||||
|
||||

|
||||
|
||||
In the next step, we provide the paramters as follows:
|
||||
|
||||
- `input_r1`: `gs://viash-hub-test-data/htrnaseq/v1/100k/SRR14730301/VH02001612_S9_R1_001.fastq`
|
||||
- `input_r2`: `gs://viash-hub-test-data/htrnaseq/v1/100k/SRR14730301/VH02001612_S9_R2_001.fastq`
|
||||
- `genomeDir`: `gs://viash-hub-test-data/htrnaseq/v1/genomeDir/subset/Homo_sapiens/v0.0.3/`
|
||||
- `barcodesFasta`: `gs://viash-hub-test-data/htrnaseq/v1/2-wells-with-ids.fasta`
|
||||
- `annotation`: `gs://viash-hub-test-data/htrnaseq/v1/genomeDir/gencode.v41.annotation.gtf.gz`
|
||||
|
||||
Please note that both `input_r1` and `input_r2` can take multiple values. This means that one has to press ENTER after pasting the input path.
|
||||
|
||||

|
||||
|
||||
Press the 'Launch' button at the end to get the instructions on how to run the workflow from the CLI.
|
||||
|
||||
|
||||
### Run using NF-Tower / Seqera Cloud
|
||||
|
||||
It's possible to run the workflow directly from [Seqera Cloud](https://cloud.seqera.io). The necessary [Nextflow schema file](https://nextflow-io.github.io/nf-schema/latest/nextflow_schema/nextflow_schema_specification/) has been built and provided with the workflows in order to use the form-based input. However, Seqera Cloud can not deal with multiple-value parameters when using the form-based input. Therefore, it's better to use Viash Hub also here:
|
||||
|
||||
First, select the option to run the workflow using Seqera Cloud. You will need to create an API token for your account. Once this token is filled in in the corresponding field, you will get the option to select a 'Workspace' and a 'Compute environment'.
|
||||
|
||||

|
||||
|
||||
Next, we need to fill in the parameters for the run. This is similar to before:
|
||||
|
||||

|
||||
|
||||
In the next screen, pressing the 'Launch' button will actually start the workflow on Seqera Cloud. A message is shown when the submit was successful.
|
||||
|
||||

|
||||
|
||||
### Run from the CLI
|
||||
|
||||
Running from the CLI directly without using Viash hub is possible. The easiest is to just use the integrated help functionality, for instance using the following:
|
||||
|
||||
```bash
|
||||
nextflow run https://packages.viash-hub.com/vsh/htrnaseq.git \
|
||||
-revision v0.3.0 \
|
||||
-main-script target/nextflow/workflows/runner/main.nf \
|
||||
--help
|
||||
```
|
||||
|
||||
### (Optional) Resource usage tuning
|
||||
|
||||
Nextflow's labels can be used to specify the amount of resources a process can use. This workflow uses the following labels for CPU and memory:
|
||||
|
||||
* `verylowmem`, `lowmem`, `midmem`, `highmem`
|
||||
* `verylowcpu`, `lowcpu`, `midcpu`, `highcpu`
|
||||
|
||||
The defaults for these labels can be found at `src/config/labels.config`. Nextflow checks that the specified resources for a process do not exceed what is available on the machine and will not start if it does. Create your own config file to tune the labels to your needs, for example:
|
||||
|
||||
```
|
||||
// Resource labels
|
||||
withLabel: verylowcpu { cpus = 2 }
|
||||
withLabel: lowcpu { cpus = 8 }
|
||||
withLabel: midcpu { cpus = 16 }
|
||||
withLabel: highcpu { cpus = 32 }
|
||||
|
||||
withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } }
|
||||
withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } }
|
||||
withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } }
|
||||
```
|
||||
|
||||
When starting nextflow using the CLI, you can use `-c` to provide the file to nextflow and overwrite the defaults.
|
||||
|
||||
## Contributions
|
||||
|
||||
Developed in collaboration with Data Intuitive and Open Analytics.
|
||||
|
||||
Other contributions are welcome.
|
||||
40
_viash.yaml
@@ -1,13 +1,47 @@
|
||||
name: htrnaseq
|
||||
summary: |
|
||||
A workflow for high-throughput RNA-seq data analyses.
|
||||
description: |
|
||||
High-throughput pipeline [WIP]
|
||||
This workflow is designed to process high-throughput RNA-seq data, where every
|
||||
well of a microarray plate is a sample. A fasta file provided as input
|
||||
defines the mapping between sample barcodes and wells.
|
||||
|
||||
The workflow is built in a modular fashion, where most of the base functionality
|
||||
is provided by components from [`biobox`](https://www.viash-hub.com/packages/biobox/latest)
|
||||
supplemented by custom base components and workflow components in this package.
|
||||
|
||||
The full workflow is split in two major subworkflows that can be run independently:
|
||||
|
||||
* **Well-demultiplexing:** Split the input (plate/pool level) fastq files per well.
|
||||
* **Mapping, counting and QC:** Run per-well mapping, counting and generate QC reports.
|
||||
|
||||
Each of those can be started individually, or the full workflow can be run in two ways:
|
||||
|
||||
1. Run the [main workflow](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/htrnaseq)
|
||||
containing the main functionality.
|
||||
2. Run the [(opinionated) `runner`](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/runner) where a
|
||||
number of choices (input/output structure and location) have been made.
|
||||
|
||||
Input for the workflow has to be `fastq` files (zipped or not). For bcl or other formats, please consider running
|
||||
[demultiplex](https://www.viash-hub.com/packages/demultiplex) first.
|
||||
|
||||
license: MIT
|
||||
keywords: [bioinformatics, sequence, high-throughput, mapping, counting, pipeline]
|
||||
keywords:
|
||||
[
|
||||
bioinformatics,
|
||||
sequencing,
|
||||
high-throughput,
|
||||
RNAseq,
|
||||
mapping,
|
||||
counting,
|
||||
pipeline,
|
||||
workflow,
|
||||
]
|
||||
links:
|
||||
issue_tracker: https://github.com/viash-hub/htrnaseq/issues
|
||||
repository: https://github.com/viash-hub/htrnaseq
|
||||
|
||||
viash_version: 0.9.2
|
||||
viash_version: 0.9.4
|
||||
|
||||
info:
|
||||
test_resources:
|
||||
|
||||
BIN
assets/htrnaseq-launch-small.png
Normal file
|
After Width: | Height: | Size: 39 KiB |
BIN
assets/htrnaseq-launch.png
Normal file
|
After Width: | Height: | Size: 131 KiB |
BIN
assets/launch-parameters-1-small.png
Normal file
|
After Width: | Height: | Size: 75 KiB |
BIN
assets/launch-parameters-1.png
Normal file
|
After Width: | Height: | Size: 123 KiB |
BIN
assets/launch-parameters-2-small.png
Normal file
|
After Width: | Height: | Size: 183 KiB |
BIN
assets/launch-parameters-2.png
Normal file
|
After Width: | Height: | Size: 280 KiB |
BIN
assets/launch-parameters-3-small.png
Normal file
|
After Width: | Height: | Size: 114 KiB |
BIN
assets/launch-parameters-3.png
Normal file
|
After Width: | Height: | Size: 183 KiB |
BIN
assets/launch-parameters-4-small.png
Normal file
|
After Width: | Height: | Size: 187 KiB |
BIN
assets/launch-parameters-4.png
Normal file
|
After Width: | Height: | Size: 287 KiB |
BIN
assets/launch-parameters-5-small.png
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
assets/launch-parameters-5.png
Normal file
|
After Width: | Height: | Size: 43 KiB |
@@ -27,7 +27,7 @@ process {
|
||||
withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } }
|
||||
withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } }
|
||||
withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 40.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } }
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -41,4 +41,4 @@ done
|
||||
|
||||
cp -rL "$par_html_report" "$par_output/"
|
||||
|
||||
cp -rL "$par_params" "$par_output/"
|
||||
cp -rL "$par_run_params" "$par_output/"
|
||||
|
||||
@@ -32,7 +32,7 @@ argument_groups:
|
||||
- name: "--html_report"
|
||||
type: file
|
||||
required: true
|
||||
- name: "--params"
|
||||
- name: "--run_params"
|
||||
type: file
|
||||
required: true
|
||||
- name: Output arguments
|
||||
|
||||
@@ -40,6 +40,10 @@ engines:
|
||||
packages:
|
||||
- procps
|
||||
- pandoc
|
||||
- type: r
|
||||
script:
|
||||
- install.packages("BiocManager")
|
||||
- BiocManager::install(version = "3.21", type = "source", checkBuilt = TRUE)
|
||||
- type: r
|
||||
bioc:
|
||||
- Biobase
|
||||
|
||||
@@ -283,15 +283,31 @@ plateLayout <- function(
|
||||
|
||||
if (is.null(colours)) {
|
||||
colours <- tryCatch({
|
||||
colorRamp2(
|
||||
circlize::colorRamp2(
|
||||
breaks = breaks,
|
||||
colors = brewer.pal(length(breaks), "Purples")
|
||||
)
|
||||
},
|
||||
error = function(cond) {
|
||||
return(c("#9370DB", "white"))
|
||||
error = function(cond){
|
||||
|
||||
message("Recomputed breaks for proper colour mapping")
|
||||
|
||||
breakValues <- plateValues$values
|
||||
breakValues[which(is.na(breakValues))] <- 0
|
||||
if (all(breakValues >= 0)) {
|
||||
breaks <- computeBreaks(7, max(plateValues$values, na.rm = TRUE))
|
||||
} else {
|
||||
breaks <- quantile(plateValues$values, probs = seq(0, 1, 0.125))
|
||||
}
|
||||
|
||||
circlize::colorRamp2(
|
||||
breaks = breaks,
|
||||
colors = brewer.pal(length(breaks), "Purples")
|
||||
)
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
ht <- Heatmap(
|
||||
plateValues$values,
|
||||
column_title = mainTitle, column_title_side = "top",
|
||||
@@ -425,6 +441,7 @@ computeBreaks <- function(nBreaks, variable) {
|
||||
)
|
||||
coefExp <- c(exp(coefSystem[1]), coefSystem[2])
|
||||
breaks <- coefExp[1] * exp((1:(nBreaks - 1)) * coefExp[2])
|
||||
breaks <- unique(c(0, breaks))
|
||||
}
|
||||
return(c(0, breaks))
|
||||
}
|
||||
return(breaks)
|
||||
}
|
||||
|
||||
@@ -88,7 +88,7 @@ argument_groups:
|
||||
direction: output
|
||||
required: true
|
||||
default: report.$id.html
|
||||
- name: "--params"
|
||||
- name: "--run_params"
|
||||
type: file
|
||||
direction: output
|
||||
required: false
|
||||
|
||||
@@ -12,6 +12,9 @@ workflow run_wf {
|
||||
}
|
||||
|
||||
| save_params.run(
|
||||
runIf: { id, state ->
|
||||
state.run_params != null
|
||||
},
|
||||
fromState: {id, state ->
|
||||
// Define the function before using it
|
||||
def convertPaths
|
||||
@@ -36,10 +39,10 @@ workflow run_wf {
|
||||
return [
|
||||
"id": id,
|
||||
"params_yaml": encodedYaml,
|
||||
"output": state.params
|
||||
"output": state.run_params
|
||||
]
|
||||
},
|
||||
toState: ["params": "output"]
|
||||
toState: ["run_params": "output"]
|
||||
)
|
||||
|
||||
// The featureData only has one requirement: the genome annotation.
|
||||
@@ -49,8 +52,6 @@ workflow run_wf {
|
||||
// input annotation file. In turn, the featureData file can joined into the original input
|
||||
// channel which allows it to be shared across events if required.
|
||||
f_data_ch = input_ch
|
||||
|
||||
|
||||
| toSortedList()
|
||||
| flatMap {ids_and_states ->
|
||||
def annotation_files = ids_and_states.inject([:]){ old_state, id_and_state ->
|
||||
@@ -60,7 +61,7 @@ workflow run_wf {
|
||||
return new_state
|
||||
}
|
||||
def file_names = annotation_files.keySet().collect{it.name}
|
||||
assert (file_names.toSet().size() == file_names.size()):
|
||||
assert (file_names.toSet().size() == file_names.size()),
|
||||
"Please make sure that the annotation files have unique file names."
|
||||
def new_states = annotation_files.collect{annotation_file, value ->
|
||||
def new_state = [annotation_file.name , ["annotation": annotation_file, "event_ids": value]]
|
||||
@@ -94,7 +95,7 @@ workflow run_wf {
|
||||
toState: {id, result, state ->
|
||||
def all_fastq = result.output_r1 + result.output_r2
|
||||
def output_dir = all_fastq.collect{it.parent}.unique()
|
||||
assert output_dir.size() == 1: "Expected output from well demultiplexing to reside into one directory."
|
||||
assert output_dir.size() == 1, "Expected output from well demultiplexing to reside into one directory."
|
||||
def new_state = state + [
|
||||
"input_r1": result.output_r1,
|
||||
"input_r2": result.output_r2,
|
||||
@@ -213,10 +214,10 @@ workflow run_wf {
|
||||
// Gather the keys from all states. for some state items,
|
||||
// we need gather all the different items from across the states
|
||||
def barcodes = states.collect{it.barcode}
|
||||
assert barcodes.clone().unique().size() == barcodes.size(): \
|
||||
assert barcodes.clone().unique().size() == barcodes.size(), \
|
||||
"Error when gathering information for pool ${id}, barcodes are not unique!"
|
||||
def well_ids = states.collect{it.well_id}
|
||||
assert well_ids.clone().unique().size() == well_ids.size(): \
|
||||
assert well_ids.clone().unique().size() == well_ids.size(), \
|
||||
"Error when gathering information for pool ${id}, well IDs are not unique!"
|
||||
def custom_state = [
|
||||
"input_r1": states.collect{it.input_r1},
|
||||
@@ -237,7 +238,7 @@ workflow run_wf {
|
||||
// All other state should have a unique value
|
||||
def old_state_items = other_state_keys.inject([:]){ old_state, argument_name ->
|
||||
argument_values = states.collect{it.get(argument_name)}.unique()
|
||||
assert argument_values.size() == 1: "Arguments should be the same across modalities. Please report this \
|
||||
assert argument_values.size() == 1, "Arguments should be the same across modalities. Please report this \
|
||||
as a bug. Argument name: $argument_name, \
|
||||
argument value: $argument_values"
|
||||
def argument_value
|
||||
@@ -350,12 +351,10 @@ workflow run_wf {
|
||||
"f_data": "f_data",
|
||||
"p_data": "p_data",
|
||||
"html_report": "html_report",
|
||||
"params": "params",
|
||||
"run_params": "run_params",
|
||||
"_meta": "_meta",
|
||||
])
|
||||
|
||||
| view
|
||||
|
||||
emit:
|
||||
output_ch
|
||||
}
|
||||
|
||||
@@ -28,10 +28,11 @@ argument_groups:
|
||||
type: integer
|
||||
min: 1
|
||||
default: 10
|
||||
- name: "--params"
|
||||
- name: "--run_params"
|
||||
type: file
|
||||
required: false
|
||||
default: params.$id.yaml
|
||||
direction: output
|
||||
default: params.yaml
|
||||
- name: Metadata arguments
|
||||
arguments:
|
||||
- name: --id
|
||||
|
||||
@@ -5,10 +5,10 @@ def version = get_version(viash_config)
|
||||
|
||||
workflow run_wf {
|
||||
take:
|
||||
input_ch
|
||||
raw_ch
|
||||
|
||||
main:
|
||||
htrnaseq_ch = input_ch
|
||||
input_ch = raw_ch
|
||||
// List the FASTQ files per input directory
|
||||
// Be careful: an event per lane is created!
|
||||
| map {id, state ->
|
||||
@@ -16,11 +16,21 @@ workflow run_wf {
|
||||
return [id, new_state]
|
||||
}
|
||||
|
||||
| view
|
||||
save_params_ch = input_ch
|
||||
| toSortedList()
|
||||
| map { states ->
|
||||
def new_id = "save_params"
|
||||
def all_states = states.collect{it[1]}
|
||||
def run_params_output_templates = all_states.collect{it.run_params}
|
||||
assert run_params_output_templates.unique().size() == 1: "The value for the 'run_params' parameter is not the same across runs."
|
||||
def new_state = ["run_params": run_params_output_templates[0], "all_states": all_states]
|
||||
return [new_id, new_state]
|
||||
}
|
||||
|
||||
| save_params.run(
|
||||
key: "save_params_runner",
|
||||
fromState: {id, state ->
|
||||
// Define the function before using it
|
||||
|
||||
def convertPaths
|
||||
convertPaths = { value ->
|
||||
if (value instanceof java.nio.file.Path)
|
||||
@@ -34,7 +44,7 @@ workflow run_wf {
|
||||
}
|
||||
|
||||
// Apply conversion to all state values
|
||||
def convertedState = state.collectEntries { k, v -> [(k): convertPaths(v)] }
|
||||
def convertedState = state.all_states.collect{it.collectEntries { k, v -> [(k): convertPaths(v)] }}
|
||||
|
||||
def yaml = new org.yaml.snakeyaml.Yaml()
|
||||
def yamlString = yaml.dump(convertedState)
|
||||
@@ -43,12 +53,13 @@ workflow run_wf {
|
||||
return [
|
||||
"id": id,
|
||||
"params_yaml": encodedYaml,
|
||||
"output": state.params
|
||||
"output": state.run_params
|
||||
]
|
||||
},
|
||||
toState: ["params": "output"]
|
||||
toState: ["run_params": "output"]
|
||||
)
|
||||
|
||||
|
||||
htrnaseq_ch = input_ch
|
||||
| listInputDir.run(
|
||||
fromState: [
|
||||
"input": "input",
|
||||
@@ -93,7 +104,7 @@ workflow run_wf {
|
||||
nrReadsNrGenesPerChrom: 'nrReadsNrGenesPerChrom/$id.txt',
|
||||
star_qc_metrics: 'starLogs/$id.txt',
|
||||
html_report: "report.html",
|
||||
params: null
|
||||
run_params: null
|
||||
],
|
||||
fromState: [
|
||||
input_r1: "r1",
|
||||
@@ -129,7 +140,6 @@ workflow run_wf {
|
||||
p_data: reduce_paths(vs.collect{ it[1].p_data }),
|
||||
fastq_output: vs.collect{ it[1].fastq_output }.flatten().unique(),
|
||||
html_report: vs.collect{ it[1].html_report }[0], // The report is for all pools
|
||||
params: vs.collect{ it[1].params }[0],
|
||||
plain_output: vs.collect{ it[1].plain_output }[0],
|
||||
project_id: vs.collect{ it[1].project_id }[0],
|
||||
experiment_id: vs.collect{ it[1].experiment_id }[0]
|
||||
@@ -137,7 +147,14 @@ workflow run_wf {
|
||||
]
|
||||
}
|
||||
|
||||
results_publish_ch = grouped_ch
|
||||
grouped_with_params_list_ch = grouped_ch.combine(save_params_ch)
|
||||
| map {new_id, grouped_ch_state, save_params_id, save_params_state ->
|
||||
def new_state = grouped_ch_state + ["run_params": save_params_state.run_params]
|
||||
return [new_id, new_state]
|
||||
|
||||
}
|
||||
|
||||
results_publish_ch = grouped_with_params_list_ch
|
||||
| publish_results.run(
|
||||
fromState: { id, state ->
|
||||
def project = (state.plain_output) ? id : "${state.project_id}"
|
||||
@@ -161,7 +178,7 @@ workflow run_wf {
|
||||
f_data: state.f_data,
|
||||
p_data: state.p_data,
|
||||
html_report: state.html_report,
|
||||
params: state.params,
|
||||
run_params: state.run_params,
|
||||
output: "${id2}"
|
||||
]
|
||||
},
|
||||
|
||||
@@ -202,18 +202,35 @@ build_info:
|
||||
engine: "docker|native"
|
||||
output: "target/executable/eset/create_eset"
|
||||
executable: "target/executable/eset/create_eset/create_eset"
|
||||
viash_version: "0.9.2"
|
||||
git_commit: "cc910b428428dd32f183df0c2009fc36e75394e0"
|
||||
viash_version: "0.9.4"
|
||||
git_commit: "dbca5cbb3a338287f516c79705fc607bcf0905f7"
|
||||
git_remote: "https://github.com/viash-hub/htrnaseq"
|
||||
git_tag: "v0.7.2-21-gdbca5cb"
|
||||
package_config:
|
||||
name: "htrnaseq"
|
||||
version: "save-params"
|
||||
description: "High-throughput pipeline [WIP]\n"
|
||||
summary: "A workflow for high-throughput RNA-seq data analyses.\n"
|
||||
description: "This workflow is designed to process high-throughput RNA-seq data,\
|
||||
\ where every\nwell of a microarray plate is a sample. A fasta file provided as\
|
||||
\ input\ndefines the mapping between sample barcodes and wells.\n\nThe workflow\
|
||||
\ is built in a modular fashion, where most of the base functionality\nis provided\
|
||||
\ by components from [`biobox`](https://www.viash-hub.com/packages/biobox/latest)\n\
|
||||
supplemented by custom base components and workflow components in this package.\n\
|
||||
\nThe full workflow is split in two major subworkflows that can be run independently:\n\
|
||||
\n* **Well-demultiplexing:** Split the input (plate/pool level) fastq files per\
|
||||
\ well.\n* **Mapping, counting and QC:** Run per-well mapping, counting and generate\
|
||||
\ QC reports.\n\nEach of those can be started individually, or the full workflow\
|
||||
\ can be run in two ways:\n\n1. Run the [main workflow](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/htrnaseq)\
|
||||
\ \ncontaining the main functionality.\n2. Run the [(opinionated) `runner`](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/runner)\
|
||||
\ where a\nnumber of choices (input/output structure and location) have been made.\n\
|
||||
\nInput for the workflow has to be `fastq` files (zipped or not). For bcl or other\
|
||||
\ formats, please consider running\n[demultiplex](https://www.viash-hub.com/packages/demultiplex)\
|
||||
\ first.\n"
|
||||
info:
|
||||
test_resources:
|
||||
- path: "gs://viash-hub-test-data/htrnaseq/v1/"
|
||||
dest: "resources_test"
|
||||
viash_version: "0.9.2"
|
||||
viash_version: "0.9.4"
|
||||
source: "src"
|
||||
target: "target"
|
||||
config_mods:
|
||||
@@ -225,11 +242,13 @@ package_config:
|
||||
- ".engines[.type == 'docker'].target_tag := 'save-params'"
|
||||
keywords:
|
||||
- "bioinformatics"
|
||||
- "sequence"
|
||||
- "sequencing"
|
||||
- "high-throughput"
|
||||
- "RNAseq"
|
||||
- "mapping"
|
||||
- "counting"
|
||||
- "pipeline"
|
||||
- "workflow"
|
||||
license: "MIT"
|
||||
organization: "vsh"
|
||||
links:
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
# create_eset save-params
|
||||
#
|
||||
# This wrapper script is auto-generated by viash 0.9.2 and is thus a derivative
|
||||
# This wrapper script is auto-generated by viash 0.9.4 and is thus a derivative
|
||||
# work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data
|
||||
# Intuitive.
|
||||
#
|
||||
@@ -456,9 +456,9 @@ RUN Rscript -e 'options(warn = 2); if (!requireNamespace("remotes", quietly = TR
|
||||
|
||||
LABEL org.opencontainers.image.authors="Dries Schaumont, Marijke Van Moerbeke"
|
||||
LABEL org.opencontainers.image.description="Companion container for running component eset create_eset"
|
||||
LABEL org.opencontainers.image.created="2025-05-06T14:35:25Z"
|
||||
LABEL org.opencontainers.image.created="2025-05-08T12:21:45Z"
|
||||
LABEL org.opencontainers.image.source="https://github.com/viash-hub/htrnaseq"
|
||||
LABEL org.opencontainers.image.revision="cc910b428428dd32f183df0c2009fc36e75394e0"
|
||||
LABEL org.opencontainers.image.revision="dbca5cbb3a338287f516c79705fc607bcf0905f7"
|
||||
LABEL org.opencontainers.image.version="save-params"
|
||||
|
||||
VIASHDOCKER
|
||||
|
||||
@@ -27,7 +27,7 @@ process {
|
||||
withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } }
|
||||
withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } }
|
||||
withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 40.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } }
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -179,18 +179,35 @@ build_info:
|
||||
engine: "docker|native"
|
||||
output: "target/executable/eset/create_fdata"
|
||||
executable: "target/executable/eset/create_fdata/create_fdata"
|
||||
viash_version: "0.9.2"
|
||||
git_commit: "cc910b428428dd32f183df0c2009fc36e75394e0"
|
||||
viash_version: "0.9.4"
|
||||
git_commit: "dbca5cbb3a338287f516c79705fc607bcf0905f7"
|
||||
git_remote: "https://github.com/viash-hub/htrnaseq"
|
||||
git_tag: "v0.7.2-21-gdbca5cb"
|
||||
package_config:
|
||||
name: "htrnaseq"
|
||||
version: "save-params"
|
||||
description: "High-throughput pipeline [WIP]\n"
|
||||
summary: "A workflow for high-throughput RNA-seq data analyses.\n"
|
||||
description: "This workflow is designed to process high-throughput RNA-seq data,\
|
||||
\ where every\nwell of a microarray plate is a sample. A fasta file provided as\
|
||||
\ input\ndefines the mapping between sample barcodes and wells.\n\nThe workflow\
|
||||
\ is built in a modular fashion, where most of the base functionality\nis provided\
|
||||
\ by components from [`biobox`](https://www.viash-hub.com/packages/biobox/latest)\n\
|
||||
supplemented by custom base components and workflow components in this package.\n\
|
||||
\nThe full workflow is split in two major subworkflows that can be run independently:\n\
|
||||
\n* **Well-demultiplexing:** Split the input (plate/pool level) fastq files per\
|
||||
\ well.\n* **Mapping, counting and QC:** Run per-well mapping, counting and generate\
|
||||
\ QC reports.\n\nEach of those can be started individually, or the full workflow\
|
||||
\ can be run in two ways:\n\n1. Run the [main workflow](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/htrnaseq)\
|
||||
\ \ncontaining the main functionality.\n2. Run the [(opinionated) `runner`](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/runner)\
|
||||
\ where a\nnumber of choices (input/output structure and location) have been made.\n\
|
||||
\nInput for the workflow has to be `fastq` files (zipped or not). For bcl or other\
|
||||
\ formats, please consider running\n[demultiplex](https://www.viash-hub.com/packages/demultiplex)\
|
||||
\ first.\n"
|
||||
info:
|
||||
test_resources:
|
||||
- path: "gs://viash-hub-test-data/htrnaseq/v1/"
|
||||
dest: "resources_test"
|
||||
viash_version: "0.9.2"
|
||||
viash_version: "0.9.4"
|
||||
source: "src"
|
||||
target: "target"
|
||||
config_mods:
|
||||
@@ -202,11 +219,13 @@ package_config:
|
||||
- ".engines[.type == 'docker'].target_tag := 'save-params'"
|
||||
keywords:
|
||||
- "bioinformatics"
|
||||
- "sequence"
|
||||
- "sequencing"
|
||||
- "high-throughput"
|
||||
- "RNAseq"
|
||||
- "mapping"
|
||||
- "counting"
|
||||
- "pipeline"
|
||||
- "workflow"
|
||||
license: "MIT"
|
||||
organization: "vsh"
|
||||
links:
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
# create_fdata save-params
|
||||
#
|
||||
# This wrapper script is auto-generated by viash 0.9.2 and is thus a derivative
|
||||
# This wrapper script is auto-generated by viash 0.9.4 and is thus a derivative
|
||||
# work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data
|
||||
# Intuitive.
|
||||
#
|
||||
@@ -458,9 +458,9 @@ RUN pip install --upgrade pip && \
|
||||
|
||||
LABEL org.opencontainers.image.authors="Dries Schaumont, Marijke Van Moerbeke"
|
||||
LABEL org.opencontainers.image.description="Companion container for running component eset create_fdata"
|
||||
LABEL org.opencontainers.image.created="2025-05-06T14:35:25Z"
|
||||
LABEL org.opencontainers.image.created="2025-05-08T12:21:45Z"
|
||||
LABEL org.opencontainers.image.source="https://github.com/viash-hub/htrnaseq"
|
||||
LABEL org.opencontainers.image.revision="cc910b428428dd32f183df0c2009fc36e75394e0"
|
||||
LABEL org.opencontainers.image.revision="dbca5cbb3a338287f516c79705fc607bcf0905f7"
|
||||
LABEL org.opencontainers.image.version="save-params"
|
||||
|
||||
VIASHDOCKER
|
||||
|
||||
@@ -27,7 +27,7 @@ process {
|
||||
withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } }
|
||||
withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } }
|
||||
withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 40.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } }
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -193,18 +193,35 @@ build_info:
|
||||
engine: "docker|native"
|
||||
output: "target/executable/eset/create_pdata"
|
||||
executable: "target/executable/eset/create_pdata/create_pdata"
|
||||
viash_version: "0.9.2"
|
||||
git_commit: "cc910b428428dd32f183df0c2009fc36e75394e0"
|
||||
viash_version: "0.9.4"
|
||||
git_commit: "dbca5cbb3a338287f516c79705fc607bcf0905f7"
|
||||
git_remote: "https://github.com/viash-hub/htrnaseq"
|
||||
git_tag: "v0.7.2-21-gdbca5cb"
|
||||
package_config:
|
||||
name: "htrnaseq"
|
||||
version: "save-params"
|
||||
description: "High-throughput pipeline [WIP]\n"
|
||||
summary: "A workflow for high-throughput RNA-seq data analyses.\n"
|
||||
description: "This workflow is designed to process high-throughput RNA-seq data,\
|
||||
\ where every\nwell of a microarray plate is a sample. A fasta file provided as\
|
||||
\ input\ndefines the mapping between sample barcodes and wells.\n\nThe workflow\
|
||||
\ is built in a modular fashion, where most of the base functionality\nis provided\
|
||||
\ by components from [`biobox`](https://www.viash-hub.com/packages/biobox/latest)\n\
|
||||
supplemented by custom base components and workflow components in this package.\n\
|
||||
\nThe full workflow is split in two major subworkflows that can be run independently:\n\
|
||||
\n* **Well-demultiplexing:** Split the input (plate/pool level) fastq files per\
|
||||
\ well.\n* **Mapping, counting and QC:** Run per-well mapping, counting and generate\
|
||||
\ QC reports.\n\nEach of those can be started individually, or the full workflow\
|
||||
\ can be run in two ways:\n\n1. Run the [main workflow](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/htrnaseq)\
|
||||
\ \ncontaining the main functionality.\n2. Run the [(opinionated) `runner`](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/runner)\
|
||||
\ where a\nnumber of choices (input/output structure and location) have been made.\n\
|
||||
\nInput for the workflow has to be `fastq` files (zipped or not). For bcl or other\
|
||||
\ formats, please consider running\n[demultiplex](https://www.viash-hub.com/packages/demultiplex)\
|
||||
\ first.\n"
|
||||
info:
|
||||
test_resources:
|
||||
- path: "gs://viash-hub-test-data/htrnaseq/v1/"
|
||||
dest: "resources_test"
|
||||
viash_version: "0.9.2"
|
||||
viash_version: "0.9.4"
|
||||
source: "src"
|
||||
target: "target"
|
||||
config_mods:
|
||||
@@ -216,11 +233,13 @@ package_config:
|
||||
- ".engines[.type == 'docker'].target_tag := 'save-params'"
|
||||
keywords:
|
||||
- "bioinformatics"
|
||||
- "sequence"
|
||||
- "sequencing"
|
||||
- "high-throughput"
|
||||
- "RNAseq"
|
||||
- "mapping"
|
||||
- "counting"
|
||||
- "pipeline"
|
||||
- "workflow"
|
||||
license: "MIT"
|
||||
organization: "vsh"
|
||||
links:
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
# create_pdata save-params
|
||||
#
|
||||
# This wrapper script is auto-generated by viash 0.9.2 and is thus a derivative
|
||||
# This wrapper script is auto-generated by viash 0.9.4 and is thus a derivative
|
||||
# work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data
|
||||
# Intuitive.
|
||||
#
|
||||
@@ -458,9 +458,9 @@ RUN pip install --upgrade pip && \
|
||||
|
||||
LABEL org.opencontainers.image.authors="Dries Schaumont, Marijke Van Moerbeke"
|
||||
LABEL org.opencontainers.image.description="Companion container for running component eset create_pdata"
|
||||
LABEL org.opencontainers.image.created="2025-05-06T14:35:26Z"
|
||||
LABEL org.opencontainers.image.created="2025-05-08T12:21:45Z"
|
||||
LABEL org.opencontainers.image.source="https://github.com/viash-hub/htrnaseq"
|
||||
LABEL org.opencontainers.image.revision="cc910b428428dd32f183df0c2009fc36e75394e0"
|
||||
LABEL org.opencontainers.image.revision="dbca5cbb3a338287f516c79705fc607bcf0905f7"
|
||||
LABEL org.opencontainers.image.version="save-params"
|
||||
|
||||
VIASHDOCKER
|
||||
|
||||
@@ -27,7 +27,7 @@ process {
|
||||
withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } }
|
||||
withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } }
|
||||
withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 40.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } }
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -151,18 +151,35 @@ build_info:
|
||||
engine: "docker|native"
|
||||
output: "target/executable/integration_test_components/htrnaseq/check_eset"
|
||||
executable: "target/executable/integration_test_components/htrnaseq/check_eset/check_eset"
|
||||
viash_version: "0.9.2"
|
||||
git_commit: "cc910b428428dd32f183df0c2009fc36e75394e0"
|
||||
viash_version: "0.9.4"
|
||||
git_commit: "dbca5cbb3a338287f516c79705fc607bcf0905f7"
|
||||
git_remote: "https://github.com/viash-hub/htrnaseq"
|
||||
git_tag: "v0.7.2-21-gdbca5cb"
|
||||
package_config:
|
||||
name: "htrnaseq"
|
||||
version: "save-params"
|
||||
description: "High-throughput pipeline [WIP]\n"
|
||||
summary: "A workflow for high-throughput RNA-seq data analyses.\n"
|
||||
description: "This workflow is designed to process high-throughput RNA-seq data,\
|
||||
\ where every\nwell of a microarray plate is a sample. A fasta file provided as\
|
||||
\ input\ndefines the mapping between sample barcodes and wells.\n\nThe workflow\
|
||||
\ is built in a modular fashion, where most of the base functionality\nis provided\
|
||||
\ by components from [`biobox`](https://www.viash-hub.com/packages/biobox/latest)\n\
|
||||
supplemented by custom base components and workflow components in this package.\n\
|
||||
\nThe full workflow is split in two major subworkflows that can be run independently:\n\
|
||||
\n* **Well-demultiplexing:** Split the input (plate/pool level) fastq files per\
|
||||
\ well.\n* **Mapping, counting and QC:** Run per-well mapping, counting and generate\
|
||||
\ QC reports.\n\nEach of those can be started individually, or the full workflow\
|
||||
\ can be run in two ways:\n\n1. Run the [main workflow](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/htrnaseq)\
|
||||
\ \ncontaining the main functionality.\n2. Run the [(opinionated) `runner`](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/runner)\
|
||||
\ where a\nnumber of choices (input/output structure and location) have been made.\n\
|
||||
\nInput for the workflow has to be `fastq` files (zipped or not). For bcl or other\
|
||||
\ formats, please consider running\n[demultiplex](https://www.viash-hub.com/packages/demultiplex)\
|
||||
\ first.\n"
|
||||
info:
|
||||
test_resources:
|
||||
- path: "gs://viash-hub-test-data/htrnaseq/v1/"
|
||||
dest: "resources_test"
|
||||
viash_version: "0.9.2"
|
||||
viash_version: "0.9.4"
|
||||
source: "src"
|
||||
target: "target"
|
||||
config_mods:
|
||||
@@ -174,11 +191,13 @@ package_config:
|
||||
- ".engines[.type == 'docker'].target_tag := 'save-params'"
|
||||
keywords:
|
||||
- "bioinformatics"
|
||||
- "sequence"
|
||||
- "sequencing"
|
||||
- "high-throughput"
|
||||
- "RNAseq"
|
||||
- "mapping"
|
||||
- "counting"
|
||||
- "pipeline"
|
||||
- "workflow"
|
||||
license: "MIT"
|
||||
organization: "vsh"
|
||||
links:
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
# check_eset save-params
|
||||
#
|
||||
# This wrapper script is auto-generated by viash 0.9.2 and is thus a derivative
|
||||
# This wrapper script is auto-generated by viash 0.9.4 and is thus a derivative
|
||||
# work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data
|
||||
# Intuitive.
|
||||
#
|
||||
@@ -455,9 +455,9 @@ RUN Rscript -e 'options(warn = 2); if (!requireNamespace("remotes", quietly = TR
|
||||
|
||||
LABEL org.opencontainers.image.authors="Dries Schaumont"
|
||||
LABEL org.opencontainers.image.description="Companion container for running component integration_test_components/htrnaseq check_eset"
|
||||
LABEL org.opencontainers.image.created="2025-05-06T14:35:24Z"
|
||||
LABEL org.opencontainers.image.created="2025-05-08T12:21:44Z"
|
||||
LABEL org.opencontainers.image.source="https://github.com/viash-hub/htrnaseq"
|
||||
LABEL org.opencontainers.image.revision="cc910b428428dd32f183df0c2009fc36e75394e0"
|
||||
LABEL org.opencontainers.image.revision="dbca5cbb3a338287f516c79705fc607bcf0905f7"
|
||||
LABEL org.opencontainers.image.version="save-params"
|
||||
|
||||
VIASHDOCKER
|
||||
|
||||
@@ -27,7 +27,7 @@ process {
|
||||
withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } }
|
||||
withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } }
|
||||
withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 40.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } }
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -160,18 +160,35 @@ build_info:
|
||||
engine: "docker|native"
|
||||
output: "target/executable/integration_test_components/well_demultiplexing/check_cutadapt_output"
|
||||
executable: "target/executable/integration_test_components/well_demultiplexing/check_cutadapt_output/check_cutadapt_output"
|
||||
viash_version: "0.9.2"
|
||||
git_commit: "cc910b428428dd32f183df0c2009fc36e75394e0"
|
||||
viash_version: "0.9.4"
|
||||
git_commit: "dbca5cbb3a338287f516c79705fc607bcf0905f7"
|
||||
git_remote: "https://github.com/viash-hub/htrnaseq"
|
||||
git_tag: "v0.7.2-21-gdbca5cb"
|
||||
package_config:
|
||||
name: "htrnaseq"
|
||||
version: "save-params"
|
||||
description: "High-throughput pipeline [WIP]\n"
|
||||
summary: "A workflow for high-throughput RNA-seq data analyses.\n"
|
||||
description: "This workflow is designed to process high-throughput RNA-seq data,\
|
||||
\ where every\nwell of a microarray plate is a sample. A fasta file provided as\
|
||||
\ input\ndefines the mapping between sample barcodes and wells.\n\nThe workflow\
|
||||
\ is built in a modular fashion, where most of the base functionality\nis provided\
|
||||
\ by components from [`biobox`](https://www.viash-hub.com/packages/biobox/latest)\n\
|
||||
supplemented by custom base components and workflow components in this package.\n\
|
||||
\nThe full workflow is split in two major subworkflows that can be run independently:\n\
|
||||
\n* **Well-demultiplexing:** Split the input (plate/pool level) fastq files per\
|
||||
\ well.\n* **Mapping, counting and QC:** Run per-well mapping, counting and generate\
|
||||
\ QC reports.\n\nEach of those can be started individually, or the full workflow\
|
||||
\ can be run in two ways:\n\n1. Run the [main workflow](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/htrnaseq)\
|
||||
\ \ncontaining the main functionality.\n2. Run the [(opinionated) `runner`](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/runner)\
|
||||
\ where a\nnumber of choices (input/output structure and location) have been made.\n\
|
||||
\nInput for the workflow has to be `fastq` files (zipped or not). For bcl or other\
|
||||
\ formats, please consider running\n[demultiplex](https://www.viash-hub.com/packages/demultiplex)\
|
||||
\ first.\n"
|
||||
info:
|
||||
test_resources:
|
||||
- path: "gs://viash-hub-test-data/htrnaseq/v1/"
|
||||
dest: "resources_test"
|
||||
viash_version: "0.9.2"
|
||||
viash_version: "0.9.4"
|
||||
source: "src"
|
||||
target: "target"
|
||||
config_mods:
|
||||
@@ -183,11 +200,13 @@ package_config:
|
||||
- ".engines[.type == 'docker'].target_tag := 'save-params'"
|
||||
keywords:
|
||||
- "bioinformatics"
|
||||
- "sequence"
|
||||
- "sequencing"
|
||||
- "high-throughput"
|
||||
- "RNAseq"
|
||||
- "mapping"
|
||||
- "counting"
|
||||
- "pipeline"
|
||||
- "workflow"
|
||||
license: "MIT"
|
||||
organization: "vsh"
|
||||
links:
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
# check_cutadapt_output save-params
|
||||
#
|
||||
# This wrapper script is auto-generated by viash 0.9.2 and is thus a derivative
|
||||
# This wrapper script is auto-generated by viash 0.9.4 and is thus a derivative
|
||||
# work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data
|
||||
# Intuitive.
|
||||
#
|
||||
@@ -457,9 +457,9 @@ RUN pip install --upgrade pip && \
|
||||
|
||||
LABEL org.opencontainers.image.authors="Dries Schaumont"
|
||||
LABEL org.opencontainers.image.description="Companion container for running component integration_test_components/well_demultiplexing check_cutadapt_output"
|
||||
LABEL org.opencontainers.image.created="2025-05-06T14:35:26Z"
|
||||
LABEL org.opencontainers.image.created="2025-05-08T12:21:46Z"
|
||||
LABEL org.opencontainers.image.source="https://github.com/viash-hub/htrnaseq"
|
||||
LABEL org.opencontainers.image.revision="cc910b428428dd32f183df0c2009fc36e75394e0"
|
||||
LABEL org.opencontainers.image.revision="dbca5cbb3a338287f516c79705fc607bcf0905f7"
|
||||
LABEL org.opencontainers.image.version="save-params"
|
||||
|
||||
VIASHDOCKER
|
||||
|
||||
@@ -27,7 +27,7 @@ process {
|
||||
withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } }
|
||||
withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } }
|
||||
withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 40.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } }
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -135,18 +135,35 @@ build_info:
|
||||
engine: "docker|native"
|
||||
output: "target/executable/io/publish_fastqs"
|
||||
executable: "target/executable/io/publish_fastqs/publish_fastqs"
|
||||
viash_version: "0.9.2"
|
||||
git_commit: "cc910b428428dd32f183df0c2009fc36e75394e0"
|
||||
viash_version: "0.9.4"
|
||||
git_commit: "dbca5cbb3a338287f516c79705fc607bcf0905f7"
|
||||
git_remote: "https://github.com/viash-hub/htrnaseq"
|
||||
git_tag: "v0.7.2-21-gdbca5cb"
|
||||
package_config:
|
||||
name: "htrnaseq"
|
||||
version: "save-params"
|
||||
description: "High-throughput pipeline [WIP]\n"
|
||||
summary: "A workflow for high-throughput RNA-seq data analyses.\n"
|
||||
description: "This workflow is designed to process high-throughput RNA-seq data,\
|
||||
\ where every\nwell of a microarray plate is a sample. A fasta file provided as\
|
||||
\ input\ndefines the mapping between sample barcodes and wells.\n\nThe workflow\
|
||||
\ is built in a modular fashion, where most of the base functionality\nis provided\
|
||||
\ by components from [`biobox`](https://www.viash-hub.com/packages/biobox/latest)\n\
|
||||
supplemented by custom base components and workflow components in this package.\n\
|
||||
\nThe full workflow is split in two major subworkflows that can be run independently:\n\
|
||||
\n* **Well-demultiplexing:** Split the input (plate/pool level) fastq files per\
|
||||
\ well.\n* **Mapping, counting and QC:** Run per-well mapping, counting and generate\
|
||||
\ QC reports.\n\nEach of those can be started individually, or the full workflow\
|
||||
\ can be run in two ways:\n\n1. Run the [main workflow](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/htrnaseq)\
|
||||
\ \ncontaining the main functionality.\n2. Run the [(opinionated) `runner`](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/runner)\
|
||||
\ where a\nnumber of choices (input/output structure and location) have been made.\n\
|
||||
\nInput for the workflow has to be `fastq` files (zipped or not). For bcl or other\
|
||||
\ formats, please consider running\n[demultiplex](https://www.viash-hub.com/packages/demultiplex)\
|
||||
\ first.\n"
|
||||
info:
|
||||
test_resources:
|
||||
- path: "gs://viash-hub-test-data/htrnaseq/v1/"
|
||||
dest: "resources_test"
|
||||
viash_version: "0.9.2"
|
||||
viash_version: "0.9.4"
|
||||
source: "src"
|
||||
target: "target"
|
||||
config_mods:
|
||||
@@ -158,11 +175,13 @@ package_config:
|
||||
- ".engines[.type == 'docker'].target_tag := 'save-params'"
|
||||
keywords:
|
||||
- "bioinformatics"
|
||||
- "sequence"
|
||||
- "sequencing"
|
||||
- "high-throughput"
|
||||
- "RNAseq"
|
||||
- "mapping"
|
||||
- "counting"
|
||||
- "pipeline"
|
||||
- "workflow"
|
||||
license: "MIT"
|
||||
organization: "vsh"
|
||||
links:
|
||||
|
||||
@@ -27,7 +27,7 @@ process {
|
||||
withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } }
|
||||
withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } }
|
||||
withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 40.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } }
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
# publish_fastqs save-params
|
||||
#
|
||||
# This wrapper script is auto-generated by viash 0.9.2 and is thus a derivative
|
||||
# This wrapper script is auto-generated by viash 0.9.4 and is thus a derivative
|
||||
# work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data
|
||||
# Intuitive.
|
||||
#
|
||||
@@ -450,9 +450,9 @@ RUN apt-get update && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
LABEL org.opencontainers.image.description="Companion container for running component io publish_fastqs"
|
||||
LABEL org.opencontainers.image.created="2025-05-06T14:35:25Z"
|
||||
LABEL org.opencontainers.image.created="2025-05-08T12:21:44Z"
|
||||
LABEL org.opencontainers.image.source="https://github.com/viash-hub/htrnaseq"
|
||||
LABEL org.opencontainers.image.revision="cc910b428428dd32f183df0c2009fc36e75394e0"
|
||||
LABEL org.opencontainers.image.revision="dbca5cbb3a338287f516c79705fc607bcf0905f7"
|
||||
LABEL org.opencontainers.image.version="save-params"
|
||||
|
||||
VIASHDOCKER
|
||||
|
||||
@@ -69,7 +69,7 @@ argument_groups:
|
||||
multiple: false
|
||||
multiple_sep: ";"
|
||||
- type: "file"
|
||||
name: "--params"
|
||||
name: "--run_params"
|
||||
info: null
|
||||
must_exist: true
|
||||
create_parent: true
|
||||
@@ -198,18 +198,35 @@ build_info:
|
||||
engine: "docker|native"
|
||||
output: "target/executable/io/publish_results"
|
||||
executable: "target/executable/io/publish_results/publish_results"
|
||||
viash_version: "0.9.2"
|
||||
git_commit: "cc910b428428dd32f183df0c2009fc36e75394e0"
|
||||
viash_version: "0.9.4"
|
||||
git_commit: "dbca5cbb3a338287f516c79705fc607bcf0905f7"
|
||||
git_remote: "https://github.com/viash-hub/htrnaseq"
|
||||
git_tag: "v0.7.2-21-gdbca5cb"
|
||||
package_config:
|
||||
name: "htrnaseq"
|
||||
version: "save-params"
|
||||
description: "High-throughput pipeline [WIP]\n"
|
||||
summary: "A workflow for high-throughput RNA-seq data analyses.\n"
|
||||
description: "This workflow is designed to process high-throughput RNA-seq data,\
|
||||
\ where every\nwell of a microarray plate is a sample. A fasta file provided as\
|
||||
\ input\ndefines the mapping between sample barcodes and wells.\n\nThe workflow\
|
||||
\ is built in a modular fashion, where most of the base functionality\nis provided\
|
||||
\ by components from [`biobox`](https://www.viash-hub.com/packages/biobox/latest)\n\
|
||||
supplemented by custom base components and workflow components in this package.\n\
|
||||
\nThe full workflow is split in two major subworkflows that can be run independently:\n\
|
||||
\n* **Well-demultiplexing:** Split the input (plate/pool level) fastq files per\
|
||||
\ well.\n* **Mapping, counting and QC:** Run per-well mapping, counting and generate\
|
||||
\ QC reports.\n\nEach of those can be started individually, or the full workflow\
|
||||
\ can be run in two ways:\n\n1. Run the [main workflow](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/htrnaseq)\
|
||||
\ \ncontaining the main functionality.\n2. Run the [(opinionated) `runner`](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/runner)\
|
||||
\ where a\nnumber of choices (input/output structure and location) have been made.\n\
|
||||
\nInput for the workflow has to be `fastq` files (zipped or not). For bcl or other\
|
||||
\ formats, please consider running\n[demultiplex](https://www.viash-hub.com/packages/demultiplex)\
|
||||
\ first.\n"
|
||||
info:
|
||||
test_resources:
|
||||
- path: "gs://viash-hub-test-data/htrnaseq/v1/"
|
||||
dest: "resources_test"
|
||||
viash_version: "0.9.2"
|
||||
viash_version: "0.9.4"
|
||||
source: "src"
|
||||
target: "target"
|
||||
config_mods:
|
||||
@@ -221,11 +238,13 @@ package_config:
|
||||
- ".engines[.type == 'docker'].target_tag := 'save-params'"
|
||||
keywords:
|
||||
- "bioinformatics"
|
||||
- "sequence"
|
||||
- "sequencing"
|
||||
- "high-throughput"
|
||||
- "RNAseq"
|
||||
- "mapping"
|
||||
- "counting"
|
||||
- "pipeline"
|
||||
- "workflow"
|
||||
license: "MIT"
|
||||
organization: "vsh"
|
||||
links:
|
||||
|
||||
@@ -27,7 +27,7 @@ process {
|
||||
withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } }
|
||||
withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } }
|
||||
withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 40.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } }
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
# publish_results save-params
|
||||
#
|
||||
# This wrapper script is auto-generated by viash 0.9.2 and is thus a derivative
|
||||
# This wrapper script is auto-generated by viash 0.9.4 and is thus a derivative
|
||||
# work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data
|
||||
# Intuitive.
|
||||
#
|
||||
@@ -450,9 +450,9 @@ RUN apt-get update && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
LABEL org.opencontainers.image.description="Companion container for running component io publish_results"
|
||||
LABEL org.opencontainers.image.created="2025-05-06T14:35:25Z"
|
||||
LABEL org.opencontainers.image.created="2025-05-08T12:21:44Z"
|
||||
LABEL org.opencontainers.image.source="https://github.com/viash-hub/htrnaseq"
|
||||
LABEL org.opencontainers.image.revision="cc910b428428dd32f183df0c2009fc36e75394e0"
|
||||
LABEL org.opencontainers.image.revision="dbca5cbb3a338287f516c79705fc607bcf0905f7"
|
||||
LABEL org.opencontainers.image.version="save-params"
|
||||
|
||||
VIASHDOCKER
|
||||
@@ -597,7 +597,7 @@ function ViashHelp {
|
||||
echo " --html_report"
|
||||
echo " type: file, required parameter, file must exist"
|
||||
echo ""
|
||||
echo " --params"
|
||||
echo " --run_params"
|
||||
echo " type: file, required parameter, file must exist"
|
||||
echo ""
|
||||
echo "Output arguments:"
|
||||
@@ -768,15 +768,15 @@ while [[ $# -gt 0 ]]; do
|
||||
VIASH_PAR_HTML_REPORT=$(ViashRemoveFlags "$1")
|
||||
shift 1
|
||||
;;
|
||||
--params)
|
||||
[ -n "$VIASH_PAR_PARAMS" ] && ViashError Bad arguments for option \'--params\': \'$VIASH_PAR_PARAMS\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1
|
||||
VIASH_PAR_PARAMS="$2"
|
||||
[ $# -lt 2 ] && ViashError Not enough arguments passed to --params. Use "--help" to get more information on the parameters. && exit 1
|
||||
--run_params)
|
||||
[ -n "$VIASH_PAR_RUN_PARAMS" ] && ViashError Bad arguments for option \'--run_params\': \'$VIASH_PAR_RUN_PARAMS\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1
|
||||
VIASH_PAR_RUN_PARAMS="$2"
|
||||
[ $# -lt 2 ] && ViashError Not enough arguments passed to --run_params. Use "--help" to get more information on the parameters. && exit 1
|
||||
shift 2
|
||||
;;
|
||||
--params=*)
|
||||
[ -n "$VIASH_PAR_PARAMS" ] && ViashError Bad arguments for option \'--params=*\': \'$VIASH_PAR_PARAMS\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1
|
||||
VIASH_PAR_PARAMS=$(ViashRemoveFlags "$1")
|
||||
--run_params=*)
|
||||
[ -n "$VIASH_PAR_RUN_PARAMS" ] && ViashError Bad arguments for option \'--run_params=*\': \'$VIASH_PAR_RUN_PARAMS\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1
|
||||
VIASH_PAR_RUN_PARAMS=$(ViashRemoveFlags "$1")
|
||||
shift 1
|
||||
;;
|
||||
--output)
|
||||
@@ -990,8 +990,8 @@ if [ -z ${VIASH_PAR_HTML_REPORT+x} ]; then
|
||||
ViashError '--html_report' is a required argument. Use "--help" to get more information on the parameters.
|
||||
exit 1
|
||||
fi
|
||||
if [ -z ${VIASH_PAR_PARAMS+x} ]; then
|
||||
ViashError '--params' is a required argument. Use "--help" to get more information on the parameters.
|
||||
if [ -z ${VIASH_PAR_RUN_PARAMS+x} ]; then
|
||||
ViashError '--run_params' is a required argument. Use "--help" to get more information on the parameters.
|
||||
exit 1
|
||||
fi
|
||||
if [ -z ${VIASH_META_NAME+x} ]; then
|
||||
@@ -1101,8 +1101,8 @@ if [ ! -z "$VIASH_PAR_HTML_REPORT" ] && [ ! -e "$VIASH_PAR_HTML_REPORT" ]; then
|
||||
ViashError "Input file '$VIASH_PAR_HTML_REPORT' does not exist."
|
||||
exit 1
|
||||
fi
|
||||
if [ ! -z "$VIASH_PAR_PARAMS" ] && [ ! -e "$VIASH_PAR_PARAMS" ]; then
|
||||
ViashError "Input file '$VIASH_PAR_PARAMS' does not exist."
|
||||
if [ ! -z "$VIASH_PAR_RUN_PARAMS" ] && [ ! -e "$VIASH_PAR_RUN_PARAMS" ]; then
|
||||
ViashError "Input file '$VIASH_PAR_RUN_PARAMS' does not exist."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -1267,9 +1267,9 @@ if [ ! -z "$VIASH_PAR_HTML_REPORT" ]; then
|
||||
VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_PAR_HTML_REPORT")" )
|
||||
VIASH_PAR_HTML_REPORT=$(ViashDockerAutodetectMount "$VIASH_PAR_HTML_REPORT")
|
||||
fi
|
||||
if [ ! -z "$VIASH_PAR_PARAMS" ]; then
|
||||
VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_PAR_PARAMS")" )
|
||||
VIASH_PAR_PARAMS=$(ViashDockerAutodetectMount "$VIASH_PAR_PARAMS")
|
||||
if [ ! -z "$VIASH_PAR_RUN_PARAMS" ]; then
|
||||
VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_PAR_RUN_PARAMS")" )
|
||||
VIASH_PAR_RUN_PARAMS=$(ViashDockerAutodetectMount "$VIASH_PAR_RUN_PARAMS")
|
||||
fi
|
||||
if [ ! -z "$VIASH_PAR_OUTPUT" ]; then
|
||||
VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_PAR_OUTPUT")" )
|
||||
@@ -1352,7 +1352,7 @@ $( if [ ! -z ${VIASH_PAR_ESET+x} ]; then echo "${VIASH_PAR_ESET}" | sed "s#'#'\"
|
||||
$( if [ ! -z ${VIASH_PAR_F_DATA+x} ]; then echo "${VIASH_PAR_F_DATA}" | sed "s#'#'\"'\"'#g;s#.*#par_f_data='&'#" ; else echo "# par_f_data="; fi )
|
||||
$( if [ ! -z ${VIASH_PAR_P_DATA+x} ]; then echo "${VIASH_PAR_P_DATA}" | sed "s#'#'\"'\"'#g;s#.*#par_p_data='&'#" ; else echo "# par_p_data="; fi )
|
||||
$( if [ ! -z ${VIASH_PAR_HTML_REPORT+x} ]; then echo "${VIASH_PAR_HTML_REPORT}" | sed "s#'#'\"'\"'#g;s#.*#par_html_report='&'#" ; else echo "# par_html_report="; fi )
|
||||
$( if [ ! -z ${VIASH_PAR_PARAMS+x} ]; then echo "${VIASH_PAR_PARAMS}" | sed "s#'#'\"'\"'#g;s#.*#par_params='&'#" ; else echo "# par_params="; fi )
|
||||
$( if [ ! -z ${VIASH_PAR_RUN_PARAMS+x} ]; then echo "${VIASH_PAR_RUN_PARAMS}" | sed "s#'#'\"'\"'#g;s#.*#par_run_params='&'#" ; else echo "# par_run_params="; fi )
|
||||
$( if [ ! -z ${VIASH_PAR_OUTPUT+x} ]; then echo "${VIASH_PAR_OUTPUT}" | sed "s#'#'\"'\"'#g;s#.*#par_output='&'#" ; else echo "# par_output="; fi )
|
||||
$( if [ ! -z ${VIASH_META_NAME+x} ]; then echo "${VIASH_META_NAME}" | sed "s#'#'\"'\"'#g;s#.*#meta_name='&'#" ; else echo "# meta_name="; fi )
|
||||
$( if [ ! -z ${VIASH_META_FUNCTIONALITY_NAME+x} ]; then echo "${VIASH_META_FUNCTIONALITY_NAME}" | sed "s#'#'\"'\"'#g;s#.*#meta_functionality_name='&'#" ; else echo "# meta_functionality_name="; fi )
|
||||
@@ -1417,7 +1417,7 @@ done
|
||||
|
||||
cp -rL "\$par_html_report" "\$par_output/"
|
||||
|
||||
cp -rL "\$par_params" "\$par_output/"
|
||||
cp -rL "\$par_run_params" "\$par_output/"
|
||||
VIASHMAIN
|
||||
bash "\$tempscript" &
|
||||
wait "\$!"
|
||||
@@ -1509,8 +1509,8 @@ if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then
|
||||
if [ ! -z "$VIASH_PAR_HTML_REPORT" ]; then
|
||||
VIASH_PAR_HTML_REPORT=$(ViashDockerStripAutomount "$VIASH_PAR_HTML_REPORT")
|
||||
fi
|
||||
if [ ! -z "$VIASH_PAR_PARAMS" ]; then
|
||||
VIASH_PAR_PARAMS=$(ViashDockerStripAutomount "$VIASH_PAR_PARAMS")
|
||||
if [ ! -z "$VIASH_PAR_RUN_PARAMS" ]; then
|
||||
VIASH_PAR_RUN_PARAMS=$(ViashDockerStripAutomount "$VIASH_PAR_RUN_PARAMS")
|
||||
fi
|
||||
if [ ! -z "$VIASH_PAR_OUTPUT" ]; then
|
||||
VIASH_PAR_OUTPUT=$(ViashDockerStripAutomount "$VIASH_PAR_OUTPUT")
|
||||
|
||||
@@ -281,18 +281,35 @@ build_info:
|
||||
engine: "docker|native"
|
||||
output: "target/executable/parallel_map"
|
||||
executable: "target/executable/parallel_map/parallel_map"
|
||||
viash_version: "0.9.2"
|
||||
git_commit: "cc910b428428dd32f183df0c2009fc36e75394e0"
|
||||
viash_version: "0.9.4"
|
||||
git_commit: "dbca5cbb3a338287f516c79705fc607bcf0905f7"
|
||||
git_remote: "https://github.com/viash-hub/htrnaseq"
|
||||
git_tag: "v0.7.2-21-gdbca5cb"
|
||||
package_config:
|
||||
name: "htrnaseq"
|
||||
version: "save-params"
|
||||
description: "High-throughput pipeline [WIP]\n"
|
||||
summary: "A workflow for high-throughput RNA-seq data analyses.\n"
|
||||
description: "This workflow is designed to process high-throughput RNA-seq data,\
|
||||
\ where every\nwell of a microarray plate is a sample. A fasta file provided as\
|
||||
\ input\ndefines the mapping between sample barcodes and wells.\n\nThe workflow\
|
||||
\ is built in a modular fashion, where most of the base functionality\nis provided\
|
||||
\ by components from [`biobox`](https://www.viash-hub.com/packages/biobox/latest)\n\
|
||||
supplemented by custom base components and workflow components in this package.\n\
|
||||
\nThe full workflow is split in two major subworkflows that can be run independently:\n\
|
||||
\n* **Well-demultiplexing:** Split the input (plate/pool level) fastq files per\
|
||||
\ well.\n* **Mapping, counting and QC:** Run per-well mapping, counting and generate\
|
||||
\ QC reports.\n\nEach of those can be started individually, or the full workflow\
|
||||
\ can be run in two ways:\n\n1. Run the [main workflow](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/htrnaseq)\
|
||||
\ \ncontaining the main functionality.\n2. Run the [(opinionated) `runner`](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/runner)\
|
||||
\ where a\nnumber of choices (input/output structure and location) have been made.\n\
|
||||
\nInput for the workflow has to be `fastq` files (zipped or not). For bcl or other\
|
||||
\ formats, please consider running\n[demultiplex](https://www.viash-hub.com/packages/demultiplex)\
|
||||
\ first.\n"
|
||||
info:
|
||||
test_resources:
|
||||
- path: "gs://viash-hub-test-data/htrnaseq/v1/"
|
||||
dest: "resources_test"
|
||||
viash_version: "0.9.2"
|
||||
viash_version: "0.9.4"
|
||||
source: "src"
|
||||
target: "target"
|
||||
config_mods:
|
||||
@@ -304,11 +321,13 @@ package_config:
|
||||
- ".engines[.type == 'docker'].target_tag := 'save-params'"
|
||||
keywords:
|
||||
- "bioinformatics"
|
||||
- "sequence"
|
||||
- "sequencing"
|
||||
- "high-throughput"
|
||||
- "RNAseq"
|
||||
- "mapping"
|
||||
- "counting"
|
||||
- "pipeline"
|
||||
- "workflow"
|
||||
license: "MIT"
|
||||
organization: "vsh"
|
||||
links:
|
||||
|
||||
@@ -27,7 +27,7 @@ process {
|
||||
withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } }
|
||||
withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } }
|
||||
withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 40.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } }
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
# parallel_map save-params
|
||||
#
|
||||
# This wrapper script is auto-generated by viash 0.9.2 and is thus a derivative
|
||||
# This wrapper script is auto-generated by viash 0.9.4 and is thus a derivative
|
||||
# work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data
|
||||
# Intuitive.
|
||||
#
|
||||
@@ -461,9 +461,9 @@ ENV STAR_BINARY=STAR
|
||||
COPY STAR /usr/local/bin/$STAR_BINARY
|
||||
LABEL org.opencontainers.image.authors="Dries Schaumont, Toni Verbeiren"
|
||||
LABEL org.opencontainers.image.description="Companion container for running component parallel_map"
|
||||
LABEL org.opencontainers.image.created="2025-05-06T14:35:26Z"
|
||||
LABEL org.opencontainers.image.created="2025-05-08T12:21:46Z"
|
||||
LABEL org.opencontainers.image.source="https://github.com/viash-hub/htrnaseq"
|
||||
LABEL org.opencontainers.image.revision="cc910b428428dd32f183df0c2009fc36e75394e0"
|
||||
LABEL org.opencontainers.image.revision="dbca5cbb3a338287f516c79705fc607bcf0905f7"
|
||||
LABEL org.opencontainers.image.version="save-params"
|
||||
|
||||
VIASHDOCKER
|
||||
|
||||
@@ -164,6 +164,12 @@ engines:
|
||||
- "procps"
|
||||
- "pandoc"
|
||||
interactive: false
|
||||
- type: "r"
|
||||
script:
|
||||
- "install.packages(\"BiocManager\")"
|
||||
- "BiocManager::install(version = \"3.21\", type = \"source\", checkBuilt = TRUE)"
|
||||
bioc_force_install: false
|
||||
warnings_as_errors: true
|
||||
- type: "r"
|
||||
cran:
|
||||
- "ggplot2"
|
||||
@@ -205,18 +211,35 @@ build_info:
|
||||
engine: "docker|native"
|
||||
output: "target/executable/report/create_report"
|
||||
executable: "target/executable/report/create_report/create_report"
|
||||
viash_version: "0.9.2"
|
||||
git_commit: "cc910b428428dd32f183df0c2009fc36e75394e0"
|
||||
viash_version: "0.9.4"
|
||||
git_commit: "dbca5cbb3a338287f516c79705fc607bcf0905f7"
|
||||
git_remote: "https://github.com/viash-hub/htrnaseq"
|
||||
git_tag: "v0.7.2-21-gdbca5cb"
|
||||
package_config:
|
||||
name: "htrnaseq"
|
||||
version: "save-params"
|
||||
description: "High-throughput pipeline [WIP]\n"
|
||||
summary: "A workflow for high-throughput RNA-seq data analyses.\n"
|
||||
description: "This workflow is designed to process high-throughput RNA-seq data,\
|
||||
\ where every\nwell of a microarray plate is a sample. A fasta file provided as\
|
||||
\ input\ndefines the mapping between sample barcodes and wells.\n\nThe workflow\
|
||||
\ is built in a modular fashion, where most of the base functionality\nis provided\
|
||||
\ by components from [`biobox`](https://www.viash-hub.com/packages/biobox/latest)\n\
|
||||
supplemented by custom base components and workflow components in this package.\n\
|
||||
\nThe full workflow is split in two major subworkflows that can be run independently:\n\
|
||||
\n* **Well-demultiplexing:** Split the input (plate/pool level) fastq files per\
|
||||
\ well.\n* **Mapping, counting and QC:** Run per-well mapping, counting and generate\
|
||||
\ QC reports.\n\nEach of those can be started individually, or the full workflow\
|
||||
\ can be run in two ways:\n\n1. Run the [main workflow](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/htrnaseq)\
|
||||
\ \ncontaining the main functionality.\n2. Run the [(opinionated) `runner`](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/runner)\
|
||||
\ where a\nnumber of choices (input/output structure and location) have been made.\n\
|
||||
\nInput for the workflow has to be `fastq` files (zipped or not). For bcl or other\
|
||||
\ formats, please consider running\n[demultiplex](https://www.viash-hub.com/packages/demultiplex)\
|
||||
\ first.\n"
|
||||
info:
|
||||
test_resources:
|
||||
- path: "gs://viash-hub-test-data/htrnaseq/v1/"
|
||||
dest: "resources_test"
|
||||
viash_version: "0.9.2"
|
||||
viash_version: "0.9.4"
|
||||
source: "src"
|
||||
target: "target"
|
||||
config_mods:
|
||||
@@ -228,11 +251,13 @@ package_config:
|
||||
- ".engines[.type == 'docker'].target_tag := 'save-params'"
|
||||
keywords:
|
||||
- "bioinformatics"
|
||||
- "sequence"
|
||||
- "sequencing"
|
||||
- "high-throughput"
|
||||
- "RNAseq"
|
||||
- "mapping"
|
||||
- "counting"
|
||||
- "pipeline"
|
||||
- "workflow"
|
||||
license: "MIT"
|
||||
organization: "vsh"
|
||||
links:
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
# create_report save-params
|
||||
#
|
||||
# This wrapper script is auto-generated by viash 0.9.2 and is thus a derivative
|
||||
# This wrapper script is auto-generated by viash 0.9.4 and is thus a derivative
|
||||
# work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data
|
||||
# Intuitive.
|
||||
#
|
||||
@@ -453,6 +453,9 @@ RUN apt-get update && \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get install -y procps pandoc && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
RUN Rscript -e 'options(warn = 2); install.packages("BiocManager")' && \
|
||||
Rscript -e 'options(warn = 2); BiocManager::install(version = "3.21", type = "source", checkBuilt = TRUE)'
|
||||
|
||||
RUN Rscript -e 'options(warn = 2); if (!requireNamespace("remotes", quietly = TRUE)) install.packages("remotes")' && \
|
||||
Rscript -e 'options(warn = 2); if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager")' && \
|
||||
Rscript -e 'options(warn = 2); if (!requireNamespace("Biobase", quietly = TRUE)) BiocManager::install("Biobase")' && \
|
||||
@@ -462,9 +465,9 @@ RUN Rscript -e 'options(warn = 2); if (!requireNamespace("remotes", quietly = TR
|
||||
|
||||
LABEL org.opencontainers.image.authors="Dries Schaumont, Marijke Van Moerbeke"
|
||||
LABEL org.opencontainers.image.description="Companion container for running component report create_report"
|
||||
LABEL org.opencontainers.image.created="2025-05-06T14:35:26Z"
|
||||
LABEL org.opencontainers.image.created="2025-05-08T12:21:45Z"
|
||||
LABEL org.opencontainers.image.source="https://github.com/viash-hub/htrnaseq"
|
||||
LABEL org.opencontainers.image.revision="cc910b428428dd32f183df0c2009fc36e75394e0"
|
||||
LABEL org.opencontainers.image.revision="dbca5cbb3a338287f516c79705fc607bcf0905f7"
|
||||
LABEL org.opencontainers.image.version="save-params"
|
||||
|
||||
VIASHDOCKER
|
||||
|
||||
@@ -27,7 +27,7 @@ process {
|
||||
withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } }
|
||||
withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } }
|
||||
withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 40.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } }
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -283,15 +283,31 @@ plateLayout <- function(
|
||||
|
||||
if (is.null(colours)) {
|
||||
colours <- tryCatch({
|
||||
colorRamp2(
|
||||
circlize::colorRamp2(
|
||||
breaks = breaks,
|
||||
colors = brewer.pal(length(breaks), "Purples")
|
||||
)
|
||||
},
|
||||
error = function(cond) {
|
||||
return(c("#9370DB", "white"))
|
||||
error = function(cond){
|
||||
|
||||
message("Recomputed breaks for proper colour mapping")
|
||||
|
||||
breakValues <- plateValues$values
|
||||
breakValues[which(is.na(breakValues))] <- 0
|
||||
if (all(breakValues >= 0)) {
|
||||
breaks <- computeBreaks(7, max(plateValues$values, na.rm = TRUE))
|
||||
} else {
|
||||
breaks <- quantile(plateValues$values, probs = seq(0, 1, 0.125))
|
||||
}
|
||||
|
||||
circlize::colorRamp2(
|
||||
breaks = breaks,
|
||||
colors = brewer.pal(length(breaks), "Purples")
|
||||
)
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
ht <- Heatmap(
|
||||
plateValues$values,
|
||||
column_title = mainTitle, column_title_side = "top",
|
||||
@@ -425,6 +441,7 @@ computeBreaks <- function(nBreaks, variable) {
|
||||
)
|
||||
coefExp <- c(exp(coefSystem[1]), coefSystem[2])
|
||||
breaks <- coefExp[1] * exp((1:(nBreaks - 1)) * coefExp[2])
|
||||
breaks <- unique(c(0, breaks))
|
||||
}
|
||||
return(c(0, breaks))
|
||||
}
|
||||
return(breaks)
|
||||
}
|
||||
|
||||
@@ -200,18 +200,35 @@ build_info:
|
||||
engine: "docker|native"
|
||||
output: "target/executable/stats/combine_star_logs"
|
||||
executable: "target/executable/stats/combine_star_logs/combine_star_logs"
|
||||
viash_version: "0.9.2"
|
||||
git_commit: "cc910b428428dd32f183df0c2009fc36e75394e0"
|
||||
viash_version: "0.9.4"
|
||||
git_commit: "dbca5cbb3a338287f516c79705fc607bcf0905f7"
|
||||
git_remote: "https://github.com/viash-hub/htrnaseq"
|
||||
git_tag: "v0.7.2-21-gdbca5cb"
|
||||
package_config:
|
||||
name: "htrnaseq"
|
||||
version: "save-params"
|
||||
description: "High-throughput pipeline [WIP]\n"
|
||||
summary: "A workflow for high-throughput RNA-seq data analyses.\n"
|
||||
description: "This workflow is designed to process high-throughput RNA-seq data,\
|
||||
\ where every\nwell of a microarray plate is a sample. A fasta file provided as\
|
||||
\ input\ndefines the mapping between sample barcodes and wells.\n\nThe workflow\
|
||||
\ is built in a modular fashion, where most of the base functionality\nis provided\
|
||||
\ by components from [`biobox`](https://www.viash-hub.com/packages/biobox/latest)\n\
|
||||
supplemented by custom base components and workflow components in this package.\n\
|
||||
\nThe full workflow is split in two major subworkflows that can be run independently:\n\
|
||||
\n* **Well-demultiplexing:** Split the input (plate/pool level) fastq files per\
|
||||
\ well.\n* **Mapping, counting and QC:** Run per-well mapping, counting and generate\
|
||||
\ QC reports.\n\nEach of those can be started individually, or the full workflow\
|
||||
\ can be run in two ways:\n\n1. Run the [main workflow](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/htrnaseq)\
|
||||
\ \ncontaining the main functionality.\n2. Run the [(opinionated) `runner`](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/runner)\
|
||||
\ where a\nnumber of choices (input/output structure and location) have been made.\n\
|
||||
\nInput for the workflow has to be `fastq` files (zipped or not). For bcl or other\
|
||||
\ formats, please consider running\n[demultiplex](https://www.viash-hub.com/packages/demultiplex)\
|
||||
\ first.\n"
|
||||
info:
|
||||
test_resources:
|
||||
- path: "gs://viash-hub-test-data/htrnaseq/v1/"
|
||||
dest: "resources_test"
|
||||
viash_version: "0.9.2"
|
||||
viash_version: "0.9.4"
|
||||
source: "src"
|
||||
target: "target"
|
||||
config_mods:
|
||||
@@ -223,11 +240,13 @@ package_config:
|
||||
- ".engines[.type == 'docker'].target_tag := 'save-params'"
|
||||
keywords:
|
||||
- "bioinformatics"
|
||||
- "sequence"
|
||||
- "sequencing"
|
||||
- "high-throughput"
|
||||
- "RNAseq"
|
||||
- "mapping"
|
||||
- "counting"
|
||||
- "pipeline"
|
||||
- "workflow"
|
||||
license: "MIT"
|
||||
organization: "vsh"
|
||||
links:
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
# combine_star_logs save-params
|
||||
#
|
||||
# This wrapper script is auto-generated by viash 0.9.2 and is thus a derivative
|
||||
# This wrapper script is auto-generated by viash 0.9.4 and is thus a derivative
|
||||
# work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data
|
||||
# Intuitive.
|
||||
#
|
||||
@@ -457,9 +457,9 @@ RUN pip install --upgrade pip && \
|
||||
|
||||
LABEL org.opencontainers.image.authors="Dries Schaumont"
|
||||
LABEL org.opencontainers.image.description="Companion container for running component stats combine_star_logs"
|
||||
LABEL org.opencontainers.image.created="2025-05-06T14:35:24Z"
|
||||
LABEL org.opencontainers.image.created="2025-05-08T12:21:44Z"
|
||||
LABEL org.opencontainers.image.source="https://github.com/viash-hub/htrnaseq"
|
||||
LABEL org.opencontainers.image.revision="cc910b428428dd32f183df0c2009fc36e75394e0"
|
||||
LABEL org.opencontainers.image.revision="dbca5cbb3a338287f516c79705fc607bcf0905f7"
|
||||
LABEL org.opencontainers.image.version="save-params"
|
||||
|
||||
VIASHDOCKER
|
||||
|
||||
@@ -27,7 +27,7 @@ process {
|
||||
withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } }
|
||||
withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } }
|
||||
withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 40.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } }
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -184,18 +184,35 @@ build_info:
|
||||
engine: "docker|native"
|
||||
output: "target/executable/stats/generate_pool_statistics"
|
||||
executable: "target/executable/stats/generate_pool_statistics/generate_pool_statistics"
|
||||
viash_version: "0.9.2"
|
||||
git_commit: "cc910b428428dd32f183df0c2009fc36e75394e0"
|
||||
viash_version: "0.9.4"
|
||||
git_commit: "dbca5cbb3a338287f516c79705fc607bcf0905f7"
|
||||
git_remote: "https://github.com/viash-hub/htrnaseq"
|
||||
git_tag: "v0.7.2-21-gdbca5cb"
|
||||
package_config:
|
||||
name: "htrnaseq"
|
||||
version: "save-params"
|
||||
description: "High-throughput pipeline [WIP]\n"
|
||||
summary: "A workflow for high-throughput RNA-seq data analyses.\n"
|
||||
description: "This workflow is designed to process high-throughput RNA-seq data,\
|
||||
\ where every\nwell of a microarray plate is a sample. A fasta file provided as\
|
||||
\ input\ndefines the mapping between sample barcodes and wells.\n\nThe workflow\
|
||||
\ is built in a modular fashion, where most of the base functionality\nis provided\
|
||||
\ by components from [`biobox`](https://www.viash-hub.com/packages/biobox/latest)\n\
|
||||
supplemented by custom base components and workflow components in this package.\n\
|
||||
\nThe full workflow is split in two major subworkflows that can be run independently:\n\
|
||||
\n* **Well-demultiplexing:** Split the input (plate/pool level) fastq files per\
|
||||
\ well.\n* **Mapping, counting and QC:** Run per-well mapping, counting and generate\
|
||||
\ QC reports.\n\nEach of those can be started individually, or the full workflow\
|
||||
\ can be run in two ways:\n\n1. Run the [main workflow](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/htrnaseq)\
|
||||
\ \ncontaining the main functionality.\n2. Run the [(opinionated) `runner`](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/runner)\
|
||||
\ where a\nnumber of choices (input/output structure and location) have been made.\n\
|
||||
\nInput for the workflow has to be `fastq` files (zipped or not). For bcl or other\
|
||||
\ formats, please consider running\n[demultiplex](https://www.viash-hub.com/packages/demultiplex)\
|
||||
\ first.\n"
|
||||
info:
|
||||
test_resources:
|
||||
- path: "gs://viash-hub-test-data/htrnaseq/v1/"
|
||||
dest: "resources_test"
|
||||
viash_version: "0.9.2"
|
||||
viash_version: "0.9.4"
|
||||
source: "src"
|
||||
target: "target"
|
||||
config_mods:
|
||||
@@ -207,11 +224,13 @@ package_config:
|
||||
- ".engines[.type == 'docker'].target_tag := 'save-params'"
|
||||
keywords:
|
||||
- "bioinformatics"
|
||||
- "sequence"
|
||||
- "sequencing"
|
||||
- "high-throughput"
|
||||
- "RNAseq"
|
||||
- "mapping"
|
||||
- "counting"
|
||||
- "pipeline"
|
||||
- "workflow"
|
||||
license: "MIT"
|
||||
organization: "vsh"
|
||||
links:
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
# generate_pool_statistics save-params
|
||||
#
|
||||
# This wrapper script is auto-generated by viash 0.9.2 and is thus a derivative
|
||||
# This wrapper script is auto-generated by viash 0.9.4 and is thus a derivative
|
||||
# work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data
|
||||
# Intuitive.
|
||||
#
|
||||
@@ -458,9 +458,9 @@ RUN pip install --upgrade pip && \
|
||||
|
||||
LABEL org.opencontainers.image.authors="Dries Schaumont, Marijke Van Moerbeke"
|
||||
LABEL org.opencontainers.image.description="Companion container for running component stats generate_pool_statistics"
|
||||
LABEL org.opencontainers.image.created="2025-05-06T14:35:25Z"
|
||||
LABEL org.opencontainers.image.created="2025-05-08T12:21:44Z"
|
||||
LABEL org.opencontainers.image.source="https://github.com/viash-hub/htrnaseq"
|
||||
LABEL org.opencontainers.image.revision="cc910b428428dd32f183df0c2009fc36e75394e0"
|
||||
LABEL org.opencontainers.image.revision="dbca5cbb3a338287f516c79705fc607bcf0905f7"
|
||||
LABEL org.opencontainers.image.version="save-params"
|
||||
|
||||
VIASHDOCKER
|
||||
|
||||
@@ -27,7 +27,7 @@ process {
|
||||
withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } }
|
||||
withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } }
|
||||
withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 40.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } }
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -266,18 +266,35 @@ build_info:
|
||||
engine: "docker|native"
|
||||
output: "target/executable/stats/generate_well_statistics"
|
||||
executable: "target/executable/stats/generate_well_statistics/generate_well_statistics"
|
||||
viash_version: "0.9.2"
|
||||
git_commit: "cc910b428428dd32f183df0c2009fc36e75394e0"
|
||||
viash_version: "0.9.4"
|
||||
git_commit: "dbca5cbb3a338287f516c79705fc607bcf0905f7"
|
||||
git_remote: "https://github.com/viash-hub/htrnaseq"
|
||||
git_tag: "v0.7.2-21-gdbca5cb"
|
||||
package_config:
|
||||
name: "htrnaseq"
|
||||
version: "save-params"
|
||||
description: "High-throughput pipeline [WIP]\n"
|
||||
summary: "A workflow for high-throughput RNA-seq data analyses.\n"
|
||||
description: "This workflow is designed to process high-throughput RNA-seq data,\
|
||||
\ where every\nwell of a microarray plate is a sample. A fasta file provided as\
|
||||
\ input\ndefines the mapping between sample barcodes and wells.\n\nThe workflow\
|
||||
\ is built in a modular fashion, where most of the base functionality\nis provided\
|
||||
\ by components from [`biobox`](https://www.viash-hub.com/packages/biobox/latest)\n\
|
||||
supplemented by custom base components and workflow components in this package.\n\
|
||||
\nThe full workflow is split in two major subworkflows that can be run independently:\n\
|
||||
\n* **Well-demultiplexing:** Split the input (plate/pool level) fastq files per\
|
||||
\ well.\n* **Mapping, counting and QC:** Run per-well mapping, counting and generate\
|
||||
\ QC reports.\n\nEach of those can be started individually, or the full workflow\
|
||||
\ can be run in two ways:\n\n1. Run the [main workflow](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/htrnaseq)\
|
||||
\ \ncontaining the main functionality.\n2. Run the [(opinionated) `runner`](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/runner)\
|
||||
\ where a\nnumber of choices (input/output structure and location) have been made.\n\
|
||||
\nInput for the workflow has to be `fastq` files (zipped or not). For bcl or other\
|
||||
\ formats, please consider running\n[demultiplex](https://www.viash-hub.com/packages/demultiplex)\
|
||||
\ first.\n"
|
||||
info:
|
||||
test_resources:
|
||||
- path: "gs://viash-hub-test-data/htrnaseq/v1/"
|
||||
dest: "resources_test"
|
||||
viash_version: "0.9.2"
|
||||
viash_version: "0.9.4"
|
||||
source: "src"
|
||||
target: "target"
|
||||
config_mods:
|
||||
@@ -289,11 +306,13 @@ package_config:
|
||||
- ".engines[.type == 'docker'].target_tag := 'save-params'"
|
||||
keywords:
|
||||
- "bioinformatics"
|
||||
- "sequence"
|
||||
- "sequencing"
|
||||
- "high-throughput"
|
||||
- "RNAseq"
|
||||
- "mapping"
|
||||
- "counting"
|
||||
- "pipeline"
|
||||
- "workflow"
|
||||
license: "MIT"
|
||||
organization: "vsh"
|
||||
links:
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
# generate_well_statistics save-params
|
||||
#
|
||||
# This wrapper script is auto-generated by viash 0.9.2 and is thus a derivative
|
||||
# This wrapper script is auto-generated by viash 0.9.4 and is thus a derivative
|
||||
# work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data
|
||||
# Intuitive.
|
||||
#
|
||||
@@ -461,9 +461,9 @@ RUN pip install --upgrade pip && \
|
||||
|
||||
LABEL org.opencontainers.image.authors="Dries Schaumont, Marijke Van Moerbeke"
|
||||
LABEL org.opencontainers.image.description="Companion container for running component stats generate_well_statistics"
|
||||
LABEL org.opencontainers.image.created="2025-05-06T14:35:25Z"
|
||||
LABEL org.opencontainers.image.created="2025-05-08T12:21:44Z"
|
||||
LABEL org.opencontainers.image.source="https://github.com/viash-hub/htrnaseq"
|
||||
LABEL org.opencontainers.image.revision="cc910b428428dd32f183df0c2009fc36e75394e0"
|
||||
LABEL org.opencontainers.image.revision="dbca5cbb3a338287f516c79705fc607bcf0905f7"
|
||||
LABEL org.opencontainers.image.version="save-params"
|
||||
|
||||
VIASHDOCKER
|
||||
|
||||
@@ -27,7 +27,7 @@ process {
|
||||
withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } }
|
||||
withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } }
|
||||
withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 40.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } }
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -147,18 +147,35 @@ build_info:
|
||||
engine: "docker|native"
|
||||
output: "target/executable/utils/save_params"
|
||||
executable: "target/executable/utils/save_params/save_params"
|
||||
viash_version: "0.9.2"
|
||||
git_commit: "cc910b428428dd32f183df0c2009fc36e75394e0"
|
||||
viash_version: "0.9.4"
|
||||
git_commit: "dbca5cbb3a338287f516c79705fc607bcf0905f7"
|
||||
git_remote: "https://github.com/viash-hub/htrnaseq"
|
||||
git_tag: "v0.7.2-21-gdbca5cb"
|
||||
package_config:
|
||||
name: "htrnaseq"
|
||||
version: "save-params"
|
||||
description: "High-throughput pipeline [WIP]\n"
|
||||
summary: "A workflow for high-throughput RNA-seq data analyses.\n"
|
||||
description: "This workflow is designed to process high-throughput RNA-seq data,\
|
||||
\ where every\nwell of a microarray plate is a sample. A fasta file provided as\
|
||||
\ input\ndefines the mapping between sample barcodes and wells.\n\nThe workflow\
|
||||
\ is built in a modular fashion, where most of the base functionality\nis provided\
|
||||
\ by components from [`biobox`](https://www.viash-hub.com/packages/biobox/latest)\n\
|
||||
supplemented by custom base components and workflow components in this package.\n\
|
||||
\nThe full workflow is split in two major subworkflows that can be run independently:\n\
|
||||
\n* **Well-demultiplexing:** Split the input (plate/pool level) fastq files per\
|
||||
\ well.\n* **Mapping, counting and QC:** Run per-well mapping, counting and generate\
|
||||
\ QC reports.\n\nEach of those can be started individually, or the full workflow\
|
||||
\ can be run in two ways:\n\n1. Run the [main workflow](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/htrnaseq)\
|
||||
\ \ncontaining the main functionality.\n2. Run the [(opinionated) `runner`](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/runner)\
|
||||
\ where a\nnumber of choices (input/output structure and location) have been made.\n\
|
||||
\nInput for the workflow has to be `fastq` files (zipped or not). For bcl or other\
|
||||
\ formats, please consider running\n[demultiplex](https://www.viash-hub.com/packages/demultiplex)\
|
||||
\ first.\n"
|
||||
info:
|
||||
test_resources:
|
||||
- path: "gs://viash-hub-test-data/htrnaseq/v1/"
|
||||
dest: "resources_test"
|
||||
viash_version: "0.9.2"
|
||||
viash_version: "0.9.4"
|
||||
source: "src"
|
||||
target: "target"
|
||||
config_mods:
|
||||
@@ -170,11 +187,13 @@ package_config:
|
||||
- ".engines[.type == 'docker'].target_tag := 'save-params'"
|
||||
keywords:
|
||||
- "bioinformatics"
|
||||
- "sequence"
|
||||
- "sequencing"
|
||||
- "high-throughput"
|
||||
- "RNAseq"
|
||||
- "mapping"
|
||||
- "counting"
|
||||
- "pipeline"
|
||||
- "workflow"
|
||||
license: "MIT"
|
||||
organization: "vsh"
|
||||
links:
|
||||
|
||||
@@ -27,7 +27,7 @@ process {
|
||||
withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } }
|
||||
withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } }
|
||||
withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 40.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } }
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
# save_params save-params
|
||||
#
|
||||
# This wrapper script is auto-generated by viash 0.9.2 and is thus a derivative
|
||||
# This wrapper script is auto-generated by viash 0.9.4 and is thus a derivative
|
||||
# work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data
|
||||
# Intuitive.
|
||||
#
|
||||
@@ -453,9 +453,9 @@ RUN pip install --upgrade pip && \
|
||||
pip install --upgrade --no-cache-dir "pyyaml"
|
||||
|
||||
LABEL org.opencontainers.image.description="Companion container for running component utils save_params"
|
||||
LABEL org.opencontainers.image.created="2025-05-06T14:35:26Z"
|
||||
LABEL org.opencontainers.image.created="2025-05-08T12:21:46Z"
|
||||
LABEL org.opencontainers.image.source="https://github.com/viash-hub/htrnaseq"
|
||||
LABEL org.opencontainers.image.revision="cc910b428428dd32f183df0c2009fc36e75394e0"
|
||||
LABEL org.opencontainers.image.revision="dbca5cbb3a338287f516c79705fc607bcf0905f7"
|
||||
LABEL org.opencontainers.image.version="save-params"
|
||||
|
||||
VIASHDOCKER
|
||||
|
||||
@@ -202,18 +202,35 @@ build_info:
|
||||
engine: "docker|native"
|
||||
output: "target/nextflow/eset/create_eset"
|
||||
executable: "target/nextflow/eset/create_eset/main.nf"
|
||||
viash_version: "0.9.2"
|
||||
git_commit: "cc910b428428dd32f183df0c2009fc36e75394e0"
|
||||
viash_version: "0.9.4"
|
||||
git_commit: "dbca5cbb3a338287f516c79705fc607bcf0905f7"
|
||||
git_remote: "https://github.com/viash-hub/htrnaseq"
|
||||
git_tag: "v0.7.2-21-gdbca5cb"
|
||||
package_config:
|
||||
name: "htrnaseq"
|
||||
version: "save-params"
|
||||
description: "High-throughput pipeline [WIP]\n"
|
||||
summary: "A workflow for high-throughput RNA-seq data analyses.\n"
|
||||
description: "This workflow is designed to process high-throughput RNA-seq data,\
|
||||
\ where every\nwell of a microarray plate is a sample. A fasta file provided as\
|
||||
\ input\ndefines the mapping between sample barcodes and wells.\n\nThe workflow\
|
||||
\ is built in a modular fashion, where most of the base functionality\nis provided\
|
||||
\ by components from [`biobox`](https://www.viash-hub.com/packages/biobox/latest)\n\
|
||||
supplemented by custom base components and workflow components in this package.\n\
|
||||
\nThe full workflow is split in two major subworkflows that can be run independently:\n\
|
||||
\n* **Well-demultiplexing:** Split the input (plate/pool level) fastq files per\
|
||||
\ well.\n* **Mapping, counting and QC:** Run per-well mapping, counting and generate\
|
||||
\ QC reports.\n\nEach of those can be started individually, or the full workflow\
|
||||
\ can be run in two ways:\n\n1. Run the [main workflow](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/htrnaseq)\
|
||||
\ \ncontaining the main functionality.\n2. Run the [(opinionated) `runner`](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/runner)\
|
||||
\ where a\nnumber of choices (input/output structure and location) have been made.\n\
|
||||
\nInput for the workflow has to be `fastq` files (zipped or not). For bcl or other\
|
||||
\ formats, please consider running\n[demultiplex](https://www.viash-hub.com/packages/demultiplex)\
|
||||
\ first.\n"
|
||||
info:
|
||||
test_resources:
|
||||
- path: "gs://viash-hub-test-data/htrnaseq/v1/"
|
||||
dest: "resources_test"
|
||||
viash_version: "0.9.2"
|
||||
viash_version: "0.9.4"
|
||||
source: "src"
|
||||
target: "target"
|
||||
config_mods:
|
||||
@@ -225,11 +242,13 @@ package_config:
|
||||
- ".engines[.type == 'docker'].target_tag := 'save-params'"
|
||||
keywords:
|
||||
- "bioinformatics"
|
||||
- "sequence"
|
||||
- "sequencing"
|
||||
- "high-throughput"
|
||||
- "RNAseq"
|
||||
- "mapping"
|
||||
- "counting"
|
||||
- "pipeline"
|
||||
- "workflow"
|
||||
license: "MIT"
|
||||
organization: "vsh"
|
||||
links:
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// create_eset save-params
|
||||
//
|
||||
// This wrapper script is auto-generated by viash 0.9.2 and is thus a derivative
|
||||
// This wrapper script is auto-generated by viash 0.9.4 and is thus a derivative
|
||||
// work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data
|
||||
// Intuitive.
|
||||
//
|
||||
@@ -86,64 +86,56 @@ def _checkArgumentType(String stage, Map par, Object value, String errorIdentifi
|
||||
foundClass = "List[${e.foundClass}]"
|
||||
}
|
||||
} else if (par.type == "string") {
|
||||
// cast to string if need be
|
||||
// cast to string if need be. only cast if the value is a GString
|
||||
if (value instanceof GString) {
|
||||
value = value.toString()
|
||||
value = value as String
|
||||
}
|
||||
expectedClass = value instanceof String ? null : "String"
|
||||
} else if (par.type == "integer") {
|
||||
// cast to integer if need be
|
||||
if (value instanceof String) {
|
||||
if (value !instanceof Integer) {
|
||||
try {
|
||||
value = value.toInteger()
|
||||
value = value as Integer
|
||||
} catch (NumberFormatException e) {
|
||||
// do nothing
|
||||
expectedClass = "Integer"
|
||||
}
|
||||
}
|
||||
if (value instanceof java.math.BigInteger) {
|
||||
value = value.intValue()
|
||||
}
|
||||
expectedClass = value instanceof Integer ? null : "Integer"
|
||||
} else if (par.type == "long") {
|
||||
// cast to long if need be
|
||||
if (value instanceof String) {
|
||||
if (value !instanceof Long) {
|
||||
try {
|
||||
value = value.toLong()
|
||||
value = value as Long
|
||||
} catch (NumberFormatException e) {
|
||||
// do nothing
|
||||
expectedClass = "Long"
|
||||
}
|
||||
}
|
||||
if (value instanceof Integer) {
|
||||
value = value.toLong()
|
||||
}
|
||||
expectedClass = value instanceof Long ? null : "Long"
|
||||
} else if (par.type == "double") {
|
||||
// cast to double if need be
|
||||
if (value instanceof String) {
|
||||
if (value !instanceof Double) {
|
||||
try {
|
||||
value = value.toDouble()
|
||||
value = value as Double
|
||||
} catch (NumberFormatException e) {
|
||||
// do nothing
|
||||
expectedClass = "Double"
|
||||
}
|
||||
}
|
||||
if (value instanceof java.math.BigDecimal) {
|
||||
value = value.doubleValue()
|
||||
} else if (par.type == "float") {
|
||||
// cast to float if need be
|
||||
if (value !instanceof Float) {
|
||||
try {
|
||||
value = value as Float
|
||||
} catch (NumberFormatException e) {
|
||||
expectedClass = "Float"
|
||||
}
|
||||
}
|
||||
if (value instanceof Float) {
|
||||
value = value.toDouble()
|
||||
}
|
||||
expectedClass = value instanceof Double ? null : "Double"
|
||||
} else if (par.type == "boolean" | par.type == "boolean_true" | par.type == "boolean_false") {
|
||||
// cast to boolean if need be
|
||||
if (value instanceof String) {
|
||||
def valueLower = value.toLowerCase()
|
||||
if (valueLower == "true") {
|
||||
value = true
|
||||
} else if (valueLower == "false") {
|
||||
value = false
|
||||
if (value !instanceof Boolean) {
|
||||
try {
|
||||
value = value as Boolean
|
||||
} catch (Exception e) {
|
||||
expectedClass = "Boolean"
|
||||
}
|
||||
}
|
||||
expectedClass = value instanceof Boolean ? null : "Boolean"
|
||||
} else if (par.type == "file" && (par.direction == "input" || stage == "output")) {
|
||||
// cast to path if need be
|
||||
if (value instanceof String) {
|
||||
@@ -155,10 +147,13 @@ def _checkArgumentType(String stage, Map par, Object value, String errorIdentifi
|
||||
expectedClass = value instanceof Path ? null : "Path"
|
||||
} else if (par.type == "file" && stage == "input" && par.direction == "output") {
|
||||
// cast to string if need be
|
||||
if (value instanceof GString) {
|
||||
value = value.toString()
|
||||
if (value !instanceof String) {
|
||||
try {
|
||||
value = value as String
|
||||
} catch (Exception e) {
|
||||
expectedClass = "String"
|
||||
}
|
||||
}
|
||||
expectedClass = value instanceof String ? null : "String"
|
||||
} else {
|
||||
// didn't find a match for par.type
|
||||
expectedClass = par.type
|
||||
@@ -3308,14 +3303,16 @@ meta = [
|
||||
"runner" : "nextflow",
|
||||
"engine" : "docker|native",
|
||||
"output" : "target/nextflow/eset/create_eset",
|
||||
"viash_version" : "0.9.2",
|
||||
"git_commit" : "cc910b428428dd32f183df0c2009fc36e75394e0",
|
||||
"git_remote" : "https://github.com/viash-hub/htrnaseq"
|
||||
"viash_version" : "0.9.4",
|
||||
"git_commit" : "dbca5cbb3a338287f516c79705fc607bcf0905f7",
|
||||
"git_remote" : "https://github.com/viash-hub/htrnaseq",
|
||||
"git_tag" : "v0.7.2-21-gdbca5cb"
|
||||
},
|
||||
"package_config" : {
|
||||
"name" : "htrnaseq",
|
||||
"version" : "save-params",
|
||||
"description" : "High-throughput pipeline [WIP]\n",
|
||||
"summary" : "A workflow for high-throughput RNA-seq data analyses.\n",
|
||||
"description" : "This workflow is designed to process high-throughput RNA-seq data, where every\nwell of a microarray plate is a sample. A fasta file provided as input\ndefines the mapping between sample barcodes and wells.\n\nThe workflow is built in a modular fashion, where most of the base functionality\nis provided by components from [`biobox`](https://www.viash-hub.com/packages/biobox/latest)\nsupplemented by custom base components and workflow components in this package.\n\nThe full workflow is split in two major subworkflows that can be run independently:\n\n* **Well-demultiplexing:** Split the input (plate/pool level) fastq files per well.\n* **Mapping, counting and QC:** Run per-well mapping, counting and generate QC reports.\n\nEach of those can be started individually, or the full workflow can be run in two ways:\n\n1. Run the [main workflow](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/htrnaseq) \ncontaining the main functionality.\n2. Run the [(opinionated) `runner`](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/runner) where a\nnumber of choices (input/output structure and location) have been made.\n\nInput for the workflow has to be `fastq` files (zipped or not). For bcl or other formats, please consider running\n[demultiplex](https://www.viash-hub.com/packages/demultiplex) first.\n",
|
||||
"info" : {
|
||||
"test_resources" : [
|
||||
{
|
||||
@@ -3324,7 +3321,7 @@ meta = [
|
||||
}
|
||||
]
|
||||
},
|
||||
"viash_version" : "0.9.2",
|
||||
"viash_version" : "0.9.4",
|
||||
"source" : "src",
|
||||
"target" : "target",
|
||||
"config_mods" : [
|
||||
@@ -3335,11 +3332,13 @@ meta = [
|
||||
],
|
||||
"keywords" : [
|
||||
"bioinformatics",
|
||||
"sequence",
|
||||
"sequencing",
|
||||
"high-throughput",
|
||||
"RNAseq",
|
||||
"mapping",
|
||||
"counting",
|
||||
"pipeline"
|
||||
"pipeline",
|
||||
"workflow"
|
||||
],
|
||||
"license" : "MIT",
|
||||
"organization" : "vsh",
|
||||
@@ -3358,7 +3357,7 @@ meta = [
|
||||
// inner workflow hook
|
||||
def innerWorkflowFactory(args) {
|
||||
def rawScript = '''set -e
|
||||
tempscript=".viash_script.sh"
|
||||
tempscript=".viash_script.R"
|
||||
cat > "$tempscript" << VIASHMAIN
|
||||
library(Biobase)
|
||||
library(data.table)
|
||||
@@ -4156,7 +4155,7 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) {
|
||||
// create process from temp file
|
||||
def binding = new nextflow.script.ScriptBinding([:])
|
||||
def session = nextflow.Nextflow.getSession()
|
||||
def parser = new nextflow.script.ScriptParser(session)
|
||||
def parser = _getScriptLoader(session)
|
||||
.setModule(true)
|
||||
.setBinding(binding)
|
||||
def moduleScript = parser.runScript(tempFile)
|
||||
@@ -4170,6 +4169,27 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) {
|
||||
return scriptMeta.getProcess(procKey)
|
||||
}
|
||||
|
||||
// use Reflection to get a ScriptParser / ScriptLoader
|
||||
// <25.02.0-edge: new nextflow.script.ScriptParser(session)
|
||||
// >=25.02.0-edge: nextflow.script.ScriptLoaderFactory.create(session)
|
||||
def _getScriptLoader(nextflow.Session session) {
|
||||
// try using the old method
|
||||
try {
|
||||
Class<?> scriptParserClass = Class.forName('nextflow.script.ScriptParser')
|
||||
return scriptParserClass.getDeclaredConstructor(nextflow.Session).newInstance(session)
|
||||
} catch (ClassNotFoundException e) {
|
||||
// else try with the new method
|
||||
try {
|
||||
Class<?> scriptLoaderFactoryClass = Class.forName('nextflow.script.ScriptLoaderFactory')
|
||||
def createMethod = scriptLoaderFactoryClass.getDeclaredMethod('create', nextflow.Session)
|
||||
return createMethod.invoke(null, session) // null because create is static
|
||||
} catch (ClassNotFoundException | NoSuchMethodException | IllegalAccessException | java.lang.reflect.InvocationTargetException e2) {
|
||||
// Handle the case where neither class is found
|
||||
throw new Exception("Neither nextflow.script.ScriptParser nor nextflow.script.ScriptLoaderFactory could be found. Is this a compatible Nextflow version?", e2)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// defaults
|
||||
meta["defaults"] = [
|
||||
// key to be used to trace the process and determine output names
|
||||
|
||||
@@ -27,7 +27,7 @@ process {
|
||||
withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } }
|
||||
withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } }
|
||||
withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 40.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } }
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -179,18 +179,35 @@ build_info:
|
||||
engine: "docker|native"
|
||||
output: "target/nextflow/eset/create_fdata"
|
||||
executable: "target/nextflow/eset/create_fdata/main.nf"
|
||||
viash_version: "0.9.2"
|
||||
git_commit: "cc910b428428dd32f183df0c2009fc36e75394e0"
|
||||
viash_version: "0.9.4"
|
||||
git_commit: "dbca5cbb3a338287f516c79705fc607bcf0905f7"
|
||||
git_remote: "https://github.com/viash-hub/htrnaseq"
|
||||
git_tag: "v0.7.2-21-gdbca5cb"
|
||||
package_config:
|
||||
name: "htrnaseq"
|
||||
version: "save-params"
|
||||
description: "High-throughput pipeline [WIP]\n"
|
||||
summary: "A workflow for high-throughput RNA-seq data analyses.\n"
|
||||
description: "This workflow is designed to process high-throughput RNA-seq data,\
|
||||
\ where every\nwell of a microarray plate is a sample. A fasta file provided as\
|
||||
\ input\ndefines the mapping between sample barcodes and wells.\n\nThe workflow\
|
||||
\ is built in a modular fashion, where most of the base functionality\nis provided\
|
||||
\ by components from [`biobox`](https://www.viash-hub.com/packages/biobox/latest)\n\
|
||||
supplemented by custom base components and workflow components in this package.\n\
|
||||
\nThe full workflow is split in two major subworkflows that can be run independently:\n\
|
||||
\n* **Well-demultiplexing:** Split the input (plate/pool level) fastq files per\
|
||||
\ well.\n* **Mapping, counting and QC:** Run per-well mapping, counting and generate\
|
||||
\ QC reports.\n\nEach of those can be started individually, or the full workflow\
|
||||
\ can be run in two ways:\n\n1. Run the [main workflow](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/htrnaseq)\
|
||||
\ \ncontaining the main functionality.\n2. Run the [(opinionated) `runner`](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/runner)\
|
||||
\ where a\nnumber of choices (input/output structure and location) have been made.\n\
|
||||
\nInput for the workflow has to be `fastq` files (zipped or not). For bcl or other\
|
||||
\ formats, please consider running\n[demultiplex](https://www.viash-hub.com/packages/demultiplex)\
|
||||
\ first.\n"
|
||||
info:
|
||||
test_resources:
|
||||
- path: "gs://viash-hub-test-data/htrnaseq/v1/"
|
||||
dest: "resources_test"
|
||||
viash_version: "0.9.2"
|
||||
viash_version: "0.9.4"
|
||||
source: "src"
|
||||
target: "target"
|
||||
config_mods:
|
||||
@@ -202,11 +219,13 @@ package_config:
|
||||
- ".engines[.type == 'docker'].target_tag := 'save-params'"
|
||||
keywords:
|
||||
- "bioinformatics"
|
||||
- "sequence"
|
||||
- "sequencing"
|
||||
- "high-throughput"
|
||||
- "RNAseq"
|
||||
- "mapping"
|
||||
- "counting"
|
||||
- "pipeline"
|
||||
- "workflow"
|
||||
license: "MIT"
|
||||
organization: "vsh"
|
||||
links:
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// create_fdata save-params
|
||||
//
|
||||
// This wrapper script is auto-generated by viash 0.9.2 and is thus a derivative
|
||||
// This wrapper script is auto-generated by viash 0.9.4 and is thus a derivative
|
||||
// work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data
|
||||
// Intuitive.
|
||||
//
|
||||
@@ -86,64 +86,56 @@ def _checkArgumentType(String stage, Map par, Object value, String errorIdentifi
|
||||
foundClass = "List[${e.foundClass}]"
|
||||
}
|
||||
} else if (par.type == "string") {
|
||||
// cast to string if need be
|
||||
// cast to string if need be. only cast if the value is a GString
|
||||
if (value instanceof GString) {
|
||||
value = value.toString()
|
||||
value = value as String
|
||||
}
|
||||
expectedClass = value instanceof String ? null : "String"
|
||||
} else if (par.type == "integer") {
|
||||
// cast to integer if need be
|
||||
if (value instanceof String) {
|
||||
if (value !instanceof Integer) {
|
||||
try {
|
||||
value = value.toInteger()
|
||||
value = value as Integer
|
||||
} catch (NumberFormatException e) {
|
||||
// do nothing
|
||||
expectedClass = "Integer"
|
||||
}
|
||||
}
|
||||
if (value instanceof java.math.BigInteger) {
|
||||
value = value.intValue()
|
||||
}
|
||||
expectedClass = value instanceof Integer ? null : "Integer"
|
||||
} else if (par.type == "long") {
|
||||
// cast to long if need be
|
||||
if (value instanceof String) {
|
||||
if (value !instanceof Long) {
|
||||
try {
|
||||
value = value.toLong()
|
||||
value = value as Long
|
||||
} catch (NumberFormatException e) {
|
||||
// do nothing
|
||||
expectedClass = "Long"
|
||||
}
|
||||
}
|
||||
if (value instanceof Integer) {
|
||||
value = value.toLong()
|
||||
}
|
||||
expectedClass = value instanceof Long ? null : "Long"
|
||||
} else if (par.type == "double") {
|
||||
// cast to double if need be
|
||||
if (value instanceof String) {
|
||||
if (value !instanceof Double) {
|
||||
try {
|
||||
value = value.toDouble()
|
||||
value = value as Double
|
||||
} catch (NumberFormatException e) {
|
||||
// do nothing
|
||||
expectedClass = "Double"
|
||||
}
|
||||
}
|
||||
if (value instanceof java.math.BigDecimal) {
|
||||
value = value.doubleValue()
|
||||
} else if (par.type == "float") {
|
||||
// cast to float if need be
|
||||
if (value !instanceof Float) {
|
||||
try {
|
||||
value = value as Float
|
||||
} catch (NumberFormatException e) {
|
||||
expectedClass = "Float"
|
||||
}
|
||||
}
|
||||
if (value instanceof Float) {
|
||||
value = value.toDouble()
|
||||
}
|
||||
expectedClass = value instanceof Double ? null : "Double"
|
||||
} else if (par.type == "boolean" | par.type == "boolean_true" | par.type == "boolean_false") {
|
||||
// cast to boolean if need be
|
||||
if (value instanceof String) {
|
||||
def valueLower = value.toLowerCase()
|
||||
if (valueLower == "true") {
|
||||
value = true
|
||||
} else if (valueLower == "false") {
|
||||
value = false
|
||||
if (value !instanceof Boolean) {
|
||||
try {
|
||||
value = value as Boolean
|
||||
} catch (Exception e) {
|
||||
expectedClass = "Boolean"
|
||||
}
|
||||
}
|
||||
expectedClass = value instanceof Boolean ? null : "Boolean"
|
||||
} else if (par.type == "file" && (par.direction == "input" || stage == "output")) {
|
||||
// cast to path if need be
|
||||
if (value instanceof String) {
|
||||
@@ -155,10 +147,13 @@ def _checkArgumentType(String stage, Map par, Object value, String errorIdentifi
|
||||
expectedClass = value instanceof Path ? null : "Path"
|
||||
} else if (par.type == "file" && stage == "input" && par.direction == "output") {
|
||||
// cast to string if need be
|
||||
if (value instanceof GString) {
|
||||
value = value.toString()
|
||||
if (value !instanceof String) {
|
||||
try {
|
||||
value = value as String
|
||||
} catch (Exception e) {
|
||||
expectedClass = "String"
|
||||
}
|
||||
}
|
||||
expectedClass = value instanceof String ? null : "String"
|
||||
} else {
|
||||
// didn't find a match for par.type
|
||||
expectedClass = par.type
|
||||
@@ -3278,14 +3273,16 @@ meta = [
|
||||
"runner" : "nextflow",
|
||||
"engine" : "docker|native",
|
||||
"output" : "target/nextflow/eset/create_fdata",
|
||||
"viash_version" : "0.9.2",
|
||||
"git_commit" : "cc910b428428dd32f183df0c2009fc36e75394e0",
|
||||
"git_remote" : "https://github.com/viash-hub/htrnaseq"
|
||||
"viash_version" : "0.9.4",
|
||||
"git_commit" : "dbca5cbb3a338287f516c79705fc607bcf0905f7",
|
||||
"git_remote" : "https://github.com/viash-hub/htrnaseq",
|
||||
"git_tag" : "v0.7.2-21-gdbca5cb"
|
||||
},
|
||||
"package_config" : {
|
||||
"name" : "htrnaseq",
|
||||
"version" : "save-params",
|
||||
"description" : "High-throughput pipeline [WIP]\n",
|
||||
"summary" : "A workflow for high-throughput RNA-seq data analyses.\n",
|
||||
"description" : "This workflow is designed to process high-throughput RNA-seq data, where every\nwell of a microarray plate is a sample. A fasta file provided as input\ndefines the mapping between sample barcodes and wells.\n\nThe workflow is built in a modular fashion, where most of the base functionality\nis provided by components from [`biobox`](https://www.viash-hub.com/packages/biobox/latest)\nsupplemented by custom base components and workflow components in this package.\n\nThe full workflow is split in two major subworkflows that can be run independently:\n\n* **Well-demultiplexing:** Split the input (plate/pool level) fastq files per well.\n* **Mapping, counting and QC:** Run per-well mapping, counting and generate QC reports.\n\nEach of those can be started individually, or the full workflow can be run in two ways:\n\n1. Run the [main workflow](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/htrnaseq) \ncontaining the main functionality.\n2. Run the [(opinionated) `runner`](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/runner) where a\nnumber of choices (input/output structure and location) have been made.\n\nInput for the workflow has to be `fastq` files (zipped or not). For bcl or other formats, please consider running\n[demultiplex](https://www.viash-hub.com/packages/demultiplex) first.\n",
|
||||
"info" : {
|
||||
"test_resources" : [
|
||||
{
|
||||
@@ -3294,7 +3291,7 @@ meta = [
|
||||
}
|
||||
]
|
||||
},
|
||||
"viash_version" : "0.9.2",
|
||||
"viash_version" : "0.9.4",
|
||||
"source" : "src",
|
||||
"target" : "target",
|
||||
"config_mods" : [
|
||||
@@ -3305,11 +3302,13 @@ meta = [
|
||||
],
|
||||
"keywords" : [
|
||||
"bioinformatics",
|
||||
"sequence",
|
||||
"sequencing",
|
||||
"high-throughput",
|
||||
"RNAseq",
|
||||
"mapping",
|
||||
"counting",
|
||||
"pipeline"
|
||||
"pipeline",
|
||||
"workflow"
|
||||
],
|
||||
"license" : "MIT",
|
||||
"organization" : "vsh",
|
||||
@@ -3328,7 +3327,7 @@ meta = [
|
||||
// inner workflow hook
|
||||
def innerWorkflowFactory(args) {
|
||||
def rawScript = '''set -e
|
||||
tempscript=".viash_script.sh"
|
||||
tempscript=".viash_script.py"
|
||||
cat > "$tempscript" << VIASHMAIN
|
||||
import logging
|
||||
import pandas as pd
|
||||
@@ -3821,7 +3820,7 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) {
|
||||
// create process from temp file
|
||||
def binding = new nextflow.script.ScriptBinding([:])
|
||||
def session = nextflow.Nextflow.getSession()
|
||||
def parser = new nextflow.script.ScriptParser(session)
|
||||
def parser = _getScriptLoader(session)
|
||||
.setModule(true)
|
||||
.setBinding(binding)
|
||||
def moduleScript = parser.runScript(tempFile)
|
||||
@@ -3835,6 +3834,27 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) {
|
||||
return scriptMeta.getProcess(procKey)
|
||||
}
|
||||
|
||||
// use Reflection to get a ScriptParser / ScriptLoader
|
||||
// <25.02.0-edge: new nextflow.script.ScriptParser(session)
|
||||
// >=25.02.0-edge: nextflow.script.ScriptLoaderFactory.create(session)
|
||||
def _getScriptLoader(nextflow.Session session) {
|
||||
// try using the old method
|
||||
try {
|
||||
Class<?> scriptParserClass = Class.forName('nextflow.script.ScriptParser')
|
||||
return scriptParserClass.getDeclaredConstructor(nextflow.Session).newInstance(session)
|
||||
} catch (ClassNotFoundException e) {
|
||||
// else try with the new method
|
||||
try {
|
||||
Class<?> scriptLoaderFactoryClass = Class.forName('nextflow.script.ScriptLoaderFactory')
|
||||
def createMethod = scriptLoaderFactoryClass.getDeclaredMethod('create', nextflow.Session)
|
||||
return createMethod.invoke(null, session) // null because create is static
|
||||
} catch (ClassNotFoundException | NoSuchMethodException | IllegalAccessException | java.lang.reflect.InvocationTargetException e2) {
|
||||
// Handle the case where neither class is found
|
||||
throw new Exception("Neither nextflow.script.ScriptParser nor nextflow.script.ScriptLoaderFactory could be found. Is this a compatible Nextflow version?", e2)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// defaults
|
||||
meta["defaults"] = [
|
||||
// key to be used to trace the process and determine output names
|
||||
|
||||
@@ -27,7 +27,7 @@ process {
|
||||
withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } }
|
||||
withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } }
|
||||
withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 40.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } }
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -193,18 +193,35 @@ build_info:
|
||||
engine: "docker|native"
|
||||
output: "target/nextflow/eset/create_pdata"
|
||||
executable: "target/nextflow/eset/create_pdata/main.nf"
|
||||
viash_version: "0.9.2"
|
||||
git_commit: "cc910b428428dd32f183df0c2009fc36e75394e0"
|
||||
viash_version: "0.9.4"
|
||||
git_commit: "dbca5cbb3a338287f516c79705fc607bcf0905f7"
|
||||
git_remote: "https://github.com/viash-hub/htrnaseq"
|
||||
git_tag: "v0.7.2-21-gdbca5cb"
|
||||
package_config:
|
||||
name: "htrnaseq"
|
||||
version: "save-params"
|
||||
description: "High-throughput pipeline [WIP]\n"
|
||||
summary: "A workflow for high-throughput RNA-seq data analyses.\n"
|
||||
description: "This workflow is designed to process high-throughput RNA-seq data,\
|
||||
\ where every\nwell of a microarray plate is a sample. A fasta file provided as\
|
||||
\ input\ndefines the mapping between sample barcodes and wells.\n\nThe workflow\
|
||||
\ is built in a modular fashion, where most of the base functionality\nis provided\
|
||||
\ by components from [`biobox`](https://www.viash-hub.com/packages/biobox/latest)\n\
|
||||
supplemented by custom base components and workflow components in this package.\n\
|
||||
\nThe full workflow is split in two major subworkflows that can be run independently:\n\
|
||||
\n* **Well-demultiplexing:** Split the input (plate/pool level) fastq files per\
|
||||
\ well.\n* **Mapping, counting and QC:** Run per-well mapping, counting and generate\
|
||||
\ QC reports.\n\nEach of those can be started individually, or the full workflow\
|
||||
\ can be run in two ways:\n\n1. Run the [main workflow](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/htrnaseq)\
|
||||
\ \ncontaining the main functionality.\n2. Run the [(opinionated) `runner`](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/runner)\
|
||||
\ where a\nnumber of choices (input/output structure and location) have been made.\n\
|
||||
\nInput for the workflow has to be `fastq` files (zipped or not). For bcl or other\
|
||||
\ formats, please consider running\n[demultiplex](https://www.viash-hub.com/packages/demultiplex)\
|
||||
\ first.\n"
|
||||
info:
|
||||
test_resources:
|
||||
- path: "gs://viash-hub-test-data/htrnaseq/v1/"
|
||||
dest: "resources_test"
|
||||
viash_version: "0.9.2"
|
||||
viash_version: "0.9.4"
|
||||
source: "src"
|
||||
target: "target"
|
||||
config_mods:
|
||||
@@ -216,11 +233,13 @@ package_config:
|
||||
- ".engines[.type == 'docker'].target_tag := 'save-params'"
|
||||
keywords:
|
||||
- "bioinformatics"
|
||||
- "sequence"
|
||||
- "sequencing"
|
||||
- "high-throughput"
|
||||
- "RNAseq"
|
||||
- "mapping"
|
||||
- "counting"
|
||||
- "pipeline"
|
||||
- "workflow"
|
||||
license: "MIT"
|
||||
organization: "vsh"
|
||||
links:
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// create_pdata save-params
|
||||
//
|
||||
// This wrapper script is auto-generated by viash 0.9.2 and is thus a derivative
|
||||
// This wrapper script is auto-generated by viash 0.9.4 and is thus a derivative
|
||||
// work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data
|
||||
// Intuitive.
|
||||
//
|
||||
@@ -86,64 +86,56 @@ def _checkArgumentType(String stage, Map par, Object value, String errorIdentifi
|
||||
foundClass = "List[${e.foundClass}]"
|
||||
}
|
||||
} else if (par.type == "string") {
|
||||
// cast to string if need be
|
||||
// cast to string if need be. only cast if the value is a GString
|
||||
if (value instanceof GString) {
|
||||
value = value.toString()
|
||||
value = value as String
|
||||
}
|
||||
expectedClass = value instanceof String ? null : "String"
|
||||
} else if (par.type == "integer") {
|
||||
// cast to integer if need be
|
||||
if (value instanceof String) {
|
||||
if (value !instanceof Integer) {
|
||||
try {
|
||||
value = value.toInteger()
|
||||
value = value as Integer
|
||||
} catch (NumberFormatException e) {
|
||||
// do nothing
|
||||
expectedClass = "Integer"
|
||||
}
|
||||
}
|
||||
if (value instanceof java.math.BigInteger) {
|
||||
value = value.intValue()
|
||||
}
|
||||
expectedClass = value instanceof Integer ? null : "Integer"
|
||||
} else if (par.type == "long") {
|
||||
// cast to long if need be
|
||||
if (value instanceof String) {
|
||||
if (value !instanceof Long) {
|
||||
try {
|
||||
value = value.toLong()
|
||||
value = value as Long
|
||||
} catch (NumberFormatException e) {
|
||||
// do nothing
|
||||
expectedClass = "Long"
|
||||
}
|
||||
}
|
||||
if (value instanceof Integer) {
|
||||
value = value.toLong()
|
||||
}
|
||||
expectedClass = value instanceof Long ? null : "Long"
|
||||
} else if (par.type == "double") {
|
||||
// cast to double if need be
|
||||
if (value instanceof String) {
|
||||
if (value !instanceof Double) {
|
||||
try {
|
||||
value = value.toDouble()
|
||||
value = value as Double
|
||||
} catch (NumberFormatException e) {
|
||||
// do nothing
|
||||
expectedClass = "Double"
|
||||
}
|
||||
}
|
||||
if (value instanceof java.math.BigDecimal) {
|
||||
value = value.doubleValue()
|
||||
} else if (par.type == "float") {
|
||||
// cast to float if need be
|
||||
if (value !instanceof Float) {
|
||||
try {
|
||||
value = value as Float
|
||||
} catch (NumberFormatException e) {
|
||||
expectedClass = "Float"
|
||||
}
|
||||
}
|
||||
if (value instanceof Float) {
|
||||
value = value.toDouble()
|
||||
}
|
||||
expectedClass = value instanceof Double ? null : "Double"
|
||||
} else if (par.type == "boolean" | par.type == "boolean_true" | par.type == "boolean_false") {
|
||||
// cast to boolean if need be
|
||||
if (value instanceof String) {
|
||||
def valueLower = value.toLowerCase()
|
||||
if (valueLower == "true") {
|
||||
value = true
|
||||
} else if (valueLower == "false") {
|
||||
value = false
|
||||
if (value !instanceof Boolean) {
|
||||
try {
|
||||
value = value as Boolean
|
||||
} catch (Exception e) {
|
||||
expectedClass = "Boolean"
|
||||
}
|
||||
}
|
||||
expectedClass = value instanceof Boolean ? null : "Boolean"
|
||||
} else if (par.type == "file" && (par.direction == "input" || stage == "output")) {
|
||||
// cast to path if need be
|
||||
if (value instanceof String) {
|
||||
@@ -155,10 +147,13 @@ def _checkArgumentType(String stage, Map par, Object value, String errorIdentifi
|
||||
expectedClass = value instanceof Path ? null : "Path"
|
||||
} else if (par.type == "file" && stage == "input" && par.direction == "output") {
|
||||
// cast to string if need be
|
||||
if (value instanceof GString) {
|
||||
value = value.toString()
|
||||
if (value !instanceof String) {
|
||||
try {
|
||||
value = value as String
|
||||
} catch (Exception e) {
|
||||
expectedClass = "String"
|
||||
}
|
||||
}
|
||||
expectedClass = value instanceof String ? null : "String"
|
||||
} else {
|
||||
// didn't find a match for par.type
|
||||
expectedClass = par.type
|
||||
@@ -3292,14 +3287,16 @@ meta = [
|
||||
"runner" : "nextflow",
|
||||
"engine" : "docker|native",
|
||||
"output" : "target/nextflow/eset/create_pdata",
|
||||
"viash_version" : "0.9.2",
|
||||
"git_commit" : "cc910b428428dd32f183df0c2009fc36e75394e0",
|
||||
"git_remote" : "https://github.com/viash-hub/htrnaseq"
|
||||
"viash_version" : "0.9.4",
|
||||
"git_commit" : "dbca5cbb3a338287f516c79705fc607bcf0905f7",
|
||||
"git_remote" : "https://github.com/viash-hub/htrnaseq",
|
||||
"git_tag" : "v0.7.2-21-gdbca5cb"
|
||||
},
|
||||
"package_config" : {
|
||||
"name" : "htrnaseq",
|
||||
"version" : "save-params",
|
||||
"description" : "High-throughput pipeline [WIP]\n",
|
||||
"summary" : "A workflow for high-throughput RNA-seq data analyses.\n",
|
||||
"description" : "This workflow is designed to process high-throughput RNA-seq data, where every\nwell of a microarray plate is a sample. A fasta file provided as input\ndefines the mapping between sample barcodes and wells.\n\nThe workflow is built in a modular fashion, where most of the base functionality\nis provided by components from [`biobox`](https://www.viash-hub.com/packages/biobox/latest)\nsupplemented by custom base components and workflow components in this package.\n\nThe full workflow is split in two major subworkflows that can be run independently:\n\n* **Well-demultiplexing:** Split the input (plate/pool level) fastq files per well.\n* **Mapping, counting and QC:** Run per-well mapping, counting and generate QC reports.\n\nEach of those can be started individually, or the full workflow can be run in two ways:\n\n1. Run the [main workflow](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/htrnaseq) \ncontaining the main functionality.\n2. Run the [(opinionated) `runner`](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/runner) where a\nnumber of choices (input/output structure and location) have been made.\n\nInput for the workflow has to be `fastq` files (zipped or not). For bcl or other formats, please consider running\n[demultiplex](https://www.viash-hub.com/packages/demultiplex) first.\n",
|
||||
"info" : {
|
||||
"test_resources" : [
|
||||
{
|
||||
@@ -3308,7 +3305,7 @@ meta = [
|
||||
}
|
||||
]
|
||||
},
|
||||
"viash_version" : "0.9.2",
|
||||
"viash_version" : "0.9.4",
|
||||
"source" : "src",
|
||||
"target" : "target",
|
||||
"config_mods" : [
|
||||
@@ -3319,11 +3316,13 @@ meta = [
|
||||
],
|
||||
"keywords" : [
|
||||
"bioinformatics",
|
||||
"sequence",
|
||||
"sequencing",
|
||||
"high-throughput",
|
||||
"RNAseq",
|
||||
"mapping",
|
||||
"counting",
|
||||
"pipeline"
|
||||
"pipeline",
|
||||
"workflow"
|
||||
],
|
||||
"license" : "MIT",
|
||||
"organization" : "vsh",
|
||||
@@ -3342,7 +3341,7 @@ meta = [
|
||||
// inner workflow hook
|
||||
def innerWorkflowFactory(args) {
|
||||
def rawScript = '''set -e
|
||||
tempscript=".viash_script.sh"
|
||||
tempscript=".viash_script.py"
|
||||
cat > "$tempscript" << VIASHMAIN
|
||||
from itertools import batched
|
||||
import pandas as pd
|
||||
@@ -3761,7 +3760,7 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) {
|
||||
// create process from temp file
|
||||
def binding = new nextflow.script.ScriptBinding([:])
|
||||
def session = nextflow.Nextflow.getSession()
|
||||
def parser = new nextflow.script.ScriptParser(session)
|
||||
def parser = _getScriptLoader(session)
|
||||
.setModule(true)
|
||||
.setBinding(binding)
|
||||
def moduleScript = parser.runScript(tempFile)
|
||||
@@ -3775,6 +3774,27 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) {
|
||||
return scriptMeta.getProcess(procKey)
|
||||
}
|
||||
|
||||
// use Reflection to get a ScriptParser / ScriptLoader
|
||||
// <25.02.0-edge: new nextflow.script.ScriptParser(session)
|
||||
// >=25.02.0-edge: nextflow.script.ScriptLoaderFactory.create(session)
|
||||
def _getScriptLoader(nextflow.Session session) {
|
||||
// try using the old method
|
||||
try {
|
||||
Class<?> scriptParserClass = Class.forName('nextflow.script.ScriptParser')
|
||||
return scriptParserClass.getDeclaredConstructor(nextflow.Session).newInstance(session)
|
||||
} catch (ClassNotFoundException e) {
|
||||
// else try with the new method
|
||||
try {
|
||||
Class<?> scriptLoaderFactoryClass = Class.forName('nextflow.script.ScriptLoaderFactory')
|
||||
def createMethod = scriptLoaderFactoryClass.getDeclaredMethod('create', nextflow.Session)
|
||||
return createMethod.invoke(null, session) // null because create is static
|
||||
} catch (ClassNotFoundException | NoSuchMethodException | IllegalAccessException | java.lang.reflect.InvocationTargetException e2) {
|
||||
// Handle the case where neither class is found
|
||||
throw new Exception("Neither nextflow.script.ScriptParser nor nextflow.script.ScriptLoaderFactory could be found. Is this a compatible Nextflow version?", e2)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// defaults
|
||||
meta["defaults"] = [
|
||||
// key to be used to trace the process and determine output names
|
||||
|
||||
@@ -27,7 +27,7 @@ process {
|
||||
withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } }
|
||||
withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } }
|
||||
withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 40.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } }
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -151,18 +151,35 @@ build_info:
|
||||
engine: "docker|native"
|
||||
output: "target/nextflow/integration_test_components/htrnaseq/check_eset"
|
||||
executable: "target/nextflow/integration_test_components/htrnaseq/check_eset/main.nf"
|
||||
viash_version: "0.9.2"
|
||||
git_commit: "cc910b428428dd32f183df0c2009fc36e75394e0"
|
||||
viash_version: "0.9.4"
|
||||
git_commit: "dbca5cbb3a338287f516c79705fc607bcf0905f7"
|
||||
git_remote: "https://github.com/viash-hub/htrnaseq"
|
||||
git_tag: "v0.7.2-21-gdbca5cb"
|
||||
package_config:
|
||||
name: "htrnaseq"
|
||||
version: "save-params"
|
||||
description: "High-throughput pipeline [WIP]\n"
|
||||
summary: "A workflow for high-throughput RNA-seq data analyses.\n"
|
||||
description: "This workflow is designed to process high-throughput RNA-seq data,\
|
||||
\ where every\nwell of a microarray plate is a sample. A fasta file provided as\
|
||||
\ input\ndefines the mapping between sample barcodes and wells.\n\nThe workflow\
|
||||
\ is built in a modular fashion, where most of the base functionality\nis provided\
|
||||
\ by components from [`biobox`](https://www.viash-hub.com/packages/biobox/latest)\n\
|
||||
supplemented by custom base components and workflow components in this package.\n\
|
||||
\nThe full workflow is split in two major subworkflows that can be run independently:\n\
|
||||
\n* **Well-demultiplexing:** Split the input (plate/pool level) fastq files per\
|
||||
\ well.\n* **Mapping, counting and QC:** Run per-well mapping, counting and generate\
|
||||
\ QC reports.\n\nEach of those can be started individually, or the full workflow\
|
||||
\ can be run in two ways:\n\n1. Run the [main workflow](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/htrnaseq)\
|
||||
\ \ncontaining the main functionality.\n2. Run the [(opinionated) `runner`](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/runner)\
|
||||
\ where a\nnumber of choices (input/output structure and location) have been made.\n\
|
||||
\nInput for the workflow has to be `fastq` files (zipped or not). For bcl or other\
|
||||
\ formats, please consider running\n[demultiplex](https://www.viash-hub.com/packages/demultiplex)\
|
||||
\ first.\n"
|
||||
info:
|
||||
test_resources:
|
||||
- path: "gs://viash-hub-test-data/htrnaseq/v1/"
|
||||
dest: "resources_test"
|
||||
viash_version: "0.9.2"
|
||||
viash_version: "0.9.4"
|
||||
source: "src"
|
||||
target: "target"
|
||||
config_mods:
|
||||
@@ -174,11 +191,13 @@ package_config:
|
||||
- ".engines[.type == 'docker'].target_tag := 'save-params'"
|
||||
keywords:
|
||||
- "bioinformatics"
|
||||
- "sequence"
|
||||
- "sequencing"
|
||||
- "high-throughput"
|
||||
- "RNAseq"
|
||||
- "mapping"
|
||||
- "counting"
|
||||
- "pipeline"
|
||||
- "workflow"
|
||||
license: "MIT"
|
||||
organization: "vsh"
|
||||
links:
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// check_eset save-params
|
||||
//
|
||||
// This wrapper script is auto-generated by viash 0.9.2 and is thus a derivative
|
||||
// This wrapper script is auto-generated by viash 0.9.4 and is thus a derivative
|
||||
// work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data
|
||||
// Intuitive.
|
||||
//
|
||||
@@ -85,64 +85,56 @@ def _checkArgumentType(String stage, Map par, Object value, String errorIdentifi
|
||||
foundClass = "List[${e.foundClass}]"
|
||||
}
|
||||
} else if (par.type == "string") {
|
||||
// cast to string if need be
|
||||
// cast to string if need be. only cast if the value is a GString
|
||||
if (value instanceof GString) {
|
||||
value = value.toString()
|
||||
value = value as String
|
||||
}
|
||||
expectedClass = value instanceof String ? null : "String"
|
||||
} else if (par.type == "integer") {
|
||||
// cast to integer if need be
|
||||
if (value instanceof String) {
|
||||
if (value !instanceof Integer) {
|
||||
try {
|
||||
value = value.toInteger()
|
||||
value = value as Integer
|
||||
} catch (NumberFormatException e) {
|
||||
// do nothing
|
||||
expectedClass = "Integer"
|
||||
}
|
||||
}
|
||||
if (value instanceof java.math.BigInteger) {
|
||||
value = value.intValue()
|
||||
}
|
||||
expectedClass = value instanceof Integer ? null : "Integer"
|
||||
} else if (par.type == "long") {
|
||||
// cast to long if need be
|
||||
if (value instanceof String) {
|
||||
if (value !instanceof Long) {
|
||||
try {
|
||||
value = value.toLong()
|
||||
value = value as Long
|
||||
} catch (NumberFormatException e) {
|
||||
// do nothing
|
||||
expectedClass = "Long"
|
||||
}
|
||||
}
|
||||
if (value instanceof Integer) {
|
||||
value = value.toLong()
|
||||
}
|
||||
expectedClass = value instanceof Long ? null : "Long"
|
||||
} else if (par.type == "double") {
|
||||
// cast to double if need be
|
||||
if (value instanceof String) {
|
||||
if (value !instanceof Double) {
|
||||
try {
|
||||
value = value.toDouble()
|
||||
value = value as Double
|
||||
} catch (NumberFormatException e) {
|
||||
// do nothing
|
||||
expectedClass = "Double"
|
||||
}
|
||||
}
|
||||
if (value instanceof java.math.BigDecimal) {
|
||||
value = value.doubleValue()
|
||||
} else if (par.type == "float") {
|
||||
// cast to float if need be
|
||||
if (value !instanceof Float) {
|
||||
try {
|
||||
value = value as Float
|
||||
} catch (NumberFormatException e) {
|
||||
expectedClass = "Float"
|
||||
}
|
||||
}
|
||||
if (value instanceof Float) {
|
||||
value = value.toDouble()
|
||||
}
|
||||
expectedClass = value instanceof Double ? null : "Double"
|
||||
} else if (par.type == "boolean" | par.type == "boolean_true" | par.type == "boolean_false") {
|
||||
// cast to boolean if need be
|
||||
if (value instanceof String) {
|
||||
def valueLower = value.toLowerCase()
|
||||
if (valueLower == "true") {
|
||||
value = true
|
||||
} else if (valueLower == "false") {
|
||||
value = false
|
||||
if (value !instanceof Boolean) {
|
||||
try {
|
||||
value = value as Boolean
|
||||
} catch (Exception e) {
|
||||
expectedClass = "Boolean"
|
||||
}
|
||||
}
|
||||
expectedClass = value instanceof Boolean ? null : "Boolean"
|
||||
} else if (par.type == "file" && (par.direction == "input" || stage == "output")) {
|
||||
// cast to path if need be
|
||||
if (value instanceof String) {
|
||||
@@ -154,10 +146,13 @@ def _checkArgumentType(String stage, Map par, Object value, String errorIdentifi
|
||||
expectedClass = value instanceof Path ? null : "Path"
|
||||
} else if (par.type == "file" && stage == "input" && par.direction == "output") {
|
||||
// cast to string if need be
|
||||
if (value instanceof GString) {
|
||||
value = value.toString()
|
||||
if (value !instanceof String) {
|
||||
try {
|
||||
value = value as String
|
||||
} catch (Exception e) {
|
||||
expectedClass = "String"
|
||||
}
|
||||
}
|
||||
expectedClass = value instanceof String ? null : "String"
|
||||
} else {
|
||||
// didn't find a match for par.type
|
||||
expectedClass = par.type
|
||||
@@ -3232,14 +3227,16 @@ meta = [
|
||||
"runner" : "nextflow",
|
||||
"engine" : "docker|native",
|
||||
"output" : "target/nextflow/integration_test_components/htrnaseq/check_eset",
|
||||
"viash_version" : "0.9.2",
|
||||
"git_commit" : "cc910b428428dd32f183df0c2009fc36e75394e0",
|
||||
"git_remote" : "https://github.com/viash-hub/htrnaseq"
|
||||
"viash_version" : "0.9.4",
|
||||
"git_commit" : "dbca5cbb3a338287f516c79705fc607bcf0905f7",
|
||||
"git_remote" : "https://github.com/viash-hub/htrnaseq",
|
||||
"git_tag" : "v0.7.2-21-gdbca5cb"
|
||||
},
|
||||
"package_config" : {
|
||||
"name" : "htrnaseq",
|
||||
"version" : "save-params",
|
||||
"description" : "High-throughput pipeline [WIP]\n",
|
||||
"summary" : "A workflow for high-throughput RNA-seq data analyses.\n",
|
||||
"description" : "This workflow is designed to process high-throughput RNA-seq data, where every\nwell of a microarray plate is a sample. A fasta file provided as input\ndefines the mapping between sample barcodes and wells.\n\nThe workflow is built in a modular fashion, where most of the base functionality\nis provided by components from [`biobox`](https://www.viash-hub.com/packages/biobox/latest)\nsupplemented by custom base components and workflow components in this package.\n\nThe full workflow is split in two major subworkflows that can be run independently:\n\n* **Well-demultiplexing:** Split the input (plate/pool level) fastq files per well.\n* **Mapping, counting and QC:** Run per-well mapping, counting and generate QC reports.\n\nEach of those can be started individually, or the full workflow can be run in two ways:\n\n1. Run the [main workflow](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/htrnaseq) \ncontaining the main functionality.\n2. Run the [(opinionated) `runner`](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/runner) where a\nnumber of choices (input/output structure and location) have been made.\n\nInput for the workflow has to be `fastq` files (zipped or not). For bcl or other formats, please consider running\n[demultiplex](https://www.viash-hub.com/packages/demultiplex) first.\n",
|
||||
"info" : {
|
||||
"test_resources" : [
|
||||
{
|
||||
@@ -3248,7 +3245,7 @@ meta = [
|
||||
}
|
||||
]
|
||||
},
|
||||
"viash_version" : "0.9.2",
|
||||
"viash_version" : "0.9.4",
|
||||
"source" : "src",
|
||||
"target" : "target",
|
||||
"config_mods" : [
|
||||
@@ -3259,11 +3256,13 @@ meta = [
|
||||
],
|
||||
"keywords" : [
|
||||
"bioinformatics",
|
||||
"sequence",
|
||||
"sequencing",
|
||||
"high-throughput",
|
||||
"RNAseq",
|
||||
"mapping",
|
||||
"counting",
|
||||
"pipeline"
|
||||
"pipeline",
|
||||
"workflow"
|
||||
],
|
||||
"license" : "MIT",
|
||||
"organization" : "vsh",
|
||||
@@ -3282,7 +3281,7 @@ meta = [
|
||||
// inner workflow hook
|
||||
def innerWorkflowFactory(args) {
|
||||
def rawScript = '''set -e
|
||||
tempscript=".viash_script.sh"
|
||||
tempscript=".viash_script.R"
|
||||
cat > "$tempscript" << VIASHMAIN
|
||||
## VIASH START
|
||||
# The following code has been auto-generated by Viash.
|
||||
@@ -3855,7 +3854,7 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) {
|
||||
// create process from temp file
|
||||
def binding = new nextflow.script.ScriptBinding([:])
|
||||
def session = nextflow.Nextflow.getSession()
|
||||
def parser = new nextflow.script.ScriptParser(session)
|
||||
def parser = _getScriptLoader(session)
|
||||
.setModule(true)
|
||||
.setBinding(binding)
|
||||
def moduleScript = parser.runScript(tempFile)
|
||||
@@ -3869,6 +3868,27 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) {
|
||||
return scriptMeta.getProcess(procKey)
|
||||
}
|
||||
|
||||
// use Reflection to get a ScriptParser / ScriptLoader
|
||||
// <25.02.0-edge: new nextflow.script.ScriptParser(session)
|
||||
// >=25.02.0-edge: nextflow.script.ScriptLoaderFactory.create(session)
|
||||
def _getScriptLoader(nextflow.Session session) {
|
||||
// try using the old method
|
||||
try {
|
||||
Class<?> scriptParserClass = Class.forName('nextflow.script.ScriptParser')
|
||||
return scriptParserClass.getDeclaredConstructor(nextflow.Session).newInstance(session)
|
||||
} catch (ClassNotFoundException e) {
|
||||
// else try with the new method
|
||||
try {
|
||||
Class<?> scriptLoaderFactoryClass = Class.forName('nextflow.script.ScriptLoaderFactory')
|
||||
def createMethod = scriptLoaderFactoryClass.getDeclaredMethod('create', nextflow.Session)
|
||||
return createMethod.invoke(null, session) // null because create is static
|
||||
} catch (ClassNotFoundException | NoSuchMethodException | IllegalAccessException | java.lang.reflect.InvocationTargetException e2) {
|
||||
// Handle the case where neither class is found
|
||||
throw new Exception("Neither nextflow.script.ScriptParser nor nextflow.script.ScriptLoaderFactory could be found. Is this a compatible Nextflow version?", e2)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// defaults
|
||||
meta["defaults"] = [
|
||||
// key to be used to trace the process and determine output names
|
||||
|
||||
@@ -27,7 +27,7 @@ process {
|
||||
withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } }
|
||||
withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } }
|
||||
withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 40.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } }
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -160,18 +160,35 @@ build_info:
|
||||
engine: "docker|native"
|
||||
output: "target/nextflow/integration_test_components/well_demultiplexing/check_cutadapt_output"
|
||||
executable: "target/nextflow/integration_test_components/well_demultiplexing/check_cutadapt_output/main.nf"
|
||||
viash_version: "0.9.2"
|
||||
git_commit: "cc910b428428dd32f183df0c2009fc36e75394e0"
|
||||
viash_version: "0.9.4"
|
||||
git_commit: "dbca5cbb3a338287f516c79705fc607bcf0905f7"
|
||||
git_remote: "https://github.com/viash-hub/htrnaseq"
|
||||
git_tag: "v0.7.2-21-gdbca5cb"
|
||||
package_config:
|
||||
name: "htrnaseq"
|
||||
version: "save-params"
|
||||
description: "High-throughput pipeline [WIP]\n"
|
||||
summary: "A workflow for high-throughput RNA-seq data analyses.\n"
|
||||
description: "This workflow is designed to process high-throughput RNA-seq data,\
|
||||
\ where every\nwell of a microarray plate is a sample. A fasta file provided as\
|
||||
\ input\ndefines the mapping between sample barcodes and wells.\n\nThe workflow\
|
||||
\ is built in a modular fashion, where most of the base functionality\nis provided\
|
||||
\ by components from [`biobox`](https://www.viash-hub.com/packages/biobox/latest)\n\
|
||||
supplemented by custom base components and workflow components in this package.\n\
|
||||
\nThe full workflow is split in two major subworkflows that can be run independently:\n\
|
||||
\n* **Well-demultiplexing:** Split the input (plate/pool level) fastq files per\
|
||||
\ well.\n* **Mapping, counting and QC:** Run per-well mapping, counting and generate\
|
||||
\ QC reports.\n\nEach of those can be started individually, or the full workflow\
|
||||
\ can be run in two ways:\n\n1. Run the [main workflow](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/htrnaseq)\
|
||||
\ \ncontaining the main functionality.\n2. Run the [(opinionated) `runner`](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/runner)\
|
||||
\ where a\nnumber of choices (input/output structure and location) have been made.\n\
|
||||
\nInput for the workflow has to be `fastq` files (zipped or not). For bcl or other\
|
||||
\ formats, please consider running\n[demultiplex](https://www.viash-hub.com/packages/demultiplex)\
|
||||
\ first.\n"
|
||||
info:
|
||||
test_resources:
|
||||
- path: "gs://viash-hub-test-data/htrnaseq/v1/"
|
||||
dest: "resources_test"
|
||||
viash_version: "0.9.2"
|
||||
viash_version: "0.9.4"
|
||||
source: "src"
|
||||
target: "target"
|
||||
config_mods:
|
||||
@@ -183,11 +200,13 @@ package_config:
|
||||
- ".engines[.type == 'docker'].target_tag := 'save-params'"
|
||||
keywords:
|
||||
- "bioinformatics"
|
||||
- "sequence"
|
||||
- "sequencing"
|
||||
- "high-throughput"
|
||||
- "RNAseq"
|
||||
- "mapping"
|
||||
- "counting"
|
||||
- "pipeline"
|
||||
- "workflow"
|
||||
license: "MIT"
|
||||
organization: "vsh"
|
||||
links:
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// check_cutadapt_output save-params
|
||||
//
|
||||
// This wrapper script is auto-generated by viash 0.9.2 and is thus a derivative
|
||||
// This wrapper script is auto-generated by viash 0.9.4 and is thus a derivative
|
||||
// work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data
|
||||
// Intuitive.
|
||||
//
|
||||
@@ -85,64 +85,56 @@ def _checkArgumentType(String stage, Map par, Object value, String errorIdentifi
|
||||
foundClass = "List[${e.foundClass}]"
|
||||
}
|
||||
} else if (par.type == "string") {
|
||||
// cast to string if need be
|
||||
// cast to string if need be. only cast if the value is a GString
|
||||
if (value instanceof GString) {
|
||||
value = value.toString()
|
||||
value = value as String
|
||||
}
|
||||
expectedClass = value instanceof String ? null : "String"
|
||||
} else if (par.type == "integer") {
|
||||
// cast to integer if need be
|
||||
if (value instanceof String) {
|
||||
if (value !instanceof Integer) {
|
||||
try {
|
||||
value = value.toInteger()
|
||||
value = value as Integer
|
||||
} catch (NumberFormatException e) {
|
||||
// do nothing
|
||||
expectedClass = "Integer"
|
||||
}
|
||||
}
|
||||
if (value instanceof java.math.BigInteger) {
|
||||
value = value.intValue()
|
||||
}
|
||||
expectedClass = value instanceof Integer ? null : "Integer"
|
||||
} else if (par.type == "long") {
|
||||
// cast to long if need be
|
||||
if (value instanceof String) {
|
||||
if (value !instanceof Long) {
|
||||
try {
|
||||
value = value.toLong()
|
||||
value = value as Long
|
||||
} catch (NumberFormatException e) {
|
||||
// do nothing
|
||||
expectedClass = "Long"
|
||||
}
|
||||
}
|
||||
if (value instanceof Integer) {
|
||||
value = value.toLong()
|
||||
}
|
||||
expectedClass = value instanceof Long ? null : "Long"
|
||||
} else if (par.type == "double") {
|
||||
// cast to double if need be
|
||||
if (value instanceof String) {
|
||||
if (value !instanceof Double) {
|
||||
try {
|
||||
value = value.toDouble()
|
||||
value = value as Double
|
||||
} catch (NumberFormatException e) {
|
||||
// do nothing
|
||||
expectedClass = "Double"
|
||||
}
|
||||
}
|
||||
if (value instanceof java.math.BigDecimal) {
|
||||
value = value.doubleValue()
|
||||
} else if (par.type == "float") {
|
||||
// cast to float if need be
|
||||
if (value !instanceof Float) {
|
||||
try {
|
||||
value = value as Float
|
||||
} catch (NumberFormatException e) {
|
||||
expectedClass = "Float"
|
||||
}
|
||||
}
|
||||
if (value instanceof Float) {
|
||||
value = value.toDouble()
|
||||
}
|
||||
expectedClass = value instanceof Double ? null : "Double"
|
||||
} else if (par.type == "boolean" | par.type == "boolean_true" | par.type == "boolean_false") {
|
||||
// cast to boolean if need be
|
||||
if (value instanceof String) {
|
||||
def valueLower = value.toLowerCase()
|
||||
if (valueLower == "true") {
|
||||
value = true
|
||||
} else if (valueLower == "false") {
|
||||
value = false
|
||||
if (value !instanceof Boolean) {
|
||||
try {
|
||||
value = value as Boolean
|
||||
} catch (Exception e) {
|
||||
expectedClass = "Boolean"
|
||||
}
|
||||
}
|
||||
expectedClass = value instanceof Boolean ? null : "Boolean"
|
||||
} else if (par.type == "file" && (par.direction == "input" || stage == "output")) {
|
||||
// cast to path if need be
|
||||
if (value instanceof String) {
|
||||
@@ -154,10 +146,13 @@ def _checkArgumentType(String stage, Map par, Object value, String errorIdentifi
|
||||
expectedClass = value instanceof Path ? null : "Path"
|
||||
} else if (par.type == "file" && stage == "input" && par.direction == "output") {
|
||||
// cast to string if need be
|
||||
if (value instanceof GString) {
|
||||
value = value.toString()
|
||||
if (value !instanceof String) {
|
||||
try {
|
||||
value = value as String
|
||||
} catch (Exception e) {
|
||||
expectedClass = "String"
|
||||
}
|
||||
}
|
||||
expectedClass = value instanceof String ? null : "String"
|
||||
} else {
|
||||
// didn't find a match for par.type
|
||||
expectedClass = par.type
|
||||
@@ -3243,14 +3238,16 @@ meta = [
|
||||
"runner" : "nextflow",
|
||||
"engine" : "docker|native",
|
||||
"output" : "target/nextflow/integration_test_components/well_demultiplexing/check_cutadapt_output",
|
||||
"viash_version" : "0.9.2",
|
||||
"git_commit" : "cc910b428428dd32f183df0c2009fc36e75394e0",
|
||||
"git_remote" : "https://github.com/viash-hub/htrnaseq"
|
||||
"viash_version" : "0.9.4",
|
||||
"git_commit" : "dbca5cbb3a338287f516c79705fc607bcf0905f7",
|
||||
"git_remote" : "https://github.com/viash-hub/htrnaseq",
|
||||
"git_tag" : "v0.7.2-21-gdbca5cb"
|
||||
},
|
||||
"package_config" : {
|
||||
"name" : "htrnaseq",
|
||||
"version" : "save-params",
|
||||
"description" : "High-throughput pipeline [WIP]\n",
|
||||
"summary" : "A workflow for high-throughput RNA-seq data analyses.\n",
|
||||
"description" : "This workflow is designed to process high-throughput RNA-seq data, where every\nwell of a microarray plate is a sample. A fasta file provided as input\ndefines the mapping between sample barcodes and wells.\n\nThe workflow is built in a modular fashion, where most of the base functionality\nis provided by components from [`biobox`](https://www.viash-hub.com/packages/biobox/latest)\nsupplemented by custom base components and workflow components in this package.\n\nThe full workflow is split in two major subworkflows that can be run independently:\n\n* **Well-demultiplexing:** Split the input (plate/pool level) fastq files per well.\n* **Mapping, counting and QC:** Run per-well mapping, counting and generate QC reports.\n\nEach of those can be started individually, or the full workflow can be run in two ways:\n\n1. Run the [main workflow](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/htrnaseq) \ncontaining the main functionality.\n2. Run the [(opinionated) `runner`](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/runner) where a\nnumber of choices (input/output structure and location) have been made.\n\nInput for the workflow has to be `fastq` files (zipped or not). For bcl or other formats, please consider running\n[demultiplex](https://www.viash-hub.com/packages/demultiplex) first.\n",
|
||||
"info" : {
|
||||
"test_resources" : [
|
||||
{
|
||||
@@ -3259,7 +3256,7 @@ meta = [
|
||||
}
|
||||
]
|
||||
},
|
||||
"viash_version" : "0.9.2",
|
||||
"viash_version" : "0.9.4",
|
||||
"source" : "src",
|
||||
"target" : "target",
|
||||
"config_mods" : [
|
||||
@@ -3270,11 +3267,13 @@ meta = [
|
||||
],
|
||||
"keywords" : [
|
||||
"bioinformatics",
|
||||
"sequence",
|
||||
"sequencing",
|
||||
"high-throughput",
|
||||
"RNAseq",
|
||||
"mapping",
|
||||
"counting",
|
||||
"pipeline"
|
||||
"pipeline",
|
||||
"workflow"
|
||||
],
|
||||
"license" : "MIT",
|
||||
"organization" : "vsh",
|
||||
@@ -3293,7 +3292,7 @@ meta = [
|
||||
// inner workflow hook
|
||||
def innerWorkflowFactory(args) {
|
||||
def rawScript = '''set -e
|
||||
tempscript=".viash_script.sh"
|
||||
tempscript=".viash_script.py"
|
||||
cat > "$tempscript" << VIASHMAIN
|
||||
import dnaio
|
||||
from operator import itemgetter
|
||||
@@ -3735,7 +3734,7 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) {
|
||||
// create process from temp file
|
||||
def binding = new nextflow.script.ScriptBinding([:])
|
||||
def session = nextflow.Nextflow.getSession()
|
||||
def parser = new nextflow.script.ScriptParser(session)
|
||||
def parser = _getScriptLoader(session)
|
||||
.setModule(true)
|
||||
.setBinding(binding)
|
||||
def moduleScript = parser.runScript(tempFile)
|
||||
@@ -3749,6 +3748,27 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) {
|
||||
return scriptMeta.getProcess(procKey)
|
||||
}
|
||||
|
||||
// use Reflection to get a ScriptParser / ScriptLoader
|
||||
// <25.02.0-edge: new nextflow.script.ScriptParser(session)
|
||||
// >=25.02.0-edge: nextflow.script.ScriptLoaderFactory.create(session)
|
||||
def _getScriptLoader(nextflow.Session session) {
|
||||
// try using the old method
|
||||
try {
|
||||
Class<?> scriptParserClass = Class.forName('nextflow.script.ScriptParser')
|
||||
return scriptParserClass.getDeclaredConstructor(nextflow.Session).newInstance(session)
|
||||
} catch (ClassNotFoundException e) {
|
||||
// else try with the new method
|
||||
try {
|
||||
Class<?> scriptLoaderFactoryClass = Class.forName('nextflow.script.ScriptLoaderFactory')
|
||||
def createMethod = scriptLoaderFactoryClass.getDeclaredMethod('create', nextflow.Session)
|
||||
return createMethod.invoke(null, session) // null because create is static
|
||||
} catch (ClassNotFoundException | NoSuchMethodException | IllegalAccessException | java.lang.reflect.InvocationTargetException e2) {
|
||||
// Handle the case where neither class is found
|
||||
throw new Exception("Neither nextflow.script.ScriptParser nor nextflow.script.ScriptLoaderFactory could be found. Is this a compatible Nextflow version?", e2)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// defaults
|
||||
meta["defaults"] = [
|
||||
// key to be used to trace the process and determine output names
|
||||
|
||||
@@ -27,7 +27,7 @@ process {
|
||||
withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } }
|
||||
withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } }
|
||||
withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 40.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } }
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -135,18 +135,35 @@ build_info:
|
||||
engine: "docker|native"
|
||||
output: "target/nextflow/io/publish_fastqs"
|
||||
executable: "target/nextflow/io/publish_fastqs/main.nf"
|
||||
viash_version: "0.9.2"
|
||||
git_commit: "cc910b428428dd32f183df0c2009fc36e75394e0"
|
||||
viash_version: "0.9.4"
|
||||
git_commit: "dbca5cbb3a338287f516c79705fc607bcf0905f7"
|
||||
git_remote: "https://github.com/viash-hub/htrnaseq"
|
||||
git_tag: "v0.7.2-21-gdbca5cb"
|
||||
package_config:
|
||||
name: "htrnaseq"
|
||||
version: "save-params"
|
||||
description: "High-throughput pipeline [WIP]\n"
|
||||
summary: "A workflow for high-throughput RNA-seq data analyses.\n"
|
||||
description: "This workflow is designed to process high-throughput RNA-seq data,\
|
||||
\ where every\nwell of a microarray plate is a sample. A fasta file provided as\
|
||||
\ input\ndefines the mapping between sample barcodes and wells.\n\nThe workflow\
|
||||
\ is built in a modular fashion, where most of the base functionality\nis provided\
|
||||
\ by components from [`biobox`](https://www.viash-hub.com/packages/biobox/latest)\n\
|
||||
supplemented by custom base components and workflow components in this package.\n\
|
||||
\nThe full workflow is split in two major subworkflows that can be run independently:\n\
|
||||
\n* **Well-demultiplexing:** Split the input (plate/pool level) fastq files per\
|
||||
\ well.\n* **Mapping, counting and QC:** Run per-well mapping, counting and generate\
|
||||
\ QC reports.\n\nEach of those can be started individually, or the full workflow\
|
||||
\ can be run in two ways:\n\n1. Run the [main workflow](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/htrnaseq)\
|
||||
\ \ncontaining the main functionality.\n2. Run the [(opinionated) `runner`](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/runner)\
|
||||
\ where a\nnumber of choices (input/output structure and location) have been made.\n\
|
||||
\nInput for the workflow has to be `fastq` files (zipped or not). For bcl or other\
|
||||
\ formats, please consider running\n[demultiplex](https://www.viash-hub.com/packages/demultiplex)\
|
||||
\ first.\n"
|
||||
info:
|
||||
test_resources:
|
||||
- path: "gs://viash-hub-test-data/htrnaseq/v1/"
|
||||
dest: "resources_test"
|
||||
viash_version: "0.9.2"
|
||||
viash_version: "0.9.4"
|
||||
source: "src"
|
||||
target: "target"
|
||||
config_mods:
|
||||
@@ -158,11 +175,13 @@ package_config:
|
||||
- ".engines[.type == 'docker'].target_tag := 'save-params'"
|
||||
keywords:
|
||||
- "bioinformatics"
|
||||
- "sequence"
|
||||
- "sequencing"
|
||||
- "high-throughput"
|
||||
- "RNAseq"
|
||||
- "mapping"
|
||||
- "counting"
|
||||
- "pipeline"
|
||||
- "workflow"
|
||||
license: "MIT"
|
||||
organization: "vsh"
|
||||
links:
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// publish_fastqs save-params
|
||||
//
|
||||
// This wrapper script is auto-generated by viash 0.9.2 and is thus a derivative
|
||||
// This wrapper script is auto-generated by viash 0.9.4 and is thus a derivative
|
||||
// work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data
|
||||
// Intuitive.
|
||||
//
|
||||
@@ -82,64 +82,56 @@ def _checkArgumentType(String stage, Map par, Object value, String errorIdentifi
|
||||
foundClass = "List[${e.foundClass}]"
|
||||
}
|
||||
} else if (par.type == "string") {
|
||||
// cast to string if need be
|
||||
// cast to string if need be. only cast if the value is a GString
|
||||
if (value instanceof GString) {
|
||||
value = value.toString()
|
||||
value = value as String
|
||||
}
|
||||
expectedClass = value instanceof String ? null : "String"
|
||||
} else if (par.type == "integer") {
|
||||
// cast to integer if need be
|
||||
if (value instanceof String) {
|
||||
if (value !instanceof Integer) {
|
||||
try {
|
||||
value = value.toInteger()
|
||||
value = value as Integer
|
||||
} catch (NumberFormatException e) {
|
||||
// do nothing
|
||||
expectedClass = "Integer"
|
||||
}
|
||||
}
|
||||
if (value instanceof java.math.BigInteger) {
|
||||
value = value.intValue()
|
||||
}
|
||||
expectedClass = value instanceof Integer ? null : "Integer"
|
||||
} else if (par.type == "long") {
|
||||
// cast to long if need be
|
||||
if (value instanceof String) {
|
||||
if (value !instanceof Long) {
|
||||
try {
|
||||
value = value.toLong()
|
||||
value = value as Long
|
||||
} catch (NumberFormatException e) {
|
||||
// do nothing
|
||||
expectedClass = "Long"
|
||||
}
|
||||
}
|
||||
if (value instanceof Integer) {
|
||||
value = value.toLong()
|
||||
}
|
||||
expectedClass = value instanceof Long ? null : "Long"
|
||||
} else if (par.type == "double") {
|
||||
// cast to double if need be
|
||||
if (value instanceof String) {
|
||||
if (value !instanceof Double) {
|
||||
try {
|
||||
value = value.toDouble()
|
||||
value = value as Double
|
||||
} catch (NumberFormatException e) {
|
||||
// do nothing
|
||||
expectedClass = "Double"
|
||||
}
|
||||
}
|
||||
if (value instanceof java.math.BigDecimal) {
|
||||
value = value.doubleValue()
|
||||
} else if (par.type == "float") {
|
||||
// cast to float if need be
|
||||
if (value !instanceof Float) {
|
||||
try {
|
||||
value = value as Float
|
||||
} catch (NumberFormatException e) {
|
||||
expectedClass = "Float"
|
||||
}
|
||||
}
|
||||
if (value instanceof Float) {
|
||||
value = value.toDouble()
|
||||
}
|
||||
expectedClass = value instanceof Double ? null : "Double"
|
||||
} else if (par.type == "boolean" | par.type == "boolean_true" | par.type == "boolean_false") {
|
||||
// cast to boolean if need be
|
||||
if (value instanceof String) {
|
||||
def valueLower = value.toLowerCase()
|
||||
if (valueLower == "true") {
|
||||
value = true
|
||||
} else if (valueLower == "false") {
|
||||
value = false
|
||||
if (value !instanceof Boolean) {
|
||||
try {
|
||||
value = value as Boolean
|
||||
} catch (Exception e) {
|
||||
expectedClass = "Boolean"
|
||||
}
|
||||
}
|
||||
expectedClass = value instanceof Boolean ? null : "Boolean"
|
||||
} else if (par.type == "file" && (par.direction == "input" || stage == "output")) {
|
||||
// cast to path if need be
|
||||
if (value instanceof String) {
|
||||
@@ -151,10 +143,13 @@ def _checkArgumentType(String stage, Map par, Object value, String errorIdentifi
|
||||
expectedClass = value instanceof Path ? null : "Path"
|
||||
} else if (par.type == "file" && stage == "input" && par.direction == "output") {
|
||||
// cast to string if need be
|
||||
if (value instanceof GString) {
|
||||
value = value.toString()
|
||||
if (value !instanceof String) {
|
||||
try {
|
||||
value = value as String
|
||||
} catch (Exception e) {
|
||||
expectedClass = "String"
|
||||
}
|
||||
}
|
||||
expectedClass = value instanceof String ? null : "String"
|
||||
} else {
|
||||
// didn't find a match for par.type
|
||||
expectedClass = par.type
|
||||
@@ -3206,14 +3201,16 @@ meta = [
|
||||
"runner" : "nextflow",
|
||||
"engine" : "docker|native",
|
||||
"output" : "target/nextflow/io/publish_fastqs",
|
||||
"viash_version" : "0.9.2",
|
||||
"git_commit" : "cc910b428428dd32f183df0c2009fc36e75394e0",
|
||||
"git_remote" : "https://github.com/viash-hub/htrnaseq"
|
||||
"viash_version" : "0.9.4",
|
||||
"git_commit" : "dbca5cbb3a338287f516c79705fc607bcf0905f7",
|
||||
"git_remote" : "https://github.com/viash-hub/htrnaseq",
|
||||
"git_tag" : "v0.7.2-21-gdbca5cb"
|
||||
},
|
||||
"package_config" : {
|
||||
"name" : "htrnaseq",
|
||||
"version" : "save-params",
|
||||
"description" : "High-throughput pipeline [WIP]\n",
|
||||
"summary" : "A workflow for high-throughput RNA-seq data analyses.\n",
|
||||
"description" : "This workflow is designed to process high-throughput RNA-seq data, where every\nwell of a microarray plate is a sample. A fasta file provided as input\ndefines the mapping between sample barcodes and wells.\n\nThe workflow is built in a modular fashion, where most of the base functionality\nis provided by components from [`biobox`](https://www.viash-hub.com/packages/biobox/latest)\nsupplemented by custom base components and workflow components in this package.\n\nThe full workflow is split in two major subworkflows that can be run independently:\n\n* **Well-demultiplexing:** Split the input (plate/pool level) fastq files per well.\n* **Mapping, counting and QC:** Run per-well mapping, counting and generate QC reports.\n\nEach of those can be started individually, or the full workflow can be run in two ways:\n\n1. Run the [main workflow](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/htrnaseq) \ncontaining the main functionality.\n2. Run the [(opinionated) `runner`](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/runner) where a\nnumber of choices (input/output structure and location) have been made.\n\nInput for the workflow has to be `fastq` files (zipped or not). For bcl or other formats, please consider running\n[demultiplex](https://www.viash-hub.com/packages/demultiplex) first.\n",
|
||||
"info" : {
|
||||
"test_resources" : [
|
||||
{
|
||||
@@ -3222,7 +3219,7 @@ meta = [
|
||||
}
|
||||
]
|
||||
},
|
||||
"viash_version" : "0.9.2",
|
||||
"viash_version" : "0.9.4",
|
||||
"source" : "src",
|
||||
"target" : "target",
|
||||
"config_mods" : [
|
||||
@@ -3233,11 +3230,13 @@ meta = [
|
||||
],
|
||||
"keywords" : [
|
||||
"bioinformatics",
|
||||
"sequence",
|
||||
"sequencing",
|
||||
"high-throughput",
|
||||
"RNAseq",
|
||||
"mapping",
|
||||
"counting",
|
||||
"pipeline"
|
||||
"pipeline",
|
||||
"workflow"
|
||||
],
|
||||
"license" : "MIT",
|
||||
"organization" : "vsh",
|
||||
@@ -3631,7 +3630,7 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) {
|
||||
// create process from temp file
|
||||
def binding = new nextflow.script.ScriptBinding([:])
|
||||
def session = nextflow.Nextflow.getSession()
|
||||
def parser = new nextflow.script.ScriptParser(session)
|
||||
def parser = _getScriptLoader(session)
|
||||
.setModule(true)
|
||||
.setBinding(binding)
|
||||
def moduleScript = parser.runScript(tempFile)
|
||||
@@ -3645,6 +3644,27 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) {
|
||||
return scriptMeta.getProcess(procKey)
|
||||
}
|
||||
|
||||
// use Reflection to get a ScriptParser / ScriptLoader
|
||||
// <25.02.0-edge: new nextflow.script.ScriptParser(session)
|
||||
// >=25.02.0-edge: nextflow.script.ScriptLoaderFactory.create(session)
|
||||
def _getScriptLoader(nextflow.Session session) {
|
||||
// try using the old method
|
||||
try {
|
||||
Class<?> scriptParserClass = Class.forName('nextflow.script.ScriptParser')
|
||||
return scriptParserClass.getDeclaredConstructor(nextflow.Session).newInstance(session)
|
||||
} catch (ClassNotFoundException e) {
|
||||
// else try with the new method
|
||||
try {
|
||||
Class<?> scriptLoaderFactoryClass = Class.forName('nextflow.script.ScriptLoaderFactory')
|
||||
def createMethod = scriptLoaderFactoryClass.getDeclaredMethod('create', nextflow.Session)
|
||||
return createMethod.invoke(null, session) // null because create is static
|
||||
} catch (ClassNotFoundException | NoSuchMethodException | IllegalAccessException | java.lang.reflect.InvocationTargetException e2) {
|
||||
// Handle the case where neither class is found
|
||||
throw new Exception("Neither nextflow.script.ScriptParser nor nextflow.script.ScriptLoaderFactory could be found. Is this a compatible Nextflow version?", e2)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// defaults
|
||||
meta["defaults"] = [
|
||||
// key to be used to trace the process and determine output names
|
||||
|
||||
@@ -27,7 +27,7 @@ process {
|
||||
withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } }
|
||||
withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } }
|
||||
withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 40.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } }
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -69,7 +69,7 @@ argument_groups:
|
||||
multiple: false
|
||||
multiple_sep: ";"
|
||||
- type: "file"
|
||||
name: "--params"
|
||||
name: "--run_params"
|
||||
info: null
|
||||
must_exist: true
|
||||
create_parent: true
|
||||
@@ -198,18 +198,35 @@ build_info:
|
||||
engine: "docker|native"
|
||||
output: "target/nextflow/io/publish_results"
|
||||
executable: "target/nextflow/io/publish_results/main.nf"
|
||||
viash_version: "0.9.2"
|
||||
git_commit: "cc910b428428dd32f183df0c2009fc36e75394e0"
|
||||
viash_version: "0.9.4"
|
||||
git_commit: "dbca5cbb3a338287f516c79705fc607bcf0905f7"
|
||||
git_remote: "https://github.com/viash-hub/htrnaseq"
|
||||
git_tag: "v0.7.2-21-gdbca5cb"
|
||||
package_config:
|
||||
name: "htrnaseq"
|
||||
version: "save-params"
|
||||
description: "High-throughput pipeline [WIP]\n"
|
||||
summary: "A workflow for high-throughput RNA-seq data analyses.\n"
|
||||
description: "This workflow is designed to process high-throughput RNA-seq data,\
|
||||
\ where every\nwell of a microarray plate is a sample. A fasta file provided as\
|
||||
\ input\ndefines the mapping between sample barcodes and wells.\n\nThe workflow\
|
||||
\ is built in a modular fashion, where most of the base functionality\nis provided\
|
||||
\ by components from [`biobox`](https://www.viash-hub.com/packages/biobox/latest)\n\
|
||||
supplemented by custom base components and workflow components in this package.\n\
|
||||
\nThe full workflow is split in two major subworkflows that can be run independently:\n\
|
||||
\n* **Well-demultiplexing:** Split the input (plate/pool level) fastq files per\
|
||||
\ well.\n* **Mapping, counting and QC:** Run per-well mapping, counting and generate\
|
||||
\ QC reports.\n\nEach of those can be started individually, or the full workflow\
|
||||
\ can be run in two ways:\n\n1. Run the [main workflow](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/htrnaseq)\
|
||||
\ \ncontaining the main functionality.\n2. Run the [(opinionated) `runner`](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/runner)\
|
||||
\ where a\nnumber of choices (input/output structure and location) have been made.\n\
|
||||
\nInput for the workflow has to be `fastq` files (zipped or not). For bcl or other\
|
||||
\ formats, please consider running\n[demultiplex](https://www.viash-hub.com/packages/demultiplex)\
|
||||
\ first.\n"
|
||||
info:
|
||||
test_resources:
|
||||
- path: "gs://viash-hub-test-data/htrnaseq/v1/"
|
||||
dest: "resources_test"
|
||||
viash_version: "0.9.2"
|
||||
viash_version: "0.9.4"
|
||||
source: "src"
|
||||
target: "target"
|
||||
config_mods:
|
||||
@@ -221,11 +238,13 @@ package_config:
|
||||
- ".engines[.type == 'docker'].target_tag := 'save-params'"
|
||||
keywords:
|
||||
- "bioinformatics"
|
||||
- "sequence"
|
||||
- "sequencing"
|
||||
- "high-throughput"
|
||||
- "RNAseq"
|
||||
- "mapping"
|
||||
- "counting"
|
||||
- "pipeline"
|
||||
- "workflow"
|
||||
license: "MIT"
|
||||
organization: "vsh"
|
||||
links:
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// publish_results save-params
|
||||
//
|
||||
// This wrapper script is auto-generated by viash 0.9.2 and is thus a derivative
|
||||
// This wrapper script is auto-generated by viash 0.9.4 and is thus a derivative
|
||||
// work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data
|
||||
// Intuitive.
|
||||
//
|
||||
@@ -82,64 +82,56 @@ def _checkArgumentType(String stage, Map par, Object value, String errorIdentifi
|
||||
foundClass = "List[${e.foundClass}]"
|
||||
}
|
||||
} else if (par.type == "string") {
|
||||
// cast to string if need be
|
||||
// cast to string if need be. only cast if the value is a GString
|
||||
if (value instanceof GString) {
|
||||
value = value.toString()
|
||||
value = value as String
|
||||
}
|
||||
expectedClass = value instanceof String ? null : "String"
|
||||
} else if (par.type == "integer") {
|
||||
// cast to integer if need be
|
||||
if (value instanceof String) {
|
||||
if (value !instanceof Integer) {
|
||||
try {
|
||||
value = value.toInteger()
|
||||
value = value as Integer
|
||||
} catch (NumberFormatException e) {
|
||||
// do nothing
|
||||
expectedClass = "Integer"
|
||||
}
|
||||
}
|
||||
if (value instanceof java.math.BigInteger) {
|
||||
value = value.intValue()
|
||||
}
|
||||
expectedClass = value instanceof Integer ? null : "Integer"
|
||||
} else if (par.type == "long") {
|
||||
// cast to long if need be
|
||||
if (value instanceof String) {
|
||||
if (value !instanceof Long) {
|
||||
try {
|
||||
value = value.toLong()
|
||||
value = value as Long
|
||||
} catch (NumberFormatException e) {
|
||||
// do nothing
|
||||
expectedClass = "Long"
|
||||
}
|
||||
}
|
||||
if (value instanceof Integer) {
|
||||
value = value.toLong()
|
||||
}
|
||||
expectedClass = value instanceof Long ? null : "Long"
|
||||
} else if (par.type == "double") {
|
||||
// cast to double if need be
|
||||
if (value instanceof String) {
|
||||
if (value !instanceof Double) {
|
||||
try {
|
||||
value = value.toDouble()
|
||||
value = value as Double
|
||||
} catch (NumberFormatException e) {
|
||||
// do nothing
|
||||
expectedClass = "Double"
|
||||
}
|
||||
}
|
||||
if (value instanceof java.math.BigDecimal) {
|
||||
value = value.doubleValue()
|
||||
} else if (par.type == "float") {
|
||||
// cast to float if need be
|
||||
if (value !instanceof Float) {
|
||||
try {
|
||||
value = value as Float
|
||||
} catch (NumberFormatException e) {
|
||||
expectedClass = "Float"
|
||||
}
|
||||
}
|
||||
if (value instanceof Float) {
|
||||
value = value.toDouble()
|
||||
}
|
||||
expectedClass = value instanceof Double ? null : "Double"
|
||||
} else if (par.type == "boolean" | par.type == "boolean_true" | par.type == "boolean_false") {
|
||||
// cast to boolean if need be
|
||||
if (value instanceof String) {
|
||||
def valueLower = value.toLowerCase()
|
||||
if (valueLower == "true") {
|
||||
value = true
|
||||
} else if (valueLower == "false") {
|
||||
value = false
|
||||
if (value !instanceof Boolean) {
|
||||
try {
|
||||
value = value as Boolean
|
||||
} catch (Exception e) {
|
||||
expectedClass = "Boolean"
|
||||
}
|
||||
}
|
||||
expectedClass = value instanceof Boolean ? null : "Boolean"
|
||||
} else if (par.type == "file" && (par.direction == "input" || stage == "output")) {
|
||||
// cast to path if need be
|
||||
if (value instanceof String) {
|
||||
@@ -151,10 +143,13 @@ def _checkArgumentType(String stage, Map par, Object value, String errorIdentifi
|
||||
expectedClass = value instanceof Path ? null : "Path"
|
||||
} else if (par.type == "file" && stage == "input" && par.direction == "output") {
|
||||
// cast to string if need be
|
||||
if (value instanceof GString) {
|
||||
value = value.toString()
|
||||
if (value !instanceof String) {
|
||||
try {
|
||||
value = value as String
|
||||
} catch (Exception e) {
|
||||
expectedClass = "String"
|
||||
}
|
||||
}
|
||||
expectedClass = value instanceof String ? null : "String"
|
||||
} else {
|
||||
// didn't find a match for par.type
|
||||
expectedClass = par.type
|
||||
@@ -3115,7 +3110,7 @@ meta = [
|
||||
},
|
||||
{
|
||||
"type" : "file",
|
||||
"name" : "--params",
|
||||
"name" : "--run_params",
|
||||
"must_exist" : true,
|
||||
"create_parent" : true,
|
||||
"required" : true,
|
||||
@@ -3276,14 +3271,16 @@ meta = [
|
||||
"runner" : "nextflow",
|
||||
"engine" : "docker|native",
|
||||
"output" : "target/nextflow/io/publish_results",
|
||||
"viash_version" : "0.9.2",
|
||||
"git_commit" : "cc910b428428dd32f183df0c2009fc36e75394e0",
|
||||
"git_remote" : "https://github.com/viash-hub/htrnaseq"
|
||||
"viash_version" : "0.9.4",
|
||||
"git_commit" : "dbca5cbb3a338287f516c79705fc607bcf0905f7",
|
||||
"git_remote" : "https://github.com/viash-hub/htrnaseq",
|
||||
"git_tag" : "v0.7.2-21-gdbca5cb"
|
||||
},
|
||||
"package_config" : {
|
||||
"name" : "htrnaseq",
|
||||
"version" : "save-params",
|
||||
"description" : "High-throughput pipeline [WIP]\n",
|
||||
"summary" : "A workflow for high-throughput RNA-seq data analyses.\n",
|
||||
"description" : "This workflow is designed to process high-throughput RNA-seq data, where every\nwell of a microarray plate is a sample. A fasta file provided as input\ndefines the mapping between sample barcodes and wells.\n\nThe workflow is built in a modular fashion, where most of the base functionality\nis provided by components from [`biobox`](https://www.viash-hub.com/packages/biobox/latest)\nsupplemented by custom base components and workflow components in this package.\n\nThe full workflow is split in two major subworkflows that can be run independently:\n\n* **Well-demultiplexing:** Split the input (plate/pool level) fastq files per well.\n* **Mapping, counting and QC:** Run per-well mapping, counting and generate QC reports.\n\nEach of those can be started individually, or the full workflow can be run in two ways:\n\n1. Run the [main workflow](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/htrnaseq) \ncontaining the main functionality.\n2. Run the [(opinionated) `runner`](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/runner) where a\nnumber of choices (input/output structure and location) have been made.\n\nInput for the workflow has to be `fastq` files (zipped or not). For bcl or other formats, please consider running\n[demultiplex](https://www.viash-hub.com/packages/demultiplex) first.\n",
|
||||
"info" : {
|
||||
"test_resources" : [
|
||||
{
|
||||
@@ -3292,7 +3289,7 @@ meta = [
|
||||
}
|
||||
]
|
||||
},
|
||||
"viash_version" : "0.9.2",
|
||||
"viash_version" : "0.9.4",
|
||||
"source" : "src",
|
||||
"target" : "target",
|
||||
"config_mods" : [
|
||||
@@ -3303,11 +3300,13 @@ meta = [
|
||||
],
|
||||
"keywords" : [
|
||||
"bioinformatics",
|
||||
"sequence",
|
||||
"sequencing",
|
||||
"high-throughput",
|
||||
"RNAseq",
|
||||
"mapping",
|
||||
"counting",
|
||||
"pipeline"
|
||||
"pipeline",
|
||||
"workflow"
|
||||
],
|
||||
"license" : "MIT",
|
||||
"organization" : "vsh",
|
||||
@@ -3337,7 +3336,7 @@ $( if [ ! -z ${VIASH_PAR_ESET+x} ]; then echo "${VIASH_PAR_ESET}" | sed "s#'#'\\
|
||||
$( if [ ! -z ${VIASH_PAR_F_DATA+x} ]; then echo "${VIASH_PAR_F_DATA}" | sed "s#'#'\\"'\\"'#g;s#.*#par_f_data='&'#" ; else echo "# par_f_data="; fi )
|
||||
$( if [ ! -z ${VIASH_PAR_P_DATA+x} ]; then echo "${VIASH_PAR_P_DATA}" | sed "s#'#'\\"'\\"'#g;s#.*#par_p_data='&'#" ; else echo "# par_p_data="; fi )
|
||||
$( if [ ! -z ${VIASH_PAR_HTML_REPORT+x} ]; then echo "${VIASH_PAR_HTML_REPORT}" | sed "s#'#'\\"'\\"'#g;s#.*#par_html_report='&'#" ; else echo "# par_html_report="; fi )
|
||||
$( if [ ! -z ${VIASH_PAR_PARAMS+x} ]; then echo "${VIASH_PAR_PARAMS}" | sed "s#'#'\\"'\\"'#g;s#.*#par_params='&'#" ; else echo "# par_params="; fi )
|
||||
$( if [ ! -z ${VIASH_PAR_RUN_PARAMS+x} ]; then echo "${VIASH_PAR_RUN_PARAMS}" | sed "s#'#'\\"'\\"'#g;s#.*#par_run_params='&'#" ; else echo "# par_run_params="; fi )
|
||||
$( if [ ! -z ${VIASH_PAR_OUTPUT+x} ]; then echo "${VIASH_PAR_OUTPUT}" | sed "s#'#'\\"'\\"'#g;s#.*#par_output='&'#" ; else echo "# par_output="; fi )
|
||||
$( if [ ! -z ${VIASH_META_NAME+x} ]; then echo "${VIASH_META_NAME}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_name='&'#" ; else echo "# meta_name="; fi )
|
||||
$( if [ ! -z ${VIASH_META_FUNCTIONALITY_NAME+x} ]; then echo "${VIASH_META_FUNCTIONALITY_NAME}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_functionality_name='&'#" ; else echo "# meta_functionality_name="; fi )
|
||||
@@ -3402,7 +3401,7 @@ done
|
||||
|
||||
cp -rL "\\$par_html_report" "\\$par_output/"
|
||||
|
||||
cp -rL "\\$par_params" "\\$par_output/"
|
||||
cp -rL "\\$par_run_params" "\\$par_output/"
|
||||
VIASHMAIN
|
||||
bash "$tempscript"
|
||||
'''
|
||||
@@ -3737,7 +3736,7 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) {
|
||||
// create process from temp file
|
||||
def binding = new nextflow.script.ScriptBinding([:])
|
||||
def session = nextflow.Nextflow.getSession()
|
||||
def parser = new nextflow.script.ScriptParser(session)
|
||||
def parser = _getScriptLoader(session)
|
||||
.setModule(true)
|
||||
.setBinding(binding)
|
||||
def moduleScript = parser.runScript(tempFile)
|
||||
@@ -3751,6 +3750,27 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) {
|
||||
return scriptMeta.getProcess(procKey)
|
||||
}
|
||||
|
||||
// use Reflection to get a ScriptParser / ScriptLoader
|
||||
// <25.02.0-edge: new nextflow.script.ScriptParser(session)
|
||||
// >=25.02.0-edge: nextflow.script.ScriptLoaderFactory.create(session)
|
||||
def _getScriptLoader(nextflow.Session session) {
|
||||
// try using the old method
|
||||
try {
|
||||
Class<?> scriptParserClass = Class.forName('nextflow.script.ScriptParser')
|
||||
return scriptParserClass.getDeclaredConstructor(nextflow.Session).newInstance(session)
|
||||
} catch (ClassNotFoundException e) {
|
||||
// else try with the new method
|
||||
try {
|
||||
Class<?> scriptLoaderFactoryClass = Class.forName('nextflow.script.ScriptLoaderFactory')
|
||||
def createMethod = scriptLoaderFactoryClass.getDeclaredMethod('create', nextflow.Session)
|
||||
return createMethod.invoke(null, session) // null because create is static
|
||||
} catch (ClassNotFoundException | NoSuchMethodException | IllegalAccessException | java.lang.reflect.InvocationTargetException e2) {
|
||||
// Handle the case where neither class is found
|
||||
throw new Exception("Neither nextflow.script.ScriptParser nor nextflow.script.ScriptLoaderFactory could be found. Is this a compatible Nextflow version?", e2)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// defaults
|
||||
meta["defaults"] = [
|
||||
// key to be used to trace the process and determine output names
|
||||
|
||||
@@ -27,7 +27,7 @@ process {
|
||||
withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } }
|
||||
withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } }
|
||||
withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 40.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } }
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
|
||||
|
||||
,
|
||||
"params": {
|
||||
"run_params": {
|
||||
"type":
|
||||
"string",
|
||||
"description": "Type: `file`, required. ",
|
||||
|
||||
@@ -281,18 +281,35 @@ build_info:
|
||||
engine: "docker|native"
|
||||
output: "target/nextflow/parallel_map"
|
||||
executable: "target/nextflow/parallel_map/main.nf"
|
||||
viash_version: "0.9.2"
|
||||
git_commit: "cc910b428428dd32f183df0c2009fc36e75394e0"
|
||||
viash_version: "0.9.4"
|
||||
git_commit: "dbca5cbb3a338287f516c79705fc607bcf0905f7"
|
||||
git_remote: "https://github.com/viash-hub/htrnaseq"
|
||||
git_tag: "v0.7.2-21-gdbca5cb"
|
||||
package_config:
|
||||
name: "htrnaseq"
|
||||
version: "save-params"
|
||||
description: "High-throughput pipeline [WIP]\n"
|
||||
summary: "A workflow for high-throughput RNA-seq data analyses.\n"
|
||||
description: "This workflow is designed to process high-throughput RNA-seq data,\
|
||||
\ where every\nwell of a microarray plate is a sample. A fasta file provided as\
|
||||
\ input\ndefines the mapping between sample barcodes and wells.\n\nThe workflow\
|
||||
\ is built in a modular fashion, where most of the base functionality\nis provided\
|
||||
\ by components from [`biobox`](https://www.viash-hub.com/packages/biobox/latest)\n\
|
||||
supplemented by custom base components and workflow components in this package.\n\
|
||||
\nThe full workflow is split in two major subworkflows that can be run independently:\n\
|
||||
\n* **Well-demultiplexing:** Split the input (plate/pool level) fastq files per\
|
||||
\ well.\n* **Mapping, counting and QC:** Run per-well mapping, counting and generate\
|
||||
\ QC reports.\n\nEach of those can be started individually, or the full workflow\
|
||||
\ can be run in two ways:\n\n1. Run the [main workflow](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/htrnaseq)\
|
||||
\ \ncontaining the main functionality.\n2. Run the [(opinionated) `runner`](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/runner)\
|
||||
\ where a\nnumber of choices (input/output structure and location) have been made.\n\
|
||||
\nInput for the workflow has to be `fastq` files (zipped or not). For bcl or other\
|
||||
\ formats, please consider running\n[demultiplex](https://www.viash-hub.com/packages/demultiplex)\
|
||||
\ first.\n"
|
||||
info:
|
||||
test_resources:
|
||||
- path: "gs://viash-hub-test-data/htrnaseq/v1/"
|
||||
dest: "resources_test"
|
||||
viash_version: "0.9.2"
|
||||
viash_version: "0.9.4"
|
||||
source: "src"
|
||||
target: "target"
|
||||
config_mods:
|
||||
@@ -304,11 +321,13 @@ package_config:
|
||||
- ".engines[.type == 'docker'].target_tag := 'save-params'"
|
||||
keywords:
|
||||
- "bioinformatics"
|
||||
- "sequence"
|
||||
- "sequencing"
|
||||
- "high-throughput"
|
||||
- "RNAseq"
|
||||
- "mapping"
|
||||
- "counting"
|
||||
- "pipeline"
|
||||
- "workflow"
|
||||
license: "MIT"
|
||||
organization: "vsh"
|
||||
links:
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// parallel_map save-params
|
||||
//
|
||||
// This wrapper script is auto-generated by viash 0.9.2 and is thus a derivative
|
||||
// This wrapper script is auto-generated by viash 0.9.4 and is thus a derivative
|
||||
// work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data
|
||||
// Intuitive.
|
||||
//
|
||||
@@ -86,64 +86,56 @@ def _checkArgumentType(String stage, Map par, Object value, String errorIdentifi
|
||||
foundClass = "List[${e.foundClass}]"
|
||||
}
|
||||
} else if (par.type == "string") {
|
||||
// cast to string if need be
|
||||
// cast to string if need be. only cast if the value is a GString
|
||||
if (value instanceof GString) {
|
||||
value = value.toString()
|
||||
value = value as String
|
||||
}
|
||||
expectedClass = value instanceof String ? null : "String"
|
||||
} else if (par.type == "integer") {
|
||||
// cast to integer if need be
|
||||
if (value instanceof String) {
|
||||
if (value !instanceof Integer) {
|
||||
try {
|
||||
value = value.toInteger()
|
||||
value = value as Integer
|
||||
} catch (NumberFormatException e) {
|
||||
// do nothing
|
||||
expectedClass = "Integer"
|
||||
}
|
||||
}
|
||||
if (value instanceof java.math.BigInteger) {
|
||||
value = value.intValue()
|
||||
}
|
||||
expectedClass = value instanceof Integer ? null : "Integer"
|
||||
} else if (par.type == "long") {
|
||||
// cast to long if need be
|
||||
if (value instanceof String) {
|
||||
if (value !instanceof Long) {
|
||||
try {
|
||||
value = value.toLong()
|
||||
value = value as Long
|
||||
} catch (NumberFormatException e) {
|
||||
// do nothing
|
||||
expectedClass = "Long"
|
||||
}
|
||||
}
|
||||
if (value instanceof Integer) {
|
||||
value = value.toLong()
|
||||
}
|
||||
expectedClass = value instanceof Long ? null : "Long"
|
||||
} else if (par.type == "double") {
|
||||
// cast to double if need be
|
||||
if (value instanceof String) {
|
||||
if (value !instanceof Double) {
|
||||
try {
|
||||
value = value.toDouble()
|
||||
value = value as Double
|
||||
} catch (NumberFormatException e) {
|
||||
// do nothing
|
||||
expectedClass = "Double"
|
||||
}
|
||||
}
|
||||
if (value instanceof java.math.BigDecimal) {
|
||||
value = value.doubleValue()
|
||||
} else if (par.type == "float") {
|
||||
// cast to float if need be
|
||||
if (value !instanceof Float) {
|
||||
try {
|
||||
value = value as Float
|
||||
} catch (NumberFormatException e) {
|
||||
expectedClass = "Float"
|
||||
}
|
||||
}
|
||||
if (value instanceof Float) {
|
||||
value = value.toDouble()
|
||||
}
|
||||
expectedClass = value instanceof Double ? null : "Double"
|
||||
} else if (par.type == "boolean" | par.type == "boolean_true" | par.type == "boolean_false") {
|
||||
// cast to boolean if need be
|
||||
if (value instanceof String) {
|
||||
def valueLower = value.toLowerCase()
|
||||
if (valueLower == "true") {
|
||||
value = true
|
||||
} else if (valueLower == "false") {
|
||||
value = false
|
||||
if (value !instanceof Boolean) {
|
||||
try {
|
||||
value = value as Boolean
|
||||
} catch (Exception e) {
|
||||
expectedClass = "Boolean"
|
||||
}
|
||||
}
|
||||
expectedClass = value instanceof Boolean ? null : "Boolean"
|
||||
} else if (par.type == "file" && (par.direction == "input" || stage == "output")) {
|
||||
// cast to path if need be
|
||||
if (value instanceof String) {
|
||||
@@ -155,10 +147,13 @@ def _checkArgumentType(String stage, Map par, Object value, String errorIdentifi
|
||||
expectedClass = value instanceof Path ? null : "Path"
|
||||
} else if (par.type == "file" && stage == "input" && par.direction == "output") {
|
||||
// cast to string if need be
|
||||
if (value instanceof GString) {
|
||||
value = value.toString()
|
||||
if (value !instanceof String) {
|
||||
try {
|
||||
value = value as String
|
||||
} catch (Exception e) {
|
||||
expectedClass = "String"
|
||||
}
|
||||
}
|
||||
expectedClass = value instanceof String ? null : "String"
|
||||
} else {
|
||||
// didn't find a match for par.type
|
||||
expectedClass = par.type
|
||||
@@ -3378,14 +3373,16 @@ meta = [
|
||||
"runner" : "nextflow",
|
||||
"engine" : "docker|native",
|
||||
"output" : "target/nextflow/parallel_map",
|
||||
"viash_version" : "0.9.2",
|
||||
"git_commit" : "cc910b428428dd32f183df0c2009fc36e75394e0",
|
||||
"git_remote" : "https://github.com/viash-hub/htrnaseq"
|
||||
"viash_version" : "0.9.4",
|
||||
"git_commit" : "dbca5cbb3a338287f516c79705fc607bcf0905f7",
|
||||
"git_remote" : "https://github.com/viash-hub/htrnaseq",
|
||||
"git_tag" : "v0.7.2-21-gdbca5cb"
|
||||
},
|
||||
"package_config" : {
|
||||
"name" : "htrnaseq",
|
||||
"version" : "save-params",
|
||||
"description" : "High-throughput pipeline [WIP]\n",
|
||||
"summary" : "A workflow for high-throughput RNA-seq data analyses.\n",
|
||||
"description" : "This workflow is designed to process high-throughput RNA-seq data, where every\nwell of a microarray plate is a sample. A fasta file provided as input\ndefines the mapping between sample barcodes and wells.\n\nThe workflow is built in a modular fashion, where most of the base functionality\nis provided by components from [`biobox`](https://www.viash-hub.com/packages/biobox/latest)\nsupplemented by custom base components and workflow components in this package.\n\nThe full workflow is split in two major subworkflows that can be run independently:\n\n* **Well-demultiplexing:** Split the input (plate/pool level) fastq files per well.\n* **Mapping, counting and QC:** Run per-well mapping, counting and generate QC reports.\n\nEach of those can be started individually, or the full workflow can be run in two ways:\n\n1. Run the [main workflow](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/htrnaseq) \ncontaining the main functionality.\n2. Run the [(opinionated) `runner`](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/runner) where a\nnumber of choices (input/output structure and location) have been made.\n\nInput for the workflow has to be `fastq` files (zipped or not). For bcl or other formats, please consider running\n[demultiplex](https://www.viash-hub.com/packages/demultiplex) first.\n",
|
||||
"info" : {
|
||||
"test_resources" : [
|
||||
{
|
||||
@@ -3394,7 +3391,7 @@ meta = [
|
||||
}
|
||||
]
|
||||
},
|
||||
"viash_version" : "0.9.2",
|
||||
"viash_version" : "0.9.4",
|
||||
"source" : "src",
|
||||
"target" : "target",
|
||||
"config_mods" : [
|
||||
@@ -3405,11 +3402,13 @@ meta = [
|
||||
],
|
||||
"keywords" : [
|
||||
"bioinformatics",
|
||||
"sequence",
|
||||
"sequencing",
|
||||
"high-throughput",
|
||||
"RNAseq",
|
||||
"mapping",
|
||||
"counting",
|
||||
"pipeline"
|
||||
"pipeline",
|
||||
"workflow"
|
||||
],
|
||||
"license" : "MIT",
|
||||
"organization" : "vsh",
|
||||
@@ -4120,7 +4119,7 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) {
|
||||
// create process from temp file
|
||||
def binding = new nextflow.script.ScriptBinding([:])
|
||||
def session = nextflow.Nextflow.getSession()
|
||||
def parser = new nextflow.script.ScriptParser(session)
|
||||
def parser = _getScriptLoader(session)
|
||||
.setModule(true)
|
||||
.setBinding(binding)
|
||||
def moduleScript = parser.runScript(tempFile)
|
||||
@@ -4134,6 +4133,27 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) {
|
||||
return scriptMeta.getProcess(procKey)
|
||||
}
|
||||
|
||||
// use Reflection to get a ScriptParser / ScriptLoader
|
||||
// <25.02.0-edge: new nextflow.script.ScriptParser(session)
|
||||
// >=25.02.0-edge: nextflow.script.ScriptLoaderFactory.create(session)
|
||||
def _getScriptLoader(nextflow.Session session) {
|
||||
// try using the old method
|
||||
try {
|
||||
Class<?> scriptParserClass = Class.forName('nextflow.script.ScriptParser')
|
||||
return scriptParserClass.getDeclaredConstructor(nextflow.Session).newInstance(session)
|
||||
} catch (ClassNotFoundException e) {
|
||||
// else try with the new method
|
||||
try {
|
||||
Class<?> scriptLoaderFactoryClass = Class.forName('nextflow.script.ScriptLoaderFactory')
|
||||
def createMethod = scriptLoaderFactoryClass.getDeclaredMethod('create', nextflow.Session)
|
||||
return createMethod.invoke(null, session) // null because create is static
|
||||
} catch (ClassNotFoundException | NoSuchMethodException | IllegalAccessException | java.lang.reflect.InvocationTargetException e2) {
|
||||
// Handle the case where neither class is found
|
||||
throw new Exception("Neither nextflow.script.ScriptParser nor nextflow.script.ScriptLoaderFactory could be found. Is this a compatible Nextflow version?", e2)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// defaults
|
||||
meta["defaults"] = [
|
||||
// key to be used to trace the process and determine output names
|
||||
|
||||
@@ -27,7 +27,7 @@ process {
|
||||
withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } }
|
||||
withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } }
|
||||
withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 40.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } }
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -164,6 +164,12 @@ engines:
|
||||
- "procps"
|
||||
- "pandoc"
|
||||
interactive: false
|
||||
- type: "r"
|
||||
script:
|
||||
- "install.packages(\"BiocManager\")"
|
||||
- "BiocManager::install(version = \"3.21\", type = \"source\", checkBuilt = TRUE)"
|
||||
bioc_force_install: false
|
||||
warnings_as_errors: true
|
||||
- type: "r"
|
||||
cran:
|
||||
- "ggplot2"
|
||||
@@ -205,18 +211,35 @@ build_info:
|
||||
engine: "docker|native"
|
||||
output: "target/nextflow/report/create_report"
|
||||
executable: "target/nextflow/report/create_report/main.nf"
|
||||
viash_version: "0.9.2"
|
||||
git_commit: "cc910b428428dd32f183df0c2009fc36e75394e0"
|
||||
viash_version: "0.9.4"
|
||||
git_commit: "dbca5cbb3a338287f516c79705fc607bcf0905f7"
|
||||
git_remote: "https://github.com/viash-hub/htrnaseq"
|
||||
git_tag: "v0.7.2-21-gdbca5cb"
|
||||
package_config:
|
||||
name: "htrnaseq"
|
||||
version: "save-params"
|
||||
description: "High-throughput pipeline [WIP]\n"
|
||||
summary: "A workflow for high-throughput RNA-seq data analyses.\n"
|
||||
description: "This workflow is designed to process high-throughput RNA-seq data,\
|
||||
\ where every\nwell of a microarray plate is a sample. A fasta file provided as\
|
||||
\ input\ndefines the mapping between sample barcodes and wells.\n\nThe workflow\
|
||||
\ is built in a modular fashion, where most of the base functionality\nis provided\
|
||||
\ by components from [`biobox`](https://www.viash-hub.com/packages/biobox/latest)\n\
|
||||
supplemented by custom base components and workflow components in this package.\n\
|
||||
\nThe full workflow is split in two major subworkflows that can be run independently:\n\
|
||||
\n* **Well-demultiplexing:** Split the input (plate/pool level) fastq files per\
|
||||
\ well.\n* **Mapping, counting and QC:** Run per-well mapping, counting and generate\
|
||||
\ QC reports.\n\nEach of those can be started individually, or the full workflow\
|
||||
\ can be run in two ways:\n\n1. Run the [main workflow](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/htrnaseq)\
|
||||
\ \ncontaining the main functionality.\n2. Run the [(opinionated) `runner`](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/runner)\
|
||||
\ where a\nnumber of choices (input/output structure and location) have been made.\n\
|
||||
\nInput for the workflow has to be `fastq` files (zipped or not). For bcl or other\
|
||||
\ formats, please consider running\n[demultiplex](https://www.viash-hub.com/packages/demultiplex)\
|
||||
\ first.\n"
|
||||
info:
|
||||
test_resources:
|
||||
- path: "gs://viash-hub-test-data/htrnaseq/v1/"
|
||||
dest: "resources_test"
|
||||
viash_version: "0.9.2"
|
||||
viash_version: "0.9.4"
|
||||
source: "src"
|
||||
target: "target"
|
||||
config_mods:
|
||||
@@ -228,11 +251,13 @@ package_config:
|
||||
- ".engines[.type == 'docker'].target_tag := 'save-params'"
|
||||
keywords:
|
||||
- "bioinformatics"
|
||||
- "sequence"
|
||||
- "sequencing"
|
||||
- "high-throughput"
|
||||
- "RNAseq"
|
||||
- "mapping"
|
||||
- "counting"
|
||||
- "pipeline"
|
||||
- "workflow"
|
||||
license: "MIT"
|
||||
organization: "vsh"
|
||||
links:
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// create_report save-params
|
||||
//
|
||||
// This wrapper script is auto-generated by viash 0.9.2 and is thus a derivative
|
||||
// This wrapper script is auto-generated by viash 0.9.4 and is thus a derivative
|
||||
// work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data
|
||||
// Intuitive.
|
||||
//
|
||||
@@ -86,64 +86,56 @@ def _checkArgumentType(String stage, Map par, Object value, String errorIdentifi
|
||||
foundClass = "List[${e.foundClass}]"
|
||||
}
|
||||
} else if (par.type == "string") {
|
||||
// cast to string if need be
|
||||
// cast to string if need be. only cast if the value is a GString
|
||||
if (value instanceof GString) {
|
||||
value = value.toString()
|
||||
value = value as String
|
||||
}
|
||||
expectedClass = value instanceof String ? null : "String"
|
||||
} else if (par.type == "integer") {
|
||||
// cast to integer if need be
|
||||
if (value instanceof String) {
|
||||
if (value !instanceof Integer) {
|
||||
try {
|
||||
value = value.toInteger()
|
||||
value = value as Integer
|
||||
} catch (NumberFormatException e) {
|
||||
// do nothing
|
||||
expectedClass = "Integer"
|
||||
}
|
||||
}
|
||||
if (value instanceof java.math.BigInteger) {
|
||||
value = value.intValue()
|
||||
}
|
||||
expectedClass = value instanceof Integer ? null : "Integer"
|
||||
} else if (par.type == "long") {
|
||||
// cast to long if need be
|
||||
if (value instanceof String) {
|
||||
if (value !instanceof Long) {
|
||||
try {
|
||||
value = value.toLong()
|
||||
value = value as Long
|
||||
} catch (NumberFormatException e) {
|
||||
// do nothing
|
||||
expectedClass = "Long"
|
||||
}
|
||||
}
|
||||
if (value instanceof Integer) {
|
||||
value = value.toLong()
|
||||
}
|
||||
expectedClass = value instanceof Long ? null : "Long"
|
||||
} else if (par.type == "double") {
|
||||
// cast to double if need be
|
||||
if (value instanceof String) {
|
||||
if (value !instanceof Double) {
|
||||
try {
|
||||
value = value.toDouble()
|
||||
value = value as Double
|
||||
} catch (NumberFormatException e) {
|
||||
// do nothing
|
||||
expectedClass = "Double"
|
||||
}
|
||||
}
|
||||
if (value instanceof java.math.BigDecimal) {
|
||||
value = value.doubleValue()
|
||||
} else if (par.type == "float") {
|
||||
// cast to float if need be
|
||||
if (value !instanceof Float) {
|
||||
try {
|
||||
value = value as Float
|
||||
} catch (NumberFormatException e) {
|
||||
expectedClass = "Float"
|
||||
}
|
||||
}
|
||||
if (value instanceof Float) {
|
||||
value = value.toDouble()
|
||||
}
|
||||
expectedClass = value instanceof Double ? null : "Double"
|
||||
} else if (par.type == "boolean" | par.type == "boolean_true" | par.type == "boolean_false") {
|
||||
// cast to boolean if need be
|
||||
if (value instanceof String) {
|
||||
def valueLower = value.toLowerCase()
|
||||
if (valueLower == "true") {
|
||||
value = true
|
||||
} else if (valueLower == "false") {
|
||||
value = false
|
||||
if (value !instanceof Boolean) {
|
||||
try {
|
||||
value = value as Boolean
|
||||
} catch (Exception e) {
|
||||
expectedClass = "Boolean"
|
||||
}
|
||||
}
|
||||
expectedClass = value instanceof Boolean ? null : "Boolean"
|
||||
} else if (par.type == "file" && (par.direction == "input" || stage == "output")) {
|
||||
// cast to path if need be
|
||||
if (value instanceof String) {
|
||||
@@ -155,10 +147,13 @@ def _checkArgumentType(String stage, Map par, Object value, String errorIdentifi
|
||||
expectedClass = value instanceof Path ? null : "Path"
|
||||
} else if (par.type == "file" && stage == "input" && par.direction == "output") {
|
||||
// cast to string if need be
|
||||
if (value instanceof GString) {
|
||||
value = value.toString()
|
||||
if (value !instanceof String) {
|
||||
try {
|
||||
value = value as String
|
||||
} catch (Exception e) {
|
||||
expectedClass = "String"
|
||||
}
|
||||
}
|
||||
expectedClass = value instanceof String ? null : "String"
|
||||
} else {
|
||||
// didn't find a match for par.type
|
||||
expectedClass = par.type
|
||||
@@ -3262,6 +3257,15 @@ meta = [
|
||||
],
|
||||
"interactive" : false
|
||||
},
|
||||
{
|
||||
"type" : "r",
|
||||
"script" : [
|
||||
"install.packages(\\"BiocManager\\")",
|
||||
"BiocManager::install(version = \\"3.21\\", type = \\"source\\", checkBuilt = TRUE)"
|
||||
],
|
||||
"bioc_force_install" : false,
|
||||
"warnings_as_errors" : true
|
||||
},
|
||||
{
|
||||
"type" : "r",
|
||||
"cran" : [
|
||||
@@ -3313,14 +3317,16 @@ meta = [
|
||||
"runner" : "nextflow",
|
||||
"engine" : "docker|native",
|
||||
"output" : "target/nextflow/report/create_report",
|
||||
"viash_version" : "0.9.2",
|
||||
"git_commit" : "cc910b428428dd32f183df0c2009fc36e75394e0",
|
||||
"git_remote" : "https://github.com/viash-hub/htrnaseq"
|
||||
"viash_version" : "0.9.4",
|
||||
"git_commit" : "dbca5cbb3a338287f516c79705fc607bcf0905f7",
|
||||
"git_remote" : "https://github.com/viash-hub/htrnaseq",
|
||||
"git_tag" : "v0.7.2-21-gdbca5cb"
|
||||
},
|
||||
"package_config" : {
|
||||
"name" : "htrnaseq",
|
||||
"version" : "save-params",
|
||||
"description" : "High-throughput pipeline [WIP]\n",
|
||||
"summary" : "A workflow for high-throughput RNA-seq data analyses.\n",
|
||||
"description" : "This workflow is designed to process high-throughput RNA-seq data, where every\nwell of a microarray plate is a sample. A fasta file provided as input\ndefines the mapping between sample barcodes and wells.\n\nThe workflow is built in a modular fashion, where most of the base functionality\nis provided by components from [`biobox`](https://www.viash-hub.com/packages/biobox/latest)\nsupplemented by custom base components and workflow components in this package.\n\nThe full workflow is split in two major subworkflows that can be run independently:\n\n* **Well-demultiplexing:** Split the input (plate/pool level) fastq files per well.\n* **Mapping, counting and QC:** Run per-well mapping, counting and generate QC reports.\n\nEach of those can be started individually, or the full workflow can be run in two ways:\n\n1. Run the [main workflow](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/htrnaseq) \ncontaining the main functionality.\n2. Run the [(opinionated) `runner`](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/runner) where a\nnumber of choices (input/output structure and location) have been made.\n\nInput for the workflow has to be `fastq` files (zipped or not). For bcl or other formats, please consider running\n[demultiplex](https://www.viash-hub.com/packages/demultiplex) first.\n",
|
||||
"info" : {
|
||||
"test_resources" : [
|
||||
{
|
||||
@@ -3329,7 +3335,7 @@ meta = [
|
||||
}
|
||||
]
|
||||
},
|
||||
"viash_version" : "0.9.2",
|
||||
"viash_version" : "0.9.4",
|
||||
"source" : "src",
|
||||
"target" : "target",
|
||||
"config_mods" : [
|
||||
@@ -3340,11 +3346,13 @@ meta = [
|
||||
],
|
||||
"keywords" : [
|
||||
"bioinformatics",
|
||||
"sequence",
|
||||
"sequencing",
|
||||
"high-throughput",
|
||||
"RNAseq",
|
||||
"mapping",
|
||||
"counting",
|
||||
"pipeline"
|
||||
"pipeline",
|
||||
"workflow"
|
||||
],
|
||||
"license" : "MIT",
|
||||
"organization" : "vsh",
|
||||
@@ -3363,7 +3371,7 @@ meta = [
|
||||
// inner workflow hook
|
||||
def innerWorkflowFactory(args) {
|
||||
def rawScript = '''set -e
|
||||
tempscript=".viash_script.sh"
|
||||
tempscript=".viash_script.R"
|
||||
cat > "$tempscript" << VIASHMAIN
|
||||
## VIASH START
|
||||
# The following code has been auto-generated by Viash.
|
||||
@@ -3771,7 +3779,7 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) {
|
||||
// create process from temp file
|
||||
def binding = new nextflow.script.ScriptBinding([:])
|
||||
def session = nextflow.Nextflow.getSession()
|
||||
def parser = new nextflow.script.ScriptParser(session)
|
||||
def parser = _getScriptLoader(session)
|
||||
.setModule(true)
|
||||
.setBinding(binding)
|
||||
def moduleScript = parser.runScript(tempFile)
|
||||
@@ -3785,6 +3793,27 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) {
|
||||
return scriptMeta.getProcess(procKey)
|
||||
}
|
||||
|
||||
// use Reflection to get a ScriptParser / ScriptLoader
|
||||
// <25.02.0-edge: new nextflow.script.ScriptParser(session)
|
||||
// >=25.02.0-edge: nextflow.script.ScriptLoaderFactory.create(session)
|
||||
def _getScriptLoader(nextflow.Session session) {
|
||||
// try using the old method
|
||||
try {
|
||||
Class<?> scriptParserClass = Class.forName('nextflow.script.ScriptParser')
|
||||
return scriptParserClass.getDeclaredConstructor(nextflow.Session).newInstance(session)
|
||||
} catch (ClassNotFoundException e) {
|
||||
// else try with the new method
|
||||
try {
|
||||
Class<?> scriptLoaderFactoryClass = Class.forName('nextflow.script.ScriptLoaderFactory')
|
||||
def createMethod = scriptLoaderFactoryClass.getDeclaredMethod('create', nextflow.Session)
|
||||
return createMethod.invoke(null, session) // null because create is static
|
||||
} catch (ClassNotFoundException | NoSuchMethodException | IllegalAccessException | java.lang.reflect.InvocationTargetException e2) {
|
||||
// Handle the case where neither class is found
|
||||
throw new Exception("Neither nextflow.script.ScriptParser nor nextflow.script.ScriptLoaderFactory could be found. Is this a compatible Nextflow version?", e2)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// defaults
|
||||
meta["defaults"] = [
|
||||
// key to be used to trace the process and determine output names
|
||||
|
||||
@@ -27,7 +27,7 @@ process {
|
||||
withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } }
|
||||
withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } }
|
||||
withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 40.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } }
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -283,15 +283,31 @@ plateLayout <- function(
|
||||
|
||||
if (is.null(colours)) {
|
||||
colours <- tryCatch({
|
||||
colorRamp2(
|
||||
circlize::colorRamp2(
|
||||
breaks = breaks,
|
||||
colors = brewer.pal(length(breaks), "Purples")
|
||||
)
|
||||
},
|
||||
error = function(cond) {
|
||||
return(c("#9370DB", "white"))
|
||||
error = function(cond){
|
||||
|
||||
message("Recomputed breaks for proper colour mapping")
|
||||
|
||||
breakValues <- plateValues$values
|
||||
breakValues[which(is.na(breakValues))] <- 0
|
||||
if (all(breakValues >= 0)) {
|
||||
breaks <- computeBreaks(7, max(plateValues$values, na.rm = TRUE))
|
||||
} else {
|
||||
breaks <- quantile(plateValues$values, probs = seq(0, 1, 0.125))
|
||||
}
|
||||
|
||||
circlize::colorRamp2(
|
||||
breaks = breaks,
|
||||
colors = brewer.pal(length(breaks), "Purples")
|
||||
)
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
ht <- Heatmap(
|
||||
plateValues$values,
|
||||
column_title = mainTitle, column_title_side = "top",
|
||||
@@ -425,6 +441,7 @@ computeBreaks <- function(nBreaks, variable) {
|
||||
)
|
||||
coefExp <- c(exp(coefSystem[1]), coefSystem[2])
|
||||
breaks <- coefExp[1] * exp((1:(nBreaks - 1)) * coefExp[2])
|
||||
breaks <- unique(c(0, breaks))
|
||||
}
|
||||
return(c(0, breaks))
|
||||
}
|
||||
return(breaks)
|
||||
}
|
||||
|
||||
@@ -200,18 +200,35 @@ build_info:
|
||||
engine: "docker|native"
|
||||
output: "target/nextflow/stats/combine_star_logs"
|
||||
executable: "target/nextflow/stats/combine_star_logs/main.nf"
|
||||
viash_version: "0.9.2"
|
||||
git_commit: "cc910b428428dd32f183df0c2009fc36e75394e0"
|
||||
viash_version: "0.9.4"
|
||||
git_commit: "dbca5cbb3a338287f516c79705fc607bcf0905f7"
|
||||
git_remote: "https://github.com/viash-hub/htrnaseq"
|
||||
git_tag: "v0.7.2-21-gdbca5cb"
|
||||
package_config:
|
||||
name: "htrnaseq"
|
||||
version: "save-params"
|
||||
description: "High-throughput pipeline [WIP]\n"
|
||||
summary: "A workflow for high-throughput RNA-seq data analyses.\n"
|
||||
description: "This workflow is designed to process high-throughput RNA-seq data,\
|
||||
\ where every\nwell of a microarray plate is a sample. A fasta file provided as\
|
||||
\ input\ndefines the mapping between sample barcodes and wells.\n\nThe workflow\
|
||||
\ is built in a modular fashion, where most of the base functionality\nis provided\
|
||||
\ by components from [`biobox`](https://www.viash-hub.com/packages/biobox/latest)\n\
|
||||
supplemented by custom base components and workflow components in this package.\n\
|
||||
\nThe full workflow is split in two major subworkflows that can be run independently:\n\
|
||||
\n* **Well-demultiplexing:** Split the input (plate/pool level) fastq files per\
|
||||
\ well.\n* **Mapping, counting and QC:** Run per-well mapping, counting and generate\
|
||||
\ QC reports.\n\nEach of those can be started individually, or the full workflow\
|
||||
\ can be run in two ways:\n\n1. Run the [main workflow](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/htrnaseq)\
|
||||
\ \ncontaining the main functionality.\n2. Run the [(opinionated) `runner`](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/runner)\
|
||||
\ where a\nnumber of choices (input/output structure and location) have been made.\n\
|
||||
\nInput for the workflow has to be `fastq` files (zipped or not). For bcl or other\
|
||||
\ formats, please consider running\n[demultiplex](https://www.viash-hub.com/packages/demultiplex)\
|
||||
\ first.\n"
|
||||
info:
|
||||
test_resources:
|
||||
- path: "gs://viash-hub-test-data/htrnaseq/v1/"
|
||||
dest: "resources_test"
|
||||
viash_version: "0.9.2"
|
||||
viash_version: "0.9.4"
|
||||
source: "src"
|
||||
target: "target"
|
||||
config_mods:
|
||||
@@ -223,11 +240,13 @@ package_config:
|
||||
- ".engines[.type == 'docker'].target_tag := 'save-params'"
|
||||
keywords:
|
||||
- "bioinformatics"
|
||||
- "sequence"
|
||||
- "sequencing"
|
||||
- "high-throughput"
|
||||
- "RNAseq"
|
||||
- "mapping"
|
||||
- "counting"
|
||||
- "pipeline"
|
||||
- "workflow"
|
||||
license: "MIT"
|
||||
organization: "vsh"
|
||||
links:
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// combine_star_logs save-params
|
||||
//
|
||||
// This wrapper script is auto-generated by viash 0.9.2 and is thus a derivative
|
||||
// This wrapper script is auto-generated by viash 0.9.4 and is thus a derivative
|
||||
// work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data
|
||||
// Intuitive.
|
||||
//
|
||||
@@ -85,64 +85,56 @@ def _checkArgumentType(String stage, Map par, Object value, String errorIdentifi
|
||||
foundClass = "List[${e.foundClass}]"
|
||||
}
|
||||
} else if (par.type == "string") {
|
||||
// cast to string if need be
|
||||
// cast to string if need be. only cast if the value is a GString
|
||||
if (value instanceof GString) {
|
||||
value = value.toString()
|
||||
value = value as String
|
||||
}
|
||||
expectedClass = value instanceof String ? null : "String"
|
||||
} else if (par.type == "integer") {
|
||||
// cast to integer if need be
|
||||
if (value instanceof String) {
|
||||
if (value !instanceof Integer) {
|
||||
try {
|
||||
value = value.toInteger()
|
||||
value = value as Integer
|
||||
} catch (NumberFormatException e) {
|
||||
// do nothing
|
||||
expectedClass = "Integer"
|
||||
}
|
||||
}
|
||||
if (value instanceof java.math.BigInteger) {
|
||||
value = value.intValue()
|
||||
}
|
||||
expectedClass = value instanceof Integer ? null : "Integer"
|
||||
} else if (par.type == "long") {
|
||||
// cast to long if need be
|
||||
if (value instanceof String) {
|
||||
if (value !instanceof Long) {
|
||||
try {
|
||||
value = value.toLong()
|
||||
value = value as Long
|
||||
} catch (NumberFormatException e) {
|
||||
// do nothing
|
||||
expectedClass = "Long"
|
||||
}
|
||||
}
|
||||
if (value instanceof Integer) {
|
||||
value = value.toLong()
|
||||
}
|
||||
expectedClass = value instanceof Long ? null : "Long"
|
||||
} else if (par.type == "double") {
|
||||
// cast to double if need be
|
||||
if (value instanceof String) {
|
||||
if (value !instanceof Double) {
|
||||
try {
|
||||
value = value.toDouble()
|
||||
value = value as Double
|
||||
} catch (NumberFormatException e) {
|
||||
// do nothing
|
||||
expectedClass = "Double"
|
||||
}
|
||||
}
|
||||
if (value instanceof java.math.BigDecimal) {
|
||||
value = value.doubleValue()
|
||||
} else if (par.type == "float") {
|
||||
// cast to float if need be
|
||||
if (value !instanceof Float) {
|
||||
try {
|
||||
value = value as Float
|
||||
} catch (NumberFormatException e) {
|
||||
expectedClass = "Float"
|
||||
}
|
||||
}
|
||||
if (value instanceof Float) {
|
||||
value = value.toDouble()
|
||||
}
|
||||
expectedClass = value instanceof Double ? null : "Double"
|
||||
} else if (par.type == "boolean" | par.type == "boolean_true" | par.type == "boolean_false") {
|
||||
// cast to boolean if need be
|
||||
if (value instanceof String) {
|
||||
def valueLower = value.toLowerCase()
|
||||
if (valueLower == "true") {
|
||||
value = true
|
||||
} else if (valueLower == "false") {
|
||||
value = false
|
||||
if (value !instanceof Boolean) {
|
||||
try {
|
||||
value = value as Boolean
|
||||
} catch (Exception e) {
|
||||
expectedClass = "Boolean"
|
||||
}
|
||||
}
|
||||
expectedClass = value instanceof Boolean ? null : "Boolean"
|
||||
} else if (par.type == "file" && (par.direction == "input" || stage == "output")) {
|
||||
// cast to path if need be
|
||||
if (value instanceof String) {
|
||||
@@ -154,10 +146,13 @@ def _checkArgumentType(String stage, Map par, Object value, String errorIdentifi
|
||||
expectedClass = value instanceof Path ? null : "Path"
|
||||
} else if (par.type == "file" && stage == "input" && par.direction == "output") {
|
||||
// cast to string if need be
|
||||
if (value instanceof GString) {
|
||||
value = value.toString()
|
||||
if (value !instanceof String) {
|
||||
try {
|
||||
value = value as String
|
||||
} catch (Exception e) {
|
||||
expectedClass = "String"
|
||||
}
|
||||
}
|
||||
expectedClass = value instanceof String ? null : "String"
|
||||
} else {
|
||||
// didn't find a match for par.type
|
||||
expectedClass = par.type
|
||||
@@ -3294,14 +3289,16 @@ meta = [
|
||||
"runner" : "nextflow",
|
||||
"engine" : "docker|native",
|
||||
"output" : "target/nextflow/stats/combine_star_logs",
|
||||
"viash_version" : "0.9.2",
|
||||
"git_commit" : "cc910b428428dd32f183df0c2009fc36e75394e0",
|
||||
"git_remote" : "https://github.com/viash-hub/htrnaseq"
|
||||
"viash_version" : "0.9.4",
|
||||
"git_commit" : "dbca5cbb3a338287f516c79705fc607bcf0905f7",
|
||||
"git_remote" : "https://github.com/viash-hub/htrnaseq",
|
||||
"git_tag" : "v0.7.2-21-gdbca5cb"
|
||||
},
|
||||
"package_config" : {
|
||||
"name" : "htrnaseq",
|
||||
"version" : "save-params",
|
||||
"description" : "High-throughput pipeline [WIP]\n",
|
||||
"summary" : "A workflow for high-throughput RNA-seq data analyses.\n",
|
||||
"description" : "This workflow is designed to process high-throughput RNA-seq data, where every\nwell of a microarray plate is a sample. A fasta file provided as input\ndefines the mapping between sample barcodes and wells.\n\nThe workflow is built in a modular fashion, where most of the base functionality\nis provided by components from [`biobox`](https://www.viash-hub.com/packages/biobox/latest)\nsupplemented by custom base components and workflow components in this package.\n\nThe full workflow is split in two major subworkflows that can be run independently:\n\n* **Well-demultiplexing:** Split the input (plate/pool level) fastq files per well.\n* **Mapping, counting and QC:** Run per-well mapping, counting and generate QC reports.\n\nEach of those can be started individually, or the full workflow can be run in two ways:\n\n1. Run the [main workflow](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/htrnaseq) \ncontaining the main functionality.\n2. Run the [(opinionated) `runner`](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/runner) where a\nnumber of choices (input/output structure and location) have been made.\n\nInput for the workflow has to be `fastq` files (zipped or not). For bcl or other formats, please consider running\n[demultiplex](https://www.viash-hub.com/packages/demultiplex) first.\n",
|
||||
"info" : {
|
||||
"test_resources" : [
|
||||
{
|
||||
@@ -3310,7 +3307,7 @@ meta = [
|
||||
}
|
||||
]
|
||||
},
|
||||
"viash_version" : "0.9.2",
|
||||
"viash_version" : "0.9.4",
|
||||
"source" : "src",
|
||||
"target" : "target",
|
||||
"config_mods" : [
|
||||
@@ -3321,11 +3318,13 @@ meta = [
|
||||
],
|
||||
"keywords" : [
|
||||
"bioinformatics",
|
||||
"sequence",
|
||||
"sequencing",
|
||||
"high-throughput",
|
||||
"RNAseq",
|
||||
"mapping",
|
||||
"counting",
|
||||
"pipeline"
|
||||
"pipeline",
|
||||
"workflow"
|
||||
],
|
||||
"license" : "MIT",
|
||||
"organization" : "vsh",
|
||||
@@ -3344,7 +3343,7 @@ meta = [
|
||||
// inner workflow hook
|
||||
def innerWorkflowFactory(args) {
|
||||
def rawScript = '''set -e
|
||||
tempscript=".viash_script.sh"
|
||||
tempscript=".viash_script.py"
|
||||
cat > "$tempscript" << VIASHMAIN
|
||||
import logging
|
||||
import pandas as pd
|
||||
@@ -3926,7 +3925,7 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) {
|
||||
// create process from temp file
|
||||
def binding = new nextflow.script.ScriptBinding([:])
|
||||
def session = nextflow.Nextflow.getSession()
|
||||
def parser = new nextflow.script.ScriptParser(session)
|
||||
def parser = _getScriptLoader(session)
|
||||
.setModule(true)
|
||||
.setBinding(binding)
|
||||
def moduleScript = parser.runScript(tempFile)
|
||||
@@ -3940,6 +3939,27 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) {
|
||||
return scriptMeta.getProcess(procKey)
|
||||
}
|
||||
|
||||
// use Reflection to get a ScriptParser / ScriptLoader
|
||||
// <25.02.0-edge: new nextflow.script.ScriptParser(session)
|
||||
// >=25.02.0-edge: nextflow.script.ScriptLoaderFactory.create(session)
|
||||
def _getScriptLoader(nextflow.Session session) {
|
||||
// try using the old method
|
||||
try {
|
||||
Class<?> scriptParserClass = Class.forName('nextflow.script.ScriptParser')
|
||||
return scriptParserClass.getDeclaredConstructor(nextflow.Session).newInstance(session)
|
||||
} catch (ClassNotFoundException e) {
|
||||
// else try with the new method
|
||||
try {
|
||||
Class<?> scriptLoaderFactoryClass = Class.forName('nextflow.script.ScriptLoaderFactory')
|
||||
def createMethod = scriptLoaderFactoryClass.getDeclaredMethod('create', nextflow.Session)
|
||||
return createMethod.invoke(null, session) // null because create is static
|
||||
} catch (ClassNotFoundException | NoSuchMethodException | IllegalAccessException | java.lang.reflect.InvocationTargetException e2) {
|
||||
// Handle the case where neither class is found
|
||||
throw new Exception("Neither nextflow.script.ScriptParser nor nextflow.script.ScriptLoaderFactory could be found. Is this a compatible Nextflow version?", e2)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// defaults
|
||||
meta["defaults"] = [
|
||||
// key to be used to trace the process and determine output names
|
||||
|
||||
@@ -27,7 +27,7 @@ process {
|
||||
withLabel: verylowmem { memory = { get_memory( 4.GB * task.attempt ) } }
|
||||
withLabel: lowmem { memory = { get_memory( 8.GB * task.attempt ) } }
|
||||
withLabel: midmem { memory = { get_memory( 16.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 40.GB * task.attempt ) } }
|
||||
withLabel: highmem { memory = { get_memory( 64.GB * task.attempt ) } }
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -184,18 +184,35 @@ build_info:
|
||||
engine: "docker|native"
|
||||
output: "target/nextflow/stats/generate_pool_statistics"
|
||||
executable: "target/nextflow/stats/generate_pool_statistics/main.nf"
|
||||
viash_version: "0.9.2"
|
||||
git_commit: "cc910b428428dd32f183df0c2009fc36e75394e0"
|
||||
viash_version: "0.9.4"
|
||||
git_commit: "dbca5cbb3a338287f516c79705fc607bcf0905f7"
|
||||
git_remote: "https://github.com/viash-hub/htrnaseq"
|
||||
git_tag: "v0.7.2-21-gdbca5cb"
|
||||
package_config:
|
||||
name: "htrnaseq"
|
||||
version: "save-params"
|
||||
description: "High-throughput pipeline [WIP]\n"
|
||||
summary: "A workflow for high-throughput RNA-seq data analyses.\n"
|
||||
description: "This workflow is designed to process high-throughput RNA-seq data,\
|
||||
\ where every\nwell of a microarray plate is a sample. A fasta file provided as\
|
||||
\ input\ndefines the mapping between sample barcodes and wells.\n\nThe workflow\
|
||||
\ is built in a modular fashion, where most of the base functionality\nis provided\
|
||||
\ by components from [`biobox`](https://www.viash-hub.com/packages/biobox/latest)\n\
|
||||
supplemented by custom base components and workflow components in this package.\n\
|
||||
\nThe full workflow is split in two major subworkflows that can be run independently:\n\
|
||||
\n* **Well-demultiplexing:** Split the input (plate/pool level) fastq files per\
|
||||
\ well.\n* **Mapping, counting and QC:** Run per-well mapping, counting and generate\
|
||||
\ QC reports.\n\nEach of those can be started individually, or the full workflow\
|
||||
\ can be run in two ways:\n\n1. Run the [main workflow](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/htrnaseq)\
|
||||
\ \ncontaining the main functionality.\n2. Run the [(opinionated) `runner`](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/runner)\
|
||||
\ where a\nnumber of choices (input/output structure and location) have been made.\n\
|
||||
\nInput for the workflow has to be `fastq` files (zipped or not). For bcl or other\
|
||||
\ formats, please consider running\n[demultiplex](https://www.viash-hub.com/packages/demultiplex)\
|
||||
\ first.\n"
|
||||
info:
|
||||
test_resources:
|
||||
- path: "gs://viash-hub-test-data/htrnaseq/v1/"
|
||||
dest: "resources_test"
|
||||
viash_version: "0.9.2"
|
||||
viash_version: "0.9.4"
|
||||
source: "src"
|
||||
target: "target"
|
||||
config_mods:
|
||||
@@ -207,11 +224,13 @@ package_config:
|
||||
- ".engines[.type == 'docker'].target_tag := 'save-params'"
|
||||
keywords:
|
||||
- "bioinformatics"
|
||||
- "sequence"
|
||||
- "sequencing"
|
||||
- "high-throughput"
|
||||
- "RNAseq"
|
||||
- "mapping"
|
||||
- "counting"
|
||||
- "pipeline"
|
||||
- "workflow"
|
||||
license: "MIT"
|
||||
organization: "vsh"
|
||||
links:
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// generate_pool_statistics save-params
|
||||
//
|
||||
// This wrapper script is auto-generated by viash 0.9.2 and is thus a derivative
|
||||
// This wrapper script is auto-generated by viash 0.9.4 and is thus a derivative
|
||||
// work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data
|
||||
// Intuitive.
|
||||
//
|
||||
@@ -86,64 +86,56 @@ def _checkArgumentType(String stage, Map par, Object value, String errorIdentifi
|
||||
foundClass = "List[${e.foundClass}]"
|
||||
}
|
||||
} else if (par.type == "string") {
|
||||
// cast to string if need be
|
||||
// cast to string if need be. only cast if the value is a GString
|
||||
if (value instanceof GString) {
|
||||
value = value.toString()
|
||||
value = value as String
|
||||
}
|
||||
expectedClass = value instanceof String ? null : "String"
|
||||
} else if (par.type == "integer") {
|
||||
// cast to integer if need be
|
||||
if (value instanceof String) {
|
||||
if (value !instanceof Integer) {
|
||||
try {
|
||||
value = value.toInteger()
|
||||
value = value as Integer
|
||||
} catch (NumberFormatException e) {
|
||||
// do nothing
|
||||
expectedClass = "Integer"
|
||||
}
|
||||
}
|
||||
if (value instanceof java.math.BigInteger) {
|
||||
value = value.intValue()
|
||||
}
|
||||
expectedClass = value instanceof Integer ? null : "Integer"
|
||||
} else if (par.type == "long") {
|
||||
// cast to long if need be
|
||||
if (value instanceof String) {
|
||||
if (value !instanceof Long) {
|
||||
try {
|
||||
value = value.toLong()
|
||||
value = value as Long
|
||||
} catch (NumberFormatException e) {
|
||||
// do nothing
|
||||
expectedClass = "Long"
|
||||
}
|
||||
}
|
||||
if (value instanceof Integer) {
|
||||
value = value.toLong()
|
||||
}
|
||||
expectedClass = value instanceof Long ? null : "Long"
|
||||
} else if (par.type == "double") {
|
||||
// cast to double if need be
|
||||
if (value instanceof String) {
|
||||
if (value !instanceof Double) {
|
||||
try {
|
||||
value = value.toDouble()
|
||||
value = value as Double
|
||||
} catch (NumberFormatException e) {
|
||||
// do nothing
|
||||
expectedClass = "Double"
|
||||
}
|
||||
}
|
||||
if (value instanceof java.math.BigDecimal) {
|
||||
value = value.doubleValue()
|
||||
} else if (par.type == "float") {
|
||||
// cast to float if need be
|
||||
if (value !instanceof Float) {
|
||||
try {
|
||||
value = value as Float
|
||||
} catch (NumberFormatException e) {
|
||||
expectedClass = "Float"
|
||||
}
|
||||
}
|
||||
if (value instanceof Float) {
|
||||
value = value.toDouble()
|
||||
}
|
||||
expectedClass = value instanceof Double ? null : "Double"
|
||||
} else if (par.type == "boolean" | par.type == "boolean_true" | par.type == "boolean_false") {
|
||||
// cast to boolean if need be
|
||||
if (value instanceof String) {
|
||||
def valueLower = value.toLowerCase()
|
||||
if (valueLower == "true") {
|
||||
value = true
|
||||
} else if (valueLower == "false") {
|
||||
value = false
|
||||
if (value !instanceof Boolean) {
|
||||
try {
|
||||
value = value as Boolean
|
||||
} catch (Exception e) {
|
||||
expectedClass = "Boolean"
|
||||
}
|
||||
}
|
||||
expectedClass = value instanceof Boolean ? null : "Boolean"
|
||||
} else if (par.type == "file" && (par.direction == "input" || stage == "output")) {
|
||||
// cast to path if need be
|
||||
if (value instanceof String) {
|
||||
@@ -155,10 +147,13 @@ def _checkArgumentType(String stage, Map par, Object value, String errorIdentifi
|
||||
expectedClass = value instanceof Path ? null : "Path"
|
||||
} else if (par.type == "file" && stage == "input" && par.direction == "output") {
|
||||
// cast to string if need be
|
||||
if (value instanceof GString) {
|
||||
value = value.toString()
|
||||
if (value !instanceof String) {
|
||||
try {
|
||||
value = value as String
|
||||
} catch (Exception e) {
|
||||
expectedClass = "String"
|
||||
}
|
||||
}
|
||||
expectedClass = value instanceof String ? null : "String"
|
||||
} else {
|
||||
// didn't find a match for par.type
|
||||
expectedClass = par.type
|
||||
@@ -3278,14 +3273,16 @@ meta = [
|
||||
"runner" : "nextflow",
|
||||
"engine" : "docker|native",
|
||||
"output" : "target/nextflow/stats/generate_pool_statistics",
|
||||
"viash_version" : "0.9.2",
|
||||
"git_commit" : "cc910b428428dd32f183df0c2009fc36e75394e0",
|
||||
"git_remote" : "https://github.com/viash-hub/htrnaseq"
|
||||
"viash_version" : "0.9.4",
|
||||
"git_commit" : "dbca5cbb3a338287f516c79705fc607bcf0905f7",
|
||||
"git_remote" : "https://github.com/viash-hub/htrnaseq",
|
||||
"git_tag" : "v0.7.2-21-gdbca5cb"
|
||||
},
|
||||
"package_config" : {
|
||||
"name" : "htrnaseq",
|
||||
"version" : "save-params",
|
||||
"description" : "High-throughput pipeline [WIP]\n",
|
||||
"summary" : "A workflow for high-throughput RNA-seq data analyses.\n",
|
||||
"description" : "This workflow is designed to process high-throughput RNA-seq data, where every\nwell of a microarray plate is a sample. A fasta file provided as input\ndefines the mapping between sample barcodes and wells.\n\nThe workflow is built in a modular fashion, where most of the base functionality\nis provided by components from [`biobox`](https://www.viash-hub.com/packages/biobox/latest)\nsupplemented by custom base components and workflow components in this package.\n\nThe full workflow is split in two major subworkflows that can be run independently:\n\n* **Well-demultiplexing:** Split the input (plate/pool level) fastq files per well.\n* **Mapping, counting and QC:** Run per-well mapping, counting and generate QC reports.\n\nEach of those can be started individually, or the full workflow can be run in two ways:\n\n1. Run the [main workflow](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/htrnaseq) \ncontaining the main functionality.\n2. Run the [(opinionated) `runner`](https://www.viash-hub.com/packages/htrnaseq/v0.3.0/components/workflows/runner) where a\nnumber of choices (input/output structure and location) have been made.\n\nInput for the workflow has to be `fastq` files (zipped or not). For bcl or other formats, please consider running\n[demultiplex](https://www.viash-hub.com/packages/demultiplex) first.\n",
|
||||
"info" : {
|
||||
"test_resources" : [
|
||||
{
|
||||
@@ -3294,7 +3291,7 @@ meta = [
|
||||
}
|
||||
]
|
||||
},
|
||||
"viash_version" : "0.9.2",
|
||||
"viash_version" : "0.9.4",
|
||||
"source" : "src",
|
||||
"target" : "target",
|
||||
"config_mods" : [
|
||||
@@ -3305,11 +3302,13 @@ meta = [
|
||||
],
|
||||
"keywords" : [
|
||||
"bioinformatics",
|
||||
"sequence",
|
||||
"sequencing",
|
||||
"high-throughput",
|
||||
"RNAseq",
|
||||
"mapping",
|
||||
"counting",
|
||||
"pipeline"
|
||||
"pipeline",
|
||||
"workflow"
|
||||
],
|
||||
"license" : "MIT",
|
||||
"organization" : "vsh",
|
||||
@@ -3328,7 +3327,7 @@ meta = [
|
||||
// inner workflow hook
|
||||
def innerWorkflowFactory(args) {
|
||||
def rawScript = '''set -e
|
||||
tempscript=".viash_script.sh"
|
||||
tempscript=".viash_script.py"
|
||||
cat > "$tempscript" << VIASHMAIN
|
||||
import pandas as pd
|
||||
from pathlib import Path
|
||||
@@ -3781,7 +3780,7 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) {
|
||||
// create process from temp file
|
||||
def binding = new nextflow.script.ScriptBinding([:])
|
||||
def session = nextflow.Nextflow.getSession()
|
||||
def parser = new nextflow.script.ScriptParser(session)
|
||||
def parser = _getScriptLoader(session)
|
||||
.setModule(true)
|
||||
.setBinding(binding)
|
||||
def moduleScript = parser.runScript(tempFile)
|
||||
@@ -3795,6 +3794,27 @@ def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) {
|
||||
return scriptMeta.getProcess(procKey)
|
||||
}
|
||||
|
||||
// use Reflection to get a ScriptParser / ScriptLoader
|
||||
// <25.02.0-edge: new nextflow.script.ScriptParser(session)
|
||||
// >=25.02.0-edge: nextflow.script.ScriptLoaderFactory.create(session)
|
||||
def _getScriptLoader(nextflow.Session session) {
|
||||
// try using the old method
|
||||
try {
|
||||
Class<?> scriptParserClass = Class.forName('nextflow.script.ScriptParser')
|
||||
return scriptParserClass.getDeclaredConstructor(nextflow.Session).newInstance(session)
|
||||
} catch (ClassNotFoundException e) {
|
||||
// else try with the new method
|
||||
try {
|
||||
Class<?> scriptLoaderFactoryClass = Class.forName('nextflow.script.ScriptLoaderFactory')
|
||||
def createMethod = scriptLoaderFactoryClass.getDeclaredMethod('create', nextflow.Session)
|
||||
return createMethod.invoke(null, session) // null because create is static
|
||||
} catch (ClassNotFoundException | NoSuchMethodException | IllegalAccessException | java.lang.reflect.InvocationTargetException e2) {
|
||||
// Handle the case where neither class is found
|
||||
throw new Exception("Neither nextflow.script.ScriptParser nor nextflow.script.ScriptLoaderFactory could be found. Is this a compatible Nextflow version?", e2)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// defaults
|
||||
meta["defaults"] = [
|
||||
// key to be used to trace the process and determine output names
|
||||
|
||||