def test_metabolize(self): """ Treat it as blackbox, do not want to know how reactor is called just that metabolisation happened """ se = magma.StructureEngine(self.db_session) #molblock = Chem.MolToMolBlock(Chem.MolFromSmiles('Oc1cc(CC2OCCC2)cc(O)c1O')) parent_molid = se.read_smiles('Oc1cc(CC2OCCC2)cc(O)c1O') se.metabolize(1, 'phase1',endpoints=False) self.assertGreater(self.db_session.query(Molecule).filter(Molecule.predicted==True).count(), 0)
def test_metabolize_all(self): se = magma.StructureEngine(self.db_session) molblock = Chem.MolToMolBlock( Chem.MolFromSmiles('Oc1cc(CC2OCCC2)cc(O)c1O')) parent_molid = se.add_structure( molblock, '5-(3,4,5)-trihydroxyphenyl-g-valerolactone (F,U)', 1.0, 1) se.metabolize = mock.Mock(return_value=set([1])) se.metabolize_all('phase1') se.metabolize.assert_called_with(parent_molid, 'phase1', False)
def test_metabolize_unknown_metabolite_type(self): se = magma.StructureEngine(self.db_session) molblock = Chem.MolToMolBlock( Chem.MolFromSmiles('Oc1cc(CC2OCCC2)cc(O)c1O')) parent_molid = se.add_structure( molblock, '5-(3,4,5)-trihydroxyphenyl-g-valerolactone (F,U)', 1.0, 0, 'PARENT', 1) se.metabolize(parent_molid, 'phase1234') # TODO metabolize requires at least one SMIRKS query # if none given then raise exception self.assertEqual(self.db_session.query(Molecule).count(), 1)
def test_add_structure_2nd_ignore(self): se = magma.StructureEngine(self.db_session) molblock = Chem.MolToMolBlock(Chem.MolFromSmiles('CCO')) molid = se.add_structure(molblock, 'ethanol', 2.0, 0, 'PARENT', 1) se.add_structure(molblock, 'ethanol', 1.0, 0, 'PARENT', 1) met = self.db_session.query(Molecule).one() self.assertDictContainsSubset({ 'molid': molid, 'refscore': 2.0 }, met.__dict__)
def test_add_structure(self): se = magma.StructureEngine(self.db_session) molblock = Chem.MolToMolBlock(Chem.MolFromSmiles('CCO')) molid = se.add_structure(molblock, 'ethanol', 1.0, False) mol = self.db_session.query(Molecule).filter( Molecule.molid == molid).one() self.assertDictContainsSubset( { 'mol': molblock, 'refscore': 1.0, 'reactionsequence': {}, 'inchikey14': u'LFQSCWFLJHTTHZ', 'formula': u'C2H6O', 'predicted': False, 'name': u'ethanol', 'mim': 46.0418648147, 'logp': -0.0014000000000000123 }, mol.__dict__)
def test_metabolize_bad_molid(self): se = magma.StructureEngine(self.db_session) parent_molid = 1 se.metabolize(parent_molid, 'phase1') self.assertEqual(self.db_session.query(Molecule).count(), 0)
def test_construct_new_db(self): se = magma.StructureEngine(self.db_session) self.assertIsNone(se.call_back_engine)