[BioC] Mean Plots and Heat Maps for Chromosome Bands
McGee, Monnie
mmcgee at mail.smu.edu
Thu Nov 13 00:17:07 CET 2008
Dear BioC Users,
I am following the code for Chapter 13 of "Bioconductor Case Studies" (dealing with GSEA. The example of GSEA analysis in the text shows the use of KEGG pathways to determine gene sets. Then the functions KEGGmnplot and KEGGheatmap are used to obtain a mean plot and a heat map for one of the gene sets (corresponding to one pathway) that has a very large (negative) t-statistic.
Section 13.2.4 suggests using gene sets defined by chromosome bands to do the same analysis. I have found an "interesting" chromosome band (cytogenetic) location, and I would like to get a heatmap of all the genes from that location, as well as a mean plot. However, there is no nice function "CHRLOCmnplot" or "CHRLOCheatmap". What is the most elegant way to get mean plots and heat maps of genes from a gene set associated with a particular cytogenetic location?
The code that I used and the session information follow.
Thank you,
Monnie
> library(GSEABase)
> library(ALL)
> data(ALL)
> bcell = grep("^B",as.character(ALL$BT))
> moltyp = which(as.character(ALL$mol.biol) %in% c("NEG","BCR/ABL"))
> ALL_bcrneg = ALL[,intersect(bcell,moltyp)]
> ALL_bcrneg$mol.biol = factor(ALL_bcrneg$mol.biol)
> library(genefilter)
> ALLfilt = nsFilter(ALL_bcrneg,var.cutoff=0.5)$eset
> fnames = featureNames(ALLfilt)
> if(is(hgu95av2MAP,"environment")){
+ chrLocs = mget(fnames,hgu95av2MAP)
+ mapping = names(chrLocs[sapply(chrLocs,function(x) !all(is.na(x)))])
+ }else{
+ mapping = toTable(hgu95av2MAP[fnames])$probe_id
+ }
> psWithMAP = unique(mapping)
> nsF2 = ALLfilt[psWithMAP,]
> chrMat1 = chrMat[rowSums(chrMat) >= 5,]
> rtt = rowttests(nsF2,"mol.biol")
> rttStat = rtt$statistic
> tA = as.vector(chrMat1 %*% rttStat)
> tAadj = tA/sqrt(rowSums(chrMat1))
> names(tA) = names(tAadj) = rownames(chrMat1)
> smBand = tAadj[tAadj < (-5)]
> smBand
19q13.3
-5.741334
> EGtable = toTable(hgu95av2ENTREZID[featureNames(nsF2)])
> entrezUniv = unique(EGtable$gene_id)
> chrMat = MAPAmat("hgu95av2", univ = entrezUniv)
> EGlist = mget(featureNames(nsF2),hgu95av2ENTREZID)
> EGIDs = sapply(EGlist , "[",1)
> idx = match(EGIDs,colnames(chrMat1))
> chrInc = chrMat1[, idx]
## Now - can I get a heatmap and mean plot of the genes in the gene set "smBand" in an elegant way with the information I have?
> sessionInfo()
R version 2.7.2 (2008-08-25)
i386-apple-darwin8.11.1
locale:
C
attached base packages:
[1] splines tools stats graphics grDevices utils datasets methods
[9] base
other attached packages:
[1] humanCHRLOC_2.1.4 Category_2.6.0 graph_1.18.1 KEGG.db_2.2.0
[5] hgu95av2.db_2.2.0 genefilter_1.20.0 survival_2.34-1 ALL_1.4.4
[9] GSEABase_1.2.2 annotate_1.18.0 xtable_1.5-3 AnnotationDbi_1.2.2
[13] RSQLite_0.7-0 DBI_0.2-4 Biobase_2.0.1
loaded via a namespace (and not attached):
[1] RBGL_1.16.0 XML_1.96-0 cluster_1.11.11
More information about the Bioconductor
mailing list