This is a test version of Biostars. For the public version, visit https://www.biostars.org.
Plot genes derived from time course experiment as line graph

Hi!

I would like to plot the log2FC of 80 genes of a time course experiment (from 0 to 168hrs) as line plot. So originally my dataset has the genes in rows and the log2FC per time point in column but looking a way to do it I found this post so I transposed the dataset obtaining:

A tibble: 11 x 80
   timepoints MAPK10  PCSK2  PCSK5  APBA1 CACNA1D    MME ITPR3 LOC395985
        <dbl>  <dbl>  <dbl>  <dbl>  <dbl>   <dbl>  <dbl> <dbl>     <dbl>
 1          0 -1.10  -2.91  -1.00  -0.980  -0.575 -0.573 0.849   1.27   
 2         24 -1.86  -4.76  -1.72  -1.60   -2.28  -0.749 0.332  -1.12   
 3         48 -1.49  -4.42  -1.67  -1.79   -2.39  -0.457 0.120  -0.658  
 4         54 -0.859 -3.54  -1.30  -1.64   -2.24  -0.128 0.559   0.726  
 5         60 -1.45  -3.90  -2.20  -1.94   -2.73   0.110 0.155   0.25

But when I try to follow the post (literally exactly the same code) I do not get any plot (not even the line plot for each gene). I checked if there were any NA and if the columns were character (df2 <- df %>% mutate_if(is.character,as.numeric) ) !

What am I doing wrong??

Thank you!

Camilla

line rnaseq ggplot r

1 answer

Dont know if this plot is what you want:

library(tidyr)
library(dplyr)
library(ggplot2)
test.df <- data.frame(a=seq(1:10),
                      matrix(nrow = 10,ncol = 80,data = runif(800)))
names(test.df) <- c("timepoints",paste0(rep("gene",80),seq(1:80)))
test.df.long <- test.df %>% pivot_longer(all_of(paste0(rep("gene",80),seq(1:80))))
test.df.long %>% 
  ggplot(aes(x= timepoints,y=value,color=name)) + 
    geom_line(aes(group = name))

However, as Chirag said in that old post, for so many genes, its better to use heatmap.

library(pheatmap)
test.trans <- test.df %>% t()
colnames(test.trans) <- paste0("T",test.trans[1,])
test.trans <- test.trans[-1,]
pheatmap(test.trans,
         cluster_cols = FALSE,
         show_rownames = FALSE)

...and here is the plot

EDIT: The line plot is too big to show.

Log in to answer this question.