int main(int argc, char *argv[]) /* Process command line. */ { optionInit(&argc, argv, options); if (argc != 3) usage(); clSeq = optionVal("seq", clSeq); clStart = optionInt("start", clStart); clEnd = optionInt("end", clEnd); clSeqList = optionVal("seqList", clSeqList); clBpt = optionVal("bpt", clBpt); clBed = optionVal("bed", clBed); clBedPos = optionExists("bedPos"); noMask = optionExists("noMask"); udcSetDefaultDir(optionVal("udcDir", udcDefaultDir())); if (clBedPos && !clBed) errAbort("the -bedPos option requires the -bed option"); if (clBed != NULL) { if (clSeqList != NULL) errAbort("Can only have seqList or bed options, not both."); if (clSeq != NULL) errAbort("Can only have seq or bed options, not both."); } if ((clStart > clEnd) && (clSeq == NULL)) errAbort("must specify -seq with -start and -end"); if ((clSeq != NULL) && (clSeqList != NULL)) errAbort("can't specify both -seq and -seqList"); dnaUtilOpen(); twoBitToFa(argv[1], argv[2]); return 0; }
int main(int argc, char *argv[]) /* Process command line. */ { optionInit(&argc, argv, options); if (argc != 2) usage(); udcSetDefaultDir(optionVal("udcDir", udcDefaultDir())); twoBitDup(argv[1]); return 0; }
int main(int argc, char *argv[]) /* Process command line. */ { optionInit(&argc, argv, options); udcSetDefaultDir(optionVal("udcDir", udcDefaultDir())); if (argc != 2) usage(); bigWigInfo(argv[1]); if (verboseLevel() > 1) printVmPeak(); return 0; }
int main(int argc, char *argv[]) /* Process command line. */ { optionInit(&argc, argv, options); if (argc != 3) usage(); clChrom = optionVal("chrom", clChrom); clStart = optionInt("start", clStart); clEnd = optionInt("end", clEnd); udcSetDefaultDir(optionVal("udcDir", udcDefaultDir())); bigWigToWig(argv[1], argv[2]); return 0; }
int main(int argc, char *argv[]) /* Process command line. */ { optionInit(&argc, argv, options); if (argc != 2) usage(); udcSetDefaultDir(optionVal("udcDir", udcDefaultDir())); char *hubUrl = optionVal("addHub", NULL); if (hubUrl != NULL) return hubPublicAdd(argv[1],hubUrl); else return hubPublicCheck(argv[1]); }
int main(int argc, char *argv[]) /* Process command line. */ { optionInit(&argc, argv, options); clChrom = optionVal("chrom", clChrom); clStart = optionInt("start", clStart); clEnd = optionInt("end", clEnd); maxItems = optionInt("maxItems", maxItems); udcSetDefaultDir(optionVal("udcDir", udcDefaultDir())); if (argc != 3) usage(); bigBedToBed(argv[1], argv[2]); if (verboseLevel() > 1) printVmPeak(); return 0; }
int main(int argc, char *argv[]) /* Process command line. */ { optionInit(&argc, argv, options); if (argc != 2) usage(); udcSetCacheTimeout(cacheTime); // UDC cache dir: first check for hg.conf setting, then override with command line option if given. setUdcCacheDir(); udcSetDefaultDir(optionVal("udcDir", udcDefaultDir())); if (trackHubCrawl(argv[1])) { return 1; } return 0; }
bigWig_t * bigwig_load(const char * filename, const char * udc_dir) { bigWig_t * bigwig = NULL; struct errCatch * err; /* set cache */ if (udc_dir != NULL) udcSetDefaultDir((char*) udc_dir); /* setup error management & try to open file */ err = errCatchNew(); if (errCatchStart(err)) bigwig = bigWigFileOpen((char*)filename); errCatchEnd(err); if (err->gotError) { fprintf(stderr, "error: %s\n", err->message->string); errCatchFree(&err); return NULL; } errCatchFree(&err); return bigwig; }
int main(int argc, char *argv[]) /* Process command line. */ { optionInit(&argc, argv, options); udcSetDefaultDir(optionVal("udcDir", udcDefaultDir())); if (optionExists("fields")) { if (argc < 2) usage(); bigBedFields(argv[1]); } else { summaryType = optionVal("type", summaryType); if (argc != 6) usage(); bigBedSummary(argv[1], argv[2], sqlUnsigned(argv[3]), sqlUnsigned(argv[4]), sqlUnsigned(argv[5])); } if (verboseLevel() > 1) printVmPeak(); return 0; }
int main(int argc, char *argv[]) /* Process command line. */ { optionInit(&argc, argv, options); if (argc != 2 && !optionExists("settings")) usage(); struct trackHubCheckOptions *checkOptions = NULL; AllocVar(checkOptions); checkOptions->specHost = (optionExists("test") ? "genome-test.soe.ucsc.edu" : "genome.ucsc.edu"); checkOptions->specHost = optionVal("specHost", checkOptions->specHost); checkOptions->printMeta = optionExists("printMeta"); checkOptions->checkFiles = !optionExists("noTracks"); checkOptions->checkSettings = optionExists("checkSettings"); struct trackHubSettingSpec *setting = NULL; AllocVar(setting); setting->level = optionVal("level", "all"); if (trackHubSettingLevel(setting) < 0) { fprintf(stderr, "ERROR: Unrecognized support level %s\n\n", setting->level); usage(); } checkOptions->level = setting->level; char *version = NULL; if (optionExists("version")) version = optionVal("version", NULL); checkOptions->version = version; char *extraFile = optionVal("extra", NULL); if (extraFile != NULL) addExtras(extraFile, checkOptions); cacheTime = optionInt("cacheTime", cacheTime); udcSetCacheTimeout(cacheTime); // UDC cache dir: first check for hg.conf setting, then override with command line option if given. setUdcCacheDir(); udcSetDefaultDir(optionVal("udcDir", udcDefaultDir())); knetUdcInstall(); // make the htslib library use udc if (optionExists("settings")) { showSettings(checkOptions); return 0; } struct dyString *errors = newDyString(1024); if (trackHubCheck(argv[1], checkOptions, errors)) { // uniquify and count errors struct slName *errs = slNameListFromString(errors->string, '\n'); slUniqify(&errs, slNameCmp, slNameFree); int errCount = slCount(errs); printf("Found %d problem%s:\n", errCount, errCount == 1 ? "" : "s"); printf("%s\n", slNameListToString(errs, '\n')); return 1; } return 0; }
int main(int argc, char *argv[]) /* Process command line. */ { optionInit(&argc, argv, options); blockSize = optionInt("blockSize", blockSize); itemsPerSlot = optionInt("itemsPerSlot", itemsPerSlot); asFile = optionVal("as", asFile); doCompress = !optionExists("unc"); sizesIs2Bit = optionExists("sizesIs2Bit"); extraIndex = optionVal("extraIndex", NULL); tabSep = optionExists("tab"); udcDir = optionVal("udcDir", udcDefaultDir()); if (argc != 4) usage(); udcSetDefaultDir(udcDir); if (optionExists("type")) { // parse type char *btype = cloneString(optionVal("type", "")); char *plus = strchr(btype, '+'); if (plus) { *plus++ = 0; if (isdigit(*plus)) bedP = sqlUnsigned(plus); } if (!startsWith("bed", btype)) errAbort("type must begin with \"bed\""); btype +=3; bedN = sqlUnsigned(btype); if (bedN < 3) errAbort("Bed must be 3 or higher, found %d\n", bedN); if (bedN > 15) errAbort("Bed must be 15 or lower, found %d\n", bedN); } else { if (asText) errAbort("If you specify the .as file, you must specify the -type as well so that\n" "the number of standard BED columns is known."); } /* If the haven't set bedN and bedP from the type var in the command line, then we sniff it * out from file. */ char *bedFileName = argv[1]; if (bedN == 0) { /* Just read in single line and count fields. */ struct lineFile *lf = lineFileOpen(bedFileName, TRUE); char *line; if (!lineFileNextReal(lf, &line)) errAbort("%s is empty", lf->fileName); int fieldCount; if (tabSep) fieldCount = chopByChar(line, '\t', NULL, 0); // Do not use chopString, see GOTCHA else fieldCount = chopByWhite(line, NULL, 0); if (fieldCount > 256) errAbort("Too many columns in %s, you sure it's a bed file?", lf->fileName); lineFileClose(&lf); /* Set up so that it looks like we are straight up bed for that many fields, * or if more than or maximum defined fields, then for bed15+ */ bedN = fieldCount; if (bedN > bedKnownFields) { bedP = bedN - bedKnownFields; bedN = bedKnownFields; } } /* Make sure that fields are defined, from bed spec if nowhere else. */ if (asFile) readInGulp(asFile, &asText, NULL); else asText = bedAsDef(bedN, bedN + bedP); bedToBigBed(bedFileName, argv[2], argv[3]); optionFree(); if (verboseLevel() > 1) printVmPeak(); return 0; }
int main(int argc, char *argv[]) { optionInit(&argc, argv, optionSpecs); if (argc < 2 || argc > 3) usage(); pushCarefulMemHandler(LIMIT_2or6GB); char *db = argv[1]; char *test = NULL; boolean doAllTests = (argc == 2); if (!doAllTests) { if (sameString(argv[2], pgSnpDbToTabOut) || sameString(argv[2], pgSnpKgDbToTabOutShort) || sameString(argv[2], pgSnpKgDbToTabOutLong) || sameString(argv[2], pgSnpKgDbToGpFx) || sameString(argv[2], snpConsDbToTabOutShort) || sameString(argv[2], snpConsDbToTabOutLong) || sameString(argv[2], vcfEx1) || sameString(argv[2], vcfEx2) || sameString(argv[2], bigBedToTabOut) || sameString(argv[2], snpBigWigToTabOut) || sameString(argv[2], vepOut) || sameString(argv[2], gpFx)) test = cloneString(argv[2]); else { warn("Unrecognized test name '%s'\n", argv[2]); usage(); } } if (udcCacheTimeout() < 300) udcSetCacheTimeout(300); udcSetDefaultDir("./udcCache"); struct annoAssembly *assembly = getAnnoAssembly(db); // First test: some rows of a pgSnp table struct streamerInfo pgSnpInfo = { NULL, assembly, db, "pgNA12878", arWords, pgSnpAsObj() }; if (doAllTests || sameString(test, pgSnpDbToTabOut)) dbToTabOut(&pgSnpInfo, "stdout", "chr1", 705881, 752721, FALSE); // Second test: some rows of a pgSnp table integrated with knownGene struct streamerInfo kgInfo = { NULL, assembly, db, "knownGene", arWords, asParseFile("../knownGene.as") }; pgSnpInfo.next = &kgInfo; if (doAllTests || sameString(test, pgSnpKgDbToTabOutShort)) dbToTabOut(&pgSnpInfo, "stdout", "chr1", 705881, 752721, FALSE); // Third test: all rows of a pgSnp table integrated with knownGene if (doAllTests || sameString(test, pgSnpKgDbToTabOutLong)) dbToTabOut(&pgSnpInfo, "stdout", NULL, 0, 0, FALSE); // Fourth test: some rows of snp135 integrated with phyloP scores if (doAllTests || sameString(test, snpConsDbToTabOutShort) || sameString(test, snpConsDbToTabOutLong)) { struct streamerInfo snp135Info = { NULL, assembly, db, "snp135", arWords, asParseFile("../snp132Ext.as") }; struct streamerInfo phyloPInfo = { NULL, assembly, db, "phyloP46wayPlacental", arWig, NULL }; snp135Info.next = &phyloPInfo; if (sameString(test, snpConsDbToTabOutShort)) dbToTabOut(&snp135Info, "stdout", "chr1", 737224, 738475, FALSE); else dbToTabOut(&snp135Info, "stdout", NULL, 0, 0, FALSE); } // Fifth test: VCF with genotypes if (doAllTests || sameString(test, vcfEx1)) { #if (defined USE_TABIX && defined KNETFILE_HOOKS) knetUdcInstall(); #endif//def USE_TABIX && KNETFILE_HOOKS struct streamerInfo vcfEx1 = { NULL, assembly, NULL, "http://genome.ucsc.edu/goldenPath/help/examples/vcfExample.vcf.gz", arWords, vcfAsObj() }; dbToTabOut(&vcfEx1, "stdout", NULL, 0, 0, FALSE); } if (doAllTests || sameString(test, vcfEx2)) { struct streamerInfo vcfEx2 = { NULL, assembly, NULL, "http://genome.ucsc.edu/goldenPath/help/examples/vcfExampleTwo.vcf", arWords, vcfAsObj() }; dbToTabOut(&vcfEx2, "stdout", NULL, 0, 0, FALSE); } if (doAllTests || sameString(test, pgSnpKgDbToGpFx)) { struct streamerInfo pg2SnpInfo = { NULL, assembly, NULL, "input/annoGrator/pgForTestingGpFx.pgSnp.tab", arWords, pgSnpAsObj() }; pg2SnpInfo.next = &kgInfo; dbToTabOut(&pg2SnpInfo, "stdout", NULL, 0, 0, TRUE); /* FIXME // 3base insertion CDS - chr3:124,646,699-124,646,718 dbToTabOut(&pg2SnpInfo, "stdout", "chr3",124646699,124646718, TRUE); */ } if (doAllTests || sameString(test, bigBedToTabOut)) { struct streamerInfo bigBedInfo = { NULL, assembly, NULL, "http://genome.ucsc.edu/goldenPath/help/examples/bigBedExample.bb", arWords, NULL }; dbToTabOut(&bigBedInfo, "stdout", "chr21", 34716800, 34733700, FALSE); } if (doAllTests || sameString(test, snpBigWigToTabOut)) { struct streamerInfo snp135Info = { NULL, assembly, db, "snp135", arWords, asParseFile("../snp132Ext.as") }; struct streamerInfo bigWigInfo = { NULL, assembly, NULL, "http://genome.ucsc.edu/goldenPath/help/examples/bigWigExample.bw", arWig, NULL }; snp135Info.next = &bigWigInfo; dbToTabOut(&snp135Info, "stdout", "chr21", 34716800, 34733700, FALSE); } if (doAllTests || sameString(test, vepOut)) { struct streamerInfo vepSamplePgSnp = { NULL, assembly, NULL, "input/annoGrator/vepSample.pgSnp.tab", arWords, asParseFile("../pgSnp.as") }; struct streamerInfo kgInfo = { NULL, assembly, db, "ensGene", arWords, asParseFile("../genePredExt.as") }; struct streamerInfo snpInfo = { NULL, assembly, db, "snp135", arWords, asParseFile("../snp132Ext.as") }; vepSamplePgSnp.next = &kgInfo; kgInfo.next = &snpInfo; // Instead of dbToTabOut, we need to make a VEP config data structure and // use it to create an annoFormatVep. struct streamerInfo *primaryInfo = &vepSamplePgSnp; struct annoStreamer *primary = NULL; struct annoGrator *gratorList = NULL; sourcesFromInfoList(primaryInfo, TRUE, &primary, &gratorList); struct annoStreamer *gpVarSource = (struct annoStreamer *)gratorList; struct annoStreamer *snpSource = gpVarSource->next; struct annoFormatter *vepOut = annoFormatVepNew("stdout", FALSE, primary, "vepSamplePgSnp", gpVarSource, "UCSC Genes ...", snpSource, "just dbSNP 135"); struct annoGratorQuery *query = annoGratorQueryNew(assembly, primary, gratorList, vepOut); annoGratorQuerySetRegion(query, "chr1", 876900, 886920); annoGratorQueryExecute(query); annoGratorQuerySetRegion(query, "chr5", 135530, 145535); annoGratorQueryExecute(query); annoGratorQueryFree(&query); } if (doAllTests || sameString(test, gpFx)) { struct streamerInfo variants = { NULL, assembly, NULL, "input/annoGrator/moreVariants.pgSnp.tab", arWords, asParseFile("../pgSnp.as") }; struct streamerInfo kgInfo = { NULL, assembly, db, "knownGene", arWords, asParseFile("../knownGene.as") }; struct streamerInfo snpInfo = { NULL, assembly, db, "snp137", arWords, asParseFile("../snp132Ext.as") }; struct asObject *dbNsfpSeqChangeAs = bigBedAsFromFileName("/gbdb/hg19/dbNsfp/dbNsfpSeqChange.bb"); struct streamerInfo dbNsfpSeqChange = { NULL, assembly, NULL, "/gbdb/hg19/dbNsfp/dbNsfpSeqChange.bb", arWords, dbNsfpSeqChangeAs }; struct asObject *dbNsfpSiftAs = bigBedAsFromFileName("/gbdb/hg19/dbNsfp/dbNsfpSift.bb"); struct streamerInfo dbNsfpSift = { NULL, assembly, NULL, "/gbdb/hg19/dbNsfp/dbNsfpSift.bb", arWords, dbNsfpSiftAs }; variants.next = &kgInfo; kgInfo.next = &snpInfo; snpInfo.next = &dbNsfpSeqChange; dbNsfpSeqChange.next = &dbNsfpSift; // Instead of dbToTabOut, we need to make a VEP config data structure and // use it to create an annoFormatVep. struct streamerInfo *primaryInfo = &variants; struct annoStreamer *primary = NULL; struct annoGrator *gratorList = NULL; sourcesFromInfoList(primaryInfo, TRUE, &primary, &gratorList); struct annoStreamer *gpVarSource = (struct annoStreamer *)gratorList; struct annoStreamer *snpSource = gpVarSource->next; struct annoStreamer *dbNsfpSource = snpSource->next->next; struct annoFormatter *vepOut = annoFormatVepNew("stdout", FALSE, primary, "some more variants", gpVarSource, "UCSC Genes of course", snpSource, "now snp137."); annoFormatVepAddExtraItem(vepOut, dbNsfpSource, "SIFT", "SIFT score from dbNSFP", ""); struct annoGratorQuery *query = annoGratorQueryNew(assembly, primary, gratorList, vepOut); annoGratorQuerySetRegion(query, "chr19", 45405960, 45419476); annoGratorQueryExecute(query); annoGratorQueryFree(&query); } return 0; }