Merge pull request #1310 from broadinstitute/rhl_doc_sample_gene_summary_header

Fix sample_gene_summary reports header order
This commit is contained in:
Geraldine Van der Auwera 2016-03-09 09:12:36 -05:00
commit 643516b3b2
2 changed files with 48 additions and 21 deletions

View File

@ -433,7 +433,7 @@ public class DepthOfCoverage extends LocusWalker<Map<DoCOutputType.Partition,Map
printGeneStats(statsByInterval);
}
if ( statsByInterval.size() > 0 ) {
if ( !statsByInterval.isEmpty() ) {
for(DoCOutputType.Partition partition: partitionTypes) {
if ( checkType(statsByInterval.get(0).getSecond().getCoverageByAggregationType(partition) ,partition) ) {
printIntervalStats(statsByInterval,
@ -544,27 +544,30 @@ public class DepthOfCoverage extends LocusWalker<Map<DoCOutputType.Partition,Map
summaryHeader.append(separator);
summaryHeader.append("average_coverage");
for ( String s : statsByTarget.get(0).second.getCoverageByAggregationType(DoCOutputType.Partition.sample).getAllSamples() ) {
summaryHeader.append(separator);
summaryHeader.append(s);
summaryHeader.append("_total_cvg");
summaryHeader.append(separator);
summaryHeader.append(s);
summaryHeader.append("_mean_cvg");
summaryHeader.append(separator);
summaryHeader.append(s);
summaryHeader.append("_granular_Q1");
summaryHeader.append(separator);
summaryHeader.append(s);
summaryHeader.append("_granular_median");
summaryHeader.append(separator);
summaryHeader.append(s);
summaryHeader.append("_granular_Q3");
for ( int thresh : coverageThresholds ) {
if ( !statsByGene.isEmpty() ) {
// Only need to get the first item in statsByGene since all have the same samples
for (String s : statsByGene.get(0).second.getAllSamples()) {
summaryHeader.append(separator);
summaryHeader.append(s);
summaryHeader.append("_%_above_");
summaryHeader.append(thresh);
summaryHeader.append("_total_cvg");
summaryHeader.append(separator);
summaryHeader.append(s);
summaryHeader.append("_mean_cvg");
summaryHeader.append(separator);
summaryHeader.append(s);
summaryHeader.append("_granular_Q1");
summaryHeader.append(separator);
summaryHeader.append(s);
summaryHeader.append("_granular_median");
summaryHeader.append(separator);
summaryHeader.append(s);
summaryHeader.append("_granular_Q3");
for (int thresh : coverageThresholds) {
summaryHeader.append(separator);
summaryHeader.append(s);
summaryHeader.append("_%_above_");
summaryHeader.append(thresh);
}
}
}
@ -982,7 +985,7 @@ public class DepthOfCoverage extends LocusWalker<Map<DoCOutputType.Partition,Map
}
public boolean checkType(DepthOfCoverageStats stats, DoCOutputType.Partition type ) {
if ( stats.getHistograms().size() < 1 ) {
if ( stats.getHistograms().isEmpty() ) {
logger.warn("The histogram per partition type "+type.toString()+" was empty\n"+
"Do your read groups have this type? (Check your .bam header).");
return false;

View File

@ -211,4 +211,28 @@ public class DepthOfCoverageIntegrationTest extends WalkerTest {
File file = new File(logFileName);
Assert.assertTrue(FileUtils.readFileToString(file).contains(DepthOfCoverage.incompatibleArgsMsg()));
}
@Test
public void testSampleGeneSummaryHeaderFix(){
final String[] intervals = {privateTestDir+"intervals.list"};
final String[] bams = {privateTestDir+"U145055CM2013D16882_snippet.bam", privateTestDir+"U145055PF2013D20189_snippet.bam", privateTestDir+"ControleMan1_snippet.bam"};
String cmd = buildRootCmd(b37KGReference, new ArrayList<String>(Arrays.asList(bams)), new ArrayList<String>(Arrays.asList(intervals))) +
" -geneList "+privateTestDir+"ENSG00000186092.rod";
WalkerTestSpec spec = new WalkerTestSpec(cmd, 0, new ArrayList<String>());
File baseOutputFile = WalkerTest.createTempFile("depthOfCoverageSampleGeneSummaryHeaderFix", ".tmp");
spec.setOutputFileLocation(baseOutputFile);
spec.addAuxFile("0b698e9d6c28479c378bf64182100e11", baseOutputFile);
spec.addAuxFile("97a782ce07fc487d0945b60f66721048", createTempFileFromBase(baseOutputFile.getAbsolutePath()+".sample_cumulative_coverage_counts"));
spec.addAuxFile("02cd919ef71d8bcfb1c1622b7a683033", createTempFileFromBase(baseOutputFile.getAbsolutePath()+".sample_cumulative_coverage_proportions"));
spec.addAuxFile("799d8ff6a12d3109f985953ce91ab17c", createTempFileFromBase(baseOutputFile.getAbsolutePath()+".sample_gene_summary"));
spec.addAuxFile("c9624eaa0a800da0b457daa752f7ed92", createTempFileFromBase(baseOutputFile.getAbsolutePath()+".sample_interval_statistics"));
spec.addAuxFile("34ac6759bff2d34890a30a44f8887336", createTempFileFromBase(baseOutputFile.getAbsolutePath()+".sample_interval_summary"));
spec.addAuxFile("166b97db63a95c3ceb44d790d98a6fc1", createTempFileFromBase(baseOutputFile.getAbsolutePath()+".sample_statistics"));
spec.addAuxFile("77e03df80132408c6c773cdb1f835e83", createTempFileFromBase(baseOutputFile.getAbsolutePath()+".sample_summary"));
execute("testSampleGeneSummaryHeaderFix", spec);
}
}