00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef CGATOOLS_REFERENCE_REPEATMASKERSTORE_HPP_
00016 #define CGATOOLS_REFERENCE_REPEATMASKERSTORE_HPP_ 1
00017
00019
00020 #include "cgatools/core.hpp"
00021 #include "cgatools/reference/RangeAnnotationStore.hpp"
00022
00023 namespace cgatools { namespace reference {
00024
00025 struct RepeatMaskerAnnotation
00026 {
00027 std::string name_, family_;
00028 double divergence_;
00029 bool strand_;
00030 };
00031
00032 class RepeatMaskerStore :
00033 public RangeAnnotationStore<RepeatMaskerStore, RepeatMaskerAnnotation>
00034 {
00035 public:
00036
00037 RepeatMaskerStore(const reference::CrrFile& crr, const std::string& fn)
00038 : Base(crr)
00039 {
00040 load(fn);
00041 }
00042
00043 void bindColumns(util::DelimitedFile& df,
00044 reference::Range& range,
00045 RepeatMaskerAnnotation& data)
00046 {
00047 using namespace util;
00048 bindRangeColumns(df, range);
00049 df.addField(StringField("repName", &data.name_));
00050 df.addField(StringField("repFamily", &data.family_));
00051 df.addField(ValueField<double>("divergence", &data.divergence_));
00052 df.addField(StrandField("strand", &data.strand_));
00053 }
00054 };
00055
00056 }}
00057
00058 #endif