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/mouseStuff/netContigs/netContigs.c src/hg/mouseStuff/netContigs/netContigs.c index 0f59391..29d9e5b 100644 --- src/hg/mouseStuff/netContigs/netContigs.c +++ src/hg/mouseStuff/netContigs/netContigs.c @@ -1,128 +1,128 @@ /* netContigs - get query contigs in a chrom level net 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 "options.h" #include "portable.h" #include "chainNet.h" #include "liftUp.h" struct hash *chromHash; struct hash *contigNames; void usage() /* Explain usage and exit. */ { errAbort( "netContigs - get query contigs in a chrom level net file\n" "usage:\n" " netContigs file.net file.lft\n" ); } void addContig(char *contig) { //uglyf("found contig: %s\n", contig); if (hashLookup(contigNames, contig) == NULL) { //uglyf("adding contig: %s\n", contig); hashAdd(contigNames, contig, contig); } } void getFillContig(struct cnFill *fill) { struct liftSpec *lift, *prevLift = NULL; struct hashEl *el; //uglyf("fill->qName=%s, fill->qStart=%d\n", fill->qName, fill->qStart); if ((el = hashLookup(chromHash, fill->qName)) == NULL) errAbort("Unknown chrom: %s\n", fill->qName); for (lift = (struct liftSpec *)el->val; lift != NULL; prevLift = lift, lift = lift->next) { //uglyf("lift->oldName=%s, lift->offset=%d\n", lift->oldName, lift->offset); if (fill->qStart < lift->offset) { addContig(prevLift->oldName); break; } } /* last contig */ addContig(prevLift->oldName); } void rLower(struct cnFill *fillList) { struct cnFill *fill; /* Recursively get contig for query in fill item */ for (fill = fillList; fill != NULL; fill = fill->next) { if (fill->chainId) getFillContig(fill); if (fill->children) rLower(fill->children); } } void printContig(struct hashEl *el) { printf("%s\n", el->name); } void netContigs(char *netFile, char *liftFile) /* netContigs - get query-side contigs from a chrom-level net file */ { struct lineFile *lf = lineFileOpen(netFile, TRUE); struct chainNet *net; struct liftSpec *lift, *prevLift, *lifts; char *chrom; /* read lift file and split into a hash of per-chrom lists */ lifts = readLifts(liftFile); prevLift = NULL; for (lift = lifts; lift != NULL; lift = lift->next) { //uglyf("reading lift: %s\n", lift->oldName); if (hashLookup(chromHash, lift->newName) == NULL) { /* new chrom */ //uglyf("adding chrom: %s\n", lift->newName); hashAdd(chromHash, lift->newName, lift); /* terminate previous list */ /* NOTE: expects input sorted by chrom */ if (prevLift != NULL) prevLift->next = NULL; } prevLift = lift; } /* read in nets and convert query side to contig coords */ //uglyf("reading in nets\n"); while ((net = chainNetRead(lf)) != NULL) { rLower(net->fillList); chainNetFree(&net); } /* print accumulated contigs */ hashTraverseEls(contigNames, printContig); } int main(int argc, char *argv[]) /* Process command line. */ { optionHash(&argc, argv); if (argc != 3) usage(); chromHash = newHash(0); contigNames = newHash(0); netContigs(argv[1], argv[2]); return 0; }