第一章生物信息学分析基础工具与平台配置第一章生物信息学分析基础工具与平台配置随着生物信息学的普及运用,大多数实验室都需要通过一些生物信息学的工具,甚至是构建生物信息学分析平台服务生物学实验,并提示进一步的实验方案。根据实验室具体需求,集成各种常用分析工具、资源,将可以高效地完成本实验室成员生物信息学分析的需求,还能够完成一些序列批量处理的任务。许多生物信息学的分析软件和数据库可以通过互联网(Internet)免费获取,为生物信息学平台的建设奠定了基础。生物信息平台的建设是需要逐步推进和实施的。因而在设计和构建过程中要注意平台的实用性并做好备份工作。实用性的高低直接影响到使用者对系统的评价。系统在设计时,在满足实际应用要求的目标前提下,应该多从使用者的角度出发,采用面向用户的设计理念,提供界面友好、操作方便的用户交互平台和操作环境。实验室生物信息学平台一般都由多个实验室成员共同使用,这就导致不可避免会出现一些问题,为此,首先要做好数据的备份工作,其次要注意记录平台软件的安装和使用方法,在平台出现问题后可以方便地进行恢复。本章的主要内容包括:几乎所有生物信息学分析中都会用到的工具和方法,如:文本编辑器、Linux操作系统系统下安装软件、系统基础服务的配置等。第一节文本编辑器文本编辑器是用于编写普通文字的应用软件,以纯文本形式进行储存,一般用来编写程序源代码。而Word等文档编辑器是以二进制格式进行存储,主要功能是用来排版。文本编辑器具有的典型功能主要有:查找、替换、剪切、复制、粘贴、行号、自动缩排、撤销和恢复等。Windows系统自带的记事本虽然也是文本编辑器,但功能较小,编写脚本程序时没有语法提示,也不能打开比较大的文件,如:基因组、蛋白组等。在生物信息分析过程中,绝大多数软件的结果都是纯文本格式,不同软件之间的数据传递也经常通过纯文本格式,此外,编写生物信息学程序脚本也需要用到文本编辑器,因此,文本编辑器是生物信息学中一个非常重要的工具。本节将介绍Windows下的UltraEdit和Linux下的vi编辑器。一、常用的文本编辑器Notepad是一个开源免费的文本编辑器,可以对多种编程语言实现语法高亮,代码折叠,拖放缩放等。Notepad2是一个相当优秀的轻量级文本编辑器,具有很多特色功能,如代码高亮、编码转换、行号显示、多步Ctrl Z等,是不可多得的记事本替代工具。而Notepad2mod是Notepad2的修改版、更新很及时,支持代码折叠、NSIS、Inno、AHK语法高亮等。PSPad是Windows平台上免费的适合程序员使用的编辑器,它可以保持上一次的编辑状态,下次打开编辑器的时候可以直接显示原来的文件,此外还支持通过FTP进行远程编辑,支持多文件比较等。Emacs编辑器具有内置的宏功能以及强大的键盘命令,几乎被移植到了每一个平台,并有多个发行版,是跨平台、完全免费并且开源。Sublime Text3编辑器支持但不限于Perl、Python、R、PHP、C、C、C#、HTML、Groovy、Haskell、HTML、Java、JavaScript、LaTeX、Lisp、Lua、Markdown、Matlab、OCaml、Ruby、SQL、TCL、Textile以及XML等主流编程语言的语法高亮。Gedit是Linux下的一个纯文本编辑器,但也可以把它用来当成一个集成开发环境(IDE),它会根据不同的语言高亮显现关键字和标识符。二、UltraEditUltraEdit(http:wwwultraeditcom)是一套功能强大的文本编辑器,可以编辑文本、十六进制、ASCII码,可同时编辑多个文件,而且即使开启很大的文件速度也不会慢。可以编辑列;可将文件另存为多种编码格式从而解决乱码问题,有Perl脚本的语法错误提示。生物信息分析中,可以通过Ultraedit打开基因组文件,支持超过4GB的文件。在UltraEdit使用过程中,建议修改以下配置以方便使用。(1)UltraEdit默认保存一个临时文件以备份修改前的文字,虽然很安全,但是一般情况下需要不断地进行删除,造成了不必要的麻烦,因此,可以设置成不备份;高级配置文件处理备份不备份(图1-1)。(2)在鼠标右键中添加UltraEdit,这样可以很方便地打开文件。高级配置文件关联,选择集成到资源管理项。图1-1设置UltraEdit不产生临时文件
三、Vi编辑器Vi编辑器是Linux系统的一个文本编辑器,可通过终端进行操作。因此是必须掌握的工具之一。但习惯Windows系统txt编辑器的用户需要一个适应过程。以下是操作过程中比较重要的几点:(1)vi filename打开一个文本文件,刚打开时,是出于vi编辑器的命令行状态,不能对文本进行修改,这时候,按下ia或o可以进入编辑状态,对文本进行修改。其中:按i从光标当前位置开始输入文件;按a从目前光标所在位置的下一个位置开始输入文字;按o是插入新的一行,从行首开始输入文字。(2)对文本修改完毕后,需要保存退出,这时候按ESC键,可以对文本进行不同的处理,在底部可以输入::w filename 以指定的文件名filename保存编辑内容:wq 存盘并退出vi编辑器:q! 不存盘强制退出vi编辑器注意这里有:半角冒号键保存之后,可以通过linux的more命令查看是否修改成功。第二节Linux系统基础生物信息学分析平台需要使用Linux操作系统,虽然Linux操作系统的界面没有Windows那么友好,软件使用也不很方便,但是很多生物信息学工具都是在Linux系统的基础上运行的,虽然也有一些虚拟机等工具可以模拟Linux系统,但如果想要深入学习生物信息,则Linux是不可避免的。Linux操作系统没有那么神秘,只要学会在Linux系统下安装软件的方法、常用命令和系统设置就可以完成大多数的生物信息学分析工作。一、软件安装与Windows相比较,在Linux系统下安装软件就显得比较麻烦,因此,在下载到Linux应用软件之后,首先要看软件自带的安装说明然后再安装。这里总结了Linux系统下三种常用的软件安装方法供大家参考。(1)下载的软件格式类似software_name-123-1targz,software_name表示软件名称,123表示版本号,1表示修正版本。targz、tarZ、tarbz2或tgz是使用linux系统打包工具tar打包,再做一次压缩。因此在安装之前,首先要解压缩,不同扩展名解压缩命令也不相同,一般情况下,运行下面的命令就可以一步完成解压与解包工作:tarxvzf software_name-123-1targz阅读软件附带的INSTALL或README等文件,了解软件安装和使用的基本情况,这类程序的安装一般需要以下几个步骤:执行configure命令为编译做好准备;执行make命令进行编译;Make可指定特定file文件为对象文件。如果没有-f参数,则系统将默认当前目录下名为makefile或者名为Makefile的文件为对象文件。执行make install完成安装。到此如果系统没有提示安装错误信息的话,就表示安装成功了。但是安装的程序却不一定能正常运行,因为,安装程序的可执行文件必须在系统的PATH路径下,系统才可以找到相应的程序。如:usrlocalbin是一个系统默认的执行目录,然而,我们的程序不一定安装在该目录下,这就需要在设置PATH变量。(2)rpm使Linux的软件安装工作变得更加简单容易。rpm是ReHat Package Manager(Red Hat包管理器)的缩写。rpm的安装基本命令为:rpmivhsoftware_namerpm更多参数:-i 安装软件-t 测试安装,不是真的安装-p 显示安装进度-f 忽略任何错误-U 升级安装-v 检测套件是否正确安装这些参数可以同时采用。更多的内容可以参考RPM的命令帮助。rpm软件的卸载命令为:rpme software_name要注意的是,后面使用的是软件名,而不是软件包名。例如,要安装software-123-1i386rpm这个包时,应执行:rpmivh software-123-1i386rpm而当卸载时,则应执行:rpme software(3)软件本身是可执行文件,将文件的目录添加到PATH变量后,就可以直接运行。二、PATH路径设置Linux系统环境下,通过命令行运行程序时,系统会在设定的路径范围内查找对应的程序,如果安装的程序没有在指定的路径中,程序就不能运行。通过vi编辑器打开账户目录下的bash_profile配置文件(图1-2),修改其中的PATH变量,多个路径之间通过冒号分开,保存后运行一下命令刷新bash_profile,新安装的程序就可以运行了。sourcebash_profile需要注意的是刷新bash_profile只能在命令行打开的状态下使用,一旦关闭就失效了,如果想永久更新,重启系统即可。图1-2通过vi编辑器编辑home目录下的配置文件bash_profile,可以看到该文件中的PATH变量,示例中使用的终端是Fterm,从左下角可以看出,vi编辑器处于插入状态
三、必备Linux命令Linux中的命令的确是非常多,但我们只需要掌握我们最常用的命令就可以了。(1)cd命令,用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径。如:cd usrlocal 切换到usrlocal目录cd切换到上一层目录cd ~转到home目录(2)ls命令,查看文件与目录-l:列出长数据串,包含文件的属性与权限数据等-a:列出全部的文件,连同隐藏文件(开头为的文件)一起列出来(常用)-h:将文件容量以较易读的方式(GB,kB等)列出来-R:连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来注:这些参数也可以组合使用如:lslh(3)find命令功能是查找文件,命令格式为:find[PATH][option]即:在某一路径下查找某一文件,可以添加与时间有关的参数,与用户或用户组名有关的参数,与文件权限及名称有关的参数等。(4)cp命令该命令用于复制文件,c它的常用参数如下:-a:将文件的特性一起复制-p:连同文件的属性一起复制,而非使用默认方式,与-a相似,常用于备份-i:若目标文件已经存在时,在覆盖时会先询问操作的进行-r:递归持续复制,用于目录的复制行为-u:目标文件与源文件有差异时才会复制例如:cp file1dirfile2#把文件file1复制到dir目录下的,文件名改为file2(5)mv命令,用于移动文件、目录或更名mv file1 file2#把文件file1重命名为file2(6)rm命令,用于删除文件或目录-f:就是force的意思,忽略不存在的文件,不会出现警告消息-r:递归删除,最常用于目录删除,它是一个非常危险的参数例如:rmfr dir#强制删除目录dir中的所有文件(7)tar命令,用于打包、压缩和解压,它的常用参数包括:-c:新建打包文件-t:查看打包文件的内容含有哪些文件名-x:解打包或解压缩的功能,可以搭配-C(大写)指定解压的目录,注意-c、-t、-x不能同时出现在同一条命令中-z:通过gzip的支持进行压缩解压缩-v:在压缩解压缩过程中,将正在处理的文件名显示出来-f filename:filename为要处理的文件(8)cat命令,查看文本文件的内容,后接要查看的文件名。可利用该命名合并文件cat fiile1 file2 file将file1和file2中的内容合并到file中(9)chmod命令该命令用于改变文件的权限,一般的用法如下:-R:进行递归的持续更改,即连同子目录下的所有文件都会更改同时,chmod还可以使用u(user)、g(group)、o(other)、a(all)和 (加入)、-(删除)、=(设置)跟rwx搭配来对文件的权限进行更改。例如:chmod 0755 file#把file的文件权限改变为-rxwrxrxchmod g w file#向file的文件权限中加入用户组可写权限四、Linux系统的输出重定向与管道在Linux命令行模式中,如果命令所需的输入不是来自键盘,而是来自指定的文件,这就是输入重定向。同理,命令的输出也可以不显示在屏幕上,而是写入到指定文件中,这就是输出重定向。在生物信息学分析中,经常需要将程序的过程信息或程序使用说明等信息保存到文件上,这时候就需要进行输出重定向。Linux系统下,可以通过实现输出重定向。如:ls filetxt覆盖内容到 filetxtlsfiletxt追加内容到 filetxt注意:一些程序的提示信息,直接通过不能实现将信息重重定向到文件,这时候可以通过&实现。Linux系统使用管道将多个命令组合起来,就可以形成了非常强大的工具组合,能完成非常复杂的工作。Linux使用管道符|将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。连续使用管道意味着第一个命令的输出会作为第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推。五、中文版Linux改为英文版在通过终端访问Linux系统时,如果系统是中文版,则可能会有乱码的问题,因此推荐将Linux设置成英文版。首先确定使用的是Root账户。(1)修改语言配置文件# vietcsysconfigi18n使用vi编辑器进行编辑编辑此文件,将语言设置为英文LANG=en_US可以将原来使用的语言前加#注释掉将语言设置为中文LANG=zh_CN(这个配置项需要注释掉,如需再改为中文,打开此项,注掉上面一项)保存配置文件,退出:wq(2)重启系统# reboot六、开启FTP服务FTP是File Transfer Protocol(文件传输协议)的英文简称。用于Internet上的控制文件的双向传输。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。目前,大多数的基因组数据都是通过这种协议进行传输。在Linux系统下,需要进行一些设置开启该功能。步骤如下:(1)以root登录,输入以下两个命令setsebool ftp_home_dir onservice iptables stop(2)查看,修改防火墙状态etcinitdiptables status添加开放21号端口sbiniptablesI INPUTp tcpdport 21j ACCEPT保存配置etcrcdinitdiptables saveservice iptables stopchkconfiglevel 35 vsftpd onservice vsftpd start(3)重启防火墙,启用、停用service iptables{start|stop|restart}如果不想每次都输入,可以在etcrcdrclocal文件中写上这两个命令,系统开机会自动运行。如下:## This script will be executed after all the other init scripts# You can put your own initialization stuff in here if you dont# want to do the full Sys V style init stufftouch varlocksubsyslocalsetsebool ftp_home_dir onservice iptables stopLinux系统的FTP服务器打开之后,可以使用Windows系统下的FlashFXP等工具登录到Linux的FTP服务器,从而实现Windows系统和Linux系统的文件互传(图1-3)。图1-3Windows操作系统和Linux操作系统通过FTP实现文件互传第三节生物信息学实验室局域网局域网指的是在一个特定区域内将多台计算机互联成一个计算机组。局域网是当今网络应用最普遍、最基础的形式,它广泛应用在协同工作、大型网络应用软件系统运行、共享资源等方面。生物信息学实验室的局域网系统在设计时,要考虑到能够依据实际需要进行系统拓展与升级,这种升级能够保持系统内部整体布局不变,仅需要增加一定的机器设备,就可以把原网接入到新网,以避免对原网的破坏,而无端增加投入,提高成本。局域网系统必须要符合现阶段与今后实验室实际发展的需求,充分利用好当前的硬件、软件资源,系统的设计要易于使用与维护。一、生物信息学局域网实例生物信息局域网构建之前需要进行调查分析,就是要了解组网的目的、范围以及已有的条件,即利用局域网要干什么,完成什么功能、位置分布及硬件软件有些什么等。现在以本实验室局域网为例进行分析。实验室硬件设施主要包括:①计算服务器,Linux操作系统,安装了实验室所需要的生物信息学分析软件,实验室成员都需要登录该服务器进行相关的分析工作。②网络服务器是由Linux操作系统、Apache、Mysql和PHPCGI环境搭建的网络平台,需要外网发布数据,同时管理员也要通过局域网登录进行管理,因此该服务器为双网卡。③NAS存储服务器,生物信息学分析的原始数据和结果数据统一保存在该服务器上,这一方面是因为计算服务器和网络服务器的存储能力不足,另一方面也是因为Linux操作系统容易出现问题,使用专用的NAS服务器可以提高实验室数据的安全性能。NAS服务器使用RAID,在一个硬盘出现故障,更换新的硬盘不会造成数据的丢失。④图形工作站,Windows操作系统,安装生物信息学分析软件,实验室成员可以直接在工作站上进行分析操作。⑤网络设备,由于局域网需要使用FTP进行文件传输,使用FTerm进行远程登录,因此要求路由器支持固定IP,这样就不需要每次进行分配。实验室局域网首先通过一个8口路由器连接就算服务器、网络服务器、NAC存储服务器和图形工作站,实现内部的数据共享;网络服务器同时连接外网,实现实验室数据的发布。实验室成员可以通过FTP与每一个设备进行文件互传,也可以通过FTerm在Windows操作系统上登录Linux操作系统的服务器,不需要每次都在服务器前进行操作,提高了工作效率。先进的硬件设备是生物信息学实验室局域网的基础,而局域网的安全运行更需要制定相应的规章制度和措施。如:新安装的软件要经过测试再进行安装等。