Description:A Nextflow plugin for reading and writing files in iRODS natively using the irods:// URI scheme.
IMPORTANT: The plugin automatically reads your standard iRODS configuration from $HOME/.irods/irods_environment.json. You must ensure this file exists and contains your connection details (host, port, zone, username, etc.).
The plugin also supports standard environment variables as fallbacks if needed:
IRODS_HOST
IRODS_PORT
IRODS_USER_NAME
IRODS_PASSWORD
IRODS_ZONE_NAME
IRODS_DEFAULT_RESOURCE
Authentication
If your iRODS server uses short-lived PAM tokens (which is common), the plugin will automatically read your negotiated token from $HOME/.irods/.irodsA.
IMPORTANT: Because these PAM tokens typically expire quickly (often after 1 hour), you must re-authenticate with the server by running iinit before launching your pipeline:
iinit
nextflow run your_pipeline.nf
If your token has expired during a long-running execution or between runs, you will receive an iRODS Authentication Failed! Your short-lived PAM token has likely EXPIRED error in the Nextflow log, and you will simply need to run iinit again.
How to Use
Once configured, Nextflow can resolve iRODS paths natively in pipeline channels and parameters:
params.reads = 'irods:///zone/home/user/data/*.fastq.gz'
process FASTQC {
input:
path reads
output:
path "fastqc_*.html"
script:
"""
fastqc ${reads}
"""
}
workflow {
Channel.fromPath(params.reads) | FASTQC
}