X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=bp_bin%2Fread_embl;h=15ebea4f797c03d0c1e399e347f530a3445deae6;hb=65c95436db284e007aca606472d535137980bd55;hp=50b24e51d161d2e73eb3a1d93e00b747a78db31b;hpb=5aed4676ad1bf35abbade6215ac90ee591e6d8fe;p=biopieces.git diff --git a/bp_bin/read_embl b/bp_bin/read_embl index 50b24e5..15ebea4 100755 --- a/bp_bin/read_embl +++ b/bp_bin/read_embl @@ -26,7 +26,9 @@ # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< +use warnings; use strict; +use Storable qw( dclone ); use Maasha::Biopieces; use Maasha::Filesys; use Maasha::EMBL; @@ -35,25 +37,21 @@ use Maasha::EMBL; # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< -my ( $options, $in, $out, %options2, $file, $data_in, $num, $entry, $record ); +my ( $options, $in, $out, $data_in, $num, $entry, $record ); $options = Maasha::Biopieces::parse_options( [ - { long => 'data_in', short => 'i', type => 'files!', mandatory => 'no', default => undef, allowed => undef, disallowed => undef }, - { long => 'num', short => 'n', type => 'uint', mandatory => 'no', default => undef, allowed => undef, disallowed => '0' }, - { long => 'keys', short => 'k', type => 'list', mandatory => 'no', default => undef, allowed => undef, disallowed => undef }, - { long => 'feats', short => 'f', type => 'list', mandatory => 'no', default => undef, allowed => undef, disallowed => undef }, - { long => 'quals', short => 'q', type => 'list', mandatory => 'no', default => undef, allowed => undef, disallowed => undef }, + { long => 'data_in', short => 'i', type => 'files!', mandatory => 'no', default => undef, allowed => undef, disallowed => undef }, + { long => 'num', short => 'n', type => 'uint', mandatory => 'no', default => undef, allowed => undef, disallowed => '0' }, + { long => 'keys', short => 'k', type => 'list', mandatory => 'no', default => undef, allowed => undef, disallowed => undef }, + { long => 'features', short => 'f', type => 'list', mandatory => 'no', default => undef, allowed => undef, disallowed => undef }, + { long => 'qualifiers', short => 'q', type => 'list', mandatory => 'no', default => undef, allowed => undef, disallowed => undef }, ] ); $in = Maasha::Biopieces::read_stream( $options->{ "stream_in" } ); $out = Maasha::Biopieces::write_stream( $options->{ "stream_out" } ); -map { $options2{ "keys" }{ $_ } = 1 } @{ $options->{ "keys" } }; -map { $options2{ "feats" }{ $_ } = 1 } @{ $options->{ "feats" } }; -map { $options2{ "quals" }{ $_ } = 1 } @{ $options->{ "quals" } }; - while ( $record = Maasha::Biopieces::get_record( $in ) ) { Maasha::Biopieces::put_record( $record, $out ); } @@ -66,37 +64,7 @@ if ( $options->{ 'data_in' } ) while ( $entry = Maasha::EMBL::get_embl_entry( $data_in ) ) { - $record = Maasha::EMBL::parse_embl_entry( $entry, \%options2 ); - - my ( $feat, $feat2, $qual, $qual_val, $record_copy ); - - $record_copy = dclone $record; - - delete $record_copy->{ "FT" }; - - Maasha::Biopieces::put_record( $record_copy, $out ); - - delete $record_copy->{ "SEQ" }; - - foreach $feat ( keys %{ $record->{ "FT" } } ) - { - $record_copy->{ "FEAT_TYPE" } = $feat; - - foreach $feat2 ( @{ $record->{ "FT" }->{ $feat } } ) - { - foreach $qual ( keys %{ $feat2 } ) - { - $qual_val = join "; ", @{ $feat2->{ $qual } }; - - $qual =~ s/^_//; - $qual = uc $qual; - - $record_copy->{ $qual } = $qual_val; - } - - Maasha::Biopieces::put_record( $record_copy, $out ); - } - } + map { Maasha::Biopieces::put_record( $_, $out ) } Maasha::EMBL::embl2biopieces( $entry, $options ); last if $options->{ "num" } and $num == $options->{ "num" };