1/* Last edited: Mar 3 13:16 1997 (birney) */ 2 3%{ 4#include "wisebase.h" 5#include "probability.h" 6#include "geneparser21.h" 7 8enum GeneParser4Type { 9 GP4_INTRON2CDS = 0, 10 GP4_INTRON2INTRON, 11 GP4_DELETE_1_BASE, 12 GP4_DELETE_2_BASE, 13 GP4_INSERT_1_BASE, 14 GP4_INSERT_2_BASE, 15 GP4_LOOP2LOOP, 16 GP4_LOOP2MODEL, 17 GP4_TRANSITION_LEN }; 18 19%} 20 21 22struct GeneParser4 23Probability transition[GP4_TRANSITION_LEN] 24Probability intron[5] 25 26struct GeneParser4Score 27Score transition[GP4_TRANSITION_LEN] 28Score intron[5] 29 30%{ 31#include "geneparser4.h" 32 33 34GeneParser4 * std_GeneParser4(double indel,double intron2cds) 35{ 36 int i; 37 GeneParser4 * out; 38 39 out = GeneParser4_alloc(); 40 41 out->transition[GP4_INTRON2CDS] = intron2cds; 42 43 out->transition[GP4_INTRON2INTRON] = 1.0; 44 out->transition[GP4_DELETE_1_BASE] = indel; 45 out->transition[GP4_DELETE_2_BASE] = indel; 46 out->transition[GP4_INSERT_1_BASE] = indel; 47 out->transition[GP4_INSERT_2_BASE] = indel; 48 out->transition[GP4_LOOP2MODEL] = 1.0; 49 out->transition[GP4_LOOP2LOOP] = 0; 50 51 52 for(i=0;i<5;i++) 53 out->intron[i] = 1.0; 54 55 return out; 56} 57 58 59 60GeneParser4Score * GeneParser4Score_from_GeneParser21Score(GeneParser21Score * gp21s) 61{ 62 int i; 63 GeneParser4Score * out; 64 65 out = GeneParser4Score_alloc(); 66 67 out->transition[GP4_INTRON2CDS] = gp21s->transition[GP21_CENTRAL2PY] + gp21s->transition[GP21_PY2SPACER] + gp21s->transition[GP21_SPACER2CDS]; 68 69 out->transition[GP4_INTRON2INTRON] = gp21s->transition[GP21_CENTRAL2CENTRAL]; 70 out->transition[GP4_DELETE_1_BASE] = gp21s->transition[GP21_DELETE_1_BASE]; 71 out->transition[GP4_DELETE_2_BASE] = gp21s->transition[GP21_DELETE_2_BASE]; 72 out->transition[GP4_INSERT_1_BASE] = gp21s->transition[GP21_INSERT_1_BASE]; 73 out->transition[GP4_INSERT_2_BASE] = gp21s->transition[GP21_INSERT_2_BASE]; 74 out->transition[GP4_LOOP2MODEL] = gp21s->transition[GP21_RND2MODEL]; 75 /* out->transition[GP4_LOOP2LOOP] = gp21s->transition[GP21_RND2RND]; */ 76 out->transition[GP4_LOOP2LOOP] = 0; 77 /* fprintf(stderr,"Loop score is %d\n",out->transition[GP4_LOOP2LOOP]); */ 78 79 80 for(i=0;i<5;i++) 81 out->intron[i] = gp21s->central[i]; 82 83 return out; 84} 85 86 87 88GeneParser4Score * GeneParser4Score_from_GeneParser4(GeneParser4 * gp4) 89{ 90 GeneParser4Score * out; 91 92 out = GeneParser4Score_alloc(); 93 94 Probability2Score_move(gp4->transition,out->transition,GP4_TRANSITION_LEN); 95 Probability2Score_move(gp4->intron,out->intron,5); 96 97 return out; 98} 99 100 101%} 102 103 104