00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef CGA_TOOLS_COMMAND_LIBRARYDATA_HPP_
00016 #define CGA_TOOLS_COMMAND_LIBRARYDATA_HPP_ 1
00017
00019
00020 #include "cgatools/core.hpp"
00021 #include "cgatools/cgdata/Dnb.hpp"
00022 #include "cgatools/cgdata/LibraryReader.hpp"
00023
00024 #include <boost/shared_ptr.hpp>
00025 #include <boost/ptr_container/ptr_map.hpp>
00026 #include <string>
00027
00028 namespace cgatools { namespace mapping { namespace GapEst {
00029 class GapsEstimator;
00030 }}}
00031
00032 namespace cgatools { namespace cgdata {
00033 class GenomeMetadata;
00034 class LibraryMetadata;
00035 }}
00036
00037 namespace cgatools { namespace mapping {
00038
00039 class LibraryData
00040 {
00041 public:
00042 LibraryData(const cgdata::LibraryMetadata& lm, bool loadDnbStructureOnly);
00043
00044 boost::array<boost::shared_ptr<GapEst::GapsEstimator>,2> gapsEstimators_;
00045 boost::shared_ptr<cgdata::MateGapTable> mateGapTable_;
00046 cgdata::DnbStructure dnbStructure_;
00047 };
00048
00049 class LibraryMetadataContainer
00050 {
00051 public:
00052
00053
00054 typedef boost::ptr_map<const std::string,LibraryData> Libraries;
00055 typedef std::map<std::string, std::string> Lane2Library;
00056
00057 LibraryMetadataContainer(const cgdata::GenomeMetadata &gm, bool loadDnbStructureOnly);
00058
00059 const LibraryData& getLibraryData(const std::string& laneName) const;
00060
00061 void loadLane2LibraryData(const cgdata::GenomeMetadata &gm);
00062
00063 Libraries libraryData_;
00064 Lane2Library lane2libraryData_;
00065 };
00066
00067 } }
00068
00069 #endif // CGA_TOOLS_COMMAND_LIBRARYDATA_HPP_