Clustal Omega  1.2.4
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 296 2014-10-07 12:15:41Z 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 
115  /* HMM batch information */
116  char ***pppcHMMBNames;
118 } mseq_t;
119 
120 extern void
121 AliStat(mseq_t *prMSeq, bool bSampling, bool bReportAll);
122 
123 extern void
124 AddSeq(mseq_t **prMSeqDest_p, char *pcSeqName, char *pcSeqRes);
125 
126 extern void
127 SeqSwap(mseq_t *mseq, int i, int j);
128 
129 extern void
130 DealignMSeq(mseq_t *mseq);
131 
132 extern const char *
133 SeqTypeToStr(int seqtype);
134 
135 extern int
136 ReadSequences(mseq_t *prMSeq_p, char *pcSeqFile,
137  int iSeqType, int iSeqFmt, bool bIsProfile, bool bDealignInputSeqs,
138  int iMaxNumSeq, int iMaxSeqLen, char *pcHMMBatch);
139 
140 extern void
141 NewMSeq(mseq_t **mseq);
142 
143 extern void
144 FreeMSeq(mseq_t **mseq);
145 
146 extern void
147 CopyMSeq(mseq_t **prMSeqDest_p, mseq_t *prMSeqSrc);
148 
149 extern void
150 LogSqInfo(SQINFO *sqinfo);
151 
152 extern int
153 FindSeqName(char *seqname, mseq_t *mseq);
154 
155 extern int
156 WriteAlignment(mseq_t *mseq, const char *aln_outfile, int msafile_format, int iWrap, bool bResno);
157 
158 extern void
159 DealignSeq(char *seq);
160 
161 extern void
162 ShuffleMSeq(mseq_t *prMSeq);
163 
164 extern void
165 SortMSeqByLength(mseq_t *prMSeq, const char cOrder);
166 
167 void
168 JoinMSeqs(mseq_t **prMSeqDest_p, mseq_t *prMSeqToAdd);
169 
170 bool
171 SeqsAreAligned(mseq_t *prMSeq, bool bIsProfile, bool bDealignInputSeqs);
172 
173 #endif
mseq_t
structure for storing multiple sequences
Definition: seq.h:47
mseq_t::pppcHMMBNames
char *** pppcHMMBNames
Definition: seq.h:116
ReadSequences
int ReadSequences(mseq_t *prMSeq_p, char *pcSeqFile, int iSeqType, int iSeqFmt, bool bIsProfile, bool bDealignInputSeqs, int iMaxNumSeq, int iMaxSeqLen, char *pcHMMBatch)
reads sequences from file
Definition: seq.c:420
AddSeq
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:1217
mseq_t::aligned
bool aligned
Definition: seq.h:51
mseq_t::tree_order
int * tree_order
Definition: seq.h:67
mseq_t::seq
char ** seq
Definition: seq.h:57
mseq_t::orig_seq
char ** orig_seq
Definition: seq.h:63
DealignSeq
void DealignSeq(char *seq)
Removes all gap-characters from a sequence.
Definition: seq.c:1025
mseq_t::ppiHMMBindex
int ** ppiHMMBindex
Definition: seq.h:117
FindSeqName
int FindSeqName(char *seqname, mseq_t *mseq)
Definition: seq.c:791
WriteAlignment
int WriteAlignment(mseq_t *mseq, const char *aln_outfile, int msafile_format, int iWrap, bool bResno)
Write alignment to file.
Definition: seq.c:884
SeqSwap
void SeqSwap(mseq_t *mseq, int i, int j)
Swap two sequences in an mseq_t structure.
Definition: seq.c:262
DealignMSeq
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
FreeMSeq
void FreeMSeq(mseq_t **mseq)
Frees an mseq_t and it's members and zeros all members.
Definition: seq.c:817
ShuffleMSeq
void ShuffleMSeq(mseq_t *prMSeq)
Shuffle mseq order.
Definition: seq.c:228
SeqTypeToStr
const char * SeqTypeToStr(int seqtype)
convert int-encoded iSeqType to string
Definition: seq.c:376
AliStat
void AliStat(mseq_t *prMSeq, bool bSampling, bool bReportAll)
Stripped down version of squid's alistat.
Definition: seq.c:60
SeqsAreAligned
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:1112
CopyMSeq
void CopyMSeq(mseq_t **prMSeqDest_p, mseq_t *prMSeqSrc)
copies an mseq structure
Definition: seq.c:744
mseq_t::seqtype
int seqtype
Definition: seq.h:49
NewMSeq
void NewMSeq(mseq_t **mseq)
allocate and initialise new mseq_t
Definition: seq.c:714
mseq_t::sqinfo
SQINFO * sqinfo
Squid's sequence info structure. Index range: 0–nseq-1.
Definition: seq.h:113
LogSqInfo
void LogSqInfo(SQINFO *sqinfo)
debug output of sqinfo struct
Definition: seq.c:327
util.h
JoinMSeqs
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:1275
mseq_t::nseqs
int nseqs
Definition: seq.h:48
mseq_t::filename
char * filename
Definition: seq.h:50
SortMSeqByLength
void SortMSeqByLength(mseq_t *prMSeq, const char cOrder)
Sort sequences by length.
Definition: seq.c:1057