goto here; }
elsif($c==2) {
print\输入你想修改的酶切位点名字:\\n\ chomp($d=
print\输入想改的酶切位点的序列是:\\n\ chomp($e=
print\修改后的酶切位点:\\n\ $name{\
while(($f,$num)=each (%name)) {
$m=&meiqie_site($string,$num); printf(\ $f $num \\n\}
print\ goto here; }
elsif($c==3) {
print\输入你想删除的酶切位点名字:\\n\ chomp($d=
print\输入删除的酶切位点的序列:\\n\ chomp($e=
print\删除后酶切位点结果为:\\n\ delete($name{\
while(($f,$num)=each (%name)) {
$m=&meiqie_site($string,$num); printf(\ $f $num \\n\}
print\ goto here; }
if($c==4) {
print\显示所有的酶切位点:\\n\ foreach (keys %hash) { $i++;
15
print \ \\n\ }
while(($f,$num)=each (%name)) {
$m=&meiqie_site($string,$num); printf(\ $f $num \\n\ }
print\ goto here; }
if($c==5) {
print\退出系统,谢谢使用!\}
sub meiqie_site {
my($strings,$tags)=@_; my $foundAt = 0; my $offset = 0; my $label = 1;
while ( ( $foundAt = index( $string,$tags,$offset ) ) > -1 ) {
$positions{ $foundAt } = $label++; $offset = $foundAt + 1; print\ } }
测试输出见图2-3系列图; 酶添加测试:
16
图2-3-1 酶信息添加测试结果输出
酶修改测试:
图2-3-2:修改酶的信息输出
酶删除测试:
图2-3-3:删除酶信息测试输出
17
显示所有酶切信息:
图2-3-4:显示所有酶切的信息输出
程序退出测试:
图2-3-5:成功退出程序
这道题花了我接近半天,这道题很像是以前C语言的时候做学生管理系统,可以对其进行添加删除还有修改显示和退出系统等问题,这道题和当初自己做的很像。
当然这道题也不是想象中得那样简单,虽然人家都说perl语言很好学,很多东西不用
18
定义都可以直接使用,但是,这就更使我们的程序缺乏可读性。本来想看看其他人的代码,因为实在太难了,但是结果发现他们的代码根本看不懂,而且我觉得要把学到的东西用在事迹当中来确实很难。刚开始真的不知道怎么做,结果又慢慢的看了看关联数值哈希表的用法。还有很多函数也记不住。只能在网上搜。需要干什么的时候,就GOOLE。最后终于还是得到了满意的结果。本题主要的还是用到if控制结构,还有each函数。
2.4、编程实现采用滑动窗口技术实现DNA序列的四种碱基含量变化并可视化输出,并简述理由和心得(10分)。
一、解题思想
首先是利用s时候不是很在意这个问题,经过这个题之后觉得里面确实有些知识点很重要。
二、实现过程:
以1000个碱基为一个滑动窗口,计算每个滑动窗口所含有的碱基数量,从而得到最后碱基的含量曲线图: 核心代码:
for($i = 1;$i<=$string_bp_len-1000;$i++) {
$sonstring=substr($string_bp,$i,1000);
%num=(\
for($j=1;$j<=1000;$j++) {
$jianji=substr($sonstring,$j,1); if(\ {
$num{\
}
elsif(\ {
$num{\ }
19