4898794edd81be5285ea6e544acbedeaeb31bf78 max Tue Nov 23 08:10:57 2021 -0800 Fixing pointers to README file for license in all source code files. refs #27614 diff --git src/hg/protein/lib/doSam.c src/hg/protein/lib/doSam.c index 86e3fd5..8b04fa7 100644 --- src/hg/protein/lib/doSam.c +++ src/hg/protein/lib/doSam.c @@ -1,215 +1,215 @@ /* doSamT02 prints out the UCSC SAM-T02 Protein Structure Analysis and Prediction sub-section */ /* Copyright (C) 2013 The Regents of the University of California - * See README in this or parent directory for licensing information. */ + * See kent/LICENSE or http://genome.ucsc.edu/license/ for licensing information. */ #include "common.h" #include "hdb.h" #include "pbTracks.h" char *getSgdId(char *protId, char *database) /* Get SGD gene ID from a Swiss-Prot ID */ { struct sqlConnection *conn2 = hAllocConn(database); char condStr[256]; char *sgdId; sqlSafefFrag(condStr, sizeof condStr, "proteinId='%s'", protId); sgdId = sqlGetField(database, "sgdGene", "name", condStr); hFreeConn(&conn2); return(sgdId); } void doSamT02(char *proteinId, char *database) /* display the UCSC SAM-T02 Protein Structure Analysis and Prediction section */ { char *itemName = NULL; char query2[256]; struct sqlResult *sr2; char **row2; struct sqlConnection *conn, *conn2 = hAllocConn(database); char condStr[256]; char *chp; char *samSubDir; char *samHttpStr0 = NULL; /* SAM server*/ char *samHttpStr = NULL; /* UCSC GB site */ int homologCount; char *homologID; char *SCOPdomain; char *chain; char *bestEValStr = NULL; float eValue, bestEVal; char goodSCOPdomain[40]; int first = 1; /* return if this genome does not have SAM protein analysis results */ /* defensive logic to guard against the situation that the binary program is pushed, but the data tables are not */ conn = sqlConnect(database); if (!(sqlTableExists(conn, "samSubdir") && sqlTableExists(conn, "protHomolog"))) { return; } sqlDisconnect(&conn); if (!sameWord(database, "sacCer1")) { return; } itemName = proteinId; if (sameWord(database, "sacCer1")) { samHttpStr0 = strdup("http://www.soe.ucsc.edu/research/compbio/yeast-protein-predictions"); samHttpStr = strdup("../goldenPath/sacCer1/sam"); /* SAM analysis of SGD proteins uses SGD ID, not Swiss-Prot AC */ itemName = getSgdId(proteinId, database); } if (itemName == NULL) return; sqlSafefFrag(condStr, sizeof condStr, "proteinId='%s'", itemName); samSubDir = sqlGetField(database, "samSubdir", "subdir", condStr); if (samSubDir == NULL) return; hPrintf("<B>UCSC "); hPrintf("<A HREF=\"http://www.soe.ucsc.edu/research/compbio/SAM_T02/sam-t02-faq.html\""); hPrintf(" TARGET=_blank>SAM-T02</A>\n"); hPrintf(" Protein Structure Analysis and Prediction on %s", proteinId); if (!sameWord(proteinId, itemName)) hPrintf(" (aka %s)", itemName); hPrintf("</B><BR>\n"); hPrintf(" <B>Multiple Alignment (sequence logo):</B> \n"); hPrintf("<A HREF=\"%s/%s/%s/%s.t2k.w0.5-logo.pdf\"", samHttpStr, samSubDir, itemName, itemName); hPrintf(" TARGET=_blank>%s</A> (pdf)<BR>\n", itemName); hPrintf("<B> Secondary Structure Predictions:</B> \n"); hPrintf("<A HREF=\"%s/%s/%s/%s.t2k.dssp-ehl2-logo.pdf\"", samHttpStr, samSubDir, itemName, itemName); hPrintf(" TARGET=_blank>%s</A> (pdf)<BR>\n", itemName); hPrintf("<B> Close Homologs:</B> \n"); conn2= hAllocConn(database); sqlSafef(query2, sizeof query2, "select homologID,eValue,SCOPdomain,chain from %s.protHomolog where proteinID='%s' and evalue <= 0.01 order by evalue;", database, itemName); sr2 = sqlMustGetResult(conn2, query2); row2 = sqlNextRow(sr2); homologCount = 0; strcpy(goodSCOPdomain, "dummy"); bestEVal = 100; while (row2 != NULL) { homologID = row2[0]; sscanf(row2[1], "%e", &eValue); if (first) { bestEVal = eValue; bestEValStr = strdup(row2[1]); } SCOPdomain = row2[2]; chp = SCOPdomain+strlen(SCOPdomain)-1; while (*chp != '.') chp--; *chp = '\0'; chain = row2[3]; if (eValue <= 1.0e-10) { strcpy(goodSCOPdomain, SCOPdomain); } else { if (strcmp(goodSCOPdomain,SCOPdomain) != 0) { goto skip; } else { if (eValue > 0.1) goto skip; } } if (first) { first = 0; } else { printf(", "); } hPrintf("\n<A HREF=\"http://www.rcsb.org/pdb/cgi/explore.cgi?job=graphics&pdbId=%s", homologID); if (strlen(chain) >= 1) { hPrintf("\"TARGET=_blank>%s</A>(chain %s)\n", homologID, chain); } else { hPrintf("\"TARGET=_blank>%s</A>\n", homologID); } homologCount++; skip: row2 = sqlNextRow(sr2); } sqlFreeResult(&sr2); hFreeConn(&conn2); if (homologCount == 0) { hPrintf("None\n"); } hPrintf("<BR> <B>More Details:</B> \n"); hPrintf("<A HREF=\"%s/%s/%s/summary.html\"", samHttpStr0, samSubDir, itemName); hPrintf("\" TARGET=_blank>%s</A><BR>\n", itemName); if (homologCount > 0) { hPrintf(" <B>3D Structure Prediction: </B> \n"); hPrintf("<A HREF=\"%s/%s/%s/%s.t2k.undertaker-align.pdb.gz\"", samHttpStr, samSubDir, itemName, itemName); hPrintf("\" TARGET=_blank>%s</A> (PDB format, gzipped)<BR>\n", itemName); hPrintf(" <B>3D Pictures of the Best Model"); hPrintf(" (E Value: %s):</B><BR>\n", bestEValStr);fflush(stdout); hPrintf("<TABLE><TR>\n"); hPrintf("<TD> </TD>"); hPrintf("<TD><IMG SRC=\"%s/%s/%s/%s.view1_200.jpg\"></A></TD>\n", samHttpStr, samSubDir, itemName, itemName); hPrintf("<TD><IMG SRC=\"%s/%s/%s/%s.view2_200.jpg\"></A></TD>\n", samHttpStr, samSubDir, itemName, itemName); hPrintf("<TD><IMG SRC=\"%s/%s/%s/%s.view3_200.jpg\"></A></TD>\n", samHttpStr, samSubDir, itemName, itemName); hPrintf("</TR>\n"); hPrintf("<TR>"); hPrintf("<TD> </TD>"); hPrintf("<TD ALIGN=CENTER>Front</TD>"); hPrintf("<TD ALIGN=CENTER>Top</TD>"); hPrintf("<TD ALIGN=CENTER>Side</TD>"); hPrintf("</TR>\n"); hPrintf("<TR>"); hPrintf("<TD> </TD>"); hPrintf("<TD ALIGN=CENTER><A HREF=\"%s/%s/%s/%s.view1_500.jpg\">500x500</A></TD>\n", samHttpStr, samSubDir, itemName, itemName); hPrintf("<TD ALIGN=CENTER><A HREF=\"%s/%s/%s/%s.view2_500.jpg\">500x500</A></TD>\n", samHttpStr, samSubDir, itemName, itemName); hPrintf("<TD ALIGN=CENTER><A HREF=\"%s/%s/%s/%s.view3_500.jpg\">500x500</A></TD>\n", samHttpStr, samSubDir, itemName, itemName); hPrintf("</TR>\n"); hPrintf("</TABLE>\n"); } else { hPrintf(" <B>3D Structure Prediction: </B> \n"); hPrintf("No models presented, because none has E-value <= 0.01.<BR>"); } hPrintf("<BR>"); }