|
NCBI Home IEB Home C Toolkit docs C++ Toolkit source browser C Toolkit source browser (2) |
NCBI C Toolkit Cross ReferenceC/tools/blastpri.h |
source navigation diff markup identifier search freetext search file search |
1 /* ===========================================================================
2 *
3 * PUBLIC DOMAIN NOTICE
4 * National Center for Biotechnology Information
5 *
6 * This software/database is a "United States Government Work" under the
7 * terms of the United States Copyright Act. It was written as part of
8 * the author's official duties as a United States Government employee and
9 * thus cannot be copyrighted. This software/database is freely available
10 * to the public for use. The National Library of Medicine and the U.S.
11 * Government have not placed any restriction on its use or reproduction.
12 *
13 * Although all reasonable efforts have been taken to ensure the accuracy
14 * and reliability of the software and data, the NLM and the U.S.
15 * Government do not and cannot warrant the performance or results that
16 * may be obtained by using this software or data. The NLM and the U.S.
17 * Government disclaim all warranties, express or implied, including
18 * warranties of performance, merchantability or fitness for any particular
19 * purpose.
20 *
21 * Please cite the author in any work or product based on this material.
22 *
23 * ===========================================================================*/
24 /*****************************************************************************
25
26 File name: blastpri.h
27
28 Author: Tom Madden
29
30 Contents: prototypes for "private" BLAST functions, these should not be called
31 by outside utilities.
32
33 ******************************************************************************/
34
35 /* $Revision: 6.125 $
36 * $Log: blastpri.h,v $
37 * Revision 6.125 2007/03/13 20:39:04 madden
38 * - In the prototype for blast_set_parameters, change the type of the
39 * function arguments dropoff_number_of_bits_1st_pass and
40 * dropoff_number_of_bits_2nd_pass to Nlm_FloatHi.
41 * [from Mike Gertz]
42 *
43 * Revision 6.124 2007/01/17 15:46:00 madden
44 * remove FilterDNA
45 *
46 * Revision 6.123 2006/09/21 13:42:37 madden
47 * BlastProcessGiLists returns a boolean to specify that an attempt was made to process a list of GIs. If no matches were found this can be reported back to the user
48 *
49 * Revision 6.122 2006/04/26 12:42:36 madden
50 * BlastSetUserErrorString and BlastDeleteUserErrorString moved from blastool.c to blfmtutl.c
51 *
52 * Revision 6.121 2005/12/29 19:56:06 madden
53 * Moved functions to print tabular output to blfmtutl
54 *
55 * Revision 6.120 2005/12/01 15:10:23 madden
56 * Gave BLASTCheckHSPInclusion external linkage (i.e. removed the static specifier).
57 *
58 * Revision 6.119 2005/09/29 17:39:46 coulouri
59 * from mike gertz:
60 * To handle concatenated queries properly, changed prototype of
61 * RedoAlignmentCore to return and array of lists to SeqAligns.
62 *
63 * Revision 6.118 2005/08/31 20:33:08 coulouri
64 * From Mike Gertz:
65 * Added a prototype for the new BlastSingleQueryResultSize routine.
66 *
67 * Revision 6.117 2005/07/28 14:57:09 coulouri
68 * remove dead code
69 *
70 * Revision 6.116 2005/05/16 17:44:24 papadopo
71 * From Alejandro Schaffer: Change in prototype for RedoAlignmentCore to
72 * support more than two options for adjustParameters
73 *
74 * Revision 6.115 2005/05/02 16:03:14 coulouri
75 * refactor code to set db_chunk_size
76 *
77 * Revision 6.114 2004/08/23 17:03:52 papadopo
78 * From Michael Gertz: make CopyResultHspToHSP public
79 *
80 * Revision 6.113 2004/06/30 12:28:20 madden
81 * Removed some function prototypes and moved to blfmtutl.h
82 *
83 * Revision 6.112 2004/03/31 17:58:51 papadopo
84 * Mike Gertz' changes for length adjustment calculations
85 *
86 * Revision 6.111 2004/01/16 23:43:43 dondosha
87 * No more need for special argument for partial search: it is set in options
88 *
89 * Revision 6.110 2004/01/06 22:36:24 dondosha
90 * Added BLAST_HSPFree function that frees the edit block and the HSP
91 *
92 * Revision 6.109 2003/08/20 22:12:56 dondosha
93 * Added BlastPrintTabularResults with an extra boolean parameter for OOF alignments
94 *
95 * Revision 6.108 2003/08/04 16:19:16 dondosha
96 * Added effective HSP length (length adjustment) to other returns, so it can be reported in XML output
97 *
98 * Revision 6.107 2003/04/22 21:52:13 dondosha
99 * Added function OOFBlastHSPGetNumIdentical
100 *
101 * Revision 6.106 2003/03/24 19:42:14 madden
102 * Changes to support query concatenation for blastn and tblastn
103 *
104 * Revision 6.105 2002/11/04 22:47:02 dondosha
105 * Added prototype for BlastHSPGetNumIdentical
106 *
107 * Revision 6.104 2002/08/30 15:50:06 dondosha
108 * Several prototypes moved from mblast.h
109 *
110 * Revision 6.103 2002/08/01 20:45:35 dondosha
111 * Changed prototype of the BLASTPostSearchLogic function to make it
112 * more convenient
113 *
114 * Revision 6.102 2002/07/09 16:09:42 camacho
115 * Changed interface to BlastCreateVirtualOIDList
116 *
117 * Revision 6.101 2002/06/26 00:56:29 camacho
118 *
119 * 1. Fixed bug when searching a mixture of real and mask databases.
120 * 2. Clean up of code that calculates the number of sequences and database
121 * length.
122 *
123 * Revision 6.100 2002/06/25 19:46:07 camacho
124 * Added PROTO around function declaration
125 *
126 * Revision 6.99 2002/06/25 19:39:38 camacho
127 * Made BlastCreateVirtualOIDList public for use by neighboring software
128 *
129 * Revision 6.98 2002/06/21 21:43:01 camacho
130 * Removed obsolete BlastSeqIdList structure and functions
131 *
132 * Revision 6.97 2002/06/19 22:50:33 dondosha
133 * Added all queries information for tabular output with multiple queries
134 *
135 * Revision 6.96 2002/06/11 14:44:48 dondosha
136 * Return status from some functions instead of search block pointer
137 *
138 * Revision 6.95 2002/04/18 16:18:20 dondosha
139 * Added BlastPrintTabulatedResultsEx with extra argument to keep track of progress
140 *
141 * Revision 6.94 2002/04/15 20:42:05 jianye
142 * Added getFastaStyleTitle(BioseqPtr bsp)
143 *
144 * Revision 6.93 2002/03/26 16:46:41 madden
145 * Move calculation of effective lengths to BlastCalculateEffectiveLengths
146 *
147 * Revision 6.92 2002/03/06 18:34:32 dondosha
148 * Pass the filtered locations back from the megablast engine to use in formatting
149 *
150 * Revision 6.91 2002/03/05 17:58:57 dondosha
151 * Set same offsets for the traceback as for preliminary extension for megablast with non-greedy extensions
152 *
153 * Revision 6.90 2002/01/04 20:16:12 dondosha
154 * Correction for single strand blastx with OOF gapping
155 *
156 * Revision 6.89 2001/11/13 18:17:27 dondosha
157 * Added BlastNtWordUngappedExtend for use in Mega BLAST
158 *
159 * Revision 6.88 2001/10/12 15:22:49 dondosha
160 * Added prototype for BLASTPostSearchLogic
161 *
162 * Revision 6.87 2001/09/07 14:46:44 dondosha
163 * Roll back removal of threshold_first from functions and structures
164 *
165 * Revision 6.86 2001/09/06 20:24:34 dondosha
166 * Removed threshold_first
167 *
168 * Revision 6.85 2001/08/20 21:13:41 dondosha
169 * Added two declarations for clustering hits
170 *
171 * Revision 6.84 2001/07/31 16:42:40 dondosha
172 * Added function FastaCheckDna
173 *
174 * Revision 6.83 2001/06/15 16:38:46 dondosha
175 * Correction to previous changes
176 *
177 * Revision 6.82 2001/06/14 22:09:15 dondosha
178 * Rearranged code for gi lists and oid masks processing to get rid of duplication
179 *
180 * Revision 6.81 2001/06/13 21:42:19 dondosha
181 * Added prototypes for functions needed to deal with gi lists
182 *
183 * Revision 6.80 2001/06/07 19:30:03 dondosha
184 * Pass believe query argument to BlastPrintTabulatedResults
185 *
186 * Revision 6.79 2001/06/06 21:22:43 dondosha
187 * Added (query) Bioseq and SeqLoc arguments to function BlastPrintTabulatedResults
188 *
189 * Revision 6.78 2001/05/11 22:04:42 dondosha
190 * Added prototype for BlastPrintTabulatedResults function
191 *
192 * Revision 6.77 2001/03/19 18:54:50 madden
193 * Added BlastSeqLocFillDoubleIntEx, changed BlastSeqLocFillDoubleIntRev
194 *
195 * Revision 6.76 2001/02/08 20:38:30 dondosha
196 * Added prototype for BLASTHspToStdSeg
197 *
198 * Revision 6.75 2001/02/07 21:08:33 dondosha
199 * 1. Added prototypes of callback functions to handle results
200 * 2. Two private auxiliary functions made public
201 *
202 * Revision 6.74 2001/01/23 20:25:43 dondosha
203 * 1. Renamed BlastParceInputString to BlastParseInputString
204 * 2. Recognize a double quoted string as an option value in
205 * BlastParseInputString
206 *
207 * Revision 6.73 2000/12/19 18:39:50 madden
208 * Add function BlastSetUserErrorString and BlastDeleteUserErrorString
209 *
210 * Revision 6.72 2000/11/17 17:51:59 dondosha
211 * Removed is_megablast argument from BLASTSetUpSearchWithReadDbInternalEx since it is part of options
212 *
213 * Revision 6.71 2000/10/12 21:40:36 shavirin
214 * Added is_oofalign to definition of the function BLASTFilterOverlapRegions().
215 *
216 * Revision 6.70 2000/10/11 21:51:17 shavirin
217 * Added definition of the function BLASTFilterOverlapRegions()
218 *
219 * Revision 6.69 2000/08/31 16:29:11 shavirin
220 * Added definition of *QueryDNAP set of functions related to OOF.
221 *
222 * Revision 6.68 2000/08/28 21:51:53 shavirin
223 * Added definition of the function BlastOtherReturnsFree().
224 *
225 * Revision 6.67 2000/07/21 21:26:43 dondosha
226 * Added BLASTSetUpSearchWithReadDbInternalEx with Boolean argument is_megablast
227 *
228 * Revision 6.66 2000/07/08 20:44:11 vakatov
229 * Get all "#include" out of the 'extern "C" { }' scope; other cleanup...
230 *
231 * Revision 6.65 2000/06/13 20:54:39 shavirin
232 * Added return of EFF_SEARCH_SPACE in the function BlastOtherReturnsPrepare
233 *
234 * Revision 6.64 2000/04/10 19:57:20 dondosha
235 * Added prototype for BlastSeqLocFillDoubleIntRev
236 *
237 * Revision 6.63 2000/03/30 21:46:08 madden
238 * prototypes for BLASTResultHitlistFreeEx and BlastDeleteHeap
239 *
240 * Revision 6.62 2000/03/29 22:16:08 dondosha
241 * Added edit_script argument to BlastSaveCurrentHspGapped
242 *
243 * Revision 6.61 2000/03/08 20:51:21 madden
244 * Add prototype for BlastGetAllowedGis
245 *
246 * Revision 6.60 2000/03/06 23:29:09 kans
247 * added prototype for BlastConvertDNASeqLoc
248 *
249 * Revision 6.59 2000/02/17 19:00:45 shavirin
250 * Removed theCacheSize parameter from everywhere.
251 *
252 * Revision 6.58 2000/02/01 18:08:59 dondosha
253 * Added prototype for BlastSaveCurrentHspGapped
254 *
255 * Revision 6.57 2000/01/11 17:04:48 shavirin
256 * Added parameter theCacheSize into BlastSearchBlkNew and BlastSearchBlkNewExtra
257 *
258 * Revision 6.56 1999/12/22 21:07:19 shavirin
259 * Added definition of the function BlastNewFindWordsEx()
260 *
261 * Revision 6.55 1999/12/14 15:35:13 madden
262 * Added BlastPrintFilterWarning
263 *
264 * Revision 6.54 1999/11/29 12:58:59 madden
265 * Added prototypes for BlastNTGetGappedScore, BlastNTPreliminaryGappedScore and BlastNtSaveCurrentHsp
266 *
267 * Revision 6.53 1999/11/02 15:24:03 madden
268 * Add BlastParseInputString and BlastGetLetterIndex
269 *
270 * Revision 6.52 1999/10/05 18:16:07 shavirin
271 * Functions tick_proc and get_db_chunk were renamed and become public.
272 *
273 * Revision 6.51 1999/09/22 20:59:56 egorov
274 * Add mask DB stuff
275 *
276 * Revision 6.50 1999/08/20 19:48:37 madden
277 * Changed call to BlastSearchBlkNew(Extra)
278 *
279 * Revision 6.49 1999/05/27 17:33:06 madden
280 * Fixed Int2 (should have been Int4) problem
281 *
282 * Revision 6.48 1999/04/15 13:25:07 madden
283 * RealBlastGetGappedAlignmentTraceback returns Int4
284 *
285 * Revision 6.47 1999/04/01 21:42:47 madden
286 * Fix memory leaks when gi list is used
287 *
288 * Revision 6.46 1999/03/17 16:49:10 madden
289 * Removed comment within comment
290 *
291 * Revision 6.45 1999/03/04 14:18:10 egorov
292 * Do correct filter masking when query is seqloc
293 * The only BlastMaskTheResidues() function is changed:
294 *
295 * Revision 6.44 1999/02/11 13:53:31 madden
296 * Added combine Boolean to HitRangeToSeqLoc
297 *
298 * Revision 6.43 1999/01/28 17:20:17 madden
299 * Added BlastGetNonSumStatsEvalue prototype
300 *
301 * Revision 6.42 1999/01/28 16:05:21 madden
302 * HspArrayPurge change
303 *
304 * Revision 6.41 1999/01/26 17:57:14 madden
305 * ContextToFrame prototype added
306 *
307 * Revision 6.40 1999/01/19 13:26:47 madden
308 * Change to HspArrayPurge
309 *
310 * Revision 6.39 1999/01/08 22:08:43 madden
311 * BlastScaleMatrix returns factor as FloatHi
312 *
313 * Revision 6.38 1998/12/18 16:19:58 madden
314 * Make BLASTSetUpSearchWithReadDbInternal public, add BlastSearchBlkNewExtra
315 *
316 * Revision 6.37 1998/09/17 19:53:03 madden
317 * Added fillCandLambda
318 *
319 * Revision 6.36 1998/09/16 18:59:55 madden
320 * Added subset Boolean
321 *
322 * Revision 6.35 1998/09/14 15:11:16 egorov
323 * Add support for Int8 length databases; remove unused variables
324 *
325 * Revision 6.34 1998/09/10 22:36:10 madden
326 * Added convertSeqAlignListToValNodeList and convertValNodeListToSeqAlignList
327 *
328 * Revision 6.33 1998/09/09 21:18:10 madden
329 * Added PrintKAParametersExtra
330 *
331 * Revision 6.32 1998/09/04 14:45:43 madden
332 * Moved code from blast.c blastool.c
333 *
334 * Revision 6.31 1998/07/21 20:58:07 madden
335 * Changes to allow masking at hash only
336 *
337 * Revision 6.30 1998/06/12 16:08:50 madden
338 * BlastHitRange stuff
339 *
340 * Revision 6.29 1998/06/04 16:23:04 madden
341 * BioseqSeg to MyBioseqSeg
342 *
343 * Revision 6.28 1998/05/17 16:28:44 madden
344 * Allow changes to filter options and cc filtering.
345 *
346 * Revision 6.27 1998/05/05 14:05:36 madden
347 * Added functions BlastStartAwakeThread and BlastStopAwakeThread
348 *
349 * Revision 6.26 1998/04/24 19:28:48 madden
350 * Added BlastScaleMatrix (and other rescaling code moved from posit.c)
351 *
352 * Revision 6.25 1998/04/15 20:23:49 madden
353 * offset arg removed from BlastMaskTheResidues
354 *
355 * Revision 6.24 1998/03/26 14:21:35 madden
356 * Added GetScoreSetFromBlastResultHsp prototype
357 *
358 * Revision 6.23 1998/03/25 22:27:27 madden
359 * Remove GetScoreSetFromBlastResultHsp prototype
360 *
361 * Revision 6.22 1998/03/24 15:38:24 madden
362 * Use BlastDoubleInt4Ptr to keep track of gis and ordinal_ids
363 *
364 * Revision 6.21 1998/03/18 14:14:16 madden
365 * Support random access by gi list
366 *
367 * Revision 6.20 1998/03/16 14:02:13 madden
368 * Changed call to BlastSeqIdListDestruct
369 *
370 * Revision 6.19 1998/02/27 16:52:07 madden
371 * Added BlastGetSequenceFromBioseq
372 *
373 * Revision 6.18 1998/02/27 14:34:51 madden
374 * Added error message prototypes
375 *
376 * Revision 6.17 1998/02/26 22:34:25 madden
377 * Changes for 16 bit windows
378 *
379 * Revision 6.16 1998/02/26 19:11:38 madden
380 * Added prototypes for BlastNtFindWords BlastPopulateAllWordArrays
381 *
382 * Revision 6.15 1998/02/19 17:17:12 madden
383 * Use of Int4 rather than Int2 when pruning SeqAlign
384 *
385 * Revision 6.14 1998/02/11 17:18:17 madden
386 * Made BlastGetGappedAlignmentTraceback functions to BlastGetGapAlgnTbck (shorter than 32 chars)
387 *
388 * Revision 6.13 1998/01/05 16:46:54 madden
389 * One or both strands can be searched, as opposed to only both, changes to number of contexts
390 *
391 * Revision 6.12 1997/12/31 17:53:11 madden
392 * Removed BLAST_WordFinderNew and BLAST_WordFinderDestruct prototypes
393 *
394 * Revision 6.11 1997/12/23 18:12:38 madden
395 * Changes for range-dependent blast
396 *
397 * Revision 6.10 1997/12/12 20:38:36 madden
398 * ContextToFrame lost last parameter
399 *
400 * Revision 6.9 1997/11/28 18:19:37 madden
401 * Changes to TxDfDbInfoNew
402 *
403 * Revision 6.8 1997/11/07 00:48:29 madden
404 * Added TXMATRIX defintion
405 *
406 * Revision 6.7 1997/10/24 20:46:55 madden
407 * Removed BLASTResultsStructNew prototype
408 *
409 * Revision 6.6 1997/10/24 19:09:19 madden
410 * Removed BlastSetReadDB and BlastGetReadDB_ID, changed to ReadDBGetDb and ReadDBGetDbId
411 *
412 * Revision 6.5 1997/10/03 21:27:34 madden
413 * Added BlastGetTypes
414 *
415 * Revision 6.4 1997/10/02 17:29:27 madden
416 * Added PrintDbInformationBasic
417 *
418 * Revision 6.3 1997/09/18 22:22:09 madden
419 * Added prune functions
420 *
421 * Revision 6.2 1997/09/16 16:31:33 madden
422 * More changes for multiple db runs
423 *
424 * Revision 6.1 1997/09/11 18:49:28 madden
425 * Changes to enable searches against multiple databases.
426 *
427 * Revision 6.0 1997/08/25 18:52:44 madden
428 * Revision changed to 6.0
429 *
430 * Revision 1.48 1997/08/22 18:37:49 madden
431 * Added function BlastOtherReturnsPrepare
432 *
433 * Revision 1.47 1997/07/24 20:34:50 madden
434 * define change for masking
435 *
436 * Revision 1.46 1997/07/18 14:26:42 madden
437 * call to AcknowledgeBlastQuery changed
438 *
439 * Revision 1.45 1997/07/17 20:27:11 madden
440 * Changed defines to indicate frame
441 *
442 * Revision 1.44 1997/07/16 20:34:48 madden
443 * Added function BlastConvertProteinSeqLoc
444 *
445 * Revision 1.43 1997/07/15 20:36:11 madden
446 * Added BioseqSeg and SeqLocSeg
447 *
448 * Revision 1.42 1997/07/14 15:32:25 madden
449 * prototype for BlastConstructErrorMessage
450 *
451 * Revision 1.41 1997/06/27 14:30:42 madden
452 * prototypes for BlastAddSeqIdToList and BlastSeqIdListDestruct
453 *
454 * Revision 1.40 1997/06/06 21:29:36 madden
455 * Added Boolean html to AcknowledgeBlastQuery and PrintDbInformation
456 *
457 * Revision 1.39 1997/06/06 19:50:58 madden
458 * Added BlastMakeFakeBioseq and BlastDeleteFakeBioseq
459 *
460 * Revision 1.38 1997/05/27 20:20:08 madden
461 * Added function BlastMaskTheResidues
462 *
463 * Revision 1.37 1997/04/23 21:56:07 madden
464 * Changes in BlastGetGappedAlignmentTraceback for in-frame gapping tblastn.
465 *
466 * Revision 1.36 1997/04/11 21:18:45 madden
467 * Added GetSequenceWithDenseSeg.
468 *
469 * Revision 1.35 1997/04/07 18:17:09 madden
470 * Added prototype for BioseqBlastEngineCore
471 *
472 * Revision 1.34 1997/03/06 21:47:10 madden
473 * Added FormatBlastParameters.
474 *
475 * Revision 1.33 1997/03/05 14:29:46 madden
476 * Added prototype for BlastSaveCurrentHsp.
477 *
478 * Revision 1.32 1997/03/04 21:34:59 madden
479 * Added in HspArrayPurge.
480 *
481 * Revision 1.31 1997/03/04 20:36:51 madden
482 * *** empty log message ***
483 *
484 * Revision 1.30 1997/03/03 22:39:45 madden
485 * Moved code from blast.c to blastutl.c.
486 *
487 * Revision 1.29 1997/03/03 21:48:52 madden
488 * *** empty log message ***
489 *
490 * Revision 1.28 1997/03/01 18:25:33 madden
491 * reverse flag added to BlastGetGappedAlignmentTraceback functions.
492 *
493 * Revision 1.27 1997/02/26 23:39:54 madden
494 * Added Txdfline stuff.
495 *
496 * Revision 1.26 1997/02/12 22:19:08 madden
497 * Added prototype for BlastNewFindWords.
498 *
499 * Revision 1.25 1997/02/11 19:30:54 madden
500 * Added prototypes for BlastGetGappedScoreWithReaddb and BlastGetGapped
501 *
502 * Revision 1.24 1997/02/10 20:03:58 madden
503 * Added specific to BlastAllWordNew.
504 *
505 * Revision 1.23 1997/02/07 22:43:03 madden
506 * Moved BLAST_WordFinderNew and Destruct from blast.c to blastutl.c, made
507 * non-static.
508 *
509 * Revision 1.22 1997/02/07 22:32:40 madden
510 * Changed prototypes for BlastGetSubjectId and GetSeqAlignForResultHitList.
511 *
512 * Revision 1.21 1997/01/30 21:41:17 madden
513 * Prototype for FormatBlastParameters added.
514 *
515 * Revision 1.20 1997/01/11 18:58:29 madden
516 * Removed defunct PerformBlastSearch... functions.
517 *
518 * Revision 1.19 1997/01/07 20:40:29 madden
519 * Added reverse Boolean to GetSeqAlignForResultHitList.
520 *
521 * Revision 1.18 1997/01/06 22:41:46 madden
522 * Added prototype BlastGetSubjectId.
523 *
524 * Revision 1.17 1996/12/23 22:02:05 madden
525 * Changes to allow two sequences to be compared.
526 *
527 * Revision 1.16 1996/12/20 15:31:39 madden
528 * Removed prototype for Perform2PassBlastSearchWithReadDb.
529 *
530 * Revision 1.15 1996/12/20 14:22:48 madden
531 * Added discontinuous Boolean to GetSeqAlignForResultHitList.
532 *
533 * Revision 1.14 1996/12/12 16:46:25 madden
534 * Changed CONTAINED_IN_HSP.
535 *
536 * Revision 1.13 1996/12/08 15:19:59 madden
537 * Added defines and prototypes for gapped alignments.
538 *
539 * Revision 1.12 1996/11/14 16:21:55 madden
540 * changed CharPtr to Uint1Ptr in GetTranslation.
541 *
542 * Revision 1.11 1996/11/13 22:35:18 madden
543 * Added prototype for GetTranslation.
544 *
545 * Revision 1.10 1996/11/05 23:19:08 madden
546 * Changed BlastTranslateUnambiguousSequence prototype.
547 *
548 * Revision 1.9 1996/09/26 20:18:43 madden
549 * Changed prototype for GetSeqAlignForResultHitList
550 *
551 * Revision 1.8 1996/09/12 21:12:23 madden
552 * Removed prototypes for BLAST_WordFinderNew and BLAST_WordFinderDestruct.
553 *
554 * Revision 1.7 1996/09/11 22:22:12 madden
555 * Added prototpe for BLASTPerformSearchWithReadDb.
556 *
557 * Revision 1.6 1996/08/26 17:24:19 shavirin
558 * Added definition of function Win32TimeFill()
559 *
560 * Revision 1.5 1996/08/23 16:30:11 shavirin
561 * Fixed NT compiler warnings type mismatch
562 *
563 * Revision 1.4 1996/08/15 18:58:49 madden
564 * Changed context from Int2 to Int1
565 *
566 * Revision 1.3 1996/08/14 15:20:37 madden
567 * Added prototype for BlastTranslateUnambiguousSequence.
568 *
569 * Revision 1.2 1996/08/07 14:24:15 madden
570 * Removed functions that depend on BLAST0 structures.
571 *
572 * Revision 1.1 1996/08/05 19:46:53 madden
573 * Initial revision
574 *
575 * Revision 1.32 1996/07/31 13:10:53 madden
576 * Added BlastSearchBlkDuplicate prototype.
577 *
578 * Revision 1.31 1996/07/25 20:47:49 madden
579 * Change to arguments of Perform2PassBlastSearchWithReadDb.
580 *
581 * Revision 1.30 1996/07/18 22:01:35 madden
582 * Changed call to BlastFindWords
583 *
584 * Revision 1.29 1996/06/21 15:15:21 madden
585 * Removed unused prototype
586 *
587 * Revision 1.28 1996/06/20 16:15:57 madden
588 * Replaced int's with Int4's.
589 *
590 * Revision 1.27 1996/06/17 21:07:32 madden
591 * Added prototype for GetSeqAlignForResultHitList and some LIBCALL's.
592 *
593 * Revision 1.26 1996/06/17 19:02:35 madden
594 * Removed unused prototypes.
595 *
596 * Revision 1.25 1996/06/13 21:16:33 madden
597 * removed BLAST_ExtendWordNew prototype.
598 *
599 * Revision 1.24 1996/06/11 17:58:31 madden
600 * removed prototype for BLAST_ExtendWordDiagResize.
601 *
602 * Revision 1.23 1996/06/06 14:09:22 madden
603 * Removed blast_set_parameters prototype (it became static).
604 *
605 * Revision 1.22 1996/06/06 13:54:51 madden
606 * Removed defunct function BLAST_ParameterBlkFill
607 *
608 * Revision 1.21 1996/06/04 15:33:55 madden
609 * Changed BlastHitList function prototypes.
610 *
611 * Revision 1.20 1996/05/29 12:44:40 madden
612 * Added prototype for BlastTimeFillStructure.
613 *
614 * Revision 1.19 1996/05/16 19:51:09 madden
615 * Added documentation block.
616 *
617 * Revision 1.18 1996/05/14 16:15:59 madden
618 * Added protoytpe for BLASTResultsStruc functions.
619 *
620 * Revision 1.17 1996/05/01 14:59:41 madden
621 * *** empty log message ***
622 *
623 * Revision 1.16 1996/04/03 19:14:08 madden
624 * added functions PerformBlastSearchWithReadDb and Perform2PassBlastSearchWithReadDb.
625 *
626 * Revision 1.15 1996/03/29 21:28:20 madden
627 * *** empty log message ***
628 *
629 * Revision 1.14 1996/03/29 14:09:37 madden
630 * prototype for GetSeqAlignForSparseHitList added.
631 *
632 * Revision 1.13 1996/02/28 21:38:36 madden
633 * Changed prototypes for discontiguous words.
634 *
635 * Revision 1.12 1996/02/05 18:46:57 madden
636 * *** empty log message ***
637 *
638 * Revision 1.11 1996/02/02 19:25:32 madden
639 * Changed BlastFindWords prototype.
640 *
641 * Revision 1.10 1996/01/31 22:28:46 madden
642 * Added prototype for BlastReapHitlistByEvalue.
643 *
644 * Revision 1.9 1996/01/17 13:47:13 madden
645 * *** empty log message ***
646 *
647 * Revision 1.8 1996/01/11 15:17:58 madden
648 * Added prototype for do_MPblast_search.
649 *
650 * Revision 1.7 1996/01/10 17:51:09 madden
651 * Added SortHitListByPvalue.
652 *
653 * Revision 1.6 1996/01/06 18:58:45 madden
654 * Added prototype for BlastLinkHsps.
655 *
656 * Revision 1.5 1995/12/30 18:39:27 madden
657 * Added prototype for GetBLAST0KABlk.
658 *
659 * Revision 1.4 1995/12/28 21:26:30 madden
660 * Added in prototype for do_blast_search.
661 *
662 * Revision 1.3 1995/12/26 23:05:29 madden
663 * Added prototype for blast_set_parameters.
664 *
665 * Revision 1.2 1995/12/21 23:11:11 madden
666 * BLAST_Score prototypes moved to blastkar.h.
667 *
668 * Revision 1.1 1995/12/19 22:31:17 madden
669 * Initial revision
670 *
671 * Revision 1.1 1995/12/08 15:48:23 madden
672 * Initial revision
673 *
674 * */
675 #ifndef __BLASTPRI__
676 #define __BLASTPRI__
677
678 #include <blast.h>
679 #include <blastkar.h>
680 #include <posit.h>
681 #include <seed.h>
682 #include <ffprint.h>
683
684
685 #ifdef __cplusplus
686 extern "C" {
687 #endif
688
689 /*
690 Defines for the return values in "other_returns".
691 */
692
693 #define SEQLOC_MASKING_NOTSET 0
694 #define SEQLOC_MASKING_PLUS1 1
695 #define SEQLOC_MASKING_PLUS2 2
696 #define SEQLOC_MASKING_PLUS3 3
697 #define SEQLOC_MASKING_MINUS1 4
698 #define SEQLOC_MASKING_MINUS2 5
699 #define SEQLOC_MASKING_MINUS3 6
700 #define TXDBINFO 10
701 #define TXKABLK_NOGAP 12
702 #define TXKABLK_GAP 13
703 #define TXPARAMETERS 14
704 #define TXMATRIX 15
705 #define EFF_SEARCH_SPACE 16
706 #define EFF_HSP_LENGTH 17
707
708 /*
709 Print a warning about the filtering used.
710 */
711 Boolean LIBCALL BlastPrintFilterWarning PROTO((CharPtr filter_string, Int4 line_length, FILE *outfp, Boolean html));
712
713
714 /* How many interations should be done in the bisection. */
715 #define BLAST_SAVE_ITER_MAX 20
716
717
718 /*
719 TRUE if c is between a and b; f between d and f. Determines if the
720 coordinates are already in an HSP that has been evaluated.
721 */
722 #define CONTAINED_IN_HSP(a,b,c,d,e,f) (((a <= c && b >= c) && (d <= f && e >= f)) ? TRUE : FALSE)
723
724 Int2 LIBCALL BlastFindWords PROTO((BlastSearchBlkPtr search, Int4 start, Int4 len, BLAST_Score threshold, Int1 context_index));
725
726
727 Int2 LIBCALL BlastNewFindWords PROTO((BlastSearchBlkPtr search, Int4 start, Int4 len, BLAST_Score threshold, Int1 context_index));
728
729 Int2 BlastNewFindWordsEx(LookupTablePtr lookup, BLAST_ScorePtr PNTR posMatrix, Int4 start, Int4 len, BlastAllWordPtr all_words, BLAST_Score threshold, Int4 wordsize, Int1 context_index);
730
731 Int2 LIBCALL BlastLinkHsps PROTO ((BlastSearchBlkPtr search));
732
733 Int2 LIBCALL BlastReapHitlistByEvalue PROTO ((BlastSearchBlkPtr search));
734
735 Int4 LIBCALL BlastSaveCurrentHitlist PROTO((BlastSearchBlkPtr search));
736
737 Int2 LIBCALL BLASTPerformSearchWithReadDb PROTO((BlastSearchBlkPtr search, Int4 sequence_number));
738
739 Int2 LIBCALL BLASTPerformSearch PROTO((BlastSearchBlkPtr search, Int4 subject_length, Uint1Ptr subject_seq));
740
741 BLASTResultsStructPtr LIBCALL BLASTResultsStructDelete PROTO((BLASTResultsStructPtr result_struct));
742
743 SeqAlignPtr LIBCALL GetSeqAlignForResultHitList PROTO((BlastSearchBlkPtr search, Boolean getdensediag, Boolean ordinal_number, Boolean discontinuous, Boolean reverse, Boolean get_redundant_seq));
744
745 Int2 LIBCALL BlastTimeFillStructure PROTO((BlastTimeKeeperPtr btkp));
746
747 BlastSearchBlkPtr LIBCALL BlastSearchBlkDuplicate PROTO((BlastSearchBlkPtr search));
748
749 BlastSearchBlkPtr LIBCALL BlastSearchBlkNew PROTO((Int2 wordsize, Int4 qlen, CharPtr dbname, Boolean multiple_hits, BLAST_Score threshold_first, BLAST_Score threshold_second, Int4 result_size, CharPtr prog_name, BlastAllWordPtr all_words, Int2 first_context, Int2 last_context, Int4 window_size));
750
751 /* Allocates a search Block, except it only attaches to the rdfp, does not allocate it. */
752 BlastSearchBlkPtr LIBCALL BlastSearchBlkNewExtra PROTO((Int2 wordsize, Int4 qlen, CharPtr dbname, Boolean multiple_hits, BLAST_Score threshold_first, BLAST_Score threshold_second, Int4 result_size, CharPtr prog_name, BlastAllWordPtr all_words, Int2 first_context, Int2 last_context, ReadDBFILEPtr rdfp, Int4 window_size));
753
754 BlastSearchBlkPtr LIBCALL BlastSearchBlkDestruct PROTO((BlastSearchBlkPtr search));
755
756 Int4 BlastSingleQueryResultSize PROTO((BLAST_OptionsBlkPtr options));
757
758 BlastSearchBlkPtr BLASTSetUpSearchWithReadDbInternal PROTO((SeqLocPtr query_slp, BioseqPtr query_bsp, CharPtr prog_name, Int4 qlen, CharPtr dbname, BLAST_OptionsBlkPtr options, int (LIBCALLBACK *callback)PROTO((Int4 done, Int4 positives)), SeqIdPtr seqid_list, BlastDoubleInt4Ptr gi_list, Int4 gi_list_total, ReadDBFILEPtr rdfp));
759
760 BlastSearchBlkPtr BLASTSetUpSearchWithReadDbInternalMult PROTO((SeqLocPtr query_slp, BioseqPtr query_bsp, CharPtr prog_name, Int4 qlen, CharPtr dbname, BLAST_OptionsBlkPtr options, int (LIBCALLBACK *callback)PROTO((Int4 done, Int4 positives)), SeqIdPtr seqid_list, BlastDoubleInt4Ptr gi_list, Int4 gi_list_total, ReadDBFILEPtr rdfp, QueriesPtr mult_queries));
761 /* --KM added mult_queries param */
762
763 BlastSearchBlkPtr LIBCALL
764 BLASTSetUpSearchWithReadDbInternalEx PROTO((SeqLocPtr query_slp, BioseqPtr query_bsp,
765 CharPtr prog_name, Int4 qlen, CharPtr
766 dbname, BLAST_OptionsBlkPtr options, int
767 (LIBCALLBACK *callback)PROTO((Int4 done,
768 Int4
769 positives)),
770 SeqIdPtr seqid_list, BlastDoubleInt4Ptr
771 gi_list, Int4 gi_list_total, ReadDBFILEPtr
772 rdfp));
773
774 Int4 LIBCALL BlastTranslateUnambiguousSequence PROTO((BlastSearchBlkPtr search, Int4 length, Uint1Ptr prot_seq, Uint1Ptr nt_seq, Int2 frame));
775
776 Uint1Ptr LIBCALL GetTranslation PROTO((Uint1Ptr query_seq, Int4 nt_length, Int2 frame, Int4Ptr length, CharPtr genetic_code));
777
778 SeqAlignPtr LIBCALL BlastGetGapAlgnTbck PROTO((BlastSearchBlkPtr search, Int4 hit_number, Boolean reverse, Boolean ordinal_number, Uint1Ptr subject, Int4 subject_length, Uint1Ptr rev_subject, Int4 rev_subject_length));
779
780 SeqAlignPtr LIBCALL BlastGetGapAlgnTbckWithReaddb PROTO((BlastSearchBlkPtr search, Int4 hit_number, Boolean ordinal_number));
781
782 Int2 LIBCALL BlastGetGappedScoreWithReaddb PROTO((BlastSearchBlkPtr search, Int4 sequence_number));
783
784 Int2 LIBCALL BlastGetGappedScore PROTO((BlastSearchBlkPtr search, Int4 subject_length, Uint1Ptr subject, Int2 frame));
785
786 Int2 LIBCALL BlastNTGetGappedScore PROTO((BlastSearchBlkPtr search, Int4 subject_length, Uint1Ptr subject));
787
788
789 SeqIdPtr LIBCALL BlastGetSubjectId PROTO((BlastSearchBlkPtr search, Int4 hit_number, Boolean ordinal_number, ValNodePtr *vnpp));
790
791
792
793 BlastAllWordPtr LIBCALL BlastAllWordNew PROTO((Int4 num_of_cols, Int4 wordsize, Boolean rows_allocated, Boolean specific));
794
795 BlastAllWordPtr LIBCALL BlastAllWordDestruct PROTO((BlastAllWordPtr all_words));
796
797
798 BLAST_HitListPtr LIBCALL BlastHitListDestruct PROTO((BLAST_HitListPtr hitlist));
799
800 BLAST_HitListPtr LIBCALL BlastHitListNew PROTO((BlastSearchBlkPtr search));
801
802
803
804 void LIBCALL BlastExtendWordExit PROTO((BlastSearchBlkPtr search));
805
806
807
808 Boolean LIBCALL FilterWithSeg PROTO((Uint1Ptr sequence, Int4 length, Uint1 alphabet));
809
810 BLASTResultHitlistPtr LIBCALL BLASTResultHitlistFree PROTO((BLASTResultHitlistPtr result));
811 BLASTResultHitlistPtr LIBCALL BLASTResultHitlistFreeEx PROTO((BlastSearchBlkPtr search, BLASTResultHitlistPtr result));
812
813 BLASTResultHitlistPtr LIBCALL BLASTResultHitlistNew PROTO((Int4 hspcnt));
814 Boolean LIBCALL
815 CopyResultHspToHSP PROTO((BLASTResultHspPtr result_hsp, BLAST_HSPPtr hsp));
816
817 Nlm_FloatHi LIBCALL GetDbSubjRatio PROTO((BlastSearchBlkPtr search, Int4 subject_length));
818
819 Int2 LIBCALL BlastPreliminaryGappedScore PROTO((BlastSearchBlkPtr search, Uint1Ptr subject, Int4 subject_length, Int2 frame));
820
821 Int2 LIBCALL BlastNTPreliminaryGappedScore PROTO((BlastSearchBlkPtr search, Uint1Ptr subject, Int4 subject_length));
822
823
824 Int2 LIBCALL BlastHitListPurge PROTO((BLAST_HitListPtr hitlist));
825
826 Int4 LIBCALL HspArrayPurge PROTO((BLAST_HSPPtr PNTR hsp_array, Int4 hspcnt, Boolean clear_num));
827
828
829 void BlastSaveCurrentHsp PROTO((BlastSearchBlkPtr search, BLAST_Score score, Int4 q_offset, Int4 s_offset, Int4 length, Int2 context));
830
831 void BlastSaveCurrentHspGapped PROTO((BlastSearchBlkPtr search, BLAST_Score
832 score, Int4 q_offset, Int4 s_offset, Int4
833 q_length, Int4 s_length, Int2 context,
834 GapXEditScriptPtr esp));
835 void BlastNtSaveCurrentHspGapped PROTO((BlastSearchBlkPtr search, BLAST_Score
836 score, Int4 q_offset, Int4 s_offset, Int4
837 q_length, Int4 s_length,
838 Int4 q_gapped_start, Int4 s_gapped_start,
839 Int2 context, GapXEditScriptPtr esp));
840
841 void BlastNtSaveCurrentHsp PROTO((BlastSearchBlkPtr search, BLAST_Score score, Int4 q_offset, Int4 s_offset, Int4 length, Int2 context, Int4 query_gap_start, Int4 subject_gap_start));
842
843 CharPtr FormatBlastParameters PROTO((BlastSearchBlkPtr search));
844
845
846 SeqAlignPtr LIBCALL BioseqBlastEngineCore PROTO((BlastSearchBlkPtr search, BLAST_OptionsBlkPtr options, Int4Ptr *pos_matrix));
847
848 Uint1Ptr GetSequenceWithDenseSeg PROTO((DenseSegPtr dsp, Boolean query, Int4Ptr start, Int4Ptr length));
849
850 void BlastMaskTheResidues PROTO((Uint1Ptr buffer, Int4 max_length, Uint1 mask_residue, SeqLocPtr mask_slp, Boolean reverse, Int4 offset));
851
852 BioseqPtr LIBCALL BlastMakeFakeBioseq PROTO((BioseqPtr bsp, CharPtr name));
853
854 BioseqPtr LIBCALL BlastDeleteFakeBioseq PROTO((BioseqPtr fake_bsp));
855
856 Boolean BlastAddSeqIdToList PROTO((BlastSearchBlkPtr search, Int4 ordinal_id, SeqIdPtr sip));
857
858 ValNodePtr BlastConstructErrorMessage PROTO((CharPtr function, CharPtr message, Uint1 level, ValNodePtr PNTR vnpp));
859
860 BlastErrorMsgPtr BlastDestroyErrorMessage PROTO((BlastErrorMsgPtr error_msg));
861
862 ValNodePtr BlastErrorChainDestroy PROTO((ValNodePtr vnp));
863
864 ValNodePtr LIBCALL BlastOtherReturnsPrepare PROTO((BlastSearchBlkPtr search));
865 void LIBCALL BlastOtherReturnsFree PROTO((ValNodePtr other_returns));
866
867 SeqLocPtr BlastBioseqFilter PROTO((BioseqPtr bsp, CharPtr instructions));
868
869 SeqLocPtr BlastSeqLocFilter PROTO((SeqLocPtr slp, CharPtr instructions));
870
871 SeqLocPtr BlastBioseqFilterEx PROTO((BioseqPtr bsp, CharPtr instructions, BoolPtr mask_at_hash));
872
873 SeqLocPtr BlastSeqLocFilterEx PROTO((SeqLocPtr slp, CharPtr instructions, BoolPtr mask_at_hash));
874
875 SeqLocPtr MyBioseqSeg PROTO((BioseqPtr bsp_unfilter));
876
877 SeqLocPtr SeqLocSeg PROTO((SeqLocPtr slp));
878
879 Boolean BlastConvertProteinSeqLoc PROTO((SeqLocPtr slp, Int2 frame, Int4 full_length));
880
881 Boolean BlastConvertDNASeqLoc (SeqLocPtr slp, Int2 frame, Int4 full_length);
882
883 Uint1 LIBCALL BlastGetTypes PROTO((CharPtr blast_program, Boolean PNTR query_is_na, Boolean PNTR db_is_na));
884
885 BLASTResultsStructPtr BLASTResultsStructNew PROTO((Int4 results_size, Int4 max_pieces, Int4 range_max));
886
887 Int2 BlastNtFindWords PROTO((BlastSearchBlkPtr search, Int4 start, Int4 len, Int1 context_index));
888
889 BlastAllWordPtr BlastPopulateAllWordArrays PROTO((Int4 wordsize, Int4 alphabet_size));
890
891 Uint1Ptr BlastGetSequenceFromBioseq PROTO((BioseqPtr bsp, Int4Ptr length));
892
893 /* Retrieve the virtual oidlist from rdfp_chain */
894 OIDListPtr LIBCALL BlastGetVirtualOIDList PROTO((ReadDBFILEPtr rdfp_chain));
895
896 Boolean BlastAdjustDbNumbers PROTO((ReadDBFILEPtr rdfp_list, Int8Ptr db_length, Int4Ptr db_number, SeqIdPtr seqid_list, BlastDoubleInt4Ptr gi_list, OIDListPtr oidlist, BlastDoubleInt4Ptr PNTR gi_list_pointers, Int4 gi_list_total));
897
898 BlastGiListPtr BlastGiListDestruct PROTO((BlastGiListPtr blast_gi_list, Boolean contents));
899 BlastGiListPtr BlastGiListNew PROTO((BlastDoubleInt4Ptr gi_list, Int4 total));
900
901
902 ScorePtr LIBCALL GetScoreSetFromBlastResultHsp PROTO((BLASTResultHspPtr hsp, SeqIdPtr gi_list));
903
904 Nlm_FloatHi BlastScaleMatrix PROTO((BlastMatrixRescalePtr matrix_rescale, Boolean position_dependent));
905
906 BlastMatrixRescalePtr BlastMatrixRescaleNew PROTO((Int4 alphabet_size, Int4 query_length, Uint1Ptr query, Nlm_FloatHiPtr standardProb, Int4Ptr *matrix, Int4Ptr *private_matrix, BLAST_KarlinBlkPtr *kbp_std, BLAST_KarlinBlkPtr *kbp_psi, BLAST_KarlinBlkPtr *kbp_gap_std, BLAST_KarlinBlkPtr *kbp_gap_psi, Nlm_FloatHi lambda_ideal, Nlm_FloatHi K_ideal));
907
908 BlastMatrixRescalePtr BlastMatrixRescaleDestruct PROTO((BlastMatrixRescalePtr matrix_rescale));
909
910 /*
911 starts the awake thread using static variables in this file.
912 */
913
914 void BlastStartAwakeThread PROTO((BlastThrInfoPtr thr_info));
915
916 /* Change the awake flag. This thread will die in one second. */
917 void BlastStopAwakeThread PROTO((BlastThrInfoPtr thr_info));
918
919 SeqLocPtr HitRangeToSeqLoc PROTO((BlastHitRangePtr bhrp, Int4 link_value, Boolean combine));
920
921
922 ValNodePtr BlastSeqLocFillDoubleInt PROTO((SeqLocPtr mask_slp, Int4 max_length, Boolean reverse));
923 ValNodePtr BlastSeqLocFillDoubleIntEx PROTO((SeqLocPtr mask_slp, Int4 full_query_length, Int4 max_length, Boolean reverse, Int4 offset));
924 ValNodePtr BlastSeqLocFillDoubleIntRev PROTO((ValNodePtr location, SeqLocPtr mask_slp, Int4 full_query_length, Int4 max_length, Int4 offset));
925
926
927 Int2 BlastInsertList2Heap PROTO((BlastSearchBlkPtr search, BLASTResultHitlistPtr result_hitlist));
928
929 void BlastFreeHeap PROTO((BlastSearchBlkPtr search, BLASTResultHitlistPtr result_hitlist));
930
931 ValNodePtr convertSeqAlignListToValNodeList(SeqAlignPtr seqAlignList, SeqAlignPtr * lastSeqAligns, Int4 numLastSeqAligns);
932
933 SeqAlignPtr convertValNodeListToSeqAlignList(ValNodePtr seqAlignDoubleList, SeqAlignPtr ** lastSeqAligns, Int4 * numLastSeqAligns);
934
935 void LIBCALL fillCandLambda(seedSearchItems * seedSearch, Char *matrixName, BLAST_OptionsBlkPtr options);
936
937 Int4 RealBlastGetGappedAlignmentTraceback(BlastSearchBlkPtr search, Uint1Ptr subject, Int4 subject_length, Uint1Ptr rev_subject, Int4 rev_subject_length, SeqIdPtr subject_id, BLAST_HSPPtr *hsp_array, Int4 hspcnt, SeqAlignPtr *head, BlastHitRangePtr bhrp, Int4 min_score_to_keep, Boolean reverse, Int4 ordinal_id, Boolean do_traceback);
938
939 Int2 ContextToFrame PROTO((BlastSearchBlkPtr search, Int2 context_number));
940
941 int LIBCALLBACK score_compare_hsps PROTO((VoidPtr v1, VoidPtr v2));
942
943 Int2 LIBCALL BlastGetNonSumStatsEvalue PROTO((BlastSearchBlkPtr search));
944
945 Boolean BlastGetDbChunk(ReadDBFILEPtr rdfp, Int4Ptr start, Int4Ptr stop,
946 Int4Ptr id_list, Int4Ptr id_list_number,
947 BlastThrInfoPtr thr_info);
948 void BlastTickProc(Int4 sequence_number, BlastThrInfoPtr thr_info);
949
950 Boolean BlastParseInputString(CharPtr string, CharPtr letters, CharPtr PNTR *values_in, CharPtr PNTR ErrorMessage);
951
952 Int4 BlastGetLetterIndex(CharPtr letters, Char ch);
953
954 SeqIdPtr BlastGetAllowedGis PROTO((BlastSearchBlkPtr search, Int4 ordinal_id, SeqIdPtr PNTR seqid));
955
956 Int4 BlastDeleteHeap PROTO((BLASTHeapPtr which_heap, Int4 position));
957
958
959
960 /* Functions used in OOF calculations */
961
962 BlastSequenceBlkPtr PNTR LIBCALL
963 BlastMakeCopyQueryDNAP PROTO((BlastSequenceBlkPtr PNTR bsbpp_in));
964
965 void LIBCALL BlastFreeQueryDNAP PROTO((BlastSequenceBlkPtr PNTR bsbpp));
966
967 BlastSequenceBlkPtr PNTR LIBCALL
968 BlastCreateQueryDNAP PROTO((BlastSearchBlkPtr search, Int4 length));
969
970 /* -----------------------------------------------------------------
971 This function will filter given SeqAlignPtr for overlaping
972 regions for the same query/subject pair. Another input parameter is
973 percentage of overlapping required for the alignment to be removed
974 from SeqAlignPtr
975 ---------------------------------------------------------------- */
976 SeqAlignPtr BLASTFilterOverlapRegions(SeqAlignPtr sap, Int4 pct,
977 Boolean subject_is_aa,
978 Boolean is_ooframe,
979 Boolean sort_array);
980
981 /* End of functions used in OOF calculations */
982
983 Int4
984 BlastGetNumIdentical PROTO((Uint1Ptr query, Uint1Ptr subject, Int4 q_start,
985 Int4 s_start, Int4 length, Boolean reverse));
986
987 Int2
988 BlastHSPGetNumIdentical PROTO((BlastSearchBlkPtr search, BLAST_HSPPtr hsp,
989 BLASTResultHspPtr result_hsp, Int4Ptr num_ident, Int4Ptr align_length));
990 Int2
991 OOFBlastHSPGetNumIdentical PROTO((Uint1Ptr query_seq, Uint1Ptr subject_seq,
992 BLAST_HSPPtr hsp, BLASTResultHspPtr result_hsp, Int4Ptr num_ident,
993 Int4Ptr align_length));
994
995 SeqIdPtr GetTheSeqAlignID PROTO((SeqIdPtr seq_id));
996 StdSegPtr BLASTHspToStdSeg PROTO((BlastSearchBlkPtr search, Int4 subject_length, BLAST_HSPPtr hsp, SeqIdPtr sip, Boolean reverse, SeqIdPtr gi_list));
997
998 /* Callbacks to handle results instead of saving hit lists */
999 #define BUFFER_LENGTH 255
1000 #define LARGE_BUFFER_LENGTH 1024
1001
1002 int LIBCALLBACK BlastPrintAlignInfo PROTO((VoidPtr srch));
1003 int LIBCALLBACK MegaBlastPrintAlignInfo PROTO((VoidPtr srch));
1004
1005 Boolean
1006 BlastProcessGiLists PROTO((BlastSearchBlkPtr search,
1007 BLAST_OptionsBlkPtr options, BlastDoubleInt4Ptr gi_list,
1008 Int4 gi_list_size));
1009
1010 /* Purpose: Create the virtual oidlist that ultimately will limit the
1011 * blast search being set up. This will be an intersection of the bglp
1012 * parameter as well as any oidlists attached to the rdfp_chain.
1013 *
1014 * Parameters:
1015 * bglp: The gi list to limit the search (this will be freed this by this
1016 * function)
1017 * rdfp_chain: The head of the rdfp list that will be searched.
1018 * oidlist_for_all_rdfp: if true, the virtual oidlist will be attached to the
1019 * beginning of the rdfp_chain, else it will be attached to the first rdfp in
1020 * rdfp_chain that had an oidlist (and therefore covering all remaining
1021 * rdfps).
1022 * options: the blast options structure (see comments in blastool.c).
1023 *
1024 * Return value:
1025 * The intersection of the bglp parameter and any oidlists attached to the
1026 * rdfp_chain. */
1027 BlastGiListPtr BlastCreateVirtualOIDList PROTO((BlastGiListPtr bglp,
1028 ReadDBFILEPtr rdfp_chain,
1029 Boolean oidlist_forall_rdfp,
1030 BLAST_OptionsBlkPtr options));
1031 Boolean FastaCheckDna PROTO((CharPtr seq));
1032 BLASTHSPSegmentPtr BLASTHSPSegmentFromSeqAlign PROTO((SeqAlignPtr sap));
1033 SeqAlignPtr BlastClusterHitsFromSeqAlign PROTO((SeqAlignPtr seqalign, CharPtr prog_name, CharPtr database, BLAST_OptionsBlkPtr options, FloatHi length_thresh, FloatHi score_thresh, FloatHi overlap_thresh, Boolean two_sided));
1034
1035 SeqAlignPtr PNTR
1036 RedoAlignmentCore PROTO((BlastSearchBlkPtr search,
1037 BLAST_OptionsBlkPtr options,
1038 Int4 hitlist_count,
1039 Int4 adjustParameters,
1040 Boolean SmithWaterman));
1041
1042 BLAST_HSPPtr BLAST_HSPFree PROTO((BLAST_HSPPtr hsp));
1043 void BLASTResultFreeHsp PROTO((BLASTResultHitlistPtr result));
1044 void BLASTPostSearchLogic PROTO((BlastSearchBlkPtr search, BLAST_OptionsBlkPtr
1045 options, SeqAlignPtr PNTR seqalignp,
1046 Boolean single_chain));
1047 Boolean
1048 BlastNtWordUngappedExtend PROTO((BlastSearchBlkPtr search, Int4 q_off,
1049 Int4 s_off, Int4 cutoff));
1050 SeqLocPtr blastMergeFilterLocs PROTO((SeqLocPtr filter_slp,
1051 SeqLocPtr lcmask, Boolean translate,
1052 Int2 frame, Int4 length));
1053
1054 /*
1055 function to calculate effective query length and
1056 effective db length.
1057 */
1058
1059 /*return query fasta style title(id+title). New memory was allocated for this title*/
1060 CharPtr getFastaStyleTitle(BioseqPtr bsp);
1061
1062 CharPtr load_options_to_buffer(CharPtr instructions, CharPtr buffer);
1063
1064 VoidPtr index_proc PROTO((VoidPtr dummy));
1065
1066 CharPtr BlastConstructFilterString PROTO((Int4 filter_value));
1067
1068 int LIBCALLBACK evalue_compare_hits PROTO((VoidPtr v1, VoidPtr v2));
1069
1070 Uint1 FrameToDefine PROTO((Int2 frame));
1071
1072 Uint1Ptr
1073 GetPrivatTranslationTable PROTO((CharPtr genetic_code,
1074 Boolean reverse_complement));
1075 Int2 blast_set_parameters PROTO((BlastSearchBlkPtr search, Nlm_FloatHi
1076 dropoff_number_of_bits_1st_pass, Nlm_FloatHi
1077 dropoff_number_of_bits_2nd_pass, Nlm_FloatHi
1078 avglen, Nlm_FloatHi searchsp, Int4 window));
1079 Boolean
1080 BlastGetFirstAndLastContext PROTO((CharPtr prog_name, SeqLocPtr query_slp, Int2Ptr first_context, Int2Ptr last_context, Uint1 strand_options));
1081
1082 void ConfigureDbChunkSize(BlastSearchBlkPtr search, Int4 num_seq);
1083
1084 void BLASTCheckHSPInclusion(BLAST_HSPPtr *hsp_array, Int4 hspcnt,
1085 Boolean is_ooframe);
1086
1087 #ifdef __cplusplus
1088 }
1089 #endif
1090 #endif /* !__BLASTPRI__ */
1091
1092 |
This page was automatically generated by the
LXR engine.
Visit the LXR main site for more information. |