Merge branch 'master' into ped
This commit is contained in:
commit
1765fbeb6b
|
|
@ -415,10 +415,6 @@ public class PairHMMIndelErrorModel {
|
||||||
if (read == null)
|
if (read == null)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if ( isReduced ) {
|
|
||||||
read = ReadUtils.reducedReadWithReducedQuals(read);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(ReadUtils.is454Read(read)) {
|
if(ReadUtils.is454Read(read)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -87,11 +87,11 @@ public class PileupElement {
|
||||||
|
|
||||||
public int getReducedCount() {
|
public int getReducedCount() {
|
||||||
if ( ! isReducedRead() ) throw new IllegalArgumentException("Cannot get reduced count for non-reduced read " + getRead().getReadName());
|
if ( ! isReducedRead() ) throw new IllegalArgumentException("Cannot get reduced count for non-reduced read " + getRead().getReadName());
|
||||||
return (int)getQual();
|
return ReadUtils.getReducedCount(getRead(), offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
public byte getReducedQual() {
|
public byte getReducedQual() {
|
||||||
return (byte)(int)ReadUtils.getReducedReadQualityTagValue(getRead());
|
if ( ! isReducedRead() ) throw new IllegalArgumentException("Cannot get reduced qual for non-reduced read " + getRead().getReadName());
|
||||||
|
return ReadUtils.getReducedQual(getRead(), offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -54,26 +54,35 @@ public class ReadUtils {
|
||||||
public static final String REDUCED_READ_QUALITY_TAG = "RQ";
|
public static final String REDUCED_READ_QUALITY_TAG = "RQ";
|
||||||
public static final String REDUCED_READ_CONSENSUS_COUNTS_TAG = "CC";
|
public static final String REDUCED_READ_CONSENSUS_COUNTS_TAG = "CC";
|
||||||
|
|
||||||
public final static Integer getReducedReadQualityTagValue(final SAMRecord read) {
|
public final static byte[] getReducedReadQualityTagValue(final SAMRecord read) {
|
||||||
return read.getIntegerAttribute(ReadUtils.REDUCED_READ_QUALITY_TAG);
|
return read.getByteArrayAttribute(ReadUtils.REDUCED_READ_QUALITY_TAG);
|
||||||
}
|
}
|
||||||
|
|
||||||
public final static boolean isReducedRead(final SAMRecord read) {
|
public final static boolean isReducedRead(final SAMRecord read) {
|
||||||
return getReducedReadQualityTagValue(read) != null;
|
return getReducedReadQualityTagValue(read) != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public final static byte getReducedQual(final SAMRecord read, final int i) {
|
||||||
|
return read.getBaseQualities()[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
public final static byte getReducedCount(final SAMRecord read, final int i) {
|
||||||
|
return getReducedReadQualityTagValue(read)[i];
|
||||||
|
}
|
||||||
|
|
||||||
public final static SAMRecord reducedReadWithReducedQuals(final SAMRecord read) {
|
public final static SAMRecord reducedReadWithReducedQuals(final SAMRecord read) {
|
||||||
if ( ! isReducedRead(read) ) throw new IllegalArgumentException("read must be a reduced read");
|
if ( ! isReducedRead(read) ) throw new IllegalArgumentException("read must be a reduced read");
|
||||||
try {
|
return read;
|
||||||
SAMRecord newRead = (SAMRecord)read.clone();
|
// try {
|
||||||
byte reducedQual = (byte)(int)getReducedReadQualityTagValue(read);
|
// SAMRecord newRead = (SAMRecord)read.clone();
|
||||||
byte[] newQuals = new byte[read.getBaseQualities().length];
|
// byte reducedQual = (byte)(int)getReducedReadQualityTagValue(read);
|
||||||
Arrays.fill(newQuals, reducedQual);
|
// byte[] newQuals = new byte[read.getBaseQualities().length];
|
||||||
newRead.setBaseQualities(newQuals);
|
// Arrays.fill(newQuals, reducedQual);
|
||||||
return newRead;
|
// newRead.setBaseQualities(newQuals);
|
||||||
} catch ( CloneNotSupportedException e ) {
|
// return newRead;
|
||||||
throw new ReviewedStingException("SAMRecord no longer supports clone", e);
|
// } catch ( CloneNotSupportedException e ) {
|
||||||
}
|
// throw new ReviewedStingException("SAMRecord no longer supports clone", e);
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ public class ReadUtilsUnitTest extends BaseTest {
|
||||||
SAMRecord read, reducedRead;
|
SAMRecord read, reducedRead;
|
||||||
final static String BASES = "ACTG";
|
final static String BASES = "ACTG";
|
||||||
final static String QUALS = "!+5?";
|
final static String QUALS = "!+5?";
|
||||||
final private static int REDUCED_READ_QUAL = 20;
|
final private static byte[] REDUCED_READ_COUNTS = new byte[]{10, 20, 30, 40};
|
||||||
|
|
||||||
@BeforeTest
|
@BeforeTest
|
||||||
public void init() {
|
public void init() {
|
||||||
|
|
@ -29,7 +29,7 @@ public class ReadUtilsUnitTest extends BaseTest {
|
||||||
reducedRead = ArtificialSAMUtils.createArtificialRead(header, "reducedRead", 0, 1, BASES.length());
|
reducedRead = ArtificialSAMUtils.createArtificialRead(header, "reducedRead", 0, 1, BASES.length());
|
||||||
reducedRead.setReadBases(BASES.getBytes());
|
reducedRead.setReadBases(BASES.getBytes());
|
||||||
reducedRead.setBaseQualityString(QUALS);
|
reducedRead.setBaseQualityString(QUALS);
|
||||||
reducedRead.setAttribute(ReadUtils.REDUCED_READ_QUALITY_TAG, REDUCED_READ_QUAL);
|
reducedRead.setAttribute(ReadUtils.REDUCED_READ_QUALITY_TAG, REDUCED_READ_COUNTS);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void testReadBasesAndQuals(SAMRecord read, int expectedStart, int expectedStop) {
|
private void testReadBasesAndQuals(SAMRecord read, int expectedStart, int expectedStop) {
|
||||||
|
|
@ -52,21 +52,10 @@ public class ReadUtilsUnitTest extends BaseTest {
|
||||||
Assert.assertEquals(ReadUtils.getReducedReadQualityTagValue(read), null, "No reduced read tag in normal read");
|
Assert.assertEquals(ReadUtils.getReducedReadQualityTagValue(read), null, "No reduced read tag in normal read");
|
||||||
|
|
||||||
Assert.assertTrue(ReadUtils.isReducedRead(reducedRead), "isReducedRead is true for reduced read");
|
Assert.assertTrue(ReadUtils.isReducedRead(reducedRead), "isReducedRead is true for reduced read");
|
||||||
Assert.assertEquals((int) ReadUtils.getReducedReadQualityTagValue(reducedRead), REDUCED_READ_QUAL, "Reduced read tag is set to expected value");
|
for ( int i = 0; i < reducedRead.getReadLength(); i++) {
|
||||||
|
Assert.assertEquals(ReadUtils.getReducedQual(reducedRead, i), read.getBaseQualities()[i], "Reduced read quality not set to the expected value at " + i);
|
||||||
|
Assert.assertEquals(ReadUtils.getReducedCount(reducedRead, i), REDUCED_READ_COUNTS[i], "Reduced read count not set to the expected value at " + i);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testreducedReadWithReducedQualsWithReducedRead() {
|
|
||||||
SAMRecord replacedRead = ReadUtils.reducedReadWithReducedQuals(reducedRead);
|
|
||||||
Assert.assertEquals(replacedRead.getReadBases(), reducedRead.getReadBases());
|
|
||||||
Assert.assertEquals(replacedRead.getBaseQualities().length, reducedRead.getBaseQualities().length);
|
|
||||||
for ( int i = 0; i < replacedRead.getBaseQualities().length; i++)
|
|
||||||
Assert.assertEquals(replacedRead.getBaseQualities()[i], REDUCED_READ_QUAL);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test(expectedExceptions = IllegalArgumentException.class)
|
|
||||||
public void testreducedReadWithReducedQualsWithNormalRead() {
|
|
||||||
ReadUtils.reducedReadWithReducedQuals(read);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -77,8 +66,7 @@ public class ReadUtilsUnitTest extends BaseTest {
|
||||||
Assert.assertFalse(readp.isReducedRead());
|
Assert.assertFalse(readp.isReducedRead());
|
||||||
|
|
||||||
Assert.assertTrue(reducedreadp.isReducedRead());
|
Assert.assertTrue(reducedreadp.isReducedRead());
|
||||||
Assert.assertEquals(reducedreadp.getReducedCount(), 0);
|
Assert.assertEquals(reducedreadp.getReducedCount(), REDUCED_READ_COUNTS[0]);
|
||||||
Assert.assertEquals(reducedreadp.getReducedQual(), REDUCED_READ_QUAL);
|
Assert.assertEquals(reducedreadp.getReducedQual(), readp.getQual());
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue