a6cdf21626f0dc03d6d1d0f2015e39a636822675 hiram Wed Jan 31 11:09:03 2018 -0800 more general use of ensemblIdUrl from trackDb for ensGene refs #20696 diff --git src/hg/hgc/hgc.c src/hg/hgc/hgc.c index aa61b6b..eb4d55b 100644 --- src/hg/hgc/hgc.c +++ src/hg/hgc/hgc.c @@ -9005,31 +9005,39 @@ if (chp != NULL) *chp = '\0'; } genomeStrEnsembl = ensOrgNameFromScientificName(scientificName); if (genomeStrEnsembl == NULL) { warn("Organism %s not found!", organism); fflush(stdout); return; } /* print URL that links to Ensembl transcript details */ if (sameString(ensemblIdUrl, "http://www.ensembl.org") && archive != NULL) safef(ensUrl, sizeof(ensUrl), "http://%s.archive.ensembl.org/%s", archive, genomeStrEnsembl); else + { + /* trackDb ensemblIdUrl might be more than just top level URL, + * simply take it as given, e.g. criGriChoV1 + */ + if (countChars(ensemblIdUrl, '/') > 2) + safef(ensUrl, sizeof(ensUrl), "%s", ensemblIdUrl); + else safef(ensUrl, sizeof(ensUrl), "%s/%s", ensemblIdUrl, genomeStrEnsembl); + } char query[512]; char *geneName = NULL; if (hTableExists(database, "ensemblToGeneName")) { sqlSafef(query, sizeof(query), "select value from ensemblToGeneName where name='%s'", itemName); geneName = sqlQuickString(conn, query); } char *ensemblSource = NULL; if (hTableExists(database, "ensemblSource")) { sqlSafef(query, sizeof(query), "select source from ensemblSource where name='%s'", itemName); ensemblSource = sqlQuickString(conn, query); }