Quantum Genetic Genealogy
Oh, what a tangled web we weave, when first we practice to conceive.

Overview

I first began monitoring quantum computing about 1997 as part of my role as head of Chevron's Advanced Information-Based Modeling Network. In 1999, I brought in a then-leader in quantum computers for an all-day seminar. So, I have been monitoring quantum computing for a long time.

For a very long time, people have been saying we are 10-20 years away from realizing the benefits of quantum computing. But now in 2023, several years after IBM introduced Qiskit which allows anyone to run programs on IBM's quantum computers, productive applications are no longer 10-20 years away. They are here. And non-technical media such as "Time" magazine devotes cover stories to that reality.

On this web page, I want to present a realistic idea of what quantum computing can do for genetic genealogy that has not been possible before. I want to move beyond the hype of the last quarter century's coverage of quantum computing and present an understanding of what quantum computing can do and what classical computers will continue to do since not everything is best done on a quantum computer.

Some of what may appear to be hype, really is true: quantum computers CAN solve in a very short time what classical computers cannot ever solve because there are too many possibilities that would take eons for a classical computer to solve. But there are still things that classical computers do very well and will continue to do.


What Quantum Computing Does Best and What Classical Computing Will Still Do

Quantum Computing
  • Quantum computers can deal with huge state spaces -- a great many possible combinations or possibilities -- which classical computers cannot deal with other than via sampling or probabilistic techniques that do not really deal with all the data.

  • Quantum computers can handle large amounts of data, such as for analyzing and comparing large numbers of complex DNA sequence sets from testers. Whole genome sequences of large numbers of testers would no longer be computationally unmanagable.

  • Quantum computing can help identify patterns in large genetic datasets that are not easily recognizable by classical computers. Note that this applies not just to genetic genealogy but to genealogy and history in cases where large data sets may hold patterns.

  • Quantum computing can create better models of reality that fully take into account details that classical computers cannot include.

  • Quantum computing might -- not really sure about this -- greatly improve phylogenetic analysis and tree-building.

  • Doing a one-to-many comparison with every kit in a database would be something better for a quantum computer, possibly obviating the need for batch pre-processing and creation of "short kits" (I forget what the actual term is) such as GEDmatch does.

  • CURRENT LIMITATION: For now, there is no programming language that elevates quantum computing to the level of modern programming languages. Quantum programming operates at the circuit level in specific values of qubits and actions of logic gates. In this sense, it is like the very early days of classical programming when you were really working at the level of machine language. So, there is a significant difference of conceptual levels that modern programming classical languages make unnecessary for working with classical computers than the machine-level operations you work with in quantum programming.

  • CURRENT LIMITATION: Both quantum qubits and classical bits can produce a result of only 2^n states. The difference is that the classical computer can only represent those states one at a time while the quantum computer can represent all of them at the same time through superposition, thus speeding up processing of combinations. But there is still a limit based on the number of qubits. The quantum computers currently available from IBM with Qiskit range from 5 to 14 qubits which can model 32 to 16,384 states. Thus only limited power of quantum computing is possible in such small quantum computers.

  • CURRENT LIMITATION: The following is from IBM's "Quantum Computing in a Nutshell" web page: "As with the noise cancellation example above, the amplitude and phase of qubits are continuous degrees of freedom upon which operations can never be done exactly. These gates errors, along with noise from the environment in which a quantum computer resides, can conspire to ruin a computation if not accounted for in the compilation process, and may require additional mitigation procedures in order to obtain a high-fidelity output on present day quantum systems susceptible to noise. Qiskit is capable of taking into account a wide range of device calibration metrics ... in its compilation strategy, and can select an optimal set of qubits on which to run a given quantum circuit. In addition, Qiskit hosts a collection of noise mitigation techniques for extracting a faithful representation of a quantum circuits output."
    Here is a related comment by Martin Vesely on Stack Exchange: According to so-called threshold theorem, it is possible to get rid of errors in quantum computation with arbitrary precision. However, there is an assumption that you have enough qubits. / To ilustrate the idea, you can encode one qubit |q>=α|0>+β|1> with more qubits, for example |q>=α|0000>+β|1111> and after calculation, based on majority rule, to decide about result. / ... To conclude, it is possible to reduce noise but we need more qubits. Increasing number of qubits would theoretically leads to quantum processor with no (or at least low level) noise."
Classical Computing
  • Quantum programs actually run on classical computers that pass information to the quantum computer.

  • Classical computers will still do tasks that do not deal with huge state spaces.

  • Classical computers are error-free. Quantum computers do generate errors in some cases ("quantum noise"), but this is not really understood sufficiently to make all quantum applications error-free in the production of answers.

  • Classical computers will still do the repetitious processing of tasks such as comparing two kits to see if they match. It might be that a quantum computer could also do this, but the size of the dataset -- even for whole genome sequencing -- is small enough for a one-to-one comparison that a classical computer is really all that is needed.

Getting Started in IBM's Qiskit

If you do want to use IBM's Qiskit (pronounced kiss-kit), it is best to follow the Qiskit website instructions. The environment is very dynamic, improving often. So, I have found that even a 3-year-old video on YouTube is out of sync with the current state of Qiskit.

IBM really needs to have a definitive video on the Qiskit website that they keep current. Instead all these YouTube videos by Qiskiteers that were once state of the art can now lead you into frustration for setup, although they are still good for programming tips. Bottom line: forget the videos for initial setup and follow IBM's instrsuctions on the website. IBM offers three options. I opted for their cloud version since it will always be current.

Keeping that in mind, there are some useful YouTube videos for concepts and programming tips. (All programming in the Qiskit Lab is via interactive Python.)

Andrew Helwer of Microsoft Research did a very good 2018 "Quantum Computing for Computer Scientists" video class (1:28) He gives a solid Mathematical basis for quantum logic gates, which are really transformations via matrix products. He keeps it to Real numbers so that his unit circle state space is a lot easier to handle intuitively than is the Bloch Sphere. See https://www.microsoft.com/en-us/research/video/quantum-computing-computer-scientists/

He does not cover the Math behind every quantum gate, but you can see it on this Wikipedia page: https://en.wikipedia.org/wiki/Quantum_logic_gate

A very useful tip on how to navigate the different Qiskit quantum computers to choose where to run your job and also nice code for monitoring your job in the queue is in the video at https://www.youtube.com/watch?v=aPCZcv-5qfA


Toward Higher-Level Quantum Programming Languages

There is some progress out of the quantum paleolithic era when machine-level coding was the only way to go.

Microsoft Research's Azure Quantum Service ( https://learn.microsoft.com/en-us/azure/quantum/overview-azure-quantum - free for students but others pay ) has a Quantum Developer's Kit which includes the Q# (Q-sharp as in a musical note sharp -- NOT Q-hash) language. ( https://learn.microsoft.com/en-us/azure/quantum/overview-what-is-qsharp-and-qdk ) You can see some Q# code in use on the 2018 Microsoft Research "Quantum Computing for Computer Scientists" video at about the 1 hour mark. ( https://www.microsoft.com/en-us/research/video/quantum-computing-computer-scientists)

On a similar musical theme, IBM's Quantum Composer ( https://quantum-computing.ibm.com/composer/docs/iqx ) lets you set visually set up and simulate the use of quantum logic gates to build quantum circuits -- a very nice way to experiment with the different gates individually or in combination. Keep in mind that simulations do not have the real-world quantum noise that is a reality of quantum computer use.


Send E-mail to wwjohnston01@yahoo.com
Copyright © 2023 by Wesley Johnston
All rights reserved


Last updated February 14, 2023