From e42a41ce39662e72dc4cb0e8d6bf91f144b47410 Mon Sep 17 00:00:00 2001 From: Luis Herfurth Date: Wed, 17 Jan 2024 12:01:26 +0100 Subject: [PATCH 1/7] update network plot --- R/plot_network.R | 10 ++++++---- network_green_magenta.pdf | Bin 0 -> 46844 bytes 2 files changed, 6 insertions(+), 4 deletions(-) create mode 100644 network_green_magenta.pdf diff --git a/R/plot_network.R b/R/plot_network.R index 46832cb..4c2e2a3 100644 --- a/R/plot_network.R +++ b/R/plot_network.R @@ -185,8 +185,8 @@ plot_network <- function(log2FC_df, q_value=0.05) { # Create a plot of the network using ggplot2 and ggrepel label_size <- 3 - area_size <- 5 - edge_size <- 1 + area_size <- 4 + edge_size <- 0.75 annotation_size <- 6 network <- ggplot() @@ -238,6 +238,8 @@ plot_network <- function(log2FC_df, q_value=0.05) { size = label_size, color = "white" ) + + scale_fill_gradient2(low = "green", high = "magenta", mid = "black") + + # Add annotations geom_text( data = pathways, @@ -259,5 +261,5 @@ plot_network <- function(log2FC_df, q_value=0.05) { theme(plot.title = element_text(hjust = 0.5)) network - #ggsave("network.pdf", network, width = 15, height = 10, bg = "white") -} + #ggsave("network_cyanred_reduced.pdf", network, width = 15, height = 10, bg = "white") +} \ No newline at end of file diff --git a/network_green_magenta.pdf b/network_green_magenta.pdf new file mode 100644 index 0000000000000000000000000000000000000000..555947299198505e054efc2d206874beebe77b00 GIT binary patch literal 46844 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 z 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 A3;+NC literal 0 HcmV?d00001 From 279cc32721caee0ef7d560f169d0a44a17176ac6 Mon Sep 17 00:00:00 2001 From: Luis Herfurth Date: Tue, 23 Jan 2024 15:30:36 +0100 Subject: [PATCH 2/7] changes --- inst/extdata/polarity.csv | 18 +++++++++--------- vignettes/MetAlyzer_User_Guide.Rmd | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/inst/extdata/polarity.csv b/inst/extdata/polarity.csv index 2584d7b..c922f0f 100644 --- a/inst/extdata/polarity.csv +++ b/inst/extdata/polarity.csv @@ -22,12 +22,12 @@ "21","Sugars","FIA" "22","Triacylglycerols","FIA" "23","Vitamins & Cofactors","LC" -"24","Monoacylglycerols","LC" -"25","Phosphatidic Acids","LC" -"26","Phosphatidylcholines","LC" -"27","Phosphatidylethanolamines","LC" -"28","Phosphatidylglycerols","LC" -"29","Phosphatidylinositols","LC" -"30","Phosphatidylserines","LC" -"31","Sphingoid Bases","LC" -"32","Sphingomyelins","LC" +"24","Monoacylglycerols","FIA" +"25","Phosphatidic Acids","FIA" +"26","Phosphatidylcholines","FIA" +"27","Phosphatidylethanolamines","FIA" +"28","Phosphatidylglycerols","FIA" +"29","Phosphatidylinositols","FIA" +"30","Phosphatidylserines","FIA" +"31","Sphingoid Bases","FIA" +"32","Sphingomyelins","FIA" diff --git a/vignettes/MetAlyzer_User_Guide.Rmd b/vignettes/MetAlyzer_User_Guide.Rmd index 6ffdc4f..d636219 100755 --- a/vignettes/MetAlyzer_User_Guide.Rmd +++ b/vignettes/MetAlyzer_User_Guide.Rmd @@ -167,7 +167,7 @@ Next we can calculate the log2 Fold Change between the extraction methods for ea ```{r calculate_log2FC} MetAlyzer_proj <- filterMetaData(MetAlyzer_proj, Method %in% 3:6) -log2FC_df <- calculate_log2FC(MetAlyzer_proj, Method, perc_of_min = 0.2, impute_NA = TRUE) +log2FC_df <- calculate_log2FC(MetAlyzer_proj, Method, impute_perc_of_min = 0.2, impute_NA = TRUE) ``` Here we can see the functions calculates between the third and fourth method after filtering out the first and second method and dropping the methods 5 & 6. From 403b5477dcc3e8f5c88d6f172be241d35662a602 Mon Sep 17 00:00:00 2001 From: Luis Herfurth Date: Tue, 23 Jan 2024 15:45:25 +0100 Subject: [PATCH 3/7] changed y-axis limits plot_log2FC --- R/plot_network.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/plot_network.R b/R/plot_network.R index 1514d1d..52b6495 100644 --- a/R/plot_network.R +++ b/R/plot_network.R @@ -218,7 +218,7 @@ plot_network <- function(metalyzer_se, q_value=0.05) { # ylim(0, 10) + theme_void() + # Add a title and remove the x and y axis labels - ggtitle("Example Network Plot with Colored Area Behind Curved Edges") + + ggtitle("") + theme(plot.title = element_text(hjust = 0.5)) network From 22487fd49a6743f43bd6efcb37f48d03f83fea10 Mon Sep 17 00:00:00 2001 From: Luis Herfurth Date: Tue, 23 Jan 2024 15:48:29 +0100 Subject: [PATCH 4/7] fixed filtering --- R/MetAlyzer_handler.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/MetAlyzer_handler.R b/R/MetAlyzer_handler.R index 48ed96d..973041d 100644 --- a/R/MetAlyzer_handler.R +++ b/R/MetAlyzer_handler.R @@ -408,7 +408,7 @@ filterMetabolites <- function(metalyzer_se, } # Get all metabolites with at least one concentration being NA - if (!is.null(drop_NA_concentration)) { + if (drop_NA_concentration) { conc_values <- SummarizedExperiment::assay( metalyzer_se, "conc_values" ) From b6ba45161b7f5fdcb49881e70b5897f9a0f20a1d Mon Sep 17 00:00:00 2001 From: Luis Herfurth Date: Tue, 23 Jan 2024 16:33:27 +0100 Subject: [PATCH 5/7] RCMD fix -Funktion automatisch falschem package --- R/calculate_anova.R | 2 +- R/plot_log2FC.R | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/R/calculate_anova.R b/R/calculate_anova.R index 00e5b0e..84b65ee 100755 --- a/R/calculate_anova.R +++ b/R/calculate_anova.R @@ -82,7 +82,7 @@ calculate_anova <- function(metalyzer_se, categorical, groups = NULL, impute_per mutate(ANOVA_n = sum(!is.na(.data$log2_Conc))) anova_data <- aggregated_data %>% - rename(Categorical = all_of(categorical)) %>% + dplyr::rename(Categorical = all_of(categorical)) %>% ungroup(.data$Categorical) cat(paste0("Info: Calculating ANOVA (groupwise: ", paste(groups(anova_data), collapse = " * "), ")... ")) diff --git a/R/plot_log2FC.R b/R/plot_log2FC.R index e11d9c9..18c985c 100644 --- a/R/plot_log2FC.R +++ b/R/plot_log2FC.R @@ -188,6 +188,9 @@ plot_log2FC <- function(metalyzer_se, select(.data$x) %>% max() + # Create y-axis limits for the rectangles + ylims <- c(min(Log2FCTab$log2FC) - 0.75, max(Log2FCTab$log2FC) + 0,75) + ## Plot graph p_fc <- ggplot(p_data, aes(x = .data$x, @@ -197,7 +200,7 @@ plot_log2FC <- function(metalyzer_se, geom_rect(data = rects_df, inherit.aes = FALSE, aes(xmin = .data$Start, xmax = .data$End, - ymin = -Inf, ymax = Inf, + ymin = ylims[1], ymax = ylims[2], fill = .data$Class), show.legend = TRUE, alpha = 0.4) + From dcbef97e608d9ae9c4b935ce63f9076a05e153ea Mon Sep 17 00:00:00 2001 From: Luis Herfurth Date: Tue, 23 Jan 2024 16:47:46 +0100 Subject: [PATCH 6/7] name fix --- R/plot_log2FC.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/plot_log2FC.R b/R/plot_log2FC.R index 18c985c..cf502c5 100644 --- a/R/plot_log2FC.R +++ b/R/plot_log2FC.R @@ -189,7 +189,7 @@ plot_log2FC <- function(metalyzer_se, max() # Create y-axis limits for the rectangles - ylims <- c(min(Log2FCTab$log2FC) - 0.75, max(Log2FCTab$log2FC) + 0,75) + ylims <- c(min(log2FC_df$log2FC) - 0.75, max(log2FC_df$log2FC) + 0,75) ## Plot graph p_fc <- ggplot(p_data, From 058863fb666e37e69b3cac39d558f1e39e382cf2 Mon Sep 17 00:00:00 2001 From: Luis Herfurth Date: Wed, 24 Jan 2024 13:43:25 +0100 Subject: [PATCH 7/7] align code and comment --- vignettes/MetAlyzer_User_Guide.Rmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vignettes/MetAlyzer_User_Guide.Rmd b/vignettes/MetAlyzer_User_Guide.Rmd index 651ddb3..a66219e 100755 --- a/vignettes/MetAlyzer_User_Guide.Rmd +++ b/vignettes/MetAlyzer_User_Guide.Rmd @@ -189,7 +189,7 @@ metalyzer_se <- calculate_anova( categorical = "Extraction_Method", groups = c("Tissue", "Metabolite"), impute_perc_of_min = 0.2, - impute_NA = FALSE + impute_NA = TRUE ) aggregated_data <- aggregatedData(metalyzer_se) %>%