int symbolIndex;
int nodeIndex;
Double probability;
+ if (symbol == '-')
+ {
+ return 0d;
+ }
symbolIndex = symbolIndexLookup.get(symbol);
- nodeIndex = nodeLookup.get(alignColumn);
- probability = getNode(nodeIndex).getMatchEmissions().get(symbolIndex);
- return probability;
+ if (nodeLookup.containsKey(alignColumn + 1))
+ {
+ nodeIndex = nodeLookup.get(alignColumn + 1);
+ probability = getNode(nodeIndex).getMatchEmissions().get(symbolIndex);
+ probability = Math.pow(Math.E, -probability);
+ return probability;
+ }
+ else
+ {
+ return 0d;
+ }
}
int symbolIndex;
int nodeIndex;
Double probability;
+ if (symbol == '-')
+ {
+ return 0d;
+ }
symbolIndex = symbolIndexLookup.get(symbol);
- nodeIndex = nodeLookup.get(alignColumn);
- probability = getNode(nodeIndex).getInsertEmissions().get(symbolIndex);
- return probability;
+ if (nodeLookup.containsKey(alignColumn + 1))
+ {
+ nodeIndex = nodeLookup.get(alignColumn + 1);
+ probability = getNode(nodeIndex).getInsertEmissions()
+ .get(symbolIndex);
+ probability = Math.pow(Math.E, -probability);
+ return probability;
+ }
+ else
+ {
+ return 0d;
+ }
}
int nodeIndex;
Double probability;
transitionIndex = getTransitionType(transition);
- nodeIndex = nodeLookup.get(alignColumn);
- probability = getNode(nodeIndex).getStateTransitions()
+ if (nodeLookup.containsKey(alignColumn + 1))
+ {
+ nodeIndex = nodeLookup.get(alignColumn + 1);
+ probability = getNode(nodeIndex).getStateTransitions()
.get(transitionIndex);
- return probability;
+ probability = Math.pow(Math.E, -probability);
+ return probability;
+ }
+ else
+ {
+ return 0d;
+ }
}