Lenguaje R | N combinaciones de múltiples grupos de muestras-función de inserción-función de inserción tiene mucho uso
Incrustar función en lenguaje R N combinaciones de múltiples grupos de muestras
Para la expresión diferencial de un solo gen en múltiples grupos de muestras, generalmente se usa el análisis de varianza, es decir, comparar múltiples se agrupan para obtener el valor P. Si el valor de p es significativo, significa que existen diferencias significativas en la expresión de múltiples grupos de genes. Sin embargo, no podemos saber si existe una diferencia significativa en la expresión genética entre dos grupos, por lo que necesitamos refinar las agrupaciones y, en este punto, ¡necesitamos usar permutaciones y combinaciones!
En lenguaje R, puedes usar la función combn() para obtener todas las combinaciones posibles de elementos de un vector:
(Todas las combinaciones de X elementos de M se generan al mismo tiempo ).
Por ejemplo, ahora tenemos 4 tipos de Etapa, y ahora necesitamos obtener todas las combinaciones posibles por pares para el análisis de expresión diferencial:
etiquetas = c (?I?, ?II?, ?III?, ?IV?)
res = t(combn(labels, 2))
res
[1,] ?I II?
[2,] ?I III?
[3,] ?I IV?
[4, ] ?II III?
[5,] ?II IV?
[6,] ?III IV?
Visibles, de dos en dos en grupos* ** ¡Hay 6 posibilidades y es necesario realizar un análisis de tabla de diferencias entre los dos grupos dentro de cada combinación posible! Si ha escrito una función de análisis de expresión diferencial llamada limma_dea() en este momento, puede llamar fácilmente a esta función dentro de combn:
combn(labels, 2, FUN = limma_dea)
Si solo desea obtener la combinación de un determinado bit y el siguiente bit adyacente:
p_load(gtools)
index = combinaciones(length(labels), 2) # Devuelve el subíndice
res[index == index 1,] # ¿Obtener el subconjunto de datos original basado en el subíndice que cumple las condiciones
[1,]? ¿I II?
[2,] ?II III?
[3,] ?III IV?
Sin embargo, existe una forma de implementación más sencilla: incrustar función:
Resultados que cada fila de la matriz consta de las secuencias x [t] y x [t-1]...,
X [t-dimensión 1], p>
donde t es el índice original
de X.
comps = embed(labels, 2)[, 2:1]
Sin embargo , dado que embed no tiene una interfaz para llamar funciones, puedes usar la función lapply:
my_comparisons = lapply(1:nrow(comps), function(x) comps[x,])
lapply(mis_comparaciones, limma_dea)
# o
lapply(split(comps, 1:nrow(comps)), limma_dea)