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/protein/kgGetCds/kgGetCds.c src/hg/protein/kgGetCds/kgGetCds.c index 4be3d80..e8dde73 100644 --- src/hg/protein/kgGetCds/kgGetCds.c +++ src/hg/protein/kgGetCds/kgGetCds.c @@ -1,191 +1,191 @@ /* kgGetCds - create a gene candidate table with CDS info */ /* 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 "genePred.h" #include "genePredReader.h" #include "jksql.h" #include "bits.h" #include "hdb.h" char cdsBloc[2000][30]; void usage(char *msg) /* Explain usage and exit. */ { errAbort( "kgGetCds - create a gene candidate table with CDS info\n" "\nUsage:\n" " kgGetCds tempKgDb geneTable outfile\n" "\n" " tempKgDb: temp KG build DB\n" " geneTable: KG gene candidate table\n" " outfile: output file\n" "\n" "Example:\n" " kgGetCds kgHg17FTemp kgCandidateX jY.tmp\n" ); } void processAlign(char *kgTempDb, char *spDb, char *alignID, int cdsCnt, FILE *outf) { struct sqlConnection *conn2, *conn3, *conn4; char query2[256], query3[256]; struct sqlResult *sr2, *sr3; char **row2, **row3; char *score; char *chrom; char *protAcc; char *mrnaID; char *ranking; int protDbId; char condStr[255]; int i; char *chp; char *isCurated; conn2= hAllocConn(kgTempDb); conn3= hAllocConn(kgTempDb); conn4= hAllocConn(kgTempDb); sqlSafef(query2, sizeof(query2), "select * from %s.kgCandidate where alignID='%s'", kgTempDb, alignID); sr2 = sqlMustGetResult(conn2, query2); row2 = sqlNextRow(sr2); while (row2 != NULL) { mrnaID = row2[0]; chrom = row2[1]; ranking = row2[11]; /* check if it is a composite mrnaID */ /* if yes, select from entries with both protein and mrna specified */ if (alignID[0] == 'U') { chp = strstr(row2[0], "_"); *chp = '\0'; protAcc = row2[0]; chp ++; mrnaID = chp; sqlSafef(query3, sizeof(query3), "select protAcc, score from %s.protMrnaScore where mrnaAcc='%s' and protAcc='%s'", kgTempDb, mrnaID, protAcc); } else { sqlSafef(query3, sizeof(query3), "select protAcc, score from %s.protMrnaScore where mrnaAcc='%s' order by score desc", kgTempDb, mrnaID); } sr3 = sqlMustGetResult(conn3, query3); row3 = sqlNextRow(sr3); while(row3 != NULL) { protAcc = row3[0]; score = row3[1]; chp = strstr(protAcc, "-"); if (chp == NULL) { sqlSafefFrag(condStr, sizeof(condStr), "acc='%s'", protAcc); isCurated = sqlGetField(spDb, "info", "isCurated", condStr); if (sameWord(isCurated, "1")) { protDbId = 1; } else { protDbId = 2; } } else { protDbId = 4; } fprintf(outf, "%s:", chrom); for (i=0; i<cdsCnt; i++) fprintf(outf, "%s", cdsBloc[i]); fprintf(outf, "\t%s\t%d\t%8s\t%s\t%s\t%s\n", ranking, protDbId, score, mrnaID, protAcc, alignID); /* for composite type, process just one record */ if (alignID[0] == 'U') break; row3 = sqlNextRow(sr3); } sqlFreeResult(&sr3); row2 = sqlNextRow(sr2); } sqlFreeResult(&sr2); hFreeConn(&conn2); hFreeConn(&conn3); hFreeConn(&conn4); } void kgGetCds(char *db, char *spDb, char *geneTable, FILE *outf) /* get CDS info */ { struct sqlConnection *conn = NULL; struct genePred *gp; int cdsCnt; struct genePredReader *gpr; int iExon, exonStart, exonEnd; if (db != NULL) conn = sqlConnect(db); gpr = genePredReaderQuery(conn, geneTable, NULL); while ((gp = genePredReaderNext(gpr)) != NULL) { cdsCnt = 0; for (iExon = 0; iExon < gp->exonCount; iExon++) { if (genePredCdsExon(gp, iExon, &exonStart, &exonEnd)) { sprintf(cdsBloc[cdsCnt], "%d-%d;", exonStart, exonEnd); cdsCnt++; } } if (cdsCnt > 0) { processAlign(db, spDb, gp->name, cdsCnt, outf); } else { fprintf(stderr, "%s does not have cds.\n", gp->name); } } sqlDisconnect(&conn); } int main(int argc, char *argv[]) /* Process command line. */ { char *kgTempDb; char *kgCandidateTable; char *outFileName; FILE *outf; char *spDbDate, spDb[100]; if (argc != 5) { usage("wrong number of args"); } else { kgTempDb = argv[1]; spDbDate = argv[2]; kgCandidateTable = argv[3]; outFileName = argv[4]; sprintf(spDb, "sp%s", spDbDate); outf = mustOpen(outFileName, "w"); kgGetCds(kgTempDb, spDb, kgCandidateTable, outf); fclose(outf); } return 0; }