This file is indexed.

/usr/lib/emboss/include/ajvardata.h is in emboss-lib 6.6.0+dfsg-1.

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
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
/* @include ajvardata *********************************************************
**
** AJAX variation data structures
**
** @author Copyright (C) 2010 Peter Rice
** @version $Revision: 1.11 $
** @modified Oct 5 pmr First version
** @modified $Date: 2012/04/26 17:36:15 $ by $Author: mks $
** @@
**
** This library is free software; you can redistribute it and/or
** modify it under the terms of the GNU Lesser General Public
** License as published by the Free Software Foundation; either
** version 2.1 of the License, or (at your option) any later version.
**
** This library is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
** Lesser General Public License for more details.
**
** You should have received a copy of the GNU Lesser General Public
** License along with this library; if not, write to the Free Software
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
** MA  02110-1301,  USA.
**
******************************************************************************/

#ifndef AJVARDATA_H
#define AJVARDATA_H

/* ========================================================================= */
/* ============================= include files ============================= */
/* ========================================================================= */

#include "ajdefine.h"
#include "ajtextdata.h"

AJ_BEGIN_DECLS




/* ========================================================================= */
/* =============================== constants =============================== */
/* ========================================================================= */




#define varNumAlt  -1
#define varNumGen  -2
#define varNumAny  -3





/* ========================================================================= */
/* ============================== public data ============================== */
/* ========================================================================= */




/* @enum AjEVarType ***********************************************************
**
** Variation metadata value type for INFO and FORMAT definitions
**
** @value AJVAR_UNKNOWN   Unknown
** @value AJVAR_INT       Integer
** @value AJVAR_FLOAT     Float
** @value AJVAR_CHAR      Character
** @value AJVAR_STR       String
** @value AJVAR_FLAG      Flag (INFO, not FORMAT)
** @value AJVAR_MAX       Above last defined value
******************************************************************************/

typedef enum AjOVarType
{
    AJVAR_UNKNOWN, AJVAR_INT, AJVAR_FLOAT, AJVAR_CHAR, AJVAR_STR,
    AJVAR_FLAG, AJVAR_MAX
} AjEVarType;




/* @data AjPVarHeader *********************************************************
**
** Ajax variation header object.
**
** Holds the metadata definitions for variation data
**
** Based on the requirements for VCF format 4.1
**
** @alias AjSVarHeader
** @alias AjOVarHeader
**
** @attr Header    [AjPList] Tag-value list of general header records
** @attr Fields    [AjPList] List of VarField definitions (INFO and FORMAT)
** @attr Samples   [AjPList] List of VarSample definitions
** @attr Filters   [AjPList] List of Filter tag-value definitions
** @attr Alts      [AjPList] List of Alternate tag-value definitions
** @attr Pedigrees [AjPList] List of Pedigree tag-value definitions
** @attr SampleIds [AjPList] List of SampleID strings from column headings
** @attr RefseqIds [AjPTable] Table of reference sequence name-id pairs
** @@
******************************************************************************/

typedef struct AjSVarHeader
{
    AjPList  Header;
    AjPList  Fields;
    AjPList  Samples;
    AjPList  Filters;
    AjPList  Alts;
    AjPList  Pedigrees;
    AjPList  SampleIds;
    AjPTable RefseqIds;
} AjOVarHeader;

#define AjPVarHeader AjOVarHeader*




/* @data AjPVarField **********************************************************
**
** Ajax variation field description object.
**
** Holds the metadata definitions for variation data fields
**
** Based on the requirements for VCF format 4.1
**
** @alias AjSVarField
** @alias AjOVarField
**
** @attr Field  [AjPStr] Field name (INFO, FILTER, FORMAT)
** @attr Id     [AjPStr] Identifier
** @attr Desc   [AjPStr] Description
** @attr Type   [AjEVarType] Type of value
** @attr Number [ajint] Count of values
** @@
******************************************************************************/

typedef struct AjSVarField
{
    AjPStr Field;
    AjPStr Id;
    AjPStr Desc;
    AjEVarType Type;
    ajint Number;
} AjOVarField;

#define AjPVarField AjOVarField*




/* @data AjPVarSample *********************************************************
**
** Ajax variation sample description object.
**
** Holds the metadata definitions for variation data samples
**
** Based on the requirements for VCF format 4.1
**
** @alias AjSVarSample
** @alias AjOVarSample
**
** @attr Id      [AjPStr] Identifier
** @attr Desc    [AjPStr*] Descriptions for each genome identifier
** @attr Genomes [AjPStr*] Genome identifiers
** @attr Mixture [float*] Mixture proportions, summing to 1.0
** @attr Number  [ajuint] Count of genome identifiers
** @attr Padding [ajuint] Padding to alignment boundary
** @@
******************************************************************************/

typedef struct AjSVarSample
{
    AjPStr Id;
    AjPStr *Desc;
    AjPStr *Genomes;
    float *Mixture;
    ajuint Number;
    ajuint Padding;
} AjOVarSample;

#define AjPVarSample AjOVarSample*




/* @data AjPVarData ***********************************************************
**
** Ajax variation data object.
**
** Holds the metadata definitions for variation data records
**
** Based on the requirements for VCF format 4.1
**
** @alias AjSVarAlt
** @alias AjOVarAlt
**
** @attr Chrom   [AjPStr] Chromosome
** @attr Id      [AjPStr] Identifier
** @attr Ref     [AjPStr] Reference sequence(s)
** @attr Alt     [AjPStr] Alternate sequence(s)
** @attr Qual    [AjPStr] Quality
** @attr Filter  [AjPStr] Filter(s) failed
** @attr Info    [AjPStr] Info field metadata
** @attr Format  [AjPStr] Format field metadata
** @attr Samples [AjPList] Sample string records
** @attr Pos     [ajuint] Position
** @attr Padding [ajuint] Padding to alignment boundary
** @@
******************************************************************************/

typedef struct AjSVarData
{
    AjPStr Chrom;
    AjPStr Id;
    AjPStr Ref;
    AjPStr Alt;
    AjPStr Qual;
    AjPStr Filter;
    AjPStr Info;
    AjPStr Format;
    AjPList Samples;
    ajuint Pos;
    ajuint Padding;
} AjOVarData;

#define AjPVarData AjOVarData*




/* @data AjPVar ***************************************************************
**
** Ajax variation object.
**
** Holds the variation itself, plus associated information.
**
** @alias AjSVar
** @alias AjOVar
**
** @attr Id        [AjPStr]  Id of term
** @attr Db        [AjPStr]  Database name from input
** @attr Setdb     [AjPStr]  Database name from command line
** @attr Full      [AjPStr]  Full name
** @attr Qry       [AjPStr]  Query for re-reading
** @attr Formatstr [AjPStr]  Input format name
** @attr Filename  [AjPStr]  Original filename
** @attr Textptr   [AjPStr]  Full text
** @attr Data      [AjPList] Data records as AjPVarData objects
** @attr Header    [AjPVarHeader] Header record metadata
** @attr Fpos      [ajlong]  File position
** @attr Format    [AjEnum]  Input format enum
** @attr Hasdata   [AjBool]  True when data has been loaded
** @@
******************************************************************************/

typedef struct AjSVar
{
    AjPStr  Id;
    AjPStr  Db;
    AjPStr  Setdb;
    AjPStr  Full;
    AjPStr  Qry;
    AjPStr  Formatstr;
    AjPStr  Filename;
    AjPStr  Textptr;
    AjPList Data;
    AjPVarHeader Header;
    ajlong  Fpos;
    AjEnum  Format;
    AjBool Hasdata;
} AjOVar;

#define AjPVar AjOVar*




/* @data AjPVarin *************************************************************
**
** Ajax variation input object.
**
** Holds the input specification and information needed to read
** the variation and possible further entries
**
** @alias AjSVarin
** @alias AjOVarin
**
** @attr Input [AjPTextin] General text input object
** @attr Begin     [ajint]     Start position
** @attr End       [ajint]     End position
** @attr Loading [AjBool] True if data is now loading
** @attr Padding [char[4]] Padding to alignment boundary
** @attr VarData [void*] Format data for reuse, e.g. multiple term input
**                       (unused in current code)
** @@
******************************************************************************/

typedef struct AjSVarin
{
    AjPTextin Input;
    ajint Begin;
    ajint End;
    AjBool Loading;
    char Padding[4];
    void *VarData;
} AjOVarin;

#define AjPVarin AjOVarin*




/* @data AjPVarload ***********************************************************
**
** Ajax variation loader object.
**
** Inherits an AjPVar but allows more variations to be read from the
** same input by also inheriting the AjPVarin input object.
**
** @alias AjSVarload
** @alias AjOVarload
**
** @attr Var [AjPVar] Current variation
** @attr Varin [AjPVarin] Variation input for reading next
** @attr Count [ajuint] Count of terms so far
** @attr Loading [AjBool] True if data is now loading
** @attr Returned [AjBool] if true: Variation object has been returned to a new
**                         owner and is not to be deleted by the destructor
** @attr Padding [ajuint] Padding to alignment boundary
** @@
******************************************************************************/

typedef struct AjSVarload
{
    AjPVar Var;
    AjPVarin Varin;
    ajuint Count;
    AjBool Loading;
    AjBool Returned;
    ajuint Padding;
} AjOVarload;

#define AjPVarload AjOVarload*




/* @data AjPVarall ************************************************************
**
** Ajax variation all (stream) object.
**
** Inherits an AjPVar but allows more variations to be read from the
** same input by also inheriting the AjPVarin input object.
**
** @alias AjSVarall
** @alias AjOVarall
**
** @attr Loader [AjPVarload] Variation loader for reading next
** @attr Totterms [ajulong] Count of terms so far
** @attr Count [ajuint] Count of terms so far
** @attr Multi [AjBool] True if multiple values are expected
** @attr Returned [AjBool] if true: Variation object has been returned to a new
**                         owner and is not to be deleted by the destructor
** @attr Padding [ajuint] Padding to alignment boundary
** @@
******************************************************************************/

typedef struct AjSVarall
{
    AjPVarload Loader;
    ajulong Totterms;
    ajuint Count;
    AjBool Multi;
    AjBool Returned;
    ajuint Padding;
} AjOVarall;

#define AjPVarall AjOVarall*




/* @data AjPVarAccess *********************************************************
**
** Ajax variation access database reading object.
**
** Holds information needed to read a variation entry from a database.
** Access methods are defined for each known database type.
**
** Variation entries are read from the database using the defined
** database access function, which is usually a static function
** within ajvardb.c
**
** This should be a static data object but is needed for the definition
** of AjPVarin.
**
** @alias AjSVarAccess
** @alias AjOVarAccess
**
** @attr Name [const char*] Access method name used in emboss.default
** @attr Access [AjBool function] Access function
** @attr AccessFree [AjBool function] Access cleanup function
** @attr Qlink [const char*] Supported query link operators
** @attr Desc [const char*] Description
** @attr Alias [AjBool] Alias for another name
** @attr Entry [AjBool] Supports retrieval of single entries
** @attr Query [AjBool] Supports retrieval of selected entries
** @attr All [AjBool] Supports retrieval of all entries
** @attr Chunked [AjBool] Supports retrieval of entries in chunks
** @attr Padding [AjBool] Padding to alignment boundary
** @@
******************************************************************************/

typedef struct AjSVarAccess
{
    const char *Name;
    AjBool (*Access)(AjPVarin varin);
    AjBool (*AccessFree)(void* qry);
    const char* Qlink;
    const char* Desc;
    AjBool Alias;
    AjBool Entry;
    AjBool Query;
    AjBool All;
    AjBool Chunked;
    AjBool Padding;
} AjOVarAccess;

#define AjPVarAccess AjOVarAccess*




/* ========================================================================= */
/* =========================== public functions ============================ */
/* ========================================================================= */




/*
** Prototype definitions
*/

/*
** End of prototype definitions
*/




AJ_END_DECLS

#endif /* !AJVARDATA_H */