A few improvements to pooled concordance calcluations. Now will show you FN with the -V option. BasicGenotype now prints out a reasonable representaiton wiwth toString
git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@2320 348d0f76-0448-11de-a6fe-93d51630548a
This commit is contained in:
parent
f64a4c66ac
commit
8f7554d44f
|
|
@ -90,19 +90,19 @@ public abstract class ChipConcordance extends BasicVariantAnalysis {
|
|||
|
||||
// don't procede if we have no truth data and no call
|
||||
if ( eval != null || chips.size() > 0 )
|
||||
inc(chips, eval, ref);
|
||||
|
||||
return null;
|
||||
return inc(chips, eval, ref);
|
||||
else
|
||||
return null;
|
||||
}
|
||||
|
||||
public void inc(Map<String, Genotype> chips, Variation eval, char ref) {
|
||||
public String inc(Map<String, Genotype> chips, Variation eval, char ref) {
|
||||
|
||||
// each implementing class can decide whether the Variation is valid
|
||||
assertVariationIsValid(eval);
|
||||
|
||||
// This shouldn't happen, but let's check anyways to be safe
|
||||
if (BaseUtils.simpleBaseToBaseIndex(ref) == -1)
|
||||
return;
|
||||
return null;
|
||||
|
||||
// create a hash of samples to their Genotypes
|
||||
List<Genotype> evals = (eval != null ? ((VariantBackedByGenotype)eval).getGenotypes() : new ArrayList<Genotype>());
|
||||
|
|
@ -124,12 +124,17 @@ public abstract class ChipConcordance extends BasicVariantAnalysis {
|
|||
}
|
||||
|
||||
// now we can finally update our truth tables with the truth vs. calls data
|
||||
StringBuilder s = new StringBuilder();
|
||||
for (int i = 0; i < truthTables.length; i++) {
|
||||
if ( chipEvals[i] != null ) {
|
||||
ConcordanceTruthTable table = truthTables[i];
|
||||
table.addEntry(chipEvals[i], eval, ref);
|
||||
String x = table.addEntry(chipEvals[i], eval, ref);
|
||||
if ( x != null ) s.append(x);
|
||||
}
|
||||
}
|
||||
|
||||
String toReturn = s.toString();
|
||||
return toReturn.equals("") ? null : toReturn;
|
||||
}
|
||||
|
||||
public List<String> done() {
|
||||
|
|
|
|||
|
|
@ -17,7 +17,6 @@ import java.util.*;
|
|||
* the Broad Institute nor MIT can be responsible for its use, misuse, or functionality.
|
||||
*/
|
||||
public class ConcordanceTruthTable {
|
||||
|
||||
private static final int TRUE_POSITIVE = 0;
|
||||
private static final int TRUE_NEGATIVE = 1;
|
||||
private static final int FALSE_POSITIVE = 2;
|
||||
|
|
@ -83,7 +82,8 @@ public class ConcordanceTruthTable {
|
|||
// System.out.println("Table Size: "+table.length+" by "+table[1].length);
|
||||
}
|
||||
|
||||
public void addEntry(List<Pair<Genotype, Genotype>> chipEvals, Variation eval, char ref) {
|
||||
public String addEntry(List<Pair<Genotype, Genotype>> chipEvals, Variation eval, char ref) {
|
||||
String violation = null;
|
||||
|
||||
// if the table represents a single sample, then we can calculate genotype stats
|
||||
if ( singleSampleMode ) {
|
||||
|
|
@ -114,7 +114,13 @@ public class ConcordanceTruthTable {
|
|||
|
||||
int callType = getCallIndex(eval,ref);
|
||||
|
||||
addFrequencyEntry( truthType,callType,poolVariant.getSecond().getFirst() );
|
||||
int numTrueSupportingAlleles = poolVariant.getSecond().getFirst();
|
||||
if ( numTrueSupportingAlleles > 0 && truthType == VARIANT && callType != VARIANT ) {
|
||||
violation = String.format("False negative: %s with %d alt alleles",
|
||||
chipEvals.get(0).getFirst(), numTrueSupportingAlleles);
|
||||
}
|
||||
|
||||
addFrequencyEntry( truthType,callType, poolVariant.getSecond().getFirst() );
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -122,6 +128,7 @@ public class ConcordanceTruthTable {
|
|||
// TODO -- You'll want to use eval and the chips from chipEvals (these are the first members of the pair)
|
||||
// TODO -- You'll also need to declare (and initialize) the relevant data arrays for the data
|
||||
// TODO -- Indexes like TRUE_POSITIVE are defined above for you
|
||||
return violation;
|
||||
}
|
||||
|
||||
public Pair< Genotype , Pair<Integer,Integer> > getPooledAlleleFrequency( List<Pair<Genotype,Genotype>> chips, char ref) {
|
||||
|
|
|
|||
|
|
@ -168,4 +168,7 @@ public class BasicGenotype implements Genotype {
|
|||
return builder.toString();
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return String.format("[%s %s]", getLocation(), getBases());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue