Entfernen des Batch-Effekts in Heatmaps nach differentieller Genexpressionsanalyse

Aug 15 2020

Ich arbeite an einem Datensatz, in dem das erste Replikat jeder Gruppe ein Stapel und das zweite Replikat ein zweiter Stapel ist. Nachdem PCAich das Diagramm überprüft und den Batch-Effekt in PC1 gesehen hatte, verwendete ich die removeBatchEffectFunktion von limma, um den Batch-Effekt von meinen Zähldaten zu subtrahieren. Wenn ich dann PCA verwende, erhalte ich eine Darstellung, die keinen offensichtlichen Batch-Effekt mehr zu haben scheint! Es wird jedoch empfohlen, keine Batch-Effekt-Korrektur für die differentielle Genanalyse zu verwenden, sondern die Batch-Variable zusammen mit der Gruppenvariablen bei der Erstellung des zu verwenden model.matrix. Also habe ich das gemacht, bin geranntlimma/voomauf die normalisierten Zählungen und extrahierte differentiell exprimierte Gene. Wenn ich jedoch versuche, eine Heatmap aus den DEGs zu erstellen, sehe ich immer noch, dass die Proben aus verschiedenen Stapeln separat geclustert werden, anstatt die Cluster von Replikaten derselben Probe zu sehen. Meine Frage ist also, ob ich removeBatchEffectdie Zähldaten von DEGs verwenden und dann den transformierten Datensatz für Heatmaps verwenden soll, oder gibt es eine andere Möglichkeit, dies zu beheben?

Antworten

5 ATpoint Aug 16 2020 at 23:58

Es ist in der Tat richtig, dass für die DE-Analyse eine Charge in die Formel aufgenommen werden sollte, um eine Änderung der ursprünglichen Anzahl zu vermeiden. Für alles andere wie das Plotten von Heatmaps ist die Verwendung von removeBatchEffectsvollkommen in Ordnung und (zumindest für mich) ein standardmäßiges und akzeptiertes Verfahren. Es spielt im Wesentlichen keine Rolle, was Sie verwenden, um den Batch-Effekt für die nachgeschalteten Zählungen zu korrigieren. Die Ergebnisse werden wahrscheinlich ähnlich sein. Combat-SeqAus dem sva-Paket ist eine kürzlich erschienene Anpassung von ComBat speziell für RNA-seq, die (soweit ich weiß) besser mit der Ganzzahlzahl der Daten umgeht. Dies arbeitet mit Rohzählungen und vermeidet die berüchtigten negativen Werte, die manchmal mit limmaund auftreten Combat. Nachdem Sie ComBat-SeqIhre Rohzählungen angewendet haben, können Sie sie wie gewohnt mit edgeR (oder einem beliebigen Werkzeug) normalisieren und dann die Heatmaps erstellen. Sehenhttps://github.com/zhangyuqing/ComBat-seq. Die DE-Ergebnisse sollten weiterhin aus der normalen DE-Pipeline mit einer Charge als Kovariate stammen, wie oben erläutert.