nj 0.0.12

Neighbor Joining, fast phylogenetic tree construction. Library and CLI.
Documentation

Neighbor-Joining phylogenetic tree inference library.

Data flow

[FASTA / Python dict / JS object]
        │
        ▼
     NJConfig  (config.rs)
        │
        ▼
  detect_alphabet()  ──►  Alphabet::DNA | Alphabet::Protein
        │
        ▼
    MSA<DNA|Protein>  (msa.rs)
     ├── bootstrap() ──► bootstrap_clade_counts()
     └── into_dist::<Model>()
              │
              ▼
          DistMat  (dist.rs)
              │
              ▼
        neighbor_joining()  ──►  NJState::run()  (nj.rs)
              │
              ▼
          TreeNode  (tree.rs)
              │
              ▼
          to_newick()  ──►  Newick String

Public API

The single public entry point is [nj], which accepts an [NJConfig] and returns a Newick string. Everything else is internal implementation detail exposed only to the Python and WASM wrapper crates.

Model–alphabet compatibility

Model DNA Protein
PDiff
JukesCantor
Kimura2P
Poisson

Providing an incompatible model returns an Err from [nj].