Perl如和生成这种格式的序列?有三个文本文件,里面分别有不同的元素若干个,分别代表了生成序列前三位的可能性.1.txt中有:aac abc acc adc .2.txt中有:bxa bxab byc bssxd .3.txt中有:efg hij lmop adc .现

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/22 07:17:22
Perl如和生成这种格式的序列?有三个文本文件,里面分别有不同的元素若干个,分别代表了生成序列前三位的可能性.1.txt中有:aac abc acc adc .2.txt中有:bxa bxab byc bssxd .3.txt中有:efg hij lmop adc .现

Perl如和生成这种格式的序列?有三个文本文件,里面分别有不同的元素若干个,分别代表了生成序列前三位的可能性.1.txt中有:aac abc acc adc .2.txt中有:bxa bxab byc bssxd .3.txt中有:efg hij lmop adc .现
Perl如和生成这种格式的序列?
有三个文本文件,里面分别有不同的元素若干个,分别代表了生成序列前三位的可能性.
1.txt中有:aac abc acc adc .
2.txt中有:bxa bxab byc bssxd .
3.txt中有:efg hij lmop adc .
现在每次要生成20个,随机的,长短不一的混合的序列格式如下:
XX1-XX2-XX3 当序列有3位时,每一位分别从3个文本文件中随机.
XX1-XX2 当序列有2位时,第一位从1.txt中随机,第二位从2.txt中随机.
XX1 当序列有1位时,这一位只能从1.txt中随机.
例如:
aac-bxab-efg
adc
acc-bssxd
acc-bxa-lmop
.
请问代码怎么写?

Perl如和生成这种格式的序列?有三个文本文件,里面分别有不同的元素若干个,分别代表了生成序列前三位的可能性.1.txt中有:aac abc acc adc .2.txt中有:bxa bxab byc bssxd .3.txt中有:efg hij lmop adc .现
use strict;

my $howManyTimes = 1 ; # 每次即是要几多次 ?
my $howManyElementsPerRound = 20; # 每次要生成20个
my $maxChainSize = 3; # 当序列有 x 位时
my $e = {};

sub random { # random ( $min, $max ) 
    my ( $min, $max ) = @_;
    my $try = undef;
    do { $try = int (rand ( $max+1 )) } 
        until ( $try >= $min && $try <= $max ) ;
    return $try;
}
sub makeFiles {
    for ( 1..3 ) { 
        open F, ">$_.txt";
        for my $make ( 1..50 ) {
            my $genLen = random ( 3, 4 ) ;        
            for my $len ( 1 .. $genLen ) {
                print F chr(random( 97, 122 )) ;
            }    print F " ";
        } close F;
    }
}
sub loadFiles {
    for my $f ( 1..3 ) {
        open F, "$f.txt" or die "Can't open $f.txt";
        chomp ( my @data = <F> ) ;    
        close F;
        push @{$e->{$f}}, split /\s+/, $_ foreach @data;
    }
}

#makeFiles; # 见下文注解
loadFiles;
for my $times ( 1..$howManyTimes ) {
    for my $round ( 1.. $howManyElementsPerRound ) {
        my $str = "";
        my $roundLen = random ( 1, $maxChainSize ) ;    
        for my $SizeAlsoFile ( 1 .. $roundLen ) {
            my $arrayLen = $#{$e->{$SizeAlsoFile}} ;
            my $elemPos = random ( 0 .. $arrayLen );
            $str .= $e->{$SizeAlsoFile}[$elemPos] . "-";        
        }    
        chop $str;
        #print "Round:$round, Len:$roundLen: $str$/"; # 用来验证的
        print "$str$/"; # 照你的要求输出
    }
    print $/
}
 
makeFile 是我自已生成的 3 个档,  给你参巧我所理解你档案的内容是怎样的

Perl如和生成这种格式的序列?有三个文本文件,里面分别有不同的元素若干个,分别代表了生成序列前三位的可能性.1.txt中有:aac abc acc adc .2.txt中有:bxa bxab byc bssxd .3.txt中有:efg hij lmop adc .现 ( )( )如( )这种格式的成语三个怎么写? 有两个fastaq格式的DNA序列文件,想写一个perl程序完成!有两个fastaq格式的DNA序列文件,想同时把每个文件中每组断片的两端精度小于10的基因删除,之后再将每组平均精度低于30的断片删除,想写一 Perl中if语句,while语句的测试条件使用了方括号有这种用法吗?如:if [$# -eq 0] ; then可以这样使用吗?我想着好像测试条件用的是()呢?[]和()有什么区别吗? Perl代码该怎么写?有一个文本文件1.txt,有60行,格式如下x aaaaaaaaaaax bbbbbbbbbbb.y aaaaaaaaaaay bbbbbbbbbbby cccccccccccccy dddddddddddy eeeeeeeeeeey ffffffffffffffffffffff.y开头序列的数量是 x开头的3倍,即x开头的有15 随机数生成问题有一个随机数生成函数以等概率1/2产生数字1和2,问:(1)如何用它以等概率1/3产生1、2、3三个数字?(2)在(1)的基础上,要产生序列“123”需要调用这个函数多少次? 怎么下载AUG上游500bp和下游500bp的基因序列?线虫物种,所有基因.那位大仙帮我指点指点,perl语言实现 怎样用perl把fasta文件中的多条序列分别处理?比如有序列:>gi| testKHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHCCCGGGLHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH>gi| testMHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH 求perl的统计程序,统计病毒序列中的ATCG总数,以及各个核苷酸所占比例【病毒DNA中有四种核苷酸,即ACTG】我有从网站下载的源文件HA.fa,并且从中提取了时间和病毒序列放置到excel表格中了,时间 写一个随机DNA序列 100bp用的是PERL PCR引物为什么必须不能有三个或者三个以上的G或C序列?如题 Perl代码该怎么写?有个1.txt文件内容如下:ABCxxxxxxxxxxxxxxxxxxxxxxxxxxxDEFaaaaaaaaaaaaaaaaaaaGHIbbbbbbbbbJKLcccccccccccccccccccc大写字母是ID名,名称不一.下面小写字母ID对应的序列,序列长度不一.如何提取ID以 如何在Matlab里面判断一个序列是否满足高斯分布如题,生成一个序列,如何判断序列是否满足高斯分布?在Matlab里有没有方便简单的方法,粗略估计一下即可~ 蛋白质的基因序列和氨基酸序列有什么区别? 水和气体生成的三个反应如题 perl 怎么把固定的时间格式转换为毫秒数如时间格式是:20140409,转换为1970年1月1日0点至这个时间的毫秒数. 编写一段关于blast提取序列的Perl语言目的:根据信息,提取名称举例:.大概就是这样的,“*”是其他信息,主要就是在“20140101 seqs1”和“20140102 seqs1”这里,blast结果是seqs1的20140101和20140102都提 和''鹅毛雪 这种格式的词语