e70152e44cc66cc599ff6b699eb8adc07f3e656a kent Sat May 24 21:09:34 2014 -0700 Adding Copyright NNNN Regents of the University of California to all files I believe with reasonable certainty were developed under UCSC employ or as part of Genome Browser copyright assignment. diff --git src/utils/nibCheck/nibCheck.c src/utils/nibCheck/nibCheck.c index 9d23039..35f51a5 100644 --- src/utils/nibCheck/nibCheck.c +++ src/utils/nibCheck/nibCheck.c @@ -1,97 +1,100 @@ +/* Copyright (C) 2004 The Regents of the University of California + * See README in this or parent directory for licensing information. */ + #include "common.h" #include "dnautil.h" #include "dnaseq.h" #include "nib.h" /* Search for strings of Ns in sequence. */ static void findNRanges(char *dirname, char *chromname) { char fullpath[512]; FILE *f; struct dnaSeq *seq; int nibSize; int endBuf; int bufSize = 16384; int i; int basesInBuf; char c; int block = 0; char *dna; char *posPtr; int pos; char *myindex, *myindex2; boolean matchRegion = FALSE; int startpos = 0, endpos = 0; char blockname[512]; int blockcount = 0; int size = 0; strcpy(fullpath, ""); strcat(fullpath, dirname); strcat(fullpath, chromname); strcat(fullpath, ".nib"); nibOpenVerify(fullpath, &f, &nibSize); for (i=0; i < nibSize; i = endBuf) { endBuf = i + bufSize; if (endBuf >= nibSize) endBuf = nibSize; basesInBuf = endBuf - i; seq = nibLdPart(fullpath, f, nibSize, i, basesInBuf); // printf("%s\n", seq->dna); posPtr = seq->dna; pos = 0; while (*posPtr != '\0') { if (*posPtr == 'n') { if (!matchRegion) { startpos = (block * bufSize) + pos + 1; matchRegion = TRUE; } } else { if (matchRegion) { endpos = (block * bufSize) + pos; size = endpos - startpos; if (size >= 1000) { blockcount++; strcpy(blockname, ""); sprintf(blockname, "N%d", blockcount); printf("%s\t%d\t%d\t%s\n", chromname, startpos, endpos, blockname); } matchRegion = FALSE; } } pos++; posPtr++; } freeDnaSeq(&seq); block++; } fclose(f); } void usage() { printf("nibCheck -- report N regions 100 bases or greater.\n" "usage:\n" " nibCheck path chromname\n"); } int main(int argc, char *argv[]) { char path[512]; char chromname[512]; if (argc < 3) { usage(); return -1; } strcpy(path, ""); strcat(path, argv[1]); strcpy(chromname, ""); strcat(chromname, argv[2]); findNRanges(path, chromname); return 0; }