sub seqsub(&) { $_[0] }
####
sub count_zipped_combo_vals {
my %counts;
seq_foreach_from_spec( \@_, sub {
seq_foreach(
seq_zip( ( map seq(split//), @_ ) ),
sub { $counts{"@_"}++ }
)
});
\%counts;
}
##
##
# a few problem cases to try
my @site1 = qw( AATKKM aatkkm );
my @site2 = qw( GGGGGG gggggg );
my @site3 = qw( XXXXXX ++++++ yyyyyy );
# ... and so on ...
my @sites = \(
@site1, @site2, @site3, # ... and so on ...
);
# try 1-, 2-, and 3- array cases
print Dumper( count_zipped_combo_vals( @sites[0..$_] ) )
for 0 .. $#sites;
# $VAR1 = {
# 'A' => 2,
# 'k' => 2,
# 'a' => 2,
# 'M' => 1,
# 'T' => 1,
# 'K' => 2,
# 'm' => 1,
# 't' => 1
# };
# $VAR1 = {
# 'K G' => 2,
# 'A G' => 2,
# 'm g' => 1,
# 'a g' => 2,
# 'A g' => 2,
# 'M G' => 1,
# 'k g' => 2,
# 'k G' => 2,
# 'T G' => 1,
# 'a G' => 2,
# 'm G' => 1,
# 't G' => 1,
# 'K g' => 2,
# 'M g' => 1,
# 't g' => 1,
# 'T g' => 1
# };
# $VAR1 = {
# 't G y' => 1,
# 'T G +' => 1,
# 'K G X' => 2,
# 'a G X' => 2,
# 'm G +' => 1,
# 'a G +' => 2,
# 'T g y' => 1,
# 'm g +' => 1,
# 'a g +' => 2,
# 'k G X' => 2,
# 'a g X' => 2,
# 'm g X' => 1,
# 'T g X' => 1,
# 't G +' => 1,
# 'M G y' => 1,
# 'k g y' => 2,
# 't g y' => 1,
# 'm G X' => 1,
# 't G X' => 1,
# 'K G +' => 2,
# 't g +' => 1,
# 'a g y' => 2,
# 'T G X' => 1,
# 'm g y' => 1,
# 'm G y' => 1,
# 'A G X' => 2,
# 'M g +' => 1,
# 'k g +' => 2,
# 'k g X' => 2,
# 'A g X' => 2,
# 'A g +' => 2,
# 'M g y' => 1,
# 'k G +' => 2,
# 'a G y' => 2,
# 'M G +' => 1,
# 'A g y' => 2,
# 'K g X' => 2,
# 'K G y' => 2,
# 'K g y' => 2,
# 'K g +' => 2,
# 'k G y' => 2,
# 'A G y' => 2,
# 'T g +' => 1,
# 't g X' => 1,
# 'M G X' => 1,
# 'M g X' => 1,
# 'T G y' => 1,
# 'A G +' => 2
# };