///|
/// 蛋白结构筛查演示: 二级结构 -> 折叠类 -> 无序/卷曲螺旋 -> 全景报告.
fn main raise {
  println("=== 蛋白结构筛查 (screening-grade, 非深度学习预测) ===")

  // 1. 全 alpha 型(螺旋富集, 血红蛋白样)
  println("\n1. 全 alpha 型序列")
  let alpha_seq = "AEAALKREAAALKREAAALKREAAALKREAAALKREAAALKREAAALK"
  let alpha_report = @src.structure_screening(alpha_seq)
  println(@src.structure_screening_report_text(alpha_report))
  println("  SS: " + alpha_report.ss_string())

  // 2. 全 beta 型(免疫球蛋白样)
  println("\n2. 全 beta 型序列")
  let beta_seq = "VVIVTYYIVFVVIVTYYIVFVVIVTYYIVFVVIVTYYIVFVVIVTYYIVF"
  let beta_report = @src.structure_screening(beta_seq)
  println(@src.structure_screening_report_text(beta_report))
  println("  SS: " + beta_report.ss_string())

  // 3. 无序倾向序列
  println("\n3. 无序倾向序列")
  let coil_seq = "GSGNQGSGNQGSGNQGSGNQGSGNQGSGNQGSGNQGSGNQGSGNQ"
  let coil_report = @src.structure_screening(coil_seq)
  println(@src.structure_screening_report_text(coil_report))

  // 4. JSON 报告
  println("\n4. JSON 报告(parse_json 闭环)")
  let json = @src.structure_screening_report_json(alpha_report)
  println("  长度: \{json.length()} 字符")
  let v = @src.parse_json(json)
  println("  parse_json 解析: \{v is Some(_)}")

  // 5. 与 multiqc-lite 集成
  println("\n5. MultiQC-lite 集成")
  let m = @src.multiqc_module("structure-screening")
  let _ = m.add_sample("protein_alpha", [
    ("helix_percent", alpha_report.helix_percent),
    ("sheet_percent", alpha_report.sheet_percent),
    ("coil_percent", alpha_report.coil_percent),
  ])
  let _ = m.add_sample("protein_beta", [
    ("helix_percent", beta_report.helix_percent),
    ("sheet_percent", beta_report.sheet_percent),
    ("coil_percent", beta_report.coil_percent),
  ])
  let report = @src.multiqc_report(title="Structure Screening")
  let _ = report.add_module(m)
  println(@src.multiqc_write_markdown(report))
  println(
    "完成: 二级结构 -> 折叠类 -> 全景报告 -> 聚合 全链路本地完成.",
  )
}