lh3 / bwa

Burrow-Wheeler Aligner for short-read alignment (see minimap2 for long-read alignment)
GNU General Public License v3.0
1.55k stars 556 forks source link

Update bwape.c to allow equal reads in pair to be mapped as mapped in proper pair #259

Open schultzdre opened 5 years ago

schultzdre commented 5 years ago

Pre-processing tools like AfterQC and fastp can perform adapter clipping leaving both reads in a pair identical. This leads them to be mapped at the same location by aln, leading to (v).x == (u).x in the code below. The proposed change allows sampe to flag these as mapped in the proper pair.

Using some test data, this is a distribution of fragment lengths, pre-processed using fastp, mapped with aln and paired with sampe using the original code. Blue indicates mapped in proper pair (0x2 True) and red indicated otherwise (0x2 False).

test3

This is the same distribution with the proposed change:

test4

Thanks, Andre