예제 #1
0
boolean checkGene(char *db, struct genePred *gene)
/* validate that a genePred is ok, either exit or return false if it's not */
{
struct chromInfo *ci = hGetChromInfo(db, gene->chrom);
if (ci == NULL)
    {
    fprintf(stderr, "Error: %s has invalid chrom for %s: %s\n",
            gene->name, db, gene->chrom);
    gInvalidCnt++;
    return FALSE;
    }
else if (genePredCheck("invalid genePred", stderr, ci->size, gene) == 0)
    return TRUE;
else
    {
    gInvalidCnt++;
    return FALSE;
    }
}
static void checkAGenePred(char *fileTbl, int iRec, struct genePred *gp)
/* check one genePred */
{
int chromSize = -1;  /* default to not checking */
char desc[512];

safef(desc, sizeof(desc), "%s:%d", fileTbl, iRec);
if (gDb != NULL)
    {
    struct chromInfo *ci = hGetChromInfo(gDb, gp->chrom);
    if (ci == NULL)
        {
        fprintf(stderr, "Error: %s: %s has invalid chrom for %s: %s\n",
                desc, gp->name, gDb, gp->chrom);
        gErrCount++;
        chromSize = -1;  // don't validate
        }
    else
        chromSize = ci->size;
    }
gErrCount += genePredCheck(desc, stderr, chromSize, gp);
gChkCount++;
}