+ (length * percent * 0.01).round
+ end
+
+ def merge_overlap(entry_overlap1, entry_overlap2)
+ na_seq = NArray.byte(entry_overlap1.length, 2)
+ na_seq[true, 0] = NArray.to_na(entry_overlap1.seq.downcase, "byte")
+ na_seq[true, 1] = NArray.to_na(entry_overlap2.seq.downcase, "byte")
+
+ na_qual = NArray.byte(entry_overlap1.length, 2)
+ na_qual[true, 0] = NArray.to_na(entry_overlap1.qual, "byte")
+ na_qual[true, 1] = NArray.to_na(entry_overlap2.qual, "byte")
+
+ mask_xor = na_seq[true, 0] ^ na_seq[true, 1] > 0
+ mask_seq = ((na_qual * mask_xor).eq( (na_qual * mask_xor).max(1)))
+
+ merged = Seq.new()
+ merged.seq = (na_seq * mask_seq).max(1).to_s
+ merged.qual = na_qual.mean(1).round.to_type("byte").to_s
+
+ merged