/quantum-computing-exploration-for-drug-discovery-on-aws

Deploy a solution to research on drug discovery problems using quantum computing and classical computing resources.

Primary LanguagePythonApache License 2.0Apache-2.0

Quantum Computing Exploration for Drug Discovery on AWS

Overview

Quantum Computing Exploration for Drug Discovery on AWS (abbrev. QCEDD), an open-sourced solution customers can launch to design and run computational studies in the area of drug discovery, e.g. molecular docking and protein folding. With this solution, customers can design and load new, or existing algorithms, into Jupyter notebooks, then orchestrate the classical and quantum compute resources using AWS Batch and AWS Step Functions. Due to its design, customers are free to scale their classical simulations by launching a performant HPC resource instead of a single EC2 instance. At the same time customer’s quantum experiments benefit from the growing number of quantum resources available through the Amazon Braket service.

The overall architecture is shown as below:

architecture

This solution deploys the Amazon CloudFormation template in your AWS Cloud account and provides three URLs. One for Visualization. The others provide user with two approaches to study drug discovery problems: Notebook Experiment and Batch Evaluation:

  • Notebook Experiment

The solution deploys the notebook for user to study different drug discovery problems. These problems will be studied using classical computing or quantum computing.

  • Batch Evaluation

The solution provides user the way to evaluate a particular problem based on different computing resources , classical computing or quantum computing. For example, for the problem of molecular unfolding, the performance difference between quantum annealer and simulated annealer can be compared.

  • Visualization

The solution provides user the way to visualize the comparing results of batch evaluation (e.g. performance, time)

For detailed description of architecture, please refer to the Architecture Page

Pre-built Examples for Drug Discovery1,2

Problem Name Methods Function Dataset Reference
Molecular Unfolding QUBO single solver 117 mol2 Quantum Molecular Unfolding(2021)
qbsolv
RNA Folding QUBO single solver bpRNA-1m RNA folding using quantum computers(2022)
qbsolv QHack 2022 winner
1.More examples to be added with continuous update
2.All the data in the solution follow the CC0 License

File Structure

Upon successfully cloning the repository into your local development environment, you will see the following file structure in your editor:

├── CHANGELOG.md                  [Change log file]    
├── CODE_OF_CONDUCT.md            [Code of conduct file] 
├── CONTRIBUTING.md               [Contribution guide] 
├── LICENSE                       [LICENSE for this solution] 
├── NOTICE                        [Notice for 3rd-party libraries]
├── README.md                     [Read me file]
├── docs                          [Solution's document]
│   ├── en
│   ├── index.html
│   ├── mkdocs.base.yml
│   ├── mkdocs.en.yml
│   ├── mkdocs.zh.yml
│   └── zh
└── source                        [Solution's source and test code]
    ├── README.md
    ├── cdk.json
    ├── package-lock.json
    ├── package.json
    ├── src                       [Solution's source code]
    │   ├── main.ts
    │   ├── molecular-unfolding
    │   │   ├── batch-images      
    │   │   ├── cdk
    │   │   ├── lambda
    │   │   ├── molecular_unfolding.ipynb
    │   │   ├── molecule-data
    │   │   ├── requirements.txt
    │   │   └── utility
    │   └── stack.ts
    ├── test                      [Solution's unit test code]             
    ├── tsconfig.jest.json
    ├── tsconfig.json
    └── version.json

Deploy From Source

Refer to prerequisites and deployment

Running Unit Tests

The /source/run-all-tests.sh script is the centralized script for running all unit, integration, and snapshot tests for both the CDK project as well as any associated Lambda functions or other source code packages.


cd ./source
chmod +x ./run-all-tests.sh
./run-all-tests.sh


Documents