///|
fn main {
println("=== Bio.Graphics.KGML_vis Demo ===")
let pathway = match @src.parse_kgml(@src.kgml_sample_pathway()) {
Some(p) => p
None => abort("failed to parse sample KGML")
}
println("\n1. Pathway metadata")
println(" Name: " + pathway.name())
println(" Org: " + pathway.org())
println(" Title: " + pathway.title())
println("\n2. Entry summary")
let summary = @src.kgml_entry_summary(pathway)
for kv in summary {
println(" " + kv.0 + ": " + kv.1.to_string())
}
println("\n3. Render to SVG (default options)")
let canvas = @src.KgmlCanvas::new(pathway)
let svg = canvas.to_svg(width=600, height=400)
println(" SVG length: " + svg.length().to_string() + " chars")
println(" Contains K00844<").to_string(),
)
println("\n5. Render without relations or reactions")
let opts_min = @src.KgmlCanvasOptions::{
..@src.kgml_default_options(),
show_relations: false,
show_reactions: false,
}
let svg_min = @src.KgmlCanvas::new(pathway, options=opts_min).to_svg()
println(" SVG length: " + svg_min.length().to_string() + " chars")
println("\n6. Convenience: kgml_to_svg from raw XML")
match @src.kgml_to_svg(@src.kgml_sample_pathway(), width=400, height=300) {
Some(s) => println(" Rendered " + s.length().to_string() + " chars")
None => println(" Parse failed")
}
}