This file is indexed.

/usr/include/ncbi/salsa.h is in libncbi6-dev 6.1.20110713-3ubuntu2.

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
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
/*   salsa.h
* ===========================================================================
*
*                            PUBLIC DOMAIN NOTICE
*            National Center for Biotechnology Information (NCBI)
*
*  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 do not place any restriction on its use or reproduction.
*  We would, however, appreciate having the NCBI and the author cited in
*  any work or product based on this material
*
*  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.
*
* ===========================================================================
*
* File Name:  salsa.h
*
* Author:  Colombe Chappey
*
* Version Creation Date:   1/27/96
*
* $Revision: 6.6 $
*
* File Description: 
*
* Modifications:  
* --------------------------------------------------------------------------
* Date     Name        Description of modification
* -------  ----------  -----------------------------------------------------
*
*
* ==========================================================================
*/

#ifndef _SALSA_
#define _SALSA_

#include <ncbi.h>
#include <objseq.h>
#include <objfdef.h>
#include <objmgr.h>
#include <gather.h>

#define COMPSEG           6

#define TypeEmpty         0
#define TypeSeqInt        1 
#define TypeSeqId         2 
#define TypeSeqLoc        3
#define TypeSelStruct     4
#define TypeSelEdStruct   5

#define NO_RESIDUE       -9
#define GAP_RESIDUE      -1

#define SEQ_VIEW          0
#define SEQ_EDIT          1
#define ALIGN_EDIT        2
#define BLOCK_EDIT        3
#define PRETTY_EDIT       4

#define TMP_BUFFERLENGTH  6000
#define TMP_EDITBUFFER    200

#define WINPERBUF         3
#define MAXCharLine     200
#define MAXLineWindow   150
#define LENGTHMAX     10000
#define SALSALENLIMIT 50000

#define HRZ_BORDER_WIDTH  4
#define VER_BORDER_WIDTH  4
#define EDIT_MARGIN_RIGHT 10
#define EDIT_MARGIN_BOT   5

#define SEQ_SHOW1         1
#define SEQ_SHOWALG       2
#define SEQ_FEAT0         0
#define SEQ_FEAT1         1
#define SEQ_FEATALL       2
#define SEQ_NUM0          0
#define SEQ_NUM1          1
#define SEQ_NUM2          2

#define SALSA_ND          0
#define SALSA_FASTA       1  
#define SALSA_ASN1        2 
#define SALSA_CONTIGUOUS  3 
#define SALSA_FASTGAP     4 
#define SALSA_PAUP        5 
#define SALSA_MACAW       6
#define SALSA_INTERLEAVE  7 
#define SALSA_NEXUS       8 
#define SALSA_PHYLIP      9 
#define SALSA_CLUSTALV   10
#define SALSA_SHWTXT     11 
#define SALSAA_FASTA     12 
#define SALSAA_CONTIGUOUS 13 
#define SALSAA_FASTGAP   14 
#define SALSAA_INTERLEAVE 15 
#define SALSAA_PHYLIP    16
#define SALSAA_NEXUS     17
#define SALSAA_GCG       18

#define PRG_ANYALIGN      0
#define PRG_FASTA_IMPORT  1 
#define PRGALIGNBANDBL    6 
#define PRG_BLAST         7
#define PRGALIGNALL       8
#define PRGALIGNDEFAULT  10 

#define PROPAG_SETSTOP 1 
#define PROPAG_GETSTOP 2 

#define LINE0             0

#define COLOR_STAR        0
#define COLOR_SCALE       1
#define COLOR_ID          2
#define COLOR_GAP         3
#define COLOR_ID_MASTER   4 
#define COLOR_CDS         5 
#define COLOR_SELECT      6 

#define ALLPROTAA         1
#define MPROTAA           2
#define PUTPROT           3

#define EDITDEF_SCA   101 
#define EDITDEF_SCB   102
#define EDITDEF_CPL   103
#define EDITDEF_RF1   104
#define EDITDEF_RF2   105
#define EDITDEF_RF3   106
#define EDITDEF_RF4   107
#define EDITDEF_RF5   108
#define EDITDEF_RF6   109
#define FEATDEF_TRSL  110

#define LINE_NOGAP      1
#define LINE_WITHGAP    2
#define LINE_ONLYGAP    3

#define PRINTID_GIcc   99 

/******************************
**  Types define  
*******************************/
typedef struct seledstruct 
{
        Boolean    dirty;
        Boolean    visible;
        Uint2      entityID,
                   itemtype,
                   itemsubtype;
        Uint4      itemID;
        Uint4      bsp_itemID;
        Pointer    region;       
        Uint1      regiontype;     /* 0 = not set
                                 1 = SeqLocPtr of type SEQLOC_INT       */
        Char       label[101];
        ValNodePtr data;
        Uint1      codonstart;
        Int4       offset;
        struct seledstruct PNTR prev,
                           PNTR next;
} SelEdStruct, PNTR SelEdStructPtr;

typedef struct seqparam {
        Uint2    entityID;
        Uint4    itemID;
        Boolean  complement;
        Boolean  rf[10];
        Uint2    group;
        SeqIdPtr sip_cons;
} 
SeqParam, PNTR SeqParamPtr;

typedef struct alignstyle {
  Handle          font;
  Int2            interline;        /* space between lines          */
  Boolean         marginwithindex;  /* index in left margin    */ 
  Boolean         marginwithIds;    /* Ids in left margin      */
  Boolean         marginwithfeatid;
  Boolean         marginwithpos;    /* position in left margin */
  Boolean         marginwithgroup;
  Int2            marginleft;       /* left margin (char)           */
  Boolean         draw_scale;
  Boolean         draw_bars;
  Uint1           rowpcell;         /* rows per cell */
  Uint1           columnpcell;      /* columns per cell */
  Uint4           colorRefs[256];
 
} AlignStyle, PNTR AlignStylePtr;


typedef  struct  rectc {
  Int2  left;
  Int2  top;
  Int2  right;
  Int2  bottom;
} RecTc, PNTR RectcPtr;
 
typedef struct editaligndata {

  Boolean          Cn3D_On;

  Pointer         wdp;
  Uint2           input_entityID,
                  input_itemtype;
  Uint4           input_itemID;
  Int2            seqnumber;        /* number of sequences       */
  Int4            length;           /* alignment length          */
  Boolean         seg_bioseq;
  Uint1           mol_type;         /* NA, DNA, RNA, AA        */

  ValNodePtr      anp_list;         /* list of AlignNode / sequence */ 
  ValNodePtr      anp_graph;
  SelEdStructPtr  seq_info;
  ValNodePtr      sqloc_list;       /* SeqLocPtr list  on sequences*/
  ValNodePtr      bsqloc_list;
  Int2            size_labels;

  SelStruct       master;           /* entityID, item, SeqLoc of master seq*/
  GatherRange     gr;

  SeqAnnotPtr     sap_align;        /* SeqAnnotPtr-SeqAlignPtr-CompSeg   */
  SeqAnnotPtr     sap_original;     /* SeqAnnotPtr-SeqAlignPtr-DenSeg */
  SeqAnnotPtr     sap1_original;    /* SeqAnnotPtr-SeqAlignPtr-DenDiag */
  SeqAlignPtr     blocks;        /* list of DenDiag to be aligned     */

  Boolean         dirty;

  /*    Features   */

  Uint1          featOrder[FEATDEF_ANY];  /* features displayed  */
  Uint1          groupOrder[FEATDEF_ANY]; /* ? */
  Uint1          gap_choice;       /* used only for propagation features */
                                   /* through the Dialog */
  /*    PaneL   */

  Int4            x, xoff, y, yoff;
  Int4            ybutt;
  Boolean         vscrollbar_mode;
  Int4            hoffset;          /* horizontal offset - align coordi. */
  Int4            voffset;          /* vertical offset - align coordina. */
  Int4            pnlLine;          /* number of visible lines     */  
  Int4            pnlWidth;         /* number of visible characters*/
  Int4            vPage;            /* lines/page = pnlLine - 1    */
  Int4            hPage;            /* car/page   = pnlWidth- 1    */
  Int4            nlines;
  Int4            curalignline;
  SelStructPtr    firstssp;
  SelEdStructPtr  lastses;
  Int4            numberalignline;
  Uint4Ptr        item_id;          /* array of itemID / line      */
  Uint2Ptr        seqEntity_id;     /* array of entityID / line    */
  Uint2Ptr        itemtype;         /* array of feattype / line    */
  Uint2Ptr        itemsubtype;      /* array of feattype / line    */
  Uint4Ptr        alignline;        /* array of alignment line index*/  

  /*    text   */

  Handle          font;             /* font type                   */
  Int2            ascent;
  Int2            leading;
  Int2            charw;
  Int2            lineheight;
  Uint4           colorRefs[256];
  Int2            popcolor[10];
  Int2            scaleheight;      /* scale height= 2 x lineheight */
  Int2            interline;        /* space between lines          */
  RecTc            margin;           /* margin (pix) around sequences*/
  Int2            marginleft;       /* left margin (char)           */
  Int2            intersalpwidth;

  /*   buffer of aligned char  - alignment coordinates */

  SelStructPtr    buffer; 
  SelStructPtr    buffertail;
  ValNodePtr      linebuff; 
  Int4            minbufferlength;  /* MIN (2 screens or .length)   */
  Int4            bufferlength;     /* varies with edit inser-del   */
  Int4            bufferstart;      /* in alignment coordinates     */
  Int4            editbuffer;       /* length of edit buffer        */
  Int4Ptr         colonne;          /* seq position in the buffer   */
 
  /*   visible part of the buffer - buffer coordinates */

  Int4            visibleWidth;     /* alignt length per line in Panel*/
  Int4            visibleLength;

  /*   options   */

  Int2            styleNum;
  SelStruct       edit_item;
  AlignStylePtr   newstyle;
  Boolean         showfeat;
  Boolean         drawrfp, drawrfm;
  Boolean         drawcomplt;
  Boolean         draw_scale;
  Boolean         draw_bars;
  Uint1           nscaleline;
  Uint1           rowpcell;         /* rows per cell */
  Uint1           columnpcell;      /* columns per cell */
  Boolean         displaytype;
  Boolean         charmode;         /* diff y/n >>> SetStatus ItemI */
  Boolean         marginwithindex;  /* index in left margin    */ 
  Boolean         marginwithIds;    /* Ids in left margin      */
  Boolean         marginwithfeatid;
  Boolean         marginwithpos;    /* position in left margin */
  Boolean         marginwithgroup;
  Int4            edit_pos; 
  Int4            feat_pos; 
  Int4            start_select;
  Uint1           click_feat;
  Uint1           clickwhat;
  Uint1           mouse_mode;
  DenseDiagPtr    select_block;
  SelStruct       caret;            /* cursor within alignment */
  Uint2           caret_line;
  Uint2           feat_line;
  Int4            caret_orig;
  ValNodePtr      feat;
  ValNodePtr      seqfeat;
  ValNodePtr      allseqfeat;
  Uint4           nfeat;
  Uint1           prot_mode;
  Uint1           printid;
  Int4            stoptransl;
  ValNodePtr      params;

  Boolean         spliteditmode;

  SelEdStructPtr  curfeat;
  Uint1           align_format;     /* PHYLIP, MACAW, FASTA, ..*/ 
  Uint2           ngroup;

  CharPtr         current_pattern;
  SelStructPtr    match_pat;
  SelStructPtr    cur_pat;

  /*   dialog   */

  VoidPtr         extra_data;
  Int4            int4value2;       /* any value from dialog */
  Int4            int4value;        /* any value from dialog */

  Uint1           display_panel;
  Boolean         all_sequences;
  Uint1           edit_mode;
  Uint1           input_format;
  Boolean         draw_emptyline;
  Char            tmpfile [PATH_MAX];  /* path + filename         */ 

} EditAlignData, PNTR EditAlignDataPtr;

typedef struct compressseg {

  Int2            dim,
                  numseg;
  SeqIdPtr        ids;
  Int4Ptr         from;
  Int4Ptr         lens;
  BoolPtr         starts;
  Uint1Ptr        strands;
  ScorePtr        scores;

} CompSeg, PNTR CompSegPtr;

typedef struct propastruct {
                                     
  SeqAnnotPtr  sap;
  Uint2        source_entityID, 
               source_bspitemID, 
               target_entityID, 
               target_bsp_itemID;
  SeqEntryPtr  target_sep,
               source_sep;
  ValNodePtr   source_seqfeat, 
               target_seqfeat;
  Uint1        gap_choice;
  Int4         stoptransl;
  Boolean      keep_protID;

} PropaStruct, PNTR PropaStructPtr;

#endif