This file is indexed.

/usr/include/clustalo/clustal/seq.h is in libclustalo-dev 1.2.1-2.

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
/*********************************************************************
 * Clustal Omega - Multiple sequence alignment
 *
 * Copyright (C) 2010 University College Dublin
 *
 * Clustal-Omega is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation; either version 2 of the
 * License, or (at your option) any later version.
 *
 * This file is part of Clustal-Omega.
 *
 ********************************************************************/

/*
 *  RCS $Id: seq.h 289 2013-09-17 10:09:37Z fabian $
 */

#ifndef CLUSTALO_SEQ_H
#define CLUSTALO_SEQ_H

#include "squid/squid.h"

#include "util.h"


/**
 * int-encoded sequence types.
 * these are in sync with squid's seqtypes and only used for
 * convenience here
 */
#define SEQTYPE_UNKNOWN kOtherSeq
#define SEQTYPE_DNA kDNA
#define SEQTYPE_RNA kRNA
#define SEQTYPE_PROTEIN kAmino

/* Alphabets are defined in squid.h: AMINO_ALPHABET, DNA_ALPHABET,
 * RNA_ALPHABET (all uppercase)
 */
#define AMINOACID_ANY 'X'
#define NUCLEOTIDE_ANY 'N'

/**
 * @brief structure for storing multiple sequences
 *
 */
typedef struct {
    int nseqs; /**< number of sequences */
    int seqtype; /**< sequence type */
    char *filename; /**< input file / source of sequences */
    bool aligned; /**< true if all seqs are same length **/
    
    /** (working) sequence residues as char pointer.
     * range for first index: 0--nseq-1.
     * changes during alignment.
     */
    char **seq;
    
    /** original sequence residues as char pointer.
     * range for first index: 0--nseq-1.
     * only set during input
     */
    char **orig_seq;
    
  /** order in which sequences appear in guide-tree
   */
  int *tree_order;

    /**
     * @brief Squid's sequence info structure.
     * Index range: 0--nseq-1.
     *
     * extra data are available:
     * int flags;
     *
     * name:
     * char name[SQINFO_NAMELEN];
     *
     * database identifier:
     * char id[SQINFO_NAMELEN];
     *
     * database accession no:
     * char acc[SQINFO_NAMELEN];
     *
     * description:      
     * char desc[SQINFO_DESCLEN];
     *
     * length of this seq, incl gaps in our case!:
     * int len;
     *
     * start position on source seq (valid range: 1..len):
     * int start;
     *
     * end position on source seq (valid range: 1..len):
     * int stop;
     *
     * original length of source seq:
     * int olen;
     *
     * kRNA, kDNA, kAmino, or kOther:
     * int type;
     *
     * secondary structure string (index range: 0..len-1):
     * char *ss;
     *
     * percent side chain surface access (index range: 0..len-1):
     * char *sa;                  
     * 
     * @see squid.h
     * @see LogSqInfo()
     *
     */
    SQINFO *sqinfo; 
} mseq_t;

extern void
AliStat(mseq_t *prMSeq, bool bSampling, bool bReportAll);

extern void
AddSeq(mseq_t **prMSeqDest_p, char *pcSeqName, char *pcSeqRes);

extern void
SeqSwap(mseq_t *mseq, int i, int j);

extern void
DealignMSeq(mseq_t *mseq);

extern const char *
SeqTypeToStr(int seqtype);

extern int
ReadSequences(mseq_t *prMSeq_p, char *pcSeqFile, 
              int iSeqType,  int iSeqFmt, bool bIsProfile, bool bDealignInputSeqs, 
              int iMaxNumSeq, int iMaxSeqLen);

extern void
NewMSeq(mseq_t **mseq);

extern void
FreeMSeq(mseq_t **mseq);

extern void
CopyMSeq(mseq_t **prMSeqDest_p, mseq_t *prMSeqSrc);

extern void
LogSqInfo(SQINFO *sqinfo);

extern int
FindSeqName(char *seqname, mseq_t *mseq);

extern int
WriteAlignment(mseq_t *mseq, const char *aln_outfile, int msafile_format, int iWrap, bool bResno);

extern void
DealignSeq(char *seq);

extern void
ShuffleMSeq(mseq_t *prMSeq);

extern void
SortMSeqByLength(mseq_t *prMSeq, const char cOrder);

void
JoinMSeqs(mseq_t **prMSeqDest_p, mseq_t *prMSeqToAdd);

bool
SeqsAreAligned(mseq_t *prMSeq, bool bIsProfile, bool bDealignInputSeqs);

#endif