算法玄学

算法玄学

“玄之又玄,众妙之门”。在生物信息数据分析中,有非常多不容易解决的问题,因此需要开发更加合适的软件,软件的核心就是算法。然而,有一些人极度迷信“算法”这种东西,认为算法可以解决一切,甚至“硬件不够,算法来凑”,今天我们就来真实的理解一下什么是算法,算法就像很多烧烤店宣称的秘制酱料一样,其实也就那么回事儿。
何谓算法?算法是什么,其实说白了就是做事情的方法,步奏或者规则。但是你说方法,听起来就很普通,叫算法就一下子高大上了。算法可以很简单,例如把大象装冰箱分三步,就是一种算法。也可以极端复杂,需要考虑成千上万种情况。例如亚马逊商品推荐系统,京东商品预测系统等。算法是计算机软件的核心。有人对软件有误解,以为软件可以自动解决问题。其实恰好相反,是你将处理事情的方法告诉软件,软件根据情况来执行,只不过软件计算的快而已,如果遇到例外的情况,就提示错误,说明软件有bug。因此,如果人都看不懂算法,那么机器就更看不懂了。
算法崇拜
在生物信息研究中,有一类人是算法崇拜,认为一切生物信息问题核心都是算法,算法可以解决所有问题。任何技术难点都是可以通过算法实现的。哪怕是测序读长太短,而没法解决的重复序列问题。我曾经遇到一个做生物信息分析的老师,和我吃饭聊天,每说三句话中就要包含算法二字。看来是对算法极度崇拜了。例如序列拼接时内存不够,那么就需要优化算法节省内存,经过一个月的优化算法,终于使内存减少了1G,算法太神奇了。其实这个时候不如直接花2000钱买块16G内存条,从硬件上彻底解决问题。
其实,算法崇拜的本质是,我们看不懂,越是不懂就会感觉特别神奇,经常看一些报道,介绍自己公司拥有某种核心竞争力,开发了某某算法,解决了什么某某问题,听起来特别牛,有人曾经戏虐过这种情景,例如开发个APP,就宣称自己做O2O,非法收集用户数据,宣传自己有大数据;对这些数据做点统计分析,就宣称开发了某某算法;计算出几个结果,就宣称构建某某系统,进而实现了人工智能。其实我看到很多生物公司对外宣传自己将一些开源软件组合起来,就宣称自己开发了某某算法,实在很好笑,可以去忽悠投资人了,但是,投资人一般更聪明。

生信算法
我遇到很多人,对生物信息算法也是极度崇拜,开口就是Smith-Waterman ,Needleman-Wunsch,RNN,隐马模型等,我只能问,这是哪位国外大叔呀。之前好像有个人将生物信息分析从业人员分成好几个等级,最高级就是研究算法的。最低等是跑流程的。于是就出现了一种情况,刚毕业的人,上来就想向我学习生信算法,和我说生物信息的核心其实是算法,这个比较有前途,测序原理,数据分析这些都太low了。也不知道这些人现在学的怎么样了,有没有搞出惊天动地的生信算法。

自下而上
我想起当年在深圳工作的时候,最开始我们分成很多组,我数据分析组,用别人的话说就是跑流程的,每天的工作就是用相同的流程处理数据,类似流水线上的产业工人,在别人眼里,这些工作都是重复劳动,处在当时鄙视链的最底端。上面还有更高一级写流程的,再高一级写软件的,最高的研究算法的。然后,事实真的是这样吗,跑了几年流程下来,我觉得不但没有成为只会跑个流程的,在做无用功,相反,我觉得自己收获非常多。经过大量的数据分析项目实际操作,解决了所有错误,不仅熟悉了每个分析,而且也理解了每个软件,甚至理解了软件的算法。因为,在真实的数据分析中,才会遇到各种各样的问题,才能真实的看到这些之前没有考虑到的“意外”情况,用文学语言来形容就是“操千曲而后晓声,观千剑而后识器”。
算法玄学
所以,用不着对算法那么迷恋,算法只是解决问题的一种方法,前提是你得知道有哪些问题需要解决。比如你要做一个做短序列比对的工具,一对短reads和一条参考序列比对,二者的比对情况永远只有六种,第一比对不上,第二一对一无错配比对,第三,一对一有错配比对,第四,多对多无错配比对,第五,多对多有错配比对,第六,单端比对。另外还可能包括切割后比对上,还包括比对方向问题,只有你充分了解了所有问题,才能开发出比较准确的算法。否则刚好本末倒置,软件永远有bug,这就是算法。

学习生物信息学要研究算法吗?
这个看情况,前期暂时还不用,你先入门,先熟悉操作,会编程。因为算法是需要通过编程来实现的。不会编程,学算法也是纸上谈兵,我觉得理想的学习生物信息模式是循序渐进是的,就是学习到一定阶段,自然而然就会产生需求,而不是上来就挑最难的部分。以为学了最难得的部分,其他的就容易了。其实,软件,编程,算法这些东西都是相辅相成的。
对于新手,并不要求写出能发文章级别的生物软件,能够写一些批量化和自动化脚本,提取序列这些就可以了。没必要一开始就开发出造福全球人民的工具,一步步来。

更多内容
基因学苑2019年文章列表上传数据,直接分析,生物云服务器重磅升级有一份4万多字的nanopore数据分析指南送给你送你一份免费的nanopore数据分析指导手册手把手教你生信分析平台搭建专栏合集生物信息重要资源站点合集不会编程,如何进行批量操作一个人全基因组完整数据分析脚本一个细菌基因组完整分析脚本如何在Linux下优雅的装X联系方式
更多内容添加作者微信:bio-wangtong如欲了解更多信息,请长按二维码关注我们

阅读原文

赞(0)
未经允许不得转载:第一SCI网 » 算法玄学

评论 抢沙发

评论前必须登录!