Quantum Genome Pattern Matching using Rigetti’s Forest API

Project reference: 2013
As scalable hardware for quantum computers becomes more of a reality, the development of a software stack and working applications becomes increasingly important; both to investigate what type of problems are well suited to quantum architectures and so that there exists production ready software. There are a wide range of applications that are being developed as proof of concepts for quantum computing. These are related to a variety of domains, from natural language processing to chemistry. Due to the restricted availability of functioning and operable quantum computers, a commonly used tool for development is quantum simulators. Quantum simulators simulate the underlying mathematics of quantum computers on a gate-based level. They can be run on classical computing systems including both CPU’s and GPU’s. However, the depth of the gate-based operations along with the large memory overhead of representing quantum states using quantum simulators means that it is impossible to run larger scale experiments on a standard desktop or laptop. Thus, high performance computing (HPC) systems are essential for larger scale applications.
String comparison has been shown to be a problem that maps well to quantum architectures. Each quantum state is represented by a binary string in its register. An arbitrary non-binary string can then be encoded into this binary string. Thus, we can represent each non-binary string as a unique quantum state. There are a number of methods which can then be used to explore the similarity of quantum states to a test state.
In this project, we will develop an application which exploits the reversibility of quantum circuits to quantify the similarity between a set of patterns and a test pattern. The final application will take a list of genome sequences and determine their similarity to a test genome sequence. Rigetti’s Forest SDK will be used to implement the solution. The Forest SDK components that will be used includes a Python library for quantum circuit development (PyQuil), and Rigetti’s Quantum Virtual Machine (QVM) which is a quantum simulator. Upon completion of the solution, the application’s performance at different scales will be examined.

A Bloch sphere illustrating a qubit generated using the QuTiP library in Python.
Project Mentor: Myles Doyle
Project Co-mentor: Venkatesh Kannan
Site Co-ordinator: Simon Wong
Participants: Benedict Braunsfeld, Sara Duarri Redondo
Learning Outcomes:
- Deeper understanding of quantum computing techniques and the underlying principles of quantum computing
- Experience using the Forest SDK, and other quantum SDK’s.
- Creating a publicly demonstratable string comparison application that can be executed on either a quantum simulator or quantum processing unit.
- Use of a HPC system and scaling of application.
- Exposure to larger projects in which the techniques and results of this project are integral.
Student Prerequisites (compulsory)
- Experience with Linux/Unix.
- Programming with Python or C++..
Student Prerequisites (desirable):
- Basic knowledge of quantum mechanics (specifically related to quantum computing, but any knowledge is an advantage).
- Experience with any quantum computing frameworks (Forest, Atos QVM, Qiskit, Q#, Intel-QS, etc).
Training Materials:
- Qiskit’s string comparison example
https://github.com/Qiskit/qiskit-community-tutorials/blob/master/hello_world/string_comparison.ipynb - Rigetti’s documentation
http://docs.rigetti.com/en/stable/ - Rigetti’s PyQuil repository including Python examples
https://github.com/rigetti/pyquil - Free introduction to quantum computing course
https://www.futurelearn.com/courses/intro-to-quantum-computing - Microsoft’s documentation on quantum computing concepts (‘Concepts’ section is a good starting point for beginners)
https://docs.microsoft.com/en-us/quantum/?view=qsharp-preview
Workplan:
- Week 1: Training week.
- Week 2: Induction, overview of project, introduction to relevant quantum computing concepts, HPC system and Forest SDK.
- Week 3: Implement standard exercises for quantum computing, then implement Qiskit’s string comparison example using the Forest SDK.
- Week 4: Design implementation methodology and write project plan.
- Week 5: Implement an application to conduct the string comparison algorithm for genetic pattern matching of arbitrary genome sequences.
- Week 6: Conduct scaling experiments on Kay and produce relevant visualisations of results.
- Week 7: Documentation of application and report writing.
- Week 8: Report writing and demonstration to ICHEC researchers.
Final Product Description:
A genome pattern matching application which quantifies the similarity of a population of genome sequences to a test sequence using the Forest SDK and executed using a quantum simulator.
Performance scaling results of the application.
Adapting the Project: Increasing the Difficulty:
The student could implement different string comparison algorithms which require more complicated quantum circuits and compare the results of the different methods (possible methods include using a conditional Oracle, quantum associative memory, or using a quantum phone directory approach).
The application could be run using the simulator with noise models enabled. Similarly, a real quantum computer could be used (IBM has free public access to some of their smaller systems).
Adapting the Project: Decreasing the Difficulty:
The student could implement a simpler version of the application which targets genome sequences consisting of binary values instead of multiple values (four nucleotides: ‘A’, ‘C’, ‘G’ and ‘T’).
Resources:
- Access to HPC system (ICHEC’s HPC system, Kay, will be made available)
- Laptop (to be brought by the student)
- Rigetti’s Forest SDK (publicly available and relevant components will be pre-installed on Kay)
- Atos QVM (Optional) (publicly available)
- Access to Atos QLM (Optional and to be confirmed) (Access provided by ICHEC)
- IBM Q Experience (publicly available)
Organisation:
Irish Centre for High-End Computing
Leave a Reply