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/patchDir/patchDir.c src/hg/oneShot/patchDir/patchDir.c index 363fcfa..e520380 100644 --- src/hg/oneShot/patchDir/patchDir.c +++ src/hg/oneShot/patchDir/patchDir.c @@ -1,106 +1,106 @@ /* patchDir - Patch directions of some ESTs. */ /* Copyright (C) 2013 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 "jksql.h" #include "ra.h" void usage() /* Explain usage and exit. */ { errAbort( "patchDir - Patch directions of some ESTs\n" "usage:\n" " patchDir database authurId est.ra\n" ); } void patchDir(char *database, char *authorId, char *raFile, char *outTab) /* patchDir - Patch directions of some ESTs. */ { struct sqlConnection *conn = sqlConnect(database); struct sqlResult *sr; char query[256], **row; int i, rowSize = 18; char *three = "3"; char *five = "5"; char *acc; char authors[1024]; struct hash *fiveHash = newHash(0), *threeHash = newHash(0); struct lineFile *lf = lineFileOpen(raFile, TRUE); struct hash *ra; FILE *f; int autMatchCount = 0, fiveCount = 0, threeCount = 0; sqlSafef(query, sizeof query, "select name from author where id = %s", authorId); if (sqlQuickQuery(conn, query, authors, sizeof(authors)) == NULL) errAbort("%s is not a valid author ID", authorId); printf("scanning %s for %s\n", raFile, authors); while ((ra = raNextRecord(lf)) != NULL) { char *aut = hashFindVal(ra, "aut"); if (aut != NULL && sameString(aut, authors)) { char *dir = hashFindVal(ra, "dir"); char *acc = hashFindVal(ra, "acc"); if (acc == NULL) { warn("Couldn't find accession line %d of %s", lf->lineIx, lf->fileName); continue; } ++autMatchCount; if (dir != NULL) { if (dir[0] == '5') { ++fiveCount; hashAdd(fiveHash, acc, NULL); } else if (dir[0] == '3') { ++threeCount; hashAdd(threeHash, acc, NULL); } } } hashFree(&ra); } printf("Got %d matches including %d 5' and %d 3'\n", autMatchCount, fiveCount, threeCount); lineFileClose(&lf); f = mustOpen(outTab, "w"); sqlSafef(query, sizeof query, "select * from mrna where author = %s", authorId); sr = sqlGetResult(conn, query); while ((row = sqlNextRow(sr)) != NULL) { acc = row[1]; if (hashLookup(fiveHash, acc)) row[3] = five; else if (hashLookup(threeHash, acc)) row[3] = three; for (i=0; i<rowSize-1; ++i) fprintf(f, "%s\t", row[i]); fprintf(f, "%s\n", row[rowSize-1]); } sqlFreeResult(&sr); sqlDisconnect(&conn); carefulClose(&f); printf("Try updating database with %s\n", outTab); } int main(int argc, char *argv[]) /* Process command line. */ { cgiSpoof(&argc, argv); if (argc != 5) usage(); patchDir(argv[1], argv[2], argv[3], argv[4]); return 0; }