+++ /dev/null
-/*****************************************************************
- * SQUID - a library of functions for biological sequence analysis
- * Copyright (C) 1992-2002 Washington University School of Medicine
- *
- * This source code is freely distributed under the terms of the
- * GNU General Public License. See the files COPYRIGHT and LICENSE
- * for details.
- *****************************************************************/
-
-#ifndef SQFUNCSH_INCLUDED
-#define SQFUNCSH_INCLUDED
-/* sqfuncs.h
- *
- * Prototypes for squid library functions;
- * also makes a good reference list for what the package contains.
- *
- * Warning: squid is a slowly evolving beast. Some functions are
- * obsolete. Some functions are probably just wrong, dating to
- * a primordial era before I knew anything about what I was doing.
- * Some functions are both obsolete and wrong but still necessary
- * to get legacy code to compile.
- *
- * CVS $Id: sqfuncs.h,v 1.28 2002/10/09 14:26:09 eddy Exp)
- */
-
-/*
- * from aligneval.c
- */
-extern float ComparePairAlignments(char *known1, char *known2, char *calc1, char *calc2);
-extern float CompareRefPairAlignments(int *ref, char *known1, char *known2, char *calc1, char *calc2);
-extern float CompareMultAlignments(char **kseqs, char **tseqs, int N);
-extern float CompareRefMultAlignments(int *ref, char **kseqs, char **tseqs, int N);
-extern float PairwiseIdentity(char *s1, char *s2);
-extern float AlignmentIdentityBySampling(char **aseq, int L, int N, int nsample);
-extern char *MajorityRuleConsensus(char **aseq, int nseq, int alen);
-
-/*
- * from alignio.c
- */
-extern void AllocAlignment(int nseq, int alen, char ***ret_aseq, AINFO *ainfo);
-extern void InitAinfo(AINFO *ainfo);
-extern void FreeAlignment(char **aseqs, AINFO *ainfo);
-extern void SAMizeAlignment(char **aseq, int nseq, int alen);
-extern void SAMizeAlignmentByGapFrac(char **aseq, int nseq, int alen, float maxgap);
-extern int MakeAlignedString(char *aseq, int alen, char *ss, char **ret_s);
-extern int MakeDealignedString(char *aseq, int alen, char *ss, char **ret_s);
-extern int DealignedLength(char *aseq);
-extern int WritePairwiseAlignment(FILE *ofp, char *aseq1, char *name1, int spos1,
- char *aseq2, char *name2, int spos2,
- int **pam, int indent);
-extern int MingapAlignment(char **aseqs, AINFO *ainfo);
-extern int RandomAlignment(char **rseqs, SQINFO *sqinfo, int nseq, float pop, float pex,
- char ***ret_aseqs, AINFO *ainfo);
-extern void AlignmentHomogenousGapsym(char **aseq, int nseq, int alen, char gapsym);
-
-/* from cluster.c
- */
-extern int Cluster(float **mx, int N, enum clust_strategy mode, struct phylo_s **ret_tree);
-extern struct phylo_s *AllocPhylo(int N);
-extern void FreePhylo(struct phylo_s *tree, int N);
-extern void MakeDiffMx(char **aseqs, int num, float ***ret_dmx);
-extern void MakeIdentityMx(char **aseqs, int num, float ***ret_imx);
-extern void PrintNewHampshireTree(FILE *fp, AINFO *ainfo, struct phylo_s *tree, int N);
-extern void PrintPhylo(FILE *fp, AINFO *ainfo, struct phylo_s *tree, int N);
-
-/*
- * from dayhoff.c
- */
-extern int ParsePAMFile(FILE *fp, int ***ret_pam, float *ret_scale);
-extern void ScalePAM(int **pam, int scale);
-
-
-/* from file.c
- */
-extern char *FileDirname(char *filename);
-extern char *FileTail(char *file, int noextension);
-extern char *FileSameDirectory(char *full, char *file);
-extern char *FileConcat(char *dir, char *file);
-extern char *FileAddSuffix(char *filename, char *sfx);
-extern FILE *EnvFileOpen(char *fname, char *env, char **ret_dir);
-extern int FileExists(char *filename);
-
-
-/* from getopt.c
- */
-extern int Getopt(int argc, char **argv,
- struct opt_s *opt, int nopts, char *usage,
- int *ret_optind, char **ret_optname, char **ret_optarg);
-
-
-/* from hsregex.c
- * Henry Spencer's regex() code
- */
-extern int Strparse(char *rexp, char *s, int ntok);
-extern void SqdClean(void);
-extern sqd_regexp *sqd_regcomp(const char *re);
-extern int sqd_regexec(sqd_regexp *rp, const char *s);
-extern void sqd_regsub(const sqd_regexp *rp, const char *src, char *dst);
-extern void sqd_regerror(char *message);
-
-/* from interleaved.c
- */
-extern int IsInterleavedFormat(int format);
-extern int ReadInterleaved(char *seqfile,
- int (*skip_header)(FILE *),
- int (*parse_header)(FILE *, AINFO *),
- int (*is_dataline)(char *, char *),
- char ***ret_aseqs, AINFO *ainfo);
-extern int ReadAlignment(char *seqfile, int format, char ***ret_aseqs, AINFO *ainfo);
-
-
-/* from revcomp.c
- */
-extern char *revcomp(char *comp, char *seq);
-
-/*
- * from selex.c
- */
-extern int DealignAseqs(char **aseqs, int num, char ***ret_rseqs);
-extern int IsSELEXFormat(char *filename);
-extern int TruncateNames(char **names, int N); /* OBSOLETE? */
-
-/*
- * from seqencode.c
- */
-extern int seqcmp(char *s1, char *s2, int allow);
-extern int seqncmp(char *s1, char *s2, int n, int allow);
-extern int seqencode(char *codeseq,char *str);
-extern int coded_revcomp(char *comp, char *seq);
-extern int seqdecode(char *str, char *codeseq);
-extern int seqndecode(char *str, char *codeseq, int n);
-
-/*
- * from shuffle.c
- */
-extern int StrShuffle(char *s1, char *s2);
-extern int StrDPShuffle(char *s1, char *s2);
-extern int StrMarkov0(char *s1, char *s2);
-extern int StrMarkov1(char *s1, char *s2);
-extern int StrReverse(char *s1, char *s2);
-extern int StrRegionalShuffle(char *s1, char *s2, int w);
-extern int AlignmentShuffle(char **ali1, char **ali2, int nseq, int alen);
-extern int AlignmentBootstrap(char **ali1, char **ali2, int nseq, int alen);
-extern int QRNAShuffle(char *xs, char *ys, char *x, char *y);
-
-/*
- * from sqerror.c
- */
-extern void Die(char *format, ...);
-#ifdef CLUSTALO
-extern void Warning(char *format, ...);
-#else
-extern void Warn(char *format, ...);
-#endif
-extern void Panic(char *file, int line);
-
-
-/*
- * from sqio.c
- */
-extern void FreeSequence(char *seq, SQINFO *sqinfo);
-extern int SetSeqinfoString(SQINFO *sqinfo, char *sptr, int flag);
-extern void SeqinfoCopy(SQINFO *sq1, SQINFO *sq2);
-extern void ToDNA(char *seq);
-extern void ToRNA(char *seq);
-extern void ToIUPAC(char *seq, int is_aseq);
-extern int ReadMultipleRseqs(char *seqfile, int fformat, char ***ret_rseqs,
- SQINFO **ret_sqinfo, int *ret_num);
-extern SQFILE *SeqfileOpen(char *filename, int format, char *env);
-extern SQFILE *SeqfileOpenForIndexing(char *filename, int format, char *env, int ssimode);
-extern int SeqfileFormat(FILE *fp);
-extern void SeqfilePosition(SQFILE *sfp, SSIOFFSET *offset);
-extern void SeqfileRewind(SQFILE *sfp);
-extern void SeqfileClose(SQFILE *sfp);
-
-extern int ReadSeq(SQFILE *fp, int format, char **ret_seq, SQINFO *sqinfo);
-extern int GCGBinaryToSequence(char *seq, int len);
-extern int GCGchecksum(char *seq, int seqlen);
-extern int GCGMultchecksum(char **seqs, int nseq);
-extern void WriteSimpleFASTA(FILE *fp, char *seq, char *name, char *desc);
-extern int WriteSeq(FILE *outf, int outfmt, char *seq, SQINFO *sqinfo);
-extern int Seqtype(char *seq);
-extern int GuessAlignmentSeqtype(char **aseq, int nseq);
-extern int String2SeqfileFormat(char *s);
-extern char *SeqfileFormat2String(int code);
-extern SQINFO *MSAToSqinfo(MSA *msa);
-
-/* from squidcore.c
- */
-extern void Banner(FILE *fp, char *banner);
-
-
-/* from sre_ctype.c
- */
-extern int sre_tolower(int c);
-extern int sre_toupper(int c);
-
-/* from sre_math.c
- */
-extern int Linefit(float *x, float *y, int N,
- float *ret_a, float *ret_b, float *ret_r);
-extern void WeightedLinefit(float *x, float *y, float *var, int N,
- float *ret_m, float *ret_b);
-extern double Gammln(double xx);
-extern float **FMX2Alloc(int rows, int cols);
-extern void FMX2Free(float **mx);
-extern double **DMX2Alloc(int rows, int cols);
-extern void DMX2Free(double **mx);
-extern void FMX2Multiply(float **A, float **B, float **C, int m, int p, int n);
-extern double IncompleteGamma(double a, double x);
-
-/* from sre_string.c
- */
-#ifdef NOSTR
-extern char *strstr(char *s, char *subs);
-#endif
-extern char *Strdup(char *s);
-extern void StringChop(char *s);
-extern int Strinsert(char *s1, char c, int pos);
-extern int Strdelete(char *s1, int pos);
-extern void s2lower(char *s);
-extern void s2upper(char *s);
-extern void *sre_malloc(char *file, int line, size_t size);
-extern void *sre_realloc(char *file, int line, void *p, size_t size);
-extern void Free2DArray(void **p, int dim1);
-extern void Free3DArray(void ***p, int dim1, int dim2);
-extern char *RandomSequence(char *alphabet, float *p, int n, int len);
-extern char *sre_fgets(char **buf, int *n, FILE *fp);
-extern int sre_strcat(char **dest, int ldest, char *src, int lsrc);
-extern char *sre_strtok(char **s, char *delim, int *len);
-extern char *sre_strdup(char *s, int n);
-extern char *sre_strncat(char *s1, char *s2, int n);
-extern int IsBlankline(char *s);
-
-/* from stack.c
- */
-extern struct intstack_s *InitIntStack(void);
-extern void PushIntStack(struct intstack_s *stack, int data);
-extern int PopIntStack(struct intstack_s *stack, int *ret_data);
-extern void ReverseIntStack(struct intstack_s *stack);
-extern int FreeIntStack( struct intstack_s *stack );
-
-/*
- * from translate.c
- */
-extern char *Translate(char *seq, char **code);
-
-/*
- * from types.c
- */
-extern int IsInt(char *s);
-extern int IsReal(char *s);
-extern void Byteswap(char *swap, int nbytes);
-#ifndef USE_HOST_BYTESWAP_FUNCTIONS
-extern sqd_uint16 sre_ntoh16(sqd_uint16 netshort);
-extern sqd_uint32 sre_ntoh32(sqd_uint32 netlong);
-extern sqd_uint16 sre_hton16(sqd_uint16 hostshort);
-extern sqd_uint32 sre_hton32(sqd_uint32 hostlong);
-#endif /*!USE_HOST_BYTESWAP_FUNCTIONS*/
-extern sqd_uint64 sre_ntoh64(sqd_uint64 net_int64);
-extern sqd_uint64 sre_hton64(sqd_uint64 host_int64);
-
-/*
- * from weight.c
- */
-extern void GSCWeights(char **aseq, int nseq, int alen, float *wgt);
-extern void VoronoiWeights(char **aseq, int nseq, int alen, float *wgt);
-extern void BlosumWeights(char **aseq, int nseq, int alen, float blosumlevel, float *wgt);
-extern void PositionBasedWeights(char **aseq, int nseq, int alen, float *wgt);
-extern void FilterAlignment(MSA *msa, float cutoff, MSA **ret_new);
-extern void SampleAlignment(MSA *msa, int sample, MSA **ret_new);
-extern void SingleLinkCluster(char **aseq, int nseq, int alen, float maxid,
- int **ret_c, int *ret_nc);
-#endif /* SQFUNCSH_INCLUDED */