Autor & Betreuer: Huang Lin: [email protected]
ANCOMBC ist ein Paket, das DAU -Häufigkeit (DA) und Korrelationsanalysen für Mikrobiomdaten enthält. Insbesondere umfasst das Paket die Analyse von Zusammensetzungen von Mikrobiomen mit Bias-Korrektur 2 (ANCOM-BC2), Analyse von Zusammensetzungen von Mikrobiomen mit Bias-Korrektur (ANCOM-BC) und Analyse der Zusammensetzung von Mikrobiomen (ANCOM) für die DA-Analyse und die Spartschätzung Korrelationen zwischen Mikrobiomen (Secom) zur Korrelationsanalyse. Mikrobiomdaten unterliegen typischerweise zwei Quellen von Verzerrungen: ungleiche Stichprobenfraktionen (Stichprobenspezifische Verzerrungen) und Differentialsequenzierungseffizienzen (taxonspezifische Vorurteile). In das ANCOMBC -Paket enthaltene Methoden sind so konzipiert, dass diese Verzerrungen korrigiert und statistisch konsistente Schätzer konstruieren.
if ( ! requireNamespace( " BiocManager " , quietly = TRUE ))
install.packages( " BiocManager " )
BiocManager :: install( " ANCOMBC " )
library( ANCOMBC )
? ancombc2
? ancombc
? ancom
? secom_linear
? secom_dist
1. Wir unterstützen den Test für Interaktionen jetzt!
Die neuen Versionen von ancom
, ancombc
und ancombc2
unterstützen die Einbeziehung von Interaktionsbegriffen in die Analyse. In den neuesten Vignetten finden Sie eine detaillierte Anleitung.
2. Die Sensitivitätsanalyse ist unerlässlich!
Für Benutzer: Sofern der Hauptaugenmerk Ihrer Studie nicht die Leistung liegt, empfehlen wir dringend, die Sensitivitätsanalyse aktiviert zu halten (Standardeinstellung), da sie falsch positive Ergebnisse erheblich reduziert.
Für Forscher: Wir haben einige neuere Arbeiten festgestellt, die Ancom-BC2 kritisieren, weil sie falsch-positives Bestehen nicht angemessen kontrollieren. Diese Kritikpunkte konnten jedoch unserem Funktionsanalyse -Merkmal nicht berücksichtigen. Der Vergleich von ANCOM-BC2 ohne die Verwendung seiner eingebetteten Merkmale, wie z. B. Sensitivitätsanalyse, ist keine faire Bewertung. Wir betonen diesen Punkt in unserem neuesten Update.
1. F: Was sind die Unterschiede zwischen den formula
und group
in ancombc
und ancombc2
?
A: Die formula
und group
dienen unterschiedlichen Zwecken in den Funktionen ancombc
und ancombc2
. Hier ist eine Aufschlüsselung ihrer Unterschiede:
formula
: Dieses Argument wird verwendet, um die Variablen in Ihrem Experiment anzugeben, die möglicherweise die mikrobiellen Häufigkeiten beeinflussen können. Es ist wichtig, alle relevanten Variablen in die formula
aufzunehmen, um eine ordnungsgemäße Anpassung und genaue Ergebnisse sicherzustellen. Wenn Sie beispielsweise eine kontinuierliche Variable wie age
als Ihre Hauptvariable von Interesse haben und zusätzliche kategoriale Variablen haben, die angepasst werden müssen, aber nicht direkt mit Ihrer Forschungsfrage zusammenhängen, können Sie sie in die formula
aufnehmen, während Sie group
als Null verlassen.
group
: Das group
ist optional und sollte nur angegeben werden, wenn Sie strukturelle Nullen (Präsenz-/Abwesenheitstest) erkennen oder Vergleiche mit mehreren Gruppen durchführen möchten, wie z. . Wenn Ihre interessierende Variable eine kategoriale Variable mit mehr als drei Ebenen ist und Sie Vergleiche mit mehreren Gruppen durchführen möchten, sollten Sie das group
einbeziehen. Es ist wichtig zu beachten, dass group
in ancom
nicht mit main_var
übereinstimmt. In ancombc
und ancombc2
wird group
für Multi-Gruppen-Vergleiche und die Korrektur von P-Werten für mehrere Vergleiche verwendet.
Denken Sie daran, nicht die main_var
in die adj_formula
in ancom
aufzunehmen, sondern auch group
in die formula
oder fix_formula
(in ancombc
bzw. ancombc2
) einbeziehen, wenn group
nicht null ist. Dies stellt sicher, dass die entsprechenden Anpassungen und Vergleiche in der Analyse vorgenommen werden.
2. F: Warum fehlen einige Taxa in den Hauptgebieten?
A: Es gibt einige Gründe, warum bestimmte Taxa in den Hauptunterlagen in ancombc
oder ancombc2
nicht vorhanden sein können. Hier ist eine Erklärung:
Prävalenzausschluss: Taxa mit der Prävalenzen unterhalb des angegebenen Schwellenwerts ( prv_cut
) wird von der Analyse ausgeschlossen. Der prv_cut
-Wert bestimmt die minimale Prävalenz, die für ein in der Analyse berücksichtigter Taxon erforderlich ist. Wenn die Prävalenz eines Taxons unter diesen Schwellenwert fällt, wird sie nicht in die primären Ergebnisse einbezogen.
Strukturelle Nullen: Taxa, die strukturelle Nullen aufweisen, was bedeutet, dass sie in allen Proben konsequent keine Zahlen aufweisen, werden nur durch den Vorhandensein/Abwesenheitstest signifikant angesehen. Die Methoden von ANCOM-BC und ANCOM-BC2 sind nicht so konzipiert, dass sie signifikante Unterschiede in der Taxa mit strukturellen Nullen erkennen. Infolgedessen werden diese Taxa separat zusammengefasst und nicht in die primären Ergebnisse von ancombc
oder ancombc2
enthalten.
Um auf die Ergebnisse des Anwesenheits-/Abwesenheitstests zuzugreifen, können Sie sich auf die Ausgabe von zero_ind
verweisen. Dies liefert Informationen zu den Taxa, die strukturelle Nullen aufweisen.
lfc_groupB
lfc_(Intercept)
lfc_groupC
group
A
B
C
A: In den primären Ergebnissen stellen die Begriffe lfc_groupB
und lfc_groupC
die log -falten Änderungen (logfc) relativ zur Referenzgruppe dar, die standardmäßig Gruppe A
ist. Diese LogFC -Werte zeigen den Unterschied in der Häufigkeit zwischen Gruppe B
und Gruppe A
sowie zwischen Gruppe C
und Gruppe A
an.
Andererseits bezieht sich lfc_(Intercept)
auf die Log -Fold -Änderung des großen Mittelwerts, was möglicherweise kein Parameter von besonderem Interesse in diesem Kontext ist.
Wenn Sie die Referenzgruppe ändern möchten, können Sie die factor
in R verwenden, um die Ebenen der group
entsprechend neu zu ordnen, wenn Sie die Referenzgruppe ändern möchten.
4.
A: Die Fehlermeldung "'Rang" muss ein Wert aus' Taxonomyranks () '"sein, wenn die Rangnamen in Ihrem tax_table
nicht ordnungsgemäß gekennzeichnet sind. Um dieses Problem zu lösen, wird empfohlen, die taxonomyRanks(se)
zu verwenden, wobei se
Ihr tse
-Objekt ist.
Stellen Sie zunächst sicher, dass die Rangnamen in Ihrem tax_table
korrekt als eine der taxonomischen Standardränge wie "Kingdom", "Phylum", "Klasse", "Order", "Familie", "Gattung" oder "Spezies" korrekt bezeichnet werden ". Wenn die Rangnamen derzeit als etwas anderes bezeichnet werden, wie "TA1", "TA2", "TA3" und so weiter, müssen Sie sie entsprechend aktualisieren.
Dieses Problem tritt häufig auf, wenn matrix
tax_table
aus einem data.frame
gebildet wird. Daher ist es wichtig sicherzustellen, dass die Rangnamen vor der Analyse korrekt zugewiesen werden.
Sobald Sie die Rangnamen in Ihrem tax_table
aktualisiert haben, können Sie die ancombc2
-Funktion verwenden und die gewünschte taxonomische Ebene mit dem Argument tax_level
(z. B. "Gattung") angeben. Auf diese Weise können Sie statistische Analysen Ihrer mikrobiomen Daten auf der angegebenen taxonomischen Ebene durchführen.
5. F: Ich habe ein Problem gestoßen, während ich rand_formula
in ancombc2
verwendet habe. Was ist die korrekte Syntax zum Angeben von zufälligen Effekten?
A: Wenn Sie zufällige Effekte mit rand_formula
in ancombc2
angeben, ist es wichtig, den im lmerTest
-Paket verwendeten Syntaxkonventionen zu folgen. Achten Sie genau auf die Platzierung von Klammern und vertikalen Balken .
Um einen zufälligen Subjekteffekt korrekt anzugeben, sollte die Syntax in Form von "(1|subjid)"
sein, wobei subjid
den variablen Namen für die Subjektkennung darstellt. Diese Syntax stellt sicher, dass der zufällige Subjekteffekt in der Analyse ordnungsgemäß berücksichtigt wird.
Andererseits ist es falsch, rand_formula
als "1|subjid"
oder "(subjid)"
zu verwenden, um zufällige Effekte anzugeben. Die richtige Syntax sollte immer Klammern um den zufälligen Effekt und einen vertikalen Balken enthalten, um sie von den festen Effekten zu trennen.
Durch die Verwendung der richtigen Syntax zur Angabe von zufälligen Effekten können Sie diese Effekte genau in Ihre ancombc2
-Analyse einbeziehen.
6. F: Was sind die Unterschiede zwischen den primären Ergebnissen und den Ergebnissen des Testtyps von Dunnett in Ancom-BC2?
A: Die primären Ergebnisse und die Ergebnisse von Dunnetts Testtyp in Ancom-BC2 liefern Informationen zu unterschiedlich reichlich vorhandenen Taxa, es gibt jedoch Unterschiede in der Korrektur von P-Werten.
In den primären Ergebnissen werden die P-Werte über Taxa hinweg korrigiert, was bedeutet, dass sie mehrere Vergleiche zwischen verschiedenen Taxa ausmachen. Diese Korrektur hilft bei der Ermittlung der Bedeutung einzelner Taxa den falsch positiven Preis.
Andererseits korrigiert Dunnetts Testtyp nicht nur die P-Werte über Taxa, sondern auch für mehrere Vergleiche zwischen Gruppen. Insbesondere vergleicht es die Häufigkeit jedes Taxons in den Gruppen B
und C
mit der Referenzgruppe A
Die Korrektur für mehrere Vergleiche in Dunnetts Testerentyp führt zu einem konservativeren Ergebnis, wodurch die Wahrscheinlichkeit falscher positiver Ergebnisse verringert wird.
Während sowohl die primären Ergebnisse als auch die Art des Tests von Dunnett Informationen zu differentiell reichlich vorhandenen Taxa liefern, bieten die Ergebnisse des Testtyps von Dunnett zusätzliche Kontrolle für mehrere Vergleiche, sodass sie konservativer und zuverlässiger werden.
7. F: Kann die Funktion ancombc
oder ancombc2
Interaktionsbegriffe in der Analyse verarbeiten?
A: Ja, die neuen Versionen von ancom
, ancombc
und ancombc2
unterstützen die Einbeziehung von Interaktionsbegriffen in die Analyse.
8. F: Kann die Ancom-BC-Methode auf andere Datentypen wie funktionale Häufigkeiten, RNA-Seq oder Einzelzell-RNA-Daten angewendet werden?
A: Die ANCOM-BC-Methodik kann auf andere Datentypen angewendet werden, solange sie als Kompositional angesehen werden. Es ist jedoch wichtig zu wissen, dass die Methodik in erster Linie unter Verwendung von Mikrobiomdaten untersucht und validiert wurde. Für weitere Diskussionen können Sie sich auf diesen Beitrag beziehen.
ancombc2
. Wie kann ich dieses Problem debuggen?
A: Die Fehlermeldung "Keine positive definitive Matrix" zeigt an, dass die im Modell gemischten Effekte verwendete Korrelationsmatrix nicht positiv definitiv ist. Eine positive definitive Matrix ist eine quadratische Matrix, bei der alle Eigenwerte positiv sind. Dieser Fehler tritt typischerweise auf, wenn ein Problem mit der Daten- oder Modellspezifikation vorliegt.
Um dieses Problem zu debuggen, empfehle ich, ein Modell mit gemischten Effekten an Ihren Rohdaten mithilfe des lmerTest
-Pakets in R anzupassen. Verwenden Sie die gleichen festen Effekte und zufälligen Effekte, die Sie in der ancombc2
-Funktion verwendet haben. Wenn Sie das Modell direkt anpassen, erhalten Sie möglicherweise informative Fehlermeldungen, mit denen das Problem diagnostiziert werden kann.
Hier sind die Schritte, die Sie ausführen können, um das Problem zu debuggen:
library(lmerTest)
Sie das lmerTest
-Paket in R: install.packages("lmerTest")
.ancombc2
.lmer()
aus dem lmerTest
-Paket an.Wenn Sie diese Schritte befolgen, können Sie ein besseres Verständnis des Problems erlangen, das den Fehler "keine positive definitive Matrix" verursacht und geeignete Maßnahmen ergreifen, um es zu beheben.
Wenn Sie weiterhin auf Schwierigkeiten stoßen oder weitere Unterstützung benötigen, kann es hilfreich sein, sich von Statistikern oder Experten in Ihrem spezifischen Forschungsbereich zu beraten.
10.
A: Es ist wichtig zu beachten, dass die Werte für log-fach-Änderungen (LFC) im Kontext von ANCOM-BC oder ANCOM-BC2 nicht direkt die relativen Häufigkeiten (wie Proportionen) oder beobachtete Häufigkeiten (wie OTU- oder ASV-Zahlen) widerspiegeln, nicht direkt widerspiegeln. . Die LFC-Werte repräsentieren die Differenz der Verzerrungen korrigierten Häufigkeiten zwischen Gruppen.
Bei Ancom-BC oder ANCOM-BC2 weist ein höherer LFC-Wert einen größeren Unterschied zwischen den Gruppen an. Dies bedeutet jedoch nicht unbedingt, dass die Gruppe mit höherem LFC für eine bestimmte OTU oder ASV eine höhere relative Häufigkeit oder größere beobachtete Zahlen aufweist.
11. F: Können Sie mir ein komplizierteres Beispiel für die Durchführung von ANCOM-BC2-Trendtest geben?
A: Wenn Sie beispielsweise den Trendtest mit einer group
mit 5 geordneten Kategorien ( A, B, C, D, E
) in R verwenden, schätzen wir tatsächlich 4 Kontraste, die sind ( BA, CA, DA, EA
). . Das Testen des Trends von A < B < C < D < E
entspricht dem Testen von 0 < B - A < C - A < D - A < E - A
. Daher können wir die Kontrastmatrix wie folgt angeben:
# B-A C-A D-A E-A
1 0 0 0
- 1 1 0 0
0 - 1 1 0
0 0 - 1 1
In R sollte es sein
matrix (c( 1 , 0 , 0 , 0 ,
- 1 , 1 , 0 , 0 ,
0 , - 1 , 1 , 0 ,
0 , 0 , - 1 , 1 ),
nrow = 4 ,
byrow = TRUE )
Für eingehende Diskussionen können Sie sich auf diesen Beitrag beziehen.
12. F: OMG, ich bin immer noch sehr verwirrt über strukturelle Nullen. Was sind sie? Was machen die Argumente struc_zero
und neg_lb
?
A: Es wird angenommen, dass ein Taxon strukturelle Nullen in einigen (> = 1) Gruppen hat, wenn es in diesen Gruppen vollständig oder nahezu vollständig fehlt. Wenn es beispielsweise drei Gruppen gibt, G1, G2 und G3, und die Zählungen von Taxon A in G1 sind 0 in G1, aber in G2 und G3, wird Taxon A als strukturelle Nullen in G1 enthalten. In diesem Szenario wird Taxon A als unterschiedlich häufig zwischen G1 und G2, G1 und G3 deklariert und ist folglich in Bezug auf die Gruppenvariable weltweit unterschiedlich reichlich vorhanden. Solche Taxa werden mit ANCOM-BC oder ANCOM-BC2 nicht weiter analysiert, die Ergebnisse werden jedoch in der zero_ind
zusammengefasst. Sie können den Nachweis von strukturellen Nullen als Vorhandensein/Abwesenheitstest behandeln.
Die Erkennung von strukturellen Nullen basiert auf einem separaten Papier, ANCOM-II. Insbesondere zeigt das Einstellen von neg_lb = TRUE
an, dass beide in Abschnitt 3.2 von ANCOM-II angegebenen Kriterien zum Nachweis von strukturellen Nullen verwendet werden. Alternativ verwendet das Einstellen von neg_lb = FALSE
nur Gleichung 1 in Abschnitt 3.2 von ANCOM-II, um strukturelle Nullen zu deklarieren, was es zu einem konservativeren Ansatz macht. Da die OTU/ASV -Tabelle normalerweise sehr spärlich ist, wird empfohlen, neg_lb = FALSE
zu wählen, um falsche Entdeckungen zu verhindern. Wenn Sie jedoch eine dichtere Tabelle wie eine familienebene Tabelle mit einer ausreichend großen Stichprobengröße haben, kann die Verwendung von neg_lb = TRUE
eine bessere Idee sein. Es ist wichtig zu beachten, dass neg_lb
keine Funktion hat, wenn struc_zero
auf FALSE
eingestellt ist. Daher gibt es drei mögliche Kombinationen: struc_zero = FALSE
(unabhängig von neg_lb
), struc_zero = TRUE, neg_lb = FALSE
oder struc_zero = TRUE, neg_lb = TRUE
.