///|
/// Sequence utilities demo.
///
/// Run: moon run examples/seq_utils_demo/main.mbt
fn main {
  println("=== Sequence Utilities Demo ===\n")

  let dna_seq = "ATCGATCGATCG"
  let protein_seq = "MALWMRLLPLLALLALWGPDPAAAFVN"

  println("1. Molecular weight:")
  let protein = @bio.ProteinAnalysis::new(protein_seq)
  let protein_weight = protein.molecular_weight()
  println("   Protein weight: \{protein_weight}")

  println("\n2. GC content:")
  let gc = @bio.gc(dna_seq)
  println("   GC content: \{gc}%")

  println("\n3. Melting temperature (Wallace):")
  let tm = @bio.tm_wallace(dna_seq)
  println("   Tm: \{tm}")

  println("\n4. Protein aromaticity:")
  let aromaticity = protein.aromaticity()
  println("   Aromaticity: \{aromaticity}")

  println("\n5. Protein GRAVY score:")
  let gravy = protein.gravy()
  println("   GRAVY: \{gravy}")

  println("\n6. Amino acid composition:")
  let aa_counts = protein.count_amino_acids()
  println("   Amino acids: \{aa_counts.length()}")

  println("\n7. Amino acid percentage:")
  let aa_percent = protein.get_amino_acids_percent()
  println("   Amino acid percent: \{aa_percent.length()}")

  println("\n8. Reverse complement:")
  let dna = @bio.Seq::new(dna_seq)
  let rc = dna.reverse_complement()
  println("   Original: \{dna.data}")
  println("   Reverse complement: \{rc.data}")

  println("\n9. Complement:")
  let comp = dna.complement()
  println("   Complement: \{comp.data}")

  println("\n10. Transcribe:")
  let rna = dna.transcribe()
  println("   RNA: \{rna.data}")

  println("\n=== Demo Complete ===")
}