///|
/// PAML Demo - Demonstrates molecular evolution analysis.
fn main {
  println("=== PAML Demo ===")

  let alignment = @bio.paml_create_example_alignment()
  println("Alignment: \{alignment.sequences.length()} sequences")

  println("")
  println("Parameter estimation:")
  let result = @bio.paml_estimate_parameters(alignment)
  println("  ln(Likelihood): \{result.ln_likelihood}")
  println("  pi_A: \{result.parameters.get("pi_A").unwrap_or(0.0)}")
  println("  pi_T: \{result.parameters.get("pi_T").unwrap_or(0.0)}")
  println("  pi_C: \{result.parameters.get("pi_C").unwrap_or(0.0)}")
  println("  pi_G: \{result.parameters.get("pi_G").unwrap_or(0.0)}")

  println("")
  println("dN/dS calculation:")
  let dnds = @bio.paml_calculate_dnds(
    "ATGGCCGGTAAATGA", "ATGGCCGGTAATAGA", "Nei-Gojobori",
  )
  println("  dN: \{dnds.dN}")
  println("  dS: \{dnds.dS}")
  println("  omega (dN/dS): \{dnds.omega}")

  println("")
  println("Likelihood analysis:")
  let likelihood_result = @bio.paml_run_likelihood(alignment)
  println("  dN/dS ratios: \{likelihood_result.dnds_ratios.length()} pairs")
}