FAIR4RS & Robustness Assessment¶
A review of how well biobb_vs_workflows meets FAIR4RS and
data-pipeline-engineering principles, plus a roadmap to close the gaps.
Where the project stands today¶
Legend: 🟢 settled · 🟡 partial · 🔴 missing
FAIR4RS¶
Principle |
Reality in the repo |
Status |
|---|---|---|
Findable |
Public GitHub repo ( |
🟡 |
Accessible |
Repo + tags + |
🟢 |
Interoperable |
Standard formats in/out (PDB, SDF/SMILES ligand libs, YAML config), thin argparse CLIs, importable workflow functions. |
🟢 |
Reusable |
|
🟡 |
Robustness¶
Principle |
Reality in the repo |
Status |
|---|---|---|
Reproducibility |
Python version and |
🟡 |
Provenance |
Each run writes |
🟡 |
Environment portability |
Conda |
🟡 |
Modularity |
Genuinely modular at the BioBB-step level. The only shared code between the two workflows is |
🟡 |
Validation |
Step outputs are validated internally by the biobbs. Each workflow has its own ad-hoc |
🟡 |
Roadmap¶
1. Improve clarity of errors¶
Turn the two silent
log.error(...); returnexits intoraise/sys.exit: the unsupported-library-extension branch invirtual_screening.pyandget_clusters_population()incavity_analysis.py.
2. Version exposure & provenance¶
Expose
__version__(viaimportlib.metadata) and log it at the start of every run.One shared helper writing
output/run_manifest.json— git commit (if resolvable), fullsys.argv, SHA-256 of each input file, UTC timestamp, resolvedconfig.ymlpath, and aconda env export/pip freezesnapshot.
3. Validation¶
argparse
choices=for enum-like flags (e.g. ligand-library format).Extract the two workflows’ duplicated
check_arguments()logic intocommon/, alongside the existingto_yaml()helper.
4. Testing & automation¶
Extend CI beyond the existing docs-build workflow: add
rufflint +pip install ..One tiny end-to-end smoke test on a small system (reuse
tests/*/run.sl’s logic against thedata/fixtures, wired into CI instead of SLURM-only).Dependency automation (Dependabot/Renovate) watching the loose
biobb_*version floors.
5. FAIR4RS metadata & portability¶
Create a
CITATION.cff(doesn’t exist yet).Mint a Zenodo DOI for easy academic citation: (1) org admin authorizes Zenodo for the NBDsoftware org, (2) enable the repo in Zenodo, (3) cut a GitHub Release → DOI auto-minted, (4) paste the concept-DOI into
CITATION.cffand a README badge.License: settled for now (CC BY-NC-SA 4.0 dual-license) — worth revisiting whether a more code-conventional license fits better long-term.
Build an Apptainer/Singularity or Docker image per release for one-command portable execution.