yeah, @jakebiesinger , actually I did that thing. the input format is readId\tReadSequence\tReadSequence. When processing this kind of line, I used String[] rawLine = value.toString().split("\\t"); the rawLine[0] is readId; rawLine[1]'s mateId automatically is set 0 implicitly. And rawLine[1]'s matedId automatically is set 1 implicitly. That mean I always set left ReadSequence to 0, right ReadSequence to 1 in a implicit way. By doing this, we don't need add _1 or _2 in the end of each read. Do you think is it better?