Hi,
I was trying to make a restriction to generate a covalent bond between NZ atom from Lisine  with C4 atom of PLP cofator.
I search Manual and modeler-List to find some clues about how to do, but USER restriction appears to be not supported by 9.13 version:

[flavios@localhost AlaninaRacemase-Saureus-T9]$ mod9.13 model-mult-simmetry-restr.py &
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
'import site' failed; use -v for traceback
Traceback (most recent call last):
  File "
model-mult-simmetry-restr.py", line 35, in ?
    a.make()
  File "/usr/lib/modeller9.13/modlib/modeller/automodel/automodel.py", line 103, in make
    self.rd_restraints()
  File "/usr/lib/modeller9.13/modlib/modeller/automodel/automodel.py", line 191, in rd_restraints
    self.restraints.append(file=self.csrfile)
  File "/usr/lib/modeller9.13/modlib/modeller/restraints.py", line 77, in append
    return _modeller.mod_restraints_read(self.__mdl.modpt, fh.file_pointer)
_modeller.ModellerError: rdcsrs__703E> USER restraints format is no longer supported.

My script contains model-mult-simmetry-restr.py contains:

# Homology modeling
from modeller import *              # Load standard Modeller classes
from modeller.automodel import *    # Load the automodel class

log.verbose()    # request verbose output
env = environ()  # create a new MODELLER environment to build this model in

# directories for input atom files
env.io.atom_files_directory = ['.', '../atom_files']

# Read in HETATM records from template PDBs
env.io.hetatm = True
env.io.water = True

class MyModel(automodel):
    def special_restraints(self, aln):
        rsr = self.restraints
        at = self.atoms
        # Constrain the A, B chains to be identical (but only restrain
        # the C-alpha atoms, to reduce the number of interatomic distances
        # that need to be calculated):
        s1 = selection(self.chains['A']).only_atom_types('CA')
        s2 = selection(self.chains['B']).only_atom_types('CA')
        self.restraints.symmetry.append(symmetry(s1, s2, 1))

    def user_after_single_model(self):
        # Report on symmetry violations greater than 1A after building
        # each model:
        self.restraints.symmetry.report(1.0)

a=MyModel(env, alnfile='AlRacem-mult.ali', knowns=('4A3Q', '1BD0'), sequence='AlRacem', csrfile='my.rsr', assess_methods=(assess.DOPE, assess.GA341))
a.starting_model = 1
a.ending_model = 1
a.make()

# Get a list of all successfully built models from a.outputs
ok_models = filter(lambda x: x['failure'] is None, a.outputs)
 
# Rank the models by DOPE score
key = 'DOPE score'
ok_models.sort(lambda a,b: cmp(a[key], b[key]))
 
# Get top model
m = ok_models[0]

print "Top model 1: %s (DOPE score %.3f)" % (m['name'], m[key])
m = ok_models[1]

print "Top model 2: %s (DOPE score %.3f)" % (m['name'], m[key])
m = ok_models[2]

print "Top model 3: %s (DOPE score %.3f)" % (m['name'], m[key])
m = ok_models[3]

print "Top model 4: %s (DOPE score %.3f)" % (m['name'], m[key])
m = ok_models[4]

print "Top model 5: %s (DOPE score %.3f)" % (m['name'], m[key])



my.rsr file contains:

MODELLER5 VERSION: USER FORMAT
R   3  1  1  1  2  2  0    1.5000    0.2000   NZ:38:A     C4:382:A
R   3  1  1  1  2  2  0    1.5000    0.2000   NZ:424:B    C4:768:B


I appreciate any help.

Best regards,

Flavio
 
-------------------------------------
Flavio Augusto Vicente Seixas
Laboratory of Structural Biochemistry
Department of Biochemistry
Universidade Estadual de Maringá, PR, Brazil
http://www.uem.br