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; xCOG: " - "%s  " - "Code %s \n", COGXra->name, COGXra->name, COG->code,COG->code); printf(" %s
\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("arCOG: %s Code %s",infoload->name, description->code); printf(" %s
\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("arCOG: %s Code %s ", + row[0], row[0], genome, row[2], row[2]); + printf(" %s
\n", row[1]); + arcogCount++; + itemCount++; + } + sqlFreeResult(&sr); + if (arcogCount > 0) + printf("arCOG Gene Annotation
", genome, item); +} + if (itemCount == 0) printf("Not available\n"); printf("
\n"); /* GO */ printf("\n"); printf("\n"); printf("
\n"); printf("Gene Ontology
\n"); /* print go terms */ goPrint( conn, item, spAcc); printf("

\n"); /* Protein domain and structure information */ printf("\n");