ImageVerifierCode 换一换
格式:PPT , 页数:50 ,大小:171.06KB ,
文档编号:3725952      下载积分:25 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-3725952.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(晟晟文业)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(PERL在生物信息学中的应用课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

PERL在生物信息学中的应用课件.ppt

1、PERL简介PERL脚本的编写PERL变量Perl语法PERL与正那么表达式PERL示例Practical Extraction and Report Language 实用摘录和报告语言,但它事实上不是缩写实用摘录和报告语言,但它事实上不是缩写Larry Wall,1987.12.18Perl的历史的历史l Unix:大多数内置:大多数内置l 一些软件也内置一些软件也内置perl,比如,比如apache/oraclel Windows:ActivePerl5.10.0编辑工具:编辑工具:notepad,viIDE:Komodo,Perl Dev KitCGI:Top perl studio,

2、Perl builder,perl edit,perlwiz,Mod_perll脚本语言,解释执行脚本语言,解释执行,无需编译无需编译l具有编译语言如具有编译语言如c、Java的功能,又有的功能,又有shell脚本的方便脚本的方便l无数据类型区分,适于不太复杂的程序无数据类型区分,适于不太复杂的程序l适于不要求速度,不在乎内存适于不要求速度,不在乎内存CPU等系统资源的任务等系统资源的任务l强大的字符串处理功能强大的字符串处理功能l灵活或复杂的正那么表达式灵活或复杂的正那么表达式l大多数平台支持,除了专用模块,可在不同平台运行大多数平台支持,除了专用模块,可在不同平台运行Web编程:CGI,X

3、ML处理系统管理网络编程(安全脚本).数据库管理图像处理其他众多的领域。#!/usr/bin/perlPrint“This is my first perl programn”;$a=;Print$a;l 第一行:#!/usr/bin/perl 由什么程序执行以下的内容l 注释:l 输入:l 输出:printl$a:变量,无需指定数据类型nScalar:标量,以$开始,后面以字母或_开头,再后面能够是字母或数字narray:数组,列表,以开头nHash:哈希,散列,以%开头n文件:大写字母n区分大小写,$Var,$VAR,$varn内置变量$/,$等n由双引号或单引号标识的一组字符组成。n最少

4、0个字符(“”为空串),最多能够占满内存,末尾不含null(0)n“$string”=$str+“ing”!=$stringn记住一些常用的转义字符nprint“the$var is$var.”n注意单引号的用法:不替换、不转义$var=“str”;print“this is$var”;#”this is str”print this is$var;#this is$varl未创建时状态为undef,到达文件尾也为undefl说明变量为未定义:undef$a;l用在条件判断中:if(undef$a)l代替不关心的变量:$s=“a:b:c:d;($a1,undef,undef,$d1)=spli

5、t(/:/,$s);l假如有undef变量又不知在哪,可加-w参数进行提示#!/usr/bin/perl-wl创建后状态为defined 一般用在条件判断中if(defined$a)l整数初值为0,字符串初值为空串”。一般未赋值就使用时$result=$undefined+2;nlength():字符串长度nuc,lc,ucfirst,lcfirst:改变大小写函数nsubstr,index,pos:字符串函数nsin等三角函数nrand(),srand():随机发生函数$lastchar=chop($str)#截去最后一个字符$result=chomp($str)#截去末尾的行分隔符(通常为

6、”n”),行分隔符由$/定义nif(condition1)elsif(condition2)elsenunless()nuntil()ndo until()nwhile()ndo while()nfor(;)nforeach循环语句n语法:foreach$w(list|array)statementn()内能够是数组a,也能够是列表(1,2,3)n数组元素值能够修改,列表那么是常量n$w不影响本来已定义的变量$w,循环结束后恢复n能够用$a(a)用相同的变量名称n例如:foreach$a(a)用于数组foreach$a(1,2,3,4)用于列表foreach$k(keys%h)用于哈希/散列f

7、oreach$a(a1,2,4)仅对数组部分元素foreach(a)缺省循环变量为$_nlast:退出循环nnext:进入下一循环nredo:重新执行本次循环ngoto:跳转ncontinuestatementnprint$a if$a=0;nprint$a unless($a=0);nprint$a while($a-=0);nprint$a until($a-=0)用|,&的条件语句:$a=0&print$a;open(F,file)|die“cant open”;die函数:在控制台标准错误输出信息后退出程序。warn:输出信息后不退出程序,只起警报作用。$!:内部变量,包含错误代码。$

8、:内部变量,包含错误信息。n形式:(1,”a”,2.3,$a,$x+1),其元素能够是数字、字符串、变量、表达式n空列表(),单元素列表(2)不同于标量2nqw(1$a str)()能够用其他符号表示,如元素可以是数值、变量、不带引号的字符串,中间用空格分开.:范围运算符,每次增加1,如1.3n(1.6)=(1,2,3,4,5,6)n(1,2.5,6)=(1,2,3,4,5,6)n(3.3)=(3)n(2.4.5.3)=(2.4,3.4,4.4)n(4.5.1.6)=()n(“aa”.”ad”)=(“aa”,”ab”,”ac”,”ad”)n$month=(01.31)n($a,$a+3)=(3

9、,4,5,6)if$a=3na=(1,2,3),不同于$a,初始值为()n元素形式:$a0表示第一个元素,索引从0开始,$a-1表示倒数第一个元素n数组的赋值:a=(1,2,3,4);b=a;b=(2,3);a=(1,a,4);a=;#从屏幕输入进行赋值,按下CTRL-d结束改变元素的值:$a1=3;超出数组大小的元素赋值:$a5=6;#自动增长,其他元素为NULL读取不存在的元素为空:$b=$a6;a=(1,2,3);$a=$a1;($x,$y,$z)=a;$x=1,$y=2,$z=3;($x,$y)=a;$x=1,$y=2;($a,$b,$c,$d)=a;$a=1,$b=2,$c=3,$d

10、=“”;$a=a=$#a+1;#$a为数组长度,$#a为数组的最后一个元素的索引($a)=a;#数组的第一个元素$a0打印数组:print a;#元素直截了当相连 print“a”;#元素之间用空格分开a=(1.5)sub=a0,1,3;a1,3=(“a”,”b”);b=(1,2,3);sub=ab;a1,2=a2,1;a1,2,3=a3,2,4;nsort:缺省按字母排序$a,$b表示数组元素,_代表数组本身reverse a;#取数组的逆序chop a;#每个元素截去最后一个字符shift(a);#删除数组第一个元素并返回该值,缺省对ARGV数组unshift(a);#在数组头部添加元素,

11、返回新数组长度push(a,$a);#在数组末尾添加元素pop(a);#删除数组末尾元素njoin(连接符号,a)把数组连接为一个字串a=(a,b);join(:,a)=“a:b”;nsplit(/分隔符/,分割串,长度)分隔符:缺省为空格,可省略分割串:缺省为$_,可省略长度:可省略,缺省为全部分割$s=“a,b,c”;a=split(/,/,$s);a=(a,b,c);a=split(/,/,$s,2);a=(a,b,c);nsplice函数:ret=splice(a,skip,length,newlist);对数组a进行操作,跳过skip个元素,然后用newlist替换length个元素

12、newlist长度能够不为length,但其替换长度总为length假如length=0表示为插入;假如newlist=()那么表示为删除当length和newlist都省略时表示全部删除nfound=grep(/pattern/,search)对数组search的每个元素进行搜索匹配pattern,匹配元素返回到foundnmap(expr,list)对数组list的每个元素进行expr运算,返回运算后的数组。元素用$_替代,如map($_+1,(1,2)(2,3)aoa=1,2,3,a,b,c;该数组的元素为两个数组子数组访问:$aoa-0(1,2,3)子数组元素列表:$aoa-00,1,

13、2子数组元素访问:$aoa-00a=(1,2,3);b=(a,b,c);$aoa=a,b;$aoa-00;n关联数组的表示:%h=(1,a,2,b);n关联数组的下标为关键字key,由key得到的值为valuen上式的意义是%h=(1=a,2=b);n元素形式$h1=a%a=(“key1”,1,”key2”,2);%h=a;a=%h;%h1=%h2;($a,%h)=array;%h=(%first,%second);%h1=(%h2,k,v)函数的返回:%h=split();keys=(a,b,c);hashkeys=hashreverse keys;nkeys(%hash),values(%

14、hash)分别返回键和值的列表,返回元素无顺序n($key,$value)=each(%hash)效率高于先用foreach$k(keys%h),再用$hash$knexists$hashkey判断关键字是否存在nundef(%h)相当于删除散列%h=();ndeleteforeach$w(sort keys(%hash)#按照字符串排序或者foreach$w(sort$a$b keys(%hash)#数值排序n存放于磁盘,用于读写访问,访问前必须先打开文件,结束时关闭文件open(HANDLE,“filename”)|die$!;n成功返回非零,失败返回零nHANDLE:文件句柄,用来代表操

15、作的文件。以字母开头,字母、数字、下划线组成,一般用大写字母n缺省打开的句柄STDIN,STDOUT,STDERR,文件描述符为0,1,2。不必调用open就能够直截了当访问STDIN:键盘输入,控制台。STDOUT:屏幕,显示屏。STDERR:错误输出,显示屏。n只读:open(F,“filename”);文件不存在那么创建新文件,存在那么清空重写n追加:open(F,“filename”);在存在的文件后面追加内容n读写:open(F,“+,文件不存在那么创建,存在那么清空再写n读写:+,文件不存在则创建,存在则追加n管道:|,open(F,“|cathello”);把文件F的输出(pri

16、nt F$a)作为后的输入。open(F,“comm|”);把comm的输出作为F的输入。以下的内容只要读出。comm为命令。缓冲 无缓冲打开:open,sysopen sysopen关闭 close读 ,readline sysread写 print syswrite定位 tell,seek sysseekn$line=读一行到line,指针后移一行。缺省读到$_中。$/=n,为行分隔符,遇到它那么为一行结束,行包含$/。可用chomp($s)去除此标志,行尾不含$/那么不去除字符。可设置$/为其他字符串,遇到$/为行结束,chomp去除此字符串。narray=文件内容全部读出,每行为一个元

17、素。含回车。n当从STDIN中读时,可省略为。nread(F,$in,len,$offset)读入$innsysread(F,$in,len,$offset)getc(F)读一个字符ARGV:全局,$ARGV0是第一个参数,不是程序名。是对$ARGV的引用。ARGV一旦赋值,原值丢失。1。第一次看到时,打开以$ARGV0中的文件。无参数那么打开STDIN读。因此能够省略。2。shift(ARGV),元素数量减少一个。3。读打开的文件中的所有行。4。再读第二个参数表示的文件。文件尾检测:eof和eof()。文件结束返回真。ARGV(”file1”,”file2”);while($line=)if

18、(eof)print eof;读取file1到末尾时,下一循环打开下一文件。每次读完一个文件输出eof.if(eof()print eof);所有文件都读完才输出eof。printf(“format str”,$a,$b);同c中的printf,格式化串包含%m.nf的格式指示,后面依次是相应的值列表。print F(“str”);F文件句柄,后面为空格,省略F为STDOUT。str输出内容。可用单引号,不进行变量替换,不加引号,计算出变量的值再输出。()可省略。这是函数的特点。write用于格式化输出。不是read的相应操作。syswrite(F,$data,length,$offset);

19、同sysreadop expr if(-e“file1”)print STDERR(“file1n”);文件是否存在。-b是否为块设备-c是否为字符设备-d是否为目录 -e是否存在-f是否为普通文件 -g是否设置了setgid位-k是否设置了sticky位 -l是否为符号链接-o是否拥有该文件 -p是否为管道-r是否可读 -s是否非空-t是否表示终端-u是否设置了setuid位-w是否可写-x是否可执行-z是否为空文件-A距上次访问多长时间-B是否为二进制文件-C距上次访问文件的inode多长时间-M距上次修改多长时间-O是否只为“真正的用户”所拥有-R是否只有“真正的用户”可读-S是否为so

20、cket-T是否为文本文件-W是否只有“真正的用户”可写-X是否只有“真正的用户”可执行-s 返回文件长度,-A-C-M返回天数。检验匹配是否成功=字符串是否匹配模式,匹配那么为真,没有匹配那么为假。!不匹配为真,匹配为假。regular expression,规那么表达式模式匹配,在字符串中寻找特定序列的字符。指定模式:由斜线包含,/def/即模式def。匹配操作符=、!$question=“expleaseding”$question=/please/$question!/edit/if($question=/please/)print(Thank you for being polite

21、!n);else print(That was not very polite!n);用于条件判断:grep:正那么表达式只对简单变量匹配,假如是数组a=/abc/,那么2=/abc/。用grep(/abc/,a);对数组中的每个元素匹配。split(/abc/,$line)依照模式匹配分割字符串。模式匹配的3种类型:m/模式匹配,s/匹配并替换,tr/逐一替换,翻译+一个或多个相同的前导字符(模式)。如:/de+f/指def、deef、deeeeef等。是对前一个匹配模式的重复,不是匹配后的字符的重复。如/deE+/,匹配de,dee,dE,dEE,deE,dEe。不是匹配了e后再重复eee

22、,就没有eE了。相当于/deEeEeE/。*匹配0个、1个或多个相同字符?匹配0个或1个该前一个字符.匹配除换行外的所有单个字符,通常与*合用.*所有任意数量字符。与前一字符结合,可不出现字符。相当于.匹配指定数目的字符 指定所匹配字符的出现次数。如:/de1,3f/匹配def,deef和deeef;/de3f/匹配deeef;/de3,f/匹配很多于3个e在d和f之间;/de0,3f/匹配不多于3个e在d和f之间。表示除其之外的所有字符,如:/ddeEf/匹配d加非d,e,E字符加f的字符串 匹配一组字符中的任一个。/a0123456789c/将匹配a加一个数字加c的字符串。与+联合使用例:

23、/deE+f/匹配def、dEf、deef、dEdf字符|指定两个或多个选择来匹配模式。每个选择基本上一个匹配或一组。不是单个字符。如:/def|ghi/匹配def或ghi。/x|y+/匹配x或y+。0-9 a-z A-Z /a0-9c/匹配任意字母或数字0-9a-zA-Z例:检验数字表示合法性 if($number=/-?d+$|-?0 xXda-fa-F+$/)print($number is a legal integer.n);else print($number is not a legal integer.n);其中-?d+$匹配十进制数字,-?0 xXda-fa-F+$匹配十六进

24、制数字。模式中包含通常被看作特殊意义的字符,须在其前加斜线。如:/*+/中*即表示字符*,而不是上面提到的一个或多个字符的含义。斜线的表示为/。在PERL5中可用字符对Q和E来转义。从Q开始到E间的字符为原始字符,无特殊含义。d 任意数字 0-9 D 除数字外的任意字符 0-9 w 任意单词字符 _0-9a-zA-Z W 任意非单词字符 _0-9a-zA-Z s 空白 rtnf S 非空白 rtnf 例:/da-z/匹配任意数字或小写字母。定界定界:或 A 仅匹配字符串首$或 Z 仅匹配字符串尾 b 匹配单词边界 B 单词内部匹配/def/只匹配行以def打头的字符串,/def$/只匹配以de

25、f结尾的字符串,结合起来的/def$/只匹配字符串def$和A,Z在多行匹配时用法不同。例1:检验变量名的类型:if($varname=/$A-Za-z_0-9a-zA-Z*$/)print($varname is a legal scalar variablen);elsif($varname=/A-Za-z_0-9a-zA-Z*$/)print($varname is a legal array variablen);elsif($varname=/A-Za-z_0-9a-zA-Z*$/)print($varname is a legal file variablen);else prin

26、t(I dont understand what$varname is.n);例2:b在单词边界匹配:/bdef/匹配def和defghi等以def打头的单词,但不匹配abcdef。/defb/匹配def和abcdef等以def结尾的单词,但不匹配defghi,/bdefb/只匹配字符串def。注意:/bdef/可匹配$defghi,因为单词包括字母数字下划线,$并不被看作是单词的部分。例3:B在单词内部匹配:/Bdef/匹配abcdef等,但不匹配def;/defB/匹配defghi等;/BdefB/匹配cdefg、abcdefghi等,但不匹配def,defghi,abcdef。当模式中匹

27、配相同的部分出现多次时,可用括号括起来,用n来多次引用,以简化表达式。把匹配的值存起来以后再用,和+模式的重复不同。只在本次匹配可用。还能够在匹配外引用。例:/d2(W)d21d2/匹配12-05-92,26.11.87,07 04 92等但不匹配12-05.92 注意:/d2(W)d21d2/不同于/(d2)(W)121/,后者只匹配形如17-17-17的字符串,而不匹配17-05-91等。在模式匹配后调用重用部分的结果可用变量$n,全部的结果,匹配模式用变量$&,包含不在括号中的。匹配处之前的部分用变量$,匹配处之前的部分用变量$。也可用列表一次取得。$string=This string

28、 contains the number 25.11.;$string=/-?(d+).?(d+)/;#匹配结果为25.11$integerpart=$1;#now$integerpart=25$decimalpart=$2;#now$decimalpart=11$totalpart=$&;#now totalpart=25.11$_=This string contains the number 25.11.;result=/-?(d+).?(d+)/;匹配得到的变量形成列表,可赋值给数组。当匹配失败,$1的内容不确定,可能是从前匹配的内容。为避免匹配失败要进行是否匹配成功的判断,或直截了当

29、赋值。($m1,$m2)=($name=/(ab).*(c)把()内的匹配值直截了当赋与$m1,$m2,不改变$1的值。嵌套使用:/(aaa)*)/,最外层的括号为$1,内层为$2,$3。g 匹配所有可能的模式,依照懒惰规那么不加g只匹配一处。返回到数组中。matches=balata=/.a/g;#matches=(ba,la,ta)匹配的循环:每次匹配记住上次的位置 while(balata=/.a/g)$match=$&;print($matchn);结果为:ba la ta 当要匹配的字符串改变时重新开始搜索。当使用了选项g时,可用函数pos来控制下次匹配的偏移:$offset=pos

30、($string);下一个匹配开始的位置 pos($string)=$newoffset;从此位置开始搜索匹配i 忽略模式中的大小写:/de/i 匹配de,dE,De和DE。m 将待匹配串视为多行,符号匹配字符串的起始或新的一行的起始;$符号匹配任意行的末尾。以下例只匹配第一行为a,否那么无匹配;$line=a b c;$line=/(.*)$/m;s 将待匹配串视为单行。.能够匹配n。/a.*bc/s匹配字符串axxxxx nxxxxbc,但/a.*bc/那么不匹配该字符串。o 仅只执行一次变量替换$var=1;$line=;while($var 10)$result=$line=/$var

31、/o;$line=;$var+;第一次匹配1,第二次值为2,但仍匹配1。x 忽略模式中的空白。格式清晰 /d2(W)d2 1 d2/x等价于/d2(W)d21d2/。象操作符一样,转义和特定字符也有执行次序()模式内存+*?出现次数$b B 锚|选项(?pattern),其中c是一个字符,pattern是起作用的模式或子模式。3、(?#注释)模式注释 PERL5中能够在模式中用?#来加注释,如:if($string=/(?i)a-z2,3(?#match two or three alphabetic characters)/.1、(?:pattern)不存贮括号内的匹配内容括号内的子模式将存

32、贮在内存中,此功能即取消存贮该括号内的匹配内容,如/(?:a|b|c)(d|e)f1/中的1表示已匹配的d或e,而不是a或b或c。2、/(?option)pattern/内嵌模式选项 通常模式选项置于其后,有四个选项:i、m、s、x能够内嵌使用,等价于/pattern/option。/(?i)a-z+/=/a-z+/i4、(?)取消贪婪 a12b38b /a.*b/全部匹配,当/a(.*?)b/时匹配a12b。同样的有*?,+?,?,x?,x,?,x,y?,5、/pattern(?=string)/确信的和否定的预见匹配.?=?!匹配后面为string的模式,相反的,(?!string)匹配后

33、面非string的模式,如:$string=25abc8;$string=/abc(?=0-9)/;$matched=$&;#$&为已匹配的模式,为abc,不是abc8 例1。$line=“block1 first block2 second block3 third”$line=/blockd(.*?)(?=blockd|$)/g;print$1;例2。使用while$line=begin begin begin;while($line=/begin(.*?)(?=begin|$)/sg)push(blocks,$1);n在替换部分可使用模式变量$n,如s/(d+)/$1/,但在替换部分不支持模式的特殊字符,如,*,+等,如s/abc/def/将把abc替换为def。替换操作符的选项:g,i,m,o,s,x,e e 替换字符串作为表达式。e选项把替换部分的字符串看作表达式,在替换之前先计算其值,如:$string=0abc1;$string=s/a-zA-Z+/$&x 2/e;#now$string=0abcabc1s/pattern/replace/,将字符串中与pattern匹配的部分换成replace。替代字符串不是模式。如$string=abc123def;$string=s/123/456/;#now$string=abc456def;

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|