Nature forum上的关于在生物信息学领域学习Perl和Python的讨论
http://network.nature.com/forums/bioinformatics/1611 看看顶级专家(也不一定是)是怎样认为的。
使用Python/BioPython解析BLAST结果
在生物信息学中,对BLAST结果文件的解析是最为普遍的一个工作之一,在Perl中有BioPerl可以解析,而在Python中也有 BioPython,并且解析起来非常方便。由于BLAST的版本升级比较快,它的结果输出文件的格式有时也会相应变化,因此为了能正确的解析BLAST 结果,在做BLAST的时候使用’-m 7′参数,使输出结果保存为xml的格式,这是由于xml的格式很少随着BLAST的版本而发生变化,所以推荐使用xml文件来做自动化分析,这能保证我 们的程序能准确的解析BLAST结果。下面的代码是一个简单的框架,可以在此基础上添加内容以满足自己的需要: #!/usr/bin/python “”" DESCRIPTION Frame for parsing BLAST report AUTHOR Wubin Qu: quwubin@gmail.com “”" from Bio.Blast import NCBIXML def parseBlast (result_file): result_handle = open(result_file) blast_parser = NCBIXML.BlastParser() blast_records = blast_parser.parse(result_handle)record_list = list(blast_records) expects = [] for record in record_list: for alignment in record.alignments: for hsp in alignment.hsps: # Do whatever you want, such as expects.append(hsp.expect) return expects def main (): expects = parseBlast(Blast_report_file) print expects if __main__ == ‘__main__’: main()
使用Firefox插件BioBar来让你的科研更顺利
Biobar - A toolbar for browsing biological data and databases. http://biobar.mozdev.org/ 这是非常有用的火狐插件,专为生物科学工作者而设计的! 里面包括了常用的生物信息学的网站,比如NCBI,EBI,DDBJ等。 你可以将PubMed设成你的默认数据库,这样就拥有了一个PubMed 的ToolBar,查找文献非常方便。是所有生物科学工作者必备的 火狐插件,强烈推荐!
什么是MOBY/BioMOBY?
MOBY-S系统定义了一个基于语义(ontology)的信息标准,使程序可以在生物学数据仓库和数据分析中心之间自由的交换数据,避免了人工处理不同数据中的数据格式问题。网址:http://www.biomoby.org/。
BioMart——一个查询导向的数据管理系统
BioMart由欧洲生物信息研究所(EBI)和冷泉港实验室(ESHL)共同开发的一套查询导向的数据管理系统,这个系统可以接受任意格式的数据,也可 以按照不同的需求安装不同的查询工具和界面,可谓相当灵活。由于其内部采用关系型的数据组织模式,所以更易于进行复杂的数据挖掘研究。 BioMart内建有针对处理大量数据的最佳化查询功能,以便处理基因组序列或是微阵列实验数据等。对于分布于网络的多个数据集的交叉查 询,BioMart使之成为可能,从而避免了将这些数据全都下载到本地然后再进行整合查询的麻烦。可以通过网络、图表或者使用Perl、JAVA等语言写 的程序来访问BioMart的数据。目前,BioMart支持关系型数据平台MySQL,Oracle以及Postgres。 另外,BioMart是开源的,遵守LGPL协议。 网址:http://www.biomart.org/
使用muscle来作蛋白质/核酸多序列比对
做多序列比对,比较常用的是CLUSTALW和T-coffee,这里还有一个叫做muscle(multiple sequence comparison by log-expectation)的多序列比对软件,它的平均精度和速度要超过CLUSTALW和T-coffee,具体的算法和用法请参阅其主页 (http://www.drive5.com/muscle/index.htm)上的文档,下面简单介绍一下它的安装和简单用法: 安装: 下载源码:http://www.drive5.com/muscle/downloads3.7/muscle3.7_src.tar.gz 解压:tar xvf muscle3.7_src.tar.gz 命令行下:make 回车 将生成一个muscle的可执行文件,这就是muscle,将他放在/usr/bin或者/usr/local/bin等文件夹里面,或做成软连接都可以。 使用: muscle -in seqs.fa -out seqs.afa 更常用的是: muscle -in seqs.fa -clwout seqs.aln 这将生成与CLUSTALW一样的结果文件。
Software Carpentry
简评:这个课程对我们这些外行编程的人来说,非常好,我极力推荐大家阅读。 下文摘自:http://rl.rockiestech.com/node/167 Greg Wilson 的“Software Carpentry”课程是针对科研和工程人员设计的,鼓励规范、优良、高效编程的一个课程(http://www.swc.scipy.org/index.html)。按照作者的说法,是追求用10%的技巧解决90%的问题。这个课程对专业程序员也可能有不错的参考作用(after the best practice in industry:-)。Wilson的课程在上述的主页上以Python License发布,同时配有mp3课堂录音。这个课程是很值得推广的。作者提供的资料比较大纲化;最好的学习办法可能是配合录音阅读课程资料。然而一个中文的导读应该对读者很有帮助。所以我们建立了这个开放图书页面,大家可以以wiki的方式一起来讨论和制作一个导读。此课程以Python语言讲授;然而基本内容侧重软件工程,和编程语言关系不大。下面是作者的话和目录(http://osl.iu.edu/~lums/swc/): Many scientists and engineers spend much of their lives writing,debugging, and maintaining software, but only a handful have ever beentaught how to do this effectively: after a couple of introductorycourses, they are left to rediscover (or reinvent) the rest ofprogramming on their own. The result? Most [...]
Good programmers don’t write programs: they assemble them
Good programmers don’t write programs: they assemble them Combine tools and libraries that others have written Thereby creating something that others can then recombine 摘自:http://www.swc.scipy.org/lec/integrate.html
做生物信息学:Python还是Perl?
这里不讨论谁优谁劣,而是想说,对于我们学生物信息学的,尤其是生物背景的,最好的或者说最实用的脚本语言是哪个。 我之前用的是Perl,用了一年,但是两个月前,我改用Python了,为什么呢? 第一:我不适合学Perl,他太灵活,我这种有点完美主义倾向的人无法学习;第二:别人写的Perl程序,很难看懂,即使有很详细的注释信息,因为不同人的Perl风格迥异;第三:我的项目需要用到面向对象编程,但是Perl的面向对象我学了很久,依然是无法下手,可能是太笨了(但Python我一天就会了,奇怪吗?);第四:Python的图形界面编程很简洁,这是我选择他的一个很重要的原因;第五:Python的使用率已经高过Perl了,这是个趋势;第六:Google等大公司都在使用Python,那我还等什么呢?