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); }