]> git.donarmstrong.com Git - biopieces.git/blobdiff - bp_bin/read_embl
added assemble_seq_idba
[biopieces.git] / bp_bin / read_embl
index 50b24e51d161d2e73eb3a1d93e00b747a78db31b..15ebea4f797c03d0c1e399e347f530a3445deae6 100755 (executable)
@@ -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" };