# Example for: Selection.rotate_dihedrals() from modeller import * from modeller.scripts import complete_pdb # This will optimize and randomize dihedrals in a MODEL env = Environ() env.io.atom_files_directory = ['../atom_files'] env.libs.topology.read(file='$(LIB)/top_heav.lib') env.libs.parameters.read(file='$(LIB)/par.lib') # Select dihedral angle types for optimization and randomization: dih = 'phi psi omega chi1 chi2 chi3 chi4 chi5' # Read the sequence, get its topology and coordinates: mdl = complete_pdb(env, '1fas') # Select all atoms atmsel = Selection(mdl) atmsel.rotate_dihedrals(change='RANDOMIZE', deviation=90.0, dihedrals=dih) mdl.write(file='1fas.ini1') # Get restraints from somewhere and optimize dihedrals: mdl.restraints.make(atmsel, restraint_type='stereo', spline_on_site=False) atmsel.rotate_dihedrals(change='OPTIMIZE', deviation=90.0, dihedrals=dih) mdl.write(file='1fas.ini2')