--- /dev/null
+/* File: ureadseq.h
+ *
+ * Header for module UReadSeq
+ */
+
+#ifndef UREADSEQ_H
+#define UREADSEQ_H
+
+
+
+typedef char boolean;
+#define NEWLINE '\n'
+#define false 0
+#define true 1
+#define min(a,b) (a<b)?a:b
+#define max(a,b) (a>b)?a:b
+#define skipwhitespace(string) {while (*string <= ' ' && *string != 0) string++;}
+
+ /* NLM strings */
+#define is_upper(c) ('A'<=(c) && (c)<='Z')
+#define is_lower(c) ('a'<=(c) && (c)<='z')
+#define to_lower(c) ((char)(is_upper(c) ? (c)+' ' : (c)))
+#define to_upper(c) ((char)(is_lower(c) ? (c)-' ' : (c)))
+
+
+ /* readSeq errors */
+#define eFileNotFound -1
+#define eNoData -2
+#define eMemFull -3
+#define eItemNotFound -4
+#define eOneFormat -5
+#define eUnequalSize -6
+#define eFileCreate -7
+#define eUnknownFormat -8
+#define eOptionBad -9
+#define eASNerr -10
+
+ /* magic number for readSeq(whichEntry) to give seq list */
+#define kListSequences -1
+
+ /* sequence types parsed by getseqtype */
+#define kOtherSeq 0
+#define kDNA 1
+#define kRNA 2
+#define kNucleic 3
+#define kAmino 4
+
+ /* formats known to readSeq */
+#define kIG 1
+#define kGenBank 2
+#define kNBRF 3
+#define kEMBL 4
+#define kGCG 5
+#define kStrider 6
+#define kFitch 7
+#define kPearson 8
+#define kZuker 9
+#define kOlsen 10
+#define kPhylip2 11
+#define kPhylip4 12
+#define kPhylip3 kPhylip4
+#define kPhylip kPhylip4
+#define kPlain 13 /* keep this at #13 */
+#define kPIR 14
+#define kMSF 15
+#define kASN1 16
+#define kPAUP 17
+#define kPretty 18
+
+#define kMaxFormat 18
+#define kMinFormat 1
+#define kNoformat -1 /* format not tested */
+#define kUnknown 0 /* format not determinable */
+
+ /* subsidiary types */
+#define kASNseqentry 51
+#define kASNseqset 52
+
+#define kPhylipInterleave 61
+#define kPhylipSequential 62
+
+
+typedef struct {
+ boolean isactive, baseonlynum;
+ boolean numright, numleft, numtop, numbot;
+ boolean nameright, nameleft, nametop;
+ boolean noleaves, domatch, degap;
+ char matchchar, gapchar;
+ short numline, atseq;
+ short namewidth, numwidth;
+ short interline, spacer, seqwidth, tab;
+ } prettyopts;
+
+#define gPrettyInit(p) { \
+ p.isactive=false;\
+ p.baseonlynum=true;\
+ p.numline= p.atseq= 0;\
+ p.numright= p.numleft= p.numtop= p.numbot= false;\
+ p.nameright= p.nameleft= p.nametop= false;\
+ p.noleaves= p.domatch= p.degap= false;\
+ p.matchchar='.';\
+ p.gapchar='-';\
+ p.namewidth=8;\
+ p.numwidth=5;\
+ p.interline=1;\
+ p.spacer=10;\
+ p.seqwidth=50;\
+ p.tab=0; }
+
+#ifdef UREADSEQ_G
+prettyopts gPretty;
+#else
+extern prettyopts gPretty;
+#endif
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern short seqFileFormat(const char *filename, long *skiplines, short *error );
+extern short seqFileFormatFp(FILE *fseq, long *skiplines, short *error );
+
+extern char *listSeqs(const char *filename, const long skiplines,
+ const short format, short *nseq, short *error );
+
+extern char *readSeq(const short whichEntry, const char *filename,
+ const long skiplines, const short format,
+ long *seqlen, short *nseq, short *error, char *seqid );
+
+extern char *readSeqFp(const short whichEntry_, FILE *fp_,
+ const long skiplines_, const short format_,
+ long *seqlen_, short *nseq_, short *error_, char *seqid_ );
+
+extern short writeSeq(FILE *outf, const char *seq, const long seqlen,
+ const short outform, const char *seqid );
+
+extern unsigned long CRC32checksum(const char *seq, const long seqlen, unsigned long *checktotal);
+extern unsigned long GCGchecksum(const char *seq, const long seqlen, unsigned long *checktotal);
+#ifdef SMALLCHECKSUM
+#define seqchecksum GCGchecksum
+#else
+#define seqchecksum CRC32checksum
+#endif
+
+extern short getseqtype(const char *seq, const long seqlen );
+extern char *compressSeq( const char gapc, const char *seq, const long seqlen, long *newlen);
+
+#ifdef NCBI
+
+extern char *listASNSeqs(const char *filename, const long skiplines,
+ const short format, short *nseq, short *error );
+
+extern char *readASNSeq(const short whichEntry, const char *filename,
+ const long skiplines, const short format,
+ long *seqlen, short *nseq, short *error, char **seqid );
+#endif
+
+
+ /* patches for some missing string.h stuff */
+extern int Strcasecmp(const char *a, const char *b);
+extern int Strncasecmp(const char *a, const char *b, long maxn);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*UREADSEQ_H*/
+