5f9dc35a87a2125dd115389b7d3b7c4d8709f740
chinhli
  Tue Nov 13 15:45:12 2012 -0800
Pull doNumtS out from hgc.c and put it in numtsClick.c, in preparation for redmine #8533 NumtS tracks for 10 more organism.
diff --git src/hg/hgc/hgc.c src/hg/hgc/hgc.c
index 90f23b4..5e5fa74 100644
--- src/hg/hgc/hgc.c
+++ src/hg/hgc/hgc.c
@@ -226,30 +226,31 @@
 #include "twoBit.h"
 #include "itemConf.h"
 #include "chromInfo.h"
 #include "gbWarn.h"
 #include "lsSnpPdbChimera.h"
 #include "mammalPsg.h"
 #include "net.h"
 #include "jsHelper.h"
 #include "virusClick.h"
 #include "gwasCatalog.h"
 #include "parClick.h"
 #include "mdb.h"
 #include "yaleGencodeAssoc.h"
 #include "itemDetailsHtml.h"
 #include "trackVersion.h"
+#include "numtsClick.h"
 
 static char *rootDir = "hgcData";
 
 #define LINESIZE 70  /* size of lines in comp seq feature */
 
 struct cart *cart;	/* User's settings. */
 char *seqName;		/* Name of sequence we're working on. */
 int winStart, winEnd;   /* Bounds of sequence. */
 char *database;		/* Name of mySQL database. */
 char *organism;		/* Colloquial name of organism. */
 char *genome;		/* common name, e.g. Mouse, Human */
 char *scientificName;	/* Scientific name of organism. */
 
 struct hash *trackHash;	/* A hash of all tracks - trackDb valued */
 
@@ -23902,162 +23903,30 @@
 bedDetailFree(&r);
 freeMem(escName);
 hFreeConn(&conn);
 }
 
 struct trackDb *tdbForTableArg()
 /* get trackDb for track passed in table arg */
 {
 char *table = cartString(cart, "table");
 struct trackDb *tdb = hashFindVal(trackHash, table);
 if (tdb == NULL)
     errAbort("no trackDb entry for %s", table);
 return tdb;
 }
 
-void doNumtS(struct trackDb *tdb, char *itemName)
-/* Put up page for NumtS. */
-{
-char *table = tdb->table;
-struct sqlConnection *conn = hAllocConn(database);
-struct bed *bed;
-char query[512];
-struct sqlResult *sr;
-char **row;
-boolean firstTime = TRUE;
-int start = cartInt(cart, "o");
-int num = 6;
-char itemNameDash[64]; /* itenName appended with a "_" */
-char itemNameTrimmed[64]; /* itemName trimed at last "_" */
-int sDiff = 30; /* acceptable difference of genomics size */
-/* message strings */
-char *clickMsg = NULL;
-char *openMsg1 = "Click 'browser' link below to open Genome Browser at genomic position where";
-char *openMsg2 = "maps\n";
-char *openMsgM = "Click 'browser' link below to open Genome Browser at mitochondrial position where";
-
-
-genericHeader(tdb, itemName);
-genericBedClick(conn, tdb, itemName, start, num);
-
-safecpy(itemNameDash, sizeof(itemNameDash),itemName);
-safecat(itemNameDash,64,"_");
-safecpy(itemNameTrimmed, sizeof(itemNameTrimmed),itemName);
-chopSuffixAt(itemNameTrimmed, '_');
-
-safef(query, sizeof(query), "select chrom, chromStart, chromEnd, name, score, strand from %s where name='%s'",
-      table, itemName);
-sr = sqlGetResult(conn, query);
-int sSize=0;
-while ((row = sqlNextRow(sr)) != NULL)
-    {
-        bed = bedLoad6(row);
-        sSize = bed->chromEnd - bed->chromStart;
-        /* printf("sSize is: %5d <BR>", sSize); */
-    }
-
-
-if (sameString("hg18", database))
-{
-  if (sameString("numtS", table))
-      {
-      safef(query, sizeof(query),
-          "select  chrom, chromStart, chromEnd, name, score, strand "
-          "from numtSMitochondrionChrPlacement where ( "
-          "(name = '%s') OR (((name REGEXP '^%s') OR (name='%s')) AND "
-          " (ABS((chromEnd - chromStart)-%d) <= %d ))) ",
-      itemName, itemNameDash, itemNameTrimmed, sSize, sDiff);
-      clickMsg = openMsgM;
-      }
-    else if (sameString("numtSAssembled", table))
-      {
-      safef(query, sizeof(query),
-          "select  chrom, chromStart, chromEnd, name, score, strand "
-          "from numtSMitochondrionChrPlacement where ( "
-          "(name = '%s') OR (((name REGEXP '^%s') OR (name='%s')) AND "
-          " (ABS((chromEnd - chromStart)-%d) <= %d ))) ",
-      itemName, itemNameDash, itemNameTrimmed, sSize, sDiff);
-      clickMsg = openMsgM;
-      }
-    else if (sameString("numtSMitochondrion", table))
-      {
-      safef(query, sizeof(query),
-          "select  chrom, chromStart, chromEnd, name, score, strand "
-          "from numtS where ( "
-          "(name = '%s') OR (((name REGEXP '^%s') OR (name='%s')) AND "
-          " (ABS((chromEnd - chromStart)-%d) <= %d ))) ",
-      itemName, itemNameDash, itemNameTrimmed, sSize, sDiff);
-      clickMsg = openMsg1;
-        }
-    else if (sameString("numtSMitochondrionChrPlacement", table))
-      {
-      safef(query, sizeof(query),
-          "select  chrom, chromStart, chromEnd, name, score, strand "
-          "from numtS where ( "
-          "(name = '%s') OR (((name REGEXP '^%s') OR (name='%s')) AND "
-          " (ABS((chromEnd - chromStart)-%d) <= %d ))) ",
-      itemName, itemNameDash, itemNameTrimmed, sSize, sDiff);
-      clickMsg = openMsg1;
-      }
-} else {
-  if (sameString("numtS", table) || sameString("numtSAssembled", table))
-     {
-     safef(query, sizeof(query),
-         "select  chrom, chromStart, chromEnd, name, score, strand "
-         "from numtSMitochondrion where name = '%s'  ", itemName);
-     clickMsg = openMsgM;
-     }
-  else if (sameString("numtSMitochondrion", table))
-     {
-      safef(query, sizeof(query),
-          "select  chrom, chromStart, chromEnd, name, score, strand "
-          "from numtS where name = '%s'", itemName);
-      clickMsg = openMsg1;
-     }
-}
-
-    sr = sqlGetResult(conn, query);
-    firstTime = TRUE;
-
-    while ((row = sqlNextRow(sr)) != NULL)
-        {
-        printf("<PRE><TT>");
-        if (firstTime)
-            {
-            firstTime = FALSE;
-        printf("<BR><H3>%s item '%s' %s</H3><BR>", clickMsg, itemName, openMsg2);
-
-            printf("BROWSER | NAME                CHROMOSOME      START        END     SIZE    SCORE  STRAND \n");
-            printf("--------|--------------------------------------------------------------------------------------------\n");
-
-            }
-        bed = bedLoad6(row);
-        printf("<A HREF=\"%s&db=%s&position=%s%%3A%d-%d\">browser</A> | ",
-               hgTracksPathAndSettings(), database,
-               bed->chrom, bed->chromStart+1, bed->chromEnd);
-
-        printf("%-20s %-10s %9d  %9d    %5d    %5d    %1s",
-            bed->name, bed->chrom, bed->chromStart+1, bed->chromEnd,
-            (bed->chromEnd - bed->chromStart),bed->score, bed->strand);
-
-        printf("</TT></PRE>");
-        }
-
- printf("<BR>");
- printTrackHtml(tdb);
- hFreeConn(&conn);
-}
 void doGeneReviews(struct trackDb *tdb, char *itemName)
 /* generate the detail page for geneReviews */
 {
 struct sqlConnection *conn = hAllocConn(database);
 //char *table = tdb->table;
 int start = cartInt(cart, "o");
 int num = 4;
 
  genericHeader(tdb, itemName);
  genericBedClick(conn, tdb, itemName, start, num);
  prGeneReviews(conn, itemName);
  printf("<BR>");
  printTrackHtml(tdb);
  hFreeConn(&conn);
 }