The inspiration for this project came from the paper https://arxiv.org/pdf/1805.11973.pdf%20http://arxiv.org/abs/1805.11973.pdf on generating novel molecules using machine learning techniques. We are specifically looking at molecules that are FDA approved for use in drugs.

We researched further and found that Generate Adversarial Networks (GANs) have been used to generate molecules for drug design with some success. A main limitation in generating molecules with GANs is exponential time complexity. From other applications (and the paper by Zoufal: https://www.nature.com/articles/s41534-019-0223-2), we know that the quantum analog of the generator runs in polynomial time complexity. Therefore, in this project, we began by replacing the lambda function (where the GAN generator draws from the distribution) with a quantum lambda activation function, which is the first step in implementing a quantum generator. This is the first step in reducing molecule generation from exponential to polynomial time.

We initially began this project with the hopes of implementing a full quantum generator and made some serious conceptual progress but realized that we wouldn’t finish the project due to Hack Duke time constraints. Then, we moved to modifying the lambda activation function: we started by using the molGAN function in deepchem and modified it to include the lambda activation function, which we implemented in qiskit. We are proud of the fact that with our lambda activation function, we have been able to produce valid molecules with high success rate (98%).

We learned a lot about Python chemistry packages, GANs, quantum GANs, Qiskit, and time complexity for this project.

The next step is to implement the remainder of the quantum generator to have a full qGAN that generates valid molecules with high accuracy in polynomial time complexity.

Built With

Share this project:

Updates