Nothing
## ----setup, include = FALSE----------------------------------------------
knitr::opts_chunk$set(
# collapse = FALSE,
# comment = "#>"
results = "hold"
)
## ------------------------------------------------------------------------
library(echo.find)
head(expressions[,1:5])
## ----fig.align="center",fig.height = 4, fig.width = 6--------------------
library(ggplot2)
tp <- seq(2,48,by=2) # our time points
num_reps <- 3 # number of replicates
samp <- 2 # sample we want to look at
ex.df <- expressions[samp,-1] # expression data for the first sample
# our visualization data frame
ribbon.df <- data.frame(matrix(ncol = 3+num_reps, nrow = length(tp)))
# assigning column names
colnames(ribbon.df) <- c("Times","Min","Max",
paste(rep("Rep",num_reps),c(1:num_reps), sep="."))
ribbon.df$Times <- tp
# getting min values of replicates
ribbon.df$Min <- sapply(seq(1,ncol(ex.df), by = num_reps),
function(x) min(unlist(ex.df[,c(x:(num_reps-1+x))]), na.rm = TRUE))
# getting max values of replicates
ribbon.df$Max <- sapply(seq(1,ncol(ex.df), by = num_reps),
function(x) max(unlist(ex.df[,c(x:(num_reps-1+x))]), na.rm = TRUE))
# assign each of the replicates to the visualization data frame
for (i in 1:num_reps){
ribbon.df[,3+i] <- t(ex.df[,seq(i,ncol(ex.df),by=num_reps)])
}
# color names
color_bar <- c("Rep.1"="red","Rep.2"="blue","Rep.3"="green")
# visualize, with shading for each row
p <- ggplot(data = ribbon.df,aes(x=Times))+ # declare the dataframe and main variables
geom_ribbon(aes(x=Times, ymax=Max, ymin=Min, colour="Original"),
fill = "gray", alpha = 0.5)+ # create shading
ggtitle(expressions[samp,1])+ # gene name is title
scale_color_manual("",values=color_bar)+
scale_fill_manual("",values=color_bar)+
theme(plot.title = element_text(hjust = .5),
legend.position = "bottom",legend.direction = "horizontal")+
labs(x="Hours", y="Expression") #Label for axes
# add specific replicate lines
for (i in 1:num_reps){
p <- p +
geom_line(data = ribbon.df,
aes_string(x="Times",y=paste("Rep",i,sep = ".")),
colour=color_bar[i])
}
suppressWarnings(p) # to ignore warnings for missing values
## ------------------------------------------------------------------------
# echo_find() parameters
genes <- expressions
begin <- 2 # first time point
end <- 48 # last time point
resol <- 2 # time point resolution
num_reps <- 3 # number of replicates
low <- 20 # low period seeking
high <- 26 # high period seeking
run_all_per <- FALSE # we are not looking for all periods
paired <- FALSE # these replicates are unrelated, that is, a replicate being
# called "replicate 1" at time point 2 means nothing
rem_unexpr <- FALSE # do not remove unexpressed genes
# we do not assign rem_unexpr_amt, since we're not removing unexpressed genes
is_normal <- FALSE # do not normalize
is_de_linear_trend <- FALSE # do not remove linear trends
is_smooth <- FALSE # do not smooth the data
results <- echo_find(genes = genes, begin = begin, end = end, resol = resol,
num_reps = num_reps, low = low, high = high, run_all_per = run_all_per,
paired = paired, rem_unexpr = rem_unexpr, is_normal = is_normal,
is_de_linear_trend = is_de_linear_trend, is_smooth = is_smooth)
head(results[,1:16])
## ----fig.align="center",fig.height = 4, fig.width = 6--------------------
# assign the fit to the visualization data frame
ribbon.df$Fit <- t(results[samp,(17+(length(tp)*num_reps)):ncol(results)])
# visualize, with shading for each row
# add Fit line
p <- p +
geom_line(data = ribbon.df,
aes_string(x="Times",y="Fit"),
colour="black")
suppressWarnings(p) # to ignore warnings for missing values
# print sample's parameters
cat(paste0("Gene Name: ",results$`Gene Name`[samp],"\n",
"Convergence:", results$Convergence[samp],"\n",
"Iterations:",results$Iterations[samp],"\n",
"Forcing Coefficient:", results$Forcing.Coefficient[samp],"\n",
"Oscillation Type:",results$`Oscillation Type`[samp],"\n",
"Amplitude", results$Amplitude[samp],"\n",
"Radian.Frequency:",results$Radian.Frequency[samp],"\n",
"Period:",results$Period[samp],"\n",
"Phase Shift:",results$`Phase Shift`[samp],"\n",
"Hours Shifted:",results$`Hours Shifted`[samp],"\n",
"P-Value:",results$`P-Value`[samp],"\n",
"BH Adj P-Value:",results$`BH Adj P-Value`[samp],"\n",
"BY Adj P-Value:",results$`BY Adj P-Value`[samp],"\n"))
## ------------------------------------------------------------------------
run_all_per <- TRUE # looking for all possible periods
rem_unexpr <- TRUE # remove unexpressed genes
rem_unexpr_amt <- 70 # percentage of unexpressed genes
is_normal <- TRUE # normalize
is_de_linear_trend <- TRUE # remove linear trends
is_smooth <- TRUE # smooth the data
# we're using the default values of low and high, since we're looking for all periods
results <- echo_find(genes = genes, begin = begin, end = end, resol = resol,
num_reps = num_reps, run_all_per = run_all_per, paired = paired,
rem_unexpr = rem_unexpr, rem_unexpr_amt = rem_unexpr_amt, is_normal = is_normal,
is_de_linear_trend = is_de_linear_trend, is_smooth = is_smooth)
head(results[,1:16])
## ----fig.align="center",fig.height = 4, fig.width = 6--------------------
rep_genes <- results[samp,17:(16+(length(tp)*num_reps))]
# getting min values of replicates
ribbon.df$Min <- sapply(seq(1,ncol(rep_genes), by = num_reps),
function(x) min(unlist(rep_genes[,c(x:(num_reps-1+x))]),
na.rm = TRUE))
# getting max values of replicates
ribbon.df$Max <- sapply(seq(1,ncol(rep_genes), by = num_reps),
function(x) max(unlist(rep_genes[,c(x:(num_reps-1+x))]),
na.rm = TRUE))
for (i in 1:num_reps){ # assign each of the replicates
ribbon.df[,3+i] <- t(rep_genes[,seq(i,ncol(rep_genes),by=num_reps)])
}
# assign the fit to the visualization data frame
ribbon.df$Fit <- t(results[samp,(17+(length(tp)*num_reps)):ncol(results)])
# visualize, with shading for each row
p <- ggplot(data = ribbon.df,aes(x=Times))+ # declare the dataframe and main variables
geom_ribbon(aes(x=Times, ymax=Max, ymin=Min, colour="Original"),
fill = "gray", alpha = 0.5)+ # create shading
ggtitle(expressions[samp,1])+ # gene name is title
scale_color_manual("",values=color_bar)+
scale_fill_manual("",values=color_bar)+
theme(plot.title = element_text(hjust = .5),
legend.position = "bottom",legend.direction = "horizontal")+
labs(x="Hours", y="Expression") #Label for axes
# add specific replicate lines
for (i in 1:num_reps){
p <- p +
geom_line(data = ribbon.df,
aes_string(x="Times",y=paste("Rep",i,sep = ".")),
colour=color_bar[i])
}
# add Fit line
p <- p +
geom_line(data = ribbon.df,
aes_string(x="Times",y="Fit"),
colour="black")
suppressWarnings(p) # to ignore warnings for missing values
# print sample's parameters
cat(paste0("Gene Name: ",results$`Gene Name`[samp],"\n",
"Convergence:", results$Convergence[samp],"\n",
"Iterations:",results$Iterations[samp],"\n",
"Forcing Coefficient:", results$Forcing.Coefficient[samp],"\n",
"Oscillation Type:",results$`Oscillation Type`[samp],"\n",
"Amplitude", results$Amplitude[samp],"\n",
"Radian.Frequency:",results$Radian.Frequency[samp],"\n",
"Period:",results$Period[samp],"\n",
"Phase Shift:",results$`Phase Shift`[samp],"\n",
"Hours Shifted:",results$`Hours Shifted`[samp],"\n",
"P-Value:",results$`P-Value`[samp],"\n",
"BH Adj P-Value:",results$`BH Adj P-Value`[samp],"\n",
"BY Adj P-Value:",results$`BY Adj P-Value`[samp],"\n"))
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.