def sessionRestore(sessionData): from SimpleSession import idLookup version = sessionData[0] if version == 1: (v, mid, program, name, parserData, serviceData, tableData) = sessionData mol = idLookup(mid) seq = None showOne = False elif version == 2: (v, mid, seq, program, name, parserData, serviceData, tableData) = sessionData mol = idLookup(mid) showOne = False elif version == 3: (v, mid, ss, seq, program, name, showOne, parserData, serviceData, tableData) = sessionData if mid is not None: mol = idLookup(mid) elif ss is not None: mol = chimera.Sequence.restoreSequence(ss) else: mol = None else: raise ValueError("unknown blastpdb version: %s" % str(version)) BlastResultsDialog(mol=mol, seq=seq, sessionData=(program, name, showOne, parserData, serviceData, tableData))
def _sessionRestore(self, info): from SimpleSession import idLookup for bondID, anchorID, delta, rotID in info: bond = idLookup(bondID) dup = False for br in self.rotations.values(): if br.bond == bond: from chimera import replyobj replyobj.error("Active torsion in session file same as" " existing active torsion; skipping") dup = True break if dup: continue anchorSide = idLookup(anchorID) if delta: # need to make rotation have same delta as original bondRot = BondRot(bond) bondRot.angle = (-delta, anchorSide) bondRot.destroy() if rotID in self.rotations: rotID = None br = self.rotationForBond(bond, requestedID=rotID) br.anchorSide = anchorSide if delta: br.set(delta)
def sessionRestore(sessionData): from SimpleSession import idLookup version, resID, resType, rotIDs, bbdep, libName, tableInfo = sessionData from Rotamers import libraries for lib in libraries: if lib.displayName == libName: break else: raise ValueError("Cannot find library") sesData = (bbdep, [idLookup(rot) for rot in rotIDs], tableInfo) RotamerDialog(idLookup(resID), resType, lib, sessionData=sesData)
def sessionRestore(sessionData): from SimpleSession import idLookup version, resID, resType, rotIDs, bbdep, libName, tableInfo = sessionData from Rotamers import libraries for lib in libraries: if lib.displayName == libName: break else: raise ValueError("Cannot find library") sesData = (bbdep, [idLookup(rot) for rot in rotIDs], tableInfo) RotamerDialog(idLookup(resID), resType, lib, sessionData=sesData)
def _restoreNMTSession_v1(self, data): from SimpleSession import idLookup self.molecule = idLookup(data["molecule"]) self.title = "Normal Modes for %s" % self.molecule.name self.atoms = [idLookup(sid) for sid in data["atoms"]] self.modeData = list() for index, (active, freq, dl) in enumerate(data["modeData"]): self.modeData.append( _NormalModeProxy(index, active, freq, [Vector(*v) for v in dl], self)) self._restoreHandler = chimera.triggers.addHandler( END_RESTORE_SESSION, self._restoreMovieDialog, None)
def _restoreSession(self, targetMap, version=1): from SimpleSession import idLookup if version == 1: for info, atomIDs in targetMap.items(): rgba, anisoParams = info scale, smoothing = anisoParams self.showAniso([idLookup(atomID) for atomID in atomIDs], color=rgba, scale=scale, smoothing=smoothing) return if version == 2: for info, atomIDs in targetMap.items(): anisoParams, colors = info scale, smoothing, axisFactor = anisoParams ellipsoidColor, axisColor, ellipseColor = colors if ellipseColor: ellipseFactor = 1.0 else: ellipseFactor = None self.showAniso([idLookup(atomID) for atomID in atomIDs], color=ellipsoidColor, showEllipsoid=ellipsoidColor, axisColor=axisColor, axisFactor=axisFactor, ellipseColor=ellipseColor, ellipseFactor=ellipseFactor, scale=scale, smoothing=smoothing) return if version == 3: for info, atomIDs in targetMap.items(): anisoParams, colors = info scale, smoothing, axisFactor, ellipseFactor = anisoParams ellipsoidColor, axisColor, ellipseColor = colors self.showAniso([idLookup(atomID) for atomID in atomIDs], color=ellipsoidColor, showEllipsoid=ellipsoidColor, axisColor=axisColor, axisFactor=axisFactor, ellipseColor=ellipseColor, ellipseFactor=ellipseFactor, scale=scale, smoothing=smoothing) return for info, atomIDs in targetMap.items(): anisoParams, colors = info scale, smoothing, axisFactor, ellipseFactor, \ axisThickness, ellipseThickness = anisoParams ellipsoidColor, axisColor, ellipseColor = colors self.showAniso([idLookup(atomID) for atomID in atomIDs], color=ellipsoidColor, showEllipsoid=ellipsoidColor, axisColor=axisColor, axisFactor=axisFactor, axisThickness=axisThickness, ellipseColor=ellipseColor, ellipseFactor=ellipseFactor, ellipseThickness=ellipseThickness, scale=scale, smoothing=smoothing)
def sessionRestore(sessionData): from SimpleSession import idLookup version = sessionData[0] if version == 1: ignore, name, molIdList, infoList, tableData = sessionData molList = [ idLookup(mid) for mid in molIdList ] for m, info in zip(molList, infoList): assignModbaseInfo(m, info) else: raise ValueError("unknown ModBase version: %s" % str(version)) ModBaseDialog(name, molList, tableData=tableData)
def _restoreSession(self, planeData, fromGeom=False): from SimpleSession import getColor, idLookup maxNumber = 0 for data, atomIDs in planeData.items(): number, name, cmpVal, radius, thickness, colorID, origin, normal\ = data atoms = [idLookup(a) for a in atomIDs] self._instantiatePlane(number, name, self.planeOrdinal + number, getColor(colorID), radius, thickness, self._getSourceModel(atoms), atoms, chimera.Plane(Point(*origin), Vector(*normal))) maxNumber = max(number, maxNumber) self.planeOrdinal += maxNumber
def _restoreSession(self, axisData, fromGeom=False): from SimpleSession import getColor, idLookup for i, data in enumerate(axisData.keys()): atomIDs = axisData[data] try: number, name, cmpVal, radius, colorID, extents, center,\ direction = data except ValueError: number = i + 1 name, cmpVal, radius, colorID, extents, center,\ direction = data atoms = [idLookup(a) for a in atomIDs] self._instantiateAxis(number, name, getColor(colorID), radius, self._getSourceModel(atoms), atoms, Point(*center), Vector(*direction), extents)
def create_object(self, id_to_marker): m1 = id_to_marker[self.marker_id_1] m2 = id_to_marker[self.marker_id_2] if self.version >= 2: from SimpleSession import idLookup bond = idLookup(self.bond_session_id) else: bond = None import markerset l = markerset.Link(m1, m2, self.rgba, self.radius, bond = bond) l.bond.display = self.displayed if self.extra_attributes: m.extra_attributes = self.extra_attributes return l
def id_to_model(id): model = None if isinstance(id, tuple) and len(id) == 3: from SimpleSession import modelMap mlist = [m for m in modelMap.get(id[:2], []) if m.name == id[2]] if len(mlist) == 1: model = mlist[0] else: global id_to_model_failed id_to_model_failed.add(id) elif not id is None: from SimpleSession import idLookup model = idLookup(id) return model
def create_object(self, id_to_marker): m1 = id_to_marker[self.marker_id_1] m2 = id_to_marker[self.marker_id_2] if self.version >= 2: from SimpleSession import idLookup bond = idLookup(self.bond_session_id) else: bond = None import markerset l = markerset.Link(m1, m2, self.rgba, self.radius, bond=bond) l.bond.display = self.displayed if self.extra_attributes: m.extra_attributes = self.extra_attributes return l
def restoreSeqInspectors(info): global _seqInspectors from SimpleSession import idLookup for seqName, molID, seqsInfo, mavInfo in info: mol = idLookup(molID) for seq in mol.sequences(): if seq.name == seqName: break else: continue if seq in _seqInspectors: continue from MultAlignViewer.MAViewer import restoreMAV from chimera.Sequence import restoreSequence mav = restoreMAV([restoreSequence(seqInfo) for seqInfo in seqsInfo], mavInfo) _addSeqInspector(seq, mav=mav)
def restoreSeqInspectors(info): global _seqInspectors from SimpleSession import idLookup for seqName, molID, seqsInfo, mavInfo in info: mol = idLookup(molID) for seq in mol.sequences(): if seq.name == seqName: break else: continue if seq in _seqInspectors: continue from MultAlignViewer.MAViewer import restoreMAV from chimera.Sequence import restoreSequence mav = restoreMAV([restoreSequence(seqInfo) for seqInfo in seqsInfo], mavInfo) _addSeqInspector(seq, mav=mav)
def create_object(self, marker_set): if self.version >= 2: from SimpleSession import idLookup atom = idLookup(self.atom_session_id) else: atom = None import markerset m = markerset.Marker(marker_set, self.id, self.xyz, self.rgba, self.radius, atom = atom) m.atom.display = self.displayed m.set_note(self.note) m.set_note_rgba(self.note_rgba) m.show_note(self.note_shown) if self.extra_attributes: m.extra_attributes = self.extra_attributes return m
def create_object(self): import markerset ms = markerset.Marker_Set(self.name) ms.next_marker_id = self.next_marker_id ms.file_path = self.file_path mm = self.marker_model if mm: if self.version >= 3: from SimpleSession import idLookup m = idLookup(self.molecule_session_id) ms.set_marker_molecule(m) import markerset markerset.msc.open_models_cb(None, None, [m]) else: from SimpleSession import modelOffset model_id = (mm.id + modelOffset, mm.subid) m = ms.marker_model(model_id) if self.version >= 2: m.color = markerset.chimera_color(self.color) id_to_marker = {} for m in self.markers: marker = m.create_object(ms) id_to_marker[marker.id] = marker for l in self.links: l.create_object(id_to_marker) if self.extra_attributes: ms.extra_attributes = self.extra_attributes if mm and ms.molecule: mm.restore_state(ms.molecule) cm = self.curve_model if cm: radius, band_length, subdivisions = self.curve_parameters ms.show_curve(radius, band_length, subdivisions) cm.restore_state(ms.curve_model) return ms
def create_object(self): import markerset ms = markerset.Marker_Set(self.name) ms.next_marker_id = self.next_marker_id ms.file_path = self.file_path mm = self.marker_model if mm: if self.version >= 3: from SimpleSession import idLookup m = idLookup(self.molecule_session_id) ms.set_marker_molecule(m) import markerset markerset.msc.open_models_cb(None, None, [m]) else: from SimpleSession import modelOffset model_id = (mm.id + modelOffset, mm.subid) m = ms.marker_model(model_id) if self.version >= 2: m.color = markerset.chimera_color(self.color) id_to_marker = {} for m in self.markers: marker = m.create_object(ms) id_to_marker[marker.id] = marker for l in self.links: l.create_object(id_to_marker) if self.extra_attributes: ms.extra_attributes = self.extra_attributes if mm and ms.molecule: mm.restore_state(ms.molecule) cm = self.curve_model if cm: radius, band_length, subdivisions = self.curve_parameters ms.show_curve(radius, band_length, subdivisions) cm.restore_state(ms.curve_model) return ms
def create_object(self, marker_set): if self.version >= 2: from SimpleSession import idLookup atom = idLookup(self.atom_session_id) else: atom = None import markerset m = markerset.Marker(marker_set, self.id, self.xyz, self.rgba, self.radius, atom=atom) m.atom.display = self.displayed m.set_note(self.note) m.set_note_rgba(self.note_rgba) m.show_note(self.note_shown) if self.extra_attributes: m.extra_attributes = self.extra_attributes return m
def restoreTorsions(info): from SimpleSession import idLookup from BondRotMgr import bondRotMgr for bondID, atom1ID, atom2ID in info: br = bondRotMgr.rotationForBond(idLookup(bondID)) br.anchorSide = idLookup(atom1ID)
def restoreAngles(angleInfo): from SimpleSession import idLookup for atomIDs in angleInfo: addAngle([idLookup(aID) for aID in atomIDs])