852fd481e68ca3d3feaf29e1da20e1b49304f9ce angie Fri Mar 14 10:03:48 2014 -0700 Fixing problem with hgVai code not recognizing a genePred whoseasObject was derived from sql field info. Unfortunately, when a sql field's type is longblob, we don't know whether its autoSql definition was a list (like exonStarts[exonCount]) or just an lstring. To play it safe, we call it an lstring which works fine for feeding data through the annoGrator system. However, when comparing a sql-derived asObj with lstring to the real autoSql-derived asObj, asCompareObjs will see different types for the same field and return false. So for the purposes of recognizing a genePred, we need to simply compare column names. diff --git src/hg/hgVai/libifyMe.c src/hg/hgVai/libifyMe.c index 93eb928..450c49b 100644 --- src/hg/hgVai/libifyMe.c +++ src/hg/hgVai/libifyMe.c @@ -448,24 +448,24 @@ if (bigDataUrl != NULL) grator = gratorFromBigDataFileOrUrl(bigDataUrl, assembly, maxOutRows, overlapRule); else errAbort("Can't find dbTableName or bigDataUrl for custom track %s", selTable); } } if (startsWith("wig", tdb->type)) { grator = annoGrateWigDbNew(dataDb, dbTable, assembly, maxOutRows); } else { struct annoStreamer *streamer = streamerFromTrack(assembly, dbTable, tdb, chrom, maxOutRows); if (primaryAsObj != NULL && (asObjectsMatch(primaryAsObj, pgSnpAsObj()) || asObjectsMatch(primaryAsObj, vcfAsObj())) - && asObjectsMatchFirstN(streamer->asObj, genePredAsObj(), 10)) + && asColumnNamesMatchFirstN(streamer->asObj, genePredAsObj(), 10)) grator = annoGratorGpVarNew(streamer); else grator = annoGratorNew(streamer); } grator->setOverlapRule(grator, overlapRule); return grator; }