I'm trying to compare gene expression levels of a certain cell type generated in-vitro to expression of multiple cell types in-vivo using DESeq2. The data may be described as in the following experimental design table.
CT = c(sprintf("iCTa%d",1:4),sprintf("nCTa%d",1:6),sprintf("nCTb%d",1:2),sprintf("nCTc%d",1:2)) LB = c(rep(4,"LAB_A"),rep(10,"LAB_B")) SMP = c(sprintf("A_SMP%d",1:4),sprintf("B_SMP%d",1:10)) data.frame(CT,LB,row.names = SMP)
Which looks like this -
CT LB A_SMP1 iCTa1 LAB_A A_SMP2 iCTa2 LAB_A A_SMP3 iCTa3 LAB_A A_SMP4 iCTa4 LAB_A B_SMP1 nCTa1 LAB_B B_SMP2 nCTa2 LAB_B B_SMP3 nCTa3 LAB_B B_SMP4 nCTa4 LAB_B B_SMP5 nCTa5 LAB_B B_SMP6 nCTa6 LAB_B B_SMP7 nCTb1 LAB_B B_SMP8 nCTb2 LAB_B B_SMP9 nCTc1 LAB_B B_SMP10 nCTc2 LAB_B
The problem here is that all the in-vitro cell types are from 1 Lab and all the normal in-vivo cell types are from a different Lab.
So I tried using the Labs as a batch effect and comparing between cell types, but that fails because the design
(~ 0 + CT + LAB)
returns a non full rank matrix which DESeq doesn't accept, which if I understood right is happening because of no available pairs of data in both batches (or Labs).
I'm kind of new at this, so if there's any solution or suggestion, I would be grateful for it. Also, is it relevant to try something like this?