# Example for: selection.hot_atoms() # This will pick atoms violated by some restraints (bond length restraints # here), select restraints operating on violated atoms, and calculate the # energy for the selected restraints only (note that a list of violated # restraints can be obtained by the ENERGY command alone). from modeller import * from modeller.scripts import complete_pdb env = environ() env.io.atom_files_directory = ['../atom_files'] env.edat.dynamic_sphere = False env.libs.topology.read(file='$(LIB)/top_heav.lib') env.libs.parameters.read(file='$(LIB)/par.lib') # Read the sequence, calculate its topology and coordinates: mdl = complete_pdb(env, "1fas") # Just to get some violations: atmsel = selection(mdl) atmsel.randomize_xyz(deviation=0.06) # Create the bond length restraints and ignore the hard sphere overlap: mdl.restraints.make(atmsel, restraint_type='bond', spline_on_site=False) # Pick hot residues and the corresponding violated and neighboring restraints: atmsel = atmsel.hot_atoms(pick_hot_cutoff=4.0).by_residue() mdl.restraints.unpick_all() mdl.restraints.pick(atmsel) # Calculate the energy of the selected restraints and write them out in detail: atmsel.energy(output='VERY_LONG')