nf-labrobotics @ 0.1.0
Summary
nf-labrobotics is a Nextflow plugin that integrates robotic wet-lab steps into Nextflow pipelines, allowing a single pipeline to combine wet steps (robot transfers plates, extracts RNA, runs PCR) with dry analysis steps without changing the Nextflow language. Wet steps are guaranteed to run only once—never on retry, -resume, or in a new launch directory. Aborting a run safely stops robots instead of killing them mid-protocol. Each wet task's provenance (device, protocol version, samples) is recorded in Nextflow's lineage. The plugin is built as a prototype against PyLabRobot's simulated machines and requires no real robot.
Get Started
Prerequisites: Java 17, uv, Nextflow 26.10.0 or later on PATH.
make install # builds the plugin into ~/.nextflow/plugins
cd dashboard && uv run uvicorn nf_lab_dashboard.app:main --factory --port 8080
Open http://127.0.0.1:8080, pick parallel_extraction and press Side by side: one plate is split into RNA and DNA aliquots, extracted at once on two simulated liquid handlers, then PCR on a thermocycler. Use E-stop to abort and see the safe-stop and -resume that runs only the stopped plate again.
To use in a pipeline, add the plugin to your config and configure the labrobotics executor:
plugins { id 'nf-labrobotics@0.1.0' }
labrobotics {
adapter = 'http://127.0.0.1:8000' // unset: $NF_LAB_ADAPTER
poll = 2.s
grace = 5.m
}
process {
withLabel: 'process_wet' {
executor = 'labrobotics'
errorStrategy = { task.exitStatus in [69, 75] ? 'retry' : 'finish' } // 75: nothing moved; 69: adapter unreachable
}
}
A wet step is an ordinary process labeled process_wet with a script that runs labctl run --protocol <name>.
Examples
Included example pipelines demonstrate various use cases:
plate_transfer: demonstrates plate transfer between devicesplate_assay: transfer then read protocolparallel_extraction: extraction followed by PCR on multiple devices simultaneouslyqpcr: 1000 samples with extraction then RT-qPCRlab_tour: five routines over every simulated machinehello: basic example
View lineage to answer questions about pipeline execution:
echo 'lineage.enabled = true' > nextflow.config
nextflow lineage list # all runs
nextflow lineage find type=TaskRun name="WET:PLATE_READ (P4)" # find specific task
nextflow lineage view $task_id | jq -r .spec.name # view task details
nextflow lineage render $RUN/plates/P4/result.json # render lineage graph
License
Apache License 2.0. See COPYING.
What's new
- Prototype status: built against PyLabRobot's simulated machines
- Interactive browser-based tour available at https://vagkaratzas.github.io/nf-labrobotics/
- End-to-end validation checks for success criteria (abort before/after stop boundary, retries,
-resumeafter dry failures) - Full lineage integration for wet task provenance tracking
| Nextflow version | >=26.10.0 |
|---|---|
| Depends On | - |
| Release Date | 30 Oct 2026 09:39:54 (UTC) |
| Release Notes | - |
| Download URL | https://registry.nextflow.io/api/v1/plugins/nf-labrobotics/0.1.0/download/nf-labrobotics-0.1.0.zip |
| Store URL | https://public.cr.seqera.io/v2/nextflow/plugin/nf-labrobotics/blobs/sha256:0d18eff4982c5bd4b33656cf6880c2038ad5122726928ff72c767cba7ff35f0d |
| Size | 16.7 KB |
| Checksum | 2fa54331f89a28e53155cdfc15cbfb8731fba3c59b48ed5e145ba84bb06d43a0dd08ccdeeaed1f7d08667453d7061d7d75c50aef262f7629d993667f8b6d67f1 |
| Total downloads | 0 View trends |
| Security Scan |
| Version | Nextflow version | Date | Status | Downloads |
|---|---|---|---|---|
| 0.1.0 | >=26.10.0 | 30 Oct 2026 09:39:54 (UTC) | 0 |