From 076f0465163f79d289cc3ffcaa92f97e6668592b Mon Sep 17 00:00:00 2001 From: Thomas Rauter Date: Thu, 19 Sep 2024 15:35:03 +0200 Subject: [PATCH] now build pkdown website --- README.Rmd | 2 +- README.md | 2 +- docs/404.html | 20 +- docs/CODE_OF_CONDUCT.html | 21 +- docs/LICENSE-text.html | 21 +- docs/apple-touch-icon-120x120.png | Bin 0 -> 10626 bytes docs/apple-touch-icon-152x152.png | Bin 0 -> 15392 bytes docs/apple-touch-icon-180x180.png | Bin 0 -> 20080 bytes docs/apple-touch-icon-60x60.png | Bin 0 -> 3802 bytes docs/apple-touch-icon-76x76.png | Bin 0 -> 5392 bytes docs/apple-touch-icon.png | Bin 0 -> 20080 bytes docs/articles/Docker-instructions.html | 237 +++++ docs/articles/Docker_permission_denied.html | 29 +- .../articles/design_limma_design_formula.html | 273 ++++++ docs/articles/get-started.html | 884 ++++++++++------- docs/articles/index.html | 27 +- docs/authors.html | 29 +- docs/example_report.html | 74 -- docs/favicon-16x16.png | Bin 0 -> 965 bytes docs/favicon-32x32.png | Bin 0 -> 1691 bytes docs/favicon.ico | Bin 0 -> 15086 bytes docs/get-started.html | 813 ---------------- docs/index.html | 293 +++--- docs/pkgdown.yml | 8 +- docs/reference/InputControl.html | 893 ++++++++++++++++++ docs/reference/Level2Functions.html | 439 +++++++++ docs/reference/Level3Functions.html | 245 +++++ docs/reference/Level4Functions.html | 157 +++ docs/reference/NumericBlockFinder.html | 190 ++++ docs/reference/SplineOmics-package.html | 209 ++++ docs/reference/add_feature_names.html | 131 +++ docs/reference/add_plot_to_html.html | 119 +++ docs/reference/ask_user.html | 109 +++ docs/reference/between_level.html | 161 ++++ docs/reference/bind_data_with_annotation.html | 115 +++ docs/reference/build_cluster_hits_report.html | 156 +++ docs/reference/build_create_gsea_report.html | 151 +++ docs/reference/build_create_limma_report.html | 140 +++ docs/reference/build_explore_data_report.html | 136 +++ .../build_hyperparams_screen_report.html | 136 +++ .../check_between_level_pattern.html | 126 +++ docs/reference/check_clustered_hits.html | 115 +++ docs/reference/check_databases.html | 110 +++ docs/reference/check_genes.html | 116 +++ docs/reference/check_null_elements.html | 112 +++ docs/reference/check_params.html | 120 +++ .../reference/check_splineomics_elements.html | 114 +++ docs/reference/clean_gene_symbols.html | 113 +++ docs/reference/cluster_hits.html | 201 ++++ .../control_inputs_create_gsea_report.html | 127 +++ .../control_inputs_extract_data.html | 123 +++ docs/reference/create_enrichr_zip.html | 118 +++ docs/reference/create_gsea_report_level.html | 142 +++ docs/reference/create_limma_report.html | 138 +++ docs/reference/create_p_value_histogram.html | 121 +++ docs/reference/create_progress_bar.html | 115 +++ docs/reference/create_spline_params.html | 127 +++ docs/reference/create_splineomics.html | 203 ++++ docs/reference/create_toc.html | 97 ++ docs/reference/create_volcano_plot.html | 117 +++ docs/reference/dbs_to_term2genes.html | 121 +++ docs/reference/define_html_styles.html | 99 ++ docs/reference/design2design_matrix.html | 126 +++ docs/reference/determine_analysis_mode.html | 119 +++ .../reference/download_enrichr_databases.html | 118 +++ docs/reference/encode_df_to_base64.html | 117 +++ docs/reference/enrichr_get_genesets.html | 112 +++ docs/reference/ensure_clusterProfiler.html | 99 ++ docs/reference/explore_data.html | 122 +++ docs/reference/extract_data.html | 127 +++ .../SplineOmics_graphical_abstract.png | Bin 0 -> 373029 bytes docs/reference/figures/hex_logo.png | Bin 86502 -> 204349 bytes docs/reference/flatten_spline_configs.html | 105 ++ docs/reference/format_text.html | 113 +++ .../reference/gen_composite_spline_plots.html | 138 +++ docs/reference/gen_hitcomp_plots.html | 113 +++ docs/reference/generate_and_write_html.html | 120 +++ docs/reference/generate_avrg_diff_plots.html | 116 +++ docs/reference/generate_explore_plots.html | 125 +++ .../reference/generate_interaction_plots.html | 117 +++ docs/reference/generate_report_html.html | 212 +++++ docs/reference/generate_reports.html | 117 +++ docs/reference/generate_reports_meta.html | 134 +++ docs/reference/generate_section_content.html | 134 +++ .../reference/generate_time_effect_plots.html | 114 +++ docs/reference/get_curve_values.html | 143 +++ .../get_explore_plots_explanations.html | 107 +++ docs/reference/get_header_section.html | 134 +++ docs/reference/get_level_hit_indices.html | 127 +++ docs/reference/get_limma_combos_results.html | 151 +++ docs/reference/get_spline_params_info.html | 126 +++ docs/reference/hc_add.html | 123 +++ docs/reference/hc_barplot.html | 112 +++ docs/reference/hc_new.html | 112 +++ docs/reference/hc_vennheatmap.html | 112 +++ docs/reference/hierarchical_clustering.html | 127 +++ docs/reference/huge_table_user_prompter.html | 110 +++ docs/reference/index.html | 587 ++++++++++++ docs/reference/is_not_na.html | 106 +++ docs/reference/make_clustering_report.html | 218 +++++ docs/reference/make_correlation_heatmaps.html | 122 +++ docs/reference/make_density_plots.html | 115 +++ docs/reference/make_enrich_dotplot.html | 125 +++ docs/reference/make_mds_plot.html | 118 +++ docs/reference/make_pca_plot.html | 116 +++ docs/reference/make_violin_box_plots.html | 117 +++ docs/reference/manage_gsea_level.html | 131 +++ ...erge_annotation_all_levels_clustering.html | 113 +++ .../merge_top_table_with_annotation.html | 111 +++ docs/reference/modify_limma_top_table.html | 109 +++ docs/reference/normalize_curves.html | 119 +++ docs/reference/open_template.html | 97 ++ docs/reference/open_tutorial.html | 95 ++ docs/reference/perform_clustering.html | 133 +++ docs/reference/plot2base64.html | 143 +++ docs/reference/plot_all_mean_splines.html | 119 +++ docs/reference/plot_cluster_mean_splines.html | 123 +++ docs/reference/plot_composite_splines.html | 153 +++ docs/reference/plot_cv.html | 128 +++ docs/reference/plot_dendrogram.html | 116 +++ .../plot_first_lag_autocorrelation.html | 128 +++ docs/reference/plot_heatmap.html | 142 +++ docs/reference/plot_lag1_differences.html | 128 +++ docs/reference/plot_limma_combos_results.html | 149 +++ .../plot_mean_correlation_with_time.html | 124 +++ .../plot_single_and_mean_splines.html | 126 +++ docs/reference/plot_splines.html | 159 ++++ .../prepare_gene_lists_for_enrichr.html | 114 +++ docs/reference/prepare_plot_data.html | 120 +++ docs/reference/preprocess_rna_seq_data.html | 124 +++ docs/reference/print_info_message.html | 105 ++ docs/reference/process_combo.html | 176 ++++ docs/reference/process_combo_pair.html | 134 +++ docs/reference/process_config_column.html | 121 +++ .../reference/process_enrichment_results.html | 134 +++ docs/reference/process_field.html | 149 +++ docs/reference/process_level_cluster.html | 146 +++ docs/reference/process_plots.html | 133 +++ docs/reference/process_result.html | 125 +++ docs/reference/process_top_table.html | 118 +++ docs/reference/process_within_level.html | 152 +++ docs/reference/read_section_texts.html | 112 +++ docs/reference/remove_batch_effect.html | 136 +++ .../remove_batch_effect_cluster_hits.html | 164 ++++ docs/reference/remove_prefix.html | 111 +++ docs/reference/run_gsea.html | 145 +++ docs/reference/run_limma_splines.html | 131 +++ docs/reference/screen_limma_hyperparams.html | 182 ++++ docs/reference/set_default_params.html | 113 +++ docs/reference/shorten_names.html | 114 +++ docs/reference/store_hits.html | 109 +++ docs/reference/truncate_row_names.html | 114 +++ docs/reference/update_splineomics.html | 109 +++ docs/reference/within_level.html | 170 ++++ docs/sitemap.xml | 517 +++------- vignettes/Docker_permission_denied.Rmd | 2 +- 156 files changed, 19630 insertions(+), 1797 deletions(-) create mode 100755 docs/apple-touch-icon-120x120.png create mode 100755 docs/apple-touch-icon-152x152.png create mode 100755 docs/apple-touch-icon-180x180.png create mode 100755 docs/apple-touch-icon-60x60.png create mode 100755 docs/apple-touch-icon-76x76.png create mode 100755 docs/apple-touch-icon.png create mode 100644 docs/articles/Docker-instructions.html create mode 100644 docs/articles/design_limma_design_formula.html delete mode 100755 docs/example_report.html create mode 100755 docs/favicon-16x16.png create mode 100755 docs/favicon-32x32.png create mode 100755 docs/favicon.ico delete mode 100755 docs/get-started.html create mode 100644 docs/reference/InputControl.html create mode 100644 docs/reference/Level2Functions.html create mode 100644 docs/reference/Level3Functions.html create mode 100644 docs/reference/Level4Functions.html create mode 100644 docs/reference/NumericBlockFinder.html create mode 100644 docs/reference/SplineOmics-package.html create mode 100644 docs/reference/add_feature_names.html create mode 100644 docs/reference/add_plot_to_html.html create mode 100644 docs/reference/ask_user.html create mode 100644 docs/reference/between_level.html create mode 100644 docs/reference/bind_data_with_annotation.html create mode 100644 docs/reference/build_cluster_hits_report.html create mode 100644 docs/reference/build_create_gsea_report.html create mode 100644 docs/reference/build_create_limma_report.html create mode 100644 docs/reference/build_explore_data_report.html create mode 100644 docs/reference/build_hyperparams_screen_report.html create mode 100644 docs/reference/check_between_level_pattern.html create mode 100644 docs/reference/check_clustered_hits.html create mode 100644 docs/reference/check_databases.html create mode 100644 docs/reference/check_genes.html create mode 100644 docs/reference/check_null_elements.html create mode 100644 docs/reference/check_params.html create mode 100644 docs/reference/check_splineomics_elements.html create mode 100644 docs/reference/clean_gene_symbols.html create mode 100644 docs/reference/cluster_hits.html create mode 100644 docs/reference/control_inputs_create_gsea_report.html create mode 100644 docs/reference/control_inputs_extract_data.html create mode 100644 docs/reference/create_enrichr_zip.html create mode 100644 docs/reference/create_gsea_report_level.html create mode 100644 docs/reference/create_limma_report.html create mode 100644 docs/reference/create_p_value_histogram.html create mode 100644 docs/reference/create_progress_bar.html create mode 100644 docs/reference/create_spline_params.html create mode 100644 docs/reference/create_splineomics.html create mode 100644 docs/reference/create_toc.html create mode 100644 docs/reference/create_volcano_plot.html create mode 100644 docs/reference/dbs_to_term2genes.html create mode 100644 docs/reference/define_html_styles.html create mode 100644 docs/reference/design2design_matrix.html create mode 100644 docs/reference/determine_analysis_mode.html create mode 100644 docs/reference/download_enrichr_databases.html create mode 100644 docs/reference/encode_df_to_base64.html create mode 100644 docs/reference/enrichr_get_genesets.html create mode 100644 docs/reference/ensure_clusterProfiler.html create mode 100644 docs/reference/explore_data.html create mode 100644 docs/reference/extract_data.html create mode 100755 docs/reference/figures/SplineOmics_graphical_abstract.png create mode 100644 docs/reference/flatten_spline_configs.html create mode 100644 docs/reference/format_text.html create mode 100644 docs/reference/gen_composite_spline_plots.html create mode 100644 docs/reference/gen_hitcomp_plots.html create mode 100644 docs/reference/generate_and_write_html.html create mode 100644 docs/reference/generate_avrg_diff_plots.html create mode 100644 docs/reference/generate_explore_plots.html create mode 100644 docs/reference/generate_interaction_plots.html create mode 100644 docs/reference/generate_report_html.html create mode 100644 docs/reference/generate_reports.html create mode 100644 docs/reference/generate_reports_meta.html create mode 100644 docs/reference/generate_section_content.html create mode 100644 docs/reference/generate_time_effect_plots.html create mode 100644 docs/reference/get_curve_values.html create mode 100644 docs/reference/get_explore_plots_explanations.html create mode 100644 docs/reference/get_header_section.html create mode 100644 docs/reference/get_level_hit_indices.html create mode 100644 docs/reference/get_limma_combos_results.html create mode 100644 docs/reference/get_spline_params_info.html create mode 100644 docs/reference/hc_add.html create mode 100644 docs/reference/hc_barplot.html create mode 100644 docs/reference/hc_new.html create mode 100644 docs/reference/hc_vennheatmap.html create mode 100644 docs/reference/hierarchical_clustering.html create mode 100644 docs/reference/huge_table_user_prompter.html create mode 100644 docs/reference/index.html create mode 100644 docs/reference/is_not_na.html create mode 100644 docs/reference/make_clustering_report.html create mode 100644 docs/reference/make_correlation_heatmaps.html create mode 100644 docs/reference/make_density_plots.html create mode 100644 docs/reference/make_enrich_dotplot.html create mode 100644 docs/reference/make_mds_plot.html create mode 100644 docs/reference/make_pca_plot.html create mode 100644 docs/reference/make_violin_box_plots.html create mode 100644 docs/reference/manage_gsea_level.html create mode 100644 docs/reference/merge_annotation_all_levels_clustering.html create mode 100644 docs/reference/merge_top_table_with_annotation.html create mode 100644 docs/reference/modify_limma_top_table.html create mode 100644 docs/reference/normalize_curves.html create mode 100644 docs/reference/open_template.html create mode 100644 docs/reference/open_tutorial.html create mode 100644 docs/reference/perform_clustering.html create mode 100644 docs/reference/plot2base64.html create mode 100644 docs/reference/plot_all_mean_splines.html create mode 100644 docs/reference/plot_cluster_mean_splines.html create mode 100644 docs/reference/plot_composite_splines.html create mode 100644 docs/reference/plot_cv.html create mode 100644 docs/reference/plot_dendrogram.html create mode 100644 docs/reference/plot_first_lag_autocorrelation.html create mode 100644 docs/reference/plot_heatmap.html create mode 100644 docs/reference/plot_lag1_differences.html create mode 100644 docs/reference/plot_limma_combos_results.html create mode 100644 docs/reference/plot_mean_correlation_with_time.html create mode 100644 docs/reference/plot_single_and_mean_splines.html create mode 100644 docs/reference/plot_splines.html create mode 100644 docs/reference/prepare_gene_lists_for_enrichr.html create mode 100644 docs/reference/prepare_plot_data.html create mode 100644 docs/reference/preprocess_rna_seq_data.html create mode 100644 docs/reference/print_info_message.html create mode 100644 docs/reference/process_combo.html create mode 100644 docs/reference/process_combo_pair.html create mode 100644 docs/reference/process_config_column.html create mode 100644 docs/reference/process_enrichment_results.html create mode 100644 docs/reference/process_field.html create mode 100644 docs/reference/process_level_cluster.html create mode 100644 docs/reference/process_plots.html create mode 100644 docs/reference/process_result.html create mode 100644 docs/reference/process_top_table.html create mode 100644 docs/reference/process_within_level.html create mode 100644 docs/reference/read_section_texts.html create mode 100644 docs/reference/remove_batch_effect.html create mode 100644 docs/reference/remove_batch_effect_cluster_hits.html create mode 100644 docs/reference/remove_prefix.html create mode 100644 docs/reference/run_gsea.html create mode 100644 docs/reference/run_limma_splines.html create mode 100644 docs/reference/screen_limma_hyperparams.html create mode 100644 docs/reference/set_default_params.html create mode 100644 docs/reference/shorten_names.html create mode 100644 docs/reference/store_hits.html create mode 100644 docs/reference/truncate_row_names.html create mode 100644 docs/reference/update_splineomics.html create mode 100644 docs/reference/within_level.html diff --git a/README.Rmd b/README.Rmd index a2acdb9..afdeb96 100755 --- a/README.Rmd +++ b/README.Rmd @@ -187,7 +187,7 @@ If you face "permission denied" issues on Linux distributions, check this [vigne ### Tutorial -[This tutorial](https://csbg.github.io/SplineOmics/docs/get-started.html) +[This tutorial](https://csbg.github.io/SplineOmics/docs/articles/get-started.html) covers a real CHO cell time-series proteomics example from start to end. To open an R Markdown file of the **tutorial** in `RStudio`, run: diff --git a/README.md b/README.md index 7cf6ad5..3816527 100755 --- a/README.md +++ b/README.md @@ -229,7 +229,7 @@ this ### Tutorial [This -tutorial](https://csbg.github.io/SplineOmics/docs/get-started.html) +tutorial](https://csbg.github.io/SplineOmics/docs/articles/get-started.html) covers a real CHO cell time-series proteomics example from start to end. To open an R Markdown file of the **tutorial** in `RStudio`, run: diff --git a/docs/404.html b/docs/404.html index 7ad4116..158a05d 100755 --- a/docs/404.html +++ b/docs/404.html @@ -18,14 +18,13 @@ - - +
- +
@@ -103,16 +105,16 @@

Page not found (404)

-

Site built with pkgdown 2.0.9.

+

Site built with pkgdown 2.1.0.

- - + + diff --git a/docs/CODE_OF_CONDUCT.html b/docs/CODE_OF_CONDUCT.html index 96a01d6..bf17ad2 100755 --- a/docs/CODE_OF_CONDUCT.html +++ b/docs/CODE_OF_CONDUCT.html @@ -1,9 +1,9 @@ -Contributor Covenant Code of Conduct • SplineOmicsContributor Covenant Code of Conduct • SplineOmics - + - +
@@ -136,15 +139,15 @@

Attribution -

Site built with pkgdown 2.0.9.

+

Site built with pkgdown 2.1.0.

- - + + diff --git a/docs/LICENSE-text.html b/docs/LICENSE-text.html index 5853ff5..ea6fd05 100755 --- a/docs/LICENSE-text.html +++ b/docs/LICENSE-text.html @@ -1,9 +1,9 @@ -License • SplineOmicsLicense • SplineOmics - + - +
@@ -92,15 +95,15 @@

License

-

Site built with pkgdown 2.0.9.

+

Site built with pkgdown 2.1.0.

- - + + diff --git a/docs/apple-touch-icon-120x120.png b/docs/apple-touch-icon-120x120.png new file mode 100755 index 0000000000000000000000000000000000000000..4061cb1390ddf4e9f3dcec1c3b087078554f42f9 GIT binary patch literal 10626 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 h4wv0Ea|4UguKp(qE?l6l7GTYoyG>{tw7$1GfMG literal 0 HcmV?d00001 diff --git a/docs/apple-touch-icon-180x180.png b/docs/apple-touch-icon-180x180.png new file mode 100755 index 0000000000000000000000000000000000000000..4f1d12c30d9c972f01517bdb28334f6514d69a1e GIT binary patch literal 20080 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 aIS8;MCKyaN)J#7b0l02rWn66N@#H_B8uXd~ literal 0 HcmV?d00001 diff --git a/docs/apple-touch-icon-60x60.png b/docs/apple-touch-icon-60x60.png new file mode 100755 index 0000000000000000000000000000000000000000..daa92eea5de89485c3b5b5dcef796bc014bd080d GIT binary patch literal 3802 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 literal 0 HcmV?d00001 diff --git a/docs/apple-touch-icon-76x76.png b/docs/apple-touch-icon-76x76.png new file mode 100755 index 0000000000000000000000000000000000000000..72760e0dd392680c768d8f3664d93bfdf421f253 GIT binary patch literal 5392 zcmZ`-XEfaZv;Ho^>S86L*C4XGpB{A+1V1GNSp+MVAlm8?tE?7XZ1ftvi%yV@7K9+8 z*XT7Ntg_4XzvtY0&V6yuoSA1n&zw0kZ|3vji8A8SxgZ9Fx>=En7#8=+;S2LS#80Dukyfb(k#y$Jwb;sCI14FC$M0Kn{) z*=neCT_CsB(S!k4|FPUp#mUzU1xj1*A;l&+HSI0oXk%g!06=QBVQR*{GkfVi2^KwB zeVv_eY!-$Bq&`AqoJ_~6>c@n0`x(hd5G=OUND5{utRQnU`IGJUFi#ZCk5&fQfT0^T`>JUX zI+;q3@&RiS^hXfkIQ@*?IV*kYDTQ^75HFBR)nzCI%d8f{+X0F|CRr|ZSCy@$BVYsY z0Q$FXDAO*zTXBsA$k1m%E2!d`$0*+mz~ffEd!6O5Y$>RrW3`zz?|9<1Gf%kaR(TzFR7k zzzEZh9Dj{O*#m*dUqL+ySBx&CzGuK#$rv14C!iS^^KEf)`4gyG|V_wsLk(ZEGc)LFz^Vh*4=& zG3NRJ5;5v1TGCBl+Yy-4vlq^v$iR=(U;oDWRdbnbCB5bJYx8ZP!tfAu4Sngl!03Oe$pxLSxzn}&MP%FTlh{nn3QsbN*xbsSIzE0nS@MpWN0YQIi8`%@WwS-_Z zzJQ1jY>Is8`!|~$*c1~J_RfiYv#9_*G7DjENi9Pl}^AFqXwvPG3O~4Ail5U?*gJB<(v}{6-$X0t?jBiyl zx~*9+%vNaA(U)M8Jndv&`t3gMEL0fvP{XdR3reqE+>;cxxa@9jNs0d<(#h9B#OCA| zN}e0GVF|vVs@7fh_RfX|HNy{&&>nF+H2ZV2)Ao0i@r{GoSH>6+24hP?<*7|ib$=>& ztO{Tlp{n&TSKuT{^IvJIhH^;b z?q`{g;YsG|#EKF&rTojir6OAV%M96|rE}70cNI7t;JZ5UqQ(W;x_A(vi~Ya?TW!va zUp-u(_gT0Y5*t=V1UK&u)Fz+MS0}l+xLk-$tOU*r!QiRC4O#a!ZIrhj6sxeP+ms_b zcuJZ+ddlTHUh$%zhn6s+R}(EpN(%jy>g15Se0xoUt^7`0pg|s#-n-lHOyb+aw5923ID562W8y>khZPRyAb|^L zW_)Q_fH7_YkpR)U(p`3wi^NEOW?9`vyM+_?3Hj|ESB-fzyFy4-%DYt>btM3WfGmOCh$)8v2JNC zCjH;Y2LUY(AM^c3YK*QXefQXil?4T(Ef)+l+fPWsFFgeezpoJr8fWHyLgnu3cNEKV zy-aiWE2%1~bjLLll3gq#1aWkcl61KcRdS5(+*5GMBrUStDnFw0rv4}8Zp@=DA>e_{ z`dm3&S+*l1A}B3Os#@5hs`auPfOXMV@2U&L?HkhD7BRo#23I+jIMC#ug$e7X+vHYD z#f$J6=K3*iubZ^-&6gH^?cK!4DtRl@n1q(~)54hCo2hvL7&ikqgATlf$H~HART!sc zjL|Nm;amWdq7xHuhJCRK4oMIOzL42HYAFd)aG?Uo?>p<0Tk<4b><8SFQ20KY`6Tv; zHon~9DVBdWq?E^q8QDWl4!-Z+7w+fU5MK>fPmj?-)iuDW98ftEiepw>q`#V&ST zjZfmT(yc7-diRFY#fvW$PZijITLrLg>BYJw}nA8!vE&D^k%SfaoZTCZ5 z3ECKfSr`X}9{vuHA5drfama1A&pn@^8dmtdaw4x_@L_W)yT&K;RXkm;%(g8dhTHhn zS=J%dgz^qfmi?okN_w=*?Idtpi0Mq@k&(drHo+8Zj?%ho={Tc6ET4&Ud~6+Mor}I< zM8pD1wG*MC@#ftXl+aAl_oxkg(EG@E@a z+M!$h*qB%PSiVUj*LQXIrvCAluNl8MCcg!=cf5SxmNPp)`lss=4^sarx`(atP5ztM zuRk3wTy(70J=T(-n#md(0jbbiC!R2F#%#68+!IvT$jG{5h-8@6=BYKT_gy#;o+YmP zYPlpFI_Jx}gIN2$C7GT<{Cx&KI|WKwNwEF7c~Ht8@R!mGb!W{ucPtv={u=p*D!1l= z&Xwi3f+@!Xj@v@LY4v-j39l|7=Fo*2A_RY&i*ac`k)}C5-aLL%G+%TUBSo^@ub~n6 zz{mC|hcPuU`m<%G0Sn6fxSL6~(OL8Pvx4wmA-j3fwnp+#uBgxzzB`7_W<})h?HtCp zKkqT|w%joak5l7RRZ{EI!LnOBY@A=xFCphT`w}&klLPjrTj30ueEHE5w<8HHx;wlPcLEqp0GzLd6 zKKzcgDW0J6d?^){&*)A!I!D%0#16ll!ZZs;N9GhrB)~rK zgs~)&y_^TF>gICUl<0Y-Dp+cq_LI}VSQ7@Qei*UmJ%C4f_<3!Apq!djbS9%Y5P382 zqxs!+E@=>+2M;>BMCzv&`Q0on6E*!D&s!|+;yxL*HntVGWk>QnV=gKxv0aKzqH1^Q zMxqoZfuGx2)#wgXCszrVi}F#M5+(Vx2M)JGQ3&Q$m$5{qP+OM@}0Uy-H(;kKcn4NuIPs^hqI`inVO9drx=vtZeYav&I*TRfkCvP24z zV67g(_Kb`yGgV; z-X^M(xAjUy`tt8{%BPCPRf>8dJ2-%`>l+H!75Lb>&WuzK75{xq^KW_W@1edov6lVDQX3&d`H? zEMGE8i)B-gq%R#?sK;qyF07M8M(-Gt(PTv%;pul-?fL4C{ z@-W@1D(hJ=Csw&AiY66jho9D!Hz7BM1FXUZ!epid>&B6XF)BE};Z-AnZ^vdiHPSg# z>19iny=2)9X#hfL;{D2xnchIYP}{Lhy2R<}9o7kuCQKa{3p0B4;dPI_)k31w-YXC& z0^%Y1*@MzNLPFFp&Wk60LzlPrlr!Cr$1)2 z1$QCl#81S>?QnHH3$dh`Gm1Ttd$(FsR$B}T?^L~Hn12w*9bzD@EdDKzVMdX=7=4?$t7bEp1zv zucl&M+7xqC{*>^AhqijF4c{g*nj3yWX4*gdY56g`)4NH3#cSt%_U!z0D`cbc%5It% z%>Lu2!?!|B-bPoh3}xgn`zL5UnR2Jt14)l!{=v3l!seg&0k1iflw=`>%oppMcQ*VwW)#%cH5#$i*A81A_ z-vDKT6Yyy|`7m*A>$WN<0i!eeqyrLEl zNyk`pV~e;ij8R(CERaOtm>HtxM3Yn+H|(C(R7jvN;wf>WM}nC_bS zYVu<1JhgmI8hMs1MwpD!jIOR+kP{%XLu?j59nfUHCRo(_9CK~SzV;bl%+Shh2Zq`m zJFvs6Z`O`p?$w5Iy)CjNd3DERTF^@VA7-8Bywa8OTQ7~KkWVm~>Mhp=GyRFo484xZmu)A-wk9(Z=y9u2lrV z>#QrY7~NfSIN_Cj;|MvI>o}m!OHN4!LTjh;aPR(l7T3JLK#|i!IKuJ;Uf?f|t=DUt z$n%}b1tx-e#$K1TdPb~bs9OZcv`rZ{4{Xwk5Eq$6U-en~hIFQ|e5`{wu7LggLC!AB zU`Oz=YX!@}#4#j$aD71`;FMsMJv96{F1i`2{q_}Mz5ve3CfI_orA9E=JinUOmfQG& z+1zGp?hoUcF4-w>5dKGqcC`Bw1yEc8<;R*T`FexDO!L&0H_EExA? zyVK=ok*uDaj>)?kAY$v8*0ZhsinK-RnWx1rZB7}((>P623o9$j%3))Z<2xoMofSga z<}mee^wpQ2&pU%o^4V0%e4Y+Ew_oD!kA;Y3|Mg@D$@od!OPap5{5tK9^4%1{t;=(^ zpA))vPudn1&OpHtQ4$OYHG!{V;~Of!lmq%&M5!V&e36^U9Je_cZK8P#Bw5RzFtuQA zeqLvn7Zj_L_pH=E5fCOx#G*uH<$@|1%9Zd$DRoG=Je&*awV%|@a#doGCQwT#9ucRqvz_)H zI)jKZiI_qV$aQOG!V;+TYwE=I<0aq*EfuX$&B z++VIpe&zqMcC=H^z9R09D!+9GSznUy>u_QB&pbeCoB_GiKxUfYH>H1#>hJ9=JiFL) zNX^vgxbTFYuDKp&?0&LbB=t^hwCqD6;A;{cv`yKl^>AEi3$qyU>M@nT7VKjr``SVq=gwi zyLeTW7XcM={o)~iH>q@K&8M0`h1?IZB+ZJCR;#v4JBg^{?Td9}KiHew!V8tT%B8W} z$4pmW?G#4njs?ej6+T;-@rDwNJb770tO_x!sZbqF&q?$7lLCb zX@BXTs$^#JAq;2)sqXE@56?m(`Sut9O64Gy8yludga!D{A*lMY1oB(+gYLd?b(M^E^XZU*5>$oLT3V`#&agf*oiSWFb*wC!LIr*ju1n1k4ea8TfzLN?SHt1RwQmj4 zntL6@6_$wEam|>C3!9~-=F62u5T5**&Ci9ua4m;ee~bQjfBlmK4|2I#w1(IPS0yK;Ng8A8>dl&zNy3zE-E(2{TOb z|9`{HA&YAz4lwmMHbWWN_;9;PAr095sgTfs{@{@I znh`+CM=gq=hVVgjl9@;$+%UBC7dukEkH*}CQ$PBmY0DvE#0RUfr0O0Yx%Xc3DaApDk4)p;5?%x0ao?TkA0`L0(qM?)+1n~CX z{->=V?!5=eNkZm3(mo;z+DDdTPAClkAcH9Z5mI(rJV|%`ZT!9ItwV)6bBvE`{M2gf z=SqN%U^MElFWCYh*Hy5QFbf{oi`xiHy=P~ zTs_jcD{?D(r!&9?)^1p+r7(!o)-Km-F}Y&?IY z0o21aB4z(&hnWDNs;A+a@9XPLh$Q3`__g$Yj~^Y1V;(Ti7`|no%~uS78lVwVkloiDa0q0_P6~{5KB<{A2L3N$)1i6 zzVQB0n*27Sfp9PWBEg$j0CoT(ARY|wP3Q02hS)_5D_r?CVLT9q7eW7nuN0X61cUr} zp#rjHg$-a1Xne>I`+U{`G|<^fxWfcuzTuM#z;eRa5%|)K)+r|eHjJS zz45y8nn0aPFyShMQY5~rK&e%gh4BvOy*SciIJYw1YQqix-!gzb!TXpfSk6Pij%4L3 zA~1xd?(!7}kfg?6Lk`ah*Y)up-Zu;;7m%j8;En80-XP?3y{h=2L+6_e;0+G^)HY%e zJrt(4+D~_uS>f3O?%_n-Ahd=*=k)cU>$g<){)X4pMx(l#i8A@yTc-(kP9|+l>gC#p z8XX0NZ;r#H>_6d zo6j9b4dw|!QjjA7buq$m!gjjCJY#l_({{WuK=!UE0AmPvx|x8=>gu;LPPPbIvhH4 zj2kP%6`sgT@=Odg6J!qVt8Ttrc>ry`$?n*G^RMh+DJr#uq5l>9b52D4s)XTvZa=4L z{0nLwR;U`o=`;lpqir;J6Lk*Andp2-D)wz8@j()HD}duHtA61Dq#=MqBLKTX!Sx;0 zC(A=N%`gyf4~Gz*|9E=gGY8tFeju2>@xwY6daVeXub$Ae&qs(zk>9zi0Mh!K{DHqP zusj$~jLCwWzFx(hQDoV=j}|&7sJ^iR@(RiWxdsj5z6b@kjNwDNy)1V$(^1!_K?dE9 zKfg6dIW(&8bAe)hrqVIGET^D#ro4db*g?2w2FlzffLFjqN*dhy9SB_ED&pVkA_8;~ zp6~*x)?;?bA^Hz=gSwW1>lVNc4_yBMJwyZdH_e4tiQtyMP*8gV+=j(69419taAFTR zp;FUjhA_~DxGM>%M+c0&K?}%^qg9L4@H6xD!p18ww66hV6lzC-fog|lz>-%c|4b78 z`Hv5xj*Y-aAOH-^ob*Tz?n4KbwBUDICydhroJJvvQ_*ssk z5wC>tPYHK(B5eMwd)wt3@7Y^hK2kWb6w{b%VN%LUz4_HMvNT~3)n{0={gyr2n8>mR?{yxDC zf#PADzi|5AfD#I}0<>I#_> zxtBkv0xyJ-&Ug0H?h6cMyn@F*!}LQ~gweAdlZvdk6}fhCAk-J%0PV;ds%3%aE8}qI z{D5gNcSpxhe496Xe}NYoK!e)YPDDkOU(W``egp{j+zN0+%IART6OynC$|^4*FI`Xt z(luapr9i=+vvq)CPB>t14hY<=5FB`Eu1rs93g7W^@}0vs_B6xLP}{b4&-vOqpyzqbRf z(?@u@ni+g3*~ z;=)eyL@>|j*;$^rhLEev?uS-Al%Uo>WLys5V9t>c;&6`OpHWCK;KR^A-5@{AP86HJ zFQ5kFw^8j7Y;C*0H`wf&aFZe4mOIV7XzM`$(beO*4L#cZ$VhZS|MWw0ZJ61Gg@@vf zRJKYMjIJpNxdUAWg6~njkLTvo8H_ptX7Lb7;U#T9Ot380l^5B{$_mo5&)r8gS*wzb zfS>3-Q#YyjRB88PWoZRSeYqn|X9j=bdu$*0VDk6@4KKxXYn4a5gDMKN{YEhBwl2(Y zNc};#;4V97z^t>A)A|g=>wO(zXRpG>s9$>oH(q%FP&+1)y0Ag~J5Iq&D{D*=BUj|l zgVz47`7V5z<0pQ>RHo$IX~YSCF<|+Jgb3-D*kJGjvnkDr)HkbzoAM8O>N7vJzeQv) zdL`F+os`%PAY@Q#<1zZfzJ2Ay|78M7ufYb>FZOjP{TmnR`Qd}GL8kZkcSWF{PW8tp zNMR{5cNwv3bS~#5yI?o(PXkV7XP5fQVAPYW2+RWY~A47+W~jQqyy%&9~{wzom-pklX|JB zHTv)&BTgV;dPlv>7no$6g~pGa3|am>kVX>s;7D4ePUH;>SMcUbUBl=xEriAY9K^Xd!gReELst|( zIys>vS1fCpnjr96CRS;7jce!4=(_}@YETT3&YA+RrE}5WC+YM`{7Of|w8r;8&yn*7 z)||kf7bgl~wwIU43=pKuZqL%9md_zso0_-c7dqFnagOgDt}tmV7U{7U5BQc2k34 zGu1oyA#M0ljhVM%i?<|4ChbUBpjuAJig6doJsO7ZEE5B%rp?`>DNFMxu{tx)fw~zlU|n3 zdp%{(s=K}_B}t=;k1TNVy}e)lNE7#eo8#~AbjOcRjQ{!S&oZwE5a*NXDf>lSvEZgh zmd*Y+6Mg}ow`~D*4YitYjd;t+E>E#tS0dvBoF4;e_t5_rI-8;H;M~F$51IRRg;4bbkUD?-U4%>(zm-Q67VWssY z6F8`wfg-hr^d|z~(P&2LA!P1oei5s%`4m`Xjtz5l1xjoW1Jndc_RW$s-SgIRoYrb{ zQ!&?9G<-Fm`E5!(`YhjwomK${4p(~A0qpcTnrxnJ#M-6@f8}Y}Po^&8Eutl8qs5FU z)erYmRG0~8mZhO;AAfdYZpc!uedFZMXwg+ks2UbH5Aw+)UIo48;r9jv(j?}V*&P>pcD zN+>eS1eg4WVH-0W-j60}kfwc9QJ4XK>X>TAaa4&6Az)@VmBb}>2s{v~oy}s<4!5!D zFNisIRE6MWR8`n+>FF{U_sN>QULnBq3ws(Jol@6Vc+N!i*~WH{Ilb`FRMF;&#;G9u z#ePfV8|T_@S#?D=5=J^RH~HplkIQhMh_Ms^fLO{jXN|<%Lv_z0yvrn7HQDB*w14`gn3Gs@%jm@3y+UjEP*B81F{1-|Bm>EfxrcwX@;+l_|C z0~}kUS0=m%Enu?

^1IRuH}f3q!d2$l*iY@JHb& zueku8V1*&g+;JvANhy@O&RDG^!7$ zf4Wc(un7x53E~sL+_RAivz=qFZhOEdtC!AfW>BwR&znXq$Gknnn~gKGTt*qU5e-k& zcKm}hwEl-WPjOxiRc^)fd%@y~60Yf*`&dlmXr=klEu0RL_GKBi{gz*5j~OkGn&Q4a zgKN_;?|t~scFM6+$G}*%z;12hG-3yvzs@MWTcoexBfkaOtAvg)u;;>$U=0Eei1(E} zNU5}sx`ix`-jM{dIZ6Xc?_N>Mlk#nB%LHP6PY(W`M7Lwxvu1MKMrJ51_(AYD92G1+ zc@Nwk7GMY_3AXPy6h|#;_Pfb<)}~LEqK3o+(#U&TWgCX7uwf2=I-v{njOzRM7mbpg zF+_FGGnTF;bq;^I7xq#1&U_f&tbBCneYRUiN*ii>q8y&-6U_d(RZ~|u+W;>Z1|77s z`FLj6uk7&q$5JQD3orBF3R0tu4Cg_4Hh z2ZDNV#1K@;nE$O}N8l?38EqljXrYcr&cym#@JwfGG`Id>($p@MACulJ7O>BcM0w-s5+YfI|rA=d%Ok3u#_QJIr1uM;!70xS`=ZI%P|9 z3hi4eNZ+&fv0;vTrJ>4ws};-O33hO|CdNrJQZ!{mFi0l?i=HB$|N2e6`Hy-lfYL({ zLLpmXb>|Jx>j2woG<-Y(`q!9hLJ^Uy9)!<26NF2{(gM|GUNoFuTwZB+AyeWwV= z&W_R|4766Fqp~PcQ_6ABh}99@HW-!{vradQtr(9ekk4D-#jB-s27}Vu8fqMGKB;NDxAxDE(`>YGZC#a_Pb=MqCvQv~Qag$@egdcF zm7WKBCyW21&SSwCj+V7Pu7eIa!Q$Xk8%VmLr$K;1s%tfLUBx91v#k&LX|f5qRm>lK z`<>D&jUu~Z6bJI+3p0kLsy`>sPp4NbCVp@ntBH>usMls`;lswT?4iTSIudKm>5ZHr zWHCz9a8D|GP%7BuDh29uZEa60^gcNBP3k&*g=%z3^fO4QQe`Kl1nMFHU10%Vvh0$P zWE82ZaqnD#D#gB7q0%%-4PWnKWJC?D-Qjn-fQ#b}Lk?yei~yDUBTmMA0>Rq)oe$rY zJw5MP3*VcKsfZzk?mh=_-ohXmVXXU`&COMK)G(!|kjPR500GEEZvAg1W?7uJprOhOrflXB>zyX|J^R=AUl`#76G=A4e#9bIsATR)@E_`vL z+K)x-<2nw-u$Jt5mCxws+b(@}<4|gS*DaSR9xg`fThxY=`?K;jsW0M=RcF^ten&iV zwq{E=r+vKMx6hq_6G!MACJ@k$@z}{JKp!COL1B2iyEDQgp0{8`zGiUje3V~s@U>8G zI3XyDdv#%9aQc9amN8Mb;G$?Nvj5@+PAX+&bB`jlq+xLD-xuic;cA<*Y{bIQITLmJ z8H^pWQQCZcSrlrt9azPJ86{Q&o1yxn)V5~`?$uU3>Mx2t2&`Ds@vu0(O^t>T+|uKH z<+o(46h!TGS_4!OfbONEDuZnwp8{N`*0 znl=w*sS|t^3Iz?Dl8b-IGUeKMSM0$&6R5#;V*dvBT(=VBC=64M7a93EMG01*b~(99 zXe=>IF=wM(LEYMoBO+s8|Li9!d`Spg4!`J}9L1X{ZRV4)&0Hw_M$Z;A6$hSkEac%2 zrtoXBIptA1C9rK?&vlf2IlxPa6?4{%^sZ#Tav)aZ3S&%{fNdQZ&)}Rj0d~0I`AcOB zQy!Ue?s*`C8F`FXUv`FJCYxF(5BAT8QSkaB_U3l}m6rp3VPo>-4+e7R8;UhyjQDA^ zD4%<_{2L>YHjue&v=jx!w8Xs(ow;_QH&gcgTw7G%HD8|i zcn7PW{R6!vibJ`2jUw4aT_TfaS9$QK3X>Q`!p3;&_~uvy2o{|5Y^!`c`r_G(j(6!# z%5J=DzEDhVR@s6B5i^IYvr(@-cAM*H@uhx713BMNfe&bP*0tVGTG=cg*XcTVF#;61 zVuQb{1{B9<+9${)HzHzXos;nItFLxPp6w=&KMhkoy+VFKE6M|-%-8OZOCc`L`v#w$ z=l7>R>hvEs(^)7zG*-!v>bdmo9{+B+NInX;Gt>B?H?Ai4n{Vs#)0rpgk?YyttRC=& zgEZ6N_xUphX-{2y2>`g96tFNhCae5>U;sFP3vut>wf;id#4?8VBCum+gAC-wjT9u< zziTS)vb4Ar>&GXHws`q%CBpF0OOsZJfcPAFk2u?&*>0>5%KV!kcH*ga#x+e zTM?%MBCo>}?ubDB!o%yF&5^eA@^Koy1S=Iq5sR7?r?D5<+UN3WZ`IRzYvev%;CY@e zO2B?8^7W3MCp(&qWOaq3_RP65MFC{pM!}e}P|_qP`c<7md;Lma%Ved27a+|8mR# z`$L+>KeS_P4W_zqHBDB-3xlS$->&;eRTT99UWwR9S(dx~8^U*Ov!{@91||RO0K9Ve zJPI%hz~udsDHtoQ_$E_E0HDJyEw9kI^w}!#vIC#C*-XD$lkpki4h>QU?=c2uw|3Je z*{UetxTib%M(2zs*0<;^5&BpyMLM?E)c8nw_bKl!M-W{U_~|q;c6WsRF$FXt`j5m6 zeW$v)cQL)Yt>!Sb??EBsk}^p-jd0mHcx?IMh9-p_z=9t;o}?V1h{f`9+4Y^pYH26G zs8Gj4hbvB%d#k3^d7P&@p^i_U0!AN)T&hHrnI~~K-a+%$*yl#P?Vr{M_cW0r)#20P zB6ljSxm}wxr386l=V1aZjb-iYSYB%8?@&0NDdSOnb}PM2tc!!?&r6x!o+YK|7)^(Q znNwQq(<@UYL(@^EHx`SZR?;po;O4JIrPrFz?x6rCt&-vgy*cN8q^Bo__DTkBHfTS7 zvtBnO-0$xO^YhhX5gZd)+Eckj3SaK(!PiK9%sjAw(hRCEp2eZ@Cjyh(`CtZYVSHeJ zxS6OSvmW73lL?9malLXwuy@2RiNslr^7&t)tTtvhE6L1XYxJN6`ZdyoYxorM}ML}-Lr z(AKQ#SNv$%}0+LMWtU9>S{gd>`c457}!*BbxeROLi)n@-d z?>dsK+7J<)6=fyx<Gt1TeuJBTJ zarE>3G!-j*?o%{z!sDf%-)QTx#K;zeqi`=xeyw2XMuy5~r@C@C@iNjv^x0YKYBED7 zW~2*>(3Ue9uibwsIAdzFaI&Mwz*kh1`Q@B1nI%EivQAPeiYZSxYu#Mb_$sISAtPd| zsyT8$iQnzvKwz;E>cRB4zRSQU%hqF#e!H(fo{LV^OI=|mQjy`#i8)hCNkwnXtN-jZ zbht&AS&tJ&{{yFksPav5ipYaq!l|ZC_rrjERLQ=C_!f=pzgbVbYQ345=tB{O&uD0W zKc^7cNV4e3;A&8Aenj!E@`-mNrS26Ta!HUb#ur;9v1ix4geEysm=Y&&@l(Z8a4GFk zL7n?FJDDkYM~t*t?*?no;bMNPi+n&Kq|a4=HFotfw!sbAo#_9e6=&PmEZfESsRkQ~ z#Kbaj9ugA!(;D8Za!+*3fY z>){2+RQACKhOU4LAH$Q>pCYtYuH+0JclMl6iK`)+n!Q!xFsl5aYH4E?KTLGF2(`KP zn&R?&6RXO%qB}6au-B;SP1Kv*Z zueFFtsV<#c9q(3gw_jRwr1e*AaScjEig?MQS7C!EY!QdAgCCP-!iNaNzD6XV(O6sV zWK|2{QYwzsnnl(Hpp=R>q`j6RQcOFXT>InPhUGD|ihf4ZnN?WyvTT7iDQ|0Lp zRp&NSSrOSsylYb45cgHg3$X6!R6RE*Kwh&Rk3PO{y0!9RRaXOrrq@m}34GZ~t$I6t zjIs7YhLJ$(E#9n zDoFFRC)AB38iVHuYeu{!hMdudL`s zS~UBM_ct+O>YnULda0d}zpp=^|B!HK?oyQnimIHjBqQxc1Fego9!@5KM3;EQcH4jpmyY8{Ey<-0Nw;D34~YA*^$^&v?~{2X9N zOrb%8*yj+PD{nqHm7Q5S)g8rmI3=8cB^>Se@$Rp+0sAgSd{TSaD5YS#y)1>I7U77h zvq^TIxub&;w@DCBhFiT^INBj8r507j^MpP&-2<(stg+I?$)_E@<_j~unD}9EOB0ov zZY!nm@D4pHU-ijq`LleJu|wrl;?u1;TAAPJ#Rl;XSn$JE_sefO8^=yhQZ*)rD)C zXt>Y^7Xj-N4g@{U)&ent-lbL;d0z}845&489IvlEESUG`tm}v&zbsRh70?=7|8(+6 z*b7UbRa-8xKfo~IR!d|FF6Vy^I_gs%a|bdeYtAmpN66{k=+zKfVypFk%5s^zlDqZd zcsy0Y(_v@wBziqhufcG+X$KQe{nB+gWOPT!?NL=Ml?<;xONB0`=F z)|tI#O3=-h5(KulyB}OBeR@b8VtCnjMu;#Xkvb~b__38XW!$JfaIjS0Cuoiwo(%9b z!A~Qr666=2wUVHi{JWCe)#u@XtxQ3%2348W!pq~aD2eM!F|B4x4{?-4(T?pt&3+hz z{T`Q%VS`XbPXM;0IK+v9r+iaNCS{5k7V_~dCB^bLZb&l53GLu_ z!XZZO<0^T4f59QN#56w3z?{014a24E!`$VWWae3ZH3SLC?mKL%?}OZB)|tNQ9QQN; zw>7A1Ru;!k&#L8#S^1Zu%Ay7sLo8o&Leo{x{zWS#of#6n=Zop|wdZ?`vZQ+9=# z^E8-_0%61!U6YlkNeL=4)8pg4+RUM5(Z8lp0kXUue{2^vQ&PWa{&S`mUdI|kSx>7m zV^h*}W;-d#Nd93MLH8~Y70bekb04T1a^pt9c9Jz?&+a3dwT%O)(=gyjol8lcOhS{- z&JHLGq}ex4d2NBBgVt8kf3GMT^4L#iXC*))YpHjc^f2u&Aqly4S&v~6b%Pj+w3z+W zmAtlE z@%!QmH(f`!8jWj)A~UL*+Ra3JhWsjd`q7DeGopxCEUR7O&YckYy&ofprf!JiYa-=l z^LUAlP86B_!^h*)LuU2b>%xHrQ~ujzV|vew{2`g*Z2W5J^?ShuY+=2Lcijc&HZ_mt={UeE>Yv4o#SPpfdKs%f(<|&o&XXI-V&|8!RA3YQc=HsC(c~Pw zEB=*dK|Qy?+QFmo>?e^4}?g8YxkjEuFH*c*UR?$`-B(*^)j3cbUp;Z~+0)xBcDe z5-RKA*-Emoi_1-_$;}~^jHSgC`P&o6osBHYFE4uX%?RaKHiz88iaWm7v zD;V1;MU}Lljp&|Z%=~QUL97go_dl&IGyi_&QS?!orH1fW+o$EEv z1}m4_pkX@pt7;LDn)F=pZay$*5_Te2A-e7rs*WXbPx0i*Cnyy1o8(i>d`5BUXVVyh zhSh2(3J&x*V(Ksqx7S?*1<1;rXKi=%W5nHGLu6ugt|gDo77M;KD+Af7aRdnI23VK2 z)s}WRli@}2FYEj!&rgcL@3ymMeG0U3x zAe>RdN#cIDH{Q>x)yG&Q0a+WO4f`lvsFA;kplk)>-_Xak&Kh}PwUKdD!Fx8gasV_` zk`pXC3-QyrsR$F96}B`1UZgA*Z9ohWW}NK!{9oE@i^K3ZpAA=QLIXyLNIgJ|MD?k@ zSE>xdB;LG2x!SYQK|$Mx7KDet^CeT1IO13N5!x&Km;+2|is^+cQ$DI0C*$u}^To!H zuv(Uo7tJVimlWlBQy4hNB!NB62tFQ-WHZlL+suZ_oJeX$9u;j{xn|p#pp z`c1PJcI@?P3@*{sYSn3Yzn{OUC#s*{ivMY(u^s9tz0}qM@f=^TwwgAC&Mz^^>sH4z zXrDmFw?Dy2gLCpq#40@a0h9EMt>M zp%*r&dA&!J_o|@!7B$oSE5G*-@uNd}d@T+!ie#sZL`h_jg9Z`7kNvMp1xKc2L{G}R zh8&LQOp!0Ri%`H8{0GjS;24nGAQh7_I%4STb)5Wo~tofCYz73$BF=}&fwO+V+rq4Lnr}~%bA(R zT6@HVVbw8p967v8`nRF{-vkA;JnMI*WIHcQtUK!I8ys>NOLe^6JD#(bheYcf9EmG^ zpAUmR9R;5WG^T#L==XV0YLTa3Yqd4=bY3%?h1IqD#!3Cf!}kPxK0&<}0u$h{P5diX ztW(Iq9eyFUVdt&-@mY3d^XAFsw<=42-x6*?DmzwKnnXx;(T??< zUahBvh~*Q^u;!{dm?dP-A8yJ?DsQ61kP=F48Jv8Lm0wo?yFU8`Npv7h+5 zd{_>Zl{W|8VyuLl#AqbR8q+#kN?zgg)L}dxL+E2&9fJ|jR+9Q*(aMjR!$*IdvE0@0lE}lcESK@!HeJ4`BSHD@kyJGY) zJCK1cdC(G|9Mmf2gv0S8QNkLNz(&E;W8mn3Z3OQpHG;^EFnuRxqdd2&9}gkV`f4vn zo9|`PVfe(upW-a_pm5scdlpJK;UqX2koOthgp!+2Ri!OEzi6ip*NenA2uAqkWU0@b zV+(VQabN43R*$2U>;hwHTU-Bv{auFi%UIp(^1ix7p;av3!#)rp2@qba<59%M&tWl| zBE#`;QWT%}BjaSxg_qe(AtW9zeOB?et8kp!5cfg49QuWNI#>N=t9dQd#?x4igC0#i zOTlZL!I1y%xG|n^kDL;&Q=v#tJ)W46$34}m(R6Ko8Y7%1_4ziQ-4uPhs%mlqJBntp zJiPJJg;cVW(Oq9%*PJy6o2%S(b# zj>1&Fm*-qpipL0$2j%{;_1KfH9seDW7V=+S$?o~=U%$0Cu^C5LPq46j!$=bzEtjz!|*IU^5$D0-0A0jg~9Tt#aVGDwwEI8>gW z%9n;!e0ey2=vKVw9VIU0_o8vw0F;MBS;<*knw*-WDrnKhomGOz)xmZk*hY>tVHznc@NYa$^GrNfi;^tN-7fh&rMn_16$utV>91{Y}o96 z-*E$*dd^C~Ku*Vk%6y9ry(p08c%aXyEzd4S9xKqzI509aNMD>^N0o2L7+FF-Mdt2f z_=+65rml#Q^SeW5!!}p;0ta-TRL=1n>1NuNU=vo9TK8;s`R1-#YF%?lGE~Sr6yiGf_f7 zyI^unm*g#GDeQvTZLZ|=>8wBbRcv0Nd72$?RcUa=F%g{x{eCtsJ$;LL&IWX61o-Vb z%0E3Vt6Q_0CzHAy_5~rMj!L@JPT!kYoJb|*_K7aAEEQ9wFwQSCNfdXihn{33rv%&>S@bLfM2fWctR_3|$ z$IEA~x&F830-$e>(1GFRQ+us*P)^!>DTCI>y6z}wwvDr+u7IIxX+YFA$BJ6;NvQ1L zSlS%^6^VeF66`A>AJ`vK>RRrqj& ziofu491`z!!^7(Cy8uJs*a>hM5Y9=;Oi~rrW0=CdPU{m^hNr{NkB!QMyj`&eN_w}; zr;iU$@>(8@o@*U`j^3nT2xG!94>W`}hrnZeChVm{uW zMW|6?g?wr(^@VJbD+^mx`gGTuX7H-0{@a-L>3BF>6?;#UXTJ>5O+37irCE*Y*_G*B z<{XjXQ<^AsY1%kh`m+{z{!>^qldXT(CQJ0WR&?^R>wsy!_WETGz&Vl>jG#XQ_5n;lL3s^C?Y&a%hbvEk0s^{e>{sl_1r{H5% z9k$Y=D6t3%7A7E9HCXwuZV2GP8JckFReRkydYI09K~1|_Sia$I&dYJ6H5fHYe%3^{ z;G5AqUb&5%zVEj6Ig09%`AXKHxaEpk=5xDjCza~eXB0GNq=v46^0Goow)V2Sa(@~- zu>a;Uw{*I^G_#_|kic;HTc8wzWnEodpBsqe(je%$08eeoN)W^U|kusoE;WtA|iq?e;VV3Af_+jaFT;@UO@^& zf}XHeJDWxDC1Bh5fPas|tZ_NH0Nx5{UAe3GZ~o6&U>NQPTH7U#yc68Zk(0zb<287F=UXui3* z$0c%$H)j>>_&#@>YW@B zdnnEn0QKF4U0gpuKRf}_keTy_%B`+aNSocsU!DHJmU{Mc&A;w<3xw9zdbR!@wwYI1 zdK^=_cPVCmqqXSK{3g0o<(UisyKY7LqTSROv5c7D{fAHU@VuB$mqNiI-lN4w{Tf{D_Zjq^@riCqp zhJ_dMw+TV`i!T;HB5x#MpZFDhlZ*NE2=l@ie{cSI{l!jak7IUiNp~vTH2t6^slWqq zZ8CTIZos+h_e`6SCFk^$$3yV!#>X{{tBUejAHw$^_NY1Er06bMY|HzSD!k^1b(Bo= zYaSvl)ZOYK=1xw$PhSAP^HtTp#6Nl87q#?9y01C$+Hakz(Z>OlD zGyS}B<)qe~=GHu+NGeSw)WB6I?oYRZELLvue!VRo@(7?j7OZz|c6 z$K%Pi<#jGlQ^8e^X3V3Z@>92=r_Ph8f-W(H> zJrmUvdeFu$1%K~Ywy!L?C)=&WzNT8^#_TpScYny%IFtRHohj2t5oWCMnNcSRRuIa8 zBlee;t4Y}2vT1*Hxz2W7Q$|Tj;J!zvqPfCLO&12Xbh|U^-C*VUmRp=yQB0zk|F3bw zc{N^GtpRVU$><4n@jbj{qwGinz#&fN<6Wi~BkCS2mQNa!snOP~>SA*_qo>tb$=ba9 zNY&6pg{05JS+N(dE6ur9XLefp?fH@Ke0Hbuk^n36v)T@iNhX)-()p61wFu?xniBig zm;nF&zlQh^83EH6HT!+=K?%bblO=LO9*%q|gvC*|r4{X;u~@K)i6hT^;pD0LP?136 zI557IHpK=j+S=$#j=XDRvON?XFZ(kE>nY=_ccD*4X@E{b*fbU^f+p6KJ1>S}PPK%5 zMtqx8juMy0xRU8UeZ8(viV`{AzwI|+|KuOXV4Li;PF+ZC&8nB;YhF32Y-b_W^we9v zv&6KGkrE01(+A%*01$iaEs4*)-v|{lo3eA5qBrMY+T3(|5z$WRk#)Fexx8>?BX_p& zV9yuBYt`R@LHBMUZ@N!cnS1P22mw4Gr zJ`uuz&ZnpGn zeUD1RQ(msr^1WW9oPVzHu#I$o&2N$P_Hj&js3@HJ=HJ~H)PB8Z+HG1|o|kn?6j+o| znCws@4Q(7jpi<_IPM4RKU8?dzg0B6drK#j4qN)fVQNNgLc(XY1DdY9Ze~TMmehPi! z-MW`jNRaNbUqN7>Q4w&`W>lk1Bpt%L^l3eL?FgqD1sa84ggc)H1x4|n1>OJqCh)Uk z)oE?Vdb&W@;P+<)h(MP!@wMyS>g$BHYr5Lpvby)>T_)#z&{LrOy!w91At(JXS2;I< zM@N=r?9LK7K)5<2))u^nOOA~k&g!24qNK>$P7*>Enxy+{fG!BLqP*tv+_F2G1CJ#A z3M{$0SbMvG^1d7!{a9=FcJGZDW{{-B?q}^=r!q9%zKUTL_%YcpnHPIwY-{_*-s~Og z+~2MD)-q;#7#j7*aa7L!HR*LR_fYdnU+(OxI-Aq=?HTT=;bA{~r*Yp8G4#9c$FNC+ zCgLTmh?q&em(p-cmlx|#+;wP;YfKhwI%__7n`t7dIQ#huB^HZd9-7C@-v2doUh!-I zTpLeYMXPpeHAah8wT)dQh+0vbimg#A9Y%Q4cP}jT>*z?vU2DDM7t41ML;4b%@hl)Z$w!w2Klv;7 zWClhKeLfx8x}`ldEiFxQI2E7 z=Z?eAO1_TefJlHWvm&2q{5x5{wyKsnIr*9?fw6oPE&blDxe&EfHKN0PIM+!#XC0^sy(eBx(|+V;H$_u{vR#Qrqnt(5!Xd4Q;S z2qf~I+=0V$zQux)$$XW(nwrI3`#O?$~gROmP zc;hv$!XHor`&%^8N|m)L4#IX|R_|Y7_Aq62-k=Zob1<@#7|)CBtY-HL%IkY&Ex_UP zJ8irc8;pqtzV7Sh#vhbv7Iw0Y$;Ow4Iw6oLl^bJ_T84O@tnD~ok>+--~Wj%}^rN`8yB&r1&`y`#-q1AtI9 z@Byi_si(36y6?8Qu<;u*0^f@c?Bo&yBshUhZ9J>>tvx;ds_;ai*-hl$nRF&RYXxD( z@mkK~Bk3C0JyJ)ds@)*IL_QD~K*cm5B+R{XN5@rAxfh9706WbJpbwH-hg?_9`i%`P z&ZM@vy>^Hrp*dY(Uvs5yxjSm>0ptTRFI*RRC3A>GSWb;O_GfVWj5EjV=|8wmx-h1% zPfAy6?_4*zWov_*a{;4QcRELO;I|Rs)C_HQKy|+b#FsVXVQJW1!HrJLRGzIwXXgn0 zN)s(D&&jdecKzUoeZ(@%Au~5q(UIHbOm7gLkznv>(6C5vJ)im}ETZ0Ruva=XElwRB z!>3`!hW(dP?RVI-FxdMY6Mjvs*aP3}1=5;p^#X~A*xtGsD-sL88*m#x>HN1nGk+n_ zLC`k}AkQ)2Qra2H0Wb7s8veZ{CA&R-w zD2=5sAIUF%VzJ>>5s7LK2Uo^QOmSlQspP$`z43^M;hKT~T_ww;t3vCg3W%kxg!n1Q zw|we^v23>W58oU3t_kKkQHSlOx0GCux=Q~cyQepNTOvv)`>qS8iXjjuycd7Q@-_OiXmcSo@LQfA??d>U*2-kS>!9S9Yk%qNrd(uadZFYcbU$e%uZgCXK z?3$Ur?sNbz8yn7QM}kr@`z>M^W*>4sH{@=5)qM3@xB_MOv6Ic~s)7JHF~Tc}Q5(_e z+p0XZW&pl>pOsXEK0W9lLa|&?3nOm=k5Vm?*ypKOhU-w+Tv&`cIzbjN9Z=@GDz%z7 zDS|a0c85hm0YTi}%Csa|`4ds|Do6L7MWo;4@#5jSX*nG#VPvGD|48lS`2v|u9k~6t zY28;GmJ64}DtunyU$~H_t6|uD{V3fA)0v1YtMnw8sQZw)S1irIiytj13Jk;(MgxoK zKRjS{zRF>B+P{vov;pjr(^Sf-f&Bi4?mb=_eby1vPMMUXUt&WX%&yi2`y9|t-NXy% zfnhe4mU*L4v_?IKeC2Tc>JS(`R!U-gQ{&a4d%B`i57+$ftT5*q8EODGOfp1#O@JpS zpLPng_siKz4mZ2E{(=Mu+S%#k45H|Pru@RxdWr`(#HZz zsBHyZlq{MvMY<4CJ3DqhqRy?|X1j+w1Gqwr7(qEW-UC$4&#G z1@VVSJShn5l%IC;Jk$ji37GZc6-)z(JX=DaD*OT}Dr;_^S&qPqpMN{E(^v5N%&PShrebJm> z(+c+4K$B~)CP4Sx5Y*PV*59)`$a1&6T2%j|$QGmm%g3CF8=?)U4`6jaU&B+wbg#hL z#gZ?@6vVB)@v#0^KHJx0Odf~BvEPwX5?ViJgcY0*w&uUJ2&u8@|K-+!xg)G6EB-Z> z5azTCf0nuT9DGwZ(EG`~Ds2+NGW+5i05{(f4kyzjBt=qid{lPq3LmaX$kTTUgR8zYmpl5l+MH30$0U#HiJD4*)24dx|UCUB$Q)IeuXrL7- z$|0IoS6D7(I2)dLcX#Wdd!C3mF}Tj_4r^G}q&t3=5?Qyqou>^P+FW1uW3irn2w$i{ zx{R0Fx(1Vdb}B2?Bh~%)f?9_4raD6hI_4>_GO&;TjUtDJV)W)paW*I;DWkztTCh41 zX{)nQzmj~3V@`Z)_MKUkqMYNi*eYrpqt1`hTPSJ=iR#)$-` zipDF5*^T=tjc2^S@h40gJj@zg919U1FQ;xl!#eVq@{A6`4hQemL^JSAotIVuSvzLE zny(dOyir#2;8)(yZ}w_(=D)S|bHcP`l{ipOs%yQ-k_I{KGkrt*6T$4*_C4bn z(`k52B>6Fol*PhmV!kUh=RA!J%kVhvm{JSN6Q)3q2*YtGsqd?dPSc`I!KY+Xv(|H5IpW+NMN>OAxfLX*2DaanBzA~3R_;nu*Wy%L4+nZa-Wsl z-m$5T?b*}SVd4a_ZckWQGHSxCZP^khThtyvT<*`BIif+GgLUZL&#()}{^!bH?oe_P z@F>}0J>lU|UYcx>p+k`8-5@WpN1)eH11Kvht6o>Uaa~EtR!Ie{tOQn5ysD@OR#b$% z+v59w0$+d6``(!UE-=|O|9T{_54Cj&vbh^9g$nfdzVG8D6@)=~N!>>Uc>n+*cnbXt zXMmlY+%HQa>DH_b;Dj_6$b(BzTF^B0> + + + + + + +Docker-instructions • SplineOmics + + + + + + + + + + + + + + + + + +

+
+ + + + +
+
+ + + + + +
+

Pulling the Docker Container +

+

Pull Docker container:

+
# Docker Hub repo still private, will make it public then
+docker pull thomasrauter/splineomics:0.1.0
+

If you face ‘permission denied’ issues, check out this +vignette

+
+
+

Running the Docker Container +

+

To run the Docker container, you can use one of the +following commands, depending on your operating System. The respective +command needs to be run in a folder where the subfolders +input and output exist. Place your data and +meta (and annotation) files in input, and receive your +output from the container in the output folder.

+

For Linux and macOS:

+
# Bash
+docker run -it -d \
+    -v $(pwd)/input:/home/rstudio/input \
+    -v $(pwd)/output:/home/rstudio/output \
+    -p 8888:8787 \
+    -e PASSWORD=123 \
+    --name splineomics \
+    thomasrauter/splineomics:0.1.0
+

For Windows:

+
# PowerShell
+docker run -it -d `
+    -v "${PWD}\input:/home/rstudio/input" `
+    -v "${PWD}\output:/home/rstudio/output" `
+    -p 8888:8787 `
+    -e PASSWORD=123 `
+    --name splineomics `
+    thomasrauter/splineomics:0.1.0
+

Once the container is running, open a web browser and navigate to http://localhost:8888. Use +rstudio as the username and the password you set with the -e +PASSWORD=123 option.

+

As long as the container is running, you can work on that localhost +page with RStudio, where also the SplineOmics package is +installed. /home/rstudio/ is your R session working +folder.

+

Direct all generated results to /home/rstudio/output, +which is mounted to your local folder output. Your results +will be there.

+

Stop the container:

+
docker stop splineomics
+

Start the container again:

+
docker start splineomics
+
+
+

Inspect Docker container installations +

+

To see all the R packages and system installations that make up the +Docker container, you can run the following command in the terminal of +RStudio on your localhost browser page.

+
cp -r /log home/rstudio/output
+

Because the /home/rstudio/output dir is mounted to your +local filesystem, this will make the installation log files available +there.

+
+
+ + + +
+ + + +
+ +
+

+

Site built with pkgdown 2.1.0.

+
+ +
+
+ + + + + + + + diff --git a/docs/articles/Docker_permission_denied.html b/docs/articles/Docker_permission_denied.html index 5421cc4..1b9ce1e 100755 --- a/docs/articles/Docker_permission_denied.html +++ b/docs/articles/Docker_permission_denied.html @@ -5,7 +5,7 @@ -Docker permission denied • SplineOmics +Docker_permission_denied • SplineOmics @@ -17,16 +17,14 @@ - - - + - +
- +
@@ -143,16 +144,16 @@

10 June, 2024

-

Site built with pkgdown 2.0.9.

+

Site built with pkgdown 2.1.0.

- - + + diff --git a/docs/articles/design_limma_design_formula.html b/docs/articles/design_limma_design_formula.html new file mode 100644 index 0000000..a8a0c02 --- /dev/null +++ b/docs/articles/design_limma_design_formula.html @@ -0,0 +1,273 @@ + + + + + + + +Designing a Limma Design Formula • SplineOmics + + + + + + + + + + + + + + + + + +
+
+ + + + +
+
+ + + + +
+

Introduction +

+

The limma package is a powerful tool for analyzing gene +expression data, particularly in the context of microarrays and RNA-seq. +A critical part of any limma analysis is the design +formula, which specifies the experimental conditions and contrasts that +you are interested in. This vignette provides a guide on how to +construct a limma design formula correctly, with examples +and best practices.

+
+
+

Understanding the Design Matrix +

+

The design matrix is a crucial component in any differential +expression analysis using limma. It defines the +relationships between the samples and the experimental conditions +(factors) under investigation. A well-constructed design matrix allows +limma to correctly model the effects of these factors and +estimate the differential expression.

+
+

Basic Design Formula +

+

In its simplest form, the design formula includes only one factor, +such as treatment vs. control. If your experiment involves comparing two +conditions (e.g., treated vs. untreated), you +can create a design formula like this:

+
+design <- model.matrix(~ 0 + condition, data = meta)
+

Here, condition is a factor variable in your metadata (meta) that +represents the experimental groups.

+

Important Points: The ~ 0 + condition syntax tells R to create a +design matrix without an intercept (i.e., a matrix where each level of +the factor condition is represented by its own column). This approach is +helpful when you want to make direct comparisons between conditions. +Including Multiple Factors If your experiment includes more than one +factor, such as time points and treatments, you can include both in the +design formula:

+
+design <- model.matrix(~ 0 + treatment + time, data = meta)
+

This formula assumes that the effects of treatment and time are +additive (no interaction). If you suspect that the interaction between +treatment and time might be important, you can include an interaction +term:

+
+design <- model.matrix(~ 0 + treatment * time, data = meta)
+

Interaction Term: The treatment * time term includes both the main +effects of treatment and time and their interaction. Blocking Factors In +some experiments, you might have technical or biological replicates, or +other blocking factors (e.g., batch effects). You can include these +blocking factors in your design formula:

+
+design <- model.matrix(~ 0 + treatment + batch, data = meta)
+

This formula accounts for both treatment and batch effects, ensuring +that your analysis is not confounded by batch effects.

+
+
+
+

Creating Contrasts +

+

After defining your design matrix, you will likely want to make +specific comparisons between conditions. This is where contrasts come +in. For example, to compare treated vs. untreated, you can define a +contrast matrix:

+
+contrast <- makeContrasts(
+  treated_vs_untreated = treatmenttreated - treatmentuntreated,
+  levels = design
+)
+
+
+

Practical Example +

+

Let’s say you have an experiment with two treatments (A and B) and +two time points (early and late). Your metadata might look like +this:

+
+meta <- data.frame(
+  sample = c("S1", "S2", "S3", "S4"),
+  treatment = factor(c("A", "A", "B", "B")),
+  time = factor(c("early", "late", "early", "late"))
+)
+

Your design formula would be:

+
+design <- model.matrix(~ 0 + treatment * time, data = meta)
+

And a contrast to compare treatment A at the early time point against +treatment B at the late time point would be:

+
+contrast <- makeContrasts(
+  A_early_vs_B_late = (treatmentA:timeearly) - (treatmentB:timelate),
+  levels = design
+)
+
+
+

Summary +

+
    +
  1. +Intercept or No Intercept: +
      +
    • Starting with ~ 0 means no intercept (i.e., not +including a baseline group in the model).
    • +
    • Starting with ~ 1 (or just ~) includes an +intercept (baseline group).
    • +
    +
  2. +
  3. +Additive Factors: +
      +
    • Factors separated by + indicate additive effects. For +example, ~ 0 + factor1 + factor2 means you are modeling the +effects of factor1 and factor2 additively, +without considering interactions.
    • +
    +
  4. +
  5. +Interaction Terms: +
      +
    • The * symbol is used to model interactions between +factors. For example, ~ 0 + factor1 * factor2 will include +factor1, factor2, and their interaction +(factor1:factor2).
    • +
    • Alternatively, you can specify the interaction explicitly with +:. For example, +~ 0 + factor1 + factor2 + factor1:factor2 is equivalent to +~ 0 + factor1 * factor2.
    • +
    +
  6. +
+
+

Some examples: +

+
    +
  • +~ 0 + factor1 + factor2: Additive model without an +intercept.
  • +
  • +~ 1 + factor1 + factor2: Additive model with an +intercept.
  • +
  • +~ 0 + factor1 * factor2: Model with main effects and +their interaction, no intercept.
  • +
  • +~ 1 + factor1 * factor2: Model with intercept, main +effects, and their interaction.
  • +
+
+
+
+ + + +
+ + + +
+ +
+

+

Site built with pkgdown 2.1.0.

+
+ +
+
+ + + + + + + + diff --git a/docs/articles/get-started.html b/docs/articles/get-started.html index cbe0fa0..a59df02 100755 --- a/docs/articles/get-started.html +++ b/docs/articles/get-started.html @@ -18,15 +18,13 @@ - - - +
- +
@@ -87,7 +88,7 @@

Thomas

10 June, 2024

- +
@@ -98,77 +99,132 @@

10 June, 2024

About this tutorial

This tutorial intends to showcase and explain the capabilities of the -SplineOmics package by walking through a real and complete example, from -start to the end. The example is a time-series proteomics experiment, in -which CHO cells were cultivated in three bioreactors (three biological -replicates). Both in the exponential and stationary growth phase, -samples were taken from each reactor in triplicates at defined -timepoints relative to a feeding of the cells (60 min before feeding, -and 15, 60, 90, 120, and 240 min after). The goal of this analysis is to -find out which of the 7162 cellular proteins show a significant change -over time after the CHO cells were fed. Further, the hits (proteins with -a significant change over time) are clustered based on their temporal -pattern, and a gene set enrichment analysis is performed with each -cluster to see if there are processes which are up- or downregulated -over time after the feeding.

+SplineOmics package by walking through a real and +complete example, from start to finish.

+
+

Example Overview +

+

The example involves a time-series proteomics +experiment, where CHO (chinese hamster ovary) cells were +cultivated in three bioreactors (three biological replicates). The +experiment includes the following setup:

+
    +
  • Samples were taken both during the exponential and +stationary growth phases.
  • +
  • Samples were collected in triplicates from each reactor at defined +timepoints relative to cell feeding: +
      +
    • 60 minutes before feeding
    • +
    • 15, 60, 90, 120, and 240 minutes after feeding
    • +
    +
  • +
+
+
+

Analysis Goals +

+

The main goals of this analysis are:

+
    +
  • +Identify proteins with significant temporal +changes: Out of 7162 cellular proteins, the objective is to +detect which proteins show a significant change over time after the CHO +cells were fed (i.e., the impact of the feeding).
  • +
  • +Cluster hits based on temporal patterns: The +proteins (hits) with significant temporal changes will be clustered +according to their time-based patterns.
  • +
  • +Perform gene set enrichment analysis: For each +cluster, a gene set enrichment analysis will be performed to determine +if specific biological processes are up- or downregulated after +feeding.
  • +
+

Load the packages

 library(SplineOmics)
-#> 
- +library(readxl)

Load the files

-
-data <- read_excel(system.file("extdata", "data.xlsx", package = "SplineOmics"))
-annotation <- read_excel(system.file("extdata", "annotation.xlsx", package = "SplineOmics"))
-meta <- read_excel(system.file("extdata", "meta.xlsx", package = "SplineOmics"))
+

In this example, the data.xlsx file contains the numeric values (the +intensities) and also the feature descriptions, such as gene and protein +name (= annotation part)

+

The file meta.xlsx contains the meta information, which are the +descriptions of the columns of the numeric values of data.

+

(These example files are part of the package and don’t have to be +present on your system).

+

Please note that this dataset is an actual experimental dataset, but +the annotation information, such as gene names, has been removed since +it is not yet published. Instead, the dataset includes randomly +generated gene symbols and gene names corresponding to Cricetulus +griseus (Chinese Hamster) for each row. This is intended to demonstrate +the functionality of the package.

+
+
+data_excel <- readRDS(system.file(
+  "extdata",
+  "proteomics_data.rds",
+  package = "SplineOmics"
+  ))
 
-print(data)
-#> # A tibble: 7,162 × 36
-#>    E09_TP01_Exponential E10_TP01_Exponential E12_TP01_Exponential
-#>                   <dbl>                <dbl>                <dbl>
-#>  1                 15.3                 15.2                 15.3
-#>  2                 14.5                 14.7                 14.6
-#>  3                 16.0                 16.1                 16.1
-#>  4                 16.2                 16.1                 16.2
-#>  5                 15.1                 15.1                 15.2
-#>  6                 14.6                 14.7                 14.6
-#>  7                 15.0                 15.0                 15.1
-#>  8                 14.8                 14.7                 14.7
-#>  9                 20.5                 20.6                 20.7
-#> 10                 16.4                 16.4                 16.4
-#> # ℹ 7,152 more rows
-#> # ℹ 33 more variables: E09_TP02_Exponential <dbl>, E10_TP02_Exponential <dbl>,
-#> #   E12_TP02_Exponential <dbl>, E09_TP03_Exponential <dbl>,
-#> #   E10_TP03_Exponential <dbl>, E12_TP03_Exponential <dbl>,
-#> #   E09_TP04_Exponential <dbl>, E10_TP04_Exponential <dbl>,
-#> #   E12_TP04_Exponential <dbl>, E09_TP05_Exponential <dbl>,
-#> #   E10_TP05_Exponential <dbl>, E12_TP05_Exponential <dbl>, …
-
-print(annotation)
-#> # A tibble: 7,162 × 6
-#>    `Potential contaminant` Protein.Group         Protein.Ids Protein.Names Genes
-#>    <lgl>                   <chr>                 <chr>       <chr>         <chr>
-#>  1 NA                      A0A8C2MV03;A0A8C2N2L3 A0A8C2MV03… A0A8C2MV03_C… Abhd4
-#>  2 NA                      A0A8C2N4G8            A0A8C2N4G8  A0A8C2N4G8_C… Gbe1 
-#>  3 NA                      G3GR83                G3GR83      G3GR83_CRIGR  Akr1…
-#>  4 NA                      A0A098KX95            A0A098KX95  A0A098KX95_C… Agpa…
-#>  5 NA                      G3HGQ9                G3HGQ9      G3HGQ9_CRIGR  Agpa…
-#>  6 NA                      A0A8C2MM23            A0A8C2MM23  A0A8C2MM23_C… Agpa…
-#>  7 NA                      G3H8X2                G3H8X2      G3H8X2_CRIGR  Agpa…
-#>  8 NA                      A0A8C2MXW6            A0A8C2MXW6… A0A8C2MXW6_C… NA   
-#>  9 NA                      A0A061HUZ2            A0A061HUZ2  A0A061HUZ2_C… H671…
-#> 10 NA                      A0A8C2MC97            A0A8C2MC97  A0A8C2MC97_C… Plcb3
-#> # ℹ 7,152 more rows
-#> # ℹ 1 more variable: First.Protein.Description <chr>
-
-print(meta)
+
+meta <- read_excel(
+  system.file(
+    "extdata",
+    "proteomics_meta.xlsx",
+    package = "SplineOmics"
+    )
+  )
+
+# Extract the annotation part from the dataframe.
+first_na_col <- which(is.na(data_excel[1,]))[1]
+annotation <- data_excel |>
+  dplyr::select((first_na_col + 1):ncol(data_excel)) |>
+  dplyr::slice(-c(1:3))
+
+print(data_excel)
+#> # A tibble: 4,165 × 40
+#>    `Sample ID` `1`   `2`   `3`   `4`   `5`   `6`   `7`   `8`   `9`   `10`  `11` 
+#>    <chr>       <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
+#>  1 Reactor     E09   E10   E12   E09   E10   E12   E09   E10   E12   E09   E10  
+#>  2 Time Point  TP01  TP01  TP01  TP02  TP02  TP02  TP03  TP03  TP03  TP04  TP04 
+#>  3 Phase of F… Expo… Expo… Expo… Expo… Expo… Expo… Expo… Expo… Expo… Expo… Expo…
+#>  4 NA          15.2… 15.2… 15.3… 15.1… 15.2… 15.0… 15.2… 15.2… 15.2… 15.1… 15.2…
+#>  5 NA          15.0… 15.1… 15.2… 15.1… 15.1… 15.2… 15.2… 15.3… 15.2… 15.1… 15.1…
+#>  6 NA          14.5… 14.7… 14.6… 14.5… 14.6… 14.6… 14.5… 14.6… 14.7… 14.5… 14.6…
+#>  7 NA          16.3… 16.4… 16.4… 16.4… 16.4… 16.4… 16.3… 16.3… 16.4… 16.4… 16.4…
+#>  8 NA          16.7… 16.7… 16.6… 16.7… 16.7… 16.7… 16.7… 16.7… 16.6… 16.6… 16.7…
+#>  9 NA          13.8… 13.7… 13.9… 13.9… 13.9… 13.9… 13.9… 13.9… 13.9… 13.9… 13.9…
+#> 10 NA          21.8… 21.7… 21.6… 21.8… 21.6… 21.5… 21.5… 21.6… 21.5… 21.6… 21.5…
+#> # ℹ 4,155 more rows
+#> # ℹ 28 more variables: `12` <chr>, `13` <chr>, `14` <chr>, `15` <chr>,
+#> #   `16` <chr>, `17` <chr>, `18` <chr>, `19` <chr>, `20` <chr>, `21` <chr>,
+#> #   `22` <chr>, `23` <chr>, `24` <chr>, `25` <chr>, `26` <chr>, `27` <chr>,
+#> #   `28` <chr>, `29` <chr>, `30` <chr>, `31` <chr>, `32` <chr>, `33` <chr>,
+#> #   `34` <chr>, `35` <chr>, `36` <chr>, ...38 <lgl>, Gene_symbol <chr>,
+#> #   Gene_name <chr>
+print(annotation)
+#> # A tibble: 4,162 × 2
+#>    Gene_symbol  Gene_name                                              
+#>    <chr>        <chr>                                                  
+#>  1 LOC113838844 cone-rod homeobox protein-like                         
+#>  2 Wdr83os      WD repeat domain 83 opposite strand                    
+#>  3 Cubn         cubilin                                                
+#>  4 Dynlt1       dynein light chain Tctex-type 1                        
+#>  5 Ostc         oligosaccharyltransferase complex non-catalytic subunit
+#>  6 Unc5cl       unc-5 family C-terminal like                           
+#>  7 Cfl1         cofilin 1                                              
+#>  8 LOC100752202 HEN methyltransferase 1                                
+#>  9 LOC100755162 acyl-coenzyme A synthetase ACSM5, mitochondrial        
+#> 10 LOC100768921 40S ribosomal protein S21                              
+#> # ℹ 4,152 more rows
+print(meta)
 #> # A tibble: 36 × 5
 #>    Sample.ID            Reactor Time.Point Phase        Time
 #>    <chr>                <chr>   <chr>      <chr>       <dbl>
@@ -183,225 +239,367 @@ 

Load the files#> 9 E12_TP03_Exponential E12 TP03 Exponential 60 #> 10 E09_TP04_Exponential E09 TP04 Exponential 90 #> # ℹ 26 more rows

+
+

Bring the Inputs into the Standardized Format +

+

Since data_excel is not in the format required by the +SplineOmics package, it needs some processing. This can +be done with a few commands in R, but if your file has a specific +structure, the function extract_data() can handle this +automatically.

+
+

File Structure Requirements +

+

If your file looks like the one used here, where:

+
    +
  • The data matrix field is on the left
  • +
  • The annotation info is on the right
  • +
  • These fields are separated by one empty column
  • +
+

Then, extract_data() can:

+
    +
  • +Identify the data matrix field and convert it into +a dataframe.
  • +
  • +Create column headers from the information written +in the cells above the respective columns of the data matrix field.
  • +
  • +Assign rowheaders: +
      +
    • If no annotation columns are specified, rowheaders will be +increasing numbers.
    • +
    • If annotation columns are specified (like +"First.Protein.Description" and "ID" in this +example), these will be combined to form the rowheaders (feature +names).
    • +
    +
  • +
+
+
+

Usage in Plotting +

+

The generated rowheaders will be used to label any plots where a +feature is shown individually, such as:

+
    +
  • +Spline plots with the datapoints from an individual +feature.
  • +
+
+data <- extract_data(
+  data = data_excel,
+  feature_name_columns = c("Gene_name"),
+  user_prompt = FALSE
+  )
+
+

Perform EDA (exploratory data analysis)

-

The first step in analysing data is usually EDA. EDA involves -summarizing the main characteristics of the data, often using plots. -This can involve densitiy distributions, boxplots, PCA, correlation -heatmaps, and more. This process can be carried out by using the package -function explore_data(). The necessary arguments are the data matrix -(data), the meta table (meta), the name of the column that contains the -levels of the experiment (condition) (the levels here are Exponential -and Stationary), and the report_info list, that contains general info -about the analysis. Optional arguments are meta_batch_column and -meta_batch2_column, that allow to specify the column name that contain -batch effect 1 and 2. These columns will be used to run the -removeBatchEffect function of limma to remove the batch effect of the -data for plotting. When at least one batch column is provided like this, -the function will not just generate one EDA HTML report, but two. One -for the uncorrected data, and one for the batch corrected data. These -reports are written either in the current working dir as default -location, or to a location specified with the optional argument -report_dir. The function also returns all plots generated. Lastly, if it -is desired that no report should be generated, the optional argument -report can be set to FALSE.

-
+

The first step in analyzing data is typically Exploratory +Data Analysis (EDA). EDA involves summarizing the main +characteristics of the data, often through visualizations.

+
+

Common EDA Plots +

+

Some common types of EDA plots include:

+
    +
  • Density distributions
  • +
  • Boxplots
  • +
  • PCA (Principal Component Analysis)
  • +
  • Correlation heatmaps
  • +
+
+
+

Using explore_data() for EDA +

+

The SplineOmics package provides the function +explore_data() to perform EDA. This function requires the +following arguments:

+
    +
  • +data: The data matrix.
  • +
  • +meta: The metadata table.
  • +
  • +condition: The name of the column in the metadata +that contains the levels of the experiment (e.g., “Exponential” and +“Stationary”).
  • +
  • +report_info: A list that contains general +information about the analysis.
  • +
+
+
+

Optional Arguments +

+

In addition to the required arguments, explore_data() +offers several optional arguments:

+
    +
  • meta_batch_column: The name of the column that +contains the first batch effect.

  • +
  • +

    meta_batch2_column: The name of the column that +contains the second batch effect.

    +

    If at least one batch column is provided, the function will:

    +
      +
    • Use the removeBatchEffect() function from +limma to remove the batch effect from the data before +plotting.
    • +
    • Generate two EDA HTML reports: one for the uncorrected +data and one for the batch-corrected +data.
    • +
    +
  • +
+
+
+

Output and Report Options +

+
    +
  • By default, the reports are saved in the current working +directory, but this location can be changed using the +report_dir argument.
  • +
  • The function also returns all plots generated +during the analysis.
  • +
  • If you do not want a report to be generated, you can set the +report argument to FALSE.
  • +
+
 report_info <- list(
   omics_data_type = "PTX",
   data_description = "Proteomics data of CHO cells",
   data_collection_date = "February 2024",
   analyst_name = "Thomas Rauter",
   contact_info = "thomas.rauter@plus.ac.at",
-  project_name = "DGTX")
-
-condition <- "Phase"
-meta_batch_column <- "Reactor"
+  project_name = "DGTX"
+  )
 
-report_dir <- here::here("results", "explore_data")
-
-plots <- explore_data(data = data,
-                      meta = meta,
-                      condition = condition,
-                      report_info = report_info,
-                      meta_batch_column = meta_batch_column,
-                      report_dir = report_dir)
-

You can view the generated analysis report of the -not-batch-corrected-data here: here

-

The EDA plots can tell you a range of things. The plots in the HTML -report are grouped into three categories: Distribution and Variability -Analysis, Time Series Analysis, and Dimensionality Reduction and -Clustering.

+report_dir <- here::here( + "results", + "explore_data" + )
+
+splineomics <- create_splineomics(
+  data = data,
+  meta = meta,
+  annotation = annotation,
+  report_info = report_info,
+  condition = "Phase",
+  meta_batch_column = "Reactor"
+)
+
+plots <- explore_data(
+  splineomics = splineomics,
+  report_dir = report_dir
+  )
-
-

Find the best hyperparameters -

-

Before we can run the limma spline analysis, we have to find out -which “hyperparameters” are the best. Hyperparameters in this context -are for example degree of freedom, different versions of the data -(outlier removed vs. not removed), different limma design formulas, etc. -Rationally thinking about which combination of hyperparameters to use is -very challenging. Instead, it is often better to just try out a bunch of -combinations and choose the best. The function -screen_limma_hyperparams() does this for you. For each hyperparameter, -you can just specify all the values that you would like to try, and the -function then runs the limma spline analysis with the combinations that -can be formed with the hyperparameters that you specified. Not every -single combo is generated, but instead there are “inner” and “outer” -hyperparameters, and only for all “outer” hyperparameters, all combos -are generated. The “inner” hyperparameters are the adj. p-value -thresholds and the spline parameters. For example, if you have two -different versions of one dataset (one time the full dataset, and one -time the dataset with some potential outliers removed), these are -considered “outer” hyperparameters in this context. The function would -generate all possible comparisons for the “outer” hyperparameters, which -is just a single comparison. Then, for both versions of the data, every -“inner” hyperparameter combo is generated. Lets say you specified -natural cubic splines for both, with a degree of freedom of either 2 or -3. For the adj. p-value threshold, you specified 0.05 or 0.1. For each -version of data, it would test out all combinations of the spline -parameters and the adj. p-value threshold. In this case, this is DoF = -2, thesh = 0.05; DoF = 3, tresh = 0.05; DoF = 2, tresh = 0.1; DoF = 3, -tresh = 0.1.

-
+
+

Finding the Best Hyperparameters +

+

Before running the limma spline analysis, it is +important to find the best “hyperparameters”. In this context, +hyperparameters include:

+
    +
  • Degree of freedom (DoF)
  • +
  • +Different versions of the data (e.g., outlier +removed vs. not removed)
  • +
  • Different limma design formulas
  • +
+
+

Challenge of Hyperparameter Selection +

+

Rationally determining the best combination of hyperparameters can be +very challenging. Instead of manually selecting combinations, it is +often more effective to try out multiple combinations and choose the +best-performing one.

+
+
+

Using screen_limma_hyperparams() +

+

The function screen_limma_hyperparams() automates the +process of testing different combinations of hyperparameters. Here’s how +it works:

+
    +
  • +Specify values: For each hyperparameter, you can +specify all the values you want to test.
  • +
  • +Run combinations: The function runs the +limma spline analysis with combinations formed from the +hyperparameters you’ve provided.
  • +
+
+
+

Inner vs. Outer Hyperparameters +

+

Not every possible combination is generated. Instead, there are +inner and outer hyperparameters:

+
    +
  • +Outer hyperparameters: These include things like +different versions of the dataset (e.g., full dataset +vs. dataset with outliers removed). +
      +
    • All possible combinations of outer hyperparameters are +generated.
    • +
    +
  • +
  • +Inner hyperparameters: These include +adjusted p-value thresholds and spline +parameters (e.g., degree of freedom). +
      +
    • For each version of the data (outer hyperparameter), all +combinations of inner hyperparameters are tested.
    • +
    +
  • +
+
+
+

Example +

+

For example, if you have two versions of a dataset (one full dataset, +and one with some outliers removed), these versions are considered outer +hyperparameters. The function will generate comparisons for both +versions of the dataset.

+

For each version, let’s say you specify the following inner +hyperparameters:

+
    +
  • +Spline parameters: Natural cubic splines with a +degree of freedom of either 2 or 3.
  • +
  • +Adjusted p-value threshold: 0.05 or 0.1.
  • +
+

The function will generate and test all combinations of the spline +parameters and p-value thresholds for both versions of the data:

+
    +
  • DoF = 2, threshold = 0.05
  • +
  • DoF = 3, threshold = 0.05
  • +
  • DoF = 2, threshold = 0.1
  • +
  • DoF = 3, threshold = 0.1
  • +
+

This allows you to systematically explore different combinations and +select the optimal hyperparameters for your analysis.

+
 data1 <- data 
 meta1 <- meta
 
-# (These are not outliers, just removed to showcase this functionality)
-data2 <- data[, -c(1, 2)]
-meta2 <- meta[-c(1, 2),]
+data2 <- data[, !(colnames(data) %in% c(
+  "E12_TP05_Exponential", 
+  "E10_TP10_Stationary"
+  )
+  )]
+meta2 <- meta[!meta$`Sample.ID` %in% c(
+  "E12_TP05_Exponential", 
+  "E10_TP10_Stationary"
+  ), ]
 
 datas <- list(data1, data2) 
-datas_descr <- c("full_data", "outliers_removed") 
+datas_descr <- c(
+  "full_data",
+  "outliers_removed"
+  ) 
 
 metas <- list(meta1, meta2) 
-designs <- c("~ 1 + Phase*X + Reactor", "~ 1 + X + Reactor") 
+designs <- c(
+  "~ 1 + Phase*X + Reactor",
+  "~ 1 + X + Reactor"
+  ) 
 condition <- "Phase" 
-report_dir <- here::here("results", "hyperparams_screen_reports") 
+report_dir <- here::here(
+  "results",
+  "hyperparams_screen_reports"
+  ) 
 meta_batch_column = "Reactor" 
-pthresholds <- c(0.05, 0.1)
+pthresholds <- c(
+  0.05,
+  0.1
+  )
 
-# Every row a combo to test.
-spline_test_configs <- data.frame(spline_type = c("n", "n", "n", "n"),
-                                  degree = c(NA, NA, NA, NA),
-                                  dof = c(2L, 3L, 4L, 5L),
-                                  knots = I(list(c(NA), c(NA), c(NA), c(NA))),                                                        bknots = I(list(c(NA), c(NA), c(NA), c(NA))))
-
-screen_limma_hyperparams(datas,
-                         datas_descr,
-                         metas,
-                         designs,
-                         condition,
-                         spline_test_configs,
-                         report_info,
-                         report_dir,
-                         pthresholds,
-                         meta_batch_column)
-

To see the output HTML report, click here: here

+# Create a dataframe with combinations of spline parameters to test +# (every row a combo to test) +spline_test_configs <- data.frame( + # 'n' stands for natural cubic splines, b for B-splines. + spline_type = c("n", "n", "b", "b"), + # Degree is not applicable (NA) for natural splines. + degree = c(NA, NA, 2L, 4L), + # Degrees of freedom (DoF) to test. + # Higher dof means spline can fit more complex patterns. + dof = c(2L, 3L, 3L, 4L) +) + +print(spline_test_configs) +#> spline_type degree dof +#> 1 n NA 2 +#> 2 n NA 3 +#> 3 b 2 3 +#> 4 b 4 4
+
+screen_limma_hyperparams(
+  splineomics,
+  datas,
+  datas_descr,
+  metas,
+  designs,
+  spline_test_configs,
+  report_dir,
+  pthresholds,
+  )
+

You can view an example report here

+

This report contains the results for the comparison of the “outer” +hyperparameters data 1 and design (formula) 1 against data 1 and design +2. For both of those, all combinations of the “inner” hyperparameters +are generated (every possible combination of all specified adj. p-value +thresholds and spline configs).

+

The encoding of this is here +(This is part of the output of the screen_limma_hyperparams +function).

+
+

Run limma spline analysis

-

Once we identified the hyperparameters, that are likely the best -ones, we can run the limma spline analysis with them and get the -results.

+

Once we identified the hyperparameters that are likely the best ones, +we can run the limma spline analysis with them and get the results.

+

Lets just assume for now that the new parameters, with which the +SplineOmics object is updated, are the best for this analysis. The +choice depends on the analysis. For example, for this analysis, natural +cubic splines (n) with a dof of two seemed to fit the data best (not +overfitting, but also not underfitting), which was the reason those +spline parameters were chosen.

+
+splineomics <- update_splineomics(
+  splineomics = splineomics,
+  design = "~ 1 + Phase*X + Reactor",
+  data = data2, 
+  meta = meta2,  
+  spline_params = list(
+    spline_type = c("n"),   
+    dof = c(2L)
+    )
+)
 
-design <- "~ 1 + Phase*X + Reactor"     # Chosen limma design
-
-spline_params = list(spline_type = c("n"),  # Chosen spline parameters
-                     dof = c(2L))
-
 # Run the limma spline analysis
-result <- run_limma_splines(data,   # Chosen version of the data
-                            meta,
-                            design,
-                            spline_params = spline_params,
-                            condition)
+splineomics <- run_limma_splines(
+  splineomics
+  )
 #> Interaction terms identified in limma design formula. Selecting mode == integrated. This means that all levels are analysed using the full data.
-#> The time values do not change consistently after the replicates.
-
-
-top_tables1 <- result$time_effect 
-print(top_tables1)
-#> $Phase_Exponential
-#> # A tibble: 7,162 × 9
-#>         X1      X2 AveExpr     F   P.Value adj.P.Val feature_index feature_names
-#>      <dbl>   <dbl>   <dbl> <dbl>     <dbl>     <dbl>         <int> <chr>        
-#>  1  0.136   0.222     20.5  19.4   3.61e-6   0.00990          5683 5683         
-#>  2 -0.177   0.242     20.9  17.1   1.03e-5   0.00990           110 110          
-#>  3  0.0716  0.408     18.5  17.0   1.07e-5   0.00990          3253 3253         
-#>  4  0.0457 -0.216     16.2  16.6   1.30e-5   0.00990          2861 2861         
-#>  5 -0.0365  0.203     17.8  16.6   1.31e-5   0.00990          2514 2514         
-#>  6  0.0707  0.248     21.6  16.6   1.33e-5   0.00990          5321 5321         
-#>  7  0.250   0.154     17.3  16.4   1.46e-5   0.00990          6689 6689         
-#>  8 -0.644  -0.0790    14.3  16.4   1.46e-5   0.00990          6127 6127         
-#>  9 -0.376  -0.408     16.2  16.3   1.50e-5   0.00990           213 213          
-#> 10  0.128  -0.116     15.4  16.3   1.50e-5   0.00990          4067 4067         
-#> # ℹ 7,152 more rows
-#> # ℹ 1 more variable: intercept <dbl>
-#> 
-#> $Phase_Stationary
-#> # A tibble: 7,162 × 9
-#>         X1      X2 AveExpr     F   P.Value adj.P.Val feature_index feature_names
-#>      <dbl>   <dbl>   <dbl> <dbl>     <dbl>     <dbl>         <int> <chr>        
-#>  1 -0.656  -0.375     14.3  26.8   1.85e-7   0.00133          6127 6127         
-#>  2 -0.360  -0.221     15.5  16.2   1.62e-5   0.0345           1465 1465         
-#>  3 -0.313  -0.129     17.6  16.0   1.71e-5   0.0345           2722 2722         
-#>  4 -0.363  -0.107     19.2  15.8   1.92e-5   0.0345           6549 6549         
-#>  5 -1.13   -0.769     11.7  15.3   2.41e-5   0.0345           1231 1231         
-#>  6  0.267   0.0878    14.5  12.8   8.95e-5   0.107            1092 1092         
-#>  7  0.0815 -0.254     13.9  12.3   1.21e-4   0.110            5503 5503         
-#>  8 -0.432  -0.189     15.1  12.3   1.22e-4   0.110            1399 1399         
-#>  9 -0.815  -0.503     16.8  11.9   1.51e-4   0.120            3187 3187         
-#> 10  0.824   0.461     11.3  11.3   2.07e-4   0.148            4277 4277         
-#> # ℹ 7,152 more rows
-#> # ℹ 1 more variable: intercept <dbl>
-
-
-top_tables2 <- result$avrg_diff_conditions 
-print(top_tables2)
-#> $avrg_diff_Exponential_vs_Stationary
-#> # A tibble: 7,162 × 9
-#>    logFC AveExpr     t  P.Value adj.P.Val     B feature_index feature_names
-#>    <dbl>   <dbl> <dbl>    <dbl>     <dbl> <dbl>         <int> <chr>        
-#>  1 -2.85    17.1 -55.5 2.71e-32  1.94e-28  63.2          6548 6548         
-#>  2 -1.26    16.6 -45.8 8.78e-30  3.14e-26  57.8          1156 1156         
-#>  3 -1.51    15.9 -41.5 1.71e-28  4.09e-25  55.0          2623 2623         
-#>  4 -2.63    15.0 -40.7 3.04e-28  5.44e-25  54.4           822 822          
-#>  5 -2.52    15.3 -39.1 1.01e-27  1.44e-24  53.3          4129 4129         
-#>  6 -1.81    16.1 -38.5 1.63e-27  1.95e-24  52.8          1123 1123         
-#>  7 -2.72    14.3 -37.0 5.42e-27  5.55e-24  51.7          1098 1098         
-#>  8 -2.10    14.2 -36.6 7.45e-27  6.67e-24  51.3          3158 3158         
-#>  9 -2.34    16.1 -35.4 2.02e-26  1.61e-23  50.4          3155 3155         
-#> 10 -2.71    14.6 -35.3 2.32e-26  1.66e-23  50.2          2955 2955         
-#> # ℹ 7,152 more rows
-#> # ℹ 1 more variable: intercept <dbl>
-
-
-top_tables3 <- result$interaction_condition_time 
-print(top_tables3) 
-#> $time_interaction_Exponential_vs_Stationary
-#> # A tibble: 7,162 × 9
-#>    PhaseStationary.X1 PhaseStationary.X2 AveExpr     F   P.Value adj.P.Val
-#>                 <dbl>              <dbl>   <dbl> <dbl>     <dbl>     <dbl>
-#>  1             -0.519             0.147     14.1 14.1  0.0000458     0.328
-#>  2              1.51             -0.0622    12.4 12.3  0.000117      0.394
-#>  3              2.71              0.698     12.9 11.7  0.000171      0.394
-#>  4             -0.223             0.210     15.3 10.8  0.000280      0.394
-#>  5              0.967             0.0145    13.5 10.7  0.000298      0.394
-#>  6              0.510             0.115     16.5 10.2  0.000401      0.394
-#>  7              1.13             -0.240     12.3  9.72 0.000538      0.394
-#>  8             -0.121            -0.179     15.9  9.72 0.000539      0.394
-#>  9             -0.311            -0.144     17.3  9.71 0.000542      0.394
-#> 10              0.602             0.302     12.8  9.69 0.000550      0.394
-#> # ℹ 7,152 more rows
-#> # ℹ 3 more variables: feature_index <int>, feature_names <chr>, intercept <dbl>
+#> Column 'Reactor' of meta will be used to remove the batch effect for the plotting +#> Info limma spline analysis completed successfully

The output of the function run_limma_splines() is a named list, where -each element is a specific “category” of results. Each of those elements -is a list, containing as elements the respective limma topTables, either -for each level or each comparison between two levels.

+each element is a specific “category” of results. Refer to this +document for an explanation of the different result categories. Each +of those elements is a list, containing as elements the respective limma +topTables, either for each level or each comparison between two +levels.

The element “time_effect” is a list, where each element is the topTable where the p-value for each feature for the respective level are reported.

@@ -417,14 +615,18 @@

Build limma report
-report_dir <- here::here("results", "create_limma_reports")
+
+report_dir <- here::here(
+  "results",
+  "create_limma_reports"
+  )
 
-create_limma_report(run_limma_splines_result = result,
-                    report_info = report_info,
-                    report_dir = report_dir)
+plots <- create_limma_report( + splineomics, + report_dir = report_dir + )

You can view the generated analysis report of the create_limma_report -function here: here

+function here.

Cluster the hits (significant features) @@ -434,28 +636,43 @@

Cluster the hits (significant fea hit is by setting an adj. p-value threshold for every level. Then, hierarchical clustering is used to place every hit in one of as many clusters as we have specified for that specific level.

-
-adj_pthresholds <- c(0.05, 0.05)   
-clusters <- list(2L, 2L)   
-report_dir <- here::here("results", "clustering_reports")
+
+adj_pthresholds <- c(
+  0.05,
+  0.05
+  )
 
-clustering_results <- cluster_hits(top_tables = top_tables1, 
-                                   data = data, 
-                                   meta = meta, 
-                                   design = design,
-                                   condition = condition, 
-                                   spline_params = spline_params,
-                                   adj_pthresholds = adj_pthresholds,
-                                   clusters = clusters,
-                                   report_info = report_info,
-                                   meta_batch_column = meta_batch_column,
-                                   report_dir = report_dir,
-                                   report = TRUE)
-#> Interaction terms identified in limma design formula. Selecting mode == integrated. This means that all levels are analysed using the full data.
-#> The time values do not change consistently after the replicates.
-#> Column 'Reactor' of meta will be used to remove the batch effect for the plotting
-#> [1] "Generating report. This takes a few seconds."
-

To see the output HTML report, click here: here

+clusters <- c( + 6L, + 3L + ) + +report_dir <- here::here( + "results", + "clustering_reports" + ) + +plot_info = list( + y_axis_label = "log2 intensity", + time_unit = "min", + treatment_labels = c("Feeding"), + treatment_timepoints = c(0) +) + +gene_column_name <- "Gene_symbol" +genes <- data_excel[[gene_column_name]][4:nrow(data_excel)] + +clustering_results <- cluster_hits( + splineomics = splineomics, + analysis_type = "time_effect", + adj_pthresholds = adj_pthresholds, + clusters = clusters, + genes = genes, + plot_info = plot_info, + report_dir = report_dir, + )
+

You can view the generated analysis report of the cluster_hits +function here.

Perform gene set enrichment analysis (GSEA) @@ -463,58 +680,61 @@

Perform gene set enrichment a

To each clustered hit, the respective gene can be assigned and GSEA performed. For this, the Enrichr databases of choice have to be downloaded:

-
-gene_set_lib <- c("WikiPathways_2019_Human",
-                  "NCI-Nature_2016",
-                  "TRRUST_Transcription_Factors_2019",
-                  "MSigDB_Hallmark_2020",
-                  "GO_Cellular_Component_2018",
-                  "CORUM",
-                  "KEGG_2019_Human",
-                  "TRANSFAC_and_JASPAR_PWMs",
-                  "ENCODE_and_ChEA_Consensus_TFs_from_ChIP-X",
-                  "GO_Biological_Process_2018",
-                  "GO_Molecular_Function_2018",
-                  "Human_Gene_Atlas")
+
+gene_set_lib <- c(
+  "WikiPathways_2019_Human",
+  "NCI-Nature_2016",
+  "TRRUST_Transcription_Factors_2019",
+  "MSigDB_Hallmark_2020",
+  "GO_Cellular_Component_2018",
+  "CORUM",
+  "KEGG_2019_Human",
+  "TRANSFAC_and_JASPAR_PWMs",
+  "ENCODE_and_ChEA_Consensus_TFs_from_ChIP-X",
+  "GO_Biological_Process_2018",
+  "GO_Molecular_Function_2018",
+  "Human_Gene_Atlas"
+  )
 
 download_enrichr_databases(gene_set_lib)

Per default the file is placed in the current working directory, which is the root dir of the R project.

-

To run GSEA, a genes vector has to be created, containing all the -underlying genes of the features. The downloaded database file has to be -loaded as a dataframe. Further, optionally, the clusterProfiler -parameters and the report dir can be specified. The function -create_gsea_report() runs GSEA using clusterProfiler, generates an HTML -report and returns the GSEA dotplots in R.

-
-# Get gene vector
-gene_column_name <- "Genes"
-genes <- annotation[[gene_column_name]][1:nrow(annotation)]
-genes <- sub(" .*", "", genes)
-genes <- sub(";.*", "", genes)
-genes <- sub("_.*", "", genes)
-genes <- sub("-.*", "", genes)
-
-downloaded_dbs_filepath <- 
+

To run GSEA, the downloaded database file has to be loaded as a +dataframe. Further, optionally, the clusterProfiler parameters and the +report dir can be specified. The function create_gsea_report() runs GSEA +using clusterProfiler, generates an HTML report and returns the GSEA +dotplots in R.

+
+downloaded_dbs_filepath <-
   here::here("all_databases_08_04_2024-12_41_50.tsv")
-databases <- readr::read_tsv(downloaded_dbs_filepath, col_types = readr::cols())
 
-clusterProfiler_params <- list(adj_p_value = 0.05,
-                               pAdjustMethod = "BH",
-                               minGSSize = 10,
-                               maxGSSize = 500,
-                               qvalueCutoff = 0.2)
+databases <- readr::read_tsv(
+  downloaded_dbs_filepath,
+  col_types = readr::cols()
+  )
+
+clusterProfiler_params <- list(
+  adj_p_value = 0.05,
+  pAdjustMethod = "BH",
+  minGSSize = 10,
+  maxGSSize = 500,
+  qvalueCutoff = 0.2
+  )
 
-report_dir <- here::here("results", "gsea_reports")
+report_dir <- here::here(
+  "results",
+  "gsea_reports"
+  )
 
-result <- create_gsea_report(levels_clustered_hits = 
-                                  clustering_results$clustered_hits_levels,
-                             genes = genes,
-                             databases = databases,
-                             params = clusterProfiler_params,
-                             report_info = report_info,
-                             report_dir = report_dir)
-

To see the output HTML report, click here: here

+result <- create_gsea_report( + levels_clustered_hits = clustering_results$clustered_hits_levels, + databases = databases, + params = clusterProfiler_params, + report_info = report_info, + report_dir = report_dir + )
+

You can view the generated analysis report of the cluster_hits +function here.

Every row in the dotplots is a term from a specific database, and the columns are the respective clusters. The color scale contains the info about the odds ratio and the size the -log10 adj. p-value. Only terms @@ -529,9 +749,7 @@

Perform gene set enrichment a +

@@ -544,16 +762,16 @@

Perform gene set enrichment a

-

Site built with pkgdown 2.0.9.

+

Site built with pkgdown 2.1.0.

- - + + diff --git a/docs/articles/index.html b/docs/articles/index.html index 9b90dcd..2030adc 100755 --- a/docs/articles/index.html +++ b/docs/articles/index.html @@ -1,9 +1,9 @@ -Articles • SplineOmicsArticles • SplineOmics - +
- +
@@ -57,9 +60,11 @@

Articles

All vignettes

-
Docker permission denied
+
Designing a Limma Design Formula
+
+
Docker_permission_denied
-
functions-in-depth
+
Docker-instructions
get-started
@@ -73,15 +78,15 @@

All vignettes

-

Site built with pkgdown 2.0.9.

+

Site built with pkgdown 2.1.0.

- - + + diff --git a/docs/authors.html b/docs/authors.html index 314fddc..b0061ca 100755 --- a/docs/authors.html +++ b/docs/authors.html @@ -1,9 +1,9 @@ -Authors and Citation • SplineOmicsAuthors and Citation • SplineOmics - + - +
@@ -54,23 +57,23 @@

Authors and Citation

- +
  • -

    Thomas Rauter. Maintainer. +

    Thomas Rauter. Maintainer.

Citation

- +

Rauter T (2024). SplineOmics: Streamlines the process of analysing omics timeseries data with splines. -R package version 0.1.0. +R package version 0.1.0.

@Manual{,
   title = {SplineOmics: Streamlines the process of analysing omics timeseries data with splines},
@@ -90,15 +93,15 @@ 

Citation

-

Site built with pkgdown 2.0.9.

+

Site built with pkgdown 2.1.0.

- - + + diff --git a/docs/example_report.html b/docs/example_report.html deleted file mode 100755 index 83395e3..0000000 --- a/docs/example_report.html +++ /dev/null @@ -1,74 +0,0 @@ -clustered hits

clustered hits | PTX | 16_05_2024-16_55_12

- - - - - - - - - - - -
omics data type - :PTX
data description - :Gene expression levels over time.
data collection date - :2024-05-15
analyst name - :Thomas Rauter
project name - :DGTX
dataset name - :CHO Cell Study
limma design - :~ 1 + Phase*X + Reactor
method description - :Spline analysis for time-series data.
results summary - :Identified significant changes in gene expression.
conclusions - :Potential biomarkers identified for further validation.
contact info - :rauterthomas0@gmail.com
-
-

Table of Contents

-
-

Level: Exponential

-

- Spline-type: Natural cubic - spline
- DoF: 2
- Knots: NA
- Boundary-knots: NA

-Plot -Plot -Plot -Plot -Plot -Plot -Plot -Plot -Plot -Plot -

Level: Stationary

-

- Spline-type: Natural cubic - spline
- DoF: 2
- Knots: NA
- Boundary-knots: NA

-Plot -Plot -Plot -Plot -Plot -Plot -Plot - diff --git a/docs/favicon-16x16.png b/docs/favicon-16x16.png new file mode 100755 index 0000000000000000000000000000000000000000..1847b67730d0031f31ada2c18641ca253ac62e66 GIT binary patch literal 965 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 literal 0 HcmV?d00001 diff --git a/docs/get-started.html b/docs/get-started.html deleted file mode 100755 index a5b6a56..0000000 --- a/docs/get-started.html +++ /dev/null @@ -1,813 +0,0 @@ - - - - - - - - - - - - - - - -get-started - - - - - - - - - - - - - - - - - - - - - - - - - - -

get-started

-

Thomas Rauter

-

10 June, 2024

- - - -
-

About this tutorial

-

This tutorial intends to showcase and explain the capabilities of the -SplineOmics package by walking through a real and complete example, from -start to the end. The example is a time-series proteomics experiment, in -which CHO cells were cultivated in three bioreactors (three biological -replicates). Both in the exponential and stationary growth phase, -samples were taken from each reactor in triplicates at defined -timepoints relative to a feeding of the cells (60 min before feeding, -and 15, 60, 90, 120, and 240 min after). The goal of this analysis is to -find out which of the 7162 cellular proteins show a significant change -over time after the CHO cells were fed (= impact of the feeding). -Further, the hits (proteins with a significant change over time) are -clustered based on their temporal pattern, and a gene set enrichment -analysis is performed with each cluster to see if there are processes -which are up- or downregulated over time after the feeding.

-
-
-

Load the packages

-
library(SplineOmics)
-library(readxl)
-
-
-

Load the files

-

In this example, the data.xlsx file contains the numeric values (the -intensities) and also the feature descriptions, such as gene and protein -name (= annotation part)

-

The file meta.xlsx contains the meta information, which are the -descriptions of the columns of the numeric values of data.

-

(These example files are part of the package and don’t have to be -present on your system).

-

Please note that this dataset is an actual experimental dataset, but -the annotation information, such as gene names, has been removed since -it is not yet published. Instead, the dataset includes randomly -generated gene symbols and gene names corresponding to Cricetulus -griseus (Chinese Hamster) for each row. This is intended to demonstrate -the functionality of the package.

-
data_excel <- 
-  read_excel(
-    system.file(
-      "extdata",
-      "proteomics_data.xlsx",
-      package = "SplineOmics"
-      )
-    )
-#> New names:
-#> • `` -> `...38`
-meta <- read_excel(
-  system.file(
-    "extdata",
-    "proteomics_meta.xlsx",
-    package = "SplineOmics"
-    )
-  )
-
-# Extract the annotation part from the dataframe.
-first_na_col <- which(is.na(data_excel[1,]))[1]
-annotation <- data_excel |>
-  dplyr::select((first_na_col + 1):ncol(data_excel)) |>
-  dplyr::slice(-c(1:3))
-
-print(data_excel)
-#> # A tibble: 7,165 × 40
-#>    `Sample ID` `1`   `2`   `3`   `4`   `5`   `6`   `7`   `8`   `9`   `10`  `11` 
-#>    <chr>       <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
-#>  1 Reactor     E09   E10   E12   E09   E10   E12   E09   E10   E12   E09   E10  
-#>  2 Time Point  TP01  TP01  TP01  TP02  TP02  TP02  TP03  TP03  TP03  TP04  TP04 
-#>  3 Phase of F… Expo… Expo… Expo… Expo… Expo… Expo… Expo… Expo… Expo… Expo… Expo…
-#>  4 <NA>        15.2… 15.2… 15.3… 15.1… 15.2… 15.0… 15.2… 15.2… 15.2… 15.1… 15.2…
-#>  5 <NA>        14.5… 14.6… 14.5… 14.6… 14.6… 14.6… 14.6… 14.6… 14.6… 14.5… 14.5…
-#>  6 <NA>        15.9… 16.0… 16.0… 16.0… 15.8… 16.0… 15.9… 15.8… 16.0… 15.9… 15.9…
-#>  7 <NA>        16.1… 16.0… 16.1… 16.1… 16.0… 16.1… 16.0… 16.0… 16.0… 15.9… 16.0…
-#>  8 <NA>        15.0… 15.1… 15.2… 15.1… 15.1… 15.2… 15.2… 15.3… 15.2… 15.1… 15.1…
-#>  9 <NA>        14.5… 14.7… 14.6… 14.5… 14.6… 14.6… 14.5… 14.6… 14.7… 14.5… 14.6…
-#> 10 <NA>        15.0… 14.9… 15.1… 15.0… 15.0… 15.1… 14.9… 15.1… 14.9… 15.0… 14.9…
-#> # ℹ 7,155 more rows
-#> # ℹ 28 more variables: `12` <chr>, `13` <chr>, `14` <chr>, `15` <chr>,
-#> #   `16` <chr>, `17` <chr>, `18` <chr>, `19` <chr>, `20` <chr>, `21` <chr>,
-#> #   `22` <chr>, `23` <chr>, `24` <chr>, `25` <chr>, `26` <chr>, `27` <chr>,
-#> #   `28` <chr>, `29` <chr>, `30` <chr>, `31` <chr>, `32` <chr>, `33` <chr>,
-#> #   `34` <chr>, `35` <chr>, `36` <chr>, ...38 <lgl>, Gene_symbol <chr>,
-#> #   Gene_name <chr>
-print(annotation)
-#> # A tibble: 7,162 × 2
-#>    Gene_symbol  Gene_name                               
-#>    <chr>        <chr>                                   
-#>  1 LOC113838844 cone-rod homeobox protein-like          
-#>  2 Bag4         BAG cochaperone 4                       
-#>  3 Aoc3         amine oxidase copper containing 3       
-#>  4 Heatr9       HEAT repeat containing 9                
-#>  5 Wdr83os      WD repeat domain 83 opposite strand     
-#>  6 Cubn         cubilin                                 
-#>  7 Arhgef5      Rho guanine nucleotide exchange factor 5
-#>  8 LOC103158723 40S ribosomal protein S9                
-#>  9 Ncbp2as2     NCBP2 antisense 2 (head to head)        
-#> 10 Dynlt1       dynein light chain Tctex-type 1         
-#> # ℹ 7,152 more rows
-print(meta)
-#> # A tibble: 36 × 5
-#>    Sample.ID            Reactor Time.Point Phase        Time
-#>    <chr>                <chr>   <chr>      <chr>       <dbl>
-#>  1 E09_TP01_Exponential E09     TP01       Exponential   -60
-#>  2 E10_TP01_Exponential E10     TP01       Exponential   -60
-#>  3 E12_TP01_Exponential E12     TP01       Exponential   -60
-#>  4 E09_TP02_Exponential E09     TP02       Exponential    15
-#>  5 E10_TP02_Exponential E10     TP02       Exponential    15
-#>  6 E12_TP02_Exponential E12     TP02       Exponential    15
-#>  7 E09_TP03_Exponential E09     TP03       Exponential    60
-#>  8 E10_TP03_Exponential E10     TP03       Exponential    60
-#>  9 E12_TP03_Exponential E12     TP03       Exponential    60
-#> 10 E09_TP04_Exponential E09     TP04       Exponential    90
-#> # ℹ 26 more rows
-
-
-

Bring the inputs into the standardized (required) format

-

Since data_excel is not in the format that is required by the -SplineOmics package, it still needs some processing. This can be with a -few commands in R, but if your file looks like the one here, with the -data matrix field on the left and the annotation info on the right, -separated by one empty column, then the function extract_data() can do -this processing automatically. It identifies this data matrix field, and -puts it into a dataframe. The column headers are made up of all the -infos that are written in the cells above the respective column of this -data matrix field. The rowheaders are increasing numbers if no -annotation columns were specified. In this example, the annotation -columns “First.Protein.Description” and “ID” are specified so that these -are combined and form the rowheaders (feature names). They will be used -to label any plots were a feature is shown individually (such as the -spline plots with the datapoints from an individual feature).

-
data <- extract_data(
-  data = data_excel,
-  feature_name_columns = c("Gene_name"),
-  user_prompt = FALSE
-  )
-
-
-

Perform EDA (exploratory data analysis)

-

The first step in analysing data is usually EDA. EDA involves -summarizing the main characteristics of the data, often using plots. -This can involve densitiy distributions, boxplots, PCA, correlation -heatmaps, and more. This process can be carried out by using the package -function explore_data(). The necessary arguments are the data matrix -(data), the meta table (meta), the name of the column that contains the -levels of the experiment (condition) (the levels here are Exponential -and Stationary), and the report_info list, that contains general info -about the analysis. Optional arguments are meta_batch_column and -meta_batch2_column, that allow to specify the column name that contain -batch effect 1 and 2. These columns will be used to run the -removeBatchEffect function of limma to remove the batch effect of the -data for plotting. When at least one batch column is provided like this, -the function will not just generate one EDA HTML report, but two. One -for the uncorrected data, and one for the batch corrected data. These -reports are written either in the current working dir as default -location, or to a location specified with the optional argument -report_dir. The function also returns all plots generated. Lastly, if it -is desired that no report should be generated, the optional argument -report can be set to FALSE.

-
report_info <- list(
-  omics_data_type = "PTX",
-  data_description = "Proteomics data of CHO cells",
-  data_collection_date = "February 2024",
-  analyst_name = "Thomas Rauter",
-  contact_info = "thomas.rauter@plus.ac.at",
-  project_name = "DGTX"
-  )
-
-report_dir <- here::here(
-  "results",
-  "explore_data"
-  )
-
splineomics <- create_splineomics(
-  data = data,
-  meta = meta,
-  annotation = annotation,
-  report_info = report_info,
-  condition = "Phase",
-  meta_batch_column = "Reactor"
-)
-
plots <- explore_data(
-  splineomics = splineomics,
-  report_dir = report_dir
-  )
-

You can view the generated analysis report of the -not-batch-corrected-data here: here

-

The EDA plots can tell you a range of things. The plots in the HTML -report are grouped into three categories: Distribution and Variability -Analysis, Time Series Analysis, and Dimensionality Reduction and -Clustering.

-

If you look at the correlation heatmaps in the HTML report, you can -see that the samples E12_TP05_Exponential and E10_TP10_Stationary stick -out. Seeing this, you might want to remove them from the data. You can -test out what happens when you do this, along with testing how other -hyperparameter choices influence the results, with the package function -screen_limma_hyperparams().

-
-
-

Find the best hyperparameters

-

Before we can run the limma spline analysis, we have to find out -which “hyperparameters” are the best. Hyperparameters in this context -are for example degree of freedom, different versions of the data -(outlier removed vs. not removed), different limma design formulas, etc. -Rationally thinking about which combination of hyperparameters to use is -very challenging. Instead, it is often better to just try out a bunch of -combinations and choose the best. The function -screen_limma_hyperparams() does this for you. For each hyperparameter, -you can just specify all the values that you would like to try, and the -function then runs the limma spline analysis with the combinations that -can be formed with the hyperparameters that you specified. Not every -single combo is generated, but instead there are “inner” and “outer” -hyperparameters, and only for all “outer” hyperparameters, all combos -are generated. The “inner” hyperparameters are the adj. p-value -thresholds and the spline parameters. For example, if you have two -different versions of one dataset (one time the full dataset, and one -time the dataset with some potential outliers removed), these are -considered “outer” hyperparameters in this context. The function would -generate all possible comparisons for the “outer” hyperparameters, which -is just a single comparison. Then, for both versions of the data, every -“inner” hyperparameter combo is generated. Lets say you specified -natural cubic splines for both, with a degree of freedom of either 2 or -3. For the adj. p-value threshold, you specified 0.05 or 0.1. For each -version of data, it would test out all combinations of the spline -parameters and the adj. p-value threshold. In this case, this is DoF = -2, thesh = 0.05; DoF = 3, tresh = 0.05; DoF = 2, tresh = 0.1; DoF = 3, -tresh = 0.1.

-
data1 <- data 
-meta1 <- meta
-
-data2 <- data[, !(colnames(data) %in% c(
-  "E12_TP05_Exponential", 
-  "E10_TP10_Stationary"
-  )
-  )]
-meta2 <- meta[!meta$`Sample.ID` %in% c(
-  "E12_TP05_Exponential", 
-  "E10_TP10_Stationary"
-  ), ]
-
-datas <- list(data1, data2) 
-datas_descr <- c(
-  "full_data",
-  "outliers_removed"
-  ) 
-
-metas <- list(meta1, meta2) 
-designs <- c(
-  "~ 1 + Phase*X + Reactor",
-  "~ 1 + X + Reactor"
-  ) 
-condition <- "Phase" 
-report_dir <- here::here(
-  "results",
-  "hyperparams_screen_reports"
-  ) 
-meta_batch_column = "Reactor" 
-pthresholds <- c(
-  0.05,
-  0.1
-  )
-
-# Every row a combo to test.
-spline_test_configs <- data.frame(
-  spline_type = c("n", "n", "n", "n"),
-  degree = c(NA, NA, NA, NA),
-  dof = c(2L, 3L, 4L, 5L),
-  knots = I(list(c(NA), c(NA), c(NA), c(NA))),                                                        bknots = I(list(c(NA), c(NA), c(NA), c(NA)))
-  )
-
screen_limma_hyperparams(
-  splineomics,
-  datas,
-  datas_descr,
-  metas,
-  designs,
-  spline_test_configs,
-  report_dir,
-  pthresholds,
-  )
-

To see the output HTML report, click here: here

-
-
-

Run limma spline analysis

-

Once we identified the hyperparameters, that are likely the best -ones, we can run the limma spline analysis with them and get the -results.

-
splineomics <- update_splineomics(
-  splineomics = splineomics,
-  design = "~ 1 + Phase*X + Reactor",
-  data = data1,  # data1 and meta1 == data and meta that were loaded before. 
-  meta = meta1,  # This is for illustration
-  spline_params = list(
-    spline_type = c("n"),   
-    dof = c(2L)
-    )
-)
-

-# Run the limma spline analysis
-splineomics <- run_limma_splines(
-  splineomics
-  )
-#> Interaction terms identified in limma design formula. Selecting mode == integrated. This means that all levels are analysed using the full data.
-#> Column 'Reactor' of meta will be used to remove the batch effect for the plotting
-#> Info limma spline analysis completed successfully
-

The output of the function run_limma_splines() is a named list, where -each element is a specific “category” of results. Each of those elements -is a list, containing as elements the respective limma topTables, either -for each level or each comparison between two levels.

-

The element “time_effect” is a list, where each element is the -topTable where the p-value for each feature for the respective level are -reported.

-

The element “avrg_diff_conditions” is a list that contains as -elements the topTables, that represent the comparison of the average -differences of the levels.

-

The element “interaction_condition_time” is a list that contains as -elements the topTables, that represent the interaction between the -levels (which includes both time and the average differences)

-
-
-

Build limma report

-

The topTables of all three categories can be used to generate p-value -histograms an volcano plots.

-
report_dir <- here::here(
-  "results",
-  "create_limma_reports"
-  )
-
-plots <- create_limma_report(
-  splineomics,
-  report_dir = report_dir
-  )
-

You can view the generated analysis report of the create_limma_report -function here.

-
-
-

Cluster the hits (significant features)

-

After we obtained the limma spline results, we can cluster the hits -based on their temporal pattern (their spline shape). We define what a -hit is by setting an adj. p-value threshold for every level. Then, -hierarchical clustering is used to place every hit in one of as many -clusters as we have specified for that specific level.

-
adj_pthresholds <- c(
-  0.05,
-  0.05
-  )
-
-clusters <- c(
-  6L,
-  3L
-  )
-
-report_dir <- here::here(
-  "results",
-  "clustering_reports"
-  )
-
-plot_info = list(
-  y_axis_label = "log2 intensity",
-  time_unit = "min",
-  treatment_labels = c("Feeding"),
-  treatment_timepoints = c(0)
-)
-
-gene_column_name <- "Gene_symbol"
-genes <- data_excel[[gene_column_name]][4:nrow(data_excel)]
-
-clustering_results <- cluster_hits(
-  splineomics = splineomics,
-  analysis_type = "time_effect",
-  adj_pthresholds = adj_pthresholds,
-  clusters = clusters,
-  genes = genes,
-  plot_info = plot_info,
-  report_dir = report_dir,
-  )
-

Here you can see a cluster_hits -report

-
-
-

Perform gene set enrichment analysis (GSEA)

-

To each clustered hit, the respective gene can be assigned and GSEA -performed. For this, the Enrichr databases of choice have to be -downloaded:

-
gene_set_lib <- c(
-  "WikiPathways_2019_Human",
-  "NCI-Nature_2016",
-  "TRRUST_Transcription_Factors_2019",
-  "MSigDB_Hallmark_2020",
-  "GO_Cellular_Component_2018",
-  "CORUM",
-  "KEGG_2019_Human",
-  "TRANSFAC_and_JASPAR_PWMs",
-  "ENCODE_and_ChEA_Consensus_TFs_from_ChIP-X",
-  "GO_Biological_Process_2018",
-  "GO_Molecular_Function_2018",
-  "Human_Gene_Atlas"
-  )
-
-download_enrichr_databases(gene_set_lib)
-

Per default the file is placed in the current working directory, -which is the root dir of the R project.

-

To run GSEA, a genes vector has to be created, containing all the -underlying genes of the features. The downloaded database file has to be -loaded as a dataframe. Further, optionally, the clusterProfiler -parameters and the report dir can be specified. The function -create_gsea_report() runs GSEA using clusterProfiler, generates an HTML -report and returns the GSEA dotplots in R.

-
# Modify gene vector
-genes <- sub(" .*", "", genes)
-genes <- sub(";.*", "", genes)
-genes <- sub("_.*", "", genes)
-genes <- sub("-.*", "", genes)
-
-downloaded_dbs_filepath <-
-  here::here("all_databases_08_04_2024-12_41_50.tsv")
-databases <- readr::read_tsv(
-  downloaded_dbs_filepath,
-  col_types = readr::cols()
-  )
-
-clusterProfiler_params <- list(
-  adj_p_value = 0.05,
-  pAdjustMethod = "BH",
-  minGSSize = 10,
-  maxGSSize = 500,
-  qvalueCutoff = 0.2
-  )
-
-report_dir <- here::here(
-  "results",
-  "gsea_reports"
-  )
-
-result <- create_gsea_report(
-  levels_clustered_hits = clustering_results$clustered_hits_levels,
-  genes = genes,
-  databases = databases,
-  params = clusterProfiler_params,
-  report_info = report_info,
-  report_dir = report_dir
-  )
-

Here you can see an gsea -report

-

Every row in the dotplots is a term from a specific database, and the -columns are the respective clusters. The color scale contains the info -about the odds ratio and the size the -log10 adj. p-value. Only terms -that have > 2 genes as support are included in the plot. Further, for -each cluster, just maximally 5 terms are shown (the terms with the -highest odds ratios). Note that when for example cluster 1 already has 5 -terms, and cluster 2 does not, and gets a term which was also found for -cluster 1, than this term would be included as the sixth term for -cluster 1, so this is a way the maximum of 5 can be exceeded.

-
- - - - - - - - - - - diff --git a/docs/index.html b/docs/index.html index 488ac69..7dfa450 100755 --- a/docs/index.html +++ b/docs/index.html @@ -19,14 +19,13 @@ - - +
- +
-
+

Note that when some installation paths are not writable on Windows, it is necessary running RStudio as administrator once for the installation. Otherwise, set up a library path (code block below) for the installation and (re)run the code block above.

+
+# Create a directory for R libraries
+dir.create("~/Rlibs", showWarnings = FALSE)
+
+# Set the library path to include the new directory
+.libPaths(c("~/Rlibs", .libPaths()))
+
  1. -

    Load the SplineOmics package:

    +Load the SplineOmics package:
  2. +

Once the installation is complete, load the SplineOmics package into your R session or script to start using it:

-
+
 library(SplineOmics)
- -
+
+

🐳 Docker Container +

+

Alternatively, you can run your analysis in a Docker container. The underlying Docker image encapsulates the SplineOmics package together with the necessary environment and dependencies. This ensures higher levels of reproducibility because the analysis is carried out in a consistent environment, independent of the operating system and its custom configurations.

+

More information about Docker containers can be found on the official Docker page.

+

For instructions on downloading the image of the SplineOmics package and running the container, please refer to the Docker instructions.

+
+

Troubleshooting +

+

If you face “permission denied” issues on Linux distributions, check this vignette.

+
+
-

🛠️ Usage +

▶️ Usage

-

📖 Tutorial +

Tutorial

-

This tutorial covers a real CHO cell time-series proteomics example from start to the end.

+

This tutorial covers a real CHO cell time-series proteomics example from start to end.

+

To open an R Markdown file of the tutorial in RStudio, run:

+
+library(SplineOmics)
+open_tutorial()  
+

To open an R Markdown file in RStudio containing a template for your own analysis, run:

+
+library(SplineOmics)
+open_template()
-

🔬 Functions in Depth +

Functions in Depth

-

A detailed description of all arguments and outputs of all the available package functions can be found here.

-
+

A detailed description of all arguments and outputs of the available package functions can be found here.

-
-

🐳 Docker Container -

-

To facilitate reproducible analysis, we provide a Docker container that encapsulates the SplineOmics package together with the necessary environment and dependencies. Follow the instructions below to pull the Docker container and run your analysis.

-

Pulling the Docker Container +

Design limma design formula

-

You can pull the Docker container of the desired version of the SplineOmics package from GitHub using the following command (here it downloads version 0.1.0):

-
docker pull ghcr.io/thomas-rauter/splineomics:0.1.0
+

A quick guide on how to design a limma design formula can be found here

+

An explanation of the three different limma results can be found here

-

Running the Docker Container +

RNA-seq and Glycan Data

-

To run the Docker container, you can use one of the following commands, depending on your operating System. The respective command needs to be run in a folder where the subfolders input and output exist. Place your data and meta (and annotation) files in input, and receive your output from the package in the output folder.

-

For Linux and macOS:

-
# Bash
-docker run -it -d \
-    -v $(pwd)/input:/home/rstudio/input \
-    -v $(pwd)/output:/home/rstudio/output \
-    -p 8888:8787 \
-    -e PASSWORD=123 \
-    --name splineomics \
-    ghcr.io/thomasrauter/splineomics:0.1.0
-

For Windows:

-
# PowerShell
-docker run -it -d `
-    -v ${PWD}\input:/home/rstudio/input `
-    -v ${PWD}\output:/home/rstudio/output `
-    -p 8888:8787 `
-    -e PASSWORD=123 `
-    --name splineomics `
-    ghcr.io/thomas-rauter/splineomics:0.1.0
-

Once the container is running, open a web browser and navigate to http://localhost:8888. Use rstudio as the username and the password you set with the -e PASSWORD=123 option.

-

As long as the container is running, you can work on that localhost page with RStudio, where also the SplineOmics package is installed. /home/rstudio/ is your R session working folder.

-

Load your inputs for example like this:

+
+

RNA-seq data +

+

Transcriptomics data must be preprocessed for limma. This is done by setting the preprocess_rna_seq argument to TRUE (see documentation of create_splineomics() function). Then, the raw RNA-seq counts provided in the data matrix will undergo normalization and transformation. The default normalization is performed using TMM (Trimmed Mean of M-values) normalization via the edgeR::calcNormFactors function, followed by the voom transformation from the limma package to obtain log-transformed counts per million (logCPM) with associated precision weights. If you require a different normalization method, you can supply your custom normalization function.

+
+
+

Glycan fractional abundance data +

+

The glycan fractional abundance data matrix, where each row represents a type of glycan and the columns correspond to timepoints, must be transformed before analysis. This preprocessing step is essential due to the compositional nature of the data. In compositional data, an increase in the abundance of one component (glycan) necessarily results in a decrease in others, introducing a dependency among the variables that can bias the analysis. One way to address this issue is by applying the Centered Log Ratio (CLR) transformation to the data with the clr function from the compositions package:

-library(here)
-library(readxl)
-data <- readxl::read_excel(here::here("input", "data.xlsx"))
-meta <- readxl::read_excel(here::here("input", "meta.xlsx"))
-

Direct all generated results to /home/rstudio/output, which is mounted to your local folder output. Your results will be there.

-

Stop the container:

-
docker stop splineomics
-

Start the container again:

-
docker start splineomics
+library(compositions) +clr_transformed_data <- clr(data_matrix) # use as SplineOmics input
-
-

Inspect Docker container installations -

-

To see all the R packages and system installations that make up the Docker container, you can run the following command in the terminal of RStudio on your localhost browser page.

-
cp -r /log home/rstudio/output
-

Because the /home/rstudio/output dir is mounted to your local filesystem, this will make the installation log files available there.

@@ -285,40 +321,20 @@

📦 Dependencies ComplexHeatmap: For creating complex heatmaps with advanced features.
  • -RColorBrewer: For providing color palettes for data visualization.
  • -
  • base64enc: For encoding/decoding base64.
  • -circlize: For circular visualization of data.
  • -
  • -cluster: For clustering algorithms such as hierarchical clustering.
  • -
  • -clusterProfiler: For functional enrichment analysis.
  • -
  • -data.table: For high-performance data manipulation.
  • -
  • dendextend: For extending dendrogram objects in R, allowing for easier manipulation of dendrograms.
  • dplyr: For data manipulation.
  • -fs: For file system operations.
  • -
  • ggplot2: For creating elegant data visualizations using the grammar of graphics.
  • ggrepel: For better label placement in ggplot2.
  • here: For constructing paths to your project’s files.
  • -htmltools: For HTML rendering and output.
  • -
  • -kableExtra: For producing beautiful tables in R Markdown documents.
  • -
  • -knitr: For dynamic report generation in R.
  • -
  • limma: For linear models for microarray data.
  • -magrittr: For piping operators.
  • -
  • openxlsx: For reading, writing, and editing xlsx files.
  • patchwork: For combining multiple ggplot objects into a single plot.
  • @@ -329,42 +345,52 @@

    📦 Dependencies purrr: For functional programming tools.
  • -ragg: For creating high-quality images for graphics devices.
  • -
  • -readr: For reading rectangular data.
  • -
  • -reshape2: For flexible reshaping of data.
  • -
  • rlang: For tools to work with core language features of R and R’s base types.
  • scales: For scale functions for visualization.
  • -stringr: For simplifying the manipulation of strings.
  • -
  • tibble: For creating tidy data frames that are easy to work with.
  • tidyr: For tidying your data.
  • -viridis: For colorblind-friendly color maps.
  • +zip: For combining files into a zip file.
    -

    R Version +

    Optional dependencies

    +

    These dependencies are only necessary for some functions:

      -
    • Recommended: R 4.3.3 or higher -
        -
      • Note: This project was developed using R 4.3.3. While it should be compatible with newer versions, this is the version guaranteed to work as tested.
      • +
      • +edgeR: For preprocessing RNA-seq data in the run_limma_splines() fun.
      • +
      • +clusterProfiler: For the run_gsea() function (gene set enrichment).
      • +
      • +rstudioapi: For the open_tutorial() and open_template() functions.
      -
    • +
    +
    +

    R Version +

    +
      +
    • Recommended: R 4.3.3 or higher

    +

    📚 Further Reading +

    +

    For those interested in gaining a deeper understanding of the methodologies used in the SplineOmics package, here are some recommended publications:

    +
      +
    • Splines: To learn more about splines, you can refer to this review.

    • +
    • limma: To read about the limma R package, you can refer to this publication.

    • +
    • Hierarchical clustering: To get information about hierarchical clustering, you can refer to this web article.

    • +
    +
    +

    ❓ Getting Help

    If you encounter a bug or have a suggestion for improving the SplineOmics package, we encourage you to open an issue on our GitHub repository. Before opening a new issue, please check to see if your question or bug has already been reported by another user. This helps avoid duplicate reports and ensures that we can address problems efficiently.

    -

    For more detailed questions, discussions, or contributions regarding the package’s use and development, please refer to the GitHub Discussions page for SplineOmics. This forum is a great place to ask for help, share your experiences, and connect with the community.

    -

    Thank you for using and contributing to the development of SplineOmics!

    +

    For more detailed questions, discussions, or contributions regarding the package’s use and development, please refer to the GitHub Discussions page for SplineOmics.

    🤝 Contributing @@ -399,7 +425,7 @@

    📜 License🎓 Citation

    The SplineOmics package is currently not published in a peer-reviewed scientific journal or similar outlet. However, if this package helped you in your work, consider citing this GitHub repository.

    -

    To cite this package, you can use the citation information provided in the CITATION.cff file.

    +

    To cite this package, you can use the citation information provided in the inst/CITATION.cff file.

    You can also generate a citation in various formats using the CITATION.cff file by visiting the top right of this repo and clicking on the “Cite this repository” button.

    Also, if you like the package, consider giving the GitHub repository a star. Your support helps us in the continued development and improvement of SplineOmics. Thank you for using our package!

    @@ -414,9 +440,14 @@

    🌟 Contributors skafdasschaf - 🔧 Helped reviewing code, delivered improvement suggestions and scientific guidance to develop the approach.
  • -VSchaepertoens - ✨ Developed the download_enrichr_databases() function and one internal plotting function, as well as some code for the EDA plots, and the overall approach together with Thomas-Rauter.
  • +VSchaepertoens - ✨ Developed one internal plotting function, as well as some code for the exploratory data analysis plots, and the overall approach together with Thomas-Rauter. +
    +

    🙏 Acknowledgements +

    +

    This work was carried out in the context of the DigiTherapeutX project, which was funded by the Austrian Science Fund (FWF). The research was conducted under the supervision of Prof. Nikolaus Fortelny, who leads the Computational Systems Biology working group at the Paris Lodron University of Salzburg, Austria. You can find more information about Prof. Fortelny’s research group here.

    +
    @@ -464,16 +495,16 @@

    Developers

    -

    Site built with pkgdown 2.0.9.

    +

    Site built with pkgdown 2.1.0.

    - - + + diff --git a/docs/pkgdown.yml b/docs/pkgdown.yml index 0d1bb98..9aac775 100755 --- a/docs/pkgdown.yml +++ b/docs/pkgdown.yml @@ -1,9 +1,9 @@ pandoc: 3.1.11 -pkgdown: 2.0.9 +pkgdown: 2.1.0 pkgdown_sha: ~ articles: + design_limma_design_formula: design_limma_design_formula.html Docker_permission_denied: Docker_permission_denied.html - functions-in-depth: functions-in-depth.html + Docker-instructions: Docker-instructions.html get-started: get-started.html -last_built: 2024-06-13T15:26Z - +last_built: 2024-09-19T13:28Z diff --git a/docs/reference/InputControl.html b/docs/reference/InputControl.html new file mode 100644 index 0000000..510d98f --- /dev/null +++ b/docs/reference/InputControl.html @@ -0,0 +1,893 @@ + +InputControl: A class for controlling and validating inputs — InputControl • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    InputControl: A class for controlling and validating inputs

    +

    InputControl: A class for controlling and validating inputs

    +
    + + +
    +

    Details

    +

    This class provides methods to validate the inputs of a function.

    + +

    The method performs the following checks:

    +

    * Ensures that both `annotation` and `data` are provided. +* Confirms that `annotation` is a dataframe. +* Verifies that `annotation` and `data` have the same number of rows.

    +

    If any of these checks fail, an informative error message is returned.

    + + +

    - The method first checks if the lengths of designs and +modes + are equal. If not, it raises an error. +- It then checks if modes is NULL, and if so, the method + returns + without performing any further checks. +- For each mode in modes, the method sets self$args$mode +to the + current mode and calls self$check_mode().

    + + +

    The function performs the following checks: +- If `clusters` is an integer or a vector of integers. Otherwise, it + gives an error.

    +

    Check Plot Info

    + + +

    The method performs the following checks:

    +

    * Ensures that `plot_info` is provided and not NULL. +* Confirms that `y_axis_label` is a character vector with maximally 30 + characters. +* Confirms that `time_unit` is a character vector with maximally 15 +characters. +* Validates that `treatment_labels` is either `NA` or a character vector + with each + element being maximally 15 characters long. +* Validates that `treatment_timepoints` is either `NA` or a numeric +vector with the + same length as `treatment_labels` if `treatment_labels` is not `NA`.

    +

    If any of these checks fail, an informative error message is returned.

    + + +

    The method performs the following checks:

    +

    * Ensures that `analysis_mode` is provided and not NULL. +* Confirms that `analysis_mode` is a character vector of length 1. +* Validates that `analysis_mode` matches one of the allowed values.

    +

    If any of these checks fail, an informative error message is returned.

    + + +

    This function performs the following checks: +1. Ensures `feature_name_columns` and `annotation` are not `NULL`. +2. Verifies that each element in `feature_name_columns` is a character + with + a length of 1. +3. Checks that all elements of `feature_name_columns` are valid column +names in the `annotation` data frame.

    +

    Check Report

    + + +

    The function performs the following checks: +- Whether the `report` argument is present. +- If `report` is not a Boolean value (`TRUE` or `FALSE`), it throws +an error.

    +
    +
    +

    Functions

    + +
    • InputControl: This method verifies the spline test configurations and associated +metadata +within the object's arguments. It performs a series of checks on the +configurations, including column verification, spline type validation, +and ensuring that the degrees of freedom (dof) are within acceptable +ranges.

    • +
    +
    +

    See also

    +

    stop for error handling.

    +

    Check Top Tables

    +

    limma

    +

    Check Modes

    +

    This method validates multiple modes by ensuring that the lengths of the +modes and designs are the same. It then iterates through each mode, +sets it +in the class arguments, and calls self$check_mode() to perform +the validation for each mode.

    +

    model.matrix

    +

    Check Multiple Designs and Metas

    +
    + +
    +

    Public fields

    +

    args
    +

    A list of arguments to be validated.

    +

    Initialize an InputControl object

    + + +

    +
    +
    +

    Methods

    + +

    Inherited methods


    +

    Method new()

    + +
    +

    Usage

    +

    InputControl$new(args)

    +
    + +
    +

    Arguments

    +

    args
    +

    A list of arguments to be validated.

    + + +

    +
    +
    +

    Returns

    +

    A new instance of the InputControl class.

    +

    Automatically Validate All Arguments

    +

    This method automatically validates all arguments by sequentially +calling +various validation methods defined within the class. Each validation +method +checks specific aspects of the input arguments and raises an error if the +validation fails.

    +

    The following validation methods are called in sequence: +- self$check_data_and_meta() +- self$check_datas_and_metas() +- self$check_datas_descr() +- self$check_mode() +- self$check_modes() +- self$check_design_formula() +- self$check_designs_and_metas() +- self$check_spline_params() +- self$check_spline_test_configs() +- self$check_adj_pthresholds() +- self$check_clusters() +- self$check_time_unit() +- self$check_report_dir() +- self$check_padjust_method() +- self$check_report_info() +- self$check_report() +- self$check_feature_name_columns()

    +
    + +


    +

    Method auto_validate()

    + +
    +

    Usage

    +

    InputControl$auto_validate()

    +
    + +
    +

    Returns

    +

    NULL. The function is used for its side effects of validating +input +arguments and raising errors if any validation fails.

    +

    Check Data and Meta

    +
    + +


    +

    Method check_data_and_meta()

    +

    This function checks the validity of the data and meta objects, +ensuring that +data is a matrix with numeric values and that meta is a dataframe +containing +the specified condition column. Additionally, it verifies that the +number of +columns in the data matrix matches the number of rows in the meta +dataframe.

    +

    Usage

    +

    InputControl$check_data_and_meta()

    +
    + +
    +

    Arguments

    +

    data
    +

    A matrix containing numeric values.

    + + +
    meta
    +

    A dataframe containing the metadata, including the 'Time' +column +and the specified condition column.

    + + +
    condition
    +

    A single character string specifying the column name in +the meta dataframe to be checked.

    + + +
    meta_batch_column
    +

    An optional parameter specifying the column name +in the meta dataframe used to remove the batch effect. Default is NA.

    + + +
    data_meta_index
    +

    An optional parameter specifying the index of the +data/meta pair for error messages. Default is NA.

    + + +

    +
    +
    +

    Returns

    +

    Returns TRUE if all checks pass. Stops execution and returns an +error message if any check fails.

    +

    Check Annotation Consistency

    +
    + +


    +

    Method check_annotation()

    +

    This method checks the consistency of the annotation with the data. +It ensures +that the annotation is a dataframe and that it has the same number +of rows as the data.

    +

    Usage

    +

    InputControl$check_annotation()

    +
    + +
    +

    Returns

    +

    NULL if any required arguments are missing. Otherwise, performs +checks and potentially raises errors if checks fail.

    +

    Check Multiple Data and Meta Pairs

    +
    + +


    +

    Method check_datas_and_metas()

    +

    Iterates over multiple data and meta pairs to validate each pair using +the `check_data_and_meta` function.

    +

    Usage

    +

    InputControl$check_datas_and_metas()

    +
    + +
    +

    Arguments

    +

    datas
    +

    A list of matrices containing numeric values.

    + + +
    metas
    +

    A list of data frames containing metadata.

    + + +
    condition
    +

    A character string specifying the column name in the +meta dataframe to be checked.

    + + +
    meta_batch_column
    +

    An optional parameter specifying the column name +in the meta dataframe used to remove the batch effect. Default is NA.

    + + +
    meta_batch2_column
    +

    An optional parameter specifying the column + name +in the meta dataframe used to remove the second batch effect. Default +is NA.

    + + +

    +
    +
    +

    Returns

    +

    NULL if any check fails, otherwise returns TRUE.

    +

    Check Data Descriptions

    +
    + +


    +

    Method check_datas_descr()

    +

    Validates that the data descriptions are character vectors with each +element +not exceeding 80 characters in length.

    +

    Usage

    +

    InputControl$check_datas_descr()

    +
    + +
    +

    Arguments

    +

    datas_descr
    +

    A character vector of data descriptions.

    + + +

    +
    +
    +

    Returns

    +

    No return value, called for side effects.

    +
    + +


    +

    Method check_top_tables()

    +

    Validates that the top tables are a list of dataframes and checks each +dataframe using the `check_dataframe` function.

    +

    Usage

    +

    InputControl$check_top_tables()

    +
    + +
    +

    Arguments

    +

    top_tables
    +

    A list of top tables from limma analysis.

    + + +

    +
    +
    +

    Returns

    +

    No return value, called for side effects.

    +

    Check Mode

    +
    + +


    +

    Method check_mode()

    +

    Validates that the mode is either 'integrated' or 'isolated', which +depends +on the design formula used in limma.

    +

    Usage

    +

    InputControl$check_mode()

    +
    + +
    +

    Arguments

    +

    mode
    +

    A character string specifying the mode.

    + + +

    +
    +
    +

    Returns

    +

    A message indicating the chosen mode if valid; otherwise, an +error +is thrown.

    +
    + +


    +

    Method check_modes()

    + +
    +

    Usage

    +

    InputControl$check_modes()

    +
    + +
    +

    Returns

    +

    NULL. The function is used for its side effects of validating +each +mode and raising errors if any validation fails.

    +

    Check Design Formula

    +
    + +


    +

    Method check_design_formula()

    +

    Validates the design formula ensuring it is a valid character string, +contains allowed characters, includes the intercept term 'X', and +references +columns present in the metadata.

    +

    Usage

    +

    InputControl$check_design_formula()

    +
    + +
    +

    Arguments

    +

    formula
    +

    A character string representing the design formula.

    + + +
    meta
    +

    A data frame containing metadata.

    + + +
    meta_index
    +

    An optional index for the data/meta pair.

    + + +

    +
    +
    +

    Returns

    +

    TRUE if the design formula is valid, otherwise an error is +thrown.

    +
    + +


    +

    Method check_designs_and_metas()

    +

    Iterates over multiple design formulas and corresponding metadata +to validate each pair using the `check_design_formula` function.

    +

    Usage

    +

    InputControl$check_designs_and_metas()

    +
    + +
    +

    Arguments

    +

    designs
    +

    A vector of character strings representing design +formulas.

    + + +
    metas
    +

    A list of data frames containing metadata.

    + + +
    meta_indices
    +

    A vector of optional indices for the data/meta pairs.

    + + +

    +
    +
    +

    Returns

    +

    NULL if any check fails, otherwise returns TRUE.

    +

    Check Spline Parameters

    +
    + +


    +

    Method check_spline_params()

    +

    Validates the spline parameters both generally and depending on the +specified mode.

    +

    Usage

    +

    InputControl$check_spline_params()

    +
    + +
    +

    Arguments

    +

    spline_params
    +

    A list of spline parameters.

    + + +
    mode
    +

    A character string specifying the mode +('integrated' or 'isolated').

    + + +
    meta
    +

    A dataframe containing metadata.

    + + +
    condition
    +

    A character string specifying the condition.

    + + +

    +
    +
    +

    Returns

    +

    Returns `NULL` if any required arguments are mising, otherwise, + called for side effects.

    +

    Check Spline Test Configurations

    +
    + +


    +

    Method check_spline_test_configs()

    + +
    +

    Usage

    +

    InputControl$check_spline_test_configs()

    +
    + +
    +

    Arguments

    +

    spline_test_configs
    +

    A configuration object for spline tests.

    + + +
    metas
    +

    A list of metadata corresponding to the data matrices.

    + + +

    +
    +
    +

    Returns

    +

    Returns `NULL` if any required arguments are mising, otherwise, + called for side effects.

    +

    Check Limma Top Tables Structure

    +

    This function checks if the provided limma top tables data structure +is correctly formatted. It ensures that the data structure contains +exactly three named elements ('time_effect', 'avrg_diff_conditions', +and 'interaction_condition_time') and that each element contains +dataframes with the correct columns and data types.

    +
    + +


    +

    Method check_limma_top_tables()

    + +
    +

    Usage

    +

    InputControl$check_limma_top_tables()

    +
    + +
    +

    Arguments

    +

    self
    +

    An object containing the data structure to check.

    + + +

    +
    +
    +

    Returns

    +

    This function does not return a value. It stops execution +if the data structure does not match the expected format.

    +

    Check Adjusted p-Thresholds

    +
    + +


    +

    Method check_adj_pthresholds()

    +

    This function checks the validity of the adjusted p-thresholds vector, +ensuring that +all elements are numeric, greater than 0, and less than 1. If any of +these +conditions +are not met, the function stops execution and returns an error message +indicating the +offending elements.

    +

    Usage

    +

    InputControl$check_adj_pthresholds()

    +
    + +
    +

    Arguments

    +

    adj_pthresholds
    +

    A numeric vector of adjusted p-thresholds.

    + + +

    +
    +
    +

    Returns

    +

    Returns TRUE if all checks pass. Stops execution and returns an +error message if any check fails.

    +

    Check Clusters

    +
    + +


    +

    Method check_clusters()

    +

    This function verifies the cluster configurations within the object's +arguments. +It checks if the clusters argument is present and performs validation +on its +content. If no clusters are specified, it defaults to automatic cluster +estimation.

    +

    Usage

    +

    InputControl$check_clusters()

    +
    + + +


    +

    Method check_plot_info()

    +

    This method checks the validity of the `plot_info` list. It ensures that +`y_axis_label` and `time_unit` meet the length constraints, +`treatment_labels` +is either `NA` or a character vector with elements meeting the length +constraint, +and `treatment_timepoints` is either `NA` or a numeric vector with the +same length +as `treatment_labels`.

    +

    Usage

    +

    InputControl$check_plot_info()

    +
    + +
    +

    Returns

    +

    NULL if `plot_info` is not provided or invalid. Otherwise, +performs checks +and potentially raises errors if checks fail.

    +

    Check and Create Report Directory

    +
    + +


    +

    Method check_report_dir()

    +

    This function checks if the specified report directory exists and is a +valid directory. +If the directory does not exist, it attempts to create it. If there are + any +warnings or +errors during directory creation, the function stops execution and +returns +an error message.

    +

    Usage

    +

    InputControl$check_report_dir()

    +
    + +
    +

    Arguments

    +

    report_dir
    +

    A character string specifying the path to the report +directory.

    + + +

    +
    +
    +

    Returns

    +

    Returns TRUE if the directory exists or is successfully created. +Stops execution +and returns an error message if the directory cannot be created or is not +valid.

    +

    Check Genes Validity

    +
    + +


    +

    Method check_genes()

    +

    This function checks the validity of the `data` and `genes` arguments +within the `self$args` list. It ensures that `genes` is a character +vector, +that neither `data` nor `genes` is `NULL`, and that the length of `genes` +matches the number of rows in `data`.

    +

    Usage

    +

    InputControl$check_genes()

    +
    + +
    +

    Returns

    +

    Returns `TRUE` if all checks pass. Returns `NULL` if any required +arguments are `NULL`. Throws an error if `genes` is not a character +vector +or if the length of `genes` does not match the number of rows in `data`.

    +

    Check p-Adjustment Method

    +
    + +


    +

    Method check_padjust_method()

    +

    This function checks if the provided p-adjustment method is valid. The +valid +methods are: +"holm", "hochberg", "hommel", "bonferroni", "BH", "BY", "fdr", and +"none". +If the method +is not one of these, the function stops execution and returns an error + message.

    +

    Usage

    +

    InputControl$check_padjust_method()

    +
    + +
    +

    Arguments

    +

    padjust_method
    +

    A character string specifying the p-adjustment +method. +Valid options +are "holm", "hochberg", "hommel", "bonferroni", "BH", "BY", "fdr", and +"none".

    + + +

    +
    +
    +

    Returns

    +

    Returns TRUE if the p-adjustment method is valid. Stops execution + and +returns an error message if the method is invalid.

    +

    Check Report Information

    +
    + +


    +

    Method check_report_info()

    +

    Validates the report information to ensure it contains all mandatory +fields +and adheres to the required formats.

    +

    Usage

    +

    InputControl$check_report_info()

    +
    + +
    +

    Arguments

    +

    report_info
    +

    A named list containing report information.

    + + +

    +
    +
    +

    Returns

    +

    TRUE if the report information is valid; otherwise, an error is +thrown.

    +

    Check Analysis Mode

    +
    + +


    +

    Method check_analysis_type()

    +

    This method checks the validity of the `analysis_mode` argument. +It ensures that +`analysis_mode` is a character vector of length 1 and that it matches + one of the +allowed analysis modes: "time_effect", "avrg_diff_conditions", or +"interaction_condition_time".

    +

    Usage

    +

    InputControl$check_analysis_type()

    +
    + +
    +

    Returns

    +

    NULL if `analysis_mode` is not provided or invalid. Otherwise, +performs checks +and potentially raises errors if checks fail.

    +

    Check Feature Name Columns

    +
    + +


    +

    Method check_feature_name_columns()

    +

    This function checks whether all elements of `feature_name_columns` are +characters of length 1 and whether they are valid column names in the +`annotation` data frame.

    +

    Usage

    +

    InputControl$check_feature_name_columns()

    +
    + +
    +

    Returns

    +

    Returns `NULL` if any required arguments are missing. Throws +an error +if any element of `feature_name_columns` is not a character of length 1 +or if +any element is not a column name in `annotation`. Returns `TRUE` if all + checks +pass.

    +
    + +


    +

    Method check_report()

    +

    This function verifies the `report` argument within the object's +arguments. +It checks if the `report` argument is present and validates its +Boolean value.

    +

    Usage

    +

    InputControl$check_report()

    +
    + + +


    +

    Method clone()

    +

    The objects of this class are cloneable with this method.

    +

    Usage

    +

    InputControl$clone(deep = FALSE)

    +
    + +
    +

    Arguments

    +

    deep
    +

    Whether to make a deep clone.

    + + +

    +
    + +
    + +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/Level2Functions.html b/docs/reference/Level2Functions.html new file mode 100644 index 0000000..89bc9c2 --- /dev/null +++ b/docs/reference/Level2Functions.html @@ -0,0 +1,439 @@ + +Level2Functions: A class providing level 2 functionalities — Level2Functions • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Level2Functions: A class providing level 2 functionalities

    +

    Level2Functions: A class providing level 2 functionalities

    +
    + + +
    +

    Details

    +

    This class provides various level 2 functionalities, including +methods to check dataframes and spline parameters.

    +
    +
    +

    See also

    +

    InputControl

    +

    Check Data Matrix

    +
    +
    +

    Super classes

    +

    SplineOmics::Level4Functions -> SplineOmics::Level3Functions -> Level2Functions

    +
    +
    +

    Methods

    + +

    Inherited methods


    +

    Method check_data()

    +

    This function checks the validity of the data matrix, ensuring that it +is a +matrix, contains only numeric values, +has no missing values, and all elements are non-negative. Additionally, it +verifies that no rows or columns are +entirely zeros.

    +

    Usage

    +

    Level2Functions$check_data(data, data_meta_index = NULL)

    +
    + +
    +

    Arguments

    +

    data
    +

    A dataframe containing numeric values.

    + + +
    data_meta_index
    +

    An optional parameter specifying the index of the + data +for error messages. Default is NA.

    + + +

    +
    +
    +

    Returns

    +

    Returns TRUE if all checks pass. Stops execution and returns an +error +message if any check fails.

    +

    Check Metadata

    +
    + +


    +

    Method check_meta()

    +

    This function checks the validity of the metadata dataframe, ensuring it +contains the 'Time' column, +does not contain missing values, and that the specified condition column + is +valid and of the appropriate type. +Additionally, it checks for an optional batch effect column and prints +messages regarding its use.

    +

    Usage

    +

    Level2Functions$check_meta(
    +  meta,
    +  condition,
    +  meta_batch_column = NULL,
    +  meta_batch2_column = NULL,
    +  data_meta_index = NULL
    +)

    +
    + +
    +

    Arguments

    +

    meta
    +

    A dataframe containing the metadata, including the 'Time' +column.

    + + +
    condition
    +

    A single character string specifying the column name +in the +meta dataframe to be checked.

    + + +
    meta_batch_column
    +

    An optional parameter specifying the column +name in + the meta dataframe used to remove the batch effect. Default is NA.

    + + +
    meta_batch2_column
    +

    An optional parameter specifying the column +name in +the meta dataframe used to remove the batch effect. Default is NA.

    + + +
    data_meta_index
    +

    An optional parameter specifying the index of the +data/meta pair for error messages. Default is NA.

    + + +

    +
    +
    +

    Returns

    +

    Returns TRUE if all checks pass. Stops execution and returns an +error message if any check fails.

    +

    Check Dataframe

    +
    + +


    +

    Method check_dataframe()

    +

    Validates that the dataframe contains all required columns with the +correct data types.

    +

    Usage

    +

    Level2Functions$check_dataframe(df)

    +
    + +
    +

    Arguments

    +

    df
    +

    A dataframe to check.

    + + +

    +
    +
    +

    Returns

    +

    TRUE if the dataframe is valid, otherwise an error is thrown.

    +

    Check Spline Parameters Generally

    +
    + +


    +

    Method check_spline_params_generally()

    +

    Validates the general structure and contents of spline parameters.

    +

    Usage

    +

    Level2Functions$check_spline_params_generally(spline_params)

    +
    + +
    +

    Arguments

    +

    spline_params
    +

    A list of spline parameters.

    + + +

    +
    +
    +

    Returns

    +

    No return value, called for side effects.

    +

    Check Spline Parameters Mode Dependent

    +
    + +


    +

    Method check_spline_params_mode_dependent()

    +

    Validates the spline parameters depending on the specified mode.

    +

    Usage

    +

    Level2Functions$check_spline_params_mode_dependent(
    +  spline_params,
    +  mode,
    +  meta,
    +  condition
    +)

    +
    + +
    +

    Arguments

    +

    spline_params
    +

    A list of spline parameters.

    + + +
    mode
    +

    A character string specifying the mode +('integrated' or 'isolated').

    + + +
    meta
    +

    A dataframe containing metadata.

    + + +
    condition
    +

    A character string specifying the condition.

    + + +

    +
    +
    +

    Returns

    +

    No return value, called for side effects.

    + +

    Check Columns in Spline Test Configurations

    +
    + +


    +

    Method check_columns_spline_test_configs()

    +

    Validates that the spline test configurations contain the required columns +in the correct order.

    +

    Usage

    +

    Level2Functions$check_columns_spline_test_configs(spline_test_configs)

    +
    + +
    +

    Arguments

    +

    spline_test_configs
    +

    A dataframe containing spline test +configurations.

    + + +

    +
    +
    +

    Returns

    +

    No return value, called for side effects.

    +
    + +


    +

    Method check_spline_type_column()

    +

    Validates that the 'spline_type' column in the spline test configurations +contains only 'n' or 'b'.

    +

    Usage

    +

    Level2Functions$check_spline_type_column(spline_test_configs)

    +
    + +
    +

    Arguments

    +

    spline_test_configs
    +

    A dataframe containing spline test +configurations.

    + + +

    +
    +
    +

    Returns

    +

    No return value, called for side effects.

    +
    + +


    +

    Method check_spline_type_params()

    +

    Validates the parameters for each row in the spline test configurations +based on the spline type.

    +

    Usage

    +

    Level2Functions$check_spline_type_params(spline_test_configs)

    +
    + +
    +

    Arguments

    +

    spline_test_configs
    +

    A dataframe containing spline test +configurations.

    + + +

    +
    +
    +

    Returns

    +

    TRUE if all checks pass, otherwise an error is thrown.

    +
    + +


    +

    Method check_max_and_min_dof()

    +

    Validates the degrees of freedom (DoF) for each row in the spline test +configurations based on the metadata.

    +

    Usage

    +

    Level2Functions$check_max_and_min_dof(spline_test_configs, metas)

    +
    + +
    +

    Arguments

    +

    spline_test_configs
    +

    A dataframe containing spline test +configurations.

    + + +
    metas
    +

    A list of metadata corresponding to the data matrices.

    + + +

    +
    +
    +

    Returns

    +

    No return value, called for side effects.

    +
    + +


    +

    Method check_columns()

    + +
    +

    Usage

    +

    Level2Functions$check_columns(df, expected_cols)

    +
    + +
    +

    Arguments

    +

    df
    +

    A dataframe to check.

    + + +
    expected_cols
    +

    A character vector of expected column names.

    + + +

    +
    +
    +

    Returns

    +

    This function does not return a value. It stops execution if the +dataframe columns or their classes do not match the expected structure.

    +
    + +


    +

    Method clone()

    +

    The objects of this class are cloneable with this method.

    +

    Usage

    +

    Level2Functions$clone(deep = FALSE)

    +
    + +
    +

    Arguments

    +

    deep
    +

    Whether to make a deep clone.

    + + +

    +
    + +
    + +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/Level3Functions.html b/docs/reference/Level3Functions.html new file mode 100644 index 0000000..7db2eb9 --- /dev/null +++ b/docs/reference/Level3Functions.html @@ -0,0 +1,245 @@ + +Level3Functions: A class for level 3 utility functions — Level3Functions • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Level3Functions: A class for level 3 utility functions

    +

    Level3Functions: A class for level 3 utility functions

    +
    + + +
    +

    Details

    +

    This class provides methods for creating error messages and checking +batch columns.

    + +

    The function verifies that the `voom` object contains the following +components: +- `E`: A matrix of log2-counts per million (logCPM) values. +- `weights`: A matrix of observation-specific weights that matches the +dimensions of `E`. +- `design`: A matrix representing the design matrix used in the linear +modeling, + with the same number of rows as there are columns in `E`.

    +

    The function also checks for optional components such as: +- `genes`: A data frame of gene annotations. +- `targets`: A data frame of target information. +- `sample.weights`: A numeric vector of sample-specific weights.

    +

    If any of these checks fail, the function stops and reports the issues. +If the structure is valid, a message confirming the validity is printed.

    +
    +
    +

    See also

    +

    Level2Functions

    +

    Check the structure of a voom object

    +
    +
    +

    Super class

    +

    SplineOmics::Level4Functions -> Level3Functions

    +
    +
    +

    Methods

    + +

    Inherited methods


    +

    Method check_voom_structure()

    +

    This function checks the structure of a `voom` object to ensure that it +contains +all the expected components and that these components have the correct +types +and dimensions. The function does not check the actual data within the +matrices.

    +

    Usage

    +

    Level3Functions$check_voom_structure(voom_obj)

    +
    + +
    +

    Arguments

    +

    voom_obj
    +

    A list representing a `voom` object, typically created +by the + `voom` function from the `limma` package.

    + + +

    +
    +
    +

    Returns

    +

    Boolean TRUE or FALSE. However, the function is mostly called for +its side effects, which stop the script if the structure is not valid.

    +

    Check Batch Column

    +
    + +


    +

    Method check_batch_column()

    +

    This method checks the batch column in the metadata and provides +appropriate messages.

    +

    Usage

    +

    Level3Functions$check_batch_column(meta, meta_batch_column, data_meta_index)

    +
    + +
    +

    Arguments

    +

    meta
    +

    A dataframe containing metadata.

    + + +
    meta_batch_column
    +

    A character string specifying the batch column +in the metadata.

    + + +
    data_meta_index
    +

    An optional parameter specifying the index of the +data/meta pair. Default is NA.

    + + +

    +
    +
    +

    Returns

    +

    NULL. The method is used for its side effects of throwing errors +or printing messages.

    +

    Check Condition Time Consistency

    +
    + +


    +

    Method check_condition_time_consistency()

    +

    This function checks whether the values in the `condition` column +have unique values for each block of identical `Time` values in the +`meta` dataframe. +Additionally, it ensures that every new block of a given time has a +new value +in the `condition` column.

    +

    Usage

    +

    Level3Functions$check_condition_time_consistency(meta, condition)

    +
    + +
    +

    Arguments

    +

    meta
    +

    A dataframe containing the metadata, including the `Time` +column.

    + + +
    condition
    +

    A character string specifying the column name in `meta` +used to define groups for analysis.

    + + +

    +
    +
    +

    Returns

    +

    Logical TRUE if the condition values are consistent with the + time series pattern.

    +
    + +


    +

    Method clone()

    +

    The objects of this class are cloneable with this method.

    +

    Usage

    +

    Level3Functions$clone(deep = FALSE)

    +
    + +
    +

    Arguments

    +

    deep
    +

    Whether to make a deep clone.

    + + +

    +
    + +
    + +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/Level4Functions.html b/docs/reference/Level4Functions.html new file mode 100644 index 0000000..bc0c3dd --- /dev/null +++ b/docs/reference/Level4Functions.html @@ -0,0 +1,157 @@ + +Level4Functions: A class for level 3 utility functions — Level4Functions • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Level4Functions: A class for level 3 utility functions

    +

    Level4Functions: A class for level 3 utility functions

    +
    + + +
    +

    Details

    +

    This class provides methods for creating error messages and checking +batch columns.

    +
    +
    +

    See also

    +

    Level3Functions

    +

    Create Error Message

    +
    +
    +

    Methods

    + +


    +

    Method create_error_message()

    +

    This method creates a formatted error message that includes the index of +the data/meta pair if provided. +If no index is provided, it returns the message as is.

    +

    Usage

    +

    Level4Functions$create_error_message(message, data_meta_index = NULL)

    +
    + +
    +

    Arguments

    +

    message
    +

    A character string specifying the error message.

    + + +
    data_meta_index
    +

    An optional parameter specifying the index of the +data/meta pair for the error message. Default is NA.

    + + +

    +
    +
    +

    Returns

    +

    Returns a formatted error message string. If an index is provided, +the message includes the index; otherwise, it returns the message as is.

    +
    + +


    +

    Method clone()

    +

    The objects of this class are cloneable with this method.

    +

    Usage

    +

    Level4Functions$clone(deep = FALSE)

    +
    + +
    +

    Arguments

    +

    deep
    +

    Whether to make a deep clone.

    + + +

    +
    + +
    + +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/NumericBlockFinder.html b/docs/reference/NumericBlockFinder.html new file mode 100644 index 0000000..55ce06f --- /dev/null +++ b/docs/reference/NumericBlockFinder.html @@ -0,0 +1,190 @@ + +NumericBlockFinder: A class for finding numeric blocks in data — NumericBlockFinder • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This class provides methods to identify the upper-left and lower-right +cells of a numeric block within a dataframe.

    +
    + + +
    +

    Public fields

    +

    data
    +

    A dataframe containing the input data.

    + + +
    upper_left_cell
    +

    A list containing the row and column indices of the + upper-left cell.

    +

    Initialize a NumericBlockFinder object

    + + +

    +
    +
    +

    Methods

    + +


    +

    Method new()

    + +
    +

    Usage

    +

    +
    + +
    +

    Arguments

    +

    data
    +

    A dataframe containing the input data.

    + + +

    +
    +
    +

    Returns

    +

    A new instance of the NumericBlockFinder class.

    +

    Find the upper-left cell of the first 6x6 block of numeric values

    +

    This method identifies the upper-left cell of the first 6x6 block of +numeric values in the dataframe.

    +
    + +


    +

    Method find_upper_left_cell()

    + +
    +

    Usage

    +

    NumericBlockFinder$find_upper_left_cell()

    +
    + +
    +

    Returns

    +

    A list containing the row and column indices of the upper-left + cell.

    +

    Find the lower-right cell of a block of contiguous non-NA values

    +

    This method identifies the lower-right cell of a block of contiguous +non-NA values starting from a given upper-left cell in the dataframe.

    +
    + +


    +

    Method find_lower_right_cell()

    + +
    +

    Usage

    +

    NumericBlockFinder$find_lower_right_cell()

    +
    + +
    +

    Returns

    +

    A list containing the row and column indices of the lower-right + cell.

    +
    + +


    +

    Method clone()

    +

    The objects of this class are cloneable with this method.

    +

    Usage

    +

    NumericBlockFinder$clone(deep = FALSE)

    +
    + +
    +

    Arguments

    +

    deep
    +

    Whether to make a deep clone.

    + + +

    +
    + +
    + +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/SplineOmics-package.html b/docs/reference/SplineOmics-package.html new file mode 100644 index 0000000..60bd5d5 --- /dev/null +++ b/docs/reference/SplineOmics-package.html @@ -0,0 +1,209 @@ + +Package Name: SplineOmics — SplineOmics-package • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    The R package SplineOmics finds the significant features (hits) of +time-series -omics data by using splines and limma for hypothesis testing. +It then clusters the hits based on the spline shape while showing all +results in summary HTML reports.

    +

    For detailed documentation, vignettes, and examples, please visit the +[SplineOmics GitHub page](https://github.com/csbg/SplineOmics.git).

    +
    + + +
    +

    Key Functions and Classes

    + + +

    - extract_data: Extracts data matrix from Excel file. +- create_splineomics: Creates the SplineOmics object, which contains arguments + used by several package functions. +- explore_data: Performs exploratory data analysis with the data, and outputs + an HTML report containg various plots, such as density plots + and correlation heatmaps. +- screen_limma_hyperparams: Allows the specify lists of different hyperparameters + to test, such as a degree of freedom of 2, 3, 4, + and adj.p-val thresholds, such as 0.1 and 0.05, + and tests all specified different values for all + limma spline hyperparameters in a semi-combinatorial + way. +- update_splineomics: Allows to change values of the SplineOmics object, for + example after observing that outliers should be removed + from the data (update the data parameter). +- run_limma_splines: Central function of the script, is called by the + screen_limma_hyperparams function and can be called to + get the limma spline analysis results (p-values for all + features (e.g. proteins)) with the hyperparameters, that + were selected finally. +- create_limma_report: Creates an HTML report showing the run_limma_splines + results +- cluster_hits: Clusters the splines of the hits (significant features) based + on their shape and shows all results as plots in an HTML + report. +- download_enrichr_databases: Allows to download the Enrichr databases for + runnin clusterProfiler in the run_gsea function + with them. +- run_gsea: Runs clusterProfiler with the clustered hits by using the Enrichr + databases.

    +
    +
    +

    Package Options

    + + +

    None

    +
    +
    +

    Dependencies

    + + +

    - **ComplexHeatmap**: For creating complex heatmaps with advanced features. +- **base64enc**: For encoding/decoding base64. +- **dendextend**: For extending `dendrogram` objects in R, allowing for easier manipulation of dendrograms. +- **dplyr**: For data manipulation. +- **ggplot2**: For creating elegant data visualizations using the grammar of graphics. +- **ggrepel**: For better label placement in ggplot2. +- **here**: For constructing paths to your project’s files. +- **limma**: For linear models for microarray data. +- **openxlsx**: For reading, writing, and editing xlsx files. +- **patchwork**: For combining multiple ggplot objects into a single plot. +- **pheatmap**: For creating pretty heatmaps. +- **progress**: For adding progress bars to your loops and apply functions. +- **purrr**: For functional programming tools. +- **rlang**: For tools to work with core language features of R and R’s base types. +- **scales**: For scale functions for visualization. +- **tibble**: For creating tidy data frames that are easy to work with. +- **tidyr**: For tidying your data. +- **zip**: For combining files into a zip file.

    +

    Optional dependencies

    +

    These dependencies are only necessary for some functions:

    +

    - **edgeR**: For preprocessing RNA-seq data in the run_limma_splines() fun. +- **clusterProfiler**: For the run_gsea() function (gene set enrichment). +- **rstudioapi**: For the open_tutorial() and open_template() functions.

    +
    +
    +

    Authors

    + + +

    - [Thomas-Rauter](https://github.com/Thomas-Rauter) - Wrote the package and + developed the approach with VSchaepertoens under guidance from nfortelny + and skafdasschaf. +- [nfortelny](https://github.com/nfortelny) - Principal Investigator, + provided guidance and support. +- [skafdasschaf](https://github.com/skafdasschaf) - Helped review code and + provided improvement suggestions. +- [VSchaepertoens](https://github.com/VSchaepertoens) - Developed an internal + plotting function and contributed to exploratory data analysis and the + overall approach.

    +
    +
    +

    Maintainer

    + + +

    - Name: Thomas Rauter +- Email: thomas.rauter@plus.ac.at

    +
    +
    +

    License

    + + +

    - License: MIT

    +
    +
    +

    Useful URLs

    + + +

    - [GitHub repo of the package](https://github.com/csbg/SplineOmics.git)

    +
    +
    +

    Additional Information

    + + +

    None

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/add_feature_names.html b/docs/reference/add_feature_names.html new file mode 100644 index 0000000..a1a308e --- /dev/null +++ b/docs/reference/add_feature_names.html @@ -0,0 +1,131 @@ + +Add Feature Names to Data — add_feature_names • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function assigns feature names to the rows of a dataframe based on a +specified column from another dataframe. If no column is specified, it +assigns sequential numbers as feature names.

    +
    + +
    +
    add_feature_names(data, clean_data, feature_name_columns)
    +
    + +
    +

    Arguments

    + + +
    data
    +

    A dataframe containing the original data with feature names.

    + + +
    clean_data
    +

    A dataframe to which the feature names will be added.

    + + +
    feature_name_columns
    +

    A string specifying the name of the feature +columns in `data`. If `NA`, sequential numbers +will be used as feature names.

    + +
    +
    +

    Value

    +

    The `clean_data` dataframe with updated row names.

    +
    +
    +

    Details

    +

    The function performs the following operations: +- Extracts feature names from the specified column in `data`, ignoring + `NA` values. +- Ensures the feature names are unique and match the number of rows in +`clean_data`. +- Assigns the feature names to the rows of `clean_data`. +- If `feature_name_column` is `NA`, assigns sequential numbers +(1, 2, 3, etc.) + as feature names and issues a message.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/add_plot_to_html.html b/docs/reference/add_plot_to_html.html new file mode 100644 index 0000000..7c4bf92 --- /dev/null +++ b/docs/reference/add_plot_to_html.html @@ -0,0 +1,119 @@ + +Add Plot to HTML Content — add_plot_to_html • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function converts a plot to a base64 image and adds it to the +HTML content.

    +
    + +
    +
    add_plot_to_html(html_content, plot_element, plots_size, section_index)
    +
    + +
    +

    Arguments

    + + +
    html_content
    +

    The current HTML content as a character string.

    + + +
    plot_element
    +

    The plot element to be converted to base64.

    + + +
    plots_size
    +

    An integer specifying the height of the plot.

    + + +
    section_index
    +

    An integer specifying the section index.

    + +
    +
    +

    Value

    +

    The updated HTML content as a character string.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/ask_user.html b/docs/reference/ask_user.html new file mode 100644 index 0000000..bd51e69 --- /dev/null +++ b/docs/reference/ask_user.html @@ -0,0 +1,109 @@ + +Prompt the user with a yes/no question — ask_user • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function prompts the user with a yes/no question. If the user answers +"yes" (case insensitive), the code proceeds. If the user answers "no" or +anything else, the code stops.

    +
    + +
    +
    ask_user(question)
    +
    + +
    +

    Arguments

    + + +
    question
    +

    A string of the question to ask the user.

    + +
    +
    +

    Value

    +

    None.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/between_level.html b/docs/reference/between_level.html new file mode 100644 index 0000000..bf49ec1 --- /dev/null +++ b/docs/reference/between_level.html @@ -0,0 +1,161 @@ + +Between Level Analysis — between_level • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Performs a between-level analysis using LIMMA to compare specified levels +within a condition.

    +
    + +
    +
    between_level(
    +  data,
    +  preprocess_rna_seq,
    +  normalization_fun,
    +  meta,
    +  design,
    +  spline_params,
    +  condition,
    +  compared_levels,
    +  padjust_method,
    +  feature_names
    +)
    +
    + +
    +

    Arguments

    + + +
    data
    +

    A matrix of data values.

    + + +
    preprocess_rna_seq
    +

    Boolean specifying whether to preprocess RNA seq

    + + +
    normalization_fun
    +

    Function for normalizing RNA-seq raw-counts.

    + + +
    meta
    +

    A dataframe containing metadata, including a 'Time' column.

    + + +
    design
    +

    A design formula or matrix for the LIMMA analysis.

    + + +
    spline_params
    +

    A list of spline parameters for the analysis.

    + + +
    condition
    +

    A character string specifying the condition.

    + + +
    compared_levels
    +

    A vector of levels within the condition to compare.

    + + +
    padjust_method
    +

    A character string specifying the p-adjustment method.

    + + +
    feature_names
    +

    A non-empty character vector of feature names.

    + +
    +
    +

    Value

    +

    A list containing top tables for the factor only and factor-time +contrast.

    +
    + + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/bind_data_with_annotation.html b/docs/reference/bind_data_with_annotation.html new file mode 100644 index 0000000..e1d15c2 --- /dev/null +++ b/docs/reference/bind_data_with_annotation.html @@ -0,0 +1,115 @@ + +Bind Data with Annotation — bind_data_with_annotation • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function converts a matrix to a dataframe, adds row names as the first +column, +and binds it with annotation data.

    +
    + +
    +
    bind_data_with_annotation(data, annotation)
    +
    + +
    +

    Arguments

    + + +
    data
    +

    A matrix containing the numeric data.

    + + +
    annotation
    +

    A dataframe containing the annotation information.

    + +
    +
    +

    Value

    +

    A dataframe with `data` and `annotation` combined, and the row names + of `data` +as the first column named `feature_names`.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/build_cluster_hits_report.html b/docs/reference/build_cluster_hits_report.html new file mode 100644 index 0000000..336e7a3 --- /dev/null +++ b/docs/reference/build_cluster_hits_report.html @@ -0,0 +1,156 @@ + +Build Cluster Hits Report — build_cluster_hits_report • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Generates an HTML report for clustered hits, including plots and +spline parameter details, with a table of contents.

    +
    + +
    +
    build_cluster_hits_report(
    +  header_section,
    +  plots,
    +  plots_sizes,
    +  level_headers_info,
    +  spline_params,
    +  adj_pthresholds,
    +  mode,
    +  report_info,
    +  output_file_path
    +)
    +
    + +
    +

    Arguments

    + + +
    header_section
    +

    A character string containing the HTML header section.

    + + +
    plots
    +

    A list of ggplot2 plot objects.

    + + +
    plots_sizes
    +

    A list of integers specifying the size of each plot.

    + + +
    level_headers_info
    +

    A list of header information for each level.

    + + +
    spline_params
    +

    A list of spline parameters.

    + + +
    adj_pthresholds
    +

    Float vector with values for any level for adj.p.tresh

    + + +
    mode
    +

    A character string specifying the mode +('isolated' or 'integrated').

    + + +
    report_info
    +

    A named list containg the report info fields. Here used +for the email hotkey functionality.

    + + +
    output_file_path
    +

    A character string specifying the path to save the +HTML report.

    + +
    +
    +

    Value

    +

    No return value, called for side effects.

    +
    + + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/build_create_gsea_report.html b/docs/reference/build_create_gsea_report.html new file mode 100644 index 0000000..e22c86c --- /dev/null +++ b/docs/reference/build_create_gsea_report.html @@ -0,0 +1,151 @@ + +Build GSEA Report — build_create_gsea_report • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Generates an HTML report for Gene Set Enrichment Analysis (GSEA) based on +provided plot data, header information, and other content. The report +includes sections for each level of clustered hits, along with a table of +contents and various plots.

    +
    + +
    +
    build_create_gsea_report(
    +  header_section,
    +  plots,
    +  plots_sizes,
    +  level_headers_info,
    +  report_info,
    +  output_file_path
    +)
    +
    + +
    +

    Arguments

    + + +
    header_section
    +

    A string containing the HTML content for the header +section of the report.

    + + +
    plots
    +

    A list of plots to be included in the report.

    + + +
    plots_sizes
    +

    A list of sizes for the plots.

    + + +
    level_headers_info
    +

    A list containing header information for each +level of clustered hits.

    + + +
    report_info
    +

    A named list containg the report info fields. Here used +for the email hotkey functionality.

    + + +
    output_file_path
    +

    A string specifying the file path where the report +will be saved.

    + +
    +
    +

    Value

    +

    None. The function generates and writes an HTML report to the +specified output file path.

    +
    +
    +

    Details

    +

    The function first initializes the HTML content with the provided header +section and a placeholder for the table of contents (TOC). It then iterates +through the plots, generating sections for each level of clustered hits and +processing individual plots. The TOC is inserted into the HTML content, +which is then finalized and written to the specified output file.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/build_create_limma_report.html b/docs/reference/build_create_limma_report.html new file mode 100644 index 0000000..943a0ef --- /dev/null +++ b/docs/reference/build_create_limma_report.html @@ -0,0 +1,140 @@ + +Build Cluster Hits Report — build_create_limma_report • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Generates an HTML report for clustered hits, including plots and +spline parameter details, with a table of contents.

    +
    + +
    +
    build_create_limma_report(
    +  header_section,
    +  plots,
    +  plots_sizes,
    +  level_headers_info,
    +  report_info,
    +  output_file_path = here::here()
    +)
    +
    + +
    +

    Arguments

    + + +
    header_section
    +

    A character string containing the HTML header section.

    + + +
    plots
    +

    A list of ggplot2 plot objects.

    + + +
    plots_sizes
    +

    A list of integers specifying the size of each plot.

    + + +
    level_headers_info
    +

    A list of header information for each level.

    + + +
    report_info
    +

    A named list containg the report info fields. Here used +for the email hotkey functionality.

    + + +
    output_file_path
    +

    A character string specifying the path to save the +HTML report.

    + +
    +
    +

    Value

    +

    No return value, called for side effects.

    +
    + + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/build_explore_data_report.html b/docs/reference/build_explore_data_report.html new file mode 100644 index 0000000..19b307f --- /dev/null +++ b/docs/reference/build_explore_data_report.html @@ -0,0 +1,136 @@ + +Build Explore Data Report — build_explore_data_report • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function generates an HTML report containing a header section, table of +contents, and a series of plots. Each plot is included in the report with +specified sizes.

    +
    + +
    +
    build_explore_data_report(
    +  header_section,
    +  plots,
    +  plots_sizes,
    +  report_info,
    +  output_file_path
    +)
    +
    + +
    +

    Arguments

    + + +
    header_section
    +

    A string containing the HTML content for the header +section of the report.

    + + +
    plots
    +

    A list of ggplot objects representing the plots to be included +in the report.

    + + +
    plots_sizes
    +

    A list of sizes corresponding to each plot, defining the +dimensions to be used when rendering the plots.

    + + +
    report_info
    +

    A named list containg the report info fields. Here used +for the email hotkey functionality.

    + + +
    output_file_path
    +

    A string specifying the file path where the HTML +report will be saved.

    + +
    +
    +

    Value

    +

    None. This function writes the HTML content to the specified file.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/build_hyperparams_screen_report.html b/docs/reference/build_hyperparams_screen_report.html new file mode 100644 index 0000000..7d3b198 --- /dev/null +++ b/docs/reference/build_hyperparams_screen_report.html @@ -0,0 +1,136 @@ + +Build Hyperparameters Screening Report — build_hyperparams_screen_report • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Constructs an HTML report for hyperparameter screening by embedding plots +and their respective sizes into the provided header section.

    +
    + +
    +
    build_hyperparams_screen_report(
    +  header_section,
    +  plots,
    +  plots_sizes,
    +  report_info,
    +  output_file_path
    +)
    +
    + +
    +

    Arguments

    + + +
    header_section
    +

    A character string containing the HTML header section.

    + + +
    plots
    +

    A list of ggplot2 plot objects.

    + + +
    plots_sizes
    +

    A list of integers specifying the number of rows for each +plot.

    + + +
    report_info
    +

    A named list containg the report info fields. Here used +for the email hotkey functionality.

    + + +
    output_file_path
    +

    A character string specifying the path to save the +HTML report.

    + +
    +
    +

    Value

    +

    No return value, called for side effects.

    +
    +
    +

    See also

    + +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/check_between_level_pattern.html b/docs/reference/check_between_level_pattern.html new file mode 100644 index 0000000..492c0cc --- /dev/null +++ b/docs/reference/check_between_level_pattern.html @@ -0,0 +1,126 @@ + +Check for Between-Level Patterns in Top Tables — check_between_level_pattern • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function checks if any of the elements within a list of top tables +contain element names that match the specified between-level pattern.

    +
    + +
    +
    check_between_level_pattern(top_tables)
    +
    + +
    +

    Arguments

    + + +
    top_tables
    +

    A list where each element is itself a list containing +named elements.

    + +
    +
    +

    Value

    +

    A list with two elements:

    between_levels
    +

    A logical value indicating whether any element names + match the between-level pattern.

    + +
    index_with_pattern
    +

    The index of the first element in `top_tables` + where all names match the between-level pattern, or NA if no match is + found.

    + + +
    +
    +

    Details

    +

    The function iterates over each element in `top_tables`. For each element +that +is a list, it checks if all names within that inner list match the pattern +`".+_vs_.+"`. If a match is found, the function sets `between_levels` to TRUE +and records the index of the matching element. The search stops at the first +match.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/check_clustered_hits.html b/docs/reference/check_clustered_hits.html new file mode 100644 index 0000000..73216e3 --- /dev/null +++ b/docs/reference/check_clustered_hits.html @@ -0,0 +1,115 @@ + +Check Clustered Genes Dataframe for Required Conditions — check_clustered_hits • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function checks if a given dataframe `clustered_genes` contains the +required columns `gene` and `cluster`. The `gene` column must contain only +character strings of length 1, and the `cluster` column must contain only +integers. If any condition is not met, the function stops the script and +produces an informative error message.

    +
    + +
    +
    check_clustered_hits(levels_clustered_hits)
    +
    + +
    +

    Arguments

    + + +
    levels_clustered_hits
    +

    A list of dataframes to be checked for the +required format.

    + +
    +
    +

    Value

    +

    This function does not return a value. It stops with an error message + if the conditions are not met.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/check_databases.html b/docs/reference/check_databases.html new file mode 100644 index 0000000..005c6db --- /dev/null +++ b/docs/reference/check_databases.html @@ -0,0 +1,110 @@ + +Check Valid Databases Dataframe — check_databases • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function checks if the dataframe has exactly three columns +named DB, Geneset, and Gene, and all columns must be of type +character.

    +
    + +
    +
    check_databases(databases)
    +
    + +
    +

    Arguments

    + + +
    databases
    +

    A dataframe to check.

    + +
    +
    +

    Value

    +

    None. This function stops execution and provides an + error message if the dataframe is not valid.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/check_genes.html b/docs/reference/check_genes.html new file mode 100644 index 0000000..549bf86 --- /dev/null +++ b/docs/reference/check_genes.html @@ -0,0 +1,116 @@ + +Check Valid Gene IDs — check_genes • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function checks whether a character vector `genes` +contains only valid gene IDs. Each gene ID must consist +solely of alphabetic letters and numbers.

    +
    + +
    +
    check_genes(genes, max_index_overall = NA)
    +
    + +
    +

    Arguments

    + + +
    genes
    +

    A character vector containing gene IDs.

    + + +
    max_index_overall
    +

    An integer, specifying the highest index of all +features across all levels.

    + +
    +
    +

    Value

    +

    None. This function stops execution and provides +an error message if the vector does not meet the criteria, +including the first offending element and its index.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/check_null_elements.html b/docs/reference/check_null_elements.html new file mode 100644 index 0000000..099114a --- /dev/null +++ b/docs/reference/check_null_elements.html @@ -0,0 +1,112 @@ + +Check for NULL Elements in Arguments — check_null_elements • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function checks if any elements in the provided list of arguments +are `NULL`. +If any `NULL` elements are found, it stops the execution and returns +an informative error message.

    +
    + +
    +
    check_null_elements(args)
    +
    + +
    +

    Arguments

    + + +
    args
    +

    A list of arguments to check for `NULL` elements.

    + +
    +
    +

    Value

    +

    This function does not return a value. It stops execution if +any `NULL` elements are found in the input list.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/check_params.html b/docs/reference/check_params.html new file mode 100644 index 0000000..998d3f3 --- /dev/null +++ b/docs/reference/check_params.html @@ -0,0 +1,120 @@ + +Check Params List for Required Conditions — check_params • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function checks if a given list `params` contains only the allowed +named elements. The elements do not have to be present, but if they are, +they must be +named exactly as specified and must contain the correct data types: float, +character, int, +int, and float. If any condition is not met, the function stops the script +and produces an +informative error message. `params` can also be `NA`.

    +
    + +
    +
    check_params(params)
    +
    + +
    +

    Arguments

    + + +
    params
    +

    A list to be checked for the required conditions, or `NA`.

    + +
    +
    +

    Value

    +

    This function does not return a value. It stops with an error message + if the conditions are not met.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/check_splineomics_elements.html b/docs/reference/check_splineomics_elements.html new file mode 100644 index 0000000..dc210a5 --- /dev/null +++ b/docs/reference/check_splineomics_elements.html @@ -0,0 +1,114 @@ + +Check for Required Elements in the SplineOmics Object — check_splineomics_elements • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function checks if the given object contains all the required named +elements for a specified function type. If any element is missing, it stops +the script and provides an informative error message.

    +
    + +
    +
    check_splineomics_elements(splineomics, func_type)
    +
    + +
    +

    Arguments

    + + +
    splineomics
    +

    The object to be checked.

    + + +
    func_type
    +

    A string specifying the function type. It can be one of +"cluster_hits", "create_limma_report", "run_limma_splines", or "explore_data"

    + +
    +
    +

    Value

    +

    None. Stops execution if any required element is missing.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/clean_gene_symbols.html b/docs/reference/clean_gene_symbols.html new file mode 100644 index 0000000..73ce0c8 --- /dev/null +++ b/docs/reference/clean_gene_symbols.html @@ -0,0 +1,113 @@ + +Clean the Gene Symbols — clean_gene_symbols • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function preprocesses a vector of gene names by cleaning and +formatting them. It removes any non-alphanumeric characters after the +first block of alphanumeric characters and converts the remaining +characters to uppercase.

    +
    + +
    +
    clean_gene_symbols(genes)
    +
    + +
    +

    Arguments

    + + +
    genes
    +

    A character vector containing gene names to be cleaned.

    + +
    +
    +

    Value

    +

    A character vector of cleaned gene symbols (names) with the same +length as the input. The cleaned names will be in uppercase, and any +invalid or empty gene names will be replaced with NA.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/cluster_hits.html b/docs/reference/cluster_hits.html new file mode 100644 index 0000000..5bf9073 --- /dev/null +++ b/docs/reference/cluster_hits.html @@ -0,0 +1,201 @@ + +cluster_hits.R contains the exported package function cluster_hits and all the functions that make up the functionality of cluster_hits. cluster_hits clusters the hits of a time series omics datasets (the features that were significantly changed over the time course) with hierarchical clustering of the spline shape. Cluster Hits from Top Tables — cluster_hits • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Performs clustering on hits from top tables generated by differential +expression analysis. +This function filters hits based on adjusted p-value thresholds, extracts +spline coefficients for +significant features, normalizes these coefficients, and applies hierarchical +clustering. The results, +including clustering assignments and normalized spline curves, are saved in a +specified directory and +compiled into an HTML report.

    +
    + +
    +
    cluster_hits(
    +  splineomics,
    +  genes,
    +  adj_pthresholds = c(0.05),
    +  clusters = c("auto"),
    +  plot_info = list(y_axis_label = "Value", time_unit = "min", treatment_labels = NA,
    +    treatment_timepoints = NA),
    +  report_dir = here::here(),
    +  analysis_type = "time_effect",
    +  report = TRUE
    +)
    +
    + +
    +

    Arguments

    + + +
    splineomics
    +

    An S3 object of class `SplineOmics` that contains all the +necessary data and parameters for the analysis, including:

    • data: The original expression dataset used for differential + expression analysis.

    • +
    • meta: A dataframe containing metadata corresponding to the + data, must include a 'Time' column and any columns specified by + conditions.

    • +
    • design: A character of length 1 representing the limma + design formula.

    • +
    • condition: Character of length 1 specifying the column name + in meta used to define groups for analysis.

    • +
    • spline_params: A list of spline parameters for the analysis.

    • +
    • meta_batch_column: A character string specifying the column + name in the metadata used for batch effect removal.

    • +
    • meta_batch2_column: A character string specifying the second + column name in the metadata used for batch effect removal.

    • +
    • limma_splines_result: A list of data frames, each representing + a top table from differential expression analysis, containing at least + 'adj.P.Val' and expression data columns.

    • +
    + + +
    genes
    +

    A character vector containing the gene names of the features to +be analyzed.

    + + +
    adj_pthresholds
    +

    Numeric vector of p-value thresholds for filtering +hits in each top table.

    + + +
    clusters
    +

    Character or integer vector specifying the number of clusters +or 'auto' for automatic estimation.

    + + +
    plot_info
    +

    List containing the elements y_axis_label (string), +time_unit (string), treatment_labels (character vector), +treatment_timepoints (integer vector). All can also be NA. +This list is used to add this info to the spline plots. +time_unit is used to label the x-axis, and treatment_labels +and -timepoints are used to create vertical dashed lines, +indicating the positions of the treatments (such as +feeding, temperature shift, etc.).

    + + +
    report_dir
    +

    Character string specifying the directory path where the +HTML report and any other output files should be saved.

    + + +
    analysis_type
    +

    String specifying type of limma results (which of the +three categories: time_effect, avrg_diff_conditions, +and interaction_condition_time ( +see limma_result_categories.pdf in inst/descriptions).

    + + +
    report
    +

    Boolean TRUE or FALSE value specifing if a report should be +generated.

    + +
    +
    +

    Value

    +

    A list where each element corresponds to a group factor and contains +the clustering results, + including `clustered_hits` data frame, hierarchical clustering object + `hc`, `curve_values` + data frame with normalized spline curves, and `top_table` with + cluster assignments.

    +
    +
    +

    See also

    + +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/control_inputs_create_gsea_report.html b/docs/reference/control_inputs_create_gsea_report.html new file mode 100644 index 0000000..507b16f --- /dev/null +++ b/docs/reference/control_inputs_create_gsea_report.html @@ -0,0 +1,127 @@ + +Control Inputs for GSEA Report — control_inputs_create_gsea_report • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Validates the inputs for generating a GSEA report, including clustered +hits, genes, databases, parameters, plot titles, and background genes.

    +
    + +
    +
    control_inputs_create_gsea_report(
    +  levels_clustered_hits,
    +  databases,
    +  params,
    +  plot_titles,
    +  background
    +)
    +
    + +
    +

    Arguments

    + + +
    levels_clustered_hits
    +

    A list containing clustered hits at various +levels.

    + + +
    databases
    +

    A list of databases to be used in the GSEA analysis.

    + + +
    params
    +

    A list of parameters for the GSEA analysis.

    + + +
    plot_titles
    +

    A character vector of titles for the plots, with length +matching `levels_clustered_hits`.

    + + +
    background
    +

    A character vector of background genes or NULL.

    + +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/control_inputs_extract_data.html b/docs/reference/control_inputs_extract_data.html new file mode 100644 index 0000000..437aa29 --- /dev/null +++ b/docs/reference/control_inputs_extract_data.html @@ -0,0 +1,123 @@ + +Control Inputs for Extracting Data — control_inputs_extract_data • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function checks the validity of input data and the feature name column. +It ensures that the input data is a dataframe, the feature name column is +specified correctly, and contains valid data.

    +
    + +
    +
    control_inputs_extract_data(data, feature_name_columns)
    +
    + +
    +

    Arguments

    + + +
    data
    +

    A dataframe containing the input data.

    + + +
    feature_name_columns
    +

    A character vector specifying the names of the +feature name columns. The columns must be present +in the dataframe data. If `NA`, no column is +checked.

    + +
    +
    +

    Details

    +

    The function performs the following checks: +- Ensures the input data is a dataframe. +- Checks if the feature name column is a single string and exists in the +data. +- Ensures the specified feature name column does not contain only `NA` +values. +- Checks if the input dataframe is not empty.

    +

    If any of these checks fail, the function stops with an error message.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/create_enrichr_zip.html b/docs/reference/create_enrichr_zip.html new file mode 100644 index 0000000..c13cbc1 --- /dev/null +++ b/docs/reference/create_enrichr_zip.html @@ -0,0 +1,118 @@ + +Create a ZIP File for Enrichr Gene Lists — create_enrichr_zip • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function creates a ZIP file containing directories for each level of +gene lists. Each directory contains text files for each cluster. The ZIP file +is then encoded to base64 for easy download.

    +
    + +
    +
    create_enrichr_zip(enrichr_format)
    +
    + +
    +

    Arguments

    + + +
    enrichr_format
    +

    A list with the formatted gene lists and background +gene list, typically the output of `prepare_gene_lists_for_enrichr`.

    + +
    +
    +

    Value

    +

    A base64-encoded string representing the ZIP file.

    +
    +
    +

    Details

    +

    The function creates a temporary directory to store the files. For each level +in the `enrichr_format$gene_lists`, it creates a directory named after the +level. Within each level directory, it creates a text file for each cluster, +containing the genes in that cluster. The directories and files are added +to a ZIP file, which is then encoded to base64.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/create_gsea_report_level.html b/docs/reference/create_gsea_report_level.html new file mode 100644 index 0000000..dc015af --- /dev/null +++ b/docs/reference/create_gsea_report_level.html @@ -0,0 +1,142 @@ + +Perform Gene Set Enrichment Analysis and plot it. — create_gsea_report_level • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function conducts a Gene Set Enrichment Analysis (GSEA) using either the +clusterProfiler package. Afterwards, it plots the results. +It allows for customization of enrichment parameters, selection of databases, +and optionally specifying a custom plot title and background gene list.

    +
    + +
    +
    create_gsea_report_level(
    +  clustered_genes,
    +  databases,
    +  params = NA,
    +  plot_title = "",
    +  background = NULL
    +)
    +
    + +
    +

    Arguments

    + + +
    clustered_genes
    +

    A list of dataframes with two columns: the first +column contains the standard gene symbol, and the second column contains an +integer specifying the cluster.

    + + +
    databases
    +

    A dataframe containing the data of the downloaded Enrichr +databases

    + + +
    params
    +

    A list specifying the clusterProfiler parameters for the +enrichment analysis.

    + + +
    plot_title
    +

    An optional string specifying the title of the plot. If not +provided, a default title based on the analysis will be used.

    + + +
    background
    +

    An optional list of standard gene symbols to be used as the +background for the enrichment analysis instead of the background chosen by +the `enricher`. The default is an empty list, which implies the use of the +default background set by the enrichment tool.

    + +
    +
    +

    Value

    +

    An object containing the results of the Gene Set Enrichment Analysis, +including any plots generated during the analysis.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/create_limma_report.html b/docs/reference/create_limma_report.html new file mode 100644 index 0000000..2b02427 --- /dev/null +++ b/docs/reference/create_limma_report.html @@ -0,0 +1,138 @@ + +Create a limma report — create_limma_report • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Generates an HTML report based on the results of a limma analysis with +splines. +The report includes various plots and sections summarizing the analysis +results for time effects, average differences between conditions, +and interaction effects between condition and time.

    +
    + +
    +
    create_limma_report(splineomics, adj_pthresh = 0.05, report_dir = here::here())
    +
    + +
    +

    Arguments

    + + +
    splineomics
    +

    An S3 object of class `SplineOmics` that contains all the +necessary data and parameters for the analysis, including:

    • limma_splines_result: A list containing top tables from + differential expression analysis for the three different limma results.

    • +
    • meta: A data frame with sample metadata. Must contain a column + "Time".

    • +
    • condition: A character string specifying the column name in + the metadata (meta) that defines groups + for analysis. This column contains levels such as + "exponential" and "stationary" for phases, or + "drug" and "no_drug" for treatments.

    • +
    • annotation: A data frame containing feature information, + such as gene and protein names, associated with + the expression data.

    • +
    • report_info: A list containing metadata about the analysis + for reporting purposes.

    • +
    + + +
    adj_pthresh
    +

    A numeric value specifying the adjusted p-value threshold +for significance. Default is 0.05. Must be > 0 and < 1.

    + + +
    report_dir
    +

    A string specifying the directory where the report should +be saved. Default is the current working directory.

    + +
    +
    +

    Value

    +

    A list of plots included in the generated HTML report.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/create_p_value_histogram.html b/docs/reference/create_p_value_histogram.html new file mode 100644 index 0000000..2957325 --- /dev/null +++ b/docs/reference/create_p_value_histogram.html @@ -0,0 +1,121 @@ + +Create a p-value histogram from a limma top_table — create_p_value_histogram • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function generates a histogram of the unadjusted p-values from a +limma top_table.

    +
    + +
    +
    create_p_value_histogram(
    +  top_table,
    +  adj_pthresh = 0.05,
    +  title = "P-Value Histogram"
    +)
    +
    + +
    +

    Arguments

    + + +
    top_table
    +

    A data frame containing the limma top_table with +a column named `P.Value` for unadjusted p-values.

    + + +
    adj_pthresh
    +

    A numeric value for the adjusted p-value threshold +(not used in this function, included for consistency).

    + + +
    title
    +

    A character string for the title of the histogram.

    + +
    +
    +

    Value

    +

    A ggplot2 object representing the histogram of unadjusted p-values.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/create_progress_bar.html b/docs/reference/create_progress_bar.html new file mode 100644 index 0000000..c77ac1d --- /dev/null +++ b/docs/reference/create_progress_bar.html @@ -0,0 +1,115 @@ + +utils scripts contains shared functions that are used by at least two package functions of the SplineOmics package. Create Progress Bar — create_progress_bar • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Creates a progress bar for tracking the progress of an iterable task.

    +
    + +
    +
    create_progress_bar(iterable, message = "Processing")
    +
    + +
    +

    Arguments

    + + +
    iterable
    +

    An iterable object (e.g., list or vector) whose length +determines the total number of steps.

    + + +
    message
    +

    A message to display with the progress bar +(default is "Processing").

    + +
    +
    +

    Value

    +

    A progress bar object from the 'progress' package.

    +
    +
    +

    See also

    +

    progress_bar

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/create_spline_params.html b/docs/reference/create_spline_params.html new file mode 100644 index 0000000..dd48fdc --- /dev/null +++ b/docs/reference/create_spline_params.html @@ -0,0 +1,127 @@ + +Create Spline Parameters — create_spline_params • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Generates spline parameters based on the configuration, metadata, condition, +and mode.

    +
    + +
    +
    create_spline_params(spline_test_configs, index, meta, condition, mode)
    +
    + +
    +

    Arguments

    + + +
    spline_test_configs
    +

    A configuration object for spline tests.

    + + +
    index
    +

    Index of the spline configuration to process.

    + + +
    meta
    +

    A dataframe containing metadata.

    + + +
    condition
    +

    A character string specifying the condition.

    + + +
    mode
    +

    A character string specifying the mode.

    + +
    +
    +

    Value

    +

    A list of processed spline parameters.

    +
    +
    +

    See also

    + +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/create_splineomics.html b/docs/reference/create_splineomics.html new file mode 100644 index 0000000..b60cd54 --- /dev/null +++ b/docs/reference/create_splineomics.html @@ -0,0 +1,203 @@ + +Create and update the SplineOmics object ===== — create_splineomics • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Creates a SplineOmics object containing variables that are commonly used +across multiple functions in the package.

    +
    + +
    +
    create_splineomics(
    +  data,
    +  meta,
    +  condition,
    +  annotation = NULL,
    +  report_info = NULL,
    +  meta_batch_column = NULL,
    +  meta_batch2_column = NULL,
    +  feature_name_columns = NULL,
    +  design = NULL,
    +  spline_params = NULL,
    +  preprocess_rna_seq = FALSE,
    +  normalization_fun = NULL,
    +  padjust_method = "BH"
    +)
    +
    + +
    +

    Arguments

    + + +
    data
    +

    The actual omics data.

    + + +
    meta
    +

    Metadata associated with the omics data.

    + + +
    condition
    +

    A condition variable.

    + + +
    annotation
    +

    A dataframe with the feature descriptions of data +(optional).

    + + +
    report_info
    +

    A list containing report information such as omics data +type, data description, data collection date, analyst name, contact info, +and project name (optional).

    + + +
    meta_batch_column
    +

    Column for meta batch information (optional).

    + + +
    meta_batch2_column
    +

    Column for secondary meta batch information +(optional).

    + + +
    feature_name_columns
    +

    Character vector containing the column names of +the annotation info that describe the features. +This argument is used to specify in the HTML +report how exactly the feature names displayed +above each individual spline plot have been +created. Use the same vector that was used to +create the row headers for the data matrix!

    + + +
    design
    +

    A design matrix or similar object (optional).

    + + +
    spline_params
    +

    Parameters for spline functions (optional).

    + + +
    preprocess_rna_seq
    +

    Boolean specifying whether to preprocess RNA seq

    + + +
    normalization_fun
    +

    Function used for normalizing RNA-seq. Must take as +input the y of: y <- edgeR::DGEList(counts = raw_counts) and output the y +with the normalized counts.

    + + +
    padjust_method
    +

    Method for p-value adjustment, one of "none", "BH", +"BY", "holm", "bonferroni", "hochberg", or "hommel". +Defaults to "BH" (Benjamini-Hochberg).

    + +
    +
    +

    Value

    +

    A SplineOmics object.

    +
    +
    +

    Details

    +

    Description +———– +Contains the functions to create and update a SplineOmics object. This object +is used to collect function arguments, that are equivalent for more than one +exported function of the SplineOmics package. Additionally

    +

    Functions +——— +- create_splineomics: Create a SplineOmics object +- update_splineomics: Add additional arguments to the SplineOmics +object or overwrite existing arguments.

    +

    Classes +——- +None

    +

    Notes +—– +None +Create a SplineOmics object

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/create_toc.html b/docs/reference/create_toc.html new file mode 100644 index 0000000..d050c40 --- /dev/null +++ b/docs/reference/create_toc.html @@ -0,0 +1,97 @@ + +Create Table of Contents — create_toc • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Creates the HTML content for the Table of Contents.

    +
    + +
    +
    create_toc()
    +
    + +
    +

    Value

    +

    A string containing the HTML for the Table of Contents.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/create_volcano_plot.html b/docs/reference/create_volcano_plot.html new file mode 100644 index 0000000..0190628 --- /dev/null +++ b/docs/reference/create_volcano_plot.html @@ -0,0 +1,117 @@ + +Create a Volcano Plot — create_volcano_plot • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function creates a volcano plot from a limma top table, plotting +log fold changes against the negative log10 of adjusted p-values.

    +
    + +
    +
    create_volcano_plot(top_table, adj_pthresh, compared_levels)
    +
    + +
    +

    Arguments

    + + +
    top_table
    +

    A data frame from limma containing 'logFC' and 'adj.P.Val' +columns.

    + + +
    adj_pthresh
    +

    A numeric value for the adjusted p-value threshold.

    + + +
    compared_levels
    +

    A character vector of length 2 specifying the +compared levels.

    + +
    +
    +

    Value

    +

    A ggplot object representing the volcano plot.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/dbs_to_term2genes.html b/docs/reference/dbs_to_term2genes.html new file mode 100644 index 0000000..7e65e22 --- /dev/null +++ b/docs/reference/dbs_to_term2genes.html @@ -0,0 +1,121 @@ + +Convert Database File to TERM2GENE List — dbs_to_term2genes • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Reads a specified .tsv file containing information about databases, +gene sets, and genes. The file should have three columns: 'DB' for database +names, Geneset' for gene set identifiers, and 'Gene' for gene names. This +function organizes this information into a nested list. Each top-level +element corresponds to a unique database, and within each, gene sets map to +lists of associated genes.

    +
    + +
    +
    dbs_to_term2genes(databases)
    +
    + +
    +

    Arguments

    + + +
    databases
    +

    A dataframe, containing the three columns DB, Geneset, and +gene. This dataframe contains the databases downloaded from +Enrichr with the SplineOmics package function: +download_enrichr_databases.

    + +
    +
    +

    Value

    +

    A nested list where the first level of names corresponds to database +names ('DB'), + the second level to gene sets ('Geneset'), and the innermost lists + contain gene names ('Gene') associated with each gene set.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/define_html_styles.html b/docs/reference/define_html_styles.html new file mode 100644 index 0000000..e7f4836 --- /dev/null +++ b/docs/reference/define_html_styles.html @@ -0,0 +1,99 @@ + +Define HTML Styles — define_html_styles • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Defines the CSS styles for section headers and Table of Contents (TOC) +entries used in the GSEA report generation.

    +
    + +
    +
    define_html_styles()
    +
    + +
    +

    Value

    +

    A list containing the styles for section headers and TOC entries.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/design2design_matrix.html b/docs/reference/design2design_matrix.html new file mode 100644 index 0000000..0f3e72b --- /dev/null +++ b/docs/reference/design2design_matrix.html @@ -0,0 +1,126 @@ + +Create Design Matrix for Splines — design2design_matrix • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function generates a design matrix using spline parameters and metadata. +It accommodates both B-splines and natural cubic splines based on the provided +spline type and parameters.

    +
    + +
    +
    design2design_matrix(meta, spline_params, level_index, design)
    +
    + +
    +

    Arguments

    + + +
    meta
    +

    A dataframe containing the metadata, including the time column.

    + + +
    spline_params
    +

    A list containing the spline parameters. This list can +include `dof` (degrees of freedom), `knots`, `bknots` (boundary knots), +`spline_type`, and `degree`.

    + + +
    level_index
    +

    An integer representing the current level index for which +the design matrix is being generated.

    + + +
    design
    +

    A character string representing the design formula to be used +for generating the model matrix.

    + +
    +
    +

    Value

    +

    A design matrix constructed using the specified spline parameters and +design formula.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/determine_analysis_mode.html b/docs/reference/determine_analysis_mode.html new file mode 100644 index 0000000..5d816de --- /dev/null +++ b/docs/reference/determine_analysis_mode.html @@ -0,0 +1,119 @@ + +Determine Analysis Mode Based on Design Formula — determine_analysis_mode • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function determines whether each level should be analyzed in isolation +or together based on the design formula. If the design formula includes +interaction terms involving the factor of the experiment, the analysis +mode is considered integrated (together). Otherwise, it is considered isolated.

    +
    + +
    +
    determine_analysis_mode(design, factor_column)
    +
    + +
    +

    Arguments

    + + +
    design
    +

    A character string representing the design formula to be used +for generating the model matrix.

    + + +
    factor_column
    +

    A character string representing the column name of the +factor of the experiment in the metadata.

    + +
    +
    +

    Value

    +

    A character string indicating the analysis mode, either "integrated" +if the design formula involves interaction terms with the factor of the +experiment, or "isolated" otherwise.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/download_enrichr_databases.html b/docs/reference/download_enrichr_databases.html new file mode 100644 index 0000000..4121423 --- /dev/null +++ b/docs/reference/download_enrichr_databases.html @@ -0,0 +1,118 @@ + +The exported function download_enrichr_databases allows to selects & download Enrichr databases for local use with clusterProfiler. Download Enrichr Databases — download_enrichr_databases • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function downloads gene sets from specified Enrichr databases and saves + them to a specified output directory as a .tsv file. The file is named with + a timestamp to ensure uniqueness.

    +
    + +
    +
    download_enrichr_databases(gene_set_lib, output_dir = here::here())
    +
    + +
    +

    Arguments

    + + +
    gene_set_lib
    +

    A character vector of database names to download from +Enrichr.

    + + +
    output_dir
    +

    A character string specifying the output directory +where the .tsv file will be saved. Defaults to the current +working directory.

    + +
    +
    +

    Value

    +

    This function does not return a value but saves a .tsv file in the + specified directory containing the gene sets from the specified + Enrichr databases.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/encode_df_to_base64.html b/docs/reference/encode_df_to_base64.html new file mode 100644 index 0000000..333d2c4 --- /dev/null +++ b/docs/reference/encode_df_to_base64.html @@ -0,0 +1,117 @@ + +Encode DataFrame to Base64 for HTML Embedding — encode_df_to_base64 • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function takes a dataframe as input and returns a base64 encoded +CSV object. The encoded object can be embedded into an HTML document +directly, with a button to download the file without pointing to a +local file.

    +
    + +
    +
    encode_df_to_base64(df, report_type = NA)
    +
    + +
    +

    Arguments

    + + +
    df
    +

    A dataframe to be encoded.

    + + +
    report_type
    +

    (Optional) A string specifying for which report generation +this function is called. Generates different Excel sheet +names based on the report_type.

    + +
    +
    +

    Value

    +

    A character string containing the base64 encoded CSV data.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/enrichr_get_genesets.html b/docs/reference/enrichr_get_genesets.html new file mode 100644 index 0000000..5d1f4ca --- /dev/null +++ b/docs/reference/enrichr_get_genesets.html @@ -0,0 +1,112 @@ + +Get Enrichr Gene Sets — enrichr_get_genesets • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function downloads gene sets from specified Enrichr databases. +It returns a list where each element is a list corresponding to a database, +with each element containing a vector of human gene symbols for a gene set.

    +
    + +
    +
    enrichr_get_genesets(databases)
    +
    + +
    +

    Arguments

    + + +
    databases
    +

    A character vector of database names to download from +Enrichr.

    + +
    +
    +

    Value

    +

    A named list of gene sets from the specified Enrichr databases. Each + database is represented as a list, with gene set names as list + names and vectors of human gene symbols as list elements.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/ensure_clusterProfiler.html b/docs/reference/ensure_clusterProfiler.html new file mode 100644 index 0000000..35ded19 --- /dev/null +++ b/docs/reference/ensure_clusterProfiler.html @@ -0,0 +1,99 @@ + +Ensure 'clusterProfiler' is installed and loaded — ensure_clusterProfiler • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function checks if the 'clusterProfiler' package is installed. +If not, it prompts the user to choose whether to install it automatically, +install it manually, or cancel the operation. Once installed, the package +is loaded for use.

    +
    + +
    +
    ensure_clusterProfiler()
    +
    + + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/explore_data.html b/docs/reference/explore_data.html new file mode 100644 index 0000000..37acd37 --- /dev/null +++ b/docs/reference/explore_data.html @@ -0,0 +1,122 @@ + +Generate Exploratory Plots — explore_data • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function takes a data matrix, checks its validity, and generates a list +of exploratory plots including density plots, boxplots, PCA plots, MDS plots, +variance explained plots, and violin plots.

    +
    + +
    +
    explore_data(splineomics, report_dir = here::here(), report = TRUE)
    +
    + +
    +

    Arguments

    + + +
    splineomics
    +

    A SplineOmics object, containing the data, meta, +condition, report_info, meta_batch_column, and +meta_batch2_column;

    + + +
    report_dir
    +

    A non-empty string specifying the report directory.

    + + +
    report
    +

    A Boolean TRUE or FALSE value, specifying if a report should +be generated or not. A report is generated per default, but +when only the plots as plot objects inside R are desired, this +argument can be set to FALSE.

    + +
    +
    +

    Value

    +

    A list of ggplot objects representing various exploratory plots.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/extract_data.html b/docs/reference/extract_data.html new file mode 100644 index 0000000..0b28505 --- /dev/null +++ b/docs/reference/extract_data.html @@ -0,0 +1,127 @@ + +extract_data.R contains the exported package function extract_data. This function automatically recognises the data field in a table and returns the data matrix, that serves as input for the other functions of this package. This is for convenience only. Extract Numeric Matrix from Dataframe — extract_data • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function takes a dataframe and identifies a rectangular or quadratic +area containing numeric data, starting from the first occurrence of a +6x6 block of numeric values. It then extracts this area into a matrix, +ensuring that each row contains only numeric values. Rows with any NA values +are removed from the resulting matrix.

    +
    + +
    +
    extract_data(data, feature_name_columns = NA, user_prompt = TRUE)
    +
    + +
    +

    Arguments

    + + +
    data
    +

    A dataframe loaded from a tabular file, potentially containing a +rectangular or quadratic area with numeric data amidst other values.

    + + +
    feature_name_columns
    +

    (Optional) A character vector, specifying the +columns of the dataframe data, that should be +used to construct the feature names. If ommited, +the feature names are just numbers (stored as +characters) starting from 1 (1, 2, 3, etc.)

    + + +
    user_prompt
    +

    Boolean specifying whether the user prompt about the +correct format of the input data should be shown.

    + +
    +
    +

    Value

    +

    A numeric matrix with row headers and appropriate column names.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/figures/SplineOmics_graphical_abstract.png b/docs/reference/figures/SplineOmics_graphical_abstract.png new file mode 100755 index 0000000000000000000000000000000000000000..d47461cba40b86f9e7e3bec8a81c0e01c433e711 GIT binary patch literal 373029 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�*$tp#Squwu^F=N^4E2q(gB~RFfF@ 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

    WoMiB^>mn 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

    l9wK1)2MiFIzNw!6+sWkuwaypjnoVuEbIUr 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

    Pp@$IPX#p{sM|vw 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С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

    g(2Pk4V}rYEAmTy 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 LqC}S1(>MPQm--5H literal 86502 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≀168;QSz@$LF|A>VLbNg9ADSu#L?bcyeg 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 +Flatten Spline Configurations — flatten_spline_configs • SplineOmics + + +

    +
    + + + +
    +
    + + +
    +

    Flattens and formats spline configurations into a list of formatted strings.

    +
    + +
    +
    flatten_spline_configs(spline_configs)
    +
    + +
    +

    Arguments

    + + +
    spline_configs
    +

    A list of spline configuration objects.

    + +
    +
    +

    Value

    +

    A list of formatted strings representing each spline configuration.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/format_text.html b/docs/reference/format_text.html new file mode 100644 index 0000000..b1dbb08 --- /dev/null +++ b/docs/reference/format_text.html @@ -0,0 +1,113 @@ + +Format text — format_text • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function takes a character vector `text` and splits it into individual +characters. It then iterates over the characters and builds lines not +exceeding +a specified character limit (default 70). Newlines are inserted between lines +using the `<br>` tag, suitable for HTML display.

    +
    + +
    +
    format_text(text)
    +
    + +
    +

    Arguments

    + + +
    text
    +

    A character vector to be formatted.

    + +
    +
    +

    Value

    +

    A character vector with formatted text containing line breaks.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/gen_composite_spline_plots.html b/docs/reference/gen_composite_spline_plots.html new file mode 100644 index 0000000..69779d3 --- /dev/null +++ b/docs/reference/gen_composite_spline_plots.html @@ -0,0 +1,138 @@ + +Generate Composite Spline Plots — gen_composite_spline_plots • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Creates composite spline plots for significant and non-significant features +across multiple levels within a condition. +One half of one condition comparison HTML +(composite spline plots for one 'condition' inside one condition comparison)

    +
    + +
    +
    gen_composite_spline_plots(
    +  internal_combos,
    +  datas,
    +  metas,
    +  spline_test_configs,
    +  time_unit_label
    +)
    +
    + +
    +

    Arguments

    + + +
    internal_combos
    +

    A list containing combinations of top tables.

    + + +
    datas
    +

    A list of matrices.

    + + +
    metas
    +

    A list of metadata corresponding to the data matrices.

    + + +
    spline_test_configs
    +

    A configuration object for spline tests.

    + + +
    time_unit_label
    +

    A character string specifying the time unit label +for plots.

    + +
    +
    +

    Value

    +

    A list containing the composite spline plots and their lengths.

    +
    +
    +

    See also

    + +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/gen_hitcomp_plots.html b/docs/reference/gen_hitcomp_plots.html new file mode 100644 index 0000000..d706cfa --- /dev/null +++ b/docs/reference/gen_hitcomp_plots.html @@ -0,0 +1,113 @@ + +Generate Hit Comparison Plots — gen_hitcomp_plots • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Generates Venn heatmap and barplot for a given combination pair of top +tables.

    +
    + +
    +
    gen_hitcomp_plots(combo_pair)
    +
    + +
    +

    Arguments

    + + +
    combo_pair
    +

    A list containing two combinations of top tables.

    + +
    +
    +

    Value

    +

    A list containing the Venn heatmap plot, the number of hits divided +by 16, the barplot, and a length indicator for the barplot.

    +
    +
    +

    See also

    + +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/generate_and_write_html.html b/docs/reference/generate_and_write_html.html new file mode 100644 index 0000000..8dbfab5 --- /dev/null +++ b/docs/reference/generate_and_write_html.html @@ -0,0 +1,120 @@ + +Generate and Write HTML Report — generate_and_write_html • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function generates an HTML report by inserting a table of contents, +embedding necessary JavaScript files, and writing the final HTML content +to a specified output file.

    +
    + +
    +
    generate_and_write_html(toc, html_content, report_info, output_file_path)
    +
    + +
    +

    Arguments

    + + +
    toc
    +

    A string containing the table of contents in HTML format.

    + + +
    html_content
    +

    A string containing the main HTML content with a +placeholder for the table of contents.

    + + +
    report_info
    +

    A list containing report information such as +`contact_info` and `analyst_name`.

    + + +
    output_file_path
    +

    A string specifying the path where the final +HTML file will be written.

    + +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/generate_avrg_diff_plots.html b/docs/reference/generate_avrg_diff_plots.html new file mode 100644 index 0000000..c7ea461 --- /dev/null +++ b/docs/reference/generate_avrg_diff_plots.html @@ -0,0 +1,116 @@ + +Generate Plots for Average Difference Conditions — generate_avrg_diff_plots • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Creates p-value histograms and volcano plots for each condition in the +average difference conditions. This function is used internally in the +`create_limma_report` function.

    +
    + +
    +
    generate_avrg_diff_plots(avrg_diff_conditions, adj_pthresh)
    +
    + +
    +

    Arguments

    + + +
    avrg_diff_conditions
    +

    A list of top tables from the LIMMA analysis +representing the average difference between conditions.

    + + +
    adj_pthresh
    +

    A numeric value specifying the adjusted p-value threshold +for significance.

    + +
    +
    +

    Value

    +

    A list containing the plots and their sizes, as well as the +section header information.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/generate_explore_plots.html b/docs/reference/generate_explore_plots.html new file mode 100644 index 0000000..68220a5 --- /dev/null +++ b/docs/reference/generate_explore_plots.html @@ -0,0 +1,125 @@ + +Generate exploratory plots — generate_explore_plots • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function generates various exploratory plots including density plots, +box plots, violin plots, PCA plots, and correlation heatmaps based on the +provided data and metadata.

    +
    + +
    +
    generate_explore_plots(data, meta, condition)
    +
    + +
    +

    Arguments

    + + +
    data
    +

    A data frame or matrix containing the data to be plotted.

    + + +
    meta
    +

    A data frame containing metadata associated with the data.

    + + +
    condition
    +

    A string specifying the column in the metadata that contains +the condition or grouping variable.

    + +
    +
    +

    Value

    +

    A list containing two elements:

    plots
    +

    A list of ggplot objects representing the generated plots.

    + +
    plots_sizes
    +

    A vector of numeric values indicating the sizes of the + corresponding plots.

    + + +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/generate_interaction_plots.html b/docs/reference/generate_interaction_plots.html new file mode 100644 index 0000000..94f50bd --- /dev/null +++ b/docs/reference/generate_interaction_plots.html @@ -0,0 +1,117 @@ + +Generate Plots for Interaction of Condition and Time — generate_interaction_plots • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Creates p-value histograms for each interaction condition in the +interaction of condition and time. This function is used internally in the +`create_limma_report` function.

    +
    + +
    +
    generate_interaction_plots(interaction_condition_time, adj_pthresh)
    +
    + +
    +

    Arguments

    + + +
    interaction_condition_time
    +

    A list of top tables from the LIMMA +analysis +representing the interaction effects between condition and time.

    + + +
    adj_pthresh
    +

    A numeric value specifying the adjusted p-value threshold +for significance.

    + +
    +
    +

    Value

    +

    A list containing the plots and their sizes, as well as the +section header information.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/generate_report_html.html b/docs/reference/generate_report_html.html new file mode 100644 index 0000000..5768f83 --- /dev/null +++ b/docs/reference/generate_report_html.html @@ -0,0 +1,212 @@ + +utils scripts contains shared functions that are used by at least two package functions of the SplineOmics package. The level separation is only valid internally in this script, and has no connection to the script level of the respective exported functions scripts. Generate Report HTML — generate_report_html • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Generates an HTML report with the provided plots, spline parameters, and +report information.

    +
    + +
    +
    generate_report_html(
    +  plots,
    +  plots_sizes,
    +  report_info,
    +  data = NULL,
    +  meta = NA,
    +  topTables = NA,
    +  enrichr_format = NA,
    +  level_headers_info = NA,
    +  spline_params = NA,
    +  adj_pthresholds = NA,
    +  report_type = "explore_data",
    +  feature_name_columns = NA,
    +  analysis_type = NA,
    +  mode = NA,
    +  filename = "report",
    +  timestamp = format(Sys.time(), "%d_%m_%Y-%H_%M_%S"),
    +  report_dir = here::here()
    +)
    +
    + +
    +

    Arguments

    + + +
    plots
    +

    A list of ggplot2 plot objects.

    + + +
    plots_sizes
    +

    A list of integers specifying the size of each plot.

    + + +
    report_info
    +

    A named list containing report information.

    + + +
    data
    +

    A dataframe or a list of dataframes, containing data that should +be directly embedded in the HTML report for downloading.

    + + +
    meta
    +

    A dataframe, containing metadata that should +be directly embedded in the HTML report for downloading.

    + + +
    topTables
    +

    List of limma topTables

    + + +
    enrichr_format
    +

    List, containing two lists: The gene list and the list +of background genes.

    + + +
    level_headers_info
    +

    A list of header information for each level.

    + + +
    spline_params
    +

    A list of spline parameters, such as dof and type.

    + + +
    adj_pthresholds
    +

    Numeric vector with the values for the adj.p.tresholds +for each level.

    + + +
    report_type
    +

    A character string specifying the report type +('screen_limma_hyperparams' or 'cluster_hits').

    + + +
    feature_name_columns
    +

    Character vector with the column names of the +annotation information, such as the columns +containing the gene names. These column names +are used to put the info in the HTML reports on +how the descriptions above the individual spline +plots where created. This is because those +descriptions can be made up of several column +values, and the specific columns are then stated +in the HTML report on top (e.g gene_uniprotID).

    + + +
    analysis_type
    +

    One of the strings "time_effect", "avrg_diff_conditions" +, or "interaction_condition_time". Those represent the +three different outputs of a limma analysis. For more +info on those 3 "categories", see package dir inst/ +descriptions/limma_result_categories.pdf.

    + + +
    mode
    +

    A character string specifying the mode +('isolated' or 'integrated').

    + + +
    filename
    +

    A character string specifying the filename for the report.

    + + +
    timestamp
    +

    A timestamp to include in the report filename.

    + + +
    report_dir
    +

    A character string specifying the report directory.

    + +
    +
    +

    Value

    +

    No return value, called for side effects.

    +
    + + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/generate_reports.html b/docs/reference/generate_reports.html new file mode 100644 index 0000000..d1ace76 --- /dev/null +++ b/docs/reference/generate_reports.html @@ -0,0 +1,117 @@ + +Generate Reports — generate_reports • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Builds HTML reports for all pairwise hyperparameter combination comparisons.

    +
    + +
    +
    generate_reports(combo_pair_plots, report_info, report_dir, timestamp)
    +
    + +
    +

    Arguments

    + + +
    combo_pair_plots
    +

    A list of plots for each pair of combinations.

    + + +
    report_info
    +

    An object containing report information.

    + + +
    report_dir
    +

    A non-empty string specifying the report directory.

    + + +
    timestamp
    +

    A timestamp to include in the reports.

    + +
    +
    +

    Value

    +

    No return value, called for side effects.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/generate_reports_meta.html b/docs/reference/generate_reports_meta.html new file mode 100644 index 0000000..6f34a03 --- /dev/null +++ b/docs/reference/generate_reports_meta.html @@ -0,0 +1,134 @@ + +Generate Reports Metadata — generate_reports_meta • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Generates a metadata table for the LIMMA hyperparameter screen reports and +saves it as an HTML file with custom styling.

    +
    + +
    +
    generate_reports_meta(
    +  datas_descr,
    +  designs,
    +  modes,
    +  spline_test_configs,
    +  report_dir,
    +  timestamp
    +)
    +
    + +
    +

    Arguments

    + + +
    datas_descr
    +

    A description object for the data.

    + + +
    designs
    +

    A list of design matrices.

    + + +
    modes
    +

    A character vector containing 'isolated' or 'integrated'.

    + + +
    spline_test_configs
    +

    A configuration object for spline tests.

    + + +
    report_dir
    +

    A non-empty string specifying the report directory.

    + + +
    timestamp
    +

    A timestamp to include in the report filename.

    + +
    +
    +

    Value

    +

    No return value, called for side effects.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/generate_section_content.html b/docs/reference/generate_section_content.html new file mode 100644 index 0000000..a2a6d94 --- /dev/null +++ b/docs/reference/generate_section_content.html @@ -0,0 +1,134 @@ + +Generate Section Content — generate_section_content • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Generates the HTML content for a section, including headers and enrichment +results.

    +
    + +
    +
    generate_section_content(
    +  section_info,
    +  index,
    +  toc,
    +  html_content,
    +  section_header_style,
    +  toc_style
    +)
    +
    + +
    +

    Arguments

    + + +
    section_info
    +

    A list containing the information for the section.

    + + +
    index
    +

    The index of the current section.

    + + +
    toc
    +

    The current state of the Table of Contents.

    + + +
    html_content
    +

    The current state of the HTML content.

    + + +
    section_header_style
    +

    The CSS style for the section headers.

    + + +
    toc_style
    +

    The CSS style for the TOC entries.

    + +
    +
    +

    Value

    +

    A list with updated HTML content and TOC.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/generate_time_effect_plots.html b/docs/reference/generate_time_effect_plots.html new file mode 100644 index 0000000..29ec525 --- /dev/null +++ b/docs/reference/generate_time_effect_plots.html @@ -0,0 +1,114 @@ + +Generate Plots for Time Effect — generate_time_effect_plots • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Creates p-value histograms for each time effect in the LIMMA analysis. This +function is used internally in the `create_limma_report` function.

    +
    + +
    +
    generate_time_effect_plots(time_effect, adj_pthresh)
    +
    + +
    +

    Arguments

    + + +
    time_effect
    +

    A list of top tables from the LIMMA analysis representing +the time effects.

    + + +
    adj_pthresh
    +

    A numeric value specifying the adjusted p-value threshold +for significance.

    + +
    +
    +

    Value

    +

    A list containing the plots and their sizes, as well as the +section header information.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/get_curve_values.html b/docs/reference/get_curve_values.html new file mode 100644 index 0000000..f06abeb --- /dev/null +++ b/docs/reference/get_curve_values.html @@ -0,0 +1,143 @@ + +Calculate Curve Values Based on Top Table Filter — get_curve_values • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function filters entries from a given top table based on +an adjusted p-value threshold, +performs spline interpolation using specified degrees of freedom, and +calculates curve values +for the selected entries at predefined time points. The function is +internal and not exported.

    +
    + +
    +
    get_curve_values(top_table, level, meta, condition, spline_params, mode)
    +
    + +
    +

    Arguments

    + + +
    top_table
    +

    A data frame containing data with a column for adjusted +p-values and + expression averages which indicate the number of degrees + of freedom.

    + + +
    level
    +

    The specific level of the condition to filter on in the +metadata.

    + + +
    meta
    +

    Metadata containing time points and conditions.

    + + +
    condition
    +

    The name of the condition column in the metadata to filter +on.

    + + +
    spline_params
    +

    A list of spline parameters for the analysis.

    + + +
    mode
    +

    A character string specifying the mode +('isolated' or 'integrated').

    + +
    +
    +

    Value

    +

    A list containing two elements: `curve_values`, a data frame of +curve values for each filtered entry, and `smooth_timepoints`, the time +points at which curves were evaluated.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/get_explore_plots_explanations.html b/docs/reference/get_explore_plots_explanations.html new file mode 100644 index 0000000..d0dfe11 --- /dev/null +++ b/docs/reference/get_explore_plots_explanations.html @@ -0,0 +1,107 @@ + +Get Plot Explanations — get_explore_plots_explanations • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function returns a vector of text explanations for various types of +plots. These explanations are used in HTML reports to describe the plots.

    +
    + +
    +
    get_explore_plots_explanations()
    +
    + +
    +

    Value

    +

    A character vector containing explanations for different plot types.

    +
    +
    +

    Details

    +

    The explanations cover a variety of plots, including density plots, boxplots, +violin plots, mean time correlation plots, lag-1 differences plots, first lag +autocorrelation plots, coefficient of variation (CV) plots, PCA plots, PCA +variance explained plots, MDS plots, and correlation heatmaps. Each +explanation provides insights on what the plot shows and how to interpret it.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/get_header_section.html b/docs/reference/get_header_section.html new file mode 100644 index 0000000..f06cc3d --- /dev/null +++ b/docs/reference/get_header_section.html @@ -0,0 +1,134 @@ + +Get Header Section — get_header_section • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Generates the HTML header section for a report, including the title, header +text, and logo. This section also includes the styling for the table and +other HTML elements.

    +
    + +
    +
    get_header_section(title, header_text, report_type, feature_names_formula)
    +
    + +
    +

    Arguments

    + + +
    title
    +

    A string specifying the title of the HTML document.

    + + +
    header_text
    +

    A string specifying the text to be displayed in the +header of the report.

    + + +
    report_type
    +

    A character specifying the type of HTML report.

    + + +
    feature_names_formula
    +

    String describing which columns of the +annotation info, such as gene and uniprotID, +where used to construct the description above +the individual spline plots. This is placed in +the beginning of the output HTML reports.

    + +
    +
    +

    Value

    +

    A string containing the HTML header section.

    +
    +
    +

    Details

    +

    The function checks the `DEVTOOLS_LOAD` environment variable to determine +the path to the logo image. The logo image is then converted to a base64 +data URI and included in the HTML. The header section includes styles for +tables, table cells, and header elements to ensure proper formatting and +alignment.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/get_level_hit_indices.html b/docs/reference/get_level_hit_indices.html new file mode 100644 index 0000000..c4fc5c4 --- /dev/null +++ b/docs/reference/get_level_hit_indices.html @@ -0,0 +1,127 @@ + +Get Hit Indices for a Specific Level — get_level_hit_indices • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function retrieves unique feature indices from a list of between-level +top tables for a specified level, based on adjusted p-value thresholds.

    +
    + +
    +
    get_level_hit_indices(between_level_top_tables, level, adj_pthresholds)
    +
    + +
    +

    Arguments

    + + +
    between_level_top_tables
    +

    A list of data frames containing the +between-level top tables.

    + + +
    level
    +

    A string specifying the level to search for within the names +of the data frames.

    + + +
    adj_pthresholds
    +

    A numeric vector of adjusted p-value thresholds for +each data frame in `between_level_top_tables`.

    + +
    +
    +

    Value

    +

    A vector of unique feature indices that meet the adjusted p-value +threshold criteria for the specified level.

    +
    +
    +

    Details

    +

    The function iterates over each data frame in `between_level_top_tables`. For +each data frame whose name contains the specified level (case insensitive), +it identifies the rows where the adjusted p-value is below the corresponding +threshold. The function then extracts the feature indices from these rows and +compiles a unique list of these indices.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/get_limma_combos_results.html b/docs/reference/get_limma_combos_results.html new file mode 100644 index 0000000..ddb8f8c --- /dev/null +++ b/docs/reference/get_limma_combos_results.html @@ -0,0 +1,151 @@ + +Generate LIMMA Combination Results — get_limma_combos_results • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Computes results for various combinations of data, design matrices, and +spline configurations using the LIMMA method.

    +
    + +
    +
    get_limma_combos_results(
    +  datas,
    +  metas,
    +  designs,
    +  modes,
    +  condition,
    +  spline_test_configs,
    +  feature_names,
    +  adj_pthresholds,
    +  padjust_method
    +)
    +
    + +
    +

    Arguments

    + + +
    datas
    +

    A list of matrices.

    + + +
    metas
    +

    A list of metadata corresponding to the data matrices.

    + + +
    designs
    +

    A list of design matrices.

    + + +
    modes
    +

    A character vector containing 'isolated' or 'integrated'.

    + + +
    condition
    +

    A single character string specifying the condition.

    + + +
    spline_test_configs
    +

    A configuration object for spline tests.

    + + +
    feature_names
    +

    A character vector of feature names.

    + + +
    adj_pthresholds
    +

    A numeric vector with elements > 0 and < 1.

    + + +
    padjust_method
    +

    A single character string specifying the p-adjustment +method.

    + +
    +
    +

    Value

    +

    A list of results for each combination of data, design, and spline +configuration.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/get_spline_params_info.html b/docs/reference/get_spline_params_info.html new file mode 100644 index 0000000..290bebc --- /dev/null +++ b/docs/reference/get_spline_params_info.html @@ -0,0 +1,126 @@ + +Get Spline Parameters Info — get_spline_params_info • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function retrieves the spline parameters information for a given index. +It ensures the spline parameters are valid and constructs an HTML string +describing the spline parameters.

    +
    + +
    +
    get_spline_params_info(spline_params, j)
    +
    + +
    +

    Arguments

    + + +
    spline_params
    +

    A list containing the spline parameters. The list should +include elements: `spline_type`, `degree`, `dof`, +`knots`, and `bknots`.

    + + +
    j
    +

    An integer specifying the index of the spline parameters to +retrieve.

    + +
    +
    +

    Value

    +

    A character string containing HTML-formatted information about the + spline parameters at the specified index.

    +
    +
    +

    Details

    +

    The function checks if the spline parameters are not `NULL` and have a length +greater than or equal to the specified index `j`. If a parameter is +invalid or +missing, it sets the parameter to `NA`. It then constructs an HTML string +describing the spline parameters, including spline type, degree, degrees of +freedom (DoF), knots, and boundary knots.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/hc_add.html b/docs/reference/hc_add.html new file mode 100644 index 0000000..0b900e8 --- /dev/null +++ b/docs/reference/hc_add.html @@ -0,0 +1,123 @@ + +Add Data to Hit Comparison Object — hc_add • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Adds a new entry to the hit comparison object for a specified condition.

    +
    + +
    +
    hc_add(hc_obj, top_table, params_id, condition = 1, threshold = 0.05)
    +
    + +
    +

    Arguments

    + + +
    hc_obj
    +

    An object of class "hitcomp".

    + + +
    top_table
    +

    A dataframe containing the top table data.

    + + +
    params_id
    +

    A character string identifying the parameters +(max length 70).

    + + +
    condition
    +

    An integer (1 or 2) specifying the condition to which the +data belongs.

    + + +
    threshold
    +

    A numeric value specifying the adjusted p-value threshold.

    + +
    +
    +

    Value

    +

    The updated hit comparison object.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/hc_barplot.html b/docs/reference/hc_barplot.html new file mode 100644 index 0000000..8605461 --- /dev/null +++ b/docs/reference/hc_barplot.html @@ -0,0 +1,112 @@ + +Generate Barplot for Hit Comparison Object — hc_barplot • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Creates a barplot to visualize the number of significant features for each +parameter set in the hit comparison object.

    +
    + +
    +
    hc_barplot(hc_obj)
    +
    + +
    +

    Arguments

    + + +
    hc_obj
    +

    An object of class "hitcomp" containing hit data for two +conditions.

    + +
    +
    +

    Value

    +

    A ggplot2 object representing the barplot.

    +
    +
    +

    See also

    +

    store_hits, ggplot2

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/hc_new.html b/docs/reference/hc_new.html new file mode 100644 index 0000000..2fcf330 --- /dev/null +++ b/docs/reference/hc_new.html @@ -0,0 +1,112 @@ + +Create New Hit Comparison Object — hc_new • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Creates a new hit comparison object with specified condition names.

    +
    + +
    +
    hc_new(cond1name = "Condition 1", cond2name = "Condition 2")
    +
    + +
    +

    Arguments

    + + +
    cond1name
    +

    A character string for the first condition name +(max length 25).

    + + +
    cond2name
    +

    A character string for the second condition name +(max length 25).

    + +
    +
    +

    Value

    +

    An object of class "hitcomp" containing empty data lists +and condition names.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/hc_vennheatmap.html b/docs/reference/hc_vennheatmap.html new file mode 100644 index 0000000..2585c74 --- /dev/null +++ b/docs/reference/hc_vennheatmap.html @@ -0,0 +1,112 @@ + +Generate Venn Heatmap — hc_vennheatmap • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Creates a Venn heatmap to visualize the overlap of hits between two +conditions stored in a hit comparison object.

    +
    + +
    +
    hc_vennheatmap(hc_obj)
    +
    + +
    +

    Arguments

    + + +
    hc_obj
    +

    An object of class "hitcomp" containing hit data for two +conditions.

    + +
    +
    +

    Value

    +

    A list containing the Venn heatmap plot and the number of hits.

    +
    +
    +

    See also

    + +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/hierarchical_clustering.html b/docs/reference/hierarchical_clustering.html new file mode 100644 index 0000000..1f41ed8 --- /dev/null +++ b/docs/reference/hierarchical_clustering.html @@ -0,0 +1,127 @@ + +Hierarchical Clustering of Curve Values — hierarchical_clustering • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Performs hierarchical clustering on given curve values. +It can automatically +determine the optimal number of clusters using silhouette analysis or use a +specified number. The function adjusts the provided top_table with cluster +assignments.

    +
    + +
    +
    hierarchical_clustering(curve_values, k, smooth_timepoints, top_table)
    +
    + +
    +

    Arguments

    + + +
    curve_values
    +

    A matrix or data frame of curve values to cluster.

    + + +
    k
    +

    The number of clusters to use or "auto" to automatically determine +the optimal number using silhouette width analysis.

    + + +
    smooth_timepoints
    +

    Numeric vector of time points corresponding to +columns in curve_values.

    + + +
    top_table
    +

    Data frame to be updated with cluster assignments.

    + +
    +
    +

    Value

    +

    A list containing clustering results and the modified top_table.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/huge_table_user_prompter.html b/docs/reference/huge_table_user_prompter.html new file mode 100644 index 0000000..745975a --- /dev/null +++ b/docs/reference/huge_table_user_prompter.html @@ -0,0 +1,110 @@ + +Check if any table in a list has more than 300 rows and prompt user for input. — huge_table_user_prompter • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function iterates over a list of tables and checks if any table has + more than 300 rows. +If such a table is found, it prompts the user to proceed or stop.

    +
    + +
    +
    huge_table_user_prompter(tables)
    +
    + +
    +

    Arguments

    + + +
    tables
    +

    A list of data frames.

    + +
    +
    +

    Value

    +

    NULL. This function is used for its side effects (prompting the +user and potentially stopping the script).

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/index.html b/docs/reference/index.html new file mode 100644 index 0000000..6eba92d --- /dev/null +++ b/docs/reference/index.html @@ -0,0 +1,587 @@ + +Package index • SplineOmics + + +
    +
    + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    All functions

    +

    +
    +

    InputControl

    +

    InputControl: A class for controlling and validating inputs

    +

    Level3Functions

    +

    Level3Functions: A class for level 3 utility functions

    +

    Level4Functions

    +

    Level4Functions: A class for level 3 utility functions

    +

    NumericBlockFinder

    +

    NumericBlockFinder: A class for finding numeric blocks in data

    +

    SplineOmics SplineOmics-package

    +

    Package Name: SplineOmics

    +

    add_feature_names()

    +

    Add Feature Names to Data

    +

    add_plot_to_html()

    +

    Add Plot to HTML Content

    +

    ask_user()

    +

    Prompt the user with a yes/no question

    +

    between_level()

    +

    Between Level Analysis

    +

    bind_data_with_annotation()

    +

    Bind Data with Annotation

    +

    build_cluster_hits_report()

    +

    Build Cluster Hits Report

    +

    build_create_gsea_report()

    +

    Build GSEA Report

    +

    build_create_limma_report()

    +

    Build Cluster Hits Report

    +

    build_explore_data_report()

    +

    Build Explore Data Report

    +

    build_hyperparams_screen_report()

    +

    Build Hyperparameters Screening Report

    +

    check_between_level_pattern()

    +

    Check for Between-Level Patterns in Top Tables

    +

    check_clustered_hits()

    +

    Check Clustered Genes Dataframe for Required Conditions

    +

    check_databases()

    +

    Check Valid Databases Dataframe

    +

    check_genes()

    +

    Check Valid Gene IDs

    +

    check_null_elements()

    +

    Check for NULL Elements in Arguments

    +

    check_params()

    +

    Check Params List for Required Conditions

    +

    check_splineomics_elements()

    +

    Check for Required Elements in the SplineOmics Object

    +

    clean_gene_symbols()

    +

    Clean the Gene Symbols

    +

    cluster_hits()

    +

    cluster_hits.R contains the exported package function cluster_hits and all the functions that make up the functionality of cluster_hits. cluster_hits clusters the hits of a time series omics datasets (the features that were significantly changed over the time course) with hierarchical clustering of the spline shape. Cluster Hits from Top Tables

    +

    control_inputs_create_gsea_report()

    +

    Control Inputs for GSEA Report

    +

    control_inputs_extract_data()

    +

    Control Inputs for Extracting Data

    +

    create_enrichr_zip()

    +

    Create a ZIP File for Enrichr Gene Lists

    +

    create_gsea_report_level()

    +

    Perform Gene Set Enrichment Analysis and plot it.

    +

    create_limma_report()

    +

    Create a limma report

    +

    create_p_value_histogram()

    +

    Create a p-value histogram from a limma top_table

    +

    create_progress_bar()

    +

    utils scripts contains shared functions that are used by at least two package functions of the SplineOmics package. Create Progress Bar

    +

    create_spline_params()

    +

    Create Spline Parameters

    +

    create_splineomics()

    +

    Create and update the SplineOmics object =====

    +

    create_toc()

    +

    Create Table of Contents

    +

    create_volcano_plot()

    +

    Create a Volcano Plot

    +

    dbs_to_term2genes()

    +

    Convert Database File to TERM2GENE List

    +

    define_html_styles()

    +

    Define HTML Styles

    +

    design2design_matrix()

    +

    Create Design Matrix for Splines

    +

    download_enrichr_databases()

    +

    The exported function download_enrichr_databases allows to selects & download Enrichr databases for local use with clusterProfiler. Download Enrichr Databases

    +

    encode_df_to_base64()

    +

    Encode DataFrame to Base64 for HTML Embedding

    +

    enrichr_get_genesets()

    +

    Get Enrichr Gene Sets

    +

    ensure_clusterProfiler()

    +

    Ensure 'clusterProfiler' is installed and loaded

    +

    explore_data()

    +

    Generate Exploratory Plots

    +

    extract_data()

    +

    extract_data.R contains the exported package function extract_data. This function automatically recognises the data field in a table and returns the data matrix, that serves as input for the other functions of this package. This is for convenience only. Extract Numeric Matrix from Dataframe

    +

    flatten_spline_configs()

    +

    Flatten Spline Configurations

    +

    format_text()

    +

    Format text

    +

    gen_composite_spline_plots()

    +

    Generate Composite Spline Plots

    +

    gen_hitcomp_plots()

    +

    Generate Hit Comparison Plots

    +

    generate_and_write_html()

    +

    Generate and Write HTML Report

    +

    generate_avrg_diff_plots()

    +

    Generate Plots for Average Difference Conditions

    +

    generate_explore_plots()

    +

    Generate exploratory plots

    +

    generate_interaction_plots()

    +

    Generate Plots for Interaction of Condition and Time

    +

    generate_report_html()

    +

    utils scripts contains shared functions that are used by at least two package functions of the SplineOmics package. The level separation is only valid internally in this script, and has no connection to the script level of the respective exported functions scripts. Generate Report HTML

    +

    generate_reports()

    +

    Generate Reports

    +

    generate_reports_meta()

    +

    Generate Reports Metadata

    +

    generate_section_content()

    +

    Generate Section Content

    +

    generate_time_effect_plots()

    +

    Generate Plots for Time Effect

    +

    get_curve_values()

    +

    Calculate Curve Values Based on Top Table Filter

    +

    get_explore_plots_explanations()

    +

    Get Plot Explanations

    +

    get_header_section()

    +

    Get Header Section

    +

    get_level_hit_indices()

    +

    Get Hit Indices for a Specific Level

    +

    get_limma_combos_results()

    +

    Generate LIMMA Combination Results

    +

    get_spline_params_info()

    +

    Get Spline Parameters Info

    +

    hc_add()

    +

    Add Data to Hit Comparison Object

    +

    hc_barplot()

    +

    Generate Barplot for Hit Comparison Object

    +

    hc_new()

    +

    Create New Hit Comparison Object

    +

    hc_vennheatmap()

    +

    Generate Venn Heatmap

    +

    hierarchical_clustering()

    +

    Hierarchical Clustering of Curve Values

    +

    huge_table_user_prompter()

    +

    Check if any table in a list has more than 300 rows and prompt user for input.

    +

    is_not_na()

    +

    Check if Not All Values are NA

    +

    make_clustering_report()

    +

    Make Clustering Report

    +

    make_correlation_heatmaps()

    +

    Generate Correlation Heatmaps

    +

    make_density_plots()

    +

    Generate Density Plot

    +

    make_enrich_dotplot()

    +

    Make Enrich Dotplot

    +

    make_mds_plot()

    +

    Generate MDS Plot

    +

    make_pca_plot()

    +

    Generate PCA Plot with Dynamic Coloring

    +

    make_violin_box_plots()

    +

    Generate Violin Box Plot

    +

    manage_gsea_level()

    +

    Manage GSEA Analysis for a Specific Level

    +

    merge_annotation_all_levels_clustering()

    +

    Merge Annotation with All Top Tables

    +

    merge_top_table_with_annotation()

    +

    Merge Annotation with a Single Top Table

    +

    modify_limma_top_table()

    +

    Modify limma Top Table

    +

    normalize_curves()

    +

    Normalize Curve Values

    +

    open_template()

    +

    Open Template for Quick Setup

    +

    open_tutorial()

    +

    Interactive Tutorial for Getting Started

    +

    perform_clustering()

    +

    Perform Clustering

    +

    plot2base64()

    +

    Convert Plot to Base64

    +

    plot_all_mean_splines()

    +

    Plot All Mean Splines

    +

    plot_cluster_mean_splines()

    +

    Plot Consensus Shapes

    +

    plot_composite_splines()

    +

    Plot Composite Splines

    +

    plot_cv()

    +

    Coefficient of Variation (CV) Plot

    +

    plot_dendrogram()

    +

    Plot Dendrogram

    +

    plot_first_lag_autocorrelation()

    +

    First Lag Autocorrelation Coefficients Plot

    +

    plot_heatmap()

    +

    Plot Heatmap

    +

    plot_lag1_differences()

    +

    Lag-1 Differences Plot

    +

    plot_limma_combos_results()

    +

    Plot limma Combination Results

    +

    plot_mean_correlation_with_time()

    +

    Mean Correlation with Time Plot

    +

    plot_single_and_mean_splines()

    +

    Plot Single and Mean Splines

    +

    plot_splines()

    +

    Plot Splines for Features Based on Top Table Information

    +

    prepare_gene_lists_for_enrichr()

    +

    Prepare Gene Lists for Enrichr and Return as String

    +

    prepare_plot_data()

    +

    Prepare Plot Data

    +

    preprocess_rna_seq_data()

    +

    Perform default preprocessing of raw RNA-seq counts

    +

    print_info_message()

    +

    Print Informational Message

    +

    process_combo()

    +

    Process Combination

    +

    process_combo_pair()

    +

    Process Combination Pair

    +

    process_config_column()

    +

    Process Configuration Column

    +

    process_enrichment_results()

    +

    Process Enrichment Results

    +

    process_field()

    +

    Process and Encode Data Field for Report

    +

    process_level_cluster()

    +

    Process Level Cluster

    +

    process_plots()

    +

    Process Plots

    +

    process_result()

    +

    Process GSEA Result for a Specific Level

    +

    process_top_table()

    +

    Process Top Table

    +

    process_within_level()

    +

    Process Within Level

    +

    read_section_texts()

    +

    Read and split section texts from a file

    +

    remove_batch_effect()

    +

    Remove Batch Effect

    +

    remove_batch_effect_cluster_hits()

    +

    Remove Batch Effect from Cluster Hits

    +

    remove_prefix()

    +

    Remove Prefix from String

    +

    run_gsea()

    +

    Generate a GSEA Report

    +

    run_limma_splines()

    +

    run_limma_splines.R contains the exported package function run_limma_splines and all the functions that make up the functionality of run_limma_splines. run_limma_splines performs a limma analysis, using splines, to assign a p-value to every feature of a time series omics dataset, to find out which features are significantly changed over the time course. Run Limma Analysis with Spline Interpolation for Hyperparameter Screening

    +

    screen_limma_hyperparams()

    +

    screen_limma_hyperparams.R contains the exported package function screen_limma_hyperparams and all the functions that make up the functionality of screen_limma_hyperparams. screen_limma_hyperparams runs the other package function, run_limma_splines, for a time series omics dataset, for different hyperparameters. Such are for example degree of freedom of the spline, type of spline, limma design formula, and different versions of the data (full data vs. outliers removed). This can result in several combinations, and it is tedious analyzing the combination in an organised and structured manner. Therefore, this function streamlines that process. Limma Hyperparameters Screening

    +

    set_default_params()

    +

    Set Default Parameters

    +

    shorten_names()

    +

    Shorten Names

    +

    store_hits()

    +

    Store Hits

    +

    truncate_row_names()

    +

    Truncate Row Names

    +

    update_splineomics()

    +

    Update a SplineOmics object

    +

    within_level()

    +

    Within level analysis

    + + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/is_not_na.html b/docs/reference/is_not_na.html new file mode 100644 index 0000000..d474eea --- /dev/null +++ b/docs/reference/is_not_na.html @@ -0,0 +1,106 @@ + +Check if Not All Values are NA — is_not_na • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Determines if a given atomic vector contains at least one non-NA value.

    +
    + +
    +
    is_not_na(x)
    +
    + +
    +

    Arguments

    + + +
    x
    +

    An atomic vector or any other object.

    + +
    +
    +

    Value

    +

    TRUE if the vector contains at least one non-NA value or if the +object is not atomic; FALSE otherwise.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/make_clustering_report.html b/docs/reference/make_clustering_report.html new file mode 100644 index 0000000..fa9c7e7 --- /dev/null +++ b/docs/reference/make_clustering_report.html @@ -0,0 +1,218 @@ + +Make Clustering Report — make_clustering_report • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Generates a detailed clustering report including heatmaps, dendrograms, +curve plots, and consensus shapes for each level within a condition.

    +
    + +
    +
    make_clustering_report(
    +  all_levels_clustering,
    +  condition,
    +  data,
    +  meta,
    +  annotation,
    +  genes,
    +  spline_params,
    +  adj_pthresholds,
    +  report_dir,
    +  mode,
    +  report_info,
    +  design,
    +  meta_batch_column,
    +  meta_batch2_column,
    +  plot_info,
    +  analysis_type,
    +  feature_name_columns
    +)
    +
    + +
    +

    Arguments

    + + +
    all_levels_clustering
    +

    A list containing clustering results for each +level within a condition.

    + + +
    condition
    +

    A character string specifying the condition.

    + + +
    data
    +

    A matrix of data values.

    + + +
    meta
    +

    A dataframe containing metadata.

    + + +
    annotation
    +

    Dataframe containig the annotation info of the features, +such as gene and uniprotID, for example.

    + + +
    genes
    +

    Character vector containing the genes of the features.

    + + +
    spline_params
    +

    A list of spline parameters for the analysis.

    + + +
    adj_pthresholds
    +

    Numeric vector, containing a float < 1 > 0 as each +value. There is one float for every level, and this is +the adj. p-value threshold.

    + + +
    report_dir
    +

    A character string specifying the report directory.

    + + +
    mode
    +

    A character string specifying the mode +('isolated' or 'integrated').

    + + +
    report_info
    +

    An object containing report information.

    + + +
    design
    +

    A string representing the limma design formula

    + + +
    meta_batch_column
    +

    A character string specifying the meta batch column.

    + + +
    meta_batch2_column
    +

    A character string specifying the second meta +batch column.

    + + +
    plot_info
    +

    List containing the elements y_axis_label (string), +time_unit (string), treatment_labels (character vector), +treatment_timepoints (integer vector). All can also be NA. +This list is used to add this info to the spline plots. +time_unit is used to label the x-axis, and treatment_labels +and -timepoints are used to create vertical dashed lines, +indicating the positions of the treatments (such as +feeding, temperature shift, etc.).

    + + +
    analysis_type
    +

    One of the strings "time_effect", "avrg_diff_conditions" +, or "interaction_condition_time". Those represent the +three different outputs of a limma analysis. For more +info on those 3 "categories", see package dir inst/ +descriptions/limma_result_categories.pdf.

    + + +
    feature_name_columns
    +

    Character vector containing the column names of +the annotation info that describe the features. +This argument is used to specify in the HTML +report how exactly the feature names displayed +above each individual spline plot have been +created. Use the same vector that was used to +create the row headers for the data matrix!

    + +
    +
    +

    Value

    +

    No return value, called for side effects.

    +
    + + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/make_correlation_heatmaps.html b/docs/reference/make_correlation_heatmaps.html new file mode 100644 index 0000000..3c25754 --- /dev/null +++ b/docs/reference/make_correlation_heatmaps.html @@ -0,0 +1,122 @@ + +Generate Correlation Heatmaps — make_correlation_heatmaps • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function generates correlation heatmaps using Spearman correlation for +a given data matrix. It creates a combined heatmap for all levels and +individual heatmaps for each level specified in the condition column of the +metadata.

    +
    + +
    +
    make_correlation_heatmaps(data, meta, condition)
    +
    + +
    +

    Arguments

    + + +
    data
    +

    A numeric matrix containing the data.

    + + +
    meta
    +

    A dataframe containing the metadata.

    + + +
    condition
    +

    The column name in the metadata dataframe that contains the +factor levels for generating individual heatmaps.

    + +
    +
    +

    Value

    +

    A list of `ComplexHeatmap` heatmap objects representing the +correlation +heatmaps.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/make_density_plots.html b/docs/reference/make_density_plots.html new file mode 100644 index 0000000..6eeeae8 --- /dev/null +++ b/docs/reference/make_density_plots.html @@ -0,0 +1,115 @@ + +Generate Density Plot — make_density_plots • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function generates a density plot for a given data matrix. The density +plot shows the distribution of the values in the data matrix.

    +
    + +
    +
    make_density_plots(data, meta, condition)
    +
    + +
    +

    Arguments

    + + +
    data
    +

    A numeric matrix containing the data.

    + + +
    meta
    +

    A dataframe containing the column meta data of data

    + + +
    condition
    +

    The name of the factor column of meta for the experiment

    + +
    +
    +

    Value

    +

    A ggplot object representing the density plot.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/make_enrich_dotplot.html b/docs/reference/make_enrich_dotplot.html new file mode 100644 index 0000000..6f10718 --- /dev/null +++ b/docs/reference/make_enrich_dotplot.html @@ -0,0 +1,125 @@ + +Make Enrich Dotplot — make_enrich_dotplot • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Make an enriched dotplot for visualization.

    +
    + +
    +
    make_enrich_dotplot(enrichments_list, databases, title = "Title")
    +
    + +
    +

    Arguments

    + + +
    enrichments_list
    +

    A list of enrichments containing data frames for +different databases.

    + + +
    databases
    +

    A character vector specifying the databases to be included.

    + + +
    title
    +

    A character string specifying the title of the dotplot.

    + +
    +
    +

    Value

    +

    A list containing:

    p
    +

    The ggplot object representing the dotplot.

    + +
    dotplot_nrows
    +

    An integer specifying the number of rows in the + dotplot.

    + +
    full_enrich_results
    +

    A data frame containing the full enrichments + results.

    + + +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/make_mds_plot.html b/docs/reference/make_mds_plot.html new file mode 100644 index 0000000..77bf01f --- /dev/null +++ b/docs/reference/make_mds_plot.html @@ -0,0 +1,118 @@ + +Generate MDS Plot — make_mds_plot • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function generates a multidimensional scaling (MDS) plot for a given +data matrix. The MDS plot visualizes the similarities or dissimilarities +between samples in the data matrix.

    +
    + +
    +
    make_mds_plot(data, meta, condition)
    +
    + +
    +

    Arguments

    + + +
    data
    +

    A numeric matrix containing the data.

    + + +
    meta
    +

    A dataframe, containign the meta information of data.

    + + +
    condition
    +

    The column of the meta dataframe containign the levels that +separate the experiment.

    + +
    +
    +

    Value

    +

    A ggplot object representing the MDS plot.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/make_pca_plot.html b/docs/reference/make_pca_plot.html new file mode 100644 index 0000000..97cfb4b --- /dev/null +++ b/docs/reference/make_pca_plot.html @@ -0,0 +1,116 @@ + +Generate PCA Plot with Dynamic Coloring — make_pca_plot • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function generates a PCA plot from a data matrix, dynamically coloring +the points based on the levels of a specified factor in the metadata.

    +
    + +
    +
    make_pca_plot(data, meta, condition)
    +
    + +
    +

    Arguments

    + + +
    data
    +

    A numeric matrix containing the data.

    + + +
    meta
    +

    A dataframe containing the metadata.

    + + +
    condition
    +

    The column name in the metadata dataframe that contains the +factor levels for coloring the PCA plot.

    + +
    +
    +

    Value

    +

    A ggplot object representing the PCA plot.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/make_violin_box_plots.html b/docs/reference/make_violin_box_plots.html new file mode 100644 index 0000000..efb2434 --- /dev/null +++ b/docs/reference/make_violin_box_plots.html @@ -0,0 +1,117 @@ + +Generate Violin Box Plot — make_violin_box_plots • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function generates a violin plot for a given data matrix. The violin +plot shows the distribution of the values in the data matrix across different +variables, with each variable's distribution displayed as a separate violin.

    +
    + +
    +
    make_violin_box_plots(data, meta, condition)
    +
    + +
    +

    Arguments

    + + +
    data
    +

    A numeric matrix containing the data.

    + + +
    meta
    +

    A dataframe containing the column meta data of data

    + + +
    condition
    +

    The name of the factor column of meta for the experiment

    + +
    +
    +

    Value

    +

    A ggplot object representing the violin plot.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/manage_gsea_level.html b/docs/reference/manage_gsea_level.html new file mode 100644 index 0000000..0f8d566 --- /dev/null +++ b/docs/reference/manage_gsea_level.html @@ -0,0 +1,131 @@ + +Manage GSEA Analysis for a Specific Level — manage_gsea_level • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function manages the GSEA analysis for a specific level. It extracts +genes associated with the clustered hits, removes rows with `NA` values, +and runs the GSEA analysis using the `create_gsea_report` function.

    +
    + +
    +
    manage_gsea_level(
    +  clustered_hits,
    +  level_name,
    +  databases,
    +  clusterProfiler_params
    +)
    +
    + +
    +

    Arguments

    + + +
    clustered_hits
    +

    A dataframe containing the clustered hits for a +specific level. It must include a column named `feature` to extract genes.

    + + +
    level_name
    +

    A character string representing the name of the level.

    + + +
    databases
    +

    A list of databases for the gene set enrichment analysis.

    + + +
    clusterProfiler_params
    +

    Additional parameters for the GSEA analysis, +default is NA. Those include adj_p_value, +pAdjustMethod, etc (see clusterProfiler +documentation).

    + +
    +
    +

    Value

    +

    The result of the `create_gsea_report` function, which typically + includes various plots and enrichment results.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/merge_annotation_all_levels_clustering.html b/docs/reference/merge_annotation_all_levels_clustering.html new file mode 100644 index 0000000..0dd69b1 --- /dev/null +++ b/docs/reference/merge_annotation_all_levels_clustering.html @@ -0,0 +1,113 @@ + +Merge Annotation with All Top Tables — merge_annotation_all_levels_clustering • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function merges annotation information into the `top_table` of each +non-logical element in a list.

    +
    + +
    +
    merge_annotation_all_levels_clustering(all_levels_clustering, annotation)
    +
    + +
    +

    Arguments

    + + +
    all_levels_clustering
    +

    A list where each element contains a `top_table` +dataframe with a `feature_nr` column. Some elements may be logical values.

    + + +
    annotation
    +

    A dataframe containing the annotation information.

    + +
    +
    +

    Value

    +

    A list with updated `top_table` dataframes containing merged +annotation information.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/merge_top_table_with_annotation.html b/docs/reference/merge_top_table_with_annotation.html new file mode 100644 index 0000000..b58d06a --- /dev/null +++ b/docs/reference/merge_top_table_with_annotation.html @@ -0,0 +1,111 @@ + +Merge Annotation with a Single Top Table — merge_top_table_with_annotation • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function merges annotation information into a single `top_table` +dataframe based on the `feature_nr` column.

    +
    + +
    +
    merge_top_table_with_annotation(top_table, annotation)
    +
    + +
    +

    Arguments

    + + +
    top_table
    +

    A dataframe containing the `top_table` with a `feature_nr` column.

    + + +
    annotation
    +

    A dataframe containing the annotation information.

    + +
    +
    +

    Value

    +

    A dataframe with updated `top_table` containing merged annotation information.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/modify_limma_top_table.html b/docs/reference/modify_limma_top_table.html new file mode 100644 index 0000000..232bca3 --- /dev/null +++ b/docs/reference/modify_limma_top_table.html @@ -0,0 +1,109 @@ + +Modify limma Top Table — modify_limma_top_table • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Modifies the limma top table to include feature indices and names.

    +
    + +
    +
    modify_limma_top_table(top_table, feature_names)
    +
    + +
    +

    Arguments

    + + +
    top_table
    +

    A dataframe containing the top table results from limma

    + + +
    feature_names
    +

    A character vector of feature names.

    + +
    +
    +

    Value

    +

    A tibble with feature indices and names included.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/normalize_curves.html b/docs/reference/normalize_curves.html new file mode 100644 index 0000000..103ca6e --- /dev/null +++ b/docs/reference/normalize_curves.html @@ -0,0 +1,119 @@ + +Normalize Curve Values — normalize_curves • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function normalizes each row in a data frame or matrix +of curve values. +Normalization is performed so that each row's values range from 0 +(corresponding to the +minimum value of the row) to 1 +(corresponding to the maximum value of the row).

    +
    + +
    +
    normalize_curves(curve_values)
    +
    + +
    +

    Arguments

    + + +
    curve_values
    +

    A data frame or matrix of curve values where each row +represents + a curve and each column a time point.

    + +
    +
    +

    Value

    +

    A data frame or matrix with the same dimensions as the input, where + each row + has been normalized.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/open_template.html b/docs/reference/open_template.html new file mode 100644 index 0000000..89b277f --- /dev/null +++ b/docs/reference/open_template.html @@ -0,0 +1,97 @@ + +Open Template for Quick Setup — open_template • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function opens the `template.Rmd` file in RStudio for +interactive use. The template file provides a structure for users +to quickly set up their personal analysis.

    +
    + +
    +
    open_template()
    +
    + + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/open_tutorial.html b/docs/reference/open_tutorial.html new file mode 100644 index 0000000..fd8221c --- /dev/null +++ b/docs/reference/open_tutorial.html @@ -0,0 +1,95 @@ + +Interactive Tutorial for Getting Started — open_tutorial • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function opens the `tutorial.Rmd` file in RStudio for +interactive use. Users can then run each code chunk step by step.

    +
    + +
    +
    open_tutorial()
    +
    + + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/perform_clustering.html b/docs/reference/perform_clustering.html new file mode 100644 index 0000000..392bc5b --- /dev/null +++ b/docs/reference/perform_clustering.html @@ -0,0 +1,133 @@ + +Perform Clustering — perform_clustering • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Performs clustering on top tables using specified p-values and clusters +for each level within a condition.

    +
    + +
    +
    perform_clustering(top_tables, clusters, meta, condition, spline_params, mode)
    +
    + +
    +

    Arguments

    + + +
    top_tables
    +

    A list of top tables from limma analysis.

    + + +
    clusters
    +

    A list specifying clusters or "auto" for automatic +estimation.

    + + +
    meta
    +

    A dataframe containing metadata.

    + + +
    condition
    +

    A character string specifying the condition.

    + + +
    spline_params
    +

    A list of spline parameters for the analysis.

    + + +
    mode
    +

    A character string specifying the mode +('isolated' or 'integrated').

    + +
    +
    +

    Value

    +

    A list of clustering results for each level within the condition.

    +
    +
    +

    See also

    + +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/plot2base64.html b/docs/reference/plot2base64.html new file mode 100644 index 0000000..29d3a7d --- /dev/null +++ b/docs/reference/plot2base64.html @@ -0,0 +1,143 @@ + +Convert Plot to Base64 — plot2base64 • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Converts a ggplot2 plot to a Base64-encoded PNG image and returns an HTML +img tag for embedding in a report.

    +
    + +
    +
    plot2base64(
    +  plot,
    +  height,
    +  width = 7,
    +  base_height_per_row = 2.5,
    +  units = "in",
    +  html_img_width = "100%"
    +)
    +
    + +
    +

    Arguments

    + + +
    plot
    +

    A ggplot2 plot object.

    + + +
    height
    +

    An integer specifying the height of the plot for correct +representation in the HTML.

    + + +
    width
    +

    A numeric value specifying the width of the plot in inches.

    + + +
    base_height_per_row
    +

    A numeric value specifying the base height per +row in inches.

    + + +
    units
    +

    A character string specifying the units for the width and +height.

    + + +
    html_img_width
    +

    A character string specifying the width of the image +in HTML.

    + +
    +
    +

    Value

    +

    A character string containing an HTML img tag with the Base64-encoded + plot.

    +
    +
    +

    See also

    + +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/plot_all_mean_splines.html b/docs/reference/plot_all_mean_splines.html new file mode 100644 index 0000000..7eca770 --- /dev/null +++ b/docs/reference/plot_all_mean_splines.html @@ -0,0 +1,119 @@ + +Plot All Mean Splines — plot_all_mean_splines • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Generates a plot of average curves for each cluster, showing min-max +normalized intensities over time.

    +
    + +
    +
    plot_all_mean_splines(curve_values, plot_info)
    +
    + +
    +

    Arguments

    + + +
    curve_values
    +

    A dataframe containing curve values and cluster +assignments.

    + + +
    plot_info
    +

    List containing the elements y_axis_label (string), +time_unit (string), treatment_labels (character vector), +treatment_timepoints (integer vector). All can also be NA. +This list is used to add this info to the spline plots. +time_unit is used to label the x-axis, and treatment_labels +and -timepoints are used to create vertical dashed lines, +indicating the positions of the treatments (such as +feeding, temperature shift, etc.).

    + +
    +
    +

    Value

    +

    A ggplot object representing the average curves by cluster.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/plot_cluster_mean_splines.html b/docs/reference/plot_cluster_mean_splines.html new file mode 100644 index 0000000..a129f46 --- /dev/null +++ b/docs/reference/plot_cluster_mean_splines.html @@ -0,0 +1,123 @@ + +Plot Consensus Shapes — plot_cluster_mean_splines • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Generates composite plots of single and consensus shapes for each cluster +of curve values.

    +
    + +
    +
    plot_cluster_mean_splines(curve_values, plot_info)
    +
    + +
    +

    Arguments

    + + +
    curve_values
    +

    A dataframe containing curve values and cluster +assignments.

    + + +
    plot_info
    +

    List containing the elements y_axis_label (string), +time_unit (string), treatment_labels (character vector), +treatment_timepoints (integer vector). All can also be NA. +This list is used to add this info to the spline plots. +time_unit is used to label the x-axis, and treatment_labels +and -timepoints are used to create vertical dashed lines, +indicating the positions of the treatments (such as +feeding, temperature shift, etc.).

    + +
    +
    +

    Value

    +

    A list containing a plot for every cluster

    +
    + + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/plot_composite_splines.html b/docs/reference/plot_composite_splines.html new file mode 100644 index 0000000..5c89a5c --- /dev/null +++ b/docs/reference/plot_composite_splines.html @@ -0,0 +1,153 @@ + +Plot Composite Splines — plot_composite_splines • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Generates composite spline plots for significant and non-significant +features based on the specified indices.

    +
    + +
    +
    plot_composite_splines(
    +  data,
    +  meta,
    +  spline_test_configs,
    +  top_table,
    +  top_table_name,
    +  indices,
    +  type,
    +  time_unit_label
    +)
    +
    + +
    +

    Arguments

    + + +
    data
    +

    A matrix of data values.

    + + +
    meta
    +

    A dataframe containing metadata.

    + + +
    spline_test_configs
    +

    A configuration object for spline tests.

    + + +
    top_table
    +

    A dataframe containing the top table results.

    + + +
    top_table_name
    +

    A character string specifying the name of the +top table.

    + + +
    indices
    +

    A vector of indices specifying which features to plot.

    + + +
    type
    +

    A character string specifying the type of features ('significant' +or 'not_significant').

    + + +
    time_unit_label
    +

    A string shown in the plots as the unit for the time, +such as min or hours.

    + +
    +
    +

    Value

    +

    A list containing the composite plot and its length if plots are +generated, FALSE otherwise.

    +
    +
    +

    See also

    + +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/plot_cv.html b/docs/reference/plot_cv.html new file mode 100644 index 0000000..c8a9cae --- /dev/null +++ b/docs/reference/plot_cv.html @@ -0,0 +1,128 @@ + +Coefficient of Variation (CV) Plot — plot_cv • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function takes a data frame with time series data +(rows as features and columns as samples), +a meta table with sample information including time points and conditions, +computes the coefficient +of variation (CV) for each feature for each condition level, and plots the +distribution of these +CVs.

    +
    + +
    +
    plot_cv(data, meta, condition)
    +
    + +
    +

    Arguments

    + + +
    data
    +

    A data frame where rows are features and columns are samples.

    + + +
    meta
    +

    A data frame with sample metadata. Must contain a column "Time" +and the condition column.

    + + +
    condition
    +

    The name of the column in the meta table that contains the +condition information.

    + +
    +
    +

    Value

    +

    A list of ggplot2 objects, each showing the distribution of CVs for + one condition.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/plot_dendrogram.html b/docs/reference/plot_dendrogram.html new file mode 100644 index 0000000..c38093c --- /dev/null +++ b/docs/reference/plot_dendrogram.html @@ -0,0 +1,116 @@ + +Plot Dendrogram — plot_dendrogram • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Generates a dendrogram plot for hierarchical clustering results, +colored by clusters.

    +
    + +
    +
    plot_dendrogram(hc, k)
    +
    + +
    +

    Arguments

    + + +
    hc
    +

    A hierarchical clustering object.

    + + +
    k
    +

    An integer specifying the number of clusters.

    + +
    +
    +

    Value

    +

    A ggplot object representing the dendrogram.

    +
    +
    +

    See also

    + +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/plot_first_lag_autocorrelation.html b/docs/reference/plot_first_lag_autocorrelation.html new file mode 100644 index 0000000..67508f7 --- /dev/null +++ b/docs/reference/plot_first_lag_autocorrelation.html @@ -0,0 +1,128 @@ + +First Lag Autocorrelation Coefficients Plot — plot_first_lag_autocorrelation • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function takes a data frame with time series data +(rows as features and columns as samples), +a meta table with sample information including time points and conditions, +computes the first lag +autocorrelation for each feature for each condition level, and plots the +distribution of these +autocorrelation coefficients.

    +
    + +
    +
    plot_first_lag_autocorrelation(data, meta, condition)
    +
    + +
    +

    Arguments

    + + +
    data
    +

    A data frame where rows are features and columns are samples.

    + + +
    meta
    +

    A data frame with sample metadata. Must contain a column "Time" +and the condition column.

    + + +
    condition
    +

    The name of the column in the meta table that contains the +condition information.

    + +
    +
    +

    Value

    +

    A list of ggplot2 objects, each showing the distribution of first +lag autocorrelation coefficients for one condition.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/plot_heatmap.html b/docs/reference/plot_heatmap.html new file mode 100644 index 0000000..c242acf --- /dev/null +++ b/docs/reference/plot_heatmap.html @@ -0,0 +1,142 @@ + +Plot Heatmap — plot_heatmap • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Generates heatmaps for each level within a condition, showing z-scores of +log2 intensity values, split by clusters.

    +
    + +
    +
    plot_heatmap(
    +  datas,
    +  meta,
    +  mode,
    +  condition,
    +  all_levels_clustering,
    +  time_unit_label
    +)
    +
    + +
    +

    Arguments

    + + +
    datas
    +

    A matrix of data values.

    + + +
    meta
    +

    A dataframe containing metadata.

    + + +
    mode
    +

    A character vector with length 1, specifying the type of limma +design formula (integrated for formulas with interaction effects +between the levels, isolated for formulas where each level is +analysed in isolation (no interaction effects))

    + + +
    condition
    +

    A character string specifying the condition.

    + + +
    all_levels_clustering
    +

    A list containing clustering results for each +level within the condition.

    + + +
    time_unit_label
    +

    A character string specifying the time unit label.

    + +
    +
    +

    Value

    +

    A list of ComplexHeatmap heatmap objects for each level.

    +
    +
    +

    See also

    + +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/plot_lag1_differences.html b/docs/reference/plot_lag1_differences.html new file mode 100644 index 0000000..9c56fab --- /dev/null +++ b/docs/reference/plot_lag1_differences.html @@ -0,0 +1,128 @@ + +Lag-1 Differences Plot — plot_lag1_differences • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function takes a data frame with time series data +(rows as features and columns as samples), +a meta table with sample information including time points and conditions, +computes the lag-1 +differences for each feature for each condition level, and plots the +distribution of these +differences.

    +
    + +
    +
    plot_lag1_differences(data, meta, condition)
    +
    + +
    +

    Arguments

    + + +
    data
    +

    A data frame where rows are features and columns are samples.

    + + +
    meta
    +

    A data frame with sample metadata. Must contain a column "Time" +and the condition column.

    + + +
    condition
    +

    The name of the column in the meta table that contains the +condition information.

    + +
    +
    +

    Value

    +

    A list of ggplot2 objects, each showing the distribution of lag-1 +differences for one condition.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/plot_limma_combos_results.html b/docs/reference/plot_limma_combos_results.html new file mode 100644 index 0000000..e9caa58 --- /dev/null +++ b/docs/reference/plot_limma_combos_results.html @@ -0,0 +1,149 @@ + +Plot limma Combination Results — plot_limma_combos_results • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Generates plots for pairwise comparisons of hyperparameter combinations +using limma results.

    +
    + +
    +
    plot_limma_combos_results(
    +  top_tables_combos,
    +  datas,
    +  metas,
    +  condition,
    +  spline_test_configs,
    +  meta_batch_column,
    +  meta_batch2_column,
    +  time_unit = time_unit
    +)
    +
    + +
    +

    Arguments

    + + +
    top_tables_combos
    +

    A list of top tables for each combination.

    + + +
    datas
    +

    A list of matrices.

    + + +
    metas
    +

    A list of metadata corresponding to the data matrices.

    + + +
    condition
    +

    Meta column name that contains the levels.

    + + +
    spline_test_configs
    +

    A configuration object for spline tests.

    + + +
    meta_batch_column
    +

    A character string specifying the meta batch column.

    + + +
    meta_batch2_column
    +

    A character string specifying the second meta batch +column.

    + + +
    time_unit
    +

    A single character, such as s, m, h, or d, specifying the +time_unit that should be used for the plots (s = seconds, m = minutes, +h = hours, d = days). This single character will be converted to a string +that is a little bit more verbose, such as sec in square brackets for s.

    + +
    +
    +

    Value

    +

    A list of results including hit comparison plots and composite +spline plots for each pair of combinations.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/plot_mean_correlation_with_time.html b/docs/reference/plot_mean_correlation_with_time.html new file mode 100644 index 0000000..43a4e51 --- /dev/null +++ b/docs/reference/plot_mean_correlation_with_time.html @@ -0,0 +1,124 @@ + +Mean Correlation with Time Plot — plot_mean_correlation_with_time • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function takes a data frame with time series data +(rows as features and columns as samples) +and a meta table with sample information including time points, computes +the correlation of each +feature with time, and plots the distribution of these correlations.

    +
    + +
    +
    plot_mean_correlation_with_time(data, meta, condition)
    +
    + +
    +

    Arguments

    + + +
    data
    +

    A data frame where rows are features and columns are samples.

    + + +
    meta
    +

    A data frame with sample metadata. Must contain a column "Time".

    + + +
    condition
    +

    The column of the meta dataframe containign the levels that +separate the experiment.

    + +
    +
    +

    Value

    +

    A ggplot2 object showing the distribution of mean correlations + with time.

    +

    @importFrom rlang .data

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/plot_single_and_mean_splines.html b/docs/reference/plot_single_and_mean_splines.html new file mode 100644 index 0000000..2c38871 --- /dev/null +++ b/docs/reference/plot_single_and_mean_splines.html @@ -0,0 +1,126 @@ + +Plot Single and Mean Splines — plot_single_and_mean_splines • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Generates a plot showing individual time series shapes and their consensus +(mean) shape.

    +
    + +
    +
    plot_single_and_mean_splines(time_series_data, title, plot_info)
    +
    + +
    +

    Arguments

    + + +
    time_series_data
    +

    A dataframe or matrix with time series data.

    + + +
    title
    +

    A character string specifying the title of the plot.

    + + +
    plot_info
    +

    List containing the elements y_axis_label (string), +time_unit (string), treatment_labels (character vector), +treatment_timepoints (integer vector). All can also be NA. +This list is used to add this info to the spline plots. +time_unit is used to label the x-axis, and treatment_labels +and -timepoints are used to create vertical dashed lines, +indicating the positions of the treatments (such as +feeding, temperature shift, etc.).

    + +
    +
    +

    Value

    +

    A ggplot object representing the single and consensus shapes.

    +
    +
    +

    See also

    +

    ggplot2

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/plot_splines.html b/docs/reference/plot_splines.html new file mode 100644 index 0000000..dec4a6c --- /dev/null +++ b/docs/reference/plot_splines.html @@ -0,0 +1,159 @@ + +Plot Splines for Features Based on Top Table Information — plot_splines • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function generates plots for each feature listed in the +top table using spline +interpolation for fitted values. It creates individual plots for each feature +and combines +them into a single composite plot. The function is internal and not exported.

    +
    + +
    +
    plot_splines(
    +  top_table,
    +  data,
    +  meta,
    +  X,
    +  time_unit_label,
    +  plot_info,
    +  adj_pthreshold
    +)
    +
    + +
    +

    Arguments

    + + +
    top_table
    +

    A dataframe containing the indices and names of features, +along with their + statistical metrics such as intercepts and spline + coefficients.

    + + +
    data
    +

    A matrix or dataframe containing the raw data values for each +feature.

    + + +
    meta
    +

    A dataframe containing metadata for the data, including time +points.

    + + +
    X
    +

    The limma design matrix that defines the experimental conditions.

    + + +
    time_unit_label
    +

    A string shown in the plots as the unit for the time, +such as min or hours.

    + + +
    plot_info
    +

    List containing the elements y_axis_label (string), +time_unit (string), treatment_labels (character vector), +treatment_timepoints (integer vector). All can also be NA. +This list is used to add this info to the spline plots. +time_unit is used to label the x-axis, and treatment_labels +and -timepoints are used to create vertical dashed lines, +indicating the positions of the treatments (such as +feeding, temperature shift, etc.).

    + + +
    adj_pthreshold
    +

    Double > 0 and < 1 specifying the adj. p-val threshold.

    + +
    +
    +

    Value

    +

    A list containing the composite plot and the number of rows used in +the plot layout.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/prepare_gene_lists_for_enrichr.html b/docs/reference/prepare_gene_lists_for_enrichr.html new file mode 100644 index 0000000..66424f6 --- /dev/null +++ b/docs/reference/prepare_gene_lists_for_enrichr.html @@ -0,0 +1,114 @@ + +Prepare Gene Lists for Enrichr and Return as String — prepare_gene_lists_for_enrichr • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function processes the clustered hits in each element of +`all_levels_clustering`, formats the gene names for easy copy-pasting into +Enrichr, and returns the formatted gene lists as a string.

    +
    + +
    +
    prepare_gene_lists_for_enrichr(all_levels_clustering, genes)
    +
    + +
    +

    Arguments

    + + +
    all_levels_clustering
    +

    A list where each element contains a dataframe +`clustered_hits` with columns `feature` and `cluster`.

    + + +
    genes
    +

    A vector of gene names corresponding to the feature indices.

    + +
    +
    +

    Value

    +

    A character vector with the formatted gene lists for each cluster.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/prepare_plot_data.html b/docs/reference/prepare_plot_data.html new file mode 100644 index 0000000..637ee59 --- /dev/null +++ b/docs/reference/prepare_plot_data.html @@ -0,0 +1,120 @@ + +Prepare Plot Data — prepare_plot_data • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function prepares plot data for visualization based on enrichments +lists and specified databases.

    +
    + +
    +
    prepare_plot_data(enrichments_list, databases)
    +
    + +
    +

    Arguments

    + + +
    enrichments_list
    +

    A list of enrichments containing data frames for +different databases.

    + + +
    databases
    +

    A character vector specifying the databases to be included.

    + +
    +
    +

    Value

    +

    A list containing two data frames:

    top_plot_data
    +

    A data frame containing the prepared plot data for + visualization of top combinations.

    + +
    full_enrich_results
    +

    A data frame containing the full enrichments + results.

    + + +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/preprocess_rna_seq_data.html b/docs/reference/preprocess_rna_seq_data.html new file mode 100644 index 0000000..f7891c6 --- /dev/null +++ b/docs/reference/preprocess_rna_seq_data.html @@ -0,0 +1,124 @@ + +Perform default preprocessing of raw RNA-seq counts — preprocess_rna_seq_data • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function is called when `preprocess_rna_seq` is `TRUE`. It performs the +default preprocessing steps for raw RNA-seq counts, including creating a +`DGEList` object, normalizing the counts, and applying the `voom` +transformation.

    +
    + +
    +
    preprocess_rna_seq_data(raw_counts, design_matrix, normalize_func = NULL)
    +
    + +
    +

    Arguments

    + + +
    raw_counts
    +

    A matrix of raw RNA-seq counts (genes as rows, samples as +columns).

    + + +
    design_matrix
    +

    A design matrix used in the linear modeling, typically +specifying the experimental conditions.

    + + +
    normalize_func
    +

    An optional normalization function. If provided, this +function will be used to normalize the `DGEList` object. If not provided, + TMM normalization (via `edgeR::calcNormFactors`) will be used by default.

    + +
    +
    +

    Value

    +

    A `voom` object, which includes the log2-counts per million (logCPM) + matrix and observation-specific weights.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/print_info_message.html b/docs/reference/print_info_message.html new file mode 100644 index 0000000..bfa9721 --- /dev/null +++ b/docs/reference/print_info_message.html @@ -0,0 +1,105 @@ + +Print Informational Message — print_info_message • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function prints a nicely formatted informational message with a green "Info" label.

    +
    + +
    +
    print_info_message(message_prefix, report_dir)
    +
    + +
    +

    Arguments

    + + +
    message_prefix
    +

    A custom message prefix to be displayed before the success message.

    + + +
    report_dir
    +

    The directory where the HTML reports are located.

    + +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/process_combo.html b/docs/reference/process_combo.html new file mode 100644 index 0000000..1644fd7 --- /dev/null +++ b/docs/reference/process_combo.html @@ -0,0 +1,176 @@ + +Process Combination — process_combo • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Processes a single combination of data, design, spline configuration, and +p-threshold to generate LIMMA spline results.

    +
    + +
    +
    process_combo(
    +  data_index,
    +  design_index,
    +  spline_config_index,
    +  pthreshold,
    +  datas,
    +  metas,
    +  designs,
    +  modes,
    +  condition,
    +  spline_test_configs,
    +  feature_names,
    +  padjust_method,
    +  ...
    +)
    +
    + +
    +

    Arguments

    + + +
    data_index
    +

    Index of the data in the datas list.

    + + +
    design_index
    +

    Index of the design in the designs list.

    + + +
    spline_config_index
    +

    Index of the spline configuration in the +spline_test_configs list.

    + + +
    pthreshold
    +

    The p-value threshold for significance.

    + + +
    datas
    +

    A list of data matrices

    + + +
    metas
    +

    A list of metadata corresponding to the data matrices.

    + + +
    designs
    +

    A list of design matrices.

    + + +
    modes
    +

    A character vector containing 'isolated' or 'integrated'.

    + + +
    condition
    +

    A single character string specifying the condition.

    + + +
    spline_test_configs
    +

    A configuration object for spline tests.

    + + +
    feature_names
    +

    A character vector of feature names.

    + + +
    padjust_method
    +

    A single character string specifying the p-adjustment +method.

    + + +
    ...
    +

    Additional arguments.

    + +
    +
    +

    Value

    +

    A list of top tables from the LIMMA spline analysis.

    +
    + + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/process_combo_pair.html b/docs/reference/process_combo_pair.html new file mode 100644 index 0000000..43e1752 --- /dev/null +++ b/docs/reference/process_combo_pair.html @@ -0,0 +1,134 @@ + +Process Combination Pair — process_combo_pair • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Processes a combination pair to generate plots and compile them into an +HTML report.

    +
    + +
    +
    process_combo_pair(
    +  combo_pair,
    +  combo_pair_name,
    +  report_info,
    +  report_dir,
    +  timestamp
    +)
    +
    + +
    +

    Arguments

    + + +
    combo_pair
    +

    A list containing hit comparison and composite spline +plots.

    + + +
    combo_pair_name
    +

    A character string for naming the combination pair.

    + + +
    report_info
    +

    An object containing report information.

    + + +
    report_dir
    +

    A non-empty string specifying the report directory.

    + + +
    timestamp
    +

    A timestamp to include in the report filename.

    + +
    +
    +

    Value

    +

    No return value, called for side effects.

    +
    +
    +

    See also

    + +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/process_config_column.html b/docs/reference/process_config_column.html new file mode 100644 index 0000000..eff8f17 --- /dev/null +++ b/docs/reference/process_config_column.html @@ -0,0 +1,121 @@ + +Process Configuration Column — process_config_column • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Processes a configuration column based on the given mode and number of +levels.

    +
    + +
    +
    process_config_column(config_column, index, num_levels, mode)
    +
    + +
    +

    Arguments

    + + +
    config_column
    +

    A configuration column from the spline test +configurations.

    + + +
    index
    +

    Index of the configuration to process.

    + + +
    num_levels
    +

    Number of unique levels in the metadata condition.

    + + +
    mode
    +

    A character string specifying the mode +('integrated' or 'isolated').

    + +
    +
    +

    Value

    +

    A vector or list with the processed configuration values.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/process_enrichment_results.html b/docs/reference/process_enrichment_results.html new file mode 100644 index 0000000..429bea1 --- /dev/null +++ b/docs/reference/process_enrichment_results.html @@ -0,0 +1,134 @@ + +Process Enrichment Results — process_enrichment_results • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Process enrichment results for visualization.

    +
    + +
    +
    process_enrichment_results(
    +  all_db_results,
    +  enrichment_results,
    +  adjP_threshold,
    +  column_name,
    +  count_column_name,
    +  background = FALSE
    +)
    +
    + +
    +

    Arguments

    + + +
    all_db_results
    +

    A list of data frames containing enrichment results +for all databases.

    + + +
    enrichment_results
    +

    A list of data frames containing enrichment +results for individual databases.

    + + +
    adjP_threshold
    +

    The threshold for adjusted p-values.

    + + +
    column_name
    +

    The name of the column to store adjusted p-values.

    + + +
    count_column_name
    +

    The name of the column to store gene counts.

    + + +
    background
    +

    Logical indicating whether background ratios are included.

    + +
    +
    +

    Value

    +

    A list of data frames containing processed enrichment results.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/process_field.html b/docs/reference/process_field.html new file mode 100644 index 0000000..26b3e68 --- /dev/null +++ b/docs/reference/process_field.html @@ -0,0 +1,149 @@ + +Process and Encode Data Field for Report — process_field • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function processes a given field, encodes the associated data as base64, +and generates a download link for the report. It handles different types of +fields including data, meta, top tables, and Enrichr formatted gene lists.

    +
    + +
    +
    process_field(
    +  field,
    +  data,
    +  meta,
    +  topTables,
    +  report_info,
    +  encode_df_to_base64,
    +  report_type,
    +  enrichr_format
    +)
    +
    + +
    +

    Arguments

    + + +
    field
    +

    A string specifying the field to process.

    + + +
    data
    +

    A dataframe containing the main data.

    + + +
    meta
    +

    A dataframe containing meta information.

    + + +
    topTables
    +

    A dataframe containing the results of differential +expression analysis.

    + + +
    report_info
    +

    A list containing additional report information.

    + + +
    encode_df_to_base64
    +

    A function to encode a dataframe to base64.

    + + +
    report_type
    +

    A string specifying the type of report.

    + + +
    enrichr_format
    +

    A list with the formatted gene lists and background +gene list.

    + +
    +
    +

    Value

    +

    A string containing the HTML link for downloading the processed + field.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/process_level_cluster.html b/docs/reference/process_level_cluster.html new file mode 100644 index 0000000..a84f139 --- /dev/null +++ b/docs/reference/process_level_cluster.html @@ -0,0 +1,146 @@ + +Process Level Cluster — process_level_cluster • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Processes clustering for a specific level within a condition using the +provided top table and spline parameters.

    +
    + +
    +
    process_level_cluster(
    +  top_table,
    +  cluster_size,
    +  level,
    +  meta,
    +  condition,
    +  spline_params,
    +  mode
    +)
    +
    + +
    +

    Arguments

    + + +
    top_table
    +

    A dataframe containing the top table results from limma.

    + + +
    cluster_size
    +

    The size of clusters to generate.

    + + +
    level
    +

    The level within the condition to process.

    + + +
    meta
    +

    A dataframe containing metadata.

    + + +
    condition
    +

    A character string specifying the condition.

    + + +
    spline_params
    +

    A list of spline parameters for the analysis.

    + + +
    mode
    +

    A character string specifying the mode +('isolated' or 'integrated').

    + +
    +
    +

    Value

    +

    A list containing the clustering results, including curve values and + the design matrix.

    +
    + + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/process_plots.html b/docs/reference/process_plots.html new file mode 100644 index 0000000..369209a --- /dev/null +++ b/docs/reference/process_plots.html @@ -0,0 +1,133 @@ + +Process Plots — process_plots • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Converts plots to base64 and appends them to the HTML content.

    +
    + +
    +
    process_plots(
    +  plots_element,
    +  plots_size,
    +  html_content,
    +  toc,
    +  header_index,
    +  element_name = NA
    +)
    +
    + +
    +

    Arguments

    + + +
    plots_element
    +

    A list of plots to be processed.

    + + +
    plots_size
    +

    A list of sizes for the plots.

    + + +
    html_content
    +

    The current state of the HTML content.

    + + +
    toc
    +

    The current state of the table of contents (TOC).

    + + +
    header_index
    +

    An index to uniquely identify each section +for anchoring.

    + + +
    element_name
    +

    A character string specifying the name of the element.

    + +
    +
    +

    Value

    +

    Updated HTML content with the plots included.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/process_result.html b/docs/reference/process_result.html new file mode 100644 index 0000000..40c6fa2 --- /dev/null +++ b/docs/reference/process_result.html @@ -0,0 +1,125 @@ + +Process GSEA Result for a Specific Level — process_result • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function processes the GSEA result for a specific level. It handles +cases where the result contains `NA` values by adding a section break. +Otherwise, it extracts the plot, plot size, and header information from +the result.

    +
    + +
    +
    process_result(level_result, level_name)
    +
    + +
    +

    Arguments

    + + +
    level_result
    +

    A list containing the GSEA result for a specific level.

    + + +
    level_name
    +

    A character string representing the name of the level.

    + +
    +
    +

    Value

    +

    A list with the following components:

    plot
    +

    A plot object or "section_break" if the result contains `NA`.

    + +
    plot_size
    +

    An integer indicating the size of the plot.

    + +
    header_info
    +

    A list with header information, including the level + name, full enrichment results, and raw enrichment results if available.

    + + +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/process_top_table.html b/docs/reference/process_top_table.html new file mode 100644 index 0000000..64427e9 --- /dev/null +++ b/docs/reference/process_top_table.html @@ -0,0 +1,118 @@ + +Process Top Table — process_top_table • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Processes the top table from a LIMMA analysis, adding feature names and +intercepts.

    +
    + +
    +
    process_top_table(process_within_level_result, feature_names)
    +
    + +
    +

    Arguments

    + + +
    process_within_level_result
    +

    List of lists containing the limma +topTable, fit, and optionally the voom +object. All of this is from one specific +level.

    + + +
    feature_names
    +

    A non-empty character vector of feature names.

    + +
    +
    +

    Value

    +

    A dataframe containing the processed top table with added intercepts.

    +
    +
    +

    See also

    + +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/process_within_level.html b/docs/reference/process_within_level.html new file mode 100644 index 0000000..126d161 --- /dev/null +++ b/docs/reference/process_within_level.html @@ -0,0 +1,152 @@ + +Process Within Level — process_within_level • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Performs a within-level analysis using limma to generate top tables and fit +objects based on the specified spline parameters. Performs the limma spline +analysis for a selected level of a factor

    +
    + +
    +
    process_within_level(
    +  data,
    +  preprocess_rna_seq,
    +  normalization_fun,
    +  meta,
    +  design,
    +  spline_params,
    +  level_index,
    +  padjust_method
    +)
    +
    + +
    +

    Arguments

    + + +
    data
    +

    A matrix of data values.

    + + +
    preprocess_rna_seq
    +

    Boolean specifying whether to preprocess RNA seq

    + + +
    normalization_fun
    +

    Function for normalizing RNA-seq raw counts.

    + + +
    meta
    +

    A dataframe containing metadata, including a 'Time' column.

    + + +
    design
    +

    A design formula or matrix for the limma analysis.

    + + +
    spline_params
    +

    A list of spline parameters for the analysis.

    + + +
    level_index
    +

    The index of the level within the factor.

    + + +
    padjust_method
    +

    A character string specifying the p-adjustment method.

    + +
    +
    +

    Value

    +

    A list containing the top table and the fit object from the limma +analysis.

    +
    +
    +

    See also

    + +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/read_section_texts.html b/docs/reference/read_section_texts.html new file mode 100644 index 0000000..4f186ea --- /dev/null +++ b/docs/reference/read_section_texts.html @@ -0,0 +1,112 @@ + +Read and split section texts from a file — read_section_texts • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This internal function reads the contents of a text file located in the +`inst/descriptions` directory of the package and splits it into individual +sections based on a specified delimiter.

    +
    + +
    +
    read_section_texts(filename)
    +
    + +
    +

    Arguments

    + + +
    filename
    +

    A character string specifying the name of the file +containing the section texts. The file should be located in the +`inst/descriptions` directory of the package.

    + +
    +
    +

    Value

    +

    A character vector where each element is a section of the text +split by the delimiter `|`.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/remove_batch_effect.html b/docs/reference/remove_batch_effect.html new file mode 100644 index 0000000..7ea0153 --- /dev/null +++ b/docs/reference/remove_batch_effect.html @@ -0,0 +1,136 @@ + +Remove Batch Effect — remove_batch_effect • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Removes batch effects from the data matrices using the specified batch +column in the metadata.

    +
    + +
    +
    remove_batch_effect(
    +  datas,
    +  metas,
    +  meta_batch_column,
    +  meta_batch2_column,
    +  condition
    +)
    +
    + +
    +

    Arguments

    + + +
    datas
    +

    A list of matrices.

    + + +
    metas
    +

    A list of metadata corresponding to the data matrices.

    + + +
    meta_batch_column
    +

    A character string specifying the meta batch column.

    + + +
    meta_batch2_column
    +

    A character string specifying the second meta batch +column.

    + + +
    condition
    +

    A character vector of length 1, specifying the column name +of the meta dataframe, that contains the levels that +separate the experiment.

    + +
    +
    +

    Value

    +

    A list of matrices with batch effects removed where applicable.

    +
    +
    +

    See also

    + +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/remove_batch_effect_cluster_hits.html b/docs/reference/remove_batch_effect_cluster_hits.html new file mode 100644 index 0000000..0a9b182 --- /dev/null +++ b/docs/reference/remove_batch_effect_cluster_hits.html @@ -0,0 +1,164 @@ + +Remove Batch Effect from Cluster Hits — remove_batch_effect_cluster_hits • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function removes batch effects from the data for each level specified +by the condition. It supports both isolated and integrated modes, with +optional handling for a second batch column.

    +
    + +
    +
    remove_batch_effect_cluster_hits(
    +  data,
    +  meta,
    +  condition,
    +  meta_batch_column,
    +  meta_batch2_column,
    +  design,
    +  mode,
    +  spline_params
    +)
    +
    + +
    +

    Arguments

    + + +
    data
    +

    A dataframe containing the main data.

    + + +
    meta
    +

    A dataframe containing meta information.

    + + +
    condition
    +

    A string specifying the column in `meta` that divides the +experiment into levels.

    + + +
    meta_batch_column
    +

    A string specifying the column in `meta` that +indicates batch information.

    + + +
    meta_batch2_column
    +

    A string specifying the second batch column in +`meta`, if applicable.

    + + +
    design
    +

    A design matrix for the experiment.

    + + +
    mode
    +

    A string indicating the mode of operation: "isolated" or +"integrated".

    + + +
    spline_params
    +

    A list of spline parameters for the design matrix.

    + +
    +
    +

    Value

    +

    A list of dataframes with batch effects removed for each level.

    +
    +
    +

    Details

    +

    The function operates in two modes:

    isolated
    +

    Processes each level independently, using only data from + that level.

    + +
    integrated
    +

    Processes the entire dataset together.

    + + +

    If `meta_batch_column` is specified, the function removes batch effects using +`removeBatchEffect`. If a second batch column (`meta_batch2_column`) is +specified, it is also included in the batch effect removal.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/remove_prefix.html b/docs/reference/remove_prefix.html new file mode 100644 index 0000000..5683448 --- /dev/null +++ b/docs/reference/remove_prefix.html @@ -0,0 +1,111 @@ + +Remove Prefix from String — remove_prefix • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Removes a specified prefix from the beginning of a string. This function +is useful for cleaning or standardizing strings by removing known prefixes.

    +
    + +
    +
    remove_prefix(string, prefix)
    +
    + +
    +

    Arguments

    + + +
    string
    +

    A string from which the prefix should be removed.

    + + +
    prefix
    +

    A string representing the prefix to be removed.

    + +
    +
    +

    Value

    +

    A string with the prefix removed.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/run_gsea.html b/docs/reference/run_gsea.html new file mode 100644 index 0000000..b155319 --- /dev/null +++ b/docs/reference/run_gsea.html @@ -0,0 +1,145 @@ + +Generate a GSEA Report — run_gsea • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function generates a Gene Set Enrichment Analysis (GSEA) report based +on clustered hit levels, gene data, and specified databases. It processes +the input data, manages GSEA levels, and produces an HTML report with plots.

    +
    + +
    +
    run_gsea(
    +  levels_clustered_hits,
    +  databases,
    +  report_info,
    +  clusterProfiler_params = NA,
    +  plot_titles = NA,
    +  background = NULL,
    +  report_dir = here::here()
    +)
    +
    + +
    +

    Arguments

    + + +
    levels_clustered_hits
    +

    A list of clustered hits at different levels.

    + + +
    databases
    +

    A list of databases for the gene set enrichment analysis.

    + + +
    report_info
    +

    A list containing information for the report generation.

    + + +
    clusterProfiler_params
    +

    Additional parameters for the GSEA analysis, +default is NA. Those include adj_p_value, +pAdjustMethod, etc (see clusterProfiler +documentation).

    + + +
    plot_titles
    +

    Titles for the plots, default is NA.

    + + +
    background
    +

    Background data, default is NULL.

    + + +
    report_dir
    +

    Directory where the report will be saved, default is +`here::here()`.

    + +
    +
    +

    Value

    +

    A list of plots generated for the GSEA report.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/run_limma_splines.html b/docs/reference/run_limma_splines.html new file mode 100644 index 0000000..e888574 --- /dev/null +++ b/docs/reference/run_limma_splines.html @@ -0,0 +1,131 @@ + +run_limma_splines.R contains the exported package function run_limma_splines and all the functions that make up the functionality of run_limma_splines. run_limma_splines performs a limma analysis, using splines, to assign a p-value to every feature of a time series omics dataset, to find out which features are significantly changed over the time course. Run Limma Analysis with Spline Interpolation for Hyperparameter Screening — run_limma_splines • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function conducts differential expression analysis using the Limma +package, +incorporating spline interpolation to model the effect of various +experimental +factors across different levels. It supports both isolated and integrated +modes +for within-level analysis and between-level comparison, adjusting for +multiple +degrees of freedom corresponding to the factors under investigation.

    +
    + +
    +
    run_limma_splines(splineomics)
    +
    + +
    +

    Arguments

    + + +
    splineomics
    +

    A SplineOmics object, containing data, meta, design, +condition, and spline_params.

    + +
    +
    +

    Value

    +

    The SplineOmics object, updated with a list with three elements: + - `time_effect`: A list of top tables for each level with the time + effect. + - `avrg_diff_conditions`: A list of top tables for each comparison + between the levels. The comparison is the + average difference of the values. + - `interaction_condition_time`: A list of top tables for each + comparison between levels. The + comparison is the interaction between + the condition and the time.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/screen_limma_hyperparams.html b/docs/reference/screen_limma_hyperparams.html new file mode 100644 index 0000000..4d59312 --- /dev/null +++ b/docs/reference/screen_limma_hyperparams.html @@ -0,0 +1,182 @@ + +screen_limma_hyperparams.R contains the exported package function screen_limma_hyperparams and all the functions that make up the functionality of screen_limma_hyperparams. screen_limma_hyperparams runs the other package function, run_limma_splines, for a time series omics dataset, for different hyperparameters. Such are for example degree of freedom of the spline, type of spline, limma design formula, and different versions of the data (full data vs. outliers removed). This can result in several combinations, and it is tedious analyzing the combination in an organised and structured manner. Therefore, this function streamlines that process. Limma Hyperparameters Screening — screen_limma_hyperparams • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function screens through various combinations of hyperparameters for +limma analysis, +including designs, modes, and degrees of freedom. It validates inputs, +generates results for all +combinations, and plots the outcomes. Finally, it may also be involved in +generating an HTML report +as part of a larger analysis workflow.

    +
    + +
    +
    screen_limma_hyperparams(
    +  splineomics,
    +  datas,
    +  datas_descr,
    +  metas,
    +  designs,
    +  spline_test_configs,
    +  report_dir = here::here(),
    +  adj_pthresholds = c(0.05),
    +  time_unit = "min",
    +  padjust_method = "BH"
    +)
    +
    + +
    +

    Arguments

    + + +
    splineomics
    +

    An S3 object of class `SplineOmics` that contains all the +necessary data and parameters for the analysis, including:

    • condition: A string specifying the column name of the meta + dataframe, that contains the levels that separate + the experiment ('treatment' can be a condition, and + 'drug' and 'no drug' can be the levels of such a + condition).

    • +
    • report_info:

    • +
    • meta_batch_column: A character string specifying the meta + batch column.

    • +
    • meta_batch2_column: A character string specifying the second + meta batch column (the limma function + removeBatchEffect supports a maximum of + two batch columns.)

    • +
    + + +
    datas
    +

    A list of data frames containing the datasets to be analyzed.

    + + +
    datas_descr
    +

    A description object for the data.

    + + +
    metas
    +

    A list of data frames containing metadata for each dataset in +`datas`.

    + + +
    designs
    +

    A character vector of design formulas for the limma analysis.

    + + +
    spline_test_configs
    +

    A configuration object for spline tests.

    + + +
    report_dir
    +

    A non-empty string specifying the report directory.

    + + +
    adj_pthresholds
    +

    A numeric vector of p-value thresholds for +significance determination.

    + + +
    time_unit
    +

    A character string specifying the time unit label for plots.

    + + +
    padjust_method
    +

    A character string specifying the method for p-value +adjustment.

    + +
    +
    +

    Value

    +

    Returns a list of plots generated from the limma analysis results. + Each element in the list corresponds to a different combination of + hyperparameters.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/set_default_params.html b/docs/reference/set_default_params.html new file mode 100644 index 0000000..ce4fb86 --- /dev/null +++ b/docs/reference/set_default_params.html @@ -0,0 +1,113 @@ + +Set Default Parameters — set_default_params • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function checks if the provided `params` list is `NA` or missing any +elements. If `params` is `NA`, it assigns a list of default parameters. +If any element is missing from `params`, it adds the missing element with +its respective default value.

    +
    + +
    +
    set_default_params(params)
    +
    + +
    +

    Arguments

    + + +
    params
    +

    A list of parameters to be checked and updated with default +values if necessary.

    + +
    +
    +

    Value

    +

    A list of parameters with all required elements, either from the + input `params` or with added default values for any missing elements.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/shorten_names.html b/docs/reference/shorten_names.html new file mode 100644 index 0000000..361f6fe --- /dev/null +++ b/docs/reference/shorten_names.html @@ -0,0 +1,114 @@ + +Shorten Names — shorten_names • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Replaces occurrences of unique values within a name with their first three +characters. This function is useful for abbreviating long condition names +in a dataset.

    +
    + +
    +
    shorten_names(name, unique_values)
    +
    + +
    +

    Arguments

    + + +
    name
    +

    A string representing the name to be shortened.

    + + +
    unique_values
    +

    A vector of unique values whose abbreviations will +replace their occurrences in the name.

    + +
    +
    +

    Value

    +

    A string with the unique values replaced by their abbreviations.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/store_hits.html b/docs/reference/store_hits.html new file mode 100644 index 0000000..97e0123 --- /dev/null +++ b/docs/reference/store_hits.html @@ -0,0 +1,109 @@ + +Store Hits — store_hits • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Stores the feature indices for significant hits based on the adjusted p-value +threshold for each condition.

    +
    + +
    +
    store_hits(condition)
    +
    + +
    +

    Arguments

    + + +
    condition
    +

    A list containing dataframes and parameters for each +condition.

    + +
    +
    +

    Value

    +

    A list where each element is a vector of feature indices that meet +the significance threshold.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/truncate_row_names.html b/docs/reference/truncate_row_names.html new file mode 100644 index 0000000..e39167e --- /dev/null +++ b/docs/reference/truncate_row_names.html @@ -0,0 +1,114 @@ + +Truncate Row Names — truncate_row_names • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    This function truncates row names that exceed a specified maximum length. +If the row name length exceeds the maximum length, it appends " ..." +to indicate truncation.

    +
    + +
    +
    truncate_row_names(names, max_length = 40)
    +
    + +
    +

    Arguments

    + + +
    names
    +

    A character vector of row names.

    + + +
    max_length
    +

    An integer specifying the maximum length of the row names. +Default is 40.

    + +
    +
    +

    Value

    +

    A character vector of truncated row names.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/update_splineomics.html b/docs/reference/update_splineomics.html new file mode 100644 index 0000000..54069fe --- /dev/null +++ b/docs/reference/update_splineomics.html @@ -0,0 +1,109 @@ + +Update a SplineOmics object — update_splineomics • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Updates a SplineOmics object by modifying existing fields or adding new ones.

    +
    + +
    +
    update_splineomics(splineomics, ...)
    +
    + +
    +

    Arguments

    + + +
    splineomics
    +

    A SplineOmics object to be updated.

    + + +
    ...
    +

    Named arguments with new values for fields to be updated or added.

    + +
    +
    +

    Value

    +

    The updated SplineOmics object.

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/reference/within_level.html b/docs/reference/within_level.html new file mode 100644 index 0000000..7f52ec2 --- /dev/null +++ b/docs/reference/within_level.html @@ -0,0 +1,170 @@ + +Within level analysis — within_level • SplineOmics + + +
    +
    + + + +
    +
    + + +
    +

    Processes a single level within a condition, performing LIMMA analysis +and generating the top table of results.

    +
    + +
    +
    within_level(
    +  level,
    +  level_index,
    +  spline_params,
    +  data,
    +  preprocess_rna_seq,
    +  normalization_fun,
    +  meta,
    +  design,
    +  condition,
    +  feature_names,
    +  padjust_method,
    +  mode
    +)
    +
    + +
    +

    Arguments

    + + +
    level
    +

    The level within the condition to process.

    + + +
    level_index
    +

    The index of the level within the condition.

    + + +
    spline_params
    +

    A list of spline parameters for the analysis.

    + + +
    data
    +

    A matrix of data values.

    + + +
    preprocess_rna_seq
    +

    Boolean specifying whether to preprocess RNA seq

    + + +
    normalization_fun
    +

    Function to normalize RNA-seq raw counts.

    + + +
    meta
    +

    A dataframe containing metadata.

    + + +
    design
    +

    A design formula or matrix for the LIMMA analysis.

    + + +
    condition
    +

    A character string specifying the condition.

    + + +
    feature_names
    +

    A non-empty character vector of feature names.

    + + +
    padjust_method
    +

    A character string specifying the p-adjustment method.

    + + +
    mode
    +

    A character string specifying the mode +('isolated' or 'integrated').

    + +
    +
    +

    Value

    +

    A list containing the name of the results and the top table of + results.

    +
    +
    +

    See also

    +

    within_level, process_top_table

    +
    + +
    + +
    + + +
    + +
    +

    Site built with pkgdown 2.1.0.

    +
    + +
    + + + + + + + + diff --git a/docs/sitemap.xml b/docs/sitemap.xml index 6166980..b7667cc 100755 --- a/docs/sitemap.xml +++ b/docs/sitemap.xml @@ -1,375 +1,144 @@ - - - - /404.html - - - /CODE_OF_CONDUCT.html - - - /LICENSE-text.html - - - /articles/Docker_permission_denied.html - - - /articles/functions-in-depth.html - - - /articles/get-started.html - - - /articles/index.html - - - /authors.html - - - /example_report.html - - - /index.html - - - /reference/InputControl.html - - - /reference/Level2Functions.html - - - /reference/Level3Functions.html - - - /reference/Level4Functions.html - - - /reference/NumericBlockFinder.html - - - /reference/SplineOmics-package.html - - - /reference/add_feature_names.html - - - /reference/between_level.html - - - /reference/build_cluster_hits_report.html - - - /reference/build_create_gsea_report.html - - - /reference/build_create_limma_report.html - - - /reference/build_explore_data_report.html - - - /reference/build_hyperparams_screen_report.html - - - /reference/check_clustered_hits.html - - - /reference/check_databases.html - - - /reference/check_datas_descr.html - - - /reference/check_genes.html - - - /reference/check_null_elements.html - - - /reference/check_params.html - - - /reference/check_spline_test_configs.html - - - /reference/cluster_hits.html - - - /reference/control_inputs_create_gsea_report.html - - - /reference/control_inputs_extract_data.html - - - /reference/control_inputs_run_limma.html - - - /reference/create_gsea_report.html - - - /reference/create_gsea_report_level.html - - - /reference/create_limma_report.html - - - /reference/create_p_value_histogram.html - - - /reference/create_progress_bar.html - - - /reference/create_spline_params.html - - - /reference/create_toc.html - - - /reference/create_volcano_plot.html - - - /reference/dbs_to_term2genes.html - - - /reference/define_html_styles.html - - - /reference/design2design_matrix.html - - - /reference/determine_analysis_mode.html - - - /reference/download_enrichr_databases.html - - - /reference/encode_df_to_base64.html - - - /reference/enrichr_get_genesets.html - - - /reference/explore_data.html - - - /reference/extract_data.html - - - /reference/flatten_spline_configs.html - - - /reference/format_text.html - - - /reference/gen_composite_spline_plots.html - - - /reference/gen_hitcomp_plots.html - - - /reference/generate_avrg_diff_plots.html - - - /reference/generate_explore_plots.html - - - /reference/generate_interaction_plots.html - - - /reference/generate_report_html.html - - - /reference/generate_report_html_new.html - - - /reference/generate_reports.html - - - /reference/generate_reports_meta.html - - - /reference/generate_section_content.html - - - /reference/generate_time_effect_plots.html - - - /reference/get_curve_values.html - - - /reference/get_explore_plots_explanations.html - - - /reference/get_header_section.html - - - /reference/get_limma_combos_results.html - - - /reference/get_spline_params_info.html - - - /reference/hc_add.html - - - /reference/hc_barplot.html - - - /reference/hc_new.html - - - /reference/hc_vennheatmap.html - - - /reference/hierarchical_clustering.html - - - /reference/huge_table_user_prompter.html - - - /reference/index.html - - - /reference/is_not_na.html - - - /reference/limma_hyperparams_screen.html - - - /reference/make_box_plots.html - - - /reference/make_clustering_report.html - - - /reference/make_correlation_heatmaps.html - - - /reference/make_density_plots.html - - - /reference/make_enrich_dotplot.html - - - /reference/make_mds_plot.html - - - /reference/make_pca_plot.html - - - /reference/make_scree_plot.html - - - /reference/make_tsne_plot.html - - - /reference/make_violin_plots.html - - - /reference/manage_gsea_level.html - - - /reference/modify_limma_top_table.html - - - /reference/normalize_curves.html - - - /reference/perform_clustering.html - - - /reference/plot2base64.html - - - /reference/plot_all_shapes.html - - - /reference/plot_composite_splines.html - - - /reference/plot_consensus_shapes.html - - - /reference/plot_cv.html - - - /reference/plot_dendrogram.html - - - /reference/plot_first_lag_autocorrelation.html - - - /reference/plot_heatmap.html - - - /reference/plot_lag1_differences.html - - - /reference/plot_limma_combos_results.html - - - /reference/plot_mean_correlation_with_time.html - - - /reference/plot_single_and_consensus_splines.html - - - /reference/plot_splines.html - - - /reference/prepare_plot_data.html - - - /reference/process_combo.html - - - /reference/process_combo_pair.html - - - /reference/process_config_column.html - - - /reference/process_data.html - - - /reference/process_enrichment_results.html - - - /reference/process_level_cluster.html - - - /reference/process_plots.html - - - /reference/process_result.html - - - /reference/process_top_table.html - - - /reference/process_within_level.html - - - /reference/remove_batch_effect.html - - - /reference/remove_prefix.html - - - /reference/run_limma_splines.html - - - /reference/screen_limma_hyperparams.html - - - /reference/set_default_params.html - - - /reference/shorten_names.html - - - /reference/store_hits.html - - - /reference/within_level.html - + +/404.html +/CODE_OF_CONDUCT.html +/LICENSE-text.html +/articles/Docker-instructions.html +/articles/Docker_permission_denied.html +/articles/design_limma_design_formula.html +/articles/functions-in-depth.html +/articles/get-started.html +/articles/index.html +/authors.html +/example_report.html +/get-started.html +/index.html +/reference/InputControl.html +/reference/Level2Functions.html +/reference/Level3Functions.html +/reference/Level4Functions.html +/reference/NumericBlockFinder.html +/reference/SplineOmics-package.html +/reference/add_feature_names.html +/reference/add_plot_to_html.html +/reference/ask_user.html +/reference/between_level.html +/reference/bind_data_with_annotation.html +/reference/build_cluster_hits_report.html +/reference/build_create_gsea_report.html +/reference/build_create_limma_report.html +/reference/build_explore_data_report.html +/reference/build_hyperparams_screen_report.html +/reference/check_between_level_pattern.html +/reference/check_clustered_hits.html +/reference/check_databases.html +/reference/check_genes.html +/reference/check_null_elements.html +/reference/check_params.html +/reference/check_splineomics_elements.html +/reference/clean_gene_symbols.html +/reference/cluster_hits.html +/reference/control_inputs_create_gsea_report.html +/reference/control_inputs_extract_data.html +/reference/create_enrichr_zip.html +/reference/create_gsea_report_level.html +/reference/create_limma_report.html +/reference/create_p_value_histogram.html +/reference/create_progress_bar.html +/reference/create_spline_params.html +/reference/create_splineomics.html +/reference/create_toc.html +/reference/create_volcano_plot.html +/reference/dbs_to_term2genes.html +/reference/define_html_styles.html +/reference/design2design_matrix.html +/reference/determine_analysis_mode.html +/reference/download_enrichr_databases.html +/reference/encode_df_to_base64.html +/reference/enrichr_get_genesets.html +/reference/ensure_clusterProfiler.html +/reference/explore_data.html +/reference/extract_data.html +/reference/flatten_spline_configs.html +/reference/format_text.html +/reference/gen_composite_spline_plots.html +/reference/gen_hitcomp_plots.html +/reference/generate_and_write_html.html +/reference/generate_avrg_diff_plots.html +/reference/generate_explore_plots.html +/reference/generate_interaction_plots.html +/reference/generate_report_html.html +/reference/generate_reports.html +/reference/generate_reports_meta.html +/reference/generate_section_content.html +/reference/generate_time_effect_plots.html +/reference/get_curve_values.html +/reference/get_explore_plots_explanations.html +/reference/get_header_section.html +/reference/get_level_hit_indices.html +/reference/get_limma_combos_results.html +/reference/get_spline_params_info.html +/reference/hc_add.html +/reference/hc_barplot.html +/reference/hc_new.html +/reference/hc_vennheatmap.html +/reference/hierarchical_clustering.html +/reference/huge_table_user_prompter.html +/reference/index.html +/reference/is_not_na.html +/reference/make_clustering_report.html +/reference/make_correlation_heatmaps.html +/reference/make_density_plots.html +/reference/make_enrich_dotplot.html +/reference/make_mds_plot.html +/reference/make_pca_plot.html +/reference/make_violin_box_plots.html +/reference/manage_gsea_level.html +/reference/merge_annotation_all_levels_clustering.html +/reference/merge_top_table_with_annotation.html +/reference/modify_limma_top_table.html +/reference/normalize_curves.html +/reference/open_template.html +/reference/open_tutorial.html +/reference/perform_clustering.html +/reference/plot2base64.html +/reference/plot_all_mean_splines.html +/reference/plot_cluster_mean_splines.html +/reference/plot_composite_splines.html +/reference/plot_cv.html +/reference/plot_dendrogram.html +/reference/plot_first_lag_autocorrelation.html +/reference/plot_heatmap.html +/reference/plot_lag1_differences.html +/reference/plot_limma_combos_results.html +/reference/plot_mean_correlation_with_time.html +/reference/plot_single_and_mean_splines.html +/reference/plot_splines.html +/reference/prepare_gene_lists_for_enrichr.html +/reference/prepare_plot_data.html +/reference/preprocess_rna_seq_data.html +/reference/print_info_message.html +/reference/process_combo.html +/reference/process_combo_pair.html +/reference/process_config_column.html +/reference/process_enrichment_results.html +/reference/process_field.html +/reference/process_level_cluster.html +/reference/process_plots.html +/reference/process_result.html +/reference/process_top_table.html +/reference/process_within_level.html +/reference/read_section_texts.html +/reference/remove_batch_effect.html +/reference/remove_batch_effect_cluster_hits.html +/reference/remove_prefix.html +/reference/run_gsea.html +/reference/run_limma_splines.html +/reference/screen_limma_hyperparams.html +/reference/set_default_params.html +/reference/shorten_names.html +/reference/store_hits.html +/reference/truncate_row_names.html +/reference/update_splineomics.html +/reference/within_level.html + diff --git a/vignettes/Docker_permission_denied.Rmd b/vignettes/Docker_permission_denied.Rmd index b8cf878..509b89a 100755 --- a/vignettes/Docker_permission_denied.Rmd +++ b/vignettes/Docker_permission_denied.Rmd @@ -4,7 +4,7 @@ author: "Thomas Rauter" date: "10 June, 2024" output: rmarkdown::html_vignette vignette: > - %\VignetteIndexEntry{Docker-permission-denied} + %\VignetteIndexEntry{Docker_permission_denied} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} ---