/usr/lib/emboss/include/ajrange.h is in emboss-lib 6.6.0+dfsg-6.
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 | /* @include ajrange ***********************************************************
**
** AJAX range functions
**
** @author Copyright (C) 1999 Alan Bleasby
** @version $Revision: 1.24 $
** @modified Aug 21 ajb First version
** @modified 7 Sept 1999 GWW - String range edit functions added
** @modified 5 Nov 1999 GWW - store text after pairs of numbers
** @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 AJRANGE_H
#define AJRANGE_H
/* ========================================================================= */
/* ============================= include files ============================= */
/* ========================================================================= */
#include "ajdefine.h"
#include "ajseqdata.h"
#include "ajlist.h"
#include "ajtranslate.h"
AJ_BEGIN_DECLS
/* ========================================================================= */
/* =============================== constants =============================== */
/* ========================================================================= */
/* ========================================================================= */
/* ============================== public data ============================== */
/* ========================================================================= */
/* @data AjPRange *************************************************************
**
** Data structure for AJAX sequence range specifications
**
** @alias AjORange
** @alias AjSRange
**
** @attr start [ajuint*] From positions
** @attr end [ajuint*] End positions
** @attr text [AjPStr*] Associated text for each range
** @attr n [ajuint] Number of ranges
** @attr Padding [char[4]] Padding to alignment boundary
** @@
******************************************************************************/
typedef struct AjSRange
{
ajuint *start;
ajuint *end;
AjPStr *text;
ajuint n;
char Padding[4];
} AjORange;
#define AjPRange AjORange*
/* ========================================================================= */
/* =========================== public functions ============================ */
/* ========================================================================= */
/*
** Prototype definitions
*/
AjBool ajRangeSetOffset(AjPRange thys, ajuint begin);
AjBool ajRangeElementSet(AjPRange thys, ajuint element,
ajuint start, ajuint end);
AjBool ajRangeIsWhole(const AjPRange thys, const AjPSeq s);
void ajRangeDel(AjPRange *thys);
AjPRange ajRangeNewI(ajuint n);
AjPRange ajRangeNewFilename(const AjPStr name);
AjPRange ajRangeNewFilenameLimits(const AjPStr name,
ajuint imin, ajuint imax,
ajuint minsize, ajuint size);
AjPRange ajRangeNewRange(const AjPRange src);
AjPRange ajRangeNewString(const AjPStr s);
AjPRange ajRangeNewStringLimits(const AjPStr str, ajuint imin, ajuint imax,
ajuint minsize, ajuint size);
ajuint ajRangeGetSize(const AjPRange thys);
AjBool ajRangeIsOrdered(const AjPRange thys);
ajuint ajRangeCountOverlaps(const AjPRange thys, ajuint pos, ajuint length);
ajuint ajRangeElementTypeOverlap(const AjPRange thys, ajuint element,
ajuint pos, ajuint length);
AjBool ajRangeSeqExtract(const AjPRange thys, AjPSeq seq);
AjPSeq ajRangeSeqExtractPep(const AjPRange thys, AjPSeq seq,
const AjPTrn trntable, ajint frame);
AjBool ajRangeSeqExtractList(const AjPRange thys,
const AjPSeq seq, AjPList outliststr);
AjBool ajRangeSeqMask(const AjPRange thys,
const AjPStr maskchar, AjPSeq seq);
AjBool ajRangeSeqStuff(const AjPRange thys, AjPSeq seq);
AjBool ajRangeSeqStuffPep(const AjPRange thys, AjPSeq seq,
ajint frame);
AjBool ajRangeSeqToLower(const AjPRange thys, AjPSeq seq);
AjBool ajRangeStrExtract(const AjPRange thys,
const AjPStr instr, AjPStr *outstr);
AjBool ajRangeStrExtractList(const AjPRange thys,
const AjPStr instr, AjPList outliststr);
AjBool ajRangeStrMask(const AjPRange thys,
const AjPStr maskchar, AjPStr *str);
AjBool ajRangeStrStuff(const AjPRange thys,
const AjPStr instr, AjPStr *outstr);
AjBool ajRangeStrToLower(const AjPRange thys, AjPStr *str);
AjBool ajRangeElementGetText(const AjPRange thys, ajuint element,
AjPStr * text);
AjBool ajRangeElementGetValues(const AjPRange thys, ajuint element,
ajuint *start, ajuint *end);
/*
** End of prototype definitions
*/
#ifdef AJ_COMPILE_DEPRECATED_BOOK
#endif /* AJ_COMPILE_DEPRECATED_BOOK */
#ifdef AJ_COMPILE_DEPRECATED
__deprecated AjPRange ajRangeCopy(const AjPRange src);
__deprecated AjPRange ajRangeGet(const AjPStr s);
__deprecated AjPRange ajRangeGetLimits(const AjPStr str,
ajuint imin, ajuint imax,
ajuint minsize, ajuint size);
__deprecated AjPRange ajRangeFile(const AjPStr name);
__deprecated AjPRange ajRangeFileLimits(const AjPStr name,
ajuint imin, ajuint imax,
ajuint minsize, ajuint size);
__deprecated ajuint ajRangeNumber(const AjPRange thys);
__deprecated AjBool ajRangeValues(const AjPRange thys, ajuint element,
ajuint *start, ajuint *end);
__deprecated AjBool ajRangeBegin(AjPRange thys, ajuint begin);
__deprecated AjBool ajRangeChange(AjPRange thys, ajuint element,
ajuint start, ajuint end);
__deprecated AjBool ajRangeText(const AjPRange thys, ajuint element,
AjPStr * text);
__deprecated ajuint ajRangeOverlaps(const AjPRange thys,
ajuint pos, ajuint length);
__deprecated ajuint ajRangeOverlapSingle(ajuint start, ajuint end,
ajuint pos, ajuint length);
__deprecated AjBool ajRangeOrdered(const AjPRange thys);
__deprecated AjBool ajRangeDefault(const AjPRange thys, const AjPSeq s);
#endif /* AJ_COMPILE_DEPRECATED */
AJ_END_DECLS
#endif /* !AJRANGE_H */
|