def computeNormalMode(self,) : if self.anm is None : return if self.gammaStructure: self.gamma = prody.GammaStructureBased(self.ca_model) self.anm.buildHessian(self.ca_model, gamma=self.gamma, cutoff=self.cutoff) self.anm.calcModes() #extrapole self.bb_anm, self.bb_atoms = prody.extrapolateModel(self.anm, self.ca_model, self.model.select(self.conf))#self.conf)) self.nbMode = self.anm.getNumOfModes()
def computeNormalMode(self, ): if self.anm is None: return if self.gammaStructure: self.gamma = prody.GammaStructureBased(self.ca_model) self.anm.buildHessian(self.ca_model, gamma=self.gamma, cutoff=self.cutoff) self.anm.calcModes() #extrapole self.bb_anm, self.bb_atoms = prody.extrapolateModel( self.anm, self.ca_model, self.model.select(self.conf)) #self.conf)) self.nbMode = self.anm.getNumOfModes()
def applyMode(self, idMode): if idMode > self.nbMode: return #sample?should gave 10 #or should I use traverseMode #should I redo the extrapolation ? self.bb_anm, self.bb_atoms = prody.extrapolateModel( self.anm, self.ca_model, self.model.select(self.conf)) #self.conf)) self.nbMode = self.anm.getNumOfModes() if self.sample == "sample": ensemble = prody.sampleModes(self.bb_anm[idMode], self.bb_atoms, n_confs=self.nbconf, rmsd=self.rmsd) elif self.sample == "traverse": ensemble = prody.traverseMode(self.bb_anm[idMode], self.bb_atoms, n_steps=int(self.nbconf / 2), rmsd=self.rmsd) coords = ensemble.getCoordsets() nC = len(coords) #should beequal to nbconf self.pmvmodel.allAtoms.setConformation(0) if self.first: self.oricoords = numpy.array(self.pmvmodel.allAtoms._coords[:]) self.first = False else: self.pmvmodel.allAtoms._coords = self.oricoords.tolist() #self.pmvmodel.allAtoms._coords = numpy.concatenate(([oricoords,],coords),axis=0) #if a gui is available shoud update it #use current sel for i, c in enumerate(coords): if self.conf == "ca": if len(c) != len(self.pmvmodel.allAtoms.get("CA").coords): return self.pmvmodel.allAtoms.get("CA").addConformation(c[:]) elif self.conf == "protein and ca": self.pmvmodel.chains.residues.get("aminoacids").atoms.get( "CA").addConformation(c[:]) elif self.conf == "protein": self.pmvmodel.chains.residues.get( "aminoacids").atoms.addConformation(c[:]) #self.pmvmodel.allAtoms.get("aminoacids").addConformation(c[:]) else: #all if len(c) != len(self.pmvmodel.allAtoms.coords): return self.pmvmodel.allAtoms.addConformation(c[:])
def applyMode(self,idMode): if idMode > self.nbMode: return #sample?should gave 10 #or should I use traverseMode #should I redo the extrapolation ? self.bb_anm, self.bb_atoms = prody.extrapolateModel(self.anm, self.ca_model, self.model.select(self.conf))#self.conf)) self.nbMode = self.anm.getNumOfModes() if self.sample == "sample" : ensemble = prody.sampleModes(self.bb_anm[idMode], self.bb_atoms, n_confs=self.nbconf, rmsd=self.rmsd) elif self.sample == "traverse" : ensemble = prody.traverseMode(self.bb_anm[idMode], self.bb_atoms, n_steps=int(self.nbconf/2), rmsd=self.rmsd) coords=ensemble.getCoordsets() nC = len(coords) #should beequal to nbconf self.pmvmodel.allAtoms.setConformation(0) if self.first: self.oricoords = numpy.array(self.pmvmodel.allAtoms._coords[:]) self.first = False else : self.pmvmodel.allAtoms._coords = self.oricoords.tolist() #self.pmvmodel.allAtoms._coords = numpy.concatenate(([oricoords,],coords),axis=0) #if a gui is available shoud update it #use current sel for i,c in enumerate(coords): if self.conf == "ca" : if len(c) != len(self.pmvmodel.allAtoms.get("CA").coords): return self.pmvmodel.allAtoms.get("CA").addConformation(c[:]) elif self.conf == "protein and ca" : self.pmvmodel.chains.residues.get("aminoacids").atoms.get("CA").addConformation(c[:]) elif self.conf == "protein" : self.pmvmodel.chains.residues.get("aminoacids").atoms.addConformation(c[:]) #self.pmvmodel.allAtoms.get("aminoacids").addConformation(c[:]) else :#all if len(c) != len(self.pmvmodel.allAtoms.coords): return self.pmvmodel.allAtoms.addConformation(c[:])