def get_feature_sigil(self, feature, locstart, locend, **kwargs):
    ' get_feature_sigil(self, feature, x0, x1, fragment) -> (element, element)\n\n            o feature       Feature object\n\n            o locstart      The start position of the feature\n\n            o locend        The end position of the feature\n\n            Returns a drawable indicator of the feature, and any required label\n            for it\n        '
    (btm, ctr, top) = self.track_radii[self.current_track_level]
    (startangle, startcos, startsin) = self.canvas_angle(locstart)
    (endangle, endcos, endsin) = self.canvas_angle(locend)
    (midangle, midcos, midsin) = self.canvas_angle((float((locend + locstart)) / 2))
    draw_methods = {'BOX': self._draw_arc, 'ARROW': self._draw_arc_arrow}
    method = draw_methods[feature.sigil]
    kwargs['head_length_ratio'] = feature.arrowhead_length
    kwargs['shaft_height_ratio'] = feature.arrowshaft_height
    if hasattr(feature, 'url'):
        kwargs['hrefURL'] = feature.url
        kwargs['hrefTitle'] = feature.name
    if (feature.color == colors.white):
        border = colors.black
    else:
        border = feature.color
    if (feature.strand == 1):
        sigil = method(ctr, top, startangle, endangle, feature.color, border, orientation='right', **kwargs)
    elif (feature.strand == (- 1)):
        sigil = method(btm, ctr, startangle, endangle, feature.color, border, orientation='left', **kwargs)
    else:
        sigil = method(btm, top, startangle, endangle, feature.color, border, **kwargs)
    if feature.label:
        label = String(0, 0, feature.name.strip(), fontName=feature.label_font, fontSize=feature.label_size, fillColor=feature.label_color)
        labelgroup = Group(label)
        label_angle = (startangle + (0.5 * pi))
        (sinval, cosval) = (startsin, startcos)
        if (feature.strand != (- 1)):
            if (startangle < pi):
                (sinval, cosval) = (endsin, endcos)
                label_angle = (endangle - (0.5 * pi))
                labelgroup.contents[0].textAnchor = 'end'
            pos = (self.xcenter + (top * sinval))
            coslabel = cos(label_angle)
            sinlabel = sin(label_angle)
            labelgroup.transform = (coslabel, (- sinlabel), sinlabel, coslabel, pos, (self.ycenter + (top * cosval)))
        else:
            if (startangle < pi):
                (sinval, cosval) = (endsin, endcos)
                label_angle = (endangle - (0.5 * pi))
            else:
                labelgroup.contents[0].textAnchor = 'end'
            pos = (self.xcenter + (btm * sinval))
            coslabel = cos(label_angle)
            sinlabel = sin(label_angle)
            labelgroup.transform = (coslabel, (- sinlabel), sinlabel, coslabel, pos, (self.ycenter + (btm * cosval)))
    else:
        labelgroup = None
    return (sigil, labelgroup)
get_feature_sigil(self, feature, x0, x1, fragment) -> (element, element)

o feature       Feature object

o locstart      The start position of the feature

o locend        The end position of the feature

Returns a drawable indicator of the feature, and any required label
for it
def get_feature_sigil(self, feature, locstart, locend, **kwargs):
    ' get_feature_sigil(self, feature, x0, x1, fragment) -> (element, element)\n\n            o feature       Feature object\n\n            o locstart      The start position of the feature\n\n            o locend        The end position of the feature\n\n            Returns a drawable indicator of the feature, and any required label\n            for it\n        '
    (btm, ctr, top) = self.track_radii[self.current_track_level]
    (startangle, startcos, startsin) = self.canvas_angle(locstart)
    (endangle, endcos, endsin) = self.canvas_angle(locend)
    (midangle, midcos, midsin) = self.canvas_angle((float((locend + locstart)) / 2))
    draw_methods = {'BOX': self._draw_arc, 'ARROW': self._draw_arc_arrow}
    method = draw_methods[feature.sigil]
    kwargs['head_length_ratio'] = feature.arrowhead_length
    kwargs['shaft_height_ratio'] = feature.arrowshaft_height
    if hasattr(feature, 'url'):
        kwargs['hrefURL'] = feature.url
        kwargs['hrefTitle'] = feature.name
    if (feature.color == colors.white):
        border = colors.black
    else:
        border = feature.color
    if (feature.strand == 1):
        sigil = method(ctr, top, startangle, endangle, feature.color, border, orientation='right', **kwargs)
    elif (feature.strand == (- 1)):
        sigil = method(btm, ctr, startangle, endangle, feature.color, border, orientation='left', **kwargs)
    else:
        sigil = method(btm, top, startangle, endangle, feature.color, border, **kwargs)
    if feature.label:
        label = String(0, 0, feature.name.strip(), fontName=feature.label_font, fontSize=feature.label_size, fillColor=feature.label_color)
        labelgroup = Group(label)
        label_angle = (startangle + (0.5 * pi))
        (sinval, cosval) = (startsin, startcos)
        if (feature.strand != (- 1)):
            if (startangle < pi):
                (sinval, cosval) = (endsin, endcos)
                label_angle = (endangle - (0.5 * pi))
                labelgroup.contents[0].textAnchor = 'end'
            pos = (self.xcenter + (top * sinval))
            coslabel = cos(label_angle)
            sinlabel = sin(label_angle)
            labelgroup.transform = (coslabel, (- sinlabel), sinlabel, coslabel, pos, (self.ycenter + (top * cosval)))
        else:
            if (startangle < pi):
                (sinval, cosval) = (endsin, endcos)
                label_angle = (endangle - (0.5 * pi))
            else:
                labelgroup.contents[0].textAnchor = 'end'
            pos = (self.xcenter + (btm * sinval))
            coslabel = cos(label_angle)
            sinlabel = sin(label_angle)
            labelgroup.transform = (coslabel, (- sinlabel), sinlabel, coslabel, pos, (self.ycenter + (btm * cosval)))
    else:
        labelgroup = None
    return (sigil, labelgroup)