00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 #ifndef __Fragment_AMOS_HH 00011 #define __Fragment_AMOS_HH 1 00012 00013 #include "Universal_AMOS.hh" 00014 00015 00016 00017 00018 namespace AMOS { 00019 00020 typedef char FragmentType_t; 00021 00022 //================================================ Fragment_t ================== 00029 //============================================================================== 00030 class Fragment_t : public Universal_t 00031 { 00032 00033 private: 00034 00035 ID_t library_m; 00036 Size_t size_m; 00037 std::pair<ID_t, NCode_t> source_m; 00038 std::pair<ID_t, ID_t> reads_m; 00039 FragmentType_t type_m; 00040 00041 00042 protected: 00043 00044 //--------------------------------------------------- readRecord ------------- 00045 virtual void readRecord (std::istream & fix, std::istream & var); 00046 00047 00048 //--------------------------------------------------- writeRecord ------------ 00049 virtual void writeRecord (std::ostream & fix, std::ostream & var) const; 00050 00051 00052 public: 00053 00054 static const NCode_t NCODE; 00056 00057 static const FragmentType_t NULL_FRAGMENT; 00058 static const FragmentType_t OTHER; 00059 static const FragmentType_t BAC; 00060 static const FragmentType_t INSERT; 00061 static const FragmentType_t TRANSPOSON; 00062 static const FragmentType_t WALK; 00063 00064 00065 //--------------------------------------------------- Fragment_t ------------- 00070 Fragment_t ( ) 00071 { 00072 size_m = 0; 00073 library_m = source_m . first = reads_m . first = reads_m . second = NULL_ID; 00074 source_m . second = NULL_NCODE; 00075 type_m = NULL_FRAGMENT; 00076 } 00077 00078 00079 //--------------------------------------------------- Fragment_t ------------- 00082 Fragment_t (const Fragment_t & source) 00083 { 00084 *this = source; 00085 } 00086 00087 00088 //--------------------------------------------------- ~Fragment_t ------------ 00091 ~Fragment_t ( ) 00092 { 00093 00094 } 00095 00096 00097 //--------------------------------------------------- clear ------------------ 00098 virtual void clear ( ); 00099 00100 00101 //--------------------------------------------------- getNCode --------------- 00102 virtual NCode_t getNCode ( ) const 00103 { 00104 return Fragment_t::NCODE; 00105 } 00106 00107 00108 //--------------------------------------------------- getLibrary ------------- 00113 ID_t getLibrary ( ) const 00114 { 00115 return library_m; 00116 } 00117 00118 00119 //--------------------------------------------------- getMatePair ------------ 00128 std::pair<ID_t, ID_t> getMatePair ( ) const 00129 { 00130 return reads_m; 00131 } 00132 00133 00134 //--------------------------------------------------- getSize ---------------- 00142 Size_t getSize ( ) const 00143 { 00144 return size_m; 00145 } 00146 00147 00148 //--------------------------------------------------- getSource -------------- 00156 std::pair<ID_t, NCode_t> getSource ( ) const 00157 { 00158 return source_m; 00159 } 00160 00161 00162 //--------------------------------------------------- getType ---------------- 00167 FragmentType_t getType ( ) const 00168 { 00169 return type_m; 00170 } 00171 00172 00173 //--------------------------------------------------- readMessage ------------ 00174 virtual void readMessage (const Message_t & msg); 00175 00176 00177 //--------------------------------------------------- setLibrary ------------- 00183 void setLibrary (ID_t library) 00184 { 00185 library_m = library; 00186 } 00187 00188 00189 //--------------------------------------------------- setMatePair ------------ 00199 void setReads (std::pair<ID_t, ID_t> reads) 00200 { 00201 reads_m = reads; 00202 } 00203 00204 00205 //--------------------------------------------------- setSize ---------------- 00211 void setSize (Size_t size) 00212 { 00213 size_m = size; 00214 } 00215 00216 00217 //--------------------------------------------------- setSource -------------- 00226 void setSource (std::pair<ID_t, NCode_t> source) 00227 { 00228 source_m = source; 00229 } 00230 00231 00232 //--------------------------------------------------- setType ---------------- 00240 void setType (FragmentType_t type); 00241 00242 00243 //--------------------------------------------------- writeMessage ----------- 00244 virtual void writeMessage (Message_t & msg) const; 00245 00246 }; 00247 00248 } // namespace AMOS 00249 00250 #endif // #ifndef __Fragment_AMOS_HH