Exemple #1
0
    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()
Exemple #2
0
 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)