I have some questions about what picard FixMateInformation and samtools fixmate commands do when they encounter read pairs with inconsistent strand info, e.g.
Example1: Read pair with flag 99 & 131 (read1 has flag "mate reverse strand")
Example2: Read pair with flag 83 & 131 (read 1 has flag "read reverse strand")
In both examples, strand info (either 0x10 or 0x20) is not set for the 2nd read. However, Example1 gets corrected to 67 & 131 by picard FixMateInformation (65 & 129 by samtools fixmate), while Example 2 gets corrected to 83 & 163. This creates some problem for me because then downstream programs will likely ignore Example 1 but keep Example 2 reads.
One downstream analysis that is affected, for instance, is counting overlaps with features using HTSeq with the "stranded" option.
Question Should I make sure Example 1 and 2 are dealt with consistently, i.e. either strand info is added to both reads in both examples or strand info is removed from both reads in both examples?
Thank you very much! I'm new to this community and suggestions are highly appreciated...