查看原文
其他

为什么生物信息分析难学?

2016-08-02 王通 基因学苑

1、是否学习生物信息就可以月薪过万?

很多人常常问我,是否购买了我的教程就可以学会生物信息,找个好工作,月薪过万了?我当然是一口拒绝了,如果真是这样的话,我直接去传销得了。我只能告诉对方,教程的价值绝对超过你投入的钱,至于是否能找到月薪过万的工作,还要看你自己,只是提供了一种可能。

其实,我觉得有这种想法思维太简单的,很容易被忽悠去朋友圈卖面膜,就是听说别人做生物信息可以月薪过万,自己也想去学了。事情哪能这么简单,老板愿意付你一万块钱,你至少要创造5倍以上的价值才行,要不然哪个老板愿意付你这么高的薪酬呢。当然,我们也不能对老板们的智商抱有这么大的信息,我就见过很多名不副实的员工的,但是如果你要是觉得自己不能靠脸吃饭,那还是老老实实学习,靠实力吃饭吧。(我是多么羡慕能靠脸吃饭啊)。

2、为什么生物信息这么难学?

也常听很多人抱怨,为什么生物信息这么难学,害的自己论文发不出来,如果有一个软件,将数据输入进去,直接出来结果,就可以发表论文就好了。但是如果真是这么容易,别人早就发表论文了,还能轮到你吗?那又人说,不是有人说有生物云计算吗,都被吹上天了,就是要解决生物信息难做的问题吗,以后所有的数据都在云端,只需远程登录图形化界面,在网页端点点鼠标,选要做的分析内容,然后等待结果就可以了。真是哪里不会点哪里,老板再也不用担心……打住,这就相当于是以后要实现共产主义,所以我们现在就不用干活了。

我只能把事实告诉你们,生物云计算解决的不是生物信息难学的根本问题,会生物信息的人不需要图形界面,反而觉得图形界面效率低;而不会生物信息的人,有了图形界面依然不会,事实就是这么残酷。

那么我们就来讨论一下为什么生物信息分析难学。

首先我们来看一下生物信息分析是怎样的一项工作,顾名思义,是生物学和信息学组成的交叉学科,本质上是用计算机来分析生物的基因组测序数据。所以,需要三方面的知识,其中生物是指分子生物学,而信息学指计算机知识,分析是指统计学,因为大量的数据必须用到统计学才行。而目前的情况下,这类复合型人才太少了。学生物的人不太会计算机编程和统计,学计算机的人对生物不感兴趣。即使真有这样的人,生物信息却又是一项实践性很强的工作,需要大量的实践经验。总之,这样的人才非常少。所以,目前市场上稍微做过一些这方面工作,会在Linux下使用几个比对软件的人都成为市场上的抢手货,更何况是这种三位一体,金字塔顶尖上的人才,更是凤毛麟角。正因为这项工作难做,所以,肯付出汗水学习的人,才能脱颖而出。我们来定格基调。

“夫夷以近,则游者众;险以远,则至者少。而世之奇伟、瑰怪,非常之观,常在于险远,而人之所罕至焉,故非有志者不能至也。”


既然提到需要掌握掌握三方面的技能,生物学,计算机和统计学,各个击破,又有何难呢?一个学习生物的研究生,搞生物7 8年了或者被生物搞了7 8年,生物学基础不是问题;至于统计学,之前有过一些基础,统计学不就是“上帝掷骰子”吗,这方面通过学习也能达到基本要求。所以,学习生物信息分析最大的难点在于计算机操作了。

假设生物信息分析是在windows系统的图形界面下完成,所有操作都通过点鼠标来完成,或者是通过网页,那么生物信息分析这项工作也很容易学,图形化界面容易操作,一些图形化的软件,大家只需要点点鼠标都可以学会基本操作。所以,我们在进一步来找原因,终于找到了,就是不习惯命令操作,这就是为什么生物信息难学。

很多人从第一次接触计算机,就是图形化的界面,蓝天白云草地的windows,现在再回去敲命令,简直是反人类。命令操作成为学习生物信息天然的屏障。但是存在即合理,计算机本来就是没有图形界面的,命令操作距今40多年,依然具有强大的生命力,就说明有其存在的价值,很多操作,已经成为计算机的经典操作。所以,要学好生物信息,还是要学习命令模式。这里的命令模式主要是指Unix或者Linux的命令行操作。


首先,Linux系统是一个开源免费的系统,所以,许多的生物软件都是基于Linux系统开发的,要学习和使用这些软件,必须在命令行模式下操作;生物数据分析的软件一般都是开源的,也就是可以看源代码,这样就很容易看出来作者是如何来处理数据的,采取什么样的算法,设定什么样的标准等。并且在一定的规则下,甚至自己可以重新对软件进行修改,比如一个软件的输出结果格式不符合自己的要求,就可以对其重新进行修改。但是开源也造成了一些问题,就是不规范,不同的软件采用不同的风格,这种风格完全是作者个人的编程习惯,这也给学习者造成了学习成本。每个软件都需要阅读详细的软件帮助文档。

第二,Linux系统可以不需要图形界面,节省计算资源。有图形界面的系统,这些图形界面需要一直加载到内内中, 占据计算资源,比如windows系统,开机之后就需要占据1G左右的内存。而图形界面则不需要。几乎所有的超级计算机都采用Linux或者Unix等没有图形化界面的系统。另外,由于系统特性不同,比如在windows图形界面下打开一个10G数据的序列文件,是非常困难的。一些软件需要将这些数据全部加载到内存中才能打开文件,如果计算机内存配置只有4G,这个文件用记事本程序根本无法打开,而且会造成死机。而在Linux系统下面,任何大小的文件可以轻松打开查看;
第三、Linux系统强大的命令行模式,Linux系统的命令行模式几乎可以完成对计算机所有的操作,非常的强大。命令行模式特别适合批量化和自动化。比如,要处理一个生物样品的基因组数据,那么可以利用图形化模式点击鼠标操作,也可以使用命令行。但是如果一次处理1000个样品,点鼠标可能就不行了,而这个时候采用命令行就非常方便。比如我们将1000个文件中的所有的Scaffold单词都替换成小写的scaffold,并且将文件的扩展名由fasta修改为fna。如果用鼠标可能就疯掉了,但是使用命令行模式,一条命令就可以完成。另外一点就是命令行特别适合自动化操作,也就是流程化。比如在生物数据分析过程中,一个数据需要多个处理过程,比如测序好的原始序列文件,需要进行质控,过滤,序列拼接,然后进行后面基因预测,基因功能注释等等分析。如果点鼠标,就需要一个过程完成,在将生成文件传输给下一个程序。而采用命令行模式,只需要将数据处理的过程所有的命令写到一个文件中,数据就会按照这个命令集一步步操作,无需人工干预,这就是自动化,同样非常的高效。

生物信息信息本质上是数据挖掘的一个过程,何为数据挖掘,也就是需要不断的尝试,不断的调整,也就是Tuning,而几乎不可能立竿见影,输入数据就得到满意的结果,这也正是一个科学的魅力所在,图形界面不适合反复调试,而这也就是为什么,生物信息还是要在Linux命令行模式下完成。


点击快速掌握Linux操作:https://item.taobao.com/item.htm?spm=a1z10.3-c.w4023-10284985291.4.QV6Xsq&id=535825901642



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存