Question: Overlaid XY plot with two different colors for control and target genes
1
gravatar for Chirag Nepal
6.2 years ago by
Chirag Nepal2.2k
Copenhagen
Chirag Nepal2.2k wrote:

Hi all,

I have expression measure of genes (two sets: target and contro genes) as measured by RNAseq, which is computed in tabular matrix.

head(A)
                                          V1    V2    V3    V4    V5    V6
1 chr20:38788661-38812050_ENSDART00000136771 1.912 1.912 1.912 4.770 0.703
2  chr4:13971999-13980660_ENSDART00000067040 0.502 0.502 0.502 1.242 0.011

     V7     V8     V9    V10   V11    V12    V13
1 0.137  6.534  4.689  7.086 2.646  4.376  0.684
2 0.007  0.684  1.125  2.819 2.392  1.406  0.364
head(B)
                                          V1    V2    V3    V4    V5    V6
1 chr19:24974067-24977991_ENSDART00000052421 0.005 0.005 0.005 0.025 0.139
2  chr8:26148102-26150871_ENSDART00000049793 2.312 2.312 2.312 6.153 1.109
3  chr8:47908733-47913950_ENSDART00000025620 2.446 2.446 2.446 9.660 5.411
     V7     V8     V9    V10   V11    V12    V13
1 0.807  0.010  0.232  5.963 0.022  0.149  3.162
2 0.291  4.556  3.214 16.486 2.158  5.599  0.939
3 7.745 11.614 13.150 51.680 8.557 18.356 36.378

 

PLOT:

 par (mfrow=c(1,2))
plot (log2(A$V2/A$V5), log2(A$V8/A$V11), xlab="log2(FC)", ylab="log2(FC)", xlim=c(-5,5), ylim=c(-5,5), col="red")
abline(v=0, lty=2); abline (h=0, lty=2)
plot (log2(B$V2/B$V5), log2(B$V8/B$V11), xlab="log2(FC)", ylab="log2(FC)", col="blue", xlim=c(-5,5), ylim=c(-5,5))

abline(v=0, lty=2); abline (h=0, lty=2)

 

 

How could i plot both in the same plot ?

cheers

Chirag

rna-seq R • 1.7k views
ADD COMMENTlink modified 6.2 years ago • written 6.2 years ago by Chirag Nepal2.2k

Thank you very much guys !!

ADD REPLYlink written 6.2 years ago by Chirag Nepal2.2k
3
gravatar for Jason
6.2 years ago by
Jason900
United States
Jason900 wrote:

If I were you I would try using your first plot as is, but for the second plot instead of using the plot function, use points e.g.

plot (log2(A$V2/A$V5), log2(A$V8/A$V11), xlab="log2(FC)", ylab="log2(FC)", xlim=c(-5,5), ylim=c(-5,5), col="red")
points(log2(B$V2/B$V5), log2(B$V8/B$V11),  col="blue")
abline(v=0, lty=2); abline (h=0, lty=2)

You could also use par(new=TRUE) instead. i.e.

plot (log2(A$V2/A$V5), log2(A$V8/A$V11), xlab="log2(FC)", ylab="log2(FC)", xlim=c(-5,5), ylim=c(-5,5), col="red")
par(new =TRUE)
plot (log2(B$V2/B$V5), log2(B$V8/B$V11), xlab="", ylab="", col="blue", xlim=c(-5,5), ylim=c(-5,5))
abline(v=0, lty=2); abline (h=0, lty=2)

edit:

Also, if the A$V2 etc doesn't work you may want to use A[,2] instead.

ADD COMMENTlink modified 6 months ago by RamRS27k • written 6.2 years ago by Jason900
2
gravatar for Devon Ryan
6.2 years ago by
Devon Ryan96k
Freiburg, Germany
Devon Ryan96k wrote:
cols=c(rep("red",2),rep("blue",3))
with(rbind(A,B), plot(log2(V2/V5), log2(V8/V11), xlab="log2(FC)", ylab="log2(FC)", xlim=c(-5,5), ylim=c(-5,5), col=cols))
abline(v=0, lty=2); abline (h=0, lty=2)

You could also just add the colors as a column, which would make life easier if using ggplot2.

ADD COMMENTlink modified 6 months ago by RamRS27k • written 6.2 years ago by Devon Ryan96k
2
gravatar for Ido Tamir
6.2 years ago by
Ido Tamir5.1k
Austria
Ido Tamir5.1k wrote:

a)

plot(c(log2(A$V2/A$V5),log2(B$V2/B$V5)), c(...), col=c(rep("red", nrow(A)),rep("blue", nrow(B)))

b)

with ggplot2 its much more elegant. You would have to create one data frame with a structure like:

gene name    x        y        type
gene1        3.2      1.2      control
....             
geneN        1.2      3.2      target

and then ggplot(df, aes(x=x,y=y, colour=type))+geom_point()

ADD COMMENTlink modified 6 months ago by RamRS27k • written 6.2 years ago by Ido Tamir5.1k
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 2.3.0
Traffic: 1621 users visited in the last hour