Capri Criteria For Evaluating Docked Protein Complexes

In our lab we use Profit ( for the ligand and interface RMSD calculations. Depending on the complexity of your system this might be easy or not at all. The steps we take are:

1 – Define an interface region between both chains in the native structure. Basically, check for all atoms of chain A which atoms of chain B are within 10Å. This gives you a list of residues that are the interface for your complex. You can use Biopython ( and its NeighborSearch module, for a free and simple solution for this calculation.

2 – For two complexes, with one being the native, a simple script to calculation a fraction of contacts between these lists gives you FNAT.

3 – For interface RMSD, use this list of contacts to define ZONEs in profit. For example, if you find your interface is composed of residues 1,2,3,4,5,55,90,99,100, for chain A, you can define this:

REFE native.pdb
MOBI model.pdb
ZONE A55-A55
ZONE A90-A90
ZONE A99-A100

This FIT command will first align the structures and then calculate the RMSD, both only over those particular residues. This is the iRMSD.

4 – For ligand RMSD, the same rationale works, but since the point is to calculate the deviation of the ligand only, you first have to fit on the receptor and then NOT FIT on the ligand but only calculate the RMSD. Again, in Profit, and assuming chain A is the receptor and chain B is the ligand:

REFE native.pdb
MOBI model.pdb


The second value to be outputted is your ligand RMSD.

Oh, and since it’s only backbone, you can define that in profit with: ATOMS CA,C,N,O

While Pymol and VMD might give you approximate answers, Profit is much faster and more accurate. Also, it deals much better with exotic ligands and RNA/DNA. I found that pymol fails in this kind of complexes. Hope this helps!

Read more here: Source link