13531feb863db3591e2c7e61cf45289d3770bc7c braney Mon Oct 31 11:49:46 2022 -0700 for bigWig and bigBed build utilities, check to make sure the file isn't a pipe diff --git src/utils/wigToBigWig/wigToBigWig.c src/utils/wigToBigWig/wigToBigWig.c index e2404eb..4cd9200 100644 --- src/utils/wigToBigWig/wigToBigWig.c +++ src/utils/wigToBigWig/wigToBigWig.c @@ -1,89 +1,95 @@ /* wigToBigWig - Convert ascii format wig file (in fixedStep, variableStep or bedGraph format) * to binary big wig format.. */ /* Copyright (C) 2014 The Regents of the University of California * See kent/LICENSE or http://genome.ucsc.edu/license/ for licensing information. */ #include "common.h" #include "obscure.h" #include "linefile.h" #include "hash.h" #include "options.h" #include "bigWig.h" #include "bwgInternal.h" #include "zlibFace.h" +#include "portable.h" -char *version = "2.8"; // when changing, change in bedToBigBed, bedGraphToBigWig, and wigToBigWig +char *version = "2.9"; // when changing, change in bedToBigBed, bedGraphToBigWig, and wigToBigWig /* Version history from 2.8 on at least - + * 2.9 - ability to specify chromAlias bigBed as chromSizes file * 2.8 sync up version numbers with bedToBigBed */ static int blockSize = 256; static int itemsPerSlot = 1024; static boolean clipDontDie = FALSE; static boolean doCompress = FALSE; static boolean fixedSummaries = FALSE; static boolean keepAllChromosomes = FALSE; +//static boolean sizesIsBb = FALSE; void usage() /* Explain usage and exit. */ { errAbort( "wigToBigWig v %s - Convert ascii format wig file (in fixedStep, variableStep\n" "or bedGraph format) to binary big wig format (bbi version: %d).\n" "usage:\n" " wigToBigWig in.wig chrom.sizes out.bw\n" "Where in.wig is in one of the ascii wiggle formats, but not including track lines\n" "and chrom.sizes is a two-column file/URL: \n" "and out.bw is the output indexed big wig file.\n" "If the assembly is hosted by UCSC, chrom.sizes can be a URL like\n" " http://hgdownload.soe.ucsc.edu/goldenPath//bigZips/.chrom.sizes\n" "or you may use the script fetchChromSizes to download the chrom.sizes file.\n" "If not hosted by UCSC, a chrom.sizes file can be generated by running\n" "twoBitInfo on the assembly .2bit file.\n" "options:\n" " -blockSize=N - Number of items to bundle in r-tree. Default %d\n" " -itemsPerSlot=N - Number of data points bundled at lowest level. Default %d\n" " -clip - If set just issue warning messages rather than dying if wig\n" " file contains items off end of chromosome or chromosomes\n" " that are not in the chrom.sizes file.\n" " -unc - If set, do not use compression.\n" " -fixedSummaries - If set, use a predefined sequence of summary levels.\n" + //" -sizesIsBb -- If set, the chrom.sizes file is assumed to be a bigBed file.\n" " -keepAllChromosomes - If set, store all chromosomes in b-tree." , version, bbiCurrentVersion, blockSize, itemsPerSlot ); } static struct optionSpec options[] = { {"blockSize", OPTION_INT}, {"itemsPerSlot", OPTION_INT}, {"clip", OPTION_BOOLEAN}, {"unc", OPTION_BOOLEAN}, + //{"sizesIsBb", OPTION_BOOLEAN}, {"fixedSummaries", OPTION_BOOLEAN}, {"keepAllChromosomes", OPTION_BOOLEAN}, {NULL, 0}, }; void wigToBigWig(char *inName, char *chromSizes, char *outName) /* wigToBigWig - Convert ascii format wig file (in fixedStep, variableStep or bedGraph format) * to binary big wig format.. */ { +mustBeReadableAndRegularFile(inName); bigWigFileCreateEx(inName, chromSizes, blockSize, itemsPerSlot, clipDontDie, doCompress, keepAllChromosomes, fixedSummaries, outName); } int main(int argc, char *argv[]) /* Process command line. */ { optionInit(&argc, argv, options); blockSize = optionInt("blockSize", blockSize); itemsPerSlot = optionInt("itemsPerSlot", itemsPerSlot); clipDontDie = optionExists("clip"); doCompress = !optionExists("unc"); keepAllChromosomes = optionExists("keepAllChromosomes"); fixedSummaries = optionExists("fixedSummaries"); if (argc != 4) usage(); wigToBigWig(argv[1], argv[2], argv[3]); if (verboseLevel() > 1) printVmPeak(); return 0; }