1568d3c9a7cd5d15f6299f8fdabd3aa914802ad8 kate Wed Mar 16 16:08:40 2016 -0700 Integrate gene class into GTEx cgi support. refs #15645 diff --git src/hg/hgc/gtexClick.c src/hg/hgc/gtexClick.c index a080a74..bc73e57 100644 --- src/hg/hgc/gtexClick.c +++ src/hg/hgc/gtexClick.c @@ -19,44 +19,44 @@ struct tissueSampleVals /* RPKM expression values for multiple samples */ { struct tissueSampleVals *next; char *name; /* GTEx tissue name */ char *description; /* GTEx tissue description */ int color; /* GTEx tissue color */ int count; /* number of samples */ double *vals; /* RPKM values */ double min, max; /* minimum, maximum value */ double q1, median, q3; /* quartiles */ struct slDouble *valList; /* used to create val array */ }; -char *gencodeTranscriptClassColorCode(char *transcriptClass) +char *geneClassColorCode(char *geneClass) /* Get HTML color code used by GENCODE for transcript class - * WARNING: should share code with transcript color handling in hgTracks */ + * WARNING: should share code with gene color handling in hgTracks */ { char *unknown = "#010101"; -if (transcriptClass == NULL) +if (geneClass == NULL) return unknown; -if (sameString(transcriptClass, "coding")) +if (sameString(geneClass, "coding")) return "#0C0C78"; -if (sameString(transcriptClass, "nonCoding")) +if (sameString(geneClass, "nonCoding")) return "#006400"; -if (sameString(transcriptClass, "pseudo")) +if (sameString(geneClass, "pseudo")) return "#FF33FF"; -if (sameString(transcriptClass, "problem")) +if (sameString(geneClass, "problem")) return "#FE0000"; return unknown; } /********************************************************/ /* R implementation. Invokes R script */ void drawGtexRBoxplot(struct gtexGeneBed *gtexGene, struct tissueSampleVals *tsvList, boolean doLogTransform, char *version) /* Draw a box-and-whiskers plot from GTEx sample data, using R boxplot */ { /* Create R data frame. This is a tab-sep file, one row per sample, * with columns for sample, tissue, rpkm */ struct tempName dfTn; trashDirFile(&dfTn, "hgc", "gtexGene", ".df.txt"); @@ -225,33 +225,34 @@ genericHeader(tdb, item); printf("Gene: "); char *desc = getGeneDescription(gtexGene); if (desc == NULL) printf("%s
\n", gtexGene->name); else { printf("%s
\n", hgGeneName(), database, gtexGene->name, gtexGene->name); printf("Description: %s
\n", desc); } printf("Ensembl Gene ID: %s
\n", gtexGene->geneId); // The actual transcript model is a union, so this identification is approximate // (used just to find a transcript class) -//printf("Ensembl Transcript ID: %s
\n", gtexGene->transcriptId); -printf("Ensembl Class: %s
\n", - gencodeTranscriptClassColorCode(gtexGene->transcriptClass), gtexGene->transcriptClass); +char *geneClass = gtexGeneClass(gtexGene); +printf("GENCODE Biotype: %s
\n", gtexGene->geneType); +printf("Gene Class: %s
\n", + geneClassColorCode(geneClass), geneClass); printf("Genomic Position: %s:%d-%d
\n", hgTracksPathAndSettings(), database, gtexGene->chrom, gtexGene->chromStart+1, gtexGene->chromEnd, gtexGene->chrom, gtexGene->chromStart+1, gtexGene->chromEnd); printf("View at GTEx portal
\n", gtexGene->geneId); puts("

"); boolean doLogTransform = cartUsualBooleanClosestToHome(cart, tdb, FALSE, GTEX_LOG_TRANSFORM, GTEX_LOG_TRANSFORM_DEFAULT); double maxVal = 0.0; char *versionSuffix = gtexVersionSuffix(tdb->table); struct tissueSampleVals *tsvs = getTissueSampleVals(gtexGene, doLogTransform, versionSuffix, &maxVal); char *version = gtexVersion(tdb->table); drawGtexRBoxplot(gtexGene, tsvs, doLogTransform, version);