]> git.donarmstrong.com Git - biopieces.git/commitdiff
added parser for phred qual to fasta.rb
authormartinahansen <martinahansen@74ccb610-7750-0410-82ae-013aeee3265d>
Fri, 21 Sep 2012 09:27:34 +0000 (09:27 +0000)
committermartinahansen <martinahansen@74ccb610-7750-0410-82ae-013aeee3265d>
Fri, 21 Sep 2012 09:27:34 +0000 (09:27 +0000)
git-svn-id: http://biopieces.googlecode.com/svn/trunk@1937 74ccb610-7750-0410-82ae-013aeee3265d

code_ruby/lib/maasha/fasta.rb

index d4c443b0824301eda7dd8f397413fcba1285d92d..c9ce43d6d0610d1e7e69603471eaa720849d4650 100644 (file)
@@ -51,6 +51,31 @@ class Fasta < Filesys
 
     entry
   end
+
+  # Method to get the next pseudo FASTA entry consisting of a sequence name and
+  # space seperated quality scores in decimals instead of sequence. This is
+  # the quality format used by Sanger and 454.
+  def get_decimal_qual
+    block = @io.gets($/ + '>')
+    return nil if block.nil?
+
+    block.chomp!($/ + '>')
+
+    (seq_name, qual) = block.split($/, 2)
+
+    raise FastaError, "Bad FASTA qual format" if seq_name.nil? or qual.nil?
+
+    entry          = Seq.new
+    entry.seq_name = seq_name.sub(/^>/, '').rstrip
+    entry.seq      = nil
+    entry.type     = nil
+    entry.qual     = qual.tr("\n", " ").strip.split(" ").collect { |q| (q.to_i + SCORE_BASE).chr }.join("")
+
+    raise FastaError, "Bad FASTA format" if entry.seq_name.empty?
+    raise FastaError, "Bad FASTA format" if entry.qual.empty?
+
+    entry
+  end
 end