From bb263a2a5f49cd633c361959d0835ffdf5e6ddd5 Mon Sep 17 00:00:00 2001 From: phoman14 Date: Mon, 29 Jun 2026 15:05:29 -0400 Subject: [PATCH 01/10] Update boolean parameters to TRUE/FALSE list options --- .codeocean/app-panel.json | 42 ++++++++++++++++++++++++++++----------- 1 file changed, 30 insertions(+), 12 deletions(-) diff --git a/.codeocean/app-panel.json b/.codeocean/app-panel.json index 7ec24e6..448a380 100644 --- a/.codeocean/app-panel.json +++ b/.codeocean/app-panel.json @@ -73,10 +73,13 @@ "name": "Input already log2", "param_name": "input_in_log_counts", "description": "Set TRUE if counts are already log2-transformed", - "type": "text", + "type": "list", "value_type": "string", "default_value": "FALSE", - "pattern": "TRUE|FALSE|T|F" + "extra_data": [ + "TRUE", + "FALSE" + ] }, { "id": "vD6sPpTzNv1qCw4f", @@ -154,10 +157,13 @@ "name": "Add labels to PCA", "param_name": "add_label_to_pca", "description": "Label points on the PCA plot", - "type": "text", + "type": "list", "value_type": "string", "default_value": "TRUE", - "pattern": "TRUE|FALSE|T|F" + "extra_data": [ + "TRUE", + "FALSE" + ] }, { "id": "vL4aXxBhVd9yKe2n", @@ -235,10 +241,13 @@ "name": "Color histogram by group", "param_name": "color_histogram_by_group", "description": "Color histogram by group instead of sample", - "type": "text", + "type": "list", "value_type": "string", "default_value": "TRUE", - "pattern": "TRUE|FALSE|T|F" + "extra_data": [ + "TRUE", + "FALSE" + ] }, { "id": "vT2iFfJpDl7gSm0v", @@ -246,10 +255,13 @@ "name": "Set histogram x-axis min/max", "param_name": "set_min_max_for_x_axis_for_histogram", "description": "Set min/max value for histogram x-axis", - "type": "text", + "type": "list", "value_type": "string", "default_value": "FALSE", - "pattern": "TRUE|FALSE|T|F" + "extra_data": [ + "TRUE", + "FALSE" + ] }, { "id": "vU3jGgKqEm8hTn1w", @@ -308,10 +320,13 @@ "param_name": "plot_corr_matrix_heatmap", "description": "Create a correlation matrix heatmap for sample similarity", "help_text": "Set to FALSE for datasets with many samples to avoid long run times", - "type": "text", + "type": "list", "value_type": "string", "default_value": "TRUE", - "pattern": "TRUE|FALSE|T|F" + "extra_data": [ + "TRUE", + "FALSE" + ] }, { "id": "wA9pMmQwKs4nZt7c", @@ -320,10 +335,13 @@ "param_name": "interactive_plots", "description": "Create interactive plots with plotly (PCA and histogram)", "help_text": "Interactive plots allow hovering to view sample information, but correlation heatmap will not display", - "type": "text", + "type": "list", "value_type": "string", "default_value": "FALSE", - "pattern": "TRUE|FALSE|T|F" + "extra_data": [ + "TRUE", + "FALSE" + ] } ], "results": [ From 9924f5a2bc18e1cae20b38016412d843625f2420 Mon Sep 17 00:00:00 2001 From: phoman14 Date: Mon, 29 Jun 2026 18:00:47 -0400 Subject: [PATCH 02/10] Move count_type to first position in Basic category --- .codeocean/app-panel.json | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/.codeocean/app-panel.json b/.codeocean/app-panel.json index 448a380..fad6b45 100644 --- a/.codeocean/app-panel.json +++ b/.codeocean/app-panel.json @@ -16,36 +16,41 @@ "id": "gDLmTU36PrmD13RK", "name": "Input Data Parameters", "description": "Options for defining input data", - "icon": "📁" + "icon": "\ud83d\udcc1" }, { "id": "gn9FXwemlVazWQIo", "name": "Basic", - "icon": "📂" + "icon": "\ud83d\udcc2" }, { "id": "XqgPq28Eo5VCFSZu", "name": "Advanced", "description": "Advanced parameters", - "icon": "📂" + "icon": "\ud83d\udcc2" }, { "id": "uQ7pLsNmVtR2cX9b", "name": "Visualization", "description": "Visualization and plotting options", - "icon": "📊" + "icon": "\ud83d\udcca" } ], "parameters": [ { "id": "UA4GuIpVAxdcmHAG", - "category": "XqgPq28Eo5VCFSZu", + "category": "gn9FXwemlVazWQIo", "name": "Count type", "param_name": "count_type", "description": "Type of counts to normalize. Must be a count type in names(moo@counts)", - "type": "text", + "type": "list", "value_type": "string", - "default_value": "filt" + "default_value": "filt", + "extra_data": [ + "raw", + "clean", + "filt" + ] }, { "id": "vA3pMmQwKs8nZx1c", @@ -355,4 +360,4 @@ "file_name": "figures/norm/voom/pca.png" } ] -} \ No newline at end of file +} From d966a4bac0910aff1d7dbcd849166dc8c405212b Mon Sep 17 00:00:00 2001 From: phoman14 Date: Mon, 29 Jun 2026 18:14:47 -0400 Subject: [PATCH 03/10] Update norm_type to list with voom option (default: voom) --- .codeocean/app-panel.json | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.codeocean/app-panel.json b/.codeocean/app-panel.json index fad6b45..03478f0 100644 --- a/.codeocean/app-panel.json +++ b/.codeocean/app-panel.json @@ -58,9 +58,12 @@ "name": "Normalization type", "param_name": "norm_type", "description": "Normalization type (default: voom)", - "type": "text", + "type": "list", "value_type": "string", - "default_value": "voom" + "default_value": "voom", + "extra_data": [ + "voom" + ] }, { "id": "vB4qNnRxLt9oAy2d", From 326eebd7b077c7fce5d868982ce0a59e2801d52c Mon Sep 17 00:00:00 2001 From: phoman14 Date: Mon, 29 Jun 2026 18:18:15 -0400 Subject: [PATCH 04/10] Update voom_normalization_method to list with none, scale, quantile, cyclicloess (default: quantile) --- .codeocean/app-panel.json | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.codeocean/app-panel.json b/.codeocean/app-panel.json index 03478f0..fbcc3a3 100644 --- a/.codeocean/app-panel.json +++ b/.codeocean/app-panel.json @@ -95,9 +95,15 @@ "name": "Voom normalization method", "param_name": "voom_normalization_method", "description": "Normalization method for limma::voom", - "type": "text", + "type": "list", "value_type": "string", - "default_value": "quantile" + "default_value": "quantile", + "extra_data": [ + "none", + "scale", + "quantile", + "cyclicloess" + ] }, { "id": "vE7tQqUaOw2rDx5g", From 1cfda17a19ac15e3c0688a906f6c51055bb9292d Mon Sep 17 00:00:00 2001 From: phoman14 Date: Mon, 29 Jun 2026 18:20:53 -0400 Subject: [PATCH 05/10] Update legend_position parameter(s) to list with top, bottom, left, right options --- .codeocean/app-panel.json | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/.codeocean/app-panel.json b/.codeocean/app-panel.json index fbcc3a3..8f86010 100644 --- a/.codeocean/app-panel.json +++ b/.codeocean/app-panel.json @@ -205,9 +205,15 @@ "name": "Legend position for PCA", "param_name": "legend_position_for_pca", "description": "Legend position for the PCA plot", - "type": "text", + "type": "list", "value_type": "string", - "default_value": "top" + "default_value": "top", + "extra_data": [ + "top", + "bottom", + "left", + "right" + ] }, { "id": "vO7dAaEkYg2bNh5q", @@ -313,9 +319,15 @@ "name": "Legend position for histogram", "param_name": "legend_position_for_histogram", "description": "Legend position for histogram plot", - "type": "text", + "type": "list", "value_type": "string", - "default_value": "top" + "default_value": "top", + "extra_data": [ + "top", + "bottom", + "left", + "right" + ] }, { "id": "vY7nKkOuIq2lXr5a", From 27888ab21e346c23fbf85ace71ff21b50aeb93c3 Mon Sep 17 00:00:00 2001 From: phoman14 Date: Mon, 29 Jun 2026 19:13:01 -0400 Subject: [PATCH 06/10] Match PCA point size default to filter capsule --- .codeocean/app-panel.json | 2 +- code/main.R | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.codeocean/app-panel.json b/.codeocean/app-panel.json index 8f86010..fd6e8cc 100644 --- a/.codeocean/app-panel.json +++ b/.codeocean/app-panel.json @@ -253,7 +253,7 @@ "description": "Point size for the PCA plot", "type": "text", "value_type": "number", - "default_value": "8" + "default_value": "1" }, { "id": "vS1hEeIoCk6fRl9u", diff --git a/code/main.R b/code/main.R index 143626c..b663d3a 100644 --- a/code/main.R +++ b/code/main.R @@ -107,7 +107,7 @@ parser$add_argument( parser$add_argument( "--point_size_for_pca", type = "double", - default = 8, + default = 1, help = "Point size for PCA plot" ) parser$add_argument( From 3ccbf5c0905918379996f81ef4fdae24f126e42b Mon Sep 17 00:00:00 2001 From: phoman14 Date: Mon, 29 Jun 2026 23:37:51 -0400 Subject: [PATCH 07/10] Split visualization parameters by plot type --- .codeocean/app-panel.json | 64 +++++++++++++++++++++++++-------------- 1 file changed, 41 insertions(+), 23 deletions(-) diff --git a/.codeocean/app-panel.json b/.codeocean/app-panel.json index fd6e8cc..b1a9e96 100644 --- a/.codeocean/app-panel.json +++ b/.codeocean/app-panel.json @@ -30,9 +30,27 @@ "icon": "\ud83d\udcc2" }, { - "id": "uQ7pLsNmVtR2cX9b", - "name": "Visualization", - "description": "Visualization and plotting options", + "id": "VisGeneral", + "name": "Visualization: General", + "description": "General visualization and plotting options", + "icon": "\ud83d\udcca" + }, + { + "id": "VisPCA", + "name": "Visualization: PCA", + "description": "PCA plot options", + "icon": "\ud83d\udcca" + }, + { + "id": "VisHistogram", + "name": "Visualization: Histogram", + "description": "Histogram plot options", + "icon": "\ud83d\udcca" + }, + { + "id": "VisHeatmap", + "name": "Visualization: Heatmap", + "description": "Heatmap plot options", "icon": "\ud83d\udcca" } ], @@ -127,7 +145,7 @@ }, { "id": "vG9vSsWcQy4tFz7i", - "category": "XqgPq28Eo5VCFSZu", + "category": "VisGeneral", "name": "Label column name", "param_name": "label_colname", "description": "Column from sample metadata containing labels for plots", @@ -147,7 +165,7 @@ }, { "id": "vI1xUuYeSa6vHb9k", - "category": "XqgPq28Eo5VCFSZu", + "category": "VisPCA", "name": "Samples to rename", "param_name": "samples_to_rename", "description": "Sample renaming pairs: old_name:new_name", @@ -157,7 +175,7 @@ }, { "id": "vJ2yVvZfTb7wIc0l", - "category": "XqgPq28Eo5VCFSZu", + "category": "VisGeneral", "name": "Colors for plots", "param_name": "colors_for_plots", "description": "Comma-separated list of colors for PCA and histogram", @@ -167,7 +185,7 @@ }, { "id": "vK3zWwAgUc8xJd1m", - "category": "uQ7pLsNmVtR2cX9b", + "category": "VisPCA", "name": "Add labels to PCA", "param_name": "add_label_to_pca", "description": "Label points on the PCA plot", @@ -181,7 +199,7 @@ }, { "id": "vL4aXxBhVd9yKe2n", - "category": "uQ7pLsNmVtR2cX9b", + "category": "VisPCA", "name": "PCA component on x-axis", "param_name": "principal_component_on_x_axis", "description": "Principal component to plot on the x-axis", @@ -191,7 +209,7 @@ }, { "id": "vM5bYyCiWe0zLf3o", - "category": "uQ7pLsNmVtR2cX9b", + "category": "VisPCA", "name": "PCA component on y-axis", "param_name": "principal_component_on_y_axis", "description": "Principal component to plot on the y-axis", @@ -201,7 +219,7 @@ }, { "id": "vN6cZzDjXf1aMg4p", - "category": "uQ7pLsNmVtR2cX9b", + "category": "VisPCA", "name": "Legend position for PCA", "param_name": "legend_position_for_pca", "description": "Legend position for the PCA plot", @@ -217,7 +235,7 @@ }, { "id": "vO7dAaEkYg2bNh5q", - "category": "uQ7pLsNmVtR2cX9b", + "category": "VisPCA", "name": "Label offset x", "param_name": "label_offset_x_", "description": "Label offset x for the PCA plot", @@ -227,7 +245,7 @@ }, { "id": "vP8eBbFlZh3cOi6r", - "category": "uQ7pLsNmVtR2cX9b", + "category": "VisPCA", "name": "Label offset y", "param_name": "label_offset_y_", "description": "Label offset y for the PCA plot", @@ -237,7 +255,7 @@ }, { "id": "vQ9fCcGmAi4dPj7s", - "category": "uQ7pLsNmVtR2cX9b", + "category": "VisPCA", "name": "Label font size", "param_name": "label_font_size", "description": "Label font size for the PCA plot", @@ -247,7 +265,7 @@ }, { "id": "vR0gDdHnBj5eQk8t", - "category": "uQ7pLsNmVtR2cX9b", + "category": "VisPCA", "name": "Point size for PCA", "param_name": "point_size_for_pca", "description": "Point size for the PCA plot", @@ -257,7 +275,7 @@ }, { "id": "vS1hEeIoCk6fRl9u", - "category": "uQ7pLsNmVtR2cX9b", + "category": "VisHistogram", "name": "Color histogram by group", "param_name": "color_histogram_by_group", "description": "Color histogram by group instead of sample", @@ -271,7 +289,7 @@ }, { "id": "vT2iFfJpDl7gSm0v", - "category": "uQ7pLsNmVtR2cX9b", + "category": "VisHistogram", "name": "Set histogram x-axis min/max", "param_name": "set_min_max_for_x_axis_for_histogram", "description": "Set min/max value for histogram x-axis", @@ -285,7 +303,7 @@ }, { "id": "vU3jGgKqEm8hTn1w", - "category": "uQ7pLsNmVtR2cX9b", + "category": "VisHistogram", "name": "Histogram x-axis minimum", "param_name": "minimum_for_x_axis_for_histogram", "description": "x-axis minimum for histogram plot", @@ -295,7 +313,7 @@ }, { "id": "vV4kHhLrFn9iUo2x", - "category": "uQ7pLsNmVtR2cX9b", + "category": "VisHistogram", "name": "Histogram x-axis maximum", "param_name": "maximum_for_x_axis_for_histogram", "description": "x-axis maximum for histogram plot", @@ -305,7 +323,7 @@ }, { "id": "vW5lIiMsGo0jVp3y", - "category": "uQ7pLsNmVtR2cX9b", + "category": "VisHistogram", "name": "Legend font size for histogram", "param_name": "legend_font_size_for_histogram", "description": "Legend font size for histogram plot", @@ -315,7 +333,7 @@ }, { "id": "vX6mJjNtHp1kWq4z", - "category": "uQ7pLsNmVtR2cX9b", + "category": "VisHistogram", "name": "Legend position for histogram", "param_name": "legend_position_for_histogram", "description": "Legend position for histogram plot", @@ -331,7 +349,7 @@ }, { "id": "vY7nKkOuIq2lXr5a", - "category": "uQ7pLsNmVtR2cX9b", + "category": "VisHistogram", "name": "Histogram legend columns", "param_name": "number_of_histogram_legend_columns", "description": "Number of columns for the histogram legend", @@ -341,7 +359,7 @@ }, { "id": "vZ8oLlPvJr3mYs6b", - "category": "uQ7pLsNmVtR2cX9b", + "category": "VisGeneral", "name": "Plot correlation heatmap", "param_name": "plot_corr_matrix_heatmap", "description": "Create a correlation matrix heatmap for sample similarity", @@ -356,7 +374,7 @@ }, { "id": "wA9pMmQwKs4nZt7c", - "category": "uQ7pLsNmVtR2cX9b", + "category": "VisGeneral", "name": "Interactive plots", "param_name": "interactive_plots", "description": "Create interactive plots with plotly (PCA and histogram)", From 3f5ad49c01c6f2bc54db8728b1e302abb2df394e Mon Sep 17 00:00:00 2001 From: phoman14 Date: Tue, 30 Jun 2026 00:28:34 -0400 Subject: [PATCH 08/10] Move Advanced category to end --- .codeocean/app-panel.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.codeocean/app-panel.json b/.codeocean/app-panel.json index b1a9e96..9c72929 100644 --- a/.codeocean/app-panel.json +++ b/.codeocean/app-panel.json @@ -23,12 +23,6 @@ "name": "Basic", "icon": "\ud83d\udcc2" }, - { - "id": "XqgPq28Eo5VCFSZu", - "name": "Advanced", - "description": "Advanced parameters", - "icon": "\ud83d\udcc2" - }, { "id": "VisGeneral", "name": "Visualization: General", @@ -52,6 +46,12 @@ "name": "Visualization: Heatmap", "description": "Heatmap plot options", "icon": "\ud83d\udcca" + }, + { + "id": "XqgPq28Eo5VCFSZu", + "name": "Advanced", + "description": "Advanced parameters", + "icon": "\ud83d\udcc2" } ], "parameters": [ From f9cb0c4e3dd78400ee943d5e29648ccc97fb8bcc Mon Sep 17 00:00:00 2001 From: phoman14 Date: Tue, 30 Jun 2026 02:17:07 -0400 Subject: [PATCH 09/10] Move normalization type before method --- .codeocean/app-panel.json | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/.codeocean/app-panel.json b/.codeocean/app-panel.json index 9c72929..1e8cf6e 100644 --- a/.codeocean/app-panel.json +++ b/.codeocean/app-panel.json @@ -70,19 +70,6 @@ "filt" ] }, - { - "id": "vA3pMmQwKs8nZx1c", - "category": "gn9FXwemlVazWQIo", - "name": "Normalization type", - "param_name": "norm_type", - "description": "Normalization type (default: voom)", - "type": "list", - "value_type": "string", - "default_value": "voom", - "extra_data": [ - "voom" - ] - }, { "id": "vB4qNnRxLt9oAy2d", "category": "gn9FXwemlVazWQIo", @@ -107,6 +94,19 @@ "FALSE" ] }, + { + "id": "vA3pMmQwKs8nZx1c", + "category": "gn9FXwemlVazWQIo", + "name": "Normalization type", + "param_name": "norm_type", + "description": "Normalization type (default: voom)", + "type": "list", + "value_type": "string", + "default_value": "voom", + "extra_data": [ + "voom" + ] + }, { "id": "vD6sPpTzNv1qCw4f", "category": "gn9FXwemlVazWQIo", From 00b40a3a28d898453e5c2c825448bb0342bfcb11 Mon Sep 17 00:00:00 2001 From: "Kelly Sovacool, PhD" Date: Tue, 30 Jun 2026 11:09:00 -0400 Subject: [PATCH 10/10] docs: update changelog --- CHANGELOG.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1e4f97d..e66261a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Code Ocean capsule - MOSuite - normalize counts +## development version + +- Improve the Code Ocean app panel parameter selection and categories. (#3, @phoman14) + ## v3.0 - Use the MOSuite v0.3.0 docker image. @@ -16,4 +20,4 @@ Initial release - `6af2299` \ No newline at end of file + `6af2299`