Bug fix: 'N' cigar elements now treated properly; for all practical intents and purposes, N is the same as D and should be treated as such, the difference is only in logical interpretation.

git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@1562 348d0f76-0448-11de-a6fe-93d51630548a
This commit is contained in:
asivache 2009-09-09 17:08:35 +00:00
parent bed646e4f6
commit 1060b36288
1 changed files with 6 additions and 5 deletions

View File

@ -135,10 +135,10 @@ public class LocusIteratorByState extends LocusIterator {
cigarElementCounter = curElement.getLength();
readOffset += curElement.getLength();
break;
case N : // reference skip
cigarElementCounter = curElement.getLength();
genomeOffset += curElement.getLength();
break;
case N : // reference skip (looks and gets processed just like a "deletion", just different logical meaning)
// cigarElementCounter = curElement.getLength();
// genomeOffset += curElement.getLength();
// break;
case D : // deletion w.r.t. the reference
genomeOffset++;
done = true;
@ -221,7 +221,8 @@ public class LocusIteratorByState extends LocusIterator {
ArrayList<SAMRecord> reads = new ArrayList<SAMRecord>(readStates.size());
ArrayList<Integer> offsets = new ArrayList<Integer>(readStates.size());
for ( SAMRecordState state : readStates ) {
if ( state.getCurrentCigarOperator() != CigarOperator.D ) {
if ( state.getCurrentCigarOperator() != CigarOperator.D && state.getCurrentCigarOperator() != CigarOperator.N ) {
// System.out.println("Location: "+getLocation()+"; Read "+state.getRead().getReadName()+"; offset="+state.getReadOffset());
reads.add(state.getRead());
offsets.add(state.getReadOffset());
} else if ( readInfo.includeReadsWithDeletionAtLoci() ) {