def __init__(self, src_path=None): self.currentPanelId = -1 self.panels = [] self.unique_id = 0 ModelessDialog.__init__(self) self.NULL_PANEL = Panel(-1, self, name="") self.NULL_PANEL.cmdStack.delB.configure(state="disabled") self.NULL_PANEL.cmdStack.addB.configure(state="disabled") self.NULL_PANEL.undoStack.delB.configure(state="disabled") self.NULL_PANEL.undoStack.addB.configure(state="disabled") self.refreshPanelInfo(-1) self.save_path = None self.updateWindowTitle() self.gTitleOption.set("Chimera Demo") if src_path: self.loadDemo(src_path) self.setSavePath(src_path) self.updateWindowTitle() self._toplevel.bind('<KeyRelease>', self.keyReleaseCB) self._DIRTY = False self._cached_save = None
def __init__(self, residue, resType, lib, sessionData=None): self._sesHandlerID = chimera.triggers.addHandler( SAVE_SESSION, self._sessionCB, None) self.residue = residue self.lib = lib self.resType = resType self.title = "%s Side-Chain Rotamers" % residue if sessionData: self.bbdep, self.rotamers, self.tableData = sessionData else: from Rotamers import getRotamers self.bbdep, self.rotamers = getRotamers(residue, log=True, lib=lib, resType=resType) from Midas import linewidth, color linewidth(2, self.rotamers) color('byhet', self.rotamers) chimera.openModels.add(self.rotamers, sameAs=residue.molecule, hidden=True, noprefs=True) registerAttribute(chimera.Molecule, "chis") registerAttribute(chimera.Molecule, "rotamerProb") self.tableData = None self.resHandlerID = chimera.triggers.addHandler( 'Residue', self._resChangeCB, None) self.dependentDialogInfo = [('Clashes', 'clash'), ('H-Bonds', 'hbond'), ('Density', 'volume')] for label, ddn in self.dependentDialogInfo: setattr(self, ddn + "Dialog", None) ModelessDialog.__init__(self)
def __init__(self, models): self.models = models if len(models) > 1: self.title = "Add Note to %d Models" % (len(models)) else: self.title = "Add Note to %s" % models[0].name ModelessDialog.__init__(self)
def __init__(self, residue, resType, lib, sessionData=None): self._sesHandlerID = chimera.triggers.addHandler(SAVE_SESSION, self._sessionCB, None) self.residue = residue self.lib = lib self.resType = resType self.title = "%s Side-Chain Rotamers" % residue if sessionData: self.bbdep, self.rotamers, self.tableData = sessionData else: from Rotamers import getRotamers self.bbdep, self.rotamers = getRotamers(residue, log=True, lib=lib, resType=resType) from Midas import linewidth, color linewidth(2, self.rotamers) color('byhet', self.rotamers) chimera.openModels.add(self.rotamers, sameAs=residue.molecule, hidden=True, noprefs=True) registerAttribute(chimera.Molecule, "chis") registerAttribute(chimera.Molecule, "rotamerProb") self.tableData = None self.resHandlerID = chimera.triggers.addHandler( 'Residue', self._resChangeCB, None) self.dependentDialogInfo = [('Clashes', 'clash'), ('H-Bonds', 'hbond'), ('Density', 'volume')] for label, ddn in self.dependentDialogInfo: setattr(self, ddn + "Dialog", None) ModelessDialog.__init__(self)
def __init__(self): self.director = None self.this_dir = os.path.split(os.path.abspath(__file__))[0] ModelessDialog.__init__(self) self.cache_width = None self.cache_height = None ## get the width and height when the frame options are expanded self.frmOptionsFrame.grid(row=FRM_OPTS_ROW ,column=0, columnspan=3, sticky='nsew') chimera.tkgui.app.update_idletasks() self.frm_width, self.frm_height = \ (self.frmOptionsFrame.winfo_width(), self.frmOptionsFrame.winfo_height()) self.frmOptionsFrame.grid_forget() chimera.tkgui.app.update_idletasks() ## get the width and height when the movie options are expanded self.movOptionsFrame.grid(row=MOV_OPTS_ROW,column=0, columnspan=3, sticky='nsew') chimera.tkgui.app.update_idletasks() self.mov_width, self.mov_height = \ (self.movOptionsFrame.winfo_width(), self.movOptionsFrame.winfo_height()) self.movOptionsFrame.grid_forget() chimera.tkgui.app.update_idletasks() w,h = map(int,self.getCurrentDimensions()) self._toplevel.wm_geometry('%sx%s' % (w+30,h+20)) #self.director.adjustGfxSize() chimera.tkgui.app.after(1000, self.showStatus, "Click the record button to start capturing frames")
def destroy(self): self.mainDialog = None if self.readScriptDialog: self.readScriptDialog.destroy() if self.saveDialog: self.saveDialog.destroy() ModelessDialog.destroy(self)
def destroy(self): self.mainDialog = None if self.readScriptDialog: self.readScriptDialog.destroy() if self.saveDialog: self.saveDialog.destroy() ModelessDialog.destroy(self)
def __init__(self, mol=None, seq=None, blastData=None, sessionData=None): self.loaded = {} self.reference = mol if isinstance(self.reference, StructureSequence): self.molecule = self.reference.molecule elif isinstance(self.reference, Molecule): self.molecule = self.reference self.sequence = seq # for session data only if seq is None: self.seq, self.refResList = self._makeSeq(mol) else: self.seq = seq if self.reference: seq, resList = self._makeSeq(mol) self.refResList = self._getResidues(self.seq, seq, resList) if blastData: self.initBlast(*blastData) else: self.initSession(*sessionData) self.title = "Blast: %s" % self.basename ModelessDialog.__init__(self) if not blastData: self._updateLoadButton() if self.molecule: self.closeHandler = chimera.openModels.addRemoveHandler( self._modelClosedCB, None) else: self.closeHandler = None self.sesHandler = chimera.triggers.addHandler( SAVE_SESSION, self._sessionCB, None) chimera.extension.manager.registerInstance(self)
def __init__(self, src_path = None): self.currentPanelId = -1 self.panels = [] self.unique_id = 0 ModelessDialog.__init__(self) self.NULL_PANEL = Panel(-1, self, name="") self.NULL_PANEL.cmdStack.delB.configure(state="disabled") self.NULL_PANEL.cmdStack.addB.configure(state="disabled") self.NULL_PANEL.undoStack.delB.configure(state="disabled") self.NULL_PANEL.undoStack.addB.configure(state="disabled") self.refreshPanelInfo(-1) self.save_path = None self.updateWindowTitle() self.gTitleOption.set("Chimera Demo") if src_path: self.loadDemo(src_path) self.setSavePath(src_path) self.updateWindowTitle() self._toplevel.bind('<KeyRelease>', self.keyReleaseCB) self._DIRTY = False self._cached_save = None
def __init__(self, models): self.models = models if len(models) > 1: self.title = "Add Note to %d Models" % (len(models)) else: self.title = "Add Note to %s" % models[0].name ModelessDialog.__init__(self)
def __init__(self, sessionData=None, *args, **kw): self.pausetime = 0.5 #time to wait between submitting a command and checking for output/refreshing the text (seconds) self.starttime = time.time() self.latvectime = time.time() dir, file = os.path.split(__file__) icon = os.path.join(dir, 'Lev00Logo.tiff') chimera.tkgui.app.toolbar.add( icon, lambda d=chimera.dialogs.display, n=Lev00Dialog.name: d(n), 'Run Lev00', None) self.App = "Lev00" self.fulltext = "" self.toption = 0 ModelessDialog.__init__(self, *args, **kw) print "In init" self.home = os.path.expanduser("~") self.appdir = self.home + "/." + self.App #check for ~/.Lev00. If it doesn't exist, create it if not (os.path.isdir(self.appdir)): print "Making ", self.appdir os.mkdir(self.appdir) self.getShell() #Look for the Lev00 root directory. Prompt user if necessary self.getappdir() #self.rootdir="/Users/ggibb2/Projects/CP2k/lev00_3.49" #Ask user to select the working directory self.getWorkingDir() # Create lev00 process self.ChimeraInterface = tetr_lev00_Chimera_plugin.Lev00( self.rootdir, self.wkdir, self.myshell) self.wdirlabel.config(text="wkdir= '" + self.wkdir + "'") # Create variable to store Lev00 output self.ChimeraInterfaceOutput = Tk.StringVar() time.sleep(self.pausetime) #Update the Lev00 text on screen self.updateText(self.ChimeraInterface.getOutput()) #load 'geom.xyz' self.ChimeraInterface.refreshGeom() #set view options to those selected in the GUI self.SetViewOption() self.timer()
def __init__(self, model): self.title = 'PDB Headers for %s' % model.name self.model = model from chimera import preferences self.prefs = preferences.addCategory("PDB headers dialog", preferences.HiddenCategory, optDict={"ordering": "Alphabetical"}) ModelessDialog.__init__(self)
def __init__(self, models): self.models = models if len(models) > 1: name = "Multiple Models" else: name = models[0].name self.title = "Compute Secondary Structure for %s" % name ModelessDialog.__init__(self)
def __init__(self, models): self.models = models if len(models) > 1: name = "Multiple Models" else: name = models[0].name self.title = "Set Transformation of %s" % name ModelessDialog.__init__(self)
def __init__(self, models): self.models = models if len(models) > 1: name = "Multiple Models" else: name = models[0].name self.title = "Compute Secondary Structure for %s" % name ModelessDialog.__init__(self)
def destroy(self): self.mav.triggers.deleteHandler(ADD_ASSOC, self.addAssocHandlerID) self.mav.triggers.deleteHandler(DEL_ASSOC, self.delAssocHandlerID) self.mav = None chimera.openModels.deleteAddHandler(self.addHandlerID) chimera.openModels.deleteRemoveHandler(self.removeHandlerID) ModelessDialog.destroy(self)
def destroy(self, *args): self.mouseLabelingVar.set(True) self.mouseModeButton.invoke() chimera.triggers.deleteHandler(SAVE_SESSION, self._sessionHandlerID) chimera.triggers.deleteHandler(CLOSE_SESSION, self._closeHandlerID) chimera.triggers.deleteHandler(BEGIN_RESTORE_SESSION, self._beginRestoreHandlerID) chimera.openModels.close([self.model, self.keyModel]) ModelessDialog.destroy(self)
def destroy(self): chimera.triggers.deleteHandler('Residue', self.resHandlerID) chimera.triggers.deleteHandler(SAVE_SESSION, self._sesHandlerID) chimera.openModels.close(self.rotamers) for label, ddn in self.dependentDialogInfo: dd = getattr(self, ddn + 'Dialog', None) if dd: dd.destroy() ModelessDialog.destroy(self)
def destroy(self): chimera.triggers.deleteHandler('Residue', self.resHandlerID) chimera.triggers.deleteHandler(SAVE_SESSION, self._sesHandlerID) chimera.openModels.close(self.rotamers) for label, ddn in self.dependentDialogInfo: dd = getattr(self, ddn + 'Dialog', None) if dd: dd.destroy() ModelessDialog.destroy(self)
def __init__(self, model): self.title = 'PDB Headers for %s' % model.name self.model = model from chimera import preferences self.prefs = preferences.addCategory( "PDB headers dialog", preferences.HiddenCategory, optDict={"ordering": "Alphabetical"}) ModelessDialog.__init__(self)
def __init__(self, title="Add Hydrogens", models=None, useHBonds=None, cb=None, **kw): self.title = title self.cb = cb self.startModels = models if useHBonds is None: self.startUseHBonds = prefs[HBOND_GUIDED] else: self.startUseHBonds = useHBonds ModelessDialog.__init__(self, **kw)
def __init__(self, cb, unchargedResidues, unchargedAtoms, method, status, gaffType, showCharges=False): self.cb = cb self.unchargedResidues = unchargedResidues self.unchargedAtoms = unchargedAtoms self.status = status self.method = method self.gaffType = gaffType self.showCharges = showCharges ModelessDialog.__init__(self)
def __init__(self, modelList, subSelection, *args, **kw): from chimera import preferences self._removeHandler = None for m in modelList: m.preclusterColor = m.color self.subSelection = subSelection self._cluster(modelList) ModelessDialog.__init__(self, *args, **kw) chimera.extension.manager.registerInstance(self) self._removeHandler = chimera.openModels.addRemoveHandler( self._modelsChanged, None)
def __init__(self, movie, startFrame, stride, endFrame, useSel, ignoreBulk, ignoreHyds): self.movie = movie self.movie.subdialogs.append(self) self.startFrame = startFrame self.stride = stride self.endFrame = endFrame self.useSel = useSel self.ignoreBulk = ignoreBulk self.ignoreHyds = ignoreHyds ModelessDialog.__init__(self)
def __init__(self, movie, startFrame, stride, endFrame, useSel, ignoreBulk, ignoreHyds): self.movie = movie self.movie.subdialogs.append(self) self.startFrame = startFrame self.stride = stride self.endFrame = endFrame self.useSel = useSel self.ignoreBulk = ignoreBulk self.ignoreHyds = ignoreHyds ModelessDialog.__init__(self)
def __init__(self, groupPanel): self.groupPanel = groupPanel options = { "shownButs": {}, "executionList": ['attributes...'], "shownColumns": {} } self.prefs = preferences.addCategory("Pseudobond Group Panel", preferences.HiddenCategory, optDict=options) ModelessDialog.__init__(self)
def __init__(self, modelList, subSelection, *args, **kw): from chimera import preferences self._removeHandler = None for m in modelList: m.preclusterColor = m.color self.subSelection = subSelection self._cluster(modelList) ModelessDialog.__init__(self, *args, **kw) chimera.extension.manager.registerInstance(self) self._removeHandler = chimera.openModels.addRemoveHandler( self._modelsChanged, None)
def __init__(self, groupPanel): self.groupPanel = groupPanel options = { "shownButs": {}, "executionList": ['attributes...'], "shownColumns": {} } self.prefs = preferences.addCategory("Pseudobond Group Panel", preferences.HiddenCategory, optDict=options) ModelessDialog.__init__(self)
def destroy(self, *args): self.mouseLabelingVar.set(True) self.mouseModeButton.invoke() chimera.triggers.deleteHandler(SAVE_SESSION, self._sessionHandlerID) chimera.triggers.deleteHandler(CLOSE_SESSION, self._closeHandlerID) chimera.triggers.deleteHandler(BEGIN_RESTORE_SESSION, self._beginRestoreHandlerID) chimera.openModels.close([self.model, self.keyModel]) ModelessDialog.destroy(self)
def __init__(self, modelPanel): self.modelPanel = modelPanel options = { "freqButs": {}, "executionList": ['attributes...'], "shownColumns": {}, "showColor": False, "lastUse": None } self.prefs = preferences.addCategory("Model Panel", preferences.HiddenCategory, optDict=options) ModelessDialog.__init__(self)
def __init__(self, modelPanel): self.modelPanel = modelPanel options = { "freqButs": {}, "executionList": ['attributes...'], "shownColumns": {}, "showColor": False, "lastUse": None } self.prefs = preferences.addCategory("Model Panel", preferences.HiddenCategory, optDict=options) ModelessDialog.__init__(self)
def destroy(self): self.regionListing.hlist._widgetCache.clear() self.seqCanvas.mav.triggers.deleteHandler(DEL_ASSOC, self.delAssocHandlerID) if hasattr(self,'_selChangeHandler') and self._selChangeHandler: chimera.triggers.deleteHandler("selection changed", self._selChangeHandler) if self._scfDialog: self._scfDialog.destroy() self._scfDialog = None for rd in self.renameDialogs.values(): rd.destroy() self.renameDialogs.clear() ModelessDialog.destroy(self)
def __init__(self, name, molList, tableData=None): self.title = "ModBase: %s" % name self.molList = molList self.tableData = tableData ModelessDialog.__init__(self) self.closeHandler = chimera.openModels.addRemoveHandler( self._modelClosedCB, None) self.selHandler = chimera.triggers.addHandler( "selection changed", self._selectionChangedCB, None) self.sesHandler = chimera.triggers.addHandler( SAVE_SESSION, self._sessionCB, None) chimera.extension.manager.registerInstance(self)
def __init__(self, title="Add Hydrogens", models=None, useHBonds=None, cb=None, **kw): self.title = title self.cb = cb self.startModels = models if useHBonds is None: self.startUseHBonds = prefs[HBOND_GUIDED] else: self.startUseHBonds = useHBonds ModelessDialog.__init__(self, **kw)
def __init__(self, process=None, models=None, chargeModel=None, cb=None, **kw): if process: self.title = "Assign Charges for %s" % process.title() else: from AddCharge import process self.process = process self.cb = cb self.startModels = models if not chargeModel: from AddCharge import defaultChargeModel chargeModel = defaultChargeModel self.initialChargeModel = chargeModel ModelessDialog.__init__(self, **kw)
def __init__(self, parent=None, mode='atoms'): # Check self.title = 'Select {}'.format(mode) self.mode = mode # Fire up ModelessDialog.__init__(self) if not chimera.nogui: # avoid useless errors during development chimera.extension.manager.registerInstance(self) # Fix styles self._fix_styles(*self.buttonWidgets.values()) self._toplevel.attributes('-topmost', True) self._toplevel.resizable(width=True, height=False)
def __init__(self, movie, startFrame, stride, endFrame, useSel, minRmsd, maxRmsd, ignoreBulk, ignoreHyds, recolor): self.movie = movie self.movie.subdialogs.append(self) self.startFrame = startFrame self.stride = stride self.endFrame = endFrame self.useSel = useSel self.minRmsd = minRmsd self.maxRmsd = maxRmsd self.ignoreBulk = ignoreBulk self.ignoreHyds = ignoreHyds self.recolor = recolor self.title = self.titleFmt % (minRmsd, maxRmsd) ModelessDialog.__init__(self)
def __init__(self, movie, startFrame, stride, endFrame, useSel, minRmsd, maxRmsd, ignoreBulk, ignoreHyds, recolor): self.movie = movie self.movie.subdialogs.append(self) self.startFrame = startFrame self.stride = stride self.endFrame = endFrame self.useSel = useSel self.minRmsd = minRmsd self.maxRmsd = maxRmsd self.ignoreBulk = ignoreBulk self.ignoreHyds = ignoreHyds self.recolor = recolor self.title = self.titleFmt % (minRmsd, maxRmsd) ModelessDialog.__init__(self)
def __init__(self, name, cavities, sessionData=None): self.title = "CASTp: %s" % name self.cavities = cavities from weakref import proxy def wrapper(s=proxy(self)): s._cavityChangeCB() for cav in cavities: cav.pocketInfo["atoms"].selChangedCB = wrapper cav.mouthInfo["atoms"].selChangedCB = wrapper if sessionData: self.tableData = sessionData else: self.tableData = None ModelessDialog.__init__(self) chimera.extension.manager.registerInstance(self)
def __init__(self, model): self.model = model self.setInCallback = False self.title = "%s attributes (model %s)" % ( readableName(model), model.oslIdent()[1:]) self.triggers = [('Model', chimera.triggers.addHandler( 'Model', self._refreshCB, None))] self.refreshFuncs = {} self.refreshFuncs['Model'] = [] if isinstance(self.model, chimera.Molecule) \ and len(self.model.pdbHeaders) > 0: self.buttons = self.buttons + ["PDB Headers..."] ModelessDialog.__init__(self)
def __init__(self, group): self.group = group self.setInCallback = 0 if group.category: self.title = "%s attributes" % _mapName(group) self.triggers = [('PseudoBondGroup', chimera.triggers.addHandler('PseudoBondGroup', self._refreshCB, None)), ('PseudoBond', chimera.triggers.addHandler('PseudoBond', self._refreshCB, None))] self.refreshFuncs = {} self.refreshFuncs['PseudoBondGroup'] = [] self.refreshFuncs['PseudoBond'] = [] ModelessDialog.__init__(self)
def __init__(self, refModels, altModels, subSelection, *args, **kw): # # Save the subselection (part of model to match) # as well as the model lists (ordered by subid) # self.subSelection = subSelection l = [ (m.subid, m) for m in refModels ] l.sort() self.refModels = [ t[1] for t in l ] l = [ (m.subid, m) for m in altModels ] l.sort() self.altModels = [ t[1] for t in l ] # # Grab the atomic coordinates that will be used # to compute RMSDs and check for errors # self.atomDict = {} counts = [] for ml in self.refModels, self.altModels: for m in ml: osl = '%s%s' % (m.oslIdent(), self.subSelection) s = selection.OSLSelection(osl) atoms = s.atoms() self.atomDict[m] = match._coordArray(atoms) counts.append(len(atoms)) if min(counts) != max(counts): raise chimera.UserError("Unequal number of atoms " "found in models") if counts[0] == 0: raise chimera.UserError("No atoms match atom specifier") # # Add handler to monitor change in display or active # status changes # self.trigger = chimera.triggers.addHandler('check for changes', self._statusCheck, None) # # Initialize dialog # ModelessDialog.__init__(self, *args, **kw) # # Register with extension manager # chimera.extension.manager.registerInstance(self)
def __init__(self, refModels, altModels, subSelection, *args, **kw): # # Save the subselection (part of model to match) # as well as the model lists (ordered by subid) # self.subSelection = subSelection l = [(m.subid, m) for m in refModels] l.sort() self.refModels = [t[1] for t in l] l = [(m.subid, m) for m in altModels] l.sort() self.altModels = [t[1] for t in l] # # Grab the atomic coordinates that will be used # to compute RMSDs and check for errors # self.atomDict = {} counts = [] for ml in self.refModels, self.altModels: for m in ml: osl = '%s%s' % (m.oslIdent(), self.subSelection) s = selection.OSLSelection(osl) atoms = s.atoms() self.atomDict[m] = match._coordArray(atoms) counts.append(len(atoms)) if min(counts) != max(counts): raise chimera.UserError("Unequal number of atoms " "found in models") if counts[0] == 0: raise chimera.UserError("No atoms match atom specifier") # # Add handler to monitor change in display or active # status changes # self.trigger = chimera.triggers.addHandler('check for changes', self._statusCheck, None) # # Initialize dialog # ModelessDialog.__init__(self, *args, **kw) # # Register with extension manager # chimera.extension.manager.registerInstance(self)
def __init__(self, cb, unchargedResidues, unchargedAtoms, method, status, gaffType, showCharges=False): self.cb = cb self.unchargedResidues = unchargedResidues self.unchargedAtoms = unchargedAtoms self.status = status self.method = method self.gaffType = gaffType self.showCharges = showCharges ModelessDialog.__init__(self)
def destroy(self): if self.cavities: cav1 = self.cavities[0] atoms = (cav1.mouthInfo["atoms"].atoms() or cav1.pocketInfo["atoms"].atoms()) if atoms: # close surface too... from chimera import openModels mol = atoms[0].molecule openModels.close(openModels.list( id=mol.id, subid=mol.subid)) for chk in [self.doSelect, self.doColor, self.doSurface, self.doZoom, self.excludeMouth]: chk.destroy() chimera.extension.manager.deregisterInstance(self) ModelessDialog.destroy(self)
def __init__(self, viewdock, *args, **kw): self.viewdock = viewdock self.results = viewdock.results self.compounds = Set() self.selected = None self.valueCache = {} self._isMapped = False self._colAddHandler = None self._colDelHandler = None self._colUpdHandler = None self._needChangeCompounds = False ModelessDialog.__init__(self, *args, **kw) self._exitHandler = self.viewdock.triggers.addHandler( self.viewdock.EXIT, self._exit, None) self._cpdChgHandler = self.viewdock.triggers.addHandler( self.viewdock.COMPOUND_STATE_CHANGED, self._compoundStateChanged, None)
def Close(self): if self._computing: self._abort = True return self.movie.subdialogs.remove(self) while self.dependentDialogs: self.dependentDialogs.Close() ModelessDialog.Close(self)
def __init__(self, group): self.group = group self.setInCallback = 0 if group.category: self.title = "%s attributes" % _mapName(group) self.triggers = [ ('PseudoBondGroup', chimera.triggers.addHandler('PseudoBondGroup', self._refreshCB, None)), ('PseudoBond', chimera.triggers.addHandler('PseudoBond', self._refreshCB, None)) ] self.refreshFuncs = {} self.refreshFuncs['PseudoBondGroup'] = [] self.refreshFuncs['PseudoBond'] = [] ModelessDialog.__init__(self)
def __init__(self, process=None, models=None, chargeModel=None, cb=None, **kw): if process: self.title = "Assign Charges for %s" % process.title() else: from AddCharge import process self.process = process self.cb = cb self.startModels = models if not chargeModel: from AddCharge import defaultChargeModel chargeModel = defaultChargeModel self.initialChargeModel = chargeModel ModelessDialog.__init__(self, **kw)
def __init__(self, mol, modes, sesData=None, *args, **kw): self.showVectors = False self.vectorModel = None self.sessionHandler = None self.movieDialog = None self.modeNumber = False self.__recursion = False self.counter = 0 self.cyl = 0 self.con = 0 self.rel = 0 self.vecSf = 0 self.atoms = list() self.modeData = list() self.title = None self.molecule = None print modes self.molecule = mol self.title = "Normal Modes for %s" % mol.name cs1 = mol.newCoordSet(0) for atom in mol.atoms: atom.setCoord(atom.coord(), cs1) self.atoms.append(atom) for index, mode in enumerate(modes): active = False displacements = list() v = mode.getEigvec() # freq = str((mode.getEigval()/FREQ_CONVERSOR)**0.5) freq = str(mode.getEigval()) for i in xrange(0, len(v), 3): x, y, z = v[i:i + 3] displacements.append(Vector(x, y, z)) self.modeData.append( _NormalModeProxy(index, active, freq, displacements, self)) self._createMovieDialog(self.molecule) ModelessDialog.__init__(self, *args, **kw) self.sessionHandler = chimera.triggers.addHandler( SAVE_SESSION, self._sessionSaveCB, None) if not chimera.nogui: # avoid useless errors during development chimera.extension.manager.registerInstance(self)
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)
def Close(self): chimera.viewer.background = None self.entry.resaturate() for (trigger, key), handler in self.entry._handlers.items(): chimera.triggers.deleteHandler(trigger, handler) global ui ui = None ModelessDialog.Close(self) chimera.extension.manager.deregisterInstance(self) self.destroy()
def __init__(self, viewdock, *args, **kw): self.viewdock = viewdock self.results = viewdock.results self.compounds = Set() self.selected = None self.valueCache = {} self._isMapped = False self._colAddHandler = None self._colDelHandler = None self._colUpdHandler = None self._needChangeCompounds = False ModelessDialog.__init__(self, *args, **kw) self._exitHandler = self.viewdock.triggers.addHandler( self.viewdock.EXIT, self._exit, None) self._cpdChgHandler = self.viewdock.triggers.addHandler( self.viewdock.COMPOUND_STATE_CHANGED, self._compoundStateChanged, None)
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)
def __init__(self): import os.path myDir, junk = os.path.split(__file__) addFunction('place text', (self._pickLabel, self._moveLabel, None), icon=chimage.get(Image.open(os.path.join(myDir, 'ilabel.png')), tkgui.app)) addFunction('place key', (self._startOrGrabKey, self._sizeOrMoveKey, None), icon=chimage.get( Image.open(os.path.join(myDir, 'key.png')), tkgui.app)) import Ilabel if not Ilabel._ilabelModel: Ilabel.IlabelModel() self.model = Ilabel._ilabelModel ModelessDialog.__init__(self) self._sessionHandlerID = chimera.triggers.addHandler( SAVE_SESSION, self._saveSession, None) self._closeHandlerID = chimera.triggers.addHandler( CLOSE_SESSION, self.destroy, None) self._beginRestoreHandlerID = chimera.triggers.addHandler( BEGIN_RESTORE_SESSION, self.destroy, None)