Quantum Genome Pattern Matching using Rigetti’s Forest API

Quantum Genome Pattern Matching using Rigetti’s Forest API
A Bloch sphere illustrating a qubit generated using the QuTiP library in Python.

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:


  • 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’).


  1. Access to HPC system (ICHEC’s HPC system, Kay, will be made available)
  2. Laptop (to be brought by the student)
  3. Rigetti’s Forest SDK (publicly available and relevant components will be pre-installed on Kay)
  4. Atos QVM (Optional) (publicly available)
  5. Access to Atos QLM (Optional and to be confirmed) (Access provided by ICHEC)
  6. IBM Q Experience (publicly available)

Irish Centre for High-End Computing

Tagged with: , ,

Leave a Reply

Your email address will not be published. Required fields are marked *


This site uses Akismet to reduce spam. Learn how your comment data is processed.