src/hg/hgc/hgc.c 1.1546
1.1546 2009/05/21 19:24:12 fanhsu
Added decipher section.
Index: src/hg/hgc/hgc.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/hgc/hgc.c,v
retrieving revision 1.1545
retrieving revision 1.1546
diff -b -B -U 4 -r1.1545 -r1.1546
--- src/hg/hgc/hgc.c 20 May 2009 18:08:22 -0000 1.1545
+++ src/hg/hgc/hgc.c 21 May 2009 19:24:12 -0000 1.1546
@@ -8571,8 +8571,84 @@
printGadDetails(tdb, item, FALSE);
printTrackHtml(tdb);
}
+void printDecipherDetails(struct trackDb *tdb, char *itemName, boolean encode)
+/* Print details of a DECIPHER entry. */
+{
+struct sqlConnection *conn = hAllocConn(database);
+char query[256];
+struct sqlResult *sr;
+char **row;
+char *strand={"+"};
+
+printf("<H3>Patient %s </H3>", itemName);
+
+/* print phenotypes */
+safef(query, sizeof(query),
+ "select distinct phenotype from decipherRaw where id ='%s'", itemName);
+sr = sqlMustGetResult(conn, query);
+row = sqlNextRow(sr);
+if (row != NULL)
+ {
+ printf("<B>Phenotype: </B><UL>");
+ while (row != NULL)
+ {
+ printf("<LI>");
+ printf("%s\n", row[0]);
+ row = sqlNextRow(sr);
+ }
+ printf("</UL>");
+ }
+sqlFreeResult(&sr);
+
+/* link to Ensembl DECIPHER Patient View page */
+printf("For more details of patient %s, click ", itemName);
+printf("<A HREF=\"%s%s\" target=_blank>",
+ "https://decipher.sanger.ac.uk/application/patient/", itemName);
+printf("here</A>.<BR><BR>");
+
+/* print position inof */
+safef(query, sizeof(query),
+ "select chrom, chromStart, chromEnd from decipher where name ='%s'", itemName);
+sr = sqlMustGetResult(conn, query);
+row = sqlNextRow(sr);
+if (row != NULL)
+ {
+ printPosOnChrom(row[0], atoi(row[1]), atoi(row[2]), strand, TRUE, itemName);
+ }
+sqlFreeResult(&sr);
+
+/* print UCSC Genes in the reported region */
+safef(query, sizeof(query),
+ "select distinct geneSymbol, kgId, description from decipher d, kgXref x, knownToDecipher t where value ='%s' and t.name=kgId", itemName);
+sr = sqlMustGetResult(conn, query);
+row = sqlNextRow(sr);
+if (row != NULL)
+ {
+ printf("<BR><B>UCSC Gene(s) in this genomic region: </B><UL>");
+ while (row != NULL)
+ {
+ printf("<LI>");
+ printf("<A HREF=\"%s%s\" target=_blank>","./hgGene\?hgg_chrom=none&hgg_gene=", row[1]);
+ printf("%s (%s)</A> ", row[0], row[1]);
+ printf(" %s", row[2]);
+ row = sqlNextRow(sr);
+ }
+ printf("</UL>");
+ }
+sqlFreeResult(&sr);
+hFreeConn(&conn);
+}
+
+void doDecipher(struct trackDb *tdb, char *item, char *itemForUrl)
+/* Put up DECIPHER track info. */
+{
+genericHeader(tdb, item);
+printDecipherDetails(tdb, item, FALSE);
+printTrackHtml(tdb);
+}
+
char *gbCdnaGetDescription(struct sqlConnection *conn, char *acc)
/* return mrna description, or NULL if not available. freeMem result */
{
char query[128];
@@ -21566,8 +21642,12 @@
else if (sameWord(track, "gad"))
{
doGad(tdb, item, NULL);
}
+else if (sameWord(track, "decipher"))
+ {
+ doDecipher(tdb, item, NULL);
+ }
else if (sameWord(track, "omimGene"))
{
doOmimGene(tdb, item);
}