Autor y mantenedor: Huang Lin: [email protected]
Ancombc es un paquete que contiene abundancia diferencial (DA) y análisis de correlación para los datos del microbioma. Específicamente, el paquete incluye el análisis de las composiciones de microbiomas con la corrección de sesgo 2 (ANCOM-BC2), el análisis de las composiciones de microbiomas con corrección de sesgo (ANCOM-BC) y el análisis de la composición de microbiomas (ANCOM) para el análisis de DA y la estimación dispersa de correlaciones entre microbiomas (SECOM) para el análisis de correlación. Los datos de microbiomas generalmente están sujetos a dos fuentes de sesgos: fracciones de muestreo desiguales (sesgos específicos de la muestra) y eficiencias de secuenciación diferencial (sesgos específicos de taxones). Las metodologías incluidas en el paquete ANCombC están diseñadas para corregir estos sesgos y construir estimadores estadísticamente consistentes.
if ( ! requireNamespace( " BiocManager " , quietly = TRUE ))
install.packages( " BiocManager " )
BiocManager :: install( " ANCOMBC " )
library( ANCOMBC )
? ancombc2
? ancombc
? ancom
? secom_linear
? secom_dist
1. ¡Apoyamos la prueba de interacciones ahora!
Las nuevas versiones de ancom
, ancombc
y ancombc2
respaldan la inclusión de términos de interacción en el análisis. Consulte las últimas viñetas para obtener una guía detallada.
2. ¡El análisis de sensibilidad es esencial!
Para los usuarios: a menos que el enfoque principal de su estudio sea potencia, recomendamos encarecidamente mantener el análisis de sensibilidad activado (configuración predeterminada), ya que reduce significativamente los falsos positivos.
Para los investigadores: hemos notado algunos artículos recientes que critican a Ancom-BC2 por no controlar adecuadamente los falsos positivos. Sin embargo, estas críticas no tuvieron en cuenta nuestra función de análisis de sensibilidad. Comparar ANCOM-BC2 sin utilizar sus características integradas, como el análisis de sensibilidad, no es una evaluación justa. Hacemos hincapié en este punto en nuestra última actualización.
1. P: ¿Cuáles son las diferencias entre la formula
y los argumentos group
en ancombc
y ancombc2
?
R: La formula
y los argumentos group
tienen diferentes propósitos en las funciones ancombc
y ancombc2
. Aquí hay un desglose de sus diferencias:
formula
: este argumento se utiliza para especificar las variables en su experimento que pueden influir potencialmente en las abundancias microbianas. Es esencial incluir todas las variables relevantes en la formula
para garantizar un ajuste adecuado y resultados precisos. Por ejemplo, si tiene una variable continua como age
como su principal variable de interés, y tiene variables categóricas adicionales que necesitan ajuste pero no están directamente relacionadas con su pregunta de investigación, puede incluirlas en la formula
al dejar group
como nulo.
group
: El argumento group
es opcional y solo debe especificarse si desea detectar ceros estructurales (prueba de presencia/ausencia) o realizar comparaciones de grupos múltiples, como la prueba global, la prueba direccional por pares, el tipo de prueba de Dunnett o la prueba de tendencia . Si su variable de interés es una variable categórica con más de tres niveles y desea realizar comparaciones de grupos múltiples, debe incluir el argumento group
. Es importante tener en cuenta que group
no es lo mismo que main_var
en ancom
. En ancombc
y ancombc2
, group
se usa para comparaciones de grupos múltiples y corrección de valores P para comparaciones múltiples.
Recuerde no incluir el main_var
en el adj_formula
en ancom
, pero siempre incluya group
en la formula
o fix_formula
(en ancombc
y ancombc2
, respectivamente) si group
no es nulo. Esto asegura que los ajustes y comparaciones apropiados se realicen en el análisis.
2. P: ¿Por qué están ausentes algunos taxones de los resultados primarios?
R: Hay un par de razones por las cuales ciertos taxones pueden estar ausentes de los resultados principales en ancombc
o ancombc2
. Aquí hay una explicación:
Exclusión de prevalencia: los taxones con prevalencias por debajo del umbral especificado ( prv_cut
) se excluirán del análisis. El valor prv_cut
determina la prevalencia mínima requerida para que un taxón se considere en el análisis. Si la prevalencia de un taxón cae por debajo de este umbral, no se incluirá en los resultados primarios.
Ceros estructurales: taxones que exhiben ceros estructurales, lo que significa que consistentemente tienen recuentos de cero en todas las muestras, se considerará significativo solo por la prueba de presencia/ausencia. Las metodologías ANCOM-BC y ANCOM-BC2 no están diseñadas para detectar diferencias significativas en los taxones con ceros estructurales. Como resultado, estos taxones se resumen por separado y no se incluyen en los resultados primarios de ancombc
o ancombc2
.
Para acceder a los resultados de la prueba de presencia/ausencia, puede consultar la salida zero_ind
. Esto proporcionará información sobre los taxones que exhiben ceros estructurales.
3. P: En los resultados principales, ¿qué representan lfc_(Intercept)
, lfc_groupB
y lfc_groupC
si tengo una variable group
con las categorías A
, B
y C
?
R: En los resultados primarios, los términos lfc_groupB
y lfc_groupC
representan los cambios de pliegue de registro (LOGFC) en relación con el grupo de referencia, que es el Grupo A
de forma predeterminada. Estos valores de LOGFC indican la diferencia en la abundancia entre el Grupo B
y el Grupo A
, y entre el Grupo C
y el Grupo A
, respectivamente.
Por otro lado, lfc_(Intercept)
se refiere al cambio de pliegue de registro de la gran media, que puede no ser un parámetro de particular interés en este contexto.
Vale la pena mencionar que si desea cambiar el grupo de referencia, puede usar la función factor
en R para reorganizar los niveles de la variable group
en consecuencia.
4. P: Encontré un mensaje de error que indica que "'Rank' debe ser un valor de 'Taxonomyranks ()'. ¿Qué significa y cómo puedo resolverlo?
R: El mensaje de error "'Rank' debe ser un valor de 'Taxonomyranks ()'" generalmente ocurre cuando los nombres de rango en su tax_table
no se etiquetan correctamente. Para resolver este problema, se recomienda utilizar la función taxonomyRanks(se)
, donde se
es su objeto tse
.
En primer lugar, asegúrese de que los nombres de rango en su tax_table
se denominen correctamente como uno de los rangos taxonómicos estándar, como "Reino", "Phylum", "Clase", "Orden", "Familia", "Género" o "Especies de especies ". Si los nombres de rango se etiquetan actualmente como algo más, como "Ta1", "Ta2", "Ta3", etc., deberá actualizarlos en consecuencia.
Este problema ocurre comúnmente cuando se forma una tax_table
a partir de un data.frame
. En lugar de una matrix
. Por lo tanto, es importante asegurarse de que los nombres de rango se asignen correctamente antes de continuar con el análisis.
Una vez que haya actualizado los nombres de rango en su tax_table
, puede utilizar la función ancombc2
, especificando el nivel taxonómico deseado utilizando el argumento tax_level
(por ejemplo, "Género"). Esto le permitirá realizar análisis estadísticos en sus datos de microbioma a nivel taxonómico especificado.
5. P: Encontré un problema mientras usaba rand_formula
en ancombc2
. ¿Cuál es la sintaxis correcta para especificar efectos aleatorios?
R: Al especificar efectos aleatorios utilizando rand_formula
en ancombc2
, es importante seguir las convenciones de sintaxis utilizadas en el paquete lmerTest
. Presta mucha atención a la colocación de paréntesis y barras verticales .
Para especificar correctamente un efecto de sujeto aleatorio, la sintaxis debe estar en forma de "(1|subjid)"
, donde subjid
representa el nombre de la variable para el identificador del sujeto. Esta sintaxis asegura que el efecto del sujeto aleatorio se explique adecuadamente en el análisis.
Por otro lado, es incorrecto usar rand_formula
como "1|subjid"
o "(subjid)"
para especificar efectos aleatorios. La sintaxis correcta siempre debe incluir paréntesis alrededor del efecto aleatorio y una barra vertical para separarla de los efectos fijos.
Al usar la sintaxis correcta para especificar efectos aleatorios, podrá incorporar con precisión estos efectos en su análisis ancombc2
.
6. P: ¿Cuáles son las diferencias entre los resultados primarios y los resultados del tipo de prueba de Dunnett en ANCOM-BC2?
R: Los resultados principales y los resultados del tipo de prueba de Dunnett en ANCOM-BC2 proporcionan información sobre taxones diferencialmente abundantes, pero existen diferencias en la corrección de los valores P.
En los resultados principales, los valores p se corrigen entre taxones, lo que significa que representan comparaciones múltiples entre diferentes taxones. Esta corrección ayuda a controlar la tasa de falsos positivos al determinar la importancia de los taxones individuales.
Por otro lado, el tipo de prueba de Dunnett no solo corrige los valores P entre los taxones, sino que también corrige las comparaciones múltiples entre grupos. Específicamente, compara la abundancia de cada taxón en los grupos B
y C
con el grupo de referencia A
La corrección para comparaciones múltiples en el tipo de prueba de Dunnett da como resultado un resultado más conservador, reduciendo la probabilidad de resultados falsos positivos.
Por lo tanto, mientras que tanto los resultados principales como el tipo de prueba de Dunnett proporcionan información sobre taxones diferencialmente abundantes, los resultados del tipo de prueba de Dunnett ofrecen control adicional para comparaciones múltiples, lo que los hace más conservadores y confiables.
7. P: ¿Puede la función de interacción ancombc
o ancombc2
en el análisis?
R: Sí, las nuevas versiones de ancom
, ancombc
y ancombc2
respaldan la inclusión de términos de interacción en el análisis.
8. P: ¿Se puede aplicar la metodología ANCOM-BC a otros tipos de datos, como abundancias funcionales, ARN-seq o datos de ARN de una sola célula?
R: La metodología ANCOM-BC se puede aplicar a otros tipos de datos siempre que se consideren compositivos. Sin embargo, es esencial tener en cuenta que la metodología se ha comparado principalmente y validada utilizando datos de microbioma. Para más discusiones, puede consultar esta publicación.
9. P: ¿Qué significa "no una matriz definida positiva" para ajustar el modelo de efectos mixtos ancombc2
? ¿Cómo puedo depurar este tema?
R: El mensaje de error "No es una matriz definida positiva" indica que la matriz de correlación utilizada en el modelo de efectos mixtos no es definitiva positiva. Una matriz definida positiva es una matriz cuadrada donde todos los valores propios son positivos. Este error generalmente ocurre cuando hay un problema con los datos o la especificación del modelo.
Para depurar este problema, recomiendo ajustar un modelo de efectos mixtos a sus datos sin procesar utilizando el paquete lmerTest
en R. Use los mismos efectos fijos y especificaciones de efectos aleatorios que utilizó en la función ancombc2
. Al ajustar el modelo directamente, puede recibir más mensajes de error informativos que pueden ayudar a diagnosticar el problema.
Estos son los pasos que puede seguir para depurar el tema:
lmerTest
en R: install.packages("lmerTest")
y library(lmerTest)
.ancombc2
.lmer()
del paquete lmerTest
.Siguiendo estos pasos, puede obtener una mejor comprensión del problema que causa el error de "no una matriz definida positiva" y tomar las acciones apropiadas para abordarlo.
Si continúa encontrando dificultades o necesita más ayuda, puede ser útil buscar asesoramiento de estadísticos o expertos en su campo de investigación específico.
10. P: Si un valor LFC más alto corresponde a una mayor abundancia, ¿por qué algunos de mis recuentos OTU/ASV muestran direcciones opuestas?
R: Es importante tener en cuenta que los valores de cambio log-plano (LFC) en el contexto de ANCOM-BC o ANCOM-BC2 no reflejan directamente las abundancias relativas (como las proporciones) o las abundancias observadas (como los recuentos OTU o ASV) . Los valores de LFC representan la diferencia en las abundancias corregidas por sesgo entre los grupos.
En ANCOM-BC o ANCOM-BC2, un valor de LFC más alto indica una mayor diferencia en las abundancias corregidas por sesgo entre los grupos. Sin embargo, esto no significa necesariamente que el grupo con LFC más alto tenga una mayor abundancia relativa o recuentos observados más grandes para un OTU o ASV específico.
11. P: ¿Puedes darme un ejemplo más complicado de realizar la prueba de tendencia ANCOM-BC2?
R: Por ejemplo, cuando se usa la prueba de tendencia con una variable group
de 5 categorías ordenadas ( A, B, C, D, E
) en R, en realidad estamos estimando 4 contrastes, que son ( BA, CA, DA, EA
) . Prueba de la tendencia de A < B < C < D < E
es equivalente a probar 0 < B - A < C - A < D - A < E - A
. Por lo tanto, podemos especificar la matriz de contraste de la siguiente manera:
# B-A C-A D-A E-A
1 0 0 0
- 1 1 0 0
0 - 1 1 0
0 0 - 1 1
En r, debería ser
matrix (c( 1 , 0 , 0 , 0 ,
- 1 , 1 , 0 , 0 ,
0 , - 1 , 1 , 0 ,
0 , 0 , - 1 , 1 ),
nrow = 4 ,
byrow = TRUE )
Para discusiones más profundas, puede consultar esta publicación.
12. P: Dios mío, todavía estoy muy confundido en ceros estructurales. ¿Qué son? ¿Qué hacen los argumentos struc_zero
y neg_lb
?
R: Se considera que un taxón tiene ceros estructurales en algunos (> = 1) grupos si está completamente o casi completamente ausente en esos grupos. Por ejemplo, si hay tres grupos, G1, G2 y G3, y los recuentos del taxón A son 0 en G1 pero no cero en G2 y G3, se considerará que el taxón A contiene ceros estructurales en G1. En este escenario, el taxón A se declara que es diferencialmente abundante entre G1 y G2, G1 y G3, y en consecuencia es globalmente abundante diferencialmente con respecto a la variable de grupo. Dichos taxones no se analizan más a fondo utilizando ANCOM-BC o ANCOM-BC2, pero los resultados se resumen en el zero_ind
. Puede tratar la detección de ceros estructurales como una prueba de presencia/ausencia.
La detección de ceros estructurales se basa en un artículo separado, Ancom-II. Específicamente, la configuración de neg_lb = TRUE
indica que ambos criterios establecidos en la Sección 3.2 de Ancom-II se utilizan para detectar ceros estructurales. Alternativamente, la configuración de neg_lb = FALSE
solo usará la Ecuación 1 en la Sección 3.2 de Ancom-II para declarar ceros estructurales, lo que lo convierte en un enfoque más conservador. Como la tabla OTU/ASV suele ser muy escasa, se recomienda elegir neg_lb = FALSE
para evitar descubrimientos falsos. Sin embargo, si tiene una tabla más densa, como una tabla de nivel familiar con un tamaño de muestra suficientemente grande, usar neg_lb = TRUE
puede ser una mejor idea. Es importante tener en cuenta que neg_lb
no tiene ninguna función si struc_zero
se establece en FALSE
. Por lo tanto, hay tres combinaciones posibles: struc_zero = FALSE
(independientemente de neg_lb
), struc_zero = TRUE, neg_lb = FALSE
o struc_zero = TRUE, neg_lb = TRUE
.