TADCompare:差异TAD分析

日常瞎掰

  上海这一波疫情来得真可谓猛烈!原本连“四五天”都不能封闭,属于全世界的上海都停摆了个把月时间。你说厉害不厉害!灾难来临时,趋利避害才是动物的天性!体现在人类身上就等价于人们常说的“生命健康至上”!作为一名安分守己的打工人,小编自然是听从政策的安排,从3月18号小区封闭以来就开始在家“坐月子”,刚开始觉得居家办公还挺好,时间长了不自在的感觉也就慢慢展现出来了。
  不止生活上打折扣,工作上也是诸多不便。庆幸的是13年买的第一台笔记本电脑没有罢工,这里真的要夸赞一下“华硕品质,坚如磐石”还真不是吹嘘的!不要小看这个“老年机”,在禁足的日子里,可是支撑起了两个人的工作内容,做到了从早上到晚上不间断地工作。不管如何,时间过得依然挺快,这一转眼已经“满月”了,期待再一转眼能够解封,回归以前正常的生活!

TADCompare

  最近一段时间一直在分析HiC-seq的数据,虽然对该技术有了一定的了解,但还是处于学习阶段。基因组折叠形成的拓扑结构域(topologically-associating domains, TADs),在很多生物学过程如细胞分化、转录调控、基因组复制及DNA修复中有着重要的作用。研究TAD在不同处理中的变化也是HiC的用处之一。分析差异TAD的好用软件并不多,这里给大家分享一个——TADCompare,能不能得到大家的认可不知道,至少软件在考虑差异TAD方面考虑的还是挺全面的。
  该软件将TAD差异类型分为complex, split, merge, shifted, strength change,示意图如下:

  该软件定义差异TAD的过程还是挺有意思的。首先,基于Modified Spectral Clustering方法来计算交互矩阵的boundary score,然后用两个矩阵的score值计算得到一个gap_score值来评估是否为差异TAD。评估过程大致如下:

  1. 如果满足gap_score > z_thresh(默认为2),做为Differential,否则为Non-Differential,并且根据gap_score >0 来确定boundary score富集在matrix1或者matrix2,后续依据这个富集的情况再结合其他条件对Differential进行细致分类。
  2. 接着将Differential中满足Bound_Dist(boundary的窗口滑动评估) <= 5划分为Shifted
  3. 接着将剩下的Differential的boundary按照前后分布为Non-Differential类型,若富集在matrix1中则为split,若富集在matrix2中则为merge
  4. 再将剩下的Differential的boundary中满足TAD_Score1 和 TAD_Score2 > 1.5条件的划为Strength Change类型。
  5. 最后剩下的Differential的boundary即为Complex。PS:若提供两个矩阵的boundary文件来分析差异TAD,如果Boundary在提供的文件中出现且为Non-Differential则归类为Non-Overlap
      上面的分类过程官网并没有提供,而是小编从软件的源码中整理所得,如有不对的地方希望大家莫见怪。下面我们来介绍一下软件的使用方法:
library(TADCompare)
library(dplyr)
library(SpectralTAD)

dim(rao_chr22_prim)
results = TADCompare(rao_chr22_prim, rao_chr22_rep, resolution = 50000)

#提供TAD
bed_coords1 = bind_rows(SpectralTAD::SpectralTAD(rao_chr22_prim, chr = "chr22", levels = 3))
bed_coords2 = bind_rows(SpectralTAD(rao_chr22_rep,  chr = "chr22", levels = 3))
Combined_Bed = list(bed_coords1, bed_coords2)
TD_Compare = TADCompare(rao_chr22_prim, rao_chr22_rep, resolution = 50000, pre_tads = Combined_Bed)

head(TD_Compare$TAD_Frame)

结果预览:

##   Boundary   Gap_Score TAD_Score1 TAD_Score2     Differential Enriched_In
## 1 16850000  0.23611002  7.8431724  7.5800558 Non-Differential    Matrix 1
## 2 17250000 -0.08875306  0.1103987  0.1409999 Non-Differential    Matrix 2
## 3 17600000 -0.06733403 -0.4153272 -0.3809658 Non-Differential    Matrix 2
## 4 18000000 -0.10338944  2.3616107  2.3473922 Non-Differential    Matrix 2
## 5 18350000 -0.04284963 -0.7767081 -0.7433986 Non-Differential    Matrix 2
## 6 19100000  0.01857312 -0.8269469 -0.8153997 Non-Differential    Matrix 1
##               Type
## 1      Non-Overlap
## 2      Non-Overlap
## 3      Non-Overlap
## 4 Non-Differential
## 5 Non-Differential
## 6      Non-Overlap

差异结果可视化:

p <- DiffPlot(tad_diff    = TD_Compare, 
              cont_mat1   = mtx1,
              cont_mat2   = mtx2,
              resolution  = res,
              start_coord = 8000000,
              end_coord   = 16000000,
              show_types  = TRUE, 
              point_size  = 5,
              max_height  = 5,
              rel_heights = c(1, 2),
              palette     = "RdYlBu")

plot(p)

结果如下:

  由上面的代码可知,使用过程并不复杂,这里不再详细解释。该软件支持多种matrix输入格式,如n×nn×(n+3)sparse 3-column.hic files.cool filesHiC-Pro files等矩阵格式。TADCompare的结果是一个包含三个内容的list,分别为TAD_Frame、Boundary_Scores、Count_Plot。前面两个为数据框,第一个是过滤后的结果,第二个包含全部结果,包含的列相同分别为Boundary、Gap_Score、TAD_Score1、TAD_Score2、Enriched_In、 Type。而Count_Plot是为展示每种类型数量的条形图的ggplot对象。

结束语

  上面的内容大概介绍了TADCompare主要功能,该软件还包含一些用于分析特定情况的函数如TimeCompare、ConsensusTADs,用法依然挺简单,具体适用于哪些情况,感兴趣的可以参考官网介绍:https://bioconductor.org/packages/devel/bioc/vignettes/TADCompare/inst/doc/TADCompare.html

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,463评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,868评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,213评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,666评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,759评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,725评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,716评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,484评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,928评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,233评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,393评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,073评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,718评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,308评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,538评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,338评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,260评论 2 352

推荐阅读更多精彩内容