1/*  Last edited: Mar  5 10:27 1997 (birney) */
2
3%{
4#include "dyna.h"
5#include "geneparser4.h"
6#include "genewisemodel.h"
7#include "genewisemodeldb.h"
8
9%}
10
11
12matrix GeneWise4
13query    type="GENEWISEMODEL" name="query" field:len="len"
14target   type="GENOMIC"         name="target"
15resource type="GeneParser4Score *" name="gp"
16extern name="GW_*" type="int"
17extern name="GP4_*" type="int"
18state  MATCH offi="1" offj="3"
19  calc="GENOMIC_CDS_POT(target,j)"
20  source MATCH
21    calc="query->seg[i]->transition[GW_MATCH2MATCH] + query->seg[i]->match[GENOMIC_CODON(target,j)]"
22    endsource
23  source INSERT
24    calc="query->seg[i]->transition[GW_INSERT2MATCH] + query->seg[i]->match[GENOMIC_CODON(target,j)]"
25    endsource
26  source DELETE
27    calc="query->seg[i]->transition[GW_DELETE2MATCH] + query->seg[i]->match[GENOMIC_CODON(target,j)]"
28    endsource
29  source START
30    calc="query->seg[i]->transition[GW_START2MATCH] + query->seg[i]->match[GENOMIC_CODON(target,j)]"
31    endsource
32#
33# phase 0,1,2 introns can calculate whole amino acid for 0.
34#
35  source INTRON offi="1" offj="6"
36    calc="query->seg[i]->transition[GW_MATCH2MATCH] + gp->transition[GP4_INTRON2CDS] + query->seg[i]->match[GENOMIC_CODON(target,j)]+GENOMIC_3SS(target,j-3)+query->seg[i]->transition[GW_MATCH_BALANCE_3SS]"
37    target_label 3SS_PHASE_0
38    endsource
39  source INTRON offi="1" offj="5"
40    calc="query->seg[i]->transition[GW_MATCH2MATCH] + gp->transition[GP4_INTRON2CDS] + GENOMIC_3SS(target,j-2)"
41    target_label 3SS_PHASE_1
42    endsource
43  source INTRON offi="1" offj="4"
44    calc="query->seg[i]->transition[GW_MATCH2MATCH] + gp->transition[GP4_INTRON2CDS] + GENOMIC_3SS(target,j-1)"
45    target_label 3SS_PHASE_2
46    endsource
47#
48# Sequencing error transitions, at offsets 2 and 4 (covers both frames)
49#
50  source MATCH offi="1" offj="2"
51    calc="gp->transition[GP4_DELETE_1_BASE]"
52    target_label SEQUENCE_DELETION
53    endsource
54  source MATCH offi="1" offj="4"
55    calc="gp->transition[GP4_INSERT_1_BASE]"
56    target_label SEQUENCE_INSERTION
57    endsource
58  query_label MATCH_STATE
59  target_label CODON
60  endstate
61#
62# Insert state: does not move along model, produces DNA sequence...
63#
64state  INSERT offi="0" offj="3"
65  calc="GENOMIC_CDS_POT(target,j)"
66  source MATCH
67    calc="query->seg[i]->transition[GW_MATCH2INSERT] + query->seg[i]->insert[GENOMIC_CODON(target,j)]"
68    endsource
69  source INSERT
70    calc="query->seg[i]->transition[GW_INSERT2INSERT] + query->seg[i]->insert[GENOMIC_CODON(target,j)]"
71    endsource
72  source DELETE
73    calc="query->seg[i]->transition[GW_DELETE2INSERT] + query->seg[i]->insert[GENOMIC_CODON(target,j)]"
74    endsource
75  source START
76    calc="query->seg[i]->transition[GW_START2INSERT] + query->seg[i]->insert[GENOMIC_CODON(target,j)]"
77    endsource
78#
79# phase 0,1,2 introns can calculate whole amino acid for 0.
80#
81  source INTRON offi="0" offj="6"
82    calc="query->seg[i]->transition[GW_INSERT2INSERT] + gp->transition[GP4_INTRON2CDS] + query->seg[i]->match[GENOMIC_CODON(target,j)]+GENOMIC_3SS(target,j-3)+query->seg[i]->transition[GW_INSERT_BALANCE_3SS]"
83    target_label 3SS_PHASE_0
84    endsource
85  source INTRON offi="0" offj="5"
86    calc="query->seg[i]->transition[GW_INSERT2INSERT] + gp->transition[GP4_INTRON2CDS] + GENOMIC_3SS(target,j-2)"
87    target_label 3SS_PHASE_1
88    endsource
89  source INTRON offi="0" offj="4"
90    calc="query->seg[i]->transition[GW_INSERT2INSERT] + gp->transition[GP4_INTRON2CDS] + GENOMIC_3SS(target,j-1)"
91    target_label 3SS_PHASE_2
92    endsource
93#
94# Sequencing error transitions: because insertions are "for free" usually, we will
95# only model sequence deletion here. Could produce odd results though!
96#
97  source INSERT offi="0" offj="2"
98    calc="gp->transition[GP4_DELETE_1_BASE]"
99    target_label SEQUENCE_DELETION
100    endsource
101  source INSERT offi="0" offj="1"
102    calc="gp->transition[GP4_DELETE_2_BASE]"
103    target_label SEQUENCE_DELETION
104    endsource
105  query_label INSERT_STATE
106  target_label CODON
107  endstate
108state DELETE offi="1" offj="0"
109  source MATCH
110    calc="query->seg[i]->transition[GW_MATCH2DELETE]"
111    endsource
112  source INSERT
113    calc="query->seg[i]->transition[GW_INSERT2DELETE]"
114    endsource
115  source DELETE
116    calc="query->seg[i]->transition[GW_DELETE2DELETE]"
117    endsource
118  source START
119    calc="query->seg[i]->transition[GW_START2DELETE]"
120    endsource
121  query_label DELETE_STATE
122  target_label INSERT
123  endstate
124#
125# Intron state: Merge phase and match/insert stuff.
126#
127state INTRON offi="0" offj="1"
128  source MATCH offj="8"
129    calc="gp->intron[GENOMIC_BASE(target,j)]+GENOMIC_5SS(target,j-7)+ query->seg[i]->transition[GW_MATCH_BALANCE_5SS]"
130    target_label 5SS_PHASE_0
131    endsource
132  source INSERT offj="8"
133    calc="gp->intron[GENOMIC_BASE(target,j)]+GENOMIC_5SS(target,j-7)+ query->seg[i]->transition[GW_INSERT_BALANCE_5SS]"
134    target_label 5SS_PHASE_0
135    endsource
136  source MATCH offj="9" offi="0"
137    calc="gp->intron[GENOMIC_BASE(target,j)]+GENOMIC_5SS(target,j-7)"
138    target_label 5SS_PHASE_1
139    endsource
140  source INSERT offj="9" offi="0"
141    calc="gp->intron[GENOMIC_BASE(target,j)]+GENOMIC_5SS(target,j-7)"
142    target_label 5SS_PHASE_1
143    endsource
144  source MATCH offj="10" offi="0"
145    calc="gp->intron[GENOMIC_BASE(target,j)]+GENOMIC_5SS(target,j-7)"
146    target_label 5SS_PHASE_2
147    endsource
148  source INSERT offj="10" offi="0"
149    calc="gp->intron[GENOMIC_BASE(target,j)]+GENOMIC_5SS(target,j-7)"
150    target_label 5SS_PHASE_2
151    endsource
152  source INTRON offj="1"
153    calc="gp->intron[GENOMIC_BASE(target,j)] + gp->transition[GP4_INTRON2INTRON]"
154    target_label CENTRAL_INTRON
155    endsource
156  query_label INTRON_STATE
157  endstate
158state START !start !special defscore="0"
159  endstate
160state END !end !special
161  source MATCH
162    calc="query->seg[i]->transition[GW_MATCH2END]"
163    endsource
164  target_label END
165  query_label END
166  endstate
167#
168# collapse Intron labels!
169#
170collapse INTRON_STATE CENTRAL_INTRON
171endmatrix
172
173%{
174#include "genewise4.h"
175
176
177%}
178
179
180
181
182