#!/usr/bin/env ruby
-# Copyright (C) 2007-2011 Martin A. Hansen.
+# Copyright (C) 2007-2013 Martin A. Hansen.
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
options = Biopieces.options_parse(ARGV, casts)
-num = 0
-last = false
+num = 0
+first = true
+last = false
Biopieces.open(options[:stream_in], options[:stream_out]) do |input, output|
- unless options[:data_in].first == '-'
+ unless options[:data_in] and options[:data_in].first == '-'
input.each_record do |record|
output.puts record
end
Fastq.open(file, mode='r') do |fastq|
fastq.each do |entry|
if encoding == 'auto'
- if entry.qual.match(/[!-:]/) # sanger or illumina18
+ if entry.qual_base33? # sanger or illumina18
encoding = 'illumina18'
- elsif entry.qual.match(/[K-h]/) # solexa or illumina13 or illumina15
+ elsif entry.qual_base64? # solexa or illumina13 or illumina15
encoding = 'illumina13'
else
raise SeqError, "Could not auto-detect quality score encoding"
end
entry.convert_scores!(encoding, 'illumina13')
+
+ if first
+# raise SeqError, "Quality score outside valid range" unless entry.qual_valid?('illumina13')
+ first = false
+ end
+
output.puts entry.to_bp
num += 1