This file is indexed.

/usr/include/ncbi/dotviewer.h is in libvibrant6-dev 6.1.20120620-7.

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
/* dotviewer.h*/

#ifndef _DOTVIEWER_
#define _DOTVIEWER_

#ifdef __cplusplus
extern "C" {
#endif


  /****************************************************************************

      INCLUDE SECTION                                                                       
   ***************************************************************************/
#include <ncbi.h>
#include <accentr.h>
#include <vibrant.h>
#include <picture.h>
#include <picturep.h>
#include <viewer.h>
#include <tofasta.h>
#include <ncbidraw.h>
#include <seqport.h>
#include <sequtil.h>
#include <blastkar.h>
#include <blastpri.h>
#include <blastdef.h>
#include <objseq.h>
#include <salpstat.h>
#include <seqmgr.h>
#include <seqgraph.h>
#include <actutils.h>
#include <alignmgr.h>
#include <dotseq.h>

 
/****************************************************************************

      DEFINES SECTION                                                                 
 ***************************************************************************/
  /* scoop defines */
#define SCP_IDENTITY     0
#define SCP_CONTAINS     1
#define SCP_ISCONTAINED  2
#define SCP_DOVETAIL     3
#define SCP_HALFTAIL1    4
#define SCP_HALFTAIL2    5
#define SCP_MIDDLE       6
#define SCP_REPEATS      7
#define SCP_LARGE  1000
#define SCP_FUZZ  50
  /* scoop defines - end*/

#define REGISTER_DiagsDisplay  ObjMgrProcLoad (OMPROC_EDIT, "DOT_DiagsDisplay", "DOT_DiagsDisplay", OBJ_MAX, 0, OBJ_VIBRANT_PICTURE, 0, NULL, DOT_RegDiagsDisplay, PROC_PRIORITY_HIGHEST);


 /****************************************************************************

      DATA STRUCTURE SECTION                                                                
 ***************************************************************************/

/*******************************************************
* temporary form structures                            *
********************************************************/
typedef struct dot_blastinfo
{
   BioseqPtr  bsp1;
   BioseqPtr  bsp2;
   GrouP      localorglobal;
   GrouP      progname;
   GrouP      gapped;
   TexT       eval;
   TexT       wordsize;
   ButtoN     newblast;
   ButtoN     maskrep;
   ButtoN     masksimple;
} DOTblastinfo, PNTR DOTblastinfoPtr;

typedef struct dot_displayinfo
{
  GrouP      BLASTorDotPlot;
  GrouP      grid;
} DOTdisplayinfo, PNTR DOTdisplayinfoPtr;


typedef struct dot_paramsinfo
{
  TexT       xstart;
  TexT       xstop;
  TexT       ystart;
  TexT       ystop;
  TexT       word_size;
  TexT       tree_limit;
} DOTparamsinfo, PNTR DOTparamsinfoPtr;

/* scoop typedefs */
typedef struct scp_repeat {
   Int4   from1;
   Int4   to1;
   Int4   from2;
   Int4   to2;
   Uint1  strand2;
   struct scp_repeat PNTR next;
} SCP_Rpt, PNTR SCP_RptPtr;

typedef struct scp_result {
   Int4         relationship;
   Int4         len1;
   Int4         len2;
   Int4         numsaps;
   SeqAlignPtr  PNTR saps;
   Int4         numlarge_outliers;
   SeqAlignPtr  PNTR large_outliers;
   Int4         numsmall_outliers;
   SeqAlignPtr  PNTR small_outliers;
   SCP_RptPtr   repeats;
} SCP_Result, PNTR SCP_ResultPtr;

typedef struct scp_n {
   Int4  n1;
   Int4  n2;
   Int4  n3;
   Int4  n4;
   Int4  n5;
} SCP_n, PNTR SCP_nPtr;
/* scoop typedefs - end */

/*******************************************************
* storage for  alignment display                       *
********************************************************/

typedef struct saln {
  Uint1 show;
  Int4 q_start;
  Int4 q_stop;
  Int4 s_start;
  Int4 s_stop;
  Int1 class;
  SeqAlignPtr sap;
  Uint2 entityID;
  Uint2 itemID;
  Uint2 primID;
  struct saln PNTR next;
} DOTAln, PNTR DOTAlnPtr;

typedef struct algn{
  Uint2    entityID;
  Uint2    itemID;
  Int4     xlen;
  Int4     ylen;
  Int4     xstart;
  Int4     ystart;
  Int4     Fh;
  WindoW   w;
  VieweR   v;
  SeqAlignPtr sap;
  SegmenT     pict;
  SegmenT     seg1;
  PopuP    scale;
  Int4     scaleValue;
  Int4     scaleIndex;
  Boolean  showLabels;
  Boolean  do_scale;
  PrompT   Infopanel;
  CharPtr  title;
  CharPtr  name1, name2;
  SeqIdPtr  sip;
  Int4Ptr  PNTR matrix; /* dna matrix */
  Boolean     is_na; 
  Int4     HORZ_MARGIN;
  Int4     VERT_MARGIN;
  Int4     index; /* num. of alignments */
  DOTAlnPtr    PNTR  Alnlist;
} DOTAlignInfo, PNTR DOTAlignInfoPtr;


/*******************************************************
* scroll and threshold data                            *
********************************************************/

  typedef struct scrolldata {
    /* threshold bar info */
    BaR      ScrollBar; 
    Int4     TrampPos;
    /* main window scroll information */
    Int4     YScrlMax;
    Int4     XScrlMax;
    Int4     YScrlPos;
    Int4     XScrlPos;
    Int4     UnitY;
    Int4     UnitX;
    Int4     TotUnitsY;
    Int4     TotUnitsX;
    Int4     PgWdth;
    Int4     PgLen;
    Int4     YScrlPage;
    Int4     XScrlPage;
    /* scroll positions in pixel coordinates */
    Int4     HFrom; 
    Int4     VFrom;
  } DOTScrollData, PNTR DOTScrollDataPtr;


/*******************************************************
* store sequence data on selected region for new display*
*                                                       *
********************************************************/
typedef struct seqviewr{
  Boolean   do_scale;
  PopuP     scale, showp;
  Int4      scaleIndex;
  Int4      scaleValue;
  GrouP     Labels;
  Boolean   showLabels;
  PoinT     old_pt;
  Int2      old_primID;
  Uint2     highlight;
  SegmenT   pict1;
  SegmenT   pict2;
  DOTAlnPtr salp;
  VieweR    v1;
  VieweR    v2;
  WindoW    w;
  Int4      barp;
} DOTSeqViewr, PNTR DOTSeqViewrPtr;


/*******************************************************
* main vibrant data structure                          *
********************************************************/
typedef struct dotvibdata{
  WindoW MainWin;
  WindoW ChildWin;
  Int4   curr_slen;
  Int4   curr_qlen;
  Int4   xlen, ylen;
  PaneL  panel;
  Boolean showGrid;
  Boolean     showDotPlot;
  Boolean     showALIGN;
  PrompT      Infopanel;
  Char        iInfo[255];
  Int4        comp; 
  Int4        originalcomp;
  /* Alignment options */
  Boolean     Blast2Seq_show;
  MenU        displayOpts1;
  ChoicE      displayOpts2;
  GrouP       Ggoto;
  Int4        ystart, xstart, ystop, xstop;
  CharPtr     xname;
  CharPtr     yname;
   Uint1Ptr    seq1, seq2; 
  Uint1       strand1, strand2;
  DOTAlignInfoPtr alp;
  /* second window elements */
  DOTSeqViewrPtr sv;
  DOTScrollData  sdp;
  Uint2       selectMode;
  VoidPtr     data;
  FonT        Fnt;
  Int4        Fh;
  Int4        charw; 
  Int4        VERT_MARGIN;
  Int4        HORZ_MARGIN;
  DOTMainDataPtr     mip;
} DOTVibData, PNTR DOTVibDataPtr;


/*******************************************************
* structures to store feature data for the feature viewer *
********************************************************/

typedef struct dot_feat_info {
   CharPtr  label;
   Int4     left;
   Int4     right;
   Uint1    strand;
   Int2     type;
   struct dot_feat_info PNTR next;
} DOTFeat, PNTR DOTFeatPtr;


typedef struct dot_row {
   DOTFeatPtr dfp;
} DOTRow, PNTR DOTRowPtr;

typedef struct dot_featindex {
  CharPtr   label;
  Boolean   present;
  Boolean   show;
  Int2      deref; 
} DOTFeatIndex, PNTR DOTFeatIndexPtr;


typedef struct dot_popfeat{
  VieweR TopParentView;
  SegmenT TopParentSeg;
  DOTRowPtr drp;
  DOTFeatIndexPtr featindex;
  DOTFeatPtr dfp_cur;
  Int4       nfeats;
  Int2       fontHeight;
} DOTPopFeat, PNTR DOTPopFeatPtr;


typedef struct dot_feats_list{
  WindoW FeatWin;
  WindoW hFeatDlg;
  VieweR Query;
  SegmenT segQuery;
  SegmenT segQName;
  SegmenT segQCursor;
  VieweR  Subject;
  SegmenT segSubject;
  SegmenT segSName;
  SegmenT segSCursor;
  Int4    qFeatscount;
  Int4    sFeatscount;
  Int2    fontHt;
  Int4    vert_Qpos;
  Int4    vert_Spos;
  Uint2     procID;
  Uint2     userKey;
  Uint2     entityID;
  Uint2     itemID;
  LisT      featList;
  PrompT     QInfo;
  PrompT     SInfo;
  DOTRowPtr  query_drp;
  DOTRowPtr  subject_drp;
  DOTFeatIndexPtr featindex; 
  Int4       numrows; /* list of feature types */
  VoidPtr     data;
  DOTMainDataPtr   mip;
} DOTFeatList, PNTR DOTFeatListPtr;

typedef struct dot_sel_feat{
  Int4      feat_num;
  struct dot_sel_feat PNTR next;
} DOTSelFeat, PNTR DOTSelFeatPtr;


/*******************************************************
* store sequence data on selected region for new display*
*                                                       *
********************************************************/


typedef struct selectdata{
  Int4      q_start;
  Int4      s_start;
  Int4      q_stop;
  Int4      s_stop;
  Int4      xstart, xstop, ystart, ystop;
  Int4      qlen;
  Int4      slen;
  RecT      rcS;  
  RecT      old_rcS; 
  RecT      rcP; 
  Boolean   selected;
  Boolean   rm_lastselected;
  Int2      H_pos;
  Int2      V_pos;
  DOTVibDataPtr vdp;
} DOTSelData, PNTR DOTSelDataPtr;



 /****************************************************************************

      FUNCTION DECLARATIONS                                                               
 ***************************************************************************/
NLM_EXTERN Int2 LIBCALLBACK DOT_RegDiagsDisplay(Pointer data);
NLM_EXTERN Boolean DOT_MakeMainViewer(DOTMainDataPtr vdp, DOTAlignInfoPtr alp);
NLM_EXTERN Boolean DOT_AlignPlotGivenSeqAlign(SeqAlignPtr sap);
NLM_EXTERN Boolean DOT_AlignPlotGivenScp(SCP_ResultPtr scp);

extern DOTAlignInfoPtr DOT_AlignInfoNew();
extern Boolean DOT_FillAlignInfoPointer (DOTAlignInfoPtr alp);
extern Int4    DOT_GetValue(TexT t);

/* scoop declarations */
NLM_EXTERN SCP_ResultPtr SCP_CompareOrderOrganizeBioseqs(BioseqPtr bsp1, BioseqPtr bsp2, SeqLocPtr slp1, SeqLocPtr slp2, CharPtr progname, Int4 wordsize, Int4 hitlist_size);

extern void SCP_OrganizeAlnsInSet(SeqAlignPtr sap, Int4 fuzz, SCP_ResultPtr scp, Int4 n);
/* scoop declarations - end */

#ifdef __cplusplus
}
#endif

#endif /* _DOTVIEWER_ */