1359d9856e982d83be761f3501bd6a87c046dee6
angie
  Mon Apr 15 15:56:56 2013 -0700
Added determination of data type by asObject comparison instead ofkludges like special annoRowType or checking a few column names.  refs #6152

diff --git src/hg/lib/genePred.c src/hg/lib/genePred.c
index 5a1e59e..8295832 100644
--- src/hg/lib/genePred.c
+++ src/hg/lib/genePred.c
@@ -1909,15 +1909,37 @@
 
 if(num == 0 || num > gp->exonCount)
     return FALSE;
 else if(gp->strand[0] == '+')
     {
     *chromStart = gp->exonStarts[num - 1];
     *chromEnd = gp->exonEnds[num - 1];
     }
 else
     {
     *chromStart = gp->exonStarts[gp->exonCount - num];
     *chromEnd = gp->exonEnds[gp->exonCount - num];
     }
 return TRUE;
 }
+
+static char *genePredAutoSqlString =
+    "table genePred\n"
+    "\"A gene prediction.\"\n"
+    "    (\n"
+    "    string name;	\"Name of gene\"\n"
+    "    string chrom;	\"Reference sequence chromosome or scaffold\"\n"
+    "    char[1] strand;     \"+ or - for strand\"\n"
+    "    uint txStart;	\"Transcription start position\"\n"
+    "    uint txEnd;         \"Transcription end position\"\n"
+    "    uint cdsStart;	\"Coding region start\"\n"
+    "    uint cdsEnd;        \"Coding region end\"\n"
+    "    uint exonCount;     \"Number of exons\"\n"
+    "    uint[exonCount] exonStarts; \"Exon start positions\"\n"
+    "    uint[exonCount] exonEnds;   \"Exon end positions\"\n"
+    "    )\n";
+
+struct asObject *genePredAsObj()
+// Return asObject describing fields of genePred
+{
+return asParseText(genePredAutoSqlString);
+}