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/snp/snpLoad/snpContigLocusIdCondense.c src/hg/snp/snpLoad/snpContigLocusIdCondense.c index 56ef11e..2ce96c4 100644 --- src/hg/snp/snpLoad/snpContigLocusIdCondense.c +++ src/hg/snp/snpLoad/snpContigLocusIdCondense.c @@ -1,160 +1,160 @@ /* snpContigLocusIdCondense * Condense the ContigLocusIdFilter table to contain one row per snp_id, with unique, comma separated fxn_class values. */ /* This assumes that the SNPs are in order!!! errAbort if this is violated. */ /* 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 "hdb.h" char *functionStrings[] = { /* From snpFixed.SnpFunctionCode. */ "unknown", "locus", "coding", // not used "coding-synon", "coding-nonsynon", "untranslated", "intron", "splice-site", // "cds-reference", not useful }; boolean functionFound[ArraySize(functionStrings)]; static char *snpDb = NULL; void usage() /* Explain usage and exit. */ { errAbort( "snpContigLocusIdCondense - condense the ContigLocusIdFilter table to contain one row per snp_id\n" "usage:\n" " snpContigLocusIdCondense snpDb\n"); } void initArray() { int i; for (i=0; i<ArraySize(functionStrings); i++) functionFound[i] = FALSE; } void printArray(FILE *f) { int i; boolean first = TRUE; /* special case for UTR/intron */ // if (functionFound[5] && functionFound[6]) // functionFound[5] = FALSE; for (i=0; i<ArraySize(functionStrings); i++) if (functionFound[i]) { if (!first) fprintf(f, ","); fprintf(f, "%s", functionStrings[i]); first = FALSE; } fprintf(f, "\n"); } void condenseFunctionValues() /* combine function values for single snp */ { char query[512]; struct sqlConnection *conn = hAllocConn(); struct sqlResult *sr; char **row; FILE *f; char *currentSnpString = NULL; int currentSnpNum = 0; int functionIndex = 0; f = hgCreateTabFile(".", "ContigLocusIdCondense"); sqlSafef(query, sizeof(query), "select snp_id, fxn_class from ContigLocusIdFilter"); initArray(); sr = sqlGetResult(conn, query); while ((row = sqlNextRow(sr)) != NULL) { functionIndex = sqlUnsigned(row[1]); if (functionIndex == 8) continue; if (functionIndex > 8) { verbose(1, "unexpected functionIndex %d\n", functionIndex); continue; } if (currentSnpString == NULL) { currentSnpString = cloneString(row[0]); currentSnpNum = sqlUnsigned(row[0]); } if (!sameString(row[0], currentSnpString)) { fprintf(f, "%s\t", currentSnpString); printArray(f); initArray(); if (currentSnpNum > sqlUnsigned(row[0])) errAbort("snps out of order: %d before %s\n", currentSnpNum, row[0]); currentSnpString = cloneString(row[0]); currentSnpNum = sqlUnsigned(row[0]); } functionFound[functionIndex] = TRUE; } fprintf(f, "%s\t", currentSnpString); printArray(f); sqlFreeResult(&sr); hFreeConn(&conn); carefulClose(&f); } void createTable() /* create a ContigLocusIdCondense table */ { struct sqlConnection *conn = hAllocConn(); char *createString = NOSQLINJ "CREATE TABLE ContigLocusIdCondense (\n" " snp_id int(11) not null, \n" " fxn_class varchar(255) not null\n" ");\n"; sqlRemakeTable(conn, "ContigLocusIdCondense", createString); } void loadDatabase() { struct sqlConnection *conn = hAllocConn(); FILE *f = mustOpen("ContigLocusIdCondense.tab", "r"); hgLoadTabFile(conn, ".", "ContigLocusIdCondense", &f); hFreeConn(&conn); } int main(int argc, char *argv[]) /* Condense ContigLocusIdFilter and write to ContigLocusIdCondense. */ { if (argc != 2) usage(); snpDb = argv[1]; hSetDb(snpDb); /* check for needed tables */ if(!hTableExistsDb(snpDb, "ContigLocusIdFilter")) errAbort("no ContigLocusIdFilter table in %s\n", snpDb); condenseFunctionValues(); createTable(); loadDatabase(); return 0; }