src/hg/instinct/extractData/extractData.c 1.4
1.4 2010/01/14 07:12:28 jsanborn
updated
Index: src/hg/instinct/extractData/extractData.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/instinct/extractData/extractData.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -b -B -U 4 -r1.3 -r1.4
--- src/hg/instinct/extractData/extractData.c 14 Jan 2010 05:45:49 -0000 1.3
+++ src/hg/instinct/extractData/extractData.c 14 Jan 2010 07:12:28 -0000 1.4
@@ -22,18 +22,21 @@
/* Explain usage and exit. */
{
errAbort(
"extractData \n"
- " extractData [OPTIONS] db table samplesgenes(s)\n"
+ " extractData [OPTIONS] db table sample_id genes(s)\n"
"options:\n"
" -median Output median value if multiple probes\n"
+ " -tcga Handle TCGA ids, keeps only first 16 chars in sample_id\n"
);
}
boolean median = FALSE;
+boolean isTCGA = FALSE;
static struct optionSpec options[] = {
{"median", OPTION_BOOLEAN},
+ {"tcga", OPTION_BOOLEAN},
{NULL, 0},
};
struct maGrouping *getMaGrouping(struct sqlConnection *hgConn, char *tableName)
@@ -171,8 +174,11 @@
void extractData(char *tableName, char *sampleName, char *geneList)
{
if (!geneList)
return;
+char *sample = sampleName;
+if (isTCGA)
+ sample = cloneStringZ(sampleName, 16);
struct slName *genes = slNameListFromComma(geneList);
struct hashEl *el;
@@ -185,15 +191,19 @@
int i = 0, expId = -1;
for (; i < allA->size; i++)
{
- if (!sameString(allA->names[i], sampleName))
+ char *maName = allA->names[i];
+ if (isTCGA)
+ maName = cloneStringZ(allA->names[i], 16);
+
+ if (!sameString(maName, sample))
continue;
expId = allA->expIds[i];
break;
}
if (expId < 0)
- errAbort("Couldn't find sample %s in %s.\n", sampleName, tableName);
+ errAbort("Couldn't find sample %s in %s.\n", sample, tableName);
struct hash *settings = getSettings(tableName);
el = hashLookup(settings, "aliasTable");
@@ -245,8 +255,10 @@
usage();
if (optionExists("median"))
median = TRUE;
+if (optionExists("tcga"))
+ isTCGA = TRUE;
extractData(argv[1], argv[2], argv[3]);
return 0;
}