Counts of records failing filters are displayed sorted
-- Stops random ordering of the output, as the counts are returned sorted by string name of the class -- Deleted now unused sh*tty assessors in Utils
This commit is contained in:
parent
d1e70d6ec2
commit
0b88af4af9
|
|
@ -30,6 +30,7 @@ import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.TreeMap;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds a bunch of basic information about the traversal.
|
* Holds a bunch of basic information about the traversal.
|
||||||
|
|
@ -102,8 +103,12 @@ public class ReadMetrics implements Cloneable {
|
||||||
counter.put(filter.getClass(), c + 1L);
|
counter.put(filter.getClass(), c + 1L);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Map<Class,Long> getCountsByFilter() {
|
public Map<String,Long> getCountsByFilter() {
|
||||||
return Collections.unmodifiableMap(counter);
|
final TreeMap<String, Long> sortedCounts = new TreeMap<String, Long>();
|
||||||
|
for(Map.Entry<Class,Long> counterEntry: counter.entrySet()) {
|
||||||
|
sortedCounts.put(counterEntry.getKey().getSimpleName(),counterEntry.getValue());
|
||||||
|
}
|
||||||
|
return sortedCounts;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -364,8 +364,8 @@ public abstract class TraversalEngine<M,T,WalkerType extends Walker<M,T>,Provide
|
||||||
|
|
||||||
// count up the number of skipped reads by summing over all filters
|
// count up the number of skipped reads by summing over all filters
|
||||||
long nSkippedReads = 0L;
|
long nSkippedReads = 0L;
|
||||||
for ( Map.Entry<Class, Long> countsByFilter: cumulativeMetrics.getCountsByFilter().entrySet())
|
for ( final long countsByFilter : cumulativeMetrics.getCountsByFilter().values())
|
||||||
nSkippedReads += countsByFilter.getValue();
|
nSkippedReads += countsByFilter;
|
||||||
|
|
||||||
logger.info(String.format("Total runtime %.2f secs, %.2f min, %.2f hours", elapsed, elapsed / 60, elapsed / 3600));
|
logger.info(String.format("Total runtime %.2f secs, %.2f min, %.2f hours", elapsed, elapsed / 60, elapsed / 3600));
|
||||||
if ( cumulativeMetrics.getNumReadsSeen() > 0 )
|
if ( cumulativeMetrics.getNumReadsSeen() > 0 )
|
||||||
|
|
@ -373,10 +373,10 @@ public abstract class TraversalEngine<M,T,WalkerType extends Walker<M,T>,Provide
|
||||||
nSkippedReads,
|
nSkippedReads,
|
||||||
cumulativeMetrics.getNumReadsSeen(),
|
cumulativeMetrics.getNumReadsSeen(),
|
||||||
100.0 * MathUtils.ratio(nSkippedReads,cumulativeMetrics.getNumReadsSeen())));
|
100.0 * MathUtils.ratio(nSkippedReads,cumulativeMetrics.getNumReadsSeen())));
|
||||||
for ( Map.Entry<Class, Long> filterCounts : cumulativeMetrics.getCountsByFilter().entrySet() ) {
|
for ( Map.Entry<String, Long> filterCounts : cumulativeMetrics.getCountsByFilter().entrySet() ) {
|
||||||
long count = filterCounts.getValue();
|
long count = filterCounts.getValue();
|
||||||
logger.info(String.format(" -> %d reads (%.2f%% of total) failing %s",
|
logger.info(String.format(" -> %d reads (%.2f%% of total) failing %s",
|
||||||
count, 100.0 * MathUtils.ratio(count,cumulativeMetrics.getNumReadsSeen()), Utils.getClassName(filterCounts.getKey())));
|
count, 100.0 * MathUtils.ratio(count,cumulativeMetrics.getNumReadsSeen()), filterCounts.getKey()));
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( performanceLog != null ) performanceLog.close();
|
if ( performanceLog != null ) performanceLog.close();
|
||||||
|
|
|
||||||
|
|
@ -58,33 +58,6 @@ public class Utils {
|
||||||
return (int)(maxElements / JAVA_DEFAULT_HASH_LOAD_FACTOR) + 2;
|
return (int)(maxElements / JAVA_DEFAULT_HASH_LOAD_FACTOR) + 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String getClassName(Class c) {
|
|
||||||
String FQClassName = c.getName();
|
|
||||||
int firstChar;
|
|
||||||
firstChar = FQClassName.lastIndexOf ('.') + 1;
|
|
||||||
if ( firstChar > 0 ) {
|
|
||||||
FQClassName = FQClassName.substring ( firstChar );
|
|
||||||
}
|
|
||||||
return FQClassName;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// returns package and class name
|
|
||||||
public static String getFullClassName(Class c) {
|
|
||||||
return c.getName();
|
|
||||||
}
|
|
||||||
|
|
||||||
// returns the package without the classname, empty string if
|
|
||||||
// there is no package
|
|
||||||
public static String getPackageName(Class c) {
|
|
||||||
String fullyQualifiedName = c.getName();
|
|
||||||
int lastDot = fullyQualifiedName.lastIndexOf ('.');
|
|
||||||
if (lastDot==-1){ return ""; }
|
|
||||||
return fullyQualifiedName.substring (0, lastDot);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Compares two objects, either of which might be null.
|
* Compares two objects, either of which might be null.
|
||||||
*
|
*
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue