90f26ce1f4bd4f69b53d11569d4c4efc0c3386b7
braney
  Tue Dec 20 12:41:19 2016 -0800
make some utilities to turn mafs into bigMafs

diff --git src/lib/maf.c src/lib/maf.c
index 11d205d..e5ad062 100644
--- src/lib/maf.c
+++ src/lib/maf.c
@@ -276,91 +276,97 @@
     }
 slReverse(&mf->alignments);
 return mf;
 }
 
 void mafWriteStart(FILE *f, char *scoring)
 /* Write maf header and scoring scheme name (may be null) */
 {
 fprintf(f, "##maf version=1");
 if (scoring != NULL)
     fprintf(f, " scoring=%s", scoring);
 fprintf(f, "\n");
 }
 
 
-void mafWrite(FILE *f, struct mafAli *ali)
+void mafWriteDelimiter(FILE *f, struct mafAli *ali, char delimiter)
 /* Write next alignment to file. */
 {
 struct mafComp *comp;
 int srcChars = 0, startChars = 0, sizeChars = 0, srcSizeChars = 0;
 
 /* Write out alignment header */
-fprintf(f, "a score=%f\n", ali->score);
+fprintf(f, "a score=%f%c", ali->score, delimiter);
 
 /* include region definition */
 if (ali->regDef != NULL)
-    fprintf(f, "r %s %d %s\n", ali->regDef->type, ali->regDef->size, ali->regDef->id);
+    fprintf(f, "r %s %d %s%c", ali->regDef->type, ali->regDef->size, ali->regDef->id, delimiter);
 
 /* Figure out length of each field. */
 for (comp = ali->components; comp != NULL; comp = comp->next)
     {
     int len = 0;
     /* a name like '.' will break some tools, so replace it
     * with a generic name */
     if (sameString(comp->src,"."))
 	comp->src=cloneString("defaultName");
     len = strlen(comp->src);
     if (srcChars < len)
         srcChars = len;
     len = digitsBaseTen(comp->start);
     if (startChars < len)
         startChars = len;
     len = digitsBaseTen(comp->size);
     if (sizeChars < len)
         sizeChars = len;
     len = digitsBaseTen(comp->srcSize);
     if (srcSizeChars < len)
         srcSizeChars = len;
     }
 
 /* Write out each component. */
 for (comp = ali->components; comp != NULL; comp = comp->next)
     {
     if ((comp->size == 0) && (comp->leftStatus))
-	fprintf(f, "e %-*s %*d %*d %c %*d %c\n", 
+	fprintf(f, "e %-*s %*d %*d %c %*d %c%c", 
 	    srcChars, comp->src, startChars, comp->start, 
 	    sizeChars, comp->leftLen, comp->strand, 
-	    srcSizeChars, comp->srcSize, comp->leftStatus);
+	    srcSizeChars, comp->srcSize, comp->leftStatus, delimiter);
     else
 	{
-	fprintf(f, "s %-*s %*d %*d %c %*d %s\n", 
+	fprintf(f, "s %-*s %*d %*d %c %*d %s%c", 
 	    srcChars, comp->src, startChars, comp->start, 
 	    sizeChars, comp->size, comp->strand, 
-	    srcSizeChars, comp->srcSize, comp->text);
+	    srcSizeChars, comp->srcSize, comp->text, delimiter);
 
 	if (comp->quality)
-		fprintf(f, "q %-*s %s\n",
+		fprintf(f, "q %-*s %s%c",
 		srcChars + startChars + sizeChars + srcSizeChars + 5,
-		comp->src, comp->quality);
+		comp->src, comp->quality, delimiter);
 
 	if (comp->leftStatus)
-	    fprintf(f,"i %-*s %c %d %c %d\n",srcChars,comp->src,
-		comp->leftStatus,comp->leftLen,comp->rightStatus,comp->rightLen);
+	    fprintf(f,"i %-*s %c %d %c %d%c",srcChars,comp->src,
+		comp->leftStatus,comp->leftLen,comp->rightStatus,comp->rightLen, delimiter);
 	}
 
     }
+}
+
+void mafWrite(FILE *f, struct mafAli *ali)
+/* Write next alignment to file. */
+{
+mafWriteDelimiter(f, ali, '\n');
 
 /* Write out blank separator line. */
 fprintf(f, "\n");
 }
 
 void mafWriteEnd(FILE *f)
 /* Write maf footer. In this case nothing */
 {
 }
 
 void mafWriteAll(struct mafFile *mf, char *fileName)
 /* Write out full mafFile. */
 {
 FILE *f = mustOpen(fileName, "w");
 struct mafAli *ali;