bdf89ec7dc682d54242bbc038230caeaa81f55ff
max
Fri Dec 18 15:05:31 2015 -0800
fixing malacards outlink after code review, HT to kate, refs #14417
diff --git src/hg/hgGene/malacards.c src/hg/hgGene/malacards.c
index d70acc0..2b61577 100644
--- src/hg/hgGene/malacards.c
+++ src/hg/hgGene/malacards.c
@@ -1,84 +1,97 @@
/* malacards - do malacards section. parts copied from gad.c */
/* Copyright (C) 2013 The Regents of the University of California
* See README in this or parent directory for licensing information. */
#include "common.h"
#include "hash.h"
#include "linefile.h"
#include "dystring.h"
#include "cheapcgi.h"
#include "spDb.h"
#include "hgGene.h"
#include "hdb.h"
#include "net.h"
static boolean malacardsExists(struct section *section,
struct sqlConnection *conn, char *geneId)
/* Return TRUE if malacards table exists and it has an entry with the gene symbol */
{
char query[1024];
char *geneSymbol;
if (sqlTableExists(conn, "malacards") == TRUE)
{
sqlSafef(query, sizeof(query), "select k.geneSymbol from kgXref k, malacards m"
" where k.kgId='%s' and k.geneSymbol = m.geneSymbol", geneId);
geneSymbol = sqlQuickString(conn, query);
if (geneSymbol != NULL) return(TRUE);
}
return(FALSE);
}
static void malacardsPrint(struct section *section,
struct sqlConnection *conn, char *geneId)
/* Print out malacards section. */
{
char query[1024];
struct sqlResult *sr;
char **row;
char *itemName;
sqlSafef(query, sizeof(query), "select k.geneSymbol from kgXref k, malacards m"
" where k.kgId='%s' and k.geneSymbol = m.geneSymbol", geneId);
itemName = sqlQuickString(conn, query);
printf("Malacards Gene Search: ");
-printf("", itemName);
+printf("", itemName);
printf("%s\n", itemName);
/* List diseases associated with the gene */
sqlSafef(query, sizeof(query),
-"select maladySymbol, urlSuffix, mainName, round(geneScore) from malacards where isElite=1 and geneSymbol='%s' order by geneScore desc",
+"select maladySymbol, urlSuffix, mainName, round(geneScore), isElite from malacards where geneSymbol='%s' order by geneScore desc",
itemName);
sr = sqlMustGetResult(conn, query);
row = sqlNextRow(sr);
if (row != NULL)
printf("
Diseases sorted by score: ");
+int eliteCount = 0;
+
while (row != NULL)
{
char *maladySym = row[0];
char *mainName = row[2];
char *score = row[3];
- printf("%s (%s)", maladySym, mainName, score);
+ char *isElite = row[4];
+ char *isEliteChar = "";
+ if (sameWord(isElite, "1"))
+ {
+ isEliteChar = "*";
+ eliteCount += 1;
+ }
+
+ printf("%s%s (%s)",
+ maladySym, mainName, isEliteChar, score);
row = sqlNextRow(sr);
if (row!=NULL)
printf(", ");
}
+if (eliteCount!=0)
+ printf("
* = Manually curated disease association");
sqlFreeResult(&sr);
}
struct section *malacardsSection(struct sqlConnection *conn,
struct hash *sectionRa)
/* Create malacards section. */
{
struct section *section = sectionNew(sectionRa, "malacards");
section->exists = malacardsExists;
section->print = malacardsPrint;
return section;
}