AlignDB-GC
view release on metacpan or search on metacpan
lib/AlignDB/GC.pm view on Meta::CPAN
my $stat_segment_size = 500;
my $resize_set = _center_resize( $segment_set, $comparable_set, $stat_segment_size );
next unless $resize_set;
my @segment_seqs = map { $segment_set->substr_span($_) } @{$seqs_ref};
my $gc_mean = _calc_gc_ratio(@segment_seqs);
my ( $gc_std, $gc_mdcw ) = ( undef, undef );
my ( undef, undef, $gc_cv, undef ) = $self->segment_gc_stat( $seqs_ref, $resize_set, 100, 100 );
return ( $gc_mean, $gc_std, $gc_cv, $gc_mdcw );
}
sub _mean {
@_ = grep { defined $_ } @_;
return unless @_;
return $_[0] unless @_ > 1;
return List::Util::sum(@_) / scalar(@_);
}
t/02-segment_gc_stat.t view on Meta::CPAN
[ 0.53, 0.1838, 0.3912, 0.26, ],
],
[ [ [ "ACC" x 20 . "ATG" x 50, ], AlignDB::IntSpan->new->add_pair( 1, 200 ), ],
[ 0.43, 0.1571, 0.3652, 0.1133, ],
],
);
for my $i ( 0 .. $#data ) {
my ( $input_ref, $except_ref ) = @{ $data[$i] };
my @results = $GC->segment_gc_stat( @{$input_ref}, );
# $_ = $_->runlist for @results;
Test::Number::Delta::delta_ok( \@results, $except_ref, "segment_gc_stat $i" );
}
}
{
print "#segment_gc_stat_one\n";
my $GC = AlignDB::GC->new;
( run in 0.673 second using v1.01-cache-2.11-cpan-49f99fa48dc )