00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef __Scaffold_AMOS_HH
00011 #define __Scaffold_AMOS_HH 1
00012
00013 #include "Universal_AMOS.hh"
00014 #include "Layout_AMOS.hh"
00015 #include <vector>
00016
00017
00018
00019
00020 namespace AMOS {
00021
00022
00028
00029 class Scaffold_t : public Universal_t
00030 {
00031
00032 private:
00033
00034 std::vector<Tile_t> contigs_m;
00035 std::vector<ID_t> edges_m;
00036
00037
00038 protected:
00039
00040
00041 virtual void readRecord (std::istream & fix, std::istream & var);
00042
00043
00044
00045 virtual void readRecordFix (std::istream & fix);
00046
00047
00048
00049 virtual void writeRecord (std::ostream & fix, std::ostream & var) const;
00050
00051
00052 public:
00053
00054 static const NCode_t NCODE;
00056
00057
00058
00061 Scaffold_t ( )
00062 {
00063
00064 }
00065
00066
00067
00070 Scaffold_t (const Scaffold_t & source)
00071 {
00072 *this = source;
00073 }
00074
00075
00076
00079 ~Scaffold_t ( )
00080 {
00081
00082 }
00083
00084
00085
00086 virtual void clear ( )
00087 {
00088 Universal_t::clear( );
00089 contigs_m . clear( );
00090 edges_m . clear( );
00091 }
00092
00093
00094
00099 const std::vector<Tile_t> & getContigTiling ( ) const
00100 {
00101 return contigs_m;
00102 }
00103
00104
00105
00110 std::vector<Tile_t> & getContigTiling ( )
00111 {
00112 return contigs_m;
00113 }
00114
00115
00116
00121 const std::vector<ID_t> & getContigEdges ( ) const
00122 {
00123 return edges_m;
00124 }
00125
00126
00127
00132 std::vector<ID_t> & getContigEdges ( )
00133 {
00134 return edges_m;
00135 }
00136
00137
00138
00139 virtual NCode_t getNCode ( ) const
00140 {
00141 return Scaffold_t::NCODE;
00142 }
00143
00144
00145
00153 Size_t getSpan ( ) const;
00154
00155
00156
00157 virtual void readMessage (const Message_t & msg);
00158
00159
00160
00166 void setContigTiling (const std::vector<Tile_t> & contigs)
00167 {
00168 contigs_m = contigs;
00169 }
00170
00171
00172
00178 void setContigTiling (const Layout_t & layout)
00179 {
00180 contigs_m = layout . getTiling( );
00181 }
00182
00183
00184
00190 void setContigEdges (const std::vector<ID_t> & edges)
00191 {
00192 edges_m = edges;
00193 }
00194
00195
00196
00197 virtual void writeMessage (Message_t & msg) const;
00198
00199 };
00200
00201 }
00202
00203 #endif // #ifndef __Scaffold_AMOS_HH