Clustal Omega  1.2.1
seq.h
Go to the documentation of this file.
1 /*********************************************************************
2  * Clustal Omega - Multiple sequence alignment
3  *
4  * Copyright (C) 2010 University College Dublin
5  *
6  * Clustal-Omega is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public License as
8  * published by the Free Software Foundation; either version 2 of the
9  * License, or (at your option) any later version.
10  *
11  * This file is part of Clustal-Omega.
12  *
13  ********************************************************************/
14 
15 /*
16  * RCS $Id: seq.h 289 2013-09-17 10:09:37Z fabian $
17  */
18 
19 #ifndef CLUSTALO_SEQ_H
20 #define CLUSTALO_SEQ_H
21 
22 #include "squid/squid.h"
23 
24 #include "util.h"
25 
26 
32 #define SEQTYPE_UNKNOWN kOtherSeq
33 #define SEQTYPE_DNA kDNA
34 #define SEQTYPE_RNA kRNA
35 #define SEQTYPE_PROTEIN kAmino
36 
37 /* Alphabets are defined in squid.h: AMINO_ALPHABET, DNA_ALPHABET,
38  * RNA_ALPHABET (all uppercase)
39  */
40 #define AMINOACID_ANY 'X'
41 #define NUCLEOTIDE_ANY 'N'
42 
47 typedef struct {
48  int nseqs;
49  int seqtype;
50  char *filename;
51  bool aligned;
57  char **seq;
58 
63  char **orig_seq;
64 
67  int *tree_order;
68 
113  SQINFO *sqinfo;
114 } mseq_t;
115 
116 extern void
117 AliStat(mseq_t *prMSeq, bool bSampling, bool bReportAll);
118 
119 extern void
120 AddSeq(mseq_t **prMSeqDest_p, char *pcSeqName, char *pcSeqRes);
121 
122 extern void
123 SeqSwap(mseq_t *mseq, int i, int j);
124 
125 extern void
126 DealignMSeq(mseq_t *mseq);
127 
128 extern const char *
129 SeqTypeToStr(int seqtype);
130 
131 extern int
132 ReadSequences(mseq_t *prMSeq_p, char *pcSeqFile,
133  int iSeqType, int iSeqFmt, bool bIsProfile, bool bDealignInputSeqs,
134  int iMaxNumSeq, int iMaxSeqLen);
135 
136 extern void
137 NewMSeq(mseq_t **mseq);
138 
139 extern void
140 FreeMSeq(mseq_t **mseq);
141 
142 extern void
143 CopyMSeq(mseq_t **prMSeqDest_p, mseq_t *prMSeqSrc);
144 
145 extern void
146 LogSqInfo(SQINFO *sqinfo);
147 
148 extern int
149 FindSeqName(char *seqname, mseq_t *mseq);
150 
151 extern int
152 WriteAlignment(mseq_t *mseq, const char *aln_outfile, int msafile_format, int iWrap, bool bResno);
153 
154 extern void
155 DealignSeq(char *seq);
156 
157 extern void
158 ShuffleMSeq(mseq_t *prMSeq);
159 
160 extern void
161 SortMSeqByLength(mseq_t *prMSeq, const char cOrder);
162 
163 void
164 JoinMSeqs(mseq_t **prMSeqDest_p, mseq_t *prMSeqToAdd);
165 
166 bool
167 SeqsAreAligned(mseq_t *prMSeq, bool bIsProfile, bool bDealignInputSeqs);
168 
169 #endif
void NewMSeq(mseq_t **mseq)
allocate and initialise new mseq_t
Definition: seq.c:636
void AddSeq(mseq_t **prMSeqDest_p, char *pcSeqName, char *pcSeqRes)
Creates a new sequence entry and appends it to an existing mseq structure.
Definition: seq.c:1129
SQINFO * sqinfo
Squid's sequence info structure. Index range: 0–nseq-1.
Definition: seq.h:113
int seqtype
Definition: seq.h:49
int ReadSequences(mseq_t *prMSeq_p, char *pcSeqFile, int iSeqType, int iSeqFmt, bool bIsProfile, bool bDealignInputSeqs, int iMaxNumSeq, int iMaxSeqLen)
reads sequences from file
Definition: seq.c:420
bool aligned
Definition: seq.h:51
void AliStat(mseq_t *prMSeq, bool bSampling, bool bReportAll)
Stripped down version of squid's alistat.
Definition: seq.c:60
int WriteAlignment(mseq_t *mseq, const char *aln_outfile, int msafile_format, int iWrap, bool bResno)
Write alignment to file.
Definition: seq.c:796
char ** seq
Definition: seq.h:57
const char * SeqTypeToStr(int seqtype)
convert int-encoded iSeqType to string
Definition: seq.c:376
void LogSqInfo(SQINFO *sqinfo)
debug output of sqinfo struct
Definition: seq.c:327
void FreeMSeq(mseq_t **mseq)
Frees an mseq_t and it's members and zeros all members.
Definition: seq.c:737
int * tree_order
Definition: seq.h:67
void SeqSwap(mseq_t *mseq, int i, int j)
Swap two sequences in an mseq_t structure.
Definition: seq.c:262
void DealignMSeq(mseq_t *mseq)
Dealigns all sequences in mseq structure, updates the sequence length info and sets aligned to FALSE...
Definition: seq.c:302
void SortMSeqByLength(mseq_t *prMSeq, const char cOrder)
Sort sequences by length.
Definition: seq.c:969
char * filename
Definition: seq.h:50
int FindSeqName(char *seqname, mseq_t *mseq)
Definition: seq.c:711
int nseqs
Definition: seq.h:48
char ** orig_seq
Definition: seq.h:63
void ShuffleMSeq(mseq_t *prMSeq)
Shuffle mseq order.
Definition: seq.c:228
structure for storing multiple sequences
Definition: seq.h:47
void DealignSeq(char *seq)
Removes all gap-characters from a sequence.
Definition: seq.c:937
bool SeqsAreAligned(mseq_t *prMSeq, bool bIsProfile, bool bDealignInputSeqs)
Checks if sequences in given mseq structure are aligned. By definition this is only true...
Definition: seq.c:1024
void CopyMSeq(mseq_t **prMSeqDest_p, mseq_t *prMSeqSrc)
copies an mseq structure
Definition: seq.c:664
void JoinMSeqs(mseq_t **prMSeqDest_p, mseq_t *prMSeqToAdd)
Appends an mseq structure to an already existing one. filename will be left untouched.
Definition: seq.c:1187