Hi Martin, Thanks for your help again.
While I can zoom in the plot by limiting the range of the x-coordinates, I can't get the ylim to work. The presence of a some exceptionally high coverage values just distords the plot. When I included ylim, this is what I got: > plotLongVector(cvg, ylim = range(0,100)) Error in plot.default(NULL, xlab = xlab, ylab = ylab, xlim = offset + : formal argument "ylim" matched by multiple actual arguments Is there any trick that I'm missing here? Thanks, Zen > -----Original Message----- > From: Martin Morgan [mailto:[email protected]] > Sent: 12 August 2010 20:04 > To: LU Zen > Cc: '[email protected]' > Subject: Re: [Bioc-sig-seq] overlaying coverage plots > > On 08/12/2010 11:47 AM, LU Zen wrote: > > Hi Martin, > > > > Thanks for your help. This may sound really silly. My understanding of > > vector in R is that this is a > row of numbers. In my case, I have a table consisting of 2 columns, position > vs coverage. So I went > tried: > > > >> x<-read.table(file="B6_CAST_s1_cov1.txt", sep="\t", header=F) > > I guess here x is now a data.frame. Suppose the position is in the first > column, the coverage at that position in the second column; I'm assuming > that position is 1-based, i.e., that the first nucleotide on the > chromosome is nucleotide number 1, and not nucleotide number 0. You > could create a vector cvg that is as long as the maximum position. > > cvg = numeric(max(x[[1]])) > > cvg is initially all 0, and you could set the non-zero values to the > correct coverage with > > cvg[x[[1]]] = x[[2]] > > and then > > plotLongVector(cvg) > > Your use of quotes below isn't correct; try working through 'An > Introduction to R', available in a browser after typing > > help.start() > > Martin > > >> r<-Rle('x') > >> plotLongVector('r') > > Error in plot.window(...) : invalid 'ylim' value > > > > Do I need to transpose my data first? > > > > Thank you. > > > > Cheers, > > Zen > > > > > > > >> -----Original Message----- > >> From: Martin Morgan [mailto:[email protected]] > >> Sent: 12 August 2010 18:00 > >> To: LU Zen > >> Cc: '[email protected]' > >> Subject: Re: [Bioc-sig-seq] overlaying coverage plots > >> > >> On 08/12/2010 09:20 AM, LU Zen wrote: > >>> I'm trying to overlay coverage plots of individual chromosomes from > >>> different experiments to get a quick overview of probable CNVs. I've > >>> tried using simple plot, ggplot and plotrix packages of R (and I'm a > >>> real novice in R) but it seems that my linux machine with 64GB of > >>> memory is unable to handle the task. I've also reduced my file size > >>> by putting only the coordinates and the coverages derived from > >>> samtools pileup into a single file. > >>> > >>> My understanding is that I should be able to plot the coverage of a > >>> single chromosome with the bioconductor package but is it possible to > >>> overlay multiple plots using the package? I'll be really grateful if > >>> someone can advice on the way to do this. > >> > >> One easy possibility is to use HilbertVis' plotLongVector function with > >> standard R graphics commands. So here's some long data (simulated with > >> another function in HlibertVis) > >> > >> library(HilbertVis) > >> x <- makeRandomTestData() # 1e7 entries > >> > >> Then we set up a device so that we'll plot into 4 'rows' and 1 'column', > >> with margins on each plot fairly tight (see ?par) > >> > >> par(mfcol=c(4, 1), mar=c(1, 4, 2, 2)) > >> > >> And then we'll create four plots, showing progressively more extreme peaks > >> > >> par(mfcol=c(4, 1), mar=c(1, 4, 2, 2)) > >> plotLongVector(x) > >> plotLongVector(x * (abs(x) > 50)) > >> plotLongVector(x * (abs(x) > 100)) > >> plotLongVector(x * (abs(x) > 200)) > >> > >> This would also work with IRanges' Rle objects > >> > >> library(IRanges) > >> r <- Rle(x) > >> plotLongVector(r) > >> plotLongVector(r * (abs(r) > 50)) > >> plotLongVector(r * (abs(r) > 100)) > >> plotLongVector(r * (abs(r) > 200)) > >> > >> One could also easily 'zoom in' > >> > >> len = length(r) > >> plotLongVector(r) > >> plotLongVector(seqselect(r, len/10, 9 * len / 10)) > >> plotLongVector(seqselect(r, len/100, 9 * len / 100)) > >> plotLongVector(seqselect(r, len/1000, 9 * len / 1000)) > >> > >> (though here the x-coordinates are not correct). > >> > >> Also of course one might explore the raison d'etre of the package, and > >> its companion HilbertVisGUI > >> > >> showHilbertImage(hilbertImage(x)) > >> > >> Martin > >> > >>> > >>> Thank you. > >>> > >>> Zen > >>> > >>> > >>> > >>> > >>> > >>> The University of Edinburgh is a charitable body, registered in > >>> Scotland, with registration number SC005336. > >>> > >>> > >>> > >>> _______________________________________________ Bioc-sig-sequencing > >>> mailing list [email protected] > >>> https://stat.ethz.ch/mailman/listinfo/bioc-sig-sequencing > >> > >> > >> -- > >> Martin Morgan > >> Computational Biology / Fred Hutchinson Cancer Research Center > >> 1100 Fairview Ave. N. > >> PO Box 19024 Seattle, WA 98109 > >> > >> Location: Arnold Building M1 B861 > >> Phone: (206) 667-2793 > > > > > -- > Martin Morgan > Computational Biology / Fred Hutchinson Cancer Research Center > 1100 Fairview Ave. N. > PO Box 19024 Seattle, WA 98109 > > Location: Arnold Building M1 B861 > Phone: (206) 667-2793 -- The University of Edinburgh is a charitable body, registered in Scotland, with registration number SC005336. _______________________________________________ Bioc-sig-sequencing mailing list [email protected] https://stat.ethz.ch/mailman/listinfo/bioc-sig-sequencing
