/usr/lib/emboss/include/embshow.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 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 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 | /* @include embshow ***********************************************************
**
** General routines for sequence display.
**
** @author Copyright (c) 2000 Gary Williams
** @version $Revision: 1.21 $
** @modified $Date: 2011/10/18 14:24:25 $ 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 EMBSHOW_H
#define EMBSHOW_H
/* ========================================================================= */
/* ============================= include files ============================= */
/* ========================================================================= */
#include "ajdefine.h"
#include "ajstr.h"
#include "ajlist.h"
#include "ajseqdata.h"
#include "ajfeatdata.h"
#include "ajrange.h"
#include "ajtranslate.h"
AJ_BEGIN_DECLS
/* ========================================================================= */
/* =============================== constants =============================== */
/* ========================================================================= */
/* ========================================================================= */
/* ============================== public data ============================== */
/* ========================================================================= */
/* @enum ShowEValtype *********************************************************
**
** Descriptor object types
**
** @value SH_SEQ Sequence
** @value SH_BLANK Blank line
** @value SH_TICK Tick marks
** @value SH_TICKNUM Tick numbers
** @value SH_COMP Complementary strand
** @value SH_TRAN Protein translation
** @value SH_RE Restriction enzyme cut sites
** @value SH_FT Features
** @value SH_NOTE Notes
******************************************************************************/
typedef enum
{
SH_SEQ,
SH_BLANK,
SH_TICK,
SH_TICKNUM,
SH_COMP,
SH_TRAN,
SH_RE,
SH_FT,
SH_NOTE
} ShowEValtype;
/* @data EmbPShow *************************************************************
**
** NUCLEUS data structure for EmbPShow object for a sequence
**
** @attr list [AjPList] list of EmbPShowInfo structures
**
** @cc information about the sequence
**
** @attr seq [const AjPSeq] the sequence
** @attr nucleic [AjBool] ajTrue = the sequence is nucleic
** @attr offset [ajuint] offset to start numbering at
** @attr start [ajuint] sequence position to start printing at
** @attr end [ajuint] sequence position to stop printing at
**
** @cc information about the page layout
**
** @attr width [ajuint] width of sequence to display on each line
** @attr length [ajuint] length of a page (0 = indefinite)
** @attr margin [ajuint] margin for numbers
** @attr html [AjBool] ajTrue = format page for HTML
** @@
******************************************************************************/
typedef struct EmbSShow {
AjPList list;
const AjPSeq seq;
AjBool nucleic;
ajuint offset;
ajuint start;
ajuint end;
ajuint width;
ajuint length;
ajuint margin;
AjBool html;
} EmbOShow;
#define EmbPShow EmbOShow*
/* @data EmbPShowInfo *********************************************************
**
**
** The sequence and associated things to show are held in an ordered list
** of type EmbPShowInfo. This list is held in the structure EmbPShow.
**
** The things to show are displayed around the sequence in the order that
** they are held on the list.
**
** EmbPShowInfo holds the descriptor (one of EmbPShowBlank, EmbPShowTicks,
** EmbPShowSeq, EmbPShowComp, etc.) and the type of the descriptor (one of
** SH_BLANK, SH_TICKS, SH_SEQ, SH_COMP, etc. )
**
** Each descriptor (EmbPShowSeq, EmbPShowBlank, EmbPShowTicks, etc.) holds
** information that could be useful in displaying its type of information.
**
** So, for example:
**
** EmbPShow could have a list of:
** ----------------------------
**
** EmbPShowInfo->type=SH_BLANK
** | ->info=EmbPShowBlank
** |
** EmbPShowInfo->type=SH_TICKS
** | ->info=EmbPShowTicks
** |
** EmbPShowInfo->type=SH_SEQ
** | ->info=EmbPShowSeq
** |
** EmbPShowInfo->type=SH_COMP
** | ->info=EmbPShowComp
** |
** EmbPShowInfo->type=etc.
** | ->info=etc.
** |
** etc.
**
** @attr info [void*] Information descriptor (set of available descriptors)
** @attr type [ajint] Type of information (enumerated list)
** @attr Padding [char[4]] Padding to alignment boundary
** @@
******************************************************************************/
typedef struct EmbSShowInfo {
void * info;
ajint type;
char Padding[4];
} EmbOShowInfo;
#define EmbPShowInfo EmbOShowInfo*
/* @data EmbPShowSeq **********************************************************
**
** NUCLEUS data structure for sequence information, type = SH_SEQ
**
** @attr number [AjBool] ajTrue = number the sequence
** @attr threeletter [AjBool] ajTrue = display proteins in three letter code
** @attr upperrange [const AjPRange] range of sequence to uppercase
** @attr highlight [const AjPRange] range of sequence to colour in HTML
** @@
******************************************************************************/
typedef struct EmbSShowSeq {
AjBool number;
AjBool threeletter;
const AjPRange upperrange;
const AjPRange highlight;
} EmbOShowSeq;
#define EmbPShowSeq EmbOShowSeq*
/* blank line information, type = SH_BLANK */
/* @data EmbPShowBlank ********************************************************
**
** NUCLEUS data structure for blank line information, type = SH_BLANK
**
** @attr dummy [AjBool] Dummy attribute - no specific information needed
** AJNEW0() falls over if 0 bytes are allocated, so
** put in this dummy to pad the structure out
** @@
******************************************************************************/
typedef struct EmbSShowBlank {
AjBool dummy;
} EmbOShowBlank;
#define EmbPShowBlank EmbOShowBlank*
/* @data EmbPShowTicks ********************************************************
**
** NUCLEUS data structure for tick line information, type = SH_TICK
**
** @attr dummy [AjBool] Dummy attribute - no specific information needed
** AJNEW0() falls over if 0 bytes are allocated, so
** put in this dummy to pad the structure out
** @@
******************************************************************************/
typedef struct EmbSShowTicks {
AjBool dummy;
} EmbOShowTicks;
#define EmbPShowTicks EmbOShowTicks*
/* @data EmbPShowTicknum ******************************************************
**
** NUCLEUS data structure for tick number line information, type = SH_TICKNUM
**
** @attr dummy [AjBool] Dummy attribute - no specific information needed
** AJNEW0() falls over if 0 bytes are allocated, so
** put in this dummy to pad the structure out
** @@
******************************************************************************/
typedef struct EmbSShowTicknum {
AjBool dummy;
} EmbOShowTicknum;
#define EmbPShowTicknum EmbOShowTicknum*
/* @data EmbPShowTran *********************************************************
**
** NUCLEUS data structure for translation information, type = SH_TRAN
**
** @attr transeq [AjPSeq] Copy of our stored translation
** @attr trnTable [const AjPTrn] translation table
** @attr frame [ajint] 1,2,3,-1,-2 or -3 = frame to translate
** @attr threeletter [AjBool] ajTrue = display in three letter code
** @attr number [AjBool] ajTrue = number the translation
** @attr tranpos [ajuint] store of translation position for numbering
** @attr regions [const AjPRange] only translate in these regions,
** NULL = do all
** @attr orfminsize [ajuint] minimum size of ORF to display
** @attr lcinterorf [AjBool] ajTrue = put the inter-orf regions in lower case
** @attr firstorf [AjBool] ajTrue = beginning of the seq is a possible ORF
** @attr lastorf [AjBool] ajTrue = end of the seq is a possible ORF
** @attr showframe [AjBool] ajTrue = write the frame number
** @attr Padding [char[4]] Padding to alignment boundary
** @@
******************************************************************************/
typedef struct EmbSShowTran {
AjPSeq transeq;
const AjPTrn trnTable;
ajint frame;
AjBool threeletter;
AjBool number;
ajuint tranpos;
const AjPRange regions;
ajuint orfminsize;
AjBool lcinterorf;
AjBool firstorf;
AjBool lastorf;
AjBool showframe;
char Padding[4];
} EmbOShowTran;
#define EmbPShowTran EmbOShowTran*
/* @data EmbPShowComp *********************************************************
**
** NUCLEUS data structure for sequence complement information, type = SH_COMP
**
** @attr number [AjBool] ajTrue = number the complement
** @@
******************************************************************************/
typedef struct EmbSShowComp {
AjBool number;
} EmbOShowComp;
#define EmbPShowComp EmbOShowComp*
/* @data EmbPShowRE ***********************************************************
**
** NUCLEUS data structure for RE cut site information, type = SH_RE
**
** @attr sense [ajint] 1 or -1 = sense to display
** @attr flat [AjBool] ajTrue = display in flat format with recognition sites
** @attr matches [AjPList] list of AjPMatmatch matches
** @attr plasmid [AjBool] ajTrue = Circular (plasmid) sequence. Needed so
** that when we display sequences we can decide whether
** to show cuts that go past the origin in either
** direction
** @attr hits [ajuint] number of hits in list
** @attr sitelist [AjPList] list of EmbSShowREsite
** @@
******************************************************************************/
typedef struct EmbSShowRE {
ajint sense;
AjBool flat;
AjPList matches;
AjBool plasmid;
ajuint hits;
AjPList sitelist;
} EmbOShowRE;
#define EmbPShowRE EmbOShowRE*
/* @data EmbPShowFT ***********************************************************
**
** NUCLEUS data structure for Feature information, type = SH_FT
**
** @attr feat [AjPFeattable] Feature table
** @@
******************************************************************************/
typedef struct EmbSShowFT {
AjPFeattable feat;
} EmbOShowFT;
#define EmbPShowFT EmbOShowFT*
/* @data EmbPShowNote *********************************************************
**
** NUCLEUS data structure for annotation information, type = SH_NOTE
**
** @attr regions [const AjPRange] regions to annotate, NULL = no regions
** @@
******************************************************************************/
typedef struct EmbSShowNote {
const AjPRange regions;
} EmbOShowNote;
#define EmbPShowNote EmbOShowNote*
/********* assorted structures ***********/
/* @data EmbPShowREsite *******************************************************
**
** NUCLEUS data structure for Restriction Enzyme cut site position list node
**
** @attr name [AjPStr] name of Restriction Enzyme
** @attr pos [ajint] cut site position
** @attr Padding [char[4]] Padding to alignment boundary
** @@
******************************************************************************/
typedef struct EmbSShowREsite {
AjPStr name;
ajint pos;
char Padding[4];
} EmbOShowREsite;
#define EmbPShowREsite EmbOShowREsite*
/* ========================================================================= */
/* =========================== public functions ============================ */
/* ========================================================================= */
/*
** Prototype definitions
*/
EmbPShow embShowNew (const AjPSeq seq, ajint begin, ajint end, ajint width,
ajint length, ajint margin, AjBool html, ajint offset);
void embShowDel (EmbPShow* pthis);
void embShowAddSeq (EmbPShow thys, AjBool number, AjBool threeletter,
const AjPRange upperrange, const AjPRange colour);
void embShowAddBlank (EmbPShow thys);
void embShowAddTicks (EmbPShow thys);
void embShowAddTicknum (EmbPShow thys);
void embShowAddComp (EmbPShow thys, AjBool number);
void embShowAddTran (EmbPShow thys, const AjPTrn trnTable, ajint frame,
AjBool threeletter, AjBool number,
const AjPRange regions,
ajint orfminsize, AjBool lcinterorf,
AjBool firstorf, AjBool lastorf, AjBool showframe);
void embShowAddRE (EmbPShow thys, ajint sense, const AjPList restrictlist,
AjBool plasmid, AjBool flat);
void embShowAddFT (EmbPShow thys, const AjPFeattable feat);
void embShowAddNote (EmbPShow thys, const AjPRange regions);
void embShowPrint (AjPFile out, const EmbPShow thys);
void embShowUpperRange (AjPStr *line,
const AjPRange upperrange, ajuint pos);
void embShowColourRange (AjPStr *line,
const AjPRange colour, ajuint pos);
/*
** End of prototype definitions
*/
AJ_END_DECLS
#endif /* !EMBSHOW_H */
|