用perl實(shí)現(xiàn)生物突變的隨機(jī)模擬程序代碼
程序文件:test.pl
#!/bin/perl
# filename:test.pl
use strict;
use warnings;
#隨便找一個(gè)比較好識(shí)別的序列
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";
}
#子程序:根據(jù)序列的長(zhǎng)度定義一個(gè)隨機(jī)位置的子程序
sub randomposition
{
my($string)=@_;
return int(rand(length($string)));
}
#子程序:從一個(gè)數(shù)組中隨機(jī)選取一個(gè)元素
sub randelement
{
my(@array)=@_;
return $array[rand @array];
}
#子程序:引用上面的子程序,從ATGC四個(gè)堿基中隨機(jī)選取一個(gè)
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;
}
結(jié)果如下:
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:\>
相關(guān)文章
冒充su ,perl寫(xiě)的su.pl盜取root密碼
backtrack3里面/pentest/housekeeping里面有個(gè)超囧的偷root密碼的東西,冒充su ,perl寫(xiě)的,管理員輸入密碼的時(shí)候還直接回顯2008-09-09
用perl實(shí)現(xiàn)生物突變的隨機(jī)模擬程序代碼
perl寫(xiě)的生物突變的隨機(jī)模擬程序,有需要的朋友可以參考下2013-03-03
perl去除重復(fù)內(nèi)容的腳本代碼(重復(fù)行+數(shù)組重復(fù)字段)
perl去除重復(fù)內(nèi)容的小腳本,有需要的朋友可以參考下,包括重復(fù)行、數(shù)據(jù)組中重復(fù)的字段2013-03-03
在Perl中使用Getopt::Long模塊來(lái)接收用戶(hù)命令行參數(shù)
我們?cè)趌inux常常用到一個(gè)程序需要加入?yún)?shù),現(xiàn)在了解一下perl中的有關(guān)控制參數(shù)的函數(shù).getopt.在linux有的參數(shù)有二種形式.一種是–help,另一種是-h.也就是-和–的分別.–表示完整參數(shù).-表示簡(jiǎn)化參數(shù)2013-03-03
基于charles抓取https請(qǐng)求使用過(guò)程解析
這篇文章主要介紹了基于charles抓取https請(qǐng)求使用過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11
Perl Mysql數(shù)據(jù)庫(kù)操作實(shí)現(xiàn)代碼
對(duì)于perl操作mysql的步驟,說(shuō)的比較詳細(xì),建議大家好好看看,參考2009-01-01

