# rmp-deb/dstatree architecture

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

- Interactive diagram: https://gitdiagram.com/rmp-deb/dstatree
- Repository: https://github.com/rmp-deb/dstatree

## Overview

dstatree is an R utility for filtering D-statistic result tables against a rooted species tree. The documented workflow loads a tree and table into a DStatFilter object, filters topology-inconsistent trios and adjusts for multiple testing, then reports significant signals involving true sister pairs or saves results. The README supports these capabilities and method calls; no source excerpts were provided, so internal implementation details and unshown call relationships are omitted.

Main entry points: [`R/DStatFilter.R`](https://github.com/rmp-deb/dstatree/blob/main/R/DStatFilter.R) (DStatFilter)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_inputs["Analysis inputs"]
  node_tree["Rooted species tree"]
  node_dstat_table["D-statistic table"]
end

subgraph group_analysis["Filtering"]
  node_filter_object["DStatFilter<br/>[DStatFilter.R]"]
  node_topology_filter["Topology filtering<br/>[DStatFilter.R]"]
  node_multiple_testing["Multiple-testing adjustment<br/>[DStatFilter.R]"]
end

subgraph group_results["Results"]
  node_sister_signals["Sister-pair signals<br/>[DStatFilter.R]"]
  node_saved_results["Saved result table"]
end

node_user(("Analyst"))

node_user -->|"creates"| node_filter_object
node_user -->|"provides"| node_tree
node_user -->|"provides"| node_dstat_table
node_filter_object -->|"loads"| node_tree
node_filter_object -->|"loads"| node_dstat_table
node_user -->|"calls filter"| node_filter_object
node_filter_object -->|"filters trios"| node_topology_filter
node_filter_object -->|"adjusts tests"| node_multiple_testing
node_user -->|"requests sister signals"| node_filter_object
node_filter_object -->|"reports"| node_sister_signals
node_user -->|"calls saveResult"| node_filter_object
node_filter_object -->|"saves"| node_saved_results

click node_filter_object "https://github.com/rmp-deb/dstatree/blob/main/R/DStatFilter.R"
click node_topology_filter "https://github.com/rmp-deb/dstatree/blob/main/R/DStatFilter.R"
click node_multiple_testing "https://github.com/rmp-deb/dstatree/blob/main/R/DStatFilter.R"
click node_sister_signals "https://github.com/rmp-deb/dstatree/blob/main/R/DStatFilter.R"

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_tree,node_dstat_table toneBlue
class node_filter_object,node_topology_filter,node_multiple_testing toneAmber
class node_sister_signals,node_saved_results toneMint
class node_user toneIndigo
```

## Components

### Analysis inputs

- **Rooted species tree**
- **D-statistic table**

### Filtering

- [DStatFilter](https://github.com/rmp-deb/dstatree/blob/main/R/DStatFilter.R): `R/DStatFilter.R`
- [Topology filtering](https://github.com/rmp-deb/dstatree/blob/main/R/DStatFilter.R): `R/DStatFilter.R`
- [Multiple-testing adjustment](https://github.com/rmp-deb/dstatree/blob/main/R/DStatFilter.R): `R/DStatFilter.R`

### Results

- [Sister-pair signals](https://github.com/rmp-deb/dstatree/blob/main/R/DStatFilter.R): `R/DStatFilter.R`
- **Saved result table**

### Other components

- **Analyst**

## Connections

- Analyst → DStatFilter: creates (evidence: `README.md`)
- Analyst → Rooted species tree: provides (evidence: `README.md`)
- Analyst → D-statistic table: provides (evidence: `README.md`)
- DStatFilter → Rooted species tree: loads (evidence: `README.md`)
- DStatFilter → D-statistic table: loads (evidence: `README.md`)
- Analyst → DStatFilter: calls filter (evidence: `README.md`)
- DStatFilter → Topology filtering: filters trios (evidence: `README.md`)
- DStatFilter → Multiple-testing adjustment: adjusts tests (evidence: `README.md`)
- Analyst → DStatFilter: requests sister signals (evidence: `README.md`)
- DStatFilter → Sister-pair signals: reports (evidence: `README.md`)
- Analyst → DStatFilter: calls saveResult (evidence: `README.md`)
- DStatFilter → Saved result table: saves (evidence: `README.md`)
