Esempio n. 1
0
 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)
Esempio n. 2
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)
Esempio n. 3
0
    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)
Esempio n. 4
0
    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__)
Esempio n. 5
0
    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__)
Esempio n. 6
0
    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)
Esempio n. 7
0
    def test_construct_new_db(self):
        se = magma.StructureEngine(self.db_session)

        self.assertIsNone(se.call_back_engine)