Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

gnMultiSpec Class Reference

This class defines an interface for specs which have multiple subspecs containing sequence data. More...

#include <gnMultiSpec.h>

Inheritance diagram for gnMultiSpec:

gnBaseSpec gnClone gnFragmentSpec gnGenomeSpec List of all members.

Public Member Functions

 gnMultiSpec ()
virtual ~gnMultiSpec ()
 Destructor, frees memory.

virtual gnMultiSpec * Clone () const=0
virtual gnSeqI GetLength () const
 Get the length of all the sequence data covered by this spec.

virtual void CropStart (gnSeqI cropLen)
 Crop the first cropLen bases from the sequence.

virtual void CropEnd (gnSeqI cropLen)
 Crop the last cropLen bases from the sequence.

virtual string GetSourceName () const
virtual void SetSourceName (const string &sourceName)
virtual void Clear ()
 Clears all data from this spec.

virtual boolean SeqRead (const gnSeqI start, gnSeqC *buf, uint32 &bufLen, const uint32 contigI) const
 Reads sequence data from this spec.

virtual uint32 GetSpecListLength () const=0
 Returns the number of subspecs this spec contains.

virtual gnBaseSpecGetSpec (const uint32 i) const=0
 Get the spec at index i in the list of subspecs.

virtual gnBaseSpecGetSpecByBase (const gnSeqI baseI) const=0
 Get the spec from the list of subspecs which contains the specified base pair.

virtual uint32 GetSpecIndexByBase (const gnSeqI baseI) const
 Get the index of the subspec which contains the specified base pair.

virtual uint32 GetSpecIndexByName (const string &name) const
 Get the index of the spec which has the given name.

virtual gnSeqI GetSpecStartBase (const uint32 specI) const
 Get the starting base pair, in this spec's sequence, of the given subspec.

virtual gnSeqI GetSpecEndBase (const uint32 specI) const
 Get the ending base pair, in this spec's sequence, of the given subspec.

virtual void AddSpec (gnBaseSpec *spec, const uint32 i=UINT32_MAX)=0
 Add a subspec to this spec.

virtual void RemoveSpec (uint32 i)=0
 Remove a subspec from this spec.

virtual uint32 GetHeaderListLength () const
 Returns the number of headers this spec contains.

virtual void AddHeader (gnBaseHeader *head, const uint32 i=UINT32_MAX)
 Add a header to this spec, adds to the end of the header list by default.

virtual gnBaseHeaderGetHeader (const uint32 i) const
 Get the headers at index i in the list of headers.

virtual gnBaseHeaderGetHeader (const string &name, uint32 &i) const
 Find the first header with the specified name, starting at index i.

virtual void RemoveHeader (uint32 i)
 Remove a header from this spec.

uint32 AddFeature (gnBaseFeature *feat)
 Add a feature to this spec.

virtual uint32 GetFeatureListLength () const=0
 Returns the number of features this spec contains.

virtual gnBaseFeatureGetFeature (const uint32 i) const=0
 Get the feature at index i in the list of features.

virtual void GetContainedFeatures (const gnLocation &lt, vector< gnBaseFeature * > &feature_vector, vector< uint32 > &index_vector) const=0
 Creates a list of all features which are contained by coordinates specified.

virtual void GetIntersectingFeatures (const gnLocation &lt, vector< gnBaseFeature * > &feature_vector, vector< uint32 > &index_vector) const=0
 Creates a list of all features which intersect the coordinates specified.

virtual void GetBrokenFeatures (const gnLocation &lt, vector< gnBaseFeature * > &feature_vector) const=0
 Creates a list of features which may have been broken by an edit.

virtual void RemoveFeature (const uint32 i)=0
 Remove a feature from this spec.

virtual gnBaseSpecCloneRange (const uint32 startI, const uint32 len) const=0
virtual string GetName () const
 Get the name of the contig associated with this spec.

virtual void SetName (const string &name)
 Sets the name for this contig.

virtual boolean IsReverseComplement () const
 Returns true if this spec is read reverse complement.

virtual boolean IsCircular () const
 Returns true if this spec's sequence is circular.

virtual void SetReverseComplement (const boolean value)=0
 Sets the reverse complement bit for this spec.

virtual void SetCircular (const boolean value)
 Sets whether this spec should be read circular.


Protected Attributes

string m_sourceName
vector< gnBaseHeader * > m_headerList
boolean m_reverseComplement
boolean m_circular
string m_name

Detailed Description

This class defines an interface for specs which have multiple subspecs containing sequence data.

Definition at line 29 of file gnMultiSpec.h.


Constructor & Destructor Documentation

gnMultiSpec::gnMultiSpec   [inline]
 

Definition at line 32 of file gnMultiSpec.h.

virtual gnMultiSpec::~gnMultiSpec   [inline, virtual]
 

Destructor, frees memory.

Definition at line 36 of file gnMultiSpec.h.


Member Function Documentation

uint32 gnMultiSpec::AddFeature gnBaseFeature   feat
 

Add a feature to this spec.

Parameters:
feat The feature to add.
Returns:
True if successful

Reimplemented in gnFragmentSpec, and gnGenomeSpec.

void gnMultiSpec::AddHeader gnBaseHeader   head,
const uint32    i = UINT32_MAX
[virtual]
 

Add a header to this spec, adds to the end of the header list by default.

Parameters:
head The header to add.
i The header to insert before. If i is larger than the size of the header list the header will be added to the end of the list.

Definition at line 125 of file gnMultiSpec.cpp.

References m_headerList, uint32, and UINT32_MAX.

Referenced by gnSequence::addHeader(), gnFASSource::GetSpec(), gnSEQSource::ParseStream(), and gnGBKSource::ParseStream().

virtual void gnMultiSpec::AddSpec gnBaseSpec   spec,
const uint32    i = UINT32_MAX
[pure virtual]
 

Add a subspec to this spec.

Throws an exception if the insertion index i is out of range

Parameters:
spec The subspec to add.
i The subspec to insert before
Returns:
True if successful

Implemented in gnFragmentSpec, and gnGenomeSpec.

void gnMultiSpec::Clear   [virtual]
 

Clears all data from this spec.

Reimplemented from gnBaseSpec.

Reimplemented in gnFragmentSpec, and gnGenomeSpec.

Definition at line 23 of file gnMultiSpec.cpp.

References gnBaseSpec::Clear(), m_headerList, and uint32.

Referenced by gnGenomeSpec::Clear(), and gnFragmentSpec::Clear().

virtual gnMultiSpec* gnMultiSpec::Clone   const [pure virtual]
 

Implements gnBaseSpec.

Implemented in gnFragmentSpec, and gnGenomeSpec.

virtual gnBaseSpec* gnBaseSpec::CloneRange const uint32    startI,
const uint32    len
const [pure virtual, inherited]
 

Implemented in gnContigSpec.

void gnMultiSpec::CropEnd gnSeqI    cropLen [virtual]
 

Crop the last cropLen bases from the sequence.

CropEnd will delete features and headers associated with the cropped bases.

Parameters:
cropLen The number of base pairs to delete from the end.

Implements gnBaseSpec.

Reimplemented in gnFragmentSpec.

Definition at line 104 of file gnMultiSpec.cpp.

References gnBaseSpec::CropEnd(), gnBaseSpec::GetLength(), GetLength(), GetSpec(), GetSpecListLength(), gnSeqI, RemoveSpec(), and uint32.

Referenced by gnFragmentSpec::CropEnd(), gnSequence::erase(), gnSequence::insert(), and gnSequence::splitContig().

void gnMultiSpec::CropStart gnSeqI    cropLen [virtual]
 

Crop the first cropLen bases from the sequence.

CropStart will delete features and headers associated with the cropped bases.

Parameters:
cropLen The number of base pairs to delete from the beginning.

Implements gnBaseSpec.

Reimplemented in gnFragmentSpec.

Definition at line 85 of file gnMultiSpec.cpp.

References gnBaseSpec::CropStart(), gnBaseSpec::GetLength(), GetSpec(), GetSpecListLength(), gnSeqI, RemoveSpec(), and uint32.

Referenced by gnFragmentSpec::CropStart(), gnSequence::insert(), and gnSequence::splitContig().

virtual void gnMultiSpec::GetBrokenFeatures const gnLocation   lt,
vector< gnBaseFeature * > &    feature_vector
const [pure virtual]
 

Creates a list of features which may have been broken by an edit.

Parameters:
lt The coordinates containing the features to return.
feature_vector The vector to store features in.

Implemented in gnFragmentSpec, and gnGenomeSpec.

virtual void gnMultiSpec::GetContainedFeatures const gnLocation   lt,
vector< gnBaseFeature * > &    feature_vector,
vector< uint32 > &    index_vector
const [pure virtual]
 

Creates a list of all features which are contained by coordinates specified.

Parameters:
lt The coordinates containing the features to return.
feature_vector The vector to store features in.
index_vector A vector of indices which correspond to the features.

Implemented in gnFragmentSpec, and gnGenomeSpec.

virtual gnBaseFeature* gnMultiSpec::GetFeature const uint32    i const [pure virtual]
 

Get the feature at index i in the list of features.

Parameters:
i The index of the feature
Returns:
The feature.

Implemented in gnFragmentSpec, and gnGenomeSpec.

virtual uint32 gnMultiSpec::GetFeatureListLength   const [pure virtual]
 

Returns the number of features this spec contains.

Returns:
The number of features this spec contains.

Implemented in gnFragmentSpec, and gnGenomeSpec.

gnBaseHeader * gnMultiSpec::GetHeader const string &    name,
uint32   i
const [virtual]
 

Find the first header with the specified name, starting at index i.

Parameters:
name The name of the header to find.
i The index to start looking at.
Returns:
The header or NULL if none was found.

Definition at line 131 of file gnMultiSpec.cpp.

References HeaderIndexOutOfBounds(), m_headerList, and Throw_gnEx.

gnBaseHeader * gnMultiSpec::GetHeader const uint32    i const [inline, virtual]
 

Get the headers at index i in the list of headers.

Throws a HeaderIndexOutOfBounds exception if a nonexistant header is referenced

Parameters:
i The index of the header
Returns:
The header.

Definition at line 197 of file gnMultiSpec.h.

References m_headerList.

Referenced by gnSequence::getHeader(), gnGBKSource::Write(), gnFASSource::Write(), gnDNXSource::Write(), and gnGBKSource::WriteHeader().

uint32 gnMultiSpec::GetHeaderListLength   const [inline, virtual]
 

Returns the number of headers this spec contains.

Returns:
The number of headers this spec contains.

Definition at line 192 of file gnMultiSpec.h.

References m_headerList, and uint32.

Referenced by gnSequence::getHeaderListLength(), gnSEQSource::ParseStream(), gnGBKSource::ParseStream(), and gnGBKSource::Write().

virtual void gnMultiSpec::GetIntersectingFeatures const gnLocation   lt,
vector< gnBaseFeature * > &    feature_vector,
vector< uint32 > &    index_vector
const [pure virtual]
 

Creates a list of all features which intersect the coordinates specified.

Parameters:
lt The coordinates intersecting the features to return.
feature_vector The vector to store features in.
index_vector A vector of indices which correspond to the features.

Implemented in gnFragmentSpec, and gnGenomeSpec.

gnSeqI gnMultiSpec::GetLength   const [virtual]
 

Get the length of all the sequence data covered by this spec.

Returns:
This spec's length in base pairs.

Implements gnBaseSpec.

Definition at line 32 of file gnMultiSpec.cpp.

References gnBaseSpec::GetLength(), GetSpec(), GetSpecListLength(), gnSeqI, and uint32.

Referenced by gnGenomeSpec::AddFeature(), gnGenomeSpec::CloneRange(), gnFragmentSpec::CloneRange(), gnSequence::contigLength(), CropEnd(), gnSequence::erase(), gnGenomeSpec::GetBrokenFeatures(), gnGenomeSpec::GetContainedFeatures(), gnSEQSource::GetContigSeqLength(), gnGBKSource::GetContigSeqLength(), gnDNXSource::GetContigSeqLength(), gnGenomeSpec::GetIntersectingFeatures(), gnSequence::insert(), gnSequence::length(), gnSequence::size(), and gnGBKSource::Write().

string gnBaseSpec::GetName   const [inline, virtual, inherited]
 

Get the name of the contig associated with this spec.

Returns:
The contig name or an empty string if none exists.

Definition at line 116 of file gnBaseSpec.h.

References gnBaseSpec::m_name.

Referenced by gnSequence::contigName(), gnDNXSource::GetContigID(), gnDNXSource::GetContigName(), GetSpecIndexByName(), gnDNXSource::HasContig(), gnGBKSource::Write(), and gnDNXSource::Write().

string gnMultiSpec::GetSourceName   const [inline, virtual]
 

Definition at line 206 of file gnMultiSpec.h.

References m_sourceName.

Referenced by gnDNXSource::Write().

virtual gnBaseSpec* gnMultiSpec::GetSpec const uint32    i const [pure virtual]
 

Get the spec at index i in the list of subspecs.

Parameters:
i The index of the spec
Returns:
The spec.

Implemented in gnFragmentSpec, and gnGenomeSpec.

Referenced by CropEnd(), CropStart(), GetLength(), GetSpecEndBase(), GetSpecIndexByBase(), GetSpecIndexByName(), GetSpecStartBase(), and SeqRead().

virtual gnBaseSpec* gnMultiSpec::GetSpecByBase const gnSeqI    baseI const [pure virtual]
 

Get the spec from the list of subspecs which contains the specified base pair.

Parameters:
baseI The base pair index.
Returns:
The spec.

Implemented in gnFragmentSpec, and gnGenomeSpec.

gnSeqI gnMultiSpec::GetSpecEndBase const uint32    specI const [virtual]
 

Get the ending base pair, in this spec's sequence, of the given subspec.

Parameters:
specI The subspec index.
Returns:
The subspec's ending base pair.

Definition at line 73 of file gnMultiSpec.cpp.

References gnBaseSpec::GetLength(), GetSpec(), GetSpecListLength(), gnSeqI, SpecIndexOutOfBounds(), Throw_gnEx, and uint32.

uint32 gnMultiSpec::GetSpecIndexByBase const gnSeqI    baseI const [virtual]
 

Get the index of the subspec which contains the specified base pair.

Parameters:
baseI The base pair index.
Returns:
The subspec index.

Definition at line 41 of file gnMultiSpec.cpp.

References gnBaseSpec::GetLength(), GetSpec(), GetSpecListLength(), gnSeqI, SeqIndexOutOfBounds(), Throw_gnEx, and uint32.

Referenced by gnGenomeSpec::CloneRange(), gnFragmentSpec::CloneRange(), gnSequence::contigIndexByBase(), gnGenomeSpec::GetSpecByBase(), gnFragmentSpec::GetSpecByBase(), and gnSequence::globalToSource().

uint32 gnMultiSpec::GetSpecIndexByName const string &    name const [virtual]
 

Get the index of the spec which has the given name.

Parameters:
name The name of the spec to find.
Returns:
The spec index.

Definition at line 52 of file gnMultiSpec.cpp.

References gnBaseSpec::GetName(), GetSpec(), GetSpecListLength(), SpecIndexOutOfBounds(), Throw_gnEx, and uint32.

Referenced by gnSequence::contigByName(), and gnSequence::contigIndexByName().

virtual uint32 gnMultiSpec::GetSpecListLength   const [pure virtual]
 

Returns the number of subspecs this spec contains.

Returns:
The number of subspecs this spec contains.

Implemented in gnFragmentSpec, and gnGenomeSpec.

Referenced by CropEnd(), CropStart(), GetLength(), GetSpecEndBase(), GetSpecIndexByBase(), GetSpecIndexByName(), GetSpecStartBase(), and SeqRead().

gnSeqI gnMultiSpec::GetSpecStartBase const uint32    specI const [virtual]
 

Get the starting base pair, in this spec's sequence, of the given subspec.

Parameters:
specI The subspec index.
Returns:
The subspec's starting base pair.

Definition at line 61 of file gnMultiSpec.cpp.

References gnBaseSpec::GetLength(), GetSpec(), GetSpecListLength(), gnSeqI, SpecIndexOutOfBounds(), Throw_gnEx, and uint32.

Referenced by gnGenomeSpec::CloneRange(), gnFragmentSpec::CloneRange(), gnSequence::contigStart(), gnGenomeSpec::GetFeature(), and gnSequence::globalToSource().

boolean gnBaseSpec::IsCircular   const [inline, virtual, inherited]
 

Returns true if this spec's sequence is circular.

Returns:
True if this spec's sequence is circular.

Definition at line 128 of file gnBaseSpec.h.

References gnBaseSpec::m_circular.

Referenced by gnSequence::isCircular(), and gnGBKSource::Write().

boolean gnBaseSpec::IsReverseComplement   const [inline, virtual, inherited]
 

Returns true if this spec is read reverse complement.

Returns:
True if this spec is read reverse complement.

Definition at line 124 of file gnBaseSpec.h.

References gnBaseSpec::m_reverseComplement.

Referenced by gnSequence::globalToSource(), gnSequence::isReverseComplement(), gnGenomeSpec::SetReverseComplement(), and gnFragmentSpec::SetReverseComplement().

virtual void gnMultiSpec::RemoveFeature const uint32    i [pure virtual]
 

Remove a feature from this spec.

Parameters:
i The index of the feature to remove.
Returns:
True if successful

Implemented in gnFragmentSpec, and gnGenomeSpec.

void gnMultiSpec::RemoveHeader uint32    i [virtual]
 

Remove a header from this spec.

Throws a HeaderIndexOutOfBounds exception if a nonexistant header is referenced

Parameters:
i The index of the header to remove.

Definition at line 139 of file gnMultiSpec.cpp.

References HeaderIndexOutOfBounds(), m_headerList, and Throw_gnEx.

Referenced by gnSequence::removeHeader().

virtual void gnMultiSpec::RemoveSpec uint32    i [pure virtual]
 

Remove a subspec from this spec.

Parameters:
i The index of the subspec to remove.

Implemented in gnFragmentSpec, and gnGenomeSpec.

Referenced by CropEnd(), and CropStart().

boolean gnMultiSpec::SeqRead const gnSeqI    start,
gnSeqC   buf,
uint32   bufLen,
const uint32    contigI
const [virtual]
 

Reads sequence data from this spec.

SeqRead will attempt to read "bufLen" base pairs starting at "start", an offset into the sequence. Reading inside a specific contig can be accomplished by supplying the "contigI" parameter with a valid contig index. SeqRead stores the sequence data in "buf" and returns the actual number of bases read in "bufLen". SeqRead will return false if a serious error occurs.

Parameters:
start The base pair to start reading at.
buf The character array to store base pairs into.
bufLen The number of base pairs to read. This will be modified to reflect the actual number of bases read.
contigI The index of the subspec to read or ALL_CONTIGS by default.
Returns:
True if the operation was successful.

Implements gnBaseSpec.

Definition at line 147 of file gnMultiSpec.cpp.

References gnBaseSpec::GetLength(), GetSpec(), GetSpecListLength(), gnSeqI, SeqIndexOutOfBounds(), gnBaseSpec::SeqRead(), SpecIndexOutOfBounds(), Throw_gnEx, and uint32.

Referenced by gnSequence::GetSeqC(), gnDNXSource::SeqRead(), gnSequence::ToArray(), and gnSequence::ToString().

void gnBaseSpec::SetCircular const boolean    value [inline, virtual, inherited]
 

Sets whether this spec should be read circular.

If circular is set, reads beyond the end of this spec will pick up at the beginning and read up to the start index.

Parameters:
value True for circular, false otherwise.

Definition at line 132 of file gnBaseSpec.h.

References gnBaseSpec::m_circular.

Referenced by gnSEQSource::ParseStream(), gnGBKSource::ParseStream(), and gnSequence::setCircular().

void gnBaseSpec::SetName const string &    name [inline, virtual, inherited]
 

Sets the name for this contig.

Parameters:
name The new name.
Returns:
True if successful. Honestly, I don't know how this could be unsuccessful...

Definition at line 120 of file gnBaseSpec.h.

References gnBaseSpec::m_name.

Referenced by gnFASSource::GetSpec(), gnSEQSource::ParseStream(), gnGBKSource::ParseStream(), gnDNXSource::ParseStream(), and gnSequence::setContigName().

virtual void gnBaseSpec::SetReverseComplement const boolean    value [pure virtual, inherited]
 

Sets the reverse complement bit for this spec.

Parameters:
value True for reverse complement, false otherwise.

Implemented in gnContigSpec, gnFragmentSpec, and gnGenomeSpec.

void gnMultiSpec::SetSourceName const string &    sourceName [inline, virtual]
 

Definition at line 211 of file gnMultiSpec.h.

References m_sourceName.

Referenced by gnFASSource::GetSpec(), and gnDNXSource::ParseStream().


Member Data Documentation

boolean gnBaseSpec::m_circular [protected, inherited]
 

Definition at line 108 of file gnBaseSpec.h.

Referenced by gnBaseSpec::Clear(), gnStringSpec::CloneRange(), gnSourceSpec::CloneRange(), gnFragmentSpec::gnFragmentSpec(), gnGenomeSpec::gnGenomeSpec(), gnSourceSpec::gnSourceSpec(), gnStringSpec::gnStringSpec(), gnBaseSpec::IsCircular(), and gnBaseSpec::SetCircular().

vector<gnBaseHeader*> gnMultiSpec::m_headerList [protected]
 

Definition at line 186 of file gnMultiSpec.h.

Referenced by AddHeader(), Clear(), GetHeader(), GetHeaderListLength(), gnFragmentSpec::gnFragmentSpec(), gnGenomeSpec::gnGenomeSpec(), and RemoveHeader().

string gnBaseSpec::m_name [protected, inherited]
 

Definition at line 110 of file gnBaseSpec.h.

Referenced by gnBaseSpec::Clear(), gnStringSpec::CloneRange(), gnSourceSpec::CloneRange(), gnBaseSpec::GetName(), gnFragmentSpec::gnFragmentSpec(), gnGenomeSpec::gnGenomeSpec(), gnSourceSpec::gnSourceSpec(), gnStringSpec::gnStringSpec(), and gnBaseSpec::SetName().

boolean gnBaseSpec::m_reverseComplement [protected, inherited]
 

Definition at line 107 of file gnBaseSpec.h.

Referenced by gnBaseSpec::Clear(), gnStringSpec::CloneRange(), gnSourceSpec::CloneRange(), gnContigSpec::CropStart(), gnFragmentSpec::gnFragmentSpec(), gnGenomeSpec::gnGenomeSpec(), gnSourceSpec::gnSourceSpec(), gnStringSpec::gnStringSpec(), gnBaseSpec::IsReverseComplement(), gnContigSpec::SeqRead(), gnGenomeSpec::SetReverseComplement(), gnFragmentSpec::SetReverseComplement(), and gnContigSpec::SetReverseComplement().

string gnMultiSpec::m_sourceName [protected]
 

Reimplemented from gnBaseSpec.

Definition at line 184 of file gnMultiSpec.h.

Referenced by GetSourceName(), gnFragmentSpec::gnFragmentSpec(), gnGenomeSpec::gnGenomeSpec(), and SetSourceName().


The documentation for this class was generated from the following files:
Generated on Mon Feb 3 02:34:50 2003 for libGenome by doxygen1.3-rc3