生物信息学中的一项常见任务是创建沿基因组坐标的基因组数据的可视化,以及必要的基因组注释特征,例如基因和相同坐标上的转录本,以理解这些数据。
通常,这可以通过基于浏览器的基因组浏览器(例如UCSC基因组浏览器或IGV)来实现,该浏览器需要从R中导出数据。还开发了R软件包来解决此问题,但使用静态图,例如。GVIZ
和GGBIO
。
尽管生物导体具有代表和分析此类基因组数据的包装,但缺乏一种灵活而交互的方式来查看它们。有时,不需要一个完整的基因组浏览器,而是一种快速,方便的方法来查看通常由R对象表示的数据。它也应该是互动的,以帮助探索,例如,它可能是可拖动的,并且可以使工具提示快速获取有关单独功能的详细信息。
这只是TNT的动机:它旨在提供一种交互式和灵活的方法,以可视化RIFFR中的基因组数据,以实现此目标,TNT包裹TNT JavaScript库并提供代表基因组数据的常见生物导体类(例如Granges,TXDB)的结合。这TNT JavaScript库R软件包是基于一组JavaScript库,用于可视化树和基于轨道的注释,可用于创建简单的基因组浏览器。
TNT是一个新软件包,任何反馈或建议都会感谢,请发送电子邮件至Jialin Ma <marlin-@gmx.cn>。您还可以在https://github.com/marlin-na/tnt和文档网站http://tnt.marlin.pub。将来还将扩展此小插图,以包括更多细节。
您可以从生物导体中安装稳定版本的TNT:
或者,从GitHub安装Devel版本:
然后连接包装。
该小插图将假设读者具有生物通用器中常见数据结构的经验,尤其是格兰格
从基因组机
包裹。
总体而言,该软件包是通过从数据(Granges,TXDB,EnsDB等)中构造曲目的,然后从轨道列表中构造TNT板的曲目。
因此,第一步是选择轨道构造函数,并使用它从数据构造轨道。软件包为不同的功能和数据类型提供了不同的构造函数。
作为一个简单的示例,从Granges对象构造块轨道
gr < -基因组机::格兰格((“ 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,,,,名称=粘贴((“我的范围”,,,,1:10))btrack < -TNT::阻止条形(gr)Btrack
## blocktrack ## |标签:gr ## |背景:缺少,使用“白色” ## |身高:30 ## |数据:## |seqnames启动末端宽度链刀具tooltip.id tooltip.name ## | ## |1 CHR7 26549019 26550183 1165 * 1我的范围1 ## |2 CHR7 26564119 26564500 382 * 2我的范围2 ## |3 CHR7 26585667 26586158 492 * 3我的范围3 ## | 4 chr7 26591772 26593309 1538 * 4 My Range 4 ## | 5 chr7 26594192 26594570 379 * 5 My Range 5 ## | 6 chr7 26623835 26624150 316 * 6 My Range 6 ## | 7 chr7 26659284 26660352 1069 * 7 My Range 7 ## | 8 chr7 26721294 26721717 424 * 8 My Range 8 ## | 9 chr7 26821518 26823297 1780 * 9 My Range 9 ## | 10 chr7 26991322 26991841 520 * 10 My Range 10 ## | color key ## | ## | 1 blue 1 ## | 2 blue 2 ## | 3 blue 3 ## | 4 blue 4 ## | 5 blue 5 ## | 6 blue 6 ## | 7 blue 7 ## | 8 blue 8 ## | 9 blue 9 ## | 10 blue 10
如您所见,Granges的元列已转换为轨道数据中的工具提示列。这是默认参数行为,请参阅
##函数(range,label = deparse(替换(范围)),tooltip = mcols(range),## color =“ blue”,background = null,height = 30)## null
这工具提示
可以作为与数据平行的数据框架给出颜色
参数也可以是平行于每个单独范围的数据设置颜色的字符矢量。
为了查看轨道,只需将该轨道放入tntboard/tntgenome:
## - 缺少参数`view.range`:##自动选择26493666..27047193在seqlevel chr7上...
## - 缺少参数`coord.range`和seqlength是未知的:##自动将坐标限制设置为26454128..27086731 ...
您可以拖动移动,滚动缩放并单击功能以查看工具提示。
同样,可以与其他构造函数构建不同功能的轨道。这是一个显示这些构造函数及其数据源的表。还提供了每种轨道类型示例的链接,建议您通过它们。
构造函数 | 资源 | 功能类型 | 例子 |
---|---|---|---|
阻止条形 | 格兰格 | 堵塞 | 块轨道 |
Vlinetrack | 宽度一granges | vline | vline轨道 |
Pintrack | 宽度一格与值配对 | 别针 | 引脚轨道 |
线条 | 宽度一格与值配对 | 线 | 线路和区域轨道 |
区域轨道 | 宽度一格与值配对 | 区域 | 线路和区域轨道 |
GenetrackFromTXDB | TXDB | 基因 | 基因轨迹和功能轨迹 |
特色 | 格兰格 | 基因 | 基因轨迹和功能轨迹 |
GroupFeatUretrack | Grangeslist | TX | TX Track和GroupFeatUreTrack |
txtrackFromTXDB | TXDB | TX | TX Track和GroupFeatUreTrack |
txtrackfromgranges | Granges与“类型”和“ TX_ID”配对 | TX | TX Track和GroupFeatUreTrack |
合并 | 两个或两个以上的曲目 | 合成的 | 复合轨道 |
值得在这里提及CompoSitetrack:您可以合并
多个轨道构造CompoSitetrack,以便可以在一个轨道中显示不同类型的功能。请参见示例这里。
给定构造的轨道,我们可能需要访问或修改其数据和选项。
所有类型的曲目都有三个共同的选择,它们是背景
,,,,高度
和标签
。可以访问和修改这三个选项TrackSpec
和trackspec < -
。例如:
## 无效的
btrack2 < -BtrackTNT::TrackSpec(btrack2,“背景”)< -“ Blanchedalmond”TNT::TrackSpec(btrack2,“标签”)< -“我的山脉”TNT::TrackSpec(btrack2,“高度”)< -50
曲目的数据通常用继承的类存储格兰格
(除了CompoSiteTrack,数据被存储为曲目列表),可以通过TrackData
或者trackdata < -
。也有便利捷径跟踪$名称
和跟踪$ name < - 值
为了TrackData(Track)$名称
和trackdata(track)$ name < - value
, 分别。举个例子:
## [1]“蓝色”“蓝色”“蓝色”“蓝色”“蓝色”“蓝色”“蓝色”“蓝色”“蓝色”“蓝色”
例如,让我们修改数据:
最后,我们将修改后的轨道和原始轨道放在一起以查看差异。
## - 缺少参数`view.range`:##自动选择26504916..27045943在seqlevel chr7上...
## - 缺少参数`coord.range`和seqlength是未知的:##自动将坐标限制设置为26451985..27098874 ...
我们可能要修改的另一件事是工具提示。通过通过构造函数构造轨道(除了由TXDB构造的轨道),可以将工具提示作为与数据平行的数据框架给出。构建轨道后,工具提示可以通过工具提示(轨道)
这是一个快捷方式TrackData(Track)$ Tooltip
。例如:
TNT::工具提示(btrack2)< -cbind(Tnt::工具提示(btrack2),as.data.frame(Tnt::TrackData(btrack2))))TNT::tntgenome(btrack2,view.range =TNT::TrackData(btrack2)[4这是给予的*.05)
## - 缺少参数`coord.range`和seqlength是未知的:##自动将坐标限制设置为26464128..27096731 ...
尝试单击块以查看工具提示。
在以前的示例中,我们已经看到了如何使用TNTBoard或TNTGenome显示轨道。TNTBoard存储曲目列表,并以相同的坐标显示它们。您可能已经注意到TNTBoard和TNTGenome之间的区别:TNTGENOME只是带有轴和位置标签的TNT板。
在这一部分中,我将介绍一些可以选择提供的论点来控制董事会。他们是:
view.range
:granges,设置初始视图范围。coord.range
:iranges或数字,设置坐标限制。Zoom.Allow
:iranges或数字,设置放大和输出时的范围限制。允许拖拉
:逻辑,如果是错误的,板将无法移动或缩放。如果那样view.range
,,,,coord.range
和Zoom.Allow
未提供,TNT会猜测他们。一些考虑因素是:
view.range
:尝试使用所有轨道都具有功能的Seqlevel,并尝试使用所有轨道范围的交叉点。coord.range
: 如果seqinfo
曲目有seqlength
可用,然后使用1到seqlength作为坐标范围。如果没有,请尝试根据功能范围(即涵盖该seqlevel上的所有功能)查找。使用这些参数的一个示例:
set.seed((6)pintrack < -TNT::Pintrack((格兰格((“ CHR7”,,,,iranges((开始=样本((26300000:27000000,,,,4),宽度=1),值=C((1,,,,3,,,,2,,,,4),颜色=C((“蓝色的”,,,,“黄色”,,,,“绿色”,,,,“红色的”))TNT::tntgenome((列表(pintrack,btrack2),view.range =格兰格((“ CHR7”,,,,iranges((26550000,,,,26600000),coord.range =iranges((26350000,,,,27050000),Zoom.Allow =iranges((50000,,,,200000))