#' RainAnalysis :
#' @description Carries out RAIN analysis on a transcriptomics dataset
#' @param dataset A transcriptomics dataset. First columns should be gene names.
#' All other columns should be expression levels.
#' @param period The period of rhythms of interest. Defaults to the circadian
#' period.
#' @return A dataframe object detailing the result of the rain analysis.
#' @examples
#' results <- RainAnalysis(Laurasmappings, period = 24)
#' @export
RainAnalysis <- function(dataset, period) {
dataset <- CircadianTools::GeneClean(dataset)
timevector <- CircadianTools::MakeTimevector(dataset)
measure <- as.numeric(table(timevector))
genenames <- dataset[1]
dataset <- dataset[-1]
deltat <- unique(timevector)[2] - unique(timevector)[1]
results <- rain::rain(t(dataset), deltat = deltat, period = period,
measure.sequence = measure)
results <- cbind(genenames, results)
return(results)
}
#' RainSignificantPlot :
#' @description Prints or saves plots of the genes found to be most significant
#' by \link{RainAnalysis}
#'
#' @param results A dataframe generated by \code{RainAnalysis}
#' @param dataset A transcriptomics dataset which was used with
#' \link{RainAnalysis} to generate the results dataframe. First columns should
#' be gene names. All other columns should be expression levels.
#' @param number The number of most significant genes printed or saved
#' @param save Logical. If TRUE, saves plots to working directory.
#' Defaults to FALSE.
#' @param print Logical. If TRUE renders significant genes in the plot viewer.
#' Defaults to TRUE
#' @return Prints or saves ggplot2 object(s).
#' @examples
#' results <- RainAnalysis(Laurasmappings, period = 24)
#' RainSignificantPlot(results,Laurasmappings, save=TRUE, number=15)
#'
#' @export
RainSignificantPlot <- function(results, dataset, number = 10,
print = TRUE, save = FALSE) {
# Order by most significant p-value
results <- results[order(results$pVal), ]
for (i in 1:number) {
p <- CircadianTools::BasicPlot(as.character(results[i, 1]), dataset)
p <- p + ggplot2::ggtitle(paste("Gene = ",
as.character(results[i, 1]),
" P-Value = ",
as.character(results[i,2])))
if (print == TRUE) {
print(p)
}
if (save == TRUE) {
ggplot2::ggsave(paste("rank=", i, "RAIN_",
as.character(results[i, 1]),
".png")
, p, width = 10,
height = 4.5, units = "in")
}
}
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.