static void processSelectedPsl(struct sqlConnection *conn, struct gbSelect* select, struct gbStatus* status, struct psl* psl) /* Process the next PSL that is selected for load */ { struct gbAlignTbl *gat = gbAlignTblSetGet(alignTblSet, status); gbAlignTblWrite(gat, psl, conn); if (status->srcDb == GB_REFSEQ) { /* create refSeq genePred */ struct gbGeneTbl *ggt = (status->orgCat == GB_NATIVE) ? gbGeneTblSetRefGeneGet(geneTblSet, select->hasVersion, conn) : gbGeneTblSetXenoRefGeneGet(geneTblSet, select->hasVersion, conn); gbGeneTblWrite(ggt, status, psl, conn); } if (status->isMgcFull) { /* create MGC genePred and psl */ struct gbGeneTbl *ggt = gbGeneTblSetMgcGenesGet(geneTblSet, select->hasVersion, conn); gbGeneTblWrite(ggt, status, psl, conn); struct gbAlignTbl *mgat = gbAlignTblSetGetMgc(alignTblSet); gbAlignTblWrite(mgat, psl, conn); } if (status->isOrfeome) { /* create ORFeome genePred and psl */ struct gbGeneTbl *ggt = gbGeneTblSetOrfeomeGenesGet(geneTblSet, select->hasVersion, conn); gbGeneTblWrite(ggt, status, psl, conn); struct gbAlignTbl *ogat = gbAlignTblSetOrfeomeGet(alignTblSet); gbAlignTblWrite(ogat, psl, conn); } }
static void updateGeneEntries(struct sqlConnection *conn, struct gbGeneTblSet *ggts, struct gbStatus* status, boolean hasVersion) /* update gene table entries when annotation have changed */ { if (status->srcDb == GB_REFSEQ) { struct gbGeneTbl *geneTbl = (status->orgCat == GB_NATIVE) ? gbGeneTblSetRefGeneGet(ggts, hasVersion, conn) : gbGeneTblSetXenoRefGeneGet(ggts, hasVersion, conn); gbGeneTblRebuild(geneTbl, status, conn); } else { // can be both MGC and orfeome if (status->isMgcFull) gbGeneTblRebuild(gbGeneTblSetMgcGenesGet(ggts, hasVersion, conn), status, conn); if (status->isOrfeome) gbGeneTblRebuild(gbGeneTblSetOrfeomeGenesGet(ggts, hasVersion, conn), status, conn); } }