From cfa9fd0220b78824be26ed9cd5c7dba5db505ce4 Mon Sep 17 00:00:00 2001 From: moldis-group <70083963+moldis-group@users.noreply.github.com> Date: Mon, 13 Sep 2021 11:13:18 +0530 Subject: [PATCH 01/13] Update README.md --- README.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 7d2ca34..41020b9 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,16 @@ ITER POS GROUPS S0S1(eV) Target ## Example run: GA Optimization ``` -$ python3 DesignBodipy_GA.py +$ python3 DesignBodipy_GA.py 2.7 + +Searching for 7D BODIPY near 2.700000 eV +Reading ML model from ./data +Generations 200; Parent population 20 +Starting Genetic optization +Starting population estimation +Calculating parent: 1 +... + ``` From 1ef9f277cc32acf5ee610db53b2f06fc5ccc87c6 Mon Sep 17 00:00:00 2001 From: moldis-group <70083963+moldis-group@users.noreply.github.com> Date: Mon, 13 Sep 2021 11:17:11 +0530 Subject: [PATCH 02/13] Update README.md --- README.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 41020b9..ad4d991 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,9 @@ Additional parameters can be sought using `--help` argument. Given below are all Once run, it will run for `iter` times and print successive improvements towards obtaining target molecule. An example run is shown below: ``` $ python3 DesignBodipy_Bayes.py 2.7 - +``` +Screenshot of output +``` Searching for 2D BODIPY near 2.700000 eV Reading ML model from ./data Iterations 200; Initial evaluations 5 @@ -53,13 +55,17 @@ ITER POS GROUPS S0S1(eV) Target ## Example run: GA Optimization ``` $ python3 DesignBodipy_GA.py 2.7 - +``` +Screenshot of output +``` Searching for 7D BODIPY near 2.700000 eV Reading ML model from ./data Generations 200; Parent population 20 Starting Genetic optization Starting population estimation -Calculating parent: 1 +Calculating parent: 20 +Current Gen 0, Median: 2.985662 Best: 2.767993 +Best Groups [19.0, 18.0, 20.0, 34.0, 45.0, 7.0, 30.0] ; Pos [0, 1, 2, 3, 4, 5, 6] ... ``` From 98f890fbd75fe152541a2c120592e4444ec2b0db Mon Sep 17 00:00:00 2001 From: moldis-group <70083963+moldis-group@users.noreply.github.com> Date: Mon, 13 Sep 2021 11:25:26 +0530 Subject: [PATCH 03/13] Update README.md --- README.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ad4d991..eac160f 100644 --- a/README.md +++ b/README.md @@ -63,9 +63,18 @@ Reading ML model from ./data Generations 200; Parent population 20 Starting Genetic optization Starting population estimation -Calculating parent: 20 +Calculating parent: 20 Current Gen 0, Median: 2.985662 Best: 2.767993 Best Groups [19.0, 18.0, 20.0, 34.0, 45.0, 7.0, 30.0] ; Pos [0, 1, 2, 3, 4, 5, 6] +Evaluating: 10 of 10 +Current Gen 1, Median: 2.926014 Best: 2.767993 +Best Groups [19.0, 18.0, 20.0, 34.0, 45.0, 7.0, 30.0] ; Pos [0, 1, 2, 3, 4, 5, 6] +Evaluating: 10 of 10 +Current Gen 2, Median: 2.885984 Best: 2.708469 +Best Groups [19.0, 40.0, 14.0, 43.0, 23.0, 7.0, 11.0] ; Pos [0, 1, 2, 3, 4, 5, 6] +Evaluating: 10 of 10 +Current Gen 3, Median: 2.859153 Best: 2.708469 +Best Groups [19.0, 40.0, 14.0, 43.0, 23.0, 7.0, 11.0] ; Pos [0, 1, 2, 3, 4, 5, 6] ... ``` From 96a686d9287ea9d4589e3ba17c248364e51f0d05 Mon Sep 17 00:00:00 2001 From: moldis-group <70083963+moldis-group@users.noreply.github.com> Date: Mon, 13 Sep 2021 11:28:34 +0530 Subject: [PATCH 04/13] Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index eac160f..9eed2a4 100644 --- a/README.md +++ b/README.md @@ -56,6 +56,10 @@ ITER POS GROUPS S0S1(eV) Target ``` $ python3 DesignBodipy_GA.py 2.7 ``` + +Additional parameters can be obtained using the `--help` argument. + + Screenshot of output ``` Searching for 7D BODIPY near 2.700000 eV From 8cace2f30389646f53017def5c82963e3ae02359 Mon Sep 17 00:00:00 2001 From: moldis-group <70083963+moldis-group@users.noreply.github.com> Date: Mon, 13 Sep 2021 11:29:34 +0530 Subject: [PATCH 05/13] Update README.md --- README.md | 23 ++++------------------- 1 file changed, 4 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 9eed2a4..d40a07e 100644 --- a/README.md +++ b/README.md @@ -9,28 +9,13 @@ DesignBodipy_GA.py can be used for genetic algoritm (GA) optimization Both programs use a trained kernel ridge regression machine learning (KRR-ML) model to evaluate the S0→S1 excitation energy. ## Example run: Bayesian Optimization -``` -$ python3 DesignBodipy_Bayes.py -``` -Additional parameters can be sought using `--help` argument. Given below are all possible flags. - ---- -| Flag/ arg | Description | Default [range] | Compulsory | -|:----:|:-----------:|:-------:|:----------:| -|[target]| Target S0->S1 value, in eV. Positional argument, non optional.| - | ✓ | -| --group, -g | # of substitutions in target BODIPY. | 2 [2, 7]|✗| -| --data -d | Location of datafiles to be used in KRR ML, contains descriptor and coefficients.| `./data`|✗| -| --restart, -r | # of evaluations for single EI evaluation. More evaluations give more robust minima, with higher computation cost. | 5 [1, ∞] | ✗| -| --exploration, -x | Exploitation vs Exploration parameter | 0.01 (0,100)| ✗| -| --seed, -s | Number of initial evaluations to build Gaussian Process surrogate. More evaluations might help converging faster. | 5 [1, ∞] | ✗| -| --iter, -i | Maximum number of iterations. | 200 [1, ∞] | ✗| ---- - -Once run, it will run for `iter` times and print successive improvements towards obtaining target molecule. An example run is shown below: ``` $ python3 DesignBodipy_Bayes.py 2.7 ``` + +Additional parameters can be obtained using the `--help` argument. + Screenshot of output ``` Searching for 2D BODIPY near 2.700000 eV @@ -57,7 +42,7 @@ ITER POS GROUPS S0S1(eV) Target $ python3 DesignBodipy_GA.py 2.7 ``` -Additional parameters can be obtained using the `--help` argument. +Additional parameters can be obtained using the `--help` argument. Screenshot of output From 208441727dbb896d13d9f6e260896000bed205fa Mon Sep 17 00:00:00 2001 From: moldis-group <70083963+moldis-group@users.noreply.github.com> Date: Mon, 13 Sep 2021 11:30:15 +0530 Subject: [PATCH 06/13] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d40a07e..696a96e 100644 --- a/README.md +++ b/README.md @@ -70,7 +70,7 @@ Best Groups [19.0, 40.0, 14.0, 43.0, 23.0, 7.0, 11.0] ; Pos [0, 1, 2, 3, 4, 5, 6 ## Requirements: -1. Python3.6 and above +1. Python3.6 [tested] 2. Numpy 3. Scipy (scipy.optimize.minimize for iter minimization) 4. Scikit-learn (for Gaussian Process) From d0205dd3476e69c77a34bdbfa9b2aada7d42cf57 Mon Sep 17 00:00:00 2001 From: moldis-group <70083963+moldis-group@users.noreply.github.com> Date: Mon, 13 Sep 2021 11:41:53 +0530 Subject: [PATCH 07/13] Update README.md --- README.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 696a96e..29700c9 100644 --- a/README.md +++ b/README.md @@ -8,13 +8,21 @@ DesignBodipy_GA.py can be used for genetic algoritm (GA) optimization Both programs use a trained kernel ridge regression machine learning (KRR-ML) model to evaluate the S0→S1 excitation energy. +## Download the design code and SLATM descriptors for 77k training BODIPY molecules + +``` +git clone https://github.com/moldis-group/bodipy.git +cd bodipy/data +wget desc.npy +``` + ## Example run: Bayesian Optimization ``` $ python3 DesignBodipy_Bayes.py 2.7 ``` -Additional parameters can be obtained using the `--help` argument. +Additional parameters can be obtained using `python3 DesignBodipy_Bayes.py --help` Screenshot of output ``` @@ -42,7 +50,7 @@ ITER POS GROUPS S0S1(eV) Target $ python3 DesignBodipy_GA.py 2.7 ``` -Additional parameters can be obtained using the `--help` argument. +Additional parameters can be obtained using `python3 DesignBodipy_GA.py --help` Screenshot of output From 8b25cc1083071c42a993e7af287d14f65f408bbf Mon Sep 17 00:00:00 2001 From: moldis-group <70083963+moldis-group@users.noreply.github.com> Date: Mon, 13 Sep 2021 18:27:40 +0530 Subject: [PATCH 08/13] Update DesignBodipy_GA.py --- DesignBodipy_GA.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DesignBodipy_GA.py b/DesignBodipy_GA.py index 867b2db..c3677f0 100644 --- a/DesignBodipy_GA.py +++ b/DesignBodipy_GA.py @@ -28,8 +28,8 @@ help="Number of initial evaluations (Parent population) to build the GA model, default = 20") parser.add_argument("--iter", "-i", type=int, default=200, help="Maximum number of iterations (generations), default = 200") -parser.add_argument("--mut", "-m", type=float, default=0.01, - help="Probability of mutation of each group, default = 0.01") +parser.add_argument("--mut", "-m", type=float, default=0.1, + help="Probability of mutation of each group, default = 0.1") parser.add_argument("--tol", "-t", type=float, default=0.001, help="Tolerance, stop iterations once absolute error is less then, default = 0.001") From f47646e6b54e8f151ac3629e65af89d0500eeb07 Mon Sep 17 00:00:00 2001 From: moldis-group <70083963+moldis-group@users.noreply.github.com> Date: Tue, 14 Sep 2021 13:03:43 +0530 Subject: [PATCH 09/13] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 29700c9..7078688 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,8 @@ Both programs use a trained kernel ridge regression machine learning (KRR-ML) mo ``` git clone https://github.com/moldis-group/bodipy.git cd bodipy/data -wget desc.npy +wget http://moldis.tifrh.res.in/bodipy/desc.npy +cd .. ``` ## Example run: Bayesian Optimization From b7c4e70ac244fa4fcc38d044ab07ce5d6a773b7b Mon Sep 17 00:00:00 2001 From: moldis-group <70083963+moldis-group@users.noreply.github.com> Date: Thu, 16 Sep 2021 17:55:57 +0530 Subject: [PATCH 10/13] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7078688..130a37f 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,9 @@ Inverse Design of Substituted BODIPY ====================================== We provide python codes to inverse design BODIPY molecules, as discussed in Ref-1. -DesignBodipy_Bayes.py can be used to design molecules using Bayesian optimization based on Gaussian process regression. +`DesignBodipy_Bayes.py` can be used to design molecules using Bayesian optimization based on Gaussian process regression. -DesignBodipy_GA.py can be used for genetic algoritm (GA) optimization +`DesignBodipy_GA.py` can be used for genetic algoritm (GA) optimization Both programs use a trained kernel ridge regression machine learning (KRR-ML) model to evaluate the S0→S1 excitation energy. From ec838d4157ce1414411994ad3f3abed09794a7ca Mon Sep 17 00:00:00 2001 From: Raghu <62787956+raghurama123@users.noreply.github.com> Date: Tue, 15 Feb 2022 21:06:53 +0530 Subject: [PATCH 11/13] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 130a37f..af73a22 100644 --- a/README.md +++ b/README.md @@ -101,7 +101,8 @@ A publicly accessible web interface hosting a trained machine learning (ML) mode ## Reference: [1] _Data-Driven Modeling of S0 -> S1 Transition in the Chemical Space of BODIPYs: High-Throughput Computation, Machine Learning Modeling and Inverse Design_, Amit Gupta, Sabyasachi Chakraborty, Debashree Ghosh, Raghunathan Ramakrishnan - submitted (2021) arxiv + The Journal of Chemical Physics, 155 (2021) 244102. + DOI: [https://doi.org/10.1063/5.0076787](https://doi.org/10.1063/5.0076787) Dataset: [https://moldis-group.github.io/BODIPYs/](https://doi.org/10.6084/m9.figshare.16529214.v1) Dataset DOI: [10.6084/m9.figshare.16529214.v1](https://doi.org/10.6084/m9.figshare.16529214.v1) From d846bc1abaae71172cd22e8a16809ca1f5c7000f Mon Sep 17 00:00:00 2001 From: Raghu <62787956+raghurama123@users.noreply.github.com> Date: Tue, 15 Feb 2022 21:07:16 +0530 Subject: [PATCH 12/13] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index af73a22..7ba9a90 100644 --- a/README.md +++ b/README.md @@ -99,7 +99,7 @@ A publicly accessible web interface hosting a trained machine learning (ML) mode ## Reference: -[1] _Data-Driven Modeling of S0 -> S1 Transition in the Chemical Space of BODIPYs: High-Throughput Computation, Machine Learning Modeling and Inverse Design_, +[1] _Data-Driven Modeling of S0 -> S1 Transition in the Chemical Space of BODIPYs: High-Throughput Computation, Machine Learning Modeling and Inverse Design_ Amit Gupta, Sabyasachi Chakraborty, Debashree Ghosh, Raghunathan Ramakrishnan The Journal of Chemical Physics, 155 (2021) 244102. DOI: [https://doi.org/10.1063/5.0076787](https://doi.org/10.1063/5.0076787) From 92d06bc7fdb070760588e96e6c8c1b5f6359636c Mon Sep 17 00:00:00 2001 From: Raghu <62787956+raghurama123@users.noreply.github.com> Date: Tue, 15 Feb 2022 21:07:57 +0530 Subject: [PATCH 13/13] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7ba9a90..5d8020d 100644 --- a/README.md +++ b/README.md @@ -103,7 +103,7 @@ A publicly accessible web interface hosting a trained machine learning (ML) mode Amit Gupta, Sabyasachi Chakraborty, Debashree Ghosh, Raghunathan Ramakrishnan The Journal of Chemical Physics, 155 (2021) 244102. DOI: [https://doi.org/10.1063/5.0076787](https://doi.org/10.1063/5.0076787) - Dataset: [https://moldis-group.github.io/BODIPYs/](https://doi.org/10.6084/m9.figshare.16529214.v1) + Dataset: [https://moldis-group.github.io/BODIPYs/](https://moldis-group.github.io/BODIPYs/) Dataset DOI: [10.6084/m9.figshare.16529214.v1](https://doi.org/10.6084/m9.figshare.16529214.v1)