f20f28b07df4e9738560a839a7636a7708d64969 kate Mon Oct 31 20:23:33 2011 -0700 Add filtering by assembly diff --git src/hg/hgApi/hgApi.c src/hg/hgApi/hgApi.c index 900371d..cfeffb1 100644 --- src/hg/hgApi/hgApi.c +++ src/hg/hgApi/hgApi.c @@ -343,30 +343,51 @@ // e.g. http://genome.ucsc.edu/cgi-bin/hgApi?db=hg18&cmd=encodeExperiments struct sqlConnection *connExp = sqlConnect(ENCODE_EXP_DATABASE); /* TODO: any need to use connection pool ? */ struct encodeExp *exp = NULL, *exps = encodeExpLoadAllFromTable(connExp, ENCODE_EXP_TABLE); dyStringPrintf(output, "[\n"); while ((exp = slPopHead(&exps)) != NULL) { encodeExpJson(output, exp); dyStringAppend(output,",\n"); } output->string[dyStringLen(output)-2] = '\n'; output->string[dyStringLen(output)-1] = ']'; dyStringPrintf(output, "\n"); sqlDisconnect(&connExp); } +else if (!strcmp(cmd, "encodeExpId")) + { + // Return list of ENCODE expID's found in a database + struct sqlResult *sr; + char **row; + char query[256]; + struct sqlConnection *conn = hAllocConn(database); + safef(query, sizeof(query), "select distinct(%s) from %s where %s='%s' order by (%s + 0)", + MDB_VAL, MDB_DEFAULT_NAME, MDB_VAR, MDB_VAR_ENCODE_EXP_ID, MDB_VAL); + sr = sqlGetResult(conn, query); + dyStringPrintf(output, "[\n"); + while ((row = sqlNextRow(sr)) != NULL) + { + dyStringPrintf(output, "{\"expId\": \"%s\"},\n", row[0]); + } + output->string[dyStringLen(output)-2] = '\n'; + output->string[dyStringLen(output)-1] = ']'; + dyStringPrintf(output, "\n"); + sqlFreeResult(&sr); + hFreeConn(&conn); + } else if (!strcmp(cmd, "cv")) { // Return list of CV terms for the specified term type // Just supporting cellType, dataType, and antibody initially // TODO: retire db= // e.g. http://genome.ucsc.edu/cgi-bin/hgApi?db=hg19&cmd=cv&file=cv.ra&type=dataType char *type = cgiString("type"); char *cvFile = cgiOptionalString("file"); if (cvFile != NULL) cvFileDeclare(cvFile); if (differentString(type, "dataType") && differentString(type, "cellType") && differentString(type, "antibody")) { warn("Unsupported CV type %s (must be dataType, cellType, antibody)", type);