Question: Gviz single side margin for plotTracks
0
gravatar for alex.gos90
9 months ago by
alex.gos9010
alex.gos9010 wrote:

Hi Gviz developers, 

 

I found the option to increase the margin around the plot area very helpful to include longer than usual titles, but when I tried in par(mar(c(bottom, left, top, right))-like manner to specify side specific margins it did not work as expected. 
Somehow the margin was defined by the maximum of the specified vector, so I am wondering wether this behaviour is intended or a bug.   

Anyways, thank you for providing the awesome Gviz package for plotting genomics data, it is really extensible and looks very nice with minimal tweaking. 

Edit: 
Small reproducible example:

## Create some tracks to plot
st <- c(2000000, 2070000, 2100000, 2160000)
ed <- c(2050000, 2130000, 2150000, 2170000)
str <- c("-", "+", "-", "-")
gr <- c("Group1","Group2","Group1", "Group3")
annTrack <- AnnotationTrack(start=st, end=ed, strand=str, chromosome=7,
                            genome="hg19", feature="test", group=gr,
                            id=paste("annTrack item", 1:4),
                            name="annotation track foo",
                            stacking="squish")

ax <- GenomeAxisTrack()

dt <- DataTrack(start=seq(min(st), max(ed), len=10), width=18000,
                data=matrix(runif(40), nrow=4), genome="hg19", chromosome=7,
                type="histogram", name="data track bar")


## Now plot the tracks
plotTracks(list(ax, annTrack, dt),frame=TRUE)

## Plot with higher margin (single value)
plotTracks(list(ax, annTrack, dt),margin = 50,frame=TRUE)

## Plot with higher margin (per site value) --> only first two are respected
plotTracks(list(ax, annTrack, dt),margin = c(50,100,200,400),frame=TRUE)

## Plot with higher margin (c(horizontal,vertical) value) --> same as before
plotTracks(list(ax, annTrack, dt),margin = c(50,100),frame=TRUE)

 

Best,

Alex

gviz layout grid • 264 views
ADD COMMENTlink modified 9 months ago by Robert Ivanek640 • written 9 months ago by alex.gos9010

Dear Alex,

Can you provide a reproducible example? The Gviz is using grid graphics so par cannot work.

Best

Robert

ADD REPLYlink written 9 months ago by Robert Ivanek640

Thanks Robert for pointing this out. 

Now I actually played around a bit more (before was taking too long) and figured out you can basically only extend margin in horizontal (equally left/right) and vertical (equally top/bottom) direction. 
This sounds definitely better than my first assumption with the max value bug, but was not really documented (at least I did not find any hints).   

And still it is different from the behaviour that I would usually expect form a margin parameter.

Best,
Alex

ADD REPLYlink written 9 months ago by alex.gos9010

Hi Alex,

I can update the code to take all four values c(bottom, left, top, right) into account but it will not be compatible with current specification of the margin c(width, height). Therefore I can only push this change into devel version of Gviz (Bioc 3.9).

Best Robert

ADD REPLYlink written 9 months ago by Robert Ivanek640

Hi Robert,

this would be really nice! I do not know how much sense it makes, but maybe you could allow both versions to be used. So providing either two or four values, these could be interpreted differentially. 

 

Best Alex 

ADD REPLYlink written 9 months ago by alex.gos9010
Answer: Gviz single side margin for plotTracks
0
gravatar for Robert Ivanek
9 months ago by
Robert Ivanek640
Switzerland
Robert Ivanek640 wrote:

I updated the code in both versions (release, devel) that it can take four different values for margin definition (similar to par). If you provide only two, it will use them as before. It will be available in next versions.

ADD COMMENTlink written 9 months ago by Robert Ivanek640
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: 107 users visited in the last hour