8a0946dd6870f10cde056ba243f1fb4ec1fd16b4 angie Thu Feb 27 11:58:33 2014 -0800 Adding support for plain VCF custom tracks (as opposed to VCF+tabix),since users seem to want to upload VCF, and as long as the file is not too big it will work OK. This means adding a new track type vcf (as opposed to vcfTabix) and supporting it in hgTracks, hgTrackUi, hgc, hgTables and hgVai. (and others I've forgotten?) refs #12416 diff --git src/hg/hgc/hgc.c src/hg/hgc/hgc.c index 34bfafb..c9adb68 100644 --- src/hg/hgc/hgc.c +++ src/hg/hgc/hgc.c @@ -4013,30 +4013,32 @@ int num = 12; genericBedClick(conn, tdb, item, start, num); } else if (startsWith("gvf", type)) { doGvf(tdb, item); } #ifdef USE_BAM else if (sameString(type, "bam")) doBamDetails(tdb, item); #endif // USE_BAM #ifdef USE_TABIX else if (sameString(type, "vcfTabix")) doVcfTabixDetails(tdb, item); #endif // USE_TABIX + else if (sameString(type, "vcf")) + doVcfDetails(tdb, item); } if (imagePath) { char *bigImagePath = trackDbSettingClosestToHome(tdb, ITEM_BIG_IMAGE_PATH); char *bothWords[2]; int shouldBeTwo = chopLine(imagePath, bothWords); if (shouldBeTwo != 2) errAbort("itemImagePath setting for %s track incorrect. Needs to be \"itemImagePath <path> <suffix>\".", tdb->track); printf("<BR><IMG SRC=\"%s/%s.%s\"><BR><BR>\n", bothWords[0], item, bothWords[1]); shouldBeTwo = chopLine(bigImagePath, bothWords); if (shouldBeTwo != 2) errAbort("bigItemImagePath setting for %s track incorrect. Needs to be \"itemImagePath <path> <suffix>\".", tdb->track); printf("<A HREF=\"%s/%s.%s\">Download Original Image</A><BR>\n", bothWords[0], item, bothWords[1]); } @@ -20265,30 +20267,32 @@ doExpRatio(ct->tdb, fileItem, ct); else if (sameWord(type, "encodePeak")) doEncodePeak(ct->tdb, ct, fileName); else if (sameWord(type, "bigWig")) bigWigCustomClick(ct->tdb); else if (sameWord(type, "bigBed")) bigBedCustomClick(ct->tdb); #ifdef USE_BAM else if (sameWord(type, "bam")) doBamDetails(ct->tdb, itemName); #endif//def USE_BAM #ifdef USE_TABIX else if (sameWord(type, "vcfTabix")) doVcfTabixDetails(ct->tdb, itemName); #endif//def USE_TABIX +else if (sameWord(type, "vcf")) + doVcfDetails(ct->tdb, itemName); else if (sameWord(type, "makeItems")) doMakeItemsDetails(ct, fileName); // fileName is first word, which is, go figure, id else if (ct->wiggle) { if (ct->dbTrack) { struct sqlConnection *conn = hAllocConn(CUSTOM_TRASH); genericWiggleClick(conn, ct->tdb, fileItem, start); hFreeConn(&conn); } else genericWiggleClick(NULL, ct->tdb, fileItem, start); /* the NULL is for conn, don't need that for custom tracks */ } else if (ct->dbTrack && startsWith("bedGraph", ct->dbTrackType))