def __init__(self, receptor_file, percentCutoff=1., detect_pi=False, dist_cutoff=6, verbose=False, distanceSelector=None, hydrogen_bond_builder=None, distanceSelectorWithCutoff=None, aromatic_cycle_bond_selector=None): self.receptor_file = receptor_file receptor = Read(receptor_file) assert(len(receptor)==1) assert isinstance(receptor, MoleculeSet) self.macro = receptor[0] self.macro_atoms = self.macro.allAtoms self.macro.buildBondsByDistance() self.verbose = verbose #??useful?? self.percentCutoff = percentCutoff self.detect_pi = detect_pi self.distanceSelector = distanceSelector if self.distanceSelector is None: self.distanceSelector = CloserThanVDWSelector(return_dist=0) self.hydrogen_bond_builder = hydrogen_bond_builder if self.hydrogen_bond_builder is None: self.hydrogen_bond_builder = HydrogenBondBuilder() self.distanceSelectorWithCutoff = distanceSelectorWithCutoff if self.distanceSelectorWithCutoff is None: self.distanceSelectorWithCutoff = DistanceSelector() self.dist_cutoff=float(dist_cutoff) self.results = d = {} self.report_list =['lig_hb_atoms','lig_close_atoms'] self.aromatic_cycle_bond_selector = aromatic_cycle_bond_selector if self.aromatic_cycle_bond_selector is None: self.aromatic_cycle_bond_selector = AromaticCycleBondSelector() if detect_pi: self.report_list.extend(['pi_cation','pi_pi', 'cation_pi', 't_shaped']) if self.verbose: print("self.report_list=", self.report_list)
def test_CloserThanVDWSelector_setupCutoff(self): """ CloserThanVDWSelector cutoff is expected shape """ cutoff = CloserThanVDWSelector().setupCutoff(self.rec.allAtoms, self.lig.allAtoms, 3.0) self.assertEquals(cutoff.shape[0], len(self.lig.allAtoms)) self.assertEquals(cutoff.shape[1], len(self.rec.allAtoms))
def test_CloserThanVDWSelector_select(self): """ CloserThanVDWSelector.select returns expected number of atoms """ d_sel = CloserThanVDWSelector() resultD, distD = d_sel.select(self.lig.allAtoms, self.rec.allAtoms) #check that 14 atoms in the ligand are near 1 or more atoms in the receptor self.assertEquals(len(resultD.keys()), 14) d = {} for k in resultD.values(): for item in k: d[item] = 0 #check that 16 atoms in the receptor are near an atom in the ligand self.assertEquals(len(d.keys()), 16)
def test_CloserThanVDWSelector(self): """ instantiate a CloserThanVDWSelector """ d_sel = CloserThanVDWSelector() self.assertEquals(d_sel.__class__, CloserThanVDWSelector)