4898794edd81be5285ea6e544acbedeaeb31bf78 max Tue Nov 23 08:10:57 2021 -0800 Fixing pointers to README file for license in all source code files. refs #27614 diff --git src/hg/baseMask/baseMask.c src/hg/baseMask/baseMask.c index e08b56c..a1c6aec 100644 --- src/hg/baseMask/baseMask.c +++ src/hg/baseMask/baseMask.c @@ -1,99 +1,99 @@ /* baseMask - process baseMasks - 'and' or 'or' two baseMasks together */ /* Copyright (C) 2008 The Regents of the University of California - * See README in this or parent directory for licensing information. */ + * See kent/LICENSE or http://genome.ucsc.edu/license/ for licensing information. */ #include "common.h" #include "rangeTreeFile.h" #include "genomeRangeTreeFile.h" #include "options.h" /* FIXME: * - would be nice to be able to specify ranges in the same manner * as featureBits * - should keep header lines in files * - don't need to save if infile records if stats output */ static struct optionSpec optionSpecs[] = { {"and", OPTION_BOOLEAN}, {"or", OPTION_BOOLEAN}, {"quiet", OPTION_BOOLEAN}, {"saveMem", OPTION_BOOLEAN}, {"orDirectToFile", OPTION_BOOLEAN}, {NULL, 0} }; void usage(char *msg) /* usage message and abort */ { static char *usageMsg = #include "baseMaskUsage.msg" ; errAbort("%s\n%s", msg, usageMsg); } /* entry */ int main(int argc, char** argv) { char *baseMask1, *baseMask2, *obama; struct genomeRangeTreeFile *tf1, *tf2; struct genomeRangeTree *t1, *t2; unsigned size = 0; int nodes, numChroms; optionInit(&argc, argv, optionSpecs); boolean and = optionExists("and"); boolean or = optionExists("or"); boolean quiet = optionExists("quiet"); boolean saveMem = optionExists("saveMem"); boolean orDirectToFile = optionExists("orDirectToFile"); --argc; ++argv; if (argc==0) usage(""); if (argc > 3) usage("wrong # args\n"); if (argc == 1 && (and || or)) usage("specify second file for options: -and or -or\n"); if (argc >= 2 && ((and && or) || (!and && !or))) usage("specify only one of the options: -and or -or\n"); baseMask1 = argv[0]; baseMask2 = (argc > 1 ? argv[1] : NULL); obama = (argc > 2 ? argv[2] : NULL); if (argc == 1) { if (!quiet) { genomeRangeTreeFileStats(baseMask1, &numChroms, &nodes, &size); fprintf(stderr, "%d bases in %d ranges in %d chroms in baseMask\n", size, nodes, numChroms); } } else { tf1 = genomeRangeTreeFileReadHeader(baseMask1); tf2 = genomeRangeTreeFileReadHeader(baseMask2); if (and) { genomeRangeTreeFileIntersectionDetailed(tf1, tf2, obama, &numChroms, &nodes, (quiet ? NULL : &size), saveMem); if (!quiet) fprintf(stderr, "%d bases in %d ranges in %d chroms in intersection\n", size, nodes, numChroms); } else if (or) { genomeRangeTreeFileUnionDetailed(tf1, tf2, obama, &numChroms, &nodes, (quiet ? NULL : &size), saveMem, orDirectToFile); if (!quiet) fprintf(stderr, "%d bases in %d ranges in %d chroms in union\n", size, nodes, numChroms); } t1 = genomeRangeTreeFileFree(&tf1); genomeRangeTreeFree(&t1); t2 = genomeRangeTreeFileFree(&tf2); genomeRangeTreeFree(&t2); } return 0; }