perl生成特定碱基比例的随机序列的代码
perl生成特定碱基比例的随机序列的代码
发布时间:2016-12-28 来源:查字典编辑
摘要:方法一(不使用模块,byagonyr)复制代码代码如下:#!/usr/bin/perl-wusestrict;my@seq=("A","T"...

方法一(不使用模块,by agonyr)

复制代码 代码如下:

#!/usr/bin/perl -w

use strict;

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

my $length = 10000;

undef my %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";

方法二(使用模块,by yixf)

复制代码 代码如下:

#!/usr/bin/perl

use strict;

use warnings;

use BioX::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。

复制代码 代码如下:

withoutModuleLength=10000GC=49.42%A=2558,C=2503,G=2439,T=2500,Others=0

withModuleLength=10000GC=50.00%A=3000,C=3000,G=2000,T=2000,Others=0

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新perl学习
热门perl学习
脚本专栏子分类