Exemple #1
0
void nothingness ()
{
    int * _i = NULL;
    int * i  = nullptr;

    int _j = NULL;
    //int j = nullptr; // ERROR!!!

    if (ambig(0)) { } // ambig(int)

    if (ambig(NULL)) { } // ambig(int) when NULL=0
    	                 // ambiguous when NULL=0L

    if (ambig(nullptr)) { } // ambig(char*)
    
}
Exemple #2
0
/* int checkRevEnd()
 * Checks the seq for a match of the reverse primer
 *   at the 3' end.
 */
int checkRevEnd(char* seq, char* rev, int misAllow,
    int revSt, int revEnd) {
  int primEnd = strlen(rev) - 1;
  int seqEnd = strlen(seq) - 1;
  // allow primer to match starting at diff. positions
  for (int off = revSt; off < revEnd; off++) {
    int mis = misAllow;
    int j;
    for (j = 0; j < primEnd + 1; j++) {
      int seqPos = seqEnd - j - off;
      int pos = primEnd - j;
      if (j + off < 0)
        continue;
      else if (seqPos < 0 ||
          (rev[pos] != seq[seqPos] &&
          (rev[pos] == 'A' || rev[pos] == 'C' ||
          rev[pos] == 'G' || rev[pos] == 'T' ||
          ambig(rev[pos], seq[seqPos])) && --mis < 0))
        break;
    }
    if (j == primEnd + 1) {
      return seqEnd - j - off + 1;  // last base of primer
    }
  }
  return 0;
}
Exemple #3
0
/* Primer* findPrim(char*)
 * Finds a primer match to the given sequence.
 */
Primer* findPrim(char* seq, int misAllow, int fwdSt, int fwdEnd,
    int* st, int* f) {
  for (Primer* p = primo; p != NULL; p = p->next) {
    for (int i = 0; i < 2; i++) {
      char* prim = (i ? p->rrc : p->fwd);
      // allow primer to match starting at diff. positions
      for (int off = fwdSt; off < fwdEnd; off++) {
        int mis = misAllow;
        int j;
        for (j = 0; prim[j] != '\0'; j++)
          if (j + off < 0)
            continue;
          else if (seq[j+off] == '\0' ||
              (prim[j] != seq[j+off] &&
              (prim[j] == 'A' || prim[j] == 'C' ||
              prim[j] == 'G' || prim[j] == 'T' ||
              ambig(prim[j], seq[j+off])) && --mis < 0))
            break;

        if (prim[j] == '\0') {
          if (seq[j+off] != '\0') {
            *st = j+off;
            *f = i;
            return p;
          } else
            return NULL;
        }
      }
    }
  }
  return NULL;
}
Exemple #4
0
/* -------------------------------------------------------------------- */
void tutorial(char *filename)
{
    int  i;
    char temp[14];
    char oldverbose;
    
    outFlag     = OUTOK;
    setio(whichIO, echo, outFlag);

    if (!expert)  mPrintf("\n <3J0>ump <3N0>ext <3P0>ause <3S0>top\n");
    /* doCR(); */

    if (changedir(cfg.helppath) == -1 ) return;

    /* no bad files */
    if (checkfilename(filename, 0) == ERROR)
    {
        mPrintf(" No helpfile %s", filename);
        changedir(cfg.homepath);
        return;
    }

    if (ambig(filename))
    {
        /* fill our directory array according to filename */
        oldverbose = verbose;
        verbose = FALSE;
        filldirectory(filename);
        verbose = oldverbose;

        /* print out all the files */
        for (i = 0; filedir[i].entry[0] && 
        ( dumpf(filedir[i].entry) != ERROR) ; i++);

        if ( !i) mPrintf(" No helpfile %s", filename);

        /* free file directory structure */
        if(filedir != NULL)
        _ffree((void *)filedir);
    }
    else
    {
       strcpy(temp, filename);
       temp[strlen(temp)-1] = '@';

       if (filexists(temp) && *term.bold)
         dump(temp);
       else
         dumpf(filename);
    }

    /* go to our home-path */
    changedir(cfg.homepath);
}
Exemple #5
0
/* int checkRevInt()
 * Checks the seq for a match of the reverse primer
 *   internally.
 */
int checkRevInt(char* seq, char* rev, int st,
    int misAllow, int len) {
  int last = strlen(seq) - len + 1;
  for (int i = st; i < last; i++) {
    int mis = misAllow;
    int j;
    for (j = 0; j < len; j++)
      if (rev[j] != seq[i + j] &&
          (rev[j] == 'A' || rev[j] == 'C' ||
          rev[j] == 'G' || rev[j] == 'T' ||
          ambig(rev[j], seq[i + j])) && --mis < 0)
        break;
    if (j == len)
      return i;
  }
  return 0;
}
Exemple #6
0
/* int checkRevLen()
 * Checks the seq for a match of the reverse primer
 *   based on the expected amplicon length.
 */
int checkRevLen(char* seq, char* rev, int st,
    int bedSt, int bedEnd) {
  // check only the 3' fragment, do not allow mismatches
  // allow primer to match starting at diff. positions
  int len = strlen(seq);
  for (int off = bedSt; off < bedEnd; off++) {
    if (st+off >= len)
      break;
    int j;
    for (j = 0; rev[j] != '\0' && seq[st+j+off] != '\0'; j++)
      if (rev[j] != seq[st+j+off] &&
          (rev[j] == 'A' || rev[j] == 'C' ||
          rev[j] == 'G' || rev[j] == 'T' ||
          ambig(rev[j], seq[st+j+off])))
        break;
    if (rev[j] == '\0' || seq[st+j+off] == '\0')
      return st+off;
  }
  return 0;
}