///|
/// Demo for xms module: XMS weighted site motif + microRNA motif formats.
fn main {
  println("=== xms Demo: XMS & microRNA Motif Formats ===")
  println("")

  // Example 1: Parse XMS format
  println("--- Step 1: Parse XMS Format ---")
  let xms_text = ">TF1\nACGTACGT\nTGCAACGT\nACGTACGT 2.0\n>TF2\nAAAAACCC\nGGGGGTTT\n"
  let motifs = @src.xms_parse(xms_text)
  println("Parsed motifs: " + motifs.length().to_string())
  for m in motifs {
    println("  " + m.name + ": " + m.sites.length().to_string() + " sites")
  }
  println("")

  // Example 2: Count matrix
  println("--- Step 2: Count Matrix ---")
  let counts = @src.xms_counts(motifs[0])
  println(
    "Count matrix: " +
    counts.length().to_string() +
    " x " +
    counts[0].length().to_string(),
  )
  println("  A: " + repr(counts[0]))
  println("  C: " + repr(counts[1]))
  println("")

  // Example 3: PFM (frequency matrix)
  println("--- Step 3: PFM (Frequency Matrix) ---")
  let pfm = @src.xms_pfm(counts)
  println("PFM: " + pfm.length().to_string() + " positions")
  for i in 0.. " + rc)
  println("")

  // Example 9: microRNA PFM from sequences
  println("--- Step 9: microRNA PFM ---")
  let mir_seqs = ["UGA", "UGA", "UGC"]
  let mir_pfm = @src.mirs_pfm(mir_seqs)
  println("microRNA PFM: " + mir_pfm.length().to_string() + " positions")
  for i in 0..