///|
/// scikit-bio tree + UniFrac demo: parse a rooted Newick tree, list its tips,
/// and compute unweighted/weighted UniFrac between two samples.
///|
fn main {
let tree = @src.skbio_tree_read("(((a:1,b:2):0.5,(c:1,d:1):0.5):1.0)root;")
println("=== tree tips ===")
println(Repr(tree.tips()))
println("\n=== UniFrac between two samples (scikit-bio doctest tree) ===")
let t = @src.skbio_tree_read(
"(((((U1:0.5,U2:0.5):0.5,U3:1.0):1.0):0.0," +
"(U4:0.75,(U5:0.5,((U6:0.33,U7:0.62):0.5,U8:0.5):0.5):0.5):1.25):0.0)root;",
)
let taxa = ["U1", "U2", "U3", "U4", "U5", "U6", "U7", "U8"]
let u = [1.0, 0.0, 0.0, 4.0, 1.0, 2.0, 3.0, 0.0]
let v = [0.0, 1.0, 1.0, 6.0, 0.0, 1.0, 0.0, 0.0]
println(
"unweighted UniFrac = \{@src.skbio_unweighted_unifrac(u, v, taxa, t)}",
)
println("weighted UniFrac = \{@src.skbio_weighted_unifrac(u, v, taxa, t)}")
}