85a7688f63357ea593b2d93fb5b9ccefb215f3a3 max Wed Jan 27 10:53:36 2016 -0800 renaming malacards.c to malaCards.c by email from Jim. Also changing the comments but not the table name, as it has already been pushed to the RR. no redmine. diff --git src/hg/hgGene/malaCards.c src/hg/hgGene/malaCards.c new file mode 100644 index 0000000..438a2b1 --- /dev/null +++ src/hg/hgGene/malaCards.c @@ -0,0 +1,93 @@ +/* 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("%s\n", itemName); + +/* List diseases associated with the gene */ +sqlSafef(query, sizeof(query), +"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 gene-association score: "); + +int eliteCount = 0; + +while (row != NULL) + { + char *maladySym = row[0]; + char *mainName = row[2]; + char *score = row[3]; + 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; +}