PFASGroups 3.2.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,170 @@
1
+ [
2
+ {
3
+ "id": 1,
4
+ "name": "OECD Definition",
5
+ "smarts": [
6
+ "[#6X4!$([#6H1])!$([#6][#17,#35,#53])](F)F"
7
+ ],
8
+ "fluorineRatio": null,
9
+ "description": "At least one CF₃ or CF₂ group (not bonded to H, Cl, Br, I)",
10
+ "test": {
11
+ "category": "definition",
12
+ "examples": {
13
+ "positives": [
14
+ "C(F)(F)(F)C(F)(F)C(F)(F)F",
15
+ "OC(=O)C(F)(F)C(F)(F)C(F)(F)F",
16
+ "C(F)(F)(F)C(F)(F)C(F)(F)C(F)(F)C(F)(F)C(F)(F)C(F)(F)C(F)(F)F",
17
+ "S(=O)(=O)(O)C(F)(F)C(F)(F)C(F)(F)C(F)(F)F",
18
+ "C(F)(F)(F)C(F)(F)OC(F)(F)C(F)(F)F",
19
+ "C(C(F)(F)F)(F)C(F)(F)C(F)(F)F"
20
+ ],
21
+ "negatives": [
22
+ "CCCCCC",
23
+ "C(F)CC",
24
+ "FC(F)C",
25
+ "C(F)(F)(Cl)C",
26
+ "CC(F)C",
27
+ "C1=CC=CC=C1"
28
+ ]
29
+ }
30
+ }
31
+ },
32
+ {
33
+ "id": 2,
34
+ "name": "EU PFAS Restriction",
35
+ "smarts": [
36
+ "[#6X4!$([#6][#8H1,#8$([#8][#6H3,#6H2X4,a,#6X3$([#6]=[#8])])])!$([#6][#7H2,#7H1$([#7][#6H3,#6H2X4,a,#6X3$([#6]=[#8])]),#7$([#7]([#6H3,#6H2X4,a,#6X3$([#6]=[#8])])[#6H3,#6H2X4,a,#6X3$([#6]=[#8])])])!$([#6H1])!$([#6][#17,#35,#53])](F)(F)F",
37
+ "[#6X4!$([#6](F)(F)(F))!$([#6]([#8H1,#8$([#8][#6H3,#6H2X4,a,#6X3$([#6]=[#8])])])[#6H3,#6H2X4,#6X3$([#6]=[#8]),a,#8H1,#8$([#8][#6H3,#6H2X4,a,#6X3$([#6]=[#8])]),#16$([#16H1,#16$([#16][#6H3,#6H2X4,a,#6X3$([#6]=[#8])])]),#7$([#7H2,#7H1$([#7$([#7][#6H3]),#7$([#7][#6H2X4]),#7a,#6X3$([#6]=[#8])]),#7$([#7]([#6H3,#6H2X4,a,#6X3$([#6]=[#8])])[#6H3,#6H2X4,a,#6X3$([#6]=[#8])])])])!$([#6]([#7H2,#7H1$([#7][#6H3,#6H2X4,a,#6X3$([#6]=[#8])]),#7$([#7]([#6H3,#6H2X4,a,#6X3$([#6]=[#8])])[#6H3,#6H2X4,a,#6X3$([#6]=[#8])])])[#6H3,#6H2X4,#6X3$([#6]=[#8]),a,#8H1,#8$([#8][#6H3,#6H2X4,a,#6X3$([#6]=[#8])]),#16$([#16H1,#16$([#16][#6H3,#6H2X4,a,#6X3$([#6]=[#8])])]),#7$([#7H2,#7H1$([#7][#6H3,#6H2X4,a,#6X3$([#6]=[#8])]),#7$([#7]([#6H3,#6H2X4,a,#6X3$([#6]=[#8])])[#6H3,#6H2X4,a,#6X3$([#6]=[#8])])])])!$([#6H1])!$([#6][#17,#35,#53])](F)F"
38
+ ],
39
+ "fluorineRatio": null,
40
+ "description": "Similar to OECD but with more exclusion criteria",
41
+ "test": {
42
+ "category": "definition",
43
+ "examples": {
44
+ "positives": [
45
+ "C(F)(F)(F)C(F)(F)C(F)(F)F",
46
+ "C(F)(F)(F)C(F)(F)C(F)(F)C(F)(F)C(F)(F)C(F)(F)C(F)(F)C(F)(F)F",
47
+ "S(=O)(=O)(O)C(F)(F)C(F)(F)C(F)(F)C(F)(F)F",
48
+ "C(F)(F)(F)C(F)(F)OC(F)(F)C(F)(F)F",
49
+ "N(CCCC)C(F)(F)C(F)(F)C(F)(F)F"
50
+ ],
51
+ "negatives": [
52
+ "CCCCCC",
53
+ "FC(F)C",
54
+ "C(F)(F)(Cl)C",
55
+ "CC(F)C",
56
+ "C1=CC=CC=C1",
57
+ "FCCC"
58
+ ]
59
+ }
60
+ }
61
+ },
62
+ {
63
+ "id": 3,
64
+ "name": "OPPT 2023",
65
+ "smarts": [
66
+ "[#6H0X4](F)(F)[#6H0X4](F)",
67
+ "[#6](F)(F)([F,#8,#6H0X4])[#8][#6](F)(F)[F,#8,#6H0X4]",
68
+ "[#6](F)(F)(F)[#6]([#6](F)(F)F)([F,#6H0X4])[F,#6H0X4]"
69
+ ],
70
+ "fluorineRatio": null,
71
+ "description": "Three inclusion criteria.",
72
+ "test": {
73
+ "category": "definition",
74
+ "examples": {
75
+ "positives": [
76
+ "C(F)(F)(F)C(F)(F)C(F)(F)F",
77
+ "C(F)(F)C(F)(F)C(F)(F)C",
78
+ "C(F)(F)(F)C(F)(F)OC(F)(F)C(F)(F)F",
79
+ "C(F)(F)(C(F)(F)F)C(F)(F)C(F)(F)F",
80
+ "C(F)(F)(F)C(OC)(F)C(F)(F)F"
81
+ ],
82
+ "negatives": [
83
+ "CCCCCC",
84
+ "C(F)CCC",
85
+ "CC(F)(F)C",
86
+ "FC(F)C(F)F",
87
+ "C1=CC=CC=C1"
88
+ ]
89
+ }
90
+ }
91
+ },
92
+ {
93
+ "id": 4,
94
+ "name": "UK PFAS Definition",
95
+ "smarts": [
96
+ "F[#6H0X4!$([#6][#17,#35,#53])](F)F",
97
+ "F[#6H0X4!$([#6][#17,#35,#53])](F)[#6H0X4!$([#6][#17,#35,#53])](F)F"
98
+ ],
99
+ "fluorineRatio": null,
100
+ "description": "At least one CF₃ or CF₂ group (not bonded to Cl, Br, I)",
101
+ "test": {
102
+ "category": "definition",
103
+ "examples": {
104
+ "positives": [
105
+ "C(F)(F)(F)C(F)(F)C(F)(F)F",
106
+ "C(F)(F)(F)C(F)(F)C",
107
+ "FC(F)(F)C(F)(F)C",
108
+ "OC(=O)C(F)(F)C(F)(F)C(F)(F)F",
109
+ "S(=O)(=O)(O)C(F)(F)C(F)(F)C(F)(F)C(F)(F)F",
110
+ "C(F)(F)(F)C(F)(F)OC(F)(F)C(F)(F)F"
111
+ ],
112
+ "negatives": [
113
+ "CCCCCC",
114
+ "C(F)CC",
115
+ "C(F)(F)C(F)(F)",
116
+ "C(F)(F)C(F)(F)C",
117
+ "CC(F)(F)CC",
118
+ "C(F)(F)(Cl)C",
119
+ "C(F)(F)(Br)C",
120
+ "CC(F)C",
121
+ "C1=CC=CC=C1"
122
+ ]
123
+ }
124
+ }
125
+ },
126
+ {
127
+ "id": 5,
128
+ "name": "PFASSTRUCTv5",
129
+ "smarts": [
130
+ "F[#6](F)(F)[#6](F)",
131
+ "F[#6](F)[#6](F)(F)",
132
+ "F[#6](F)(F)[#6]~[#6](F)(F)",
133
+ "[#6](F)(F)[#5,#7,#8,#14,#15,#16][#6](F)(F)"
134
+ ],
135
+ "fluorineRatio": 0.3,
136
+ "includeHydrogen": false,
137
+ "description": "Custom structural patterns or F ratio ≥ 0.3 (heavy atoms only)",
138
+ "test": {
139
+ "category": "definition",
140
+ "examples": {
141
+ "positives": [
142
+ "C(=O)(C(F)(F)Cl)C(F)(F)Cl",
143
+ "COC(C(OC(C(=O)C(F)(F)F)(F)F)F)(F)F",
144
+ "C(C(=O)CC(C(=O)C(F)(F)F)(F)F)C(C(=O)C(F)(F)F)(F)F",
145
+ "C(C(CC(F)(F)F)(F)F)C(CC(F)(F)F)(F)F",
146
+ "C(=C(F)F)(OC(OC(=C(F)F)F)(F)F)F",
147
+ "C(=C(F)F)(C(C(=C(F)F)F)(F)F)F",
148
+ "C1(=C(C(=C(C(=C1F)F)F)F)F)C2=C(C(C(=C(C2(F)F)F)F)(F)F)F",
149
+ "C(C(=O)F)(F)F",
150
+ "C(=C(C(F)(F)Cl)F)(C(F)(F)Cl)F",
151
+ "C(C(C(C(F)F)F)F)F",
152
+ "COC(CC(=C(F)F)C(F)(F)F)SC1=CC=CC=C1",
153
+ "C1=CC(=CC(=C1)Cl)NOC(C(C(=O)C(F)(F)F)F)(F)F",
154
+ "CC(C)(CS(=O)(=O)O)NC(=O)CCSCCC(C(C(C(F)(F)F)(F)F)(F)F)(F)F",
155
+ "CN(C)CCCN(CCC(=O)O)S(=O)(=O)C(C(C(C(F)(F)F)(F)F)(F)F)(F)F",
156
+ "C1=CC(=C(C=C1N)Cl)OC(C(OC(F)(F)F)F)(F)F",
157
+ "C1=CC=C2C(=C1)C(OC(O2)(C(F)(F)F)F)(F)F",
158
+ "CCCOC(=O)C(=C(F)F)C(F)(F)F",
159
+ "C[N+](C)(CCCNS(=O)(=O)CCC(C(C(C(C(C(F)(F)F)(F)F)(F)F)(F)F)(F)F)(F)F)CC(=O)[O-]"
160
+ ],
161
+ "negatives": [
162
+ "CCCCC(CC(C(F)(F)Br)(F)Cl)Br",
163
+ "C(C(OC(Cl)(Cl)Cl)(F)F)(F)Cl",
164
+ "C1=COC(=C1)C=C(S(=O)(=O)C(F)(F)F)S(=O)(=O)C(F)(F)F",
165
+ "COC(=C(F)Cl)F"
166
+ ]
167
+ }
168
+ }
169
+ }
170
+ ]
@@ -0,0 +1,4 @@
1
+ {"Perfluoroalkyl":{"component":"[C$([#6H0X4]([F,$([CX4H0]F),$([CX4H0][CX4H0]F),$([#8][CX4H0]F)])([!#17,!#35,!#54])([!#17,!#35,!#54])[CX4H0,F])!R,C$([#6H0X4]([#6H0X4])([#6H0X4])[#6H0X4])!R,O$([#8]([CX4H0](F)F)[CX4H0](F)F)]",
2
+ "end":"[C$([CX4H0]([F,CX4$([CX4H0](F)F)])([F,CX4$([CX4H0](F)F)])([$(*[#1,#17,#35,#53]),!$(*[#9])!#9])),C$([CX4H0](F)(F)F)]"},
3
+ "Polyfluoroalkyl":{"component":"[C$([CX4]([#9,$([#6X4][#9]),$([#8]CF)])[C,F,#1,#17,#35,#53])!R,C$([#6X4]([#6X4])([#6X4])[#6X4])!R,C$([#6X4]([#6X4])[#6X4]F)!R,O$([#8](CF)[C$(C[F,C$(CC(F))])])]",
4
+ "end":"[C$([#6X4]([!$([#6][#9]),#1,F,#17,#35,#53])([!$([#6][#9]),F,#1,#17,#35,#53])F)]"}}
@@ -0,0 +1,142 @@
1
+ {
2
+ "F": {
3
+ "alkyl": {
4
+ "per": {
5
+ "name": "Perfluoroalkyl",
6
+ "component": "[C$([#6H0X4]([F,$([CX4H0]F),$([CX4H0][CX4H0]F),$([#8][CX4H0]F)])([!#17,!#35,!#54])([!#17,!#35,!#54])[CX4H0,F])!R,C$([#6H0X4]([#6H0X4])([#6H0X4])[#6H0X4])!R,O$([#8]([CX4H0](F)F)[CX4H0](F)F)]",
7
+ "end": "[C$([CX4H0]([F,CX4$([CX4H0](F)F)])([F,CX4$([CX4H0](F)F)])([$(*[#1,#17,#35,#53]),!$(*[#9])!#9])),C$([CX4H0](F)(F)F)]"
8
+ },
9
+ "poly": {
10
+ "name": "Polyfluoroalkyl",
11
+ "component": "[C$([CX4]([#9,$([#6X4][#9]),$([#8]CF)])[C,F,#1,#17,#35,#53])!R,C$([#6X4]([#6X4])([#6X4])[#6X4])!R,C$([#6X4]([#6X4])[#6X4]F)!R,O$([#8](CF)[C$(C[F,C$(CC(F))])])]",
12
+ "end": "[C$([#6X4]([!$([#6][#9]),#1,F,#17,#35,#53])([!$([#6][#9]),F,#1,#17,#35,#53])F)]",
13
+ "constraints": {"gte": {"F": 2}}
14
+ }
15
+ },
16
+ "cyclic": {
17
+ "per": {
18
+ "name": "Perfluorocyclic",
19
+ "component": "[#6R$([#6R](F)[F,#6R$([#6](F)F)])]"
20
+ },
21
+ "poly": {
22
+ "name": "Polyfluorocyclic",
23
+ "component": "[#6R$([#6R]([#1,#9,#17,#35,#53])[F,#6R$([#6]([#1,#9,#17,#35,#53])F)])]"
24
+ }
25
+ },
26
+ "aryl": {
27
+ "per": {
28
+ "name": "Perfluoroaryl",
29
+ "component": "[#6aR$([#6aR][F,#6aR$([#6aR]F)])]"
30
+ },
31
+ "poly": {
32
+ "name": "Polyfluoroaryl",
33
+ "component": "[#6aR$([#6aR][F,#6aR$([#6aR][#9])]),#6aR$([#6aR]([#9,#17,#35,#53])[#6aR]F)]"
34
+ }
35
+ }
36
+ },
37
+ "Cl": {
38
+ "alkyl": {
39
+ "per": {
40
+ "name": "Perchloroalkyl",
41
+ "component": "[C$([#6H0X4]([Cl,$([CX4H0]Cl),$([CX4H0][CX4H0]Cl),$([#8][CX4H0]Cl)])([!#17,!#35,!#54])([!#17,!#35,!#54])[CX4H0,Cl])!R,C$([#6H0X4]([#6H0X4])([#6H0X4])[#6H0X4])!R,O$([#8]([CX4H0](Cl)Cl)[CX4H0](Cl)Cl)]",
42
+ "end": "[C$([CX4H0]([Cl,CX4$([CX4H0](Cl)Cl)])([Cl,CX4$([CX4H0](Cl)Cl)])([$(*[#1,#9,#35,#53]),!$(*[#17])!#17])),C$([CX4H0](Cl)(Cl)Cl)]"
43
+ },
44
+ "poly": {
45
+ "name": "Polychloroalkyl",
46
+ "component": "[C$([CX4]([#17,$([#6X4][#17]),$([#8]CCl)])[C,F,#1,#17,#35,#53])!R,C$([#6X4]([#6X4])([#6X4])[#6X4])!R,C$([#6X4]([#6X4])[#6X4]Cl)!R,O$([#8](CCl)[C$(C[Cl,C$(CC(Cl))])])]",
47
+ "end": "[C$([#6X4]([!$([#6][#17]),#1,#17,#9,#35,#53])([!$([#6][#17]),F,#1,#17,#35,#53])Cl)]",
48
+ "constraints": {"gte": {"Cl": 2}}
49
+ }
50
+ },
51
+ "cyclic": {
52
+ "per": {
53
+ "name": "Perchlorocyclic",
54
+ "component": "[#6R$([#6R](Cl)[Cl,#6R$([#6](Cl)Cl)])]"
55
+ },
56
+ "poly": {
57
+ "name": "Polychlorocyclic",
58
+ "component": "[#6R$([#6R]([#1,#9,#17,#35,#53])[Cl,#6R$([#6]([#1,#9,#17,#35,#53])Cl)])]"
59
+ }
60
+ },
61
+ "aryl": {
62
+ "per": {
63
+ "name": "Perchloroaryl",
64
+ "component": "[#6aR$([#6aR][Cl,#6aR$([#6aR]Cl)])]"
65
+ },
66
+ "poly": {
67
+ "name": "Polychloroaryl",
68
+ "component": "[#6aR$([#6aR][Cl,#6aR$([#6aR][#17])]),#6aR$([#6aR]([#17,#35,#53])[#6aR]Cl)]"
69
+ }
70
+ }
71
+ },
72
+ "Br": {
73
+ "alkyl": {
74
+ "per": {
75
+ "name": "Perbromoalkyl",
76
+ "component": "[C$([#6H0X4]([Br,$([CX4H0]Br),$([CX4H0][CX4H0]Br),$([#8][CX4H0]Br)])([!#17,!#35,!#54])([!#17,!#35,!#54])[CX4H0,Br])!R,C$([#6H0X4]([#6H0X4])([#6H0X4])[#6H0X4])!R,O$([#8]([CX4H0](Br)Br)[CX4H0](Br)Br)]",
77
+ "end": "[C$([CX4H0]([Br,CX4$([CX4H0](Br)Br)])([Br,CX4$([CX4H0](Br)Br)])([$(*[#1,#17,#9,#53]),!$(*[#35])!#35])),C$([CX4H0](Br)(Br)Br)]"
78
+ },
79
+ "poly": {
80
+ "name": "Polybromoalkyl",
81
+ "component": "[C$([CX4]([#35,$([#6X4][#35]),$([#8]CBr)])[C,F,#1,#17,#35,#53])!R,C$([#6X4]([#6X4])([#6X4])[#6X4])!R,C$([#6X4]([#6X4])[#6X4]Br)!R,O$([#8](CBr)[C$(C[Br,C$(CC(Br))])])]",
82
+ "end": "[C$([#6X4]([!$([#6][#35]),#1,Br,#17,#35,#53])([!$([#6][#35]),F,#1,#9,#17,#35,#53])Br)]",
83
+ "constraints": {"gte": {"Br": 2}}
84
+ }
85
+ },
86
+ "cyclic": {
87
+ "per": {
88
+ "name": "Perbromocyclic",
89
+ "component": "[#6R$([#6R](Br)[Br,#6R$([#6](Br)Br)])]"
90
+ },
91
+ "poly": {
92
+ "name": "Polybromocyclic",
93
+ "component": "[#6R$([#6R]([#1,#9,#17,#35,#53])[Br,#6R$([#6]([#1,#9,#17,#35,#53])Br)])]"
94
+ }
95
+ },
96
+ "aryl": {
97
+ "per": {
98
+ "name": "Perbromoaryl",
99
+ "component": "[#6aR$([#6aR][Br,#6aR$([#6aR]Br)])]"
100
+ },
101
+ "poly": {
102
+ "name": "Polybromoaryl",
103
+ "component": "[#6aR$([#6aR][Br,#6aR$([#6aR][#35])]),#6aR$([#6aR]([#9,#17,#35,#53])[#6aR]Br)]"
104
+ }
105
+ }
106
+ },
107
+ "I": {
108
+ "alkyl": {
109
+ "per": {
110
+ "name": "Periodoalkyl",
111
+ "component": "[C$([#6H0X4]([I,$([CX4H0]I),$([CX4H0][CX4H0]I),$([#8][CX4H0]I)])([!#17,!#35,!#54])([!#17,!#35,!#54])[CX4H0,I])!R,C$([#6H0X4]([#6H0X4])([#6H0X4])[#6H0X4])!R,O$([#8]([CX4H0](I)I)[CX4H0](I)I)]",
112
+ "end": "[C$([CX4H0]([I,CX4$([CX4H0](I)I)])([I,CX4$([CX4H0](I)I)])([$(*[#1,#17,#35,#9]),!$(*[#53])!#53])),C$([CX4H0](I)(I)I)]"
113
+ },
114
+ "poly": {
115
+ "name": "Polyiodoalkyl",
116
+ "component": "[C$([CX4]([#53,$([#6X4][#53]),$([#8]CI)])[C,#9,#1,#17,#35,#53])!R,C$([#6X4]([#6X4])([#6X4])[#6X4])!R,C$([#6X4]([#6X4])[#6X4]I)!R,O$([#8](CI)[C$(C[I,C$(CC(I))])])]",
117
+ "end": "[C$([#6X4]([!$([#6][#53]),#1,#9,#17,#35,#53])([!$([#6][#53]),F,#1,#17,#35,#53])I)]",
118
+ "constraints": {"gte": {"I": 2}}
119
+ }
120
+ },
121
+ "cyclic": {
122
+ "per": {
123
+ "name": "Periodocyclic",
124
+ "component": "[#6R$([#6R](I)[I,#6R$([#6](I)I)])]"
125
+ },
126
+ "poly": {
127
+ "name": "Polyiodocyclic",
128
+ "component": "[#6R$([#6R]([#1,#9,#17,#35,#53])[I,#6R$([#6]([#1,#9,#17,#35,#53])I)])]"
129
+ }
130
+ },
131
+ "aryl": {
132
+ "per": {
133
+ "name": "Periodoaryl",
134
+ "component": "[#6aR$([#6aR][I,#6aR$([#6aR]I)])]"
135
+ },
136
+ "poly": {
137
+ "name": "Polyiodoaryl",
138
+ "component": "[#6aR$([#6aR][I,#6aR$([#6aR][#53])]),#6aR$([#6aR]([#9,#17,#35,#53])[#6aR]I)]"
139
+ }
140
+ }
141
+ }
142
+ }