X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=wiggle.h;fp=wiggle.h;h=09cc4f9ad30141381a36ab45d5704afcf09076cb;hb=53e8bbb15e0bfed6a0caae7b5ba6777a9a942266;hp=0000000000000000000000000000000000000000;hpb=481f6cdebcae92c5ce2cf71d4f5b103565b05e44;p=rsem.git diff --git a/wiggle.h b/wiggle.h new file mode 100644 index 0000000..09cc4f9 --- /dev/null +++ b/wiggle.h @@ -0,0 +1,41 @@ +#include +#include +#include +#include + +struct Wiggle { + std::string name; + std::vector read_depth; +}; + +class WiggleProcessor { +public: + virtual ~WiggleProcessor() {} + virtual void process(const Wiggle& wiggle) = 0; +}; + +class UCSCWiggleTrackWriter : public WiggleProcessor { +public: + UCSCWiggleTrackWriter(const std::string& output_filename, + const std::string& track_name); + + ~UCSCWiggleTrackWriter(); + + void process(const Wiggle& wiggle); + +private: + FILE *fo; +}; + +class ReadDepthWriter : public WiggleProcessor { +public: + ReadDepthWriter(std::ostream& stream); + + void process(const Wiggle& wiggle); + +private: + std::ostream& stream_; +}; + +void build_wiggles(const std::string& bam_filename, + WiggleProcessor& processor);