# phymapnet

PhyMapNet: phylogeny-aware microbial network inference with optional hyperparameter-ensemble edge reliability.

## Installation

```r
install.packages("phymapnet")

# Development version, after the GitHub repository is available:
# install.packages("remotes")
remotes::install_github("USERNAME/PhyMapNet")
```

## Quick start

```r
library(phymapnet)
library(ape)

# otu: samples x taxa matrix (rownames=samples, colnames=taxa)
# tree: phylo object with tip labels = taxa, or a named phylogenetic distance matrix

fit <- phymapnet_fit(
  otu, tree,
  alpha = 0.05, k = 5,
  epsilon1 = 0.1, epsilon2 = 0.1,
  kernel = "gaussian",
  th_sparsity = 0.95,
  normalization = "log"
)

res <- phymapnet_reliability(
  otu, tree,
  th_fixed = 0.95,
  kernels = c("gaussian"),
  normalizations = c("log"),
  consensus_cut = 0.5
)

# Outputs:
# res$rel_mat, res$consensus_mat, res$edge_list
```

## Notes

`otu` should be a samples x taxa matrix with sample row names and taxa column
names. The second input may be an `ape::phylo` object with tip labels matching
the taxa names, or a named symmetric phylogenetic distance matrix with zero
diagonal.

```r
# DIS: named taxa x taxa phylogenetic distance matrix
res_dis <- phymapnet_reliability(
  otu, DIS,
  kernels = c("gaussian"),
  normalizations = c("log"),
  progress = FALSE
)
```

The revised paper public normalization options are `"log"`, `"clr"`, and
`"tss"`; GMPR is not part of this revised package interface.
