This is a test version of Biostars. For the public version, visit https://www.biostars.org.
topvariance genes from deseq2 output and heatmap

I found this code i m not sure what it is doing

rld <- rlog(dds, blind=F)

topVarGenes <- order(-rowVars(assay(rld)))[0:500]
mat <- assay(rld)[ topVarGenes, ]
mat<- mat - rowMeans(mat)

what exactly it is doing , is this one order(-rowVars(assay(rld)))[0:500] if anyone could explain it ?

question update I want to keep the topVarGenes in the matrix and pass that to heatmap to plot the same but im getting this error

heatmap.2(assay(rld)[mat, ], scale="row", trace="none", dendrogram="column", margins=c(5, 10), col=colorRampPalette(rev(brewer.pal(9, "RdBu")))(255))

 Error in assay(rld)[mat,] : only 0's may be mixed with negative subscripts

how do i pass the mat and get the heatmap .

r rna-seq

I will post my comment on the update here:

you could try run

heatmap.2(mat, ...)

directly after

mat <- assay(rld)[ topVarGenes, ]
mat <- mat - rowMeans(mat)

well yes i did that now i could run...i was making the mistake of running this heatmap.2(assay(rld)

1 answer

HI,

this line takes the top 500 genes with the highest variance. Per default, order is sorting in increasing order, thus the author of the code uses the minus sign (but she should have used just order(..., decreasing = T)

the minus sign is for increasing order ,?

I understood the issue, now i have updated the question im not able to get through it ...any suggestion ?

Log in to answer this question.