Hallo there! A small intro about me before I promote my tool. I spent two decades building software for a safety regulated industry, the last ten years on platform and compliance tooling, where every requirement change must show mechanically what was affected, re-verify it, and keep the evidence available.
While learning bioinformatics pipelines, I kept tracing the challenges and the equivalent tooling for traceability and impact analysis. A container turns out to be buggy, a sample fails QC after its data was already used, a reference gets bumped. The command -resume fixes the run, but nothing answers the questions that come before and after it, like which of the past runs used the defective input, which other runs consumed their outputs, and which results already left the building. Nextflow's lineage store and nf-prov record what ran, but turning those records into a decision (what to delete, re-run, or disclose now) was something I couldn't establish.
So I attempted to build Clew. It reads the lineage data Nextflow already writes (the native lineage store on 25.04+, nf-prov RO-Crates, or plain work/ symlinks on any version), merges runs into one graph, and computes what to delete, re-run, or disclose for a given trigger, for example a donor who withdrew consent, a sample that failed QC, a container with a bug, a reference genome that got updated. It even traces across pipelines, so a withdrawn sample in an rnaseq run reaches the differentialabundance run that consumed its count matrix. Every verdict cites a rule and replays offline, so the output is something you can hand to an auditor.
Two minute demo on a real sarek run, stdlib only, AGPL:
pip install clew-lineage then clew demo
github.com/QuietFlare/clew
I am still new to the domain and learning the tooling and process by building in the open, so I am happy to discuss the scope and how it could work for you. Feedback from people who run pipelines for a living is exactly what I need. Issues and PRs very welcome. Thank you in Advance!