PERL在生物信息学中的应用

上传人:lx****y 文档编号:243022404 上传时间:2024-09-14 格式:PPT 页数:51 大小:161KB
返回 下载 相关 举报
PERL在生物信息学中的应用_第1页
第1页 / 共51页
PERL在生物信息学中的应用_第2页
第2页 / 共51页
PERL在生物信息学中的应用_第3页
第3页 / 共51页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,PERL,在生物信息学中的应用,生物信息学与生物统计学系,1,主要内容,PERL,简介,PERL,脚本的编写,PERL,变量,Perl,语法,PERL,与正则表达式,PERL,示例,2,P,ERL,释义,Practical Extraction and Report Language,实用摘录和报告语言,但它其实不是缩写,Larry Wall,,1987.12.18,Perl,的历史,3,Perl,的环境准备,Unix,:大多数内置,一些软件也内置,perl,,比如,apache/oracle,Windows,:,ActivePerl5.10.0,4,Perl,的工具,编辑工具:notepad,vi,IDE:Komodo,Perl Dev Kit,CGI:Top perl studio,Perl builder,perl edit,perlwiz,Mod_perl,5,Perl,的功能,脚本语言,解释执行,,,无需编译,具有编译语言如,c,、,Java,的功能,又有,shell,脚本的方便,无数据类型区分,适于不太复杂的程序,适于不要求速度,不在乎内存,CPU,等系统资源的任务,强大的字符串处理功能,灵活或复杂的正则表达式,大多数平台支持,除了专用模块,可在不同平台运行,6,Perl,的应用,Web,编程:,CGI,,,XML,处理,系统管理,网络编程(安全脚本),.,数据库管理,图像处理,其他众多的领域。,7,一个示例,#!/usr/bin/perl,Print “This is my first perl programn”;,$a=;,Print $a;,第一行:,#!/usr/bin/perl,由什么程序执行以下的内容,注释:,输入:,输出:,print,$a,:变量,无需指定数据类型,8,perl,的四种变量,Scalar,:标量,以$开始,后面以字母或,_,开头,再后面可以是字母或数字,array,:数组,列表,以开头,Hash: 哈希,散列,以%开头,文件:大写字母,区分大小写,,$Var, $VAR, $var,内置变量,$/,,,$,等,9,字符串变量,由双引号或单引号标识的一组字符组成。,最少0个字符(“”为空串),最多可以占满内存,末尾不含null(0),“$string” = $str + “ing” != $string,记住一些常用的转义字符,print “the $var is $var.”,注意单引号的用法:不替换、不转义,$var=“str”;,print “this is $var”;,# ”this is str”,print this is $var; # this is $var,10,变量初值,未创建时状态为,undef,,到达文件尾也为,undef,说明变量为未定义:,undef $a;,用在条件判断中:,if(undef $a),代替不关心的变量:,$s=“a:b:c:d,;,($,a1,undef,undef,$d1)=split,(/:/,$,s);,如果有,undef,变量又不知在哪,可加,-w,参数进行提示,#!/usr/bin/perl -w,创建后状态为,defined,一般用在条件判断中,if(defined $a),整数初值为,0,,字符串初值为空串,”,。一般未赋值就使用时,$result = $undefined + 2;,11,相关函数,length(),:字符串长度,uc, lc, ucfirst, lcfirst,:改变大小写函数,substr, index, pos,:字符串函数,sin,等三角函数,rand(), srand(),:随机发生函数,$lastchar = chop($str) #,截去最后一个字符,$result = chomp($str) #,截去末尾的行分隔符(通常为,”n”,),行分隔符由,$/,定义,12,控制结构,if(condition1),elsif(condition2)else,unless(),until(),do until(),while(),do while (),for(;),foreach,循环语句,13,foreach,语法:,foreach $w(list|array)statement,(),内可以是数组,a,,也可以是列表,(1,2,3),数组元素值可以修改,列表则是常量,$w,不影响本来已定义的变量,$w,,循环结束后恢复,可以用,$a(a),用相同的变量名称,示例:,foreach $a(a),用于数组,foreach $a(1,2,3,4),用于列表,foreach $k(keys %h),用于哈希,/,散列,foreach $a(a1,2,4),仅对数组部分元素,foreach (a),缺省循环变量为,$_,14,循环控制,last,:退出循环,next,:进入下一循环,redo,:重新执行本次循环,goto,:跳转,continuestatement,15,单行条件语句与循环语句,print $a if $a=0;,print $a unless($a=0);,print $a while ($a-,=,0);,print $a until ($a-=0),用|,&的条件语句:,$a=0,open(F,file)|die “cant open”;,die,函数:在控制台标准错误输出信息后退出程序。,warn:,输出信息后不退出程序,只起警报作用。,$!:内部变量,,,包含错误代码。,$:内部变量,,,包含错误信息。,16,列表,数组的形式,形式,:,(1,”a”,2.3, $a, $x+1),,其元素可以是数字、字符串、变量、表达式,空列表,(),,单元素列表,(2),不同于标量,2,qw(1 $a str),(),可以用其他符号表示,如,元素可以是数值、变量、不带引号的字符串,中间用空格分开,17,范围表示的列表,.,:范围运算符,每次增加,1,,如,1.3,(1.6)=(1,2,3,4,5,6),(1,2.5,6)=(1,2,3,4,5,6),(3.3)=(3),(2.4.5.3)=(2.4,3.4,4.4),(4.5.1.6)=(),(“aa”.”ad”)=(“aa”,”ab”,”ac”,”ad”),$month=(01.31),($a,$a+3)=(3,4,5,6) if $a=3,18,数组,列表的存储,a=(1,2,3),,不同于,$a,,初始值为,(),元素形式:,$a0,表示第一个元素,索引从,0,开始,,$a-1,表示倒数第一个元素,数组的赋值:,a=(1,2,3,4); b=a;,b=(2,3); a=(1,a,4);,a=; #,从屏幕输入进行赋值,按下,CTRL-d,结束,改变元素的值:,$a1=3;,超出数组大小的元素赋值:,$a5=6; #,自动增长,其他元素为,NULL,读取不存在的元素为空:,$b = $a6;,19,数组的读出,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=“”;,$a=a=$#a+1; # $a,为数组长度,,$#a,为数组的最后一个元素的索引,($a)=a; #,数组的第一个元素,$a0,打印数组:,print a; #,元素直接相连,print “a”; #,元素之间用空格分开,20,数组片段,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;,21,数组操作函数,sort,:缺省按字母排序,$a, $b,表示数组元素,,_,代表数组本身,reverse a; #,取数组的逆序,chop a; #,每个元素截去最后一个字符,shift(a); #,删除数组第一个元素并返回该值,缺省对,ARGV,数组,unshift(a); #,在数组头部添加元素,返回新数组长度,push(a,$a); #,在数组末尾添加元素,pop(a); #,删除数组末尾元素,22,数组操作函数(二),join(,连接符号, a),把数组连接为一个字串,a=(a,b); join(:, a)=“a:b”;,split(/,分隔符,/,分割串,长度,),分隔符:缺省为空格,可省略,分割串:缺省为,$_,,可省略,长度:可省略,缺省为全部分割,$s=“a,b,c”; a=split(/,/,$s);,a=(a,b,c);,a=split(/,/,$s, 2);,a=(a,b,c);,23,数组函数(三),splice,函数:,ret = splice(a, skip, length, newlist);,对数组,a,进行操作,跳过,skip,个元素,然后用,newlist,替换,length,个元素,newlist,长度可以不为,length,,但其替换长度总为,length,如果,length=0,表示为插入;如果,newlist=(),则表示为删除,当,length,和,newlist,都省略时表示全部删除,found=grep(/pattern/, search),对数组,search,的每个元素进行搜索匹配,pattern,,匹配元素返回到,found,map(expr, list),对数组,list,的每个元素进行,expr,运算,返回运算后的数组。元素用,$_,替代,如,map($_+1, (1,2),(2,3),24,二维数组,aoa=1,2,3,a,b,c;,该数组的元素为两个数组,子数组访问:,$aoa-0,(1,2,3),子数组元素列表:,$aoa-00,1,2,子数组元素访问:,$aoa-00,a=(1,2,3);b=(a,b,c);,$aoa=a,b; $aoa-00;,25,关联数组:哈希,/,散列,关联数组的表示:,%h=(1,a,2,b);,关联数组的下标为关键字,key,,由,key,得到的值为,value,上式的意义是,%h=(1=a,2=b);,元素形式,$h1=a,26,关联数组的赋值,%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;,27,关联数组操作函数,keys(%hash), values(%hash),分别返回键和值的列表,返回元素无顺序,($key, $value)=each(%hash),效率高于先用,foreach $k (keys %h),再用,$hash$k,exists $hashkey,判断关键字是否存在,undef(%h),相当于删除散列,%h=();,delete,28,关联数组的顺序,foreach $w(sort keys(%hash) #,按照字符串排序,或者,foreach $w(sort $a$b keys(%hash) #,数值排序,29,文件,存放于磁盘,用于读写访问,访问前必须先打开文件,结束时关闭文件,open(HANDLE, “”) | die $!;,成功返回非零,失败返回零,HANDLE,:文件句柄,用来代表操作的文件。以字母开头,字母、数字、下划线组成,一般用大写字母,缺省打开的句柄,STDIN, STDOUT, STDERR,文件描述符为,0,,,1,,,2,。不必调用,open,就可以直接访问,STDIN,:键盘输入,控制台。,STDOUT,:屏幕,显示屏。,STDERR,:错误输出,显示屏。,30,文件访问模式,只读:,open(F, “”);,文件不存在则创建新文件,存在则清空重写,追加:,open(F, “”);,在存在的文件后面追加内容,读写:,open(F, “+,,文件不存在则创建,存在则清空再写,读写:,+,,文件不存在则创建,存在则追加,管道:,|,,,open(F,“| cathello”);,把文件,F,的输出,(print F $a),作为后的输入。,open(F,“,comm,|”);,把,comm,的输出作为,F,的输入。以下的内容只要读出。,comm,为命令。,31,文件缓冲,缓冲 无缓冲,打开:,open,sysopen,sysopen,关闭,close,读,readline,sysread,写,print,syswrite,定位,tell,seek,sysseek,32,读文件,$line=,读一行到,line,,指针后移一行。缺省读到$_中。$/=n,为行分隔符,遇到它则为一行结束,行包含$/。可用chomp($s)去除此标志,行尾不含$/则不去除字符。可设置$/为其他字符串,遇到$/为行结束,chomp去除此字符串。,array=,文件内容全部读出,每行为一个元素。含回车。,当从STDIN中读时,可省略为。,read(F,$in,len,$offset,)读入$in,sysread(,F,$in,len,$offset),getc(F),读,一个字符,33,命令行参数,ARGV,:全局,$ARGV0是第一个参数,不是程序名。,是对$ARGV的引用。ARGV一旦赋值,原值丢失。,1。,第一次看到时,打开以$ARGV0中的文件。无参数则打开STDIN读,。所以可以省略。,2。,shift(ARGV),元素数量减少一个。,3。,读打开的文件中的所有行。,4。再读第二个参数表示的文件。,文件尾检测:eof和eof()。文件结束返回真。,ARGV(”file1”,”file2”);,while($line=),if(eof),print,eof,;,读取file1到末尾时,下一循环打开下一文件。,每次读完一个文件输出eof.,if(eof()print eof);,所有文件都读完才输出eof。,34,写文件,printf(“format,str”,$a,$b,);,同,c,中的,printf,,格式化串包含,%,m.nf,的格式指示,后面依次是相应的值列表。,print F ( “,str,”);,F,文件句柄,后面为空格,省略,F,为,STDOUT,。,str,输出内容。可用单引号,,不进行变量替换,不加引号,计算出变量的值再输出。,(),可省略。这是函数的特点。,write,用于格式化输出。不是,read,的相应操作。,syswrite(F,$data,length,$offset,);,同,sysread,35,文件测试,op 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,是否为,socket-T,是否为文本文件,-W,是否只有,“,真正的用户,”,可写,-X,是否只有,“,真正的用户,”,可执行,-s,返回文件长度,,-A-C-M,返回天数。,36,正则表达式,(,模式匹配,),检验匹配是否成功,=,字符串是否匹配模式,匹配则为真,没有匹配则为假。,!,不匹配为真,匹配为假。,regular expression,,规则表达式,模式匹配,在字符串中寻找特定序列的字符。,指定模式:由斜线包含,,/def/,即模式,def,。,匹配操作符,=,、,!,$question=“expleaseding”,$question = /please/,$question!/edit/,37,正则表达式的使用,if ($question = /please/) print (Thank you for being polite!n); ,else print (That was not very polite!n); ,用于条件判断:,grep,:正则表达式只对简单变量匹配,如果是数组,a=/abc/,,则,2=/abc/,。用,grep(/abc/,a);,对数组中的每个元素匹配。,split(/abc/,$line),根据模式匹配分割字符串。,模式匹配的,3,种类型:,m/,模式匹配,,s/,匹配并替换,,tr/,逐一替换,翻译,38,模式匹配之一:元字符,+,一个或多个相同的前导字符,(,模式,),。如:/de+f/指def、deef、deeeeef等。是对前一个匹配模式的重复,不是匹配后的字符的重复。如/deE+/,匹配de,dee,dE,dEE,deE,dEe。不是匹配了e后再重复eee,就没有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,之间。,39,。,表示除其之外的所有字符,如:,/,ddeEf,/,匹配,d,加非,d,e,E,字符加,f,的字符串,模式匹配之二:选择,匹配一组字符中的任一个。,/a0123456789c/,将匹配,a,加一个数字加,c,的字符串。与,+,联合使用例:,/,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+$|-?0xXda-fa-F+$/) print ($number is a legal integer.n); else print ($number is not a legal integer.n); ,其中,-?d+$,匹配十进制数字,,-?0xXda-fa-F+$,匹配十六进制数字。,40,转义符和定界符,模式中包含通常被看作特殊意义的字符,须在其前加斜线,。如:,/*+/,中,*,即表示字符*,而不是上面提到的一个或多个字符的含义。斜线的表示为,/,。在,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$/,只匹配以,def,结尾的字符串,结合起来的,/def$/,只匹配字符串,def,$,和,A,Z,在多行匹配时用法不同。,41,示例,例,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 n);, else ,print (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,。,42,模式的重用,当模式中匹配相同的部分出现多次时,可用括号括起来,,用,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等。,43,模式变量,在模式匹配后调用重用部分的结果可用变量$n,,全部的结果,,匹配模式用变量,$&,包含不在括号中的。匹配处之前的部分用变量$,匹配处之前的部分用变量$。也可用列表一次取得。,$string = This string 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的内容不确定,可能是从前匹配的内容。为避免匹配失败要进行是否匹配成功的判断,或直接赋值。,($m1,$m2)=($name=/(ab).*(c) 把()内的匹配值直接赋与$m1,$m2,不改变$1的值。,嵌套使用:/(aaa)*)/,最外层的括号为$1,内层为$2,$3。,44,匹配选项,g,匹配所有可能的模式,,根据懒惰规则不加,g只匹配一处。,返回到数组中。,matches = balata = /.a/g; # matches = (ba, la, ta),匹配的循环:,每,次匹配记住上次的位置,while (balata = /.a/g) ,$match = $&;,print ($matchn);,结果为:,ba,la,ta,当要匹配的字符串改变时重新开始搜索。,当使用了选项g时,可用函数pos来控制下次匹配的偏移:,$offset = pos($string);下一个匹配开始的位置,pos($string) = $newoffset;从此位置开始搜索匹配,45,匹配选项,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 ;$var+;,第一次匹配1,第二次值为2,但仍匹配1。,x 忽略模式中的空白 。格式清晰,/d2 (W) d2 1 d2/x,等价于,/d2(W)d21d2/,。,46,匹配符号的优先级,象操作符一样,转义和特定字符也有执行次序,(),模式内存,+ * ? ,出现次数, $ b B,锚,|,选项,47,扩展匹配模式,(?pattern),,其中,c,是一个字符,,pattern,是起作用的模式或子模式。,3,、,(?#,注释,),模式注释,PERL5,中可以在模式中用,?#,来加注释,如:,if ($string = /(?i)a-z2,3(?# match two or three alphabetic characters)/ . ,1,、,(?:pattern),不存贮括号内的匹配内容,括号内的子模式将存贮在内存中,此功能即取消存贮该括号内的匹配内容,如,/(?: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+/i,4,、,(?),取消贪婪,a12b38b /a.*b/,全部匹配,当,/a(.*?)b/,时匹配,a12b,。,同样的有*,?,+?,?,x?,x,?,x,y?,48,扩展模式匹配,5,、/pattern(?=string)/肯定的和否定的预见匹配.?= ?!,匹配后面为string的模式,相反的,(?!string)匹配后面非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);,49,替换操作,在替换部分可使用模式变量,$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+/$ # now $string = 0abcabc1,s/pattern/replace/,,将字符串中与,pattern,匹配的部分换成,replace,。替代字符串不是模式。如,$string = abc123def;,$string = s/123/456/; # now $string = abc456def;,50,翻译操作,tr/string1/string2/。string1中的第一个字符替换为string2中的第一个字符,把string1中的第二个字符替换为string2中的第二个字符,依此类推。如:$string = abcdefghicba;,$string = tr/abc/def/; # now string = defdefghifed,当string1比string2长时,其多余字符替换为string2的最后一个字符;当string1中同一个字符出现多次时,将使用第一个替换字符。,翻译操作符的选项:,c,翻译所有未指定字符,,d,删除所有指定字符,,s,把多个相同的输出字符缩成一个,$string = tr/d/ /c;,把所有非数字字符替换为空格。,$string = tr/t /d,;删除,tab,和空格;,$string = tr/0-9/ /cs,;把数字间的其它字符替换为一个空格。,51,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!