78f5fa0481441bdffe2792e1ec3ff0ac4deb0e4f pchan Mon Aug 22 11:38:28 2011 -0700 change arCOG code to link to arCOGs browser instead of local table diff --git src/hg/hgc/lowelab.c src/hg/hgc/lowelab.c index ff3baf9..9d0eef7 100644 --- src/hg/hgc/lowelab.c +++ src/hg/hgc/lowelab.c @@ -465,30 +465,34 @@ struct sqlConnection *conn = hAllocConn(database); struct sqlConnection *conn2; struct sqlConnection *spConn = NULL; struct COG *COG=NULL; struct COGXra *COGXra=NULL; char *temparray[160]; char *giwords[5]; char *spAcc = NULL; struct slName *el, *list; char *table = tdb->table; char *pdb = hPdbFromGdb(database); struct genePred *gpList = NULL, *gp = NULL; char tableName[64]; boolean hasBin; int itemCount = 0; +int arcogCount = 0; +char genome[50] = ""; +char clade[50] = ""; +boolean hasArCOG; char treeFileName[256]; char treeTmpPsFileName[256]; char treePsFileName[256]; char treePngFileName[256]; char treePdfFileName[256]; char command[512]; char buffer[512]; char searchTerm[256]; struct blastTab *blastpHitsList; char pepTableName[64]; char extraTableName[64]; @@ -603,47 +607,48 @@ { COG = COGLoad(row); if(COG!=NULL) { length=chopString(COG->COG, "," , temparray, 999); for(x=0; x<length; x++) { conn2 = hAllocConn(database); sprintf(query2, "select * from COGXra where name = '%s'", temparray[x]); sr2 = sqlGetResult(conn2, query2); while ((row2 = sqlNextRow(sr2)) != NULL) { COGXra=COGXraLoad(row2); if(COGXra!=NULL) printf("<B>COG:</B> " - "<A HREF=\"http://www.ncbi.nlm.nih.gov/COG/grace/wiew.cgi?%s\" " + "<A HREF=\"http://www.ncbi.nlm.nih.gov/COG/grace/wiew.cgi?%s\" target=\"_blank\" " ">%s</A> " - "<A HREF=\"http://www.ncbi.nlm.nih.gov/COG/grace/wiew.cgi?fun=%s\" " + "<A HREF=\"http://www.ncbi.nlm.nih.gov/COG/grace/wiew.cgi?fun=%s\" target=\"_blank\" " ">Code %s</A> \n", COGXra->name, COGXra->name, COG->code,COG->code); printf(" %s<BR>\n", COGXra->info); itemCount++; } sqlFreeResult(&sr2); hFreeConn(&conn2); } } } sqlFreeResult(&sr); //hFreeConn(&conn2); } +/* if (hTableExists(database, "arCOGs")) { struct arCOGs *infoload = NULL; struct arcogdesc *description = NULL; int rowOffset = hOffsetPastBin(database, seqName, "arCOGs"); //infoload = arCOGsLoad(row); row = NULL; sprintf(query, "select * from arCOGs where gene = '%s'", item); sr = sqlGetResult(conn, query); conn2 = hAllocConn(database); while ((row = sqlNextRow(sr)) != NULL) { infoload = arCOGsLoad(row+rowOffset); if(infoload!=NULL) @@ -653,30 +658,66 @@ while ((row2 = sqlNextRow(sr2)) != NULL) { description=arcogdescLoad(row2); if(description!=NULL) { printf("<B>arCOG:</B> %s Code %s",infoload->name, description->code); printf(" %s<BR/>\n", description->description); itemCount++; } } sqlFreeResult(&sr2); hFreeConn(&conn2); } } } +*/ + +arcogCount = 0; +hasArCOG = false; +row = NULL; +sprintf(query, "show databases like 'arCogsDb'"); +sr = sqlGetResult(conn, query); +if ((row = sqlNextRow(sr)) != NULL) +{ + hasArCOG = true; +} +sqlFreeResult(&sr); + +if (hasArCOG) +{ + /* Get species info */ + memset(genome, 0, 50); + memset(clade, 0, 50); + getGenomeClade(conn, database, genome, clade); + + sprintf(query, "select distinct a.arcog_id, a.anntation, c.class_id from arCogsDb.arcogDef a, arCogsDb.arcog b, arCogsDb.arcogFun c where a.arcog_id = b.arcog_id and a.arcog_id = c.arcog_id and db_name = '%s' and name = '%s'", + database, item); + sr = sqlGetResult(conn, query); + while ((row = sqlNextRow(sr)) != NULL) + { + printf("<B>arCOG:</B> <A HREF=\"/arCOGsBrowser/#Tax_Tree;ArcogsId=%s\" target=\"_blank\">%s</A> <A HREF=\"/arCOGsBrowser/#MainAdvance;Genome=%s,FunId=%s,Limit=50,Index=0,Load=true\" target=\"_blank\">Code %s</A> ", + row[0], row[0], genome, row[2], row[2]); + printf(" %s<BR/>\n", row[1]); + arcogCount++; + itemCount++; + } + sqlFreeResult(&sr); + if (arcogCount > 0) + printf("<A HREF=\"/arCOGsBrowser/#MainGene;Genome=%s,Gene=%s\" target=\"_blank\">arCOG Gene Annotation</A><BR/>", genome, item); +} + if (itemCount == 0) printf("Not available\n"); printf("</td></tr></tbody></table><br>\n"); /* GO */ printf("<table style=\"text-align: left; width: 99%%;\" border=\"1\" cellpadding=\"5\" cellspacing=\"0\">\n"); printf("<tbody><tr><td style=\"background-color:#eee9e9;\">\n"); printf("<a name=\"GO\"></a><b>Gene Ontology</b><br></td></tr>\n"); printf("<tr><td>\n"); /* print go terms */ goPrint( conn, item, spAcc); printf("</td></tr></tbody></table><br>\n"); /* Protein domain and structure information */ printf("<table style=\"text-align: left; width: 99%%;\" border=\"1\" cellpadding=\"5\" cellspacing=\"0\">\n");