From: martinahansen Date: Thu, 14 May 2009 11:38:43 +0000 (+0000) Subject: polishing split_vals X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=76f0cce77bd2a4a6f546ed9e06f13a51e11173e0;p=biopieces.git polishing split_vals git-svn-id: http://biopieces.googlecode.com/svn/trunk@380 74ccb610-7750-0410-82ae-013aeee3265d --- diff --git a/bp_bin/split_vals b/bp_bin/split_vals index a510c58..fdb06ce 100755 --- a/bp_bin/split_vals +++ b/bp_bin/split_vals @@ -1,52 +1,41 @@ #!/usr/bin/env perl -w use strict; -use Data::Dumper; -use Time::HiRes qw( gettimeofday ); -use Getopt::Long qw( :config bundling ); use Maasha::Biopieces; # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< -my ( $script, $t0, $t1, %options, $in, $out, $record, @vals, $i ); +my ( $run_time_beg, $run_time_end, $options, $in, $out, $record, @vals, $i ); -$t0 = Time::HiRes::gettimeofday(); - -$script = ( split "/", $0 )[ -1 ]; +$run_time_beg = Maasha::Biopieces::run_time(); Maasha::Biopieces::log_biopiece(); -GetOptions( - \%options, - 'key|k=s', - 'keys|K=s', - 'delimit|d=s', - 'stream_in|I=s', - 'stream_out|O=s', - 'verbose|v', - 'help|?' +$options = Maasha::Biopieces::parse_options( + [ + { long => 'key', short => 'k', type => 'string', mandatory => 'yes', default => undef, allowed => undef, disallowed => undef }, + { long => 'keys', short => 'K', type => 'list', mandatory => 'no', default => undef, allowed => undef, disallowed => undef }, + { long => 'delimit', short => 'd', type => 'string', mandatory => 'no', default => '_', allowed => undef, disallowed => undef }, + ] ); -$options{ "keys" } = [ split ",", $options{ "keys" } ] if defined $options{ "keys" }; -$options{ "delimit" } = '_' if not defined $options{ "delimit" }; - -$in = Maasha::Biopieces::read_stream( $options{ "stream_in" } ); -$out = Maasha::Biopieces::write_stream( $options{ "stream_out" } ); +$in = Maasha::Biopieces::read_stream( $options->{ "stream_in" } ); +$out = Maasha::Biopieces::write_stream( $options->{ "stream_out" } ); while ( $record = Maasha::Biopieces::get_record( $in ) ) { - if ( exists $options{ 'key' } and exists $record->{ $options{ 'key' } } ) + if ( exists $options->{ 'key' } and exists $record->{ $options->{ 'key' } } ) { - @vals = split /$options{ 'delimit' }/, $record->{ $options{ 'key' } }; + @vals = split /$options->{ 'delimit' }/, $record->{ $options->{ 'key' } }; for ( $i = 0; $i < @vals; $i++ ) { - if ( defined $options{ "keys" } and defined $options{ "keys" }->[ $i ] ) { - $record->{ $options{ "keys" }->[ $i ] } = $vals[ $i ]; + if ( defined $options->{ "keys" } and defined $options->{ "keys" }->[ $i ] ) { + $record->{ $options->{ "keys" }->[ $i ] } = $vals[ $i ]; } else { - $record->{ $options{ 'key' } . "_$i" } = $vals[ $i ]; + $record->{ $options->{ 'key' } . "_$i" } = $vals[ $i ]; } } } @@ -54,9 +43,12 @@ while ( $record = Maasha::Biopieces::get_record( $in ) ) Maasha::Biopieces::put_record( $record, $out ); } -$t1 = Time::HiRes::gettimeofday(); +close $in; +close $out; + +$run_time_end = Maasha::Biopieces::run_time(); -print STDERR "Program: $script" . ( " " x ( 25 - length( $script ) ) ) . sprintf( "Run time: %.4f\n", ( $t1 - $t0 ) ) if $options{ 'verbose' }; +Maasha::Biopieces::run_time_print( $run_time_beg, $run_time_end, $options ); # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<