billy-lyc/neuropilot/brainmask-fix
Claude Code and agent skill by billy-lyc/neuropilot
Trust tier 2
- community
Source check pending
Checking that the SKILL.md file is still in the repository.
Install
npx vskill@latest install billy-lyc/neuropilot/brainmask-fixSKILL.md
Brainmask Fix Skill (FreeSurfer autorecon3)
修复 FreeSurfer brainmask.mgz,改善 pial 表面放置效果。
何时触发此 skill
- pial 表面明显超出脑组织,或切割了脑皮层
brainmask.mgz视觉检查发现 overflow(颅骨包入)或 missing(脑组织排除)- autorecon3 结束后 Euler number 异常(< −500)
必须遵守的规则
- 绝对不修改源数据目录下的任何文件(只读)——所有输出写入
$QC_OUT - 修改前先备份原始文件
- 所有 Python 操作在原生空间(加载 MGZ 时不用
as_closest_canonical()) - Freeview 坐标是 RAS,操作前必须用
r2n()转成原生索引 - 保存时用
orig.mgz真实 T1 信号(不用 0/1 二值)
目录结构约定
FreeSurfer SUBJECTS_DIR(最终应用):
主脚本
完整交互流程
Step 0: 用户给出 subject
Step 1: init(SynthStrip + 交集)
输出:
$BASE/$SUBJ/orig/brainmask.synthstrip.mgz(如果不存在会自动运行 SynthStrip)$BASE/$SUBJ/fixed/brainmask_fixed.mgz(初始交集 base mask)$BASE/$SUBJ/fixed/init_comparison.png(4列对比图:orig / syn / 交集 / orig-only 溢出区域)
→ 用 SendUserFile 发送 init_comparison.png 给用户 → 让用户在 Freeview 打开 fixed/brainmask_fixed.mgz,逐个报告可疑坐标
Freeview 命令给用户:
Step 2: 用户报告问题坐标
用户报告格式:
判断类型:
| 条件 | 类型 | 操作 | |
|---|---|---|---|
| orig > 80, mask_val = 0 | MISSING — 脑组织被排除 | add_missing | |
| orig < 75, mask_val > 0 | OVERFLOW — 颅骨/非脑包入 | rm_overflow | |
| orig 75-100, mask_val > 0,不确定 | 可疑 | 先 viz 查看,再决定 |
先用 viz 确认坐标:
Step 3a: 修复 MISSING
方法选择:
| 信号 | 场景 | 方法 | 典型参数 | |
|---|---|---|---|---|
| orig > 100 | 高信号灰白质 | dilation | --iterations 8 --thresh 85 | |
| orig 50-100 | 低信号/CSF/薄皮层 | sphere | --radius 9 --thresh 50 | |
| 边界截断 | mask 边缘刚好切掉一条脑回 | sphere(偏移) | --radius 12 --thresh 88 |
sphere radius 怎么选:
- 询问用户附近是否有已知 OVERFLOW 点
- 计算
r2n(ras_miss)到r2n(ras_ovf)的距离 - 设 radius < 该距离(留 1-2 voxel 余量)
输出:生成 after_add_*.png → 发给用户确认
Step 3b: 修复 OVERFLOW
radius 怎么选:
- 颅骨大片区域(inferior slice):radius=25-35
- 小片孤立区域:radius=15-20
thresh 怎么选:
- 颅骨/头皮:thresh=65(orig < 65)
- 颈部软组织:thresh=80
- 不要 设 > 80,否则可能误删薄皮层
输出:生成 after_rm_*.png → 发给用户确认
Step 4: 逐点验证
每次用户说"好了"之后运行:
打印每个点的状态(✓/✗)。
Step 5: 应用到 FreeSurfer(只在用户确认后执行)
Step 6: 运行 autorecon3
坐标系快速参考
诊断:体素来自哪个 mask?
| brk | syn | fixed | 来源 | |
|---|---|---|---|---|
| 0 | 0 | 1 | 纯新增(我们加的) | |
| 1 | 0 | 1 | 仅 brk 有(交集已排除,我们又加回来)— 检查是否正确 | |
| 0 | 1 | 1 | 仅 syn 有(交集已排除,我们又加回来)— 检查是否正确 | |
| 1 | 1 | 0 | 两者都有,我们删除了 → 是 OVF | |
| 1 | 1 | 1 | 交集正常保留 |
脚本路径
| 脚本 | 用途 | |
|---|---|---|
run_fix.py | 主 pipeline(init/add_missing/rm_overflow/verify/viz) | |
templates/fix_script_template.py | 手动操作模板(复杂情况) | |
templates/param_sweep.py | 三参数对比可视化(给用户选 radius) | |
01_prepare.md ~ 06_rerun.md | 各步骤详细说明 |
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingqc-agent-skill/brainmask_fix/SKILL.md
Popularity
- Repository stars
- 54
- Repository forks
- 5
- 7-day trend score
- 20
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/billy-lyc/neuropilot/brainmask-fix)