boolean bedPassFilters(struct bed *bed, struct altGraphX *ag, int cassetteEdge) { int minFlankingNum = cgiUsualInt("minFlankingNum", 2); int minFlankingSize = cgiUsualInt("minFlankingSize", 0); boolean mrnaFilter = cgiBoolean("mrnaFilter"); boolean passed = TRUE; int i =0; for(i = 0; i<bed->blockCount; i++) { if(bed->expIds[i] != cassetteEdge) { passed &= passFilter(bed, i, ag, minFlankingNum, minFlankingSize, mrnaFilter); } } return passed; }
void resetVars() /* Reset vars except for position and database. */ { static char *except[] = {"db", "position", NULL}; char *cookieName = hUserCookie(); int sessionId = cgiUsualInt(cartSessionVarName(), 0); char *hguidString = findCookieData(cookieName); int userId = (hguidString == NULL ? 0 : atoi(hguidString)); struct cart *oldCart = cartNew(userId, sessionId, NULL, NULL); cartRemoveExcept(oldCart, except); cartCheckout(&oldCart); cgiVarExcludeExcept(except); }
void faNcbiToUcsc(char *inFile, char *out) /* faNcbiToUcsc - Convert FA file from NCBI to UCSC format.. */ { struct lineFile *lf = lineFileOpen(inFile, TRUE); char outName[512]; char *line; boolean split = cgiBoolean("split"); boolean ntLast = cgiBoolean("ntLast"); boolean encode = cgiBoolean("encode"); struct dnaSeq seq; FILE *f = NULL; char *wordBefore = cgiUsualString("wordBefore", "gb"); int wordIx = cgiUsualInt("wordIx", -1); char *e = NULL; char *nt = NULL; ZeroVar(&seq); if (split) makeDir(out); else f = mustOpen(out, "w"); while (lineFileNext(lf, &line, NULL)) { if (line[0] == '>') { if (ntLast || encode) { nt = NULL; if (ntLast) { e = NULL; nt = stringIn("NT_", line); if (nt == NULL) nt = stringIn("NG_", line); if (nt == NULL) nt = stringIn("NC_", line); if (nt == NULL) errAbort("Expecting NT_ NG_ or NC_in '%s'", line); e = strchr(nt, '|'); if (e != NULL) *e = 0; e = strchr(nt, ' '); if (e != NULL) *e = 0; } else { nt = stringIn("|EN", line); if (nt == NULL) errAbort("Expecting EN in %s", line); nt++; nt = firstWordInLine(nt); } if (split) { sprintf(outName, "%s/%s.fa", out, nt); carefulClose(&f); f = mustOpen(outName, "w"); } fprintf(f, ">%s\n", nt); } else { char *words[32]; int wordCount, i; char *accession = NULL; wordCount = chopString(line+1, "|", words, ArraySize(words)); if (wordIx >= 0) { if (wordIx >= wordCount) errAbort("Sorry only %d words", wordCount); accession = words[wordIx]; } else { for (i=0; i<wordCount-1; ++i) { if (sameString(words[i], wordBefore)) { accession = words[i+1]; break; } } if (accession == NULL) errAbort("Couldn't find '%s' line %d of %s", wordBefore, lf->lineIx, lf->fileName); } chopSuffix(accession); fprintf(f, ">%s\n", accession); } } else { fprintf(f, "%s\n", line); } } }
void wikiPlot() /* wikiPlot - Quick plots of maps vs. each other. */ { boolean gotDir = cgiVarExists("contigDir"); double step; contigDir = cgiUsualString("contigDir", contigDir); mapX = cgiUsualString("mapX", mapX); mapY = cgiUsualString("mapY", mapY); pix = cgiUsualInt("pix", pix); xOff = cgiUsualDouble("xOff", xOff); yOff = cgiUsualDouble("yOff", yOff); zoom = cgiUsualDouble("zoom", zoom); step = 0.1 * 1/zoom; if (cgiVarExists("boxOut")) { double invZoom = 1.0/zoom; double xCen = xOff + invZoom*0.5; double yCen = yOff + invZoom*0.5; zoom /= 2; invZoom = 1.0/zoom; xOff = xCen - invZoom*0.5; yOff = yCen - invZoom*0.5; } else if (cgiVarExists("boxUp")) yOff -= step; else if (cgiVarExists("boxDown")) yOff += step; else if (cgiVarExists("boxLeft")) xOff -= step; else if (cgiVarExists("boxRight")) xOff += step; else if (cgiVarExists("boxUpLeft")) { yOff -= step; xOff -= step; } else if (cgiVarExists("boxUpRight")) { yOff -= step; xOff += step; } else if (cgiVarExists("boxDownLeft")) { yOff += step; xOff -= step; } else if (cgiVarExists("boxDownRight")) { yOff += step; xOff += step; } else if (cgiVarExists("unzoom")) { xOff = yOff = -0.05; zoom = 0.9; } printf("<FORM ACTION=\"../cgi-bin/wikiPlot\" METHOD=\"GET\">\n"); printf("<TABLE BORDER=0 WIDTH=\"100%%\">\n"); printf("<TR>\n"); printf("<TD WIDTH=\"78%%\">\n"); printf("<B>Wiki Plotter</B><BR>\n"); printf("<B>Contig: </B>"); cgiMakeTextVar("contigDir", contigDir, 0); if (gotDir) { cgiMakeButton("refresh", "refresh"); } else cgiMakeButton("submit", "submit"); printf("<BR>\n"); printf("<B>Map X: </B>"); cgiMakeTextVar("mapX", mapX, 12); printf("<B>Map Y: </B>"); cgiMakeTextVar("mapY", mapY, 12); printf("<B>Pixels: </B>"); cgiMakeIntVar("pix", pix, 4); printf("</TD>\n"); printf("<TD WIDTH=\"22%%\">\n"); if (gotDir) printBox(); printf("</TD>\n"); printf("</TR>\n"); printf("</TABLE>\n"); if (gotDir) { char xFile[512], yFile[512]; struct hash *xHash = NULL, *yHash = NULL; struct clonePos *xList = NULL, *yList = NULL; sprintf(xFile, "%s/%s", contigDir, mapX); sprintf(yFile, "%s/%s", contigDir, mapY); loadMaps(xFile, yFile, &xList, &yList, &xHash, &yHash); makePlot(xList, yList, yHash); } /* Save hidden vars. */ { char buf[256]; sprintf(buf, "%f", zoom); cgiMakeHiddenVar("zoom", buf); sprintf(buf, "%f", xOff); cgiMakeHiddenVar("xOff", buf); sprintf(buf, "%f", yOff); cgiMakeHiddenVar("yOff", buf); } printf("</FORM>\n"); }