summaryrefslogtreecommitdiff
path: root/api/aliread.h
blob: 309c0f80364a237784ebedee0283115c758372bb (plain)
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
#ifndef _ALI_READ_INCLUDED
#define _ALI_READ_INCLUDED

#include <ncbi.h>

/* Defined constants */

#define ALI_NUCLEOTIDE        1
#define ALI_PROTEIN           2
#define ALI_AMBIGUOUS         3

/* Data structures */

typedef struct 
{
  Int4    rownum;
  CharPtr data;
} RowPart, PNTR RowPartPtr;

typedef struct
{
  Int4    rowNum;
  CharPtr sequence;
  Int2    type;         /* Nucleotide = 1, Protein = 2, Ambiguous = 3 */
  CharPtr id;
  CharPtr junk;
  Boolean maybe;
  Int4    firstWordLen;
} SeqLineInfo, PNTR SeqLineInfoPtr;

typedef struct
{
  Int4    rowNum;
  CharPtr definitions;
  CharPtr id;
} DefLineInfo, PNTR DefLineInfoPtr;

typedef struct
{
  Int4    rowNum;
  CharPtr other;
  CharPtr id;
} OtherLineInfo, PNTR OtherLineInfoPtr;

typedef struct _ErrInfo
{
  Int2       errNum;
  Int2       level;
  Int4       rowNum;
  CharPtr    info;
  CharPtr    extraInfo;
  struct _ErrInfo PNTR next;
} ErrInfo, PNTR ErrInfoPtr;

typedef struct
{
  Int2    dataType;
  Int2    contigOrInter;
  Int4    idCount;
  Int4    seqLength;
} DataInfo, PNTR DataInfoPtr;

typedef struct
{
  CharPtr  gapChar;
  CharPtr  missingChar;
  CharPtr  unalignedChar;
  Boolean  useMaybes;
  Int4     readBuffSize;
  Int2     debugLevel;
  Int2     corruptSeqThreshold;
  Int2     nuclLineMinThreshold;
  Int2     nuclLineMaxThreshold;
  Int2     errExpandLevel;
  DataInfo declaredInfo;
} AliConfigInfo, PNTR AliConfigInfoPtr;

typedef struct
{
  CharPtr missingChar;
  CharPtr gapChar;
  CharPtr unalignedChar;
  Int2    dataType;	 /* ALI_DATA_NUCLEOTIDE,ALI_DATA_PROTEIN,ALI_UNKNOWN */
  Int2    contigOrInter; /* ALI_INTERLEAVED, ALI_CONTIGUOUS, ALI_UNKNOWN */
} ParsedInfo, PNTR ParsedInfoPtr;

typedef struct _SeqPart
{
  CharPtr  sequence;
  struct _SeqPart PNTR next;
} SeqPart, PNTR SeqPartPtr;

typedef struct _IdInfo
{
  CharPtr        id;
  Int4           length;
  SeqPartPtr     sequence;
  CharPtr        defline;
  struct _IdInfo PNTR next;
} IdInfo, PNTR IdInfoPtr;

typedef struct
{
  IdInfoPtr     sequences;
  IdInfoPtr     maybes;
  ErrInfoPtr    errors;
  ParsedInfoPtr info;
} AlignFileData, PNTR AlignFileDataPtr;

/* Function prototypes */

Int2       Ali_SeqLineGetType(CharPtr          seqStr,
			      AliConfigInfoPtr configPtr);
void       Ali_ChangeRowToOther (ValNodePtr rowPtr);
ValNodePtr Ali_ReadLines (FILE PNTR        alignFilePtr,
			  ErrInfoPtr PNTR  errorListPtr,
			  AliConfigInfoPtr configPtr,
			  AlignFileDataPtr fileInfoPtr);
#endif