Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

added a gene_statistics output to DepthOfCoverage #7025

Merged
merged 2 commits into from
Jan 26, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ public CoverageOutputWriter(final DEPTH_OF_COVERAGE_OUTPUT_FORMAT outputFormat,
DoCOutputType intervalSummaryBypartition = new DoCOutputType(partition, DoCOutputType.Aggregation.interval, DoCOutputType.FileType.summary);
outputs.put(intervalSummaryBypartition, getOutputStream(outputBaseName, intervalSummaryBypartition, separator));

// Create an interval summary output sink
// Create an interval statistics output sink
DoCOutputType intervalStatisticsByPartition = new DoCOutputType(partition, DoCOutputType.Aggregation.interval, DoCOutputType.FileType.statistics);
outputs.put(intervalStatisticsByPartition, getOutputStream(outputBaseName, intervalStatisticsByPartition, separator));
}
Expand All @@ -146,6 +146,10 @@ public CoverageOutputWriter(final DEPTH_OF_COVERAGE_OUTPUT_FORMAT outputFormat,
// Create a special output sink for gene data if provided
DoCOutputType geneSummaryOut = new DoCOutputType(DoCOutputType.Partition.sample, DoCOutputType.Aggregation.gene, DoCOutputType.FileType.summary);
outputs.put(geneSummaryOut, getOutputStream(outputBaseName, geneSummaryOut, separator));

// Create an gene statistics output sink
DoCOutputType geneStatisticsByPartition = new DoCOutputType(DoCOutputType.Partition.sample, DoCOutputType.Aggregation.gene, DoCOutputType.FileType.statistics);
outputs.put(geneStatisticsByPartition, getOutputStream(outputBaseName, geneStatisticsByPartition, separator));
}

if (!omitSampleSummary) {
Expand Down Expand Up @@ -360,6 +364,19 @@ public void writeOutputIntervalStatistics(final DoCOutputType.Partition partitio
printIntervalTable(output, nTargetsByAvgCvgBySample, binEndpoints);
}

/**
* Write out the gene statistics. Note that this method expects as input that the provided table has had
* {@link CoverageUtils#updateTargetTable(int[][], DepthOfCoverageStats)} called on it exactly once for each interval
* summarized in this traversal.
*
* @param nTargetsByAvgCvgBySample Target sample coverage histogram for the given partition to be written out
* @param binEndpoints Bins endpoints used in the construction of of the provided histogram
*/
public void writeOutputGeneStatistics(final int[][] nTargetsByAvgCvgBySample, final int[] binEndpoints) {
SimpleCSVWriterWrapperWithHeader output = getCorrectOutputWriter(DoCOutputType.Partition.sample, DoCOutputType.Aggregation.gene, DoCOutputType.FileType.statistics);
printIntervalTable(output, nTargetsByAvgCvgBySample, binEndpoints);
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// File writing methods
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@
* <li>_interval_summary: total, mean, median, quartiles, and threshold proportions, aggregated per interval</li>
* <li>_interval_statistics: 2x2 table of # of intervals covered to >= X depth in >=Y samples</li>
* <li>_gene_summary: total, mean, median, quartiles, and threshold proportions, aggregated per gene</li>
* <li>_gene_statistics: 2x2 table of # of genes covered to >= X depth in >= Y samples</li>
* <li>_gene_statistics: 2x2 table of # of genes covered to >= X depth in >= Y samples. In its current incarnation it will not include genes not at least partially covered (see --omit-genes-not-entirely-covered-by-traversal for details) </li>
* <li>_cumulative_coverage_counts: coverage histograms (# locus with >= X coverage), aggregated over all bases</li>
* <li>_cumulative_coverage_proportions: proprotions of loci with >= X coverage, aggregated over all bases</li>
* </ul>
Expand Down Expand Up @@ -90,6 +90,8 @@ public class DepthOfCoverage extends LocusWalkerByInterval {
private Map<Locatable, DepthOfCoveragePartitionedDataStore> activeCoveragePartitioner = new HashMap<>();
jamesemery marked this conversation as resolved.
Show resolved Hide resolved
// Map used to store target tables for each partition which are used in the computation of median coverage scores
private Map<DoCOutputType.Partition, int[][]> perIntervalStatisticsAggregationByPartitioning = new HashMap<>();
// Map used to store target tables for each partition which are used in the computation of median coverage scores
private Map<DoCOutputType.Partition, int[][]> perGeneStatisticsAggregationByPartitioning = new HashMap<>();

// PartitionDataStore corresponding to every base traversed by the tool
private DepthOfCoveragePartitionedDataStore coverageTotalsForEntireTraversal;
Expand Down Expand Up @@ -360,6 +362,17 @@ public void onIntervalEnd(final Locatable activeInterval) {

if ( ! omitPartiallyCoveredGenes || ((RefSeqFeature)activeInterval).getTotalExonLength() <= coverageBySample.getNumberOfLociCovered()) {
writer.writePerGeneDepthInformation((RefSeqFeature) activeInterval, coverageBySample, globalIdentifierMap.get(DoCOutputType.Partition.sample));

final DepthOfCoverageStats coverageByAggregationPartitionType = partitionerToRemove.getCoverageByAggregationType(DoCOutputType.Partition.sample);

// Create a new table if necessary
if (!perGeneStatisticsAggregationByPartitioning.containsKey(DoCOutputType.Partition.sample)) {
perGeneStatisticsAggregationByPartitioning.put(DoCOutputType.Partition.sample, new int[coverageByAggregationPartitionType.getHistograms().size()][coverageByAggregationPartitionType.getEndpoints().length + 1]);
}

// Update the target table to reflect the updated coverage information for this target
CoverageUtils.updateTargetTable(perGeneStatisticsAggregationByPartitioning.get(DoCOutputType.Partition.sample), coverageByAggregationPartitionType);

}
} else {
throw new GATKException("Unrecognized Locatable object supplied for traversal, only RefSeqFeature and SimpleInterval are supported: "+activeInterval.toString());
Expand All @@ -384,6 +397,13 @@ public Object onTraversalSuccess() {
writer.writeOutputIntervalStatistics(partition, perIntervalStatisticsAggregationByPartitioning.get(partition), CoverageUtils.calculateCoverageHistogramBinEndpoints(start,stop,nBins));
}

// Write out accumulated gene summary statistics
if (!refSeqGeneListFiles.isEmpty()) {
for (DoCOutputType.Partition partition : perGeneStatisticsAggregationByPartitioning.keySet()) {
writer.writeOutputGeneStatistics(perGeneStatisticsAggregationByPartitioning.get(partition), CoverageUtils.calculateCoverageHistogramBinEndpoints(start, stop, nBins));
}
}

if (!omitSampleSummary) {
logger.info("Outputting summary info");
for (DoCOutputType.Partition type : partitionTypes) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Number_of_sources,depth>=0,depth>=1,depth>=2,depth>=3,depth>=4,depth>=5,depth>=6,depth>=7,depth>=8,depth>=9,depth>=10,depth>=11,depth>=12,depth>=13,depth>=14,depth>=15,depth>=16,depth>=17,depth>=18,depth>=19,depth>=20,depth>=21,depth>=22,depth>=23,depth>=24,depth>=25,depth>=26,depth>=27,depth>=28,depth>=29,depth>=30,depth>=31,depth>=32,depth>=33,depth>=34,depth>=35,depth>=36,depth>=37,depth>=38,depth>=39,depth>=40,depth>=41,depth>=42,depth>=43,depth>=44,depth>=45,depth>=46,depth>=47,depth>=48,depth>=49,depth>=50,depth>=51,depth>=52,depth>=53,depth>=54,depth>=55,depth>=56,depth>=57,depth>=58,depth>=59,depth>=60,depth>=61,depth>=62,depth>=63,depth>=64,depth>=65,depth>=66,depth>=67,depth>=68,depth>=69,depth>=70,depth>=71,depth>=72,depth>=73,depth>=74,depth>=75,depth>=76,depth>=77,depth>=78,depth>=79,depth>=80,depth>=81,depth>=82,depth>=83,depth>=84,depth>=85,depth>=86,depth>=87,depth>=88,depth>=89,depth>=90,depth>=91,depth>=92,depth>=93,depth>=94,depth>=95,depth>=96,depth>=97,depth>=98,depth>=99,depth>=100,depth>=101,depth>=102,depth>=103,depth>=104,depth>=105,depth>=106,depth>=107,depth>=108,depth>=109,depth>=110,depth>=111,depth>=112,depth>=113,depth>=114,depth>=115,depth>=116,depth>=117,depth>=118,depth>=119,depth>=120,depth>=121,depth>=122,depth>=123,depth>=124,depth>=125,depth>=126,depth>=127,depth>=128,depth>=129,depth>=130,depth>=131,depth>=132,depth>=133,depth>=134,depth>=135,depth>=136,depth>=137,depth>=138,depth>=139,depth>=140,depth>=141,depth>=142,depth>=143,depth>=144,depth>=145,depth>=146,depth>=147,depth>=148,depth>=149,depth>=150,depth>=151,depth>=152,depth>=153,depth>=154,depth>=155,depth>=156,depth>=157,depth>=158,depth>=159,depth>=160,depth>=161,depth>=162,depth>=163,depth>=164,depth>=165,depth>=166,depth>=167,depth>=168,depth>=169,depth>=170,depth>=171,depth>=172,depth>=173,depth>=174,depth>=175,depth>=176,depth>=177,depth>=178,depth>=179,depth>=180,depth>=181,depth>=182,depth>=183,depth>=184,depth>=185,depth>=186,depth>=187,depth>=188,depth>=189,depth>=190,depth>=191,depth>=192,depth>=193,depth>=194,depth>=195,depth>=196,depth>=197,depth>=198,depth>=199,depth>=200,depth>=201,depth>=202,depth>=203,depth>=204,depth>=205,depth>=206,depth>=207,depth>=208,depth>=209,depth>=210,depth>=211,depth>=212,depth>=213,depth>=214,depth>=215,depth>=216,depth>=217,depth>=218,depth>=219,depth>=220,depth>=221,depth>=222,depth>=223,depth>=224,depth>=225,depth>=226,depth>=227,depth>=228,depth>=229,depth>=230,depth>=231,depth>=232,depth>=233,depth>=234,depth>=235,depth>=236,depth>=237,depth>=238,depth>=239,depth>=240,depth>=241,depth>=242,depth>=243,depth>=244,depth>=245,depth>=246,depth>=247,depth>=248,depth>=249,depth>=250,depth>=251,depth>=252,depth>=253,depth>=254,depth>=255,depth>=256,depth>=257,depth>=258,depth>=259,depth>=260,depth>=261,depth>=262,depth>=263,depth>=264,depth>=265,depth>=266,depth>=267,depth>=268,depth>=269,depth>=270,depth>=271,depth>=272,depth>=273,depth>=274,depth>=275,depth>=276,depth>=277,depth>=278,depth>=279,depth>=280,depth>=281,depth>=282,depth>=283,depth>=284,depth>=285,depth>=286,depth>=287,depth>=288,depth>=289,depth>=290,depth>=291,depth>=292,depth>=293,depth>=294,depth>=295,depth>=296,depth>=297,depth>=298,depth>=299,depth>=300,depth>=301,depth>=302,depth>=303,depth>=304,depth>=305,depth>=306,depth>=307,depth>=308,depth>=309,depth>=310,depth>=311,depth>=312,depth>=313,depth>=314,depth>=315,depth>=316,depth>=317,depth>=318,depth>=319,depth>=320,depth>=321,depth>=322,depth>=323,depth>=324,depth>=325,depth>=326,depth>=327,depth>=328,depth>=329,depth>=330,depth>=331,depth>=332,depth>=333,depth>=334,depth>=335,depth>=336,depth>=337,depth>=338,depth>=339,depth>=340,depth>=341,depth>=342,depth>=343,depth>=344,depth>=345,depth>=346,depth>=347,depth>=348,depth>=349,depth>=350,depth>=351,depth>=352,depth>=353,depth>=354,depth>=355,depth>=356,depth>=357,depth>=358,depth>=359,depth>=360,depth>=361,depth>=362,depth>=363,depth>=364,depth>=365,depth>=366,depth>=367,depth>=368,depth>=369,depth>=370,depth>=371,depth>=372,depth>=373,depth>=374,depth>=375,depth>=376,depth>=377,depth>=378,depth>=379,depth>=380,depth>=381,depth>=382,depth>=383,depth>=384,depth>=385,depth>=386,depth>=387,depth>=388,depth>=389,depth>=390,depth>=391,depth>=392,depth>=393,depth>=394,depth>=395,depth>=396,depth>=397,depth>=398,depth>=399,depth>=400,depth>=401,depth>=402,depth>=403,depth>=404,depth>=405,depth>=406,depth>=407,depth>=408,depth>=409,depth>=410,depth>=411,depth>=412,depth>=413,depth>=414,depth>=415,depth>=416,depth>=417,depth>=418,depth>=419,depth>=420,depth>=421,depth>=422,depth>=423,depth>=424,depth>=425,depth>=426,depth>=427,depth>=428,depth>=429,depth>=430,depth>=431,depth>=432,depth>=433,depth>=434,depth>=435,depth>=436,depth>=437,depth>=438,depth>=439,depth>=440,depth>=441,depth>=442,depth>=443,depth>=444,depth>=445,depth>=446,depth>=447,depth>=448,depth>=449,depth>=450,depth>=451,depth>=452,depth>=453,depth>=454,depth>=455,depth>=456,depth>=457,depth>=458,depth>=459,depth>=460,depth>=461,depth>=462,depth>=463,depth>=464,depth>=465,depth>=466,depth>=467,depth>=468,depth>=469,depth>=470,depth>=471,depth>=472,depth>=473,depth>=474,depth>=475,depth>=476,depth>=477,depth>=478,depth>=479,depth>=480,depth>=481,depth>=482,depth>=483,depth>=484,depth>=485,depth>=486,depth>=487,depth>=488,depth>=489,depth>=490,depth>=491,depth>=492,depth>=493,depth>=494,depth>=495,depth>=496,depth>=497,depth>=498,depth>=499,depth>=500
At_least_1_samples,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,14,14,8,6,3,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
At_least_2_samples,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,11,10,7,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
At_least_3_samples,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,14,14,14,14,14,8,6,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
At_least_4_samples,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,12,8,6,3,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
At_least_5_samples,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,14,8,7,5,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
At_least_6_samples,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,15,13,13,12,4,3,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Have you verified that this output is reasonable given the truth in this case?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, is this new file actually referenced in any test code?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, it gets pulled in automatically by the test suite along with any other files with the testGeneListDataAllCovered name and tested for exact concordance against the actual output. As for the plausibility of the results. The look reasonable, that file has 18 genes (16 of which are actually covered by the region) and 6 samples. I have not tired asking the question "how many of these genes are completely covered to x depth across y samples" by hand however.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jamesemery Would it be possible to spot-check a few genes in IGV?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just checked these. All 6 of the samples in this file have pretty uniform coverage around the 30-40x mark across this entire region. If you look the last row of this graph asserts that you are able to get an average coverage of at least 32 reads for all 6 samples at all 16 gene sites. Looking through IGV that certainly looks correct and is in line with the other output files in this test.