Merge branch 'master' of ssh://nickel.broadinstitute.org/humgen/gsa-scr1/gsa-engineering/git/unstable
This commit is contained in:
commit
1b1ca80df2
|
|
@ -0,0 +1,56 @@
|
|||
package org.broadinstitute.sting.utils;
|
||||
|
||||
import com.google.java.contract.Ensures;
|
||||
import com.google.java.contract.Requires;
|
||||
|
||||
import java.util.Comparator;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Mauricio Carneiro
|
||||
* @since 9/28/11
|
||||
*/
|
||||
public class GenomeLocComparator implements Comparator<GenomeLoc> {
|
||||
/**
|
||||
* compares genomeLoc's contigs
|
||||
*
|
||||
* @param gl1 the genome loc to compare contigs
|
||||
* @param gl2 the genome loc to compare contigs
|
||||
* @return 0 if equal, -1 if gl2.contig is greater, 1 if gl1.contig is greater
|
||||
*/
|
||||
@Requires("gl2 != null")
|
||||
@Ensures("result == 0 || result == 1 || result == -1")
|
||||
public final int compareContigs( GenomeLoc gl1, GenomeLoc gl2 ) {
|
||||
if (gl1.contigIndex == gl2.contigIndex)
|
||||
return 0;
|
||||
else if (gl1.contigIndex > gl2.contigIndex)
|
||||
return 1;
|
||||
return -1;
|
||||
}
|
||||
|
||||
@Requires("gl2 != null")
|
||||
@Ensures("result == 0 || result == 1 || result == -1")
|
||||
public int compare ( GenomeLoc gl1, GenomeLoc gl2 ) {
|
||||
int result = 0;
|
||||
|
||||
if ( gl1 == gl2 ) {
|
||||
result = 0;
|
||||
}
|
||||
else if(GenomeLoc.isUnmapped(gl1))
|
||||
result = 1;
|
||||
else if(GenomeLoc.isUnmapped(gl2))
|
||||
result = -1;
|
||||
else {
|
||||
final int cmpContig = compareContigs(gl1, gl2);
|
||||
|
||||
if ( cmpContig != 0 ) {
|
||||
result = cmpContig;
|
||||
} else {
|
||||
if ( gl1.getStart() < gl2.getStart() ) result = -1;
|
||||
if ( gl1.getStart() > gl2.getStart() ) result = 1;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
|
@ -93,8 +93,9 @@ public class ReadClipper {
|
|||
public SAMRecord hardClipBothEndsByReferenceCoordinates(int left, int right) {
|
||||
if (left == right)
|
||||
return new SAMRecord(read.getHeader());
|
||||
this.read = hardClipByReferenceCoordinates(right, -1);
|
||||
return hardClipByReferenceCoordinates(-1, left);
|
||||
SAMRecord leftTailRead = hardClipByReferenceCoordinates(right, -1);
|
||||
ReadClipper clipper = new ReadClipper(leftTailRead);
|
||||
return clipper.hardClipByReferenceCoordinatesLeftTail(left);
|
||||
}
|
||||
|
||||
public SAMRecord hardClipLowQualEnds(byte lowQual) {
|
||||
|
|
|
|||
|
|
@ -893,6 +893,10 @@ public class ReadUtils {
|
|||
// base before the deletion (see warning in function contracts)
|
||||
else if (fallsInsideDeletion && !endsWithinCigar)
|
||||
readBases += shift - 1;
|
||||
|
||||
// If we reached our goal inside a deletion then we must backtrack to the last base before the deletion
|
||||
else if (fallsInsideDeletion && endsWithinCigar)
|
||||
readBases--;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue