经常有人问,做生物信息需要学习编程吗?这个问题是肯定的,因为生物信息是用信息学处理生物数据,当然需要编程了,所谓“技不压身”,多掌握一门技能肯定是有所帮助的。但是有些人就是需要什么就学习什么,绝对不想多浪费时间学习,有这时间看看抖音快手不香吗?难道部分人已经开始用鼻子去感受世界了。
编程可以实现批量化操作
因为编程是生物信息的核心。编程可以实现数据处理的批量与自动化。
首先来看批量化,比如你想把比对率相似性小于80%的结果都过滤掉,然后在把这些序列都提取出来。如果不会编程,你可能就需要手动一条条来做。如果有1万条序列,你得累成什么样,而如果会编程,几分钟就能完成,而且还不会出错。当你做数据分析的时候,做了一个样品,很容易完成。那么在尝试做十个样品,重复10次也可勉强可以。但是当你一次做100个样品,做1000个样品,一万个样品。在这个过程中,就会发现一个问题,有很多工作是重复的,软件使用方法都一样,只不过需要将样品名的地方替换一下。所以,这个时候就自然而然需要学习编程了。编程可以批量处理样品,减少重复劳动,极大的提高效率。
如果你发现一件事情很繁琐,那么就该停下来看是否有程序可以自动完成。一件一个小时可以完成的工作,你可以利用1个小时完成,也可以花59分钟找快速解决方法,最后一分钟完成,当然是推荐后面一种。
编程可以实现自动化操作
第二个就是编程可以自动化操作。从你拿到测序数据,到最终得到想要的结果,数据需要经过很多个处理步奏,比如数据质控,数据过滤,比对,拼接,注释等步奏,多的可能有10多个。其中有些步奏非常耗时,如果你一步步来呢,没问题,最开始的时候肯定要这样,但是当整个处理流程你都非常熟练的时候。就没必要在一步步做了,比如某个第三个步奏需要十个小时,预计半夜1点钟完成,难道你还半夜爬起来在运行第四步吗,这个时候写个程序,让所有步奏能够自动化完成就非常牛了,运营一条命令,然后等结果就行了。编写好程序,敲几个字母,完成工作。
开发自己的一些软件。
其实自己写软件也可以发表SCI文章的,而且有些分数还很高,比如很多生物软件都发表在bioinformatics杂志上,如果这个软件引用率比较高的话,后面还可以发表在《Nature Method》或者《Nature Protocol》上,像tophat,hisat,bioconda等都发过Nature了,甚至你升级一下软件,还可以在来一篇。甚至开发一下R包,做个分析网站,开发个手机App都可以发,我见过最逗的是有两个生物信息的论坛Seqanswers和biostar都发表SCI了。如果你有很强的编程能力,又懂生物信息,完全可以开发一些软件,如果你的软件特别好用,完全可以扬名立万,光宗耀祖,为国争光。
那些会编程的亿万富翁
信息化时代,有很多编程高手已经成为亿万富翁,十大富豪中会编程的也榜上有名。其中最有名的包括比尔盖茨,扎克伯格,马斯克,拉里佩奇,谢尔盖布林,优步的卡兰尼克等,国内的马化腾,雷军,张小龙等等。
其实学习编程还有很多好处的。编程会给你打开一个新的世界,开发自己很多潜能。更重要的事,可以让思路变得更加有条理,逻辑更加清晰。当然也有一点副作用了,就是太理性了,可能越来越不爱美人爱代码了。让我们一起看看当年乔布斯是如何谈学习编程的。