include/gn/gnGenomeSpec.h

Go to the documentation of this file.
00001 00002 // File: gnGenomeSpec.h 00003 // Purpose: abstract Spec class 00004 // Description: Genome level spec class 00005 // Changes: 00006 // Version: libGenome 0.5.1 00007 // Author: Aaron Darling 00008 // Modified by: 00009 // Copyright: (c) Aaron Darling 00010 // Licenses: See COPYING file for details 00012 #ifndef _gnGenomeSpec_h_ 00013 #define _gnGenomeSpec_h_ 00014 00015 #include "gn/gnDefs.h" 00016 00017 #include <vector> 00018 #include <string> 00019 00020 #include "gn/gnClone.h" 00021 #include "gn/gnBaseFeature.h" 00022 #include "gn/gnBaseHeader.h" 00023 #include "gn/gnMultiSpec.h" 00024 #include "gn/gnFragmentSpec.h" 00025 #include "gn/gnException.h" 00026 00033 class GNDLLEXPORT gnGenomeSpec : public gnMultiSpec< gnFragmentSpec > 00034 { 00035 public: 00036 gnGenomeSpec(); 00041 gnGenomeSpec( const gnGenomeSpec& s); 00045 virtual ~gnGenomeSpec(); 00046 // Clone 00047 virtual gnGenomeSpec* Clone() const; 00048 virtual void Clear(); 00049 // Base Spec stuff 00050 virtual void SetReverseComplement( const boolean value ); 00051 00052 //Multispec stuff 00053 /* virtual uint32 GetSpecListLength() const; 00054 virtual gnFragmentSpec* GetSpec( const uint32 i ) const; 00055 virtual gnFragmentSpec* GetSpecByBase( const gnSeqI baseI ) const; 00056 virtual void AddSpec( gnBaseSpec* spec, const uint32 i = UINT32_MAX ); 00057 virtual void RemoveSpec( uint32 i ); 00058 */ 00059 virtual void MergeFragments( const uint32 startC, const uint32 endC); 00060 00061 virtual uint32 AddFeature( gnBaseFeature* feat ); 00062 virtual uint32 GetFeatureListLength() const; 00063 virtual gnBaseFeature* GetFeature( const uint32 i ) const; 00064 virtual void GetContainedFeatures(const gnLocation& lt, vector<gnBaseFeature*>& feature_vector, vector<uint32>& index_vector) const; 00065 virtual void GetIntersectingFeatures(const gnLocation& lt, vector<gnBaseFeature*>& feature_vector, vector<uint32>& index_vector) const; 00066 virtual void GetBrokenFeatures(const gnLocation& lt, vector<gnBaseFeature*>& feature_vector) const; 00067 virtual void RemoveFeature( const uint32 i ); 00076 virtual gnGenomeSpec* CloneRange( const gnSeqI startI, const gnSeqI len ) const; 00077 00078 protected: 00079 // vector <gnFragmentSpec*> m_SpecList; 00080 00081 }; // class gnGenomeSpec 00082 00083 inline 00084 gnGenomeSpec* gnGenomeSpec::Clone() const{ 00085 return new gnGenomeSpec(*this); 00086 } 00087 /* 00088 inline 00089 uint32 gnGenomeSpec::GetSpecListLength() const{ 00090 return m_SpecList.size(); 00091 } 00092 00093 inline 00094 gnFragmentSpec* gnGenomeSpec::GetSpec( const uint32 i ) const{ 00095 if(i < m_SpecList.size()) 00096 return m_SpecList[i]; 00097 Throw_gnEx(FragmentIndexOutOfBounds()); 00098 } 00099 00100 inline 00101 gnFragmentSpec* gnGenomeSpec::GetSpecByBase( const gnSeqI baseI ) const{ 00102 return m_SpecList[GetSpecIndexByBase(baseI)]; 00103 } 00104 00105 inline 00106 void gnGenomeSpec::AddSpec( gnBaseSpec* spec, const uint32 i ){ 00107 uint32 index = i == UINT32_MAX ? m_SpecList.size() : i; 00108 if(index <= m_SpecList.size()){ 00109 m_SpecList.insert(m_SpecList.begin() + index, (gnFragmentSpec*)spec); 00110 } 00111 } 00112 00113 inline 00114 void gnGenomeSpec::RemoveSpec( uint32 i ){ 00115 if(i < GetSpecListLength()){ 00116 m_SpecList.erase(m_SpecList.begin() + i); 00117 } 00118 } 00119 */ 00120 #endif 00121 // _gnGenomeSpec_h_

Generated on Mon Feb 14 19:28:18 2005 for libGenome by doxygen 1.3.8