Merged bug fix from Stable into Unstable
This commit is contained in:
commit
180c8f286f
|
|
@ -248,6 +248,9 @@ public class IndelRealigner extends ReadWalker<Integer, Integer> {
|
||||||
@Argument(fullName="nWayOut", shortName="nWayOut", required=false, doc="Generate one output file for each input (-I) bam file")
|
@Argument(fullName="nWayOut", shortName="nWayOut", required=false, doc="Generate one output file for each input (-I) bam file")
|
||||||
protected String N_WAY_OUT = null;
|
protected String N_WAY_OUT = null;
|
||||||
|
|
||||||
|
@Hidden
|
||||||
|
@Argument(fullName="generate_nWayOut_md5s",doc="Generate md5sums for BAMs")
|
||||||
|
protected boolean generateMD5s = false;
|
||||||
|
|
||||||
// DEBUGGING OPTIONS FOLLOW
|
// DEBUGGING OPTIONS FOLLOW
|
||||||
|
|
||||||
|
|
@ -401,9 +404,9 @@ public class IndelRealigner extends ReadWalker<Integer, Integer> {
|
||||||
// if ( args.containsKey("disable_bam_indexing") ) { System.out.println("NO INDEXING!!"); System.exit(1); createIndex = false; }
|
// if ( args.containsKey("disable_bam_indexing") ) { System.out.println("NO INDEXING!!"); System.exit(1); createIndex = false; }
|
||||||
|
|
||||||
if ( N_WAY_OUT.toUpperCase().endsWith(".MAP") ) {
|
if ( N_WAY_OUT.toUpperCase().endsWith(".MAP") ) {
|
||||||
writerToUse = new NWaySAMFileWriter(getToolkit(),loadFileNameMap(N_WAY_OUT),SAMFileHeader.SortOrder.coordinate,true, createIndex);
|
writerToUse = new NWaySAMFileWriter(getToolkit(),loadFileNameMap(N_WAY_OUT),SAMFileHeader.SortOrder.coordinate,true, createIndex, generateMD5s);
|
||||||
} else {
|
} else {
|
||||||
writerToUse = new NWaySAMFileWriter(getToolkit(),N_WAY_OUT,SAMFileHeader.SortOrder.coordinate,true, createIndex);
|
writerToUse = new NWaySAMFileWriter(getToolkit(),N_WAY_OUT,SAMFileHeader.SortOrder.coordinate,true, createIndex, generateMD5s);
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -51,18 +51,18 @@ public class NWaySAMFileWriter implements SAMFileWriter {
|
||||||
private boolean presorted ;
|
private boolean presorted ;
|
||||||
GenomeAnalysisEngine toolkit;
|
GenomeAnalysisEngine toolkit;
|
||||||
|
|
||||||
public NWaySAMFileWriter(GenomeAnalysisEngine toolkit, Map<String,String> in2out, SAMFileHeader.SortOrder order, boolean presorted, boolean indexOnTheFly) {
|
public NWaySAMFileWriter(GenomeAnalysisEngine toolkit, Map<String,String> in2out, SAMFileHeader.SortOrder order, boolean presorted, boolean indexOnTheFly, boolean generateMD5) {
|
||||||
this.presorted = presorted;
|
this.presorted = presorted;
|
||||||
this.toolkit = toolkit;
|
this.toolkit = toolkit;
|
||||||
writerMap = new HashMap<SAMReaderID,SAMFileWriter>();
|
writerMap = new HashMap<SAMReaderID,SAMFileWriter>();
|
||||||
setupByReader(toolkit,in2out,order, presorted, indexOnTheFly);
|
setupByReader(toolkit,in2out,order, presorted, indexOnTheFly, generateMD5);
|
||||||
}
|
}
|
||||||
|
|
||||||
public NWaySAMFileWriter(GenomeAnalysisEngine toolkit, String ext, SAMFileHeader.SortOrder order, boolean presorted, boolean indexOnTheFly ) {
|
public NWaySAMFileWriter(GenomeAnalysisEngine toolkit, String ext, SAMFileHeader.SortOrder order, boolean presorted, boolean indexOnTheFly , boolean generateMD5) {
|
||||||
this.presorted = presorted;
|
this.presorted = presorted;
|
||||||
this.toolkit = toolkit;
|
this.toolkit = toolkit;
|
||||||
writerMap = new HashMap<SAMReaderID,SAMFileWriter>();
|
writerMap = new HashMap<SAMReaderID,SAMFileWriter>();
|
||||||
setupByReader(toolkit,ext,order, presorted, indexOnTheFly);
|
setupByReader(toolkit,ext,order, presorted, indexOnTheFly, generateMD5);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -73,8 +73,7 @@ public class NWaySAMFileWriter implements SAMFileWriter {
|
||||||
* @param toolkit
|
* @param toolkit
|
||||||
* @param in2out
|
* @param in2out
|
||||||
*/
|
*/
|
||||||
public void setupByReader(GenomeAnalysisEngine toolkit, Map<String,String> in2out, SAMFileHeader.SortOrder order, boolean presorted, boolean indexOnTheFly) {
|
public void setupByReader(GenomeAnalysisEngine toolkit, Map<String,String> in2out, SAMFileHeader.SortOrder order, boolean presorted, boolean indexOnTheFly, boolean generateMD5) {
|
||||||
|
|
||||||
if ( in2out==null ) throw new StingException("input-output bam filename map for n-way-out writing is NULL");
|
if ( in2out==null ) throw new StingException("input-output bam filename map for n-way-out writing is NULL");
|
||||||
for ( SAMReaderID rid : toolkit.getReadsDataSource().getReaderIDs() ) {
|
for ( SAMReaderID rid : toolkit.getReadsDataSource().getReaderIDs() ) {
|
||||||
|
|
||||||
|
|
@ -88,7 +87,7 @@ public class NWaySAMFileWriter implements SAMFileWriter {
|
||||||
if ( writerMap.containsKey( rid ) )
|
if ( writerMap.containsKey( rid ) )
|
||||||
throw new StingException("nWayOut mode: Reader id for input sam file "+fName+" is already registered");
|
throw new StingException("nWayOut mode: Reader id for input sam file "+fName+" is already registered");
|
||||||
|
|
||||||
addWriter(rid,outName, order, presorted, indexOnTheFly);
|
addWriter(rid,outName, order, presorted, indexOnTheFly, generateMD5);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -101,7 +100,7 @@ public class NWaySAMFileWriter implements SAMFileWriter {
|
||||||
* @param toolkit
|
* @param toolkit
|
||||||
* @param ext
|
* @param ext
|
||||||
*/
|
*/
|
||||||
public void setupByReader(GenomeAnalysisEngine toolkit, String ext, SAMFileHeader.SortOrder order, boolean presorted, boolean indexOnTheFly) {
|
public void setupByReader(GenomeAnalysisEngine toolkit, String ext, SAMFileHeader.SortOrder order, boolean presorted, boolean indexOnTheFly, boolean generateMD5) {
|
||||||
for ( SAMReaderID rid : toolkit.getReadsDataSource().getReaderIDs() ) {
|
for ( SAMReaderID rid : toolkit.getReadsDataSource().getReaderIDs() ) {
|
||||||
|
|
||||||
String fName = toolkit.getReadsDataSource().getSAMFile(rid).getName();
|
String fName = toolkit.getReadsDataSource().getSAMFile(rid).getName();
|
||||||
|
|
@ -119,16 +118,19 @@ public class NWaySAMFileWriter implements SAMFileWriter {
|
||||||
if ( writerMap.containsKey( rid ) )
|
if ( writerMap.containsKey( rid ) )
|
||||||
throw new StingException("nWayOut mode: Reader id for input sam file "+fName+" is already registered");
|
throw new StingException("nWayOut mode: Reader id for input sam file "+fName+" is already registered");
|
||||||
|
|
||||||
addWriter(rid,outName, order, presorted, indexOnTheFly);
|
addWriter(rid,outName, order, presorted, indexOnTheFly, generateMD5);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addWriter(SAMReaderID id , String outName, SAMFileHeader.SortOrder order, boolean presorted, boolean indexOnTheFly) {
|
private void addWriter(SAMReaderID id , String outName, SAMFileHeader.SortOrder order, boolean presorted, boolean indexOnTheFly, boolean generateMD5) {
|
||||||
File f = new File(outName);
|
File f = new File(outName);
|
||||||
SAMFileHeader header = toolkit.getSAMFileHeader(id).clone();
|
SAMFileHeader header = toolkit.getSAMFileHeader(id).clone();
|
||||||
header.setSortOrder(order);
|
header.setSortOrder(order);
|
||||||
SAMFileWriter sw = new SAMFileWriterFactory().setCreateIndex(indexOnTheFly).makeSAMOrBAMWriter(header, presorted, f);
|
SAMFileWriterFactory factory = new SAMFileWriterFactory();
|
||||||
|
factory.setCreateIndex(indexOnTheFly);
|
||||||
|
factory.setCreateMd5File(generateMD5);
|
||||||
|
SAMFileWriter sw = factory.makeSAMOrBAMWriter(header, presorted, f);
|
||||||
writerMap.put(id,sw);
|
writerMap.put(id,sw);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue