[modeller_usage] Add rigid bodies and CA-CA restraints
To:
Subject: [modeller_usage] Add rigid bodies and CA-CA restraints
From: Gregoire Depret <>
Date: Tue, 10 Apr 2007 18:40:02 +0200
Organization: ULB
Hello,
I have built a model and I want it to satisfy some CA-CA restraints. In order
to do so, I've added some restraints with the command
"rsr.add(forms.gaussian(group=physical.xy_distance,feature=features.distance(at['CA:893:C'],at['CA:184:B']),mean=10.0,
stdev=0.1))"
and some restraints on secondary structure to avoid unwinding of alpha helix.
Actually these restraints caused kinks in alpha-helices that are known to span
the membrane.
To avoid that kind of kinks I want to treat the helices as rigid bodies.
First I tried to add rigid bodies in the same script
a = mymodel(env,
alnfile = 'align.pir', # alignment filename
knowns = '2OXS', # codes of the templates
sequence = 'mytemplate ') # code of the target
r = rigid_body(a.residue_range('180:B', '200:B'))
s = rigid_body(a.residue_range('890:C', '900:C'))
a.restraints.rigid_bodies.append(r)
a.restraints.rigid_bodies.append(s)
But in this case, MODELLER doesn't recognize the residue range, and raises
the error "No such Residues 180:B". I have checked in previous models; the
residues are there.
I also tried to start from an existing model and applied molecular dynamics
on it, like it is described in optimize.py. I have succeeded in defining the
rigid body on my initial model but the applied restraints aren't strong
enough to move my intitial model.
In addition the MD partially unwinds the secondary structure of my model.
Here is the script I used that differs from the manual.
# Keep residues 1-10 rigid:
r = rigid_body(mdl.residue_range('277:B', '318:B'))
s = rigid_body(mdl.residue_range('972:C', '1014:C'))
mdl.restraints.rigid_bodies.append(r)
mdl.restraints.rigid_bodies.append(s)
# Select all atoms:
atmsel = selection(mdl)
# Generate the restraints:
mdl.restraints.make(atmsel, restraint_type='stereo', spline_on_site=False)
mdl.restraints.write(file=code+'.rsr')
a = mdl.atoms
mdl.restraints.add(forms.upper_bound(group=physical.xy_distance,
feature=features.distance(a['CA:343:B'],
a['CA:986:C']),
mean=18., stdev=0.1))
Thus I have two questions :
Is it possible, in the same script, to add rigid body restraints and then do
the modelling or applying rigid bodies is only possible on an already
existing model?
To satisfy my restraints which approach is the best : add my CA-CA restraint,
my rigid body definition and make the homology modelling at the same time or
do a MD on an existing model?
Suggestions are welcome.
Many Thanks,
Depret Grégoire