Nextflow
nf-quilt
is prerelease technology and evolving rapidly. For the latest updates and issues, please visit the GitHub repository: quiltdata/nf-quilt
What is Nextflow?
Nextflow is a bioinformatics workflow manager that enables the development of portable and reproducible workflows. The software is used by scientists and engineers to write, deploy and share data-intensive, highly scalable, workflows on any infrastructure.
Overview
Nextflow plugin for interacting with quilt packages as a FileSystem.
nf-quilt
is a plugin developed by Quilt Data that enables you read and write directly to Quilt data packages using quilt
URLs wherever you currently use s3
, az
or gs
URLs.
Getting Started
To add the nf-quilt
plugin to your workflow, you need Nextflow 22.09 (or later) and Python 3.9 (or later).
Quilt Configuration
This plugin uses the quilt3
CLI to call the Quilt API. You must install the quilt3
module and ensure the CLI is in your path:
Reading and Writing Quilt URLs
Next, create a Quilt URL for the S3 bucket where you want to store (and eventually read) your results. You must also specify a package name containing exactly one '/', such as instrument/experiment
Finally, run your Nextflow pipeline with your config file, setting that URL as your output directory, .e.g.:
Pipeline Configuration
Note that you won't need the '-plugins' option if you modify nextflow.config
Add the following snippet to your nextflow.config
to enable the plugin (or just that one 'id' if you already have other plugins):
In the future, you will be able to use that package as input to future jobs, e.g.:
Development
Based on nf-hello
Unit testing
Run the following command in the project root directory (ie. where the file settings.gradle
is located):
Testing and debugging
Clone the Nextflow repository into a sibling directory, .e.g:
Compile the plugin alongside the Nextflow code:
Run Nextflow with the plugin, using
./launch.sh
as a drop-in replacement for thenextflow
command, and adding the option-plugins nf-quilt
to load the plugin:
Package, upload and publish
The project should be hosted in a GitHub repository whose name should match the name of the plugin, that is the name of the directory in the plugins
folder (e.g. nf-quilt
).
Follow these steps to package, upload and publish the plugin:
Create a file named
gradle.properties
in the project root containing the following attributes (this file should not be committed to Git):
github_organization
: the GitHub organisation where the plugin repository is hosted.github_username
: The GitHub username granting access to the plugin repository.github_access_token
: The GitHub access token required to upload and commit changes to the plugin repository.github_commit_email
: The email address associated with your GitHub account.
Use the following command to package and create a release for your plugin on GitHub:
Create a pull request against nextflow-io/plugins to make the plugin accessible to Nextflow.
References
Last updated