sub count_support_mismatch { my( $hashref, $arref, $d ) = @_; my $counter = 0; foreach my $key ( keys %{ $hashref } ) { my $ar = $hashref->{$key}; my @match_list; print join( '|', @{ $ar } ) . "\n" . join( '|', @$arref ) . "\n"; foreach my $elem ( @{ $ar } ) { foreach my $q ( @$arref ) { print "Hamming '$elem' <=> '$q'\n"; my $dist = hd( $elem, $q ); if( $dist <= $d ) { #print "$q - $_\n"; push @match_list, $elem; } shift @{ $ar }; # Part that alter hash } } $counter++ if @match_list; } return $counter; } #### P:\test>459758 GGAA|GGGG|TTTT GGGG|GGGG Hamming 'GGAA' <=> 'GGGG' Hamming 'GGAA' <=> 'GGGG' GGGA|GTTT|GGGG GGGG|GGGG Hamming 'GGGA' <=> 'GGGG' Hamming 'GGGA' <=> 'GGGG' GGGG|AAAA|GGGG GGGG|GGGG Hamming 'GGGG' <=> 'GGGG' Hamming 'GGGG' <=> 'GGGG' GGGA|GCGG|GTTT GGGG|GGGG Hamming 'GGGA' <=> 'GGGG' Hamming 'GGGA' <=> 'GGGG' Support = 3 #### sub count_support_mismatch { my( $hashref, $arref, $d ) = @_; my $counter = 0; foreach my $key ( keys %{ $hashref } ) { my $ar = $hashref->{$key}; my @match_list; print join( '|', @{ $ar } ) . "\n" . join( '|', @$arref ) . "\n"; foreach my $q ( @$arref ) { print "Hamming '$ar->[ 0 ]' <=> '$q'\n"; my $dist = hd( $ar->[ 0 ], $q ); if( $dist <= $d ) { #print "$q - $_\n"; push @match_list, $ar->[ 0 ]; } } $counter++ if @match_list; } return $counter; } #### P:\test>459758 GGAA|GGGG|TTTT GGGG|GGGG Hamming 'GGAA' <=> 'GGGG' Hamming 'GGAA' <=> 'GGGG' GGGA|GTTT|GGGG GGGG|GGGG Hamming 'GGGA' <=> 'GGGG' Hamming 'GGGA' <=> 'GGGG' GGGG|AAAA|GGGG GGGG|GGGG Hamming 'GGGG' <=> 'GGGG' Hamming 'GGGG' <=> 'GGGG' GGGA|GCGG|GTTT GGGG|GGGG Hamming 'GGGA' <=> 'GGGG' Hamming 'GGGA' <=> 'GGGG' Support = 3 #### P:\test>459758 GGAA|GGGG|TTTT GGGG|GGGG Hamming 'GGAA' <=> 'GGGG' Hamming 'GGAA' <=> 'GGGG' Hamming 'GGGG' <=> 'GGGG' Hamming 'GGGG' <=> 'GGGG' Hamming 'TTTT' <=> 'GGGG' Hamming 'TTTT' <=> 'GGGG' GGGA|GTTT|GGGG GGGG|GGGG Hamming 'GGGA' <=> 'GGGG' Hamming 'GGGA' <=> 'GGGG' Hamming 'GTTT' <=> 'GGGG' Hamming 'GTTT' <=> 'GGGG' Hamming 'GGGG' <=> 'GGGG' Hamming 'GGGG' <=> 'GGGG' GGGG|AAAA|GGGG GGGG|GGGG Hamming 'GGGG' <=> 'GGGG' Hamming 'GGGG' <=> 'GGGG' Hamming 'AAAA' <=> 'GGGG' Hamming 'AAAA' <=> 'GGGG' Hamming 'GGGG' <=> 'GGGG' Hamming 'GGGG' <=> 'GGGG' GGGA|GCGG|GTTT GGGG|GGGG Hamming 'GGGA' <=> 'GGGG' Hamming 'GGGA' <=> 'GGGG' Hamming 'GCGG' <=> 'GGGG' Hamming 'GCGG' <=> 'GGGG' Hamming 'GTTT' <=> 'GGGG' Hamming 'GTTT' <=> 'GGGG' Support = 4