void GlSeqBrowser::push_sequence(GlSequenceRef gs)
{
ColorRef default_color(GlSequence::default_gene_color());
+ ColorRef default_chipseq_color(GlSequence::default_chipseq_color());
GlSequenceRef new_gs(new GlSequence(gs));
new_gs->update_annotation_draw_function("gene", draw_narrow_track, default_color);
+ new_gs->update_annotation_draw_function("chipseq_peak_window",
+ draw_chipseq_window,
+ default_chipseq_color);
// mark where the sequence is
new_gs->add_annotations_for_defined_sequence(draw_summarized_track);
return default_color;
}
+ColorRef GlSequence::default_chipseq_color()
+{
+ static ColorRef default_color;
+ if (not default_color) {
+ default_color.reset(new Color(1.0, 0.5, 0.0));
+ }
+ return default_color;
+}
+
int GlSequence::get_viewport_width_in_pixels()
{
GLint viewport[4];
hsmall, y, z+10);
}
+void draw_chipseq_window(SeqSpanRef s, float left, float right)
+{
+ SeqSpanRef parent(s->parent());
+ DrawableRef parent_draw(parent->drawable());
+ float x( (parent_draw) ? parent_draw->x() : 0);
+ float y( (parent_draw) ? parent_draw->y() : 0);
+ float z( (parent_draw) ? parent_draw->z() : 10 );
+ float height( (parent_draw) ? parent_draw->height() : default_height );
+ Color c( (s->drawable()) ? s->drawable()->color() : *GlSequence::default_track_color() );
+ glColor3fv(c.get());
+
+ float hsmall = height * 2.0;
+ GlSequence::draw_box(left, right, x+s->start(), x+s->stop(),
+ hsmall, y, z+9.0);
+}
+
void draw_summarized_track(SeqSpanRef s, float left, float right)
{
// if we can see the sequence text (AGCTN), don't draw the black boxes
static ColorRef default_gene_color();
//! return default track color
static ColorRef default_track_color();
+ //! return default chipseq color
+ static ColorRef default_chipseq_color();
//! return our annotation color mapper
AnnotationColorsRef colorMapper() { return color_mapper; }
void draw_summarized_track(SeqSpanRef ref, float left, float right);
//! draw a 1/4 width centered track
void draw_narrow_track(SeqSpanRef ref, float left, float right);
+//! draw a chipseq peak window track
+void draw_chipseq_window(SeqSpanRef ref, float left, float right);
#endif