Metadata-Version: 2.4
Name: bijux-phylogenetics
Version: 0.1.1
Summary: Comprehensive phylogenetics runtime for tree analysis, native inference, comparative models, parsimony, and evidence-linked reporting.
Project-URL: Homepage, https://bijux.io/bijux-phylogenetics/
Project-URL: Documentation, https://bijux.io/bijux-phylogenetics/01-bijux-phylogenetics/
Project-URL: Native Workflows, https://bijux.io/bijux-phylogenetics/01-bijux-phylogenetics/operations/
Project-URL: Evidence Book, https://bijux.io/bijux-phylogenetics/02-bijux-phylogenetics-evidence-book/
Project-URL: Benchmarks, https://bijux.io/bijux-phylogenetics/01-bijux-phylogenetics/operations/native-benchmark-review/
Project-URL: Interface Guide, https://bijux.io/bijux-phylogenetics/01-bijux-phylogenetics/interfaces/surface-selection/
Project-URL: Artifact Guide, https://bijux.io/bijux-phylogenetics/01-bijux-phylogenetics/interfaces/artifact-consumption-guide/
Project-URL: Release Guide, https://bijux.io/bijux-phylogenetics/01-bijux-phylogenetics/quality/release-review-workflow/
Project-URL: Repository, https://github.com/bijux/bijux-phylogenetics
Project-URL: Source, https://github.com/bijux/bijux-phylogenetics
Project-URL: Issues, https://github.com/bijux/bijux-phylogenetics/issues
Project-URL: Tracker, https://github.com/bijux/bijux-phylogenetics/issues
Project-URL: Changelog, https://github.com/bijux/bijux-phylogenetics/blob/main/packages/bijux-phylogenetics/CHANGELOG.md
Project-URL: Security, https://github.com/bijux/bijux-phylogenetics/blob/main/SECURITY.md
Author-email: Bijan Mousavi <bijan@bijux.io>
License: Apache-2.0
Keywords: ancestral-state-reconstruction,bayesian-inference,bioinformatics,comparative-biology,comparative-methods,evolution,maximum-likelihood,parsimony,phylogenetics,phylogenomics,sequence-analysis,tree-analysis,tree-comparison
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Typing :: Typed
Requires-Python: >=3.11
Requires-Dist: biopython<2.0,>=1.87
Requires-Dist: cairosvg<3.0,>=2.9.0
Requires-Dist: defusedxml<1.0,>=0.7.1
Requires-Dist: pyyaml<7.0,>=6.0
Provides-Extra: dev
Requires-Dist: bandit<2.0,>=1.8.6; extra == 'dev'
Requires-Dist: build<2.0,>=1.3.0; extra == 'dev'
Requires-Dist: codespell<3.0,>=2.4.1; extra == 'dev'
Requires-Dist: deptry<1.0,>=0.24.0; extra == 'dev'
Requires-Dist: hatch<2.0,>=1.14.0; extra == 'dev'
Requires-Dist: interrogate<2.0,>=1.7.0; extra == 'dev'
Requires-Dist: mypy<3.0,>=1.18.2; extra == 'dev'
Requires-Dist: pip-audit<3.0,>=2.9.0; extra == 'dev'
Requires-Dist: pydantic<3.0,>=2.12; extra == 'dev'
Requires-Dist: pydocstyle<7.0,>=6.3.0; extra == 'dev'
Requires-Dist: pytest-asyncio<2.0,>=1.0.0; extra == 'dev'
Requires-Dist: pytest-cov<8.0,>=6.2.1; extra == 'dev'
Requires-Dist: pytest-timeout<3.0,>=2.4.0; extra == 'dev'
Requires-Dist: pytest-xdist<4.0,>=3.8.0; extra == 'dev'
Requires-Dist: pytest<10.0,>=9.0.3; extra == 'dev'
Requires-Dist: radon<7.0,>=6.0.1; extra == 'dev'
Requires-Dist: ruff<1.0,>=0.13.0; extra == 'dev'
Requires-Dist: twine<7.0,>=6.2.0; extra == 'dev'
Requires-Dist: types-defusedxml<1.0,>=0.7.0.20240218; extra == 'dev'
Requires-Dist: vulture<3.0,>=2.14; extra == 'dev'
Provides-Extra: docs
Requires-Dist: mkdocs-autorefs>=1.4.2; extra == 'docs'
Requires-Dist: mkdocs-git-revision-date-localized-plugin>=1.4.7; extra == 'docs'
Requires-Dist: mkdocs-material>=9.6.12; extra == 'docs'
Requires-Dist: mkdocs>=1.6.1; extra == 'docs'
Requires-Dist: pymdown-extensions>=10.21.3; extra == 'docs'
Description-Content-Type: text/markdown

# bijux-phylogenetics

Canonical runtime package for the `bijux-phylogenetics` repository.

`bijux-phylogenetics` is the full public Python and CLI surface for tree
validation, alignment handling, native likelihood and inference, comparative
analysis, ancestral reconstruction, explicit parsimony, and evidence-linked
report generation.

Choose this package when you want the full runtime contract rather than the
shorter compatibility alias.

The full handbook includes diagrams, architecture maps, and study navigation
on the documentation site. This PyPI page stays text-first so it renders
cleanly in the package index.

## Install

`bijux-phylogenetics` supports Python 3.11 and newer.

```bash
python3.11 -m pip install bijux-phylogenetics
bijux-phylogenetics --help
```

The installed runtime also ships packaged example inputs:

```python
from pathlib import Path

from bijux_phylogenetics.core import copy_example_inputs

copy_example_inputs(Path("artifacts/example-inputs"))
```

## What This Package Covers

| Capability family | Examples |
| --- | --- |
| Trees | validation, rootedness review, support normalization, clade extraction, MRCA lookup, comparison, rendering, tree-set inspection |
| Alignments | FASTA validation, trimming, coding checks, translation, partition-aware input handling |
| Native likelihood | nucleotide, protein, codon, and discrete Mk finite-state likelihood foundations |
| Native inference | native maximum-likelihood tree inference results and native Bayesian public inference entry points |
| Comparative analysis | PGLS, signal, Brownian and OU modeling, discrete-state evolution, comparative diagnostics |
| Ancestral analysis | continuous and discrete reconstruction, uncertainty ledgers, transition review, report artifacts |
| Parsimony | Fitch, Wagner, Sankoff, Dollo, Camin-Sokal, ACCTRAN, DELTRAN, bootstrap, jackknife, NNI, SPR, ratchet |
| Reports and artifacts | reviewer-facing TSV, JSON, HTML, manifest, benchmark, and evidence-linked bundle surfaces |

## Why This Package Is More Than A Thin Wrapper

- it owns the `PhyloTree` runtime and the topology, support, and tree-distance
  semantics that sit underneath multiple workflows
- it exposes typed Python workflow results with stable artifact writers instead
  of only printing shell output
- it includes native maximum-likelihood tree inference results and native
  Bayesian public inference entry points as documented public surfaces
- it keeps wrapper-backed orchestration honest by separating native ownership
  from external-engine execution

## Trust And Evidence

The runtime surface is broader than the closed evidence surface, and the
evidence surface is narrower than the full runtime surface. That distinction
is deliberate:

- a documented runtime surface is usable
- a native surface is locally implemented rather than only wrapped
- an evidence-book study explains how much trust a scientific claim currently
  carries

Use the package for execution. Use the docs and evidence-book when you need
quality boundaries, parity review, or study-specific provenance.

## Python Workflow Surface

The stable notebook-and-pipeline surface lives under `bijux_phylogenetics.api`.

It exposes typed workflow results for:

- FASTA validation
- multiple-sequence alignment
- alignment trimming
- full FASTA-to-tree execution
- maximum-likelihood tree inference
- branch-support estimation
- topology comparison
- PGLS comparative modeling
- discrete ancestral reconstruction
- reviewer-facing report generation
- config-driven workflow execution

```python
from pathlib import Path

from bijux_phylogenetics.api import (
    render_report_workflow,
    run_comparative_model_workflow,
    run_sequence_to_tree_workflow,
)

workflow = run_sequence_to_tree_workflow(
    Path("dataset/sequences.fasta"),
    out_dir=Path("artifacts/sequence-to-tree"),
    sequence_type="dna",
)

comparative = run_comparative_model_workflow(
    Path("dataset/tree.nwk"),
    Path("dataset/traits.tsv"),
    response="response",
    predictors=["predictor_one"],
    lambda_value=1.0,
)

report = render_report_workflow(
    tree_path=workflow.output_paths["tree"],
    alignment_path=workflow.output_paths["trimmed_alignment"],
    traits_path=Path("dataset/traits.tsv"),
    metadata_path=Path("dataset/metadata.tsv"),
    out_path=Path("artifacts/sequence-to-tree/report.html"),
)

workflow.write_json(Path("artifacts/sequence-to-tree/workflow.json"))
workflow.write_tsv(Path("artifacts/sequence-to-tree/workflow.tsv"))
comparative.write_tsv(Path("artifacts/comparative-model.tsv"))
```

## Choose This Package When

- you want the canonical package name for notebooks, papers, or downstream
  integration
- you want both CLI workflows and typed Python workflow results
- you want the full public runtime contract rather than the shorter alias
  surface

## Read Next

- [Runtime guide](https://bijux.io/bijux-phylogenetics/01-bijux-phylogenetics/)
- [Surface selection guide](https://bijux.io/bijux-phylogenetics/01-bijux-phylogenetics/interfaces/surface-selection/)
- [Artifact consumption guide](https://bijux.io/bijux-phylogenetics/01-bijux-phylogenetics/interfaces/artifact-consumption-guide/)
- [Native Inference And Benchmark Surfaces](https://bijux.io/bijux-phylogenetics/01-bijux-phylogenetics/interfaces/native-inference-and-benchmarks/)
- [Native maximum-likelihood workflows](https://bijux.io/bijux-phylogenetics/01-bijux-phylogenetics/operations/native-maximum-likelihood-workflows/)
- [Native Bayesian workflows](https://bijux.io/bijux-phylogenetics/01-bijux-phylogenetics/operations/native-bayesian-workflows/)
- [Native benchmark review](https://bijux.io/bijux-phylogenetics/01-bijux-phylogenetics/operations/native-benchmark-review/)
- [Evidence-book guide](https://bijux.io/bijux-phylogenetics/02-bijux-phylogenetics-evidence-book/)
