1、生物信息学常用工具介绍,Unix操作系统与Perl语言编程,杨桢: Yang Zhen 中国科学院上海生命科学研究院 计算生物学研究所 ,生物信息学研究需要具备的技能,分子生物学的基础知识有一两种分子生物学软件包的使用经历 Emboss etc在命令行计算环境下工作 Unix / Linux Shell一门程序设计语言 C/C+, Java, Perl, Python, etc,为什么要使用Unix/Linux操作系统?,功能强大,应用广泛 主要应用于高性能计算机 良好的多用户管理 与网络服务联系紧密:apache,php,WWW服务 丰富的命令和应用程序(打包、免费),Linux,天才大学生
2、Linus Torvalds开发 用于 PC 的免费Unix 开放源代码,业余爱好者共同开发它的出现,使得Unix成为一个低廉或免费的OS 系统资源消耗Windows or Mac 开发软件的接触平台,有用于计算机生物学和一般性研究的丰富工具库,Linux图形界面,基于命令行桌面环境: GNOME KDE ,类似于Windows,有哪些可用的Linux发行版?,Red Hat http:/ Fedora Core http:/ SusSE http:/ Debian http:/www.debian.org Ubuntu http:/ubuntulinux.org CentOS http:/w
3、ww.centos.org,管理方式:基于Debian的pkg与基于Red Hat的RPM,Windows下运行Linux环境,Cygwin: cygwin是一个在windows平台上运行的unix模拟环境,主要目的是通过重新编译,将Linux、BSD,以及其他Unix系统上的软件移植到Windows上。从而在windows环境下模拟该系统虚拟机:指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。 (VMware workstation),Linux基础,如何使用Linux Linux的用户界面 Linux基础命令 Linux文件系统 Linux文件属性 Lin
4、ux文件备份和压缩 进程管理,键入命令,在命令提示符(shell)下,输入命令,然后按下Enter键。 命令提示符识别大小写 如果找不到你输入的命令,会显示反馈信息:“Command not Found” 如果命令太长,要在第一行行尾键入“”字符和按下Enter键,在下一行的“”后接着输入,使用Linux,开机 选择启动 注册 进入图形界面startx 远程登陆Linuxtelnet、ssh 注销logout、exit 关机shutdown、halt、reboot、poweroff,Linux文件系统,UNIX文件系统呈树形结构, 树的根结点为根目录root,用/ 表示 树的叶结点可以为普通文
5、件、特殊文件、或者目录文件。其它既非根结点也非叶结点的结点为目录文件.,Linux文件名称,包含 大写键、小写键、数字、#、_不包含空格不包含以下字符 * ? / ; $ “不能以 “+”或者“-”开头区分大小写最长文件名 255,基础命令,修改口令 Passwd 查询及修改日期时间 date MMDDhhmmCCYY.ss ,date后面的部分是日期字符串,表示要修改的日期时间,MM代表月份,DD代表日期,hh代表时,mm代表分,CC代表年份的头两位,YY代表年份的后两位, 表示括号括住的内容是可以省略的(以下同),如果年份被省略,则表示为当年,ss代表秒。 观看日历 cal 月 年,常用L
6、inux命令,查看目前所在位置: pwd更改目录: cd,Pwd 的意义为 “打印当前工作目录(print working directory),用法:cd pathnamecd .cd ,Linux文件系统,相关操作命令 文件及子目录名称列表-ls 显示一个文本文件的内容 cat 改变文件、目录名称,搬移整棵目录树 -mv 删除文件 rm 复制文件 - cp 创建新的子目录 mkdir / 删除目录 -rmdir 通配符与多文件操作 硬链接 符号链接,复制文件或目录命令cp,cp命令用来复制文件。在缺省的情况下,这个命令工作的时候不做任何显示;只有在出现一个错误情况的时候才显示状态信息。cp
7、 源文件名 目标文件名cp r 源目录名 目标目录名,将file1,file2复制到team01目录里,再将team01目录复制到team02目录里。#cp file1 file2 team01 或#cp file* team01#cp r team01 team02,移动/重命名文件命令mv,mv命令用来把文件从一个位置移动到另外一个位置,也可以从一个分区移动到另外一个分区。 mv 源文件列表 目标文件,将文件file1改名为file#mv file1 file将目录team01下的两个文件file1、file2移到team02下。#ls team01 team02#mv team01/fi
8、le1 file2 /team02,删除文件或目录rm,从文件系统中删除文件及整个目录rm 选项文件列表-r 删除文件列表中的目录-i 指定交互模式。在执行删除前提示确认。文件列表:希望删除的用空格分隔的文件列表,可以包括目录名,删除一个文件file1#rm file1使用-i选项#rm -i file1rm: remove file1? Y#,文件显示命令,cat 显示和合并文件more 分屏显示文件head 显示文件的前几行tail 显示文件的最后几行,显示和合并文件命令cat,可以结合多个文件,并将它们的内容输出到标准输出设备。cat 选项 文件列表-b 列出文件内容时,在所有非空白列之
9、开头标上编号,从1开始累加-E 在每一列的最后标上“$”符号-n 列出文件内容时,在每一列之开头标上编号,从1开始累加,让cat指令从标准输入设备(如键盘)读取数据,转而输出至标准输出设备(如显示器)$ cat 执行指令,不加任何参数123 键入任何文字后,按下回车键123 系统回应一模一样的文字 利用特殊字符“”将名称为file1与 file2 的文件合并成一个文件file3: $ cat file1 file2 file3若文件file3已经存在,则其内容会被覆盖过去;欲避免这种状况发生,可用“”代替“”,新的内容就会附加在原有内容之后,而不会覆盖它。,分屏显示文件命令more,more可
10、将文件内容显示于屏幕上,每次只显示一页。可以往下浏览,但无法向上浏览 , less指令可以上下浏览 。more 选项 文件名,- 指定每次要显示的行数+/ 在文件中查找选项中指定的字符串,然后显示字符串所在该页的内容+ 从指定的行数开始显示-n 每次只显示n行-c 不滚屏,在显示下一屏之前先清屏,在文件file1中查找“123”字符串,然后从改页开始显示文件的内容:#more +/123 file1显示文件file1的内容,每10行显示一次,而且在显示之前先清屏。#more c 10 file1,显示文件的前几行命令head,在屏幕上显示指定文件的开头若干行。默认值是10行。head 选项 文
11、件名-c N:显示前N个字节-n N:显示前N行#head 5 file,显示文件的最后几行命令tail,在屏幕上显示指定文件的末尾若干行。默认值是10行。tail 选项 文件名-c N:显示前N个字节-n N:显示前N行+N :从文件开头的第N行开始显示,比较文件内容命令,comm 比较两个已排过序的文件diff 比较文件的差异,正则表达式 sed与awk的基础,正则表达式是一些特殊或不很特殊的字符串模式的集合。 字符集包括:普通字符集和元字符集(通配符) 普通字符集:大小写字母、数字、空格、下划线 行首 $ 行尾 * 一个单字符后紧跟*,匹配0个或多个此单字符 匹配 内字符,可以是一个单字
12、符,也可以是字符序列。 可以使用”-“来表示 内范围,如1-5等价于1,2,3,4,5。 屏蔽一个元字符的特殊含义,如$表示字符$,而不表示匹配行尾。 . 匹配任意单字符 几个常见的例子: 显示可执行的文件:ls l | grep x.xx 不包括文件夹:ls -l|grep “-xxx“只显示文件夹:ls l | grep d 匹配所有的空行:$ 匹配所有的单词:A-Z a-z* 匹配任一非字母型字符:A-Z a-z 包含八个字符的行:$(8个.),Sed命令,命令格式sed /pattern/ action files pattern: 正则表达式action: 操作,包括p、d、s 示例
13、: 打印行:sed n / 0.0-90-9$/p fruit_prices.txt 删除行:sed /Mmango/d fruit_prices.txt 执行替换/pattern1/s/pattern2/pattern3/g:sed s/paech/peach/g fruit_prices.txt 使用多重sed sed e cmd1-e cmdN files:sed e s/paech/peach/ e s/ *0-90-9.0-90-9$/$/ fruit_prices.txt 在管道中使用sed,awk命令,命令格式awk /pattern/ actions files示例: 字段编辑
14、:awk F: print $1,$3 inputfiles或:awk F: printf “%s is %sn”,$1,$3 inputfiles 执行指定模式的操作:awk / *$1-90-9*.0-90-9 */ print $0; next /*$0.0-90-9 */ print $0 fruit_prices.txt 比较操作符:、=、=、!=、value /pattern/、value ! /pattern/ (相关:&、|)awk ($2 /$1-90-9*.0-90-9$/) & ($3 75) printf “” input_f 利用管道符将标准输入作为输入,如果记不住命
15、令的用法,查看帮助文档: man,用法:man command,为什么要学习编程?,许多宣称自己在做生物信息学的研究者使用他人提供的工具,且从不编程那么,研究生物信息学是否需要编程?太复杂了,学不会?,什么是Perl,Practical Extraction and Report Language 实用提取报表语言,为什么选择Perl,1.脚本语言,与PHP,Python同类 2.不需要编译器,直接运行 3.强大的文本处理能力 4.简单易学容易掌握 5.强大的正则表达式功能 6.胶水语言缺点:代码执行速度时间偏慢,约为C语言的五倍,如何获得Perl,Windows环境:ActivePerlht
16、tp:/安装:直接双击安装程序图标Linux:默认安装,如何运行perl,Windows命令行基本目录,1. cd , 进入目录 cd 进入上一层目录2 C: D: E: 改变盘符,进入其他硬盘分区3. dir 察看目录中的文件内容4. cls 清除屏幕,进入Perl的安装目录,一个简单的例子,一个生物信息学的例子,一串序列中查找是否存在非DNA字符输出结果在没有正则表达式的语言中这个任务将非常繁琐,#!/usr/bin/perl #检测非DNA字符 my $dna = “CCACACCACACCFACCACCGCCTTCCACTCCAACT“; if ($dna = m/(ATGC)/i)
17、print “Warning! Found $1 in the string!n“; ,Warning! Found F in the string!,TIMTOWTDI:“There is more than one way to do it.”,如何学习perl,学会读文档,自己解决问题推荐读物 入门:Learning Perl3rd Edition 中级:Perl Cookbook2nd Edition 高级:Programming Perl3rd Edition 全部由OReilly出版,perldoc,如何学习Perl,CPAN: Comprehensive Perl Archive
18、 Network,BioPerl,1995年开始的一项开源项目,专为生物信息学而开发的perl工具集包含大量的perl模块 模块?,BioPerl包含的模块,如何安装BioPerl?,Perl Package Manager (PPM),PPM,ppm install BioPerl,如何使用BioPerl?,use Bio:DB:GenBank; use Bio:SeqIO;my $db = new Bio:DB:GenBank(); my $seq = $db - get_Seq_by_acc(“U14680“); my $seqout = new Bio:SeqIO( -format = “genbank“); if (defined $seq) $seqout - write_seq($seq); ,怎样提高学习兴趣与效率?,怎样用perl 解析BLAST的输出结果?,谢谢,