生信基础(一)——  生信常用的编程语言

原创: hxj7

                 生信常用的编程语言

大家都知道,从事生信工作,除了要有生物学基础之外,最重要的就是编程技巧了。生信领域使用的最广泛的编程语言是shell(涉及sed、awk等常用文本处理工具)、perl、python以及R了。一些算法开发人员还会使用诸如C、C++、Java等语言来增强性能。

perl or python?

对生信人员而言,熟练掌握shell可以应付日常工作中很多琐碎的、重复的文本处理、系统管理等任务。如果遇到一些较复杂的任务,则需要使用更高级一点的编程语言处理,如perl和python。perl和python很相似,都是解释性语言,不用预先编译;和C相比,上述二者的语法简单,且自带一些高级数据结构,所以用它们来实现编程想法比较快速。

perl和python到底该学哪个,一直以来都备受争议。就我自己的经验而言,如果有C的基础,学习perl和python的语法都很容易。由于早期的生信人员多用perl,所以我接触到的很多生信前辈都会使用perl,很多早期的生信分析工具也是perl编写的,如果你要用到它们,不懂一点perl还真不成。python呢,是明日之星,在生信领域正变得越来越火热,大概也和近几年python在web后端、人工智能等领域的炙手可热有关系。

我的python经验

就我自己而言,我有C的基础,后来学的python,一下子就被其简洁优美所吸引,以至于后来领导让我学perl,我一直都拖着没学好。我接触python快五年了,逐渐认识到python的确在许多计算机领域都很受欢迎,社区支持很好,各种新的包层出不穷。我将自己学习python一路以来鼓捣的部分东西分享在下面:

自制的豆瓣桌面客户端
豆瓣FM是我一直以来听歌的首选(直到网易云音乐的出现),所以我自己写了一个Linux下的豆瓣桌面客户端。这个花费了我一个星期的时间,用到了简单的爬虫以及PyQt模块。这个小项目让我领略到用python实现爬虫那叫一个快。

获取WEP路由器密码
有一段时间我对网络协议很感兴趣,自以为搞清楚了TCP、UDP,就想学人家黑客去遨游网络,结果当然是铩羽而归。不过,偶然的机会让我发现了scapy,这是一个python模块,可以用来模拟发包,我最终还是用这个小玩意去把隔壁宿舍的路由器密码给拿到了(谁让他们还用WEP协议呢~)。

web服务器来控制树莓派
不得不说,前几年我还真是爱折腾,看到树莓派的新闻,觉得好玩就买了一个。好在树莓派天生就支持python,所以没费多少工夫,我学着网上的教程装了一个摄像头模块,可以远程监控宿舍。可是放长假回家就连不上了,把我急的呀,返校后赶紧google找资料,最后用新浪云基于web2py实现了一个简单的web后台,这样就可以用手机在家控制宿舍里的树莓派了。后来新浪云的免费额度用完了,我也就把树莓派雪藏了。我还真是三分钟热度,汗!

我的分享就到这,有点啰嗦哈。perl和python二者到底用哪个,我觉得是一个见仁见智的事情,如果你拿不定主意,想了解更多意见,可以看看这个帖子,李恒大神也在里面发言了~
https://www.biostars.org/p/135999/

至于R这个统计分析的利器,限于篇幅,我会在以后的文章中再说。

(公众号: 生信了)
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/biocity/article/details/82907837