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:&; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |