Dear R wizards, Hopeful someone can help me with what I believe is a pretty simple task. I pretty new to R so some (much) of the obvious escapes me. How do I get a distance matrix into heatmap? What do I tell distfun if what I'm trying to map is already an ordered distance matrix? I tried >heatmap(x, distfun=as.dist(x)) where x is the distance matrix but R gave me an error. Thanks in advance for any help. Paul Lepp `-:-. ,-;"`-:-. ,-;"`-:-. ,-;"`-:-. ,-;"`-:-. ,-;"`-:-. `=`,'=/ `=`,'=/ `=`,'=/ `=`,'=/ `=`,'=/ `=` >==/ >==/ >==/ >==/ >==/ ,=,-<=`. ,=,-<=`. ,=,-<=`. ,=,-<=`. ,=,-<=`. ,=, ,-'-' `-=_,-'-' `-=_,-'-' `-=_,-'-' `-=_,-'-' `-=_,-'-' Paul Lepp, Ph.D. Stanford School of Medicine VAPAHCS, 154T Dept. of Microbiology & Immunology 3801 Miranda Ave Stanford University Palo Alto, CA 94304 Stanford, CA (650) 493-5000 x66762 fax: (650) 852-3291 http://cmgm.stanford.edu/~pwlepp pwlepp at cmgm.stanford.edu
I believe you want to pass the (symmetric) matrix as is, rather than wrapped in as.dist(). E.g., x <- as.matrix(dist(matrix(rnorm(100), 20, 5))) heatmap(x, symm=TRUE, scale="none") HTH, Andy> From: Paul Lepp > > Dear R wizards, > Hopeful someone can help me with what I believe is a > pretty simple task. I > pretty new to R so some (much) of the obvious escapes me. How > do I get a > distance matrix into heatmap? What do I tell distfun if what > I'm trying to > map is already an ordered distance matrix? I tried >heatmap(x, > distfun=as.dist(x)) where x is the distance matrix but R gave > me an error. > Thanks in advance for any help. > > Paul Lepp > > `-:-. ,-;"`-:-. ,-;"`-:-. ,-;"`-:-. ,-;"`-:-. ,-;"`-:-. > `=`,'=/ `=`,'=/ `=`,'=/ `=`,'=/ `=`,'=/ `=` > >==/ >==/ >==/ >==/ >==/ > ,=,-<=`. ,=,-<=`. ,=,-<=`. ,=,-<=`. ,=,-<=`. ,=, > ,-'-' `-=_,-'-' `-=_,-'-' `-=_,-'-' `-=_,-'-' `-=_,-'-' > Paul Lepp, Ph.D. Stanford School of Medicine > > VAPAHCS, 154T Dept. of Microbiology & Immunology > 3801 Miranda Ave Stanford University > Palo Alto, CA 94304 Stanford, CA > (650) 493-5000 x66762 fax: (650) 852-3291 > http://cmgm.stanford.edu/~pwlepp pwlepp at cmgm.stanford.edu > > ______________________________________________ > R-help at stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! > http://www.R-project.org/posting-guide.html > >
Sorry. I think you need the argument distfun=as.dist. E.g., heatmap(x, distfun=as.dist, symm=TRUE, scale="none") Andy> From: Liaw, Andy > > I believe you want to pass the (symmetric) matrix as is, > rather than wrapped > in as.dist(). E.g., > > x <- as.matrix(dist(matrix(rnorm(100), 20, 5))) > heatmap(x, symm=TRUE, scale="none") > > HTH, > Andy > > > From: Paul Lepp > > > > Dear R wizards, > > Hopeful someone can help me with what I believe is a > > pretty simple task. I > > pretty new to R so some (much) of the obvious escapes me. How > > do I get a > > distance matrix into heatmap? What do I tell distfun if what > > I'm trying to > > map is already an ordered distance matrix? I tried >heatmap(x, > > distfun=as.dist(x)) where x is the distance matrix but R gave > > me an error. > > Thanks in advance for any help. > > > > Paul Lepp > > > > `-:-. ,-;"`-:-. ,-;"`-:-. ,-;"`-:-. ,-;"`-:-. ,-;"`-:-. > > `=`,'=/ `=`,'=/ `=`,'=/ `=`,'=/ `=`,'=/ `=` > > >==/ >==/ >==/ >==/ >==/ > > ,=,-<=`. ,=,-<=`. ,=,-<=`. ,=,-<=`. ,=,-<=`. ,=, > > ,-'-' `-=_,-'-' `-=_,-'-' `-=_,-'-' `-=_,-'-' `-=_,-'-' > > Paul Lepp, Ph.D. Stanford School of Medicine > > > > VAPAHCS, 154T Dept. of Microbiology & Immunology > > 3801 Miranda Ave Stanford University > > Palo Alto, CA 94304 Stanford, CA > > (650) 493-5000 x66762 fax: > (650) 852-3291 > > http://cmgm.stanford.edu/~pwlepp pwlepp at cmgm.stanford.edu > > > > ______________________________________________ > > R-help at stat.math.ethz.ch mailing list > > https://stat.ethz.ch/mailman/listinfo/r-help > > PLEASE do read the posting guide! > > http://www.R-project.org/posting-guide.html > > > > > > ______________________________________________ > R-help at stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! > http://www.R-project.org/posting-guide.html > > > -------------------------------------------------------------- > ---------------- > Notice: This e-mail message, together with any attachments, > contains information of Merck & Co., Inc. (One Merck Drive, > Whitehouse Station, New Jersey, USA 08889), and/or its > affiliates (which may be known outside the United States as > Merck Frosst, Merck Sharp & Dohme or MSD and in Japan, as > Banyu) that may be confidential, proprietary copyrighted > and/or legally privileged. It is intended solely for the use > of the individual or entity named on this message. If you > are not the intended recipient, and have received this > message in error, please notify us immediately by reply > e-mail and then delete it from your system. > -------------------------------------------------------------- > ---------------- >
Hello, I was just doing heatmaps myself ;-) and I had the same problem. It would be nice to have such an example in the help file because it is not clear (thank you). you use (for example... this is my case, which I am doing the distance matrix using vegdist function with Bray curtis similarity): heatmap(matrix, scale="none", distfun=function(m) vegdist(m, method="bray"), hclustfun=function(m) hclust(m, method="average"), colgrey(seq(0.8,0,l=5))) or you can put directly the distance matrix that you may want, but I found it worst. To have the right labels on I found that the best way would be to have them in the matrix directely, because if we put it after it does not work well... I have been having difficulties in producing the scale that I want and doing the correct legend... I found an email with a function (image.scale()), but it does not work entirely well. How can I define the values I want in the scale, for example, use red for 1 g, blue for 2 g, etc... Is there a simpler way of doing the legend? thank you very much, Marta> Dear R wizards, > Hopeful someone can help me with what I believe is a pretty simple task.I> pretty new to R so some (much) of the obvious escapes me. How do I get a > distance matrix into heatmap? What do I tell distfun if what I'm tryingto> map is already an ordered distance matrix? I tried >heatmap(x, > distfun=as.dist(x)) where x is the distance matrix but R gave me an error. > Thanks in advance for any help. > > Paul Lepp > > `-:-. ,-;"`-:-. ,-;"`-:-. ,-;"`-:-. ,-;"`-:-. ,-;"`-:-. > `=`,'=/ `=`,'=/ `=`,'=/ `=`,'=/ `=`,'=/ `=` > >==/ >==/ >==/ >==/ >==/ > ,=,-<=`. ,=,-<=`. ,=,-<=`. ,=,-<=`. ,=,-<=`. ,=, > ,-'-' `-=_,-'-' `-=_,-'-' `-=_,-'-' `-=_,-'-' `-=_,-'-' > Paul Lepp, Ph.D. Stanford School of Medicine > > VAPAHCS, 154T Dept. of Microbiology & Immunology > 3801 Miranda Ave Stanford University > Palo Alto, CA 94304 Stanford, CA > (650) 493-5000 x66762 fax: (650) 852-3291 > http://cmgm.stanford.edu/~pwlepp pwlepp at cmgm.stanford.edu > > ______________________________________________ > R-help at stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide!http://www.R-project.org/posting-guide.html