An AMBER GPU rescoring pipeline for docked poses, with the scoring and
analysis tools around it: minimise/rescore each pose with pmemd.cuda, then
recompute ligand / binding-site RMSD and Fnat (fraction of native
contacts), rank the poses, and summarise how the receptor-conformation ensemble
performs. Works downstream of AutoDock, Vina and GNINA docking.
No absolute paths are hard-coded: tool locations default to
$HOME/...in the pipeline scripts - edit them for your environment.
- AmberTools + Amber (
pmemd.cuda,cpptraj) for rescoring - VMD for RMSD / Fnat scoring
- MGLTools, AutoDock/Vina/GNINA for the redocking (
opt1) steps - Python 3 (
numpy,pandas) for the merge / population / analysis scripts
docked poses ─▶ full_pipeline_gpu*.sh ─▶ AMBER GPU min/rescore (pmemd.cuda)
│
reorder_ref_to_<engine>.tcl ─┐ ▼
calc_bs_lig_rmsd_<engine>.sh ─┴▶ ligand / BS RMSD ┐
calc_fnat*.tcl ─────▶ Fnat ┼▶ merge_rmsds.py
┘ │
cluster_ranking.py / population_*.py ◀─┘
| Script | Purpose |
|---|---|
full_pipeline_gpu.sh |
Full AMBER GPU (pmemd.cuda) rescoring of docked poses |
full_pipeline_gpu_apo.sh |
Same, for apo/unbound-receptor docking |
full_pipeline_gpu_opt1_autodock.sh / _vina.sh / _gnina.sh |
AMBER "opt1" rescoring + engine-specific --local_only redocking |
run_vina_X_opt1.sh / run_gnina_X_opt1.sh |
Config wrappers for the Vina / GNINA opt1 redocking |
generate_opt1_pdb.sh |
Build com_opt1.pdb complexes from the AMBER opt1.rst7 outputs |
| Script | Purpose |
|---|---|
calc_fnat.tcl |
Fnat of one complex (ref.pdb vs complex_rec.pdb) |
calc_fnat_all-poses.tcl |
Fnat of every pose in a concatenated concat.pdb |
calc_bs_lig_rmsd_autodock.sh / _vina.sh / _gnina.sh / _autodock-apo.sh |
Binding-site + ligand RMSD, per docking engine |
calc_RMSD_lig-complex.tcl |
VMD ligand / complex RMSD template |
cpptraj_rmsd.sh |
cpptraj RMSD driver |
reorder_ref_to_autodock.tcl / _vina.tcl / _gnina.tcl / _autodock-apo.tcl |
Reorder reference atoms to each engine's atom order (for correct RMSD) |
Fnat scripts consolidated. The original per-ligand Fnat scripts (ADP, AMP, AP5, B4P, G5P, GP5, …) are replaced by the two
calc_fnat*.tclabove - setligname(and optionallyligresid) at the top instead of using a separate file per ligand.
| Script | Purpose |
|---|---|
merge_rmsds.py / merge_rmsds-apo.py |
Merge the RMSD tracks into one table |
filtered-rmsd-2.5.sh |
Keep poses under an RMSD threshold (2.5 Å) |
cluster_ranking.py |
Rank cpptraj clusters by average top-N score |
population_HM.sh |
Fraction of receptor models giving a near-native pose (BS-RMSD < cutoff) |
population_rmsd-energy.py |
Population analysis over RMSD vs energy |
analyze_reps.py |
Analyse per-cluster representative poses |
| Script | Purpose |
|---|---|
docking.sh |
AutoDock docking driver (MGLTools + AutoGrid) |
bs_dim_center.tcl |
Binding-site box center + dimensions |
create_concat_autodock.tcl |
Concatenate AutoDock poses into a multi-MODEL PDB |
prepare_ref_gnina.sh |
Prepare the reference for GNINA scoring |
fix_gnina_lig.py |
Fix GNINA ligand output for downstream tools |
MIT - see LICENSE.