1 /* @include ajseq ************************************************************* 2 ** 3 ** AJAX SEQ (sequence) functions 4 ** 5 ** These functions control all aspects of AJAX sequence 6 ** reading and writing and include simple utilities. 7 ** 8 ** @author Copyright (C) 1998 Peter Rice 9 ** @version $Revision: 1.85 $ 10 ** @modified Jun 25 pmr First version 11 ** @modified $Date: 2013/06/29 22:32:55 $ by $Author: rice $ 12 ** @@ 13 ** 14 ** This library is free software; you can redistribute it and/or 15 ** modify it under the terms of the GNU Lesser General Public 16 ** License as published by the Free Software Foundation; either 17 ** version 2.1 of the License, or (at your option) any later version. 18 ** 19 ** This library is distributed in the hope that it will be useful, 20 ** but WITHOUT ANY WARRANTY; without even the implied warranty of 21 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 22 ** Lesser General Public License for more details. 23 ** 24 ** You should have received a copy of the GNU Lesser General Public 25 ** License along with this library; if not, write to the Free Software 26 ** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 27 ** MA 02110-1301, USA. 28 ** 29 ******************************************************************************/ 30 31 #ifndef AJSEQ_H 32 #define AJSEQ_H 33 34 /* ========================================================================= */ 35 /* ============================= include files ============================= */ 36 /* ========================================================================= */ 37 38 #include "ajseqdata.h" 39 #include "ajrefseq.h" 40 41 AJ_BEGIN_DECLS 42 43 44 45 46 /* ========================================================================= */ 47 /* =============================== constants =============================== */ 48 /* ========================================================================= */ 49 50 51 52 53 /* ========================================================================= */ 54 /* ============================== public data ============================== */ 55 /* ========================================================================= */ 56 57 58 59 60 /* @data AjPSeqCvt ************************************************************ 61 ** 62 ** Sequence conversion data. Used to convert a sequence to binary. 63 ** 64 ** @new ajSeqCvtNew Creates from a character string of valid bases. 65 ** @new ajSeqCvtNewText Creates from a character string of valid bases. 66 ** @new ajSeqCvtNewZero Creates from a character string of valid bases. 67 ** @new ajSeqCvtNewZeroS Creates from an array of strings of valid bases. 68 ** @new ajSeqCvtNewZeroSS Creates from an array of strings of valid bases. 69 ** @output ajSeqCvtTrace Reports on contents for debugging 70 * 71 ** @alias AjSSeqCvt 72 ** @alias AjOSeqCvt 73 ** 74 ** @attr size [ajint] Number of characters in table, usually 75 ** all possible characters. 76 ** @attr len [ajint] Number of characters defined 77 ** @attr missing [ajint] Index of the missing character value 78 ** @attr nrlabels [ajint] Number of row labels 79 ** @attr bases [AjPStr] The bases which can be converted 80 ** @attr rlabels [AjPStr*] Row labels 81 ** @attr clabels [AjPStr*] Column labels 82 ** @attr table [char*] Binary character value for each character in bases 83 ** @attr nclabels [ajint] Number of column labels 84 ** @attr Padding [char[4]] Padding to alignment boundary 85 ** @@ 86 ******************************************************************************/ 87 88 typedef struct AjSSeqCvt 89 { 90 ajint size; 91 ajint len; 92 ajint missing; 93 ajint nrlabels; 94 AjPStr bases; 95 AjPStr* rlabels; 96 AjPStr* clabels; 97 char *table; 98 ajint nclabels; 99 char Padding[4]; 100 } AjOSeqCvt; 101 102 #define AjPSeqCvt AjOSeqCvt* 103 104 105 106 107 /* ========================================================================= */ 108 /* =========================== public functions ============================ */ 109 /* ========================================================================= */ 110 111 112 113 114 /* 115 ** Prototype definitions 116 */ 117 118 AjBool ajSeqtestIsAccession(const AjPStr accnum); 119 const AjPStr ajSeqtestIsSeqversion(const AjPStr sv); 120 121 void ajSeqallDel(AjPSeqall *thys); 122 ajlong ajSeqallGetCount(const AjPSeqall seq); 123 const AjPStr ajSeqallGetFilename(const AjPSeqall thys); 124 const AjPStr ajSeqallGetseqName(const AjPSeqall thys); 125 ajint ajSeqallGetseqBegin(const AjPSeqall seq); 126 ajint ajSeqallGetseqEnd(const AjPSeqall seq); 127 ajint ajSeqallGetseqLen(const AjPSeqall seqall); 128 const AjPStr ajSeqallGetName(const AjPSeqall seq); 129 ajint ajSeqallGetseqRange(const AjPSeqall thys, 130 ajint* begin, ajint* end); 131 ajlong ajSeqallGetTotlength(const AjPSeqall seq); 132 const AjPStr ajSeqallGetUsa(const AjPSeqall thys); 133 AjPSeqall ajSeqallNew(void); 134 void ajSeqallClear(AjPSeqall thys); 135 void ajSeqallClearStats(AjPSeqall thys); 136 AjBool ajSeqallNext(AjPSeqall seqall, AjPSeq* retseq); 137 void ajSeqallSetRange(AjPSeqall seq, ajint ibegin, ajint iend); 138 void ajSeqallSetRangeRev(AjPSeqall seq, ajint ibegin, ajint iend); 139 void ajSeqAddCmt(AjPSeq thys, AjPStr str); 140 void ajSeqAddGene(AjPSeq thys, AjPSeqGene gene); 141 void ajSeqAddHost(AjPSeq thys, AjPStr str); 142 void ajSeqAddKey(AjPSeq thys, AjPStr str); 143 void ajSeqAddRef(AjPSeq thys, AjPSeqRef ref); 144 void ajSeqAddXref(AjPSeq thys, AjPSeqXref xref); 145 void ajSeqAssignAccC(AjPSeq seq, const char* text); 146 void ajSeqAssignAccS(AjPSeq seq, const AjPStr str); 147 void ajSeqAssignDescC(AjPSeq seq, const char* text); 148 void ajSeqAssignDescS(AjPSeq seq, const AjPStr str); 149 void ajSeqAssignEntryC(AjPSeq seq, const char* text); 150 void ajSeqAssignEntryS(AjPSeq seq, const AjPStr str); 151 void ajSeqAssignFileC(AjPSeq seq, const char* text); 152 void ajSeqAssignFileS(AjPSeq seq, const AjPStr str); 153 void ajSeqAssignFullC(AjPSeq seq, const char* text); 154 void ajSeqAssignFullS(AjPSeq seq, const AjPStr str); 155 void ajSeqAssignGiC(AjPSeq seq, const char* text); 156 void ajSeqAssignGiS(AjPSeq 157 seq, const AjPStr str); 158 void ajSeqAssignNameC(AjPSeq seq, const char* txt); 159 void ajSeqAssignNameS(AjPSeq seq, const AjPStr str); 160 void ajSeqAssignQualLen(AjPSeq seq, const float* qual, ajuint len); 161 void ajSeqAssignSeqC(AjPSeq seq, const char* text); 162 void ajSeqAssignSeqLenC(AjPSeq seq, const char* txt, ajuint len); 163 void ajSeqAssignSeqS(AjPSeq seq, const AjPStr str); 164 void ajSeqAssignSvC(AjPSeq seq, const char* text); 165 void ajSeqAssignSvS(AjPSeq seq, const AjPStr str); 166 void ajSeqAssignUfoC(AjPSeq seq, const char* text); 167 void ajSeqAssignUfoS(AjPSeq seq, const AjPStr str); 168 void ajSeqAssignUsaC(AjPSeq seq, const char* text); 169 void ajSeqAssignUsaS(AjPSeq seq, const AjPStr str); 170 ajuint ajSeqGetBegin(const AjPSeq seq); 171 const float* ajSeqGetQual(const AjPSeq seq); 172 const char* ajSeqGetSeqC(const AjPSeq thys); 173 const AjPStr ajSeqGetSeqS(const AjPSeq seq); 174 char* ajSeqGetSeqCopyC(const AjPSeq seq); 175 AjPStr ajSeqGetSeqCopyS(const AjPSeq seq); 176 ajint ajSeqCalcCheckgcg(const AjPSeq thys); 177 void ajSeqClear(AjPSeq thys); 178 void ajSeqComplement(AjPSeq thys); 179 void ajSeqstrComplement(AjPStr* thys); 180 AjBool ajSeqstrConvertNum(const AjPStr seq, const AjPSeqCvt cvt, 181 AjPStr* Pnumseq); 182 AjPFeattable ajSeqGetFeatCopy(const AjPSeq thys); 183 void ajSeqCalcCount(const AjPSeq thys, ajint *b); 184 ajuint ajSeqstrCountGaps(const AjPStr str); 185 void ajSeqcvtDel(AjPSeqCvt* thys); 186 ajint ajSeqcvtGetCodeK(const AjPSeqCvt thys, char ch); 187 ajint ajSeqcvtGetCodeS(const AjPSeqCvt thys, const AjPStr ch); 188 ajint ajSeqcvtGetCodeAsymS(const AjPSeqCvt cvt, const AjPStr str); 189 ajint ajSeqcvtGetCodeAsymrowS(const AjPSeqCvt cvt, const AjPStr str); 190 ajuint ajSeqcvtGetLen(const AjPSeqCvt thys); 191 AjPSeqCvt ajSeqcvtNewC(const char* bases); 192 AjPSeqCvt ajSeqcvtNewNumberC(const char* bases); 193 AjPSeqCvt ajSeqcvtNewEndC(const char* bases); 194 AjPSeqCvt ajSeqcvtNewStr(const AjPPStr bases, ajint n); 195 AjPSeqCvt ajSeqcvtNewStrAsym(const AjPPStr bases, ajint n, 196 const AjPPStr rbases, ajint rn); 197 void ajSeqcvtTrace(const AjPSeqCvt cvt); 198 AjPSeqDate ajSeqdateNew(void); 199 AjPSeqDate ajSeqdateNewDate(const AjPSeqDate date); 200 AjBool ajSeqdateSetCreateS(AjPSeqDate date, const AjPStr datestr); 201 AjBool ajSeqdateSetModifyS(AjPSeqDate date, const AjPStr datestr); 202 AjBool ajSeqdateSetModseqS(AjPSeqDate date, const AjPStr datestr); 203 void ajSeqdateClear(AjPSeqDate date); 204 void ajSeqdateDel(AjPSeqDate*); 205 AjBool ajSeqdateExists(const AjPSeqDate thys); 206 AjPSeqDesc ajSeqdescNew(void); 207 AjPSeqDesc ajSeqdescNewDesc(const AjPSeqDesc); 208 void ajSeqdescClear(AjPSeqDesc desc); 209 void ajSeqdescDel(AjPSeqDesc*); 210 AjBool ajSeqdesclistClone(const AjPList src, AjPList dest); 211 AjPSeqSubdesc ajSeqsubdescNew(void); 212 AjPSeqSubdesc ajSeqsubdescNewSubdesc(const AjPSeqSubdesc); 213 void ajSeqsubdescClear(AjPSeqSubdesc desc); 214 void ajSeqsubdescDel(AjPSeqSubdesc*); 215 AjBool ajSeqsubdesclistClone(const AjPList src, AjPList dest); 216 AjPSeqGene ajSeqgeneNew(void); 217 AjPSeqGene ajSeqgeneNewGene(const AjPSeqGene gene); 218 AjPSeqGene ajSeqgeneNewName(const AjPStr str); 219 void ajSeqgeneDel(AjPSeqGene*); 220 AjPSeqRange ajSeqrangeNew(void); 221 AjPSeqRange ajSeqrangeNewRange(const AjPSeqRange range); 222 AjPSeqRange ajSeqrangeNewValues(ajulong pos, ajulong len, const AjPStr qry); 223 void ajSeqrangeDel(AjPSeqRange* Prange); 224 AjBool ajSeqrangeSetQuery(AjPSeqRange range, const AjPStr qry); 225 AjBool ajSeqrangeSetRange(AjPSeqRange range, ajulong pos, ajulong len); 226 AjPSeqRef ajSeqrefNew(void); 227 AjPSeqRef ajSeqrefNewRef(const AjPSeqRef); 228 void ajSeqrefDel(AjPSeqRef*); 229 AjPSeqXref ajSeqxrefNew(void); 230 AjPSeqXref ajSeqxrefNewDbC(const AjPStr id, const char* db, ajuint reftype); 231 AjPSeqXref ajSeqxrefNewDbS(const AjPStr id, const AjPStr db, ajuint reftype); 232 AjPSeqXref ajSeqxrefNewRef(const AjPSeqXref); 233 void ajSeqxrefDel(AjPSeqXref*); 234 AjBool ajSeqdescAppendName(AjPSeqDesc desc, const AjPStr str); 235 AjBool ajSeqdescSetName(AjPSeqDesc desc, const AjPStr str); 236 AjBool ajSeqsubdescAppendName(AjPSeqSubdesc desc, const AjPStr str); 237 AjBool ajSeqsubdescSetName(AjPSeqSubdesc desc, const AjPStr str); 238 AjBool ajSeqgeneAppendName(AjPSeqGene gene, const AjPStr str); 239 AjBool ajSeqgeneAppendSynonyms(AjPSeqGene gene, const AjPStr str); 240 AjBool ajSeqgeneAppendOrf(AjPSeqGene gene, const AjPStr str); 241 AjBool ajSeqgeneAppendOln(AjPSeqGene gene, const AjPStr str); 242 AjBool ajSeqgeneSetName(AjPSeqGene gene, const AjPStr str); 243 AjBool ajSeqgeneSetSynonyms(AjPSeqGene gene, const AjPStr str); 244 AjBool ajSeqgeneSetOrf(AjPSeqGene gene, const AjPStr str); 245 AjBool ajSeqgeneSetOln(AjPSeqGene gene, const AjPStr str); 246 AjBool ajSeqgenelistClone(const AjPList src, AjPList dest); 247 AjBool ajSeqrefAppendAuthors(AjPSeqRef ref, const AjPStr str); 248 AjBool ajSeqrefAppendComment(AjPSeqRef ref, const AjPStr str); 249 AjBool ajSeqrefAppendGroupname(AjPSeqRef ref, const AjPStr str); 250 AjBool ajSeqrefAppendLocation(AjPSeqRef ref, const AjPStr str); 251 AjBool ajSeqrefAppendPosition(AjPSeqRef ref, const AjPStr str); 252 AjBool ajSeqrefAppendTitle(AjPSeqRef ref, const AjPStr str); 253 AjBool ajSeqrefAppendXref(AjPSeqRef ref, const AjPStr str); 254 AjBool ajSeqrefFmtAuthorsEmbl(const AjPSeqRef ref, AjPStr* Pdest); 255 AjBool ajSeqrefFmtAuthorsGb(const AjPSeqRef ref, AjPStr* Pdest); 256 AjBool ajSeqrefFmtLocationEmbl(const AjPSeqRef ref, AjPStr* Pdest); 257 AjBool ajSeqrefFmtLocationGb(const AjPSeqRef ref, AjPStr* Pdest); 258 AjBool ajSeqrefFmtTitleGb(const AjPSeqRef ref, AjPStr* Pdest); 259 AjBool ajSeqreflistClone(const AjPList src, AjPList dest); 260 ajuint ajSeqreflistGetXrefs(const AjPList src, AjPList *Plist); 261 AjBool ajSeqrefSetAuthors(AjPSeqRef ref, const AjPStr str); 262 AjBool ajSeqrefSetComment(AjPSeqRef ref, const AjPStr str); 263 AjBool ajSeqrefSetGroupname(AjPSeqRef ref, const AjPStr str); 264 AjBool ajSeqrefSetLocation(AjPSeqRef ref, const AjPStr str); 265 AjBool ajSeqrefSetLoctype(AjPSeqRef ref, const AjPStr str); 266 AjBool ajSeqrefSetnumNumber(AjPSeqRef ref, ajuint num); 267 AjBool ajSeqrefSetPosition(AjPSeqRef ref, const AjPStr str); 268 AjBool ajSeqrefSetTitle(AjPSeqRef ref, const AjPStr str); 269 AjBool ajSeqrefSetXref(AjPSeqRef ref, const AjPStr str); 270 AjBool ajSeqrefStandard(AjPSeqRef ref); 271 AjBool ajSeqxreflistClone(const AjPList src, AjPList dest); 272 AjBool ajSeqxreflistSort(AjPList list); 273 void ajSeqSetCircular(AjPSeq seq); 274 void ajSeqSetName(AjPSeq thys, const AjPStr setname); 275 void ajSeqSetNameMulti(AjPSeq thys, const AjPStr setname); 276 void ajSeqDel(AjPSeq* pthis); 277 void ajSeqDelarray(AjPSeq **PPseq); 278 ajuint ajSeqGetEnd(const AjPSeq seq); 279 void ajSeqExit(void); 280 void ajSeqGapFill(AjPSeq seq, ajuint len); 281 ajuint ajSeqCountGaps(const AjPSeq seq); 282 void ajSeqGapStandard(AjPSeq thys, char gapch); 283 const char* ajSeqGetAccC(const AjPSeq thys); 284 const AjPStr ajSeqGetAccS(const AjPSeq thys); 285 const char* ajSeqGetDbC(const AjPSeq thys); 286 const AjPStr ajSeqGetDbS(const AjPSeq thys); 287 const char* ajSeqGetDescC(const AjPSeq thys); 288 const AjPStr ajSeqGetDescS(const AjPSeq thys); 289 const char* ajSeqGetEntryC(const AjPSeq thys); 290 const AjPStr ajSeqGetEntryS(const AjPSeq thys); 291 const AjPFeattable ajSeqGetFeat(const AjPSeq thys); 292 const char* ajSeqGetGiC(const AjPSeq thys); 293 const AjPStr ajSeqGetGiS(const AjPSeq thys); 294 const char* ajSeqGetNameC(const AjPSeq thys); 295 const AjPStr ajSeqGetNameS(const AjPSeq thys); 296 ajuint ajSeqGetOffend(const AjPSeq seq); 297 ajuint ajSeqGetOffset(const AjPSeq seq); 298 ajuint ajSeqGetRange(const AjPSeq thys, ajint* begin, ajint* end); 299 AjBool ajSeqGetRev(const AjPSeq thys); 300 const char* ajSeqGetSvC(const AjPSeq thys); 301 const AjPStr ajSeqGetSvS(const AjPSeq thys); 302 const char* ajSeqGetTaxC(const AjPSeq thys); 303 const AjPStr ajSeqGetTaxS(const AjPSeq thys); 304 ajuint ajSeqGetTaxid(const AjPSeq seq); 305 const char* ajSeqGetUsaC(const AjPSeq thys); 306 const AjPStr ajSeqGetUsaS(const AjPSeq thys); 307 ajuint ajSeqGetXrefs(const AjPSeq thys, AjPList list); 308 AjBool ajSeqIsCircular(const AjPSeq thys); 309 AjBool ajSeqIsNuc(const AjPSeq thys); 310 AjBool ajSeqIsProt(const AjPSeq thys); 311 ajuint ajSeqGetLen(const AjPSeq seq); 312 ajuint ajSeqGetLenTrimmed(const AjPSeq seq); 313 ajuint ajSeqGetLenUngapped(const AjPSeq seq); 314 const char* ajSeqclsGetEmbl(const AjPStr cls); 315 const char* ajSeqclsGetGb(const AjPStr cls); 316 AjBool ajSeqclsSetEmbl(AjPStr *cls, const AjPStr clsembl); 317 AjBool ajSeqclsSetGb(AjPStr *cls, const AjPStr clsembl); 318 const char* ajSeqdivGetEmbl(const AjPStr divi); 319 const char* ajSeqdivGetGb(const AjPStr divi); 320 AjBool ajSeqdivSetEmbl(AjPStr *Pdivi, const AjPStr divembl); 321 AjBool ajSeqdivSetGb(AjPStr *Pdivi, const AjPStr divembl); 322 const char* ajSeqmolGetEmbl(const AjPStr mol); 323 const char* ajSeqmolGetGb(const AjPStr mol); 324 AjBool ajSeqmolSetEmbl(AjPStr *mol, const AjPStr molembl); 325 AjBool ajSeqmolSetGb(AjPStr *mol, const AjPStr molgb); 326 void ajSeqSetUnique(AjPSeq seq); 327 float ajSeqCalcMolwt(const AjPSeq seq); 328 float ajSeqstrCalcMolwt(const AjPStr seq); 329 AjPSeq ajSeqNew(void); 330 AjPSeq ajSeqNewNameC(const char* txt, const char* name); 331 AjPSeq ajSeqNewNameS(const AjPStr str, const AjPStr name); 332 AjPSeq ajSeqNewRefseq(const AjPRefseq refseq); 333 AjPSeq ajSeqNewRes(size_t size); 334 AjPSeq ajSeqNewSeq(const AjPSeq seq); 335 AjPSeq ajSeqNewRangeC(const char* txt, 336 ajint offset, ajint offend, AjBool rev); 337 AjPSeq ajSeqNewRangeS(const AjPStr str, 338 ajint offset, ajint offend, AjBool rev); 339 AjBool ajSeqConvertNum(const AjPSeq thys, const AjPSeqCvt cvt, 340 AjPStr *numseq); 341 AjBool ajSeqIsReversedTrue(const AjPSeq seq); 342 AjBool ajSeqIsReversed(const AjPSeq thys); 343 AjBool ajSeqIsSpeciesBsubtilis(const AjPSeq seq); 344 AjBool ajSeqIsSpeciesHuman(const AjPSeq seq); 345 AjBool ajSeqIsSpeciesMouse(const AjPSeq seq); 346 AjBool ajSeqIsSpeciesYeast(const AjPSeq seq); 347 AjBool ajSeqIsTaxon(const AjPSeq seq, ajuint taxid); 348 AjBool ajSeqIsTrimmed(const AjPSeq thys); 349 void ajSeqReverseDo(AjPSeq thys); 350 void ajSeqReverseForce(AjPSeq thys); 351 void ajSeqstrReverse(AjPStr* thys); 352 void ajSeqReverseOnly(AjPSeq thys); 353 ajuint ajSeqsetGetBegin(const AjPSeqset seq); 354 void ajSeqsetClear(AjPSeqset seq); 355 void ajSeqsetDel(AjPSeqset *thys); 356 void ajSeqsetDelarray(AjPSeqset **thys); 357 ajuint ajSeqsetGetEnd(const AjPSeqset seq); 358 ajint ajSeqsetFill(AjPSeqset seq); 359 const AjPStr ajSeqsetGetFormat(const AjPSeqset thys); 360 const char* ajSeqsetGetNameC(const AjPSeqset thys); 361 const AjPStr ajSeqsetGetNameS(const AjPSeqset thys); 362 ajint ajSeqsetGetOffend(const AjPSeqset seq); 363 ajint ajSeqsetGetOffset(const AjPSeqset seq); 364 ajint ajSeqsetGetRange(const AjPSeqset thys, ajint* begin, ajint* end); 365 const AjPSeq ajSeqsetGetseqSeq(const AjPSeqset thys, ajuint i); 366 const char* ajSeqsetGetseqSeqC(const AjPSeqset thys, ajuint i); 367 const AjPStr ajSeqsetGetseqSeqS(const AjPSeqset thys, ajuint i); 368 AjPSeq* ajSeqsetGetSeqarray(const AjPSeqset thys); 369 ajint ajSeqsetGetTotlength(const AjPSeqset seq); 370 const AjPStr ajSeqsetGetUsa(const AjPSeqset thys); 371 const AjPStr ajSeqsetGetFilename(const AjPSeqset thys); 372 AjBool ajSeqsetIsDna(const AjPSeqset thys); 373 AjBool ajSeqsetIsNuc(const AjPSeqset thys); 374 AjBool ajSeqsetIsProt(const AjPSeqset thys); 375 AjBool ajSeqsetIsRna(const AjPSeqset thys); 376 ajuint ajSeqsetGetLen(const AjPSeqset seq); 377 const char* ajSeqsetGetseqAccC(const AjPSeqset seq, ajuint i); 378 const AjPStr ajSeqsetGetseqAccS(const AjPSeqset seq, ajuint i); 379 const char* ajSeqsetGetseqNameC(const AjPSeqset seq, ajuint i); 380 const AjPStr ajSeqsetGetseqNameS(const AjPSeqset seq, ajuint i); 381 AjPSeqset ajSeqsetNew(void); 382 void ajSeqSetOffsets(AjPSeq seq, ajint ioff, ajint ioriglen); 383 void ajSeqSetRange(AjPSeq seq, ajint ibegin, ajint iend); 384 void ajSeqSetRangeRev(AjPSeq seq, ajint ibegin, ajint iend); 385 void ajSeqsetReverse(AjPSeqset thys); 386 void ajSeqsetSetRange(AjPSeqset seq, ajint ibegin, ajint iend); 387 ajuint ajSeqsetGetSize(const AjPSeqset seq); 388 void ajSeqsetFmtLower(AjPSeqset seq); 389 void ajSeqsetFmtUpper(AjPSeqset seq); 390 float ajSeqsetGetTotweight(const AjPSeqset seq); 391 void ajSeqsetSortLen(AjPSeqset seq); 392 void ajSeqsetTrim(AjPSeqset thys); 393 float ajSeqsetGetseqWeight(const AjPSeqset seq, ajuint i); 394 void ajSeqFmtLower(AjPSeq thys); 395 void ajSeqFmtUpper(AjPSeq thys); 396 void ajSeqTagRev(AjPSeq seq); 397 void ajSeqTrace(const AjPSeq seq); 398 void ajSeqTraceTitle(const AjPSeq seq, const char* title); 399 void ajSeqTrim(AjPSeq thys); 400 ajuint ajSeqGetBeginTrue(const AjPSeq seq); 401 ajuint ajSeqGetEndTrue(const AjPSeq seq); 402 ajuint ajSeqGetLenTrue(const AjPSeq seq); 403 ajint ajSeqCalcTruepos(const AjPSeq thys, ajint ipos); 404 ajint ajSeqCalcTrueposMin(const AjPSeq thys, ajint imin, ajint ipos); 405 406 /* 407 ** End of prototype definitions 408 */ 409 410 /* 411 ** These prototypes do not have any corresponding .c code so cannot 412 ** go into the block above, otherwise the VC compilation will fail 413 */ 414 415 const char* ajSeqdivGetDdbj(const AjPStr divi); 416 AjBool ajSeqdivSetDdbj(AjPStr *Pdivi, const AjPStr divembl); 417 const char* ajSeqmolGetDdbj(const AjPStr mol); 418 AjBool ajSeqmolSetDdbj(AjPStr *mol, const AjPStr molddbj); 419 420 /* End of prototypes without C code */ 421 422 423 424 425 #ifdef AJ_COMPILE_DEPRECATED_BOOK 426 #endif /* AJ_COMPILE_DEPRECATED_BOOK */ 427 428 #ifdef AJ_COMPILE_DEPRECATED 429 430 __deprecated ajint ajSeqallBegin(const AjPSeqall seq); 431 __deprecated ajint ajSeqallEnd(const AjPSeqall seq); 432 __deprecated ajint ajSeqallGetRange(const AjPSeqall seq, 433 ajint* begin, ajint* end); 434 __deprecated void ajSeqsetToLower(AjPSeqset seqset); 435 __deprecated void ajSeqsetToUpper(AjPSeqset seqset); 436 437 __deprecated AjPSeq ajSeqNewC(const char* seq, const char* name); 438 __deprecated AjPSeq ajSeqNewStr(const AjPStr str); 439 __deprecated AjPSeq ajSeqNewRange(const AjPStr seq, 440 ajint offset, ajint offend, 441 AjBool rev); 442 __deprecated AjPSeq ajSeqNewRangeCI(const char* seq, ajint len, 443 ajint offset, ajint offend, 444 AjBool rev); 445 __deprecated AjPSeq ajSeqNewL(size_t size); 446 __deprecated AjPSeq ajSeqNewS(const AjPSeq seq); 447 448 __deprecated void ajSeqAssAcc(AjPSeq thys, const AjPStr str); 449 __deprecated void ajSeqAssAccC(AjPSeq thys, const char* text); 450 __deprecated void ajSeqAssDesc(AjPSeq thys, const AjPStr str); 451 __deprecated void ajSeqAssDescC(AjPSeq thys, const char* text); 452 __deprecated void ajSeqAssEntry(AjPSeq thys, const AjPStr str); 453 __deprecated void ajSeqAssEntryC(AjPSeq thys, const char* text); 454 __deprecated void ajSeqAssFile(AjPSeq thys, const AjPStr str); 455 __deprecated void ajSeqAssFileC(AjPSeq thys, const char* text); 456 __deprecated void ajSeqAssFull(AjPSeq thys, const AjPStr str); 457 __deprecated void ajSeqAssFullC(AjPSeq thys, const char* text); 458 __deprecated void ajSeqAssGi(AjPSeq thys, const AjPStr str); 459 __deprecated void ajSeqAssGiC(AjPSeq thys, const char* text); 460 __deprecated void ajSeqAssName(AjPSeq thys, const AjPStr str); 461 __deprecated void ajSeqAssNameC(AjPSeq thys, const char* text); 462 __deprecated void ajSeqAssSeq(AjPSeq seq, const AjPStr str); 463 __deprecated void ajSeqAssSeqC(AjPSeq thys, const char* text); 464 __deprecated void ajSeqAssSeqCI(AjPSeq thys, const char* text, 465 ajint ilen); 466 __deprecated void ajSeqAssSvC(AjPSeq thys, const char* text); 467 __deprecated void ajSeqAssSv(AjPSeq thys, const AjPStr str); 468 __deprecated void ajSeqAssUfo(AjPSeq thys, const AjPStr str); 469 __deprecated void ajSeqAssUfoC(AjPSeq thys, const char* text); 470 __deprecated void ajSeqAssUsa(AjPSeq thys, const AjPStr str); 471 __deprecated void ajSeqAssUsaC(AjPSeq thys, const char* text); 472 473 __deprecated void ajSeqSetRangeDir(AjPSeq seq, 474 ajint ibegin, ajint iend, 475 AjBool rev); 476 __deprecated void ajSeqReplace(AjPSeq thys, const AjPStr seq); 477 __deprecated void ajSeqReplaceC(AjPSeq thys, const char* seq); 478 __deprecated void ajSeqMakeUsa(AjPSeq thys, const AjPSeqin seqin); 479 __deprecated void ajSeqMakeUsaS(const AjPSeq thys, 480 const AjPSeqin seqin, AjPStr* usa); 481 __deprecated void ajSeqCompOnly(AjPSeq thys); 482 __deprecated void ajSeqToLower(AjPSeq thys); 483 __deprecated void ajSeqToUpper(AjPSeq thys); 484 __deprecated void ajSeqRevOnly(AjPSeq thys); 485 __deprecated AjBool ajSeqReverse(AjPSeq thys); 486 487 __deprecated const AjPStr ajSeqGetAcc(const AjPSeq thys); 488 __deprecated ajint ajSeqBegin(const AjPSeq seq); 489 __deprecated ajint ajSeqTrueBegin(const AjPSeq seq); 490 __deprecated const AjPStr ajSeqGetDesc(const AjPSeq thys); 491 __deprecated ajint ajSeqEnd(const AjPSeq seq); 492 __deprecated ajint ajSeqTrueEnd(const AjPSeq seq); 493 __deprecated const AjPStr ajSeqGetEntry(const AjPSeq thys); 494 __deprecated AjPFeattable ajSeqCopyFeat(const AjPSeq thys); 495 __deprecated const AjPStr ajSeqGetGi(const AjPSeq thys); 496 __deprecated ajint ajSeqLen(const AjPSeq seq); 497 __deprecated ajint ajSeqTrueLen(const AjPSeq seq); 498 __deprecated const char* ajSeqName(const AjPSeq seq); 499 __deprecated const AjPStr ajSeqGetName(const AjPSeq thys); 500 __deprecated ajint ajSeqOffend(const AjPSeq seq); 501 __deprecated ajint ajSeqOffset(const AjPSeq seq); 502 __deprecated AjBool ajSeqGetReverse(const AjPSeq thys); 503 __deprecated AjBool ajSeqGetReversed(const AjPSeq thys); 504 505 __deprecated const AjPStr ajSeqStr(const AjPSeq thys); 506 __deprecated const char* ajSeqChar(const AjPSeq thys); 507 __deprecated AjPStr ajSeqStrCopy(const AjPSeq thys); 508 __deprecated char* ajSeqCharCopy(const AjPSeq seq); 509 __deprecated char* ajSeqCharCopyL(const AjPSeq seq, size_t size); 510 __deprecated const AjPStr ajSeqGetSv(const AjPSeq thys); 511 __deprecated const AjPStr ajSeqGetTax(const AjPSeq thys); 512 __deprecated const AjPStr ajSeqGetUsa(const AjPSeq thys); 513 514 __deprecated AjBool ajSeqRev(const AjPSeq thys); 515 __deprecated ajint ajSeqCheckGcg(const AjPSeq thys); 516 __deprecated void ajSeqCount(const AjPSeq thys, ajint *b); 517 518 __deprecated ajint ajSeqPos(const AjPSeq thys, ajint ipos); 519 __deprecated ajint ajSeqPosI(const AjPSeq thys, 520 ajint imin, ajint ipos); 521 __deprecated ajint ajSeqPosII(ajint ilen, ajint imin, ajint ipos); 522 523 __deprecated ajint ajSeqTruePos(const AjPSeq thys, ajint ipos); 524 __deprecated ajint ajSeqTruePosI(const AjPSeq thys, ajint imin, 525 ajint ipos); 526 __deprecated ajint ajSeqTruePosII(ajint ilen, ajint imin, ajint ipos); 527 528 __deprecated void ajSeqallReverse(AjPSeqall thys); 529 __deprecated void ajSeqallToLower(AjPSeqall seqall); 530 __deprecated void ajSeqallToUpper(AjPSeqall seqall); 531 __deprecated void ajSeqReverseStr(AjPStr* thys); 532 __deprecated void ajSeqCompOnlyStr(AjPStr* thys); 533 534 __deprecated float ajSeqMW(const AjPStr seq); 535 __deprecated ajuint ajSeqCrc(const AjPStr seq); 536 537 __deprecated void ajSeqCvtDel(AjPSeqCvt* thys); 538 __deprecated ajint ajSeqCvtK(const AjPSeqCvt thys, char ch); 539 __deprecated ajint ajSeqCvtKS(const AjPSeqCvt thys, const AjPStr ch); 540 __deprecated ajint ajSeqCvtKSRow(const AjPSeqCvt thys, 541 const AjPStr ch); 542 __deprecated ajint ajSeqCvtKSColumn(const AjPSeqCvt thys, 543 const AjPStr ch); 544 __deprecated ajint ajSeqCvtLen(const AjPSeqCvt thys); 545 __deprecated AjPSeqCvt ajSeqCvtNew(const char* bases); 546 __deprecated AjPSeqCvt ajSeqCvtNewText(const char* bases); 547 __deprecated AjPSeqCvt ajSeqCvtNewZero(const char* bases); 548 __deprecated AjPSeqCvt ajSeqCvtNewZeroS(const AjPPStr bases, ajint n); 549 __deprecated AjPSeqCvt ajSeqCvtNewZeroSS(const AjPPStr bases, ajint n, 550 const AjPPStr rbases, ajint rn); 551 __deprecated void ajSeqCvtTrace(const AjPSeqCvt cvt); 552 553 __deprecated AjBool ajIsAccession(const AjPStr accnum); 554 __deprecated const AjPStr ajIsSeqversion(const AjPStr sv); 555 __deprecated ajint ajSeqallLen(const AjPSeqall seqall); 556 __deprecated const AjPStr ajSeqallGetNameSeq(const AjPSeqall thys); 557 __deprecated void ajSeqComplementOnly(AjPSeq pthis); 558 __deprecated void ajSeqstrComplementOnly(AjPStr* thys); 559 __deprecated ajuint ajSeqCalcCrc(const AjPSeq seq); 560 __deprecated void ajSeqDefName(AjPSeq thys, const AjPStr setname, 561 AjBool multi); 562 __deprecated ajint ajSeqFill(AjPSeq seq, ajint len); 563 __deprecated ajint ajSeqGapCount(const AjPSeq thys); 564 __deprecated ajint ajSeqGapCountS(const AjPStr str); 565 __deprecated void ajSeqGapStandardS(AjPStr thys, char gapch); 566 __deprecated void ajSeqMod(AjPSeq thys); 567 __deprecated AjBool ajSeqNum(const AjPSeq thys, const AjPSeqCvt cvt, 568 AjPStr *numseq); 569 __deprecated AjBool ajSeqNumS(const AjPStr thys, const AjPSeqCvt cvt, 570 AjPStr *numseq); 571 __deprecated ajint ajSeqsetBegin(const AjPSeqset seq); 572 __deprecated ajint ajSeqsetEnd(const AjPSeqset seq); 573 __deprecated const AjPStr ajSeqsetGetName(const AjPSeqset thys); 574 __deprecated const AjPSeq ajSeqsetGetSeq(const AjPSeqset thys, ajint i); 575 __deprecated AjPSeq* ajSeqsetGetSeqArray(const AjPSeqset thys); 576 __deprecated ajint ajSeqsetLen(const AjPSeqset seq); 577 __deprecated const AjPStr ajSeqsetName(const AjPSeqset seq, ajint i); 578 __deprecated const AjPStr ajSeqsetAcc(const AjPSeqset seq, ajint i); 579 __deprecated const char* ajSeqsetSeq(const AjPSeqset seq, ajint i); 580 __deprecated ajint ajSeqsetSize(const AjPSeqset seq); 581 __deprecated float ajSeqsetTotweight(const AjPSeqset seq); 582 __deprecated float ajSeqsetWeight(const AjPSeqset seq, ajint i); 583 __deprecated void ajSeqTraceT(const AjPSeq seq, const char* title); 584 585 #endif /* AJ_COMPILE_DEPRECATED */ 586 587 588 589 590 AJ_END_DECLS 591 592 #endif /* !AJSEQ_H */ 593