Picard FixMateInformation treating "read reverse strand" and "mate reverse strand" flags differently

sene111sene111 boston MAMember

Hi everyone,

I have a question about how Picard FixMateInformation corrects inconsistent flags between paired-end RNA-seq reads in a bam file. (Versions I'm using: picard 2.18.26, java 11.0.2).

In my bam file, some read pairs have strand info ("read reverse strand" or "mate reverse strand") for only one read, and I'd like to correct the flags. I found that the below command

java -jar picard.jar FixMateInformation I=in.bam O=out.bam VALIDATION_STRINGENCY=LENIENT ASSUME_SORTED=true

corrects a pair of read with flags 99 (1st read, mate reverse strand) & 131 (2nd read) to 67 (1st read) & 131 (2nd read), but corrects a pair of read with flags 83 (1st read, read reverse strand) & 131 (2nd read) to 83 (1st read, read reverse strand) & 163 (2nd read, mate reverse strand). Essentially, picard FixMateInformation trusts "read reverse strand" but not "mate reverse strand" flag when strand-related flag is missing for the other read.

I was wondering why FixMateInformation works this way. Is "read reverse strand" generally considered more credible than "mate reverse strand"? For downstream analysis I'd really like to have consistent strand information. Should I go through the bam file and correct any "99,131" to "99,147" as well?

Thank you so much!!


  • bhanuGandhambhanuGandham Cambridge MAMember, Administrator, Broadie, Moderator admin


    The tool will always believe the read about its strand information, i.e. it will copy the read's strand information to its mate and will copy information from the read's mate to the read. So the tool is not designed for the use case of the user.

Sign In or Register to comment.