I have Affymetrix gene level expression matrix (genes in the rows and sample ID on the columns), and I have annotation data of microarray experiment observation where sample ID in the rows and description identification on the columns.
example data
here is Affymetrix gene level expression matix:
> dim(exprs_mat)
[1] 112830 735
> exprs_mat[1:4, 1:3]
Tarca_001_P1A01 Tarca_003_P1A03 Tarca_004_P1A04
1_at 6.062215 6.125023 5.875502
10_at 3.796484 3.805305 3.450245
100_at 5.849338 6.191562 6.550525
1000_at 3.567779 3.452524 3.316134
here is annotation data which contain experiment observation:
> dim(ano)
[1] 735 6
> head(ano)
SampleID GA Batch Set Train Platform
Tarca_001_P1A01 Tarca_001_P1A01 11.0 1 PRB_HTA 1 HTA20
Tarca_013_P1B01 Tarca_013_P1B01 15.3 1 PRB_HTA 1 HTA20
Tarca_025_P1C01 Tarca_025_P1C01 21.7 1 PRB_HTA 1 HTA20
Tarca_037_P1D01 Tarca_037_P1D01 26.7 1 PRB_HTA 1 HTA20
Tarca_049_P1E01 Tarca_049_P1E01 31.3 1 PRB_HTA 1 HTA20
Tarca_061_P1F01 Tarca_061_P1F01 32.1 1 PRB_HTA 1 HTA20
I intend to see how the genes in each sample are correlated with GA value of corresponding samples in the annotation data. How can I get my expected correlation matrix and filter out the genes by correlation value? any idea to make this happen correctly?
my attempt
library(limma)
fit <- limma::lmFit(exprs_mat, design = model.matrix( ~ 0 + t(ano$GA))
fit <- eBayes(fit)
topTable(fit, coef=2)
but this attempt gave me dimension error and I still didn't get highly correlated genes from exprs_mat
with each ano$GA
in ano
data. I just removed 0+
and ran the code, then I got this error:
row dimension of design doesn't match column dimension of data object
I am pretty sure I did df[!is.na(df$GA), ]
, removed NA
in both exprs_mat
and ano
metadata already, but the same error still persists. I also tried df[complete.cases(df),]
to make sure I removed all NA
values in my data.
How can I get those highly correlated genes correctly? any possible way to make this happen in R? any thought?
How can I cut down exprs_mat
with the shortlist of genes? any idea?
desired output
I intend to filter out genes in the gene expression matrix expr_mat
by using correlation value (only keep highly correlated genes), expected sub expression matrix should have same data structure as expr_mat
. any way to get this done?
model.matrix()
is returning, that should be telling. $\endgroup$