def test_atom_constraint4(self):
     testmol = Chem.MolFromSmiles('CC=C')
     s = """
     fragment a{
         C labeled c1 {connected to >1 C with any bond}
     }
     """
     molquery = Read(s)
     match_index = molquery.GetQueryMatches(testmol)
     self.assertListEqual(sorted(match_index), sorted(((1, ), )))
 def test_atom_constraint5(self):
     testmol = Chem.MolFromSmiles('CC=C')
     s = """
     fragment a{
         C labeled c1 {!connected to >1 C with any bond}
     }
     """
     molquery = Read(s)
     match_index = molquery.GetQueryMatches(testmol)
     self.assertEqual(match_index, ((0, ), (2, )))
 def test_atom_constraint2(self):
     testmol = Chem.MolFromSmiles('CCC')
     s = """
     fragment a{
         C labeled c1
         C labeled c2 single bond to c1 {connected to =1 C}
     }
     """
     molquery = Read(s)
     match_index = molquery.GetQueryMatches(testmol)
     self.assertListEqual(sorted(match_index), sorted(((1, 0), (1, 2))))
 def test_atom_prefix2(self):
     testmol = Chem.MolFromSmiles('Cc1ccccc1')
     s = """
     fragment a{
         nonaromatic C labeled c1
         aromatic C labeled c2 single bond to c1
     }
     """
     molquery = Read(s)
     match_index = molquery.GetQueryMatches(testmol)
     self.assertListEqual(sorted(match_index), sorted(((0, 1), )))
 def test_other_bond7(self):
     testmol = Chem.MolFromSmiles('CCC')
     s = """
     cyclic fragment a{
         C labeled c1
         C labeled c2 single bond to c1
     }
     """
     molquery = Read(s)
     match_index = molquery.GetQueryMatches(testmol)
     self.assertEqual(match_index, ())
 def test_non_ring_bond(self):
     testmol = Chem.MolFromSmiles('CCC1CCC1')
     s = """
     fragment a{
         C labeled c1
         C labeled c2 nonring bond to c1
     }
     """
     molquery = Read(s)
     match_index = molquery.GetQueryMatches(testmol)
     self.assertEqual(match_index, ((0, 1), (1, 0), (1, 2), (2, 1)))
 def test_atom_prefix3(self):
     testmol = Chem.MolFromSmiles('CC=C')
     s = """
     fragment a{
         C labeled c1
         allylic C labeled c2 single bond to c1
     }
     """
     molquery = Read(s)
     match_index = molquery.GetQueryMatches(testmol)
     self.assertEqual(match_index, ((0, 1), ))
 def test_atom_constraint6(self):
     testmol = Chem.MolFromSmiles('CC1CCC1')
     s = """
     fragment a{
         C labeled c1 {!in ring of size >0}
         C labeled c2 single bond to c1 {in ring of size >0}
     }
     """
     molquery = Read(s)
     match_index = molquery.GetQueryMatches(testmol)
     self.assertEqual(match_index, ((0, 1), ))
 def test_atom_constraint3(self):
     testmol = Chem.MolFromSmiles('CC=C')
     s = """
     fragment a{
         C labeled c1
         C labeled c2 single bond to c1 {connected to =1 C with double bond}
     }
     """
     molquery = Read(s)
     match_index = molquery.GetQueryMatches(testmol)
     self.assertEqual(match_index, ((0, 1), ))
 def test_other_bond3(self):
     testmol = Chem.MolFromSmiles('C=CC')
     s = """
     olefinic fragment a{
         C labeled c1
         C labeled c2 single bond to c1
     }
     """
     molquery = Read(s)
     match_index = molquery.GetQueryMatches(testmol)
     self.assertListEqual(sorted(match_index), sorted(((1, 2), (2, 1))))
 def test_other_bond10(self):
     testmol = Chem.MolFromSmiles('CCS')
     s = """
     fragment a{
         X labeled c1
         & labeled c2 single bond to c1
     }
     """
     molquery = Read(s)
     match_index = molquery.GetQueryMatches(testmol)
     self.assertEqual(match_index, ((1, 2), ))
 def test_other_bond6(self):
     testmol = Chem.MolFromSmiles('CCC')
     s = """
     linear fragment a{
         C labeled c1
         C labeled c2 single bond to c1
     }
     """
     molquery = Read(s)
     match_index = molquery.GetQueryMatches(testmol)
     self.assertEqual(match_index, ((0, 1), (1, 0), (1, 2), (2, 1)))
 def test_strong_bond(self):
     testmol = Chem.MolFromSmiles('CC=CC#C')
     s = """
     fragment a{
         C labeled c1
         C labeled c2 strong bond to c1
     }
     """
     molquery = Read(s)
     match_index = molquery.GetQueryMatches(testmol)
     self.assertEqual(match_index, ((1, 2), (2, 1), (3, 4), (4, 3)))
 def test_ring_bond2(self):
     testmol = Chem.MolFromSmiles('CCC1CCC1')
     s = """
     fragment a{
         C labeled c1
         C labeled c2 ring bond to c1
     }
     """
     molquery = Read(s)
     match_index = molquery.GetQueryMatches(testmol)
     self.assertEqual(match_index, ((2, 3), (2, 5), (3, 2), (3, 4), (4, 3),
                                    (4, 5), (5, 2), (5, 4)))
 def test_other_bond9(self):
     testmol = Chem.MolFromSmiles('CCO')
     s = """
     fragment a{
         X labeled c1
         X labeled c2 single bond to c1
     }
     """
     molquery = Read(s)
     match_index = molquery.GetQueryMatches(testmol)
     self.assertListEqual(sorted(match_index),
                          sorted(((0, 1), (1, 0), (1, 2), (2, 1))))
 def test_other_bond8(self):
     testmol = Chem.MolFromSmiles('C1CCC1C')
     s = """
     cyclic fragment a{
         C labeled c1
         C labeled c2 single bond to c1
     }
     """
     molquery = Read(s)
     match_index = molquery.GetQueryMatches(testmol)
     self.assertEqual(match_index, ((0, 1), (0, 3), (1, 0), (1, 2), (2, 1),
                                    (2, 3), (3, 0), (3, 2), (3, 4), (4, 3)))
 def test_aromatic_bond(self):
     testmol = Chem.MolFromSmiles('c1ccccc1')
     s = """
     fragment a{
         C labeled c1
         C labeled c2 aromatic bond to c1
     }
     """
     molquery = Read(s)
     match_index = molquery.GetQueryMatches(testmol)
     self.assertEqual(match_index,
                      ((0, 1), (0, 5), (1, 0), (1, 2), (2, 1), (2, 3),
                       (3, 2), (3, 4), (4, 3), (4, 5), (5, 0), (5, 4)))
 def test_double_triple_bond(self):
     testmol = Chem.MolFromSmiles('C=C-C#C')
     s = """
     fragment a{
         C labeled c1
         C labeled c2 double bond to c1
         C labeled c3 single bond to c2
         C labeled c4 triple bond to c3
     }
     """
     molquery = Read(s)
     match_index = molquery.GetQueryMatches(testmol)
     self.assertEqual(match_index, ((0, 1, 2, 3), ))
 def test_any_bond1(self):
     testmol = Chem.MolFromSmiles('CC=CC#C')
     s = """
     fragment a{
         C labeled c1
         C labeled c2 any bond to c1
     }
     """
     molquery = Read(s)
     match_index = molquery.GetQueryMatches(testmol)
     self.assertListEqual(
         sorted(match_index),
         sorted(((0, 1), (1, 0), (1, 2), (2, 1), (2, 3), (3, 2), (3, 4),
                 (4, 3))))
 def test_symbol_atomsuffix(self):
     testmol = Chem.MolFromSmiles('CCC')
     s = """
     fragment a{
         $ labeled c1
         $ labeled c2 single bond to c1
     }
     """
     molquery = Read(s)
     match_index = molquery.GetQueryMatches(testmol)
     self.assertEqual(match_index,
                      ((0, 1), (0, 3), (0, 4), (0, 5), (1, 0), (1, 2),
                       (1, 6), (1, 7), (2, 1), (2, 8), (2, 9), (2, 10),
                       (3, 0), (4, 0), (5, 0), (6, 1), (7, 1), (8, 2),
                       (9, 2), (10, 2)))
 def test_ring_bond1(self):
     testmol = Chem.MolFromSmiles('CCC1CCC1')
     s = """
     fragment a{
         C labeled c1
         C labeled c2 ring bond to c1
         C labeled c3 ring bond to c2
         C labeled c4 ring bond to c3
         ringbond c4 ring bond to c1
     }
     """
     molquery = Read(s)
     match_index = molquery.GetQueryMatches(testmol)
     self.assertListEqual(
         sorted(match_index),
         sorted(((2, 3, 4, 5), (2, 5, 4, 3), (3, 2, 5, 4), (3, 4, 5, 2),
                 (4, 3, 2, 5), (4, 5, 2, 3), (5, 2, 3, 4), (5, 4, 3, 2))))
Ejemplo n.º 22
0
    C labeled c2 single bond to c1
}
"""
molquery = Read(s)

assert match_index == ((0, 1), (1, 0))

testmol = Chem.MolFromSmiles('C[CH2-]')
s = """
negative fragment a{
    C labeled c1
    C labeled c2 single bond to c1
}
"""
molquery = Read(s)
match_index = molquery.GetQueryMatches(testmol)
assert match_index == ((0, 1), (1, 0))

testmol = Chem.MolFromSmiles('[CH][CH][C+][C-][C][CH+][CH-][CH4+]')
s = """
fragment a{
    X. labeled c1
    X: labeled c2 single bond to c1
    C+. labeled c3 single bond to c2
    C-. labeled c4 single bond to c3
    C: labeled c5 single bond to c4
    C+ labeled c6 single bond to c5
    C- labeled c7 single bond to c6
    C* labeled c8 single bond to c7
}
"""