Skip to content

Instantly share code, notes, and snippets.

@Puriney
Last active August 29, 2015 14:14
Show Gist options
  • Save Puriney/6e1be485973102438dc2 to your computer and use it in GitHub Desktop.
Save Puriney/6e1be485973102438dc2 to your computer and use it in GitHub Desktop.
note

Sporadic Breast Cancer为案例,提出了整合大数据多层次去解析生物数据以获取对自然更加准确的认知。

文章提出了meta-dimentional analysis 以及multi-staged analysis (或systems genomics approaches)这样比较“新潮”的概念。虽然是生物领域里的问题,但既然是数据分析,一旦从生物背景剥离出来,仍旧是一个个经典的机器学习教科书式案例。

处理单个数据

不积跬步无以至千里,在做大数据整合之前必须先好好审视每一个单个数据。关乎单个数据,文中提到了至少有以下该考量的方面:

  • 数据质量控制 (Data Quality Control) 。所谓龙生龙凤生凤老鼠儿子会打洞,垃圾数据出来的肯定是垃圾结果(Garbage in, Garbage out) 。

  • 数据降维 (Data Reduction)。大数据一来,想搞5百万个SNP之间的两两相互关系,反正你们搞计算机的不是很厉害么?哪个经费足的生物大佬一拍桌子,买台服务器大不了就是穷举嘛,大不了就是五百万选二的排列组合。羡慕又可惜,高帅富刷硬件;可怜又幸运,屌丝刷算法。回到分析问题的根源:自变的变量你用了太多太多,计算的维度你升了太多太多,瞳孔放大不代表就能看的更多,难怪大人们说生物博士永远都不要念。文中举出了一些经典算法去实现数据降维,如ReliefF, chi-square statistics, PCA, factor analysis, genetic algorithm 和 linkage disequilibrium。顺带一提,找到对应的每一篇引用文献,这又是一篇篇计算生物学的入门读物。不难发现其实文中是把降维(Dimension Reduction) 和 特征选择(Feature Selection)一并揉在一起,而这两个概念我想有必要一提。不同于互联网世界,生物科研世界更注重模拟模型和预测结果的可解读性。比如PCA这种降维方法最后汇报的主成分(一般两个),你很难让一个生物学家具体的去解释,因为杂糅了诸多个自变量的主成分没有办法直接获得生物意义的诠释。相比之下,如果可以通过一系列尽管媲美黑魔法但的确有逻辑解释的计算方法,即特征选择,撇去某一些无关紧要的自变量,那么恭喜你,你又迈出了刷算法当屌丝的一步。关于特征选择,这里有几个我读过的相关资料: 10. Data Mining Algorithms In R/Dimensionality Reduction/Feature Selection有代码有实战 20. An Introduction to Feature Selection 不错的介绍 30. Statistical Learning, Chapter 6. 系统介绍了 Subset Selection, Shrinkage (或叫做regularization,比如常用的LASSO), Dimension Reduction. 40. Feature selection: Using the caret package 一篇2010年的老文

  • 混杂(confounding)。大白话就是自变量彼此之间有一定关联,比如miRNA彼此。这种相爱相杀的关联真的让你分析时醉生梦死。文中提到Surrogate Variable Analysis可以解决。我也看过一些相关的读物: 10. Bioconductor上的SVA包,Jef Leek(就是写博客开R公开课的三剑客之一)领衔编写 20. Identifying Correlated Predictors using Caret 30. Feature Selection with the Caret R Package

单数据分析有什么缺点?

在所谓大数据时代下除了以"政治立场正确"的视角去解释单数据的缺点, 有时候不得不承认, 单数据在解释一个完整故事时, 所能涉及的广度的确有限, 想象一下"盲人摸象"的故事. 每个盲人摸到的那一部分大象, 的的确确都是大象的正确特征描述, 而教小朋友认识大象时, 诸如"大象是有大长鼻子的动物"这样的描述也的确有实际的指导意义. 但是谁都知道, 那并不是完整故事的全部. 癌症研究就像"摸象", 单数据分析是盲人. 如若几个盲人坐在一起分享经验, 描绘出的"大象"雏形或许更加能够接近真实. 同样的, 这几个盲人坐在一起, 就是解决"单数据"的盲点, 也正是后文继续要介绍的"多数据分析".

多层次数据分析 (multi-staged analysis)

其实有一种多数据综合分析 -- 多层次数据分析, 大家并不陌生. 大体来说多层次分析多半是顺着中心法则的层次, 抽丝剥茧地逐层分析. 大多数情况分析的套路有点儿像内地高考语文作文三段式, 文中形象地称之为"三角法".

文中以SNP和表型关系研究为例, 介绍了这段三角恋. 第一步, 表型差异有一些SNP有显著差异, 通过P值筛选显著差异的SNP, 在基因组层面找到解释表型差异的被选人; 第二步, 找到SNP后借助其他层次的数据看SNP是否有联系, 比如用eQTL找基因表达层面的关系; 第三步, 第二步用到的数据去和表型变化看看是不是有相关性.

我以RNA结合蛋白如何影响可变剪切进而影响表型为例子, 也说一说三段式做法. 第一步, 比较某RBP(正常/Knock-down)情况下, 我们可以得到一个表型上的差异, 同时可以用RNA-seq确定哪一些 exon 发生了不同的可变剪切模式; 第二步, 用 CLIP-seq 可以找到RBP全局的结合为点, 这些结合的位点暗示了该 RBP 参与调控的可变剪切事件即哪些exon被该RBP调控; 第三步, 可以建立一个trio-exon的模型, 内嵌用MS2标签(该标签可以招募RBP-MS2融合蛋白), 从而可以验证exon是否真的发生了不同的剪切.

多层次分析有一个最大的缺点 -- 谁定义显著p-value值? 第一步开始找显著差异的 SNP 或者显著差异剪切的 exon, 究竟多大的差异才能叫做显著? 相关的经典段子有一则: http://xkcd.com/1478/.

因此一开始基于一定已有知识去决定的 p-value 去筛选候选人, 肯定是要丢掉一些宝贝的, 因此这类方法的假阴性可想而知是不容忽略的问题.

当然还有一个缺点就是, 相关性不等于因果性. 仅仅是找到SNP的缺失与否与疾病的病发与否存在相关性, 并不能意味着这些SNP就是治病原因. 经典的段子一则 (不过也许微软IE市场份额越多, 被逼疯的前端工程师出去泄愤的机率没准的确更多):

http://traderhabits.com/100-correlation-means-0-causation/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment