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)
Beispiel #3
0
	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 __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)
Beispiel #6
0
 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)
Beispiel #7
0
	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, 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, 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, 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)
Beispiel #14
0
 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)
Beispiel #15
0
	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)
Beispiel #16
0
	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, 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)
Beispiel #18
0
	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)
Beispiel #19
0
 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)
Beispiel #20
0
	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)
Beispiel #21
0
 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)
Beispiel #22
0
	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, 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)
Beispiel #24
0
 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)
Beispiel #25
0
    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)
Beispiel #26
0
	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)
Beispiel #27
0
	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,
              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)
Beispiel #29
0
	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)
Beispiel #30
0
 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)
Beispiel #31
0
	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)
Beispiel #32
0
	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, 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)
Beispiel #34
0
	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)
Beispiel #35
0
    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)
Beispiel #36
0
 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)
Beispiel #37
0
	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, 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)
Beispiel #39
0
 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)
Beispiel #40
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)
Beispiel #41
0
    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)
Beispiel #42
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)
	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, seqCanvas):
		self.seqCanvas = seqCanvas
		seqCanvas.mainCanvas.bind('<ButtonPress-1>', self._mouseDownCB)
		seqCanvas.mainCanvas.bind('<ButtonRelease-1>', self._mouseUpCB)
		seqCanvas.mainCanvas.bind('<B1-Motion>', self._mouseDragCB)
		seqCanvas.mainCanvas.bind('<Button-3>',
				lambda e: self._focusCB(e, pref="residue"))
		seqCanvas.mainCanvas.bind('<Shift-Button-3>',
				lambda e: self._focusCB(e, pref="region"))
		self.title = "Region Browser for " + seqCanvas.mav.title
		self._dragLines = []
		self._dragRegion = None
		self._prevDrag = None
		self._bboxes = []
		self._afterID = None
		self._highlightedRegion = None
		self.regions = []
		self.associatedRegions = {}
		self.renameDialogs = {}
		self._scfDialog = None
		ModelessDialog.__init__(self)
Beispiel #45
0
	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)
Beispiel #46
0
    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)
Beispiel #47
0
    def __init__(self, num, width, height, img_src, **kw):
        """num is the number of panels the wizard is to contain
        width is the desired width of each panel, in pixels
        height is the desired height of each panel, in pixels
        img_src is the absolute path to a .gif file containing
        an image to appear in the left-hand side of the wizard
        """

        self.panel_width = width
        self.panel_height = height

        self.img_src = img_src
        
        if kw.has_key('img_bg_color'):
            self.img_bg_color = kw['img_bg_color']
        else:
            self.img_bg_color = None
        
        self.numPanels = num
        self.pCurrent = 0
        self.pFrames =  [None] * self.numPanels
        
        ModelessDialog.__init__(self)
Beispiel #48
0
    def __init__(self, num, width, height, img_src, **kw):
        """num is the number of panels the wizard is to contain
        width is the desired width of each panel, in pixels
        height is the desired height of each panel, in pixels
        img_src is the absolute path to a .gif file containing
        an image to appear in the left-hand side of the wizard
        """

        self.panel_width = width
        self.panel_height = height

        self.img_src = img_src

        if kw.has_key('img_bg_color'):
            self.img_bg_color = kw['img_bg_color']
        else:
            self.img_bg_color = None

        self.numPanels = num
        self.pCurrent = 0
        self.pFrames = [None] * self.numPanels

        ModelessDialog.__init__(self)
Beispiel #49
0
 def __init__(self, mav, *args, **kw):
     self.mav = mav
     self.title = "Delete Sequences/Gaps of %s" % (mav.title, )
     self.handlerID = self.mav.triggers.addHandler(MOD_ALIGN,
                                                   self._alignMod, None)
     ModelessDialog.__init__(self, *args, **kw)
	def __init__(self, fileAttrs, mavStatus):
		self.fileAttrs = fileAttrs
		self.mavStatus = mavStatus
		self.reminder = "Annotations only saved in Stockholm format\n"\
			"Comments saved in RSF and Stockholm formats\n"
		ModelessDialog.__init__(self)
				def __init__(self, noteDialog):
					self.noteDialog = noteDialog
					ModelessDialog.__init__(self)
 def __init__(self, rotDialog):
     self.rotDialog = rotDialog
     ModelessDialog.__init__(self)
 def __init__(self, mav, *args, **kw):
     self.mav = mav
     self.title = "Match Structures by Sequence for %s" % mav.title
     ModelessDialog.__init__(self, *args, **kw)
	def __init__(self, mav, *args, **kw):
		self.mav = mav
		self.title = "Match Structures by Sequence for %s" % mav.title
		ModelessDialog.__init__(self, *args, **kw)
Beispiel #55
0
 def __init__(self, fileName):
     self._fileName = fileName
     self.title = "Open %s" % fileName
     self.Open = self.OK
     ModelessDialog.__init__(self)
Beispiel #56
0
	def __init__(self, models=None):
		self.initModels = models
		ModelessDialog.__init__(self)
Beispiel #57
0
 def __init__(self, controller, movie_ui, *args, **kwargs):
     self.title = "OrbiTraj Configuration"
     self.controller = controller
     self.movie_ui = movie_ui
     ModelessDialog.__init__(self, *args, **kwargs)