Skip to content

Commit

Permalink
Merge pull request #56 from singha53/alexa
Browse files Browse the repository at this point in the history
bug: fix alexa functionality
  • Loading branch information
singha53-zz authored May 5, 2020
2 parents 3991653 + dc14cab commit 3dbff55
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 22 deletions.
26 changes: 14 additions & 12 deletions R/alexa_functions.R
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
#' @export
#' @rdname alexaMetadata
alexa_metadata <- function(demo, group, trim, format) {
alexa_metadata <- function(demo, group, trim, format, user_id, s3_bucket) {
result <- omicsBioAnalytics::computeDescriptiveStats(demo,
group, trim, format)
print("result")
print(result)
# save figures to tempdir()
mapply(function(var, var_type) {
if(var_type == "continuous") {
Expand All @@ -14,15 +16,15 @@ alexa_metadata <- function(demo, group, trim, format) {
xlab(paste0(group, "\n ", paste(paste0(levels(demo[, group]), " (n=", table(demo[, group]), ") "), collapse = ', '))) +
theme(legend.position = "none") +
theme_bw()
ggsave(paste0(tempdir(), "/", paste(userID, "ds", var, sep="-"), ".png"), metadataPlot, device = "png", width = 4, height = 4)
put_object(paste0(tempdir(), "/", paste(userID, "ds", var, sep="-"), ".png"), bucket = S3Bucket)
ggsave(paste0(tempdir(), "/", paste(user_id, "ds", var, sep="-"), ".png"), metadataPlot, device = "png", width = 4, height = 4)
put_object(paste0(tempdir(), "/", paste(user_id, "ds", var, sep="-"), ".png"), bucket = s3_bucket)
} else if (var_type == "categorical") {
df <- table(demo[, var], demo[, group])
tg = gridExtra::tableGrob(df)
h = grid::convertHeight(sum(tg$heights), "in", TRUE)
w = grid::convertWidth(sum(tg$widths), "in", TRUE)
ggplot2::ggsave(paste0(tempdir(), "/", paste(userID, "ds", var, sep="-"), ".png"), tg, width=w, height=h)
put_object(paste0(tempdir(), "/", paste(userID, "ds", var, sep="-"), ".png"), bucket = S3Bucket)
ggplot2::ggsave(paste0(tempdir(), "/", paste(user_id, "ds", var, sep="-"), ".png"), tg, width=w, height=h)
put_object(paste0(tempdir(), "/", paste(user_id, "ds", var, sep="-"), ".png"), bucket = s3_bucket)
} else {
NA
}
Expand All @@ -32,7 +34,7 @@ alexa_metadata <- function(demo, group, trim, format) {

#' @export
#' @rdname alexaEda
alexaEda = function(demo, group, omicsData){
alexaEda = function(demo, group, omicsData, user_id, s3_bucket){
result <- lapply(names(omicsData), function(i){
pcs = prcomp(
omicsData[[i]],
Expand All @@ -51,8 +53,8 @@ alexaEda = function(demo, group, omicsData){
xSize = 15, ySize = 15, xAxisSize = 15, yAxisSize = 15) +
ylab(paste0("PC2 (", 100*signif(summary(pcs)$importance["Proportion of Variance", "PC2"], 2), "%)")) +
xlab(paste0("PC1 (", 100*signif(summary(pcs)$importance["Proportion of Variance", "PC1"], 2), "%)"))
ggsave(paste0(tempdir(), "/", paste(userID, "eda", i, sep="-"), ".png"), pcaPlot, device = "png", width = 4, height = 4)
put_object(paste0(tempdir(), "/", paste(userID, "eda", i, sep="-"), ".png"), bucket = S3Bucket)
ggsave(paste0(tempdir(), "/", paste(user_id, "eda", i, sep="-"), ".png"), pcaPlot, device = "png", width = 4, height = 4)
put_object(paste0(tempdir(), "/", paste(user_id, "eda", i, sep="-"), ".png"), bucket = s3_bucket)

list(primary = i,
secondary = paste0("The first two PCS explain ", 100*signif(summary(pcs)$importance["Cumulative Proportion", "PC2"], 2), "% of the variation in the ", i, " dataset."),
Expand All @@ -66,7 +68,7 @@ alexaEda = function(demo, group, omicsData){

#' @export
#' @rdname alexaDexp
alexaDexp = function(demo, group, omicsData){
alexaDexp = function(demo, group, omicsData, user_id, s3_bucket){
diffexp = function(datasets, response){
design <- model.matrix(~response)
lapply(datasets, function(i){
Expand Down Expand Up @@ -94,10 +96,10 @@ alexaDexp = function(demo, group, omicsData){
xlab(expression("log2 fold-change")) +
ggrepel::geom_text_repel(data = filter(top, adj.P.Val < fdr), aes(label = FeatureName))

ggsave(paste0(tempdir(), "/", paste(userID, "dexp", name, fdr, sep="-"), ".png"), volcanoPlot, device = "png", width = 4, height = 3.7)
put_object(paste0(tempdir(), "/", paste(userID, "dexp", name, fdr, sep="-"), ".png"), bucket = S3Bucket)
ggsave(paste0(tempdir(), "/", paste(user_id, "dexp", name, fdr, sep="-"), ".png"), volcanoPlot, device = "png", width = 4, height = 3.7)
put_object(paste0(tempdir(), "/", paste(user_id, "dexp", name, fdr, sep="-"), ".png"), bucket = s3_bucket)

# ggsave(paste0(tempdir(), "/", paste(userID, name, fdr, sep="-"), ".png"), volcanoPlot, device = "png")
# ggsave(paste0(tempdir(), "/", paste(user_id, name, fdr, sep="-"), ".png"), volcanoPlot, device = "png")
up <- sum(top$logFC > 0 & top$adj.P.Val < fdr)
down <- sum(top$logFC < 0 & top$adj.P.Val < fdr)
list(primary = name,
Expand Down
13 changes: 7 additions & 6 deletions R/metadata_helperFunctions.R
Original file line number Diff line number Diff line change
Expand Up @@ -174,12 +174,13 @@ summariseContVar = function(demo, group, format){
}
#
# library(omicsBioAnalytics)
# data("covid19")
# demo <- covid19$demo
# group <- "group"
# data("heartFailure")
# demo <- heartFailure$demo
# group <- "hospitalizations"
# trim <- 0.5
# format = "apl"
# result <- computeDescriptiveStats(demo, group, trim, format)
# result
# library(gridExtra)
# library(grid)
#
Expand Down Expand Up @@ -224,13 +225,13 @@ computeDescriptiveStats = function(demo, group = NULL, trim = 0.5, format){
NA
}
} else {
if (is.data.frame(cont) & is.data.frame(cat)){
if (is.list(cont) & is.list(cat)){
list(apl = append(cont, cat),
var_type = c(rep("continuous", length(cont)), rep("categorical", length(cat))))
} else if (is.data.frame(cont) & !is.data.frame(cat)) {
} else if (is.list(cont) & !is.list(cat)) {
list(apl = cont,
var_type = rep("continuous", length(cont)))
} else if (!is.data.frame(cont) & is.data.frame(cat)) {
} else if (!is.list(cont) & is.list(cat)) {
list(apl = cat,
var_type = rep("categorical", length(cat)))
} else {
Expand Down
18 changes: 14 additions & 4 deletions inst/app/server.R
Original file line number Diff line number Diff line change
Expand Up @@ -169,17 +169,27 @@ function(input, output, session) {
responseColumnName <- isolate({data_upload_ui_vars$response_var()})
responseRefLevel <- isolate({data_upload_ui_vars$ref_var()})
response <- isolate({relevel(factor(as.character(demo[, responseColumnName])), ref = responseRefLevel)})
omicsData <- isolate({getOmicsData()})
omicsData <- isolate({data_upload_server_vars$get_omics_data()})

dynamodbAttr <- list()
# analyze demo data and save images to S3
dynamodbAttr$ds <- omicsBioAnalytics::alexa_metadata(demo, group = responseColumnName, trim = 0.5, format = "APL")
dynamodbAttr$ds <- omicsBioAnalytics::alexa_metadata(demo,
group = responseColumnName,
trim = 0.5,
format = "APL",
user_id, s3_bucket)

# EDA and save images to S3
dynamodbAttr$eda <- omicsBioAnalytics::alexaEda(demo, group = responseColumnName, omicsData)
dynamodbAttr$eda <- omicsBioAnalytics::alexaEda(demo,
group = responseColumnName,
omicsData,
user_id, s3_bucket)

# Perform Differential Expression Analysis and save images to S3
dynamodbAttr$dexp <- omicsBioAnalytics::alexaDexp(demo, group = responseColumnName, omicsData)
dynamodbAttr$dexp <- omicsBioAnalytics::alexaDexp(demo,
group = responseColumnName,
omicsData,
user_id, s3_bucket)

# save dynamodb attributes to dynamodb_table_name (set in global.R) for user_id (set in global.R)
omicsBioAnalytics::put_item(dynamodb_table_name, list(id = user_id, phoneNumber = jsonlite::toJSON(dynamodbAttr)))
Expand Down

0 comments on commit 3dbff55

Please sign in to comment.