X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=binaries%2Fsrc%2Fclustalo%2Fsrc%2Fsquid%2Fsqfuncs.h;fp=binaries%2Fsrc%2Fclustalo%2Fsrc%2Fsquid%2Fsqfuncs.h;h=2b55f79d0dab9bc87c1546d957fba330124b6f8a;hb=35947b9e0b6ae1be74f17d15cd6a65ceadc6d310;hp=0000000000000000000000000000000000000000;hpb=e7bf02d1c203bc8d88b9095e89d5ca6cce21a882;p=jabaws.git diff --git a/binaries/src/clustalo/src/squid/sqfuncs.h b/binaries/src/clustalo/src/squid/sqfuncs.h new file mode 100644 index 0000000..2b55f79 --- /dev/null +++ b/binaries/src/clustalo/src/squid/sqfuncs.h @@ -0,0 +1,274 @@ +/***************************************************************** + * 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 */