Perl如和生成这种格式的序列?
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/17 04:01:22
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
.
请问代码怎么写?
有三个文本文件,里面分别有不同的元素若干个,分别代表了生成序列前三位的可能性.
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
.
请问代码怎么写?
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 个档, 给你参巧我所理解你档案的内容是怎样的
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 个档, 给你参巧我所理解你档案的内容是怎样的
有两个fastaq格式的DNA序列文件,想写一个perl程序完成!
编写一段关于blast提取序列的Perl语言
如何用matlab生成m码序列?
和''鹅毛雪" 这种格式的词语
求一段perl分割fasta中DNA序列的代码 fasta文件中有数千条DNA序列,都是按照注释,
这种明信片的格式怎么写?如图
( )( )如( )这种格式的成语三个怎么写?
perl $@
用perl语言测DNA序列,全部分给你!
如何用eviews随机生成序列 在做趋势图、相关图和单位根检验呢
谁知道如何用matlab生成m序列,不用simulink.
perl分析基因序列就是给出一个.fa类型的文件,找出其中的N长度,GC长度,GC比例等信息.