00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 #ifndef __Read_AMOS_HH 00011 #define __Read_AMOS_HH 1 00012 00013 #include "Sequence_AMOS.hh" 00014 #include <vector> 00015 00016 00017 00018 00019 namespace AMOS { 00020 00021 typedef char ReadType_t; 00022 00023 //================================================ Read_t ====================== 00030 //============================================================================== 00031 class Read_t : public Sequence_t 00032 { 00033 00034 private: 00035 00036 Range_t clear_m; 00037 ID_t frag_m; 00038 Range_t qclear_m; 00039 ReadType_t type_m; 00040 Range_t vclear_m; 00041 std::vector<int16_t> bcp_m; 00042 Pos_t pos_m; 00043 00044 00045 protected: 00046 00047 //--------------------------------------------------- readRecord ------------- 00048 virtual void readRecord (std::istream & fix, std::istream & var); 00049 00050 virtual void readRecordFix (std::istream & fix); 00051 00052 00053 //--------------------------------------------------- writeRecord ------------ 00054 virtual void writeRecord (std::ostream & fix, std::ostream & var) const; 00055 00056 00057 public: 00058 00059 static const NCode_t NCODE; 00061 00062 static const ReadType_t NULL_READ = 0; 00063 static const ReadType_t OTHER = 'X'; 00064 static const ReadType_t END = 'E'; 00065 static const ReadType_t CONTIG = 'C'; 00066 static const ReadType_t BAC = 'B'; 00067 static const ReadType_t WALK = 'W'; 00068 static const ReadType_t TRANSPOSON = 'T'; 00069 00070 00071 //--------------------------------------------------- Read_t ----------------- 00076 Read_t ( ) 00077 { 00078 frag_m = NULL_ID; 00079 type_m = NULL_READ; 00080 pos_m = 0; 00081 } 00082 00083 00084 //--------------------------------------------------- Read_t ----------------- 00087 Read_t (const Read_t & source) 00088 { 00089 *this = source; 00090 } 00091 00092 00093 //--------------------------------------------------- ~Read_t ---------------- 00096 ~Read_t ( ) 00097 { 00098 00099 } 00100 00101 00102 //--------------------------------------------------- clear ------------------ 00103 virtual void clear ( ); 00104 00105 00106 //--------------------------------------------------- getBasePositions ------- 00115 const std::vector<int16_t> & getBasePositions ( ) const 00116 { 00117 return bcp_m; 00118 } 00119 00120 00121 //--------------------------------------------------- getBasePositions ------- 00130 std::vector<int16_t> & getBasePositions ( ) 00131 { 00132 return bcp_m; 00133 } 00134 00135 00136 //--------------------------------------------------- getClearRange ---------- 00141 Range_t getClearRange ( ) 00142 { 00143 return clear_m; 00144 } 00145 00146 00147 //--------------------------------------------------- getFragment ------------ 00152 ID_t getFragment ( ) const 00153 { 00154 return frag_m; 00155 } 00156 00157 00158 //--------------------------------------------------- getFragmentPosition ---- 00167 Pos_t getFragmentPosition ( ) 00168 { 00169 return pos_m; 00170 } 00171 00172 00173 //--------------------------------------------------- getNCode --------------- 00174 virtual NCode_t getNCode ( ) const 00175 { 00176 return Read_t::NCODE; 00177 } 00178 00179 00180 //--------------------------------------------------- getQualityClearRange --- 00185 Range_t getQualityClearRange ( ) 00186 { 00187 return qclear_m; 00188 } 00189 00190 00191 //--------------------------------------------------- getType ---------------- 00196 ReadType_t getType ( ) const 00197 { 00198 return type_m; 00199 } 00200 00201 00202 //--------------------------------------------------- getVectorClearRange ---- 00207 Range_t getVectorClearRange ( ) 00208 { 00209 return vclear_m; 00210 } 00211 00212 00213 //--------------------------------------------------- readMessage ------------ 00214 virtual void readMessage (const Message_t & msg); 00215 00216 00217 //--------------------------------------------------- setBasePositions ------- 00223 void setBasePositions (const std::vector<int16_t> & bcp) 00224 { 00225 bcp_m = bcp; 00226 } 00227 00228 00229 //--------------------------------------------------- setClearRange ---------- 00235 void setClearRange (Range_t clear) 00236 { 00237 clear_m = clear; 00238 } 00239 00240 00241 //--------------------------------------------------- setFragment ------------ 00247 void setFragment (ID_t frag) 00248 { 00249 frag_m = frag; 00250 } 00251 00252 00253 //--------------------------------------------------- setFragmentPosition ---- 00263 void setFragmentPosition (Pos_t pos) 00264 { 00265 pos_m = pos; 00266 } 00267 00268 00269 //--------------------------------------------------- setQualityClearRange --- 00275 void setQualityClearRange (Range_t qclear) 00276 { 00277 qclear_m = qclear; 00278 } 00279 00280 00281 //--------------------------------------------------- setType ---------------- 00289 void setType (ReadType_t type); 00290 00291 00292 //--------------------------------------------------- setVectorClearRange ---- 00298 void setVectorClearRange (Range_t vclear) 00299 { 00300 vclear_m = vclear; 00301 } 00302 00303 00304 //--------------------------------------------------- writeMessage ----------- 00305 virtual void writeMessage (Message_t & msg) const; 00306 00307 }; 00308 00309 00310 //================================================ Helper Functions ============ 00311 //----------------------------------------------------- operator<< ------------- 00314 std::ostream & operator<< (std::ostream & o, Read_t & read); 00315 00316 } // namespace AMOS 00317 00318 #endif // #ifndef __Read_AMOS_HH
1.4.7