mirror of
				https://github.com/johrpan/ubigen.git
				synced 2025-10-26 19:57:24 +01:00 
			
		
		
		
	Add rankings comparison section
This commit is contained in:
		
							parent
							
								
									8439066921
								
							
						
					
					
						commit
						bd8a829fe5
					
				
					 2 changed files with 120 additions and 7 deletions
				
			
		
							
								
								
									
										62
									
								
								R/server.R
									
										
									
									
									
								
							
							
						
						
									
										62
									
								
								R/server.R
									
										
									
									
									
								
							|  | @ -105,24 +105,76 @@ server <- function(custom_dataset = NULL) { | ||||||
|       highlighted_genes = custom_genes() |       highlighted_genes = custom_genes() | ||||||
|     )) |     )) | ||||||
| 
 | 
 | ||||||
|     selected_genes <- reactive({ |     selected_top_genes <- reactive({ | ||||||
|       selected_points <- plotly::event_data("plotly_selected") |       selected_points <- plotly::event_data("plotly_selected") | ||||||
|       ranked_data()[rank %in% selected_points$x] |       ranked_data()[rank %in% selected_points$x] | ||||||
|     }) |     }) | ||||||
| 
 | 
 | ||||||
|     genes_table_server("selected_genes", reactive({ |     genes_table_server("selected_top_genes", reactive({ | ||||||
|       if (nrow(selected_genes()) > 0) { |       if (nrow(selected_top_genes()) > 0) { | ||||||
|         selected_genes() |         selected_top_genes() | ||||||
|       } else { |       } else { | ||||||
|         ranked_data() |         ranked_data() | ||||||
|       } |       } | ||||||
|     })) |     })) | ||||||
| 
 | 
 | ||||||
|  |     output$rankings_plot <- plotly::renderPlotly({ | ||||||
|  |       handle_axis <- function(ranking_id) { | ||||||
|  |         if (ranking_id == "gtex_all") { | ||||||
|  |           list( | ||||||
|  |             ranking = rank_genes(ubigen::gtex_all), | ||||||
|  |             label = "GTEx (across tissues and conditions)" | ||||||
|  |           ) | ||||||
|  |         } else if (ranking_id == "gtex_tissues") { | ||||||
|  |           list( | ||||||
|  |             ranking = rank_genes(ubigen::gtex_tissues), | ||||||
|  |             label = "GTEx (across tissues)" | ||||||
|  |           ) | ||||||
|  |         } else if (ranking_id == "hpa_tissues") { | ||||||
|  |           list( | ||||||
|  |             ranking = rank_genes(ubigen::hpa_tissues), | ||||||
|  |             label = "Human Protein Atlas (across tissues)" | ||||||
|  |           ) | ||||||
|  |         } else if (ranking_id == "cmap") { | ||||||
|  |           list( | ||||||
|  |             ranking = rank_genes(ubigen::cmap), | ||||||
|  |             label = "CMap" | ||||||
|  |           ) | ||||||
|  |         } else { | ||||||
|  |           list( | ||||||
|  |             ranking = ranked_data(), | ||||||
|  |             label = "Custom" | ||||||
|  |           ) | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  | 
 | ||||||
|  |       x <- handle_axis(input$ranking_x) | ||||||
|  |       y <- handle_axis(input$ranking_y) | ||||||
|  | 
 | ||||||
|  |       rankings_comparison_plot( | ||||||
|  |         x$ranking, | ||||||
|  |         y$ranking, | ||||||
|  |         label_x = x$label, | ||||||
|  |         label_y = y$label, | ||||||
|  |         highlighted_genes = custom_genes(), | ||||||
|  |         use_percentiles = input$rankings_comparison_mode == "percentiles" | ||||||
|  |       ) | ||||||
|  |     }) | ||||||
|  | 
 | ||||||
|  |     selected_comparison_genes <- reactive({ | ||||||
|  |       selected_points <- plotly::event_data("plotly_selected") | ||||||
|  |       ranked_data()[gene %chin% selected_points$customdata] | ||||||
|  |     }) | ||||||
|  | 
 | ||||||
|  |     genes_table_server("selected_comparison_genes", reactive({ | ||||||
|  |       selected_comparison_genes() | ||||||
|  |     })) | ||||||
|  | 
 | ||||||
|     gsea_genes <- reactive({ |     gsea_genes <- reactive({ | ||||||
|       sort(if (input$gsea_set == "top") { |       sort(if (input$gsea_set == "top") { | ||||||
|         ranked_data()[rank >= input$gsea_ranks, gene] |         ranked_data()[rank >= input$gsea_ranks, gene] | ||||||
|       } else if (input$gsea_set == "selected") { |       } else if (input$gsea_set == "selected") { | ||||||
|         selected_genes()[, gene] |         selected_top_genes()[, gene] | ||||||
|       } else { |       } else { | ||||||
|         custom_genes() |         custom_genes() | ||||||
|       }) |       }) | ||||||
|  |  | ||||||
							
								
								
									
										65
									
								
								R/ui.R
									
										
									
									
									
								
							
							
						
						
									
										65
									
								
								R/ui.R
									
										
									
									
									
								
							|  | @ -126,7 +126,8 @@ ui <- function(custom_dataset = NULL) { | ||||||
|                 value = "top_genes", |                 value = "top_genes", | ||||||
|                 div(paste0( |                 div(paste0( | ||||||
|                   "Hover over the markers to see details on each gene. Click ", |                   "Hover over the markers to see details on each gene. Click ", | ||||||
|                   "or drag within the figure to select genes of interest." |                   "or drag within the figure to select genes of interest. ", | ||||||
|  |                   "Double-click removes the selection." | ||||||
|                 )), |                 )), | ||||||
|                 plotly::plotlyOutput("scores_plot"), |                 plotly::plotlyOutput("scores_plot"), | ||||||
|                 div(class = "p-1"), |                 div(class = "p-1"), | ||||||
|  | @ -137,7 +138,67 @@ ui <- function(custom_dataset = NULL) { | ||||||
|                   "on." |                   "on." | ||||||
|                 )), |                 )), | ||||||
|                 div(class = "p-1"), |                 div(class = "p-1"), | ||||||
|                 genes_table_ui("selected_genes") |                 genes_table_ui("selected_top_genes") | ||||||
|  |               ), | ||||||
|  |               tabPanel( | ||||||
|  |                 "Compare rankings", | ||||||
|  |                 value = "rankings", | ||||||
|  |                 div( | ||||||
|  |                   class = "flow-layout", | ||||||
|  |                   selectInput( | ||||||
|  |                     "ranking_y", | ||||||
|  |                     label = NULL, | ||||||
|  |                     list( | ||||||
|  |                       "Custom" = "custom", | ||||||
|  |                       "GTEx (across tissues and conditions)" = "gtex_all", | ||||||
|  |                       "GTEx (across tissues)" = "gtex_tissues", | ||||||
|  |                       "Human Protein Atlas (across tissues)" = "hpa_tissues", | ||||||
|  |                       "CMap" = "cmap" | ||||||
|  |                     ), | ||||||
|  |                     selected = "cmap" | ||||||
|  |                   ), | ||||||
|  |                   span( | ||||||
|  |                     style = paste0( | ||||||
|  |                       "display: inline-block;", | ||||||
|  |                       "margin-right: 12px;", | ||||||
|  |                       "padding: 0.375rem 0.75rem;" | ||||||
|  |                     ), | ||||||
|  |                     "~" | ||||||
|  |                   ), | ||||||
|  |                   selectInput( | ||||||
|  |                     "ranking_x", | ||||||
|  |                     label = NULL, | ||||||
|  |                     list( | ||||||
|  |                       "Custom" = "custom", | ||||||
|  |                       "GTEx (across tissues and conditions)" = "gtex_all", | ||||||
|  |                       "GTEx (across tissues)" = "gtex_tissues", | ||||||
|  |                       "Human Protein Atlas (across tissues)" = "hpa_tissues", | ||||||
|  |                       "CMap" = "cmap" | ||||||
|  |                     ) | ||||||
|  |                   ), | ||||||
|  |                   selectInput( | ||||||
|  |                     "rankings_comparison_mode", | ||||||
|  |                     label = NULL, | ||||||
|  |                     list( | ||||||
|  |                       "Compare scores" = "scores", | ||||||
|  |                       "Compare percentiles" = "percentiles" | ||||||
|  |                     ) | ||||||
|  |                   ) | ||||||
|  |                 ), | ||||||
|  |                 div(class = "p-1"), | ||||||
|  |                 div(paste0( | ||||||
|  |                   "Hover over the markers to see the HGNC symbols for the ", | ||||||
|  |                   "genes. Click or draw within the figure to select genes of ", | ||||||
|  |                   "interest. Double-click removes the selection." | ||||||
|  |                 )), | ||||||
|  |                 div(class = "p-1"), | ||||||
|  |                 plotly::plotlyOutput( | ||||||
|  |                   "rankings_plot", | ||||||
|  |                   width = "800px", | ||||||
|  |                   height = "800px" | ||||||
|  |                 ), | ||||||
|  |                 div(class = "p-1"), | ||||||
|  |                 genes_table_ui("selected_comparison_genes") | ||||||
|               ), |               ), | ||||||
|               tabPanel( |               tabPanel( | ||||||
|                 "GSEA", |                 "GSEA", | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue