e491b3ca6211e825e7f5b4e57a72a3e44574af63 kate Mon May 23 15:08:55 2016 -0700 Build patch for hgGene failure on hg38 (trying to access ensGene for GTEx section) diff --git src/hg/hgGene/gtex.c src/hg/hgGene/gtex.c index 59ecbbe..f05f2be 100644 --- src/hg/hgGene/gtex.c +++ src/hg/hgGene/gtex.c @@ -4,42 +4,58 @@ * See README in this or parent directory for licensing information. */ #include "common.h" #include "hash.h" #include "linefile.h" #include "dystring.h" #include "cart.h" #include "cheapcgi.h" #include "hdb.h" #include "hgGene.h" #include "gtexInfo.h" #include "gtexTissue.h" #include "gtexGeneBed.h" #include "gtexUi.h" -static boolean gtexExists(struct section *section, struct sqlConnection *conn, char *geneId) +static boolean gtexExists(struct section *section, struct sqlConnection *conn, char *ucscId) /* Return TRUE if GTEx data exists for this gene */ { -// Lookup geneId in knownToEnsembl to get ENST (w/ version), look that up (w/o version) -// in ensGene to get ENSG (w/o version), and save it for printer char query[512]; if (!sqlTableExists(conn, "gtexGene")) return FALSE; + +#define NO_ENSGENE 1 +// NOTE: Can remove this ifdef when/if hg38 ensGene is pushed +#ifdef NO_ENSGENE +if (sameString(database, "hg38")) + { + // Get ENSG (w/ version) from knownCanonical + sqlSafef(query, sizeof(query), + "SELECT SUBSTRING_INDEX(knownCanonical.protein,'.',1) FROM " + "knownCanonical, knownIsoforms WHERE " + "knownIsoforms.transcript='%s' AND " + "knownCanonical.clusterId=knownIsoforms.clusterId", ucscId); + } +else +#endif + +// Lookup ucsc gene ID in knownToEnsembl to get ENST (w/ version), look that up (w/o version) +// in ensGene to get ENSG (w/o version), and save it for printer sqlSafef(query, sizeof(query), "SELECT ensGene.name2 FROM ensGene, knownToEnsembl WHERE " "knownToEnsembl.name='%s' AND " - "ensGene.name=SUBSTRING_INDEX(knownToEnsembl.value,'.',1)", geneId); + "ensGene.name=SUBSTRING_INDEX(knownToEnsembl.value,'.',1)", ucscId); char *ensGene = sqlQuickString(conn, query); if (!ensGene) return FALSE; // construct full accession (with version) in gtexGene table sqlSafef(query, sizeof(query), "select geneId from gtexGene where geneId like '%s%%'", ensGene); ensGene = sqlQuickString(conn, query); if (!ensGene) return FALSE; section->items = ensGene; return TRUE; } static void gtexPrint(struct section *section, struct sqlConnection *conn, char *geneId)