diff --git a/src/main/java/org/broad/igv/sam/AlignmentBlockImpl.java b/src/main/java/org/broad/igv/sam/AlignmentBlockImpl.java index 865a183ca..cfb5654f5 100644 --- a/src/main/java/org/broad/igv/sam/AlignmentBlockImpl.java +++ b/src/main/java/org/broad/igv/sam/AlignmentBlockImpl.java @@ -52,7 +52,7 @@ public AlignmentBlockImpl(int start, byte[] bases, byte[] qualities, int offset, this.start = start; this.offset = offset; - this.bases = new ByteSubarray(bases, offset, nBases, (byte) '?'); + this.bases = bases.length == 0 ? EMPTY_ARRAY :new ByteSubarray(bases, offset, nBases, (byte) '?'); this.basesLength = nBases; // qualities are optional in a SAMRecord, we might get null or an array of zero diff --git a/src/main/java/org/broad/igv/sam/ReadStats.java b/src/main/java/org/broad/igv/sam/ReadStats.java index 14bd05172..0a18b1595 100644 --- a/src/main/java/org/broad/igv/sam/ReadStats.java +++ b/src/main/java/org/broad/igv/sam/ReadStats.java @@ -60,7 +60,7 @@ public class ReadStats { public void addAlignment(Alignment alignment) { - if(readCount > MAX_READ_COUNT) return; + if (readCount > MAX_READ_COUNT) return; if (alignment.isMapped()) { @@ -135,10 +135,10 @@ private double[] downsample(DoubleArrayList list, int size) { public AlignmentTrack.ExperimentType inferType() { compute(); if (readCount < 20) return AlignmentTrack.ExperimentType.UNKOWN; // Not enough reads - if ((readLengthStdDev > 100 || medianReadLength > 1000) && averageCigarLength > 10) { // Cigar length to filter consensus reads - return AlignmentTrack.ExperimentType.THIRD_GEN; - } else if (medianRefToReadRatio > 5 || fracReadsWithNs > 0.01) { + if (medianRefToReadRatio > 5 || fracReadsWithNs > 0.01) { return AlignmentTrack.ExperimentType.RNA; + } else if ((readLengthStdDev > 100 || medianReadLength > 1000) && averageCigarLength > 10) { // Cigar length to filter consensus reads + return AlignmentTrack.ExperimentType.THIRD_GEN; } else { return AlignmentTrack.ExperimentType.OTHER; }