Open OnDemand app for launching protein design workflows through a researcher-friendly web interface backed by Nextflow pipelines and institution-specific HPC configuration.
For questions about this app or its deployment, contact @jscgh.
- Launches protein design workflows from a web UI
- Hides workflow complexity behind structured form inputs
- Dispatches jobs to different Nextflow pipelines based on workflow selection
- Separates site-specific configuration from app logic for easier portability
This app was built to make advanced protein design workflows easier to use for researchers who should not need to work directly with pipeline internals, scheduler settings, or environment-specific runtime details.
- ProteinDJ (
proteindj) - BindFlow (
bindflow)
- Select workflow from the form dropdown.
- JavaScript hides irrelevant fields and updates required validation dynamically.
- Submission script dispatches to the matching Nextflow pipeline.
- This wrapper app is licensed under MIT. See
LICENSE. - Third-party workflow/license notices are documented in
THIRD_PARTY_NOTICES.md. - Runtime workflows (BindFlow and ProteinDJ) have their own license and citation requirements.
- Upstream documentation indicates PyRosetta licensing obligations may apply, especially for commercial usage.
To adapt the app for another institution:
- Copy
.env.exampletotemplate/.env. - Set the runtime variables in
template/.envfor results URLs, caches, and workflow-specific pipeline locations. - Adjust the portal-side defaults at the top of the ERB files for cluster, queue, and other pre-submit settings.
- Prefer updating
template/.envover editing the app templates directly so local site customisations stay isolated from upstream logic.
Portal rendering and job runtime are configured differently:
- portal-side defaults live at the top of
form.yml.erb,submit.yml.erb,info.html.erb,completed.html.erb, andview.html.erb - runtime config lives in
template/.env, which is intentionally gitignored
For CI/CD, prefer generating template/.env during deployment from site-managed config or secrets rather than committing a real site config file to the repository.
Core overrides:
PROTEINDESIGN_NATIVE_DEFAULTOOD_RESULTS_URL_BASEPROTEINDESIGN_MOLSTAR_URL_TEMPLATEPROTEINDESIGN_BIND_BASEDIRPROTEINDESIGN_BIND_OUT_DIRPROTEINDESIGN_BIND_WORK_DIRPROTEINDESIGN_BIND_REPOSITORYPROTEINDESIGN_BIND_REVISIONPROTEINDESIGN_BIND_NEXTFLOW_CONFIGPROTEINDESIGN_PDJ_BASEDIRPROTEINDESIGN_PDJ_OUT_DIRPROTEINDESIGN_PDJ_WORK_DIRPROTEINDESIGN_PDJ_REPOSITORYPROTEINDESIGN_PDJ_REVISIONPROTEINDESIGN_PDJ_NEXTFLOW_CONFIGDEBUGGROUP: group applied recursively to failed-run capturesBASE_DEBUGDIR: parent directory for captures namedproteindesign_<workflow>_<timestamp>_<user>ENABLE_METRICS: set tofalseto disable launch-metadata recordsMETRICS_DIRECTORY: parent directory for monthly launch-metadata JSON files
On failure, the job captures session files and the configured Nextflow work
directory under BASE_DEBUGDIR. Each capture includes debug-metadata.txt
with the job ID, host, selected workflow, session/work paths, and exit code.
When enabled, metrics are written before the workflow starts. Each record is
identified as app: ood-proteindesign, includes the selected workflow, and
records the resolved repository, revision, config, common design inputs, and
the backend-specific Nextflow arguments. Metrics collection is best-effort and
does not fail a design job if the metrics directory is unavailable.