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); } }
void gbGeneTblRebuild(struct gbGeneTbl *ggt, struct gbStatus* status, struct sqlConnection *conn) /* rebuild a gene from an alignment that is already loaded in a table */ { char where[128]; sqlSafefFrag(where, sizeof(where), "qName = \"%s\"", status->acc); struct psl *psls = pslReaderLoadQuery(conn, ggt->alnTbl, where); struct psl *psl; for (psl = psls; psl != NULL; psl = psl->next) gbGeneTblWrite(ggt, status, psl, conn); pslFreeList(&psls); }