533112afe2a2005e80cdb1f82904ea65032d4302
braney
  Sat Oct 2 11:37:34 2021 -0700
split hg/lib into two separate libaries, one only used by the cgis

diff --git src/hg/lib/hgExp.c src/hg/lib/hgExp.c
deleted file mode 100644
index 863463c..0000000
--- src/hg/lib/hgExp.c
+++ /dev/null
@@ -1,328 +0,0 @@
-/* hgExp - help browse expression data. */
-
-/* Copyright (C) 2014 The Regents of the University of California 
- * See README in this or parent directory for licensing information. */
-
-#include "common.h"
-#include "hash.h"
-#include "jksql.h"
-#include "hdb.h"
-#include "gifLabel.h"
-#include "cart.h"
-#include "cheapcgi.h"
-#include "hgExp.h"
-#include "portable.h"
-
-
-static int expSubcellWidth = 21;
-
-static char *colorSchemeVals[] = {
-/* Menu option for color scheme. */
-   "red high/green low",
-   "yellow high/blue low",
-};
-
-void hgExpColorDropDown(struct cart *cart, char *varName)
-/* Make color drop-down. */
-{
-char *checked = cartUsualString(cart, varName, colorSchemeVals[0]);
-cgiMakeDropList(varName, 
-	colorSchemeVals, ArraySize(colorSchemeVals), checked);
-}
-
-boolean hgExpRatioUseBlue(struct cart *cart, char *varName)
-/* Return TRUE if should use blue instead of red
- * in the expression ratios. */
-{
-char *val = cartUsualString(cart, varName, colorSchemeVals[0]);
-return !sameString(val, colorSchemeVals[0]);
-}
-
-char **hgExpGetNames(char *database, char *table, 
-	int expCount, int *expIds, int skipSize)
-/* Create array filled with experiment names. */
-{
-char **names, *name;
-int i;
-char *db = database;
-struct sqlConnection *conn;
-char query[256], nameBuf[128];
-int maxLen = 0, len;
-
-if (!hTableExists(database, table))
-    db = "hgFixed";
-conn = sqlConnect(db);
-/* Read into array and figure out longest name. */
-AllocArray(names, expCount);
-for (i=0; i<expCount; ++i)
-    {
-    int ix = expIds[i];
-    if (ix == -1)
-        names[i] = NULL;
-    else
-	{
-	sqlSafef(query, sizeof(query), "select name from %s where id = %d", 
-	    table, expIds[i]);
-	if ((name = sqlQuickQuery(conn, query, nameBuf, sizeof(nameBuf))) == NULL)
-	    name = "unknown";
-	else
-	    name += skipSize;
-	names[i] = cloneString(name);
-	len = strlen(name);
-	if (len > maxLen) maxLen = len;
-	}
-    }
-sqlDisconnect(&conn);
-
-/* Right justify names. */
-for (i=0; i<expCount; ++i)
-    {
-    char *name = names[i];
-    if (name != NULL)
-        {
-	safef(nameBuf, sizeof(nameBuf), "%*s", maxLen, name);
-	freeMem(name);
-	names[i] = cloneString(nameBuf);
-	}
-    }
-return names;
-}
-
-static int countNonNull(char **row, int maxCount)
-/* Count number of non-null rows. */
-{
-int i;
-for (i=0; i<maxCount; ++i)
-    {
-    if (row[i] == NULL)
-        break;
-    }
-return i;
-}
-
-void hgExpLabelPrint(char *database, char *colName, char *subName, int skipName,
-	char *url, int representativeCount, int *representatives,
-	char *expTable, int gifStart)
-/* Print out labels of various experiments. */
-{
-int i;
-int groupSize;
-char gifName[128];
-char **experiments = hgExpGetNames(database,
-	expTable, representativeCount, representatives, skipName);
-int height = gifLabelMaxWidth(experiments, representativeCount);
-
-for (i=0; i<representativeCount; i += groupSize+1)
-    {
-    printf("<TD VALIGN='BOTTOM' WIDTH=%d>", expSubcellWidth);
-    groupSize = countNonNull(experiments+i, representativeCount-i);
-    safef(gifName, sizeof(gifName), "../trash/nea_%s_%s%d.png", 
-    	colName, subName, ++gifStart);
-    gifLabelVerticalText(gifName, experiments+i, groupSize, height);
-    if (url != NULL)
-       printf("<A HREF=\"%s\">", url); 
-    printf("<IMG BORDER=0 SRC=\"%s\">", gifName);
-    if (url != NULL)
-	printf("</A>");
-    printf("</TD>");
-    }
-
-/* Clean up */
-for (i=0; i<representativeCount; ++i)
-   freeMem(experiments[i]);
-freeMem(experiments);
-}
-
-
-boolean hgExpLoadVals(struct sqlConnection *lookupConn,
-	struct sqlConnection *dataConn,
-	char *lookupTable, char *name, char *dataTable,
-	int *retValCount, float **retVals)
-/* Load up and return expression bed record.  Return NULL
- * if none of given name exist. */
-{
-char query[256];
-char expName[64];
-struct sqlResult *sr;
-char **row;
-boolean ok = FALSE;
-if (lookupTable != NULL && !sameWord(lookupTable, "null"))
-    {
-    sqlSafef(query, sizeof(query), "select value from %s where name = '%s'", 
-	  lookupTable, name);
-    if (sqlQuickQuery(lookupConn, query, expName, sizeof(expName)) == NULL)
-	return FALSE;
-    sqlSafef(query, sizeof(query), "select expScores from %s where name = '%s'",
-	  dataTable, expName);
-    }
-else
-    sqlSafef(query, sizeof(query), "select expScores from %s where name = '%s'",
-	  dataTable, name);    
-sr = sqlGetResult(dataConn, query);
-if ((row = sqlNextRow(sr)) != NULL)
-    {
-    sqlFloatDynamicArray(row[0], retVals, retValCount);
-    ok = TRUE;
-    }
-sqlFreeResult(&sr);
-return ok;
-}
-
-
-static void hexOne(double val)
-/* Convert val 0.0-1.0 to hex 00 to FF */
-{
-int hex = val * 0xFF;
-if (hex > 0xFF) hex = 0xFF;
-printf("%02X", hex);
-}
-
-static void colorVal(double val, double scale, boolean useBlue, boolean useGrays, boolean logGrays)
-/* Val is -1.0 to 1.0.  Print color in form #FF0000, normally
- * using green for minus values, red for plus values, but
- * optionally using blue for minus values and yellow for plus values. */
-{
-if (useGrays)
-    {
-    if (val < 1)
-        printf("000000");
-    else
-	{
-	val = (logGrays) ? log(val) * scale : val * scale;
-	hexOne(val);
-	hexOne(val);
-	hexOne(val);
-	}
-    }
-else 
-    {
-    val *= scale;
-    if (useBlue)
-	{
-	if (val < 0)
-	    {
-	    val = -val;
-	    printf("00");
-	    printf("00");
-	    hexOne(val);
-	    }
-	else
-	    {
-	    val *= 0.7;
-	    hexOne(val);    /* Red */
-	    hexOne(val);     /* Green */
-	    printf("00");   /* Blue */
-	    }
-	}
-    else 
-	{
-	if (val < 0)
-	    {
-	    printf("00");	    /* Red */
-	    hexOne(-val*0.8);    /* Green - brighter than red*/
-	    printf("00");      /* Blue */
-	    }
-	else
-	    {
-	    hexOne(val);
-	    printf("00");
-	    printf("00");
-	    }
-	}
-    }
-}
-
-static void startExpCell()
-/* Print out start of expression cell, which contains a table. */
-{
-printf("<TD><TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0><TR>");
-}
-
-static void endExpCell()
-/* Print out end of expression cell, closing up internal table. */
-{
-printf("</TR></TABLE></TD>");
-}
-
-static void restartExpCell()
-/* End expression cell and begin a new one. */
-{
-endExpCell();
-startExpCell();
-}
-
-static void printRatioShades(char *colName, int repCount, 
-	int *reps, int valCount, float *vals, 
-	boolean colorBlindColors,
-	boolean useGrays, boolean logGrays, float scale)
-/* Print out representatives in shades of color in table background. */
-{
-int i;
-float val;
-startExpCell();
-for (i=0; i<repCount; ++i)
-    {
-    int ix = reps[i];
-    if (ix > valCount)
-        errAbort("Representative larger than biggest experiment in %s", colName);
-    if (ix == -1)
-        {
-	restartExpCell();
-	}
-    else
-	{
-	val = vals[ix];
-	if (val <= -9999)
-	    printf("<TD WIDTH=%d>&nbsp;</TD>", expSubcellWidth);
-	else
-	    {
-	    printf("<TD WIDTH=%d BGCOLOR='#", expSubcellWidth);
-	    colorVal(val, scale, colorBlindColors, useGrays, logGrays);
-	    printf("'>&nbsp;</TD>");
-	    }
-	}
-    }
-endExpCell();
-}
-
-static void replicate(char *s, int repCount, int *reps)
-/* Replicate s in cells of table */
-{
-int i;
-startExpCell();
-printf("%s", s);
-for (i=0; i<repCount; ++i)
-    {
-    int ix = reps[i];
-    if (ix == -1)
-        {
-	restartExpCell();
-	printf("%s", s);
-	}
-    }
-endExpCell();
-}
-
-void hgExpCellPrint(char *colName, char *geneId, 
-	struct sqlConnection *lookupConn, char *lookupTable,
-	struct sqlConnection *dataConn, char *dataTable,
-	int representativeCount, int *representatives,
-	boolean useBlue, boolean useGrays, boolean logGrays, float scale)
-/* Print out html for expression cell in table. */
-{
-int valCount;
-float *vals = NULL;
-
-if (hgExpLoadVals(lookupConn, dataConn, lookupTable, geneId, dataTable, 
-	&valCount, &vals))
-    {
-    printRatioShades(colName, representativeCount, representatives, 
-    	valCount, vals, useBlue, useGrays, logGrays, scale);
-    freez(&vals);
-    }
-else
-    {
-    replicate("<TD>n/a</TD>", representativeCount, representatives);
-    }
-}
-