///|
/// Demo for tfbstools module: TF binding site analysis.
fn main {
println("=== TFBSTools Demo: TF Binding Site Analysis ===")
println("")
// Example 1: PFM normalization
println("--- Step 1: PFM Normalization ---")
let counts = [
[8.0, 2.0, 0.0, 0.0],
[0.0, 10.0, 0.0, 0.0],
[1.0, 1.0, 8.0, 0.0],
[0.0, 0.0, 2.0, 8.0],
]
let pfm = @src.tfbs_pfm_normalize(counts, pseudocount=0.8)
println("PFM: " + pfm.length().to_string() + " positions")
println("")
// Example 2: PFM to PWM
println("--- Step 2: PFM to PWM ---")
let pwm = @src.tfbs_pfm_to_pwm(pfm)
println("PWM: " + pwm.length().to_string() + " positions")
for i in 0..