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/pal.c src/hg/lib/pal.c
deleted file mode 100644
index 527e7b7..0000000
--- src/hg/lib/pal.c
+++ /dev/null
@@ -1,305 +0,0 @@
-/* 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 "cart.h"
-#include "genePred.h"
-#include "genePredReader.h"
-#include "mafGene.h"
-#include "trackDb.h"
-#include "hdb.h"
-#include "hgMaf.h"
-#include "jsHelper.h"
-#include "hPrint.h"
-#include "hdb.h"
-
-
-#define hgtaCGIGeneMafTable "hgta_mafGeneMafTable"
-#define hgtaJSGeneMafTable  "mafGeneMafTable"
-#define hgtaCGIGeneExons "hgta_mafGeneExons"
-#define hgtaJSGeneExons  "mafGeneExons"
-#define hgtaCGIGeneNoTrans "hgta_mafGeneNoTrans"
-#define hgtaJSGeneNoTrans  "mafGeneNoTrans"
-#define hgtaCGIGeneOutBlank "hgta_mafGeneOutBlank"
-#define hgtaJSGeneOutBlank  "mafGeneOutBlank"
-#define hgtaCGIOutTable "hgta_mafOutTable"
-#define hgtaJSOutTable  "mafOutTable"
-#define hgtaCGINumColumns "hgta_mafNumColumns"
-#define hgtaJSNumColumns  "mafNumColumns"
-#define hgtaCGITruncHeader "hgta_mafTruncHeader"
-#define hgtaJSTruncHeader  "mafTruncHeader"
-
-static char *curVars[] = {
-	hgtaCGIGeneMafTable, hgtaCGIGeneExons,
-	hgtaCGIGeneNoTrans, hgtaCGIGeneOutBlank,
-	hgtaCGIOutTable, hgtaCGINumColumns,
-	hgtaCGITruncHeader,
-	};
-
-int palOutPredList(struct sqlConnection *conn, struct cart *cart,
-    struct genePred *list)
-/* output a list of genePreds in pal format */
-{
-if (list == NULL)
-    return 0;
-
-char *mafTable = cartString(cart, hgtaCGIGeneMafTable);
-char *database = sqlGetDatabase(conn);
-struct trackDb *maftdb = hTrackDbForTrack(database, mafTable);
-struct wigMafSpecies *wmSpecies;
-int groupCnt;
-
-/* get maf parent (if any) */
-maftdb->parent = hCompositeTrackDbForSubtrack(database,maftdb);
-
-/* this queries the state of the getSpecies dialog */
-wigMafGetSpecies(cart, maftdb, maftdb->track, database, &wmSpecies, &groupCnt);
-
-/* since the species selection dialog doesn't list
- * the reference species, we just automatically include
- * it */
-struct slName *includeList = slNameNew(database);
-
-/* now make a list of all species that are on */
-for(; wmSpecies; wmSpecies = wmSpecies->next)
-    {
-    if (wmSpecies->on)
-	{
-	struct slName *newName = slNameNew(wmSpecies->name);
-	slAddHead(&includeList, newName);
-	}
-    }
-slReverse(&includeList);
-
-boolean inExons = cartUsualBoolean(cart, hgtaCGIGeneExons , FALSE);
-boolean noTrans = cartUsualBoolean(cart, hgtaCGIGeneNoTrans, FALSE);
-boolean outBlank = cartUsualBoolean(cart, hgtaCGIGeneOutBlank, FALSE);
-boolean outTable = cartUsualBoolean(cart, hgtaCGIOutTable, FALSE);
-boolean truncHeader = cartUsualBoolean(cart, hgtaCGITruncHeader, FALSE);
-int numCols = cartUsualInt(cart, hgtaCGINumColumns, 20);
-unsigned options = 0;
-
-if (inExons)  options |= MAFGENE_EXONS;
-if (noTrans)  options |= MAFGENE_NOTRANS;
-if (outBlank) options |= MAFGENE_OUTBLANK;
-if (outTable) options |= MAFGENE_OUTTABLE;
-
-if (!truncHeader)
-    numCols = -1;
-
-/* send out the alignments */
-int outCount = 0;
-for( ; list ; list = list->next)
-    {
-    if (list->cdsStart != list->cdsEnd)
-	{
-	outCount++;
-	mafGeneOutPred(stdout, list, database, mafTable,
-	    includeList, options, numCols);
-	}
-    }
-
-slNameFreeList(&includeList);
-return outCount;
-}
-
-int palOutPredsInBeds(struct sqlConnection *conn, struct cart *cart,
-    struct bed *beds, char *table )
-/* output the alignments whose names and coords match a bed*/
-{
-struct genePred *list = NULL;
-
-for(; beds; beds = beds->next)
-    {
-    char where[10 * 1024];
-
-    sqlSafefFrag(where, sizeof where,
-	"name = '%s' and chrom='%s' and txEnd > %d and txStart <= %d",
-	beds->name, beds->chrom, beds->chromStart, beds->chromEnd);
-
-    struct genePredReader *reader = genePredReaderQuery( conn, table, where);
-    struct genePred *pred;
-    while ((pred = genePredReaderNext(reader)) != NULL)
-	slAddHead(&list, pred);
-
-    genePredReaderFree(&reader);
-    }
-
-int outCount = 0;
-if (list != NULL)
-    {
-    slReverse(&list);
-    outCount = palOutPredList( conn, cart, list);
-    genePredFreeList(&list);
-    }
-
-return outCount;
-}
-
-static char *onChangeEnd(struct dyString **pDy)
-/* Finish up javascript onChange command. */
-{
-dyStringAppend(*pDy, "document.hiddenForm.submit();");
-return dyStringCannibalize(pDy);
-}
-
-static struct dyString *onChangeStart()
-/* Start up a javascript onChange command */
-{
-struct dyString *dy = dyStringNew(1024);
-jsDropDownCarryOver(dy, hgtaCGIGeneMafTable);
-jsTrackedVarCarryOver(dy, hgtaCGIGeneExons, hgtaJSGeneExons);
-jsTrackedVarCarryOver(dy, hgtaCGIGeneNoTrans, hgtaJSGeneNoTrans);
-jsTrackedVarCarryOver(dy, hgtaCGIGeneOutBlank, hgtaJSGeneOutBlank);
-jsTrackedVarCarryOver(dy, hgtaCGIOutTable, hgtaJSOutTable);
-jsTrackedVarCarryOver(dy, hgtaCGITruncHeader, hgtaJSTruncHeader);
-jsTextCarryOver(dy, hgtaCGINumColumns);
-return dy;
-}
-
-static char *onChangeGenome()
-/* Get group-changing javascript. */
-{
-struct dyString *dy = onChangeStart();
-return onChangeEnd(&dy);
-}
-
-static char * getConservationTrackName( struct sqlConnection *conn)
-{
-struct slName *dbList = hTrackDbList();
-struct slName *dbl = dbList;
-char *ret = NULL;
-
-for(; dbl; dbl = dbl->next)
-    {
-    char query[512];
-    sqlSafef(query, sizeof query,
-	"select tableName from %s where shortLabel='Conservation'", dbl->name);
-
-    struct sqlResult *sr = sqlGetResult(conn, query);
-    char **row;
-    struct slName *tableList = NULL;
-    while ((row = sqlNextRow(sr)) != NULL)
-	{
-	struct slName *name = newSlName(row[0]);
-	slAddHead(&tableList, name);
-	}
-    sqlFreeResult(&sr);
-
-    struct slName *l = tableList;
-
-    for(; l; l = l->next)
-	if (sqlTableExists(conn, l->name))
-	    ret = cloneString(l->name);
-
-    slFreeList(&tableList);
-
-    if (ret != NULL)
-	break;
-    }
-slFreeList(&dbList);
-
-return ret;
-}
-
-static char * outMafTableDrop(struct cart *cart, struct sqlConnection *conn)
-{
-struct slName *list = hTrackTablesOfType(conn, "wigMaf%%");
-int count = slCount(list);
-
-if (count == 0)
-    errAbort("There are no multiple alignments available for this genome.");
-
-char **tables = needMem(sizeof(char *) * count);
-char **tb = tables;
-char *mafTable = cartOptionalString(cart, hgtaCGIGeneMafTable);
-
-if (mafTable != NULL)
-    {
-    struct slName *l = list;
-    for(; l; l=l->next)
-	if (sameString(l->name, mafTable))
-	    break;
-
-    /* didn't find mafTable in list, reset it */
-    if (l == NULL)
-	mafTable = NULL;
-    }
-
-if (mafTable == NULL)
-    {
-    if ((mafTable = getConservationTrackName(conn)) == NULL)
-	mafTable = list->name;
-
-    cartSetString(cart, hgtaCGIGeneMafTable, mafTable);
-    }
-
-for(; list; list = list->next)
-    *tb++ = list->name;
-
-printf("<B>MAF table: </B>\n");
-cgiMakeDropListFull(hgtaCGIGeneMafTable, tables, tables,
-    count , mafTable, "change", onChangeGenome());
-
-return mafTable;
-}
-
-void palOptions(struct cart *cart,
-	struct sqlConnection *conn, void (*addButtons)(),
-	char *extraVar)
-/* output the options dialog (select MAF file, output options */
-{
-char *database = sqlGetDatabase(conn);
-
-hPrintf("<FORM ACTION=\"%s\" NAME=\"mainForm\" METHOD=POST>\n", cgiScriptName());
-cartSaveSession(cart);
-
-char *mafTable = outMafTableDrop(cart, conn);
-char *numColumns = cartUsualString(cart, hgtaCGINumColumns, "");
-
-printf("<BR><BR><B>Formatting options:</B><BR>\n");
-jsMakeTrackingCheckBox(cart, hgtaCGIGeneExons, hgtaJSGeneExons, FALSE);
-printf("Separate into exons<BR>");
-jsMakeTrackingCheckBox(cart, hgtaCGIGeneNoTrans, hgtaJSGeneNoTrans, FALSE);
-printf("Show nucleotides<BR>");
-jsMakeTrackingCheckBox(cart, hgtaCGIGeneOutBlank, hgtaJSGeneOutBlank, FALSE);
-printf("Output lines with just dashes<BR>");
-jsMakeTrackingCheckBox(cart, hgtaCGIOutTable, hgtaJSOutTable, FALSE);
-printf("Format output as table ");
-jsMakeTrackingCheckBox(cart, hgtaCGITruncHeader, hgtaJSTruncHeader, FALSE);
-printf("Truncate headers at ");
-cgiMakeTextVar(hgtaCGINumColumns, numColumns, 2);
-printf("characters (enter zero for no headers)<BR>");
-
-printf("<BR>");
-struct trackDb *maftdb = hTrackDbForTrack(database, mafTable);
-
-/* get maf parent (if any) */
-maftdb->parent = hCompositeTrackDbForSubtrack(database,maftdb);
-
-wigMafSpeciesTable(cart, maftdb, mafTable, database);
-
-addButtons();
-
-cartSaveSession(cart);
-
-hPrintf("</FORM>\n");
-
-/* Hidden form - for benefit of javascript. */
-    {
-    static char *saveVars[32];
-    int varCount = ArraySize(curVars);
-
-    assert(varCount  < (sizeof saveVars / sizeof(char *)));
-    memcpy(saveVars, curVars, varCount * sizeof(saveVars[0]));
-    if (extraVar != NULL)
-	{
-	assert(varCount + 1 < (sizeof saveVars / sizeof(char *)));
-	saveVars[varCount] = extraVar;
-	varCount++;
-	}
-    jsCreateHiddenForm(cart, cgiScriptName(), saveVars, varCount);
-    }
-
-}