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

 更新时间:2013年03月01日 11:24:56   作者:  
怎么用perl程序,随机生成一条序列,使ACGT四种碱基的含量分别为0.3,0.3,0.2,0.2!

方法一(不使用模块,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

相关文章

  • perl特殊符号及默认的内部变量

    perl特殊符号及默认的内部变量

    perl特殊符号及默认的内部变量,有需要的朋友不妨参考下
    2013-02-02
  • Perl学习笔记之文件操作

    Perl学习笔记之文件操作

    这篇文章主要介绍了Perl学习笔记之文件操作,本文分别给出了打开文件、读取文件、写入文件代码实例,需要的朋友可以参考下
    2015-06-06
  • Perl脚本实现递归遍历目录下的文件

    Perl脚本实现递归遍历目录下的文件

    这篇文章主要介绍了Perl脚本实现递归遍历目录下的文件,本文直接给出实现代码,代码中包含明细注释,需要的朋友可以参考下
    2015-04-04
  • 在EditPlus中配置Perl开发编译环境

    在EditPlus中配置Perl开发编译环境

    这篇文章主要介绍了在EditPlus中配置Perl开发编译环境,配置起来蛮简单,适合小型开发环境,需要的朋友可以参考下
    2015-06-06
  • Perl 字符串处理备忘录

    Perl 字符串处理备忘录

    Perl字符串处理学习备忘录,包括chop和chomp函数、getc函数、拼接字符串、分割字符串、重复拼接字符串、字串替换等。有需要的朋友,可以参考下
    2013-02-02
  • 强大的Perl正则表达式实例详解

    强大的Perl正则表达式实例详解

    正则表达式是Perl语言的特色,基本的语法不是很难,但是编写一个符合需求、高效的正则表达式,还是有一些挑战的。下面这篇文章主要给大家介绍了关于强大的Perl正则表达式的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-11-11
  • perl中的字符串操作函数chomp与chop介绍

    perl中的字符串操作函数chomp与chop介绍

    这篇文章主要介绍了perl中的字符串操作函数chomp与chop介绍,chomp与chop都是用于去除字符串变量尾部的字符,但它们有各自的区别,需要的朋友可以参考下
    2015-02-02
  • Perl读写文件简单示例

    Perl读写文件简单示例

    这篇文章主要介绍了Perl读写文件简单示例,本文直接给出实现代码,需要的朋友可以参考下
    2015-04-04
  • python urllib中的编码处理示例

    python urllib中的编码处理示例

    这篇文章主要介绍了python urllib中的编码处理示例,本文直接给出几个处理实例,需要的朋友可以参考下
    2015-04-04
  • Perl5 OOP学习笔记

    Perl5 OOP学习笔记

    在Perl排名持续下降的情况下学Perl,似乎是有点不明智。但是,工作需要,不得不学啊。再说,Perl现在在测试领域还是用得非常多的。Phython虽然也在测试领域开始活跃起来,不过我始终还是不太喜欢Phython的语法。
    2009-04-04

最新评论