my @arrr = split //, unpack "B*", $bitvec; my $histogram = Math::GSL::Vector->new(); my $sequence = Math::GSL::Vector->new( \@arrr ); while (($pos,$freq) = each %points) { my $view = gsl_vector_subvector( $sequence, 4 * $pos, 4 * $slen ); $histogram += $view * $freq; $sum_freq += $freq; } # normalize and uninterleave $histogram *= 1 / $sum_freq; @parts = part { $i++ % 4 } $histogram->as_list;