选择显示字体大小

biojava – 开源的生物信息学基础库

biojava – 开源的生物信息学基础库


alex dou
autoasm@yahoo.com


什么是生物信息学?

生物信息学,这确实是个很酷的名字。
从字面上理解,这是一门与生命科学和信息科学这两个当今热点领域都相关的学科。
那到底什么是生物信息学?在这里,我只能很遗憾地告诉大家,对于这样一门新兴的、而且正在不断发展和变化中的学科,我很难给出一个精确的定义。

广义地说,生物信息学从事对基因组研究相关生物信息的获取、加工、储存、分配、分析和解释。这一定义包括了两层含义,一是对海量数据的收集、整理与服务,也就是管好这些数据;另一个是从中发现新的规律,也就是用好这些数据。

具体地说,生物信息学是把基因组 dna序列信息分析作为源头,找到基因组序列中代表蛋白质和 rna基因的编码区;同时,阐明基因组中大量存在的非编码区的信息实质,破译隐藏在 dna序列中的遗传语言规律;在此基础上,归纳、整理与基因组遗传信息释放及其调控相关的转录谱和蛋白质谱的数据,从而认识代谢、发育、分化、进化的规律。

信息技术的发展和应用使得几乎所有的人受益,研究dna、rna和蛋白质的分子生物学家也不例外。很难相信,离开信息技术,分子生物学家可以完成人类基因组的测序(事实上,大规模测序中所使用的鸟枪法确实依赖于计算技术),如果没有信息技术和计算分子生物学的理论支持,研究sars的病毒学家也不可能在短时间内判断sars病毒的种类归属(除非他们火眼精精能够从数以百万计的agct这几个符号的杂乱无章的排列中找出规律)。

生物信息学的本质即使用各种信息技术来支持生命科学的研究与开发。


biojava简介
生物信息学在理论和工程上面临许多挑战。而要开发出复杂的生物序列分析系统,需要一些基础库的支持,biojava就是这样的一套基础库。
biojava是使用java语言开发的、用于分析和表示生物序列(如dna、rna和蛋白质)的基础库。biojava提供了生物序列处理功能(如转录与翻译)、文件格式转换功能和一些简单的科学计算(如隐马尔科夫模型)。

读者可以从http://www.biojava.org 获得更多的biojava的介绍。另外,感谢北京大学生物信息学中心的吴欣(音译),他将biojava的入门文档翻译成了中文。


转录—一个简单的例子

绝大多数生物都使用dna来表达遗传信息(诸如sars病毒和艾兹病毒使用rna表示遗传信息)。但直接指导合成蛋白质的确是信使rna。在分子生物学上,复制过程中从dna到rna的过程被称作转录(类似的,从rna到dna的过程叫做逆转录,逆转录过程通常出现在以sars病毒和艾兹病毒为代表的rna病毒复制过程中),如图1。


图1.转录与翻译

下面这段代码使用biojava库来获得一段dna序列所对应的rna序列。


import org.biojava.bio.symbol.*;
import org.biojava.bio.seq.*;

public class transcribednatorna {
        
        public static void main(string[] args) {
            try {
                            //make a dna symbollist
                      symbollist syml = dnatools.createdna("atgccgaatcgtaa");

                      //transcribe it to rna
                      syml = rnatools.transcribe(syml);

                      //just to prove it worked
                      system.out.println(syml.seqstring());
            }
            catch (illegalsymbolexception ex) {
                      //this will happen if you try and make the dna seq using non                         iub symbols
                      ex.printstacktrace();
            }
            catch (illegalalphabetexception ex) {
                      //this will happen if you try and transcribe a non dna symbollist
                      ex.printstacktrace();
            }
          }
}

上面代码中,我们首先创建了一个dna序列对象,该序列的内容为atgccgaatcgtaa。然后调用rnatools.transcribe()方法获得转录后的rna序列。由于转录过程中dna序列与rna序列是一一对应的,且两个字符集中的符号映射关系也是确定的,所以这个方法的实现其实十分简单。当然,biojava中也提供了诸如hmmer的更复杂的功能,有兴趣的读者可以参考biojava网站。


相关阅读材料
如果你是一名软件工程师并且对生物信息学有兴趣的话,你可能需要了解更多的分子遗传学方面的知识。科学出版社的《基因组》是一个不错的选择,影印版的《分子生物学精要》也相当不错,前提是你要做好背专业词汇的准备。全美经典的《分子生物学和细胞生物学》则是不错的参考书。

如果你有生命科学领域的背景,你或许需要掌握更多的计算机科学方面的技能。《生物信息学中的计算机技术》是很好的入门材料。

另外,《计算分子生物学导论》是本相当经典的理论书籍,不过该书的读者需要有一定的计算机科学理论知识。

download pdf
http://files.blog-city.com/files/aa/43701/b/biojava.pdf


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons