--- /dev/null
+#ifndef STOCKHOLM_H_INCLUDED
+#define STOCKHOLM_H_INCLUDED
+
+#include "gki.h"
+
+typedef struct {
+ int *linetype; /* e.g. STOCKHOLM_GF_LINE; always valid */
+ int *featurecode; /* all markup codes: e.g. STOCKHOLM_GF_ID;
+ nonmarkup: always set to STOCKHOLM_UNPARSED */
+ char **featurename; /* all unparsed markup codes: string, e.g. "ID";
+ all other lines: NULL */
+ int *seqidx; /* all GS, GR, GC, sequence lines: which sequence;
+ other lines: 0 */
+ int *len; /* all GR, GC, sequence lines: length of text field;
+ other lines: 0 */
+ char **text; /* all unparsed nonblank lines: rest of data
+ other lines: NULL */
+ int nseqalloc; /* current nseqs allocated for in aseqs and ainfo */
+ int nlines; /* number of lines in this skel */
+ int nlinealloc; /* current # of lines allocated for in this skel */
+ int overall_line; /* line # in file (important in files w/ >1 ali)*/
+} alifile_skeleton;
+
+#define STOCKHOLM_GF_LINE 0
+#define STOCKHOLM_GS_LINE 1
+#define STOCKHOLM_GC_LINE 2
+#define STOCKHOLM_GR_LINE 3
+#define STOCKHOLM_SEQ_LINE 4
+#define STOCKHOLM_BLANK_LINE 5
+#define STOCKHOLM_COMMENT_LINE 6
+
+#define STOCKHOLM_UNPARSED 0
+#define STOCKHOLM_GF_ID 1
+#define STOCKHOLM_GF_AC 2
+#define STOCKHOLM_GF_DE 3
+#define STOCKHOLM_GF_AU 4
+#define STOCKHOLM_GF_GA 5
+#define STOCKHOLM_GF_NC 6
+#define STOCKHOLM_GF_TC 7
+#define STOCKHOLM_GS_WT 100
+#define STOCKHOLM_GS_AC 101
+#define STOCKHOLM_GS_DE 102
+#define STOCKHOLM_GC_CS 200
+#define STOCKHOLM_GC_RF 201
+#define STOCKHOLM_GR_SS 300
+#define STOCKHOLM_GR_SA 301
+
+#define SKEL_NSEQLUMP 10 /* allocate for new seqs in blocks of this size */
+#define SKEL_LUMPSIZE 100 /* allocate for new lines in skel in blocks of this size */
+
+#endif /*STOCKHOLM_H_INCLUDED*/