52fb15ea6cf361e9343022643c8a6184af71057e pchan Fri Apr 5 23:58:37 2013 -0700 change Pfam track detail page for HMMER scan diff --git src/hg/hgc/lowelab.c src/hg/hgc/lowelab.c index c13105e..bf56d7e 100644 --- src/hg/hgc/lowelab.c +++ src/hg/hgc/lowelab.c @@ -496,31 +496,31 @@ char pepTableName[64]; char extraTableName[64]; if (startsWith("annotRev", table)) { sprintf(pepTableName, "%s%s", table, pepTable); sprintf(extraTableName, "%s%s", table, extraTable); } else { strcpy(pepTableName, pepTable); strcpy(extraTableName, extraTable); } -spConn = sqlConnect( pdb); +spConn = sqlConnect(UNIPROT_DB_NAME); genericHeader(tdb, item); wordCount = chopLine(dupe, words); if (wordCount > 1) num = atoi(words[1]); if (num < 3) num = 3; if (extraTableName != NULL && hTableExists(database, extraTableName)) { sprintf(query, "select * from %s where name = '%s'", extraTableName, item); sr = sqlGetResult(conn, query); while ((row = sqlNextRow(sr)) != NULL) { minGeneInfoStaticLoad(row, &ginfo); gi = cloneString(ginfo.gi); if (ginfo.gene != NULL && differentString(ginfo.gene,"none")) printf("Gene: %s
\n", ginfo.gene); @@ -721,43 +721,42 @@ printf("
\n"); /* Protein domain and structure information */ printf("\n"); printf("\n"); printf("
\n"); printf("Protein Domain and Structure Information
\n"); /* interpro domains */ list = spExtDbAcc1List(spConn, spAcc, "InterPro"); if (list != NULL) { char query[256], **row, **row2; struct sqlResult *sr, *sr2; printf("InterPro Domains: "); - printf("", + printf("", spAcc); printf("Graphical view of domain structure
"); safef(query, sizeof(query), "select extAcc1,extAcc2 from extDbRef,extDb" " where extDbRef.acc = '%s'" " and extDb.val = 'Interpro' and extDb.id = extDbRef.extDb" , spAcc); sr = sqlGetResult(spConn, query); while ((row = sqlNextRow(sr)) != NULL) { char interPro[256]; - char *pdb = hPdbFromGdb(database); safef(interPro, 128, "%s.interProXref", pdb); if (hTableExists(database, interPro)) { safef(query, sizeof(query), "select description from %s where accession = '%s' and interProId = '%s'", interPro, spAcc, row[0]); sr2 = sqlGetResult(conn, query); if ((row2 = sqlNextRow(sr2)) != NULL) { printf("", row[0]); printf("%s - %s
\n", row[0], row2[0]); } sqlFreeResult(&sr2); } else @@ -1999,32 +1998,31 @@ void doPfamHit(struct trackDb *tdb, char *hitName) /* Handle the Pfam hits track. */ { struct lowelabPfamHits *pfamHit; char query[512]; struct sqlConnection *conn = hAllocConn(database); struct sqlConnection *spConn = NULL; struct sqlResult *sr; char *dupe, *words[16]; char **row; int wordCount; int rowOffset; char *description; int start = cartInt(cart, "o"); - char *pdb = hPdbFromGdb(database); - spConn = sqlConnect(pdb); + spConn = sqlConnect(UNIPROT_DB_NAME); genericHeader(tdb,hitName); dupe = cloneString(tdb->type); wordCount = chopLine(dupe, words); rowOffset = hOffsetPastBin(database, seqName, tdb->table); sprintf(query, "select * from %s where name = '%s' and chrom = '%s' and chromStart = %d", tdb->table, hitName,seqName,start); sr = sqlGetResult(conn, query); while ((row = sqlNextRow(sr)) != NULL) { pfamHit = lowelabPfamHitsLoad(row+rowOffset); safef(query, sizeof(query), "select description from proteome.pfamDesc where pfamAC='%s'", pfamHit->pfamAC); @@ -2035,35 +2033,42 @@ "where extDbRef.acc = '%s' " "and extDbRef.extDb = extDb.id " "and extDb.val = '%s'" , pfamHit->pfamAC,pfamHit->pfamID); } description = sqlQuickString(spConn, query); if (description == NULL) description = cloneString("n/a"); printf("", pfamHit->pfamAC ); printf("%s - %s

\n", pfamHit->pfamAC, description); freez(&description); + if (pfamHit->ident > 0) printf("Domain assignment based on %d%% identity BlastP hit to Pfam-A SwissProt Sequence:
\n" "%s (%s, %d%% full-length alignment) " - "
[Pfam Domain Structure]
\n", + "
[Pfam Domain Structure]
\n", pfamHit->ident,pfamHit->swissAC,pfamHit->swissAC,pfamHit->protCoord,pfamHit->percLen,pfamHit->swissAC); - + else + { + printf("Gene: %s

\n", pfamHit->pfamID); + printf("Domain assignment based on Pfam model search using HMMER 3.0
\n" + "E-value: %s
(%s, %d%% full-length)
\n", + pfamHit->swissAC,pfamHit->protCoord,pfamHit->percLen); + } printf("
Position: " "", hgTracksPathAndSettings(), database, pfamHit->chrom, pfamHit->chromStart + 1, pfamHit->chromEnd); printf("%s:%d-%d
\n", pfamHit->chrom, pfamHit->chromStart + 1, pfamHit->chromEnd); printf("Strand: %s
\n", pfamHit->strand); printf("Genomic size: %d nt
\n", (pfamHit->chromEnd - pfamHit->chromStart)); if (pfamHit->next != NULL) printf("
\n"); } sqlFreeResult(&sr); hFreeConn(&conn); printTrackHtml(tdb); lowelabPfamHitsFree(&pfamHit); }