001    package calhoun.analysis.crf.features.interval13;
002    
003    import java.util.Arrays;
004    
005    import calhoun.analysis.crf.BeanModel;
006    
007    
008    public class Interval13Model extends BeanModel {
009            private static final long serialVersionUID = 3959312826759045449L;
010    
011            private static boolean narrowBoundaries = false;
012            
013            public void setNarrowBoundaries(boolean narrowBoundaries) {
014                    Interval13Model.narrowBoundaries = narrowBoundaries;
015            }
016            
017            public static int getPadExon5prime() {
018                    if (narrowBoundaries) {
019                            return 4;
020                    } else {
021                            return 6;
022                    }
023            }
024    
025            public static int getPadExon3prime() {
026                    if (narrowBoundaries) {
027                            return 1;
028                    } else {
029                            return 3;
030                    }
031            }
032            
033            public static int getPadIntron5prime() {
034                    return 6;
035            }       
036            
037            public static int getPadIntron3prime() {
038                    return 9;
039            }       
040            
041            public static int getPadIntergenic() {
042                    return 9;
043            }                       
044            
045            
046            static Node[] nodeArray = new Node[] {
047                    new Node(0, "intergenic"),
048                    new Node(1, "exon0"),
049                    new Node(2, "exon1"),
050                    new Node(3, "exon2"),
051                    new Node(4, "intron0"),
052                    new Node(5, "intron1"),
053                    new Node(6, "intron2"),
054                    new Node(7, "exon0m"),
055                    new Node(8, "exon1m"),
056                    new Node(9, "exon2m"),
057                    new Node(10, "intron0m"),
058                    new Node(11, "intron1m"),
059                    new Node(12, "intron2m"),
060            };
061            
062            static Edge[] edgeArray = new Edge[] {
063                    new Edge(nodeArray[0], nodeArray[0]),
064                    new Edge(nodeArray[1], nodeArray[1]),
065                    new Edge(nodeArray[2], nodeArray[2]),
066                    new Edge(nodeArray[3], nodeArray[3]),
067                    new Edge(nodeArray[4], nodeArray[4]),
068                    new Edge(nodeArray[5], nodeArray[5]),
069                    new Edge(nodeArray[6], nodeArray[6]),
070                    new Edge(nodeArray[7], nodeArray[7]),
071                    new Edge(nodeArray[8], nodeArray[8]),
072                    new Edge(nodeArray[9], nodeArray[9]),
073                    new Edge(nodeArray[10], nodeArray[10]),
074                    new Edge(nodeArray[11], nodeArray[11]),
075                    new Edge(nodeArray[12], nodeArray[12]),
076                    new Edge(nodeArray[0], nodeArray[1]),
077                    new Edge(nodeArray[0], nodeArray[2]),
078                    new Edge(nodeArray[0], nodeArray[3]),
079                    new Edge(nodeArray[0], nodeArray[7]),
080                    new Edge(nodeArray[0], nodeArray[8]),
081                    new Edge(nodeArray[0], nodeArray[9]),
082                    new Edge(nodeArray[1], nodeArray[0]),
083                    new Edge(nodeArray[2], nodeArray[0]),
084                    new Edge(nodeArray[3], nodeArray[0]),
085                    new Edge(nodeArray[7], nodeArray[0]),
086                    new Edge(nodeArray[8], nodeArray[0]),
087                    new Edge(nodeArray[9], nodeArray[0]),
088                    new Edge(nodeArray[1], nodeArray[4]),
089                    new Edge(nodeArray[1], nodeArray[5]),
090                    new Edge(nodeArray[1], nodeArray[6]),
091                    new Edge(nodeArray[2], nodeArray[4]),
092                    new Edge(nodeArray[2], nodeArray[5]),
093                    new Edge(nodeArray[2], nodeArray[6]),
094                    new Edge(nodeArray[3], nodeArray[4]),
095                    new Edge(nodeArray[3], nodeArray[5]),
096                    new Edge(nodeArray[3], nodeArray[6]),
097                    new Edge(nodeArray[4], nodeArray[1]),
098                    new Edge(nodeArray[4], nodeArray[2]),
099                    new Edge(nodeArray[4], nodeArray[3]),
100                    new Edge(nodeArray[5], nodeArray[1]),
101                    new Edge(nodeArray[5], nodeArray[2]),
102                    new Edge(nodeArray[5], nodeArray[3]),
103                    new Edge(nodeArray[6], nodeArray[1]),
104                    new Edge(nodeArray[6], nodeArray[2]),
105                    new Edge(nodeArray[6], nodeArray[3]),
106                    new Edge(nodeArray[7], nodeArray[10]),
107                    new Edge(nodeArray[7], nodeArray[11]),
108                    new Edge(nodeArray[7], nodeArray[12]),
109                    new Edge(nodeArray[8], nodeArray[10]),
110                    new Edge(nodeArray[8], nodeArray[11]),
111                    new Edge(nodeArray[8], nodeArray[12]),
112                    new Edge(nodeArray[9], nodeArray[10]),
113                    new Edge(nodeArray[9], nodeArray[11]),
114                    new Edge(nodeArray[9], nodeArray[12]),
115                    new Edge(nodeArray[10], nodeArray[7]),
116                    new Edge(nodeArray[10], nodeArray[8]),
117                    new Edge(nodeArray[10], nodeArray[9]),
118                    new Edge(nodeArray[11], nodeArray[7]),
119                    new Edge(nodeArray[11], nodeArray[8]),
120                    new Edge(nodeArray[11], nodeArray[9]),
121                    new Edge(nodeArray[12], nodeArray[7]),
122                    new Edge(nodeArray[12], nodeArray[8]),
123                    new Edge(nodeArray[12], nodeArray[9]),
124            };
125            
126            public Interval13Model() {
127                    nodes = Arrays.asList(nodeArray);
128                    edges = Arrays.asList(edgeArray);
129            }
130    }