R/doRNAseqPlot.R

#' RNAseq plot
#'
#'View RNAseq data for a given gene
#'
#' @param con A \code{SQLiteConnection} object
#' @param input_gene A vector of one or more ENSEMBL gene ids
#' @param table_name The table in the SQLite database containing the data.  The table should have fields named
#'   patient_id, gene_id and value where gene_id is an ensembl id.  Default tcga_rnaseq_data
#' @return A ggplot2 object
#' @import ggplot2
#' @export
doRNAseqPlot <- function(con, input_gene, table_name='tcga_rnaseq_data') {

    all_genes <- dplyr::src_sqlite(con@dbname) %>%
        dplyr::tbl('human_genes') %>%
        dplyr::collect() %>%
        dplyr::select(gene_id, gene_name)

    plot_data <- dplyr::src_sqlite(con@dbname) %>%
        dplyr::tbl(table_name) %>%
        dplyr::filter(gene_id == input_gene) %>%
        dplyr::collect() %>%
        dplyr::inner_join(all_genes, by='gene_id')

    p <- ggplot(plot_data, aes(x=log2(value+0.1), fill=gene_id)) +
        geom_density() +
        geom_point(aes(y=-0.2), shape=21, position = position_jitter(h=0.1)) +
        facet_wrap(~gene_name, ncol=2) +
        theme_bw() +
        coord_flip() +
        ylab('') + xlab('log2RPKM') +
        theme(legend.position='none',
              axis.text.y=element_text(size=rel(2)),
              axis.text.x=element_text(size=0),
              axis.title=element_text(size=rel(2.5)),
              strip.text=element_text(size=rel(3)))
    return(p)

}
chapmandu2/CollateralVulnerability2016 documentation built on May 13, 2019, 3:27 p.m.