Gordon Wells wrote: > Is it possible to impose symmetry restraints in automodel? I've tried the > following: > > def defsym(mdl, aln, seg1, seg2): > for (set,seg) in [(2,seg1), (3,seg2)]: > mdl.pick_atoms(aln, pick_atoms_set=set,selection_segment=seg, > atom_types='ALL',selection_status='INITIALIZE', > selection_search='SEGMENT') > mdl.symmetry.define(symmetry_weight=1.0,add_symmetry=(True,False)) > > segsize = 330 > class symmodel(automodel): > def special_restraints(self, aln): > defsym(self,aln,seg1=('1',str(segsize)), > seg2=(str(segsize+1),str(2*segsize))) > defsym(self,aln,seg1=(str(segsize+1),str(2*segsize)), > seg2=(str(2*segsize+1),str(3*segsize))) > > The commands are accepted, but have no effect on the final model.
That looks fine to me - you should definitely be able to impose symmetry restraints in automodel.
One thing to watch out for (which I can't check, because you didn't include the whole script): make sure you create a 'symmodel' object, not an 'automodel' one, otherwise you won't get your customized restraints. See http://salilab.org/modeller/manual/node31.html
Ben Webb, Modeller Caretaker