src/inc/blastParse.h 1.6

1.6 2009/04/12 03:47:20 markd
added support for PSI BLAST madness
Index: src/inc/blastParse.h
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/inc/blastParse.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -b -B -U 1000000 -r1.5 -r1.6
--- src/inc/blastParse.h	12 Aug 2007 06:07:46 -0000	1.5
+++ src/inc/blastParse.h	12 Apr 2009 03:47:20 -0000	1.6
@@ -1,114 +1,116 @@
 /* blastParse - read in blast output into C data structure. */
 
 #ifndef BLASTPARSE_H
 #define BLASTPARSE_H
 
 struct blastFile
 /* All the info in a single file. */
     {
     struct blastFile *next;
     char *fileName;			/* Name of file this is in. */
     char *program;                      /* Blastp, blastx, blastn, etc. */
     char *version;                      /* Version of program. */
     char *buildDate;                    /* Build date of program. */
     struct lineFile *lf;                /* File blast is in. */
     struct blastQuery *queries;         /* List of queries. */
     };
 
 struct blastQuery
 /* Info on one query. */
     {
     struct blastQuery *next;
     char *query;                        /* Name of query sequence. */
     int queryBaseCount;                 /* Number of bases in query. */
     char *database;                     /* Name of database. */
     int dbSeqCount;                     /* Number of sequences in database. */
     int dbBaseCount;                    /* Number of bases in database. */
+    int psiRounds;                      /* PSI BLAST rounds, or 0 if not PSI blast */
     struct blastGappedAli *gapped;      /* List of gapped alignments. */
     };
 
 struct blastGappedAli
 /* Info about a gapped alignment. */
     {
     struct blastGappedAli *next;
     struct blastQuery *query;           /* Query associated with this alignment (not owned here). */
+    int psiRound;                       /* PSI BLAST round, or 0 if not PSI blast */
     char *targetName;                   /* Name of target sequence. */
     int targetSize;                     /* Size of target sequence. */
     struct blastBlock *blocks;          /* List of aligning blocks (no big gaps). */
     };
 
 struct blastBlock
 /* Info about a single block of gapped alignment. */
     {
     struct blastBlock *next;
     struct blastGappedAli *gappedAli;   /* gapped ali associated with block */
     double bitScore;                    /* About 2 bits per aligning nucleotide. */
     double eVal;                        /* Expected number of alignments in database. */
     int matchCount;                     /* Number of matching nucleotides. */
     int totalCount;                     /* Total number of nucleotides. */
     int insertCount;                    /* Number of inserts. */
     BYTE qStrand;                       /* Query strand (+1 or -1) */
     BYTE tStrand;                       /* Target strand (+1 or -1) */
     BYTE qFrame;                        /* Frames for tblastn, +/- 1, 2, 3, or */
     BYTE tFrame;                        /* 0 if none. */
     int qStart;                         /* Query start position. [0..n) */
     int tStart;                         /* Target start position. [0..n) */
     int qEnd;                           /* Query end position. */
     int tEnd;                           /* Target end position. */
     char *qSym;                         /* Query letters (including '-') */
     char *tSym;                         /* Target letters (including '-') */
     };
 
 struct blastFile *blastFileReadAll(char *fileName);
 /* Read all blast alignment in file. */
 
 struct blastFile *blastFileOpenVerify(char *fileName);
 /* Open file, read and verify header. */
 
 struct blastQuery *blastFileNextQuery(struct blastFile *bf);
 /* Read all alignments associated with next query.  Return NULL at EOF. */
 
 struct blastGappedAli *blastFileNextGapped(struct blastFile *bf, struct blastQuery *bq);
 /* Read in next gapped alignment.   Does *not* put it on bf->gapped list. 
  * Return NULL at EOF or end of query. */
 
 struct blastBlock *blastFileNextBlock(struct blastFile *bf, 
 	struct blastQuery *bq, struct blastGappedAli *bga);
 /* Read in next blast block.  Return NULL at EOF or end of
  * gapped alignment. */
 
 void blastFileFree(struct blastFile **pBf);
 /* Free blast file. */
 
 void blastFileFreeList(struct blastFile **pList);
 /* Free list of blast files. */
 
 void blastQueryFree(struct blastQuery **pBq);
 /* Free single blastQuery. */
 
 void blastQueryFreeList(struct blastQuery **pList);
 /* Free list of blastQuery's. */
 
 void blastGappedAliFree(struct blastGappedAli **pBga);
 /* Free blastGappedAli. */
 
 void blastGappedAliFreeList(struct blastGappedAli **pList);
 /* Free blastGappedAli list. */
 
 void blastBlockFree(struct blastBlock **pBb);
 /* Free a single blastBlock. */
 
 void blastBlockFreeList(struct blastBlock **pList);
 /* Free a list of blastBlocks. */
 
 void blastBlockPrint(struct blastBlock* bb, FILE* out);
 /* print a BLAST block for debugging purposes  */
 
 void blastGappedAliPrint(struct blastGappedAli* ba, FILE* out);
 /* print a BLAST gapped alignment for debugging purposes  */
 
 void blastQueryPrint(struct blastQuery *bq, FILE* out);
 /* print a BLAST query for debugging purposes  */
 
 #endif /* BLASTPARSE_H */