# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-my ( $options, $in, $out, $record, $re_data, $re, $matches, $match, %re_hash, $res_enz );
+my ( $options, $in, $out, $record, $re_data, $re, $matches, $match, %re_hash, $res_enz, $new_record );
$options = Maasha::Biopieces::parse_options(
[
- { long => 'res_enz', short => 'r', type => 'list', mandatory => 'no', default => undef, allowed => undef, disallowed => undef },
- { long => 'res_enz_in', short => 'R', type => 'file!', mandatory => 'no', default => undef, allowed => undef, disallowed => undef },
- { long => 'no_matches', short => 'M', type => 'flag', mandatory => 'no', default => undef, allowed => undef, disallowed => undef },
+ { long => 'res_enz', short => 'r', type => 'list', mandatory => 'no', default => undef, allowed => undef, disallowed => undef },
+ { long => 'res_enz_in', short => 'R', type => 'file!', mandatory => 'no', default => undef, allowed => undef, disallowed => undef },
+ { long => 'res_enz_only', short => 'o', type => 'flag', mandatory => 'no', default => undef, allowed => undef, disallowed => undef },
+ { long => 'no_matches', short => 'M', type => 'flag', mandatory => 'no', default => undef, allowed => undef, disallowed => undef },
]
);
$matches = Maasha::RestrictEnz::re_scan( $record->{ 'SEQ' }, $re );
- if ( scalar @{ $matches } > 0 )
- {
- $record->{ $re->{ 'name' } . "_COUNT" } = scalar @{ $matches };
- $record->{ $re->{ 'name' } . "_MATCHES" } = join( ";", @{ $matches } ) if not $options->{ 'no_matches' };
- }
+ %{ $new_record } = %{ $record } if not $options->{ 'res_enz_only' };
+ $new_record->{ 'RE' } = $re->{ 'name' };
+ $new_record->{ 'RE_COUNT' } = scalar @{ $matches };
+ $new_record->{ 'RE_MATCHES' } = join( ";", @{ $matches } ) if not $options->{ 'no_matches' };
+
+ Maasha::Biopieces::put_record( $new_record, $out );
}
}
- Maasha::Biopieces::put_record( $record, $out );
+ # Maasha::Biopieces::put_record( $record, $out );
}
Maasha::Biopieces::close_stream( $in );