#' Create MA plot
#'
#' This functions creates MA plots given a dataframe containing:
#' baseMean, log2FoldChange and padj header names.
#' @param res dataframe
#' @param thresh pvalue adjusted threshold
#' @param textcex determines text size
#' @export
maplot <- function (res, thresh=0.05, textcex=1, ...) {
## Susana MAPLOT
with(res, plot(baseMean, log2FoldChange, pch=20, cex=.5, log="x", ...))
with(subset(res, padj<thresh), points(baseMean, log2FoldChange, col="red", pch=20, cex=1.5))
}
#'
#' This functions discard low counts in a DESeq object.
#' Uses 10 as default.
#'
#' @param dds_object DESeq2 object
#' @param min_count integer for minimum count cutoff (Default=10).
#' @export
## #####
discard_lowCounts = function(dds_object, min_count=10) {
keep <- rowSums(counts(dds_object)) >= min_count
return(dds_object[keep,])
}
#' Create Volcano plot
#'
#' This functions creates volcano plots given a dataframe containing:
#' baseMean, log2FoldChange and padj header names.
#' @param res dataframe
#' @param lfcthresh Log fold change threshold
#' @param sigthresh pvalue adjusted threshold
#' @param main Main plot legend
#' @param legendpos Legend position
#' @export
volcanoplot <- function (res, lfcthresh=2, sigthresh=0.05, main="Volcano Plot", legendpos="topright", textcx=1, ...) {
with(res, plot(log2FoldChange, -log10(pvalue), pch=20, main=main, ...))
with(subset(res, padj<sigthresh ), points(log2FoldChange, -log10(pvalue), pch=20, col="red", ...))
with(subset(res, abs(log2FoldChange)>lfcthresh), points(log2FoldChange, -log10(pvalue), pch=20, col="orange", ...))
with(subset(res, padj<sigthresh & abs(log2FoldChange)>lfcthresh), points(log2FoldChange, -log10(pvalue), pch=20, col="green", ...))
legend(legendpos, xjust=1, yjust=1, legend=c(paste("FDR<",sigthresh,sep=""), paste("|FC|>",round(2^lfcthresh,1),sep=""), "both"), pch=20, col=c("red","orange","green"))
}
#' Discard empty counts
#'
#' This functions prepares countsfile for DESeq discarding rows with
#' many 0 for all samples. It uses the given cutoff, to discard rows containing
#' greater than a cutoff in percentage of 0's. Default cutoff value is 0.9
#' @param countsF Count file for DESeq
#' @param cutoff Cutoff for discarding rows
#' @export
discard_0_counts <- function(countsF, cutoff=0.9) {
row.0 <- rowSums(countsF==0) # for each gene, number of samples with 0 counts
row.0_left <- row.0[row.0 <= cutoff * ncol(countsF) ]
countsFile2 <-countsF[names(row.0_left),]
return(countsFile2)
}
#' Discard low counts in dataframe
#'
#' This functions discard low counts in a dataframe with any non-numeric column
#' @param df_given Dataframe to pase
#' @param min_count Minimum count to use as cutoff (Default: 10).
#' @export
discard_lowCounts_df = function(df_given, min_count=10) {
df_given <- df_given %>% mutate(total=rowSums(select_if(., is.numeric)))
keep <- df_given['total'] >= min_count
df_given['total'] <- NULL
return(df_given[keep,])
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.