56771d4b5ff337151040f894a4c45f3e310e1cf6 angie Mon Jun 1 14:25:10 2015 -0700 Recognize bigGenePred type and provide better error message for unrecognized type from hub track (instead of trying to fall back on getting sql table info which of course fails for a hub). refs #14579 diff --git src/hg/lib/hAnno.c src/hg/lib/hAnno.c index 51437a1..127432d 100644 --- src/hg/lib/hAnno.c +++ src/hg/lib/hAnno.c @@ -160,54 +160,56 @@ streamer = annoStreamWigDbNew(dataDb, dbTable, assembly, maxOutRows); else if (sameString("vcfTabix", tdb->type)) { char *fileOrUrl = getBigDataFileName(dataDb, tdb, selTable, chrom); streamer = annoStreamVcfNew(fileOrUrl, TRUE, assembly, maxOutRows); } else if (sameString("vcf", tdb->type)) { char *fileOrUrl = getBigDataFileName(dataDb, tdb, dbTable, chrom); streamer = annoStreamVcfNew(fileOrUrl, FALSE, assembly, maxOutRows); } else if (sameString("bam", tdb->type)) { warn("Sorry, BAM is not yet supported"); } -else if (startsWith("bigBed", tdb->type)) +else if (startsWith("bigBed", tdb->type) || sameString("bigGenePred", tdb->type)) { char *fileOrUrl = getBigDataFileName(dataDb, tdb, selTable, chrom); streamer = annoStreamBigBedNew(fileOrUrl, assembly, maxOutRows); } else if (startsWith("bigWig", tdb->type)) { char *fileOrUrl = getBigDataFileName(dataDb, tdb, selTable, chrom); streamer = annoStreamBigWigNew(fileOrUrl, assembly); //#*** no maxOutRows support } else if (sameString("factorSource", tdb->type)) { char *sourceTable = trackDbSetting(tdb, "sourceTable"); char *inputsTable = trackDbSetting(tdb, "inputTrackTable"); streamer = annoStreamDbFactorSourceNew(dataDb, tdb->track, sourceTable, inputsTable, assembly, maxOutRows); } else if (sameString("knownGene", tdb->track)) { struct sqlConnection *conn = hAllocConn(dataDb); if (sqlTableExists(conn, "knownGene") && sqlTableExists(conn, "kgXref")) streamer = annoStreamDbKnownGeneNew(dataDb, assembly, maxOutRows); hFreeConn(&conn); } +else if (trackHubDatabase(db)) + errAbort("Unrecognized type '%s' for hub track '%s'", tdb->type, tdb->track); if (streamer == NULL) { char maybeSplitTable[HDB_MAX_TABLE_STRING]; if (!hFindSplitTable(dataDb, chrom, dbTable, maybeSplitTable, NULL)) errAbort("hAnnoStreamerFromTrackDb: can't find table (or split table) for '%s.%s'", dataDb, dbTable); struct asObject *asObj = getAutoSqlForTable(dataDb, maybeSplitTable, tdb, TRUE); streamer = annoStreamDbNew(dataDb, maybeSplitTable, assembly, asObj, maxOutRows); } return streamer; } struct annoGrator *hAnnoGratorFromBigFileUrl(char *fileOrUrl, struct annoAssembly *assembly, int maxOutRows, enum annoGratorOverlap overlapRule) /* Determine what kind of big data file/url we have and make streamer & grator for it. */