记得在文章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.
在这个小教程中,我们回顾关键的概念和任务。
if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("ontoProc")
看看这R包中的本体知识库,下表描述了ontoProc中定义的get*命令可用的资源。
packDesc2019
X func purpose nclass nprop nroots datav fmtv
1 1 getCellLineOnto Cell line catalog 41780 6 18 <NA> NA
2 2 getCellOnto Cell biology concepts 6708 59 38 releases/2018-07-07 1.2
3 3 getCellosaurusOnto Cell line concepts 87311 6 87311 23 1.2
4 4 getChebiLite Chemicals of biological interest 108496 6 12 155 1.2
5 5 getChebiOnto 108496 33 12 155 1.2
6 6 getDiseaseOnto Human disease 11283 24 13 releases/2018-06-29 1.2
7 7 getEFOOnto Experimental factors 20115 6 36 2.87 1.2
8 8 getGeneOnto Gene ontology 47123 43 10 releases/2018-03-27 1.2
9 9 getHCAOnto Human cell atlas 11047 6 76 <NA> NA
10 10 getOncotreeOnto Tumor relations 1298 15 3 ncit/releases/2017-12-15/ncit-oncotree.ttl 1.2
11 11 getPATOnto Phenotypes and traits 2670 43 21 releases/2018-11-12 1.2
12 12 getPROnto Protein ontology 315957 6 53 57 1.2
13 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中,这套数据作为示例已经构建好了。
(stab <- seur3kTab())
grp markers seurTutType formal tag
1 0 IL7R CD4 T cells CD4-positive helper T cell CL:0000492
2 1 CD14, LYZ CD14+ Monocytes CD14-positive monocyte CL:0001054
3 2 MS4A1 B cells B cell CL:0000236
4 3 CD8A CD8 T cells CD8-positive, alpha-beta T cell CL:0000625
5 4 FCGR3A, MS4A7 FCGR3A+ Monocytes monocyte CL:0000576
6 5 GNLY, NKG7 NK cells natural killer cell CL:0000623
7 6 FCER1A, CST3 Dendritic Cells dendritic cell CL:0000451
8 7 PPBP Megakaryocytes megakaryocyte CL:0000556
根据上表中非正式选择的标签,我们可以绘制连接相关细胞类型的细胞本体图。ontoProc包通过make_graphNEL_from_ontology_plot向ontologyPlot添加功能。这允许对从本体结构派生的图形使用所有Rgraphviz和igraph可视化工具。
library(ontoProc)
cl = getCellOnto()
onto_plot2(cl, stab$tag)

这不就是我们期望已久的细胞类型之间的关系吗?!这比轨迹推断看起来友好很多啊。
CLfeats函数跟踪给定细胞本体类的关系和属性。简单地说,每个类都可以断言它是其他类的intersection_of, has_part、lacks_part、has_plasma_membrane_part, lacks_plasma_membrane_part可以断言为细胞类型实例和细胞之间保持的关系。这些组成部分通常与蛋白质本体或基因本体相互参照。当蛋白质本体组件具有提供HGNC符号的同义词时,cl专长会检索该符号。在这里,我们获得了成熟的cd1a阳性真皮树突状细胞。
(CLfeats(cl, "CL:0002531"))
no recognized predicate references for CL:0000738
no recognized predicate references for CL:0000988
no recognized predicate references for CL:0000766
no recognized predicate references for CL:0000219
no recognized predicate references for CL:0000003
no recognized predicate references for CL:0000000
tag prtag cond entity SYMBOL name
1 CL:0002531 PR:000001310 hasPMP CD83 molecule CD83 mature CD1a-positive dermal dendritic cell
2 CL:0002531 GO:0042613 hiPMAmt MHC class II protein complex <NA> mature CD1a-positive dermal dendritic cell
3 CL:0002531 PR:000001412 hiPMAmt CD86 molecule CD86 mature CD1a-positive dermal dendritic cell
4 CL:0002531 PR:000001438 hiPMAmt CD80 molecule CD80 mature CD1a-positive dermal dendritic cell
CL:0002529 CL:0002529 PR:000002025 hasPMP T-cell surface glycoprotein CD1a CD1A CD1a-positive dermal dendritic cell
11 CL:0001006 PR:000001012 hasPMP integrin alpha-M ITGAM dermal dendritic cell
21 CL:0001006 PR:000001026 hasPMP lymphocyte antigen 75 LY75 dermal dendritic cell
31 CL:0001006 PR:000001084 hasPMP T-cell surface glycoprotein CD8 alpha chain CD8A dermal dendritic cell
CL:0000990 CL:0000990 PR:000001013 hiPMAmt integrin alpha-X ITGAX conventional dendritic cell
12 CL:0000451 PR:000001002 lacksPMP CD19 molecule CD19 dendritic cell
22 CL:0000451 PR:000001003 lacksPMP CD34 molecule CD34 dendritic cell
32 CL:0000451 PR:000001020 lacksPMP CD3 epsilon CD3E dendritic cell
41 CL:0000451 PR:000001024 lacksPMP neural cell adhesion molecule 1 NCAM1 dendritic cell
5 CL:0000451 PR:000001289 lacksPMP membrane-spanning 4-domains subfamily A member 1 MS4A1 dendritic cell
6 CL:0000451 GO:0042613 hasPart MHC class II protein complex <NA> dendritic cell
13 CL:0001010 PR:000001310 hasPMP CD83 molecule CD83 mature dermal dendritic cell
23 CL:0001010 GO:0042613 hiPMAmt MHC class II protein complex <NA> mature dermal dendritic cell
33 CL:0001010 PR:000001412 hiPMAmt CD86 molecule CD86 mature dermal dendritic cell
42 CL:0001010 PR:000001438 hiPMAmt CD80 molecule CD80 mature dermal dendritic cell
14 CL:0000841 PR:000001310 hasPMP CD83 molecule CD83 mature conventional dendritic cell
24 CL:0000841 GO:0042613 hiPMAmt MHC class II protein complex <NA> mature conventional dendritic cell
34 CL:0000841 PR:000001412 hiPMAmt CD86 molecule CD86 mature conventional dendritic cell
43 CL:0000841 PR:000001438 hiPMAmt CD80 molecule CD80 mature conventional dendritic cell
sym2CellOnto函数有助于在细胞类型的属性或部分中发现给定的基因符号。
if (!exists("cl")) cl = getCellOnto()
if (!exists("pr")) pr = getPROnto()
sym2CellOnto("ITGAM", cl, pr)
sym2CellOnto("ITGAM", cl, pr)
DataFrame with 64 rows and 4 columns
sym cond cl type
<factor> <factor> <factor> <factor>
1 ITGAM hasPMP CL:0000040 monoblast
2 ITGAM hasPMP CL:0000094 granulocyte
3 ITGAM hasPMP CL:0000129 microglial cell
4 ITGAM hasPMP CL:0000559 promonocyte
5 ITGAM hasPMP CL:0000560 band form neutrophil
... ... ... ... ...
60 ITGAM loPMAmt CL:0002345 CD27-low, CD11b-low immature natural killer cell
61 ITGAM loPMAmt CL:0002349 CD27-high, CD11b-low natural killer cell
62 ITGAM loPMAmt CL:0002506 liver CD103-positive dendritic cell
63 ITGAM loPMAmt CL:0002509 CD103-positive, langerin-positive lymph node dendritic cell
64 ITGAM loPMAmt CL:0002511 CD11b-low, CD103-negative, langerin-negative lymph node dendritic cell
用户可以向ontology_index结构添加术语以“扩展”细胞本体。扩展本体的任务在本质上有一部分是官僚主义(bureaucratic )的,它依赖于对集中信息结构的认可和更新的集合。为了允许对界面和新内容进行实验,我们包括了一种将结构类似于细胞本体中认可的新本体“术语”组合到基于本体索引的本体索引实例的方法。
为了演示,我们考虑Bakken等人(2017)关于定义一组新细胞类型的“对角”表达模式的讨论。一组基因被识别出来,细胞通过表达这组基因中的一个来区分。

必要的信息被收集在一个向量中。载体是一组基因,i元素的名称是与表达i基因的细胞类型相关的标签,不表达该集合中的任何其他基因。
sigels = c("CL:X01"="GRIK3", "CL:X02"="NTNG1", "CL:X03"="BAGE2",
"CL:X04"="MC4R", "CL:X05"="PAX6", "CL:X06"="TSPAN12",
"CL:X07"="hSHISA8", "CL:X08"="SNCG", "CL:X09"="ARHGEF28",
"CL:X10"="EGF")
cyclicyclicSigset函数生成一个data.frame实例,将细胞类型与已表达或未表达的基因连接起来。cSigset函数生成一个data.frame实例,将细胞类型与已表达或未表达的基因连接起来。
cs = cyclicSigset(sigels)
> cs
gene type cond
1 ARHGEF28 CL:X09 hasExp
2 GRIK3 CL:X09 lacksExp
3 NTNG1 CL:X09 lacksExp
4 BAGE2 CL:X09 lacksExp
5 MC4R CL:X09 lacksExp
6 PAX6 CL:X09 lacksExp
7 TSPAN12 CL:X09 lacksExp
8 hSHISA8 CL:X09 lacksExp
9 SNCG CL:X09 lacksExp
10 EGF CL:X09 lacksExp
11 BAGE2 CL:X03 hasExp
12 GRIK3 CL:X03 lacksExp
13 NTNG1 CL:X03 lacksExp
14 MC4R CL:X03 lacksExp
15 PAX6 CL:X03 lacksExp
16 TSPAN12 CL:X03 lacksExp
17 hSHISA8 CL:X03 lacksExp
18 SNCG CL:X03 lacksExp
19 ARHGEF28 CL:X03 lacksExp
20 EGF CL:X03 lacksExp
21 EGF CL:X10 hasExp
22 GRIK3 CL:X10 lacksExp
23 NTNG1 CL:X10 lacksExp
24 BAGE2 CL:X10 lacksExp
25 MC4R CL:X10 lacksExp
26 PAX6 CL:X10 lacksExp
27 TSPAN12 CL:X10 lacksExp
28 hSHISA8 CL:X10 lacksExp
29 SNCG CL:X10 lacksExp
30 ARHGEF28 CL:X10 lacksExp
31 GRIK3 CL:X01 hasExp
32 NTNG1 CL:X01 lacksExp
33 BAGE2 CL:X01 lacksExp
34 MC4R CL:X01 lacksExp
35 PAX6 CL:X01 lacksExp
36 TSPAN12 CL:X01 lacksExp
37 hSHISA8 CL:X01 lacksExp
38 SNCG CL:X01 lacksExp
39 ARHGEF28 CL:X01 lacksExp
40 EGF CL:X01 lacksExp
41 hSHISA8 CL:X07 hasExp
42 GRIK3 CL:X07 lacksExp
43 NTNG1 CL:X07 lacksExp
44 BAGE2 CL:X07 lacksExp
45 MC4R CL:X07 lacksExp
46 PAX6 CL:X07 lacksExp
47 TSPAN12 CL:X07 lacksExp
48 SNCG CL:X07 lacksExp
49 ARHGEF28 CL:X07 lacksExp
50 EGF CL:X07 lacksExp
51 MC4R CL:X04 hasExp
52 GRIK3 CL:X04 lacksExp
53 NTNG1 CL:X04 lacksExp
54 BAGE2 CL:X04 lacksExp
55 PAX6 CL:X04 lacksExp
56 TSPAN12 CL:X04 lacksExp
57 hSHISA8 CL:X04 lacksExp
58 SNCG CL:X04 lacksExp
59 ARHGEF28 CL:X04 lacksExp
60 EGF CL:X04 lacksExp
61 NTNG1 CL:X02 hasExp
62 GRIK3 CL:X02 lacksExp
63 BAGE2 CL:X02 lacksExp
64 MC4R CL:X02 lacksExp
65 PAX6 CL:X02 lacksExp
66 TSPAN12 CL:X02 lacksExp
67 hSHISA8 CL:X02 lacksExp
68 SNCG CL:X02 lacksExp
69 ARHGEF28 CL:X02 lacksExp
70 EGF CL:X02 lacksExp
71 PAX6 CL:X05 hasExp
72 GRIK3 CL:X05 lacksExp
73 NTNG1 CL:X05 lacksExp
74 BAGE2 CL:X05 lacksExp
75 MC4R CL:X05 lacksExp
76 TSPAN12 CL:X05 lacksExp
77 hSHISA8 CL:X05 lacksExp
78 SNCG CL:X05 lacksExp
79 ARHGEF28 CL:X05 lacksExp
80 EGF CL:X05 lacksExp
81 SNCG CL:X08 hasExp
82 GRIK3 CL:X08 lacksExp
83 NTNG1 CL:X08 lacksExp
84 BAGE2 CL:X08 lacksExp
85 MC4R CL:X08 lacksExp
86 PAX6 CL:X08 lacksExp
87 TSPAN12 CL:X08 lacksExp
88 hSHISA8 CL:X08 lacksExp
89 ARHGEF28 CL:X08 lacksExp
90 EGF CL:X08 lacksExp
91 TSPAN12 CL:X06 hasExp
92 GRIK3 CL:X06 lacksExp
93 NTNG1 CL:X06 lacksExp
94 BAGE2 CL:X06 lacksExp
95 MC4R CL:X06 lacksExp
96 PAX6 CL:X06 lacksExp
97 hSHISA8 CL:X06 lacksExp
98 SNCG CL:X06 lacksExp
99 ARHGEF28 CL:X06 lacksExp
100 EGF CL:X06 lacksExp
将data.frame元素转换为OBO术语实例。新OBO术语构建最复杂的是如何正确规范与现有本体组件之间的关系。通过编程方式为对角模式任务生成一个主要由所有术语共享的序言。
makeIntnProlog = function(id, ...) {
# make type-specific prologs as key-value pairs
c(
sprintf("id: %s", id),
sprintf("name: %s-expressing cortical layer 1 interneuron, human", ...),
sprintf("def: '%s-expressing cortical layer 1 interneuron, human described via RNA-seq observations' [PMID 29322913]", ...),
"is_a: CL:0000099 ! interneuron",
"intersection_of: CL:0000099 ! interneuron")
}
pmap = c("hasExp"="has_expression_of", lacksExp="lacks_expression_of")
head(unlist(tms <- ldfToTerms(cs, pmap, sigels, makeIntnProlog)), 20)
## [1] "[Term]"
## [2] "id: CL:X01"
## [3] "name: GRIK3-expressing cortical layer 1 interneuron, human"
## [4] "def: 'GRIK3-expressing cortical layer 1 interneuron, human described via RNA-seq observations' [PMID 29322913]"
## [5] "is_a: CL:0000099 ! interneuron"
## [6] "intersection_of: CL:0000099 ! interneuron"
## [7] "has_expression_of: PR:000008242 ! GRIK3"
## [8] "lacks_expression_of: PR:000011467 ! NTNG1"
## [9] "lacks_expression_of: PR:000004625 ! BAGE2"
## [10] "lacks_expression_of: PR:000001237 ! MC4R"
## [11] "lacks_expression_of: PR:000012318 ! PAX6"
## [12] "lacks_expression_of: PR:000016738 ! TSPAN12"
## [13] "lacks_expression_of: PR:B8ZZ34 ! hSHISA8"
## [14] "lacks_expression_of: PR:000015325 ! SNCG"
## [15] "lacks_expression_of: PR:000013942 ! ARHGEF28"
## [16] "lacks_expression_of: PR:000006928 ! EGF"
## [17] "[Term]"
## [18] "id: CL:X02"
## [19] "name: NTNG1-expressing cortical layer 1 interneuron, human"
## [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了。所以,是时候应用一套规范的语义来描绘细胞类型了。
he Cell Ontology is a structured controlled vocabulary for cell types in animals.
Gene Ontology overview
Cell Line Ontology:Redesigning the Cell Line Knowledgebase to Aid Integrative Translational Informatics
OncoCL: A Cancer Cell Ontology
The Cell Cycle Ontology: an application ontology for the representation and integrated analysis of the cell cycle process
Cell type discovery and representation in the era of high-content single cell phenotyping
The Cell Ontology is a structured controlled vocabulary for cell types in animals.
ontologies
vignettes||ontoProc