1212de18f5cfcd2473cc9f761ff7b089b3e88493 braney Fri Apr 20 16:47:23 2012 -0700 more work to advance #6152. Now with documentation of synonymous changes, the actual changes in (non)synonumous changes, and a fix to gnawing problem of the exonstarts in the genePred disappearing diff --git src/hg/lib/genePred.c src/hg/lib/genePred.c index e07e423..807be2c 100644 --- src/hg/lib/genePred.c +++ src/hg/lib/genePred.c @@ -40,31 +40,32 @@ " ,score int"; static char *name2FieldSql = " ,name2 varchar(255) not null," /* Secondary name. (e.g. name of gene) or NULL if not available */ " INDEX(name2)"; static char *cdsStatFieldSql = " ,cdsStartStat enum('none', 'unk', 'incmpl', 'cmpl') not null," /* Status of cdsStart annotation */ " cdsEndStat enum('none', 'unk', 'incmpl', 'cmpl') not null"; /* Status of cdsEnd annotation */ static char *exonFramesFieldSql = " ,exonFrames longblob not null"; /* List of frame for each exon, or -1 if no frame or not known. NULL if not available. */ struct genePred *genePredLoad(char **row) /* Load a genePred from row fetched with select * from genePred - * from database. Dispose of this with genePredFree(). */ + * from database. Dispose of this with genePredFree(). + * NOTE: cannabalizes the row argument */ { struct genePred *ret; int sizeOne; AllocVar(ret); ret->exonCount = sqlUnsigned(row[7]); ret->name = cloneString(row[0]); ret->chrom = cloneString(row[1]); strcpy(ret->strand, row[2]); ret->txStart = sqlUnsigned(row[3]); ret->txEnd = sqlUnsigned(row[4]); ret->cdsStart = sqlUnsigned(row[5]); ret->cdsEnd = sqlUnsigned(row[6]); sqlUnsignedDynamicArray(row[8], &ret->exonStarts, &sizeOne); if (sizeOne != ret->exonCount)