生物信息析编程Perl还是Python

经常有人问学习生物信息,需要学习编程,到底是选择学习Perl还是Python。有的人推荐perl,认为perl简单好学,足够用了,所以学习perl。而另外一些人则是认为学习python,python语法优雅,功能强大,而且更加流行。那么到底该选择学习哪种语言呢?今天我们就来聊一聊。

其实不仅仅是学择编程语言这个问题,其实生活中有太多这样让人纠结的场景。比如,这些年来我一直在纠结以后娶高圆圆呢还是范冰冰呢?哪个我都不舍得。当然结果大家都知道的,何不怜取眼前人了;还有中午吃牛肉饭还是鸡肉饭呢?这将是困扰处女座直到晚餐时间依然悬而未决的难题。现在社会,选择越多,反而得到的越少。

那么选择perl还是python,首先我们要明确几个问题。

1、我们为什么要学习编程?

2、为什么只有perl和python?

3、两个语言各有什么特点?

明确这三个问题之后,结合自身情况相信你会做出一个合适的选择。

一、学习生物信息,为什么要学习编程?

首先,对软件结果进行二次处理,我们通过生物软件得到的结果,需要进行很多的二次处理,比如设置条件过滤数据,合并结果,提取序列等,都需要编程,编程可以极大的提高效率。比如提取序列这件事情,我曾经就看到不会编程的人不断地复制粘贴,复制粘贴,这样既浪费时间,又容易出错。而编程几秒钟就能解决问题。这就是为什么我们课程的宣传语中说的“为什么别人1分钟完成的工作,你需要24小时呢?”

第二,生物信息分析中往往需要处理多样品,比如一次处理个样品,这个样品数据处理方式完全一致,都是过滤数据,序列拼接,基因组分析等。如果一个一个样品来处理,就需要处理次。而会编程,则可以进行批量处理,提升效率;

第三,流程化处理,每个样品数据需要分别进行数据质控过滤一直到完成处理,可能需要10个步骤,如果一步步来,则非常耗时,而且需要很多等待时间,前一步完成,才能进行下一步的操作,但是如果可以编程,就可以进行自动化的处理,一步到位,运行脚本,第二天早上来看结果,而不需要夜里值班;

第四,一些生物软件本身就是用程序编写的,可以将自己的想法,通过程序来实现。所以,学习生物信息编程是必须的。

二、为什么只有perl和python?

其实除了perl和python还有其他一些语言,主流的是perl和python。其实其他语言也能完成完成所需要的工作,只不过这里涉及到一个效率的问题。比如提取序列,C语言,java等都能完成,只不过这些语言处理问题可能需要10条语句,而perl只需要一条语句。

首先,这两种语言都被称为脚本语言,perl和python都支持正则表达式,非常善于处理文本,而生物数据本质上就是文本,生物信息分析本质上也就是处理文本。

第二,这些语言都根植于Linux平台,无需编译可以直接执行;

第三,作为脚本语言,不需要提前定义变量,也不用严格区分变量类型,比如C语言中要定义一大堆整形,浮点型,单精度与双精度浮点型这么多复杂的概念,perl和python都不需要;

第四,用来处理生物信息,这些语言都集成了大量第三方工具,比如perl的CPAN模块库,python也有类似的模块库。生物信息中常见的bioperl项目和biopython项目等;

第五,已经有大量的生物软件用这两种语言编写,比如perl编写的rnamer,nucmer,sspace,python编写的qiime等。

所以,我们看到,这两种语言都非常适合用来做生物信息,尤其是perl,简直是BornforBio。

三、这两个语言之间有什么差别呢。

Perl一般被称为“实用报表提取语言”(PracticalExtractionandReportLanguage),Perl最初的设计者为拉里·沃尔(LarryWall)也就是我们课程的封面人物。perl的吉祥物是骆驼。Python是一种面向对象、解释型计算机程序设计语言,由GuidovanRossum于年发明,python

的吉祥物是蟒蛇。设计perl的是语言学家,设计python的是数学家。虽然二者都能完成同样的工作,但是语言风格上却有非常大的差别,perl是艺术性的而python是富有逻辑性的,也就是二者在编程思想上有明显的不同,甚至是对立的。perl追求的是TheresMoreThanOneWayToDoIt。而在TheZenofPython中,则强调Thereshouldbeone--andpreferablyonlyone--obviouswaytodoit。解决问题最好的方式只有一

种。因此,perl的语法更自由,可以随便写,perl程序里,有各种各样奇特甚至说奇葩的操作符,这些操作符往往能非常高效解决问题,所以,perl的程序一般看起来非常乱,天马行空,因为解决问题方法不止一种。而python则追求优雅,python的程序看起来非常整洁,语法简洁,格式工整,便于阅读。所以,选择哪种看个人喜好。

此外,如果单纯是处理生物信息,并且没有多少编程基础,那么perl是一个很好的选择,perl比较容易,学会小骆驼中的正则表达式,就可以解决绝大部分的问题,剩余的掌握复杂数据结构就可以,比如引用。而python的话则需要掌握的较深,特别是python对象和变量之间的关系,掌握好python对象的处理方式,才能游刃有余的解决问题。

如果实在是哪个都不愿放弃,那就两个一起学吧,先学习perl,再学习python。而我还是同样的观点,其实这个问题的本质并不在于我们选择学习哪个,而是是否能够学好。我们经常看到有人电脑里收藏几百份生物信息学习的资料,







































北京哪个治白癜风医院比较好
北京中科白殿疯医院好不好



转载请注明:http://www.92nongye.com/zyjs/204618846.html