///|
/// Demo for rrvgo module: GO term semantic redundancy reduction.
fn main {
println("=== rrvgo Demo: GO Term Redundancy Reduction ===")
println("")
// Example 1: Build a small GO graph using gosemsim demo graph
println("--- Step 1: Build GO Graph ---")
let graph = @src.gosemsim_example_graph()
let ids = graph.term_ids()
println("GO terms count: " + ids.length().to_string())
println("")
// Example 2: Compute semantic similarity matrix (Wang method)
println("--- Step 2: Semantic Similarity Matrix ---")
let sims = @src.rvgo_sim_matrix(graph, ids)
println(
"Similarity matrix: " +
sims.length().to_string() +
" x " +
sims[0].length().to_string(),
)
println("GO:0007165 vs GO:0023046 sim = " + sims[5][4].to_string())
println("")
// Example 3: Distance matrix
println("--- Step 3: Distance Matrix ---")
let dist = @src.rvgo_dist_matrix(sims)
println("Dist range: [0.0, " + dist[5][4].to_string() + "]")
println("")
// Example 4: Hierarchical clustering
println("--- Step 4: Hierarchical Clustering ---")
let merges = @src.rvgo_hclust(dist)
println("Merges: " + merges.length().to_string())
println("")
// Example 5: Cut into clusters
println("--- Step 5: Cut Tree into Clusters ---")
let clusters = @src.rvgo_cutree(merges, ids.length(), 0.7)
println("Number of clusters: " + clusters.length().to_string())
let cluster_sizes : Map[Int32, Int32] = Map([], capacity=clusters.length())
for i in 0.. (" + x.to_string() + ", " + y.to_string() + ")",
)
}
println("")
println("=== rrvgo Demo Complete ===")
}