2f48d68cce72bd8ddfb21a11da72d244b7c8c479
markd
  Sun Oct 3 08:31:41 2010 -0700
added options to specify how to obtained qName and tName.  Output query and target defs in score file
diff --git src/hg/blastToPsl/pslBuild.c src/hg/blastToPsl/pslBuild.c
index e19f2d2..b200e91 100644
--- src/hg/blastToPsl/pslBuild.c
+++ src/hg/blastToPsl/pslBuild.c
@@ -3,9 +3,6 @@
 #include "pslBuild.h"
 #include "psl.h"
 
-/* score file header */
-char *pslBuildScoreHdr = "#strand\tqName\tqStart\tqEnd\ttName\ttStart\ttEnd\tbitScore\teVal\n";
-
 unsigned pslBuildGetBlastAlgo(char *program)
 /* determine blast algorithm flags */
 {
@@ -293,10 +290,35 @@
 return psl;
 }
 
-void pslBuildWriteScores(FILE* scoreFh, struct psl *psl, double bitScore, double eValue)
-/* write scores for a PSL */
+FILE *pslBuildScoresOpen(char *scoreFile, bool inclDefs)
+/* open score file and write headers */
+{
+FILE *fh = mustOpen(scoreFile, "w");
+fputs("#strand\tqName\tqStart\tqEnd\ttName\ttStart\ttEnd\tbitScore\teVal", fh);
+if (inclDefs)
+    fputs("\tqDef\ttDef", fh);
+fputc('\n', fh);
+return fh;
+}
+
+static void writeBasicScores(FILE* scoreFh, struct psl *psl, double bitScore, double eValue)
+/* write first part of row */
 {
-fprintf(scoreFh, "%s\t%s\t%d\t%d\t%s\t%d\t%d\t%g\t%g\n", psl->strand,
+fprintf(scoreFh, "%s\t%s\t%d\t%d\t%s\t%d\t%d\t%g\t%g", psl->strand,
         psl->qName, psl->qStart, psl->qEnd, psl->tName, psl->tStart, psl->tEnd,
         bitScore, eValue);
 }
+
+void pslBuildScoresWrite(FILE* scoreFh, struct psl *psl, double bitScore, double eValue)
+/* write scores for a PSL */
+{
+writeBasicScores(scoreFh, psl, bitScore, eValue);
+fputc('\n', scoreFh);
+}
+
+void pslBuildScoresWriteWithDefs(FILE* scoreFh, struct psl *psl, double bitScore, double eValue, char *qDef, char *tDef)
+/* write scores and definitions for a PSL */
+{
+writeBasicScores(scoreFh, psl, bitScore, eValue);
+fprintf(scoreFh, "\t%s\t%s\n", qDef, tDef);
+}