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 00049 //--------------------------------------------------- readRecordFix ---------- 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 FragmentType_t NULL_FRAGMENT = 0; 00063 static const FragmentType_t OTHER = 'X'; 00064 static const FragmentType_t BAC = 'B'; 00065 static const FragmentType_t INSERT = 'I'; 00066 static const FragmentType_t TRANSPOSON = 'T'; 00067 static const FragmentType_t WALK = 'W'; 00068 00069 00070 //--------------------------------------------------- Fragment_t ------------- 00075 Fragment_t ( ) 00076 { 00077 size_m = 0; 00078 library_m = source_m . first = reads_m . first = reads_m . second = NULL_ID; 00079 source_m . second = NULL_NCODE; 00080 type_m = NULL_FRAGMENT; 00081 } 00082 00083 00084 //--------------------------------------------------- Fragment_t ------------- 00087 Fragment_t (const Fragment_t & source) 00088 { 00089 *this = source; 00090 } 00091 00092 00093 //--------------------------------------------------- ~Fragment_t ------------ 00096 ~Fragment_t ( ) 00097 { 00098 00099 } 00100 00101 00102 //--------------------------------------------------- clear ------------------ 00103 virtual void clear ( ); 00104 00105 00106 //--------------------------------------------------- getNCode --------------- 00107 virtual NCode_t getNCode ( ) const 00108 { 00109 return Fragment_t::NCODE; 00110 } 00111 00112 00113 //--------------------------------------------------- getLibrary ------------- 00118 ID_t getLibrary ( ) const 00119 { 00120 return library_m; 00121 } 00122 00123 00124 //--------------------------------------------------- getMatePair ------------ 00133 std::pair<ID_t, ID_t> getMatePair ( ) const 00134 { 00135 return reads_m; 00136 } 00137 00138 00139 //--------------------------------------------------- getSize ---------------- 00147 Size_t getSize ( ) const 00148 { 00149 return size_m; 00150 } 00151 00152 00153 //--------------------------------------------------- getSource -------------- 00161 std::pair<ID_t, NCode_t> getSource ( ) const 00162 { 00163 return source_m; 00164 } 00165 00166 00167 //--------------------------------------------------- getType ---------------- 00172 FragmentType_t getType ( ) const 00173 { 00174 return type_m; 00175 } 00176 00177 00178 //--------------------------------------------------- readMessage ------------ 00179 virtual void readMessage (const Message_t & msg); 00180 00181 00182 //--------------------------------------------------- setLibrary ------------- 00188 void setLibrary (ID_t library) 00189 { 00190 library_m = library; 00191 } 00192 00193 00194 //--------------------------------------------------- setMatePair ------------ 00204 void setReads (std::pair<ID_t, ID_t> reads) 00205 { 00206 reads_m = reads; 00207 } 00208 00209 00210 //--------------------------------------------------- setSize ---------------- 00216 void setSize (Size_t size) 00217 { 00218 size_m = size; 00219 } 00220 00221 00222 //--------------------------------------------------- setSource -------------- 00231 void setSource (std::pair<ID_t, NCode_t> source) 00232 { 00233 source_m = source; 00234 } 00235 00236 00237 //--------------------------------------------------- setType ---------------- 00245 void setType (FragmentType_t type); 00246 00247 00248 //--------------------------------------------------- writeMessage ----------- 00249 virtual void writeMessage (Message_t & msg) const; 00250 00251 }; 00252 00253 } // namespace AMOS 00254 00255 #endif // #ifndef __Fragment_AMOS_HH
1.4.7