int pwmDNA_splice_ComplexSequence_eval_func(int type,void * data,char * seq) { SpliceSiteScore * sc; pwmDNAScore * pds; int score; sc = (SpliceSiteScore* ) data; pds = sc->score; /* offset is written in biological coordinates. Need to get c style coordiates */ /* no idea what is happening here, but it works ;) */ score = score_pwmDNAScore_string(pds,seq-sc->offset+1); if( score < sc->min_collar ) { score = sc->min_collar; } if( score > sc->max_collar ) { score = sc->max_collar; } score -= sc->score_offset; /* fprintf(stderr,"Scoring %d at some position\n",score);*/ return score; }
int pwmDNA_splice_ComplexSequence_eval_func(int type,void * data,char * seq) { SpliceSiteScore * sc; pwmDNAScore * pds; int score; sc = (SpliceSiteScore* ) data; pds = sc->score; /* offset is written in biological coordinates. Need to get c style coordiates */ /* no idea what is happening here, but it works ;) */ if( seq[0] == 'N' && seq[1] == 'N' && seq[2] == 'N' ) { return NEGI; } score = score_pwmDNAScore_string(pds,seq-sc->offset+1); /* printf("Offset is %d %c%c%c\n",sc->offset,seq[0],seq[1],seq[2]);*/ /* fprintf(stdout,"Before collaring, %d\n",score);*/ if( score < sc->min_collar ) { score = sc->min_collar; } if( score > sc->max_collar ) { score = sc->max_collar; } /* fprintf(stdout,"Score %d before offset\n",score);*/ score -= sc->score_offset; /* fprintf(stdout,"Score %d after offset\n",score);*/ /* fprintf(stderr,"Scoring %d at some position\n",score);*/ return score; }