    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    }