marinamartinezalvaro / RabbitR

This is a teaching-oriented package for linear mixed models solved using Bayesian theory. The package includes visualization and characterization of marginal posterior distributions of the estimates.
0 stars 0 forks source link

Omic Data Analisis #1

Open Anto9393 opened 1 month ago

Anto9393 commented 1 month ago

Hola, He estado siguiendo tu trabajo y el de profesor Blasco sobre la estadística Bayesiana y estoy tratando de emplear el paquete RabbitR para realizar un análisis pero me han surgido unas dudas que me gastaría resolver. Estoy tratando de aplicar el análisis a un base de datos de proteómica, tratando de estudiar las proteínas que se expresan de forma distinta den dos grupos. Es esto posible? Por otra parte, el análisis convencional que he aplicado es un PCA (donde se solapaban ambas elipses), PLS-DA y un análisis diferencial con pocas o ninguna diferencia al corregir con FDR. Me gustaría que me diese tu opinión sobre el análisis y que me explicases como he de codificar los parámetros para conocer que proteínas se expresan en mayor o menor medida.

Gracias

marinamartinezalvaro commented 1 month ago

Hola Antolin, Si, es posible que uses el paquete para estudiar las proteinas que se expresan de forma distinta en dos grupos. Tendras que usar un modelo que sirva para todas las proteinas, del tipo Abundnacia Proteina = Grupo + Otros efectos+ e. Acuerdate de poner Grupo como tratamiento para que te saque las salidas. Puedes darle al programa todos los caracteres de una indicandole el numero de columna en el archivo de datos con el comando pTrait. Te analizara todas las proteinas con el mismo modelo. Puedes hacerlo asi:

1)Creas tu archivo de parametros param<-CreateParam( file.name = "Data", #Adapatlo na.codes=c("99999"), #Adapatlo pTrait = c(8:800), # Pon aqui todas las columnas que contengan las abundancias de tus proteinas hTreatment = "Grupo", askCompare="D")

2)Ajustas el modelo y obtienes las distrib marginales posteriores bunny_results <- Bunny(params = param, Chain = FALSE)

3) Estimas inferencias a partir de las marginales posteriores inferences <- Bayes( params = param, bunny = bunny_results, HPD = 0.95, K = TRUE, # Adaptalo probK = 0.90, # Adaptalo PR = TRUE, # Adaptalo R = c(0.05, 1), # Aqui tendras que poner un vector con tantos valores como caracteres PS = TRUE, # Adaptalo SaveTable = TRUE, # Save detailed inferences in a CSV file)

Ten en cuenta que el paquete RabbitR no ajusta modelos multivariantes, sino modelos univariantes (repetido para cada caracter). El analisis PCA o PLSDA si tiene en cuenta la matriz de var-cov entre variables. En nuestro grupo, habitualmente hemos usado metodos multivariantes para identificar las variables mas importantes a la hora de discriminar entre grupos (con un VIP>0.8 o a 1, y un coeficiente de regresion cuyo intervalo Jack-Knife no contenga el 0), y solamente a esos, aplicarles un modelo lineal para obtener diferencias entre grupos (por ejemplo con el paquete RabbitR). Como han sido didentificadas de manera multivariante, ya ni tiene sentido aplicar el FDR. Te mando un articulo reciente donde lo hemos hecho asi: https://www.nature.com/articles/s42003-021-02784-w Marina

Anto9393 commented 1 month ago

Hola Marina, En primer lugar darte las gracias por tu ayuda. En especial con relacion a las funciones que he de aplicar. He estudiado el articulo que me pasaste y me gustaria aplicar un analisis similar. Es decir seleccionar las variables mas imporantes mediante PLS-DA y a continuacion pasarlas por bayes. A pesar de ello, me han surgido una serie de dudas, estoy aplicando el siguiente codigo:

PLS-DA

plsda <- plsda(metabo,group,ncomp=2,scale=F)

compute (BER)

set.seed(30) perf.pls <- perf(plsda, validation = "Mfold",criterion="all",folds = 3, progressBar = F, nrepeat = 100)

componentes

comp <- perf.pls[["choice.ncomp"]][6]

SIn embargo, he tenido que selecionar 2 componentes en el plsda y 3 folds en el perf debido a que de otro forma me da error, y el numero optimo de componentes que obtengo es 1. No se si es debido a que mi n es muy baja (3 por grupo, dos grupos) o poque motivo es. Pero si selecciono las varibale con un VIP mayor a 1 obtengo unas 450proteinas, lo que me hace sospechar que estoy cometiendo algun error.

Entiendo que esto no tiene relacion con el paquete Rabbit pero me seria de gran ayuda tu opinio debido a mi escaso conocimiento en el campo.

Saludos Gracias, de nuevo

Anto

El dom, 2 jun 2024 a las 14:36, Marina Martínez-Álvaro (< @.***>) escribió:

Hola Antolin, Si, es posible que uses el paquete para estudiar las proteinas que se expresan de forma distinta en dos grupos. Tendras que usar un modelo que sirva para todas las proteinas, del tipo Abundnacia Proteina = Grupo + Otros efectos+ e. Acuerdate de poner Grupo como tratamiento para que te saque las salidas. Puedes darle al programa todos los caracteres de una indicandole el numero de columna en el archivo de datos con el comando pTrait. Te analizara todas las proteinas con el mismo modelo. Puedes hacerlo asi:

1)Creas tu archivo de parametros param<-CreateParam( file.name = "Data", #Adapatlo na.codes=c("99999"), #Adapatlo pTrait = c(8:800), # Pon aqui todas las columnas que contengan las abundancias de tus proteinas hTreatment = "Grupo", askCompare="D")

2)Ajustas el modelo y obtienes las distrib marginales posteriores bunny_results <- Bunny(params = param, Chain = FALSE)

  1. Estimas inferencias a partir de las marginales posteriores inferences <- Bayes( params = param, bunny = bunny_results, HPD = 0.95, K = TRUE, # Adaptalo probK = 0.90, # Adaptalo PR = TRUE, # Adaptalo R = c(0.05, 1), # Aqui tendras que poner un vector con tantos valores como caracteres PS = TRUE, # Adaptalo SaveTable = TRUE, # Save detailed inferences in a CSV file)

Ten en cuenta que el paquete RabbitR no ajusta modelos multivariantes, sino modelos univariantes (repetido para cada caracter). El analisis PCA o PLSDA si tiene en cuenta la matriz de var-cov entre variables. En nuestro grupo, habitualmente hemos usado metodos multivariantes para identificar las variables mas importantes a la hora de discriminar entre grupos (con un VIP>0.8 o a 1, y un coeficiente de regresion cuyo intervalo Jack-Knife no contenga el 0), y solamente a esos, aplicarles un modelo lineal para obtener diferencias entre grupos (por ejemplo con el paquete RabbitR). Como han sido didentificadas de manera multivariante, ya ni tiene sentido aplicar el FDR. Te mando un articulo reciente donde lo hemos hecho asi: https://www.nature.com/articles/s42003-021-02784-w Marina

— Reply to this email directly, view it on GitHub https://github.com/marinamartinezalvaro/RabbitR/issues/1#issuecomment-2143831597, or unsubscribe https://github.com/notifications/unsubscribe-auth/BEEEVGLCPT76TZ2YC5B6NH3ZFMGUVAVCNFSM6AAAAABIIA7BEKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNBTHAZTCNJZG4 . You are receiving this because you authored the thread.Message ID: @.***>