perl生成特定碱基比例的随机序列的代码
方法一(不使用模块,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。
代码如下:
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
相关推荐
边城客栈学无止境 2020-07-05
Walter的学习笔记 2020-07-04
A宇 2020-06-14
边城客栈学无止境 2020-06-10
邓博学习笔记 2020-06-03
davidliu00 2020-05-26
ShiShuo 2020-05-16
Aggressivesnail 2020-05-10
ShiShuo 2020-04-26
hanxingwang00 2020-04-22
davidliu00 2020-03-06
ShiShuo 2020-03-06
ShiShuo 2020-03-05
Aggressivesnail 2020-02-28
aaLiweipeng 2020-02-01
amberom 2020-01-16
Walter的学习笔记 2020-01-06