001 package calhoun.analysis.crf;
002
003
004 /** An extension of FeatureManagerNode for situations where the nodes use in semi-markov models is non-standard.
005 * It allows an arbitrary region at the right and left edge of each segment to be eliminated, presumable because a
006 * different probabilistic model will be used at that position.
007 */
008 public interface FeatureManagerNodeBoundaries<InputType> extends FeatureManagerNode<InputType> {
009 /** A NodeBoundary defines how a node feature should be used in a semi-markov model. The default behavior is that
010 * the value of a node will be the sum of the values of the node feature at all positions in the segment. Using
011 * nodeBoundaries allows more flexibility.
012 * This is somewhat ill-defined right now. Designed specifically for EmissonMarkovFeatures in the semi-markov gene caller.*/
013
014 /*
015 * NOTE: These details below have now been wrapped up in the details of CacheStrategySpec, but we still want to keep this as a separate class.
016 public static class NodeBoundary {
017 int featureIndex;
018 int state;
019 int lookupTable;
020 int leftBoundary;
021 int rightBoundary;
022
023 public NodeBoundary(int featureIndex, int state, int lookupTable, int leftBoundary, int rightBoundary) {
024 featureIndex = this.featureIndex;
025 state = this.state;
026 lookupTable = this.lookupTable;
027 leftBoundary = this.leftBoundary;
028 rightBoundary = this.rightBoundary;
029 }
030 }
031
032
033 List<NodeBoundary> getBoundaries();
034
035 */
036 }