Ejemplo n.º 1
0
 def start_selecting(self, info):
     svg = self.svg
     side = self.default_side
     (x, y) = self.event_position(info)
     self.select_start = dGraph.pos(x,y)
     self.select_end = dGraph.pos(x+side, y+side)
     if self.selection_id is None:
         # create a selection rectangle
         svg.rect(SELECTION, x, y, side, side, "black",
             style_dict={"fill-opacity": 0.2})
         self.selection_id = SELECTION
     else:
         atts = {"x": x, "y": y, "width": side, "height": side}
         svg.change_element(self.selection_id, atts)
     svg.send_commands()
     self.selecting = True
Ejemplo n.º 2
0
def iGraphLayout(G, name, fit=1000):
    iG = asIGraph(G)
    index_to_name = {i: n.attributes()["name"]
                     for (i, n) in enumerate(iG.vs)}
    L = iG.layout(name)
    L.fit_into([0, 0, fit, fit])
    D = {index_to_name[i]: pos(xy[0], xy[1])
         for (i,xy) in enumerate(L)}
    return D
Ejemplo n.º 3
0
def load(filename):
    with open(filename) as f:
        jlayout = json.load(f)
    # Lower case gene names and array positions.
    layout = {k.lower(): pos(*jlayout[k]) for k in jlayout}
    return layout
Ejemplo n.º 4
0
 def __init__(self):
     self.title_html = widgets.HTML("Gene network")
     self.zoom_button = self.make_button("zoom", self.zoom_click, True)
     self.trim_button = self.make_button("trim", self.trim_click)
     self.layout_button = self.make_button("layout", self.layout_click)
     self.expand_button = self.make_button("expand", self.expand_click)
     self.regulates_button = self.make_button("regulates", self.regulates_click)
     self.targeted_button = self.make_button("targeted by", self.targeted_click)
     self.focus_button = self.make_button("focus", self.focus_click)
     self.restore_button = self.make_button("restore", self.restore_click)
     self.ignore_button = self.make_button("ignore", self.ignore_click)
     self.nodes_button = self.make_button("list nodes", self.nodes_click)
     self.edges_button = self.make_button("list edges", self.edges_click)
     self.layout_dropdown = self.make_layout_dropdown()
     self.labels_button = self.make_checkbox("labels", self.labels_click)
     self.colors_button = self.make_checkbox("colors", self.colors_click)
     self.draw_button = self.make_button("draw", self.draw_click)
     # Assemble the layout
     self.threshhold_assembly = self.make_threshhold_assembly()
     self.pattern_assembly = self.make_pattern_assembly()
     self.info_area = widgets.Textarea(description="status")
     self.colors_assembly = self.make_colors_assembly()
     self.dialog = self.make_dialog()
     self.colors_assembly.visible = False
     svg = self.svg = canvas.SVGCanvasWidget()
     sslider = self.size_slider = widgets.FloatSlider(value=500, min=500, max=2000, step=10,
         readout=False, width="150px")
     self.depth_slider = widgets.IntSlider(
         description="depth", value=0, min=0, max=5, width="50px")
     traitlets.directional_link((sslider, "value"), (svg, "width"))
     traitlets.directional_link((sslider, "value"), (svg, "height"))
     #self.svg = widgets.Button(description="dummy button")
     svg.add_style("background-color", "white")
     svg.watch_event = "click mousedown mouseup mousemove mouseover"
     svg.default_event_callback = self.svg_callback
     left_panel = [self.title_html,
                   self.svg, 
                   self.threshhold_assembly, 
                   self.pattern_assembly,
                   self.info_area]
     self.vertical = widgets.VBox(children=left_panel)
     buttons = [self.zoom_button,
                self.focus_button,
                self.ignore_button,
                self.trim_button,
                self.expand_button,
                self.regulates_button,
                self.targeted_button,
                self.layout_dropdown,
                self.layout_button,
                self.nodes_button,
                self.edges_button,
                self.labels_button,
                self.restore_button,
                self.size_slider,
                self.draw_button,
                self.depth_slider,
                self.colors_button,
                self.colors_assembly,
                self.dialog]
     self.inputs = widgets.VBox(children=buttons)
     self.assembly = widgets.HBox(children=[self.inputs, self.vertical])
     self.select_start = None
     self.select_end = None
     self.selection_id = None
     self.selecting = False
     self.data_graph = None
     self.data_positions = None
     self.display_positions = None
     self.display_graph = None
     self.selected_nodes = None
     self.svg_origin = dGraph.pos(0, 0)
     self.moving_node = None
Ejemplo n.º 5
0
 def event_position(self, info):
     "Get the position array for an event info descriptor."
     x = info.get("svgX")
     y = info.get("svgY")
     return dGraph.pos(x, y)