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