def test_classifierVSselectors(self): """ make sure that the classifier returns the same results as its selectors """ bndClassifier = BondClassifier({ 'amide': AmideBondSelector(), 'cycle': CycleBondSelector(), 'leaf': LeafBondSelector(), 'peptide': PeptideBackBoneBondSelector(), }) #all the bonds in the molecule as a BondSet bnds = self.mol.allAtoms.bonds[0] #get the specified bonds as a BondSet localDict = {} localDict['amide'] = AmideBondSelector().select(bnds) localDict['cycle'] = CycleBondSelector().select(bnds) localDict['leaf'] = LeafBondSelector().select(bnds) localDict['peptide'] = PeptideBackBoneBondSelector().select(bnds) #make the classifier do the same thing resultDict = bndClassifier.classify(bnds) for k in resultDict.keys(): self.compareBondSets(localDict[k], resultDict[k])
def test_LeafBondSelector_select_all_leaves(self): """ test LeafBond select: all bonds """ leafBndSel = LeafBondSelector() ats = self.mol.allAtoms bnds = ats.bonds[0] resultBnds = leafBndSel.select(bnds) #print 'all_leaves:len(resultBnds)=', len(resultBnds) self.assertEqual(len(resultBnds) , 150)
def test_LeafBondSelector_select_no_leaves(self): """ test LeafBond select: no bonds """ leafBndSel = LeafBondSelector() ats = self.mol.allAtoms[7:10] bnds = ats.bonds[0] resultBnds = leafBndSel.select(bnds) #print 'no_leaves:len(resultBnds)=', len(resultBnds) self.assertEqual(len(resultBnds) , 0)
def test_LeafBondSelector_select_all_leaves(self): """ test LeafBond select: all bonds """ leafBndSel = LeafBondSelector() ats = self.mol.allAtoms bnds = ats.bonds[0] resultBnds = leafBndSel.select(bnds) #print 'all_leaves:len(resultBnds)=', len(resultBnds) self.assertEqual(len(resultBnds), 150)
def test_LeafBondSelector_select_no_leaves(self): """ test LeafBond select: no bonds """ leafBndSel = LeafBondSelector() ats = self.mol.allAtoms[7:10] bnds = ats.bonds[0] resultBnds = leafBndSel.select(bnds) #print 'no_leaves:len(resultBnds)=', len(resultBnds) self.assertEqual(len(resultBnds), 0)
def test_LeafBondSelector_select_some_leaves(self): """ test LeafBond select: some bonds """ leafBndSel = LeafBondSelector() ats = self.mol.allAtoms[:10] bnds = ats.bonds[0] resultBnds = leafBndSel.select(bnds) #print 'some_leaves:len(resultBnds)=', len(resultBnds) #self.assertEqual(len(resultBnds) , 2) self.assertEqual(len(resultBnds) , 5)
def test_LeafBondSelector_select_some_leaves(self): """ test LeafBond select: some bonds """ leafBndSel = LeafBondSelector() ats = self.mol.allAtoms[:10] bnds = ats.bonds[0] resultBnds = leafBndSel.select(bnds) #print 'some_leaves:len(resultBnds)=', len(resultBnds) #self.assertEqual(len(resultBnds) , 2) self.assertEqual(len(resultBnds), 5)
def setAutoFlexFields(res): #process residues if hasattr(res, 'setup'): return res.setup = 1 res.atoms.used = 0 res.atoms.bonds[0].possibleTors = 0 res.atoms.bonds[0].activeTors = 0 backbone_names = [ 'C', 'N', 'O', 'HN', 'HN1', 'HN2', 'HA', 'H1', 'H2', 'H3', 'HO', 'H' ] #includes CA sidechain = res.atoms.get(lambda x: x.name not in backbone_names) res.sideChain = sidechain bondlist = res.bondlist = sidechain.bonds[0] bondlist.leaf = 0 bondlist.possibleTors = 0 bondlist.activeTors = 0 rbs = RotatableBondSelector() rotatables = rbs.select(bondlist) for b in rotatables: b.possibleTors = 1 b.activeTors = 1 amides = AmideBondSelector().select(bondlist) for b in amides: b.activeTors = 0 b.possibleTors = 1 guanidiniums = GuanidiniumBondSelector().select(bondlist) for b in guanidiniums: b.activeTors = 0 b.possibleTors = 1 leaves = LeafBondSelector().select(bondlist) for b in leaves: b.activeTors = 0 b.possibleTors = 0 res.torscount = len(bondlist.get(lambda x: x.activeTors == 1)) #this field is not used in AutoDock4 res.torsdof = res.torscount res.torscount = len(bondlist.get(lambda x: x.activeTors == 1)) res.torsdof = res.torscount caAtoms = res.atoms.get(lambda x: x.name == 'CA') #get returns an AtomSet if caAtoms: #this checks for len(caAtoms) res.rootlist = caAtoms else: res.rootlist = AtomSet([res.atoms.get(lambda x: x._uniqIndex == 0)[0]]) res.sideChain = res.atoms
def __init__(self, tolerance=0.01, detectAll=True): self.detect_all_cycles = detectAll self.d = { 'amide': AmideBondSelector(), 'ppbb': PeptideBackBoneBondSelector(), 'leaf': LeafBondSelector(), 'cycle': CycleBondSelector(), 'rotatable': RotatableBondSelector(), 'bondOrder2': BondOrderBondSelector(2), 'hydrogenRotators': HydrogenRotatorBondSelector(), 'guanidinium': GuanidiniumBondSelector(), 'aromatic': AromaticCycleBondSelector2() } BondClassifier.__init__(self, self.d) #used to detect colinear atoms #if dist1+dist2<dist13+0.1 self.tolerance = 0.01
def test_LeafBondSelector_constructor(self): """ test LeafBond constructor """ leafBndSel = LeafBondSelector() self.assertEqual(leafBndSel.__class__, LeafBondSelector)