Skip to content

Commit 10a75e2

Browse files
committed
The recent fix for missing calls in single-hypothesis situations would
sometimes consider these as de novo calls, which they aren't.
1 parent ab8c1c9 commit 10a75e2

6 files changed

+23
-4
lines changed

src/com/rtg/variant/bayes/multisample/family/MendelianAlleleProbabilityDiploidDeNovo.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public final class MendelianAlleleProbabilityDiploidDeNovo extends MendelianAlle
2424
static final int CACHE_SIZE = 101;
2525
static final double[] CACHED_LOGS = new double[CACHE_SIZE];
2626
static {
27-
for (int i = 0; i < CACHE_SIZE; i++) {
27+
for (int i = 1; i < CACHE_SIZE; i++) {
2828
CACHED_LOGS[i] = Math.log(i);
2929
}
3030
}
@@ -131,6 +131,7 @@ private static void setLookup(int fab, int moa, int mob, int cha, int chb, doubl
131131

132132
@Override
133133
public double probabilityLn(Code code, int father, int mother, int child) {
134+
assert code.rangeSize() > 0;
134135
final UniqueId uid = new UniqueId(code.rangeSize());
135136
final int fa0 = uid.addId(code.a(father));
136137
assert fa0 == 0;
@@ -139,7 +140,6 @@ public double probabilityLn(Code code, int father, int mother, int child) {
139140
final int mo1 = uid.addId(code.bc(mother));
140141
final int ch0 = uid.addId(code.a(child));
141142
final int ch1 = uid.addId(code.bc(child));
142-
assert code.rangeSize() > 1;
143143
return LOOKUP[fa1][mo0][mo1][ch0][ch1] - MendelianAlleleProbabilityDiploidDeNovo.cacheLog(code.rangeSize() - 1);
144144
}
145145

src/com/rtg/variant/bayes/multisample/family/MendelianAlleleProbabilityHDDDeNovo.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ public double probabilityLn(Code code, int father, int mother, int child) {
128128
final int mo1 = uid.addId(code.bc(mother));
129129
final int ch0 = uid.addId(code.a(child));
130130
final int ch1 = uid.addId(code.bc(child));
131-
assert code.rangeSize() > 1;
131+
assert code.rangeSize() > 0;
132132
return LOOKUP[mo0][mo1][ch0][ch1] - MendelianAlleleProbabilityDiploidDeNovo.cacheLog(code.rangeSize() - 1);
133133
}
134134

src/com/rtg/variant/bayes/multisample/family/MendelianAlleleProbabilityHDHDeNovo.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ public double probabilityLn(Code code, int father, int mother, int child) {
103103
assert mo0 == 0;
104104
final int mo1 = uid.addId(code.bc(mother));
105105
final int ch0 = uid.addId(code.a(child));
106-
assert code.rangeSize() > 1;
106+
assert code.rangeSize() > 0;
107107
return LOOKUP[mo1][ch0] - MendelianAlleleProbabilityDiploidDeNovo.cacheLog(code.rangeSize() - 1);
108108
}
109109

test/com/rtg/variant/bayes/multisample/family/MendelianAlleleProbabilityDiploidDeNovoTest.java

+6
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,12 @@
2121
*/
2222
public class MendelianAlleleProbabilityDiploidDeNovoTest extends TestCase {
2323

24+
public void testUniHypothesisLookup() {
25+
// Non de novo should give no likelihood
26+
final Code code = new CodeDiploid(1);
27+
assertEquals(Double.NEGATIVE_INFINITY, MendelianAlleleProbabilityDiploidDeNovo.SINGLETON.probabilityLn(code, code.code(0), code.code(0), code.code(0)));
28+
}
29+
2430
public void testProbabilityLnLookup() {
2531
final Code code = new CodeDiploid(4);
2632

test/com/rtg/variant/bayes/multisample/family/MendelianAlleleProbabilityHDDDeNovoTest.java

+7
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,13 @@
2121
*/
2222
public class MendelianAlleleProbabilityHDDDeNovoTest extends TestCase {
2323

24+
public void testUniHypothesisLookup() {
25+
// Non de novo should give no likelihood
26+
final Code code = new CodeDiploid(1);
27+
assertEquals(Double.NEGATIVE_INFINITY, MendelianAlleleProbabilityHDDDeNovo.SINGLETON_HD.probabilityLn(code, code.code(0), code.code(0), code.code(0)));
28+
}
29+
30+
2431
public void testProbabilityLnLookup() {
2532
final Code code = new CodeDiploid(4);
2633

test/com/rtg/variant/bayes/multisample/family/MendelianAlleleProbabilityHDHDeNovoTest.java

+6
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,12 @@
2121
*/
2222
public class MendelianAlleleProbabilityHDHDeNovoTest extends TestCase {
2323

24+
public void testUniHypothesisLookup() {
25+
// Non de novo should give no likelihood
26+
final Code code = new CodeDiploid(1);
27+
assertEquals(Double.NEGATIVE_INFINITY, MendelianAlleleProbabilityHDHDeNovo.SINGLETON_HD.probabilityLn(code, code.code(0), code.code(0), code.code(0)));
28+
}
29+
2430
public void testProbabilityLnLookup() {
2531
final Code code = new CodeDiploid(4);
2632

0 commit comments

Comments
 (0)