/usr/include/libMems-1.6/libMems/SuperInterval.h is in libmems-1.6-dev 1.6.0+4725-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 | #ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#ifndef __SuperInterval_h__
#define __SuperInterval_h__
#include "libMems/Interval.h"
namespace mems {
/**
* A class that stores an alignment and coordinate mapping between collinear segments of an ancestral genome and two
* descendant genomes.
*/
class SuperInterval
{
public:
SuperInterval();
/**
* Creates a new SuperInterval.
*/
SuperInterval( const mems::Interval& reference_iv );
SuperInterval(const SuperInterval& siv);
SuperInterval& operator=(const SuperInterval& siv);
~SuperInterval(){}
/** Returns the length */
virtual gnSeqI Length() const { return length; }
/** Sets the length to @param len */
virtual void SetLength( gnSeqI len );
virtual int64 LeftEnd() const { return left_end; }
virtual void SetLeftEnd( const int64& left_end ) { this->left_end = left_end; }
mems::Interval reference_iv;
/** the index of the SuperInterval this is aligned to in c1 */
size_t c1_siv;
/** the index of the SuperInterval this is aligned to in c2 */
size_t c2_siv;
/** the index of the SuperInterval this is aligned to in the parent */
size_t parent_siv;
void CropLeft( gnSeqI amount );
void CropRight( gnSeqI amount );
bool operator<( const SuperInterval& si ) const{ return left_end < si.left_end; }
void ValidateSelf() const;
void swap( SuperInterval& other )
{
reference_iv.swap(other.reference_iv);
std::swap(c1_siv, other.c1_siv);
std::swap(c2_siv, other.c2_siv);
std::swap(parent_siv, other.parent_siv);
std::swap(left_end, other.left_end);
std::swap(length, other.length);
}
protected:
int64 left_end;
int64 length;
};
} // namespace mems
namespace std {
template<> inline
void swap( mems::SuperInterval& a, mems::SuperInterval& b )
{
a.swap(b);
}
}
#endif //__SuperInterval_h__
|