# digital-chemistry-laboratory/morfeus architecture

> Architecture diagram of the GitHub repository digital-chemistry-laboratory/morfeus, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-14). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/digital-chemistry-laboratory/morfeus
- Repository: https://github.com/digital-chemistry-laboratory/morfeus

## Overview

Morfeus is a Python package for calculating molecular features from molecular structures, usable through its Python API or command line. The documented example reads XYZ coordinates, constructs a cone-angle calculator, and returns a numeric result. Its broader feature set covers steric, geometric, surface, conformational, and electronic calculations. Shared geometry, molecular data, and file I/O form supporting layers. The excerpts and index identify these modules, but do not establish most runtime call relationships, so the graph avoids inferring a broader pipeline.

Main entry points: [`morfeus/__init__.py`](https://github.com/digital-chemistry-laboratory/morfeus/blob/main/morfeus/__init__.py) (Python API), [`morfeus/__main__.py`](https://github.com/digital-chemistry-laboratory/morfeus/blob/main/morfeus/__main__.py) (Command Line), [`morfeus/cone_angle.py`](https://github.com/digital-chemistry-laboratory/morfeus/blob/main/morfeus/cone_angle.py) (Cone Angle), [`morfeus/io.py`](https://github.com/digital-chemistry-laboratory/morfeus/blob/main/morfeus/io.py) (Structure I/O)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["User Interfaces"]
  node_api["Python API<br/>[__init__.py]"]
  node_cli["Command Line<br/>[__main__.py]"]
end

subgraph group_steric["Steric Features"]
  node_buried["Buried Volume<br/>[buried_volume.py]"]
  node_cone["Cone Angle<br/>[cone_angle.py]"]
  node_dispersion["Dispersion<br/>[dispersion.py]"]
  node_sterimol["Sterimol<br/>[sterimol.py]"]
  node_visible["Visible Volume<br/>[visible_volume.py]"]
end

subgraph group_molecular["Molecular Features"]
  node_bite["Bite Angle<br/>[bite_angle.py]"]
  node_conformer["Conformer Tools<br/>[conformer.py]"]
  node_localforce["Local Force<br/>[local_force.py]"]
  node_pyramidal["Pyramidalization"]
  node_sasa["Accessible Surface<br/>[sasa.py]"]
  node_solid["Solid Angle<br/>[solid_angle.py]"]
  node_xtb["xTB Descriptors<br/>[xtb.py]"]
end

subgraph group_shared["Shared Support"]
  node_io["Structure I/O<br/>[io.py]"]
  node_geometry["Geometry Engine<br/>[geometry.py]"]
  node_data["Element Data<br/>[data.py]"]
  node_utils["Calculation Utilities<br/>[utils.py]"]
  node_calculators["Calculators<br/>[calculators.py]"]
  node_d3["D3 Data<br/>[d3_data.py]"]
end

node_user(("Package User"))

node_user -->|"imports"| node_api
node_user -->|"runs"| node_cli
node_api -->|"reads XYZ"| node_io
node_api -->|"constructs"| node_cone

click node_api "https://github.com/digital-chemistry-laboratory/morfeus/blob/main/morfeus/__init__.py"
click node_cli "https://github.com/digital-chemistry-laboratory/morfeus/blob/main/morfeus/__main__.py"
click node_bite "https://github.com/digital-chemistry-laboratory/morfeus/blob/main/morfeus/bite_angle.py"
click node_buried "https://github.com/digital-chemistry-laboratory/morfeus/blob/main/morfeus/buried_volume.py"
click node_cone "https://github.com/digital-chemistry-laboratory/morfeus/blob/main/morfeus/cone_angle.py"
click node_dispersion "https://github.com/digital-chemistry-laboratory/morfeus/blob/main/morfeus/dispersion.py"
click node_sterimol "https://github.com/digital-chemistry-laboratory/morfeus/blob/main/morfeus/sterimol.py"
click node_visible "https://github.com/digital-chemistry-laboratory/morfeus/blob/main/morfeus/visible_volume.py"
click node_conformer "https://github.com/digital-chemistry-laboratory/morfeus/blob/main/morfeus/conformer.py"
click node_localforce "https://github.com/digital-chemistry-laboratory/morfeus/blob/main/morfeus/local_force.py"
click node_pyramidal "https://github.com/digital-chemistry-laboratory/morfeus/blob/main/morfeus/pyramidalization.py"
click node_sasa "https://github.com/digital-chemistry-laboratory/morfeus/blob/main/morfeus/sasa.py"
click node_solid "https://github.com/digital-chemistry-laboratory/morfeus/blob/main/morfeus/solid_angle.py"
click node_xtb "https://github.com/digital-chemistry-laboratory/morfeus/blob/main/morfeus/xtb.py"
click node_io "https://github.com/digital-chemistry-laboratory/morfeus/blob/main/morfeus/io.py"
click node_geometry "https://github.com/digital-chemistry-laboratory/morfeus/blob/main/morfeus/geometry.py"
click node_data "https://github.com/digital-chemistry-laboratory/morfeus/blob/main/morfeus/data.py"
click node_utils "https://github.com/digital-chemistry-laboratory/morfeus/blob/main/morfeus/utils.py"
click node_calculators "https://github.com/digital-chemistry-laboratory/morfeus/blob/main/morfeus/calculators.py"
click node_d3 "https://github.com/digital-chemistry-laboratory/morfeus/blob/main/morfeus/d3_data.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_api,node_cli,node_user toneBlue
class node_buried,node_cone,node_dispersion,node_sterimol,node_visible toneAmber
class node_bite,node_conformer,node_localforce,node_pyramidal,node_sasa,node_solid,node_xtb toneMint
class node_io,node_geometry,node_data,node_utils,node_calculators,node_d3 toneRose
```

## Components

### User Interfaces

- [Python API](https://github.com/digital-chemistry-laboratory/morfeus/blob/main/morfeus/__init__.py): `morfeus/__init__.py`
- [Command Line](https://github.com/digital-chemistry-laboratory/morfeus/blob/main/morfeus/__main__.py): `morfeus/__main__.py`

### Steric Features

- [Buried Volume](https://github.com/digital-chemistry-laboratory/morfeus/blob/main/morfeus/buried_volume.py): `morfeus/buried_volume.py`
- [Cone Angle](https://github.com/digital-chemistry-laboratory/morfeus/blob/main/morfeus/cone_angle.py): `morfeus/cone_angle.py`
- [Dispersion](https://github.com/digital-chemistry-laboratory/morfeus/blob/main/morfeus/dispersion.py): `morfeus/dispersion.py`
- [Sterimol](https://github.com/digital-chemistry-laboratory/morfeus/blob/main/morfeus/sterimol.py): `morfeus/sterimol.py`
- [Visible Volume](https://github.com/digital-chemistry-laboratory/morfeus/blob/main/morfeus/visible_volume.py): `morfeus/visible_volume.py`

### Molecular Features

- [Bite Angle](https://github.com/digital-chemistry-laboratory/morfeus/blob/main/morfeus/bite_angle.py): `morfeus/bite_angle.py`
- [Conformer Tools](https://github.com/digital-chemistry-laboratory/morfeus/blob/main/morfeus/conformer.py): `morfeus/conformer.py`
- [Local Force](https://github.com/digital-chemistry-laboratory/morfeus/blob/main/morfeus/local_force.py): `morfeus/local_force.py`
- [Pyramidalization](https://github.com/digital-chemistry-laboratory/morfeus/blob/main/morfeus/pyramidalization.py): `morfeus/pyramidalization.py`
- [Accessible Surface](https://github.com/digital-chemistry-laboratory/morfeus/blob/main/morfeus/sasa.py): `morfeus/sasa.py`
- [Solid Angle](https://github.com/digital-chemistry-laboratory/morfeus/blob/main/morfeus/solid_angle.py): `morfeus/solid_angle.py`
- [xTB Descriptors](https://github.com/digital-chemistry-laboratory/morfeus/blob/main/morfeus/xtb.py): `morfeus/xtb.py`

### Shared Support

- [Structure I/O](https://github.com/digital-chemistry-laboratory/morfeus/blob/main/morfeus/io.py): `morfeus/io.py`
- [Geometry Engine](https://github.com/digital-chemistry-laboratory/morfeus/blob/main/morfeus/geometry.py): `morfeus/geometry.py`
- [Element Data](https://github.com/digital-chemistry-laboratory/morfeus/blob/main/morfeus/data.py): `morfeus/data.py`
- [Calculation Utilities](https://github.com/digital-chemistry-laboratory/morfeus/blob/main/morfeus/utils.py): `morfeus/utils.py`
- [Calculators](https://github.com/digital-chemistry-laboratory/morfeus/blob/main/morfeus/calculators.py): `morfeus/calculators.py`
- [D3 Data](https://github.com/digital-chemistry-laboratory/morfeus/blob/main/morfeus/d3_data.py): `morfeus/d3_data.py`

### Other components

- **Package User**

## Connections

- Package User → Python API: imports (evidence: `README.md`)
- Package User → Command Line: runs (evidence: `README.md`)
- Python API → Structure I/O: reads XYZ (evidence: `README.md`)
- Python API → Cone Angle: constructs (evidence: `README.md`)
