perl语言期末考核大作业_第1页
perl语言期末考核大作业_第2页
perl语言期末考核大作业_第3页
perl语言期末考核大作业_第4页
perl语言期末考核大作业_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、成绩表考核作业成绩(70%)回答问题成绩(30%)总成绩Perl程序设计课程考核院 系 部 门: 学 生 专 业: 学 生 学 号: 学 生 姓 名: 2012年1月课程大作业内容第一题:请问Bioperl怎样安装和配置,请结合文字图表概述Bioperl的安装、配置与测试,并简述该过程中出现问题解决经历(10分)。 1、 安装过程:Bioperl的安装(1):安装好active perl 10.1。(2) 、打开ppm,得到如下界面:3:,选择Edit Preferences。得到如下界面:4:在Preferences添加下面的站点Repositories to addNameperl 5.8

2、perl 5.10BioPerl-Regular Releases/DIST/DISTBioPerl-Release Candidates/DIST/RC/DIST/RCKobeshttp:/theoryx5.uwinnipeg.ca/ppmshttp:/cpan.uwinnipeg.ca/PPMPackages/10xx/Bribeshttp:/www.B/perl/ppmhttp:/www.B/perl/ppmtcool

3、/archives/NA5:选择View All Packages;6:在搜索框输入bioperl得到如下界面:7:,选择最新版本,右键安装(需要安装:bioperl;bioperl-db;bioperl-network;bioperl-run)。8:查看安装是否成功:查看目录PerllibBio中是否存在Biblio.pm文件,存在则表明安装成功二:测试 测试代码:建立一个PL文件:写入以下内容,然后双击文件,会在同目录下生成一个testseq.fsa文件use Bio:Seq;use Bio:SeqIO;# create a sequence obje

4、ct of some DNAmy $seq = Bio:Seq-new(-id = testseq, -seq = CATGTAGATAG);# print out some details about itprint seq is , $seq-length, bases longn;print revcom seq is , $seq-revcom-seq, n; # write it to a file in Fasta format my $out = Bio:SeqIO-new(-file = testseq.fsa, -format = Fasta);$out-write_seq(

5、$seq);双击bioperltest.pl,得到或者在命令处理程序中:输入: C:Perlperldoc Bio:Biblio得到如下:3、 简述该过程中出现问题解决经历 第二题:结合图形和程序回答下面问题1、编程实现一个DNA序列文件的酶切位点的分析(包括酶切位点统计、酶切位点的标记和计数,以及可视化输出等,不准用模式匹配知识)(10分)。2、对1中编写的程序采用子程序进行优化,并阐述子程序输入输出和内部算法实现的理由和心得(10分)。3、进一步完善上面的程序,编写的系列酶切酶管理程序,实现酶切酶信息的添加、删除和修改,并简述理由和心得(20分)。 由于第一问、第二问和第三问是紧密联系的,

6、所以将其联合在一起编辑优化得到以下程序:具体程序代码如下:system cls;&choose;my $slect=;chomp($slect); if ($slect eq search) &search; if($slect eq add) &add; if($slect eq estimate) &estimate; if($slect eq quit) &quit; sub choose$=heading;write;format heading = 运行程序选择= 在酶切位点中添加新的酶切位点请输人add =* 计算整个序列中各碱基所占比例请输入estimate * 寻找基因的酶切位

7、点请输入search *= 退去此程序请输入quit =.printnn 请在这里输入你的选项:;sub search system cls; print nn=你已进入酶切位点查找程序=n; print=nn; print请在这里输入目的基因序列:nn; my $string=;printn请输入酶切位点序列:n;my $dian=;chop($dian);#将找到的酶切位点的位置赋值到句柄$positions中 printn基因序列的酶切位点:n;my $foundAt = 0;my $offset = 0;my $label = 1;my %positions; while ( ( $f

8、oundAt = index( $string, $dian, $offset ) ) -1 ) $positions $foundAt = $label+; $offset = $foundAt + 1;#将$string中的基因序列按每10个一组输出my $n=0;my $number=0; my $c=0;while($clength($string) my $n=0;while($n0 & (length($string)-$c100) last; my $f=$c;foreach($c.length($string)-1) #110my $str2;$str2=substr($str

9、ing,$c,1);print $str2; $c+; if($c%10=0) print ; print n;foreach($f.length($string)-1) print $positions$f?$positions$f: ; print if($f%10=0);$f+;print n ; sub add system cls;print nn=你已进入添加酶切位点程序=n; print=nn;print 请依次输入酶的名称 其识别的序列 酶切的前半部分序列 酶切的后半部分序列,输完后请按Ctrl+Zn;chomp(my enzyme=);open(FILE,C:myperl酶切

10、位点.txt);print (FILE enzymen);close (FILE);print n此序列以保存到C:myperl酶切位点.txtnn;print 下面输出的是数据库中所保存的所有的酶切位点:nn;open(FILE,C:myperl酶切位点.txt);my array=;close(FILE);print array; print=n; print=; sub estimate system cls; print=你已进入基因序列各碱基比例统计程序=n; print=nn;print 请在这里输入基因序列所在的文件位置(如C:myperlgene.pl.txt)n序列存放位置:

11、;$file=;chomp($file);open(FILEHANDLE,$file);$string=;close(FILEHANDLE);#将array中的每一个元数中的内容都赋值到$string中,形成一个字符串 printn从文件中读出的基因序列为:n $string;print nnn=此基因序列碱基分析结果如下=nnn; ($a,$c,$t,$g,$n1)=(0,0,0,0,0); print 基因序列: $stringn;#用while循环进行统计while ($n1(length($string)-1) $y=substr($string,$n1,1); if($y eqA)

12、$a+; elsif($y eq C) $c+; elsif($yeqT) $t+; elsif($y eq G) $g+; $n1+;$n=length($string);#分别计算出a,t,c,g在所给基因中所占的百分比$ap=$a/$n;$cp=$c/$n;$tp=$t/$n;$gp=$g/$n;print n A碱基所占的百分比为 $apn C碱基所占的百分比为 $cpn T碱基所占的百分比为 $tpn G碱基所占的百分比为 $gpn; sub quit printn 你已退出了该程序!; 第一步 运行改程序会出现如下选择界面:第二步 输入add 进入在酶切位点文件中添加新酶切位点的程

13、序,界面如下:依次输入酶的名称,识别序列,酶切割的前半部分序列,酶切割的后半部分序列,回车后,Ctrl+Z进行酶切位点添加,输出文件中已有的酶切位点。界面如下:第三步 在程序选择窗口中输入estimate,进入基因序列碱基分析程序,界面如下:输入自己电脑上存放基因序列文件的位置,回车。得到基因序列原文和对其进行碱基分析的结果。界面如下:第四步 在程序选择窗口中输入search,进入在基因序列上寻找酶切位点的程序,界面如下:输入目的基因序列和要寻找酶切序列,回车,运行程序得到酶切位点标记和记数结果。界面如下:第五步 在程序选择窗口中输入quit,跳出本程序。界面如下:4、 编程实现采用滑动窗口技

14、术实现DNA序列的四种碱基含量变化并可视化输出,并简述理由和心得(10分)。理由和心得: 可以利用滑动窗口这个结构,很快的找到从第几位开始,接下来的窗口大小内的数据是什么,在研究DNA碱基序列中可以很方便,只需从窗口中取出碱基序列就可以做相应的事情,如果不行,可以将窗口向前移动继续查找。具体程序代如下:use warnings;use strict;open(FILEHANDLE,C:gene.txt);my array=;close(FILEHANDLE);my $lengt=array;my $a;my $string;for($a=0;$a9)my $subseq=substr($str

15、ing,$nu1,10);my arrayseq=split/,$subseq;foreach(arrayseq)$d-$_-$nu+;$nu+;$nu1+;#system cls;my $m=();&stats(A);print nnnn A基因的统计结果如下图n;&pri;&stats(G);print nn nn G基因的统计结果如下图n;&pri;&stats(C);print nnnn C基因的统计结果如下图n;&pri;&stats(T);print nn nn T基因的统计结果如下图n;&pri;sub statsmy $sn;my $sn1;for ( $sn=0;$sn=($

16、nu-1);$sn+)for( $sn1=0;$sn1$_0-$sn)$d-$_0-$sn=0;if($sn1 = $d-$_0-$sn)$m-$sn1-$sn=*;else$m-$sn1-$sn=qq ; sub priprint nn n |n;for(my $sn4=10;$sn4=0;$sn4-)print $sn4| ;for(my $sn=0;$sn$sn4-$sn;print n; print -x ($nu+5),;运行此程序得到存放在C盘gene.text文本文档中的基因序列各个基因的统计图形结果,如下图所示:A基因统计结果:G基因的统计结果:G基因的统计结果:T基因的统计结

17、果:第三题:结合图形和程序回答下面问题:编程实现DNA序列向蛋白质序列转换,并可视化输出(20)。具体程序代码如下:use warnings;use strict;use package1;BEGINunshift(INC,.);package1:mypackage1;my $file=;chomp($file);my $geneseq=&fileopen($file);printn文件中基因序列为:n $geneseqn;for (my $j=0;$j3;)my ac;my $i=0;my $ai=0;$ai=$ai+$j;while(1)$ac$i+=substr($geneseq,$ai

18、,3);$ai=$ai+3;last if(length($geneseq)-$ai3);my $f=0;foreach(ac) for(my $u=0;$u3;$u+)if(A eq substr($_,$u,1)substr($ac$f,$u,1)=T;elsif(T eq substr($_,$u,1)substr($ac$f,$u,1)=A;elsif(G eq substr($_,$u,1)substr($ac$f,$u,1)=C;elsif(C eq substr($_,$u,1)substr($ac$f,$u,1)=G;$f+;$j+;print n此基因序列的第$j种密码子可能

19、为:n acn;my $code;foreach(ac)if($_=/TC|AGTC/)$code .= S;elsif($_=/CT|TTAG/) $code .= L;elsif($_=/CG|AGAG/)$code .= R;elsif($_=/GG/)$code .= G;elsif($_=/CC/)$code .= P;elsif($_=/AC/)$code .= T;elsif($_=/GC/)$code .= L;elsif($_=/GT/)$code .= V;elsif($_=/ATTCA/)$code .= I;elsif($_=/TTTC/)$code .=F;elsif($_=/TGTC/)$code .= Celsif($_=/CATC/)$code .=H;elsif($_=/TATC/)$code .= Y;elsif($_=/CAAG/)$code .= Q;elsif($_=/AATC/)$code .= N;elsif($_=/AAAG/)$code .= K;elsif($_=/GATC/)$code .= D;elsif($_=/GAAG/)$code .= E;elsif($_ eq ATG)$code .= M;elsif($_ eq TGG)$code .= W;print 这种密码子得到的蛋白质序列如下:n $codenn

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论