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 00051 //--------------------------------------------------- writeRecord ------------ 00052 virtual void writeRecord (std::ostream & fix, std::ostream & var) const; 00053 00054 00055 public: 00056 00057 static const NCode_t NCODE; 00059 00060 static const ReadType_t NULL_READ; 00061 static const ReadType_t OTHER; 00062 static const ReadType_t END; 00063 static const ReadType_t CONTIG; 00064 static const ReadType_t BAC; 00065 static const ReadType_t WALK; 00066 static const ReadType_t TRANSPOSON; 00067 00068 00069 //--------------------------------------------------- Read_t ----------------- 00074 Read_t ( ) 00075 { 00076 frag_m = NULL_ID; 00077 type_m = NULL_READ; 00078 pos_m = 0; 00079 } 00080 00081 00082 //--------------------------------------------------- Read_t ----------------- 00085 Read_t (const Read_t & source) 00086 { 00087 *this = source; 00088 } 00089 00090 00091 //--------------------------------------------------- ~Read_t ---------------- 00094 ~Read_t ( ) 00095 { 00096 00097 } 00098 00099 00100 //--------------------------------------------------- clear ------------------ 00101 virtual void clear ( ); 00102 00103 00104 //--------------------------------------------------- getBasePositions ------- 00113 const std::vector<int16_t> & getBasePositions ( ) const 00114 { 00115 return bcp_m; 00116 } 00117 00118 00119 //--------------------------------------------------- getBasePositions ------- 00128 std::vector<int16_t> & getBasePositions ( ) 00129 { 00130 return bcp_m; 00131 } 00132 00133 00134 //--------------------------------------------------- getClearRange ---------- 00139 Range_t getClearRange ( ) 00140 { 00141 return clear_m; 00142 } 00143 00144 00145 //--------------------------------------------------- getFragment ------------ 00150 ID_t getFragment ( ) const 00151 { 00152 return frag_m; 00153 } 00154 00155 00156 //--------------------------------------------------- getFragmentPosition ---- 00165 Pos_t getFragmentPosition ( ) 00166 { 00167 return pos_m; 00168 } 00169 00170 00171 //--------------------------------------------------- getNCode --------------- 00172 virtual NCode_t getNCode ( ) const 00173 { 00174 return Read_t::NCODE; 00175 } 00176 00177 00178 //--------------------------------------------------- getQualityClearRange --- 00183 Range_t getQualityClearRange ( ) 00184 { 00185 return qclear_m; 00186 } 00187 00188 00189 //--------------------------------------------------- getType ---------------- 00194 ReadType_t getType ( ) const 00195 { 00196 return type_m; 00197 } 00198 00199 00200 //--------------------------------------------------- getVectorClearRange ---- 00205 Range_t getVectorClearRange ( ) 00206 { 00207 return vclear_m; 00208 } 00209 00210 00211 //--------------------------------------------------- readMessage ------------ 00212 virtual void readMessage (const Message_t & msg); 00213 00214 00215 //--------------------------------------------------- setBasePositions ------- 00221 void setBasePositions (const std::vector<int16_t> & bcp) 00222 { 00223 bcp_m = bcp; 00224 } 00225 00226 00227 //--------------------------------------------------- setClearRange ---------- 00233 void setClearRange (Range_t clear) 00234 { 00235 clear_m = clear; 00236 } 00237 00238 00239 //--------------------------------------------------- setFragment ------------ 00245 void setFragment (ID_t frag) 00246 { 00247 frag_m = frag; 00248 } 00249 00250 00251 //--------------------------------------------------- setFragmentPosition ---- 00261 void setFragmentPosition (Pos_t pos) 00262 { 00263 pos_m = pos; 00264 } 00265 00266 00267 //--------------------------------------------------- setQualityClearRange --- 00273 void setQualityClearRange (Range_t qclear) 00274 { 00275 qclear_m = qclear; 00276 } 00277 00278 00279 //--------------------------------------------------- setType ---------------- 00287 void setType (ReadType_t type); 00288 00289 00290 //--------------------------------------------------- setVectorClearRange ---- 00296 void setVectorClearRange (Range_t vclear) 00297 { 00298 vclear_m = vclear; 00299 } 00300 00301 00302 //--------------------------------------------------- writeMessage ----------- 00303 virtual void writeMessage (Message_t & msg) const; 00304 00305 }; 00306 00307 00308 //================================================ Helper Functions ============ 00309 //----------------------------------------------------- operator<< ------------- 00312 std::ostream & operator<< (std::ostream & o, Read_t & read); 00313 00314 } // namespace AMOS 00315 00316 #endif // #ifndef __Read_AMOS_HH