Spaces:
Sleeping
Sleeping
File size: 4,251 Bytes
ec5fe32 5665998 4aad7a1 ec5fe32 04c02e3 ec5fe32 4aad7a1 ec5fe32 4aad7a1 ec5fe32 4aad7a1 ec5fe32 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 |
---
title: "PFC Dashboards"
author: "Cao Lab"
server: shiny
format:
dashboard:
logo: https://zhenghu159.github.io/picx-images-hosting/PFCapp/Logo.1756dx3zx7.webp
nav-buttons:
- icon: github
href: https://github.com/GangCaoLab/mPFC-web
---
# Home
<p style="font-size: 50px; font-weight: bold; text-align: center;">A single-cell resolution spatial-transcriptome-connectome integrated multi-omic atlas of prefrontal cortex</p>
<br>
<img src="https://zhenghu159.github.io/picx-images-hosting/PFCapp/main.77dcin4jph.webp" style="width: 100%;">
<br>
<br>
<p style="font-size: 30px; font-weight: bold; text-align: left;">
Abstract
</p>
<p style="font-size: 20px; text-align: justify;">
Medial prefrontal cortex (mPFC) is the high-level center of brain cognitive function, which regulates emotion, memory, decision-making, behavior, neuroendocrine and other brain functions. mPFC has a wide range of projections in the cerebral cortex, thalamus, hypothalamus, basal ganglia, midbrain and other brain regions, forms extremely complex projection circuits. Analyzing these numerous projection circuits structures is an urgent problem in neuroscience. The conventional method is using neurotropic viruses to express fluorescent proteins for nucleus labeling. However, due to the limitation of fluorescent protein types and spectral crossover, it is time-consuming and labor-intensive to realize multiple nucleus labeling and tracing. The ideal circuits analysis solution is to break through the limit of fluorescent protein types and can label multiple brain regions. On the basis of multi-brain circuits labeling, it can also analyze the expression of neuron-related genes in the circuits, so as to better interpret the mechanism by which specific circuits perform their functions.
</p>
<br>
<p style="font-size: 30px; font-weight: bold; text-align: left;">
Interactively exploring the data
</p>
<a style="font-size: 20px; font-weight: bold; text-align: left;">
scRNAseq
</a>
- Cell cluster UMAP
- Feature plot in UMAP
<a style="font-size: 20px; font-weight: bold; text-align: left;">
Spatial data
</a>
```{r}
#| context: setup
#| warning: false
#| message: false
library(ggplot2)
library(Seurat)
#library(scCustomize)
library(shiny)
library(rgl)
#library(wholebrain)
#attach(loadNamespace('wholebrain'), warn.conflicts = FALSE)
source("R/Palettes.R")
source('R/includes.R')
Adult.Ex <- readRDS('data/Adult.Ex.rds')
sp.PFC <- readRDS('data/sp.PFC.rds')
options(rgl.useNULL = TRUE)
```
# scRNAseq
## Row
### Column
```{r}
selectInput('cluster', 'Select Cluster', c("SubType_Layer","SubType"))
plotOutput('cluster_plot')
```
### Column
```{r}
selectInput('gene', 'Select Gene', rownames(Adult.Ex))
plotOutput('gene_plot')
```
```{r}
#| context: server
output$cluster_plot <- renderPlot({
DimPlot(
Adult.Ex,
reduction = 'umap',
group.by = input$cluster,
cols = col_cluster[[input$cluster]],
label = T
) +
coord_fixed()
})
output$gene_plot <- renderPlot({
FeaturePlot(
Adult.Ex,
features = input$gene) +
coord_fixed()
})
```
# Spatial
TO DO ...
# 3D
## Row
### Column
```{r}
selectInput('subtype', 'Select SubType', sort(unique(sp.PFC$SubType)))
rglwidgetOutput('spatial_subtype', width = "100%")
```
```{r}
#| context: server
output$spatial_subtype <- renderRglwidget({
open3d()
bg3d(color = "black")
par3d(userMatrix = rotationMatrix(-pi/6, -1, 1, 0), zoom = 0.6)
acr.list <- c("MOs","PL","ORBm","ACAd","ILA","DP","ACAv")
for(acr in acr.list){
mesh <- mesh3d.allen.annot.from.id(get.id.from.acronym(acr))
#to.del <- which(mesh$vb[1,] < 0)
#to.del <- NA
#mesh$it <- mesh$it[,!is.element(mesh$it[1,], to.del) & !is.element(mesh$it[2,], to.del) & !is.element(mesh$it[3,], to.del)]
#col <- color.from.acronym(acr)
col <- "lightgray"
#col <- col_Region[acr]
shade3d(mesh, col = col, material = list(lit=FALSE), alpha = 0.1)
}
df_plot <- [email protected][which(sp.PFC$SubType == input$subtype),]
spheres3d(x = df_plot$ML_new,
y = df_plot$DV_new,
z = df_plot$AP_new,
col = col_cluster[["SubType"]][input$subtype], radius=0.01, alpha=1)
rglwidget()
})
```
|