c43e813a238e650c17e8dee441653d9037a86e18 kate Sun Apr 15 21:51:04 2018 -0700 Fix problem with r,g,b color specs. Now also supports #RRGGBB anand 16 HTML color names. refs #21109 diff --git src/hg/lib/interact.c src/hg/lib/interact.c index dff4faa..7bd2637 100644 --- src/hg/lib/interact.c +++ src/hg/lib/interact.c @@ -1,23 +1,24 @@ /* interact.c was originally generated by the autoSql program, which also * generated interact.h and interact.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 "basicBed.h" #include "interact.h" char *interactCommaSepFieldNames = "chrom,chromStart,chromEnd,name,score,value,exp,color,sourceChrom,sourceStart,sourceEnd,sourceName,sourceStrand,targetChrom,targetStart,targetEnd,targetName,targetStrand"; void interactStaticLoad(char **row, struct interact *ret) /* Load a row from interact table into ret. The contents of ret will * be replaced at the next call to this function. */ { ret->chrom = row[0]; ret->chromStart = sqlUnsigned(row[1]); ret->chromEnd = sqlUnsigned(row[2]); ret->name = row[3]; @@ -331,15 +332,44 @@ int bDist = interactRegionDistance(b); // cross chromosome; always larger than same chrom if (aDist < 0) { if (bDist < 0) return 0; return 1; } if (bDist < 0) return -1; // same chromosome return aDist - bDist; } + +struct interact *interactLoadAndValidate(char **row) +/* Load a interact from row fetched with select * from interact + * from database, validating fields. Dispose of this with interactFree(). */ +// TODO: more validating +{ +struct interact *ret; + +AllocVar(ret); +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]); +ret->value = sqlDouble(row[5]); +ret->exp = cloneString(row[6]); +ret->color = bedParseColor(row[7]); +ret->sourceChrom = cloneString(row[8]); +ret->sourceStart = sqlUnsigned(row[9]); +ret->sourceEnd = sqlUnsigned(row[10]); +ret->sourceName = cloneString(row[11]); +ret->sourceStrand = cloneString(row[12]); +ret->targetChrom = cloneString(row[13]); +ret->targetStart = sqlUnsigned(row[14]); +ret->targetEnd = sqlUnsigned(row[15]); +ret->targetName = cloneString(row[16]); +ret->targetStrand = cloneString(row[17]); +return ret; +}