@entries = entries
@cols = entries.first.length
@rows = entries.size
+
+ @has_qual = entries.first.qual.nil? ? false : true
+
@na_seq = NArray.byte(@cols, @rows)
- @na_qual = NArray.byte(@cols, @rows)
+ @na_qual = NArray.byte(@cols, @rows) if @has_qual
na_add_entries
- m1 = mask_high_qual
- m2 = mask_conserved_columns
- m3 = mask_conserved_residues
+ if @has_qual
+ m1 = mask_high_qual
+ m2 = mask_conserved_columns
+ m3 = mask_conserved_residues
- @na_seq *= m3
- @na_qual *= m3
+ @na_seq *= m3
+ @na_qual *= m3
- @na_seq *= (m1 | m2)
- @na_qual *= (m1 | m2)
+ @na_seq *= (m1 | m2)
+ @na_qual *= (m1 | m2)
+ end
end
def to_seq
new_seq = Seq.new
new_seq.seq = consensus_seq
- new_seq.qual = consensus_qual
+ new_seq.qual = consensus_qual if @has_qual
new_seq.type = "dna"
new_seq
def na_add_entries
@entries.each_with_index do |entry, i|
@na_seq[true, i] = NArray.to_na(entry.seq.downcase.tr(TR_NUC, TR_HEX), "byte")
- @na_qual[true, i] = NArray.to_na(entry.qual, "byte") - SCORE_ILLUMINA
+ @na_qual[true, i] = NArray.to_na(entry.qual, "byte") - SCORE_ILLUMINA if @has_qual
end
end