欢迎来到天天文库
浏览记录
ID:62185080
大小:15.67 KB
页数:10页
时间:2021-04-20
《实验六 动态规划算法比对序列.docx》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、实验六动态规划算法比对序列#!/usr/bin/perl-wprint"先生,那个做业,我交了3次。以那次为准哈。以前的逻辑上或者者语法上或者多或者少有些成绩详细了局以下:";$seq1="YKRDKPHVNIGTIGHVDHGKTTLTAAITSVLAKERGITISTAHVEYQTDKRHYAHIDCPGHADYIKNDGPMPQTREHILLARQVNVPALVVFLNKVDILLELVEMELRELLTEYGFPGDDIPIIKGSALNIMELMD";$seq2="IGHVDHGKTTLTAAITSVLAKERGITISTAH
2、VIKNMITGAAQMDGAILVVAGTDGPMPQTREHILLARQVNVPALVVFLNKVDIALLELVEMELRELLTEYGFPGDDIPIIKGSALNALNEKAIMELMDAVDDYIP";@seq1=split(//,$seq1);@seq2=split(//,$seq2);#界说奖分划定规矩$match=1;$dismatch=0;$gap=-1;#挨分矩阵第一列以及第一止赋值#$score[0][0]={0};$len1=(@seq1);$len2=(@seq2);#横着赋值for$i(0..$len1){$sco
3、re[0][$i]=-$i;}#横着赋值for$j(0..$len2){$score[$j][0]=-$j;}#挖充患上分矩阵的其余地位for$i(1..$len1){$letter2=$seq2[$i-1];for$j(1..$len2){$letter1=$seq1[$j-1];if($letter1eq$letter2)#线路歪着走(要末婚配,要末容忍){$diagonal=$score[$i-1][$j-1]+$match;}else$diagonal=$score[$i-1][$j-1]+$dismatch;}$up=$score[$
4、i-1][$j]+$gap;#线路横着走$left=$score[$i][$j-1]+$gap;#线路横着走#对比4种情形的最劣患上分if($diagonal>=$up){if($diagonal>=$left){$score[$i][$j]=$diagonal;$trace[$i][$j]=1;}else{$score[$i][$j]=$left;$trace[$i][$j]=2;}}else{if($up>=$left){$score[$i][$j]=$up;$trace[$i][$j]=3;}else{$score[$i][$j]=$le
5、ft;$trace[$i][$j]=2;}}}}print"最下患上分为$score[$i-1][$j-1]";#正在患上分矩阵中,寻到最劣途径的标志,从而寻到最劣途径$j=@seq1;$i=@seq2;$k=0;#@align1;while(1){if($i>0&&$j>0){if($trace[$i][$j]==1){$align1[$k]=$seq1[$j-1];$align2[$k]=$seq2[$i-1];$k++;$j--;$i--;next;}elsif($trace[$i][$j]==2){$align1[$k]=$seq1
6、[$j-1];$align2[$k]="-";$k++;$j--;next;}elsif($trace[$i][$j]==3){$align1[$k]="-";$align2[$k]=$seq2[$i-1];$k++;$i--;next;}}elsif($i==0&&$j!=0){$align2[$k]=$seq1[$j-1];$align1[$k]="-";$k++;$j--;}elsif($j==0&&$i!=0){$align1[$k]=$seq2[$i-1];$align2[$k]="-";$k++;$i--;}elsif($j==0&
7、&$i==0){last;}}@align1=reverse(@align1);@align2=reverse(@align2);print"比对于了局为:";print"序列1:@align1";print"序列2:@align2";借有一种圆法:#!/usr/bin/perlusestrict;my$x="YKRDKPHVNIGTIGHVDHGKTTLTAAITSVLAKERGITISTAHVEYQTDKRHYAHIDCPGHADYIKNDGPMPQTREHILLARQVNVPALVVFLNKVDILLELVEMELRELLTE
8、YGFPGDDIPIIKGSALNIMELMD";#将序列寄存正在sequence中my@bb=split(//,$x);#宰割数组,将元素保留正在b
此文档下载收益归作者所有