From f335502144cef1233532c5ad6292d48a44355637 Mon Sep 17 00:00:00 2001 From: CooberHoo <84345288+CooberHoo@users.noreply.github.com> Date: Sat, 14 Aug 2021 23:51:41 -0400 Subject: [PATCH 01/20] App now displays extended mouse atlas data Added extended mouse atlas dataset + quality of life changes for various plots Note: Time-series tab currently non-functional as did not have access to binarized AUC matrix for extended dataset Note: dendrogram tab still under construction --- GRN/.gitignore | 10 + GRN/data/data.json | 562 ++++++++++++++++++++++++++++++++++++++++++- GRN/data/data_prep.R | 117 +++++++-- GRN/functions.R | 466 ++++++++++++----------------------- GRN/global.R | 29 ++- GRN/server.R | 228 +++++++++++++++--- GRN/ui.R | 56 ++++- 7 files changed, 1103 insertions(+), 365 deletions(-) diff --git a/GRN/.gitignore b/GRN/.gitignore index d4b7ad3..a2e915d 100644 --- a/GRN/.gitignore +++ b/GRN/.gitignore @@ -10,15 +10,25 @@ explore data/shared data/joint_cortex data/joint_pons +data/joint_cortex_extended +data/joint_pons_extended shiny_bookmarks +data/ct_e10 data/ct_e12 data/ct_e12_not_needed +data/ct_e13 data/ct_e15 +data/ct_e16 +data/ct_e18 data/ct_p0 data/ct_p3 data/ct_p6 +data/po_e10 data/po_e12 +data/po_e13 data/po_e15 +data/po_e16 +data/po_e18 data/po_p0 data/po_p3 data/po_p6 diff --git a/GRN/data/data.json b/GRN/data/data.json index 7b5efc1..5d888df 100644 --- a/GRN/data/data.json +++ b/GRN/data/data.json @@ -7,6 +7,20 @@ "description": "The whole metadata with important columns as Cluster (matching all the data),Cell_type (the full name of the cell type),Age (the time point of the sample),Colour (a hex value to use as a colour for that cluster)", "contents": "Dataframe with cluster metadata." + }, + { + "file": "metadata_20210710_with_qc.tsv", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/metadata_extended/metadata_20210710_with_qc.tsv", + "description": "For extended mouse brain atlas (joint cortex and pons analysis uses these cluster labels as the latest labelling): the whole metadata with important columns as Cluster (matching all the data),Cell_type (the full name of the cell type),Age (the time point of the sample),Colour (a hex value to use as a colour for that cluster)", + "contents": "Dataframe with cluster metadata (extended mouse brain atlas)." + + }, + { + "file": "metadata_20201028_with_qc.tsv", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/metadata_extended/metadata_20201028_with_qc.tsv", + "description": "For extended mouse brain atlas (per sample analysis uses these cluster labels as the latest labelling): the whole metadata with important columns as Cluster (matching all the data),Cell_type (the full name of the cell type),Age (the time point of the sample),Colour (a hex value to use as a colour for that cluster)", + "contents": "Dataframe with cluster metadata (extended mouse brain atlas)." + }, { "file": "Mus_musculus_TF_one_TF_per_line.txt", @@ -14,6 +28,13 @@ "description": "TF input into the SCENIC pipeline. Actives TFs in each dataset represents a subset of this.", "contents": "Text file with each TF on one line" + }, + { + "file": "palette_ID_20210710_joint_clustering.Rds", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/joint_mouse_extended/palette_ID_20210710_joint_clustering.Rds", + "description": "Colour palette for the joint clusters in the extended mouse dataset. Values are colour hex codes and names are the cluster labels.", + "contents": "Named vector" + }, { "file": "common_prep.Rda", @@ -21,6 +42,12 @@ "contents": "R object containing colour palettes, and heatmap annotations", "script": "data_prep.R" + }, + { + "file": "timeseries_proportion_plots.Rda", + "description": "Ribbon plot of the proportion of each cluster across developmental time, for forebrain and pons.", + "contents": "List of ggplot objects ", + "script": "data_prep.R" } ], @@ -100,6 +127,140 @@ } ], +"joint_cortex_extended": [ + { + "file": "cortex_extended_prep.Rda", + "description": "Rda file containing datasets generated in data_prep.R, to be loaded at the beginning of app.R to optimize run-time speed and efficiency. ", + "contents": "Several R objects generated in the script for visualising the joint cortex extended dataset in the app", + "script": "data_prep.R" + + }, + { + "file": "joint_cortex_extended.metadata.tsv", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/joint_cortex_extended/joint_cortex_extended.metadata.tsv", + "description": "Cell-level information for extended forebrain dataset, including corresponding clusters and UMAP/tSNE/PCA coordinates, used to plot scatterplots", + "contents": "Data frame with columns, 'Cell' 'Sample' 'Sample_cluster', followed by columns for embedding coordinates." + + }, + { + + "file": "joint_cortex_extended.regulon_target_info.Rds", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/joint_cortex_extended/joint_cortex_extended.regulon_target_info.Rds", + "description": "Rds file containing data specific for the first tab, where the table is generated from this data file and used for plotting the cytoscape network to see correlations of different tfs with different/same genes related, note that the tf contai", + "contents": "Rds data specific each transcription factor and its corresponding genes and activity data, weight, highconfAnnotation data, motifs." + + }, + { + + "file": "joint_cortex_extended.regulon_activity_per_cluster.joint_extended.feather", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/joint_cortex_extended/joint_cortex_extended.regulon_activity_per_cluster.joint_extended.feather", + "description": "A feather file of tf activity with respect to each cluster in the joint space", + "contents": "A dataframe, the first column is cluster, subsequent columns correspond to active TF (TF_active) the values describe the NES(activity score of TF in each cluster)," + + }, + { + + "file": "joint_cortex_extended.regulon_activity_per_cluster.per_sample.feather", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/joint_cortex_extended/joint_cortex_extended.regulon_activity_per_cluster.per_sample.feather", + "description": "A feather file of tf activity with respect to each cluster in the per sample space ", + "contents": "A dataframe, the first column is cluster, subsequent columns correspond to active TF (TF_active) the values describe the NES(activity score of TF in each cluster)," + + }, + { + + "file": "joint_cortex_extended.regulon_activity_per_cell.feather", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/joint_cortex_extended/joint_cortex_extended.regulon_activity_per_cell.feather", + "description": "A feather file of tf activity with respect to each cell that is used for reading by a certain column to optimize speed, used for plotting tab2(clustering and heatmap) ", + "contents": "A dataframe, the first column is cluster, subsequent columns correspond to active TF (TF_active) the values describe the NES(activity score of TF in each cluster)," + + }, + { + "file": "joint_cortex_extended.active_regulons.Rds", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/joint_cortex_extended/joint_cortex_extended.active_regulons.Rds", + "description": "Rds file that is read as tibble containing all tf names with suffix(extended and weight) in the dataset of the second/third tab, note that the tfs are not the same as the first tab data. This vector contains fewer tf than the data in the first tab", + "contents": "A character vector(read as tibble later) containing all tf names with suffix(extended and weight) in the dataset of the second/third tab." + + }, + { + "file": "joint_cortex_extended.active_specific_tf.Rds", + "path": "howard.li/from_hydra/active_and_specific/data/joint_cortex_extended.active_specific_tf.Rds", + "description": "data calculating the activity and specificity of each TF in each cluster in the sample, used to plot plots in the active and specific tab of the app", + "contents": "A list containing: a matrix with clusters as observations and AUC of tfs as variables, a matrix with clusters as observations and fold change of the average AUC of a tf in a given cluster compared to all other clusters, a large list the same length as the number of clusters in the sample with each element as a tibble containing AUC, and FC for that cluster" + }, + { + "file": "dendrogram_order_joint_extended_forebrain.Rds", + "path": "howard.li/from_hydra/dendrograms/output/dendrogram_figures/dendrogram_order_joint_extended_forebrain.Rds", + "description": "vector of all clusters in the joint cortex extended dataset ordered in the order of the extended joint cortex dendrogram", + "contents": "A character vector of clusters" + } + ], +"joint_pons_extended": [ + { + "file": "pons_extended_prep.Rda", + "description": "Rda file containing datasets generated in data_prep.R, to be loaded at the beginning of app.R to optimize run-time speed and efficiency. ", + "contents": "Several R objects generated in the script for visualising the joint pons extended dataset in the app", + "script": "data_prep.R" + + }, + { + "file": "joint_pons_extended.metadata.tsv", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/joint_pons_extended/joint_pons_extended.metadata.tsv", + "description": "Cell-level information for extended pons dataset, including corresponding clusters and UMAP/tSNE/PCA coordinates, used to plot scatterplots", + "contents": "Data frame with columns, 'Cell' 'Sample' 'Sample_cluster', followed by columns for embedding coordinates." + + }, + { + + "file": "joint_pons_extended.regulon_target_info.Rds", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/joint_pons_extended/joint_pons_extended.regulon_target_info.Rds", + "description": "Rds file containing data specific for the first tab, where the table is generated from this data file and used for plotting the cytoscape network to see correlations of different tfs with different/same genes related, note that the tf contai", + "contents": "Rds data specific each transcription factor and its corresponding genes and activity data, weight, highconfAnnotation data, motifs." + + }, + { + + "file": "joint_pons_extended.regulon_activity_per_cluster.joint_extended.feather", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/joint_pons_extended/joint_pons_extended.regulon_activity_per_cluster.joint_extended.feather", + "description": "A feather file of tf activity with respect to each cluster in the joint space", + "contents": "A dataframe, the first column is cluster, subsequent columns correspond to active TF (TF_active) the values describe the NES(activity score of TF in each cluster)," + + }, + { + + "file": "joint_pons_extended.regulon_activity_per_cluster.per_sample.feather", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/joint_pons_extended/joint_pons_extended.regulon_activity_per_cluster.per_sample.feather", + "description": "A feather file of tf activity with respect to each cluster in the per sample space ", + "contents": "A dataframe, the first column is cluster, subsequent columns correspond to active TF (TF_active) the values describe the NES(activity score of TF in each cluster)," + + }, + { + + "file": "joint_pons_extended.regulon_activity_per_cell.feather", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/joint_pons_extended/joint_pons_extended.regulon_activity_per_cell.feather", + "description": "A feather file of tf activity with respect to each cell that is used for reading by a certain column to optimize speed, used for plotting tab2(clustering and heatmap) ", + "contents": "A dataframe, the first column is cluster, subsequent columns correspond to active TF (TF_active) the values describe the NES(activity score of TF in each cluster)," + + }, + { + "file": "joint_pons_extended.active_regulons.Rds", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/joint_pons_extended/joint_pons_extended.active_regulons.Rds", + "description": "Rds file that is read as tibble containing all tf names with suffix(extended and weight) in the dataset of the second/third tab, note that the tfs are not the same as the first tab data. This vector contains fewer tf than the data in the first tab", + "contents": "A character vector(read as tibble later) containing all tf names with suffix(extended and weight) in the dataset of the second/third tab." + + }, + { + "file": "joint_pons_extended.active_specific_tf.Rds", + "path": "howard.li/from_hydra/active_and_specific/data/joint_pons_extended.active_specific_tf.Rds", + "description": "data calculating the activity and specificity of each TF in each cluster in the sample, used to plot plots in the active and specific tab of the app", + "contents": "A list containing: a matrix with clusters as observations and AUC of tfs as variables, a matrix with clusters as observations and fold change of the average AUC of a tf in a given cluster compared to all other clusters, a large list the same length as the number of clusters in the sample with each element as a tibble containing AUC, and FC for that cluster" + }, + { + "file": "dendrogram_order_joint_extended_pons.Rds", + "path": "howard.li/from_hydra/dendrograms/output/dendrogram_figures/dendrogram_order_joint_extended_pons.Rds", + "description": "vector of all clusters in the joint cortex extended dataset ordered in the order of the extended joint cortex dendrogram", + "contents": "A character vector of clusters" + } + ], "joint_pons": [ { @@ -177,7 +338,56 @@ } ], - +"ct_e10": [ + { + "file": "ct_e10.metadata.tsv", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/ct_e10/ct_e10.metadata.tsv", + "description": "Per cell metadata for this timepoint with cluster assignments and embedding coordinates", + "contents": "Dataframe with cell metadata. - Has multiple cluster assignments" + + }, + { + "file": "ct_e10.active_regulons.Rds", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/ct_e10/ct_e10.active_regulons.Rds", + "description": "Active TFs in this sample", + "contents": "Character list with TF names" + + }, + { + "file": "ct_e10.regulon_target_info.Rds", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/ct_e10/ct_e10.regulon_target_info.Rds", + "description": "Active TFs in this sample and their gene target information: number of motifs, GENIE3 weight, best motif, motif logo URL", + "contents": "data frame" + + }, + { + "file": "ct_e10.regulon_activity_per_cell.feather", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/ct_e10/ct_e10.regulon_activity_per_cell.feather", + "description": "Activity of each TF in each cell in this sample", + "contents": "A feather file containing a data frame" + + }, + { + "file": "ct_e10.regulon_activity_per_cluster.feather", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/ct_e10/ct_e10.regulon_activity_per_cluster.feather", + "description": "Activity of each TF in each cluster in this sample", + "contents": "A feather file containing a data frame" + + }, + { + "file": "ct_e10_prep.Rda", + "description": "Colour palettes and cluster annotations used for heatmaps, GRN, info table, dr-plots", + "contents": "R list object containing 3 tibbles and one vector; see details in data_prep.R", + "script": "data_prep.R" + + }, + { + "file": "ct_e10.active_specific_tf.Rds", + "path": "howard.li/from_hydra/active_and_specific/data/ct_e10.active_specific_tf.Rds", + "description": "data calculating the activity and specificity of each TF in each cluster in the sample, used to plot plots in the active and specific tab of the app", + "contents": "A list containing: a matrix with clusters as observations and AUC of tfs as variables, a matrix with clusters as observations and fold change of the average AUC of a tf in a given cluster compared to all other clusters, a large list the same length as the number of clusters in the sample with each element as a tibble containing AUC, and FC for that cluster" + } + ], "ct_e12": [ { "file": "ct_e12.metadata.tsv", @@ -228,6 +438,56 @@ "contents": "A list containing: a matrix with clusters as observations and AUC of tfs as variables, a matrix with clusters as observations and fold change of the average AUC of a tf in a given cluster compared to all other clusters, a large list the same length as the number of clusters in the sample with each element as a tibble containing AUC, and FC for that cluster" } ], +"ct_e13": [ + { + "file": "ct_e13.metadata.tsv", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/ct_e13/ct_e13.metadata.tsv", + "description": "Per cell metadata for this timepoint with cluster assignments and embedding coordinates", + "contents": "Dataframe with cell metadata. - Has multiple cluster assignments" + + }, + { + "file": "ct_e13.active_regulons.Rds", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/ct_e13/ct_e13.active_regulons.Rds", + "description": "Active TFs in this sample", + "contents": "Character list with TF names" + + }, + { + "file": "ct_e13.regulon_target_info.Rds", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/ct_e13/ct_e13.regulon_target_info.Rds", + "description": "Active TFs in this sample and their gene target information: number of motifs, GENIE3 weight, best motif, motif logo URL", + "contents": "data frame" + + }, + { + "file": "ct_e13.regulon_activity_per_cell.feather", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/ct_e13/ct_e13.regulon_activity_per_cell.feather", + "description": "Activity of each TF in each cell in this sample", + "contents": "A feather file containing a data frame" + + }, + { + "file": "ct_e13.regulon_activity_per_cluster.feather", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/ct_e13/ct_e13.regulon_activity_per_cluster.feather", + "description": "Activity of each TF in each cluster in this sample", + "contents": "A feather file containing a data frame" + + }, + { + "file": "ct_e13_prep.Rda", + "description": "Colour palettes and cluster annotations used for heatmaps, GRN, info table, dr-plots", + "contents": "R list object containing 3 tibbles and one vector; see details in data_prep.R", + "script": "data_prep.R" + + }, + { + "file": "ct_e13.active_specific_tf.Rds", + "path": "howard.li/from_hydra/active_and_specific/data/ct_e13.active_specific_tf.Rds", + "description": "data calculating the activity and specificity of each TF in each cluster in the sample, used to plot plots in the active and specific tab of the app", + "contents": "A list containing: a matrix with clusters as observations and AUC of tfs as variables, a matrix with clusters as observations and fold change of the average AUC of a tf in a given cluster compared to all other clusters, a large list the same length as the number of clusters in the sample with each element as a tibble containing AUC, and FC for that cluster" + } + ], "ct_e15": [ { "file": "ct_e15.metadata.tsv", @@ -278,6 +538,106 @@ "contents": "A list containing: a matrix with clusters as observations and AUC of tfs as variables, a matrix with clusters as observations and fold change of the average AUC of a tf in a given cluster compared to all other clusters, a large list the same length as the number of clusters in the sample with each element as a tibble containing AUC, and FC for that cluster" } ], +"ct_e16": [ + { + "file": "ct_e16.metadata.tsv", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/ct_e16/ct_e16.metadata.tsv", + "description": "Per cell metadata for this timepoint with cluster assignments and embedding coordinates", + "contents": "Dataframe with cell metadata. - Has multiple cluster assignments" + + }, + { + "file": "ct_e16.active_regulons.Rds", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/ct_e16/ct_e16.active_regulons.Rds", + "description": "Active TFs in this sample", + "contents": "Character list with TF names" + + }, + { + "file": "ct_e16.regulon_target_info.Rds", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/ct_e16/ct_e16.regulon_target_info.Rds", + "description": "Active TFs in this sample and their gene target information: number of motifs, GENIE3 weight, best motif, motif logo URL", + "contents": "data frame" + + }, + { + "file": "ct_e16.regulon_activity_per_cell.feather", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/ct_e16/ct_e16.regulon_activity_per_cell.feather", + "description": "Activity of each TF in each cell in this sample", + "contents": "A feather file containing a data frame" + + }, + { + "file": "ct_e16.regulon_activity_per_cluster.feather", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/ct_e16/ct_e16.regulon_activity_per_cluster.feather", + "description": "Activity of each TF in each cluster in this sample", + "contents": "A feather file containing a data frame" + + }, + { + "file": "ct_e16_prep.Rda", + "description": "Colour palettes and cluster annotations used for heatmaps, GRN, info table, dr-plots", + "contents": "R list object containing 3 tibbles and one vector; see details in data_prep.R", + "script": "data_prep.R" + + }, + { + "file": "ct_e16.active_specific_tf.Rds", + "path": "howard.li/from_hydra/active_and_specific/data/ct_e16.active_specific_tf.Rds", + "description": "data calculating the activity and specificity of each TF in each cluster in the sample, used to plot plots in the active and specific tab of the app", + "contents": "A list containing: a matrix with clusters as observations and AUC of tfs as variables, a matrix with clusters as observations and fold change of the average AUC of a tf in a given cluster compared to all other clusters, a large list the same length as the number of clusters in the sample with each element as a tibble containing AUC, and FC for that cluster" + } + ], +"ct_e18": [ + { + "file": "ct_e18.metadata.tsv", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/ct_e18/ct_e18.metadata.tsv", + "description": "Per cell metadata for this timepoint with cluster assignments and embedding coordinates", + "contents": "Dataframe with cell metadata. - Has multiple cluster assignments" + + }, + { + "file": "ct_e18.active_regulons.Rds", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/ct_e18/ct_e18.active_regulons.Rds", + "description": "Active TFs in this sample", + "contents": "Character list with TF names" + + }, + { + "file": "ct_e18.regulon_target_info.Rds", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/ct_e18/ct_e18.regulon_target_info.Rds", + "description": "Active TFs in this sample and their gene target information: number of motifs, GENIE3 weight, best motif, motif logo URL", + "contents": "data frame" + + }, + { + "file": "ct_e18.regulon_activity_per_cell.feather", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/ct_e18/ct_e18.regulon_activity_per_cell.feather", + "description": "Activity of each TF in each cell in this sample", + "contents": "A feather file containing a data frame" + + }, + { + "file": "ct_e18.regulon_activity_per_cluster.feather", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/ct_e18/ct_e18.regulon_activity_per_cluster.feather", + "description": "Activity of each TF in each cluster in this sample", + "contents": "A feather file containing a data frame" + + }, + { + "file": "ct_e18_prep.Rda", + "description": "Colour palettes and cluster annotations used for heatmaps, GRN, info table, dr-plots", + "contents": "R list object containing 3 tibbles and one vector; see details in data_prep.R", + "script": "data_prep.R" + + }, + { + "file": "ct_e18.active_specific_tf.Rds", + "path": "howard.li/from_hydra/active_and_specific/data/ct_e18.active_specific_tf.Rds", + "description": "data calculating the activity and specificity of each TF in each cluster in the sample, used to plot plots in the active and specific tab of the app", + "contents": "A list containing: a matrix with clusters as observations and AUC of tfs as variables, a matrix with clusters as observations and fold change of the average AUC of a tf in a given cluster compared to all other clusters, a large list the same length as the number of clusters in the sample with each element as a tibble containing AUC, and FC for that cluster" + } + ], "ct_p0": [ { "file": "ct_p0.metadata.tsv", @@ -428,6 +788,56 @@ "contents": "A list containing: a matrix with clusters as observations and AUC of tfs as variables, a matrix with clusters as observations and fold change of the average AUC of a tf in a given cluster compared to all other clusters, a large list the same length as the number of clusters in the sample with each element as a tibble containing AUC, and FC for that cluster" } ], +"po_e10": [ + { + "file": "po_e10.metadata.tsv", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/po_e10/po_e10.metadata.tsv", + "description": "Per cell metadata for this timepoint with cluster assignments and embedding coordinates", + "contents": "Dataframe with cell metadata. - Has multiple cluster assignments" + + }, + { + "file": "po_e10.active_regulons.Rds", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/po_e10/po_e10.active_regulons.Rds", + "description": "Active TFs in this sample", + "contents": "Character list with TF names" + + }, + { + "file": "po_e10.regulon_target_info.Rds", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/po_e10/po_e10.regulon_target_info.Rds", + "description": "Active TFs in this sample and their gene target information: number of motifs, GENIE3 weight, best motif, motif logo URL", + "contents": "data frame" + + }, + { + "file": "po_e10.regulon_activity_per_cell.feather", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/po_e10/po_e10.regulon_activity_per_cell.feather", + "description": "Activity of each TF in each cell in this sample", + "contents": "A feather file containing a data frame" + + }, + { + "file": "po_e10.regulon_activity_per_cluster.feather", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/po_e10/po_e10.regulon_activity_per_cluster.feather", + "description": "Activity of each TF in each cluster in this sample", + "contents": "A feather file containing a data frame" + + }, + { + "file": "po_e10_prep.Rda", + "description": "Colour palettes and cluster annotations used for heatmaps, GRN, info table, dr-plots", + "contents": "R list object containing 3 tibbles and one vector; see details in data_prep.R", + "script": "data_prep.R" + + }, + { + "file": "po_e10.active_specific_tf.Rds", + "path": "howard.li/from_hydra/active_and_specific/data/po_e10.active_specific_tf.Rds", + "description": "data calculating the activity and specificity of each TF in each cluster in the sample, used to plot plots in the active and specific tab of the app", + "contents": "A list containing: a matrix with clusters as observations and AUC of tfs as variables, a matrix with clusters as observations and fold change of the average AUC of a tf in a given cluster compared to all other clusters, a large list the same length as the number of clusters in the sample with each element as a tibble containing AUC, and FC for that cluster" + } + ], "po_e12": [ { "file": "po_e12.metadata.tsv", @@ -478,6 +888,56 @@ "contents": "A list containing: a matrix with clusters as observations and AUC of tfs as variables, a matrix with clusters as observations and fold change of the average AUC of a tf in a given cluster compared to all other clusters, a large list the same length as the number of clusters in the sample with each element as a tibble containing AUC, and FC for that cluster" } ], +"po_e13": [ + { + "file": "po_e13.metadata.tsv", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/po_e13/po_e13.metadata.tsv", + "description": "Per cell metadata for this timepoint with cluster assignments and embedding coordinates", + "contents": "Dataframe with cell metadata. - Has multiple cluster assignments" + + }, + { + "file": "po_e13.active_regulons.Rds", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/po_e13/po_e13.active_regulons.Rds", + "description": "Active TFs in this sample", + "contents": "Character list with TF names" + + }, + { + "file": "po_e13.regulon_target_info.Rds", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/po_e13/po_e13.regulon_target_info.Rds", + "description": "Active TFs in this sample and their gene target information: number of motifs, GENIE3 weight, best motif, motif logo URL", + "contents": "data frame" + + }, + { + "file": "po_e13.regulon_activity_per_cell.feather", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/po_e13/po_e13.regulon_activity_per_cell.feather", + "description": "Activity of each TF in each cell in this sample", + "contents": "A feather file containing a data frame" + + }, + { + "file": "po_e13.regulon_activity_per_cluster.feather", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/po_e13/po_e13.regulon_activity_per_cluster.feather", + "description": "Activity of each TF in each cluster in this sample", + "contents": "A feather file containing a data frame" + + }, + { + "file": "po_e13_prep.Rda", + "description": "Colour palettes and cluster annotations used for heatmaps, GRN, info table, dr-plots", + "contents": "R list object containing 3 tibbles and one vector; see details in data_prep.R", + "script": "data_prep.R" + + }, + { + "file": "po_e13.active_specific_tf.Rds", + "path": "howard.li/from_hydra/active_and_specific/data/po_e13.active_specific_tf.Rds", + "description": "data calculating the activity and specificity of each TF in each cluster in the sample, used to plot plots in the active and specific tab of the app", + "contents": "A list containing: a matrix with clusters as observations and AUC of tfs as variables, a matrix with clusters as observations and fold change of the average AUC of a tf in a given cluster compared to all other clusters, a large list the same length as the number of clusters in the sample with each element as a tibble containing AUC, and FC for that cluster" + } + ], "po_e15": [ { "file": "po_e15.metadata.tsv", @@ -528,6 +988,106 @@ "contents": "A list containing: a matrix with clusters as observations and AUC of tfs as variables, a matrix with clusters as observations and fold change of the average AUC of a tf in a given cluster compared to all other clusters, a large list the same length as the number of clusters in the sample with each element as a tibble containing AUC, and FC for that cluster" } ], +"po_e16": [ + { + "file": "po_e16.metadata.tsv", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/po_e16/po_e16.metadata.tsv", + "description": "Per cell metadata for this timepoint with cluster assignments and embedding coordinates", + "contents": "Dataframe with cell metadata. - Has multiple cluster assignments" + + }, + { + "file": "po_e16.active_regulons.Rds", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/po_e16/po_e16.active_regulons.Rds", + "description": "Active TFs in this sample", + "contents": "Character list with TF names" + + }, + { + "file": "po_e16.regulon_target_info.Rds", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/po_e16/po_e16.regulon_target_info.Rds", + "description": "Active TFs in this sample and their gene target information: number of motifs, GENIE3 weight, best motif, motif logo URL", + "contents": "data frame" + + }, + { + "file": "po_e16.regulon_activity_per_cell.feather", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/po_e16/po_e16.regulon_activity_per_cell.feather", + "description": "Activity of each TF in each cell in this sample", + "contents": "A feather file containing a data frame" + + }, + { + "file": "po_e16.regulon_activity_per_cluster.feather", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/po_e16/po_e16.regulon_activity_per_cluster.feather", + "description": "Activity of each TF in each cluster in this sample", + "contents": "A feather file containing a data frame" + + }, + { + "file": "po_e16_prep.Rda", + "description": "Colour palettes and cluster annotations used for heatmaps, GRN, info table, dr-plots", + "contents": "R list object containing 3 tibbles and one vector; see details in data_prep.R", + "script": "data_prep.R" + + }, + { + "file": "po_e16.active_specific_tf.Rds", + "path": "howard.li/from_hydra/active_and_specific/data/po_e16.active_specific_tf.Rds", + "description": "data calculating the activity and specificity of each TF in each cluster in the sample, used to plot plots in the active and specific tab of the app", + "contents": "A list containing: a matrix with clusters as observations and AUC of tfs as variables, a matrix with clusters as observations and fold change of the average AUC of a tf in a given cluster compared to all other clusters, a large list the same length as the number of clusters in the sample with each element as a tibble containing AUC, and FC for that cluster" + } + ], +"po_e18": [ + { + "file": "po_e18.metadata.tsv", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/po_e18/po_e18.metadata.tsv", + "description": "Per cell metadata for this timepoint with cluster assignments and embedding coordinates", + "contents": "Dataframe with cell metadata. - Has multiple cluster assignments" + + }, + { + "file": "po_e18.active_regulons.Rds", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/po_e18/po_e18.active_regulons.Rds", + "description": "Active TFs in this sample", + "contents": "Character list with TF names" + + }, + { + "file": "po_e18.regulon_target_info.Rds", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/po_e18/po_e18.regulon_target_info.Rds", + "description": "Active TFs in this sample and their gene target information: number of motifs, GENIE3 weight, best motif, motif logo URL", + "contents": "data frame" + + }, + { + "file": "po_e18.regulon_activity_per_cell.feather", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/po_e18/po_e18.regulon_activity_per_cell.feather", + "description": "Activity of each TF in each cell in this sample", + "contents": "A feather file containing a data frame" + + }, + { + "file": "po_e18.regulon_activity_per_cluster.feather", + "path": "selin.jessa/from_hydra/single_cell/scDev_data/data/po_e18/po_e18regulon_activity_per_cluster.feather", + "description": "Activity of each TF in each cluster in this sample", + "contents": "A feather file containing a data frame" + + }, + { + "file": "po_e18_prep.Rda", + "description": "Colour palettes and cluster annotations used for heatmaps, GRN, info table, dr-plots", + "contents": "R list object containing 3 tibbles and one vector; see details in data_prep.R", + "script": "data_prep.R" + + }, + { + "file": "po_e18.active_specific_tf.Rds", + "path": "howard.li/from_hydra/active_and_specific/data/po_e18.active_specific_tf.Rds", + "description": "data calculating the activity and specificity of each TF in each cluster in the sample, used to plot plots in the active and specific tab of the app", + "contents": "A list containing: a matrix with clusters as observations and AUC of tfs as variables, a matrix with clusters as observations and fold change of the average AUC of a tf in a given cluster compared to all other clusters, a large list the same length as the number of clusters in the sample with each element as a tibble containing AUC, and FC for that cluster" + } + ], "po_p0": [ { "file": "po_p0.metadata.tsv", diff --git a/GRN/data/data_prep.R b/GRN/data/data_prep.R index b4be2c7..969b38c 100644 --- a/GRN/data/data_prep.R +++ b/GRN/data/data_prep.R @@ -12,10 +12,20 @@ source("../functions.R") # make color palette metadata <- read_tsv("shared/metadata_20190716.tsv") +metadata_extended <- read_tsv("shared/metadata_20210710_with_qc.tsv") + +metadata_per_sample <- read_tsv("shared/metadata_20201028_with_qc.tsv") + +colour_palette_per_sample <- metadata_per_sample %>% select(Label, Colour) %>% deframe() +colour_palette_per_sample_space <- colour_palette_per_sample +names(colour_palette_per_sample_space) <- gsub("_", " ", names(colour_palette_per_sample)) + # color palette for heatmap -colour_palette_cluster <- metadata %>% + +colour_palette_cluster <- metadata_extended %>% + mutate(Label_with_exclude = gsub("_EXCLUDE", "", Label_with_exclude)) %>% # use gsub to change all contents in Cluster (cluster name format) - mutate(Cluster = gsub("_", " ", Cluster)) %>% + mutate(Cluster = gsub("_", " ", Label_with_exclude)) %>% # Get two columns select(Cluster, Colour) %>% # Convert to vector of colours, where the first column gives the names @@ -28,8 +38,8 @@ names(colour_palette_cluster_underscore) <- gsub(" ", "_", names(colour_palette_ all_tf_list <- scan("shared/Mus_musculus_TF_one_TF_per_line.txt", character()) # color palette for timeseries plot, tab3 -colour_palette <- metadata %>% - mutate(Cluster = gsub("_", " ", Cluster)) %>% +colour_palette <- metadata_extended %>% + mutate(Cluster = gsub("_", " ", Label_with_exclude)) %>% separate(Cluster, into = c("Prefix", "Cluster"), sep = " ") %>% # Get two columns select(Cluster, Colour) %>% @@ -47,8 +57,84 @@ hm_anno_new <- makePheatmapAnno(colour_palette, "Cluster") # this is used in: annotation_colors = hm_anno_new$side_colors, in both heatmaps (by cluster/cells) +# -----------------------joint_cortex_extended----------------------------------- +forebrain_data_extended <- read_tsv("joint_cortex_extended/joint_cortex_extended.metadata.tsv", + col_types = cols(.default = col_character(), + Joint_extended_PC_1 = col_double(), + Joint_extended_PC_2 = col_double(), + Joint_extended_tSNE_1 = col_double(), + Joint_extended_tSNE_2 = col_double(), + Joint_extended_UMAP_1 = col_double(), + Joint_extended_UMAP_2 = col_double())) %>% + transmute("Cell" = Cell_clean, "Sample" = Sample, "Sample_cluster" = ID_20210710_with_exclude, + "Joint_cluster_number" = Joint_extended_cluster, "Joint_cluster" = ID_20210710_joint_clustering, + "PC1" = Joint_extended_PC_1, "PC2" = Joint_extended_PC_2, + "tSNE_1" = Joint_extended_tSNE_1, "tSNE_2" = Joint_extended_tSNE_2, + "UMAP1" = Joint_extended_UMAP_1, "UMAP2" = Joint_extended_UMAP_2) + +TF_active_cortex_extended <- as_tibble(read_rds("joint_cortex_extended/joint_cortex_extended.active_regulons.Rds")) + +TF_target_gene_joint_cortex_extended <- as_tibble(read_rds( + "joint_cortex_extended/joint_cortex_extended.regulon_target_info.Rds")) %>% + select(-logo) + +unique_TF_cortex_extended <- unique(TF_target_gene_joint_cortex_extended[["TF"]]) + +TF_and_ext_cortex_extended <- identify_tf(TF_active_cortex_extended) + +timeseries_input_meta_cortex_extended <- create_metadata_timeseries(forebrain_data_extended, "cortex") + +data_cortex_extended <- list( + "cell_metadata" = forebrain_data_extended, + "TF_and_ext" = TF_and_ext_cortex_extended, + "TF_target_gene_info" = TF_target_gene_joint_cortex_extended, + "unique_active_TFs_bare" = unique_TF_cortex_extended, + "active_TFs" = TF_active_cortex_extended, + "timeseries_input_meta" = timeseries_input_meta_cortex_extended + +) -# ———————————————————————————————————Cortex data———————————————————————————————————————— +save(data_cortex_extended, file = "joint_cortex_extended/cortex_extended_prep.Rda") + +# -----------------------joint_pons_extended----------------------------------- +pons_data_extended <- read_tsv("joint_pons_extended/joint_pons_extended.metadata.tsv", + col_types = cols(.default = col_character(), + Joint_extended_PC_1 = col_double(), + Joint_extended_PC_2 = col_double(), + Joint_extended_tSNE_1 = col_double(), + Joint_extended_tSNE_2 = col_double(), + Joint_extended_UMAP_1 = col_double(), + Joint_extended_UMAP_2 = col_double())) %>% + transmute("Cell" = Cell_clean, "Sample" = Sample, "Sample_cluster" = ID_20210710_with_exclude, + "Joint_cluster_number" = Joint_extended_cluster, "Joint_cluster" = ID_20210710_joint_clustering, + "PC1" = Joint_extended_PC_1, "PC2" = Joint_extended_PC_2, + "tSNE_1" = Joint_extended_tSNE_1, "tSNE_2" = Joint_extended_tSNE_2, + "UMAP1" = Joint_extended_UMAP_1, "UMAP2" = Joint_extended_UMAP_2) + +TF_active_pons_extended <- as_tibble(read_rds("joint_pons_extended/joint_pons_extended.active_regulons.Rds")) + +TF_target_gene_joint_pons_extended <- as_tibble(read_rds( + "joint_pons_extended/joint_pons_extended.regulon_target_info.Rds")) %>% + select(-logo) + +unique_TF_pons_extended <- unique(TF_target_gene_joint_pons_extended[["TF"]]) + +TF_and_ext_pons_extended <- identify_tf(TF_active_pons_extended) + +timeseries_input_meta_pons_extended <- create_metadata_timeseries(pons_data_extended, "pons") + +data_pons_extended <- list( + "cell_metadata" = pons_data_extended, + "TF_and_ext" = TF_and_ext_pons_extended, + "TF_target_gene_info" = TF_target_gene_joint_pons_extended, + "unique_active_TFs_bare" = unique_TF_pons_extended, + "active_TFs" = TF_active_pons_extended, + "timeseries_input_meta" = timeseries_input_meta_pons_extended + +) +save(data_pons_extended, file = "joint_pons_extended/pons_extended_prep.Rda") + +# --------------------Cortex data--------------------- forebrain_data <- read_tsv("joint_cortex/Forebrain_join.2D.tsv") %>% # for UMAP cluster mutate(Sample_cluster = str_replace(Sample_cluster," ","_")) # clean some samples with space in between ... @@ -159,20 +245,23 @@ data_pons <- list( "cluster_palette" = pons_cluster_palette ) - +extended_mouse_joint_cluster_palette <- readRDS("shared/palette_ID_20210710_joint_clustering.Rds") master_palette <- c(hm_anno_new$side_colors$Cluster, # per-timepoint cluster with timepoint removed colour_palette_cluster, # per-timepoint cluster, with spaces colour_palette_cluster_underscore, # per-timepoint cluster, with underscores forebrain_cluster_palette, # joint clustering, forebrain - pons_cluster_palette) # joint clustering, pons + pons_cluster_palette, # joint clustering, pons + extended_mouse_joint_cluster_palette, + colour_palette_per_sample_space, + colour_palette_per_sample) master_palette <- list("Cluster" = master_palette) #---------------------time_point data---------------------------------------------- #use a loop for this for (reg in c("ct", "po")){ - for(tp in c("e12", "e15", "p0", "p3", "p6")){ + for(tp in c("e10", "e12", "e13", "e15", "e16", "e18", "p0", "p3", "p6")){ TF_target_gene_info <- as_tibble(read_rds(glue("{reg}_{tp}/{reg}_{tp}.regulon_target_info.Rds"))) %>% select(-logo) @@ -183,19 +272,19 @@ for (reg in c("ct", "po")){ cell_data <- read_tsv(glue("{reg}_{tp}/{reg}_{tp}.metadata.tsv")) - black_list_cells <- cell_data %>% select(Cell, ID_20190715_with_blacklist) %>% - filter(grepl("BLACKLISTED", ID_20190715_with_blacklist)) %>% select(Cell) %>% + black_list_cells <- cell_data %>% select(Cell, ID_20201028_with_exclude) %>% + filter(grepl("EXCLUDE", ID_20201028_with_exclude)) %>% select(Cell) %>% deframe() #print(black_list_cells) - cell_data <- cell_data %>% filter(!grepl("BLACKLISTED", ID_20190715_with_blacklist)) + cell_data <- cell_data %>% filter(!grepl("EXCLUDE", ID_20201028_with_exclude)) - + #can get rid of palette here and use master_palette in the DR plots awoo <- switch(reg, "ct" = "F-", "po" = "P-") - dr_palette <- metadata %>% - separate(Cluster, into = c("Timepoint", "Cluster"), sep = "_") %>% + dr_palette <- metadata_extended %>% + separate(Label, into = c("Timepoint", "Cluster"), sep = "_") %>% filter(Timepoint == glue("{awoo}{tp}")) %>% unite(col = "Cluster", c("Timepoint", "Cluster"), sep = "_") %>% select(Cluster, Colour) %>% diff --git a/GRN/functions.R b/GRN/functions.R index a04c2ec..ae0e210 100644 --- a/GRN/functions.R +++ b/GRN/functions.R @@ -41,169 +41,7 @@ addMotifPic <- function(subset_data){ #need to comment this and test to see if i return(subset_data) } -#------------------------------Bubble plot-------------------------------------- -#' Prepare input for bubble_plot -#' -#' Load gene expression data from feather, tidy & optionally scale expression, -#' and return the dataframe required as input for the bubble_plot() function -#' -#' @param gene Character vector, one or more genes of interest to plot -#' @param scale Logical, whether or not to linearly scale gene expression across -#' clusters to [0,1] to improve visualization. Default: TRUE -#' @param show_mean Logical, whether or not to display the mean expression of -#' given genes in a new bubble plot line. Default: FALSE -#' TODO: Use this to provide an option to download the underlying data. -#' -#' @examples -#' bubble_prep("Dlx1") -#' bubble_prep <- function(tf, -#' scale = TRUE, -#' show_mean = FALSE, -#' region) { -#' -#' # Load the mean expression of genes across clusters, given gene of interest -#' file_path <- glue("data/joint_{region}/joint_cortex.regulon_activity_per_cluster.feather") -#' exp <- read_feather(path = file_path, -#' columns = c("Cluster", tf)) #%>% -#' #dendogram_order from hydra file, commented out for now because no dendogram -#' #filter(Cluster %in% dendrogram_order) -#' -#' # Scale expression of each gene linearly across clusters to [0, 1] -#' if (scale) { -#' -#' exp <- exp %>% -#' as.data.frame() %>% -#' tibble::column_to_rownames(var = "Cluster") %>% -#' apply(2, scales::rescale, to = c(0, 1)) %>% -#' as.data.frame %>% -#' tibble::rownames_to_column(var = "Cluster") -#' -#' } -#' -#' # Convert to long / tidy format with columns: Cluster, Gene, Expression -#' exp <- exp %>% -#' gather(., "TF", "Activity", 2:ncol(.)) -#' -#' # Probably don't need this in the TF plot -#' # # Load the proportion of cells in each cluster in which each gene was detected, -#' # # and convert to long / tidy format with columns: Cluster, Gene, Pct1 -#' # pct1 <- read_feather("data/joint_mouse/pct1_per_ID_20190715_cluster.feather", -#' # columns = c("Cluster", gene)) %>% -#' # gather(., "Gene", "Pct1", 2:ncol(.)) -#' -#' # # Join with cluster metadata -#' # df <- left_join(exp, pct1, by = c("Cluster", "Gene")) %>% -#' # left_join(metadata, by = c("Cluster" = "Cluster_nounderscore")) -#' -#' # Tidy data for plotting -#' df <- df %>% -#' -#' # Order genes to match order input by user -#' mutate(TF = factor(TF, levels = rev(TF))) %>% -#' arrange(TF) %>% -#' -#' # Pad gene names so that the plot takes up a more standardized -#' # width; to roughly the the # of characters in the gene w/ longest name -#' # However, letters take up more pixels than spaces, so do less padding -#' # for genes with longer names -#' # TODO: Test the (commented) third line inside mutate() and adjust padding as required -#' mutate(TF_padded = case_when( -#' str_length(TF) <= 5 ~ str_pad(TF, 15, side = 'right', pad = " "), -#' between(str_length(TF), 5, 8) ~ str_pad(TF, 12, side = 'right', pad = " ") -#' #, str_length(Gene) > 8 ~ str_pad(Gene, 9, side = 'right', pad = " ") -#' ) -#' ) %>% -#' mutate(TF_padded = factor(TF_padded, levels = unique(.$TF_padded))) %>% -#' -#' # Order the clusters on the x-axis to match the dendrogram image -#' mutate(Cluster = factor(Cluster, levels = dendrogram_order)) %>% -#' -#' filter(!is.na(Cluster)) %>% -#' -#' # Convert NAs (undetected genes) to 0s -- this ensures all -#' # clusters have a value for all genes, so that all clusters are plot, -#' # even if the gene was undetected -#' replace_na(list(Expression = 0, Pct1 = 0)) %>% -#' -#' # Keep columns -#' select(Gene, Cluster, Sample, Cell_type, Cell_class, N_cells, Expression, Pct1, Sample, Colour, Gene_padded) -#' -#' # Create & append set of rows containing mean expression over all selected genes -#' if(show_mean) { -#' -#' # Create mean expression rows, preserving information for tooltip -#' mean_exp <- df %>% -#' group_by(Cluster, Sample, Cell_type, N_cells, Cell_class, Colour) %>% -#' summarize(#Gene = "MEAN", -#' #Cluster = Cluster, -#' #Sample = Sample, -#' #Cell_type = Cell_type, -#' #Cell_class = Cell_class, -#' #N_cells = N_cells, -#' Expression = mean(Expression) -#' #Pct1 = mean(Pct1), -#' #Colour = Colour, -#' #Gene_padded = "MEAN" -#' ) %>% -#' # Remove the Pct1 value from the mean expression -#' # and label the mean expression -#' mutate(Pct1 = 1, Gene = "MEAN", Gene_padded = "MEAN") -#' -#' # Add the rows containing mean expression to the original dataframe, -#' # removing duplicate rows and ordering them once more by user input, -#' # except the mean which is placed at the bottom -#' gene_order_padded <- levels(df$Gene_padded) -#' df <- bind_rows(df, mean_exp) %>% -#' distinct(.) %>% -#' mutate(Gene_padded = factor(Gene_padded, levels = c("MEAN", gene_order_padded))) -#' -#' } -#' -#' return(df) -#' -#' } -#' -#' -#' #' Bubbleplot of gene expression -#' #' -#' #' Generate a bubble plot for genes of interest across clusters in the mouse -#' #' dendrogram, where bubble colour encodes the mean expression in each cluster -#' #' and bubble size encodes the proportion of cells where each gene is detected -#' #' -#' #' @param df Data frame as returned by bubble_prep(), with require columns Cluster, -#' #' Gene_padded, Pct1, and Expression -#' #' -#' #' @return ggplot2 object -#' #' -#' #' @examples -#' #' bubble_prep("Dlx1") %>% bubbleplot() -#' #' -#' #' @export -#' bubble_plot <- function(df, max_point_size) { -#' -#' # Generate plot -#' p1 <- df %>% -#' ggplot(aes(x = Cluster, y = Gene_padded)) + -#' geom_point(aes(size = Pct1, colour = Expression), alpha = 0.8) + -#' scale_size_area(max_size = max_point_size) + -#' scale_color_gradientn(colours = tail(rdbu, 70)) + -#' theme_min() + -#' ylab(NULL) + -#' theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.5, -#' colour = joint_mouse_palette, size = rel(0.7)), -#' panel.grid.major.x = element_line(colour = "grey90"), -#' panel.border = element_blank(), -#' axis.ticks.x = element_blank(), -#' axis.ticks.y = element_blank(), -#' # Do not show the legend because it is included in the static -#' # dendrogram image displayed above the bubbleplot -#' legend.position = "bottom") + -#' # Put gene labels on the right hand side to improve alignment -#' scale_y_discrete(position = "right") -#' -#' return(p1) -#' -#' } + #----------------------------ggNet visualisation--------------------------------------------- #function to create an igraph object #' @param tf the user input vector of transcription factors @@ -213,7 +51,7 @@ addMotifPic <- function(subset_data){ #need to comment this and test to see if i make_network <- function(tf, tf_target_gene_info, gene_list){ #add a step to select only the transcription factors that are in the list #create edgelist - edges <- tf_target_gene_info %>% select(TF, gene, nMotifs, Genie3Weight.weight) %>% + edges <- tf_target_gene_info %>% select(TF, gene, nMotifs, starts_with("Genie3Weight")) %>% #and filter it to only the transcription factors that are the input filter(TF %in% tf) #print(edges) @@ -265,79 +103,7 @@ plot_network <- function(net, labelNodes, tf){ } -# --------------------------OBSOLETE-cytoscape network visualization---------------------------------------------- -# function to create network - -#' Create rcytoscape network data -#' -#' Takes a vector input that contains user selected TFs and output a list of nodeData and edgeData -#' which will be used for createCytoscapeJsNetwork -#' A good to visualize correlations among multiple TFs -#' -#' @param tf one single tf name character -#' @param TF_target_gene TF_target_gene data, specific for cortex/pon -#' @param unique_TF unique_TF data, specific for cortex/pon -#' -#' @return a list of nodeData and edgeData that are required for generating a rcytoscapejs network object -#' -#' @examples -#' TF <- c("Arx","Lef1") -#' # Note that TF_target_gene and unique_TF will be saved in data_cortex list, by data_prep.R -#' nodeData <- create_network(TF, TF_target_gene_pon, unique_TF)$nodes -#' edgeData <- create_network(TF, TF_target_gene_pon, unique_TF)$edges -#' network <- createCytoscapeJsNetwork(nodeData, edgeData) -#' rcytoscapejs2(network$nodes, network$edges) -#' -# create_network <- function(tf, TF_target_gene, unique_TF, pathway_genes = c(), -# shrink_gray = FALSE){ -# TF_interest <- filter(TF_target_gene, TF %in% tf)[["TF"]] -# gene_target <- filter(TF_target_gene, TF %in% tf)[["gene"]] -# -# source <- TF_interest -# target <- gene_target -# -# id <- c(TF_interest, gene_target) -# name <- id -# nodeData <- data.frame(id,name, stringsAsFactors = FALSE) -# edgeData <- data.frame(source, target, stringsAsFactors = FALSE) -# -# #unique_TF <- unique(TF_target_gene[["TF"]]) -# -# mutual_target <- edgeData %>% -# # a character vector that indicates the nodes that are target of multiple selected TFs -# count(target) %>% -# filter(n > 1 & !target %in% tf ) %>% -# .[[1]] -# -# nodeData <- nodeData %>% -# # you can customize the color using the case_when structure easily, -# # check the tfs in id column that exist in your vector, then you can control its size, -# # shape and color easily -# mutate(color = case_when(id %in% tf ~ "#9d4097", # orange -# # orange nodes are tfs that are active in this region -# id %in% pathway_genes ~ "green", -# id %in% unique_TF ~ "#D6604D", -# id %in% mutual_target ~ "#4fafc6", -# TRUE ~ "lightgrey")) %>% -# mutate(height = case_when(id %in% tf ~ "100", -# TRUE ~ "70")) %>% -# mutate(width = case_when(id %in% tf ~ "100", -# TRUE ~ "70")) -# -# if(shrink_gray){ -# nodeData <- nodeData %>% -# mutate(height = case_when(color %in% "lightgrey" ~ "40", -# TRUE ~ "70")) %>% -# mutate(width = case_when(color %in% "lightgrey" ~ "40", -# TRUE ~ "70")) -# -# } -# -# return(list(nodes = nodeData, -# edges = edgeData -# )) -# } # --------------------------------Helper functions---------------------------------------------------- #' Identify transcription factor data type #' @@ -510,8 +276,8 @@ create_activity_data <- function(tf, method, region, TF_and_ext, #building path of the feather object to read if the per sample toggle is on #method should be joint if per_sample is true - #print(per_sample) - #print("ahhh") + + # set up the path of the feather file to read dependingo on region and cluster or cell if(per_sample == TRUE){ reg <- switch(region, "cortex" = "ct", "pons" = "po") @@ -531,14 +297,17 @@ create_activity_data <- function(tf, method, region, TF_and_ext, else{ if(!region %in% c("cortex", "pons")) return("Wrong usage: region should be either cortex/pons") if(method == "joint"){ - method2 <- "joint_cluster" + path <- glue('data/joint_{region}_extended/joint_{region}_extended.regulon_activity_per_cluster.joint_extended.feather') + } + else if (method == "Cluster"){ + path <- glue('data/joint_{region}_extended/joint_{region}_extended.regulon_activity_per_cluster.per_sample.feather') } else{ - method2 <- str_to_lower(method) + path <- glue('data/joint_{region}_extended/joint_{region}_extended.regulon_activity_per_cell.feather') } # set up the path of the feather file to read dependingo on region and cluster or cell - path <- glue('data/joint_{region}/joint_{region}.regulon_activity_per_{method2}.feather') + #path <- glue('data/joint_{region}/joint_{region}.regulon_activity_per_{method2}.feather') } # case-insensitive checking and reading in the first column which corresponds to cell or cluster label #why even do this if method2 object has all lowercase already? @@ -546,7 +315,8 @@ create_activity_data <- function(tf, method, region, TF_and_ext, cell_col <- read_feather(path, "Cell") } else if(str_detect(method,"(?i)Cluster")){ - cell_col <- read_feather(path,"Cluster") + cell_col <- read_feather(path,"ID_20210710") + colnames(cell_col) <- "Cluster" } else if(str_detect(method,"(?i)joint")){ if(per_sample){ @@ -556,7 +326,8 @@ create_activity_data <- function(tf, method, region, TF_and_ext, method <- "Cluster" } else{ - cell_col <- read_feather(path, "Joint_cluster") + cell_col <- read_feather(path, "ID_20210710_joint_clustering") + colnames(cell_col) <- "Joint_cluster" method <- "Joint_cluster" } } @@ -598,9 +369,9 @@ create_activity_data <- function(tf, method, region, TF_and_ext, if(identical(tp, "F-All") || identical(tp, "P-All")){ } else{ - activity <- separate(activity, Cluster, into = c("Timepoint", "Cluster"), sep = " ") + activity <- separate(activity, Cluster, into = c("Timepoint", "Cluster"), sep = "_") activity <- filter(activity, Timepoint == tp) - activity <- unite(activity, Cluster, Timepoint, Cluster, sep = " ") + activity <- unite(activity, Cluster, Timepoint, Cluster, sep = "_") } } else if(identical(method, "Cell") & per_sample){ #gets rid of blacklisted cells in the per sample data @@ -660,47 +431,24 @@ plot_heatmap <- function(tf, method, region, TF_and_ext, #brain_data, cell_plot_ if(!region %in% c("cortex", "pons")) return("Wrong usage: region should be either cortex/pons") if(!method %in% c("Cell","Cluster", "joint")) return("Wrong usage, method should be Cell/Cluster") - # if(method == "Cell"){ - # # 1. create the activity data for plotting - # act_cell <- create_activity_data(tf, "Cell",region, TF_and_ext) %>% - # mutate(Cluster = gsub("_"," ",brain_data[["Sample_cluster"]])) %>% - # filter(!grepl("BLACKLIST", Cluster)) %>% # filter out bad samples - # sample_n(cell_plot_num) %>% # randomly sample it - # tibble::column_to_rownames(var = "Cell") # make that column name as row name ... - # - # anno_row_cell <- select(act_cell, Cluster) - # # change the anno_row, since we change the color palettes - # new_anno_row_cell <- anno_row_cell %>% - # mutate(Cluster = gsub(pattern = ".* ", replacement = "", Cluster)) - # rownames(new_anno_row_cell) <- rownames(anno_row_cell) # re-assign the rownames - # - # act <- select(act_cell, -Cluster) # must remove Cluster data before plotting - # - # # customized for plotting by cell - # anno_col <- new_anno_row_cell # assign to the same variable for plotting - # cell_width_plot <- 2 - # show_colname_plot <- FALSE - # } + if(method == "Cluster"){ - act <- create_activity_data(tf, "Cluster",region, TF_and_ext, timepoint) - #sample_n(cluster_plot_num) %>% # randomly sample it + act <- create_activity_data(tf, "Cluster",region, TF_and_ext, timepoint) + #str(act) act <- column_to_rownames(act, var = "Cluster") # make that column name as row name ... + #print(act) + # change the anno_row, since we change the color palettes - new_anno_row <- hm_anno$anno_row %>% - mutate(Cluster = gsub(pattern = ".* ", replacement = "", Cluster)) - rownames(new_anno_row) <- rownames(hm_anno$anno_row) # re-assign the rownames + new_anno_row <- hm_anno$anno_row #%>% + #mutate(Cluster = gsub(pattern = ".* ", replacement = "", Cluster)) + rownames(new_anno_row) <- gsub(" ", "_", rownames(hm_anno$anno_row)) # re-assign the rownames # note that the rownames correspond to the col names of the matrix t(act_cluster) # customized for plotting by cluster + # print(new_anno_row) anno_col <- new_anno_row # this is loaded by data_prep.R #print(anno_col) - cell_width_plot <- 20 - cell_height_plot <- 20 - if (identical(timepoint, "F-All") || identical(timepoint, "P-All")){ - cell_width_plot <- 7 - cell_height_plot <- 10 - } show_colname_plot <- TRUE title <- glue('Transcription Factor Regulon Activity at Developmental Time: {timepoint}') } @@ -710,52 +458,42 @@ plot_heatmap <- function(tf, method, region, TF_and_ext, #brain_data, cell_plot_ timepoint = timepoint) #%>% #filter(!grepl("BLACKLISTED", Cluster)) - print(act) + #print(act) if(per_sample == TRUE){ #filter out the exclude clusters act <- act %>% filter(!grepl("EXCLUDE", act$Cluster)) #print(act) col_to_row <- "Cluster" - new_anno_row <- hm_anno$anno_row %>% - mutate(Cluster = gsub(pattern = ".* ", replacement = "", Cluster)) - rownames(new_anno_row) <- gsub(" ", "_", rownames(hm_anno$anno_row)) - # print(new_anno_row) + new_anno_row <- act %>% mutate(rownames = Cluster) %>% + column_to_rownames("rownames") %>% select(Cluster) } else{ col_to_row <- "Joint_cluster" new_anno_row <- act %>% mutate(Cluster = Joint_cluster) %>% column_to_rownames("Joint_cluster") %>% select(Cluster) - #print(new_anno_row) - - #%>% - # column_to_rownames("Cluster") - #row.names(new_anno_row) <- new_anno_row$Cluster } act <- act %>% column_to_rownames(var = col_to_row) - - # change the anno_row, since we change the color palettes - # new_anno_row <- hm_anno$anno_row %>% - # mutate(Cluster = gsub(pattern = ".* ", replacement = "", Cluster)) - # rownames(new_anno_row) <- rownames(hm_anno$anno_row) # re-assign the rownames + # note that the rownames correspond to the col names of the matrix t(act_cluster) # customized for plotting by cluster anno_col <- new_anno_row # this is loaded by data_prep.R #print(anno_col) - cell_width_plot <- 20 - cell_height_plot <- 20 show_colname_plot <- TRUE title <- "Transcription Factor Regulon Activity per Cluster" } cluster_row <- FALSE - #do not do row clustering if there is only one TF selected + + #do not do row clustering if there is only one TF selected if(length(tf) > 1){ cluster_row <- TRUE } + + #print(anno_col) pheatmap::pheatmap(t(act), show_colnames = show_colname_plot, scale = "none", @@ -767,8 +505,8 @@ plot_heatmap <- function(tf, method, region, TF_and_ext, #brain_data, cell_plot_ # change the default color annotation annotation_colors = master_palette, # loaded by data_prep.R annotation_legend = FALSE, - cellwidth = cell_width_plot, - cellheight = cell_height_plot) + cellwidth = 20, + cellheight = 20) } #----------------------------Dimension reduction--------------------------------------------- @@ -804,6 +542,8 @@ plot_UMAP <- function(tf_number, cell_metadata, cell_activity_data, dim_red_type activity_tf <- cell_activity_data[,tf_plot][[1]] #extracts the TF activity from the cell_activity_data #and appends it to the cell_metadata to make cell meta with activity to plot + TF <- colnames(cell_activity_data)[tf_plot] + cell_meta_with_activity <- mutate(cell_metadata, activity_tf = activity_tf) x_axis <- switch(dim_red_type, "umap" = "UMAP1", "tsne" = "tSNE_1", "pca" = "PC1") @@ -812,13 +552,13 @@ plot_UMAP <- function(tf_number, cell_metadata, cell_activity_data, dim_red_type ggplot(data = cell_meta_with_activity, mapping = aes_string(x = x_axis, y = y_axis))+ geom_point(aes(color = activity_tf), alpha = 0.2)+ scale_color_gradient(low = "grey90", high = "red")+ - theme_min() + labs(color = 'TF Activity') + theme_min() + labs(color = 'TF Activity') + ggtitle(TF) } #if I want to include labeled clusters, then I need to map cells to the clusters #place a label at the mean of the umap coordinates for the cells that belong in that cluster -color_by_cluster <- function(cell_metadata, cluster_palette, dim_red_type, cluster_label, +color_by_cluster <- function(cell_metadata, dim_red_type, cluster_label, per_sample = FALSE){ x_axis <- switch(dim_red_type, "umap" = "UMAP1", "tsne" = "tSNE_1", "pca" = "PC1") @@ -828,7 +568,7 @@ color_by_cluster <- function(cell_metadata, cluster_palette, dim_red_type, clust var_group <- "Joint_cluster" if(per_sample){ - var_group <- "ID_20190715_with_blacklist" + var_group <- "ID_20201028_with_exclude" } # centers <- cell_metadata %>% # group_by(get(var_group)) %>% @@ -840,7 +580,7 @@ color_by_cluster <- function(cell_metadata, cluster_palette, dim_red_type, clust gg <- ggplot(data = cell_metadata, mapping = aes_string(x = x_axis,y = y_axis))+ geom_point(aes(color = get(var_group)), alpha = 0.2) + theme_min() + theme(legend.position="bottom") + - guides(fill=guide_legend(nrow=5, byrow=TRUE)) + scale_color_manual(values = cluster_palette) + + guides(fill=guide_legend(nrow=5, byrow=TRUE)) + scale_color_manual(values = master_palette$Cluster) + labs(color = 'Cluster Label') # print("step2") @@ -883,18 +623,27 @@ color_by_cluster <- function(cell_metadata, cluster_palette, dim_red_type, clust #' cell_metadata_cortex <- create_cell_metadata(cell_metadata_cortex) #' create_metadata_timeseries <- function(cell_metadata, part){ - if(part == "cortex") level <- c("Forebrain E12.5", + if(part == "cortex") level <- c("Forebrain E10.5", + "Forebrain E12.5", + "Forebrain E13.5", "Forebrain E15.5", + "Forebrain E16.5", + "Forebrain E18.5", "Forebrain P0", "Forebrain P3", "Forebrain P6") - else if (part == "pons") level <- c("Hindbrain E12.5", + else if (part == "pons") level <- c("Pons E10.5", + "Pons E12.5", + "Pons E13.5", "Pons E15.5", + "Pons E16.5", + "Pons E18.5", "Pons P0", "Pons P3", "Pons P6") else{(return("Wrong usage, input either cortex or pons"))} + #print(level) cell_metadata %>% select(Age = Sample, Cell, Cluster = Sample_cluster) %>% # In this case, we remove the "prefix" of the Cluster column, so that we are @@ -1090,13 +839,11 @@ plot_scatter <- function(data, fc, cluster){ plot_bar_list <- function(data, tf){ data <- data %>% mutate(Cluster = gsub("_", " ", Cluster)) - #print(data) - palette <- hm_anno$side_colors$Cluster[names(hm_anno$side_colors$Cluster) %in% data$Cluster] + + #print(data$Cluster) + palette <- master_palette$Cluster[names(master_palette$Cluster) %in% data$Cluster] #print(palette) - #print(length(data$Cluster)) - #print(length(palette)) - #(data) - #purrr::map(tf, ~print(.x) ) + # 1. loop over genes, then each index can be referred to with .x purrr::map(.x = tf, .f = ~data %>% select(.x, Cluster) %>% arrange(desc(.x)) %>% head(30) %>% @@ -1112,4 +859,105 @@ plot_bar_list <- function(data, tf){ } +#-------------Bubble-plot-------------------- +bubble_prep <- function(sample, tf, dend_order, scale){ + path <- glue("data/{sample}/{sample}.active_specific_tf.Rds") + data <- readRDS(path) + + AUC <- data$AUC_df %>% select(Cluster, tf) %>% + filter(Cluster %in% dend_order) + + # print(AUC) + + # Scale activity of each tf linearly across clusters to [0, 1] + if (scale) { + + AUC <- AUC %>% + as.data.frame() %>% + select(-Cluster) %>% + apply(2, scales::rescale, to = c(0, 1)) %>% + as.data.frame %>% + mutate(Cluster = rownames(AUC)) %>% + select(Cluster, everything()) + + } + # Convert to long / tidy format with columns: Cluster, TF, AUC + AUC <- AUC %>% + gather(., "TF", "AUC", 2:ncol(.)) + + #print(AUC) + + FC <- data$FC_df %>% select(Cluster, tf) %>% + filter(Cluster %in% dend_order) %>% + gather(., "TF", "FC", 2:ncol(.)) + + #print(AUC) + + # print(FC) + + df <- left_join(AUC, FC, by = c("Cluster", "TF")) + #print(df) + + # Tidy data for plotting + df <- df %>% + + # Order genes to match order input by user + mutate(TF = factor(TF, levels = rev(tf))) %>% + arrange(TF) %>% + + # Pad gene names so that the plot takes up a more standardized + # width; to roughly the the # of characters in the gene w/ longest name + # However, letters take up more pixels than spaces, so do less padding + # for genes with longer names + # TODO: Fix alignment of bubble plot w/ dendrogram for long gene names (issue #7) + mutate(TF_padded = case_when( + str_length(TF) <= 5 ~ str_pad(TF, 15, side = 'right', pad = " "), + str_length(TF) > 5 ~ str_pad(TF, 12, side = 'right', pad = " ") + ) + ) %>% + mutate(TF_padded = factor(TF_padded, levels = unique(.$TF_padded))) %>% + + # Order the clusters on the x-axis to match the dendrogram image + slice(match(dend_order_joint_cortex_extended, Cluster)) %>% + + # Keep columns + select(TF, Cluster, AUC, FC, TF_padded) + + label_palette <- hm_anno$side_colors$Cluster + names(label_palette) <- gsub(" ", "_", names(hm_anno$side_colors$Cluster)) + label_palette <- label_palette[dend_order] + + return(list("data" = df, "label_palette" = label_palette)) +} + +plot_bubble <- function(data, label_palette){ + p1 <- data %>% + ggplot(aes(x = Cluster, y = TF_padded)) + + geom_point(aes(size = FC, colour = AUC), alpha = 0.8) + + scale_size_area(max_size = 4) + + scale_color_gradientn(colours = tail(rdbu, 70)) + + theme_min() + + ylab(NULL) + + theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.5, + colour = label_palette, + size = rel(0.7)), + panel.grid.major.x = element_line(colour = "grey90"), + panel.border = element_blank(), + axis.ticks.x = element_blank(), + axis.ticks.y = element_blank(), + # Do not show the legend because it is included in the static + # dendrogram image displayed above the bubbleplot + legend.position = "bottom") + + # Put gene labels on the right hand side to improve alignment + scale_y_discrete(position = "right") + + gene_labels <- cowplot::get_y_axis(plot = p1, position = "right") + + p1 <- p1 + scale_y_discrete(labels = NULL) + + return(list(plot = p1, labels = gene_labels)) +} + + + diff --git a/GRN/global.R b/GRN/global.R index 113a161..117c1ff 100644 --- a/GRN/global.R +++ b/GRN/global.R @@ -24,35 +24,47 @@ library(purrr) library(shinyWidgets) # Data -load("data/joint_cortex/cortex_prep.Rda") # a list, data_cortex -load("data/joint_pons/pons_prep.Rda") # a list, data_pons +load("data/joint_cortex_extended/cortex_extended_prep.Rda") # a list, data_cortex_extended +load("data/joint_pons_extended/pons_extended_prep.Rda") # a list, data_pons_extended load("data/shared/common_prep.Rda") # metadata and colour_palettes +data_ct_e10 <- readRDS("data/ct_e10/ct_e10_prep.Rds") data_ct_e12 <- readRDS("data/ct_e12/ct_e12_prep.Rds") # a list, data_ct_e12 +data_ct_e13 <- readRDS("data/ct_e13/ct_e13_prep.Rds") data_ct_e15 <- readRDS("data/ct_e15/ct_e15_prep.Rds") +data_ct_e16 <- readRDS("data/ct_e16/ct_e16_prep.Rds") +data_ct_e18 <- readRDS("data/ct_e18/ct_e18_prep.Rds") data_ct_p0 <- readRDS("data/ct_p0/ct_p0_prep.Rds") data_ct_p3 <- readRDS("data/ct_p3/ct_p3_prep.Rds") data_ct_p6 <- readRDS("data/ct_p6/ct_p6_prep.Rds") -data_po_e12 <- readRDS("data/po_e12/po_e12_prep.Rds") +data_po_e10 <- readRDS("data/po_e10/po_e10_prep.Rds") +data_po_e12 <- readRDS("data/po_e12/po_e12_prep.Rds") +data_po_e13 <- readRDS("data/po_e13/po_e13_prep.Rds") data_po_e15 <- readRDS("data/po_e15/po_e15_prep.Rds") +data_po_e16 <- readRDS("data/po_e16/po_e16_prep.Rds") +data_po_e18 <- readRDS("data/po_e18/po_e18_prep.Rds") data_po_p0 <- readRDS("data/po_p0/po_p0_prep.Rds") data_po_p3 <- readRDS("data/po_p3/po_p3_prep.Rds") data_po_p6 <- readRDS("data/po_p6/po_p6_prep.Rds") -#load_plots +dend_order_joint_cortex_extended <- readRDS("data/joint_cortex_extended/dendrogram_order_joint_extended_forebrain.Rds") +dend_order_joint_pons_extended <- readRDS("data/joint_pons_extended/dendrogram_order_joint_extended_pons.Rds") + +#load ribbon_plots of proportion of cells across developmental time in pons and forebrain load("data/shared/timeseries_proportion_plots.Rda") # Custom functions source("functions.R") -#allows server side save states +#allows URL save states enableBookmarking(store = "url") #store variable accessible to all of app -dev_time_points <- c("e12", "e15", "p0", "p3", "p6") +dev_time_points <- c("e10", "e12", "e13", "e15", "e16", "e18", "p0", "p3", "p6") -#overwrite pheatmap function so that the heatmap labels can be 45 degrees +#overwrite pheatmap function that draws the column names on the heatmap +#so that the heatmap labels can be 45 degrees library(grid) draw_colnames_45 <- function (coln, gaps, ...) { @@ -64,3 +76,6 @@ draw_colnames_45 <- function (coln, gaps, ...) { ## 'Overwrite' default draw_colnames with your own version assignInNamespace(x="draw_colnames", value="draw_colnames_45", ns=asNamespace("pheatmap")) + +#palette for bubbles +rdbu <- rev(grDevices::colorRampPalette(RColorBrewer::brewer.pal(8, "RdBu"))(n = 100)) diff --git a/GRN/server.R b/GRN/server.R index 426bede..80844b5 100644 --- a/GRN/server.R +++ b/GRN/server.R @@ -12,14 +12,14 @@ server <- function(input, output, session) { if(input$region == "cortex"){ updateSelectizeInput(session, inputId = "TF", choices = all_tf_list, selected = c("Arx","Lef1"), server = TRUE) - updateSelectizeInput(session, inputId = "gene", choices = unique(data_cortex$TF_target_gene_info$gene), + updateSelectizeInput(session, inputId = "gene", choices = unique(data_cortex_extended$TF_target_gene_info$gene), selected = c("Dlx6","Sox6"), server = TRUE ) } else{ updateSelectizeInput(session, inputId = "TF", choices = all_tf_list, selected = c("Lhx5","Pax7"), server = TRUE) - updateSelectizeInput(session, inputId = "gene", choices = unique(data_pons$TF_target_gene_info$gene), + updateSelectizeInput(session, inputId = "gene", choices = unique(data_pons_extended$TF_target_gene_info$gene), selected = c("Gad2"), server = TRUE) } @@ -33,19 +33,21 @@ server <- function(input, output, session) { #data files (defined in data_prep.R) l <- list() if(input$region == "cortex"){ - l <- data_cortex + l <- data_cortex_extended temp <- paste("F-", input$time, sep = "") + l$dend_order <- dend_order_joint_cortex_extended } else if(input$region == "pons"){ - l <- data_pons + l <- data_pons_extended temp <- paste("P-", input$time, sep = "") + l$dend_order <- dend_order_joint_pons_extended } #str(input$TF) l$tf <- input$TF l$region <- input$region #l$input_pathway <- input$input_pathway l$method <- input$method - l$num_cell_plot <- input$num_cell_plot + #l$num_cell_plot <- input$num_cell_plot l$time_point <- temp l$gene <- input$gene l$label <- input$label @@ -195,8 +197,8 @@ server <- function(input, output, session) { selected = "joint") updateSelectInput(session, inputId = "time", label = "Time-point to Visualize", - choices = c("All", "e12", "e15", "p0", "p3", "p6"), - selected = "All") + choices = c("All", dev_time_points), + selected = "e12") output$hm_data <- renderText({ "" }) @@ -298,8 +300,54 @@ server <- function(input, output, session) { } }) + # observeEvent(input$tabs, { + # if (input$bb_toggle == TRUE & !identical(input$tabs, + # "bubble")){ + # removeUI( + # selector = "div:has(>> #bb_tp)" + # ) + # } + # else if (input$bb_toggle == TRUE & identical(input$tabs, + # "bubble")){ + # insertUI( + # selector = "#region", + # where = "afterEnd", + # ui = selectInput(inputId = "bb_tp", + # label = "Developmental Time-Point to Explore", + # choices = dev_time_points, + # multiple = FALSE, + # selected = "e12") + # ) + # } + # }) + # #insert timepoint selection when the toggle for sample data in the GRN tab is acted on + # observeEvent(input$bb_toggle,{ + # if(input$bb_toggle){ + # insertUI( + # selector = "#region", + # where = "afterEnd", + # ui = selectInput(inputId = "bb_tp", + # label = "Developmental Time-Point to Explore", + # choices = dev_time_points, + # multiple = FALSE, + # selected = "e12") + # ) + # output$bb_data <- renderText({ + # glue("Current Dataset: {str_to_title(input_new()$region)} - Time-Point {input$bb_tp}") + # }) + # } + # else if (input$bb_toggle == FALSE){ + # removeUI( + # selector = "div:has(>> #bb_tp)" + # ) + # output$bb_data <- renderText({ + # "" + # }) + # } + # }) + #update inputs when toggle is turned so that the plots auto-update - observeEvent(input$grn_toggle|input$table_toggle|input$heatmap_toggle|input$cluster_toggle|input$as_toggle, { + observeEvent(input$grn_toggle|input$table_toggle|input$heatmap_toggle|input$cluster_toggle|input$as_toggle|input$bb_toggle, { click(id = "update") }, ignoreInit = TRUE, priority = 1) @@ -359,7 +407,14 @@ server <- function(input, output, session) { subset_data <- get(datafile)$TF_target_gene_info %>% dplyr::filter(TF %in% tf_list$TF_in_data) %>% - select(TF, gene, Genie3Weight.weight, highConfAnnot, nMotifs, bestMotif) + select(TF, gene, starts_with("Genie3Weight"), highConfAnnot, nMotifs, bestMotif) + + #the column name for the SCENIC inference weight has a different name depending on if the timepoint + #is in the original dataset from 2019 nat genetic or if it is the extended dataset + #so need to have a variable weight_col to rename the appropriate column in the datatable() function below + if(input$table_tp %in% c("e12", "e15", "p0", "p3", "p6")){weight_col <- "Genie3Weight.weight"} + else{weight_col <- "Genie3Weight"} + } else{ @@ -372,7 +427,8 @@ server <- function(input, output, session) { subset_data <- input_new()$TF_target_gene_info %>% dplyr::filter(TF %in% tf_list$TF_in_data) %>% - select(TF, gene, Genie3Weight.weight, highConfAnnot, nMotifs, bestMotif) + select(TF, gene, starts_with("Genie3Weight"), highConfAnnot, nMotifs, bestMotif) + weight_col <- "Genie3Weight" } subset_data <- addMotifPic(subset_data) @@ -380,7 +436,7 @@ server <- function(input, output, session) { datatable(subset_data, escape = FALSE, colnames = c('Gene' = 'gene', 'Number of Motifs' = 'nMotifs', 'Best Motif' = 'bestMotif', - 'Strength of Association' = 'Genie3Weight.weight', + 'Strength of Association' = weight_col, 'Logo' = 'motif_logo'), rownames = FALSE) }) @@ -510,7 +566,7 @@ server <- function(input, output, session) { req(input$time != "All") plot_heatmap(tf_list$TF_in_data, "joint",input_new()$region, - get(datafile)$TF_and_ext, per_sample = input_new()$heatmap_toggle, + get(datafile)$TF_and_ext, per_sample = TRUE, timepoint = input$time) } else{ @@ -561,9 +617,18 @@ server <- function(input, output, session) { width = 20, height = 25) }) - output$heatmap_cluster <- renderPlot({ - #req(length(input_new()$tf) != 23 ) #change this line after the tf input check has been done + output$heatmap_cluster <- renderUI({ + + if(input$time == "All"){plot_width = '3500px'} + else{plot_width = '800px'} + + plotOutput('heatmap_cluster_plot', width = plot_width) + }) + + output$heatmap_cluster_plot <- renderPlot({ + hm_sample_cluster_plot() + }) @@ -584,6 +649,7 @@ server <- function(input, output, session) { if(input_new()$cluster_toggle){ datafile <- glue("data_{reg()}_{input$cluster_tp}") + #print(datafile) temp <- check_tf_input(input_new()$tf, unique(get(datafile)$TF_and_ext[["type"]])) tf_list$TF_in_data <- temp$TF_in_data @@ -654,12 +720,12 @@ server <- function(input, output, session) { req(input$cluster_tp) - color_by_cluster(get(datafile)$cell_metadata, get(datafile)$cluster_palette, + color_by_cluster(get(datafile)$cell_metadata, input_new()$dim_red, input_new()$cluster_label, per_sample = input_new()$cluster_toggle) } else{ - color_by_cluster(input_new()$cell_metadata, input_new()$cluster_palette, + color_by_cluster(input_new()$cell_metadata, input_new()$dim_red, input_new()$cluster_label) } }) @@ -841,14 +907,15 @@ server <- function(input, output, session) { req(input$as_tp) datafile <- glue("data_{reg2()}_{input$as_tp}") - get(datafile)$cell_metadata %>% select(ID_20190715_with_blacklist) %>% unique() %>% deframe() + get(datafile)$cell_metadata %>% select(ID_20201028_with_exclude) %>% unique() %>% + filter(!grepl("EXCLUDE", ID_20201028_with_exclude)) %>% deframe() } else{ - datafile <- glue("data_{input$region}") + datafile <- glue("data_{input$region}_extended") get(datafile)$cell_metadata %>% select(Sample_cluster) %>% unique() %>% - filter(!grepl("BLACKLISTED", Sample_cluster)) %>% deframe() + filter(!grepl("EXCLUDE", Sample_cluster)) %>% deframe() } }) update_in <- observe({ @@ -866,8 +933,8 @@ server <- function(input, output, session) { sample_name <- glue("data_{reg()}_{input$as_tp}") } else{ - data_sample <- glue("joint_{input_new()$region}") - sample_name <- glue("data_{input_new()$region}") + data_sample <- glue("joint_{input_new()$region}_extended") + sample_name <- glue("data_{input_new()$region}_extended") } #print(input_new()$as_cluster) @@ -878,12 +945,14 @@ server <- function(input, output, session) { #active_specific_prep(data_sample, input_new()$as_cluster) }) - output$as_clust <- renderUI({ fluidRow( column(width = 7, plotOutput("active_specific_scatter")), - column(width = 5, tableOutput("active_specific_table")) + column(width = 5, + + (div(style='height:400px;overflow-y: scroll; width:450px;overflow-x: scroll;', + tableOutput("active_specific_table")))) ) #fluidRow(plotOutput("active_specific_cluster")) }) @@ -899,8 +968,8 @@ server <- function(input, output, session) { names(awo) <- gsub(" ", "_", names(hm_anno$side_colors$Cluster)) to_color <- replace(awo, !grepl(input_new()$as_cluster, names(awo)), "#e5e5e5") #print(to_color) - gg <- color_by_cluster(data$cell_metadata, data$cluster_palette, - "tsne", FALSE, + gg <- color_by_cluster(data$cell_metadata, + "umap", FALSE, per_sample = input_new()$as_toggle) if(input$as_toggle == FALSE){ gg <- gg + geom_point(aes(color = Sample_cluster), alpha = 0.2) @@ -924,6 +993,7 @@ server <- function(input, output, session) { head(4) tf_list$TF_not_data <- temp$TF_not_data + } else{ temp <- check_tf_input(input_new()$tf, unique(input_new()$TF_and_ext[["type"]])) @@ -932,8 +1002,7 @@ server <- function(input, output, session) { tf_list$TF_not_data <- temp$TF_not_data } - #print(tf_list$TF_in_data) - #print(active_specific_data()) + req(length(tf_list$TF_in_data) > 0) plot_bar_list(active_specific_data()$data$AUC_df, tf_list$TF_in_data) }) @@ -982,5 +1051,110 @@ server <- function(input, output, session) { +#-------------------------Bubbles-------------------- + #reactively changes data for bubble plot depending on inputs + bubble_data <- reactive({ + # if(identical(input_new()$region, "cortex")){ + # dend_source <- dend_order_forebrain_tp + # } + # else{ + # dend_source <- dend_order_pons_tp + # } + + temp <- check_tf_input(input_new()$tf, unique(input_new()$TF_and_ext[["type"]])) + tf_list$TF_in_data <- temp$TF_in_data %>% transform_tf_input(input_new()$TF_and_ext) %>% + head(12) + tf_list$TF_not_data <- temp$TF_not_data + + data_sample <- glue("joint_{input_new()$region}_extended") + + #dend_order <- dend_source[data_sample] + + bubble_prep(sample = data_sample, + tf = tf_list$TF_in_data, + dend_order = input_new()$dend_order, + scale = FALSE) + #active_specific_prep(data_sample, input_new()$as_cluster) + }) + + + # Generate the bubbleplot + output$bubble <- renderPlot({ + + #print(bubble_data()$data) + + plot_bubble(data = bubble_data()$data, + label_palette = bubble_data$label_palette)$plot # Get plot part of output + + }, + + # Choose width to align horizontally with dendrogram image + width = 1103, + + # Customize the height of the bubbleplot to scale with the number of genes which + # are being displayed, after allocating a baseline height for the x-axis & legend + height = function() 150 + 30 * length(tf_list$tf_in_data)) + + # Create a tooltip with cluster / expression information + # that appears when hovering over a bubble + # This was adapted from this example: https://gitlab.com/snippets/16220 + + output$bubble_hover_info <- renderUI({ + + hover <- input$bubble_hover + + # Find the nearest data point to the mouse hover position + point <- nearPoints(bubble_data()$data, + hover, + xvar = "Cluster", + yvar = "TF_padded", + maxpoints = 1) %>% + select(TF, Cluster, AUC, FC) + + # Hide the tooltip if mouse is not hovering over a bubble + if (nrow(point) == 0) return(NULL) + + # Create style property for tooltip + # background is set to the cluster colour, with opacity = 95% ("F2" at end of hex) + # z-index is set so we are sure are tooltip will be on top + style <- paste0("position:absolute; z-index:100; background-color: ", point$Colour, "F2;", + "left: -350px; top: 500px; width: 350px;") + + # Set text to white if the background colour is dark, else it's black (default) + if (dark(point$Colour)) { + style <- paste0(style, "color: #FFFFFF") + } + + # Specify text content of tooltips - special content for mean expression plot + tooltip_text <- paste0(" TF: ", point$TF, "
", + " Cluster: ", point$Cluster, "
", + " TF Activity: ", point$AUC, "
", + " TF Fold Change: ", point$FC, "
") + + # Actual tooltip created as wellPanel + wellPanel( + style = style, + p(HTML(tooltip_text)) + ) + }) + + # Render the bubble plot gene labels separately with ggdraw + output$bubble_labels <- renderPlot({ + + ggdraw(plot_bubble(data = bubble_data()$data, + label_palette = bubble_data$label_palette)$labels) # Get labels part of output + + }, + + # Set height of bubble plot gene labels to (hopefully) align with plots + height = function() 28.5 + 29 * length(input_new()$gene), + + # Max length of a gene is 200px + # NOTE: If altering this, also change the corresponding cellWidth for + # splitLayout in ui.R + width = 200 + + ) + } diff --git a/GRN/ui.R b/GRN/ui.R index 9b2296a..75e1555 100644 --- a/GRN/ui.R +++ b/GRN/ui.R @@ -72,9 +72,9 @@ ui <- fluidPage( selected = "joint"), selectInput(inputId = "time", label = "Time-point to Visualize", - choices = c("All","e12", "e15", "p0", "p3", "p6"), + choices = c("All", dev_time_points), multiple = FALSE, - selected = "All") + selected = "e12") ), # -----------------DR plots --------------------------------------------- @@ -115,6 +115,43 @@ ui <- fluidPage( mainPanel( tabsetPanel( + #-----------------------Bubble-plot------------------- + tabPanel( + title = "Dendrogram", + # Display the bubbleplot + # fluidRow( + # column(width = 3, materialSwitch(inputId = "bb_toggle", label = "Explore per Time-Point Data", + # value = FALSE, status = "success")), + # column(width = 3, actionButton("info5", "What Is This?")) + # ), + htmlOutput("bb_data"), + div(style = "margin-top: 2em; margin-left: 1em; margin-bottom: -5em; + overflow-x: visible; overflow-y: visible;", + + fluidRow( + # Set cellWidths equal to the actual width of each plot (server.R) + splitLayout(cellWidths = c(1103, 200), + + # Bubble plot(s) + (plotOutput("bubble", + hover = hoverOpts(id = "bubble_hover", clip = FALSE), + height = 2000) %>% ws), + + # Gene labels + # No spinner to prevent confusing user, because there is only 1 plot + (plotOutput("bubble_labels", height = 2000)) + ) + + ), + + # UI for tooltip + fluidRow( + uiOutput("bubble_hover_info")), + + ), + value = "bubble" + ), + # -----------------ggNet visualisation --------------------------------------------- tabPanel( strong("This tab displays a network visualisation of the inferred regulatory relationship between TFs and target genes.") %>% p(), @@ -206,11 +243,16 @@ ui <- fluidPage( fluidRow( plotOutput("heatmap_joint") ), - downloadButton("download_hm_joint", "Heatmap Download (PDF)"), - div(style = "margin-left: 1.3em; margin-right: 1.3em;", - fluidRow( - plotOutput("heatmap_cluster") - )), + + downloadButton("download_hm_joint", "Heatmap Download (PDF)"), + + (div(style='width:800px;overflow-x: scroll;', + uiOutput("heatmap_cluster"))), + + # div(style = "margin-left: 1.3em; margin-right: 1.3em;", + # fluidRow( + # plotOutput("heatmap_cluster") + # )), downloadButton("download_hm_cluster", "Heatmap Download (PDF)"), #imageOutput("color_hm_palette", width = "6in", height = "4in") ), From f324356d0326aacabb006ed7831d31473c6fc24e Mon Sep 17 00:00:00 2001 From: CooberHoo <84345288+CooberHoo@users.noreply.github.com> Date: Sun, 15 Aug 2021 20:02:01 -0400 Subject: [PATCH 02/20] Dendrogram tab functional Note: time-series tab still not functional --- GRN/functions.R | 39 ++++++++++++++++++-- GRN/server.R | 47 ++++++++++++++++++------- GRN/ui.R | 25 ++++++++----- GRN/www/joint_cortex_extended_tree.png | Bin 0 -> 333519 bytes GRN/www/joint_pons_extended_tree.png | Bin 0 -> 291716 bytes 5 files changed, 87 insertions(+), 24 deletions(-) create mode 100644 GRN/www/joint_cortex_extended_tree.png create mode 100644 GRN/www/joint_pons_extended_tree.png diff --git a/GRN/functions.R b/GRN/functions.R index ae0e210..212de14 100644 --- a/GRN/functions.R +++ b/GRN/functions.R @@ -239,6 +239,32 @@ transform_tf_input <- function(tf, tf_and_ext){ return(tf_to_read) } + +#' Determine if a background colour is dark enough to warrant white text +#' +#' @param hex_color String, colour in hex colour format e.g. #000000 +#' +#' @return TRUE if the colour is dark enough (arbitrary) +dark <- function(hex_color) { + + red <- substr(hex_color, 2, 2) + green <- substr(hex_color, 4, 4) + blue <- substr(hex_color, 6, 6) + dark_nums <- c(0:8) + + if ((red %in% dark_nums && blue %in% dark_nums) || + (red %in% dark_nums && green %in% dark_nums) || + (green %in% dark_nums && blue %in% dark_nums)) { + + return(TRUE) + + } else { + + return(FALSE) + + } +} + # --------------------------------Create data for plots-------------------------------- # NOTE: TF_and_ext is a dataframe (loaded already) that created in order to identify # whether the TF data is a regular TF (with high confidence annotation) @@ -882,7 +908,7 @@ bubble_prep <- function(sample, tf, dend_order, scale){ } # Convert to long / tidy format with columns: Cluster, TF, AUC - AUC <- AUC %>% + AUC <- AUC %>% gather(., "TF", "AUC", 2:ncol(.)) #print(AUC) @@ -918,19 +944,26 @@ bubble_prep <- function(sample, tf, dend_order, scale){ mutate(TF_padded = factor(TF_padded, levels = unique(.$TF_padded))) %>% # Order the clusters on the x-axis to match the dendrogram image - slice(match(dend_order_joint_cortex_extended, Cluster)) %>% + #slice(match(dend_order_joint_cortex_extended, Cluster)) %>% # Keep columns select(TF, Cluster, AUC, FC, TF_padded) + # df$Cluster <- factor(df$Cluster, levels = dend_order) + label_palette <- hm_anno$side_colors$Cluster names(label_palette) <- gsub(" ", "_", names(hm_anno$side_colors$Cluster)) label_palette <- label_palette[dend_order] + + return(list("data" = df, "label_palette" = label_palette)) } -plot_bubble <- function(data, label_palette){ +plot_bubble <- function(data, label_palette, dend_order){ + + data$Cluster <- factor(data$Cluster, levels=dend_order) + p1 <- data %>% ggplot(aes(x = Cluster, y = TF_padded)) + geom_point(aes(size = FC, colour = AUC), alpha = 0.8) + diff --git a/GRN/server.R b/GRN/server.R index 80844b5..b241f2d 100644 --- a/GRN/server.R +++ b/GRN/server.R @@ -1052,6 +1052,19 @@ server <- function(input, output, session) { #-------------------------Bubbles-------------------- + output$dend_image <- renderUI({ + image_source <- switch(input$region, + "cortex" = "joint_cortex_extended_tree.png", + "pons" = "joint_pons_extended_tree.png") + image_height <- switch(input$region, + "cortex" = "143", + "pons" = "120") + div(style = "margin-top: 3em; margin-bottom: -2em !important;", + fluidRow(tags$img(src = image_source, width = "1150", height = image_height)) + ) + }) + + #reactively changes data for bubble plot depending on inputs bubble_data <- reactive({ # if(identical(input_new()$region, "cortex")){ @@ -1063,7 +1076,7 @@ server <- function(input, output, session) { temp <- check_tf_input(input_new()$tf, unique(input_new()$TF_and_ext[["type"]])) tf_list$TF_in_data <- temp$TF_in_data %>% transform_tf_input(input_new()$TF_and_ext) %>% - head(12) + head(20) tf_list$TF_not_data <- temp$TF_not_data data_sample <- glue("joint_{input_new()$region}_extended") @@ -1077,6 +1090,9 @@ server <- function(input, output, session) { #active_specific_prep(data_sample, input_new()$as_cluster) }) + num_of_tf <- reactive({ + length(tf_list$TF_in_data) + }) # Generate the bubbleplot output$bubble <- renderPlot({ @@ -1084,16 +1100,21 @@ server <- function(input, output, session) { #print(bubble_data()$data) plot_bubble(data = bubble_data()$data, - label_palette = bubble_data$label_palette)$plot # Get plot part of output - + label_palette = bubble_data()$label_palette, + input_new()$dend_order)$plot # Get plot part of output + }, # Choose width to align horizontally with dendrogram image - width = 1103, + width = 1143, # Customize the height of the bubbleplot to scale with the number of genes which # are being displayed, after allocating a baseline height for the x-axis & legend - height = function() 150 + 30 * length(tf_list$tf_in_data)) + + + height = function() 150 + 30 * num_of_tf() + ) + # Create a tooltip with cluster / expression information # that appears when hovering over a bubble @@ -1103,6 +1124,8 @@ server <- function(input, output, session) { hover <- input$bubble_hover + + # Find the nearest data point to the mouse hover position point <- nearPoints(bubble_data()$data, hover, @@ -1117,19 +1140,19 @@ server <- function(input, output, session) { # Create style property for tooltip # background is set to the cluster colour, with opacity = 95% ("F2" at end of hex) # z-index is set so we are sure are tooltip will be on top - style <- paste0("position:absolute; z-index:100; background-color: ", point$Colour, "F2;", - "left: -350px; top: 500px; width: 350px;") + style <- paste0("position:absolute; z-index:100; background-color: ", bubble_data()$label_palette[point$Cluster], "F2;", + "left: -350px; top: 400px; width: 350px;") # Set text to white if the background colour is dark, else it's black (default) - if (dark(point$Colour)) { + if (dark(bubble_data()$label_palette[point$Cluster])) { style <- paste0(style, "color: #FFFFFF") } # Specify text content of tooltips - special content for mean expression plot tooltip_text <- paste0(" TF: ", point$TF, "
", " Cluster: ", point$Cluster, "
", - " TF Activity: ", point$AUC, "
", - " TF Fold Change: ", point$FC, "
") + " TF Activity: ", point$AUC %>% round(3), "
", + " TF Activity Fold Change: ", point$FC %>% round(3), "
") # Actual tooltip created as wellPanel wellPanel( @@ -1142,12 +1165,12 @@ server <- function(input, output, session) { output$bubble_labels <- renderPlot({ ggdraw(plot_bubble(data = bubble_data()$data, - label_palette = bubble_data$label_palette)$labels) # Get labels part of output + label_palette = bubble_data()$label_palette)$labels) # Get labels part of output }, # Set height of bubble plot gene labels to (hopefully) align with plots - height = function() 28.5 + 29 * length(input_new()$gene), + height = function() 8 + 29 * num_of_tf(), # Max length of a gene is 200px # NOTE: If altering this, also change the corresponding cellWidth for diff --git a/GRN/ui.R b/GRN/ui.R index 75e1555..94b7996 100644 --- a/GRN/ui.R +++ b/GRN/ui.R @@ -118,19 +118,26 @@ ui <- fluidPage( #-----------------------Bubble-plot------------------- tabPanel( title = "Dendrogram", - # Display the bubbleplot - # fluidRow( - # column(width = 3, materialSwitch(inputId = "bb_toggle", label = "Explore per Time-Point Data", - # value = FALSE, status = "success")), - # column(width = 3, actionButton("info5", "What Is This?")) - # ), - htmlOutput("bb_data"), - div(style = "margin-top: 2em; margin-left: 1em; margin-bottom: -5em; + tags$br(), + tags$b("This tab displays the activity and activity fold change of up to 20 TFs over each cluster in the selected brain region."), + tags$br(), + tags$br(), + p("• Clusters are ordered according to the dendrogram which represents a molecular taxonomy of all cell populations"), + + p("• Below the dendrogram, clusters are annotated by brain region, and time point."), + + p("• Bubble colour encodes the mean TF activity within the cluster, and bubble size encodes the fold change of TF activity in each cluster compared to all other clusters - effectively describing TF specificity."), + + p("• Hover over each bubble to get additional details about each cluster & its expression level"), + + uiOutput("dend_image"), + + div(style = "margin-top: 2em; margin-left: 0em; margin-bottom: -5em; overflow-x: visible; overflow-y: visible;", fluidRow( # Set cellWidths equal to the actual width of each plot (server.R) - splitLayout(cellWidths = c(1103, 200), + splitLayout(cellWidths = c(1148, 200), # Bubble plot(s) (plotOutput("bubble", diff --git a/GRN/www/joint_cortex_extended_tree.png b/GRN/www/joint_cortex_extended_tree.png new file mode 100644 index 0000000000000000000000000000000000000000..afd53aa1c34c7ae3ccb4b7363c98c01861f4ef94 GIT binary patch literal 333519 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 IizHZ$lz#SJ+UeMpL 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

QI#As;h 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⪼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%0Dhh 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