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/near/hgCeOrfToGene/hgCeOrfToGene.c src/hg/near/hgCeOrfToGene/hgCeOrfToGene.c index a573abe..e0eba9d 100644 --- src/hg/near/hgCeOrfToGene/hgCeOrfToGene.c +++ src/hg/near/hgCeOrfToGene/hgCeOrfToGene.c @@ -1,112 +1,112 @@ /* hgCeOrfToGene - Make orfToGene table for C.elegans from GENE_DUMPS/gene_names.txt. */ /* 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 "options.h" #include "jksql.h" #include "dystring.h" #include "hdb.h" void usage() /* Explain usage and exit. */ { errAbort( "hgCeOrfToGene - Make orfToGene table for C.elegans from GENE_DUMPS/gene_names.txt\n" "usage:\n" " hgCeOrfToGene database gene_names.txt sangerGene orfToGene\n" "options:\n" " -xxx=XXX\n" ); } boolean unique = FALSE; static struct optionSpec options[] = { {NULL, 0}, }; void createTable(struct sqlConnection *conn, char *tableName, boolean unique) /* Create our name/value table, dropping if it already exists. */ { char *indexType = (unique ? "UNIQUE" : "INDEX"); struct dyString *dy = dyStringNew(512); sqlDyStringPrintf(dy, "CREATE TABLE %s (\n" " name varchar(255) not null,\n" " value varchar(255) not null,\n" " #Indices\n" " %s(name(16)),\n" " INDEX(value(16))\n" ")\n", tableName, indexType); sqlRemakeTable(conn, tableName, dy->string); dyStringFree(&dy); } void hgCeOrfToGene(char *database, char *geneNames, char *geneTable, char *table) /* hgCeOrfToGene - Make orfToGene table for C.elegans from * GENE_DUMPS/gene_names.txt. */ { struct lineFile *lf = lineFileOpen(geneNames, TRUE); struct sqlConnection *conn; struct sqlResult *sr; char query[256]; char **row; char *tempDir = "."; FILE *f = hgCreateTabFile(tempDir, table); char *words[4]; struct hash *orfHash = newHash(17); /* Make hash to look up gene names. */ while (lineFileNextRowTab(lf, words, ArraySize(words))) { char *gene = words[0]; char *orfs = words[3]; char *type = words[2]; char *orf[128]; int i, orfCount; if (sameString(type, "Gene")) { orfCount = chopString(orfs, ",", orf, ArraySize(orf)); if (orfCount >= ArraySize(orf)) errAbort("Too many ORFs line %d of %s", lf->lineIx, lf->fileName); for (i=0; i<orfCount; ++i) hashAdd(orfHash, orf[i], cloneString(gene)); } } lineFileClose(&lf); /* For each orf in gene table write out gene name if possible, * otherwise orf name. */ conn = sqlConnect(database); sqlSafef(query, sizeof(query), "select name from %s", geneTable); sr = sqlGetResult(conn,query); while ((row = sqlNextRow(sr)) != NULL) { char *orf = row[0]; char *gene = hashFindVal(orfHash, orf); if (gene == NULL) gene = orf; fprintf(f, "%s\t%s\n", orf, gene); } sqlFreeResult(&sr); createTable(conn, table, unique); hgLoadTabFile(conn, tempDir, table, &f); } int main(int argc, char *argv[]) /* Process command line. */ { optionInit(&argc, argv, options); if (argc != 5) usage(); hgCeOrfToGene(argv[1], argv[2], argv[3], argv[4]); return 0; }