Le contexte

Cleveland Clinic et IBM ont officiellement dévoilé le premier ordinateur quantique privé sur site aux États-Unis. L’IBM Quantum System One installé à Cleveland Clinic est le premier ordinateur quantique au monde uniquement dédié à la recherche en santé.

Cette collaboration s’inscrit dans le Discovery Accelerator, un partenariat de 10 ans lancé en 2021.


Glossaire : les termes médicaux expliqués

Avant de plonger dans le projet, voici les termes clés à comprendre :

Biomarqueur

Un biomarqueur (marqueur biologique) est une caractéristique mesurable qui indique un état biologique, normal ou pathologique. C’est comme un “indicateur” dans le corps.

Exemples concrets :

  • Glycémie : biomarqueur du diabète
  • PSA (Antigène Prostatique Spécifique) : biomarqueur du cancer de la prostate
  • Fragments d’ADN circulant (cfDNA) : biomarqueur de présence tumorale

Pour le cancer du poumon, les chercheurs analysent des biomarqueurs comme :

BiomarqueurCe qu’il mesurePourquoi c’est utile
cfDNA (cell-free DNA)Fragments d’ADN libérés par les cellules mortes dans le sangLes cellules cancéreuses libèrent plus d’ADN, avec des patterns spécifiques
Méthylation SHOX2Modification chimique sur un gène spécifiqueHyperméthylé dans 60-80% des cancers du poumon
Méthylation PTGER4Modification chimique sur un autre gèneCombiné avec SHOX2, améliore la détection
Ratio de fragmentsTaille des fragments d’ADN circulantLes tumeurs produisent des fragments de tailles caractéristiques

Méthylation de l’ADN

La méthylation est une modification chimique de l’ADN (ajout d’un groupe méthyle -CH3). C’est comme un “interrupteur” qui active ou désactive des gènes.

ADN normal :     ...C-G-A-T-C-G...
                     ↓ méthylation
ADN méthylé :    ...C-G-A-T-C-G...
                         |
                        CH₃ (groupe méthyle)

Dans le cancer : certains gènes sont anormalement méthylés (hyperméthylation), ce qui “éteint” des gènes suppresseurs de tumeurs. C’est détectable dans une simple prise de sang.

Biopsie liquide

Contrairement à une biopsie classique (prélèvement de tissu, invasif, douloureux), la biopsie liquide analyse simplement le sang du patient pour y détecter :

  • Des fragments d’ADN tumoral (ctDNA)
  • Des cellules tumorales circulantes (CTC)
  • Des exosomes (vésicules libérées par les tumeurs)

Avantages : non invasif, répétable, moins cher qu’un CT scan.

Feature (en Machine Learning)

Une feature est une caractéristique mesurable utilisée par un algorithme pour faire une prédiction. Dans notre cas, chaque biomarqueur est une feature.

Le problème : pour le cancer du poumon, on peut avoir des centaines de features (différents fragments d’ADN, niveaux de méthylation de dizaines de gènes, ratios, etc.). “C’est très difficile pour le calcul classique, les algorithmes de machine learning classiques de gérer ce grand nombre de features différentes.”

C’est là que le quantum computing entre en jeu.


L’ordinateur quantique : IBM Quantum System One

Spécifications actuelles (mise à jour décembre 2025) :

  • Processeur : IBM Quantum Heron (10x plus performant que son prédécesseur Eagle)
  • Localisation : Lerner Research Institute, campus principal de Cleveland Clinic
  • Infrastructure : Connecté au cluster HPC (High-Performance Computing) pour le calcul hybride quantique-classique

Le projet : Détection précoce du cancer du poumon

Le problème actuel

Malgré le dépistage par CT scan à faible dose approuvé depuis 8 ans, seulement un quart des cancers du poumon sont diagnostiqués à un stade précoce. Il y a plusieurs raisons à ce décalage : critères d’éligibilité stricts basés sur l’âge et l’historique tabagique qui n’incluent pas tous les patients à risque, adoption lente avec seulement environ 10% des individus éligibles inscrits dans les programmes de dépistage.

En résumé :

  • Critères trop stricts (âge + tabac) → beaucoup de patients à risque exclus
  • Seulement ~10% des éligibles font le dépistage
  • CT scan = coûteux, irradiant, pas accessible partout
  • 75% des cancers découverts trop tard

La solution : un test sanguin + quantum ML

Le calcul quantique et les algorithmes quantiques ont le potentiel d’identifier des patterns dans de grands ensembles de données plus précisément que le calcul classique. Nous espérons déterminer si l’application d’algorithmes de machine learning quantique à l’entraînement de classifieurs de biomarqueurs moléculaires améliore la performance prédictive des biomarqueurs pour la détection précoce du cancer du poumon par rapport aux approches de machine learning traditionnelles. — Cleveland Clinic

Les partenaires du projet :

  • Cleveland Clinic : données patients, expertise clinique
  • IBM Quantum : ordinateur quantique, algorithmes
  • DELFI : technologie de fragmentation d’ADN
  • Nucleix : biomarqueurs de méthylation
  • Fondation Mandel : financement

Pourquoi le quantum change la donne ?

Le problème du calcul classique

Imaginons qu’on analyse 8 biomarqueurs pour un patient. Chaque biomarqueur peut être “normal” ou “anormal”.

  • Nombre de combinaisons possibles : 2^8 = 256 combinaisons
  • Avec 20 biomarqueurs : 2^20 = 1 048 576 combinaisons
  • Avec 50 biomarqueurs : 2^50 = 1 125 899 906 842 624 combinaisons

Un ordinateur classique doit évaluer ces combinaisons une par une. Ça devient vite impossible.

L’avantage quantique

Un ordinateur quantique utilise deux propriétés de la mécanique quantique :

  1. Superposition : Un qubit peut être dans l’état |0⟩ ET |1⟩ en même temps (contrairement à un bit classique qui est soit 0, soit 1). Avec 8 qubits, on représente les 256 combinaisons simultanément.

  2. Intrication : Deux qubits peuvent être “liés” de sorte que l’état de l’un dépend de l’état de l’autre. Cela permet de capturer les corrélations entre biomarqueurs instantanément.


Code : Classification de biomarqueurs sur IBM Quantum

Voici comment fonctionne concrètement l’approche de Cleveland Clinic, avec des exemples de code exécutables.

Étape 1 : Encoder les biomarqueurs en superposition

from qiskit import QuantumCircuit
from qiskit_aer import AerSimulator
import numpy as np

# Données patient : 2 biomarqueurs normalisés [0-1]
# Exemple: taux de méthylation SHOX2 et PTGER4
biomarker_shox2 = 0.7   # Élevé (hyperméthylation)
biomarker_ptger4 = 0.8  # Élevé (hyperméthylation)

# 2 qubits pour encoder 2 biomarqueurs
qc = QuantumCircuit(2, 2)

# Encodage : chaque biomarqueur devient un angle de rotation
# Porte RY : rotation autour de l'axe Y de la sphère de Bloch
angle_1 = biomarker_shox2 * np.pi   # 0.7 → 2.2 radians
angle_2 = biomarker_ptger4 * np.pi  # 0.8 → 2.5 radians

qc.ry(angle_1, 0)  # Encode SHOX2 sur qubit 0
qc.ry(angle_2, 1)  # Encode PTGER4 sur qubit 1

print("Encodage des biomarqueurs :")
print(qc.draw())

#      ┌─────────┐
# q_0: ┤ Ry(2.2) ├  ← SHOX2 encodé
#      ├─────────┤
# q_1: ┤ Ry(2.5) ├  ← PTGER4 encodé
#      └─────────┘

# À ce stade, chaque qubit est en SUPERPOSITION
# Il représente simultanément plusieurs valeurs possibles

Ce qui se passe : au lieu de stocker “0.7” comme un nombre classique, on encode cette valeur dans l’amplitude de probabilité d’un qubit. Le qubit est maintenant dans une superposition qui “contient” cette information.

Étape 2 : Intriquer pour capturer les corrélations

# On continue le circuit précédent
# Porte CNOT : crée une intrication entre les 2 biomarqueurs
# Si qubit 0 est |1⟩, alors flip qubit 1
qc.cx(0, 1)

print("Après intrication :")
print(qc.draw())

#      ┌─────────┐
# q_0: ┤ Ry(2.2) ├──■──    ← Qubit de contrôle
#      ├─────────┤┌─┴─┐
# q_1: ┤ Ry(2.5) ├┤ X ├    ← Qubit cible
#      └─────────┘└───┘

# Maintenant les 2 qubits sont CORRÉLÉS (intriqués)
# Le système "sait" que ces biomarqueurs sont liés

Pourquoi c’est important : en oncologie, les biomarqueurs ne sont pas indépendants. Une hyperméthylation de SHOX2 combinée à une hyperméthylation de PTGER4 est bien plus prédictive que chacun séparément. L’intrication capture cette corrélation nativement dans le hardware quantique.

Étape 3 : Circuit complet de classification

from qiskit import QuantumCircuit
from qiskit_aer import AerSimulator
import numpy as np

def classify_lung_cancer_risk(biomarkers: dict, trained_theta: float = 0.5) -> dict:
    """
    Classifie le risque de cancer du poumon à partir de biomarqueurs

    Args:
        biomarkers: dict avec les valeurs normalisées [0-1]
        trained_theta: paramètre appris pendant l'entraînement

    Returns:
        dict avec probabilités et recommandation
    """

    # Extraire les biomarqueurs
    shox2 = biomarkers.get('methylation_shox2', 0.5)
    ptger4 = biomarkers.get('methylation_ptger4', 0.5)

    # Circuit quantique : 2 qubits, 1 bit classique pour le résultat
    qc = QuantumCircuit(2, 1)

    # 1. ENCODAGE : biomarqueurs → angles de rotation
    qc.ry(shox2 * np.pi, 0)
    qc.ry(ptger4 * np.pi, 1)

    # 2. INTRICATION : capturer la corrélation entre biomarqueurs
    qc.cx(0, 1)

    # 3. CLASSIFICATION : couche paramétrée (apprise sur données réelles)
    # Ce paramètre serait optimisé sur des milliers de patients
    qc.ry(trained_theta, 0)

    # 4. MESURE : qubit 0 donne la classification
    # |0⟩ = risque faible, |1⟩ = risque élevé
    qc.measure(0, 0)

    # Exécution sur simulateur (ou vrai hardware IBM)
    simulator = AerSimulator()
    result = simulator.run(qc, shots=1000).result()
    counts = result.get_counts()

    # Calcul des probabilités
    prob_high_risk = counts.get('1', 0) / 1000
    prob_low_risk = counts.get('0', 0) / 1000

    # Recommandation clinique
    if prob_high_risk > 0.7:
        recommendation = "CT scan urgent recommandé"
        urgency = "HAUTE"
    elif prob_high_risk > 0.5:
        recommendation = "CT scan recommandé sous 30 jours"
        urgency = "MOYENNE"
    elif prob_high_risk > 0.3:
        recommendation = "Surveillance - nouveau test dans 6 mois"
        urgency = "FAIBLE"
    else:
        recommendation = "Risque faible - dépistage annuel standard"
        urgency = "NORMALE"

    return {
        'circuit': qc,
        'prob_high_risk': prob_high_risk,
        'prob_low_risk': prob_low_risk,
        'recommendation': recommendation,
        'urgency': urgency,
        'raw_counts': counts
    }

# ============================================
# EXEMPLE : Analyse d'un patient
# ============================================

# Patient avec biomarqueurs élevés (profil à risque)
patient_data = {
    'methylation_shox2': 0.75,   # Hyperméthylation (normal < 0.3)
    'methylation_ptger4': 0.82   # Hyperméthylation (normal < 0.3)
}

result = classify_lung_cancer_risk(patient_data)

print("=" * 50)
print("RÉSULTAT ANALYSE BIOMARQUEURS - CANCER POUMON")
print("=" * 50)
print(f"\nBiomarqueurs analysés :")
print(f"  • Méthylation SHOX2  : {patient_data['methylation_shox2']:.0%}")
print(f"  • Méthylation PTGER4 : {patient_data['methylation_ptger4']:.0%}")
print(f"\nCircuit quantique exécuté :")
print(result['circuit'].draw())
print(f"\nRésultats (1000 mesures) : {result['raw_counts']}")
print(f"\n{'─' * 50}")
print(f"Probabilité risque élevé  : {result['prob_high_risk']:.1%}")
print(f"Probabilité risque faible : {result['prob_low_risk']:.1%}")
print(f"{'─' * 50}")
print(f"Urgence        : {result['urgency']}")
print(f"Recommandation : {result['recommendation']}")
print("=" * 50)

Sortie :

==================================================
RÉSULTAT ANALYSE BIOMARQUEURS - CANCER POUMON
==================================================
Biomarqueurs analysés :
  • Méthylation SHOX2  : 75%
  • Méthylation PTGER4 : 82%

Circuit quantique exécuté :
     ┌──────────┐     ┌──────────┐┌─┐
q_0: ┤ Ry(2.36) ├──■──┤ Ry(0.5)  ├┤M├
     ├──────────┤┌─┴─┐└──────────┘└╥┘
q_1: ┤ Ry(2.58) ├┤ X ├─────────────╫─
     └──────────┘└───┘             ║
c: 1/══════════════════════════════╩═

Résultats (1000 mesures) : {'1': 712, '0': 288}
──────────────────────────────────────────────────
Probabilité risque élevé  : 71.2%
Probabilité risque faible : 28.8%
──────────────────────────────────────────────────
Urgence        : HAUTE
Recommandation : CT scan urgent recommandé
==================================================

Comparaison : Classique vs Quantique

AspectMachine Learning ClassiqueQuantum Machine Learning
EncodageChaque biomarqueur = 1 nombre en mémoireChaque biomarqueur = 1 qubit en superposition
CombinaisonsTestées séquentiellementToutes en parallèle
CorrélationsCalculées par multiplication matricielleCapturées nativement par intrication
8 biomarqueurs256 calculs8 qubits (simultané)
50 biomarqueurs~10^15 calculs (impossible)50 qubits (faisable)

L’impact attendu

Les implications de la recherche sont substantielles – au minimum, nous aurons l’équipe quantique la mieux formée pour répondre à des questions similaires au fil du temps, à mesure que le calcul quantique mûrit ; et idéalement, nous serons capables d’améliorer la performance de ces deux classifieurs, menant à une accélération de leur implémentation et un changement de paradigme dans la façon dont nous dépistons le cancer du poumon. — Cleveland Clinic

En chiffres :

  • Cancer du poumon : 1.8 million de décès/an dans le monde
  • Survie à 5 ans si détecté tôt : ~60%
  • Survie à 5 ans si détecté tard : ~6%

Un simple test sanguin accessible partout pourrait sauver des centaines de milliers de vies.


Sources