This file is indexed.

/usr/include/libGenome-1.3/libGenome/gnFragmentSpec.h is in libgenome-1.3-dev 1.3.1-8.

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
/////////////////////////////////////////////////////////////////////////////
// File:            gnFragmentSpec.h
// Purpose:         abstract Spec class
// Description:     Genome level spec class
// Changes:        
// Version:         libGenome 0.5.1 
// Author:          Aaron Darling 
// Modified by:     
// Copyright:       (c) Aaron Darling 
// Licenses:        See COPYING file for details 
/////////////////////////////////////////////////////////////////////////////
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif

#ifndef _gnFragmentSpec_h_
#define _gnFragmentSpec_h_

#include "libGenome/gnDefs.h"

#include <vector>
#include <string>

#include "libGenome/gnClone.h"
#include "libGenome/gnBaseFeature.h"
#include "libGenome/gnBaseHeader.h"
#include "libGenome/gnContigSpec.h"
#include "libGenome/gnMultiSpec.h"
#include "libGenome/gnException.h"


namespace genome {

/**
 * gnFragmentSpec contains a list of specs which make up a sequence
 * fragment.  It also contains a list of features which relate to
 * the sequence fragment.  Finally it contains a list of sequence
 * related header data.  This class is usually created and filled by
 * a file reader class like gnGBKSource.
 */
class GNDLLEXPORT gnFragmentSpec : public gnMultiSpec< gnContigSpec >
{
public:
	gnFragmentSpec();
	/**
	 * Destructor, frees memory.
	 */
	virtual ~gnFragmentSpec();
	/**
	 * Copy constructor.
	 * @param s the gnGenomeSpec to copy.
	 */
	gnFragmentSpec( const gnFragmentSpec& s);
	virtual gnFragmentSpec* Clone() const;
	virtual void Clear();
// Base Spec stuff
	virtual void SetReverseComplement( const boolean value );

//Multispec stuff
/*	virtual uint32 GetSpecListLength() const;
	virtual gnContigSpec* GetSpec( const uint32 i ) const;
	virtual gnContigSpec* GetSpecByBase( const gnSeqI baseI ) const;
	virtual void AddSpec( gnBaseSpec* spec, const uint32 i = UINT32_MAX );
	virtual void RemoveSpec( uint32 i );
*/
	virtual void CropStart( gnSeqI cropLen );
	virtual void CropEnd( gnSeqI cropLen );
	virtual uint32 AddFeature( gnBaseFeature* feat );
	virtual uint32 GetFeatureListLength() const;
	virtual gnBaseFeature* GetFeature( const uint32 i ) const;
	virtual void GetContainedFeatures(const gnLocation& lt, std::vector<gnBaseFeature*>& feature_vector, std::vector<uint32>& index_vector) const;
	virtual void GetIntersectingFeatures(const gnLocation& lt, std::vector<gnBaseFeature*>& feature_vector, std::vector<uint32>& index_vector) const;
	virtual void GetBrokenFeatures(const gnLocation& lt, std::vector<gnBaseFeature*>& feature_vector) const;
	virtual void RemoveFeature( const uint32 i );

	/**
	 * Copies a specified range of bases and returns a pointer to
	 * the resulting gnFragmentSpec.  You must delete the copy when you
	 * are finished with it.
	 * @param startI The first base pair to copy
	 * @param len The length of the piece to copy
	 * @return A copy of the gnFragmentSpec containing only the specified bases
	 */
	virtual gnFragmentSpec* CloneRange( const gnSeqI startI, const gnSeqI len ) const;

protected:
//	std::vector <gnContigSpec*> m_SpecList;
	//Feature stuff...
	std::vector <gnBaseFeature*> m_featureList;
	
}; // class gnFragmentSpec

inline
gnFragmentSpec* gnFragmentSpec::Clone() const{
	return new gnFragmentSpec(*this);
}
/*
inline
uint32 gnFragmentSpec::GetSpecListLength() const{
	return m_SpecList.size();
}

inline
gnContigSpec *gnFragmentSpec::GetSpec( const uint32 i ) const{
	if(i < m_SpecList.size())
		return m_SpecList[i];
	Throw_gnEx(ContigIndexOutOfBounds());
}

inline
gnContigSpec* gnFragmentSpec::GetSpecByBase( const gnSeqI baseI ) const{
	return m_SpecList[GetSpecIndexByBase(baseI)];
}

inline
void gnFragmentSpec::AddSpec( gnBaseSpec* spec, const uint32 i ){
	uint32 index = i == UINT32_MAX ? m_SpecList.size() : i;
	if(index <= m_SpecList.size()){
		m_SpecList.insert(m_SpecList.begin() + index, (gnContigSpec*)spec);
	}
}

inline
void gnFragmentSpec::RemoveSpec( uint32 i ){
	if(i < GetSpecListLength()){
		m_SpecList.erase(m_SpecList.begin() + i);
	}else
		Throw_gnEx(ContigIndexOutOfBounds());
}
*/
inline
uint32 gnFragmentSpec::AddFeature( gnBaseFeature* feat ) 
{
	m_featureList.push_back(feat);
	feat->SetSpec(this);
	return m_featureList.size()-1;
}
inline
uint32 gnFragmentSpec::GetFeatureListLength() const
{
	return m_featureList.size();
}
inline
gnBaseFeature* gnFragmentSpec::GetFeature(const uint32 i) const
{
	return m_featureList[i]->Clone();
}
inline
void gnFragmentSpec::RemoveFeature( const uint32 i) 
{
	if(i >= m_featureList.size())
		Throw_gnEx(FeatureIndexOutOfBounds());
	delete m_featureList[i];
	m_featureList.erase(m_featureList.begin() + i);
}


}	// end namespace genome

#endif
	// _gnFragmentSpec_h_