d431e26cf5755649962d340eab887cefb40a8a8b
braney
  Mon Nov 2 12:28:36 2015 -0800
remove GSID code from mafClick.c  (no redmine)

diff --git src/hg/hgc/mafClick.c src/hg/hgc/mafClick.c
index fadecc0..fe09394 100644
--- src/hg/hgc/mafClick.c
+++ src/hg/hgc/mafClick.c
@@ -450,47 +450,30 @@
                                             char *axtOtherDb, char *file)
 {
 if (axtOtherDb != NULL)
     {
     struct hash *qSizeHash = hChromSizeHash(axtOtherDb);
     struct mafAli *mafList = axtLoadAsMafInRegion(conn, tdb->table,
             chrom, start, end, database, axtOtherDb, hChromSize(database, chrom), qSizeHash);
     hashFree(&qSizeHash);
     return mafList;
     }
 else
     return mafLoadInRegion2(conn, conn2, tdb->table, chrom,
 	start, end, file);
 }
 
-/* Load mafs from region, either from maf or axt file. */
-static struct mafAli *mafOrAxtLoadInRegion(struct sqlConnection *conn,
-	struct trackDb *tdb, char *chrom, int start, int end,
-	char *axtOtherDb)
-/* Load mafs from region, either from maf or axt file. */
-{
-if (axtOtherDb != NULL)
-    {
-    struct hash *qSizeHash = hChromSizeHash(axtOtherDb);
-    struct mafAli *mafList = axtLoadAsMafInRegion(conn, tdb->table,
-            chrom, start, end, database, axtOtherDb, hChromSize(database, chrom), qSizeHash);
-    hashFree(&qSizeHash);
-    return mafList;
-    }
-else
-    return mafLoadInRegion(conn, tdb->table, chrom, start, end);
-}
 
 #ifdef ADDEXONCAPITAL
 static char *codeAll[] = {
 	"coding",
 	"all",
 };
 #endif
 
 static char *showAll[] = {
         "all",
         "diff",
 };
 
 static void conservationStatsLink(struct trackDb *tdb,
                                     char *label, char *table)
@@ -743,31 +726,31 @@
 	printf("bases");
 	printf("<BR>\n");
 	printf("</FORM>\n");
 
 #ifdef REVERSESTRAND
         /* notify if bases are complemented (hgTracks is on reverse strand) */
         if (cartCgiUsualBoolean(cart, COMPLEMENT_BASES_VAR, FALSE))
             puts("<EM>Alignment displayed on reverse strand</EM><BR>");
 #endif
 	puts("Place cursor over species for alignment detail. Click on 'B' to link to browser ");
 	puts("for aligned species, click on 'D' to get DNA for aligned species.<BR>");
 
 	printf("<TT><PRE>");
 
         /* notify if species removed from alignment */
-        if ((speciesOffHash) && !hIsGsidServer())
+        if (speciesOffHash) 
             {
             char *species;
             struct hashCookie hc = hashFirst(speciesOffHash);
             puts("<B>Components not displayed:</B> ");
             while ((species = hashNextName(&hc)) != NULL)
                 printf("%s ", species);
             puts("<BR>");
             }
 
 
 	for (maf = subList; maf != NULL; maf = maf->next)
 	    {
 	    mafLowerCase(maf);
 #ifdef ADDEXONCAPITAL
 	    if (capTrack != NULL)
@@ -789,545 +772,39 @@
 }
 
 static void mafOrAxtClick(struct sqlConnection *conn, struct trackDb *tdb, char *axtOtherDb)
 {
 struct sqlConnection *conn2 = NULL;
 if (!isHubTrack(tdb->track))
     conn2 = hAllocConn(database);
 // MAF file location is optionally in trackDb
 char *mafFile = hashFindVal(tdb->settingsHash, "mafFile");
 
 mafOrAxtClick2(conn, conn2, tdb, axtOtherDb, mafFile);
 
 hFreeConn(&conn2);
 }
 
-static void blueCapWriteGsid(FILE *f, char *s, int size, char *r, boolean isProtein, int offset)
-/* Write capital letters in blue, with added logic specific for protein. */
-{
-boolean isBlue = FALSE;
-int step;
-int i;
-
-if (isProtein)
-    step = 3;
-else
-    step=1;
-for (i=0; i<size; i=i+step)
-    {
-      if (r!=NULL && s[i]==r[i])
-	fprintf(f, ".");
-      else
-	{
-	  char c = s[i];
-	  if (isupper(c))
-            {
-            if (!isBlue)
-                {
-                fprintf(f, "<span style='color:#0000FF;'>");
-                isBlue = TRUE;
-                }
-            }
-	else if (islower(c))
-            {
-            if (isBlue)
-                {
-                fprintf(f, "</span>");
-                isBlue = FALSE;
-                }
-            }
-          /* look up codon to get AA if it is protein */
-        if (isProtein)
-            {
-            if (c != '-')
-                {
-		    c=lookupCodon(s+(long)(i-offset%3));
-		    /* bypass the first partial codon */
-		    if ((i == 0) && (c == 'X')) c= ' ';
-		    if ((i == (size-1)) && (c == 'X')) c= ' ';
-		    }
-		}
-	  fprintf(f, "%c", c);
-	}
-    }
-
-if (isBlue)
-    fprintf(f, "</span>");
-}
-
-void mafPrettyOutGsid(FILE *f, struct mafAli *maf, int lineSize,
-                      boolean onlyDiff, int blockNo, boolean isProtein, int mafOrig)
-{
-int ii, ch;
-int srcChars = 0;
-struct mafComp *mc;
-int lineStart, lineEnd;
-char *summaryLine = needMem(lineSize+1);
-char *referenceText;
-int startChars, sizeChars, srcSizeChars;
-boolean haveInserts = FALSE;
-struct mafComp *masterMc = maf->components;
-
-startChars = sizeChars = srcSizeChars = 0;
-
-for (mc = maf->components; mc != NULL; mc = mc->next)
-    {
-    /* Figure out length of source (species) field. */
-    /*if (mc->size != 0)*/
-	{
-	char dbOnly[128];
-	int len;
-//	char *chrom;  unused variable
-	char *org;
-
-	memset(dbOnly, 0, sizeof(dbOnly));
-	safef(dbOnly, sizeof(dbOnly), "%s", mc->src);
-	// chrom = chopPrefix(dbOnly);  unused variable
-
-	if ((org = hOrganism(dbOnly)) == NULL)
-	    len = strlen(dbOnly);
-	else
-	    len = strlen(org);
-	if (srcChars < len)
-	    srcChars = len;
-
-	len = digitsBaseTen(mc->start);
-	if (startChars < len)
-	    startChars = len;
-	len = digitsBaseTen(mc->size);
-	if (sizeChars < len)
-	    sizeChars = len;
-	len = digitsBaseTen(mc->srcSize);
-	if (srcSizeChars < len)
-	    srcSizeChars = len;
-
-	if (mc->text && (mc->rightStatus == MAF_INSERT_STATUS) && (masterMc->start + masterMc->size < winEnd))
-	    haveInserts = TRUE;
-
-#ifdef REVERSESTRAND
-	/* complement bases if hgTracks is on reverse strand */
-	if (mc->size && cartCgiUsualBoolean(cart, COMPLEMENT_BASES_VAR, FALSE))
-	    complement(mc->text, maf->textSize);
-#endif
-	}
-    }
-/* first sequence in the alignment */
-referenceText = maf->components->text;
-
-for (lineStart = 0; lineStart < maf->textSize; lineStart = lineEnd)
-    {
-    int size;
-    lineEnd = lineStart + lineSize;
-    if (lineEnd >= maf->textSize)
-        lineEnd = maf->textSize;
-    size = lineEnd - lineStart;
-    initSummaryLine(summaryLine, size, '*');
-    for (mc = maf->components; mc != NULL; mc = mc->next)
-        {
-	char dbOnly[128], *chrom;
-	int s = mc->start;
-	int e = s + mc->size;
-	char *org;
-//	char *revComp = "";  unused variable
-	struct dyString *dy = newDyString(512);
-#ifdef REVERSESTRAND
-	char strand = mc->strand;
-	if (cartCgiUsualBoolean(cart, COMPLEMENT_BASES_VAR, FALSE))
-	    strand = (strand == '+') ? '-' : '+';
-#endif
-//	if (strand == '-') revComp = "&hgSeq.revComp=on";  unused variable
-
-	dyStringClear(dy);
-
-	safef(dbOnly, sizeof(dbOnly), "%s", mc->src);
-	chrom = chopPrefix(dbOnly);
-	if ((org = hOrganism(dbOnly)) == NULL)
-	    org = dbOnly;
-
-	if (mc->strand == '-')
-	    reverseIntRange(&s, &e, mc->srcSize);
-
-
-	if (mc->text != NULL)
-	    {
-	    fprintf(f, "    ");
-
-            dyStringClear(dy);
-            dyStringPrintf(dy, "%s:%d-%d %c %*dbps",chrom, s+1, e, mc->strand,sizeChars, mc->size);
-            fprintf(f, "<A TITLE=\"%s\"> %*s </A> ", dy->string, srcChars, org);
-
-            updateSummaryLine(summaryLine, referenceText + lineStart,
-                              mc->text + lineStart, size);
-            blueCapWriteGsid(f, mc->text + lineStart, size,
-                             (onlyDiff && mc != maf->components) ? referenceText + lineStart
-                                                                 : NULL, isProtein,
-                             mc->start-mafOrig);
-            fprintf(f, "\n");
-            }
-	else
-	    {
-	    if (((mc->leftStatus == MAF_CONTIG_STATUS) && (mc->rightStatus == MAF_CONTIG_STATUS) )
-	    || ((mc->leftStatus == MAF_TANDEM_STATUS) && (mc->rightStatus == MAF_TANDEM_STATUS) )
-	    || ((mc->leftStatus == MAF_INSERT_STATUS) && (mc->rightStatus == MAF_INSERT_STATUS) )
-	    || ((mc->leftStatus == MAF_MISSING_STATUS) && (mc->rightStatus == MAF_MISSING_STATUS) ))
-		{
-                if (lineStart == 0)
-		    {
-		    int s = mc->start;
-		    int e = s + mc->rightLen;
-		    //struct dyString *dy = newDyString(512);
-
-		    if (mc->strand == '-')
-			reverseIntRange(&s, &e, mc->srcSize);
-		    fprintf(f, "     ");
-		    }
-		else
-		    fprintf(f, "     ");
-		initSummaryLine(summaryLine, size, ' ');
-		dyStringClear(dy);
-		dyStringPrintf(dy, "%s:%d-%d %c %*dbps",chrom, s+1, e, mc->strand,sizeChars, mc->size);
-		fprintf(f, "<A TITLE=\"%s\">%*s</A>  ", dy->string, srcChars, org);
-		ch = '-';
-		switch(mc->rightStatus)
-		    {
-		    case MAF_INSERT_STATUS:
-			ch = '=';
-			break;
-		    case MAF_MISSING_STATUS:
-			ch = 'N';
-			break;
-		    case MAF_TANDEM_STATUS:
-		    case MAF_CONTIG_STATUS:
-			ch = '-';
-			break;
-		    }
-		for(ii=lineStart; ii < lineEnd ; ii++)
-		    fputc(ch,f);
-		fprintf(f,"\n");
-		}
-	    }
-	}
-#ifdef ADDMATCHLINE
-    if (lineStart == 0)
-	fprintf(f, "    %-*s %s\n", srcChars, "", summaryLine);
-    else
-	fprintf(f, "%-*s %s\n", srcChars, "", summaryLine);
-#else
-    fprintf(f, "\n");
-#endif
-    }
-
-if (haveInserts)
-    {
-    fprintf(f, "<B>Inserts between block %d and %d in window</B>\n",blockNo, blockNo+1);
-    for (mc = maf->components; mc != NULL; mc = mc->next)
-	{
-	char dbOnly[128];
-	// char *chrom;  unused variable
-	int s = mc->start + mc->size;
-	int e = s + mc->rightLen;
-	char *org;
-
-	if (mc->text == NULL)
-	    continue;
-
-	if (mc->strand == '-')
-	    reverseIntRange(&s, &e, mc->srcSize);
-
-	safef(dbOnly, sizeof(dbOnly), "%s", mc->src);
-	// chrom = chopPrefix(dbOnly);  unused variable
-
-	if ((org = hOrganism(dbOnly)) == NULL)
-	    org = dbOnly;
-
-	if (mc->rightStatus == MAF_INSERT_STATUS)
-	    {
-	    if (hDbIsActive(dbOnly))
-		{
-#ifdef REVERSESTRAND
-		char strand = mc->strand;
-		if (cartCgiUsualBoolean(cart, COMPLEMENT_BASES_VAR, FALSE))
-		    strand = (strand == '+') ? '-' : '+';
-#endif
-		/*
-		char *revComp = "";
-		if (strand == '-') revComp = "&hgSeq.revComp=on";
-		linkToOtherBrowser(dbOnly, chrom, s, e);
-		fprintf(f,"B");
-		fprintf(f, "</A>");
-		fprintf(f, " ");
-
-		printf("<A TARGET=\"_blank\" HREF=\"%s?o=%d&g=getDna&i=%s&c=%s&l=%d&r=%d&db=%s%s\">D</A> ",  hgcName(),
-		   s, cgiEncode(chrom),
-		   chrom,  s, e, dbOnly,revComp);
-		*/
-		fprintf(f, "    ");
-		}
-	    else
-		fprintf(f, "    ");
-
-	    fprintf(f, "%*s %dbp\n", srcChars, org,mc->rightLen);
-	    }
-	}
-    fprintf(f, "\n");
-    }
-freeMem(summaryLine);
-
-}
-
-static void mafOrAxtClickGsid(struct sqlConnection *conn, struct trackDb *tdb, char *axtOtherDb)
-/* Display details for MAF or AXT tracks. */
-{
-hgBotDelay();
-if (winEnd - winStart > 30000)
-    {
-    printf("Zoom so that window is 30,000 bases or less to see base-by-base alignments\n");
-    }
-else
-    {
-    struct mafAli *mafList, *maf, *subList = NULL;
-    int aliIx = 0, realCount = 0;
-    char dbChrom[64];
-    char option[128];
-    struct consWiggle *consWig, *consWiggles;
-    struct hash *speciesOffHash = NULL;
-    char *speciesOrder = NULL;
-    char *speciesTarget = trackDbSetting(tdb, SPECIES_TARGET_VAR);
-    char buffer[1024];
-    int useTarg = FALSE;
-    int useIrowChains = FALSE;
-    int itemPrinted;
-    int mafOrig;
-    char query[256];
-
-    safef(option, sizeof(option), "%s.%s", tdb->track, MAF_CHAIN_VAR);
-    if (cartCgiUsualBoolean(cart, option, FALSE) &&
-	trackDbSetting(tdb, "irows") != NULL)
-	    useIrowChains = TRUE;
-
-    safef(buffer, sizeof(buffer), "%s.vis",tdb->track);
-    if (useIrowChains)
-	{
-	if (!cartVarExists(cart, buffer) && (speciesTarget != NULL))
-	    useTarg = TRUE;
-	else
-	    {
-	    char *val;
-
-	    val = cartUsualString(cart, buffer, "useCheck");
-            useTarg = sameString("useTarg",val);
-            }
-        }
-
-    mafList = mafOrAxtLoadInRegion(conn, tdb, seqName, winStart, winEnd,
-                                   axtOtherDb);
-    safef(dbChrom, sizeof(dbChrom), "%s.%s", database, seqName);
-
-    safef(option, sizeof(option), "%s.speciesOrder", tdb->track);
-    speciesOrder = cartUsualString(cart, option, NULL);
-    if (speciesOrder == NULL)
-	speciesOrder = trackDbSetting(tdb, "speciesOrder");
-
-    sqlSafef(query, sizeof(query), "select chromStart from %s", tdb->table);
-    mafOrig = atoi(sqlNeedQuickString(conn, query));
-
-    for (maf = mafList; maf != NULL; maf = maf->next)
-        {
-        int mcCount = 0;
-        struct mafComp *mc;
-        struct mafAli *subset;
-        struct mafComp *nextMc;
-
-        /* remove empty components and configured off components
-         * from MAF, and ignore
-         * the entire MAF if all components are empty
-         * (solely for gap annotation) */
-
-        if (!useTarg)
-            {
-            for (mc = maf->components->next; mc != NULL; mc = nextMc)
-		{
-		char buf[64];
-                char *organism;
-		mafSrcDb(mc->src, buf, sizeof buf);
-                organism = hOrganism(buf);
-                if (!organism)
-                    organism = buf;
-		nextMc = mc->next;
-		safef(option, sizeof(option), "%s.%s", tdb->track, buf);
-		if (!cartUsualBoolean(cart, option, TRUE))
-		    {
-		    if (speciesOffHash == NULL)
-			speciesOffHash = newHash(4);
-		    hashStoreName(speciesOffHash, organism);
-		    }
-		if (!cartUsualBoolean(cart, option, TRUE))
-		    slRemoveEl(&maf->components, mc);
-		else
-		    mcCount++;
-		}
-	    }
-        if (mcCount == 0)
-            continue;
-
-	if (speciesOrder)
-	    {
-	    int speciesCt;
-	    char *species[2048];
-	    struct mafComp **newOrder, *mcThis;
-	    int i;
-
-	    mcCount = 0;
-	    speciesCt = chopLine(cloneString(speciesOrder), species);
-	    newOrder = needMem((speciesCt + 1) * sizeof (struct mafComp *));
-	    newOrder[mcCount++] = maf->components;
-
-	    for (i = 0; i < speciesCt; i++)
-		{
-		if ((mcThis = mafMayFindCompSpecies(maf, species[i], '.')) == NULL)
-		    continue;
-		newOrder[mcCount++] = mcThis;
-		}
-
-	    maf->components = NULL;
-	    for (i = 0; i < mcCount; i++)
-		{
-		newOrder[i]->next = 0;
-		slAddHead(&maf->components, newOrder[i]);
-		}
-
-	    slReverse(&maf->components);
-	    }
-	subset = mafSubsetE(maf, dbChrom, winStart, winEnd, TRUE);
-	if (subset != NULL)
-	    {
-	    /* Reformat MAF if needed so that sequence from current
-	     * database is the first component and on the
-	     * plus strand. */
-	    mafMoveComponentToTop(subset, dbChrom);
-	    if (subset->components->strand == '-')
-		mafFlipStrand(subset);
-	    subset->score = mafScoreMultiz(subset);
-	    slAddHead(&subList, subset);
-	    ++realCount;
-	    }
-	}
-    slReverse(&subList);
-    mafAliFreeList(&mafList);
-    if (subList != NULL)
-	{
-	char *showVarName = "hgc.showMultiBase";
-	char *showVarVal = cartUsualString(cart, showVarName, "all");
-	boolean onlyDiff = sameWord(showVarVal, "diff");
-        /* add links for conservation score statistics */
-        boolean first = TRUE;
-        consWiggles = wigMafWiggles(database, tdb);
-        for (consWig = consWiggles; consWig != NULL;
-                consWig = consWig->next)
-            {
-            if (first)
-                printf("\n<P>");
-            if (sameString(consWig->leftLabel, DEFAULT_CONS_LABEL))
-                conservationStatsLink(tdb,
-                        "Conservation score statistics", consWig->table);
-            else
-                {
-                char *wigVarSuffix = NULL;
-                (void)wigMafWiggleVar(tdb->track, consWig, &wigVarSuffix);
-                if (!cartUsualBooleanClosestToHome(cart, tdb, FALSE, wigVarSuffix,FALSE))
-                    continue;
-                if (first)
-                    {
-                    printf("\n<P>Conservation score statistics:");
-                    first = FALSE;
-                    }
-                printf("&nbsp;&nbsp;");
-                subChar(consWig->uiLabel, '_', ' ');
-                conservationStatsLink(tdb,
-                    consWig->uiLabel, consWig->table);
-                }
-	    }
-        puts("</P>\n");
-
-#ifdef REVERSESTRAND
-        /* notify if bases are complemented (hgTracks is on reverse strand) */
-        if (cartCgiUsualBoolean(cart, COMPLEMENT_BASES_VAR, FALSE))
-            puts("<EM>Alignment displayed on reverse strand</EM><BR>");
-#endif
-
-	printf("<TT><PRE>");
-
-        /* notify if species removed from alignment */
-        if ((speciesOffHash) && !hIsGsidServer())
-            {
-            char *species;
-            struct hashCookie hc = hashFirst(speciesOffHash);
-            puts("<B>Components not displayed:</B> ");
-
-	    itemPrinted = 0;
-            while ((species = hashNextName(&hc)) != NULL)
-                {
-		/* print a break every 6 items */
-		if (((itemPrinted % 6) == 0) && (itemPrinted >0))
-		    printf("<br>");
-		printf("%s ", species);
-		itemPrinted++;
-		}
-            puts("<BR>");
-            }
-
-	for (maf = subList; maf != NULL; maf = maf->next)
-            {
-            mafLowerCase(maf);
-            printf("<B>Alignment block %d of %d in window, %d - %d, %d bps </B>\n",
-                   ++aliIx,realCount,maf->components->start + 1,
-                   maf->components->start + maf->components->size, maf->components->size);
-            if (strstr(tdb->type, "wigMafProt"))
-                {
-		mafPrettyOutGsid(stdout, maf,210,onlyDiff, aliIx, 1, mafOrig);
-		}
-	    else
-		{
-	        mafPrettyOutGsid(stdout, maf, 70,onlyDiff, aliIx, 0, mafOrig);
-		}
-	    }
-	mafAliFreeList(&subList);
-	}
-    else
-	{
-        printf("No multiple alignment in browser window");
-	}
-    printf("</PRE></TT>");
-    }
-}
-
 void customMafClick(struct sqlConnection *conn, struct sqlConnection *conn2,
     struct trackDb *tdb)
 {
 struct hash *settings = tdb->settingsHash;
 char *fileName;
 if ((fileName = hashFindVal(settings, "mafFile")) == NULL)
     errAbort("cannot find custom maf file setting");
 mafOrAxtClick2(conn, conn2, tdb, NULL, fileName);
 }
 
 void genericMafClick(struct sqlConnection *conn, struct trackDb *tdb,
                      char *item, int start)
 /* Display details for MAF tracks. */
 {
-if (hIsGsidServer())
-    {
-    mafOrAxtClickGsid(conn, tdb, NULL);
-    }
-else
-    {
 mafOrAxtClick(conn, tdb, NULL);
 }
-}
 
 void genericAxtClick(struct sqlConnection *conn, struct trackDb *tdb,
                      char *item, int start, char *otherDb)
 /* Display details for AXT tracks. */
 {
 mafOrAxtClick(conn, tdb, otherDb);
 }