src/hg/instinct/bioInt2/bioIntUI.c 1.5

1.5 2009/03/31 01:06:15 jsanborn
added description field
Index: src/hg/instinct/bioInt2/bioIntUI.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/instinct/bioInt2/bioIntUI.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -b -B -U 4 -r1.4 -r1.5
--- src/hg/instinct/bioInt2/bioIntUI.c	29 Mar 2009 03:31:05 -0000	1.4
+++ src/hg/instinct/bioInt2/bioIntUI.c	31 Mar 2009 01:06:15 -0000	1.5
@@ -128,8 +128,18 @@
 
 return cohortCorrLoadByQuery(conn, query);
 }
 
+char *getFieldFromKgXref(struct sqlConnection *conn, char *geneSymbol, 
+			 char *field)
+{
+char query[256];
+safef(query, sizeof(query), 
+      "select %s from %s where geneSymbol = \"%s\" ",
+      field, KX_TABLE, geneSymbol);
+
+return sqlQuickString(conn, query);
+}
 
 /****** END HELPER FUNCTIONS *******/
 
 
@@ -208,16 +218,33 @@
 	break;
     }
 
 struct json *js = newJson();
+
+char *desc = getFieldFromKgXref(conn, af->feature_name, "description"); 
+if (!desc)
+    desc = cloneString(af->feature_name);
+
+/* String 'isoform xxx' from description... almost all entries have them */
+char *ptr = rStringIn("isoform", desc);
+if (ptr)
+    *ptr = '\0';
+jsonAddString(js, "description", desc);
+
+char *kgId = getFieldFromKgXref(conn, af->feature_name, "kgId");
+if (kgId)
+    jsonAddString(js, "hgg_gene", kgId);
+
+struct json *data = jsonAddContainer(js, "data");
 struct sqlResult *sr = sqlGetResult(conn, query);
 char **row = NULL;
 while ((row = sqlNextRow(sr)) != NULL)
     { 
     char *name = row[0];
     double val = atof(row[1]);
-    jsonAddDouble(js, name, val);
+    jsonAddDouble(data, name, val);
     }
+sqlFreeResult(&sr);
 
 if (js)
     hPrintf("%s\n", js->print(js));