未命名  

  範例下載


use strict; use warnings; #隨便找一個比較好識別的序列 my $DNA="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n"; my $i; my $mutant; srand(time|$$); $mutant=mutate($DNA); print "Mutate \n". $DNA; print "Here is the original DNA:\n"; print "$DNA\n"; print "Here is the mutant DNA:\n\n"; print "$mutant\n"; print "Here are 10 more successive mutations:\n"; for ($i=0;$i<10;++$i) { $mutant=mutate($mutant); print "$mutant\n"; } #子程序:根據序列的長度定義一個隨機位置的子程序 sub randomposition { my($string)=@_; return int(rand(length($string))); } #子程序:從一個數組中隨機選取一個元素 sub randelement { my(@array)=@_; return $array[rand @array]; } #子程序:引用上面的子程序,從ATGC四個堿基中隨機選取一個 sub randomnucleotide { my (@nucleotides)=qw/A T G C/; return randelement(@nucleotides); } #子程序:生成突變的子程序 sub mutate { my($dna)=@_; my(@nucleotides)=qw(A T G C); my($position)=randomposition($dna); my($newbase)=randomnucleotide(@nucleotides); substr($dna,$position,1,$newbase);#substr($string,$initial_position,$length,replacement substring) return $dna; }

  

 


From:CSDN

創作者介紹
創作者 shadow 的頭像
shadow

資訊園

shadow 發表在 痞客邦 留言(0) 人氣()