o.h.weiergraeber@fz-juelich.de wrote: > ------------------------------------------- > Traceback (most recent call last): > File "get-model2.py", line 42, in ? > a.make() # do homology modeling > File "/usr/local/modeller_9v4/modlib/modeller/automodel/automodel.py", line 98, in make > self.homcsr(exit_stage) > File "/usr/local/modeller_9v4/modlib/modeller/automodel/automodel.py", line 436, in homcsr > self.mkhomcsr(selection(self), aln) > File "/usr/local/modeller_9v4/modlib/modeller/automodel/automodel.py", line 524, in mkhomcsr > self.special_restraints(aln) > File "get-model2.py", line 23, in special_restraints > self.restraints.symmetry.append(symmetry(s1, s2, s3, s4, s5, s6, 1.0)) > TypeError: __init__() takes exactly 4 arguments (8 given) > ------------------------------------------- > > We are a bit lost here :( Which init call is the message referring to? > Any ideas how to resolve this?
It tells you in the traceback - line 23 of your script is causing the problem, where you try to set up your symmetry restraints:
self.restraints.symmetry.append(symmetry(s1, s2, s3, s4, s5, s6, 1.0))
As described in the manual, the symmetry restraint restrains a pair of sets of atoms. You can't just stick six sets in there and expect it to magically work. ;) You have to instead explicitly list the pairs you want to restrain. For example, for sets A through F, you could restrain A-B, A-C, A-D etc. or more or less equivalently A-B, B-C, C-D etc. The simplest way to do the latter would be with something like
self.restraints.symmetry.append(symmetry(s1, s2, 1.0)) self.restraints.symmetry.append(symmetry(s2, s3, 1.0)) ... self.restraints.symmetry.append(symmetry(s5, s6, 1.0))
Of course, you could write a little Python loop to do this more cleanly.
Ben Webb, Modeller Caretaker