FAIR4RS & Robustness Assessment¶
A review of how well biobb_md_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, git tags ( |
🟡 |
Accessible |
Repo + tags + |
🟢 |
Interoperable |
Standard formats in/out (PDB/GRO/TOP/XTC), YAML config, thin argparse CLIs, importable workflow functions. |
🟢 |
Reusable |
|
🟢 |
Robustness¶
Principle |
Reality in the repo |
Status |
|---|---|---|
Reproducibility |
All forks are pinned to fork-namespaced tags; other dependencies are version-pinned. |
🟢 |
Provenance |
configuration and absolute input paths are written per run; |
🟡 |
Environment portability |
Conda env files exist; deps + forks now pinned. No container yet. |
🟡 |
Modularity |
Genuinely modular at the BioBB-step level. |
🟡 |
Validation |
Step outputs are validated internally by the biobbs — each building block checks its own outputs. Remaining gaps are at the CLI boundary: no argparse |
🟡 |
Roadmap¶
1. Improve clarity of errors¶
Surface a clearer workflow-level message for the different failure modes.
2. Provenance¶
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 theformat/output_format/protonation-tool enums;--phbounds[0, 14]; convert “log-error-then-return” silent exits intoraise.Generalize the
md_gromacs.check_inputs()pattern to the other three workflows.
4. Testing & automation¶
Minimal GitHub Actions CI:
rufflint +pip install .One tiny end-to-end smoke test on a small system (reuse
tests/*/input.yml)Dependency automation (Dependabot/Renovate) watching the two forks.
5. FAIR4RS metadata & portability¶
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.CHANGELOG.md.License: settled — Explore other options more appropiate for code.
Build an Apptainer/Singularity image per release for one-command portable execution.