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