TnT概论

总部位于马

2017年8月22日

动机

生物信息学中的一个常见任务是创建可视化的基因组数据基因组坐标,连同必要的基因组注释功能基因和转录在同一坐标,为了理解这些数据。

通常情况下,这可以通过一个基于浏览器的基因组浏览器像UCSC基因组浏览器或进口,这就需要从R .导出数据也有R包开发解决这个问题但是使用静态图,如Gvizggbio

虽然bioconductor包擅长代表和分析这样的基因组数据,缺乏有灵活的和互动的方式来查看它们。有时候没有必要是功能齐全的基因组浏览器但快速和方便的方式来查看数据通常是由R表示对象。还应该互动帮助探索,例如它可以拖动,可以启用工具提示迅速获得一个单独的功能的详细信息。

这仅仅是TnT的动机:它的目的是提供一个交互式的和灵活的方法来可视化基因数据在r .为了实现这一目标,TnT包装了TnT javascript库并提供绑定常见bioconductor类(例如农庄,TxDb)代表基因组数据。的TnT javascript库哪些R包是基于一组javascript库的可视化树track-based注释,可用于创建一个简单的基因组浏览器。

TnT是一个新的包,任何反馈或建议将感激,请邮件给总部位于马<马林-@gmx.cn>。你还可以找到源代码存储库https://github.com/marlin-na/TnT网站和文档http://tnt.marlin.pub。这个描述在未来也将扩展包含更多的细节。

安装

你可以安装从Bioconductor TnT的稳定版本:

如果(!requireNamespace(“BiocManager”,静静地=真正的))install.packages(“BiocManager”)BiocManager::安装(“TnT”)

或者,从github安装猛击版本:

devtools::install_github(“marlin-na / TnT”)

然后把包。

suppressPackageStartupMessages(图书馆(TnT))

这个描述假设读者体验bioconductor常见的数据结构,尤其是农庄GenomicRanges包中。

跟踪构造函数

总的来说,包是通过构造跟踪从数据(农庄,TxDb EnsDb,等等),然后构造一个tnt董事会从歌曲的列表。

所以第一步是选择一个构造函数,用它来构造跟踪数据。不同的构造函数提供的包已经不同特性和数据类型。

作为一个简单的例子,从农庄组织构造块跟踪对象

gr < -GenomicRanges::农庄(“chr7”,范围=IRanges(开始=c(26549019 l, 26549019 l、26549019 l、26591772 l、26594192 l、26623835 l,26659284 l、26659284 l、26821518 l, 26821518 l),结束=c(26550183 l, 26550183 l、26550183 l、26593309 l、26594570 l、26624150 l,26660352 l、26660352 l、26823297 l, 26823297 l)),ID =1:10,Name =粘贴(“我的范围”,1:10))btrack < -三硝基甲苯::BlockTrack(gr)btrack
# # BlockTrack # # |标签:gr # # |背景:失踪,使用“白色”# # |高度:30 # # |数据:# # | seqnames开始结束宽度链工具提示。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 26821518 26823297 1780 * 9我的范围9 # # | 10 chr7 26991322 26991841 520 * 10我范围10 # # |色彩键# # | <人物> <整数> # # | 1蓝色1 # # | 2蓝色2 # # | 3蓝色3 # # | 4蓝色4 # # | 5蓝色5 # # | 6蓝色6 # # | 7蓝色7 # # | 8蓝色8 # # | 9蓝色9 # # | 10蓝色10

如您所见,meta-columns农庄已经转换为工具提示列在跟踪数据。这是默认参数的行为,明白了

arg游戏(TnT::BlockTrack)
# #函数(范围、标签= deparse(替代(范围),提示= mcols(范围),# #颜色=“蓝色”,背景= NULL,身高= 30)# # NULL

工具提示可以作为一个数据帧数据平行,颜色参数也可以是一个字符数据向量平行设置颜色为每个单独的范围。

为了查看跟踪,简单地说,追踪到一个TnTBoard / TnTGenome:

三硝基甲苯::TnTGenome(btrack)
# #——失踪的论点的观点。范围:# #自动选择26493666 . .27047193在seqlevel chr7……
# #——coord缺失的论点。范围和seqlength未知:# #自动设置坐标限制到26454128 . .27086731……

你可以拖拽移动,滚动放大和点击功能看到工具提示。

同样,追踪与其他构造函数可以构造不同的特性。这是一个表显示这些构造函数和数据来源。链接到每个记录类型的例子也提供和你建议去。

构造函数 功能类型 例子
BlockTrack 农庄 块跟踪
VlineTrack 宽为农庄 vline Vline跟踪
PinTrack 宽为农庄与价值观 销跟踪
LineTrack 宽为农庄与价值观 线和区域跟踪
AreaTrack 宽为农庄与价值观 区域 线和区域跟踪
GeneTrackFromTxDb TxDb 基因 追踪和跟踪特性的基因
FeatureTrack 农庄 基因 追踪和跟踪特性的基因
GroupFeatureTrack GRangesList tx Tx跟踪和GroupFeatureTrack
TxTrackFromTxDb TxDb tx Tx跟踪和GroupFeatureTrack
TxTrackFromGRanges 农庄搭配“类型”和“tx_id” tx Tx跟踪和GroupFeatureTrack
合并 两个或两个以上的跟踪 复合 复合跟踪

值得提到CompositeTrack:可以合并多个轨道构造一个CompositeTrack这样可以显示不同类型的功能在一个轨道。看例子在这里

跟踪处理

给定一个构造跟踪,我们可能希望访问或修改其数据和选项。

有三种常见的选项为所有类型的跟踪背景,高度标签。这三个选项可以通过访问和修改trackSpectrackSpec < -。例如:

三硝基甲苯::trackSpec(btrack“背景”)
# #空
btrack2 < -btrack三硝基甲苯::trackSpec(btrack2“背景”)< -“blanchedalmond”三硝基甲苯::trackSpec(btrack2“标签”)< -“我的范围”三硝基甲苯::trackSpec(btrack2“高度”)< -50

跟踪的数据通常存储在一个继承的类农庄(除了CompositeTrack,跟踪的数据存储为一个列表),并可以通过访问或修改trackDatatrackData < -。也有方便快捷键跟踪美元的名字跟踪美元名称< -值trackData(跟踪)美元的名字trackData(跟踪)名称< -美元价值,分别。作为一个例子:

btrack2美元颜色#相当于“trackData (btrack2)美元颜色'
# #[1]“蓝色”“蓝”“蓝”“蓝”“蓝”“蓝”“蓝”“蓝”“蓝”“蓝”
btrack2美元颜色< -“darkseagreen4”#相当于“trackData (btrack2)美元颜色< -“darkseagreen4”

作为一个例子,让我们也修改数据:

三硝基甲苯::trackData(btrack2) < -GenomicRanges::转变(TnT::trackData(btrack2),10000年)

最后,我们一起把修改后的跟踪和原始记录看到的区别。

三硝基甲苯::TnTBoard(列表(btrack btrack2))
# #——失踪的论点的观点。范围:# #自动选择26504916 . .27045943在seqlevel chr7……
# #——coord缺失的论点。范围和seqlength未知:# #自动设置坐标限制到26451985 . .27098874……

我们可能想要修改的另一件事是工具提示。通过构建轨道通过构造函数(除了那些由TxDb),工具提示可以作为一个数据帧平行数据。跟踪构造后,工具提示可以通过访问工具提示(跟踪)这是一个捷径trackData(跟踪)美元工具提示。例如:

三硝基甲苯::工具提示(btrack2) < -cbind(TnT::工具提示(btrack2),as.data.frame(TnT::trackData(btrack2)))三硝基甲苯::TnTGenome(btrack2view.range=三硝基甲苯::trackData(btrack2) [4]*0。)
# #——coord缺失的论点。范围和seqlength未知:# #自动设置坐标限制到26464128 . .27096731……

试着点击块看到工具提示。

TnTBoard和TnTGenome

在前面的示例中,我们已经看到了如何显示跟踪TnTBoard或TnTGenome。TnTBoard存储歌曲的列表,显示相同的坐标。您可能已经注意到的区别TnTBoard TnTGenome: TnTGenome只是一个TnTBoard轴和位置标签。

在这一部分中,我将介绍一些参数,可以有选择地提供控制董事会。它们是:

在情况下,view.range,coord.rangezoom.allow没有提供,TnT会猜。一些注意事项:

使用这些参数:一个例子

set.seed(6)pintrack < -三硝基甲苯::PinTrack(农庄(“chr7”,IRanges(开始=样本(26300000:27000000,4),宽度=1)),值=c(1,3,2,4),颜色=c(“蓝色”,“黄色”,“绿色”,“红色”))三硝基甲苯::TnTGenome(列表(pintrack btrack2),view.range=农庄(“chr7”,IRanges(26550000,26600000)),coord.range =IRanges(26350000,27050000),zoom.allow=IRanges(50000年,200000年))