bea3a22e1454e8fee62a026ffcec8c57af4005be
markd
  Sat Jun 6 13:46:13 2026 -0700
added -tsv option blastToPsl and blastXmlToPsl to allow parsing scores with other programs

diff --git src/hg/blastToPsl/tests/makefile src/hg/blastToPsl/tests/makefile
index 811f92c8830..bdd58c92770 100644
--- src/hg/blastToPsl/tests/makefile
+++ src/hg/blastToPsl/tests/makefile
@@ -7,38 +7,46 @@
 #blastXmlToPsl = valgrind --tool=memcheck  blastXmlToPsl
 blastXmlToPsl =  ${DESTBINDIR}/blastXmlToPsl
 
 pslCheck =  ${DESTBINDIR}/pslCheck
 
 all:
 
 test: testBlastToPsl testBlastXmlToPsl
 
 ###
 # blastToPsl
 ###
 testBlastToPsl:	protMrnaTest protDnaTest mrnaDnaTest mrnaDnaxTest \
 	blockBugTest identityBugTest protMrnaEval1Test protMrnaEval2Test \
 	longDbNameTest multiLineDescTest tblastxTest tblastnTest \
-	blastpPsiTest psiNoHitsTest psiBadFormatTest blastpPsiWrapTest
+	blastpPsiTest psiNoHitsTest psiBadFormatTest blastpPsiWrapTest \
+	protMrnaTsvTest
 
 protMrnaTest: mkdirs
 	${blastToPsl} -scores=output/$@.bscores input/kgProtMRna1.blast output/$@.psl
 	${pslCheck} -verbose=0 output/$@.psl
 	diff -u expected/$@.psl output/$@.psl
 	diff -u expected/$@.bscores output/$@.bscores
 
+# -tsv writes scores with a TSV header (no leading #)
+protMrnaTsvTest: mkdirs
+	${blastToPsl} -tsv -scores=output/$@.tsv input/kgProtMRna1.blast output/$@.psl
+	${pslCheck} -verbose=0 output/$@.psl
+	diff -u expected/$@.psl output/$@.psl
+	diff -u expected/$@.tsv output/$@.tsv
+
 protDnaTest: mkdirs
 	${blastToPsl} -scores=output/$@.bscores input/kgProtDna1.blast output/$@.psl
 	${pslCheck} -verbose=0 output/$@.psl
 	diff -u expected/$@.psl output/$@.psl
 	diff -u expected/$@.bscores output/$@.bscores
 
 mrnaDnaTest: mkdirs
 	${blastToPsl} input/mrnaDna1.blast output/$@.psl
 	${pslCheck} -verbose=0 output/$@.psl
 	diff -u expected/$@.psl output/$@.psl
 
 mrnaDnaxTest: mkdirs
 	${blastToPsl} -pslx input/mrnaDna1.blast output/$@.psl
 	${pslCheck} -verbose=0 output/$@.psl
 	diff -u expected/$@.psl output/$@.psl
@@ -131,38 +139,45 @@
 	diff -u expected/$@.bscores output/$@.bscores
 
 # PSI-BLASTP produces bogus blocks where query starts at 0 and there is not
 # ending number on the line. Sbjct may be empty or have sequence.  These 
 # are ignored
 psiBadFormatTest: mkdirs
 	${blastToPsl} -scores=output/$@.bscores input/psiBadFormat.blast output/$@.psl >output/$@.err 2>&1
 	${pslCheck} -verbose=0 output/$@.psl
 	diff -u expected/$@.psl output/$@.psl
 	diff -u expected/$@.bscores output/$@.bscores
 	diff -u expected/$@.err output/$@.err
 
 ###
 # blastXmlToPsl
 ###
-testBlastXmlToPsl: mrna1Test prot1Test prot2Test prot1NucCoordTest sp1PsiBlastTest qtName1Test qtName2Test misclassedPsiBlastTest
+testBlastXmlToPsl: mrna1Test mrna1TsvTest prot1Test prot2Test prot1NucCoordTest sp1PsiBlastTest qtName1Test qtName2Test misclassedPsiBlastTest
 
 mrna1Test: mkdirs
 	${blastXmlToPsl} -scores=output/$@.bscores input/mrna1.blastn.xml output/$@.psl
 	${pslCheck} -verbose=0 output/$@.psl
 	diff -u expected/$@.psl output/$@.psl
 	diff -u expected/$@.bscores output/$@.bscores
 
+# -tsv writes scores with a TSV header (no leading #)
+mrna1TsvTest: mkdirs
+	${blastXmlToPsl} -tsv -scores=output/$@.tsv input/mrna1.blastn.xml output/$@.psl
+	${pslCheck} -verbose=0 output/$@.psl
+	diff -u expected/$@.psl output/$@.psl
+	diff -u expected/$@.tsv output/$@.tsv
+
 prot1Test: mkdirs
 	${blastXmlToPsl} -scores=output/$@.bscores input/prot1.tblastn.xml output/$@.psl
 	${pslCheck} -verbose=0 output/$@.psl
 	diff -u expected/$@.psl output/$@.psl
 	diff -u expected/$@.bscores output/$@.bscores
 
 prot2Test: mkdirs
 	${blastXmlToPsl} -scores=output/$@.bscores input/prot2.psiblast.xml output/$@.psl
 	${pslCheck} -verbose=0 output/$@.psl
 	diff -u expected/$@.psl output/$@.psl
 	diff -u expected/$@.bscores output/$@.bscores
 
 prot1NucCoordTest: mkdirs
 	${blastXmlToPsl} -convertToNucCoords input/prot1.tblastn.xml output/$@.psl
 	${pslCheck} -verbose=0 output/$@.psl