Sciences de la vie & Calcul
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.
« La biologie est la physique du siècle prochain. »
— Max Perutz, prix Nobel de chimie 1962Discipline à 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.
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).
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.
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.
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.
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.
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.
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.
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])
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.
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.
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.
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.
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.
ADN génomique extrait et fragmenté
NGS : millions de reads courts ou longs
FastQC, Trimmomatic, fastp
SPAdes, Velvet, Canu, Hifiasm
PROKKA, MAKER, Ensembl pipeline
Variants, phylogénie, comparaison
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.
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.
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.
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).
« AlphaFold2 a résolu un problème vieux de 50 ans en biologie. »
— Nature, commentaire sur CASP14 (2021)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.
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 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.
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.
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} Å")
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.
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).
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.
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 |
|---|---|---|---|
| STAR | Alignement RNA-seq | Aligneur | Gère les introns, très rapide, grande RAM |
| HISAT2 | Alignement RNA-seq | Aligneur | Index graphe, faible empreinte mémoire |
| Salmon / Kallisto | Pseudo-alignement + quantification | Quantifier | Estimation probabiliste, 10× plus rapide |
| DESeq2 | Analyse différentielle | R / Bioconductor | Référence absolue, modèle NB |
| Seurat | scRNA-seq | R package | Standard single-cell, intégration CCA |
| Scanpy | scRNA-seq | Python | Format AnnData, très scalable |
| GSEA / clusterProfiler | Enrichissement fonctionnel | Java / R | GO, KEGG, Reactome, MSigDB |
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.
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).
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.
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.
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.
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.
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.
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.
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}")
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.
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.
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).
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.