diff --git a/generated_molecules.csv b/generated_molecules.csv index a27f9c1a80ca7705c1904983eab2ca3934e7d9a2..fee7dbc4e290be0d8fb1b561586a6e1ec94a9fc7 100644 --- a/generated_molecules.csv +++ b/generated_molecules.csv @@ -10,205 +10,178 @@ smiles,count [*]S,1 [*][C@H],1 [*]CC,1 +[*]CN,1 [*]OC,1 [*]CO,1 [*]NC,1 -[*]CN,1 [*]SC,1 [*]N[C@@H],1 [*]/C,1 -[*]C#C,1 +[*]CCl,1 +[*]NO,1 +[*]CS,1 +[*]CCC,1 +[*]CCN,1 +[*]C=C,1 [*]C#N,1 -[*]CO[C@H],1 +[*]NCC,1 +[*]CNC,1 [*]CNS,1 +[*]N/N,1 [*]OCC,1 -[*]CCC,1 -[*]NCC,1 -[*]C=C,1 -[*]SCC,1 -[*]CCN,1 +[*]C#C,1 +[*]COC,1 [*]CN[C@H],1 -[*]CC[C@@],1 -[*]CNC,1 -[*][C@@H](C),1 -[*]C(F),1 -[*]CC=C,1 +[*][C@@H](O),1 [*]N(C),1 [*]C(C),1 -[*]C#CC,1 -[*][C@H](C),1 -[*]S(C),1 -[*]C(N),1 [*]CCCC,1 -[*]/C=C,1 -[*]OCCN,1 +[*]NCCC,1 +[*][C@H](O),1 [*]CC#N,1 +[*]S(C),1 +[*]C(F),1 +[*]CC#C,1 +[*]OCCO,1 +[*][C@H](N),1 +[*]CCCN,1 +[*]CCNC,1 +[*]CN=C,1 +[*]/C=C,1 +[*][C@@H](N),1 [*]C(=O),1 -[*]C(=C),1 [*]OC(C),1 -[*]N(C)C,1 -[*]S(=O),1 -[*]C(=N),1 -[*]OC(F),1 -[*]CN(C),1 -[*]C(C)N,1 -[*]OCC#C,1 -[*][C@H](C)N,1 [*]C1CC1,1 [*]C(C)C,1 +[*]N(C)C,1 +[*]NC(C),1 +[*]N(CC),1 +[*]S(=O),1 +[*]CCCCC,1 [*]C(=O)O,1 -[*]C(=O)C,1 [*]C(=O)N,1 [*]NC(=O),1 -[*]C(=N)N,1 -[*]C(C)=O,1 -[*]OC(C)C,1 +[*]C=C(C),1 +[*]CCC(C),1 +[*]OC(=O),1 [*]CC(=O),1 -[*]C(C#C),1 -[*]c1cn[nH]c1,1 -[*]c1ccn[nH]1,1 -[*]N1CCCC1,1 -[*]C(F)(F),1 -[*]c1ccco1,1 -[*]N1CCC[C@@H]1,1 +[*]C1CCC1,1 +[*]CN(CC),1 +[*]C1CNC1,1 +[*]NC(=N),1 +[*]c1ccsc1,1 +[*]c1cnc[nH]1,1 +[*]c1c[nH]cn1,1 [*]C(=O)OC,1 -[*]C(=O)CC,1 -[*]C(=O)NN,1 -[*]NC(=O)N,1 -[*]C(=O)NC,1 -[*]n1cncc1,1 -[*]OC(C)=O,1 -[*]C(=O)NS,1 -[*]NC(=O)C,1 -[*]CCC(=O),1 -[*]c1ccc[nH]1,1 -[*]n1cccn1,1 -[*]C(C)(C),1 +[*]N1CCC[C@H]1,1 +[*]C1CCCC1,1 +[*]n1cncn1,1 +[*]CC(=O)O,1 +[*]N1CCCC1,1 +[*]NC(=O)O,1 +[*]c1cscc1,1 +[*]CNC(=N),1 +[*]C=C(C)C,1 [*]n1ccnc1,1 -[*]C(=O)CN,1 -[*]c1cccs1,1 +[*]OC(=O)O,1 [*]c1ccccc1,1 -[*]c1cccnc1,1 -[*]c1cncnc1,1 -[*]C(F)(F)F,1 -[*]C1CCCCN1,1 -[*]C(=O)N/N,1 -[*]C1CCOCC1,1 -[*]C(=O)NCC,1 -[*]N1CCOCC1,1 -[*]C(=O)NNC,1 -[*]NC(=O)CS,1 -[*]C(=O)OCC,1 -[*]c1ccncc1,1 +[*]Cn1cncn1,1 [*]N1CCCCC1,1 -[*]NC(=O)CO,1 +[*]N1CCOCC1,1 +[*]c1cccnc1,1 +[*]C1=NCCN1,1 +[*]OC(=O)/C,1 +[*]C1CCCCC1,1 +[*]N1CCC[C@H]1C,1 [*]S(C)(=O),1 -[*]NC(=O)NC,1 -[*]c1ccccn1,1 -[*]NC(=O)CN,1 +[*]NC(C)(C),1 +[*]CCCC(=O),1 +[*]CNC(=N)N,1 +[*]Cc1ccccc1,1 +[*]NCc1sccc1,1 +[*]Cc1ccccn1,1 [*]Oc1ccccc1,1 -[*]c1ccccc1N,1 -[*]OC1CCCCC1,1 -[*]C(=O)NCCC,1 -[*]c1ccccc1Cl,1 -[*]C(=O)NCCN,1 -[*]S(=O)(=O),1 -[*]CN1CCOCC1,1 -[*]c1ccccc1C,1 -[*]c1ccccc1F,1 -[*]c1cnn(C)c1,1 -[*]C(=O)NC(C),1 -[*]n1nc(C)cc1,1 -[*]C1NC[C@@H](C)N1,1 -[*]n1cnc(C)c1,1 +[*]Nc1ccccc1,1 +[*]N1CCCCCC1,1 +[*]c1nc(C)c[nH]1,1 +[*]NCc1ccccn1,1 +[*]NCc1ccccc1,1 +[*]CCN1CCCCC1,1 +[*]CCc1ccccc1,1 +[*]CCC1CCCCC1,1 +[*]COc1ccccc1,1 +[*]C(NC(C)=O),1 +[*]SCc1ccccc1,1 [*]S(C)(=O)=O,1 -[*][C@@H](NC(C)=O),1 -[*]S(=O)(=O)N,1 -[*]OCc1ccccc1,1 -[*]c1cccc(F)c1,1 -[*]c1ccc(F)cc1,1 -[*]c1cccc(Cl)c1,1 -[*]C1CC(=O)NN1,1 -[*]c1ccnc(N)n1,1 [*]c1ccc(O)cc1,1 -[*]C1CC(=O)NC1,1 -[*]c1ccc(O)nn1,1 -[*]C(=O)N1CCCC1,1 -[*]C(=O)NNC(=O),1 -[*]C(=O)OCC(=O),1 -[*]CC1OC(=O)CC1,1 -[*]C1=NNC(=O)CC1,1 -[*]C(=O)NNC(=O)C,1 -[*]C1CCCN(CC#C)C1,1 -[*]Cc1cccc(=O)n1O,1 -[*]C1(C)SCC(=O)N1,1 -[*]Cc1ccc2cc[nH]c2c1,1 -[*]c1cccc2c1CNCC2,1 -[*]c1cncc2c1CCCC2,1 -[*]CN1CCc2cncnc2C1,1 -[*]C(Nc1ccc(C)cc1),1 -[*]Nc1cnc2ccccc2n1,1 -[*]c1nc2cc(N)ccc2o1,1 -[*]NCc1cc2ccccc2nc1,1 -[*]N1C(=O)CC(=O)NC1,1 -[*]N(C)Cc1noc(CC)n1,1 -[*]COc1cccc2cccnc12,1 -[*]C#Cc1ccnc(OCC)c1,1 -[*]c1ccc(Cl)c2c1CNC2,1 -[*]c1cn(C)c(=O)[nH]c1=O,1 -[*]C(=O)Nc1ccc(Cl)cc1,1 -[*]Nc1ncc2c(n1)CCCC2,1 -[*]c1ccnc(C2CCCN2)n1,1 -[*]c1ccc(CC(=O)NO)s1,1 -[*]N1C2CCCC1CC(=O)C2,1 -[*]C(=O)c1cc(CCC)ccc1,1 -[*]NCc1cccc(C(=O)O)c1,1 -[*]N1CCN(Cc2ccco2)CC1,1 -[*]C(=O)N1CC2CCNCC2C1,1 -[*]c1cccc(N2CCOCC2)n1,1 +[*]N1C(=O)CCC1,1 +[*]N1C(=O)OC[C@H]1,1 +[*]c1ccc(F)cc1,1 +[*]c1ccc(C)cc1,1 +[*]C1NC(=O)CC1,1 +[*]C1SC(=O)NC1,1 +[*]c1ccc(N)cc1,1 +[*]c1cccc(O)c1,1 +[*]c1ccc(Cl)cc1,1 +[*]c1c(F)cccc1,1 +[*]c1ccc(OC)cc1,1 +[*]Cc1ccc(O)cc1,1 +[*]C1C(=O)NCCN1,1 +[*]C(=O)N1CCC[C@H]1,1 +[*]Oc1cccc(Cl)c1,1 +[*]Nc1cccc(Cl)c1,1 +[*]CN1CCN(C)CC1,1 +[*]Oc1ccc(Cl)cc1,1 +[*]c1n[nH]c2c1CCCC2,1 +[*]OC(=O)c1cccs1,1 +[*]n1nnc2ccccc21,1 +[*]c1ccc(OC)cc1C,1 +[*]NC(=O)c1ccco1,1 +[*]c1c[nH]c2ccccc12,1 +[*]c1nnc2ccccn12,1 +[*]c1csc2ccccc12,1 +[*]c1cc(F)cc(F)c1,1 +[*]c1ccc(Cl)c(Cl)c1,1 +[*]Sc1nc2ccccc2o1,1 +[*]NC(=O)c1ccccc1,1 +[*]c1c(C)cc(O)cc1,1 +[*]C1COc2ccccc2O1,1 +[*]OC(=O)c1ccccc1,1 +[*]N1CC2CCC(C2)C1,1 +[*]c1ccc2ccccc2c1,1 +[*]Sc1nc2ccccc2[nH]1,1 +[*]Oc1cccc2ccccc12,1 +[*]Nc1cccc2ccccc12,1 +[*]Nc1ccnc2ccccc12,1 +[*]C(=O)N1C[C@@H](F)C[C@H]1,1 +[*]c1ccc2c(c1)OCO2,1 +[*]c1ccc(C(=O)O)cc1,1 +[*]CNc1ccc2ccccc2c1,1 +[*]n1cnc2ccccc2c1=O,1 +[*]NC(=O)c1ccc(C)cc1,1 +[*]Nc1ccc(C(=O)O)cc1,1 +[*]N1C(=O)NC(C)(C)C1,1 +[*]OC(=O)c1ccc(O)cc1,1 +[*]c1cccc(C(F)(F)F)c1,1 +[*]N1C(=O)CSc2ccccc21,1 +[*]N1C(=O)COc2ccccc21,1 +[*]N1CCN(c2ccccc2)CC1,1 +[*]C(=O)N1CCc2ccccc21,1 +[*]N1CCC(c2ccccc2)CC1,1 [*]Nc1ccnc2cc(Cl)ccc12,1 -[*]CCc1nc2cc(N)ccc2o1,1 -[*]Cc1c[nH]c2nc(O)nc-2c1,1 -[*]c1ccc(C(=O)O)c(O)c1,1 -[*]C(=O)CC1(C#N)CCOCC1,1 -[*]c1ccc(CCN=C(NN)N)o1,1 -[*]c1ccc2c(c1)OC(=O)C2,1 -[*]c1ccc(S(N)(=O)=O)cc1,1 -[*]C(=O)Nc1c[nH]c(=O)[nH]c1=O,1 -[*]c1nc2c(c(=O)[nH]1)COCC2,1 -[*]NC(=O)c1ccc(F)c(F)c1,1 -[*]Cc1ccnc2c1CC[C@@H]1CNCCN21,1 -[*]c1cc(=O)c2cc(N)ccc2o1,1 -[*]NC(=O)Nc1nc2c(s1)CCC2,1 -[*]c1cc(C)nc2ccc3nc[nH]c3c12,1 -[*]c1cnc2ccc(NC(C)=O)cn12,1 -[*]c1cc(=O)c2cc(OC)ccc2o1,1 -[*]NC(=O)c1cc2cc(Cl)ccc2s1,1 -[*]NC(=O)C1CCCN([C@@H](C)CC)C1,1 -[*]C(=O)N1CCN(C)C(C)(C)C1,1 -[*]C(=O)Nc1ccc2nc(C)sc2c1,1 -[*]OC1CCN(Cc2ccc(Cl)s2)CC1,1 -[*]C1CCN(C(CN)c2ccccc2)CC1,1 -[*]c1ccc(NCc2cccc(O)c2)cc1,1 -[*]N1CC(NC(=O)C2CCCCC2)CC1,1 -[*]NC(=O)c1cc2c([nH]c1=O)CCC2,1 -[*]c1ccc(SC(F)(F)C(=O)O)cc1,1 -[*]c1ccc(C(=O)NCc2ccco2)cc1,1 -[*]N1CC(OC)C2=C1CC(C)(C)NS2,1 -[*]C1=NCC(=O)Nc2cc(OC)ccc21,1 -[*]c1ccc(-c2cccc3[nH]ccc23)nc1,1 -[*]c1ccnc(COc2ccc(CO)cc2)n1,1 -[*]c1cc2c(c(C(=O)O)c1)OCCNC2,1 -[*]NCc1cc2n(n1)-c1ccccc1CCC2,1 -[*]Nc1cc(=O)oc2c1ccc1ccccc12,1 -[*]c1ccc(NC(=N)c2ccc(Cl)s2)cc1,1 -[*]c1cc(C(F)(F)F)nn1-c1ccccc1,1 -[*]C1CNCc2ncnc(CCc3ccccc3)c21,1 -[*]c1ccc(Cl)c2c1NS(=O)(=O)C/C2,1 -[*]NC(=O)C12CC3CC(CC(C3)C1)C2,1 -[*]Oc1ccc2oc(CCN3CCC[C@H]3C)cc2c1,1 -[*]N1C(=O)CC(N2CC(C)CC(C)C2)C1,1 -[*]C(=O)N1CC(=O)Nc2c(C)cccc2C1,1 -[*]NCc1cccc(-c2c[nH]c(=O)[nH]c2=O)c1,1 -[*]C1CNCCc2cc(Cl)c(OCCC)c(O)c21,1 -[*]c1cnc(NC)c(-c2ccc(OC)cc2)n1,1 +[*]CCN1C(=O)[C@@H]2CCCC[C@H]2C1,1 +[*]c1ccc(-c2ccccc2)cc1,1 +[*]C(=O)N1C=CC(F)(F)CC1,1 +[*]NC(=O)c1ccc2ccccc2c1,1 +[*]N1c2cccc3cccc(c23)S1,1 +[*]N1CCN(c2ccc(O)cc2)CC1,1 +[*]c1ccc2nc(N)[nH]c(=O)c2c1,1 +[*]NC(=O)c1ccc(OC)c(OC)c1,1 +[*]CN1CCN(c2cccc(Cl)c2)CC1,1 +[*]c1ccc(OC(F)(F)C(F)F)cc1,1 +[*]NCCC12CC3CC(CC(C3)C1)C2,1 +[*]N1CCN(Cc2cc(C)ccc2C)CC1,1 +[*]CN1CCC2(C=Cc3ccccc32)CC1,1 +[*]CN1C(=O)c2cc3ccccc3cc2C1,1 +[*]CN1C(=O)C2C3C=CC(C3)C2C1,1 +[*]c1ccc(C#Cc2cccc(OC)c2)cc1,1 diff --git a/icons/icon_1.png b/icons/icon_1.png new file mode 100644 index 0000000000000000000000000000000000000000..6f712c386ae234081a495a63a986aedcebb5ba99 Binary files /dev/null and b/icons/icon_1.png differ diff --git a/icons/icon_10.png b/icons/icon_10.png new file mode 100644 index 0000000000000000000000000000000000000000..509521236770993e83c166e8dbea8222fda5b9fe Binary files /dev/null and b/icons/icon_10.png differ diff --git a/icons/icon_100.png b/icons/icon_100.png new file mode 100644 index 0000000000000000000000000000000000000000..1f023fcdea721781c248f4f75e852703b1a178e9 Binary files /dev/null and b/icons/icon_100.png differ diff --git a/icons/icon_101.png b/icons/icon_101.png new file mode 100644 index 0000000000000000000000000000000000000000..d0711b6455c0b04116e11ee0dc726103e3e8aba0 Binary files /dev/null and b/icons/icon_101.png differ diff --git a/icons/icon_102.png b/icons/icon_102.png new file mode 100644 index 0000000000000000000000000000000000000000..72b139b8eaf9e4c15310708f04837c782ec4f87d Binary files /dev/null and b/icons/icon_102.png differ diff --git a/icons/icon_103.png b/icons/icon_103.png new file mode 100644 index 0000000000000000000000000000000000000000..3fcc23d5a4a7302292c1c11b2727301f76c00c68 Binary files /dev/null and b/icons/icon_103.png differ diff --git a/icons/icon_104.png b/icons/icon_104.png new file mode 100644 index 0000000000000000000000000000000000000000..7fd1c413c353fb3e5221ac2da6b9005434c35a82 Binary files /dev/null and b/icons/icon_104.png differ diff --git a/icons/icon_105.png b/icons/icon_105.png new file mode 100644 index 0000000000000000000000000000000000000000..8109a2018584f5ab70d6268d52624eda21fcfff5 Binary files /dev/null and b/icons/icon_105.png differ diff --git a/icons/icon_106.png b/icons/icon_106.png new file mode 100644 index 0000000000000000000000000000000000000000..26680d94e1bb03adbaa6e7a3e797e5a689853b46 Binary files /dev/null and b/icons/icon_106.png differ diff --git a/icons/icon_107.png b/icons/icon_107.png new file mode 100644 index 0000000000000000000000000000000000000000..c40a90bfc098bad45e45d604d20992587742346d Binary files /dev/null and b/icons/icon_107.png differ diff --git a/icons/icon_108.png b/icons/icon_108.png new file mode 100644 index 0000000000000000000000000000000000000000..81754b2a46bc129b2e5a4291cf8d218d783539f1 Binary files /dev/null and b/icons/icon_108.png differ diff --git a/icons/icon_109.png b/icons/icon_109.png new file mode 100644 index 0000000000000000000000000000000000000000..f1364ae6f05357dcd60c30307b52deb507a1d068 Binary files /dev/null and b/icons/icon_109.png differ diff --git a/icons/icon_11.png b/icons/icon_11.png new file mode 100644 index 0000000000000000000000000000000000000000..7ff47103b4b935eefad5932188419e8de142c464 Binary files /dev/null and b/icons/icon_11.png differ diff --git a/icons/icon_110.png b/icons/icon_110.png new file mode 100644 index 0000000000000000000000000000000000000000..ec9fd1cb73663e61a7f39de276f34903134d04cf Binary files /dev/null and b/icons/icon_110.png differ diff --git a/icons/icon_111.png b/icons/icon_111.png new file mode 100644 index 0000000000000000000000000000000000000000..668cee4252149b37cbc805274be9b2675bdc9e84 Binary files /dev/null and b/icons/icon_111.png differ diff --git a/icons/icon_112.png b/icons/icon_112.png new file mode 100644 index 0000000000000000000000000000000000000000..e05ea3433dd5804bbe5ed9fbb2171530052037ff Binary files /dev/null and b/icons/icon_112.png differ diff --git a/icons/icon_113.png b/icons/icon_113.png new file mode 100644 index 0000000000000000000000000000000000000000..64eeaf3d9266784d99475d32657b902ea51c6aef Binary files /dev/null and b/icons/icon_113.png differ diff --git a/icons/icon_114.png b/icons/icon_114.png new file mode 100644 index 0000000000000000000000000000000000000000..8d97ce21145f8a64d32a8bd8669bbae08968ecbf Binary files /dev/null and b/icons/icon_114.png differ diff --git a/icons/icon_115.png b/icons/icon_115.png new file mode 100644 index 0000000000000000000000000000000000000000..eeaaa6d65c526f0a5a12cb0d23d1fd4d1522e205 Binary files /dev/null and b/icons/icon_115.png differ diff --git a/icons/icon_116.png b/icons/icon_116.png new file mode 100644 index 0000000000000000000000000000000000000000..582c8587fd43f7973dab163e5fcfe6dc65b35d32 Binary files /dev/null and b/icons/icon_116.png differ diff --git a/icons/icon_117.png b/icons/icon_117.png new file mode 100644 index 0000000000000000000000000000000000000000..773f138e6dbed148538729cf01bd9e335e5fed3e Binary files /dev/null and b/icons/icon_117.png differ diff --git a/icons/icon_118.png b/icons/icon_118.png new file mode 100644 index 0000000000000000000000000000000000000000..505316adcdf4daab713c6e32cb11173e69d2abf8 Binary files /dev/null and b/icons/icon_118.png differ diff --git a/icons/icon_119.png b/icons/icon_119.png new file mode 100644 index 0000000000000000000000000000000000000000..39a7634fa12b14d9f4bc6bcae16d81ff55ad2914 Binary files /dev/null and b/icons/icon_119.png differ diff --git a/icons/icon_12.png b/icons/icon_12.png new file mode 100644 index 0000000000000000000000000000000000000000..f075a583440d5cf8b1733320caefed2b387f4f1c Binary files /dev/null and b/icons/icon_12.png differ diff --git a/icons/icon_120.png b/icons/icon_120.png new file mode 100644 index 0000000000000000000000000000000000000000..43a7cd25e525b59ad1801b54618c050682ef1dc4 Binary files /dev/null and b/icons/icon_120.png differ diff --git a/icons/icon_121.png b/icons/icon_121.png new file mode 100644 index 0000000000000000000000000000000000000000..10f1ab4508f0e9fdecc4e07d0d0ba1ce00db97a5 Binary files /dev/null and b/icons/icon_121.png differ diff --git a/icons/icon_122.png b/icons/icon_122.png new file mode 100644 index 0000000000000000000000000000000000000000..0e0426017dfd7f34acf1c440323b54e203a6af6c Binary files /dev/null and b/icons/icon_122.png differ diff --git a/icons/icon_123.png b/icons/icon_123.png new file mode 100644 index 0000000000000000000000000000000000000000..9e51e44d1327d0c9547eb391fc431f3610181ca2 Binary files /dev/null and b/icons/icon_123.png differ diff --git a/icons/icon_124.png b/icons/icon_124.png new file mode 100644 index 0000000000000000000000000000000000000000..2dd95fa4984111ea8775868df06f68b83747c1c9 Binary files /dev/null and b/icons/icon_124.png differ diff --git a/icons/icon_125.png b/icons/icon_125.png new file mode 100644 index 0000000000000000000000000000000000000000..c2459a628c2011ea1644b73e93adb544b32e90a7 Binary files /dev/null and b/icons/icon_125.png differ diff --git a/icons/icon_126.png b/icons/icon_126.png new file mode 100644 index 0000000000000000000000000000000000000000..51a98e310d3d16c9264b76207267aebf66c5e5e9 Binary files /dev/null and b/icons/icon_126.png differ diff --git a/icons/icon_127.png b/icons/icon_127.png new file mode 100644 index 0000000000000000000000000000000000000000..c2075834f009c601fb2a33a16d59de7abeae4043 Binary files /dev/null and b/icons/icon_127.png differ diff --git a/icons/icon_128.png b/icons/icon_128.png new file mode 100644 index 0000000000000000000000000000000000000000..633e4b3309363fddd149b6a07f73a98de353ca0d Binary files /dev/null and b/icons/icon_128.png differ diff --git a/icons/icon_129.png b/icons/icon_129.png new file mode 100644 index 0000000000000000000000000000000000000000..1104287736c8fc5dd32c92739e541bacb6a834bb Binary files /dev/null and b/icons/icon_129.png differ diff --git a/icons/icon_13.png b/icons/icon_13.png new file mode 100644 index 0000000000000000000000000000000000000000..9a5f5f34a9b5cb07fd93f8340b3ec67813520663 Binary files /dev/null and b/icons/icon_13.png differ diff --git a/icons/icon_130.png b/icons/icon_130.png new file mode 100644 index 0000000000000000000000000000000000000000..306f844f28019ae183ebf00c2e4574d665fbae76 Binary files /dev/null and b/icons/icon_130.png differ diff --git a/icons/icon_131.png b/icons/icon_131.png new file mode 100644 index 0000000000000000000000000000000000000000..2b54ee1462059006798cc4800e224d02568c47c0 Binary files /dev/null and b/icons/icon_131.png differ diff --git a/icons/icon_132.png b/icons/icon_132.png new file mode 100644 index 0000000000000000000000000000000000000000..b41d2ad3146e360cb0fff5fa3f4b8cbad91e1dd2 Binary files /dev/null and b/icons/icon_132.png differ diff --git a/icons/icon_133.png b/icons/icon_133.png new file mode 100644 index 0000000000000000000000000000000000000000..7fcc368fc2b8b9ca4d0c839dd3a6d7a0e0f854d1 Binary files /dev/null and b/icons/icon_133.png differ diff --git a/icons/icon_134.png b/icons/icon_134.png new file mode 100644 index 0000000000000000000000000000000000000000..42de578234eb0d67ffce9e9220dfadaebecb140e Binary files /dev/null and b/icons/icon_134.png differ diff --git a/icons/icon_135.png b/icons/icon_135.png new file mode 100644 index 0000000000000000000000000000000000000000..9b4bc99231e9f5eccdcb397e0d62a7b8584ae836 Binary files /dev/null and b/icons/icon_135.png differ diff --git a/icons/icon_136.png b/icons/icon_136.png new file mode 100644 index 0000000000000000000000000000000000000000..904abfad61d73c01a5be728893ba96656665e2da Binary files /dev/null and b/icons/icon_136.png differ diff --git a/icons/icon_137.png b/icons/icon_137.png new file mode 100644 index 0000000000000000000000000000000000000000..547cc98bf318b025592d0112f8cc95fe6481459a Binary files /dev/null and b/icons/icon_137.png differ diff --git a/icons/icon_138.png b/icons/icon_138.png new file mode 100644 index 0000000000000000000000000000000000000000..d7dda796e17f118badfe5e6bdae414838573c4a4 Binary files /dev/null and b/icons/icon_138.png differ diff --git a/icons/icon_139.png b/icons/icon_139.png new file mode 100644 index 0000000000000000000000000000000000000000..3a06d337056af08ce37a58f69086f10f3149b668 Binary files /dev/null and b/icons/icon_139.png differ diff --git a/icons/icon_14.png b/icons/icon_14.png new file mode 100644 index 0000000000000000000000000000000000000000..5ad1f5b85b8d2766822e265c954b4ec67ac7eafd Binary files /dev/null and b/icons/icon_14.png differ diff --git a/icons/icon_140.png b/icons/icon_140.png new file mode 100644 index 0000000000000000000000000000000000000000..204a848d79855a999583820c7f79eb414a568e03 Binary files /dev/null and b/icons/icon_140.png differ diff --git a/icons/icon_141.png b/icons/icon_141.png new file mode 100644 index 0000000000000000000000000000000000000000..0d352b19dccdc1cf557db79c0b909db7e768c834 Binary files /dev/null and b/icons/icon_141.png differ diff --git a/icons/icon_142.png b/icons/icon_142.png new file mode 100644 index 0000000000000000000000000000000000000000..205665712c4322b1eb2a2d73351c75c637fbb884 Binary files /dev/null and b/icons/icon_142.png differ diff --git a/icons/icon_143.png b/icons/icon_143.png new file mode 100644 index 0000000000000000000000000000000000000000..9aa2f1e17a3241d64c2f94d5fc5820b355140e3d Binary files /dev/null and b/icons/icon_143.png differ diff --git a/icons/icon_144.png b/icons/icon_144.png new file mode 100644 index 0000000000000000000000000000000000000000..07588b9335ccf8f561eab5108ee898e80ff0caa6 Binary files /dev/null and b/icons/icon_144.png differ diff --git a/icons/icon_145.png b/icons/icon_145.png new file mode 100644 index 0000000000000000000000000000000000000000..cfc31a5650f665e3ceb50bf87e7662c6348744c4 Binary files /dev/null and b/icons/icon_145.png differ diff --git a/icons/icon_146.png b/icons/icon_146.png new file mode 100644 index 0000000000000000000000000000000000000000..43f0a79033eef8b2c90fbbdaedd6f294e6ea7916 Binary files /dev/null and b/icons/icon_146.png differ diff --git a/icons/icon_147.png b/icons/icon_147.png new file mode 100644 index 0000000000000000000000000000000000000000..4fde6fc520adf25f75042355b313a7fb96d152aa Binary files /dev/null and b/icons/icon_147.png differ diff --git a/icons/icon_148.png b/icons/icon_148.png new file mode 100644 index 0000000000000000000000000000000000000000..5728050ae0c6ae3fb7bafb22ce5478a77c7ecff6 Binary files /dev/null and b/icons/icon_148.png differ diff --git a/icons/icon_149.png b/icons/icon_149.png new file mode 100644 index 0000000000000000000000000000000000000000..f50c5f863c431be93d4a0f21872d55a1f0099985 Binary files /dev/null and b/icons/icon_149.png differ diff --git a/icons/icon_15.png b/icons/icon_15.png new file mode 100644 index 0000000000000000000000000000000000000000..699ef96955f0def0712d4809eefc4692dfcf6747 Binary files /dev/null and b/icons/icon_15.png differ diff --git a/icons/icon_150.png b/icons/icon_150.png new file mode 100644 index 0000000000000000000000000000000000000000..6699d6aace2ca6b1ecf8ea332165d96f486d50c8 Binary files /dev/null and b/icons/icon_150.png differ diff --git a/icons/icon_151.png b/icons/icon_151.png new file mode 100644 index 0000000000000000000000000000000000000000..718fd33ec9ad43ec120e25aa5ba56b6c3ffe254c Binary files /dev/null and b/icons/icon_151.png differ diff --git a/icons/icon_152.png b/icons/icon_152.png new file mode 100644 index 0000000000000000000000000000000000000000..1750cdae12d358c707c231a5fafc38d324cef3a7 Binary files /dev/null and b/icons/icon_152.png differ diff --git a/icons/icon_153.png b/icons/icon_153.png new file mode 100644 index 0000000000000000000000000000000000000000..5308484cfdcb27ee0add6dc47f5e6cf606637848 Binary files /dev/null and b/icons/icon_153.png differ diff --git a/icons/icon_154.png b/icons/icon_154.png new file mode 100644 index 0000000000000000000000000000000000000000..51e9c3e56671b99574838a67a8290eaf8e205acd Binary files /dev/null and b/icons/icon_154.png differ diff --git a/icons/icon_155.png b/icons/icon_155.png new file mode 100644 index 0000000000000000000000000000000000000000..3153f5a197aa0075670b35927c535424587c7b62 Binary files /dev/null and b/icons/icon_155.png differ diff --git a/icons/icon_156.png b/icons/icon_156.png new file mode 100644 index 0000000000000000000000000000000000000000..77bfcc923d6addebc2e786e79b4970ce026cc227 Binary files /dev/null and b/icons/icon_156.png differ diff --git a/icons/icon_157.png b/icons/icon_157.png new file mode 100644 index 0000000000000000000000000000000000000000..6efb1702b8233d1b6d84b9a80b3237c98a659623 Binary files /dev/null and b/icons/icon_157.png differ diff --git a/icons/icon_158.png b/icons/icon_158.png new file mode 100644 index 0000000000000000000000000000000000000000..f7d77c4b5a538469734491ec6be5e870720e1b57 Binary files /dev/null and b/icons/icon_158.png differ diff --git a/icons/icon_159.png b/icons/icon_159.png new file mode 100644 index 0000000000000000000000000000000000000000..1e5f6034a6728a9fa1e02da5704023fbadfec572 Binary files /dev/null and b/icons/icon_159.png differ diff --git a/icons/icon_16.png b/icons/icon_16.png new file mode 100644 index 0000000000000000000000000000000000000000..7f22a7a5c50915689e505898dc1a15dc764dee0a Binary files /dev/null and b/icons/icon_16.png differ diff --git a/icons/icon_160.png b/icons/icon_160.png new file mode 100644 index 0000000000000000000000000000000000000000..6cdaabf1a9156c1d2868fff84bad856e8dcf393c Binary files /dev/null and b/icons/icon_160.png differ diff --git a/icons/icon_161.png b/icons/icon_161.png new file mode 100644 index 0000000000000000000000000000000000000000..aceeb8a33b2639f367685978233d318244161451 Binary files /dev/null and b/icons/icon_161.png differ diff --git a/icons/icon_162.png b/icons/icon_162.png new file mode 100644 index 0000000000000000000000000000000000000000..c8d3111033f4a9295333cc25992c0ed425d29961 Binary files /dev/null and b/icons/icon_162.png differ diff --git a/icons/icon_163.png b/icons/icon_163.png new file mode 100644 index 0000000000000000000000000000000000000000..d954bd07d41466664c1b5f3f4d73ce82fe37bed6 Binary files /dev/null and b/icons/icon_163.png differ diff --git a/icons/icon_164.png b/icons/icon_164.png new file mode 100644 index 0000000000000000000000000000000000000000..d1cfb961fe05913400fd41b8589f941f8a0aa574 Binary files /dev/null and b/icons/icon_164.png differ diff --git a/icons/icon_165.png b/icons/icon_165.png new file mode 100644 index 0000000000000000000000000000000000000000..361f9eed001db59ce2a92ae58d9bcd1a5cac5dff Binary files /dev/null and b/icons/icon_165.png differ diff --git a/icons/icon_166.png b/icons/icon_166.png new file mode 100644 index 0000000000000000000000000000000000000000..ad51efea9d6f01b1c123f74c0b423099f4c701ee Binary files /dev/null and b/icons/icon_166.png differ diff --git a/icons/icon_167.png b/icons/icon_167.png new file mode 100644 index 0000000000000000000000000000000000000000..fa89a8b0a987dbc9ebc7841636fd5d093674d340 Binary files /dev/null and b/icons/icon_167.png differ diff --git a/icons/icon_168.png b/icons/icon_168.png new file mode 100644 index 0000000000000000000000000000000000000000..2529cc122646f0541dff8c56c99f00b096cc2589 Binary files /dev/null and b/icons/icon_168.png differ diff --git a/icons/icon_169.png b/icons/icon_169.png new file mode 100644 index 0000000000000000000000000000000000000000..533a46bace2e86287fafc0842995ec610c18e4d4 Binary files /dev/null and b/icons/icon_169.png differ diff --git a/icons/icon_17.png b/icons/icon_17.png new file mode 100644 index 0000000000000000000000000000000000000000..979a6e4bbdc4e04ead391c79010e72df9a6e4d3b Binary files /dev/null and b/icons/icon_17.png differ diff --git a/icons/icon_170.png b/icons/icon_170.png new file mode 100644 index 0000000000000000000000000000000000000000..2dac318d7eb2ca80de00b4adc069486c71f42774 Binary files /dev/null and b/icons/icon_170.png differ diff --git a/icons/icon_171.png b/icons/icon_171.png new file mode 100644 index 0000000000000000000000000000000000000000..5f33ce24f09d6ab58a217d0ff602cbc178dc49f3 Binary files /dev/null and b/icons/icon_171.png differ diff --git a/icons/icon_172.png b/icons/icon_172.png new file mode 100644 index 0000000000000000000000000000000000000000..8c87d99bbec9348d56641f970fb15c09bbe10730 Binary files /dev/null and b/icons/icon_172.png differ diff --git a/icons/icon_173.png b/icons/icon_173.png new file mode 100644 index 0000000000000000000000000000000000000000..9606736ee7c03d723a0cbd9bf11898d4ff9da456 Binary files /dev/null and b/icons/icon_173.png differ diff --git a/icons/icon_174.png b/icons/icon_174.png new file mode 100644 index 0000000000000000000000000000000000000000..a3a75ff68628f4786a619e4559ad164bcb3d6fb2 Binary files /dev/null and b/icons/icon_174.png differ diff --git a/icons/icon_175.png b/icons/icon_175.png new file mode 100644 index 0000000000000000000000000000000000000000..7477326c8c9203856397ef50c1929fd1cbc0f6ab Binary files /dev/null and b/icons/icon_175.png differ diff --git a/icons/icon_176.png b/icons/icon_176.png new file mode 100644 index 0000000000000000000000000000000000000000..57c6a3ae9e2efb4f714da6fe6bfdabf1c75ae249 Binary files /dev/null and b/icons/icon_176.png differ diff --git a/icons/icon_177.png b/icons/icon_177.png new file mode 100644 index 0000000000000000000000000000000000000000..547a329ac5ad023711546d7f6e077ac537fcfdda Binary files /dev/null and b/icons/icon_177.png differ diff --git a/icons/icon_178.png b/icons/icon_178.png new file mode 100644 index 0000000000000000000000000000000000000000..ed9401c37462e8d083e64878660122dbb4b64b5e Binary files /dev/null and b/icons/icon_178.png differ diff --git a/icons/icon_179.png b/icons/icon_179.png new file mode 100644 index 0000000000000000000000000000000000000000..d62ecee32aa737364a94651324c55c801c81cd31 Binary files /dev/null and b/icons/icon_179.png differ diff --git a/icons/icon_18.png b/icons/icon_18.png new file mode 100644 index 0000000000000000000000000000000000000000..966455dcc181fe6b53c4a0405e8f042ad354e583 Binary files /dev/null and b/icons/icon_18.png differ diff --git a/icons/icon_180.png b/icons/icon_180.png new file mode 100644 index 0000000000000000000000000000000000000000..0392bc66985e06003347006bc429e59db27a9c02 Binary files /dev/null and b/icons/icon_180.png differ diff --git a/icons/icon_181.png b/icons/icon_181.png new file mode 100644 index 0000000000000000000000000000000000000000..1f674398fb33b06a2ec7302c4b84e2c4e6ce8f6b Binary files /dev/null and b/icons/icon_181.png differ diff --git a/icons/icon_182.png b/icons/icon_182.png new file mode 100644 index 0000000000000000000000000000000000000000..7b49fa05a97e0bf93cdd772802a88c13797e2255 Binary files /dev/null and b/icons/icon_182.png differ diff --git a/icons/icon_183.png b/icons/icon_183.png new file mode 100644 index 0000000000000000000000000000000000000000..8b6541366b8ca9d13bc515012291acd8890e97d4 Binary files /dev/null and b/icons/icon_183.png differ diff --git a/icons/icon_184.png b/icons/icon_184.png new file mode 100644 index 0000000000000000000000000000000000000000..29cdd6a2193cbf20e371dfb67f0152a53d4d386b Binary files /dev/null and b/icons/icon_184.png differ diff --git a/icons/icon_185.png b/icons/icon_185.png new file mode 100644 index 0000000000000000000000000000000000000000..8c8cc56753686b583ed2501b213cf9fbab882bf5 Binary files /dev/null and b/icons/icon_185.png differ diff --git a/icons/icon_186.png b/icons/icon_186.png new file mode 100644 index 0000000000000000000000000000000000000000..bf00bf3fa753d07cea7fb503c7765e412db3d857 Binary files /dev/null and b/icons/icon_186.png differ diff --git a/icons/icon_19.png b/icons/icon_19.png new file mode 100644 index 0000000000000000000000000000000000000000..a48c0d36c80a81aae473ee5f5e1940d99f472804 Binary files /dev/null and b/icons/icon_19.png differ diff --git a/icons/icon_2.png b/icons/icon_2.png new file mode 100644 index 0000000000000000000000000000000000000000..966455dcc181fe6b53c4a0405e8f042ad354e583 Binary files /dev/null and b/icons/icon_2.png differ diff --git a/icons/icon_20.png b/icons/icon_20.png new file mode 100644 index 0000000000000000000000000000000000000000..759fd151722973acdcdfa5d27cc1987ebdbb8140 Binary files /dev/null and b/icons/icon_20.png differ diff --git a/icons/icon_21.png b/icons/icon_21.png new file mode 100644 index 0000000000000000000000000000000000000000..d0f2a648e79ff00506b2c2ce9bf5707358f0125a Binary files /dev/null and b/icons/icon_21.png differ diff --git a/icons/icon_22.png b/icons/icon_22.png new file mode 100644 index 0000000000000000000000000000000000000000..5a76e2dc4e5c8740549de92f352c3a1929905bde Binary files /dev/null and b/icons/icon_22.png differ diff --git a/icons/icon_23.png b/icons/icon_23.png new file mode 100644 index 0000000000000000000000000000000000000000..50a11445e47a47a66aa84093564de8e211c89209 Binary files /dev/null and b/icons/icon_23.png differ diff --git a/icons/icon_24.png b/icons/icon_24.png new file mode 100644 index 0000000000000000000000000000000000000000..1079fa81c1c3de5d590468d6697d455af1c0f6b5 Binary files /dev/null and b/icons/icon_24.png differ diff --git a/icons/icon_25.png b/icons/icon_25.png new file mode 100644 index 0000000000000000000000000000000000000000..963c3cac63cdd43534751c0be3c235d79f619368 Binary files /dev/null and b/icons/icon_25.png differ diff --git a/icons/icon_26.png b/icons/icon_26.png new file mode 100644 index 0000000000000000000000000000000000000000..376003524c0e28ddae10629e7c66f8baf88118ce Binary files /dev/null and b/icons/icon_26.png differ diff --git a/icons/icon_27.png b/icons/icon_27.png new file mode 100644 index 0000000000000000000000000000000000000000..53dcb52c6511dfaac9b07c6d72b11525a8833328 Binary files /dev/null and b/icons/icon_27.png differ diff --git a/icons/icon_28.png b/icons/icon_28.png new file mode 100644 index 0000000000000000000000000000000000000000..cd6b582d3bdd2bb98f16df2eef3db63f45e06ee3 Binary files /dev/null and b/icons/icon_28.png differ diff --git a/icons/icon_29.png b/icons/icon_29.png new file mode 100644 index 0000000000000000000000000000000000000000..e658250186681a8121ce9f534db1427457b596d5 Binary files /dev/null and b/icons/icon_29.png differ diff --git a/icons/icon_3.png b/icons/icon_3.png new file mode 100644 index 0000000000000000000000000000000000000000..2e1917fd62bc6d47216cfb9c0ec7f0eee744548e Binary files /dev/null and b/icons/icon_3.png differ diff --git a/icons/icon_30.png b/icons/icon_30.png new file mode 100644 index 0000000000000000000000000000000000000000..3257b57717e4485ebf58195dba17c25405e6f441 Binary files /dev/null and b/icons/icon_30.png differ diff --git a/icons/icon_31.png b/icons/icon_31.png new file mode 100644 index 0000000000000000000000000000000000000000..fd574b73687e5b176c5bbe0f6838f3a845930d1e Binary files /dev/null and b/icons/icon_31.png differ diff --git a/icons/icon_32.png b/icons/icon_32.png new file mode 100644 index 0000000000000000000000000000000000000000..21ea85f681227caead7b7098f9642ddf4b62bc45 Binary files /dev/null and b/icons/icon_32.png differ diff --git a/icons/icon_33.png b/icons/icon_33.png new file mode 100644 index 0000000000000000000000000000000000000000..833eabdb77297bd1895c025f363345fc4c7e984c Binary files /dev/null and b/icons/icon_33.png differ diff --git a/icons/icon_34.png b/icons/icon_34.png new file mode 100644 index 0000000000000000000000000000000000000000..4b3f00cbbfc7e95995b881fa86ba08a833c46e52 Binary files /dev/null and b/icons/icon_34.png differ diff --git a/icons/icon_35.png b/icons/icon_35.png new file mode 100644 index 0000000000000000000000000000000000000000..699ef96955f0def0712d4809eefc4692dfcf6747 Binary files /dev/null and b/icons/icon_35.png differ diff --git a/icons/icon_36.png b/icons/icon_36.png new file mode 100644 index 0000000000000000000000000000000000000000..7ff47103b4b935eefad5932188419e8de142c464 Binary files /dev/null and b/icons/icon_36.png differ diff --git a/icons/icon_37.png b/icons/icon_37.png new file mode 100644 index 0000000000000000000000000000000000000000..b20c1d4a3e859cb8164747c5dd0ceca2b786b5c8 Binary files /dev/null and b/icons/icon_37.png differ diff --git a/icons/icon_38.png b/icons/icon_38.png new file mode 100644 index 0000000000000000000000000000000000000000..fe43bbc06660ff3e62862432a11b8144ecc5cff5 Binary files /dev/null and b/icons/icon_38.png differ diff --git a/icons/icon_39.png b/icons/icon_39.png new file mode 100644 index 0000000000000000000000000000000000000000..4b3f00cbbfc7e95995b881fa86ba08a833c46e52 Binary files /dev/null and b/icons/icon_39.png differ diff --git a/icons/icon_4.png b/icons/icon_4.png new file mode 100644 index 0000000000000000000000000000000000000000..62ad287d84d38733281c962c26b7288a0b9da701 Binary files /dev/null and b/icons/icon_4.png differ diff --git a/icons/icon_40.png b/icons/icon_40.png new file mode 100644 index 0000000000000000000000000000000000000000..0f340582c93b98b5a22d0e01e107e85f80e6b43f Binary files /dev/null and b/icons/icon_40.png differ diff --git a/icons/icon_41.png b/icons/icon_41.png new file mode 100644 index 0000000000000000000000000000000000000000..7f22a7a5c50915689e505898dc1a15dc764dee0a Binary files /dev/null and b/icons/icon_41.png differ diff --git a/icons/icon_42.png b/icons/icon_42.png new file mode 100644 index 0000000000000000000000000000000000000000..ee09e8ae83adf9aa936023f87054921a4871409d Binary files /dev/null and b/icons/icon_42.png differ diff --git a/icons/icon_43.png b/icons/icon_43.png new file mode 100644 index 0000000000000000000000000000000000000000..63e89ee1885f087e517cb47a98fbab0b77249f39 Binary files /dev/null and b/icons/icon_43.png differ diff --git a/icons/icon_44.png b/icons/icon_44.png new file mode 100644 index 0000000000000000000000000000000000000000..36be48b90d4badf38f84c753f730d30a78f00de6 Binary files /dev/null and b/icons/icon_44.png differ diff --git a/icons/icon_45.png b/icons/icon_45.png new file mode 100644 index 0000000000000000000000000000000000000000..422edfd10b0cba9ad58019a5c1ef3a8a85187ffa Binary files /dev/null and b/icons/icon_45.png differ diff --git a/icons/icon_46.png b/icons/icon_46.png new file mode 100644 index 0000000000000000000000000000000000000000..a4eb8bf3c09e53110a71503ff9310d44cd419627 Binary files /dev/null and b/icons/icon_46.png differ diff --git a/icons/icon_47.png b/icons/icon_47.png new file mode 100644 index 0000000000000000000000000000000000000000..156a7a520a1b0aa4dcb6c0765b60dc3642bb8089 Binary files /dev/null and b/icons/icon_47.png differ diff --git a/icons/icon_48.png b/icons/icon_48.png new file mode 100644 index 0000000000000000000000000000000000000000..3682f0b48506b725ff812c42fb5dc984b3794763 Binary files /dev/null and b/icons/icon_48.png differ diff --git a/icons/icon_49.png b/icons/icon_49.png new file mode 100644 index 0000000000000000000000000000000000000000..1079fa81c1c3de5d590468d6697d455af1c0f6b5 Binary files /dev/null and b/icons/icon_49.png differ diff --git a/icons/icon_5.png b/icons/icon_5.png new file mode 100644 index 0000000000000000000000000000000000000000..eb53477e8fb40342751a0fc0b2e47f6525b9db84 Binary files /dev/null and b/icons/icon_5.png differ diff --git a/icons/icon_50.png b/icons/icon_50.png new file mode 100644 index 0000000000000000000000000000000000000000..422edfd10b0cba9ad58019a5c1ef3a8a85187ffa Binary files /dev/null and b/icons/icon_50.png differ diff --git a/icons/icon_51.png b/icons/icon_51.png new file mode 100644 index 0000000000000000000000000000000000000000..7fdeb7ed9531922ee8f0475735ed10adbf7da131 Binary files /dev/null and b/icons/icon_51.png differ diff --git a/icons/icon_52.png b/icons/icon_52.png new file mode 100644 index 0000000000000000000000000000000000000000..3257b57717e4485ebf58195dba17c25405e6f441 Binary files /dev/null and b/icons/icon_52.png differ diff --git a/icons/icon_53.png b/icons/icon_53.png new file mode 100644 index 0000000000000000000000000000000000000000..c0846487f8f6df0e721a58f0edf449f5ab552c5d Binary files /dev/null and b/icons/icon_53.png differ diff --git a/icons/icon_54.png b/icons/icon_54.png new file mode 100644 index 0000000000000000000000000000000000000000..12bbae7abca3cf586f1d0285bc3609563ccb2a5e Binary files /dev/null and b/icons/icon_54.png differ diff --git a/icons/icon_55.png b/icons/icon_55.png new file mode 100644 index 0000000000000000000000000000000000000000..45b73f909ecc36b129f7a12a7b5f039071b59be5 Binary files /dev/null and b/icons/icon_55.png differ diff --git a/icons/icon_56.png b/icons/icon_56.png new file mode 100644 index 0000000000000000000000000000000000000000..376003524c0e28ddae10629e7c66f8baf88118ce Binary files /dev/null and b/icons/icon_56.png differ diff --git a/icons/icon_57.png b/icons/icon_57.png new file mode 100644 index 0000000000000000000000000000000000000000..376003524c0e28ddae10629e7c66f8baf88118ce Binary files /dev/null and b/icons/icon_57.png differ diff --git a/icons/icon_58.png b/icons/icon_58.png new file mode 100644 index 0000000000000000000000000000000000000000..8cc3779ad7500cda574b0ff633706f2ea6f66845 Binary files /dev/null and b/icons/icon_58.png differ diff --git a/icons/icon_59.png b/icons/icon_59.png new file mode 100644 index 0000000000000000000000000000000000000000..d453b3abcb42860aa886981efb393b3cda6abe33 Binary files /dev/null and b/icons/icon_59.png differ diff --git a/icons/icon_6.png b/icons/icon_6.png new file mode 100644 index 0000000000000000000000000000000000000000..20cea107e06ccfb967d35f069b8f1cb3636d56c1 Binary files /dev/null and b/icons/icon_6.png differ diff --git a/icons/icon_60.png b/icons/icon_60.png new file mode 100644 index 0000000000000000000000000000000000000000..a045f3df2ad810f2f87c83c175d1660427298dce Binary files /dev/null and b/icons/icon_60.png differ diff --git a/icons/icon_61.png b/icons/icon_61.png new file mode 100644 index 0000000000000000000000000000000000000000..7843621256c8efd32ad23512a91e89bc6633e6f3 Binary files /dev/null and b/icons/icon_61.png differ diff --git a/icons/icon_62.png b/icons/icon_62.png new file mode 100644 index 0000000000000000000000000000000000000000..2450edec57c5b4b80d3b33801feaae4257c4fd44 Binary files /dev/null and b/icons/icon_62.png differ diff --git a/icons/icon_63.png b/icons/icon_63.png new file mode 100644 index 0000000000000000000000000000000000000000..6fb6738a76fecc4ed793e228126f34568f2fba4d Binary files /dev/null and b/icons/icon_63.png differ diff --git a/icons/icon_64.png b/icons/icon_64.png new file mode 100644 index 0000000000000000000000000000000000000000..b20c1d4a3e859cb8164747c5dd0ceca2b786b5c8 Binary files /dev/null and b/icons/icon_64.png differ diff --git a/icons/icon_65.png b/icons/icon_65.png new file mode 100644 index 0000000000000000000000000000000000000000..53349088fb05790b8e5ddeac8250b7f0bb01518e Binary files /dev/null and b/icons/icon_65.png differ diff --git a/icons/icon_66.png b/icons/icon_66.png new file mode 100644 index 0000000000000000000000000000000000000000..af56284c2c971169abdb452388fc5241a13ca37c Binary files /dev/null and b/icons/icon_66.png differ diff --git a/icons/icon_67.png b/icons/icon_67.png new file mode 100644 index 0000000000000000000000000000000000000000..456e3500f4740cc6e443bef6175dde88c475fffe Binary files /dev/null and b/icons/icon_67.png differ diff --git a/icons/icon_68.png b/icons/icon_68.png new file mode 100644 index 0000000000000000000000000000000000000000..6dfaa4aa38eb0f3410da0107695909dd16c05919 Binary files /dev/null and b/icons/icon_68.png differ diff --git a/icons/icon_69.png b/icons/icon_69.png new file mode 100644 index 0000000000000000000000000000000000000000..f57d1ab9293d91fc4913d028669a9490029a9c0f Binary files /dev/null and b/icons/icon_69.png differ diff --git a/icons/icon_7.png b/icons/icon_7.png new file mode 100644 index 0000000000000000000000000000000000000000..509521236770993e83c166e8dbea8222fda5b9fe Binary files /dev/null and b/icons/icon_7.png differ diff --git a/icons/icon_70.png b/icons/icon_70.png new file mode 100644 index 0000000000000000000000000000000000000000..71e76148cf667d58a56206a632d2b9d5d416252a Binary files /dev/null and b/icons/icon_70.png differ diff --git a/icons/icon_71.png b/icons/icon_71.png new file mode 100644 index 0000000000000000000000000000000000000000..862eb10a0ada9e0cef04fff42e5c0dd8f67c3624 Binary files /dev/null and b/icons/icon_71.png differ diff --git a/icons/icon_72.png b/icons/icon_72.png new file mode 100644 index 0000000000000000000000000000000000000000..78ff3b4066238f3fec69bb30ada2effeae7b0be1 Binary files /dev/null and b/icons/icon_72.png differ diff --git a/icons/icon_73.png b/icons/icon_73.png new file mode 100644 index 0000000000000000000000000000000000000000..f73f82eeb31b6b9f5d39f3a7d14d03dc6b33770f Binary files /dev/null and b/icons/icon_73.png differ diff --git a/icons/icon_74.png b/icons/icon_74.png new file mode 100644 index 0000000000000000000000000000000000000000..1b5069658824c58a2cc694d9aa5fce3a72686061 Binary files /dev/null and b/icons/icon_74.png differ diff --git a/icons/icon_75.png b/icons/icon_75.png new file mode 100644 index 0000000000000000000000000000000000000000..554a248138a4e7f05d8d3e8e14a48df271ac250c Binary files /dev/null and b/icons/icon_75.png differ diff --git a/icons/icon_76.png b/icons/icon_76.png new file mode 100644 index 0000000000000000000000000000000000000000..2c94e3369729758487b94a2422ba010afd70490f Binary files /dev/null and b/icons/icon_76.png differ diff --git a/icons/icon_77.png b/icons/icon_77.png new file mode 100644 index 0000000000000000000000000000000000000000..775d1a56dbe6c23d91aa6acac3a79d583528a570 Binary files /dev/null and b/icons/icon_77.png differ diff --git a/icons/icon_78.png b/icons/icon_78.png new file mode 100644 index 0000000000000000000000000000000000000000..bf1e4ff37bf3fe2f3c1b769e421fda70d5eeb7c4 Binary files /dev/null and b/icons/icon_78.png differ diff --git a/icons/icon_79.png b/icons/icon_79.png new file mode 100644 index 0000000000000000000000000000000000000000..efddd89d8ea812df90938b8300f811bfdf72d30a Binary files /dev/null and b/icons/icon_79.png differ diff --git a/icons/icon_8.png b/icons/icon_8.png new file mode 100644 index 0000000000000000000000000000000000000000..f20dc1c98a3d4064f32a4a61dd405a372db583ef Binary files /dev/null and b/icons/icon_8.png differ diff --git a/icons/icon_80.png b/icons/icon_80.png new file mode 100644 index 0000000000000000000000000000000000000000..7fea717acb7567427d34f475b8d4c555876013a5 Binary files /dev/null and b/icons/icon_80.png differ diff --git a/icons/icon_81.png b/icons/icon_81.png new file mode 100644 index 0000000000000000000000000000000000000000..4049ea5f2e362fb43cf8a85d65f92e3aaf9b4b93 Binary files /dev/null and b/icons/icon_81.png differ diff --git a/icons/icon_82.png b/icons/icon_82.png new file mode 100644 index 0000000000000000000000000000000000000000..15b0b54693f35a7c55280568940fe509cfbb2c70 Binary files /dev/null and b/icons/icon_82.png differ diff --git a/icons/icon_83.png b/icons/icon_83.png new file mode 100644 index 0000000000000000000000000000000000000000..d391a88ca2583aaf9d6b38e5a71d02a9e8f122a8 Binary files /dev/null and b/icons/icon_83.png differ diff --git a/icons/icon_84.png b/icons/icon_84.png new file mode 100644 index 0000000000000000000000000000000000000000..f6a894524d18ac7142d6619f3f7d027cfd47d57c Binary files /dev/null and b/icons/icon_84.png differ diff --git a/icons/icon_85.png b/icons/icon_85.png new file mode 100644 index 0000000000000000000000000000000000000000..62383e238fd8777375a421ad222c140a497a7b83 Binary files /dev/null and b/icons/icon_85.png differ diff --git a/icons/icon_86.png b/icons/icon_86.png new file mode 100644 index 0000000000000000000000000000000000000000..a4f63195a02fec7bc49ed2953405bff73af76198 Binary files /dev/null and b/icons/icon_86.png differ diff --git a/icons/icon_87.png b/icons/icon_87.png new file mode 100644 index 0000000000000000000000000000000000000000..a29a8f4681e588227636932fb18343fdd2d800df Binary files /dev/null and b/icons/icon_87.png differ diff --git a/icons/icon_88.png b/icons/icon_88.png new file mode 100644 index 0000000000000000000000000000000000000000..691eac48ae04ce1d43360c49422f053948824eba Binary files /dev/null and b/icons/icon_88.png differ diff --git a/icons/icon_89.png b/icons/icon_89.png new file mode 100644 index 0000000000000000000000000000000000000000..6944f2aa9e0e4c0fdab8ba825c384153e477a0ed Binary files /dev/null and b/icons/icon_89.png differ diff --git a/icons/icon_9.png b/icons/icon_9.png new file mode 100644 index 0000000000000000000000000000000000000000..7a9fd5a9d44da5e0225bd29a8544ea4eedbce59f Binary files /dev/null and b/icons/icon_9.png differ diff --git a/icons/icon_90.png b/icons/icon_90.png new file mode 100644 index 0000000000000000000000000000000000000000..999cc594b013e233da1260e6e67235064a8f3c76 Binary files /dev/null and b/icons/icon_90.png differ diff --git a/icons/icon_91.png b/icons/icon_91.png new file mode 100644 index 0000000000000000000000000000000000000000..282de3beffe6f419c623af933d62f63b96c4679d Binary files /dev/null and b/icons/icon_91.png differ diff --git a/icons/icon_92.png b/icons/icon_92.png new file mode 100644 index 0000000000000000000000000000000000000000..ef1c1ea9d76c7335701135ef8979104df16bf999 Binary files /dev/null and b/icons/icon_92.png differ diff --git a/icons/icon_93.png b/icons/icon_93.png new file mode 100644 index 0000000000000000000000000000000000000000..7aa209c3e8e8f7fa1aa2e9fcb3bc6b6cd9da3581 Binary files /dev/null and b/icons/icon_93.png differ diff --git a/icons/icon_94.png b/icons/icon_94.png new file mode 100644 index 0000000000000000000000000000000000000000..9794926bcbbe914511d5b5518cc9f4ec1d5ea4a8 Binary files /dev/null and b/icons/icon_94.png differ diff --git a/icons/icon_95.png b/icons/icon_95.png new file mode 100644 index 0000000000000000000000000000000000000000..c8f4b42dd42e02c3a98a8850c46c35d8b867ee91 Binary files /dev/null and b/icons/icon_95.png differ diff --git a/icons/icon_96.png b/icons/icon_96.png new file mode 100644 index 0000000000000000000000000000000000000000..f3d31d06c4e6218b13e867e5112d247dab6bbcf9 Binary files /dev/null and b/icons/icon_96.png differ diff --git a/icons/icon_97.png b/icons/icon_97.png new file mode 100644 index 0000000000000000000000000000000000000000..27a2157d41e0ab9197716649aef5808339647e04 Binary files /dev/null and b/icons/icon_97.png differ diff --git a/icons/icon_98.png b/icons/icon_98.png new file mode 100644 index 0000000000000000000000000000000000000000..19c5f6e94f2233c6f7ccd1b1098fe78b48c60bf8 Binary files /dev/null and b/icons/icon_98.png differ diff --git a/icons/icon_99.png b/icons/icon_99.png new file mode 100644 index 0000000000000000000000000000000000000000..4c4541e32fabbb975bfeaa392c7ffb3437d7e7d7 Binary files /dev/null and b/icons/icon_99.png differ diff --git a/src/molecules/generated_variations.py b/src/molecules/generated_variations.py index 8e15ee8f01e064f0d621e127d3eef920dbf302dc..330b9acd67f1944c1a17e957cb5842a92cb15c99 100644 --- a/src/molecules/generated_variations.py +++ b/src/molecules/generated_variations.py @@ -1,65 +1,112 @@ # app/src/molecules/generated_variations.py -import subprocess import sys +import subprocess from pathlib import Path +import os import pandas as pd from rdkit import Chem from rdkit.Chem import Draw -def generate_variations_from_partial_smiles(scaffold_smiles: str, n_to_gen: int = 12): +def _ensure_attachment_point(smiles: str) -> str: """ - Call Gen_PartialSMILES2.py as a subprocess, passing the user scaffold, - then read generated_molecules.csv and return a list of variations: - each item is a dict: {"smiles": str, "image": PIL.Image, "style": str} + Ensure the scaffold contains the required [*] wildcard. + If missing, add [*] to the front. + """ + smiles = (smiles or "").strip() + if not smiles: + return "" + if "[*]" in smiles: + return smiles + return "[*]" + smiles + + +def generate_variations_from_partial_smiles(user_smiles: str, n_to_gen: int = 12): + """ + Use Gen_PartialSMILES2.py to generate molecules from a scaffold SMILES, + then turn them into RDKit images for the UI grid. + + Returns a list of dicts: + [ + {"smiles": str, "image": PIL.Image, "style": "partial_smiles_gen"}, + ... + ] """ - if not scaffold_smiles or scaffold_smiles.strip() == "": + if not user_smiles or not user_smiles.strip(): return [] - # Determine project root (where Gen_PartialSMILES2.py lives) + scaffold = _ensure_attachment_point(user_smiles) + print(f"[generate_variations_from_partial_smiles] Using scaffold: {scaffold}") + + # Resolve /app as project root # This file is app/src/molecules/generated_variations.py - # parents[0] = .../molecules, parents[1] = .../src, parents[2] = .../app + # parents[0] = .../molecules, [1] = .../src, [2] = .../app project_root = Path(__file__).resolve().parents[2] script_path = project_root / "Gen_PartialSMILES2.py" csv_path = project_root / "generated_molecules.csv" + icons_dir = project_root / "icons" - # Remove old CSV if it exists + # Clean up old CSV (optional) if csv_path.exists(): - csv_path.unlink() + try: + csv_path.unlink() + except Exception as e: + print(f"Warning: could not delete old CSV: {e}") + + icons_dir.mkdir(exist_ok=True) - # Build subprocess command + # Build the command: python Gen_PartialSMILES2.py --scaffold ... --n_to_gen ... cmd = [ sys.executable, str(script_path), - "--scaffold", scaffold_smiles, - "--n_to_gen", str(n_to_gen) + "--scaffold", scaffold, + "--n_to_gen", str(n_to_gen), ] + print(f"[generate_variations_from_partial_smiles] Running command:") + print(" ", " ".join(cmd)) + try: + # Run from /app so relative paths in Gen_PartialSMILES2.py work subprocess.run(cmd, cwd=project_root, check=True) except subprocess.CalledProcessError as e: - print(f"Error running Gen_PartialSMILES2.py: {e}") + print(f"[generate_variations_from_partial_smiles] Error running generator: {e}") return [] if not csv_path.exists(): - print("generated_molecules.csv not found after generation.") + print("[generate_variations_from_partial_smiles] generated_molecules.csv not found.") return [] + # Load generated SMILES df = pd.read_csv(csv_path) + smiles_list = df["smiles"].tolist() variations = [] - for smi in df["smiles"].head(n_to_gen): + + for idx, smi in enumerate(smiles_list[:n_to_gen]): mol = Chem.MolFromSmiles(smi) if mol is None: + print(f"[generate_variations_from_partial_smiles] Skipping invalid SMILES: {smi}") continue - img = Draw.MolToImage(mol, size=(250, 250)) + + # Make a 2D icon image for the grid + img = Draw.MolToImage(mol, size=(200, 200), kekulize=True) + + # Optionally save icon to /app/icons/icon_N.png (nice for debugging) + icon_path = icons_dir / f"icon_{idx+1}.png" + try: + img.save(icon_path) + except Exception as e: + print(f"[generate_variations_from_partial_smiles] Could not save icon {icon_path}: {e}") + variations.append({ "smiles": smi, "image": img, - "style": "partial_smiles_gen" + "style": "partial_smiles_gen", }) + print(f"[generate_variations_from_partial_smiles] Created {len(variations)} variations.") return variations diff --git a/src/ui/handlers.py b/src/ui/handlers.py index f80932dd67703f2681cb4f72b94e1d8fa535e301..f457f7bdc1e46ee06922375481f0fdac391f209a 100644 --- a/src/ui/handlers.py +++ b/src/ui/handlers.py @@ -5,8 +5,11 @@ This module contains event handlers and business logic for the drug discovery application UI components. """ -from ..molecules.analysis import analyze_molecule_image_only, validate_smiles_realtime, get_molecule_properties_for_hover -from ..molecules.variations import generate_molecule_images +from ..molecules.analysis import ( + analyze_molecule_image_only, + validate_smiles_realtime, + get_molecule_properties_for_hover, +) from ..molecules.generated_variations import generate_variations_from_partial_smiles from ..ai.services import respond, handle_structure_chat, parse_ai_structures @@ -15,115 +18,144 @@ class VariationHandlers: """Handles variation-related functionality.""" def __init__(self): - self.current_variations = [] + self.current_variations = [] # list of dicts: {smiles, image, style} self.current_page = 0 self.variations_per_page = 12 - + + # ------------------------------------------------------------- + # Generate variations for the UI grid + # ------------------------------------------------------------- def generate_variations_for_display(self, smiles, num_variations=12): """ - Generate variations using Gen_PartialSMILES2.py (via subprocess), - then format them for the gallery display. + Generate scaffold-based variations using Gen_PartialSMILES2.py + and format them for the Gradio gallery grid. """ print("=== GENERATE_VARIATIONS_FOR_DISPLAY CALLED ===") - print(f"SMILES input: {smiles}") - print(f"Num variations requested: {num_variations}") - - # Call the subprocess-based generator + print(f"SMILES from UI: {smiles}") + print(f"Requested variations: {num_variations}") + + # Call the generator helper variations = generate_variations_from_partial_smiles(smiles, n_to_gen=num_variations) - print(f"Generated {len(variations)} variations from partial SMILES model") - # Store internally for selection/navigation + # Save internally for selection / pagination self.current_variations = variations - - # Gradio Gallery expects [(image, caption), ...] + + # Gradio gallery expects a list of (image, caption) gallery_items = [(v["image"], v["smiles"]) for v in self.current_variations] - # Style to return (for hidden display) + # Style string for the hidden text component first_style = self.current_variations[0]["style"] if self.current_variations else "None" print("=== GENERATE_VARIATIONS_FOR_DISPLAY COMPLETE ===") - - # outputs: variations_grid, selected_smiles_display, selected_style_display + + # Outputs (in app/src/app.py wiring): + # variations_grid, + # selected_smiles_display, + # selected_style_display return gallery_items, smiles, first_style - + + # ------------------------------------------------------------- + # Handle selection from the variations grid + # ------------------------------------------------------------- def select_variation(self, evt): """Handle selection of a variation from the grid.""" try: print("=== SELECT_VARIATION CALLED ===") print(f"Event: {evt}, type: {type(evt)}") print(f"Current variations count: {len(self.current_variations)}") - + if not self.current_variations: return None, "", "", "" - - # If event is None (e.g. change without select), default to first + + # Gradio events might carry an index, or evt might be None/int if evt is None: index = 0 - elif hasattr(evt, 'index'): + elif hasattr(evt, "index"): index = evt.index elif isinstance(evt, (int, float)): index = int(evt) else: index = 0 - + # Clamp index if index < 0 or index >= len(self.current_variations): index = 0 - + selected_var = self.current_variations[index] - - properties_text = get_molecule_properties_for_hover(selected_var['smiles']) - - return selected_var['image'], selected_var['smiles'], selected_var['style'], properties_text + smiles = selected_var["smiles"] + print(f"Selected SMILES: {smiles}") + + properties_text = get_molecule_properties_for_hover(smiles) + + # Outputs: + # main_structure_display, + # selected_smiles_display, + # selected_style_display, + # properties_display + return selected_var["image"], smiles, selected_var["style"], properties_text + except Exception as e: print(f"Error in select_variation: {e}") import traceback traceback.print_exc() return None, "", "", "" - + + # ------------------------------------------------------------- + # Clear variations + # ------------------------------------------------------------- def clear_variations(self): """Clear all variations and reset display.""" self.current_variations = [] self.current_page = 0 return [], "", "" - + + # ------------------------------------------------------------- + # Pagination (prev/next buttons) + # ------------------------------------------------------------- def navigate_variations(self, direction): """Navigate through variations pages.""" if not self.current_variations: return [], "Page 1 of 1", None, "", "" - - total_pages = (len(self.current_variations) + self.variations_per_page - 1) // self.variations_per_page - + + total = len(self.current_variations) + pages = (total + self.variations_per_page - 1) // self.variations_per_page + if direction == "next": - self.current_page = min(self.current_page + 1, total_pages - 1) + self.current_page = min(self.current_page + 1, pages - 1) elif direction == "prev": self.current_page = max(self.current_page - 1, 0) - - # Get variations for current page - start_idx = self.current_page * self.variations_per_page - end_idx = min(start_idx + self.variations_per_page, len(self.current_variations)) - page_variations = self.current_variations[start_idx:end_idx] - + + start = self.current_page * self.variations_per_page + end = min(start + self.variations_per_page, total) + + page_variations = self.current_variations[start:end] gallery_items = [(v["image"], v["smiles"]) for v in page_variations] - page_info = f"Page {self.current_page + 1} of {total_pages}" - + + page_info = f"Page {self.current_page + 1} of {pages}" + first = page_variations[0] if page_variations else None - + return ( gallery_items, page_info, - first['image'] if first else None, - first['smiles'] if first else "", - first['style'] if first else "" + first["image"] if first else None, + first["smiles"] if first else "", + first["style"] if first else "", ) - + + # ------------------------------------------------------------- + # Update how many variations per page + # ------------------------------------------------------------- def update_variation_count(self, count): - """Update the number of variations per page.""" + """Update the number of variations to generate and show per page.""" self.variations_per_page = count return count - + + # ------------------------------------------------------------- + # Analyze molecule + tooltip text (used on load / selection) + # ------------------------------------------------------------- def analyze_molecule_with_tooltip(self, smiles): - """Analyze molecule and return image with tooltip data.""" + """Analyze molecule and return RDKit image and tooltip text.""" molecule_img = analyze_molecule_image_only(smiles) tooltip_text = get_molecule_properties_for_hover(smiles) return molecule_img, tooltip_text @@ -166,6 +198,7 @@ class BookmarkHandlers: return "🗑️ Removed from bookmarks" def bookmark_current_molecule(self, smiles, name): + """Bookmark current molecule and update gallery.""" from rdkit import Chem from rdkit.Chem import Draw diff --git a/standalone_show_generated.py b/standalone_show_generated.py new file mode 100644 index 0000000000000000000000000000000000000000..34c33a7a9092b1f5f81d4cafb949862ded9702d5 --- /dev/null +++ b/standalone_show_generated.py @@ -0,0 +1,148 @@ +""" +standalone_show_generated.py +-------------------------------- +Runs Gen_PartialSMILES2.py with a user scaffold SMILES, loads the +generated_molecules.csv file, displays a 2D grid of molecules, and +creates small icon images for each generated molecule. + +Usage: + python standalone_show_generated.py "CC(N)C(=O)O" +""" + +import subprocess +import sys +import os +import pandas as pd +from rdkit import Chem +from rdkit.Chem import Draw + + +# --------------------------------------------------------- +# 1. Ensure scaffold has attachment point [*] +# --------------------------------------------------------- +def ensure_attachment_point(smiles): + """ + Ensures the scaffold contains the required [*] wildcard. + If missing, add [*] to the front. + """ + if "[*]" in smiles: + return smiles + return "[*]" + smiles + + +# --------------------------------------------------------- +# 2. Run the generator script (Gen_PartialSMILES2.py) +# --------------------------------------------------------- +def run_generator(scaffold_smiles, n_to_gen=16): + """ + Runs the molecule generator and produces generated_molecules.csv. + """ + scaffold_smiles = ensure_attachment_point(scaffold_smiles) + + cmd = [ + sys.executable, + "Gen_PartialSMILES2.py", + "--scaffold", scaffold_smiles, + "--n_to_gen", str(n_to_gen) + ] + + print(f"\nRunning generator with scaffold: {scaffold_smiles}") + print("Command:", " ".join(cmd), "\n") + + subprocess.run(cmd, check=True) + + if not os.path.exists("generated_molecules.csv"): + raise FileNotFoundError("generated_molecules.csv not found after generator run.") + + print("Generation complete!\n") + + +# --------------------------------------------------------- +# 3. Render full RDKit grid image & save as PNG +# --------------------------------------------------------- +def load_and_draw_generated(csv_path="generated_molecules.csv"): + """ + Reads generated_molecules.csv and displays a 2D RDKit structure grid. + Saves the grid as generated_molecules.png. + """ + df = pd.read_csv(csv_path) + smiles_list = df["smiles"].tolist() + + mols = [] + legends = [] + + for smi in smiles_list: + mol = Chem.MolFromSmiles(smi) + if mol: + mols.append(mol) + legends.append(smi) + + if not mols: + print("No valid molecules found in CSV.") + return None, [] + + print(f"Rendering {len(mols)} molecules into grid...") + + img = Draw.MolsToGridImage( + mols, + molsPerRow=4, + subImgSize=(250, 250), + legends=legends + ) + + img.show() + img.save("generated_molecules.png") + print("Saved structure grid → generated_molecules.png\n") + + return mols, smiles_list + + +# --------------------------------------------------------- +# 4. Create 150×150 PNG icons from each molecule +# --------------------------------------------------------- +def generate_icons(mols, smiles_list, save_folder="icons"): + """ + Converts each RDKit Mol into a small 150×150 PNG icon. + Saves them in icons/, returns PIL images and labels. + """ + os.makedirs(save_folder, exist_ok=True) + + print("Creating icons...") + + icons = [] + labels = [] + + for i, mol in enumerate(mols): + img = Draw.MolToImage(mol, size=(150, 150), kekulize=True) + + icon_path = os.path.join(save_folder, f"icon_{i+1}.png") + img.save(icon_path) + + icons.append(img) + labels.append(smiles_list[i]) + + print(f"Saved {len(icons)} icons → {save_folder}/") + + return icons, labels + + +# --------------------------------------------------------- +# 5. Main execution +# --------------------------------------------------------- +if __name__ == "__main__": + if len(sys.argv) < 2: + print("Usage: python standalone_show_generated.py \"SMILES_STRING\"") + sys.exit(1) + + scaffold = sys.argv[1] + + # Step 1: Run generator + run_generator(scaffold, n_to_gen=16) + + # Step 2: Show big RDKit grid + mols, smiles_out = load_and_draw_generated() + + # Step 3: Create icon images + if mols: + icons, labels = generate_icons(mols, smiles_out) + print("\nIcons ready! You can now use them in your Gradio grid.")