def init_callback(self, start, stop): MovieCallbacks.init_callback(self, start, stop) self.ensemble = Amber(self.prmtop, self.trajectory, None, None) self.frames_done = 0 if self.start > len(self.ensemble) or self.stop > len(self.ensemble): raise RuntimeError( "Cannot set start (%d) or stop (%d) greater than length of ensemble (%d)" % (self.start, self.stop, len(self.ensemble))) if self.start < 0 or self.stop < 0 or self.start >= stop: raise RuntimeError( "Cannot set start (%d) or stop (%d) to less than 0 or start greater than or equil to stop" % (self.start, self.stop)) self.frames_total = self.stop - self.start self.molecule = Trajectory.Ensemble(self.ensemble) self.molecule.CreateMolecule() self.molecule.LoadFrame(1) self.molecule.AddMolecule() self.refmolecule = Trajectory.Ensemble(self.ensemble) self.refmolecule.CreateMolecule() self.refmolecule.LoadFrame(1) self.refmolecule.AddMolecule() Midas.turn("x", -25) Midas.turn("z", 25) Midas.turn("y", 40) Midas.undisplay("#1") Midas.ribbon("#0") Midas.undisplay("#0") Midas.ribcolor("red", "#0:/isHelix") Midas.ribcolor("blue", "#0:/isSheet") Midas.window("#1") Midas.scale(2) Midas.wait(1) self.t0 = time.time()
def __init__(self, ensemble, **kw): self.title = "MD Movie: %s" % ensemble.name self.ensemble = ensemble self.model = Trajectory.Ensemble(self.ensemble) self.model.CreateMolecule() endFrame = ensemble.endFrame if endFrame == "pipe": fn = 1 while True: replyobj.status("Loading trajectory from pipe:" " frame %d\n" % fn) try: self.model.LoadFrame(fn, makeCurrent=False) except NoFrameError: break fn += 1 replyobj.status("Loading trajectory from pipe: done\n") endFrame = fn - 1 if ensemble.startFrame == None: self.startFrame = 1 else: self.startFrame = ensemble.startFrame if self.startFrame > len(ensemble): replyobj.warning("Start frame > number of" " trajectory frames; changing start" " frame to 1\n") self.startFrame = 1 if endFrame == None: self.endFrame = len(ensemble) else: self.endFrame = endFrame if self.endFrame > len(ensemble): replyobj.warning("End frame > number of" " trajectory frames; changing end" " frame to last frame\n") self.endFrame = len(ensemble) self.molTrigID = chimera.triggers.addHandler("Molecule", self._molTrigCB, None) self.openOpts = kw self._inTriggerCB = False ModelessDialog.__init__(self) del self.openOpts chimera.extension.manager.registerInstance(self)