生物信息学的一个常见任务是沿着基因组坐标创建基因组数据的可视化,以及必要的基因组注释特征,如在同一坐标上的基因和转录本,以便理解这些数据。
通常,这可以通过基于浏览器的基因组浏览器(如UCSC基因组浏览器或IGV)来完成,这需要从R中导出数据。Gviz
而且ggbio
.
虽然生物导体具有擅长表示和分析此类基因组数据的软件包,但缺乏灵活和交互式的方式来查看它们。有时不需要全功能的基因组浏览器,而是一种快速方便的方式来查看通常由R对象表示的数据。它还应该是交互式的,以帮助探索,例如它可以拖拽,它可以使工具提示快速获得关于单独功能的详细信息。
这就是TnT的动机:它旨在提供一种交互式和灵活的方法来可视化r中的基因组数据。为了实现这一目标,TnT包装了TnT javascript库并提供对表示基因组数据的常见生物导体类(例如GRanges, TxDb)的绑定。的TnT javascript库R包所基于的是一组javascript库,用于可视化基于树和轨迹的注释,可以用来创建一个简单的基因组浏览器。
TnT是一个新的包装,任何反馈或建议都将不胜感激,请电子邮件给Jialin Ma <马林-@gmx.cn>。您还可以在这里找到源存储库https://github.com/marlin-na/TnT文档网站在http://tnt.marlin.pub.这个小插图也将在未来扩展,以包括更多的细节。
您可以从Bioconductor安装稳定版本的TnT:
或者,从github安装devel版本:
然后附上包裹。
本文假设读者对生物导体中的常见数据结构有一定的了解农庄
类GenomicRanges
包中。
总的来说,这个包的工作原理是从数据(GRanges、TxDb、EnsDb等)构建音轨,然后从音轨列表构建tnt板。
因此,第一步是选择一个轨道构造函数,并使用它从数据中构造轨道。这个包为不同的特性和数据类型提供了不同的构造函数。
作为一个简单的例子,构造一个来自GRanges对象的块轨道
gr < -GenomicRanges::农庄(“chr7”,范围=IRanges(开始=c(26549019l、26564119l、26585667l、26591772l、26594192l、26623835l、26659284l, 26721294l, 26821518l, 26991322l),结束=c(26550183l, 26564500l, 26586158l, 26593309l, 26594570l, 26624150l,26660352l, 26721717l, 26823297l, 26991841l)),ID =1:10,Name =粘贴(“我的范围”,1:10))btrack < -三硝基甲苯::BlockTrack(gr)btrack
##一个BlockTrack ## |标签:gr# # |背景:缺失,使用“白色”## |高度:30 ## |数据:## | seqnames start end width strand工具提示。ID工具提示。名字# # | <因素> <整数> <整数> <整数> <因素> <整数> <人物> # # | 1 chr7 26549019 26550183 1165 * 1我的范围1 # # | 2 chr7 26564119 26564500 382 * 2我2 # # | 3 chr7 492 26586158 26585667 * 3我的范围3 # # | 4 chr7 26591772 26593309 1538 * 4我范围4 # # | 5 chr7 26594192 26594570 379 * 5我的范围5 # # | 6 chr7 26623835 26624150 316 * 6我范围6 # # | 7 chr7 26659284 26660352 1069 * 7我的射程7 # # | 8 chr7 26721294 26721717 424 * 8我的8 # # | 9 chr7范围2682151826823297 1780 * 9我的范围9 ## | chr7 26991322 26991841 520 * 10我的范围10 ## b|颜色键## | <字符> <整数> ## | 1蓝色1 ## | 2蓝色2 ## | 3蓝色3 ## | 4蓝色4 ## | 5蓝色5 ## | 6蓝色6 ## | 7蓝色7 ## | 9蓝色9 ## | 10蓝色10
如您所见,grange的元列已转换为跟踪数据中的工具提示列。这是默认参数行为,请参见
## function (range, label = deparse(substitute(range)), tooltip = mcols(range), ## color = "blue", background = NULL, height = 30) ## NULL
的工具提示
可以给出一个与数据帧平行的数据,则颜色
参数也可以是平行于每个单独范围的数据设置颜色的字符向量。
为了查看音轨,只需将该音轨放入TnTBoard/TnTGenome:
## -缺少参数的视图。Range ': ##自动选择26493666..27047193 on seqlevel chr7…
## -缺少参数coord。Range '和seqlength是未知的:##自动设置坐标限制为26454128..27086731……
您可以拖动移动,滚动缩放和单击功能来查看工具提示。
类似地,不同特征的轨迹可以用其他构造函数构造。下面的表格显示了这些构造函数及其数据源。还提供了每个轨道类型示例的链接,建议您浏览它们。
构造函数 | 源 | 功能类型 | 例子 |
---|---|---|---|
BlockTrack | 农庄 | 块 | 块跟踪 |
VlineTrack | 宽为农庄 | vline | Vline跟踪 |
PinTrack | 宽度-一个GRanges与值配对 | 销 | 销跟踪 |
LineTrack | 宽度-一个GRanges与值配对 | 行 | 线路及区域轨道 |
AreaTrack | 宽度-一个GRanges与值配对 | 区域 | 线路及区域轨道 |
GeneTrackFromTxDb | TxDb | 基因 | 基因轨道和特征轨道 |
FeatureTrack | 农庄 | 基因 | 基因轨道和特征轨道 |
GroupFeatureTrack | GRangesList | tx | Tx跟踪和GroupFeatureTrack |
TxTrackFromTxDb | TxDb | tx | Tx跟踪和GroupFeatureTrack |
TxTrackFromGRanges | GRanges与' type '和' tx_id '配对 | tx | Tx跟踪和GroupFeatureTrack |
合并 | 两个或更多轨道 | 复合 | 复合跟踪 |
在这里值得一提的是CompositeTrack:你可以合并
多个轨道来构造一个CompositeTrack,这样不同类型的特征可以在一个轨道中显示。看例子在这里.
给定一个构造好的轨道,我们可能想要访问或修改它的数据和选项。
所有类型的轨道有三种常见的选择,它们是背景
,高度
而且标签
.这三个选项可以通过trackSpec
而且trackSpec < -
.例如:
# #空
btrack2 < -btrack三硝基甲苯::trackSpec(btrack2“背景”) < -“blanchedalmond”三硝基甲苯::trackSpec(btrack2“标签”) < -“我的范围”三硝基甲苯::trackSpec(btrack2“高度”) < -50
履带数据通常存储在继承的类中农庄
(除了CompositeTrack,其中数据存储为曲目列表),并且可以通过trackData
或trackData < -
.也有一些便捷的捷径跟踪美元的名字
而且跟踪$name <- value
为trackData(跟踪)美元的名字
而且trackData(track)$name <- value
,分别。举个例子:
# #[1]“蓝色”“蓝”“蓝”“蓝”“蓝”“蓝”“蓝”“蓝”“蓝”“蓝”
作为一个例子,让我们也修改数据:
最后,我们把修改后的轨道和原来的轨道放在一起,看看有什么不同。
## -缺少参数的视图。范围':##自动选择26504916..27045943 on seqlevel chr7…
## -缺少参数coord。Range '和seqlength未知:##自动设置坐标限制为26451985..27098874……
我们想要修改的另一个东西是工具提示。通过构造函数构造轨迹(除了那些从TxDb构造的),工具提示可以作为平行于数据的数据帧给出。轨迹构建后,工具提示可以通过工具提示(跟踪)
哪条是去的近路trackData(跟踪)美元工具提示
.例如:
三硝基甲苯::工具提示(btrack2) < -cbind(TnT::工具提示(btrack2),as.data.frame(TnT::trackData(btrack2)))三硝基甲苯::TnTGenome(btrack2view.range=三硝基甲苯::trackData(btrack2) [4]*0。)
## -缺少参数coord。Range '和seqlength是未知的:##自动设置坐标限制为26464128..27096731……
尝试单击该块以查看工具提示。
在前面的例子中,我们已经看到了如何使用TnTBoard或TnTGenome显示轨迹。TnTBoard存储轨道列表,并以相同的坐标显示它们。您可能已经注意到TnTBoard和TnTGenome之间的区别:TnTGenome只是一个带有轴和位置标签的TnTBoard。
在这一部分中,我将介绍一些可以选择性地提供的参数来控制董事会。它们是:
view.range
: GRanges,设置初始视图范围。coord.range
: IRanges或numeric,用于设置坐标限制。zoom.allow
: IRanges或numeric,用于设置放大和缩小时的范围限制。allow.drag
:逻辑上,如果为FALSE,板子将不能移动或缩放。以防view.range
,coord.range
而且zoom.allow
没有提供,TnT将猜测他们。一些考虑事项是:
view.range
:尝试使用所有音轨都有特征的seqlevel,并尝试使用所有音轨的范围的交集。coord.range
:如果seqinfo
的轨迹seqlengths
可用,然后使用1到seqlength作为坐标范围。如果没有,尝试基于特征的范围(即覆盖该seqlevel上的所有特征)来查找。下面是使用这些参数的例子: