源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2020-04-04 09:15 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:用perl实现生物突变的随机模拟程序代码
程序文件:test.pl
[u]复制代码[/u] 代码如下:
#!/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)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部