agentsclimarketplace

Combraintf

Skill BioTender-max/awesome-bio-agent-skills/skills/neuroclaw/combraintf

Use this model doc whenever the user wants to run Com-BrainTF (Community-aware Brain Transformer) for fMRI phenotype prediction. Com-BrainTF uses dense FC matrices with a two-level Transformer (per-community local + global) and DEC pooling. NeuroClaw auto-derives community partitions from atlas naming conventions (Yeo 7-net for Schaefer, lobe-based for AAL).From its SKILL.md

Install
npx -y skills add BioTender-max/awesome-bio-agent-skills --skill combraintf

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.

What its file declares

Copied from the file, not written here

The file declares its own license as MIT License (NeuroClaw custom skill - freely modifiable within the project). That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

6.8 KB, ~2.2k tokens by cl100k_base, as published. Nobody here has run it

Com-BrainTF Model Doc

Overview

Com-BrainTF (Community-aware Brain Transformer) 是一种针对 fMRI 连接组的两级 Transformer。第一级对每个脑功能社区(如 Yeo 7-network)内的 ROI 独立做 self-attention,并为每个社区维护一个可学习的 CLS token;第二级把所有社区的 CLS + 全部 ROI 节点拼接,再过一个带 DEC 池化的 Transformer,最后展平进 FC head。

  • Paper: Bannadabhavi et al., 2023, "Community-Aware Transformer for Autism Prediction in fMRI Connectome",MICCAI
  • Official code: https://github.com/ubc-tea/Com-BrainTF
  • NeuroClaw reimplementation: models/combraintf/(去除 hydra/omegaconf 与硬编码 node_clus_map,改为运行时从 atlas 推导)
  • Primary input: dense FC 矩阵 [B, N, N]
  • Primary output: phenotype prediction + DEC assignment + per-level attention

Research use only.


NeuroClaw 实现要点

  1. 去除 hydra/omegaconf:原版用 hydra 配置 + DictConfig,NeuroClaw 改为纯 Python 构造函数,所有参数显式传入。
  2. 动态 community partition:原版从 node_clus_map.pickle 加载 Schaefer-400 的固定社区映射;NeuroClaw 在 data_adapter.py::build_community_ids(atlas) 里根据 ROI 名自动推导:
    • schaefer_*_7net → Yeo 7-network(Vis/SomMot/DorsAttn/SalVentAttn/Limbic/Cont/Default)+ Unknown 兜底,共 8 组
    • aal_* / destrieux / dk_* / harvard_oxford_* → 7 lobe + Other = 8 组
    • 其他无语义命名的 atlas(cc200/glasser/basc/power/msdl)→ MD5 hash round-robin 8 组兜底
  3. 支持任意 atlas:上层只需传 community_ids: list[int](长度 = n_roi),模型自动按社区分组、独立 local transformer。
  4. 每社区独立 CLS token:与原版一致,每个社区一个 nn.Parameter([1, d_model]),由 local_transformers[k] 持有。
  5. 任务统一接口:classification (nclass=N) 与 regression (nclass=1, task='regression')。
  6. 数据复用:直接复用 BNT 的 BNTDataset + bnt_collate,无需额外预处理。

Quick Start (NeuroClaw 内部)

前置条件

  • conda env: neuroclaw (Python 3.11)
  • 已有 data/braingnn_input/<atlas>/sub-*.pt 文件(与 BNT/BrainGNN 共享)

训练(分类,单 fold 冒烟测试)

python skills/combraintf/scripts/train_reference.py \
    --atlas schaefer_200_7net \
    --labels-csv data/hcp_gender_labels.csv \
    --fold 0 --n-epochs 10 --batch-size 8

训练(回归,HCP age)

python skills/combraintf/scripts/train_reference.py \
    --atlas aal_116 \
    --labels-csv data/hcp_age_labels.csv \
    --task regression --fold 0 --n-epochs 50

推荐 atlas

  • 最优:schaefer_200_7net 或 schaefer_400_7net(原生 Yeo 7-net 命名,社区分组最干净)
  • 可用:aal_116、aal3_166(lobe-based 8 组,可解释性好)
  • 兜底:其他 atlas 用 MD5 hash 分组,效果可能不如有语义的 atlas

核心文件

文件作用
models/combraintf/net/combraintf.py模型定义:Local TransPoolingEncoder ×K + Global TransPoolingEncoder + DEC pool + FC head
models/combraintf/scripts/data_adapter.py数据适配(薄封装 models.bnt)+ build_community_ids(atlas) + get_community_ids(atlas)
skills/combraintf/scripts/train_reference.pyK-fold CV 训练参考实现

模型架构

Input FC [B, N, N]
  -> 按 community_ids 重排 row & col(保持对称)
  -> 第一级:每个社区 k 一个 TransPoolingEncoder (local_transformer=True)
       - 拼 CLS token -> Transformer -> 输出 (节点特征, CLS)
  -> 收集 K 个 CLS token -> Linear -> 全局 CLS
  -> 拼回 [B, N+1, d_model]
  -> 第二级:TransPoolingEncoder (DEC pool: N+1 -> n_clusters)
  -> dim_reduce(d_model -> 8) + LeakyReLU
  -> flatten -> FC head (256 -> 32 -> nclass)
Output: (logits, assignment)

关键训练参数

参数论文默认NeuroClaw 默认说明
--lr1e-41e-3论文 1e-4,对齐其他模型用 1e-3
--wd1e-45e-4权重衰减
--hidden-size1024512Transformer FFN 维度
--nhead84多头注意力数(必须能整除 d_model = n_roi)
--n-clusters88DEC pool 输出聚类数
--dec-weight0.10.1DEC KL loss 权重
--n-epochs20050与其他模型对齐
--batch-size168比 BNT 重,参数量更大

调试经验与注意事项

  1. nhead 整除 d_model:d_model = n_roi,必须能被 nhead 整除。Schaefer_200/4/8 都 OK,AAL_116/4 也 OK,但奇数 ROI 数(如 cc200 实际 190)需调 nhead。
  2. 每社区 CLS 独立:每个社区一个 local_transformer(含独立 CLS 参数),但 Transformer 层本身可共享或独立。NeuroClaw 实现为完全独立(每社区 1 个 TransformerEncoderLayer),略多参数但更易调试。
  3. community 边界顺序:模型按 community_ids 排序,每个 community 的 ROI 必须连续。get_community_ids 返回的 list 内部数字未必连续,模型构造时会重排索引。
  4. n_communities 推导:默认从 set(community_ids) 大小取,无需显式传。
  5. memory 占用:local transformer 数 × hidden_size × d_model^2 量级,glasser_360 + hidden=1024 容易爆显存,建议 hidden=512 + batch=4。
  6. DEC orthogonal init:保持论文默认 orthogonal=True, freeze_center=True, project_assignment=True,否则训练不稳定。
  7. assignment 可视化:DEC 输出 [B, N+1, n_clusters] soft assignment,可用于社区→功能子网络映射的可视化。

NeuroClaw 委托规则

  • ROI 生成和预处理:委托 fmri-skill
  • HCP 数据下载/编排:委托 hcpya-skill / hcpa-skill / hcpd-skill / hcpep-skill
  • 依赖检查:dependency-planner + conda-env-manager
  • 执行路由:claw-shell

执行前需明确计划确认。


Reference

  • Bannadabhavi A, Lee S, Deng W, Ying R, Li X. 2023. Community-Aware Transformer for Autism Prediction in fMRI Connectome. MICCAI.
  • Official repository: https://github.com/ubc-tea/Com-BrainTF
  • NeuroClaw BNT skill (共享数据格式): skills/bnt/SKILL.md

Created At: 2026-05-19 01:30 HKT Last Updated At: 2026-05-19 01:30 HKT Author: chengwang96

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.