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 }