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 )