Skip to main content

Morphological Trees Visualization

Project description

MorphoTreeViz – Morphological Trees Visualization

Interactive visualization of morphological trees.

Quick Start (import mtviz as viz)

import mtviz as viz

class Node:
    def __init__(self, id, level, area, children=None):
        self.id = id
        self.level = level
        self.area = area
        self.children = children or []

root = Node(1, 0, 10, [
    Node(2, 1, 5, [Node(4, 2, 3), Node(5, 2, 2)]),
    Node(3, 1, 5, [Node(6, 2, 1)])
])

pt = viz.PrintTree(lambda n: n.children, lambda n: f"{n.id}: {n.level}: {n.area}")
pt(root)

Color (optional)

  • Pass ANSI codes in color (e.g., "\x1b[40m\x1b[37m" for black background + white text).
  • If you use colorama in your project, you can pass Back.BLACK + Fore.WHITE.

Interactive Tree (viz.makePlotTree)

Use Bokeh to visualize and interact with the tree: hover tooltips, click actions, flood tools, and size/zoom controls.

import mtviz as viz
from bokeh.io import show, output_notebook

output_notebook()  # inline in Jupyter; use show(p) to open in browser

class Node:
    def __init__(self, id, level, area, children=None):
        self.id = id
        self.level = level
        self.area = area
        self.children = children or []

root = Node(1, 0, 10, [
    Node(2, 1, 5, [Node(4, 2, 3), Node(5, 2, 2)]),
    Node(3, 1, 5, [Node(6, 2, 1)])
])

p = viz.makePlotTree(
    root,
    lambda n: n.children,
    {
      "id:":      lambda n: n.id,
      "level:":   "level",
      "area:":    lambda n: n.area,
      "repCNPs":  lambda n: getattr(n, 'repCnps', []),
    },
    lambda n: n.id,
    node_size=18,
    flood_use=None,
)
show(p.panel)

Image Overlay + Flood

You can compose a figure with a grayscale image and an RGBA overlay, then link DrawTree’s flood tools.

import mtviz as viz
from bokeh.layouts import row, column

img = ...  # 2D numpy array (grayscale)
bundle_img = viz.makePlotImage(img)
p_img = bundle_img.panel
img_source = bundle_img.source
alpha_slider = bundle_img.controls[0]

p_tree = viz.makePlotTree(
  root,
  lambda n: n.children,
  { "id:": lambda n: n.id, "repCNPs": lambda n: getattr(n, 'repCnps', []) },
  lambda n: n.id,
  image_source=img_source,
  alpha_slider=alpha_slider,
  flood_use='floodThreshold',
  flood_params={'polarity': 255},
)
show(row(p_tree, column(alpha_slider, p_img)))

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

morphotreeviz-0.0.2.tar.gz (53.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

morphotreeviz-0.0.2-py3-none-any.whl (43.8 kB view details)

Uploaded Python 3

File details

Details for the file morphotreeviz-0.0.2.tar.gz.

File metadata

  • Download URL: morphotreeviz-0.0.2.tar.gz
  • Upload date:
  • Size: 53.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for morphotreeviz-0.0.2.tar.gz
Algorithm Hash digest
SHA256 3cd2514a25b0492cefd1316e9792454b18be4a339d9afe4553357326d08abb21
MD5 6845de3526941d6d3cc1ee3cb0db322b
BLAKE2b-256 9564463f28de90c628d503d4b633f6aed96665fa65ed4c1280e552f6fa544c2e

See more details on using hashes here.

File details

Details for the file morphotreeviz-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: morphotreeviz-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 43.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for morphotreeviz-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 5e8a271da4fe52e898f64f79819771f311b0be0aab6ee192935d767eaf96c98c
MD5 0721d9a4e28a72ded97d5db700e43bef
BLAKE2b-256 c6c3b8fcd5cff4ad7c0f585715f2995afb40cbdec57386e4dacd412c67c3e87a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page