コード例 #1
0
void gbMetaDataDeleteFromIdTables(struct sqlConnection *conn, struct dbLoadOptions* options,
                                  struct sqlDeleter* deleter)
/* delete sequence from metadata tables with ids.  These are always
 * deleted and rebuilt even for modification */
{
gOptions = options;
setGeneTblFlags(conn, options);
sqlDeleterDel(deleter, conn, IMAGE_CLONE_TBL, "acc");
sqlDeleterDel(deleter, conn, "gbMiscDiff", "acc");
sqlDeleterDel(deleter, conn, "gbWarn", "acc");
}
コード例 #2
0
static void deleteFromGeneTbls(struct sqlConnection *conn, struct gbSelect* select, 
                               struct sqlDeleter* deleter)
/* delete accession from gene tables.  Used when metaData has changed, but
 * sequence has not changed. */
{
if (select->release->srcDb == GB_REFSEQ)
    {
    if (select->orgCats & GB_NATIVE)
        {
        sqlDeleterDel(deleter, conn, REF_GENE_TBL, "name");
        sqlDeleterDel(deleter, conn, REF_FLAT_TBL, "name");
        }
    if (select->orgCats & GB_XENO)
        {
        sqlDeleterDel(deleter, conn, XENO_REF_GENE_TBL, "name");
        sqlDeleterDel(deleter, conn, XENO_REF_FLAT_TBL, "name");
        }
    }
else
    {
    if (haveMgc)
        {
        sqlDeleterDel(deleter, conn, MGC_GENES_TBL, "name");
        sqlDeleterDel(deleter, conn, MGC_FULL_MRNA_TBL, "qName");
        }
    if (haveOrfeome)
        {
        sqlDeleterDel(deleter, conn, ORFEOME_GENES_TBL, "name");
        sqlDeleterDel(deleter, conn, ORFEOME_MRNA_TBL, "qName");
        }
    }
}
コード例 #3
0
static void removeGenBankMrna(char *db, struct sqlConnection *conn, struct gbSelect* select,
                              struct sqlDeleter* deleter)
/* delete all genbank mRNA alignments */
{
if (select->orgCats & GB_NATIVE)
    {
    struct slName* chrom;
    char table[64];
    sqlDropTable(conn, ALL_MRNA_TBL);
    sqlDeleterDel(deleter, conn, MRNA_ORIENTINFO_TBL, "name");
    for (chrom = getChromNames(db); chrom != NULL; chrom = chrom->next)
        {
        safef(table, sizeof(table), "%s_mrna", chrom->name);
        sqlDropTable(conn, table);
        }
    if (haveMgc)
        sqlDropTable(conn, MGC_FULL_MRNA_TBL);
    if (haveOrfeome)
        sqlDropTable(conn, ORFEOME_MRNA_TBL);
    }
if (select->orgCats & GB_XENO)
    {
    sqlDropTable(conn, XENO_MRNA_TBL);
    }
    
}
コード例 #4
0
static void refSeqPepClean(struct sqlConnection *conn)
/* Delete all refseq peptides that are in gbSeq but no longer
 * referenced by refLink.  */
{
char query[1024];
struct sqlResult* sr;
char **row;
struct sqlDeleter* deleter;

/* don't do anything if we don't have the refLink table.  This can
 * happen if refSeq was enabled after the initial load */
if (!sqlTableExists(conn, "refLink"))
    return;

deleter = sqlDeleterNew(gTmpDir, (gbVerbose >= 4));

/* Use a join to get list of acc, which proved reasonable fastly because
 * the the list is small */
sqlSafef(query, sizeof(query), "SELECT acc FROM gbSeq LEFT JOIN refLink ON (refLink.protAcc = gbSeq.acc) "
      "WHERE (acc LIKE 'NP_%%') AND (refLink.protAcc IS NULL)");
sr = sqlGetResult(conn, query);
while ((row = sqlNextRow(sr)) != NULL)
    sqlDeleterAddAcc(deleter, row[0]);
sqlFreeResult(&sr);

sqlDeleterDel(deleter, conn, SEQ_TBL, "acc");
sqlDeleterFree(&deleter);
}
コード例 #5
0
static void deleteGenBankChromAligns(char *db, struct sqlConnection *conn,
                                     struct sqlDeleter* deleter,
                                     unsigned type, char *typeStr)
/* delete outdated genbank alignments from per-chrom tables. */
{
struct slName* chrom;
char table[64];
for (chrom = getChromNames(db); chrom != NULL; chrom = chrom->next)
    {
    safef(table, sizeof(table), "%s_%s", chrom->name, typeStr);
    sqlDeleterDel(deleter, conn, table, "qName");
    if (type == GB_EST)
        {
        safef(table, sizeof(table), "%s_intronEst", chrom->name);
        sqlDeleterDel(deleter, conn, table, "qName");
        }
    }
}
コード例 #6
0
static void deleteFromTables(char *db, struct sqlConnection *conn,
                             struct sqlDeleter* deleter, unsigned srcDb,
                             struct dbLoadOptions* options)
/* deleted acc in a sqlDeleter from all tables. */
{
/* order is important here */
gbAlignDataDeleteFromTables(db, conn, srcDb, GB_MRNA, deleter, options);
gbAlignDataDeleteFromTables(db, conn, srcDb, GB_EST, deleter, options);

gbMetaDataDeleteFromIdTables(conn, options, deleter);
gbMetaDataDeleteFromTables(conn, options, srcDb, deleter);
sqlDeleterDel(deleter, conn, "gbStatus", "acc");
}
コード例 #7
0
static void deleteRefSeqAligns(struct sqlConnection *conn,
                               struct sqlDeleter* deleter)
/* delete outdated refseq alignments from the database. */
{
sqlDeleterDel(deleter, conn, REFSEQ_ALI_TBL, "qName");
sqlDeleterDel(deleter, conn, REF_GENE_TBL, "name");
sqlDeleterDel(deleter, conn, REF_FLAT_TBL, "name");
sqlDeleterDel(deleter, conn, XENO_REFSEQ_ALI_TBL, "qName");
sqlDeleterDel(deleter, conn, XENO_REF_GENE_TBL, "name");
sqlDeleterDel(deleter, conn, XENO_REF_FLAT_TBL, "name");
sqlDeleterDel(deleter, conn, "mrnaOrientInfo", "name");
}
コード例 #8
0
static void removeRefSeq(struct sqlConnection *conn, struct gbSelect* select,
                         struct sqlDeleter* deleter)
/* delete all refseq alignments */
{
if (select->orgCats & GB_NATIVE)
    {
    sqlDropTable(conn, REFSEQ_ALI_TBL);
    sqlDeleterDel(deleter, conn, MRNA_ORIENTINFO_TBL, "name");
    }
if (select->orgCats & GB_XENO)
    {
    sqlDropTable(conn, XENO_REFSEQ_ALI_TBL);
    }
}
コード例 #9
0
void gbMetaDataDeleteFromTables(struct sqlConnection *conn, struct dbLoadOptions* options,
                                unsigned srcDb, struct sqlDeleter* deleter)
/* delete sequence from metadata tables */
{
gOptions = options;
setGeneTblFlags(conn, options);
if (srcDb == GB_REFSEQ)
    {
    sqlDeleterDel(deleter, conn, "refSeqStatus", "mrnaAcc");
    sqlDeleterDel(deleter, conn, "refSeqSummary", "mrnaAcc");
    sqlDeleterDel(deleter, conn, "refLink", "mrnaAcc");
    }
sqlDeleterDel(deleter, conn, "gbMiscDiff", "acc");
sqlDeleterDel(deleter, conn, "gbWarn", "acc");
sqlDeleterDel(deleter, conn, IMAGE_CLONE_TBL, "acc");
sqlDeleterDel(deleter, conn, "gbCdnaInfo", "acc");
sqlDeleterDel(deleter, conn, "gbSeq", "acc");
/* seq must be last */
sqlDeleterDel(deleter, conn, SEQ_TBL, "acc");
}
コード例 #10
0
ファイル: refPepRepair.c プロジェクト: davidhoover/kent
static void makeRepairs(struct brokenRefPepTbl *brpTbl,
                        struct sqlConnection *conn,
                        struct extFileTbl* extFileTbl,
                        boolean dryRun)
/* make repairs once data is collected */
{
static char *tmpDir = "/var/tmp";
struct hashCookie cookie;
struct hashEl *hel;
int repairCnt = 0;
int dropCnt = 0;
struct seqTbl* seqTbl = seqTblNew(conn, tmpDir, (gbVerbose > 3));
struct sqlDeleter* seqTblDeleter = sqlDeleterNew(tmpDir, (gbVerbose > 3));

cookie = hashFirst(brpTbl->protAccHash);
while ((hel = hashNext(&cookie)) != NULL)
    {
    struct brokenRefPep *brp = hel->val;
    if ((brp->mrnaAcc != NULL) && (brp->newFaOff >= 0))
        {
        refPepRepairOne(conn, brp, seqTbl, extFileTbl, dryRun);
        repairCnt++;
        }
    else
        {
        refPepDropOne(conn, brp, seqTblDeleter, dryRun);
        dropCnt++;
        }
    }
if (dryRun)
    {
    gbVerbMsg(1, "%s: would have repaired %d refseq protein gbExtFile entries", 
              sqlGetDatabase(conn), repairCnt);
    gbVerbMsg(1, "%s: would have dropped %d refseq protein gbExtFile entries", 
              sqlGetDatabase(conn), dropCnt);
    }
else
    {
    seqTblCommit(seqTbl, conn);
    gbVerbMsg(1, "%s: repaired %d refseq protein gbExtFile entries",
              sqlGetDatabase(conn), repairCnt);
    sqlDeleterDel(seqTblDeleter, conn, SEQ_TBL, "acc");
    gbVerbMsg(1, "%s: dropped %d refseq protein gbExtFile entries",
              sqlGetDatabase(conn), dropCnt);
    }
}
コード例 #11
0
void removeForReload(struct gbSelect* select, struct sqlConnection* conn,
                     char* tmpDir)
/* delete all in selected categories.  This is faster than deleting
 * individually */
{
struct sqlDeleter * deleter;
if (select->type & GB_EST)
    errAbort("-reload doesn't handle ESTs (it would be very, very slow),"
             " use -drop instead");

deleter = gbBuildStateReloadDeleter(conn, select,  tmpDir);
if (deleter != NULL)
    {
    gbAlignRemove(gDatabase, conn, &gOptions, select, deleter);
    gbMetaDataRemove(conn, &gOptions, select, deleter);
    sqlDeleterDel(deleter, conn, "gbStatus", "acc");
    }
sqlDeleterFree(&deleter);
}
コード例 #12
0
static void deleteGenBankAligns(char *db, struct sqlConnection *conn,
                                struct sqlDeleter* deleter, unsigned type,
                                struct dbLoadOptions* options)
/* delete outdated genbank alignments from the database. */
{
char table[64];
char* typeStr = ((type == GB_MRNA) ? "mrna" : "est");
char *xenoTable = ((type == GB_MRNA) ? XENO_MRNA_TBL : XENO_EST_TBL);

safef(table, sizeof(table), "all_%s", typeStr);
sqlDeleterDel(deleter, conn, table, "qName");

if (options->flags & DBLOAD_PER_CHROM_ALIGN)
    deleteGenBankChromAligns(db, conn, deleter, type, typeStr);
else 
    {
    if (type == GB_EST)
        sqlDeleterDel(deleter, conn, INTRON_EST_TBL, "qName");
    }

sqlDeleterDel(deleter, conn, xenoTable, "qName");

safef(table, sizeof(table), "%sOrientInfo", typeStr);
sqlDeleterDel(deleter, conn, table, "name");

if (haveMgc)
    {
    sqlDeleterDel(deleter, conn, MGC_FULL_MRNA_TBL, "qName");
    sqlDeleterDel(deleter, conn, MGC_GENES_TBL, "name");
    }
if (haveOrfeome)
    {
    sqlDeleterDel(deleter, conn, ORFEOME_MRNA_TBL, "qName");
    sqlDeleterDel(deleter, conn, ORFEOME_GENES_TBL, "name");
    }
}