A lightweight PySide6 desktop GUI for scoring protein binder structures with several external structural analysis tools:
- FoldX + Aggrescan3D
- PISA
- RosettaDock
- Weighted total score calculation
The GUI is designed for Rocky Linux workstation/server environments and focuses on batch scoring .pdb, .cif, and .mmcif structure files.
- Installation
- System Requirements
- First-run Configuration
- Running the App
- Input and Output
- Scoring Workflow
- Project Layout
- Acknowledgements
Clone or upload this project directory to your Rocky Linux machine.
Create a virtual environment and install Python dependencies:
cd binder_score_gui
python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txtIf your system does not already provide virtualenv support:
sudo dnf install -y python3 python3-pip python3-virtualenvThis project depends on external tools that are not installed through pip.
Required external programs:
- FoldX
- Aggrescan3D standalone command:
aggrescan - PDBe-KB PISA REST access
- RosettaDock binaries:
docking_prepack_protocoldocking_protocol
- Rosetta database
Python packages are listed in:
requirements.txt
Current Python dependencies:
- PySide6
- Biopython
- requests
Open the GUI and click Settings.
Configure the following paths/commands:
FoldX- FoldX executable used for
RepairPDBandStability
- FoldX executable used for
FoldX4 (A3D)- FoldX4 path used by local Aggrescan3D
A3D Activation- shell command used to activate the Aggrescan3D environment
- example:
module load miniforge3/25.3.0-3 && conda activate a3dDocking Prepack Protocol- path to
docking_prepack_protocol
- path to
Docking Protocol- path to
docking_protocol
- path to
Rosetta DB- path to the Rosetta database directory
Settings are stored locally in:
resources/settings.json
This file is intentionally ignored by Git because it contains machine-specific paths.
From the project root:
source .venv/bin/activate
python main.pyIf Qt reports DBus warnings in SSH/X11 or non-GNOME sessions, the app may still work normally. If the GUI does not open, try:
dbus-run-session -- python main.pyInput directory:
.pdb.cif.mmcif
The GUI requires:
- Target chain
- Design chain
- At least one selected scoring program
Default output:
<input_directory>/results.csv
The output file is tab-delimited even though the extension is .csv, so it opens cleanly in Excel.
Runtime intermediate files are written under:
_binder_score_gui/
Uses the design chain only.
For each input structure:
- Convert
.cif/.mmcifto PDB if needed. - Extract the design chain.
- Run FoldX:
foldx --command=RepairPDB --pdb=<design_chain.pdb>
foldx --command=Stability --pdb=<repaired_pdb>- Parse the FoldX Stability
.fxoutscore. - Run local Aggrescan3D:
aggrescan -i <design_chain.pdb> -w <work_dir> -D 10 -f <foldx4_path> -v 1- Calculate
A3D scoreas the sum of thescorecolumn inA3D.csv.
FoldX and Aggrescan3D jobs are run in parallel with a maximum concurrency of 5.
Uses target + design chains.
For each input structure:
- Convert
.cif/.mmcifto PDB if needed. - Extract target and design chains.
- Submit PDB files to the PDBe-KB PISA REST API in batches.
- Use the interface with the lowest
int_solv_energy.
Reported columns:
Interface areaInterface solvation Ep-value
PISA jobs are submitted with concurrency 5.
Uses target + design chains.
For each input structure:
- Convert
.cif/.mmcifto PDB if needed. - Extract target and design chains.
- Run prepack:
docking_prepack_protocol -s <input.pdb> -docking:partners <target>_<design>- Run 20 parallel docking jobs.
- Each docking job runs:
docking_protocol -s <prepack_pdb> -partners <target>_<design> -dock_pert 3 8 -nstruct 50This produces 1000 total docking structures per input.
Reported columns:
RosettaDock scoreInterface score
The best RosettaDock result is selected by minimum total_score; the matching I_sc is reported as Interface score.
Total score is calculated only when all required metrics are available:
- FoldX score
- A3D score
- Interface area
- Interface solvation E
- RosettaDock score
- Interface score
Direction:
Interface area: higher is better- All other metrics: lower is better
Weights:
- FoldX score:
0.1 - A3D score:
0.1 - Interface area:
0.1 - Interface solvation E:
0.1 - RosettaDock score:
0.4 - Interface score:
0.2
Reference statistics are stored in:
resources/total_score_reference.json
The current score scale is calibrated so the reference dataset roughly spans 0 to 100. Future values may go below 0 or above 100 if they fall outside the reference range.
binder_score_gui/
app/
main_window.py
services/
processor.py
widgets/
resources/
random_cats/
total_score_reference.json
reference_stats.json
scripts/
pisa_batch_dir_to_csv.py
a3d_batch_rest_async.py
main.py
README.md
requirements.txt
This GUI is a thin interface layer around external tools and services including:
- FoldX
- Aggrescan3D
- PDBe-KB PISA
- RosettaDock
Please follow the licenses, citation policies, and usage requirements of each upstream project.