18f572b767889300089237bcada2073f46cd06f5
markd
  Wed Feb 8 11:59:16 2017 -0800
added more label options and made more readable

diff --git src/hg/lib/bigTransMap.c src/hg/lib/bigTransMap.c
index e248779..12de08c 100644
--- src/hg/lib/bigTransMap.c
+++ src/hg/lib/bigTransMap.c
@@ -1,28 +1,28 @@
 /* bigTransMap.c was originally generated by the autoSql program, which also 
  * generated bigTransMap.h and bigTransMap.sql.  This module links the database and
  * the RAM representation of objects. */
 
 #include "common.h"
 #include "linefile.h"
 #include "dystring.h"
 #include "jksql.h"
 #include "bigTransMap.h"
 
 
 
-char *bigTransMapCommaSepFieldNames = "chrom,chromStart,chromEnd,name,score,strand,thickStart,thickEnd,reserved,blockCount,blockSizes,chromStarts,oChromStart,oChromEnd,oStrand,oChromSize,oChromStarts,oSequence,oCDS,chromSize,match,misMatch,repMatch,nCount,seqType,srcDb,srcChrom,srcChromStart,srcChromEnd,srcScore,srcAligned,geneName,geneId,geneType,transcriptType,chainType,commonName,scientificName,orgAbbrev";
+char *bigTransMapCommaSepFieldNames = "chrom,chromStart,chromEnd,name,score,strand,thickStart,thickEnd,reserved,blockCount,blockSizes,chromStarts,oChromStart,oChromEnd,oStrand,oChromSize,oChromStarts,oSequence,oCDS,chromSize,match,misMatch,repMatch,nCount,seqType,srcDb,srcTransId,srcChrom,srcChromStart,srcChromEnd,srcScore,srcAligned,geneName,geneId,geneType,transcriptType,chainType,commonName,scientificName,orgAbbrev";
 
 struct bigTransMap *bigTransMapLoad(char **row)
 /* Load a bigTransMap from row fetched with select * from bigTransMap
  * from database.  Dispose of this with bigTransMapFree(). */
 {
 struct bigTransMap *ret;
 
 AllocVar(ret);
 ret->blockCount = sqlSigned(row[9]);
 ret->chrom = cloneString(row[0]);
 ret->chromStart = sqlUnsigned(row[1]);
 ret->chromEnd = sqlUnsigned(row[2]);
 ret->name = cloneString(row[3]);
 ret->score = sqlUnsigned(row[4]);
 safecpy(ret->strand, sizeof(ret->strand), row[5]);
@@ -45,71 +45,72 @@
 ret->oChromSize = sqlUnsigned(row[15]);
 {
 int sizeOne;
 sqlSignedDynamicArray(row[16], &ret->oChromStarts, &sizeOne);
 assert(sizeOne == ret->blockCount);
 }
 ret->oSequence = cloneString(row[17]);
 ret->oCDS = cloneString(row[18]);
 ret->chromSize = sqlUnsigned(row[19]);
 ret->match = sqlUnsigned(row[20]);
 ret->misMatch = sqlUnsigned(row[21]);
 ret->repMatch = sqlUnsigned(row[22]);
 ret->nCount = sqlUnsigned(row[23]);
 ret->seqType = sqlUnsigned(row[24]);
 ret->srcDb = cloneString(row[25]);
-ret->srcChrom = cloneString(row[26]);
-ret->srcChromStart = sqlUnsigned(row[27]);
-ret->srcChromEnd = sqlUnsigned(row[28]);
-ret->srcScore = sqlUnsigned(row[29]);
-ret->srcAligned = sqlUnsigned(row[30]);
-ret->geneName = cloneString(row[31]);
-ret->geneId = cloneString(row[32]);
-ret->geneType = cloneString(row[33]);
-ret->transcriptType = cloneString(row[34]);
-ret->chainType = cloneString(row[35]);
-ret->commonName = cloneString(row[36]);
-ret->scientificName = cloneString(row[37]);
-ret->orgAbbrev = cloneString(row[38]);
+ret->srcTransId = cloneString(row[26]);
+ret->srcChrom = cloneString(row[27]);
+ret->srcChromStart = sqlUnsigned(row[28]);
+ret->srcChromEnd = sqlUnsigned(row[29]);
+ret->srcScore = sqlUnsigned(row[30]);
+ret->srcAligned = sqlUnsigned(row[31]);
+ret->geneName = cloneString(row[32]);
+ret->geneId = cloneString(row[33]);
+ret->geneType = cloneString(row[34]);
+ret->transcriptType = cloneString(row[35]);
+ret->chainType = cloneString(row[36]);
+ret->commonName = cloneString(row[37]);
+ret->scientificName = cloneString(row[38]);
+ret->orgAbbrev = cloneString(row[39]);
 return ret;
 }
 
 struct bigTransMap *bigTransMapLoadAll(char *fileName) 
 /* Load all bigTransMap from a whitespace-separated file.
  * Dispose of this with bigTransMapFreeList(). */
 {
 struct bigTransMap *list = NULL, *el;
 struct lineFile *lf = lineFileOpen(fileName, TRUE);
-char *row[39];
+char *row[40];
 
 while (lineFileRow(lf, row))
     {
     el = bigTransMapLoad(row);
     slAddHead(&list, el);
     }
 lineFileClose(&lf);
 slReverse(&list);
 return list;
 }
 
 struct bigTransMap *bigTransMapLoadAllByChar(char *fileName, char chopper) 
 /* Load all bigTransMap from a chopper separated file.
  * Dispose of this with bigTransMapFreeList(). */
 {
 struct bigTransMap *list = NULL, *el;
 struct lineFile *lf = lineFileOpen(fileName, TRUE);
-char *row[39];
+char *row[40];
 
 while (lineFileNextCharRow(lf, chopper, row, ArraySize(row)))
     {
     el = bigTransMapLoad(row);
     slAddHead(&list, el);
     }
 lineFileClose(&lf);
 slReverse(&list);
 return list;
 }
 
 struct bigTransMap *bigTransMapCommaIn(char **pS, struct bigTransMap *ret)
 /* Create a bigTransMap out of a comma separated string. 
  * This will fill in ret if non-null, otherwise will
  * return a new bigTransMap */
@@ -162,30 +163,31 @@
     {
     ret->oChromStarts[i] = sqlSignedComma(&s);
     }
 s = sqlEatChar(s, '}');
 s = sqlEatChar(s, ',');
 }
 ret->oSequence = sqlStringComma(&s);
 ret->oCDS = sqlStringComma(&s);
 ret->chromSize = sqlUnsignedComma(&s);
 ret->match = sqlUnsignedComma(&s);
 ret->misMatch = sqlUnsignedComma(&s);
 ret->repMatch = sqlUnsignedComma(&s);
 ret->nCount = sqlUnsignedComma(&s);
 ret->seqType = sqlUnsignedComma(&s);
 ret->srcDb = sqlStringComma(&s);
+ret->srcTransId = sqlStringComma(&s);
 ret->srcChrom = sqlStringComma(&s);
 ret->srcChromStart = sqlUnsignedComma(&s);
 ret->srcChromEnd = sqlUnsignedComma(&s);
 ret->srcScore = sqlUnsignedComma(&s);
 ret->srcAligned = sqlUnsignedComma(&s);
 ret->geneName = sqlStringComma(&s);
 ret->geneId = sqlStringComma(&s);
 ret->geneType = sqlStringComma(&s);
 ret->transcriptType = sqlStringComma(&s);
 ret->chainType = sqlStringComma(&s);
 ret->commonName = sqlStringComma(&s);
 ret->scientificName = sqlStringComma(&s);
 ret->orgAbbrev = sqlStringComma(&s);
 *pS = s;
 return ret;
@@ -194,30 +196,31 @@
 void bigTransMapFree(struct bigTransMap **pEl)
 /* Free a single dynamically allocated bigTransMap such as created
  * with bigTransMapLoad(). */
 {
 struct bigTransMap *el;
 
 if ((el = *pEl) == NULL) return;
 freeMem(el->chrom);
 freeMem(el->name);
 freeMem(el->blockSizes);
 freeMem(el->chromStarts);
 freeMem(el->oChromStarts);
 freeMem(el->oSequence);
 freeMem(el->oCDS);
 freeMem(el->srcDb);
+freeMem(el->srcTransId);
 freeMem(el->srcChrom);
 freeMem(el->geneName);
 freeMem(el->geneId);
 freeMem(el->geneType);
 freeMem(el->transcriptType);
 freeMem(el->chainType);
 freeMem(el->commonName);
 freeMem(el->scientificName);
 freeMem(el->orgAbbrev);
 freez(pEl);
 }
 
 void bigTransMapFreeList(struct bigTransMap **pList)
 /* Free a list of dynamically allocated bigTransMap's */
 {
@@ -316,30 +319,34 @@
 fprintf(f, "%u", el->match);
 fputc(sep,f);
 fprintf(f, "%u", el->misMatch);
 fputc(sep,f);
 fprintf(f, "%u", el->repMatch);
 fputc(sep,f);
 fprintf(f, "%u", el->nCount);
 fputc(sep,f);
 fprintf(f, "%u", el->seqType);
 fputc(sep,f);
 if (sep == ',') fputc('"',f);
 fprintf(f, "%s", el->srcDb);
 if (sep == ',') fputc('"',f);
 fputc(sep,f);
 if (sep == ',') fputc('"',f);
+fprintf(f, "%s", el->srcTransId);
+if (sep == ',') fputc('"',f);
+fputc(sep,f);
+if (sep == ',') fputc('"',f);
 fprintf(f, "%s", el->srcChrom);
 if (sep == ',') fputc('"',f);
 fputc(sep,f);
 fprintf(f, "%u", el->srcChromStart);
 fputc(sep,f);
 fprintf(f, "%u", el->srcChromEnd);
 fputc(sep,f);
 fprintf(f, "%u", el->srcScore);
 fputc(sep,f);
 fprintf(f, "%u", el->srcAligned);
 fputc(sep,f);
 if (sep == ',') fputc('"',f);
 fprintf(f, "%s", el->geneName);
 if (sep == ',') fputc('"',f);
 fputc(sep,f);