加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl应用:生物突变的随机模拟程序

发布时间:2020-12-15 21:03:45 所属栏目:大数据 来源:网络整理
导读:use strict;use warnings; #随便找一个比较好识别的序列my $DNA="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAn";my $i;my $mutant;srand(time|$$);$mutant=mutate($DNA);print "Mutate n". $DNA;print "Here is the original DNA:n";prin



use strict;
use warnings;


            #随便找一个比较好识别的序列
my $DNA="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAn";
my $i;
my $mutant;
srand(time|$$);
$mutant=mutate($DNA);
print "Mutate n". $DNA;
print "Here is the original DNA:n";
print "$DNAn";
print "Here is the mutant DNA:nn";
print "$mutantn";
print "Here are 10 more successive mutations:n";
for ($i=0;$i<10;++$i)
{
	$mutant=mutate($mutant);
	print "$mutantn";
}


            #子程序:根据序列的长度定义一个随机位置的子程序
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:&;perla.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:&;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读