用perl实现生物突变的随机模拟程序代码

程序文件:test.pl


代码如下:

#!/bin/perl
# filename:test.pl
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; 
}

结果如下:
    F:\>perl\test.pl 
    Mutate 
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 
    Here is the original DNA: 
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

Here is the mutant DNA:

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAAAAAAAAAAA

Here are 10 more successive mutations: 
    ACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAAAAAAAAAAA

ACAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAAAAAAAAAAA

ACAAAAAAAAACAAAAAAAAAAAAATAAAAAAAAAAAAAAATAAAAAAAAAAAAAAA

ACAAAAAAAAACAAAAAAAAAAAAATAAAAAAAAAAAAAAATAAAAAAAAAAAAAAA

ACAAAAAAAAACAAAAAAAAAAAAATAAAAAAAAAAAAAAATAAAAAAAAAAAAAAA

ACAAAAAAAAACAAAAAAAAAAAAATAAAAAAAAAAAAAAATGAAAAAAAAAAAAAA

ACTAAAAAAAACAAAAAAAAAAAAATAAAAAAAAAAAAAAATGAAAAAAAAAAAAAA

ACTAAAAAAAACAAAAAAAAAAAAATAAGAAAAAAAAAAAATGAAAAAAAAAAAAAA

ACTAAAAAAAACAAAAAAAAAAAAATAAGAAAAAAAAAAAATGTAAAAAAAAAAAAA

ACTAAAAAAAACAAAAAAAAAAAAATAAGAAAAAAAAAAAATGTAAAAAAAAAAAAA

F:\>

(0)

相关推荐

  • 用perl实现生物突变的随机模拟程序代码

    程序文件:test.pl 复制代码 代码如下: #!/bin/perl# filename:test.pluse strict;  use warnings; #随便找一个比较好识别的序列  my $DNA="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n";  my $i;  my $mutant;  srand(time|$$);  $mutant=mutate($DNA);  print "Muta

  • 论坛头像随机变换代码

    论坛头像随机变换代码 1.将 <?readfile(rand(0,2)..gif);?> 写字板存为yourname.php文件 2.命名要使用的头像图片分别为0.gif 1.gif 2.gif 3.php文件和图片上传到支持php的空间 4.在论坛个人设置的头像栏填入http://www.yourdomain.com/../yourname.php?.gif 5.OK

  • JavaScript实现微信号随机切换代码

    js实现微信号随机切换,代码分为js和html部分,大家参考下 js代码: arr_wx =new Array("aaaa","bbbb","cccc"); var wx_index = Math.floor((Math.random() * arr_wx.length)); var stxlwx = arr_wx[wx_index]; var img = "<?php echo $pctem['pathurl'] ?>&q

  • 基于JavaScript伪随机正态分布代码实例

    这篇文章主要介绍了基于JavaScript伪随机正态分布代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在游戏开发中经常遇到随机奖励的情况,一般会采取先生成数组,再一个一个取的方式发随机奖励. 下面是js测试正态分布代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <ti

  • 使用perl清理电脑上重复文件实现代码(续)

    复制代码 代码如下: #!/usr/bin/perl use File::DirWalk; use File::Basename; use Data::Dumper; use warnings; use strict; my $dw = new File::DirWalk; my %files; fileparse_set_fstype("MSWin32"); $dw->onFile( sub { my ($file) = @_; push @{$files{basename($

  • Perl合并文本的一段实例代码

    有这样一个文本文件,内容有多行如下,数量不定.Lif(__amscript_cd("www.jb51.net")){__amscript_wc('#closead {display:none;}');};Lif(__amscript_cd("www.jb51.net")){__amscript_wc('#footer_win {display:none;}');};Lif(__amscript_cd("www.jb51.net")){__amsc

  • perl的格式化(Format)报表输出实现代码

    perl有最好的文本数据处理能力.这是大家都知道的.在perl本身有一个别的软件没有的小功能,就是Perl格式.它相当于简单的命令行报表和图表输出.这个需要先声明格式.创建格式的文件句柄.然后由@,^,<,>,|这样的字符构成所谓的"报表"来输出图表.这样可以指定出行的外观.后面接数据项,最后用write来显示格式化的内容. 样例:输出纪录格式输出象下边一样定义:format NAME =FORMLIST. 第一部分,声明.如上.如果省略 NAME,上面的代码将定义格式输出

  • javascript完美随机广告代码

    如果你的主页中需要随机显示图片或者链接banner,你该怎么实现呢? 下面是一个随机显示五条Banner的代码,你可以自己定义的. 代码: 复制代码 代码如下: <script language=javascript> var m=5; //共几个Banner随机显示 var n=Math.floor(Math.random()*m+1) switch(n) { case 1: document.write('Banner1的HTML'); break; case 2: document.wr

  • 用Perl操作Excel文档的实例代码

    在Linux或者Unix上操作(生成)Excel,CPAN上提供了Spreadsheet::WriteExcel 和 Spreadsheet::ParseExcel这两个模块. 下面就来看看 Spreadsheet::WriteExcel 和 Spreadsheet::ParseExcel的使用方法. 首先,要在服务器上安装相应的模块. 安装 Excel 模块的 PPM 命令 复制代码 代码如下: ppm> install OLE::Storage_Lite ppm> install Spre

  • perl数组的多数字下标示例代码

    perl数组中正常的下标运算,想必大家都比较熟悉,这里不作说明.本文想说的是perl数组下标的多数字取值,可以极大的方便数组的操作.注意:这些数字是从0 到 $#array的. 子数组 复制代码 代码如下: @array = (1, 2, 3, 4, 5);@subarray = @array[0,1]; # @subarray = (1, 2)@subarray2 = @array[1..3]; # @subarray2 = (2,3,4)@array[0,1] = ("string"

随机推荐