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/oneShot/agpNotInf/agpNotInf.c src/hg/oneShot/agpNotInf/agpNotInf.c index 922056a..e6eeed1 100644 --- src/hg/oneShot/agpNotInf/agpNotInf.c +++ src/hg/oneShot/agpNotInf/agpNotInf.c @@ -1,115 +1,115 @@ /* agpNotInf - List clones in .agp file not in .inf file. */ /* Copyright (C) 2011 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 "linefile.h" #include "hash.h" #include "cheapcgi.h" #include "hCommon.h" void usage() /* Explain usage and exit. */ { errAbort( "agpNotInf - List clones in .agp file not in .inf file\n" "usage:\n" " agpNotInf ctg_nt.agp sequence.inf\n" ); } struct clone /* Info on one clone. */ { struct clone *next; char *name; /* Allocated in hash. */ char *version; /* Genbank version number of clone. */ }; void addCloneToHash(struct hash *hash, char *accVer) /* Add accession.ver name to hash. */ { char cloneName[256]; struct clone *clone; strcpy(cloneName, accVer); chopSuffix(cloneName); if (!hashLookup(hash, cloneName)) { AllocVar(clone); hashAddSaveName(hash, cloneName, clone, &clone->name); clone->version = cloneString(accVer); } } struct hash *readAgp(char *fileName) /* Read AGP file into hash */ { struct lineFile *lf = lineFileOpen(fileName, TRUE); struct hash *hash = newHash(0); int wordCount; char *words[16]; while ((wordCount = lineFileChop(lf, words)) > 0) { if (wordCount == 9 && !sameString(words[4], "N")) { addCloneToHash(hash, words[5]); } } uglyf("Read %d lines in %s\n", lf->lineIx, fileName); lineFileClose(&lf); return hash; } struct hash *readInf(char *fileName) /* Read info file into hash */ { struct lineFile *lf = lineFileOpen(fileName, TRUE); struct hash *hash = newHash(0); struct clone *clone; int wordCount; char *words[9]; while (lineFileRow(lf, words)) { addCloneToHash(hash, words[0]); } uglyf("Read %d lines in %s\n", lf->lineIx, fileName); lineFileClose(&lf); return hash; } void agpNotInf(char *agpFile, char *infFile) /* agpNotInf - List clones in .agp file not in .inf file. */ { struct hash *agpHash = readAgp(agpFile); struct hash *infHash = readInf(infFile); struct hashEl *list, *el; struct clone *agpClone, *infClone; list = hashElListHash(agpHash); uglyf("%d clones in agpHash\n", slCount(list)); for (el = list; el != NULL; el = el->next) { agpClone = el->val; infClone = hashFindVal(infHash, agpClone->name); if (infClone == NULL) printf("%s missing\n", agpClone->version); else if (!sameString(agpClone->version, infClone->version)) printf("%s updated from %s\n", agpClone->version, infClone->version); } hashElFreeList(&list); } int main(int argc, char *argv[]) /* Process command line. */ { cgiSpoof(&argc, argv); if (argc != 3) usage(); agpNotInf(argv[1], argv[2]); return 0; }