1b7bcc0c14d301e3a97ad0ca9739a1172bdfde39
fanhsu
Tue Jul 12 16:07:33 2011 -0700
Refined details page for COSMIC track.
diff --git src/hg/hgc/hgc.c src/hg/hgc/hgc.c
index f805cd5..31e14dc 100644
--- src/hg/hgc/hgc.c
+++ src/hg/hgc/hgc.c
@@ -9096,94 +9096,145 @@
}
}
void doGad(struct trackDb *tdb, char *item, char *itemForUrl)
/* Put up GAD track info. */
{
genericHeader(tdb, item);
printGadDetails(tdb, item, FALSE);
printTrackHtml(tdb);
}
void printCosmicDetails(struct trackDb *tdb, char *itemName)
/* Print details of a COSMIC entry. */
{
struct sqlConnection *conn = hAllocConn(database);
+struct sqlConnection *conn2 = hAllocConn(database);
char query[1024];
+char query2[1024];
struct sqlResult *sr;
+struct sqlResult *sr2;
char **row;
+char **row2;
+
char *chp;
+char indent1[40] = {" "};
+char indent2[40] = {""};
char *source, *cosmic_mutation_id, *gene_name, *accession_number;
char *mut_description, *mut_syntax_cds, *mut_syntax_aa;
char *chromosome, *grch37_start, *grch37_stop, *mut_nt;
char *mut_aa, *tumour_site, *mutated_samples, *examined_samples, *mut_freq;
char *url = tdb->url;
char *chrom, *chromStart, *chromEnd;
chrom = cartOptionalString(cart, "c");
chromStart = cartOptionalString(cart, "o");
chromEnd = cartOptionalString(cart, "t");
safef(query, sizeof(query),
"select %s,%s from cosmicRaw where cosmic_mutation_id='%s'",
"source,cosmic_mutation_id,gene_name,accession_number,mut_description,mut_syntax_cds,mut_syntax_aa",
"chromosome,grch37_start,grch37_stop,mut_nt,mut_aa,tumour_site,mutated_samples,examined_samples,mut_freq",
itemName);
sr = sqlMustGetResult(conn, query);
row = sqlNextRow(sr);
if (row != NULL)
{
int ii;
+ boolean multipleTumorSites;
+ char *indentString;
+
ii=0;
source = row[ii];ii++;
cosmic_mutation_id = row[ii];ii++;
gene_name = row[ii];ii++;
accession_number = row[ii];ii++;
mut_description = row[ii];ii++;
mut_syntax_cds = row[ii];ii++;
mut_syntax_aa = row[ii];ii++;
chromosome = row[ii];ii++;
grch37_start = row[ii];ii++;
grch37_stop = row[ii];ii++;
mut_nt = row[ii];ii++;
mut_aa = row[ii];ii++;
tumour_site = row[ii];ii++;
mutated_samples = row[ii];ii++;
examined_samples = row[ii];ii++;
mut_freq = row[ii];ii++;
chp = strstr(itemName, "COSM")+strlen("COSM");
- printf("COSMIC ID: %s\n", url, chp, chp);
+ printf("COSMIC ID: %s", chp);
+
+ printf(" (click here for more details at COSMIC site)\n", url, chp);
printf("
Source: %s\n", source);
printf("
Gene Name: %s\n", gene_name);
printf("
Accession Number: %s\n", accession_number);
printf("
Genomic Position: %s:%s-%s", chromosome, grch37_start, grch37_stop);
printf("
Mutation Description: %s\n", mut_description);
printf("
Mutation Syntax CDS: %s\n", mut_syntax_cds);
printf("
Mutation Syntax AA: %s\n", mut_syntax_aa);
printf("
Mutation NT: %s\n", mut_nt);
printf("
Mutation AA: %s\n", mut_aa);
- printf("
Tumour Site: %s\n", tumour_site);
- printf("
Mutated Samples: %s\n", mutated_samples);
- printf("
Examined Samples: %s\n", examined_samples);
- printf("
Mutation Frequency: %s\n", mut_freq);
+
+ safef(query2, sizeof(query2),
+ "select count(tumour_site) from cosmicRaw where cosmic_mutation_id='%s'", itemName);
+
+ sr2 = sqlMustGetResult(conn2, query2);
+ row2 = sqlNextRow(sr2);
+ if ((atoi(row2[0])) > 1)
+ {
+ multipleTumorSites = TRUE;
+ indentString = indent1;
+ }
+ else
+ {
+ multipleTumorSites = FALSE;
+ indentString = indent2;
}
+ sqlFreeResult(&sr2);
+
+ safef(query2, sizeof(query2),
+ "select %s from cosmicRaw where cosmic_mutation_id='%s' order by tumour_site",
+ "tumour_site,mutated_samples,examined_samples,mut_freq ",
+ itemName);
+
+ sr2 = sqlMustGetResult(conn2, query2);
+ row2 = sqlNextRow(sr2);
+ while (row2 != NULL)
+ {
+ int ii;
+ ii=0;
+ tumour_site = row2[ii];ii++;
+ mutated_samples = row2[ii];ii++;
+ examined_samples = row2[ii];ii++;
+ mut_freq = row2[ii];ii++;
+
+ if (multipleTumorSites) printf("
");
+ printf("
%sTumour Site: %s\n", indentString, tumour_site);
+ printf("
%sMutated Samples: %s\n", indentString, mutated_samples);
+ printf("
%sExamined Samples: %s\n", indentString, examined_samples);
+ printf("
%sMutation Frequency: %s\n", indentString, mut_freq);
+ row2 = sqlNextRow(sr2);
+ }
+ sqlFreeResult(&sr2);
+ }
+
sqlFreeResult(&sr);
hFreeConn(&conn);
printf("