// Demo for Bio.Alphabet module
///|
fn main {
// Create IUPAC unambiguous DNA alphabet
let dna = @bio.iupac_unambiguous_dna()
println("=== IUPAC Unambiguous DNA Alphabet ===")
println("Name: \{dna.name}")
println("Is gapped: \{dna.is_gapped}")
println("Letters count: \{dna.letters.length()}")
// Validate characters
println("\nValidating characters:")
println("A valid: \{dna.is_valid("A")}")
println("C valid: \{dna.is_valid("C")}")
println("G valid: \{dna.is_valid("G")}")
println("T valid: \{dna.is_valid("T")}")
println("U valid: \{dna.is_valid("U")}")
// Create IUPAC ambiguous DNA alphabet
let ambiguous_dna = @bio.iupac_ambiguous_dna()
println("\n=== IUPAC Ambiguous DNA Alphabet ===")
println("Name: \{ambiguous_dna.name}")
println("Letters count: \{ambiguous_dna.letters.length()}")
println("R valid: \{ambiguous_dna.is_valid("R")}")
println("Y valid: \{ambiguous_dna.is_valid("Y")}")
println("N valid: \{ambiguous_dna.is_valid("N")}")
// Create protein alphabet
let protein = @bio.iupac_protein()
println("\n=== IUPAC Protein Alphabet ===")
println("Name: \{protein.name}")
println("Letters count: \{protein.letters.length()}")
println("A valid: \{protein.is_valid("A")}")
println("W valid: \{protein.is_valid("W")}")
println("X valid: \{protein.is_valid("X")}")
// Create gapped DNA alphabet
let gapped_dna = @bio.gapped_dna()
println("\n=== Gapped DNA Alphabet ===")
println("Name: \{gapped_dna.name}")
println("Is gapped: \{gapped_dna.is_gapped}")
println("- valid: \{gapped_dna.is_valid("-")}")
// Get codon mapping
let mapping = @bio.three_to_one()
println("\n=== Three to One Letter Code ===")
let ala = mapping.get("Ala")
if ala is Some(v) {
println("Ala -> \{v}")
}
let gly = mapping.get("Gly")
if gly is Some(v) {
println("Gly -> \{v}")
}
let ter = mapping.get("Ter")
if ter is Some(v) {
println("Ter -> \{v}")
}
println("\nDemo completed successfully!")
}