モデル行列はフルランクではありません:これは、モデル設計を明確に理解せずに生物学者が直面する古典的な質問です。

Dec 18 2020

この答えをバイオスターを見た。私のメタデータをそのように作成しようとしましたが、それでも

"Error in checkFullRank(modelMatrix) : "

これは私の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)

これが私が取り入れようとしているデザインです。私が得たのは、多くの例を見て、私のデザインが列の1つにネストされていることです。

私がやりたいのは、このデータセットでLRTテストを実行しようとしていることです。これGroupは、デザインとして「」を指定してからこれを実行すると正常に機能します。

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

これにより、複数のグループにまたがって表現が異なります。今2つの質問があります

  1. 私の場合のGroup+Mutationように交互作用を含めて、lrtテストを行うことは可能ですか?
  2. または、上記は概念的に間違っていますか?

回答

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

この表を見ると、いくつかのミューテーションがGroupにどのようにネストされているかがわかります。それを含めたい場合は、回答したい質問に応じて、実験を複数の個別の実行にサブセット化する必要があります。