src/hg/hgc/virusClick.c 1.6
1.6 2009/06/15 23:00:24 markd
highlight only specific sequence differences in gene seq display
Index: src/hg/hgc/virusClick.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/hgc/virusClick.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -b -B -U 4 -r1.5 -r1.6
--- src/hg/hgc/virusClick.c 15 Jun 2009 21:48:03 -0000 1.5
+++ src/hg/hgc/virusClick.c 15 Jun 2009 23:00:24 -0000 1.6
@@ -134,24 +134,34 @@
safef(pdbPath, sizeof(pdbPath), "%s/%s", h1n1StructDir, relPath);
return fileExists(pdbPath);
}
-static void mkH1n1StructData(char *gene, char *idPairFile,
+static void mkH1n1StructData(char *gene, char *idPairFile, char *highlightId,
struct tempName *imageFile, struct tempName *chimeraScript)
-/* generate 3D structure files; idPairFile can be NULL */
+/* generate 3D structure files; difference highlighting is generate only idPairFile or
+ * idPairFile, if specified, but not both. */
{
struct tempName prefix;
trashDirFile(&prefix, "hgct", gene, "tmp");
char idFile[PATH_LEN], idArg[PATH_LEN], logFile[PATH_LEN], cmd[2*PATH_LEN];
idArg[0] = '\0';
-if (idPairFile != NULL)
+if ((idPairFile != NULL) || (highlightId != NULL))
+ {
+ safef(idFile, sizeof(idFile), "%s.ids", prefix.forCgi);
+ if (idPairFile != NULL)
{
// extract first column
- safef(idFile, sizeof(idFile), "%s.ids", idPairFile);
safef(cmd, sizeof(cmd), "cut -f 1 %s >%s", idPairFile, idFile);
if (system(cmd) != 0)
errAbort("extracting protein ids failed: %s", cmd);
+ }
+ else
+ {
+ FILE *fh = mustOpen(idFile, "w");
+ fprintf(fh, "%s\n", highlightId);
+ carefulClose(&fh);
+ }
safef(idArg, sizeof(idArg), "--ids %s", idFile);
}
// dynamic_highlight.pl knows locations of model files
safef(logFile, sizeof(logFile), "%s.log", prefix.forCgi);
@@ -224,11 +234,10 @@
// Modeller stuff
char modelPdbUrl[PATH_LEN];
if (getH1n1Model(gene, modelPdbUrl))
{
- char *selectFile = cartOptionalString(cart, gisaidAaSeqList);
struct tempName imageFile, chimeraScript, chimerax;
- mkH1n1StructData(gene, selectFile, &imageFile, &chimeraScript);
+ mkH1n1StructData(gene, NULL, aaSeqId, &imageFile, &chimeraScript);
mkChimerax(gene, modelPdbUrl, chimeraScript.forCgi, &chimerax);
printf("<A HREF=\"%s\" TARGET=_blank>%s</A>, view with <A HREF=\"%s\">Chimera</A><BR>\n", modelPdbUrl, gene, chimerax.forHtml);
printf("<TABLE>\n");
printf("<TR>\n");
@@ -572,9 +581,9 @@
if (getH1n1Model(gene, modelPdbUrl))
{
char *selectFile = cartOptionalString(cart, gisaidAaSeqList);
struct tempName imageFile, chimeraScript, chimerax;
- mkH1n1StructData(gene, selectFile, &imageFile, &chimeraScript);
+ mkH1n1StructData(gene, selectFile, NULL, &imageFile, &chimeraScript);
mkChimerax(gene, modelPdbUrl, chimeraScript.forCgi, &chimerax);
printf("<A HREF=\"%s\" TARGET=_blank>%s</A>, view with <A HREF=\"%s\">Chimera</A><BR>\n",
modelPdbUrl, gene, chimerax.forHtml);
printf("<TABLE>\n");