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

(0)

相关推荐

  • perl产生随机数实现代码

    Perl利用函数rand()和srand()为随机数(更确切的说是"伪随机数")字符串的生成提供了基本的工具.这些函数不是利用加密来提供安 全性的,所以不要利用它们为你金融信息的加密.但是,如果你需要为你的下一个游戏或者动态Web网站的新特性设计一个简单的随机数生成器,那么 rand()和srand()可能就是你所需要的. 函数rand()是真正的随机数生成器,而srand()会设置供rand()使用的随机数种子.函数rand()会返回一个处于0和你所指定的数 值(缺省为1)之间的分数

  • 使用Perl生成随机密码

    可以通过参数控制生成密码中包括的字符种类 #!/usr/bin/perl use strict; use warnings; use Getopt::Std; sub show_help { print "Useage:\n"; print "newp -aAnsl\n"; print "-a\t\t the password contains lower case letters(a-z)\n"; print "-A\t\t the

  • perl 指定长度并生成一个随机的DNA序列的脚本代码

    复制代码 代码如下: #!/bin/perl use strict;  use warnings; #进行定义  my @dna;  my $dna_length;  my $newbase;  my $i=0; print "please input the DNA length\n";  chomp($dna_length=<>); while($i<$dna_length)  {    #从四个碱基中随机选取一个    my(@nucleotides)=qw/A

  • perl写的一个随机编故事的程序(rand随机函数)

    复制代码 代码如下: #!/bin/perluse strict;  use warnings; #定义变量  my $count;  my $input;  my $number;  my $sentence;  my $story; #定义四个数组  #定义了人物数组  my @nouns=  (     'Dad',     'TV',     'Mom',     'Groucho',     'Rebecca',     'Harpo',     'Robin Hood',     '

  • 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.

  • Python编程实现生成特定范围内不重复多个随机数的2种方法

    本文实例讲述了Python编程实现生成特定范围内不重复多个随机数的2种方法.分享给大家供大家参考,具体如下: 在近期进行的一个实验中,需要将数据按一定比例随机分割为两个部分.这一问题的核心其实就是产生不重复随机数的问题.首先想到的递归的方法,然后才发现Python中居然已经提供了此方法的函数,可以直接使用.具体代码如下: #生成某区间内不重复的N个随机数的方法 import random; #1.利用递归生成 resultList=[];#用于存放结果的List A=1; #最小随机数 B=10

  • JavaScript生成指定范围随机数和随机序列的方法

    在JavaScript中我们经常使用Math.random()方法生成随机数,但是该方法生成的随机数只是0-1之间的随机数.先看如下常用方法的特征: •1.Math.random(); 结果为0-1间的一个随机数(包括0,不包括1) •2.Math.floor(num); 参数num为一个数值,函数结果为num的整数部分.与取整数的parseInt(num)方法一样. •3.Math.round(num); 参数num为一个数值,函数结果为num四舍五入后的整数. •4.Math.ceil(nu

  • Python批量生成特定尺寸图片及图画任意文字的实例

    因为工作需要生成各种大小的图片,所以写了个小脚本,顺便支持了下图画文字内容. 具体代码如下: from PIL import Image, ImageDraw, ImageFont ''' Auth: Xiaowu Chen Note: Please install [pillow] library before run this script. ''' def draw_image(new_img, text, show_image=False): text = str(text) draw

  • python生成特定分布数的实例

    我就废话不多说了,直接上代码吧! from scipy.stats import binom, norm, beta, expon import numpy as np import matplotlib.pyplot as plt #泊松分布 x = np.random.poisson(lam=34.7, size=10000) pillar = 100 a = plt.hist(x, bins=pillar, color='black', alpha=0.5) plt.xlabel((u'频

  • php生成4位数字验证码的实现代码

    在php中实现验证码还是很方便的,关键点在于掌握php gd库与session的用法. 纵观网上php 生成验证码的例子,无不是php gd库与session相结合,并利用php 生成随机数的方法来完成. PHP验证码,可以分为很多种,包括 php 图片验证码,php 随机验证码,以及php 中文验证码等,根据不同的应用场合来使用不同的验证码. 这里分享一个php数字验证码,供大家参考. 4位数字验证码 /* *Filename:authpage.php */ session_start();

  • JS生成和下载二维码的代码

    废话不多说了,直接给大家贴js代码了,具体代码如下所示: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8

  • java类中生成jfreechart,返回图表的url地址 代码分享

    web.xml中设置: 复制代码 代码如下: <servlet> <servlet-name>DisplayChart</servlet-name> <servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class> </servlet > <servlet-mapping> <servlet-name>DisplayChart</ser

  • Python随机生成均匀分布在单位圆内的点代码示例

    Python有一随机函数可以产生[0,1)区间内的随机数,但是如果我们想生成随机分布在单位圆上的,那么我们可以首先生成随机分布在单位圆边上的点,然后随机调整每个点距离原点的距离,但是我们发现这个距离不是均匀分布于[0,1]的,而是与扇形的面积相关的 我们使用另外的随机函数生成从[0,1)的随机数r,我们发现r<s0的概率为s0,显而易见,如果r为0,那么对应的距离应该为0,如果是1,对应的距离自然也应该是1,假设我们产生了m个随机数,那么小于s0的随机数应该为s0*m左右,而且这些应该对应于扇形

  • php生成缩略图质量较差解决方法代码示例

    近期弄个论坛,在首页要有个排名,显示评论最多的前十位用户的列表,列表有个略图是用户最新上传的作品,如果使用原来的图,图片过大,首页加载过慢,因此要使用略图 以上来使用imagecopyresized这个函数,显示质量很差如图 后来改用imagecopyresampled效果明显改变效果如图 附上完整代码: /** * @name thum 缩略图函数 * @param sting $img_name 图片路径 * @param int $max_width 略图最大宽度 * @param int

随机推荐