INCATools / INCATools/boomer

boomer selects suboptimal solution in simple 3-node problem

Open
#158 6 comments 0 reactions 0 assignees View on GitHub
Dominant language
Scala
Stars
37
Forks
2
PR merge metrics
No merged PRs in 30d

Description

for text files see #157.

Given:

1. Pr(A properSubClassOf C) = 0.99
2. Pr(A equiv B) = 0.95
3. Pr(B equiv C) = 0.95

(in each case, the only other possibility is siblingOf)

note each class is in a separate prefix space, so there is no penalty for equivalence between any

Solutions:

* 1,2,3 : incoherent
* 1,2 : .99 * .95 * (1-.95) = 0.04
* 1,3 : .99 * .95 * (1-.95) = 0.04
* 2,3 : .95 * .95 * (1-0.99) = 0.009
* 1 : .99 * .05 * .05 = 0.0023
* 2 : .01 * .95 * .05 = 0.000475
* 3 : .01 * .95 * .05 = 0.000475
* {} : .01 * .05 * .05 = 2.5e-05

boomer generally selects {1} depending on params, but never the optimal

I am pretty sure I have not made a typo - I put each class in its own ID space, so it is not avoiding 2 or 3 (which would happen if A/B/C were in the same ID space)

```
boomer -p prefixes.yaml -w 100 -r 1000 -t ptable.tsv --ontology logical.omn
...
2021.02.05 09:23:19:376 [zio-def...] [INFO ] org.monarchinitiative.boomer.Main.program:49 - Most probable: 0.0024750000000000015
...
$ more output.txt
A:1 SiblingOf B:1 0.05
B:1 SiblingOf C:1 0.05
A:1 ProperSubClassOf C:1 (most probable) 0.99
```

Contributor guide

No contributing guide indexed for this repository

Research direction

Reproduce the three-node case with prefixes.yaml, ptable.tsv, and logical.omn using the reported boomer command. Trace the solution-selection and probability calculation from that entry point; done means the reported case selects the optimal solution rather than {1}.

Written by the indexing model from the issue text.

Assessment

Tech stack
scala
Domain
ai
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.