zl程序教程

您现在的位置是:首页 >  后端

当前栏目

perl生成特定碱基比例的随机序列的代码

序列代码 生成 随机 特定 Perl 比例 碱基
2023-06-13 09:14:46 时间

方法一(不使用模块,byagonyr)

复制代码代码如下:


#!/usr/bin/perl-w

usestrict;

my@seq=("A","T","C","G");
my$length=10000;

undefmy%hash;
$hash{"A"}=int($length*0.3);
$hash{"C"}=int($length*0.3);
$hash{"G"}=int($length*0.2);
$hash{"T"}=int($length*0.2);

my$i=0;
while($i《$length){
   my$word=$seq[rand(@seq)];
   if($hash{$word}){
       print"$word";
       $i++;
   }
   $hash{$word}--;
}
print"n";

方法二(使用模块,byyixf)

复制代码代码如下:


#!/usr/bin/perl

usestrict;
usewarnings;

useBioX::SeqUtils::RandomSequence;

my$randomizer=BioX::SeqUtils::RandomSequence-》new(
   {
       l=》10000,
       s=》1,
       y=》"dna",
       a=》3,
       c=》3,
       g=》2,
       t=》2
   }
);
print$randomizer-》rand_seq(),"n";

两种方法比较

设定长度为10000,ACGT的比例为3:3:2:2。

复制代码代码如下:
withoutModule Length=10000 GC=49.42% A=2558,C=2503,G=2439,T=2500,Others=0
withModule Length=10000 GC=50.00% A=3000,C=3000,G=2000,T=2000,Others=0