过去六七年科研中我与公共数据的故事
专题介绍:数据分析那些事儿是瑞典农业科学大学的一名科研工作者。在生物大数据分析领域已经有七年的科研经验。希望通过分享过去7年在国内外硕士、博士、博士后申请、求学、科研、求职、统计学、R&Python编程、生物大数据分析、国内外高校企业求职 生命科学发展对我们当下社会的影响 中收到的个人启发 来让1000个人受益 让求学求职生活变得容易一点点。如果你也想持续学习,克服懒惰的话。关注他参与“100天生信/数据科学自我挑战”的话题吧。
14年从硕士时候的分子生物学专业转到计算生物学专业读博士,大一、大二学过的统计学和线性代数,早已经一点不剩的还给了各位老师们。一个公式也不认识,一行代码也没写过的,说着磕磕绊绊的英语,靠着硕士时靠复制粘贴做出来的一篇BMC Genomics,来到了这个陌生的国家。现在回忆起来,觉得当时我和我博士老板胆子都挺大的。误打误撞来到这一领域,现在想想是个细思极恐的事情。每天手机的App不断的在使用我们的地理位置,记录我们的移动速度,我们每一个在淘宝上的消费,外卖的订单,银行卡和移动客户端的支付记录,我们的智能手环也不断的在监控我们的心率,运动,睡眠等数据,一旦这些数据被标准化,足矣剖析一个人,落入不当之手也可以摧毁一个人。
一、公共数据分析与科研
谈到公共数据挖掘,很多人从事科研工作的人都会想起基因家族进化分析、GEO、SRA等数据库。过去十年,有无数优秀的公众号文章、资料和在线讲座介绍基因家族分析的细节。基因家族分析从十年前被追捧的对象,到近些年的铺天盖地,可能有些人觉得公共数据挖掘很难再出高水平的文章了。个人觉得其实不一定,只是科研的一个特点就是追求创新,在飞速发展的过程中,前言热点会迅速的变成业内共识然后变成教科书里的知识。我们读到的文章中实验设计开始于至少一年到两年前,当时的技术和认知都落后或者说远远落后于当前认知。因此数据分析(科研)不是山寨和仿造,而是用别人过去的数据解决我们自己现在的问题。它不是打把势卖艺,所以不拼动作优美,但是要一剑封喉。这里面有两件事情非常重要,第一个是我们解决了什么问题,第二个是通过解决这个问题,我们问出了什么样的问题供我们今后深入探索。
二、什么是大数据和公共数据分析
说到大数据,很多人想到大数据分析和人工智能,计算生物学、统计遗传学这个小领域虽然被多次贴上这些标签。但个人觉得这个小领域还不是,至少目前都不是。大数据分析和人工智能是个宏大的概念,设计各行各业。据我从事科研以来接近十年的经历来说,愿景宏大的标签,往往是个概括和方向,眼下还不能准确的落到细节和实处,不管是大数据还是小数据掰开了揉碎了一定要落到实处解决一个具体的问题。不能说数据容量大,就是大数据。个人觉得大数据,首先要数据格式高度不标准化。可能是很多种数据类型的集合,比如音频,视频,地理坐标、报刊、杂志,博客,以及DNA序列,这些可能只有几个几百个GB,但是要想通过挖掘这些数据回答某一个现实意义的问题,足矣称为大数据分析。反过来,有很多测序数据,像冰岛芬兰在测序全国的百万以上的人群,这些DNA序列放一起,可能存储容量上是天文数字,但是比起前者,我觉得前者例子更加能体现大数据分析的本质。
作为一个计算生物学从业人员,经常会被问到这个行业是做什么的问题。有人说我是做生物信息的,有人说我是做统计学的,有人说是做数量遗传学的,有人说是做多组学分析的,也有人说我是做大数据的。都没错,但是都没有特别贴切。我个人的理解是这个行业从业人员用自己对数据的理解,用数据分析这个工具,去解决一个的确切问题。这个过程是个高度学科交叉的过程,有时候需要改良些生物信息学的流程,有时候需要改动一些统计模型,但最终大家都是回答一个具体的生物学问题。一个项目开始之前提出的假设设计的试验思路分析方法,要被从数据中看到的结果无数次的推翻,在不断的推翻自己的假设过程中,一步步建立新的假设来接近真像,因此公共数据分析就是利用公共数据接近一个事实的过程。落脚点可能不是自己最初问的那个问题,但是会是一个比较稳健的事实。其实很多学科很类似,我们假设一个基因导致了某个表型,我们基因,蛋白水平上的干预,想看看这种干预是怎么一步步影响我们测得的各个指标。可能唯一不同的是公共数据分析乃至数据分析整个行业,结果非常不容易预测。所以当花了老板几十几百万的GWAS定位结果惨不忍睹时候,当QTL定位Peak垮了半条染色体时,当实验结果无法证明预期想像的时候,多问几个为什么,因为在坚持一点点,放弃自己的原假设,可能就会柳暗花明。
三、公共数据能干什么
1. 能发大文章么?
说来惭愧,博士和博士后接近七年了,有同事说自己是个地地道道的Data parasite,一作的文章,至今还没有分析过一手数据。几乎所有的文章都是二手、三手或者N手数据。不能自己生产数据确实会制约一些问题的回答,但是带来的好处就是可以天马行空的问各种问题,丝毫不影响发表多篇科研文章。如果条件允许,产生一些数据会对公共数据挖掘有非常大的促进作用。但是如果没条件,公共数据完全可以支撑一个课题组持续发表高水平的文章。我的博士所在课题组就是个最好的例子,近几年利用拟南芥、酵母公共数据发表了一篇Nature Genetics,两篇Molecular Biology and Evolution,四篇PLoS Genetics,所以公共数据与否不应该是发表高水平文章的制约(不信你看这里https://www.researchgate.net/profile/Oerjan_Carlborg),想解决什么科学问题,需要什么样的数据去解决它,下面才是是否产生数据和利用公共数据的问题。
2. 公共数据会影响我们的生活么
去年无意中在Youtobe上看到了一个视频,作为平日里对隐私不敏感的一个人,也出了一身冷汗。Google map在后台一直在搜集我们的位置信息,知道我们过去每天去了哪里,乘坐什么交通工具(移动速度多少),停留了多久,中途遇到了谁。现代社会中,我们手机的App不断的在使用我们的地里位置,记录我们的移动速度,我们每一个在淘宝上的消费,外卖的订单,银行卡和移动客户端的支付记录,我们的智能手环也不断的在监控我们的心率,运动,睡眠等数据,这些数据的力量一旦被挖掘出来,可以认识一个人,可以深度剖析一个人,落入不当之手也可以摧毁一个人。一旦这些数据标准化,不光可以了解一个人过去的行踪,健康状态,消费习惯,交际圈,喜怒哀乐,而且可以预测一个人未来。今天基于个人基因组数据去预测健康,在人身保险领域已经有了很多讨论。可以肯定的是科幻电影里出现的AI预测未来,将会渐渐的走进我们的生活。
3. 公共数据能影响产业和社会么
我们个人也好,管理机构或者政府也罢,都是依据我们掌握信息,做出我们认为符合时宜的各种各样的选择。这个过程中,信息不对称,导致了很多不是最优化的选择,而大量数据可以打破这种不对称的壁垒,最优化社会的人力和资源配置。比如农业领域,今年种什么品种,什么时候播种,做什么样的栽培管理,什么时候做,全国的产量和需求实时信息怎么样,怎么样最大化农民利益、土地肥力和市场供求。这个领域尽管刚刚起步,当前对农业生产的帮助也还很小,但是可以肯定的是今后必然会有一个长足的发展,未来的农业必然会有一个因数据而来的变革。最近爆出来的一家名为Cambridge Analytica 的公司,已经通过自然语言处理挖掘Facebook, Twitter信息,获取民意,并且在适当的时候在适当的人朋友圈里,发布消息而对多个国家的选举进行操纵。
四、怎么学公共数据挖掘
1、先打破一个彻头彻尾的伪命题——机器学习不是统计学,统计学不是数学。
事实是机器学习< 统计学 < 数学。整个数据分析领域,对高等数学知识的依赖,少的可怜,大多数只是统计学和线性代数。而统计学除了成堆的公式,更多的是一种思维,成堆的公式谁都会忘,但是思维方式会深深的烙印在我们解决问题的方式中。可以说统计对于数据分析从业人员非常重要,可以区别一个数据分析从业人员的好坏。但是不得不说,这不是一个必要的条件,因为任何事情,掰开了揉的足够的碎,都是机械的重复,都是一个个pipeline的排列组合,这可能也是我这个统计学学渣,为什么能从分子生物学,成功转型到计算生物学的原因。其实常见的几个机器学习算法中用到的统计学知识,和整个统计学相比少得可怜,所以一个下定决心的人注定是可以学会的。
2. 掌握一门编程语言
说起编程,R语言,Perl语言,Python语言,C语言等等,大多数人会感觉到陌生,感觉高大上,其实它只是一门语言,有规范的程式和语法,就和我们说话一样。写一部小说的能力不是每个人都有,但是拉拉家常,人人都会。所以会中文和外语的我们,没有理由学不会编程,没理由学不会一些简单却可以取代我们繁琐的工作的技巧。
这里给大家讲个故事,2011年我和我的Y师兄做一篇基因家族分析的文章,我们都不会编程,四五个月里,用复制粘贴从NCBI blast了一个基因家族,手动,粘贴保存blast hit 到记事本里,手动在SMART做蛋白结构的预测,手动在Word里search一个个基因,在把搜到的基因复制粘贴分类出来做enrichment analyisis,去GEO手动下载了一个的microarray数据。在两个人四五个月每天十多个小时的复制粘贴后,我们居然发表了一篇BMC Genomics。而今天同样的工作,可能也就几百行代码,一周的工作量。而这个代码大多数还不需要自己写,只需要知道去哪里找什么。掌握一门编程,并不是让大家精通都去做程序员,不管是做实验的还是在社会某一个工作岗位,掌握一门语言里的小技巧会让工作和生活中的一些细节变得非常便捷
3. 技能是学会的不是被教会的
经历过大学教育,我们大多数都具有几天通过一门考试的技能。但是这种神技在掌握技能面前,往往不堪一击。因为技能是自己学会的,不是被教会的。只有在做项目的过程中不断反复的实践才有可能学会数据分析这项技能。对我个人而言,在接触了同事的代码,并在Github和Kaggle上一行一行啃过前辈们的代码,透过代码了解他们的思维方式之后,才渐渐的入了这一行。
4.没有背景,行么?
14年从硕士时候的分子生物学专业转型到计算生物学读博士,大学时学过的统计学和线性代数,早已经一点不剩的还给了各位老师们。一个公式也不认识,一行代码也没写过的,说着磕磕绊绊的英语,靠着硕士时复制粘贴出来的一篇BMC Genomics,来到了这个陌生的国家。现在回忆起来,觉得当时我和我博士老板胆子都挺大的。以前听说只需要五年就可以从0开始成为一个领域的专家,当时觉得有点恐怖。虽然自己只是颗小草,但是想和犹豫不决的你说只要努力了,没有什么不可能的。
未来故事,请扫码关注。也拜托各位老师、同学和家长,把它传播给需要的师弟师妹。也欢迎各位师弟师妹,如果想知道或者了解什么方面,请留言互动。我会尽力和身边大佬同仁学习后,努力给大家一个全面的总结。
请关注“恒诺新知”微信公众号,感谢“R语言“,”数据那些事儿“,”老俊俊的生信笔记“,”冷🈚️思“,“珞珈R”,“生信星球”的支持!