コード例 #1
0
    def test_dump_to_sdf_file(self):
        s1 = dpdata.BondOrderSystem("bond_order/methane.sdf", fmt="sdf")
        s2 = deepcopy(s1)
        s2.data["coords"] += 1.0
        s2.to_sdf_file("bond_order/test.sdf")

        nsyst = dpdata.BondOrderSystem("bond_order/test.sdf", fmt="sdf")
        self.assertEqual(nsyst["coords"][0, 0, 0] - s1["coords"][0, 0, 0], 1.0)
        os.remove("bond_order/test.sdf")
コード例 #2
0
 def test_from_mol_file(self):
     syst = dpdata.BondOrderSystem("bond_order/CH3OH.mol", fmt='mol', type_map=['O','C','H'])
     self.assertEqual(syst.get_nframes(), 1)
     self.assertEqual(syst.get_nbonds(), 5)
     self.assertEqual(syst.get_natoms(), 6)
     self.assertEqual(syst['atom_names'], ['O','C','H'])
     self.assertAlmostEqual(syst['coords'][0][0][0], -0.3858)
コード例 #3
0
 def test_formal_charge(self):
     names = ["C5H5-", "CH3CC-", "CH3NC", "CH3NH3+", "CH3NO2", "OCH3+",
              "gly", "arg", "oxpy", "CH3OPO3_2-", "CH3PH3+", "CH3OAsO3_2-",
              "CH3SH", "CH3_2SO", "CH3_2SO2", "CH3SO3-", "BOH4-"]
     charges = [-1, -1, 0, 1, 0, 1, 0, 1, 0, -2, 1, -2, 0, 0, 0, -1, -1]
     mols = [dpdata.BondOrderSystem(f"bond_order/{name}.mol") for name in names]
     self.assertEqual(charges, [mol.get_charge() for mol in mols])
コード例 #4
0
 def test_from_rdkit_mol(self):
     mol = Chem.MolFromSmiles("CC")
     mol = Chem.AddHs(mol)
     AllChem.EmbedMultipleConfs(mol, 10)
     system = dpdata.BondOrderSystem(rdkit_mol=mol)
     self.assertEqual(system.get_nframes(), 10)
     self.assertEqual(system.get_nbonds(), 7)
コード例 #5
0
 def test_sanitize_mol_origin(self):
     cnt = 0
     for sdf_file in glob.glob("bond_order/refined-set-ligands/origin/*sdf"):
         syst = dpdata.BondOrderSystem(sdf_file, sanitize_level='high', verbose=False)
         if syst.rdkit_mol is None:
             cnt += 1
     self.assertEqual(cnt, 0)
コード例 #6
0
 def test_regularize_formal_charges(self):
     non_regular = Chem.MolFromMolFile("bond_order/formal_charge.mol",
                                       removeHs=False)
     regular = dpdata.BondOrderSystem("bond_order/formal_charge.mol",
                                      fmt="mol")
     self.assertFalse(non_regular)
     self.assertTrue(isinstance(regular.rdkit_mol, Chem.rdchem.Mol))
コード例 #7
0
 def test_dump_to_deepmd_npy(self):
     syst = dpdata.BondOrderSystem("bond_order/methane.sdf", fmt="sdf")
     syst.to_deepmd_npy("bond_order/methane")
     formal_charges = list(np.loadtxt("bond_order/methane/formal_charges.raw"))
     self.assertTrue(formal_charges, [0 for _ in range(5)])
     bonds = np.loadtxt("bond_order/methane/bonds.raw")
     for bond_idx in range(4):
         for ii in range(3):
             self.assertEqual(syst['bonds'][bond_idx][ii], bonds[bond_idx][ii])
     shutil.rmtree("bond_order/methane")
コード例 #8
0
 def test_from_sdf_file(self):
     syst = dpdata.BondOrderSystem("bond_order/methane.sdf", type_map=['C','H'])
     self.assertEqual(syst.get_nframes(), 4)
     self.assertEqual(syst.get_nbonds(), 4)
     self.assertEqual(syst.get_natoms(), 5)
     self.assertEqual(syst['atom_names'], ['C','H'])
     self.assertAlmostEqual(syst['coords'][0][0][0], 0.0059)
     self.assertAlmostEqual(syst['coords'][1][0][0], 0.0043)
     self.assertAlmostEqual(syst['coords'][2][0][0], 0.0071)
     self.assertAlmostEqual(syst['coords'][3][0][0], 0.0032)
コード例 #9
0
 def setUp(self):
     self.system = dpdata.BondOrderSystem("amber/methane.mol", fmt='mol', type_map=['H','C'])
     with open('amber/sqm.in', 'r') as f:
         self.sqm_in = f.read()