4dd0e74f2da650f4f41ccfc29fc18df024e303d9
braney
Tue Nov 29 18:03:37 2016 -0800
get BLAT custom tracks to work on assembly hubs
diff --git src/hg/hgBlat/hgBlat.c src/hg/hgBlat/hgBlat.c
index f3d9b91..f0621ef 100644
--- src/hg/hgBlat/hgBlat.c
+++ src/hg/hgBlat/hgBlat.c
@@ -260,32 +260,47 @@
printf("", url);
printf("", url);
htmlEnd();
}
static void makeBigPsl(char *pslName, char *faName, char *db, char *outputBigBed)
/* Make a bigPsl with the blat results. */
{
struct tempName bigPslTn;
trashDirFile(&bigPslTn, "hgBlat", "bp", ".bigPsl");
char cmdBuffer[4096];
safef(cmdBuffer, sizeof(cmdBuffer), "loader/pslToBigPsl %s -fa=%s stdout | sort -k1,1 -k2,2n > %s", pslName, faName, bigPslTn.forCgi);
system(cmdBuffer);
-safef(cmdBuffer, sizeof(cmdBuffer), "loader/bedToBigBed -extraIndex=name -tab -as=loader/bigPsl.as -type=bed9+16 %s http://hgdownload.cse.ucsc.edu/goldenPath/%s/bigZips/%s.chrom.sizes %s",
- bigPslTn.forCgi, db, db, outputBigBed);
+char buf[4096];
+char *twoBitDir;
+if (trackHubDatabase(db))
+ {
+ struct trackHubGenome *genome = trackHubGetGenome(db);
+ twoBitDir = genome->twoBitPath;
+ }
+else
+ {
+ safef(buf, sizeof(buf), "/gbdb/%s", db);
+ twoBitDir = hReplaceGbdbSeqDir(buf, db);
+ safef(buf, sizeof(buf), "%s%s.2bit", twoBitDir, db);
+ twoBitDir = buf;
+ }
+
+safef(cmdBuffer, sizeof(cmdBuffer), "loader/bedToBigBed -udcDir=%s -extraIndex=name -sizesIs2Bit -tab -as=loader/bigPsl.as -type=bed9+16 %s %s %s",
+ udcDefaultDir(), bigPslTn.forCgi, twoBitDir, outputBigBed);
system(cmdBuffer);
unlink(bigPslTn.forCgi);
}
void showAliPlaces(char *pslName, char *faName, char *customText, char *database,
enum gfType qType, enum gfType tType,
char *organism, boolean feelingLucky)
/* Show all the places that align. */
{
struct lineFile *lf = pslFileOpen(pslName);
struct psl *pslList = NULL, *psl;
char *browserUrl = hgTracksName();
char *hgcUrl = hgcName();
char uiState[64];
char *vis;