Skip to content

Latest commit

 

History

History
150 lines (115 loc) · 4.85 KB

File metadata and controls

150 lines (115 loc) · 4.85 KB

Module Dependency DAG

Overview

This document describes the current directed acyclic dependency graph for the module.evolview.pathwaybrowser module ecosystem.

Current facts

  • Total packages: 18
  • Packages containing modules: 8
  • Utility packages: 10
  • Total modules: 18
  • Dependency layers: 7
  • Circular dependencies: 0

The graph below reflects the current source layout. treebuilder is included in the current dependency surface.


Dependency Rules

The current architecture follows these rules:

  1. Dependencies flow downward only.
  2. Lower layers do not depend on application-layer packages.
  3. evoltrepipline stays as shared infrastructure rather than business logic.
  4. evolview.phylotree remains decoupled from gfamily.
  5. evoltreio depends on evolview.model instead of browser-specific UI packages.

Read the graph as A --> B, meaning A depends on B.


DAG Graph

graph TB
    subgraph Level7["Level 7: Target Module"]
        pathwaybrowser["pathwaybrowser<br/>[MODULE]"]:::module
    end

    subgraph Level6["Level 6: Application Layer"]
        gfamily["gfamily<br/>[MODULE]"]:::module
        moderntreeviewer["moderntreeviewer<br/>[MODULE]"]:::module
    end

    subgraph Level5["Level 5: I/O Layer"]
        evoltreio["evoltreio<br/>[UTILITY]"]:::utility
    end

    subgraph Level4["Level 4: Model Layer"]
        model["evolview.model<br/>[UTILITY]"]:::utility
        phylotree["evolview.phylotree<br/>[UTILITY]"]:::utility
    end

    subgraph Level3["Level 3: Process Orchestration"]
        evoltre["evoltre<br/>[UTILITY]"]:::utility
        multiseq["multiseq<br/>[6 MODULES]"]:::module
        treebuilder["treebuilder<br/>[4 MODULES]"]:::module
    end

    subgraph Level2["Level 2: Core Algorithms"]
        evoldist["evoldist<br/>[3 MODULES]"]:::module
        remnant["remnant<br/>[UTILITY]"]:::utility
        parsimonytre["parsimonytre<br/>[UTILITY]"]:::utility
    end

    subgraph Level1["Level 1: Shared Infrastructure"]
        evoltrepipline["evoltrepipline<br/>[UTILITY]<br/>interfaces · constants · shared UI"]:::utility
    end

    subgraph Level0["Level 0: Base Utilities"]
        ambigbse["ambigbse<br/>[MODULE]"]:::module
        genome["genome<br/>[UTILITY]"]:::utility
        evolknow["evolknow<br/>[UTILITY]"]:::utility
        pill["pill<br/>[MODULE]"]:::module
        webmsaoperator["webmsaoperator<br/>[UTILITY]"]:::utility
    end

    pathwaybrowser --> gfamily
    pathwaybrowser --> model
    pathwaybrowser --> moderntreeviewer
    pathwaybrowser --> phylotree

    gfamily --> model
    gfamily --> phylotree
    gfamily --> evolknow
    gfamily --> evoltre
    gfamily --> multiseq

    moderntreeviewer --> model
    moderntreeviewer --> evoltreio
    moderntreeviewer --> pill

    evoltreio --> model
    phylotree --> model

    evoltre --> parsimonytre
    multiseq --> evoltrepipline
    multiseq --> evoltre
    multiseq --> webmsaoperator
    treebuilder --> evoltrepipline
    treebuilder --> remnant
    treebuilder --> multiseq
    treebuilder --> evoldist

    evoldist --> evoltrepipline
    remnant --> evoltrepipline
    remnant --> evoldist
    parsimonytre --> evoldist

    classDef module fill:#e1f5e1,stroke:#4caf50,stroke-width:2px,color:#000
    classDef utility fill:#e3f2fd,stroke:#2196f3,stroke-width:2px,color:#000

    style Level0 fill:#fff3e0,stroke:#ff9800,stroke-width:2px
    style Level1 fill:#f3e5f5,stroke:#9c27b0,stroke-width:2px
    style Level2 fill:#fce4ec,stroke:#e91e63,stroke-width:2px
    style Level3 fill:#e0f2f1,stroke:#009688,stroke-width:2px
    style Level4 fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
    style Level5 fill:#fff9c4,stroke:#fbc02d,stroke-width:2px
    style Level6 fill:#ffe0b2,stroke:#ff6f00,stroke-width:2px
    style Level7 fill:#ffcdd2,stroke:#d32f2f,stroke-width:3px
Loading

Layer Summary

Level Role Packages
0 Base utilities ambigbse, genome, evolknow, pill, webmsaoperator
1 Shared infrastructure evoltrepipline
2 Core algorithms evoldist, remnant, parsimonytre
3 Process orchestration evoltre, multiseq, treebuilder
4 Model layer evolview.model, evolview.phylotree
5 I/O layer evoltreio
6 Application layer evolview.moderntreeviewer, evolview.gfamily
7 Target module evolview.pathwaybrowser

Key Evolution Results

The current DAG already reflects these established outcomes:

  • evoltrepipline no longer depends on business-layer algorithm packages.
  • evolview.phylotree is separated from gfamily through shared tree-visualization abstractions.
  • evoltreio reads and writes tree structures against evolview.model.
  • Shared alignment-view data models now live in evoltrepipline.alignment.
  • pathwaybrowser stays at the top of the dependency surface and only consumes lower layers.