]> git.donarmstrong.com Git - biopieces.git/blobdiff - code_perl/Maasha/Solexa.pm
added missing files
[biopieces.git] / code_perl / Maasha / Solexa.pm
index 0fe7f107b20ef85fd212ee2152116b36510d6c22..fa2764e567acfebc02018ab0cd4b9943fdbc7746 100644 (file)
@@ -29,6 +29,9 @@ package Maasha::Solexa;
 # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
 
+use Maasha::Calc;
+use Data::Dumper;
+
 use vars qw( @ISA @EXPORT_OK );
 
 require Exporter;
@@ -62,7 +65,7 @@ sub solexa_get_entry_octal
 
     # Returns a list.
 
-    my ( $seq_header, $seq, $score_head, $score, @scores );
+    my ( $seq_header, $seq, $score_head, $score );
 
     $seq_header   = <$fh>;
     $seq          = <$fh>;
@@ -76,13 +79,8 @@ sub solexa_get_entry_octal
     chomp $score_header;
     chomp $score;
 
-    @scores = split //, $score;
-
-    map { $_ = int( score_oct2dec( $_ ) ) } @scores;
-
     $seq_header =~ s/^@//;
-
-    $score = join( ";", @scores );
+    $score      =~ s/(.)/int( score_oct2dec( $1 ) ) . ";"/ge;
 
     return wantarray ? ( $seq_header, $seq, $score ) : [ $seq_header, $seq, $score ];
 }
@@ -101,7 +99,7 @@ sub score_oct2dec
 
     # Returns a float
 
-    return 10 * log(1 + 10 ** ((ord( $char ) - 64) / 10.0)) / log(10);
+    return 10 * log( 1 + 10 ** ( ( ord( $char ) - 64 ) / 10.0 ) ) / log( 10 );
 }
 
 
@@ -123,7 +121,7 @@ sub solexa_get_entry_decimal
 
     # Returns a list.
 
-    my ( $seq_header, $seq, $score_head, $score, @scores );
+    my ( $seq_header, $seq, $score_head, $score );
 
     $seq_header   = <$fh>;
     $seq          = <$fh>;
@@ -137,11 +135,8 @@ sub solexa_get_entry_decimal
     chomp $score_header;
     chomp $score;
 
-    @scores = split / /, $score;
-
     $seq_header =~ s/^@//;
-
-    $score = join( ";", @scores );
+    $score      =~ s/ /;/g;
 
     return wantarray ? ( $seq_header, $seq, $score ) : [ $seq_header, $seq, $score ];
 }
@@ -153,8 +148,8 @@ sub solexa2biopiece
 
     # Converts a Solexa entry to a Biopiece record.
 
-    my ( $entry,      # Solexa entry
-         $qualilty,   # Quality cutoff
+    my ( $entry,     # Solexa entry
+         $quality,   # Quality cutoff
        ) = @_;
 
     # Returns a hashref.
@@ -168,11 +163,11 @@ sub solexa2biopiece
         $seqs[ $i ] = lc $seqs[ $i ] if $scores[ $i ] < $quality;
     }
 
-    $record{ "SEQ_NAME" }     = $entry->[ SEQ_NAME ];
-    $record{ "SEQ" }          = $entry->[ SEQ ];
-    $record{ "SCORES" }       = $entry->[ SCORE ];
-    $record{ "SEQ_LEN" }      = scalar @seqs;
-    $record{ "SCORE_MEAN" }   = sprintf ( "%.2f", Maasha::Calc::mean( \@scores ) );
+    $record{ "SEQ_NAME" }   = $entry->[ SEQ_NAME ];
+    $record{ "SEQ" }        = $entry->[ SEQ ];
+    $record{ "SCORES" }     = $entry->[ SCORE ];
+    $record{ "SEQ_LEN" }    = scalar @seqs;
+    $record{ "SCORE_MEAN" } = sprintf ( "%.2f", Maasha::Calc::mean( \@scores ) );
 
     return wantarray ? %record : \%record;
 }