src/hg/gigAssembler/checkNt/checkNt.c 1.6

1.6 2009/07/07 18:44:54 hiram
Fixup broken build on Solaris
Index: src/hg/gigAssembler/checkNt/checkNt.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/gigAssembler/checkNt/checkNt.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -b -B -U 1000000 -r1.5 -r1.6
--- src/hg/gigAssembler/checkNt/checkNt.c	21 Jul 2004 23:44:13 -0000	1.5
+++ src/hg/gigAssembler/checkNt/checkNt.c	7 Jul 2009 18:44:54 -0000	1.6
@@ -1,143 +1,142 @@
 /* checkNt - Check that ctg_nt.agp, ctg_coords, and ctg.fa are consistent. */
 #include "common.h"
 #include "linefile.h"
 #include "hash.h"
 #include "cheapcgi.h"
 #include "fa.h"
 
 static char const rcsid[] = "$Id$";
 
 void usage()
 /* Explain usage and exit. */
 {
 errAbort(
   "checkNt - Check that ctg_nt.agp, ctg_coords, and ctg.fa are consistent\n"
   "usage:\n"
   "   checkNt ctg_ng.agp ctg_coords ctg.fa\n"
   "options:\n"
   "   -xxx=XXX\n"
   );
 }
 
 struct nt
     {
     char *next;	/* Next in list. */
     char *name;	/* Name - allocated in hash. */
     int agpSize;	/* Size in AGP file. */
     int faSize;	/* Size in fa file. */	
     boolean inCoor;  /* True if in ctg_coords file. */
     };
 
 struct nt *findNt(struct hash *ntHash, char *name)
 /* Find NT in hash or create it if it doesn't exist yet. */
 {
 struct nt *nt = hashFindVal(ntHash, name);
 if (nt == NULL)
     {
     AllocVar(nt);
     hashAddSaveName(ntHash, name, nt, &nt->name);
     }
 return nt;
 }
 
 void addAgpSize(struct hash *ntHash, char *fileName)
 /* Read an agp file and store size of each NT contig. */
 {
-char *line, *row[5];
+char *row[5];
 int wordCount;
 struct lineFile *lf = lineFileOpen(fileName, TRUE);
 while ((wordCount = lineFileChop(lf, row)) > 0)
     {
     lineFileExpectWords(lf, ArraySize(row), wordCount);
     if (row[4][0] != 'N' && row[4][0] != 'U')
         {
 	int end = lineFileNeedNum(lf, row, 2);
 	struct nt *nt = findNt(ntHash, row[0]);
 	if (nt->agpSize < end) nt->agpSize = end;
 	}
     }
 lineFileClose(&lf);
 }
 
 void addNtSize(struct hash *ntHash, char *fileName)
 /* Add size of NT contig from fa file. */
 {
 struct lineFile *lf = lineFileOpen(fileName, TRUE);
 struct dnaSeq seq;
 char *words[3];
 ZeroVar(&seq);
 
 while (faSpeedReadNext(lf, &seq.dna, &seq.size, &seq.name))
     {
     struct nt *nt;
     int wordCount;
     wordCount = chopString(seq.name, "|", words, ArraySize(words));
     if (wordCount != 3)
         errAbort("Unknown format for NT_ names line %d of %s", lf->lineIx, lf->fileName);
     nt = findNt(ntHash, words[1]);
     if (nt->faSize != 0)
         printf("%s size %d and %d\n", nt->name, nt->faSize, seq.size);
     nt->faSize = seq.size;
     printf(".");
     fflush(stdout);
     }
 printf("\n");
 lineFileClose(&lf);
 }
 
 void addInCoor(struct hash *ntHash, char *fileName)
 /* Check if NT's are present in ctg_coords file. */
 {
-char *line, *row[8];
+char *row[8];
 int wordCount;
 struct lineFile *lf = lineFileOpen(fileName, TRUE);
 struct nt *nt;
-int end;
 while ((wordCount = lineFileChop(lf, row)) > 0)
     {
     lineFileExpectWords(lf, ArraySize(row), wordCount);
     nt = findNt(ntHash, row[0]);
     nt->inCoor = TRUE;
     }
 lineFileClose(&lf);
 }
 
 void checkNt(char *agpFile, char *coordsFile, char *faFile)
 /* checkNt - Check that ctg_nt.agp, ctg_coords, and ctg.fa are consistent. */
 {
 struct hash *ntHash = newHash(0);
 struct hashEl *hel;
 struct nt *nt;
 int badCount = 0;
 addAgpSize(ntHash, agpFile);
 addInCoor(ntHash, coordsFile);
 addNtSize(ntHash, faFile);
 for (hel = hashElListHash(ntHash); hel != NULL; hel = hel->next)
     {
     nt = hel->val;
     if (nt->agpSize != nt->faSize)
 	{
         printf("%s is %d in %s and %d in %s\n", nt->name, nt->agpSize, agpFile, nt->faSize, faFile);
 	badCount += 1;
 	}
     else if (nt->inCoor == 0)
 	{
         printf("%s is in %s but not %s\n", nt->name, agpFile, coordsFile);
 	badCount += 1;
 	}
     }
 if (badCount)
     errAbort("%d errors total", badCount);
 else
     printf("No problems detected\n");
 }
 
 int main(int argc, char *argv[])
 /* Process command line. */
 {
 cgiSpoof(&argc, argv);
 if (argc != 4)
     usage();
 checkNt(argv[1], argv[2], argv[3]);
 return 0;
 }