[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[modeller_usage] Add rigid bodies and CA-CA restraints



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