Sciences de la vie & Calcul

Bioinformatique

La bioinformatique applique les méthodes de l'informatique, des statistiques et des mathématiques à l'analyse des données biologiques — génomes, protéomes, transcriptomes — pour comprendre le vivant à l'échelle moléculaire et accélérer la découverte médicale.

— Taille du génome humain
— Gènes codants humains
— Données GenBank (2024)
— Double hélice (Watson & Crick)
01

Introduction à la bioinformatique

« La biologie est la physique du siècle prochain. »

— Max Perutz, prix Nobel de chimie 1962
🔬

Définition & périmètre

Discipline à l'intersection de la biologie, de l'informatique et des mathématiques. Elle développe des algorithmes et des bases de données pour stocker, annoter, analyser et visualiser les données biologiques à grande échelle : génomes, séquences protéiques, réseaux d'interactions, données d'expression, images microscopiques.

📅

Jalons historiques

1953 : structure de l'ADN (Watson, Crick, Franklin). 1970 : algorithme Needleman-Wunsch. 1981 : Smith-Waterman. 1990 : lancement du Projet Génome Humain. 2001 : publication du génome humain. 2012 : séquençage nanopore (Oxford). 2021 : AlphaFold2 révolutionne la prédiction de structure 3D. 2024 : AlphaFold3, Evo (ADN).

💡

Pourquoi l'informatique ?

Un génome humain contient ~3,2 milliards de paires de bases. Le séquençage haut débit (NGS) génère plusieurs gigabases par heure. Comparer deux génomes implique des milliards d'opérations. Sans algorithmes efficaces, l'analyse est impossible. La bioinformatique est la clé de la médecine personnalisée et de la biologie synthétique.

🌐

Bases de données fondatrices

GenBank (NCBI, 1982) : séquences nucléotidiques. UniProt/SwissProt : protéines annotées. PDB (Protein Data Bank) : structures 3D. Ensembl, UCSC Genome Browser : annotation des génomes. GEO : données d'expression génique. ClinVar : variants cliniques. OMIM : maladies génétiques. SRA : données de séquençage brutes.

02

Séquences biologiques

🧬

ADN, ARN & Formats

Alphabet nucléotidique : {A, T, C, G} (ADN), {A, U, C, G} (ARN). Codes IUPAC étendus : N (any), R (purine A/G), Y (pyrimidine C/T). Format FASTA : en-tête (>id) + séquence brute. Format FASTQ : séquence + scores de qualité Phred (Q = −10 log₁₀ P_erreur). Qualité Q30 = 1 erreur / 1000 bases.

🔡

Protéines & Acides aminés

20 acides aminés standards, alphabet à 1 lettre (A, C, D, E, F, G, H, I, K, L, M, N, P, Q, R, S, T, V, W, Y) ou 3 lettres (Ala, Cys, Asp…). Séquence primaire → structure secondaire (hélice α, feuillet β, coil) → tertiaire → quaternaire. Format PDB et mmCIF pour les coordonnées atomiques 3D.

📊

Matrices de substitution

PAM (Point Accepted Mutation) : basée sur l'évolution observée à courte distance. BLOSUM (BLOcks SUbstitution Matrix) : statistiques sur des blocs non redondants. BLOSUM62 est la référence pour les recherches de similarité. Reflètent la probabilité évolutive qu'un acide aminé soit remplacé par un autre.

🔢

Générations de séquençage

1ère génération (Sanger, 1977) : électrophorèse capillaire, 800 pb, référence qualité. 2ème génération (NGS, Illumina) : séquençage par synthèse, reads 100–300 pb, haut débit, <1000$ le génome. 3ème génération (Oxford Nanopore, PacBio) : reads ultra-longs (>1 Mb), temps réel, sans amplification PCR.

Python · Biopython — Manipulation de séquences
from Bio import SeqIO
from Bio.Seq import Seq
from Bio.SeqUtils import gc_fraction

# Lecture d'un fichier FASTA
for record in SeqIO.parse("genome.fasta", "fasta"):
    seq = record.seq
    print(f"ID: {record.id} — Longueur: {len(seq)} pb")
    print(f"GC content : {gc_fraction(seq):.2%}")

# Opérations de base
dna = Seq("ATGGCCATTGTAATGGGCCGCTGAAAGGGTGCCCGATAG")
print(dna.complement())        # Brin complémentaire
print(dna.reverse_complement()) # Brin antisens 5'→3'

# Traduction ADN → ARNm → protéine
mrna = dna.transcribe()
prot = mrna.translate(to_stop=True)
print(f"Protéine : {prot}")

# Comptage des k-mers (k=4)
k, kmers = 4, {}
for i in range(len(dna) - k + 1):
    km = str(dna[i:i+k])
    kmers[km] = kmers.get(km, 0) + 1
print(sorted(kmers.items(), key=lambda x: -x[1])[:5])
03

Alignement de séquences

Needleman-Wunsch — Alignement global

O(mn) temps et espace

Programmation dynamique pour aligner deux séquences sur toute leur longueur. Score = max(diagonale + substitution, haut + gap, gauche + gap). Proposé en 1970, reste la référence pour les séquences de longueur similaire. Retrotracing de la matrice pour reconstruire l'alignement optimal. Utilisé dans ClustalW, MUSCLE.

Smith-Waterman — Alignement local

O(mn) — régions de similarité maximale

Variante de NW qui remet les scores négatifs à zéro. Trouve la région de similarité maximale entre deux séquences, idéale pour les séquences très divergentes ou de longueurs très différentes. Implémenté sur GPU (CUDASW++, SSW) pour des performances 100× supérieures.

BLAST — Basic Local Alignment Search Tool

Heuristique — quasi-instantané en pratique

Recherche par seeds (k-mers exacts), extension sans gap puis avec gap. E-value : probabilité d'obtenir un score par hasard dans une base de taille donnée. Variantes : blastn (nucléotide), blastp (protéine), blastx (nucléotide traduit vs protéine), tblastn, tblastx. DIAMOND : 500× plus rapide que blastp pour les protéines.

📏

Alignement multiple (MSA)

Aligner simultanément N > 2 séquences. Exact NP-dur → heuristiques. ClustalΩ : méthode progressive via arbre guide. MUSCLE : itératif + raffinement des profils. MAFFT : FFT pour la détection rapide de similarités, le plus rapide sur de grands jeux. T-Coffee : combinaison de bibliothèques. Formats : FASTA, Clustal, Stockholm, Phylip.

🗺️

Alignement de lectures (Read Mapping)

Aligner des millions de reads NGS sur un génome de référence. BWA-MEM2 : Burrows-Wheeler Aligner, référence pour Illumina. Bowtie2 : index FM très rapide. STAR, HISAT2 : RNA-seq avec gestion des introns (épissage). Sortie : format SAM/BAM (trié) + index BAI. SAMtools pour le traitement post-alignement.

04

Génomique & Assemblage de génomes

🧫
Extraction

ADN génomique extrait et fragmenté

📖
Séquençage

NGS : millions de reads courts ou longs

✂️
Contrôle qualité

FastQC, Trimmomatic, fastp

🧩
Assemblage

SPAdes, Velvet, Canu, Hifiasm

🏷️
Annotation

PROKKA, MAKER, Ensembl pipeline

🔍
Analyse

Variants, phylogénie, comparaison

🧩

Graphes de De Bruijn

Représentation des k-mers en graphe orienté : nœuds = (k-1)-mers, arêtes = k-mers. L'assemblage revient à trouver un chemin Eulérien. Utilisé par SPAdes, Velvet, IDBA. Complexité réduite par rapport aux approches OLC (Overlap-Layout-Consensus). SPAdes est le standard pour les courts reads Illumina.

🔄

Appel de variants (SNP, Indel, SV)

SNP/Indel : GATK HaplotypeCaller (gold standard), FreeBayes, DeepVariant (réseau de neurones, Google). SV (structural variants) : Manta, DELLY, Sniffles (long reads). Annotation fonctionnelle : ANNOVAR, VEP (Ensembl). Filtrage VQSR. Format VCF (Variant Call Format) + indexation tabix.

⚕️

Génomique clinique

WGS (Whole Genome Sequencing) et WES (Exome Sequencing) pour le diagnostic de maladies rares. Interprétation ACMG (pathogène / probablement pathogène / VUS). ClinVar, OMIM, HGMD. Pharmacogénomique : adapter les traitements selon le génotype (CYP2D6, TPMT). DTC : 23andMe, MyHeritage DNA.

🗂️

Génomique comparative & Pangénomique

Synténie : conservation de l'ordre des gènes entre espèces (MCScanX, SyMAP). Orthologues vs paralogues : OrthoFinder, OMA. Pangénome : graphe représentant la diversité intra-espèce (vg toolkit, Minigraph-Cactus). Applications : résistance antibiotique, diversité humaine (1000 Genomes, HPRC).

05

Protéines & Prédiction de structure

« AlphaFold2 a résolu un problème vieux de 50 ans en biologie. »

— Nature, commentaire sur CASP14 (2021)
🔮

AlphaFold2 & AlphaFold3

AlphaFold2 (DeepMind, 2021) : architecture Evoformer exploitant les co-évolutions (MSA) + Structure Module prédisant les angles ϕ, ψ, χ. Précision atomique pour la majorité des protéines (GDT > 90). AlphaFold DB : 200M structures prédites. AlphaFold3 (2024) : complexes protéine-ADN-ARN-ligands.

🏗️

Méthodes classiques

Modélisation par homologie : MODELLER, Swiss-Model (structure homologue connue). Threading/fold recognition : PHYRE2, I-TASSER. Ab initio : Rosetta (energy-based, compétitions CASP). Validation : PROCHECK (angles de Ramachandran), ERRAT, MolProbity, ProSA. Score Z de qualité structurale.

💊

Docking & Drug Discovery

Docking ligand-protéine : AutoDock Vina, Glide (Schrödinger), DOCK. Scoring functions : van der Waals, électrostatique, solvatation. Docking protéine-protéine : ZDOCK, HADDOCK (data-driven). Dynamique moléculaire pour l'affinement : GROMACS, AMBER, NAMD. Free energy perturbation (FEP) pour l'affinité de liaison.

🗃️

Domaines & Familles

Pfam : familles de domaines protéiques par profils HMM. InterPro : intégration multi-bases (Pfam, PRINTS, PROSITE, TIGRFAM, Gene3D). SCOP2, CATH : classification hiérarchique des structures (classe, architecture, topologie, homologie). HMMER3 : outil de référence pour la recherche par profil HMM.

Python · Biopython PDB — Analyse de structure 3D
from Bio.PDB import PDBParser, DSSP
import numpy as np

# Chargement d'une structure PDB
parser    = PDBParser(QUIET=True)
structure = parser.get_structure("hemo", "1hho.pdb")
model     = structure[0]

# Structure secondaire via DSSP
dssp  = DSSP(model, "1hho.pdb")
helix = sum(1 for k in dssp if dssp[k][2] == 'H')
sheet = sum(1 for k in dssp if dssp[k][2] == 'E')
print(f"Hélices α : {helix} résidus — Feuillets β : {sheet} résidus")

# Coordonnées Cα + rayon de giration
ca = np.array([
    res['CA'].get_vector().get_array()
    for chain in model
    for res   in chain
    if 'CA' in res
])
center = ca.mean(axis=0)
rg     = np.sqrt(((ca - center)**2).sum(axis=1).mean())
print(f"Rayon de giration Rg = {rg:.2f} Å")
06

Transcriptomique & RNA-Seq

📡

Pipeline RNA-Seq classique

Extraction ARN → rétrotranscription (cDNA) → librairie NGS → séquençage. Contrôle qualité : FastQC, MultiQC. Trimming : Trimmomatic, fastp. Alignement : STAR, HISAT2. Pseudo-alignement rapide : Salmon, Kallisto (10× plus vite). Comptage : featureCounts. Analyse différentielle : DESeq2, edgeR. Visualisation : volcano plot, heatmap.

📉

Analyse différentielle

DESeq2 : modèle binomial négatif, normalisation par facteur de taille, dispersion shrinkage. edgeR : normalisation TMM, exact test et quasi-likelihood. Correction Benjamini-Hochberg pour tests multiples (FDR). Log2 Fold Change. Gene Set Enrichment Analysis (GSEA) : voies KEGG, GO, Reactome, MSigDB. ClusterProfiler (R).

🔬

Single-Cell RNA-Seq (scRNA-seq)

Profil transcriptomique de cellules individuelles. Protocoles : 10X Genomics Chromium (droplets UMI), Smart-Seq2 (full-length). Pipeline Seurat ou Scanpy : filtrage qualité (% mitochondrial, n_genes) → normalisation → réduction dimensionnelle (PCA, UMAP) → clustering Leiden/Louvain → annotation. Pseudotemps : Monocle3, Diffusion pseudotime.

🌐

Épigénomique

Méthylation de l'ADN : bisulfite sequencing (WGBS, RRBS), analyse Bismark. Modification des histones : ChIP-seq (immunoprécipitation), peak calling MACS2/3. ATAC-seq : régions de chromatine accessibles (éléments régulateurs). Multiomique intégrée : CITE-seq (ARN + protéines), SHARE-seq (ARN + ATAC sur même cellule).

Outil Étape Type Notes clés
STARAlignement RNA-seqAligneurGère les introns, très rapide, grande RAM
HISAT2Alignement RNA-seqAligneurIndex graphe, faible empreinte mémoire
Salmon / KallistoPseudo-alignement + quantificationQuantifierEstimation probabiliste, 10× plus rapide
DESeq2Analyse différentielleR / BioconductorRéférence absolue, modèle NB
SeuratscRNA-seqR packageStandard single-cell, intégration CCA
ScanpyscRNA-seqPythonFormat AnnData, très scalable
GSEA / clusterProfilerEnrichissement fonctionnelJava / RGO, KEGG, Reactome, MSigDB
07

Phylogénie moléculaire & Métagénomique

🌳

Méthodes de reconstruction

Neighbor Joining (NJ) : phénétique rapide, O(n²). Maximum Parsimonie (MP) : minimise le nombre de changements (NP-dur). Maximum de Vraisemblance (ML) : RAxML-NG, IQ-TREE 2 — modèles paramétriques GTR+Γ+I. Bayésien : MrBayes, BEAST2 — distributions a posteriori via MCMC. Bootstrap ou concordance facteur pour le support des nœuds.

⏱️

Horloge moléculaire

Les substitutions s'accumulent à un taux quasi-constant. Calibration fossile ou géologique pour dater les divergences. BEAST2 : horloge stricte, relaxée ou locale. Applications : traçage de l'émergence SARS-CoV-2 (~octobre 2019), évolution de la résistance antibiotique, dispersion géographique de pathogènes (NextStrain).

🦠

Métagénomique

Séquençage de communautés microbiennes sans culture. 16S rRNA amplicon : taxonomie (QIIME2, mothur, DADA2). Shotgun métagénomique : fonctions + espèces (MetaPhlAn4, HUMAnN3). Méta-assemblage : MEGAHIT, metaSPAdes. Binning : MaxBin2, MetaBAT2 (MAGs — Metagenome-Assembled Genomes). Applications : microbiome intestinal, sol, méta-épidémiologie.

🔄

Génomique évolutive

Sélection positive : dN/dS ratio, tests McDonnald-Kreitman. Taux de recombinaison : ldhat, PLINK. Déséquilibre de liaison (LD). GWAS (Genome-Wide Association Studies) : identifier les variants associés aux traits et maladies (PLINK, SAIGE, REGENIE). Scores polygéniques (PRS). Population genomics : ADMIXTURE, TreeMix, fastsimcoal2.

08

Intelligence artificielle & Génomique

🤖

Modèles de langage biologiques (LLM)

ESM-2 (Meta, 2022) : LLM entraîné sur 250M séquences protéiques, 15B paramètres. ESMFold : prédiction de structure directe sans MSA. Evo (Arc Institute, 2024) : modèle ADN 7B paramètres sur 2,7M génomes, modélise la biologie à l'échelle cellulaire. Nucleotide Transformer, DNABERT-2 : prédiction de l'effet des variants non-codants.

🧫

Deep Learning pour la génomique

DeepSEA (2015) : premiers CNN prédisant l'effet des variants sur la régulation. Basenji, Enformer : Transformers sur de longues séquences génomiques (100 kb), prédiction de l'expression à distance depuis la séquence. DeepVariant (Google) : CNN pour l'appel de variants avec précision supérieure à GATK. CADD, REVEL : scoring de pathogénicité par ML.

💊

Design de protéines par IA

RFdiffusion (David Baker lab, 2023) : diffusion pour le design de novo de protéines aux propriétés prescrites. ProteinMPNN : séquences optimales pour une structure donnée. Génération de molécules : DiffSBDD, DiffDock — docking par diffusion. EquiBind : docking équivariant rapide. AlphaFold3 : structures de complexes hétéromolélculaires.

🔍

Interprétabilité en génomique

Attribution des motifs importants dans une séquence : DeepLIFT, SHAP, GradCAM pour CNN génomiques. TF-MoDISco : découverte de motifs à partir des profils d'attribution (identificaiton de séquences régulatrices). Probing : évaluer ce que les LLM biologiques encodent (contacts, accessibilité, localisation). Validation expérimentale des prédictions.

Python · ESM-2 — Embeddings protéiques (Meta)
import torch
import esm  # pip install fair-esm

# ESM-2 — 150M paramètres
model, alphabet = esm.pretrained.esm2_t30_150M_UR50D()
batch_converter  = alphabet.get_batch_converter()
model.eval()

sequences = [
    ("signal_peptide", "MKTIIALSYIFCLVFA"),
    ("hemoglobin_alpha", "MVLSPADKTNVKAAW"),
]

_, _, tokens = batch_converter(sequences)

with torch.no_grad():
    out = model(tokens, repr_layers=[30], return_contacts=True)

# Embeddings [B, L, 640] — couche 30
reprs = out["representations"][30]
for i, (label, seq) in enumerate(sequences):
    mean_emb = reprs[i, 1:len(seq)+1].mean(dim=0)
    print(f"{label}: shape={mean_emb.shape}")

# Matrice de contacts prédite [B, L, L]
contacts = out["contacts"]
print(f"Contact map: {contacts.shape}")
09

Outils & Écosystème

🐍

Biopython & Bioconductor

Biopython : parsing FASTA/FASTQ/PDB/GenBank, accès NCBI Entrez, AlignIO, Phylo, PDB, SeqIO. Bioconductor (R) : plus de 2 000 packages spécialisés — GenomicRanges, IRanges, Rsamtools, DESeq2, edgeR, limma, clusterProfiler, AnnotationDbi, Biostrings. Indispensables pour toute analyse bioinformatique.

🔄

Workflows reproductibles

Snakemake : workflow Python, gestion de dépendances, cluster HPC/cloud. Nextflow + nf-core : pipelines modulaires validés (nf-core/rnaseq, sarek, ampliseq). CWL, WDL : standards de portabilité. Conda/Mamba : environnements reproductibles. Docker/Singularity : conteneurs pour la portabilité HPC. Git + DVC pour la version des données.

☁️

Calcul haute performance & Cloud

HPC clusters : SLURM, PBS Torque. Plateformes cloud spécialisées : Terra (Broad Institute, Cromwell + WDL), Galaxy (interface web accessible), AWS HealthOmics, Google Cloud Life Sciences, Azure Genomics. Stockage : CRAM (compression séquences), HDF5 (single-cell avec AnnData), Zarr (données génomiques scalables).

📊

Visualisation

IGV (Integrative Genomics Viewer) : alignements BAM, variants VCF, annotations BED/GTF. UCSC Genome Browser. Circos : visualisation circulaire du génome (synténie, variants). PyMOL, ChimeraX, Mol* : structures 3D. ComplexHeatmap, ggplot2 (R) : figures de publication. Plotly, seaborn (Python) : données omiques.

Boîte à outils complète

BLAST+ / DIAMOND BWA-MEM2 / Bowtie2 STAR / HISAT2 SAMtools / BCFtools GATK4 / DeepVariant VEP / ANNOVAR SPAdes / Hifiasm PROKKA / MAKER MAFFT / ClustalΩ IQ-TREE 2 / RAxML-NG BEAST2 / MrBayes QIIME2 / DADA2 MetaPhlAn4 / HUMAnN3 Seurat / Scanpy DESeq2 / edgeR GROMACS / AMBER AutoDock Vina / HADDOCK PyMOL / ChimeraX Snakemake / Nextflow Galaxy / Terra