1 """This modules implements the functions and procedures that are related to chemistry.
2
3 Functions:
4 * belongToAnAmine : this function determine whether or not |atom| is part of an amine group.
5 * belongToAHydroxy : this function determine whether or not |atom| is part of a hydroxy group.
6 * belongToAMethyl : this function determine whether or not |atom| is part of a mathyl group.
7 * belongToAThiol : this function determine whether or not |atom| is part of a thiol group.
8 """
9
11 """This function determine whether or not |atom| is part of a methyl group.
12 """
13
14 belong = None
15
16 if atom.type.name.strip().lower() == 'carbon':
17 neighbours = atom.bondedTo()
18 hydrogens = [neigh for neigh in neighbours if neigh.type.name.strip().lower() == 'hydrogen']
19 if len(hydrogens) >= 3:
20 return atom
21
22 elif atom.type.name.strip().lower() == 'hydrogen':
23 c = atom.bondedTo()[0]
24 if c != atom:
25 belong = belongToAMethyl(c)
26
27 return belong
28
30 """This function determine whether or not |atom| is part of an amine group.
31 """
32
33 belong = None
34
35 if atom.type.name.strip().lower() == 'nitrogen':
36 neighbours = atom.bondedTo()
37 hydrogens = [neigh for neigh in neighbours if neigh.type.name.strip().lower() == 'hydrogen']
38 if len(hydrogens) >= 2:
39 return atom
40
41 elif atom.type.name.strip().lower() == 'hydrogen':
42 n = atom.bondedTo()[0]
43 if n != atom:
44 belong = belongToAMethyl(n)
45
46 return belong
47
49 """This function determine whether or not |atom| is part of a thiol group.
50 """
51
52 belong = None
53
54 if atom.type.name.strip().lower() in ['sulphur', 'sulfur']:
55 neighbours = atom.bondedTo()
56 hydrogens = [neigh for neigh in neighbours if neigh.type.name.strip().lower() == 'hydrogen']
57 if len(hydrogens) >= 1:
58 return atom
59
60 elif atom.type.name.strip().lower() == 'hydrogen':
61 s = atom.bondedTo()[0]
62 if s != atom:
63 belong = belongToAMethyl(s)
64
65 return belong
66
68 """This function determine whether or not |atom| is part of a hydroxy group.
69 """
70 belong = None
71
72 if atom.type.name.strip().lower() == 'oxygen':
73 neighbours = atom.bondedTo()
74 hydrogens = [neigh for neigh in neighbours if neigh.type.name.strip().lower() == 'hydrogen']
75 if len(hydrogens) >= 1:
76 return atom
77
78 elif atom.type.name.strip().lower() == 'hydrogen':
79 o = atom.bondedTo()[0]
80 if o != atom:
81 belong = belongToAMethyl(o)
82
83 return belong
84