la matriz del modelo no es de rango completo: esta es una pregunta clásica a la que se enfrenta un biólogo sin una comprensión clara del diseño del modelo

Dec 18 2020

Vi esta respuesta biostar . Traté de hacer mis metadatos como tales, pero aún así el

"Error in checkFullRank(modelMatrix) : "

Esta es mi coldata

dput(coldata)
structure(list(Group = structure(c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 6L, 6L, 
6L, 6L, 6L, 6L), .Label = c("HSC", "Blast", "CMP", "GMP", "LSC", 
"Mono"), class = "factor"), Mutation = structure(c(10L, 4L, 3L, 
5L, 2L, 3L, 9L, 11L, 1L, 1L, 7L, 7L, 10L, 7L, 8L, 2L, 10L, 10L, 
10L, 10L, 2L, 2L, 7L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 
6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 2L, 2L, 5L, 2L, 
9L, 1L, 1L, 8L, 6L, 6L, 6L, 6L, 6L, 6L), .Label = c("DNMT3A-R882H", 
"FLT3-ITD", "IDH2-R140Q", "KRAS-G13D", "MAU2-Q98H", "No", "NPM1-L287ins(TCTG)", 
"NRAS-G13D", "STAG2-R614", "TET2-E1357", "TET2-R550"), class = "factor"), 
    Satus = structure(c(2L, 5L, 4L, 6L, 3L, 4L, 9L, 10L, 1L, 
    1L, 7L, 7L, 2L, 7L, 8L, 3L, 2L, 2L, 2L, 2L, 3L, 3L, 7L, 16L, 
    16L, 16L, 16L, 16L, 16L, 16L, 16L, 16L, 16L, 16L, 16L, 16L, 
    16L, 16L, 17L, 17L, 17L, 17L, 17L, 17L, 17L, 12L, 12L, 13L, 
    12L, 9L, 11L, 11L, 14L, 15L, 15L, 15L, 15L, 15L, 15L), .Label = c("Blast-DNMT3A-R882H", 
    "Blast-E1357", "Blast-FLT-ITD", "Blast-IDH2-R140Q", "Blast-KRAS-G13D", 
    "Blast-MAU2-Q98H", "Blast-NPM1-L287ins(TCTG)", "Blast-NRAS-G13D", 
    "Blast-STAG2-R614", "Blast-TET2-R550", "LSC-FLT-DNMT3A-R882H", 
    "LSC-FLT-ITD", "LSC-MAU2-Q98H", "LSC-NRAS-G13D", "Mature-Normal", 
    "Progenitor-Normal", "Stem-Normal"), class = "factor")), row.names = c("Blast1", 
"Blast10", "Blast11", "Blast12", "Blast13", "Blast14", "Blast15", 
"Blast16", "Blast17", "Blast18", "Blast19", "Blast20", "Blast2", 
"Blast21", "Blast22", "Blast23", "Blast3", "Blast4", "Blast5", 
"Blast6", "Blast7", "Blast8", "Blast9", "CMP1", "CMP2", "CMP3", 
"CMP4", "CMP5", "CMP6", "CMP7", "CMP8", "GMP1", "GMP2", "GMP3", 
"GMP4", "GMP5", "GMP6", "GMP7", "HSC1", "HSC2", "HSC3", "HSC4", 
"HSC5", "HSC6", "HSC7", "LSC1", "LSC2", "LSC3", "LSC4", "LSC5", 
"LSC6", "LSC7", "LSC8", "Mono1", "Mono2", "Mono3", "Mono4", "Mono5", 
"Mono6"), class = "data.frame")

dds <- DESeqDataSetFromMatrix(countData=df2, colData=coldata, design= ~ Group + Mutation)

Este es el diseño que intento incorporar. Lo que obtengo es que mi diseño está anidado en una de las columnas al mirar numerosos ejemplos.

Lo que me gustaría hacer es intentar ejecutar una prueba LRT en este conjunto de datos que funciona bien si doy " Group" como mi diseño y luego ejecuto esto

dds_lrt <- DESeq(dds, test="LRT", reduced = ~ 1)

lo que me da diffrenitaly expresado en múltiples grupos. Ahora hay dos preguntas

  1. ¿Es posible incluir interacción como en mi caso Group+Mutationy hacer la prueba lrt?
  2. ¿O lo anterior es conceptualmente incorrecto?

Respuestas

3 ATpoint Dec 18 2020 at 18:24
> table(doldat$Group, coldat$Mutation)
       
        DNMT3A-R882H FLT3-ITD IDH2-R140Q KRAS-G13D MAU2-Q98H No NPM1-L287ins(TCTG) NRAS-G13D STAG2-R614 TET2-E1357 TET2-R550
  HSC              0        0          0         0         0  7                  0         0          0          0         0
  Blast            2        4          2         1         1  0                  4         1          1          6         1
  CMP              0        0          0         0         0  8                  0         0          0          0         0
  GMP              0        0          0         0         0  7                  0         0          0          0         0
  LSC              2        3          0         0         1  0                  0         1          1          0         0
  Mono             0        0          0         0         0  6                  0         0          0          0         0

Mire esta tabla, verá a ojo cómo algunas mutaciones están anidadas con Group. Si desea incluirlo, deberá dividir el experimento en varias ejecuciones independientes, según la pregunta que desee responder.