Skip to content

sieber-lab/AlphaFold3-GUI

Repository files navigation

AlphaFold3-GUI

AlphaFold3-GUI is a Streamlit app for building AlphaFold 3 input JSON files, including optional covalent ligand workflows from SMILES input.

It is designed for users who want a guided interface instead of manually editing JSON and mmCIF content.

Features

  • Build AlphaFold 3 input JSON for proteins, RNA, DNA, and ligands
  • Add multiple copies of entities with automatic label assignment (A, B, C, ...)
  • Enter polymer modifications/templates as JSON arrays
  • Generate covalent ligand userCCD content from a SMILES-derived ligand structure
  • Download the generated JSON directly from the UI

Quick Start

Prerequisites

  • Python 3.8+
  • AlphaFold 3 installed/configured separately (this repo only generates inputs)
  • Dependencies from requirements.txt

Install

git clone https://github.com/sieber-lab/AlphaFold3-GUI.git
cd AlphaFold3-GUI
pip install -r requirements.txt

Notes:

  • rdkit installation can be platform-dependent. If pip install fails, install RDKit via conda/mamba and then install the remaining requirements.

Run

streamlit run streamlit_app.py

Usage Guide

1. Job Details

  • Set a job name (used in the JSON and download filename)
  • Enter model seeds as comma-separated integers (invalid values are ignored with a warning)

2. Entity Counts

  • Choose how many protein, RNA, DNA, and ligand entities to add
  • The app will create input sections for each entity

3. Fill Entity Inputs

  • Protein / RNA / DNA: add sequences and optional modifications
  • Ligand: add a SMILES string or use the covalent workflow

4. Optional Covalent Ligand Workflow

The covalent workflow helps create a custom ligand and bond definition:

  1. Render the ligand from SMILES
  2. Define the leaving group (by bond indices or atom list)
  3. Choose the ligand atom that will remain bound
  4. Choose the protein/RNA/DNA entity and residue
  5. Enter the target atom name (CCD atom name on the biomolecule side)
  6. Finalize the bond to generate userCCD data

Covalent ligand workflow

5. Generate and Download JSON

  • Click Generate JSON
  • Review the JSON preview in the app
  • Click Download JSON and use the file as AlphaFold 3 input

Current Limitations

  • Covalent ligand mode currently supports one ligand with one copy at a time
  • The app validates common input issues, but it does not fully validate every AlphaFold 3 schema rule
  • userCCD export currently uses a single generated ligand definition

Repository Layout

  • streamlit_app.py — Streamlit UI and input flow
  • utils.py — JSON generation and ligand/mmCIF conversion helpers
  • seqs.py — sequence data model classes
  • requirements.txt — Python dependencies
  • monomers.cif — reference monomer definitions used by the project

Troubleshooting

  • RDKit errors while rendering a ligand

    • Check the SMILES string
    • Try a simpler ligand first
    • Some molecules may fail 3D embedding/optimization
  • Covalent options unavailable

    • Ensure at least one protein/RNA/DNA entity is defined
    • Use exactly one ligand with one copy for covalent mode
  • Invalid JSON array fields

    • Use valid JSON arrays such as [], [{"ptmType":"..."}], or [{"template":"..."}]

License

This project is licensed under the Apache License. See LICENSE.

About

AlphaFold3 GUI for easy creating covalent bonds, generating entities and exporting to JSON.

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages