专栏首页单细胞天地Cell Ontology:解析细胞类型新维度

Cell Ontology:解析细胞类型新维度

分享是一种态度

作者 | 周运来

男,

一个长大了才会遇到的帅哥,

稳健,潇洒,大方,靠谱。

一段生信缘,一棵技能树,

一枚大型测序工厂的螺丝钉,

一个随机森林中提灯觅食的津门旅客。

记得在文章CD8+CD28- Treg||我就不信就我一个人觉得现有的细胞群命名有点麻烦和文章单细胞数据科学的十一个重大挑战中,我们提出过传统细胞类型定义的困惑:细胞名称及其相互关系不明。说到底是语义不明,以至于同样的细胞类型在不同的语境下表达方式可能完全不同。这就像基因的命名和功能一样,于是我们开发出了一套本体论(Ontology):GO(Gene Ontology )。不得不说,这是一项革命性的思路,一下子使我们研究基因的功能有了范式,同行之间的交流也方便了许多。

可以说,本体论提供了一个描述的语境。那么,面对单细胞技术带来的史无前例多样的细胞类型,我们是不是也可以构建一个细胞的描述语境呢?显然是可以的,也是必要的,今天运来小哥哥就拉着你来看看细胞本体论:Cell Ontology。

第一篇映入我们眼帘的文献是:

Cell type discovery and representation in the era of high-content single cell phenotyping

这是一篇发表在2017年的文献,我们今天讨论的细胞本体论的概念基本是来自这里的。文章的后面,运来小哥哥会通过一个R包带大家看看细胞本体是咋回事。在这之前,我们先看下该文章对细胞本体的基本描述:

多细胞生物的一个基本特征是细胞类型在分化过程中的专门化(特化)。这些特殊的细胞类型不仅可以表征不同器官和组织的正常功能,还可以作为多种不同疾病状态和治疗/疫苗反应的细胞生物标记物。细胞本体论为定义的细胞类型提供一个标准的命名法,用于比较分析和生物标记物发现。历史上,这些细胞类型的定义是基于独特的细胞形状和结构,解剖位置和标记蛋白表达。然而,由于新的高通量、高含量的细胞计数和测序技术的应用,我们正在经历一场细胞特性的革命。被识别的不同细胞类型数量的激增正在挑战细胞本体中细胞类型定义的范式。

在本文中,我们提供了使用高含量细胞检测和单细胞RNA测序技术进行最先进的细胞生物标记物表征的例子,并提出了基于这些前沿技术的数据输出的标准化细胞类型表征的策略,包括以标准化实验元数据的形式的“上下文注释(context annotations)”,这些元数据涉及被分析的标本来源,以及作为基于机器学习的细胞类型分类模型中最有用的特征的标记基因。

现如今,细胞本体论已经从它的概念阶段走向应用阶段了,如我们提到过的细胞类型鉴定|| 你要的SingleR教程,一本书够不够中,就在SingleR 的语境下应用R包ontoProc来描述样本中细胞类型之间的关系。

细胞系本体论

但是细胞本体论并不是一开始就有的,在bulkRNA的时代,细胞生物学家为了描述细胞系及其相互关系的时候有意无意地开始构建细胞系本体论。

插播名词解释:

  • 细胞系(cell line)指原代细胞培养物经首次传代成功后所繁殖的细胞群体。也指可长期连续传代的培养细胞。(由此便引申出了后来的有限细胞系(FiniteCellLine)、无限细胞系(InfiniteCellLine)),因此,细胞系狭义的是指可连续传代的细胞(特定环境下口语和书面语都使用),广义是指可传代的细胞。

细胞系本体论(CLO)是一个以社区为基础的(ommunity-based )生物细胞系领域的本体论,其重点是培养收集的永久细胞系。构成CLO框架的上层本体结构包括基本形式本体和关系本体。CLO中包含的细胞系与来自其他本体(如细胞类型本体、NCBI分类法和生物医学研究本体)的术语相关联。以Jurkat细胞系为例,采用常见的细胞系设计模式对细胞系及其属性进行建模。目前,CLO包含从ATCC、HyperCLDB、Coriell和手动管理中获得的超过36,000个细胞系条目。这些细胞系来自194种细胞类型、656个解剖条目和217个生物体。基于owl的CLO是机器可读的,可以用于各种应用程序。

Cell Line Ontology: Redesigning the Cell Line Knowledgebase to Aid Integrative Translational Informatics .July 28-30, 2011 · Buffalo, NY, USA

这个过程很让我想起我们在构建微生物命名系统以及构建元素周期表时候的场景:从简单到复杂,从个体总体。后来,我们也是基于细胞系本体论在构建细胞本体。在ontobee上面我们可以看到有几种细胞本体:

我们下载一个CL看看:

包含Term IRI ,Term label ,Parent term IRI ,Parent term label ,Alternative term ,Definition信息,但是并看不出来细胞细胞类型之间的关系,甚至连细胞名称都没有。

细胞本体论

细胞本体论被设计为cell 类型的结构化控制词汇表。这个本体论是为模型生物和其他生物信息学数据库的使用而构建的,在这些数据库中需要控制细胞类型的词汇表。这个本体论不是生物体特有的,它涵盖了从原核生物到哺乳动物的细胞类型。但是,它排除了PO涵盖的植物细胞类型。详情请参阅网站http://cellontology.org。

让我们回到2017年的论文,它主要思考了单细胞水平下的细胞本体。在基因组学方面,单细胞RNA测序允许对数千个单个细胞的完整转录谱进行量化,揭示了细胞表型的复杂性,而这在几年前还未得到重视。此外,陈-扎克伯格倡议支持的“人类细胞图谱”(www.humancellatlas.org)等重大新研究项目也推动了发现的快速步伐。

因此,出现了几个主要的挑战,限制了知识表示以至于跟不上这些新兴技术输出的能力。首先,缺乏标准化的标记(marker)用于确定哪些细胞类型,这很难让不同实验室的结果直接做比较。其次,在单细胞RNA测序技术的情况下,以一种不带偏见的方式检测所有可检测的转录本,困难的是定量和统计以识别我们是否观察到相同的细胞类型。于是,文中提供了示例生成的数据如何被不同的实验平台用来识别新的细胞类型,同时提出如何使用这些数据来增强CL,可以用来统计比较定量细胞类型定义来确定细胞类型的身份。

细胞本体中的细胞类型表示。 a.扩展的is_a是单核细胞分支的层次结构。 b. 扩展的是树突状细胞分支的层次结构。 c. 树突状细胞的细胞类型术语记录的一个例子。

这套细胞类型的语义体系无疑对我们认识描述刻画细胞类型是大有裨益的,尽管,我们还不能很好地区分细胞类型与细胞状态(Cell types versus cell states)。

一个基本的问题也出现在考虑如何区分离散的细胞类型和更多的细胞状态。很明显,除了细胞分化的程序化过程外,细胞通过微妙地改变其表型状态,不断地对环境的变化作出反应和适应。在造血系统的情况下,细胞经常响应他们的环境激活特定效应功能,以重建正常的稳态。问题是,表征这种反应的表型细胞变化是否代表一种新的细胞类型,亦或只是一种细胞类型的不同状态?

这个问题,我们采取【搁置争议,共同开发】的策略,先把细胞类型描述清楚再说吧。

细胞周期本体

细胞周期本体(The Cell Cycle Ontology, http://www.CellCycleOntology.org)是一个应用程序本体,它自动捕获和集成关于细胞周期过程的详细知识。细胞周期本体由语义web技术支持,可以通过web进行浏览、可视化、高级查询和计算推理。细胞周期本体论简化了细胞周期相关分子网络组件的详细分析。通过查询和自动推理,它可能提供新的假设,以帮助引导一个系统生物学方法的生物网络建设。

癌症细胞本体论

同样,参考细胞本体,我们希望开发一套描述肿瘤样本细胞类型的语义体系。于是,为什么我们不可以构建一个癌细胞本体呢?

病理学家和分子生物学家说着不同的语言——即使他们在谈论同样的事情。肿瘤活检和切除的基本外科病理学已经从基本癌症生物学发展而来,因此外科病理学和分子生物学才刚刚开始融合。我们的目标是OncoCL提供一种共享的语言。

我们已经开发了一个本体,OncoCL,来描述癌细胞,并提供一个框架来一致的注释癌症相关的基因组和表型数据。OncoCL在癌症起始阶段和癌症进展的关键阶段捕获肿瘤发生的sp的时间、组织病理学和分子特性

我们的方法的概念基础是,癌症细胞表型源自于Hanahan和Weinberg所描述的基于获得癌症特征的一系列改变。我们实现了一个基于缺省逻辑表示连接到现有的细胞本体(CL)的代表正常细胞类型,作为 “cell of origin’”——也就是说,一个正常的/规范的细胞类型,维护其正常,直到经历onco-genic变化特征。

显然,这样的思考是有益的,但是道路是曲折的。鉴于肿瘤的异质性,这个本体论目前还没有很好的数据库,我相信,单细胞技术既然挑战了肿瘤细胞类型的异质性,也必将为自身带来的挑战给出新的启发。

ontoProc

在看了那么多细胞本体之后,让我们来借助R包ontoProc一探细胞本体的究竟。

单细胞生物学的雄心只有通过许多团体的协调努力才能实现,以帮助阐明细胞类型和在一系列功能和环境背景下的动态。在这种追求中,使用形式本体论是很有动机的,而且研究进展也很可观。

  • Bakken et al. (2017) discuss “strategies for standardized cell type representations based on the data outputs from [high-content flow cytometry and single cell RNA sequencing], including ‘context annotations’ in the form of standardized experiment metadata about the specimen source analyzed and marker genes that serve as the most useful features in machine learning-based cell type classification models.”
  • Aevermann et al. (2018) describe how the FAIR principles can be implemented using statistical identification of necessary and sufficient conditions for determining cell class membership. They propose that Cell Ontology can be transformed to a broadly usable knowledgebase through the incorporation of accurate marker gene signatures for cell classes.

在这个小教程中,我们回顾关键的概念和任务。

1if (!requireNamespace("BiocManager", quietly = TRUE))
2    install.packages("BiocManager")
3BiocManager::install("ontoProc")

看看这R包中的本体知识库,下表描述了ontoProc中定义的get*命令可用的资源。

 1packDesc2019
 2    X               func                          purpose nclass nprop nroots                                      datav fmtv
 31   1    getCellLineOnto                Cell line catalog  41780     6     18                                       <NA>   NA
 42   2        getCellOnto            Cell biology concepts   6708    59     38                        releases/2018-07-07  1.2
 53   3 getCellosaurusOnto               Cell line concepts  87311     6  87311                                         23  1.2
 64   4       getChebiLite Chemicals of biological interest 108496     6     12                                        155  1.2
 75   5       getChebiOnto                                  108496    33     12                                        155  1.2
 86   6     getDiseaseOnto                    Human disease  11283    24     13                        releases/2018-06-29  1.2
 97   7         getEFOOnto             Experimental factors  20115     6     36                                       2.87  1.2
108   8        getGeneOnto                    Gene ontology  47123    43     10                        releases/2018-03-27  1.2
119   9         getHCAOnto                 Human cell atlas  11047     6     76                                       <NA>   NA
1210 10    getOncotreeOnto                  Tumor relations   1298    15      3 ncit/releases/2017-12-15/ncit-oncotree.ttl  1.2
1311 11         getPATOnto            Phenotypes and traits   2670    43     21                        releases/2018-11-12  1.2
1412 12          getPROnto                 Protein ontology 315957     6     53                                         57  1.2
1513 13       getUBERON_NE                          Anatomy  14937     6    135                        releases/2017-09-09  1.2

就我们比较关心的细胞类型,看一下包含细胞类型的本体的概念概述。

定义、语义:对于具体性,我们提供了一些定义和例子。我们使用本体论(Ontology)来表示概念领域中使用的术语的系统组织。细胞本体(Cell Ontology)是一种图形化的数据结构,将精心注释的术语作为节点,并按照惯例定义术语之间的语义关系作为边。例如肺纤毛细胞(lung ciliated cell)有URI。这个URI包括一个固定长度的标识符CL_1000271,在遇到它的任何地方都有明确的解释。有一条从肺纤毛细胞(lung ciliated cell)纤毛细胞(ciliated cell)的关系链,然后是原生细胞(native cell),然后是细胞(cell),每个细胞都有自己的URI和相关的解释性元数据。链中较精确项与较不精确项之间的关系表示为子类(SubclassOf)纤毛细胞(Ciliated cell)相当于原生质膜部分有纤毛的原生细胞(native cell)。术语和关系的语义特征用于推断术语之间的关系,这些术语在可用的本体中可能没有直接指定关系。

挑战:鉴于生物本体论中可用的大量材料,在实践中很少使用正式注释,这多少有些令人惊讶。在数据注释中更常见地使用本体的障碍包括

  • (i)有意术语和感兴趣的本体中可用的术语之间不存在精确匹配。
  • (二)本体标识码解码的实际问题。GO标记或CL标记非常适合于编程,但是与标记一起定位相关的自然语言术语或短语比较笨拙。 +(iii)在知识边界所观察到的条件的条款的适宜性不一致的可能性。为了帮助解决这些问题的第一个,Bioconductor的本体论程序包包括一个函数自由映射,它将搜索本体论术语接近一些目标术语或短语。

第二个问题可以用更精细的数据结构在R中进行变量注释和编程来解决,而第三个问题的重要性将随着本体采用的价值在更多的应用中得到体现而降低。

类和实例:将设计和维护本体的实践与使用本体类术语注释概念实例的实践区分开来是很重要的。本体和一组注释实例的组合称为知识库。为了说明这里的一些显著区别,考虑称为A549的细胞系,它是从一个人类肺腺癌样本建立的。在细胞本体中没有提及A549。然而,A549作为“智人细胞系”类的一个亚类存在于EBI实验因子本体论中。这大概是因为A549是一类被广泛应用于实验的细胞,而这个细胞系构成了一个值得在实验因子的全局中绘制的概念。在与细胞结构和功能本身相关的概念中,A549是一个个体,可以通过拥有或缺乏细胞本体论所列举的属性来加以表征,但它并不值得纳入该本体论。

在单细胞转录组数据中应用细胞本体

我们知道,10X基因组公司(10X Genomics corporation)发布了一个数据集,该数据集是对来自健康捐赠者的10000个PBMC进行测序的结果。在Seurat分析的教程中使用了数据子集(Butler等人(2018))。教程分析3000个细胞子集的一个结果是一个细胞类型和基于表达的细胞标识标记表。下表的前三列来自Seurat教程的结尾材料;其余的列是通过在Seurat术语和Cell Ontology中找到的术语之间进行“手动”匹配创建的。

在ontoProc中,这套数据作为示例已经构建好了。

 1 (stab <- seur3kTab())
 2  grp       markers       seurTutType                          formal        tag
 31   0          IL7R       CD4 T cells      CD4-positive helper T cell CL:0000492
 42   1     CD14, LYZ   CD14+ Monocytes          CD14-positive monocyte CL:0001054
 53   2         MS4A1           B cells                          B cell CL:0000236
 64   3          CD8A       CD8 T cells CD8-positive, alpha-beta T cell CL:0000625
 75   4 FCGR3A, MS4A7 FCGR3A+ Monocytes                        monocyte CL:0000576
 86   5    GNLY, NKG7          NK cells             natural killer cell CL:0000623
 97   6  FCER1A, CST3   Dendritic Cells                  dendritic cell CL:0000451
108   7          PPBP    Megakaryocytes                   megakaryocyte CL:0000556

根据上表中非正式选择的标签,我们可以绘制连接相关细胞类型的细胞本体图。ontoProc包通过make_graphNEL_from_ontology_plot向ontologyPlot添加功能。这允许对从本体结构派生的图形使用所有Rgraphviz和igraph可视化工具。

1library(ontoProc)
2cl = getCellOnto()
3onto_plot2(cl, stab$tag)

这不就是我们期望已久的细胞类型之间的关系吗?!这比轨迹推断看起来友好很多啊。

CLfeats函数跟踪给定细胞本体类的关系和属性。简单地说,每个类都可以断言它是其他类的intersection_of, has_part、lacks_part、has_plasma_membrane_part, lacks_plasma_membrane_part可以断言为细胞类型实例和细胞之间保持的关系。这些组成部分通常与蛋白质本体或基因本体相互参照。当蛋白质本体组件具有提供HGNC符号的同义词时,cl专长会检索该符号。在这里,我们获得了成熟的cd1a阳性真皮树突状细胞。

 1(CLfeats(cl, "CL:0002531"))
 2no recognized predicate references for CL:0000738
 3no recognized predicate references for CL:0000988
 4no recognized predicate references for CL:0000766
 5no recognized predicate references for CL:0000219
 6no recognized predicate references for CL:0000003
 7no recognized predicate references for CL:0000000
 8                  tag        prtag     cond                                           entity SYMBOL                                       name
 91          CL:0002531 PR:000001310   hasPMP                                    CD83 molecule   CD83 mature CD1a-positive dermal dendritic cell
102          CL:0002531   GO:0042613  hiPMAmt                     MHC class II protein complex   <NA> mature CD1a-positive dermal dendritic cell
113          CL:0002531 PR:000001412  hiPMAmt                                    CD86 molecule   CD86 mature CD1a-positive dermal dendritic cell
124          CL:0002531 PR:000001438  hiPMAmt                                    CD80 molecule   CD80 mature CD1a-positive dermal dendritic cell
13CL:0002529 CL:0002529 PR:000002025   hasPMP                 T-cell surface glycoprotein CD1a   CD1A        CD1a-positive dermal dendritic cell
1411         CL:0001006 PR:000001012   hasPMP                                 integrin alpha-M  ITGAM                      dermal dendritic cell
1521         CL:0001006 PR:000001026   hasPMP                            lymphocyte antigen 75   LY75                      dermal dendritic cell
1631         CL:0001006 PR:000001084   hasPMP      T-cell surface glycoprotein CD8 alpha chain   CD8A                      dermal dendritic cell
17CL:0000990 CL:0000990 PR:000001013  hiPMAmt                                 integrin alpha-X  ITGAX                conventional dendritic cell
1812         CL:0000451 PR:000001002 lacksPMP                                    CD19 molecule   CD19                             dendritic cell
1922         CL:0000451 PR:000001003 lacksPMP                                    CD34 molecule   CD34                             dendritic cell
2032         CL:0000451 PR:000001020 lacksPMP                                      CD3 epsilon   CD3E                             dendritic cell
2141         CL:0000451 PR:000001024 lacksPMP                  neural cell adhesion molecule 1  NCAM1                             dendritic cell
225          CL:0000451 PR:000001289 lacksPMP membrane-spanning 4-domains subfamily A member 1  MS4A1                             dendritic cell
236          CL:0000451   GO:0042613  hasPart                     MHC class II protein complex   <NA>                             dendritic cell
2413         CL:0001010 PR:000001310   hasPMP                                    CD83 molecule   CD83               mature dermal dendritic cell
2523         CL:0001010   GO:0042613  hiPMAmt                     MHC class II protein complex   <NA>               mature dermal dendritic cell
2633         CL:0001010 PR:000001412  hiPMAmt                                    CD86 molecule   CD86               mature dermal dendritic cell
2742         CL:0001010 PR:000001438  hiPMAmt                                    CD80 molecule   CD80               mature dermal dendritic cell
2814         CL:0000841 PR:000001310   hasPMP                                    CD83 molecule   CD83         mature conventional dendritic cell
2924         CL:0000841   GO:0042613  hiPMAmt                     MHC class II protein complex   <NA>         mature conventional dendritic cell
3034         CL:0000841 PR:000001412  hiPMAmt                                    CD86 molecule   CD86         mature conventional dendritic cell
3143         CL:0000841 PR:000001438  hiPMAmt                                    CD80 molecule   CD80         mature conventional dendritic cell

sym2CellOnto函数有助于在细胞类型的属性或部分中发现给定的基因符号。

 1if (!exists("cl")) cl = getCellOnto()
 2if (!exists("pr")) pr = getPROnto()
 3sym2CellOnto("ITGAM", cl, pr)
 4
 5sym2CellOnto("ITGAM", cl, pr)
 6DataFrame with 64 rows and 4 columns
 7         sym     cond         cl                                                                   type
 8    <factor> <factor>   <factor>                                                               <factor>
 91      ITGAM   hasPMP CL:0000040                                                              monoblast
102      ITGAM   hasPMP CL:0000094                                                            granulocyte
113      ITGAM   hasPMP CL:0000129                                                        microglial cell
124      ITGAM   hasPMP CL:0000559                                                            promonocyte
135      ITGAM   hasPMP CL:0000560                                                   band form neutrophil
14...      ...      ...        ...                                                                    ...
1560     ITGAM  loPMAmt CL:0002345                       CD27-low, CD11b-low immature natural killer cell
1661     ITGAM  loPMAmt CL:0002349                               CD27-high, CD11b-low natural killer cell
1762     ITGAM  loPMAmt CL:0002506                                    liver CD103-positive dendritic cell
1863     ITGAM  loPMAmt CL:0002509            CD103-positive, langerin-positive lymph node dendritic cell
1964     ITGAM  loPMAmt CL:0002511 CD11b-low, CD103-negative, langerin-negative lymph node dendritic cell

用户可以向ontology_index结构添加术语以“扩展”细胞本体。扩展本体的任务在本质上有一部分是官僚主义(bureaucratic )的,它依赖于对集中信息结构的认可和更新的集合。为了允许对界面和新内容进行实验,我们包括了一种将结构类似于细胞本体中认可的新本体“术语”组合到基于本体索引的本体索引实例的方法。

为了演示,我们考虑Bakken等人(2017)关于定义一组新细胞类型的“对角”表达模式的讨论。一组基因被识别出来,细胞通过表达这组基因中的一个来区分。

必要的信息被收集在一个向量中。载体是一组基因,i元素的名称是与表达i基因的细胞类型相关的标签,不表达该集合中的任何其他基因。

1sigels = c("CL:X01"="GRIK3", "CL:X02"="NTNG1", "CL:X03"="BAGE2",
2           "CL:X04"="MC4R", "CL:X05"="PAX6", "CL:X06"="TSPAN12", 
3           "CL:X07"="hSHISA8", "CL:X08"="SNCG", "CL:X09"="ARHGEF28", 
4           "CL:X10"="EGF")

cyclicyclicSigset函数生成一个data.frame实例,将细胞类型与已表达或未表达的基因连接起来。cSigset函数生成一个data.frame实例,将细胞类型与已表达或未表达的基因连接起来。

  1cs = cyclicSigset(sigels)
  2> cs
  3        gene   type     cond
  41   ARHGEF28 CL:X09   hasExp
  52      GRIK3 CL:X09 lacksExp
  63      NTNG1 CL:X09 lacksExp
  74      BAGE2 CL:X09 lacksExp
  85       MC4R CL:X09 lacksExp
  96       PAX6 CL:X09 lacksExp
 107    TSPAN12 CL:X09 lacksExp
 118    hSHISA8 CL:X09 lacksExp
 129       SNCG CL:X09 lacksExp
 1310       EGF CL:X09 lacksExp
 1411     BAGE2 CL:X03   hasExp
 1512     GRIK3 CL:X03 lacksExp
 1613     NTNG1 CL:X03 lacksExp
 1714      MC4R CL:X03 lacksExp
 1815      PAX6 CL:X03 lacksExp
 1916   TSPAN12 CL:X03 lacksExp
 2017   hSHISA8 CL:X03 lacksExp
 2118      SNCG CL:X03 lacksExp
 2219  ARHGEF28 CL:X03 lacksExp
 2320       EGF CL:X03 lacksExp
 2421       EGF CL:X10   hasExp
 2522     GRIK3 CL:X10 lacksExp
 2623     NTNG1 CL:X10 lacksExp
 2724     BAGE2 CL:X10 lacksExp
 2825      MC4R CL:X10 lacksExp
 2926      PAX6 CL:X10 lacksExp
 3027   TSPAN12 CL:X10 lacksExp
 3128   hSHISA8 CL:X10 lacksExp
 3229      SNCG CL:X10 lacksExp
 3330  ARHGEF28 CL:X10 lacksExp
 3431     GRIK3 CL:X01   hasExp
 3532     NTNG1 CL:X01 lacksExp
 3633     BAGE2 CL:X01 lacksExp
 3734      MC4R CL:X01 lacksExp
 3835      PAX6 CL:X01 lacksExp
 3936   TSPAN12 CL:X01 lacksExp
 4037   hSHISA8 CL:X01 lacksExp
 4138      SNCG CL:X01 lacksExp
 4239  ARHGEF28 CL:X01 lacksExp
 4340       EGF CL:X01 lacksExp
 4441   hSHISA8 CL:X07   hasExp
 4542     GRIK3 CL:X07 lacksExp
 4643     NTNG1 CL:X07 lacksExp
 4744     BAGE2 CL:X07 lacksExp
 4845      MC4R CL:X07 lacksExp
 4946      PAX6 CL:X07 lacksExp
 5047   TSPAN12 CL:X07 lacksExp
 5148      SNCG CL:X07 lacksExp
 5249  ARHGEF28 CL:X07 lacksExp
 5350       EGF CL:X07 lacksExp
 5451      MC4R CL:X04   hasExp
 5552     GRIK3 CL:X04 lacksExp
 5653     NTNG1 CL:X04 lacksExp
 5754     BAGE2 CL:X04 lacksExp
 5855      PAX6 CL:X04 lacksExp
 5956   TSPAN12 CL:X04 lacksExp
 6057   hSHISA8 CL:X04 lacksExp
 6158      SNCG CL:X04 lacksExp
 6259  ARHGEF28 CL:X04 lacksExp
 6360       EGF CL:X04 lacksExp
 6461     NTNG1 CL:X02   hasExp
 6562     GRIK3 CL:X02 lacksExp
 6663     BAGE2 CL:X02 lacksExp
 6764      MC4R CL:X02 lacksExp
 6865      PAX6 CL:X02 lacksExp
 6966   TSPAN12 CL:X02 lacksExp
 7067   hSHISA8 CL:X02 lacksExp
 7168      SNCG CL:X02 lacksExp
 7269  ARHGEF28 CL:X02 lacksExp
 7370       EGF CL:X02 lacksExp
 7471      PAX6 CL:X05   hasExp
 7572     GRIK3 CL:X05 lacksExp
 7673     NTNG1 CL:X05 lacksExp
 7774     BAGE2 CL:X05 lacksExp
 7875      MC4R CL:X05 lacksExp
 7976   TSPAN12 CL:X05 lacksExp
 8077   hSHISA8 CL:X05 lacksExp
 8178      SNCG CL:X05 lacksExp
 8279  ARHGEF28 CL:X05 lacksExp
 8380       EGF CL:X05 lacksExp
 8481      SNCG CL:X08   hasExp
 8582     GRIK3 CL:X08 lacksExp
 8683     NTNG1 CL:X08 lacksExp
 8784     BAGE2 CL:X08 lacksExp
 8885      MC4R CL:X08 lacksExp
 8986      PAX6 CL:X08 lacksExp
 9087   TSPAN12 CL:X08 lacksExp
 9188   hSHISA8 CL:X08 lacksExp
 9289  ARHGEF28 CL:X08 lacksExp
 9390       EGF CL:X08 lacksExp
 9491   TSPAN12 CL:X06   hasExp
 9592     GRIK3 CL:X06 lacksExp
 9693     NTNG1 CL:X06 lacksExp
 9794     BAGE2 CL:X06 lacksExp
 9895      MC4R CL:X06 lacksExp
 9996      PAX6 CL:X06 lacksExp
10097   hSHISA8 CL:X06 lacksExp
10198      SNCG CL:X06 lacksExp
10299  ARHGEF28 CL:X06 lacksExp
103100      EGF CL:X06 lacksExp

将data.frame元素转换为OBO术语实例。新OBO术语构建最复杂的是如何正确规范与现有本体组件之间的关系。通过编程方式为对角模式任务生成一个主要由所有术语共享的序言。

1makeIntnProlog = function(id, ...) {
2  # make type-specific prologs as key-value pairs
3  c(  
4    sprintf("id: %s", id),
5    sprintf("name: %s-expressing cortical layer 1 interneuron, human", ...),
6    sprintf("def: '%s-expressing cortical layer 1 interneuron, human described via RNA-seq observations' [PMID 29322913]", ...),
7    "is_a: CL:0000099 ! interneuron",
8    "intersection_of: CL:0000099 ! interneuron")
9}
 1pmap = c("hasExp"="has_expression_of", lacksExp="lacks_expression_of")
 2head(unlist(tms <- ldfToTerms(cs, pmap, sigels, makeIntnProlog)), 20)
 3
 4##  [1] "[Term]"                                                                                                        
 5##  [2] "id: CL:X01"                                                                                                    
 6##  [3] "name: GRIK3-expressing cortical layer 1 interneuron, human"                                                    
 7##  [4] "def: 'GRIK3-expressing cortical layer 1 interneuron, human described via RNA-seq observations' [PMID 29322913]"
 8##  [5] "is_a: CL:0000099 ! interneuron"                                                                                
 9##  [6] "intersection_of: CL:0000099 ! interneuron"                                                                     
10##  [7] "has_expression_of: PR:000008242 ! GRIK3"                                                                       
11##  [8] "lacks_expression_of: PR:000011467 ! NTNG1"                                                                     
12##  [9] "lacks_expression_of: PR:000004625 ! BAGE2"                                                                     
13## [10] "lacks_expression_of: PR:000001237 ! MC4R"                                                                      
14## [11] "lacks_expression_of: PR:000012318 ! PAX6"                                                                      
15## [12] "lacks_expression_of: PR:000016738 ! TSPAN12"                                                                   
16## [13] "lacks_expression_of: PR:B8ZZ34 ! hSHISA8"                                                                      
17## [14] "lacks_expression_of: PR:000015325 ! SNCG"                                                                      
18## [15] "lacks_expression_of: PR:000013942 ! ARHGEF28"                                                                  
19## [16] "lacks_expression_of: PR:000006928 ! EGF"                                                                       
20## [17] "[Term]"                                                                                                        
21## [18] "id: CL:X02"                                                                                                    
22## [19] "name: NTNG1-expressing cortical layer 1 interneuron, human"                                                    
23## [20] "def: 'NTNG1-expressing cortical layer 1 interneuron, human described via RNA-seq observations' [PMID 29322913]"

之后就可以将tms中的内容附加到细胞本体cl的内容中。obo作为文本,用于使用ontologyIndex::get_OBO导入。

对于使用本体进行R编程非常有用的CRAN包是Westbury等人(2015)写的ontologyIndex。这为解析OBO格式的本体以及对文本字段和列表结构执行基本查询提供了易用的函数。

让我们想象一番。想象Cell Ontology的应用场景,最直接的类比就是GO了。所以,是时候应用一套规范的语义来描绘细胞类型了。


References

[1] CD8+CD28- Treg||我就不信就我一个人觉得现有的细胞群命名有点麻烦: https://www.jianshu.com/p/5e6a5ba267c3 [2] 单细胞数据科学的十一个重大挑战: https://www.jianshu.com/p/ba7cab8cc7dd [3] Cell type discovery and representation in the era of high-content single cell phenotyping: https://bmcbioinformatics.biomedcentral.com/articles/10.1186/s12859-017-1977-1 [4] 细胞类型鉴定|| 你要的SingleR教程,一本书够不够: https://www.jianshu.com/p/163112e7b410 [5] 传代: https://baike.baidu.com/item/%E4%BC%A0%E4%BB%A3 [6] 无限细胞系: https://baike.baidu.com/item/%E6%97%A0%E9%99%90%E7%BB%86%E8%83%9E%E7%B3%BB [7] ontobee: http://www.ontobee.org [8] www.humancellatlas.org :http://www.humancellatlas.org [9] http://www.CellCycleOntology.org [10] he Cell Ontology is a structured controlled vocabulary for cell types in animals.: http://www.obofoundry.org/ontology/cl.html [11] Gene Ontology overview: http://geneontology.org/docs/ontology-documentation/ [12] Cell Line Ontology:Redesigning the Cell Line Knowledgebase to Aid Integrative Translational Informatics: https://links.jianshu.com/go?to=http%3A%2F%2Fwww.hegroup.org%2Fdocs%2FCLO_ICBO-2011_Proceeding.pdf [13] OncoCL: A Cancer Cell Ontology: http://ceur-ws.org/Vol-1060/icbo2013_submission_75.pdf [14] The Cell Cycle Ontology: an application ontology for the representation and integrated analysis of the cell cycle process: https://genomebiology.biomedcentral.com/articles/10.1186/gb-2009-10-5-r58 [15] Cell type discovery and representation in the era of high-content single cell phenotyping: https://bmcbioinformatics.biomedcentral.com/articles/10.1186/s12859-017-1977-1 [16] The Cell Ontology is a structured controlled vocabulary for cell types in animals.: http://www.ontobee.org/ontology/CL [17] ontologies: http://bioportal.bioontology.org/ontologies/CL [18] vignettes||ontoProc: https://bioconductor.org/packages/release/bioc/vignettes/ontoProc/inst/doc/ontoProc.html

本文分享自微信公众号 - 单细胞天地(sc-ngs),作者:周运来

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-07-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 细菌性败血症的免疫细胞特征

    当你的才华还撑不起你的野心时,请潜下心来,脚踏实地,跟着我们慢慢进步。不知不觉在单细胞转录组领域做知识分析也快两年了,通过文献速递这个栏目很幸运聚集了一些小伙伴...

    生信技能树jimmy
  • 单细胞助力分析靶向治疗药物性超敏反应综合征

    今天介绍的文献于2020年1月20发表在natrure medicine 上,文章题目是:Targeted therapy guided by single-c...

    生信技能树jimmy
  • 单细胞转录组高级分析三:细胞通讯分析

    细胞通讯研究领域涵盖的内容很广,如上图所示包括通讯方式、功能、信号分子以及各种途径的机制。细胞之间通讯的介质有很多,例如钙离子、脂质、多肽、蛋白、外泌体以及电信...

    生信技能树jimmy
  • 设计模式-桥接模式

    cwl_java
  • 设计模式之生成器模式(Builder Pattern)生成器模式的优缺点生成器模式的实际应用生成器模式与工厂模式的不同

    虽然我们具体在构建一台主机的时候,每个对象的实际步骤是不一样的,比如,有的对象构建了i7cpu的主机,有的对象构建了i5cpu的主机,有的对象构建了普通键盘,有...

    desperate633
  • java:基于volatile和Thread Local Storage的双重检查锁定实现延迟初始化

    总在同一个地方栽坑里是不可原谅的,以本文做个记录,以防下次再犯。 下面这段很简单的基于双重检查锁定(Double-checked locking)实现的延迟...

    用户1148648
  • java:基于volatile和Thread Local Storage的双重检查锁定实现延迟初始化

    版权声明:本文为博主原创文章,转载请注明源地址。 https://blog.csdn.net...

    用户1148648
  • LNK2019:win32下编写DLL,应用程序找不到DLL接口函数的一种情况

    版权声明:本文为博主原创文章,转载请注明源地址。 https://blog.csdn.net...

    用户1148648
  • 不了解这12个语法糖,别说你会Java!

    本文从 Java 编译原理角度,深入字节码及 class 文件,抽丝剥茧,了解 Java 中的语法糖原理及用法,帮助大家在学会如何使用 Java 语法糖的同时,...

    java架构师
  • 使用Oracle外部表对大文件排序

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.n...

    用户1148526

扫码关注云+社区

领取腾讯云代金券