A user-friendly web interface for submitting AlphaFold3 jobs to a Slurm-powered compute cluster. Built with Dash and Bootstrap, this app lets researchers with minimal computational background define protein, ligand, and ion entities, generate the necessary JSON input, and submit jobs.
- Intuitive UI: Add and configure entities (protein, ligand, ion) through dynamic cards.
- JSON Generation: One-click generation and pretty-printing of the
input.jsonfor AlphaFold3. - Downloadable Inputs: Download your JSON input named after your job if you need it.
- SLURM Submission: Automatically render and submit a Singularity-based Slurm script on longleaf.
- Job Tracking: View a Job History table with timestamps and download result archives (
.zip).
-
Clone the repository
git clone https://github.com/molecularmodelinglab/AF3_dashapp.git cd AF3_dashapp -
Create a virtual environment
python3 -m venv venv source venv/bin/activate -
Install dependencies
pip install -r requirements.txt
-
Run the app
python app.py
Then open your browser to
http://localhost:8050.
├── app.py # Entry point, wires layout + callbacks
├── layout.py # Defines Dash layout and custom components
├── callbacks.py # Dash callback registrations
├── helpers.py # File I/O, Slurm script rendering, job-directory logic
├── submission.py # AF3Submission model: validate & JSON serialization
├── assets/
│ └── style.css # Custom CSS for button effects, layout tweaks
├── templates/
│ └── submit_template.sh # Slurm + Singularity submission script template
├── jobs/ # (git-ignored) Per-job directories with inputs & results
├── tests/ # pytest suite for submission & helper modules
└── requirements.txt # Python dependencies
-
Submit Job
- Enter a Job Name and your Email for notifications.
- Click Add Entity to include proteins, ligands, or ions. Specify sequences or SMILES/CCD codes and bonded atom pairs.
- Click Generate JSON to preview the
input.json. - Click Download JSON to save the file if you need to.
- Finally, click Submit Job to render and dispatch the Slurm script. You’ll see a confirmation with your Slurm Job ID.
-
Job History
- Switch to the Job History tab.
- A table lists all completed runs with their timestamps.
- Click Download in any row to fetch the
<jobname>_<timestamp>.ziparchive of AlphaFold3 outputs.
We use pytest for unit tests of both the core AF3Submission model and the helper utilities.
# from the repo root
pytestAll tests live under tests/ and rely on built-in fixtures like tmp_path and monkeypatch for isolation.
Contributions, bug reports, and feature requests are welcome! Please:
- Fork the repo
- Create a feature branch (
git checkout -b feature/your-idea) - Commit your changes (
git commit -am 'Add new feature') - Push to the branch (
git push origin feature/your-idea) - Open a Pull Request
Please ensure new code is covered by tests and follows the existing style (run black . and flake8).
This project is licensed under the MIT License.