///|
/// Small deterministic command-line smoke example for the library APIs.
fn main {
let fasta = ">demo_cds example\nATGCGTTAA\n>partial\nATGCGT\n"
let parsed = @io.parse_fasta(fasta)
let mut options = @analysis.AnalysisOptions::default()
let mut orf_options = options.orf_options
orf_options = { ..orf_options, min_length_nt: 9 }
options = { ..options, orf_options, }
let reports = @analysis.analyze_records(parsed.records, options)
let table = @tables.standard_table()
println("moonbit-genetic-code CLI")
println("registered_tables=" + @tables.list_all_tables().length().to_string())
println("table=" + table.id.to_string() + " name=" + table.name)
println(
"records=" +
reports.length().to_string() +
" parse_issues=" +
parsed.issues.length().to_string(),
)
for report in reports {
println(
"record=" +
report.identifier +
" length=" +
report.profile.length.to_string() +
" protein=" +
report.translation.protein +
" cds_valid=" +
report.cds.is_valid.to_string() +
" orfs=" +
report.orfs.count.to_string() +
" codons=" +
report.usage.total_codons.to_string(),
)
}
}