next up previous contents index
Next: model.randomize_xyz() randomize Up: The model class: handling Previous: model.pick_atoms() select   Contents   Index

model.pick_hot_atoms() -- pick atoms violating restraints

edat = <energy_data>   objective function parameters
viol_report_cut = <float:35> 4.5 4.5 4.5 4.5 4.5 4.5 4.5 4.5 4.5 4.5 4.5 4.5 4.5 999 999 999 999 4.5 4.5 4.5 4.5 4.5 4.5 999 6.5 4.5 4.5 4.5 4.5 4.5 999 999 999 4.5 4.5 cutoffs for selecting violated restraints
pick_hot_cutoff = <float:1> 4.0 radius for picking hot atoms
selection_mode = <str:1> 'ATOM' selecting what: 'ATOM' | 'RESIDUE'
extend_hot_spot = <int:1> 0 whether to extend hot spots
residue_span_range = <int:2> 0 99999 range of residues spanning the allowed distances; for MAKE_RESTRAINTS, PICK_RESTRAINTS, non-bonded dynamic pairs

Description:
This command selects those selected atoms (set 1) in the MODEL that should be optimized to remove hot spots in the MODEL; only selected restraints are considered.

More precisely, the command first flags violated selected atoms. An atom is violated if it is part of a violated restraint. A restraint of physical group $i$ (Table 4.5) is violated when its relative deviation from the optimal value is larger than specified in viol_report_cut[i]. For restraints that are based on probability density functions, relative violation is defined as the difference between the actual and the ideal values divided by the standard deviation (`relative heavy violation'); energy based restraints have ad hoc definition of violations (Table 4.3).

The command then flags those selected atoms that are within the pick_hot_cutoff angstroms of any of the already flagged atoms.

Next, if selection_mode is 'RESIDUE', all atoms in the residues that have at least one atom flagged are also flagged. In addition, the contiguous segments of flagged residues are extended for extend_hot_spot residues on either side.

This command is usually followed by the model.restraints.pick() and model.optimize() commands to select all the restraints that operate on selected (hot) atoms and optimize positions of these hot atoms.

Example: examples/commands/pick_hot_atoms.py


# Example for: model.pick_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, without preceding it with
# PICK_HOT_ATOMS).

env = environ()
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:
code = '1fas'
mdl = model(env, file=code)
aln = alignment(env)
aln.append_model(mdl, atom_files=code, align_codes=code)
aln.append_model(mdl, atom_files=code+'.ini', align_codes=code+'-ini')
mdl.generate_topology(aln, sequence=code+'-ini')
mdl.transfer_xyz(aln)
# Just to get some violations:
mdl.randomize_xyz(deviation=0.03)
# Create the bond length restraints and ignore the hard sphere overlap:
mdl.restraints.make(aln, restraint_type='bond', spline_on_site=False)
# Pick hot atoms and the corresponding violated and neighbouring restraints:
mdl.pick_hot_atoms(pick_hot_cutoff=4.0)
mdl.restraints.pick(add_restraints=False)
# Calculate the energy of the selected restraints and write them out in detail:
mdl.energy(output='VERY_LONG')


next up previous contents index
Next: model.randomize_xyz() randomize Up: The model class: handling Previous: model.pick_atoms() select   Contents   Index
Ben Webb 2006-02-28