Perl程序设计课程考核院系部门:学生专业:学生学号:学生姓名:2012年1月成绩表考核作业成绩(70%)回答问题成绩(30%)总成绩课程大作业内容第一题:请问Bioperl怎样安装和配置,请结合文字图表概述Bioperl的安装、配置与测试,并简述该过程中出现问题解决经历(10分)。一、安装过程:Bioperl的安装(1):安装好activeperl10.1。(2)、打开ppm,得到如下界面:3:,选择EditPreferences。得到如下界面:4:在Preferences添加下面的站点RepositoriestoaddNameperl5.8perl5.10BioPerl-RegularReleases://bioperl.org/DISTBioPerl-ReleaseCandidates://bioperl.org/DIST/RCKobes://cpan.uwinnipeg.ca/PPMPackages/10xx/Bribes://://ppm.tcool.org/arcNAhives/5:选择ViewAllPackages;6:在搜索框输入bioperl得到如下界面:7:,选择最新版本,右键安装(需要安装:bioperl;bioperl-db;bioperl-network;bioperl-run)。8:查看安装是否成功:查看目录Perl\lib\Bio中是否存在Biblio.pm文件,存在则表明安装成功二:测试测试代码:建立一个PL文件:写入以下内容,然后双击文件,会在同目录下生成一个testseq.fsa文件useBio::Seq;useBio::SeqIO;#createasequenceobjectofsomeDNAmy$seq=Bio::Seq-new(-id='testseq',-seq='CATGTAGATAG');#printoutsomedetailsaboutitprintseqis,$seq-length,baseslong\n;printrevcomseqis,$seq-revcom-seq,\n;#writeittoafileinFastaformatmy$out=Bio::SeqIO-new(-file='testseq.fsa',-format='Fasta');$out-write_seq($seq);双击bioperltest.pl,得到或者在命令处理程序中:输入:C:\PerlperldocBio::Biblio得到如下:三、简述该过程中出现问题解决经历第二题:结合图形和程序回答下面问题1、编程实现一个DNA序列文件的酶切位点的分析(包括酶切位点统计、酶切位点的标记和计数,以及可视化输出等,不准用模式匹配知识)(10分)。2、对1中编写的程序采用子程序进行优化,并阐述子程序输入输出和内部算法实现的理由和心得(10分)。3、进一步完善上面的程序,编写的系列酶切酶管理程序,实现酶切酶信息的添加、删除和修改,并简述理由和心得(20分)。由于第一问、第二问和第三问是紧密联系的,所以将其联合在一起编辑优化得到以下程序:具体程序代码如下:system'cls';&choose;my$slect=STDIN;chomp($slect);if($slecteqsearch){&search;}if($slecteqadd){&add;}if($slecteqestimate){&estimate;}if($slecteqquit){&quit;}subchoose{$~=heading;write;formatheading=运行程序选择=============================================================================================================================================================================在酶切位点中添加新的酶切位点——请输人add========*******计算整个序列中各碱基所占比例——请输入estimate***************寻找基因的酶切位点——请输入search********=======退去此程序——请输入quit==============================================================================================================================================================================.print\n\n请在这里输入你的选项:;}subsearch{system'cls';print\n\n====================================你已进入酶切位点查找程序================================\n;print============================================================================================\n\n;print请在这里输入目的基因序列:\n\n;my$string=STDIN;print\n请输入酶切位点序列:\n;my$dian=STDIN;chop($dian);#将找到的酶切位点的位置赋值到句柄$positions中print\n基因序列的酶切位点:\n;my$foundAt=0;my$offset=0;my$label=1;my%positions;while(($foundAt=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($n100){my$str;$str=substr($string,$n+$c,10);print$str;print;$n+=10;}print\n;foreach(0..99){if(($_+1)%10==0){print;print$positions{$_+$c}?$positions{$_+$c}:;}else{print$positions{$_+$c}?$positions{$_+$c}:;}}print\n;$c+=100;if((length($string)-$c)0&&(length($string))-$c100){last;}}my$f=$c;foreach($c..length($string)-1)#110{my$str2;$str2=substr($string,$c,1);print$str2;$c++;if($c%10==0){print;}}print\n;foreach($f..length($string)-1){print$positions{$f}?$positions{$f}:;printif($f%10==0);$f++;}print\n;}subadd{system'cls';print\n\n==================================你已进入添加酶切位点程序================================\n;print==========================================================================================\n\n;print请依次输入酶的名称其识别的序列酶切的前半部分序列酶切的后半部分序列,输完后请按Ctrl+Z\n;chomp(my@enzyme=STDIN);open(FILE,C:\\myperl\\酶切位点.txt);print(FILE@enzyme\n);close(FILE);print\n此序列以保存到C:\\myperl\\酶切位点.txt\n\n;print下面输出的是数据库中所保存的所有的酶切位点:\n\n;open(FILE,C:\\myperl\\酶切位点.txt);my@array=FILE;close(FILE);print@array;print==========================================================================================\n;print==========================================================================================;}subestimate{system'cls';print====================你已进入基因序列各碱基比例统计程序=========================\n;print===============================================================================\n\n;print请在这里输入基因序列所在的文件位置(如C:\\myperl\\gene.pl.txt)\n序列存放位置:;$file=STDIN;chomp($file);open(FILEHANDLE,$file);$string=FILEHANDLE;close(FILEHANDLE);#将@array中的每一个元数中的内容都赋值到$string中,形成一个字符串print\n从文件中读出的基因序列为:\n$string;print\n\n\n=========================此基因序列碱基分析结果如下===========================\n\n\n;($a,$c,$t,$g,$n1)=(0,0,0,0,0);print基因序列:$string\n;#用while循环进行统计while($n1(length($string)-1)){$y=substr($string,$n1,1);if($yeqA){$a++;}elsif($yeqC){$c++;}elsif($yeqT){$t++;}elsif($yeqG){$g++;}$n1++;}$n=length($string);#分别计算出a,t,c,g在所给基因中所占的百分比$ap=$a/$n;$cp=$c/$n;$tp=$t/$n;$gp=$g/$n;print\nA碱基所占的百分比为$ap\nC碱基所占的百分比为$cp\nT碱基所占的百分比为$tp\nG碱基所占的百分比为$gp\n;}subquit{print\n你已退出了该程序!!!;}第一步运行改程序会出现如下选择界面:第二步输入add进入在酶切位点文件中添加新酶切位点的程序,界面如下:依次输入酶的名称,识别序列,酶切割的前半部分序列,酶切割的后半部分序列,回车后,Ctrl+Z进行酶切位点添加,输出文件中已有的酶切位点。界面如下:第三步在程序选择窗口中输入estimate,进入基因序列碱基分析程序,界面