Buckets:

redmingwei's picture
download
raw
1.88 kB
#!/usr/bin/env python3
"""exp103d_show.py — 把 exp103d 的结果 JSON 里的**带覆盖表**打到日志(读通道不稳时的兜底)。"""
import json
from pathlib import Path
P = Path("/domains/runs/illusionbrain-align/exp103/exp103d_btb_bands.json")
d = json.loads(P.read_text(encoding="utf-8"))
print("=== 逐被试:带覆盖(DesikanKilliany,主映射 v_main)===")
cov = d["band_coverage"]["v_main"]
for sid, v in cov.items():
dk = v.get("DesikanKilliany", {})
bands = dk.get("bands", {})
print(f"{sid:>8}: n_bands={dk.get('n_bands')} "
f"POST={bands.get('POST', 0):>3} 电极 CENT={bands.get('CENT', 0):>3} 电极 "
f"FRONT={bands.get('FRONT', 0):>3} 电极 (≥2电极的带={dk.get('n_bands_ge2elec')})")
print("\n=== 变体一致性(每被试的带数)===")
for vn, per in d["band_coverage"].items():
counts = [v["DesikanKilliany"]["n_bands"] for v in per.values() if "DesikanKilliany" in v]
print(f"{vn:>24}: {counts} ⇒ 三带齐全 {sum(1 for x in counts if x == 3)}/10")
print("\n=== 每被试的 DK 标签清单(前 12 个,按电极数)===")
for sid, rec in d["per_subject"].items():
labs = rec["atlases"]["DesikanKilliany"]["labels"][:12]
print(f"{sid:>8} ({rec['n_rows']} 电极): {labs}")
ct = rec.get("conftype")
if ct:
print(f"{'':>8} ConfType: {ct}")
print("\n=== 五条规格判决 ===")
for k, v in d["verdict"].items():
print(f"--- {k} [{v.get('status')}]")
for kk, vv in v.items():
if kk == "status":
continue
s = json.dumps(vv, ensure_ascii=False)
print(f" {kk}: {s[:600]}")
print("\n=== 坐标表 Region 列(每被试前 8)===")
for sid, rec in d["coords_per_subject"].items():
print(f"{sid:>8}: n_rows={rec['n_rows']} n_distinct_region={rec['n_distinct_region']} "
f"{rec['regions'][:8]}")

Xet Storage Details

Size:
1.88 kB
·
Xet hash:
a95851f66fe070ed1dbe1c564cba2d3cccc8cd58ee4fb2667ba77593102c91d0

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.