生信分析不只是跑下软件 | TADCompare 差异分析要留心

序 言

  生信分析真的是跑下别人的软件就ok了么?很明显这样认为有些肤浅。先不说软件好不好用的事,即使勉强能够正常运行得到结果就万事大吉了么?这里也不讨论数据好坏的问题,得到的结果就是准确的么?下面以之前提到过的软件TADCompare来说明,生信分析有时候并不是看到的那么简单!还不了解TADCompare软件的朋友可以戳这里[TADCompare:差异TAD分析]。


案 例

  TADCompare函数可以直接利用两个HiC矩阵得到差异TAD,这源自于其内嵌类似TAD calling的功能,可以得到可能的TAD边界以及差异情况。除此之外,软件也接受提供预先定义的TAD,以三列bed格式提供给参数pre_tadsbed格式大家应该不陌生,但这里提供的bed应该包含列名,至于为什么要加列名后面再说。格式类似如下:

chr  start    end
chr1 49200000 50150000
chr1 50150000 51250000

  TADCompare函数最终使用的矩阵格式类似如下,行列名都是相应分辨率下每个bin的染色体起始位置。

         16050000 16100000 16150000 16200000 16250000
16050000       12        0        0        0        0
16100000        0        0        0        0        0
16150000        0        0        0        0        0
16200000        0        0        0        4        0
16250000        0        0        0        0        0

  对于矩阵行列名,TADCompare函数在参数说明中也明确的提醒the column names must correspond to the start point of the corresponding bin。如果要用软件就得按别人要求来,否则可能都没法正常运行。

Usage:

     TADCompare(cont_mat1, cont_mat2, resolution = "auto", z_thresh = 2,
       window_size = 15, gap_thresh = 0.2, pre_tads = NULL)

Arguments:

cont_mat1: Contact matrix in either sparse 3 column, n x n or n x (n+3)
          form where the first three columns are coordinates in BED
          format.  See "Input_Data" vignette for more information.  If
          an n x n matrix is used, the column names must correspond to
          the start point of the corresponding bin. Required.

  假设文件格式都没有问题了,就可以仿照软件文档提供的示例来分析了。类似下面的代码,就是用自己输入的矩阵和TAD数据来分析差异TAD

bed1 <- 'sample1_tad.bed'
bed2 <- 'sample2_tad.bed'
Combined_Bed <-  list(bed1, bed2)
TD_Compare <- TADCompare(mat1, mat2, resolution = 50000, pre_tads = Combined_Bed)

  至此,得到结果依然是理所当然,如果还是符合预期的结果那更是心里美滋滋。倘若,结果差强人意,好似刨了半天地什么都没种下,就挖坑了这谁受得了?高低也得整点理由说服自己放弃。
  然后,不知道是什么神奇的力量驱使,把矩阵的行列名换成每个bin的染色体结束位置。与想象的一致,毫无意外的正常运行得到结果。有些意外的是这次得到较多的差异TAD,这个时候就有些不安了,这结果准确么?
  其实,也许只有矩阵文件的时候,用bin的起始或结束位置差别不大,但加入bed文件结果就不一样了。为什么不一样呢?因为bed也有开始和结束两个位置。那么,软件使用是哪一个呢?咱们一起来一看究竟。

if (!is.null(pre_tads)) {
        pre_tads = lapply(pre_tads, as.data.frame)
        TAD_Frame = TAD_Frame %>% filter(Boundary %in% bind_rows(pre_tads)$end) %>%
            mutate(Differential = ifelse(abs(Gap_Score) > z_thresh,
                "Differential", "Non-Differential"), Enriched_In = ifelse(Gap_Score >
                0, "Matrix 1", "Matrix 2")) %>% arrange(Boundary) %>%
            mutate(Bound_Dist = abs(Boundary - lag(Boundary))/resolution) %>%
            mutate(Differential = ifelse((Differential == "Differential") &
                (Bound_Dist <= 5) & !is.na(Bound_Dist) & (Enriched_In !=
                lag(Enriched_In)) & (lag(Differential) == "Differential"),
                "Shifted", Differential)) %>% mutate(Differential = ifelse(lead(Differential) ==
            "Shifted", "Shifted", Differential)) %>% dplyr::select(-Bound_Dist)
    }

  上面就是提供bed文件时执行的代码,中间有这么一句bind_rows(pre_tads)$end,作用是将多个bed整合为一个数据框,也可以看到整合的是bin的结束位置。回到前面提到的软件明确指出矩阵的行列名用bin起始位置,上面结果不一致的问题迎刃而解,但出现了另一个疑问:软件为什么要这么设定,具体的工作原理是什么?

结 语

  软件有详细的文档固然是好的,能说明原理更是求之不得,但这样的事是可遇不可求的,毕竟最终的解释权在软件作者手里,作为使用者还需谨慎一些。所以,生信分析并没有想象中的那么简单,只能说知道越多越觉得自己无知。。。

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

推荐阅读更多精彩内容