You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In STAR 2.7.2a, I believe there's a bug in chimeric alignment multimapper detection wherein the scores of candidate alignments are not consistently checked against all criteria.
For example, I observe the following line in Chimeric.out.junction:
The default value of 20 was kept for --chimScoreDropMax, so the minimum acceptable chimeric score alignment is 76 - 20 = 56, but this alignment is actually scored at 52.
score is within allowable range of best possible alignment score (i.e. read length)
score exceeds minimum allowable chimeric score
score is acceptably close to best chimeric alignment score
However, after stitching, which may reduce the score, only condition 1 is checked. If the alignment score after stitching exceeds the current high water mark but nonetheless fails conditions 2 or 3, this causes later code, which checks only condition 4 in counting chimeric multimapping alignments or outputting chimeric junctions, to potentially produce alignments that should be discarded based on the parameters.
I have attempted a fix for this in #722, but I'm not sure I fully understand the intended behavior. @brianjohnhaas would you be willing to chime in? Please note that this PR includes the change I suggested in #721, which addresses a memory leak but should not change outputs.
Rerunning with the suggested patch causes the line reported above to no longer appear in Chimeric.out.junction. Most of the outputs are identical, a non-trivial number of alignments are now removed, and a small number of additional alignments are output in situations where with consistent filtering, the cap on the number of multimappers is not exceeded.
Thanks!
The text was updated successfully, but these errors were encountered:
In STAR 2.7.2a, I believe there's a bug in chimeric alignment multimapper detection wherein the scores of candidate alignments are not consistently checked against all criteria.
For example, I observe the following line in
Chimeric.out.junction
:The default value of 20 was kept for
--chimScoreDropMax
, so the minimum acceptable chimeric score alignment is 76 - 20 = 56, but this alignment is actually scored at 52.This issue arises during the looping behavior to identify the best possible chimeric alignment. Specifically, at ChimericDetection_chimericDetectionMult.cpp#L67, 4 criteria are checked:
However, after stitching, which may reduce the score, only condition 1 is checked. If the alignment score after stitching exceeds the current high water mark but nonetheless fails conditions 2 or 3, this causes later code, which checks only condition 4 in counting chimeric multimapping alignments or outputting chimeric junctions, to potentially produce alignments that should be discarded based on the parameters.
I have attempted a fix for this in #722, but I'm not sure I fully understand the intended behavior. @brianjohnhaas would you be willing to chime in? Please note that this PR includes the change I suggested in #721, which addresses a memory leak but should not change outputs.
Rerunning with the suggested patch causes the line reported above to no longer appear in
Chimeric.out.junction
. Most of the outputs are identical, a non-trivial number of alignments are now removed, and a small number of additional alignments are output in situations where with consistent filtering, the cap on the number of multimappers is not exceeded.Thanks!
The text was updated successfully, but these errors were encountered: