Mark Kimpel
2009-Jul-21 14:28 UTC
[R] problem with heatmap.2 in package gplots generating non-finite breaks
I have written a wrapper for heatmap.2 called heatmap.w.row.and.col.clust which auto-generates breaks using breaks<-round((c(seq(from=(-20 * stddev), to=(20 * stddev))))/20, digits = 2) #(stddev in this case = 2.5) This has always worked well in the past but now I am getting an error that non-finite breaks are being generated. Drilling down, it seems that my wrapper is generating finite breaks but for some reason heatmap.2 is putting a NaN into the first and last positions in the vector. Is it obvious using the breaks my wrapper has generated why this should be so? My sessionInfo() follows. Thanks, Mark Browse[1]> c Enter a frame number, or 0 to exit 1: heatmap.w.row.and.col.clust(iqa.corp.sparse.rem) 2: heatmap.func.R#29: heatmap.2(as.matrix(dataframe), col = color.palette, bre 3: image(z = matrix(z, ncol = 1), col = col, breaks = tmpbreaks, xaxt = "n", y 4: image.default(z = matrix(z, ncol = 1), col = col, breaks = tmpbreaks, xaxt Selection: 1 Called from: eval(expr, envir, enclos) Browse[1]> ls() [1] "breaks" "col.labels" "color.palette" [4] "dataframe" "dendrogram.options" "remove.mean" [7] "row.labels" "stddev" Browse[1]> breaks [1] -2.50 -2.45 -2.40 -2.35 -2.30 -2.25 -2.20 -2.15 -2.10 -2.05 -2.00 -1.95 [13] -1.90 -1.85 -1.80 -1.75 -1.70 -1.65 -1.60 -1.55 -1.50 -1.45 -1.40 -1.35 [25] -1.30 -1.25 -1.20 -1.15 -1.10 -1.05 -1.00 -0.95 -0.90 -0.85 -0.80 -0.75 [37] -0.70 -0.65 -0.60 -0.55 -0.50 -0.45 -0.40 -0.35 -0.30 -0.25 -0.20 -0.15 [49] -0.10 -0.05 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 [61] 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 [73] 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 [85] 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.05 2.10 2.15 2.20 2.25 [97] 2.30 2.35 2.40 2.45 2.50 Browse[1]> is.finite(breaks) [1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE [16] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE [31] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE [46] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE [61] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE [76] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE [91] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE Browse[1]> c Enter a frame number, or 0 to exit 1: heatmap.w.row.and.col.clust(iqa.corp.sparse.rem) 2: heatmap.func.R#29: heatmap.2(as.matrix(dataframe), col = color.palette, bre 3: image(z = matrix(z, ncol = 1), col = col, breaks = tmpbreaks, xaxt = "n", y 4: image.default(z = matrix(z, ncol = 1), col = col, breaks = tmpbreaks, xaxt Selection: 2 Called from: eval(expr, envir, enclos) Browse[1]> heatmap.func.R Error during wrapup: object 'heatmap.func.R' not found Browse[1]> ls() [1] "add.expr" "breaks" "cellnote" "cexCol" [5] "cexRow" "col" "colInd" "colsep" [9] "ColSideColors" "Colv" "ddc" "ddr" [13] "dendrogram" "densadj" "denscol" "density.info" [17] "di" "distfun" "hcc" "hclustfun" [21] "hcr" "hline" "iy" "key" [25] "keysize" "labCol" "labRow" "lhei" [29] "linecol" "lmat" "lwid" "main" [33] "margins" "max.breaks" "max.raw" "max.scale" [37] "min.breaks" "min.raw" "min.scale" "mmat" [41] "na.color" "na.rm" "nbr" "nc" [45] "ncol" "notecex" "notecol" "nr" [49] "op" "retval" "revC" "rm" [53] "rowInd" "rowsep" "RowSideColors" "Rowv" [57] "scale" "scale01" "sepcolor" "sepwidth" [61] "sx" "symbreaks" "symkey" "symm" [65] "tmpbreaks" "trace" "tracecol" "vline" [69] "x" "xlab" "x.scaled" "x.unscaled" [73] "ylab" "z" Browse[1]> tmpbreaks [1] NaN -2.45 -2.40 -2.35 -2.30 -2.25 -2.20 -2.15 -2.10 -2.05 -2.00 -1.95 [13] -1.90 -1.85 -1.80 -1.75 -1.70 -1.65 -1.60 -1.55 -1.50 -1.45 -1.40 -1.35 [25] -1.30 -1.25 -1.20 -1.15 -1.10 -1.05 -1.00 -0.95 -0.90 -0.85 -0.80 -0.75 [37] -0.70 -0.65 -0.60 -0.55 -0.50 -0.45 -0.40 -0.35 -0.30 -0.25 -0.20 -0.15 [49] -0.10 -0.05 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 [61] 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 [73] 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 [85] 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.05 2.10 2.15 2.20 2.25 [97] 2.30 2.35 2.40 2.45 NaN Browse[1]> sessionInfo() R version 2.10.0 Under development (unstable) (2009-05-31 r48697) x86_64-unknown-linux-gnu locale: [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 [5] LC_MONETARY=C LC_MESSAGES=en_US.UTF-8 [7] LC_PAPER=en_US.UTF-8 LC_NAME=C [9] LC_ADDRESS=C LC_TELEPHONE=C [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C attached base packages: [1] grid stats graphics grDevices datasets utils methods [8] base other attached packages: [1] gplots_2.7.1 caTools_1.9 bitops_1.0-4.1 gmodels_2.15.0 gtools_2.6.1 [6] gdata_2.4.2 tm_0.4 loaded via a namespace (and not attached): [1] MASS_7.3-0 rJava_0.6-3 RWeka_0.3-20 slam_0.1-1 Snowball_0.0-6 [6] tcltk_2.10.0 tools_2.10.0 Browse[1]> ------------------------------------------------------------ Mark W. Kimpel MD ** Neuroinformatics ** Dept. of Psychiatry Indiana University School of Medicine 15032 Hunter Court, Westfield, IN 46074 (317) 490-5129 Work, & Mobile & VoiceMail "The real problem is not whether machines think but whether men do." -- B. F. Skinner
Mark Kimpel
2009-Jul-21 14:53 UTC
[R] problem with heatmap.2 in package gplots generating non-finite breaks
Never mind, the problem seems to be that I have ignored the warning "Using scale="row" or scale="column" when breaks arespecified can produce unpredictable results.Please consider using only one or the other." I just stop specifying the breaks and it works fine. Mark ------------------------------------------------------------ Mark W. Kimpel MD ** Neuroinformatics ** Dept. of Psychiatry Indiana University School of Medicine 15032 Hunter Court, Westfield, IN 46074 (317) 490-5129 Work, & Mobile & VoiceMail "The real problem is not whether machines think but whether men do." -- B. F. Skinner ****************************************************************** On Tue, Jul 21, 2009 at 10:28 AM, Mark Kimpel<mwkimpel at gmail.com> wrote:> I have written a wrapper for heatmap.2 called > heatmap.w.row.and.col.clust which auto-generates breaks using > breaks<-round((c(seq(from=(-20 * stddev), to=(20 * stddev))))/20, > digits = 2) ?#(stddev in this case = 2.5) > > This has always worked well in the past but now I am getting an error > that non-finite breaks are being generated. Drilling down, it seems > that my wrapper is generating finite breaks but for some reason > heatmap.2 is putting a NaN into the first and last positions in the > vector. > > Is it obvious using the breaks my wrapper has generated why this > should be so? My sessionInfo() follows. > > Thanks, Mark > > Browse[1]> c > > Enter a frame number, or 0 to exit > > 1: heatmap.w.row.and.col.clust(iqa.corp.sparse.rem) > 2: heatmap.func.R#29: heatmap.2(as.matrix(dataframe), col = color.palette, bre > 3: image(z = matrix(z, ncol = 1), col = col, breaks = tmpbreaks, xaxt = "n", y > 4: image.default(z = matrix(z, ncol = 1), col = col, breaks = tmpbreaks, xaxt > > Selection: 1 > Called from: eval(expr, envir, enclos) > Browse[1]> ls() > [1] "breaks" ? ? ? ? ? ? "col.labels" ? ? ? ? "color.palette" > [4] "dataframe" ? ? ? ? ?"dendrogram.options" "remove.mean" > [7] "row.labels" ? ? ? ? "stddev" > Browse[1]> breaks > ?[1] -2.50 -2.45 -2.40 -2.35 -2.30 -2.25 -2.20 -2.15 -2.10 -2.05 -2.00 -1.95 > ?[13] -1.90 -1.85 -1.80 -1.75 -1.70 -1.65 -1.60 -1.55 -1.50 -1.45 -1.40 -1.35 > ?[25] -1.30 -1.25 -1.20 -1.15 -1.10 -1.05 -1.00 -0.95 -0.90 -0.85 -0.80 -0.75 > ?[37] -0.70 -0.65 -0.60 -0.55 -0.50 -0.45 -0.40 -0.35 -0.30 -0.25 -0.20 -0.15 > ?[49] -0.10 -0.05 ?0.00 ?0.05 ?0.10 ?0.15 ?0.20 ?0.25 ?0.30 ?0.35 ?0.40 ?0.45 > ?[61] ?0.50 ?0.55 ?0.60 ?0.65 ?0.70 ?0.75 ?0.80 ?0.85 ?0.90 ?0.95 ?1.00 ?1.05 > ?[73] ?1.10 ?1.15 ?1.20 ?1.25 ?1.30 ?1.35 ?1.40 ?1.45 ?1.50 ?1.55 ?1.60 ?1.65 > ?[85] ?1.70 ?1.75 ?1.80 ?1.85 ?1.90 ?1.95 ?2.00 ?2.05 ?2.10 ?2.15 ?2.20 ?2.25 > ?[97] ?2.30 ?2.35 ?2.40 ?2.45 ?2.50 > Browse[1]> is.finite(breaks) > ?[1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE > ?[16] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE > ?[31] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE > ?[46] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE > ?[61] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE > ?[76] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE > ?[91] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE > Browse[1]> c > > Enter a frame number, or 0 to exit > > 1: heatmap.w.row.and.col.clust(iqa.corp.sparse.rem) > 2: heatmap.func.R#29: heatmap.2(as.matrix(dataframe), col = color.palette, bre > 3: image(z = matrix(z, ncol = 1), col = col, breaks = tmpbreaks, xaxt = "n", y > 4: image.default(z = matrix(z, ncol = 1), col = col, breaks = tmpbreaks, xaxt > > Selection: 2 > Called from: eval(expr, envir, enclos) > Browse[1]> heatmap.func.R > Error during wrapup: object 'heatmap.func.R' not found > Browse[1]> ls() > ?[1] "add.expr" ? ? ?"breaks" ? ? ? ?"cellnote" ? ? ?"cexCol" > ?[5] "cexRow" ? ? ? ?"col" ? ? ? ? ? "colInd" ? ? ? ?"colsep" > ?[9] "ColSideColors" "Colv" ? ? ? ? ?"ddc" ? ? ? ? ? "ddr" > [13] "dendrogram" ? ?"densadj" ? ? ? "denscol" ? ? ? "density.info" > [17] "di" ? ? ? ? ? ?"distfun" ? ? ? "hcc" ? ? ? ? ? "hclustfun" > [21] "hcr" ? ? ? ? ? "hline" ? ? ? ? "iy" ? ? ? ? ? ?"key" > [25] "keysize" ? ? ? "labCol" ? ? ? ?"labRow" ? ? ? ?"lhei" > [29] "linecol" ? ? ? "lmat" ? ? ? ? ?"lwid" ? ? ? ? ?"main" > [33] "margins" ? ? ? "max.breaks" ? ?"max.raw" ? ? ? "max.scale" > [37] "min.breaks" ? ?"min.raw" ? ? ? "min.scale" ? ? "mmat" > [41] "na.color" ? ? ?"na.rm" ? ? ? ? "nbr" ? ? ? ? ? "nc" > [45] "ncol" ? ? ? ? ?"notecex" ? ? ? "notecol" ? ? ? "nr" > [49] "op" ? ? ? ? ? ?"retval" ? ? ? ?"revC" ? ? ? ? ?"rm" > [53] "rowInd" ? ? ? ?"rowsep" ? ? ? ?"RowSideColors" "Rowv" > [57] "scale" ? ? ? ? "scale01" ? ? ? "sepcolor" ? ? ?"sepwidth" > [61] "sx" ? ? ? ? ? ?"symbreaks" ? ? "symkey" ? ? ? ?"symm" > [65] "tmpbreaks" ? ? "trace" ? ? ? ? "tracecol" ? ? ?"vline" > [69] "x" ? ? ? ? ? ? "xlab" ? ? ? ? ?"x.scaled" ? ? ?"x.unscaled" > [73] "ylab" ? ? ? ? ?"z" > Browse[1]> tmpbreaks > ?[1] ? NaN -2.45 -2.40 -2.35 -2.30 -2.25 -2.20 -2.15 -2.10 -2.05 -2.00 -1.95 > ?[13] -1.90 -1.85 -1.80 -1.75 -1.70 -1.65 -1.60 -1.55 -1.50 -1.45 -1.40 -1.35 > ?[25] -1.30 -1.25 -1.20 -1.15 -1.10 -1.05 -1.00 -0.95 -0.90 -0.85 -0.80 -0.75 > ?[37] -0.70 -0.65 -0.60 -0.55 -0.50 -0.45 -0.40 -0.35 -0.30 -0.25 -0.20 -0.15 > ?[49] -0.10 -0.05 ?0.00 ?0.05 ?0.10 ?0.15 ?0.20 ?0.25 ?0.30 ?0.35 ?0.40 ?0.45 > ?[61] ?0.50 ?0.55 ?0.60 ?0.65 ?0.70 ?0.75 ?0.80 ?0.85 ?0.90 ?0.95 ?1.00 ?1.05 > ?[73] ?1.10 ?1.15 ?1.20 ?1.25 ?1.30 ?1.35 ?1.40 ?1.45 ?1.50 ?1.55 ?1.60 ?1.65 > ?[85] ?1.70 ?1.75 ?1.80 ?1.85 ?1.90 ?1.95 ?2.00 ?2.05 ?2.10 ?2.15 ?2.20 ?2.25 > ?[97] ?2.30 ?2.35 ?2.40 ?2.45 ? NaN > Browse[1]> sessionInfo() > R version 2.10.0 Under development (unstable) (2009-05-31 r48697) > x86_64-unknown-linux-gnu > > locale: > ?[1] LC_CTYPE=en_US.UTF-8 ? ? ? LC_NUMERIC=C > ?[3] LC_TIME=en_US.UTF-8 ? ? ? ?LC_COLLATE=en_US.UTF-8 > ?[5] LC_MONETARY=C ? ? ? ? ? ? ?LC_MESSAGES=en_US.UTF-8 > ?[7] LC_PAPER=en_US.UTF-8 ? ? ? LC_NAME=C > ?[9] LC_ADDRESS=C ? ? ? ? ? ? ? LC_TELEPHONE=C > [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C > > attached base packages: > [1] grid ? ? ?stats ? ? graphics ?grDevices datasets ?utils ? ? methods > [8] base > > other attached packages: > [1] gplots_2.7.1 ? caTools_1.9 ? ?bitops_1.0-4.1 gmodels_2.15.0 gtools_2.6.1 > [6] gdata_2.4.2 ? ?tm_0.4 > > loaded via a namespace (and not attached): > [1] MASS_7.3-0 ? ? rJava_0.6-3 ? ?RWeka_0.3-20 ? slam_0.1-1 ? ? Snowball_0.0-6 > [6] tcltk_2.10.0 ? tools_2.10.0 > Browse[1]> > ------------------------------------------------------------ > Mark W. Kimpel MD ?** Neuroinformatics ** Dept. of Psychiatry > Indiana University School of Medicine > > 15032 Hunter Court, Westfield, IN ?46074 > > (317) 490-5129 Work, & Mobile & VoiceMail > > "The real problem is not whether machines think but whether men do." > -- B. F. Skinner > ****************************************************************** >