分享是一种态度
作者 | 周运来
男,
一个长大了才会遇到的帅哥,
稳健,潇洒,大方,靠谱。
一段生信缘,一棵技能树,
一枚大型测序工厂的螺丝钉,
一个随机森林中提灯觅食的津门旅客。
记得在文章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的时代,细胞生物学家为了描述细胞系及其相互关系的时候有意无意地开始构建细胞系本体论。
插播名词解释:
细胞系本体论(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变化特征。
显然,这样的思考是有益的,但是道路是曲折的。鉴于肿瘤的异质性,这个本体论目前还没有很好的数据库,我相信,单细胞技术既然挑战了肿瘤细胞类型的异质性,也必将为自身带来的挑战给出新的启发。
在看了那么多细胞本体之后,让我们来借助R包ontoProc一探细胞本体的究竟。
单细胞生物学的雄心只有通过许多团体的协调努力才能实现,以帮助阐明细胞类型和在一系列功能和环境背景下的动态。在这种追求中,使用形式本体论是很有动机的,而且研究进展也很可观。
在这个小教程中,我们回顾关键的概念和任务。
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)
。术语和关系的语义特征用于推断术语之间的关系,这些术语在可用的本体中可能没有直接指定关系。
挑战:鉴于生物本体论中可用的大量材料,在实践中很少使用正式注释,这多少有些令人惊讶。在数据注释中更常见地使用本体的障碍包括
第二个问题可以用更精细的数据结构在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