Olu*_*ole 6 bioinformatics perl6
下午好,我试图计数的时间ACTG发生在DNA序列使用perl6.i字母都试过其他方式我只是试图让它以另一种方式完成的数量.以下是我提出的一些代码
use v6;
my $default-input = "AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC";
sub MAIN(Str $input = $default-input)
{
say "{bag($input.comb)<A C G T>}";
}
use v6;
my $default-input = "AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC";
sub MAIN($input = $default-input)
{
"{<A C G T>.map({ +$input.comb(/$_/) })}".say;
Run Code Online (Sandbox Code Playgroud)
数据集样本
AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC
multi sub MAIN ( \DNA ) {
my Int %bag = A => 0, C => 0, G => 0, T => 0;
# doesn't keep the whole thing in memory
# like .comb.Bag would have
for DNA.comb {
%bag{$_}++
}
.say for %bag<A C G T> :p;
}
multi sub MAIN ( 'example' ){
samewith "AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC"
}
multi sub MAIN ( Bool :STDIN($)! ){
samewith $*IN
}
multi sub MAIN ( Str :filename(:$file)! where .IO.f ){
samewith $file.IO
}
Run Code Online (Sandbox Code Playgroud)
~$ ./test.p6
Usage:
./test.p6 <DNA>
./test.p6 example
./test.p6 --STDIN
./test.p6 --filename|--file=<Str>
~$ ./test.p6 example
A => 20
C => 12
G => 17
T => 21
~$ ./test.p6 --STDIN < test.in
A => 20
C => 12
G => 17
T => 21
~$ ./test.p6 --file=test.in
A => 20
C => 12
G => 17
T => 21
Run Code Online (Sandbox Code Playgroud)