Transcriptome
Normalisation des comptages : CPM, TPM, FPKM
Convertir une matrice de comptages bruts de RNA-seq en CPM, TPM ou FPKM, avec la taille de librairie et le nombre de gènes détectés par échantillon.
La première colonne est l’identifiant du gène, les suivantes les comptages par échantillon. Une colonne nommée length sert au TPM et au FPKM. Tabulation, virgule et point-virgule font office de séparateur.
Statistiques de librairie
Matrice normalisée
Le point le plus souvent négligé : le TPM ne se calcule pas pour un gène isolé, car le dénominateur est la somme des taux de tous les gènes de l’échantillon. C’est pourquoi cet outil prend la table entière et non une ligne. TPM et FPKM ne diffèrent que par l’ordre des deux étapes — le TPM divise d’abord par la longueur puis par le total, le FPKM l’inverse — d’où des colonnes de TPM qui somment exactement à un million, contrairement au FPKM. Ni l’un ni l’autre ne remplace la normalisation inter-échantillons faite par DESeq2 pour l’expression différentielle.
Formule
TPM = (comptage ÷ longueur) ÷ Σ(comptage ÷ longueur) × 10⁶
- CPM
- comptage divisé par la taille de librairie, fois un million — la longueur est ignorée
- FPKM
- division par la taille de librairie d’abord, par la longueur ensuite
- TPM
- division par la longueur d’abord, par la somme des taux ensuite — chaque colonne somme à un million
Exemple résolu
Pourquoi le TPM ne se calcule pas pour un gène seul
- g1 : longueur 1000, comptage 10
- g2 : longueur 2000, comptage 30
- g3 : longueur 500, comptage 60
- Taux par gène : comptage divisé par la longueur en kilobases, soit 10, 15 et 120.
- Somme des taux : 145. Ce nombre dépend de tous les gènes de l’échantillon.
- TPM de chaque gène : son taux sur 145, multiplié par un million.
Réponse g1 vaut 68 966 — un nombre inatteignable sans g2 et g3
Erreurs courantes
- Normaliser une matrice déjà normalisée. Si la plupart des valeurs ne sont pas entières, vous avez sans doute collé des TPM ou FPKM au lieu de comptages bruts ; l’outil le signale.
- Comparer deux gènes entre eux en CPM. Le CPM ignore la longueur : un gène plus long capte davantage de lectures par construction ; pour comparer au sein d’un échantillon, prenez le TPM.
- Comparer des FPKM entre échantillons. Les colonnes de FPKM ne somment pas à un total fixe, la comparaison directe est donc trompeuse. Le TPM n’a pas ce défaut.
- Injecter ces valeurs dans un outil d’expression différentielle. DESeq2 et edgeR veulent des comptages bruts et font eux-mêmes la normalisation inter-échantillons.
Questions fréquentes
TPM ou FPKM ?
TPM. Ils ne diffèrent que par l’ordre des deux étapes, mais comme chaque colonne de TPM somme à un million, la part de chaque gène reste comparable entre échantillons. Le FPKM n’offre pas cette garantie.
Où trouver les longueurs de gènes ?
Dans l’annotation ayant servi au comptage. featureCounts écrit une colonne Length. Pour plus de précision, la longueur effective donnée par Salmon ou RSEM est préférable.
Quelle taille de librairie viser ?
Cela dépend de la question, mais l’écart entre échantillons compte plus que la valeur absolue. Si un échantillon totalise une fraction des autres, examinez-le avant l’analyse.