예제 #1
0
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;
}
예제 #2
0
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;
}