/usr/lib/emboss/include/ajalign.h is in emboss-lib 6.6.0+dfsg-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 | /* @include ajalign ***********************************************************
**
** AJAX ALIGN (ajax alignment output) functions
**
** These functions align AJAX sequences and report them in a variety
** of formats.
**
** @author Copyright (C) 2001 Peter Rice, LION Bioscience Ltd.
** @version $Revision: 1.40 $
** @modified $Date: 2011/10/18 14:23:40 $ by $Author: rice $
** @@
**
** This library is free software; you can redistribute it and/or
** modify it under the terms of the GNU Lesser General Public
** License as published by the Free Software Foundation; either
** version 2.1 of the License, or (at your option) any later version.
**
** This library is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
** Lesser General Public License for more details.
**
** You should have received a copy of the GNU Lesser General Public
** License along with this library; if not, write to the Free Software
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
** MA 02110-1301, USA.
**
******************************************************************************/
#ifndef AJALIGN_H
#define AJALIGN_H
/* ========================================================================= */
/* ============================= include files ============================= */
/* ========================================================================= */
#include "ajdefine.h"
#include "ajfile.h"
#include "ajlist.h"
#include "ajmatrices.h"
#include "ajseqdata.h"
AJ_BEGIN_DECLS
/* ========================================================================= */
/* =============================== constants =============================== */
/* ========================================================================= */
/* ========================================================================= */
/* ============================== public data ============================== */
/* ========================================================================= */
/* @data AjPAlign *************************************************************
**
** Ajax Align Output object.
**
** Holds definition of feature align output.
**
** @alias AjSAlign
** @alias AjOAlign
**
** @new ajAlignNew Default constructor
** @delete ajAlignDel Default destructor
** @modify ajAlignReset Resets ready for reuse.
** @output ajAlignWrite Master alignment output routine
** @output ajAlignWriteHeader Master header output routine
** @output ajAlignWriteTail Master footer output routine
** @cast ajAlignGetFormat Returns the format of an alignment
**
** @other AjPSeqout Sequence output
** @other AjPFeatout Feature output
** @other AjPReport Report output
** @other AjPFile Input and output files
**
** @attr Type [AjPStr] "P" Protein or "N" Nucleotide
** @attr Formatstr [AjPStr] Report format (-aformat qualifier)
** @attr File [AjPFile] Output file object
** @attr Header [AjPStr] Text to add to header with newlines
** @attr SubHeader [AjPStr] Text to add to align subheader with newlines
** @attr Tail [AjPStr] Text to add to tail with newlines
** @attr SubTail [AjPStr] Text to add to subtail with newlines
** @attr Showacc [AjBool] Report accession number if ajTrue
** @attr Showdes [AjBool] Report sequence description if ajTrue
** @attr Showusa [AjBool] Report full USA (-ausa qualifier) if ajTrue
** or only seqname if ajFalse
** @attr Multi [AjBool] if true, assume >1 alignment
** @attr Global [AjBool] if true, show full sequence beyond match
** @attr Format [AjEnum] Report format (index number)
** @attr Data [AjPList] Alignment specific data - see ajalign.c
** @attr Nseqs [ajint] Number of sequences in all alignments
** @attr Nmin [ajint] Minimum number of sequences e.g. 2
** @attr Nmax [ajint] Maximum number of sequences e.g. 2
** @attr Width [ajint] Output width (minimum 10)
** @attr IMatrix [AjPMatrix] Integer matrix (see also FMatrix)
** @attr FMatrix [AjPMatrixf] Floating point matrix (see also IMatrix)
** @attr Matrix [AjPStr] Matrix name
** @attr GapPen [AjPStr] Gap penalty (converted to string)
** @attr ExtPen [AjPStr] Gap extend penalty (converted to string)
** @attr SeqOnly [AjBool] Sequence output only, no head or tail
** @attr SeqExternal [AjBool] Sequence is non-local, do not delete
** @attr Count [ajint] Use count
** @attr RefSeq [ajint] Index of the reference sequences in AlignOData objects
** of the Data list
** @@
******************************************************************************/
typedef struct AjSAlign
{
AjPStr Type;
AjPStr Formatstr;
AjPFile File;
AjPStr Header;
AjPStr SubHeader;
AjPStr Tail;
AjPStr SubTail;
AjBool Showacc;
AjBool Showdes;
AjBool Showusa;
AjBool Multi;
AjBool Global;
AjEnum Format;
AjPList Data;
ajint Nseqs;
ajint Nmin;
ajint Nmax;
ajint Width;
AjPMatrix IMatrix;
AjPMatrixf FMatrix;
AjPStr Matrix;
AjPStr GapPen;
AjPStr ExtPen;
AjBool SeqOnly;
AjBool SeqExternal;
ajint Count;
ajint RefSeq;
} AjOAlign;
#define AjPAlign AjOAlign*
/* ========================================================================= */
/* =========================== public functions ============================ */
/* ========================================================================= */
/*
** Prototype definitions
*/
void ajAlignClose(AjPAlign thys);
AjBool ajAlignConsAmbig(const AjPSeqset thys, AjPStr *cons);
AjBool ajAlignConsAmbigNuc(const AjPSeqset thys, AjPStr *cons);
AjBool ajAlignConsAmbigProt(const AjPSeqset thys, AjPStr *cons);
AjBool ajAlignConsStats(const AjPSeqset thys, AjPMatrix mymatrix,
AjPStr *cons, ajint* retident,
ajint* retsim, ajint* retgap,
ajint* retlen);
AjBool ajAlignDefine(AjPAlign pthys, AjPSeqset seqset);
AjBool ajAlignDefineSS(AjPAlign pthys,
const AjPSeq seqa, const AjPSeq seqb);
AjBool ajAlignDefineCC(AjPAlign pthys,
const char* seqa, const char* seqb,
const char* namea,const char* nameb);
void ajAlignDel(AjPAlign* pthys);
void ajAlignExit(void);
AjBool ajAlignFindFormat(const AjPStr format, ajint* iformat);
AjBool ajAlignFormatDefault(AjPStr* pformat);
AjBool ajAlignFormatShowsSequences(const AjPAlign thys);
ajint ajAlignGetLen(const AjPAlign thys);
const char* ajAlignGetFilename(const AjPAlign thys);
const AjPStr ajAlignGetFormat(const AjPAlign thys);
AjPAlign ajAlignNew(void);
AjBool ajAlignOpen(AjPAlign thys, const AjPStr name);
void ajAlignPrintFormat(AjPFile outf, AjBool full);
void ajAlignPrintbookFormat(AjPFile outf);
void ajAlignPrinthtmlFormat(AjPFile outf);
void ajAlignPrintwikiFormat(AjPFile outf);
void ajAlignReset(AjPAlign thys);
void ajAlignSetExternal(AjPAlign thys, AjBool external);
void ajAlignSetHeader(AjPAlign thys, const AjPStr header);
void ajAlignSetHeaderApp(AjPAlign thys, const AjPStr header);
void ajAlignSetHeaderC(AjPAlign thys, const char* header);
void ajAlignSetGapI(AjPAlign thys, ajint gappen, ajint extpen);
void ajAlignSetGapR(AjPAlign thys, float gappen, float extpen);
void ajAlignSetMatrixName(AjPAlign thys, const AjPStr matrix);
void ajAlignSetMatrixNameC(AjPAlign thys, const char* matrix);
void ajAlignSetMatrixInt(AjPAlign thys, AjPMatrix matrix);
void ajAlignSetMatrixFloat(AjPAlign thys, AjPMatrixf matrix);
AjBool ajAlignSetRange(AjPAlign thys,
ajint start1, ajint end1,
ajint len1, ajint off1,
ajint start2, ajint end2,
ajint len2, ajint off2);
void ajAlignSetRefSeqIndx(AjPAlign thys, ajint refseq);
void ajAlignSetScoreI(AjPAlign thys, ajint score);
void ajAlignSetScoreL(AjPAlign thys, ajlong score);
void ajAlignSetScoreR(AjPAlign thys, float score);
void ajAlignSetStats(AjPAlign thys, ajint iali, ajint len,
ajint ident, ajint sim, ajint gaps,
const AjPStr score);
AjBool ajAlignSetSubRange(AjPAlign thys,
ajint substart1, ajint start1,
ajint end1, AjBool rev1, ajint len1,
ajint substart2, ajint start2,
ajint end2, AjBool rev2, ajint len2);
void ajAlignSetSubHeader(AjPAlign thys, const AjPStr subheader);
void ajAlignSetSubHeaderApp(AjPAlign thys, const AjPStr subheader);
void ajAlignSetSubHeaderC(AjPAlign thys, const char* subheader);
void ajAlignSetSubHeaderPre(AjPAlign thys, const AjPStr subheader);
void ajAlignSetSubStandard(AjPAlign thys, ajint iali);
void ajAlignSetSubTail(AjPAlign thys, const AjPStr tail);
void ajAlignSetSubTailC(AjPAlign thys, const char* tail);
void ajAlignSetSubTailApp(AjPAlign thys, const AjPStr tail);
void ajAlignSetTail(AjPAlign thys, const AjPStr tail);
void ajAlignSetTailApp(AjPAlign thys, const AjPStr tail);
void ajAlignSetTailC(AjPAlign thys, const char* tail);
void ajAlignSetType(AjPAlign thys);
void ajAlignTrace(const AjPAlign thys);
void ajAlignTraceT(const AjPAlign thys, const char* title);
AjBool ajAlignValid(AjPAlign thys);
void ajAlignWrite(AjPAlign thys);
void ajAlignWriteHeader(AjPAlign thys);
void ajAlignWriteTail(AjPAlign thys);
/*
** End of prototype definitions
*/
AJ_END_DECLS
#endif /* !AJALIGN_H */
|