--simplifyBAM is now in the SAMFileWriterArgumentTypeDescriptor, as suggested by map. PrintReads has an integrationtest now that writes out a 1 MB bit of HiSeq normally, with compress 0, and with simplifyBAM on.
git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@5521 348d0f76-0448-11de-a6fe-93d51630548a
This commit is contained in:
parent
28ae53d796
commit
3bcd4c5d75
|
|
@ -118,10 +118,6 @@ public class GATKArgumentCollection {
|
||||||
@Input(fullName = "DBSNP", shortName = "D", doc = "DBSNP file", required = false)
|
@Input(fullName = "DBSNP", shortName = "D", doc = "DBSNP file", required = false)
|
||||||
public String DBSNPFile = null;
|
public String DBSNPFile = null;
|
||||||
|
|
||||||
@Element(required = false)
|
|
||||||
@Argument(fullName = "simplifyBAM", shortName = "simplifyBAM", doc = "If provided, output BAM files will be simplified to include just key reads for downstream variation discovery analyses (removing duplicates, PF-, non-primary reads), as well stripping all extended tags from the kept reads except the read group identifier", required = false)
|
|
||||||
public boolean simplifyBAM = false;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The override mechanism in the GATK, by default, populates the command-line arguments, then
|
* The override mechanism in the GATK, by default, populates the command-line arguments, then
|
||||||
* the defaults from the walker annotations. Unfortunately, walker annotations should be trumped
|
* the defaults from the walker annotations. Unfortunately, walker annotations should be trumped
|
||||||
|
|
@ -439,9 +435,6 @@ public class GATKArgumentCollection {
|
||||||
if (enableLowMemorySharding != other.enableLowMemorySharding)
|
if (enableLowMemorySharding != other.enableLowMemorySharding)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if ( simplifyBAM != other.simplifyBAM )
|
|
||||||
return false;
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -48,6 +48,9 @@ public class SAMFileWriterArgumentTypeDescriptor extends ArgumentTypeDescriptor
|
||||||
public static final String COMPRESSION_FULLNAME = "bam_compression";
|
public static final String COMPRESSION_FULLNAME = "bam_compression";
|
||||||
public static final String COMPRESSION_SHORTNAME = "compress";
|
public static final String COMPRESSION_SHORTNAME = "compress";
|
||||||
|
|
||||||
|
public static final String SIMPLIFY_BAM_FULLNAME = "simplifyBAM";
|
||||||
|
public static final String SIMPLIFY_BAM_SHORTNAME = SIMPLIFY_BAM_FULLNAME;
|
||||||
|
|
||||||
public static final String CREATE_INDEX_FULLNAME = "index_output_bam_on_the_fly";
|
public static final String CREATE_INDEX_FULLNAME = "index_output_bam_on_the_fly";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -79,7 +82,8 @@ public class SAMFileWriterArgumentTypeDescriptor extends ArgumentTypeDescriptor
|
||||||
public List<ArgumentDefinition> createArgumentDefinitions( ArgumentSource source ) {
|
public List<ArgumentDefinition> createArgumentDefinitions( ArgumentSource source ) {
|
||||||
return Arrays.asList( createBAMArgumentDefinition(source),
|
return Arrays.asList( createBAMArgumentDefinition(source),
|
||||||
createBAMCompressionArgumentDefinition(source),
|
createBAMCompressionArgumentDefinition(source),
|
||||||
createWriteIndexArgumentDefinition(source));
|
createWriteIndexArgumentDefinition(source),
|
||||||
|
createSimplifyBAMArgumentDefinition(source));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -114,6 +118,7 @@ public class SAMFileWriterArgumentTypeDescriptor extends ArgumentTypeDescriptor
|
||||||
stub.setCompressionLevel(compressionLevel);
|
stub.setCompressionLevel(compressionLevel);
|
||||||
|
|
||||||
stub.setIndexOnTheFly(argumentIsPresent(createWriteIndexArgumentDefinition(source),matches));
|
stub.setIndexOnTheFly(argumentIsPresent(createWriteIndexArgumentDefinition(source),matches));
|
||||||
|
stub.setSimplifyBAM(argumentIsPresent(createSimplifyBAMArgumentDefinition(source),matches));
|
||||||
|
|
||||||
// WARNING: Side effects required by engine!
|
// WARNING: Side effects required by engine!
|
||||||
parsingEngine.addTags(stub,getArgumentTags(matches));
|
parsingEngine.addTags(stub,getArgumentTags(matches));
|
||||||
|
|
@ -181,4 +186,20 @@ public class SAMFileWriterArgumentTypeDescriptor extends ArgumentTypeDescriptor
|
||||||
null,
|
null,
|
||||||
null );
|
null );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private ArgumentDefinition createSimplifyBAMArgumentDefinition(ArgumentSource source) {
|
||||||
|
return new ArgumentDefinition( ArgumentIOType.ARGUMENT,
|
||||||
|
boolean.class,
|
||||||
|
SIMPLIFY_BAM_FULLNAME,
|
||||||
|
SIMPLIFY_BAM_SHORTNAME,
|
||||||
|
"If provided, output BAM files will be simplified to include just key reads for downstream variation discovery analyses (removing duplicates, PF-, non-primary reads), as well stripping all extended tags from the kept reads except the read group identifier",
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
source.isHidden(),
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -107,6 +107,11 @@ public class SAMFileWriterStub implements Stub<SAMFileWriter>, StingSAMFileWrite
|
||||||
*/
|
*/
|
||||||
BAQ baqHMM = new BAQ();
|
BAQ baqHMM = new BAQ();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Should we simplify the BAM file while writing it out?
|
||||||
|
*/
|
||||||
|
private boolean simplifyBAM = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new stub given the requested SAM file and compression level.
|
* Create a new stub given the requested SAM file and compression level.
|
||||||
* @param engine source of header data, maybe other data about input files.
|
* @param engine source of header data, maybe other data about input files.
|
||||||
|
|
@ -138,7 +143,11 @@ public class SAMFileWriterStub implements Stub<SAMFileWriter>, StingSAMFileWrite
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean simplifyBAM() {
|
public boolean simplifyBAM() {
|
||||||
return engine.getArguments().simplifyBAM;
|
return simplifyBAM;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSimplifyBAM(boolean v) {
|
||||||
|
simplifyBAM = v;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OutputStream getSAMOutputStream() {
|
public OutputStream getSAMOutputStream() {
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,42 @@
|
||||||
|
package org.broadinstitute.sting.gatk.walkers;
|
||||||
|
|
||||||
|
import org.broadinstitute.sting.WalkerTest;
|
||||||
|
import org.testng.annotations.DataProvider;
|
||||||
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
public class PrintReadsIntegrationTest extends WalkerTest {
|
||||||
|
private static class PRTest {
|
||||||
|
final static String REF = hg18Reference;
|
||||||
|
final static String BAM = validationDataLocation + "HiSeq.1mb.bam";
|
||||||
|
String args;
|
||||||
|
String md5;
|
||||||
|
|
||||||
|
private PRTest(String args, String md5) {
|
||||||
|
this.args = args;
|
||||||
|
this.md5 = md5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@DataProvider(name = "PRTest")
|
||||||
|
public Object[][] createData1() {
|
||||||
|
return new Object[][]{
|
||||||
|
{new PRTest("", "dc8e5451dd29757c336013146010f73a")},
|
||||||
|
{new PRTest(" -compress 0", "fde82269c78c9e91e57286433531b4af")},
|
||||||
|
{new PRTest(" -simplifyBAM", "0531717b32a7e21c0de70b1526b0751f")} };
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(dataProvider = "PRTest")
|
||||||
|
public void testPrintReads(PRTest params) {
|
||||||
|
WalkerTestSpec spec = new WalkerTestSpec(
|
||||||
|
"-T PrintReads -R " + params.REF +
|
||||||
|
" -I " + params.BAM +
|
||||||
|
params.args +
|
||||||
|
" -o %s",
|
||||||
|
Arrays.asList(params.md5));
|
||||||
|
executeTest("testVariantRecalibrator-"+params.args, spec).getFirst();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Loading…
Reference in New Issue