DeepFlex FlexAppeal 2.0
Private run · TOTP verified

About this analysis

What DeepFlex measures, and what it does not

DeepFlex reads a finished protein-ligand MD package and asks one question per complex: did the small molecule stay in its docked pose, and how well. It never configures or runs a simulation.

This measures pose stability, not affinity. The two correlate only moderately. A grade of A means the ligand held its docked pose over 20 ns; it does not mean the ligand binds tightly.

There is one trajectory per complex (1), so there is no independent estimate of run-to-run variance. S_conv is a within-run block-split proxy and is weaker evidence than agreeing replicas would be.

Residence time is a lower bound. With 20 ns and no observed exit, the only defensible statement is "no exit within 20 ns". No k_off is reported.

MM/GBSA is single-trajectory with igb=2 and no entropy term: useful for ranking within one receptor's cohort, not an absolute binding free energy. GB and PB disagree substantially in this package, so GB is scored and PB is displayed only.

No membrane. These are solvated receptor constructs, so behaviour at the lipid interface is not modelled.

Package statistics are over 27 complexes, not 30: 3 have no production trajectory upstream and are left ungraded.

Grade formula

S = 0.30 S_pose + 0.20 S_occ + 0.20 S_int + 0.15 S_E + 0.10 S_conv + 0.05 S_conf

conformation0.05
convergence0.1
energy0.15
interactions0.2
occupancy0.2
pose0.3

Bands: A ≥ 75.0, B 50.0 to 75.0, C below 50.0. Sub-bands at ±5.0. Weights are stored in the run manifest, so every grade is reproducible.

S_conf is not yet computed. Its weight is renormalised away rather than filled with a neutral value.

S_E is a percentile within one receptor, not across the package, and the receptors are ranked separately everywhere. Their poses sit in different pockets, and their GB energies differ by about 15 kcal/mol on average because of it, so a pooled percentile handed one receptor most of the top decile by construction. Scores are comparable inside a receptor; grades are comparable anywhere.

Equilibration. The scored window starts where pymbar detect_equilibration says the ligand RMSD series becomes stationary, floored at 2 ns and capped at 8 ns of the 20 ns run. A complex marked capped in the league tables is one where the detector wanted longer than the ceiling: it had not equilibrated, and its grade should be read as a lower bound. That applies to most of this package.

Simulation protocol (as harvested)

Engineamber/openmm
Force fieldff19SB + GAFF2
WaterTIP3P
Temperature298 K
Pressure1 bar
Timestep2 fs
Production20 ns, 10 ps spacing
Trajectories per complex1

Privacy

Ligand identifiers in every URL, filename, log line and database row are salted HMAC-SHA256 hashes. No SMILES or SDF or mol2 or compound code is stored or served: a build-time audit fails the build on any hit, and a pre-commit hook refuses any commit carrying chemistry.

PasswordsArgon2id
Second factorTOTP, mandatory
Registrationinvite only, no public route
SessionSecure, HttpOnly, SameSite=Strict
Idle timeout30 minutes
Lockout5 failures, 15 minutes
Rate limit10 logins per 15 minutes

Every route but this page requires a session, including the JSON endpoints and the structure files. Unknown account, wrong password and wrong code all return the same message after the same work, so the form cannot enumerate accounts.

Software

PackageVersion
MDAnalysis2.10.0
mdtraj1.11.2
numpy2.5.3
prolif2.2.2
pymbar4.2.0
python3.12.15
rdkit2026.03.5
scipy1.18.1
sklearn1.9.1