JPRED-2 Add sources of all binaries (except alscript) to Git
[jpred.git] / sources / readseq / ureadseq.h
diff --git a/sources/readseq/ureadseq.h b/sources/readseq/ureadseq.h
new file mode 100644 (file)
index 0000000..cb5a87c
--- /dev/null
@@ -0,0 +1,169 @@
+/* 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*/
+