package mlproject.hmm;

public abstract class StateModel {
    public static final int COUNTS_FREE = 0;
    public static final int COUNTS_ZERO = -1;
    public static final int COUNTS_ALL = 1;
    
    public abstract boolean[][] getTransitionMatrix();
    public abstract String[] getStateNames();
    public abstract int getNStates();
    public abstract int[][] getFixedStateNucleotideCounts();
    public abstract int[] getIntergenicStates();
    public abstract int[] getPlusExonicStates();
    public abstract int[] getMinusExonicStates();
    public abstract int[] getPlusIntronicStates();
    public abstract int[] getMinusIntronicStates();
    public abstract int[] getPlusExon0States();
    public abstract int[] getPlusExon1States();
    public abstract int[] getPlusExon2States();
    public abstract int[] getMinusExon0States();
    public abstract int[] getMinusExon1States();
    public abstract int[] getMinusExon2States();
    public abstract int getFirstMinusState();
    public abstract int[] getPlusStartCodonStates();
    public abstract int[] getMinusStartCodonStates();
    public abstract int[] getPlusStopCodonStates();
    public abstract int[] getMinusStopCodonStates();
    public abstract int[] getPlusInitialIntronStates();
    public abstract int[] getMinusInitialIntronStates();
    public abstract int[][] getJoinedEmissionStates();
}
