Пример #1
0
  def marker_set(self, create = False):

    import VolumePath as vp
    marker_set = vp.find_marker_set_by_name('Volume eraser')
    if marker_set == None and create:
      marker_set = vp.Marker_Set('Volume eraser')
    return marker_set
Пример #2
0
def active_marker_set():

    import VolumePath
    d = VolumePath.volume_path_dialog()
    if d:
        return d.active_marker_set
    return None
Пример #3
0
  def marker_set(self):

    import VolumePath
    d = VolumePath.volume_path_dialog(create = False)
    if d == None:
      return None
    return d.active_marker_set
Пример #4
0
    def transform_coord(self, from_xyz, from_xform, to_xform):

        import VolumePath
        to_xyz = VolumePath.transform_coordinates(from_xyz,
                                        from_xform, to_xform)

        return to_xyz
Пример #5
0
def open_skeleton_file ( open, dialog, smod ) :

    if not open:
        return

    paths = dialog.getPaths()
    path = paths[0]
    import VolumePath
    g = VolumePath.open_marker_set(path)

    mlist = g.markers()
    for m in mlist:
        m.region = None
        rid = int(m.extra_attributes['region_id'])
        if rid in smod.id_to_region:
            r = smod.id_to_region[rid]
            rsize = int(m.extra_attributes['region_size'])
            if r.point_count() == rsize:
                m.region = r

#TODO: The regions file format renumbers the regions consecutively.  So
# matching based on region id won't work.  Should change file format to
# hdf5 and include region ids, colors, and any other useful per-region info.

    nomatch = [m for m in mlist if m.region is None]
    if nomatch:
        umsg('%d of %d skeleton nodes did not match a region' %
             (len(nomatch), len(mlist)))

    if smod.adj_graph:
        smod.adj_graph.close()
    smod.adj_graph = g
Пример #6
0
def open_marker_set(path):
  
  import VolumePath
  d = VolumePath.show_volume_path_dialog()
  d.open_marker_set(path)
  models = []
  return models
Пример #7
0
    def marker_refresh_cb(self):
        """marker_refresh_cb()

        Refresh markers list whenever models are opened or closed in
        Chimera.
        """

        # @ Need to update menu with Listbox in VolumePath
        #   whenever that listbox changes. Any better ways?

        if self.marker_dialog == None:
            import VolumePath
            vpd = VolumePath.volume_path_dialog()
            if vpd == None:
                return
            self.marker_dialog = vpd

        # flush out all entries, get open models list, populate menu
        self.marker_menu.remove_all_entries()
        open_models = chimera.openModels.list()
        for ms in self.marker_sets():
            self.marker_menu.add_entry(ms.name)

        # if previous entry still in current marker sets list,
        # then reset else, set to top most entry
        ms = self.marker_set
        if ms and self.find_marker_set_by_name(ms.name):
            self.marker_menu.variable.set(ms.name)
        elif len(self.marker_sets()) > 0:
            ms = self.marker_sets()[-1]
            self.marker_menu.variable.set(ms.name)
        else:
            self.marker_menu.variable.set('')
Пример #8
0
    def Compute(self):
        """Compute parameters
        """

        if self.volume_path_dialog == None:
            import VolumePath
            self.volume_path_dialog = VolumePath.volume_path_dialog()

        self.update_parameters_value()
Пример #9
0
  def marker_set(self):

    return None

    import VolumePath
    d = VolumePath.volume_path_dialog(create = False)
    if d is None:
      return None
    return d.active_marker_set
Пример #10
0
def place_marker(xyz, msys, color, radius, model_name=None, model_id=None):

    # Locate specified marker model
    mset = None
    import VolumePath as VP
    if not model_id is None:
        msets = VP.marker_sets(model_id)
        if len(msets) >= 1:
            mset = msets[0]

    if mset is None:
        # Create a new marker model
        mname = msys.name + ' center' if model_name is None else model_name
        mset = VP.Marker_Set(mname)
        mset.marker_molecule(model_id)

    mos = mset.marker_molecule().openState
    if mos != msys.openState:
        # Transform from volume to marker model coordinates.
        import Matrix
        xyz = Matrix.xform_xyz(xyz, msys.openState.xform, mos.xform)

    # Place marker at center position.
    mset.place_marker(xyz, color, radius)
Пример #11
0
    def marker_open_cb(self):
        """marker_open_cb() - callback for marker set open buton

        Calls the Volume Path Dialog and its open dialog.
        """

        # @  Better way?

        if self.marker_dialog == None:
            import VolumePath
            self.marker_dialog = VolumePath.volume_path_dialog(1)

        self.marker_dialog.ImportXML()
        self.marker_dialog.enter()
        self.marker_dialog.open_dialog.enter()

        return
Пример #12
0
def restore_path_tracer_state(path_tracer_dialog_basic_state):

    from SessionUtil.stateclasses import Model_State, Xform_State

    classes = (Path_Tracer_Dialog_State, Marker_Set_State, Marker_State, Link_State, Model_State, Xform_State)
    name_to_class = {}
    for c in classes:
        name_to_class[c.__name__] = c

    from SessionUtil import objecttree

    s = objecttree.basic_tree_to_instance_tree(path_tracer_dialog_basic_state, name_to_class)

    import VolumePath

    d = VolumePath.volume_path_dialog(create=1)

    set_dialog_state(s, d)
Пример #13
0
    def transform_coord(self, from_xyz, from_xform, to_xform):
        """transform_coord(from_xyz, from_xform, to_xform)

        Input:
            from_xyz    from object coordinates
            from_xform  from object's transform
            to_xform    to objcet's transform

        Output:
            to_xyz      to object coordinates

        Convert coordinates from 'from object' to 'to object'
        """
        
        import VolumePath
        to_xyz = VolumePath.transform_coordinates(from_xyz,
                                    from_xform,to_xform)
        return to_xyz
def place_marker_at_mouse():
    import VolumePath
    VolumePath.place_marker_at_mouse()
Пример #15
0
  def show_path_tracer_dialog(self):

    import VolumePath
    VolumePath.show_volume_path_dialog()
    if self.marker_set() == None and self.series:
      VolumePath.Marker_Set(self.series[0].menu_name + ' markers')
Пример #16
0
def open_marker_set(path):
  
  import VolumePath
  VolumePath.open_marker_set(path)
  models = []
  return models
Пример #17
0
def place_marker_at_mouse():
  import VolumePath
  VolumePath.place_marker_at_mouse()
Пример #18
0
def volume_path_dialog():

    import VolumePath
    return VolumePath.volume_path_dialog(create=1)
Пример #19
0
    def Markers(self):

        import VolumePath
        VolumePath.show_volume_path_dialog()
Пример #20
0
def place_markers_on_atoms():
  import VolumePath
  VolumePath.place_markers_on_atoms()
Пример #21
0
  def Markers(self):

    import VolumePath
    VolumePath.show_volume_path_dialog()
Пример #22
0
def volume_path_dialog():

  import VolumePath
  return VolumePath.volume_path_dialog(create = 1)
def open_marker_set(path):

    import VolumePath
    VolumePath.open_marker_set(path)
    models = []
    return models
Пример #24
0
def show_volume_path_tracer_dialog():
    'Show volume path tracer viewer dialog'
    import VolumePath
    VolumePath.show_volume_path_dialog()
def place_markers_on_atoms():
    import VolumePath
    VolumePath.place_markers_on_atoms()
Пример #26
0
def volume_path_dialog():

  import VolumePath
  d = VolumePath.volume_path_dialog(create = True)
  return d