Example #1
0
 def test_connected_match_atoms_rad0_correct(self):
     from e3fp.fingerprint.fprinter import ShellsGenerator
     from e3fp.conformer.util import mol_from_sdf
     mol = mol_from_sdf(PLANAR_SDF_FILE)
     conf = mol.GetConformers()[0]
     atoms = list(range(3))
     shells_gen = ShellsGenerator(conf, atoms, radius_multiplier=0.5,
                                  include_disconnected=True)
     match_atoms = shells_gen.get_match_atoms(0.)
     expect_match_atoms = {k: set() for k in atoms}
     self.assertDictEqual(match_atoms, expect_match_atoms)
Example #2
0
 def test_shells_generator_next_works_correctly(self):
     from e3fp.fingerprint.fprinter import ShellsGenerator
     from e3fp.conformer.util import mol_from_sdf
     mol = mol_from_sdf(PLANAR_SDF_FILE)
     conf = mol.GetConformers()[0]
     atoms = [x.GetIdx() for x in mol.GetAtoms()]
     shells_gen1 = ShellsGenerator(conf, atoms, radius_multiplier=0.5,
                                   include_disconnected=True)
     shells_gen2 = ShellsGenerator(conf, atoms, radius_multiplier=0.5,
                                   include_disconnected=True)
     self.assertDictEqual(next(shells_gen1), next(shells_gen2))
Example #3
0
 def test_connected_match_atoms_rad1_correct2(self):
     from e3fp.fingerprint.fprinter import ShellsGenerator
     from e3fp.conformer.util import mol_from_sdf
     mol = mol_from_sdf(PLANAR_SDF_FILE)
     conf = mol.GetConformers()[0]
     atoms = list(range(3))
     for atom in atoms:
         conf.SetAtomPosition(atom, [0, 0, atom*.75])
     shells_gen = ShellsGenerator(conf, atoms, radius_multiplier=0.5,
                                  include_disconnected=True)
     match_atoms = shells_gen.get_match_atoms(1.)
     expect_match_atoms = {0: {1}, 1: {0, 2}, 2: {1}}
     self.assertDictEqual(match_atoms, expect_match_atoms)
Example #4
0
 def test_generates_correct_disconnected_shells_level2(self):
     from e3fp.fingerprint.fprinter import ShellsGenerator
     from e3fp.fingerprint.structs import Shell
     from e3fp.conformer.util import mol_from_sdf
     mol = mol_from_sdf(PLANAR_SDF_FILE)
     conf = mol.GetConformers()[0]
     atoms = list(range(3))
     for atom in atoms:
         conf.SetAtomPosition(atom, [0, 0, .45 * atom])
     expected_shells_dict1 = {
         0: Shell(0, {1}),
         1: Shell(1, {0, 2}),
         2: Shell(2, {1})
     }
     expected_shells_dict2 = {
         0: Shell(0, {expected_shells_dict1[1], expected_shells_dict1[2]}),
         1: Shell(1, {expected_shells_dict1[0], expected_shells_dict1[2]}),
         2: Shell(2, {expected_shells_dict1[0], expected_shells_dict1[1]})
     }
     shells_gen = ShellsGenerator(conf,
                                  atoms,
                                  radius_multiplier=0.5,
                                  include_disconnected=True)
     for i in range(3):
         shells_dict = next(shells_gen)
     self.assertDictEqual(shells_dict, expected_shells_dict2)
Example #5
0
 def test_shells_generator_creation_success(self):
     from e3fp.fingerprint.fprinter import ShellsGenerator
     from e3fp.conformer.util import mol_from_sdf
     mol = mol_from_sdf(PLANAR_SDF_FILE)
     conf = mol.GetConformers()[0]
     atoms = [x.GetIdx() for x in mol.GetAtoms()]
     ShellsGenerator(conf, atoms, radius_multiplier=0.5,
                     include_disconnected=True)
Example #6
0
 def test_generates_correct_disconnected_shells_level0(self):
     from e3fp.fingerprint.fprinter import ShellsGenerator
     from e3fp.fingerprint.structs import Shell
     from e3fp.conformer.util import mol_from_sdf
     mol = mol_from_sdf(PLANAR_SDF_FILE)
     conf = mol.GetConformers()[0]
     atoms = list(range(3))
     expected_shells_dict = {0: Shell(0), 1: Shell(1), 2: Shell(2)}
     shells_gen = ShellsGenerator(conf, atoms)
     shells_dict = next(shells_gen)
     self.assertDictEqual(shells_dict, expected_shells_dict)
Example #7
0
    def test_disconnected_substructs_converge(self):
        from e3fp.fingerprint.fprinter import ShellsGenerator
        from e3fp.conformer.util import mol_from_sdf
        mol = mol_from_sdf(PLANAR_SDF_FILE)
        conf = mol.GetConformers()[0]
        atoms = list(range(3))
        for atom in atoms:
            conf.SetAtomPosition(atom, [0, 0, .45*atom])
        shells_gen = ShellsGenerator(conf, atoms, radius_multiplier=0.5,
                                     include_disconnected=True)
        for i in range(4):
            shells_dict = next(shells_gen)
            substructs_dict = {k: v.substruct for k, v
                               in shells_dict.items()}
        next_shells_dict = next(shells_gen)
        next_substructs_dict = {k: v.substruct for k, v
                                in next_shells_dict.items()}

        self.assertDictEqual(substructs_dict, next_substructs_dict)