+ while entry1 = io1.get_entry and entry2 = io2.get_entry
+ if encoding == :auto
+ if entry1.qual_base33? or entry2.qual_base33?
+ encoding = :base_33
+ elsif entry1.qual_base64? or entry2.qual_base64?
+ encoding = :base_64
+ else
+ raise SeqError, "Could not auto-detect quality score encoding"
+ end
+ end
+
+ entry1.qual_convert!(encoding, :base_33)
+ entry2.qual_convert!(encoding, :base_33)
+ entry1.qual_coerce!(:base_33)
+ entry2.qual_coerce!(:base_33)
+
+ if num < MAX_TEST
+ raise SeqError, "Quality score outside valid range" unless entry1.qual_valid?(:base_33)
+ raise SeqError, "Quality score outside valid range" unless entry2.qual_valid?(:base_33)
+ end
+
+ output.puts entry1.to_bp
+ output.puts entry2.to_bp
+
+ num += 2
+
+ if options[:num] and num >= options[:num]
+ last = true
+ break
+ end
+ end
+
+ io1.close
+ io2.close
+
+ break if last
+ end
+ elsif options[:data_in]
+ options[:data_in].each do |file|
+ Fastq.open(file, 'r') do |fastq|