]> git.donarmstrong.com Git - biopieces.git/commitdiff
finished rescan_seq
authormartinahansen <martinahansen@74ccb610-7750-0410-82ae-013aeee3265d>
Thu, 20 Aug 2009 12:57:01 +0000 (12:57 +0000)
committermartinahansen <martinahansen@74ccb610-7750-0410-82ae-013aeee3265d>
Thu, 20 Aug 2009 12:57:01 +0000 (12:57 +0000)
git-svn-id: http://biopieces.googlecode.com/svn/trunk@642 74ccb610-7750-0410-82ae-013aeee3265d

bp_bin/rescan_seq
code_perl/Maasha/RestrictEnz.pm

index 0e431eeae95b759cf58dd3e0cfc788e6c2cc1e1f..826a1f233da5d0a4c2ee1249e25da3643a90dd36 100755 (executable)
@@ -41,9 +41,10 @@ my ( $options, $in, $out, $record, $re_data, $re, $matches, $match, %re_hash, $r
 
 $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 },
     ]   
 );
 
@@ -70,6 +71,7 @@ while ( $record = Maasha::Biopieces::get_record( $in ) )
 
             $matches = Maasha::RestrictEnz::re_scan( $record->{ 'SEQ' }, $re );
 
+            %{ $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' };
index 19744394cd0c4a55e0323ebf288150e7f8948eda..836835b08c76f3f4ed3fc9e597ae511d370c260f 100644 (file)
@@ -129,7 +129,7 @@ void scan( char *seq, char *pat, int seq_len, int pat_len )
     Inline_Stack_Vars;
     Inline_Stack_Reset;
 
-    for ( i = 0; i < seq_len - pat_len; i++ )
+    for ( i = 0; i < seq_len - pat_len + 1; i++ )
     {
         if ( match( &seq[ i ], pat, pat_len ) ) {
           Inline_Stack_Push( sv_2mortal( newSViv( i ) ) );