src/hg/instinct/raToDb/raToDb.c 1.11
1.11 2010/04/23 19:43:06 jsanborn
added series of checks for mistakes in microarrayGroups.ra
Index: src/hg/instinct/raToDb/raToDb.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/instinct/raToDb/raToDb.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -b -B -U 4 -r1.10 -r1.11
--- src/hg/instinct/raToDb/raToDb.c 23 Apr 2010 18:57:22 -0000 1.10
+++ src/hg/instinct/raToDb/raToDb.c 23 Apr 2010 19:43:06 -0000 1.11
@@ -238,9 +238,9 @@
struct hash *mainGroup = (struct hash *)(hashFindVal(allGroups, groupings));
if (!mainGroup)
{
- printf("%s not found\n", groupings);
+ printf("maGroups: %s not found\n", groupings);
return NULL;
}
char *s = (char *)(hashFindVal(mainGroup, "all"));
@@ -250,8 +250,43 @@
struct hash *tmpGroup = (struct hash *)(hashFindVal(allGroups, s));
if (!tmpGroup)
return NULL;
+struct slName *wordList;
+s = hashMustFindVal(tmpGroup, "expIds");
+wordList = slNameListFromComma(s);
+int numExpIds = slCount(wordList);
+if (numExpIds == 0)
+ {
+ printf("maGroups: expIds is empty\n");
+ return NULL;
+ }
+
+s = hashMustFindVal(tmpGroup, "names");
+wordList = slNameListFromComma(s);
+int numNames = slCount(wordList);
+if (numNames == 0)
+ {
+ printf("maGroups: names is empty\n");
+ return NULL;
+ }
+
+s = hashMustFindVal(tmpGroup, "groupSizes");
+wordList = slNameListFromComma(s);
+int numGroups = slCount(wordList);
+if (numGroups == 0)
+ {
+ printf("maGroups: groupSizes is empty\n");
+ return NULL;
+ }
+
+if (numGroups != numNames)
+ {
+ printf("maGroups: Bad format (groupSizes size "
+ "= %d, != to names size = %d)\n", numGroups, numNames);
+ return NULL;
+ }
+
AllocVar(ret);
ret->allArrays = maHashToMaGrouping(tmpGroup);
hashFreeList(&hashList);
@@ -489,9 +524,9 @@
if (ra->aliasTable && !sqlTableExists(conn, ra->aliasTable))
{
printf(" WARN\t%s\taliasTable '%s' not in db.\n", ra->name, ra->aliasTable);
ra->aliasTable = NULL;
- }
+}
ra->displayNameTable = getOptionalString(raHash, "displayNameTable", NULL);
if (ra->displayNameTable && !sqlTableExists(conn, ra->displayNameTable))
{