Represent Rnaseq Figure Similar To One Represented In Paper
1
3
Entering edit mode
10.6 years ago
k2bhide ▴ 80

Hello all, I would like to know which software or tool can be used to generate figure similar to one mentioned below enter image description here The figure is taken from following reference paper: Decapping of Long Noncoding RNAs Regulates Inducible Genes - Sarah Geisler et al

Any help in this regard is really appreciated.

Thank you. Ketaki

rnaseq • 3.7k views
ADD COMMENT
0
Entering edit mode

Can't see any clickable link.

ADD REPLY
0
Entering edit mode

As ashutoshmits pointed out people will want a link .

ADD REPLY
0
Entering edit mode

You mean this figure: http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3278590/figure/F1/ ? I'm not aware of anything in particular, but I'm sure you could just do that in R with a bit of scripting.

ADD REPLY
0
Entering edit mode

Sorry the clickable link failed to work before. However I have put the figure now. It is same figure mentioned by #dpryan79. I would like to know how to generate similar figure. Thank you Ketaki

ADD REPLY
3
Entering edit mode
10.6 years ago
Ben ★ 2.0k

You can do this kind of thing in base R without too much trouble. The advantage of doing this rather than using a specific Bioconductor package is that it's easier to see and customise everything to your heart's content, and you can set up a plotting area with meaningful genomic coordinates, then add whatever you like in terms of data and shapes. Here's a quick example with some simulated data:

enter image description here

The code for this is:

set.seed(1)

colPolys <- function(data){
  #split data into +ve/-ve, draw separately
  neg.data <- ifelse(data > 0, 0,data)
  polygon(c(neg.data, rev(neg.data), c(1:1000, rev(1:1000))), 
          col="darkred", border=NA)
  pos.data <- ifelse(data < 0, 0,data)
  polygon(c(pos.data, rev(pos.data), c(1:1000, rev(1:1000))), 
          col="darkgreen", border=NA)
}

# Simulate datasets (add 0s as polygon anchors)
x1 <- c(0, cumsum(rnorm(0, 5, n=998)), 0)
x2 <- c(0, cumsum(rnorm(0, 2, n=998)), 0)

# Set up empty plotting areas
par(mfrow=c(2,1), mar=c(2,4,2,2), xaxs="i", oma=c(0,1,0,1), mgp=c(3,.5,0))
plot(1:1000, x, type="n", frame=F, axes=F, ylab="", xlab="")
axis(2, lwd=3, lwd.ticks=0, at=seq(-50,100,by=50), labels=c(50,0,50,100))
colPolys(x1)
abline(h=0, lwd=3)
mtext("WT", 4, las=1, font=2)

# Repeat for second plot (mostly redundant code)
plot(1:1000, x, type="n", frame=F, axes=F, ylab="", xlab="")
abline(h=0, lwd=3)
colPolys(x2)
axis(2, lwd=3, lwd.ticks=0, at=seq(-50,100,by=50), labels=c(50,0,50,100))
mtext("Mapped reads", 2, line=-1, font=2, outer=T)
mtext(expression(bold(dcp2~Delta)), 4, las=1)

I stopped at this point, but you could easily draw filled arrows with another call to polygon.

ADD COMMENT
1
Entering edit mode

Thank you Ben for sharing your R code. It looks exactly as in the figure I wanted. I would definitely try this for my dataset and post if any additional questions.

ADD REPLY
0
Entering edit mode

No problem, it'll take some editing to work with your data but hopefully it gives you a good starting point.

ADD REPLY

Login before adding your answer.

Traffic: 1474 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6