晶诚所至 生命所能

Engage to Life Energy

 
原创文章|心脏空间转录组SPOT数据的Shiny展示
发布日期:2020-07-06浏览:

 

 

 


心脏空间转录组SPOT数据的Shiny展示

 

开篇引言

 

1.最近坊间纷纷开始关心起一篇文章,《A Spatiotemporal Organ-Wide Gene Expression and Cell Atlas of the Developing Human Heart》,我至少在好几个公众号上看到过。

 

2.至少有两个陈老师的视频作品对我的三观产生过影响,“陈巍学基因”的陈巍老师就是其中之一。陈巍老师也加入该研究的解读大战,从各个角度对该研究做了解读,九深一浅,娓娓道来,我很喜欢。我要写点东西,作为致敬(或者不如干脆称为示好)。

 

3.COVID-19让我注意起一个华人做的网站,https://coronavirus.1point3acres.com/ , 其中对数据的展示,真是令人印象深刻,我有意并斗胆把图形展示向这个方向转一转。

 

4.Shiny展示数据结果,将是一个趋势。发表文章提供Shiny展示网站,增色不少。‍‍

 

我先简单介绍下该研究位于https://github.com/MickanAsp/Developmental_heart的配套公开数据。然后撷取其中的SPOT数据,从数据呈现角度,采用Shiny形式呈现互动性的结果,因为SPOT数仅是整个宏大研究的一小部分数据,我将之命名为toyHeart。


项目如下
Play with toy HeartAtlas

Shiny app网址见:
https://virgentop.shinyapps.io/toyheart/

 

一:数据介绍

ST_heart_all_detected_nuclei.RData数据

 

	
library(data.table) library(ggplot2)

	
load('./data/ST_heart_all_detected_nuclei.RData') dat<-as(master.nuclei,'data.table') ggplot(dat,aes(x,-y,colour=image)) +    geom_point(shape=".",show.legend=F) +    facet_wrap(vars(image),nrow=3) +    labs(x='',y='') +    theme_minimal() %+replace% theme(axis.text=element_blank())

 


heart.RData数据

 

heart.RData数据与R的rgl包密切相关,以下四个子数据是做三维观测时定义的perspective数据:

  • ant.view

  • left.view

  • pers.view

  • post.view

  • right.view
    还包括如下两个数据:
  • organ

  • organ.dwnsmp

organ.dwnsmp实际上是低分辨率的心脏三维架构,organ数据跟organ.dwnsmp类型一致,但分辨率较高。

因为数据类型特别,而且主要用作三维数据的立体展示,本推文不做进一步的介绍。

ST_heart_spot_data.RData数据(重点)

 

ST_heart_spot_data数据较为完备,github上对该数据的描述也较为详细。本推文将针对这一数据做Shiny展示。

 

load('./data/ST_heart_spot_data.RData') heart$genes->ges heart$atlas->att setDT(att)->att cbind(att,as.data.table(do.call('rbind',strsplit(att[,spot.pos],"x"))))->att att[,V1:=as.integer(V1)] att[,V2:=as.integer(V2)]

	
ggplot(att,aes(x=V1,y=V2,colour=name)) +        geom_point(show.legend=F) +        facet_wrap(vars(image),nrow=3) +        labs(x='',y='') +         theme_minimal() %+replace% theme(axis.text=element_blank())

 

上图中每个点对应一个spot,每个spot对应的超过20000个genes的count值见于数据heart$genes。数据很小,共 1467 spots X 20658 genes.

heart$genes (不妨称之为CountMatrix)里的基因名称使用Ensembl Gene ID来表示的,方便起见,我们将之转化为Gene Symbol:

 

剔除极少数不能转换或唯一转换成Gene SymbolEnsembl Gene ID,剩余 20554 genes, 所以我们最后拿到数据是1467 spots X 20554 genes.

二:SPOT数据的Shiny展示


Cell 的研究中提供了一个Shiny展示结果的网站,网址为https://spatialtranscriptomics3d.shinyapps.io/Developmental_heart_explorer/,这里面对SPOT数据和单细胞数据做了展示,实际上是个中规中矩的Shiny应用。我们为什么还要做一个呢?Shiny很好的解决了根据客户定义的输入来输出结果的问题,并以网页形式呈现,但既然是网页,为什么不做的更彻底一点,干脆把图形结果也做成动态的图形。但上述网址中图形都是静态的。我们来实现Shiny页面下动态互动图形,下面会介绍下我们的ShinyAPP的主要功能,网址见:https://virgentop.shinyapps.io/toyheart/有兴趣的同学可以打开网址自行探索哦。

输入

两个输入,截图如下:

gene名称不区分大小写,如果输入了一个不存在的gene名称,比如money,会做如下提示,截图如下:

输入正确的基因名称,并选择image,提示如下(截图如下,利用R的praise包随机显现一句对使用者的真实评价):

结果之图1

显示按照平均Count值排序后的图形,横坐标为genes,纵坐标为Mean Counts,hover到每个点,显示gene名称、Mean Count值、在所有gene中的rank。并对输入的基因highlight显示,红色箭头、红色点。截图如下:

结果之图2

bubble图,横坐标为count值,纵坐标为几个Sectors,点大小表示count取某值的spots的数目。大部分genes在spots中的count值为0,或者很小的数,截图如下:

对于表达高的genes(比如某些marker gene,可以在图1中,鼠标hover后挑取高表达的gene),典型的结果截图如下(gene TPM1):

结果之图3

spot位置及Count的图,鼠标hover到点,会显示Sector、Count值、spot位置信息。如果count为0,则点显示为一个无填充色的鸭蛋。如果count>0,则按照colorbar来显示,count越大,红色愈深。

大部分genes在spots中的count值为0,或者很小的数,截图如下(Gene is MADD & Image is 6_CN74_E2_HE):

对于表达高的genes(比如某些marker gene,可以在图1中,鼠标hover后挑取高表达的gene),典型的结果截图如下(Gene is TPM1 & Image is 6_CN74_E2_HE):


三:说明


Shiny App 部署在 shinyapps.io 上(细心的同学可能发现了 Cell 文章的Shiny也是在shinyapps.io上),因为是免费的账户,服务器又在国外,所以速度上有些慢,还请耐心使用。使用中如果碰到异常的bug请联系:ligang@genenergy.cn

 

上一条:无
下一条:客户文章 | 复旦大学任国栋课题组揭示HYL1拮抗外切体调控miRNA加工生成新机制
返回
网站地图 | 法律声明 | 联系我们

地址:上海市松江区中心路1158号5幢5楼

电话:400-9200-612  传真:+86 21 6090 1207/1208-8154

晶能生物技术(上海)有限公司 Copyright 2012 Genergy Inc. 沪ICP备10017363号

友情链接: