src/hg/protein/spToProteins/spToProteins.c 1.6
1.6 2009/09/23 18:42:25 angie
Fixed compiler warnings from gcc 4.3.3, mostly about system calls whose return values weren't checked and non-literal format strings with no args.
Index: src/hg/protein/spToProteins/spToProteins.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/protein/spToProteins/spToProteins.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -b -B -U 1000000 -r1.5 -r1.6
--- src/hg/protein/spToProteins/spToProteins.c 3 Sep 2008 19:21:02 -0000 1.5
+++ src/hg/protein/spToProteins/spToProteins.c 23 Sep 2009 18:42:25 -0000 1.6
@@ -1,150 +1,150 @@
/* spToProteins- Create tab delimited data file for proteinsxxxx database */
/* CURRENTLY UNUSED because it's horribly slow perhaps.... */
#include "common.h"
#include "hCommon.h"
#include "hdb.h"
#include "spDb.h"
#include "options.h"
void usage()
/* Explain usage and exit. */
{
errAbort(
"spToProteins- Create tab delimited data files from spxxxx database for proteinsxxxx database.\n"
"usage:\n"
" spToProteins xxxx\n"
" xxxx is the release date of SWISS-PROT data\n"
"Example: spToProteins 100503\n");
}
int main(int argc, char *argv[])
{
struct sqlConnection *conn, *conn2, *conn3;
char query[256], query2[256];
struct sqlResult *sr, *sr2;
char **row, **row2;
char cond_str[255];
char proteinDatabaseName[255];
char proteinsDB[255];
char *isCurated;
char *desc;
char *hugoSymbol, *hugoDesc;
char empty_str[1] = {""};
FILE *o1, *o2, *o3;
char *proteinDataDate;
int bioDatabase, bioentryId;
char *displayId;
char *accession;
char *extAC;
char *extDb;
int taxon;
struct slName *taxonList, *name;
optionHash(&argc, argv);
if (argc != 2) usage();
proteinDataDate = argv[1];
safef(proteinDatabaseName, sizeof(proteinDatabaseName), "sp%s", proteinDataDate);
safef(proteinsDB, sizeof(proteinsDB), "proteins%s", proteinDataDate);
o1 = mustOpen("temp_spXref2.dat", "w");
o2 = mustOpen("spXref3.tab", "w");
o3 = mustOpen("temp_spOrganism.dat", "w");
conn = hAllocConn(hDefaultDb());
conn2 = hAllocConn(hDefaultDb());
conn3 = sqlConnect(proteinDatabaseName);
bioentryId = 0;
safef(query2, sizeof(query2), "select count(*) from %s.info", proteinDatabaseName);
int totalIds = sqlQuickNum(conn2, query2);
safef(query2, sizeof(query2), "select acc, isCurated from %s.info;", proteinDatabaseName);
sr2 = sqlMustGetResult(conn2, query2);
row2 = sqlNextRow(sr2);
while (row2 != NULL)
{
if (bioentryId%1000 == 0)
verbose(1, "Processed %d of %d %5.2f%%\n", bioentryId, totalIds, 100.0*bioentryId/totalIds);
bioentryId++;
accession = row2[0];
isCurated = row2[1];
verbose(3, "%d %s %s\n", bioentryId, accession, isCurated);
if (*isCurated == '1')
{
bioDatabase = 1;
}
else
{
if (strlen(accession) > 7)
{
bioDatabase = 3;
}
else
{
bioDatabase = 2;
}
}
safef(cond_str, sizeof(cond_str), "acc='%s'", accession);
displayId = sqlGetField(proteinDatabaseName, "displayId", "val", cond_str);
// !!! the divsion field probably should be eliminated later
// use the simple 1 taxon returned value function for the time being,
// could expand into multiple by calling spBinomialNames later
taxon = spTaxon(conn3, accession);
taxonList = spTaxons(conn3, accession);
for (name = taxonList; name != NULL; name = name->next)
{
fprintf(o3, "%s\t%s\n", displayId, name->name);
}
safef(cond_str, sizeof(cond_str), "acc='%s'", accession);
desc = sqlGetField(proteinDatabaseName, "description", "val", cond_str);
safef(cond_str, sizeof(cond_str), "uniProt='%s'", accession);
hugoSymbol = sqlGetField(proteinsDB, "hgnc", "symbol", cond_str);
hugoDesc = sqlGetField(proteinsDB, "hgnc", "name", cond_str);
if (hugoSymbol==NULL) hugoSymbol = empty_str;
if (hugoDesc==NULL) hugoDesc = empty_str;
fprintf(o2, "%s\t%s\t%d\t%d\t%d\t%s\t%s\t%s\n", accession, displayId,
taxon, bioentryId, bioDatabase, desc, hugoSymbol, hugoDesc);
safef(query, sizeof(query),
"select extAcc1, extDb.val from sp%s.extDb, sp%s.extDbRef where extDbRef.acc='%s' %s",
proteinDataDate, proteinDataDate, accession, "and extDb.id = extDbRef.extDb;");
sr = sqlMustGetResult(conn, query);
row = sqlNextRow(sr);
while (row != NULL)
{
extAC = row[0];
extDb = row[1];
fprintf(o1, "%s\t%s\t%d\t%s\t%s\t%d\t%d\n", accession, displayId, taxon,
extDb, extAC, bioentryId, bioDatabase);
row = sqlNextRow(sr);
}
sqlFreeResult(&sr);
row2 = sqlNextRow(sr2);
}
fclose(o1);
fclose(o2);
fclose(o3);
sqlFreeResult(&sr2);
hFreeConn(&conn);
hFreeConn(&conn2);
sqlDisconnect(&conn3);
-system("cat temp_spXref2.dat | sort |uniq > spXref2.tab");
-system("rm temp_spXref2.dat");
-system("cat temp_spOrganism.dat | sort |uniq > spOrganism.tab");
-system("rm temp_spOrganism.dat");
+mustSystem("cat temp_spXref2.dat | sort |uniq > spXref2.tab");
+mustSystem("rm temp_spXref2.dat");
+mustSystem("cat temp_spOrganism.dat | sort |uniq > spOrganism.tab");
+mustSystem("rm temp_spOrganism.dat");
return(0);
}