src/hg/blastToPsl/blastToPsl.c 1.23
1.23 2009/04/12 03:47:20 markd
added support for PSI BLAST madness
Index: src/hg/blastToPsl/blastToPsl.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/blastToPsl/blastToPsl.c,v
retrieving revision 1.22
retrieving revision 1.23
diff -b -B -U 4 -r1.22 -r1.23
--- src/hg/blastToPsl/blastToPsl.c 22 Aug 2007 02:49:47 -0000 1.22
+++ src/hg/blastToPsl/blastToPsl.c 12 Apr 2009 03:47:20 -0000 1.23
@@ -64,8 +64,10 @@
" n >= 4 dumps the result of each query\n"
" -eVal=n n is e-value threshold to filter results. Format can be either\n"
" an integer, double or 1e-10. Default is no filter.\n"
" -pslx - create PSLX output (includes sequences for blocks)\n"
+ "\n"
+ "Output only results of last round from PSI BLAST\n"
);
}
static boolean isProteinSeqs(unsigned flags)
@@ -336,17 +338,21 @@
pslFree(&psl);
}
void processQuery(struct blastQuery *bq, unsigned flags, FILE* pslFh, FILE* scoreFh)
-/* process one query */
+/* process one query. Each gaped block becomes an psl. Chaining is left
+ * to other programs. Only output last round from PSI BLAST */
{
struct blastGappedAli* ba;
struct blastBlock *bb;
for (ba = bq->gapped; ba != NULL; ba = ba->next)
{
+ if (ba->psiRound == bq->psiRounds)
+ {
for (bb = ba->blocks; bb != NULL; bb = bb->next)
processBlock(bb, flags, pslFh, scoreFh);
}
+ }
}
static unsigned getBlastAlgo(struct blastFile *bf)
/* determine blast algorithm */