Question: [R] easier way to print heatmap on multiple pages?
0
gravatar for Yannick Wurm
10.6 years ago by
Yannick Wurm220
Yannick Wurm220 wrote:
Hi, quick reply to a post thats a few years old since I just struggled with the same issue: to split a single heatmap with too many lines onto multiple pages (ie keeping text size readable), I ended up using the following trick: 1. create a huge pdf. eg one that is 8 pages tall: > pagesToOutputOn = 8 > pdf(outputPath, paper="special", pointsize=10, width=29.7/2.54, height=20.9/2.54 * pagesToOutputOn, pagecentre=FALSE) # do your heatmap > dev.off() 2. Use Tiler on the mac (I'm sure other tools exist), to cut your single big pdf into several pages http://www.mindcad.com/tiler.html Cheers, Yannick Jake Michaelson jjmichael <at> comcast.net writes: > Hi All, > > I've worked on some code to take a heatmap with 1000 row entries, and > split this up into 20 pages, each with 50 rows from the original > heatmap. I want to preserve the row order such that all 20 pages, if > put together, would comprise the original heatmap. > > Here's what I've done: > > ##make the initial heatmap, with all 1000 rows and write it to an > object 'heatAll' > heatAll = heatmap.2(combined.int.top, col = cm.colors(256), trace = > "none") > > pdf(file="~/Desktop/Alfalfa-Ladak-StemV3.pdf", width=8, height=12, > pointsize=4) > for(i in 1:20){ > selected = heatAll$rowInd[((i-1)*50):((i-1)*50+50)] ##get original > row order in groups of 50 > > heatmap.2(combined.int.top[selected,], Rowv = FALSE, ##prevent row > re-ordering > Colv=heatAll$colInd, > col=cm.colors(256), > trace="none", margins = c(9,8), > main=paste("page", i, sep=" ")) > > } > dev.off() > > I can't think of why this wouldn't work, but for some reason things > are > completely out of order. For example, the first page of the PDF shows > many genes found at the bottom of the original heatmap, but in a > different order. Strange. > > So, have I made this insanely complicated? Is there an easier, better > way to print a large heatmap on multiple pages? > > Thanks in advance for any help. > > --Jake
• 1.3k views
ADD COMMENTlink modified 10.5 years ago by Julian Lee140 • written 10.6 years ago by Yannick Wurm220
Answer: [R] easier way to print heatmap on multiple pages?
0
gravatar for Julian Lee
10.5 years ago by
Julian Lee140
Julian Lee140 wrote:
Alternatively, you can output your heatmaps using the library, 'ctc'. Use TreeView or JavaTreeView to view those heatmaps. I find them more useful and easier than chopping up the PDFs. hope that helps. regards julian ----- Original Message ----- From: "Yannick Wurm" <yannick.wurm@unil.ch> To: bioconductor at stat.math.ethz.ch Cc: jjmichael at comcat.net Sent: Thursday, April 2, 2009 6:28:01 PM GMT +08:00 Beijing / Chongqing / Hong Kong / Urumqi Subject: Re: [BioC] [R] easier way to print heatmap on multiple pages? Hi, quick reply to a post thats a few years old since I just struggled with the same issue: to split a single heatmap with too many lines onto multiple pages (ie keeping text size readable), I ended up using the following trick: 1. create a huge pdf. eg one that is 8 pages tall: > pagesToOutputOn = 8 > pdf(outputPath, paper="special", pointsize=10, width=29.7/2.54, height=20.9/2.54 * pagesToOutputOn, pagecentre=FALSE) # do your heatmap > dev.off() 2. Use Tiler on the mac (I'm sure other tools exist), to cut your single big pdf into several pages http://www.mindcad.com/tiler.html Cheers, Yannick Jake Michaelson jjmichael <at> comcast.net writes: > Hi All, > > I've worked on some code to take a heatmap with 1000 row entries, and > split this up into 20 pages, each with 50 rows from the original > heatmap. I want to preserve the row order such that all 20 pages, if > put together, would comprise the original heatmap. > > Here's what I've done: > > ##make the initial heatmap, with all 1000 rows and write it to an > object 'heatAll' > heatAll = heatmap.2(combined.int.top, col = cm.colors(256), trace = > "none") > > pdf(file="~/Desktop/Alfalfa-Ladak-StemV3.pdf", width=8, height=12, > pointsize=4) > for(i in 1:20){ > selected = heatAll$rowInd[((i-1)*50):((i-1)*50+50)] ##get original > row order in groups of 50 > > heatmap.2(combined.int.top[selected,], Rowv = FALSE, ##prevent row > re-ordering > Colv=heatAll$colInd, > col=cm.colors(256), > trace="none", margins = c(9,8), > main=paste("page", i, sep=" ")) > > } > dev.off() > > I can't think of why this wouldn't work, but for some reason things > are > completely out of order. For example, the first page of the PDF shows > many genes found at the bottom of the original heatmap, but in a > different order. Strange. > > So, have I made this insanely complicated? Is there an easier, better > way to print a large heatmap on multiple pages? > > Thanks in advance for any help. > > --Jake _______________________________________________ Bioconductor mailing list Bioconductor at stat.math.ethz.ch https://stat.ethz.ch/mailman/listinfo/bioconductor Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor -- Julian Lee Bioinformatics Specialist Cellular and Molecular Research National Cancer Center Singapore
ADD COMMENTlink written 10.5 years ago by Julian Lee140
Please log in to add an answer.

Help
Access

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Powered by Biostar version 16.09
Traffic: 222 users visited in the last hour