Merge branch 'master' of ssh://nickel.broadinstitute.org/humgen/gsa-scr1/gsa-engineering/git/unstable
This commit is contained in:
commit
61a3dfae24
|
|
@ -235,6 +235,12 @@ public class SAMDataSource {
|
|||
for(SAMFileReader reader: readers.values()) {
|
||||
// Get the sort order, forcing it to coordinate if unsorted.
|
||||
SAMFileHeader header = reader.getFileHeader();
|
||||
|
||||
if ( header.getReadGroups().isEmpty() ) {
|
||||
throw new UserException.MalformedBAM(readers.getReaderID(reader).samFile,
|
||||
"SAM file doesn't have any read groups defined in the header. The GATK no longer supports SAM files without read groups");
|
||||
}
|
||||
|
||||
SAMFileHeader.SortOrder sortOrder = header.getSortOrder() != SAMFileHeader.SortOrder.unsorted ? header.getSortOrder() : SAMFileHeader.SortOrder.coordinate;
|
||||
|
||||
// Validate that all input files are sorted in the same order.
|
||||
|
|
|
|||
|
|
@ -283,10 +283,7 @@ public class LocusIteratorByState extends LocusIterator {
|
|||
// currently the GATK expects this LocusIteratorByState to accept empty sample lists, when
|
||||
// there's no read data. So we need to throw this error only when samIterator.hasNext() is true
|
||||
if ( this.samples.isEmpty() && samIterator.hasNext() ) {
|
||||
// actually we cannot process BAMs without read groups unless we tolerate empty
|
||||
// sample lists. In the empty case we need to add the null element to the samples
|
||||
this.samples.add(null);
|
||||
//throw new IllegalArgumentException("samples list must not be empty");
|
||||
throw new IllegalArgumentException("samples list must not be empty");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -160,7 +160,15 @@ public class UserException extends ReviewedStingException {
|
|||
|
||||
public static class MalformedBAM extends UserException {
|
||||
public MalformedBAM(SAMRecord read, String message) {
|
||||
super(String.format("SAM/BAM file %s is malformed: %s", read.getFileSource() != null ? read.getFileSource().getReader() : "(none)", message));
|
||||
this(read.getFileSource() != null ? read.getFileSource().getReader().toString() : "(none)", message);
|
||||
}
|
||||
|
||||
public MalformedBAM(File file, String message) {
|
||||
this(file.toString(), message);
|
||||
}
|
||||
|
||||
public MalformedBAM(String source, String message) {
|
||||
super(String.format("SAM/BAM file %s is malformed: %s", source, message));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ public class ClipReadsWalkersIntegrationTest extends WalkerTest {
|
|||
WalkerTestSpec spec = new WalkerTestSpec(
|
||||
"-R " + hg18Reference +
|
||||
" -T ClipReads " +
|
||||
"-I " + validationDataLocation + "clippingReadsTest.bam " +
|
||||
"-I " + validationDataLocation + "clippingReadsTest.withRG.bam " +
|
||||
"-os %s " +
|
||||
"-o %s " + args,
|
||||
2, // just one output file
|
||||
|
|
@ -46,23 +46,22 @@ public class ClipReadsWalkersIntegrationTest extends WalkerTest {
|
|||
}
|
||||
|
||||
final static String Q10ClipOutput = "b29c5bc1cb9006ed9306d826a11d444f";
|
||||
@Test public void testQClip0() { testClipper("clipQSum0", "-QT 0", "117a4760b54308f81789c39b1c9de578", "4deca83d80dfa3f093e0dc27d27d1352"); }
|
||||
@Test public void testQClip2() { testClipper("clipQSum2", "-QT 2", Q10ClipOutput, "1e123233ebd2f35ac3f41b1b7d2c8199"); }
|
||||
@Test public void testQClip10() { testClipper("clipQSum10", "-QT 10", "b29c5bc1cb9006ed9306d826a11d444f", "1e123233ebd2f35ac3f41b1b7d2c8199"); }
|
||||
@Test public void testQClip20() { testClipper("clipQSum20", "-QT 20", "6c3434dce66ae5c9eeea502f10fb9bee", "b950538d2d8fac1bcee11850c452bd6a"); }
|
||||
@Test public void testQClip30() { testClipper("clipQSum30", "-QT 20", "6c3434dce66ae5c9eeea502f10fb9bee", "b950538d2d8fac1bcee11850c452bd6a"); }
|
||||
@Test public void testQClip0() { testClipper("clipQSum0", "-QT 0", "117a4760b54308f81789c39b1c9de578", "33e781084379aae538954e30919e8fd3"); }
|
||||
@Test public void testQClip2() { testClipper("clipQSum2", "-QT 2", Q10ClipOutput, "57c05b6241db7110148a91fde2d431d0"); }
|
||||
@Test public void testQClip10() { testClipper("clipQSum10", "-QT 10", "b29c5bc1cb9006ed9306d826a11d444f", "57c05b6241db7110148a91fde2d431d0"); }
|
||||
@Test public void testQClip20() { testClipper("clipQSum20", "-QT 20", "6c3434dce66ae5c9eeea502f10fb9bee", "67263a39d5127f2660a5b638ff32056a"); }
|
||||
|
||||
@Test public void testClipRange1() { testClipper("clipRange1", "-CT 1-5", "b5acd753226e25b1e088838c1aab9117", "9f70540b795f227668dcf78edcb35c09"); }
|
||||
@Test public void testClipRange2() { testClipper("clipRange2", "-CT 1-5,11-15", "be4fcad5b666a5540028b774169cbad7", "a22347a741640fc6df92700e0e8d6f61"); }
|
||||
@Test public void testClipRange1() { testClipper("clipRange1", "-CT 1-5", "b5acd753226e25b1e088838c1aab9117", "764846d0592f346a33525af674fd7a10"); }
|
||||
@Test public void testClipRange2() { testClipper("clipRange2", "-CT 1-5,11-15", "be4fcad5b666a5540028b774169cbad7", "3061cf742f9e5526a61130128ae761a3"); }
|
||||
|
||||
@Test public void testClipSeq() { testClipper("clipSeqX", "-X CCCCC", "db199bd06561c9f2122f6ffb07941fbc", "f49e9e61a44115e2be59330259966f53"); }
|
||||
@Test public void testClipSeqFile() { testClipper("clipSeqXF", "-XF " + validationDataLocation + "seqsToClip.fasta", "d011a3152b31822475afbe0281491f8d", "5c977f261442ab6122d5198fa4086e67"); }
|
||||
@Test public void testClipSeq() { testClipper("clipSeqX", "-X CCCCC", "db199bd06561c9f2122f6ffb07941fbc", "b89459f373e40f0b835c1faff2208839"); }
|
||||
@Test public void testClipSeqFile() { testClipper("clipSeqXF", "-XF " + validationDataLocation + "seqsToClip.fasta", "d011a3152b31822475afbe0281491f8d", "24e19116ef16a37a6d095ed5c22c2466"); }
|
||||
|
||||
@Test public void testClipMulti() { testClipper("clipSeqMulti", "-QT 10 -CT 1-5 -XF " + validationDataLocation + "seqsToClip.fasta -X CCCCC", "a23187bd9bfb06557f799706d98441de", "38d5f33d198aeee7eebec9feb7b11199"); }
|
||||
@Test public void testClipMulti() { testClipper("clipSeqMulti", "-QT 10 -CT 1-5 -XF " + validationDataLocation + "seqsToClip.fasta -X CCCCC", "a23187bd9bfb06557f799706d98441de", "ad8d30300cb43d5e300fcc4d2450da8e"); }
|
||||
|
||||
@Test public void testClipNs() { testClipper("testClipNs", "-QT 10 -CR WRITE_NS", Q10ClipOutput, "1e123233ebd2f35ac3f41b1b7d2c8199"); }
|
||||
@Test public void testClipQ0s() { testClipper("testClipQs", "-QT 10 -CR WRITE_Q0S", Q10ClipOutput, "d44cab2e3b70f5492a0f5b59f0b80043"); }
|
||||
@Test public void testClipSoft() { testClipper("testClipSoft", "-QT 10 -CR SOFTCLIP_BASES", Q10ClipOutput, "b86374a7e6f59e3dd35781e9e8006702"); }
|
||||
@Test public void testClipNs() { testClipper("testClipNs", "-QT 10 -CR WRITE_NS", Q10ClipOutput, "57c05b6241db7110148a91fde2d431d0"); }
|
||||
@Test public void testClipQ0s() { testClipper("testClipQs", "-QT 10 -CR WRITE_Q0S", Q10ClipOutput, "2a1a3153e0942ab355fd8a6e082b30e0"); }
|
||||
@Test public void testClipSoft() { testClipper("testClipSoft", "-QT 10 -CR SOFTCLIP_BASES", Q10ClipOutput, "50d43d63d8e39f67a87a6359963c6f52"); }
|
||||
|
||||
@Test
|
||||
public void testUseOriginalQuals() {
|
||||
|
|
|
|||
|
|
@ -36,8 +36,8 @@ class ExampleCountLociPipelineTest {
|
|||
spec.name = "countloci"
|
||||
spec.args = Array(
|
||||
" -S public/scala/qscript/org/broadinstitute/sting/queue/qscripts/examples/ExampleCountLoci.scala",
|
||||
" -R " + BaseTest.hg18Reference,
|
||||
" -I " + BaseTest.validationDataLocation + "small_bam_for_countloci.bam",
|
||||
" -R " + BaseTest.testDir + "exampleFASTA.fasta",
|
||||
" -I " + BaseTest.testDir + "exampleBAM.bam",
|
||||
" -o " + testOut).mkString
|
||||
spec.fileMD5s += testOut -> "67823e4722495eb10a5e4c42c267b3a6"
|
||||
PipelineTest.executeTest(spec)
|
||||
|
|
|
|||
Loading…
Reference in New Issue