Selection.assess_dope() — assess a model selection with the DOPE method

assess_dope(**vars)

Output:
molpdf

This command assesses the quality of the selected atoms in the model using the DOPE (Discrete Optimized Protein Energy) method [Shen & Šali, 2006]. (See Selection.assess() for assessment with SOAP and other potentials.) This is a statistical potential optimized for model assessment. As with Model.assess_ga341(), the benchmark set used to develop this method contained only single-chain proteins, and thus no guarantees can be made about the applicability of the method to multiple-chain systems.

DOPE uses the standard MODELLER energy function, so any of the arguments accepted by Selection.energy() can also be used here. (Note also that the model's topology must be set up in order to calculate the energy, which can be done for you by the complete_pdb() script.)

Only the DOPE energy itself is returned by this command (all other components of the MODELLER energy function, such as stereochemical restraints, Lennard-Jones interactions, homology-derived restraints, etc, are ignored) unless you manually set schedule_scale. See Selection.energy() for more details. Note that the assessment uses a custom EnergyData object, so any changes you make to the selection's EnergyData (e.g., changing the EnergyData.contact_shell cutoff distance or setting EnergyData.nonbonded_sel_atoms) will not be honored. Note also that any intra-rigid body distances are not considered as part of the DOPE assessment (see Section 5.3.4), so if you have any defined rigid bodies, you may want to consider turning them off before requesting this assessment.

The DOPE model score is designed for selecting the best structure from a collection of models built by MODELLER. (For example, you could build multiple AutoModel models by setting AutoModel.ending_model, and select the model that returns the lowest DOPE score.) The score is unnormalized with respect to the protein size and has an arbitrary scale, therefore scores from different proteins cannot be compared directly. If you wish to do this, use Model.assess_normalized_dope() instead, which returns a Z-score.

When using AutoModel or LoopModel, automatic DOPE assessment of each model can be requested by adding assess.DOPE to AutoModel.assess_methods or LoopModel.loop.assess_methods respectively.

Example: examples/assessment/assess_dope.py

# Example for: Selection.assess_dope()

from modeller import *
from modeller.scripts import complete_pdb

env = Environ()
env.libs.topology.read(file='$(LIB)/top_heav.lib')
env.libs.parameters.read(file='$(LIB)/par.lib')

# Read a model previously generated by Modeller's AutoModel class
mdl = complete_pdb(env, '../atom_files/1fdx.B99990001.pdb')

# Select all atoms in the first chain
atmsel = Selection(mdl.chains[0])

score = atmsel.assess_dope()