]> git.donarmstrong.com Git - biopieces.git/blobdiff - code_perl/Maasha/Solexa.pm
adding bzip2 support in ruby
[biopieces.git] / code_perl / Maasha / Solexa.pm
index d7c0d75af9a27c616e708304da819efaebab2fad..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.