1
/* $Id: blast_seqsrc.h,v 1.51 2009/05/27 17:39:36 kazimird Exp $
1
/* $Id: blast_seqsrc.h,v 1.52 2011/01/06 18:39:31 kazimird Exp $
2
2
* ===========================================================================
4
4
* PUBLIC DOMAIN NOTICE
187
187
BlastSeqSrcGetIsProt(const BlastSeqSrc* seq_src);
189
/** Find if the Blast Sequence Source supports partial fetching
190
* @param seq_src the BLAST sequence source [in]
194
BlastSeqSrcGetSupportsPartialFetching(const BlastSeqSrc* seq_src);
196
/** Structure used as the argument to function SetRanges */
197
typedef struct BlastSeqSrcSetRangesArg {
198
/** Oid in BLAST database, index in an array of sequences, etc [in] */
201
/** Number of ranges to be set [in] */
204
/** Ranges in sorted order [in] */
206
} BlastSeqSrcSetRangesArg;
208
/** new setrangearg */
209
BlastSeqSrcSetRangesArg *
210
BlastSeqSrcSetRangesArgNew(Int4 num_ranges);
212
/** free setrangearg */
214
BlastSeqSrcSetRangesArgFree(BlastSeqSrcSetRangesArg * arg);
217
#define BLAST_SEQSRC_MINGAP 1024 /**< Minimal gap allowed in range list */
218
#define BLAST_SEQSRC_OVERHANG 1024 /**< Extension for each new range added */
220
/** Structure used to build BlastSeqSrcSetRangesArg */
221
typedef struct BlastHSPRangeList {
224
struct BlastHSPRangeList *next;
227
/** new a range list node */
229
BlastHSPRangeListNew(Int4 begin, Int4 end, BlastHSPRangeList *next);
231
/** add a new range seg into the reange list, keeping begin in sorting order */
233
BlastHSPRangeListAddRange(BlastHSPRangeList *list,
234
Int4 begin, Int4 end);
236
/** build BlastSeqSrcSetRangesArg from range list*/
238
BlastHSPRangeBuildSetRangesArg(BlastHSPRangeList *list,
239
BlastSeqSrcSetRangesArg *arg);
241
/** free range list */
243
BlastHSPRangeListFree(BlastHSPRangeList *list);
245
/** Setting the ranges for partial fetching */
248
BlastSeqSrcSetSeqRanges(const BlastSeqSrc* seq_src,
249
BlastSeqSrcSetRangesArg* setranges_arg);
189
252
/** Structure used as the second argument to functions satisfying the
190
253
GetSeqBlkFnPtr signature, associated with index-based
191
254
implementations of the BlastSeqSrc interface. Index-based implementations