This file is indexed.

/usr/include/ncbi/blastconcatdef.h is in libncbi6-dev 6.1.20120620-8.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
/* ===========================================================================
*
*                            PUBLIC DOMAIN NOTICE
*               National Center for Biotechnology Information
*
*  This software/database is a "United States Government Work" under the
*  terms of the United States Copyright Act.  It was written as part of
*  the author's official duties as a United States Government employee and
*  thus cannot be copyrighted.  This software/database is freely available
*  to the public for use. The National Library of Medicine and the U.S.
*  Government have not placed any restriction on its use or reproduction.
*
*  Although all reasonable efforts have been taken to ensure the accuracy
*  and reliability of the software and data, the NLM and the U.S.
*  Government do not and cannot warrant the performance or results that
*  may be obtained by using this software or data. The NLM and the U.S.
*  Government disclaim all warranties, express or implied, including
*  warranties of performance, merchantability or fitness for any particular
*  purpose.
*
*  Please cite the author in any work or product based on this material.
*
* ===========================================================================*/
/*****************************************************************************

File name: blastconcatdef.h

Author: Karolina Maciag, Aleksandr Morgulis

Contents: type definitions and function prototypes for query 
          multiplexing code.

******************************************************************************/
/* $Revision: 1.5 $ 
*  $Log: blastconcatdef.h,v $
*  Revision 1.5  2005/09/26 15:02:58  morgulis
*  Fixing some memort leaks when using query concatenation in blastn and tblastn.
*
*  Revision 1.4  2005/01/10 18:52:29  coulouri
*  fixes from morgulis to allow concatenation of >255 queries in [t]blastn
*
*  Revision 1.3  2004/04/20 14:55:47  morgulis
*  1. Fixed query offsets in results when -B option is used.
*  2. Fixes for lower case masking handling with -B option.
*
*  Revision 1.2  2003/12/29 15:42:46  coulouri
*  tblastn query concatenation fixes from morgulis
*
*  Revision 1.1  2003/03/24 20:47:28  madden
*  Utilities for concatenation of blastn/tblastn queries
*
* */

#ifndef _BLASTCONCATDEF_
#define _BLASTCONCATDEF_

#include <blastconcat.h>

/* AM: MQ_ResultInfo is a structure containing the information about the
       current number of results, best evalue and score for a particular
       query. Those are used to ensure correct printing of results in 
       the case of multiple queries. One such structure is maintained per
       input query. */
typedef struct mq_ResultInfo
{
  Uint4 NumResults;
  BLASTResultHitlistPtr PNTR results;
} MQ_ResultInfo, PNTR MQ_ResultInfoPtr;

/* AM: The structure used to convey subject id and evalue information to
       DivideSeqAligns() when using query multiplexing. */
typedef struct _MQ_ResultInfo
{
  Int4 subject_id;
  Nlm_FloatHi evalue;
} MQ_DivideResultsInfo, PNTR MQ_DivideResultsInfoPtr;

/* AM: This structure holds the pointer to the sarray of seqalign lists
       obtained by distributing seqaligns between queries when query
       multiplexing is used. */
typedef struct sapArrayData
{
  SeqAlignPtr PNTR sap_array;
} SapArrayData, PNTR SapArrayDataPtr;

/*--KM the search->MultQueries structure with information about
  the individual queries when the -B option is used for query 
  concatenation. Needed for the search block*/
typedef struct queries {
    Uint4 NumQueries;
    Int8 TotalLength;    /* AM: Total length of the concatenated query. */
    BspArray FakeBsps;   /* contain SeqIdPtr's */
    SeqLocPtr PNTR LCaseMasks; /* contain lower case masks in queries. */
    IntArray QueryStarts;   /* starts/ends: element for each query */
    IntArray QueryEnds;
    IntArray WhichQuery;    /* "Which" arrays: for each letter in concat seq */
    IntArray WhichPos;

    IntArray EffLengths;  /* AM: Effective lengths of queries */
    IntArray Adjustments; /* AM: Query length adjustments */

    /* AM: Array of effective search spaces that should be used in e-value 
           calculation instead of the search space size derived from the length
	   of the concatenated sequence. */
    FloatArray SearchSpEff;

    /* AM: Array of effective database lengths. */
    Int8Array DbLenEff;

    /* AM: The following are needed for cutoff correction. */
    Int4 MinLen;
    Int4 MinLenEff;
    Int8 MinDbLenEff;
    Nlm_FloatHi MinSearchSpEff;
    Nlm_FloatHi LambdaMin, LambdaMax, LogKMin, LogKMax;

    /* AM: The following are for storing hitlists relevant to a particular query. */
    Uint4 current_query; /* AM: Query currently being processed. */
    Boolean use_mq; /* AM: Tells some functions whether to use query multiplexing. */
    BLAST_HitListPtr PNTR HitListArray; /* Array of pointers to hitlists per query. */

    MQ_ResultInfoPtr result_info; /* Information about results found for each query. */
    Uint4 max_results_per_query;  /* Max number of results to keep for each query. */
    Boolean delete_current_hitlist; /* true, if search->current_hitlist would have
                                       been deleted in BlastSaveCurrentHitlist(). */

    BLAST_Score PNTR dropoff_2nd_pass_array; /* Individual values of dropoff_2nd_pass
                                                parameter per query. */
    Nlm_FloatHi PNTR lambda_array; /* Infividual values of kbp->Lambda per query. */

    SapArrayDataPtr sap_array_data; /* Pointer to the final array of seqalign lists. */

    /* The seqaligns are not here b/c they are not in the original 
       search structure either; they are created and used as they are
       needed in Main.  */ 
} Queries, PNTR QueriesPtr;


typedef struct _PrimaryNode
{
  SeqAlignPtr sap;
  Int4 subject_id;
  Nlm_FloatHi evalue;
  struct _PrimaryNode PNTR next;
} PrimaryNode, PNTR PrimaryNodePtr, PNTR PNTR PrimaryNodePtrArray;

/* ----Prototypes----- */

SeqAlignPtrArray LIBCALL DivideSeqAligns PROTO(( BLAST_OptionsBlkPtr options, SeqAlignPtr sap, 
                                                 QueriesPtr mult_queries, MQ_DivideResultsInfoPtr subjects ));
BioseqPtr LIBCALL BlastMakeFakeBspConcat PROTO((BspArray bsp_arr, Uint4 num_bsps, Boolean is_na, 
                                                Uint4 num_spacers)); /* AM: Added num_spacers parameter */
QueriesPtr LIBCALL BlastMakeMultQueries PROTO((BspArray fbsp_arr, Uint4 num_queries, Boolean is_na, Uint4 num_spacers, SeqLocPtr PNTR lcase_mask_arr ));
QueriesPtr LIBCALL BlastDuplicateMultQueries PROTO(( QueriesPtr source ));
Uint4 GetQueryNum( QueriesPtr mult_queries, Int4 offset, Int4 end, Int2 frame );
Uint4 LIBCALL GetNumSpacers PROTO(( BLAST_OptionsBlkPtr options,
                                    Boolean believe_query,
				    BspArray fake_bsp_arr ));
void LIBCALL InitHitLists PROTO(( BlastSearchBlkPtr search ));
Int4 LIBCALL ResultIndex1 PROTO(( BLASTResultHitlistPtr ptr,
                                  BLASTResultHitlistPtr PNTR results,
				  Int4 num_elements ));
Int4 LIBCALL ResultIndex PROTO(( Nlm_FloatHi target_e, Int4 target_score, Int4 subject_id,
                                 BLASTResultHitlistPtr PNTR results,
				 Int4 num_elements ));
void LIBCALL MQ_UpdateResultLists PROTO(( QueriesPtr mult_queries ));
SeqLocPtr LIBCALL ConcatSeqLoc PROTO(( QueriesPtr mult_queries, SeqLocPtr loc, SeqIdPtr id, Uint4 qnum ));
QueriesPtr LIBCALL BlastMultQueriesDestruct PROTO(( QueriesPtr queries ));

#endif