A collection of custom-tailored scripts and applied utilities built with Viash.
craftbox is a curated collection of custom scripts and utilities
designed to tackle context-specific tasks.
Emphasizing the Viash principles, craftbox components aim for
reusability, reproducibility, and adherence to best
practices. Key features generally include:
- Standalone & Nextflow Ready: Components are built to run directly via the command line or be smoothly integrated into Nextflow workflows.
- Custom Implementations: Contains scripts and tools developed for particular tasks that may not be found in broader collections.
- High Quality Standards (promoted by Viash):
- Clear documentation for components and their parameters.
- Full exposure of underlying script/tool arguments for fine-grained control.
- Containerized (Docker) to ensure dependency management and a consistent, reproducible runtime environment.
- Unit tested where applicable to ensure components function as expected.
Viash components in craftbox can be run in various ways:
flowchart TD
A[craftbox v0.3.1] --> B(Viash Hub Launch)
A --> C(Viash CLI)
A --> D(Nextflow CLI)
A --> E(Seqera Cloud)
A --> F(As a dependency)
You can run this component directly from the Viash Hub Launch interface.
You can run this component directly from the command line using the Viash CLI.
viash run vsh://craftbox@v0.3.1/concat_rtext -- --help
viash run vsh://craftbox@v0.3.1/concat_rtext -- \
--input path/to/input.txt \
--input path/to/compressed.txt.gz \
--output path/to/output.txtThis will run the component with the specified input files and output the results to the specified output file.
You can run this component as a Nextflow pipeline.
nextflow run https://packages.viash-hub.com/vsh/craftbox \
-revision v0.3.1 \
-main-script target/nextflow/concat_rtext/main.nf \
-latest -resume \
-profile docker \
--input "path/to/input.txt;path/to/compressed.txt.gz" \
--output path/to/output.txtNote: Make sure that the Nextflow
SCM is
set up properly. You can do this by adding the following lines to your
~/.nextflow/scm file:
providers.vsh.platform = 'gitlab'
providers.vsh.server = 'https://packages.viash-hub.com'Tip: This will also work with Seqera Cloud or other Nextflow-compatible platforms.
In your Viash config file (config.vsh.yaml), you can add this
component as a dependency:
dependencies:
- name: concat_rtext
repository: vsh://craftbox@v0.3.1Tip: See the Viash documentation for more details on how to use Viash components as a dependency in your own Nextflow workflows.
Contributions are welcome! We aim to build a comprehensive collection of high-quality bioinformatics components. If you’d like to contribute, please follow these general steps:
- Find a component to contribute
- Add config template
- Fill in the metadata
- Find a suitable container
- Create help file
- Create or fetch test data
- Add arguments for the input files
- Add arguments for the output files
- Add arguments for the other arguments
- Add a Docker engine
- Write a runner script
- Create test script
- Create a
/var/software_versions.txtfile
See the CONTRIBUTING file for more details.
