@brainpilot/skills 0.0.6 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (285) hide show
  1. package/package.json +2 -2
  2. package/skills/01_Meta-Skills/academic-research-hub/SKILL.md +108 -0
  3. package/skills/01_Meta-Skills/academic-research-hub/scripts/requirements.txt +17 -0
  4. package/skills/01_Meta-Skills/academic-research-hub/scripts/research.py +781 -0
  5. package/skills/01_Meta-Skills/beautiful-log/SKILL.md +64 -0
  6. package/skills/01_Meta-Skills/beautiful-log/scripts/beautiful_log.py +274 -0
  7. package/skills/01_Meta-Skills/ethoclaw-daily-paper/SKILL.md +130 -0
  8. package/skills/01_Meta-Skills/ethoclaw-daily-paper/assets/config.template.yaml +54 -0
  9. package/skills/01_Meta-Skills/ethoclaw-daily-paper/assets/top5_digest_template.md +5 -0
  10. package/skills/01_Meta-Skills/ethoclaw-daily-paper/scripts/build_top5_digest.py +300 -0
  11. package/skills/01_Meta-Skills/ethoclaw-daily-paper/scripts/common.py +137 -0
  12. package/skills/01_Meta-Skills/ethoclaw-daily-paper/scripts/merge_results.py +106 -0
  13. package/skills/01_Meta-Skills/ethoclaw-daily-paper/scripts/run_pipeline.py +177 -0
  14. package/skills/01_Meta-Skills/ethoclaw-daily-paper/scripts/search_arxiv.py +162 -0
  15. package/skills/01_Meta-Skills/ethoclaw-daily-paper/scripts/search_pubmed.py +202 -0
  16. package/skills/01_Meta-Skills/ethoclaw-normalize-tabular/SKILL.md +173 -0
  17. package/skills/01_Meta-Skills/ethoclaw-normalize-tabular/scripts/normalize_data.py +874 -0
  18. package/skills/01_Meta-Skills/ethoclaw-pdf-research/SKILL.md +134 -0
  19. package/skills/01_Meta-Skills/ethoclaw-pdf-research/references/confirmation-prompts.md +31 -0
  20. package/skills/01_Meta-Skills/ethoclaw-pdf-research/references/output-patterns.md +45 -0
  21. package/skills/01_Meta-Skills/ethoclaw-pdf-research/scripts/build_markdown_deliverables.py +41 -0
  22. package/skills/01_Meta-Skills/ethoclaw-pdf-research/scripts/build_research_log.py +84 -0
  23. package/skills/01_Meta-Skills/ethoclaw-pdf-research/scripts/build_summary_md.py +63 -0
  24. package/skills/01_Meta-Skills/ethoclaw-pdf-research/scripts/extract_pdf_bundle.py +140 -0
  25. package/skills/01_Meta-Skills/experiment-controller/SKILL.md +140 -0
  26. package/skills/01_Meta-Skills/knowledge-graph-builder/SKILL.md +366 -0
  27. package/skills/01_Meta-Skills/knowledge-graph-builder/scripts/entity_resolution.py +120 -0
  28. package/skills/01_Meta-Skills/knowledge-graph-builder/scripts/extraction_prompt_template.txt +19 -0
  29. package/skills/01_Meta-Skills/knowledge-graph-builder/scripts/graph_query.py +106 -0
  30. package/skills/01_Meta-Skills/knowledge-graph-builder/scripts/hypothesis_cli_reference.py +42 -0
  31. package/skills/01_Meta-Skills/knowledge-graph-builder/scripts/new_data_source_template.py +116 -0
  32. package/skills/01_Meta-Skills/knowledge-graph-builder/scripts/requirements.txt +15 -0
  33. package/skills/01_Meta-Skills/method-design/SKILL.md +61 -0
  34. package/skills/01_Meta-Skills/multi-search-engine/SKILL.md +119 -0
  35. package/skills/01_Meta-Skills/research-idea/SKILL.md +65 -0
  36. package/skills/05_EEG_ERP/eeg-skill/SKILL.md +197 -0
  37. package/skills/05_EEG_ERP/meg-skill/SKILL.md +188 -0
  38. package/skills/05_EEG_ERP/meg-skill/scripts/time_frequency.py +223 -0
  39. package/skills/05_EEG_ERP/mne-eeg-tool/SKILL.md +165 -0
  40. package/skills/05_EEG_ERP/mne-eeg-tool/scripts/eeg_pipeline_reference.py +231 -0
  41. package/skills/05_EEG_ERP/seed-iv-skill/SKILL.md +184 -0
  42. package/skills/05_EEG_ERP/seed-iv-skill/scripts/classify_seed_iv.py +154 -0
  43. package/skills/05_EEG_ERP/seed-iv-skill/scripts/extract_seed_iv_features.py +190 -0
  44. package/skills/05_EEG_ERP/seed-iv-skill/scripts/validate_seed_iv.py +102 -0
  45. package/skills/05_EEG_ERP/seed-vig-skill/SKILL.md +182 -0
  46. package/skills/05_EEG_ERP/seed-vig-skill/scripts/classify_seed_vig.py +165 -0
  47. package/skills/05_EEG_ERP/seed-vig-skill/scripts/extract_seed_vig_features.py +185 -0
  48. package/skills/05_EEG_ERP/seed-vig-skill/scripts/validate_seed_vig.py +88 -0
  49. package/skills/06_fMRI_Neuroimaging/abcd-skill/SKILL.md +308 -0
  50. package/skills/06_fMRI_Neuroimaging/abcd-skill/scripts/abcd_qc_summary.py +449 -0
  51. package/skills/06_fMRI_Neuroimaging/abcd-skill/scripts/extract_abcd_phenotype.py +292 -0
  52. package/skills/06_fMRI_Neuroimaging/abcd-skill/scripts/reorganize_abcd.py +387 -0
  53. package/skills/06_fMRI_Neuroimaging/abide-skill/SKILL.md +302 -0
  54. package/skills/06_fMRI_Neuroimaging/abide-skill/scripts/abide_qc_summary.py +317 -0
  55. package/skills/06_fMRI_Neuroimaging/abide-skill/scripts/extract_abide_phenotype.py +267 -0
  56. package/skills/06_fMRI_Neuroimaging/abide-skill/scripts/reorganize_abide.py +387 -0
  57. package/skills/06_fMRI_Neuroimaging/adhd200-skill/SKILL.md +244 -0
  58. package/skills/06_fMRI_Neuroimaging/adhd200-skill/scripts/adhd200_qc_summary.py +98 -0
  59. package/skills/06_fMRI_Neuroimaging/adhd200-skill/scripts/extract_adhd200_phenotype.py +134 -0
  60. package/skills/06_fMRI_Neuroimaging/adhd200-skill/scripts/reorganize_adhd200.py +206 -0
  61. package/skills/06_fMRI_Neuroimaging/adni-skill/SKILL.md +358 -0
  62. package/skills/06_fMRI_Neuroimaging/adni-skill/scripts/generate_adni_task_files.py +1305 -0
  63. package/skills/06_fMRI_Neuroimaging/adni-skill/scripts/generate_vqa_from_tasks.py +766 -0
  64. package/skills/06_fMRI_Neuroimaging/adni-skill/scripts/reorganize_adni.py +491 -0
  65. package/skills/06_fMRI_Neuroimaging/aibl-skill/SKILL.md +295 -0
  66. package/skills/06_fMRI_Neuroimaging/aibl-skill/scripts/aibl_qc_summary.py +260 -0
  67. package/skills/06_fMRI_Neuroimaging/aibl-skill/scripts/extract_aibl_phenotype.py +365 -0
  68. package/skills/06_fMRI_Neuroimaging/aibl-skill/scripts/reorganize_aibl.py +394 -0
  69. package/skills/06_fMRI_Neuroimaging/aomic-skill/SKILL.md +292 -0
  70. package/skills/06_fMRI_Neuroimaging/aomic-skill/scripts/aomic_qc_summary.py +258 -0
  71. package/skills/06_fMRI_Neuroimaging/aomic-skill/scripts/extract_aomic_phenotype.py +284 -0
  72. package/skills/06_fMRI_Neuroimaging/aomic-skill/scripts/reorganize_aomic.py +322 -0
  73. package/skills/06_fMRI_Neuroimaging/asl-skill/SKILL.md +168 -0
  74. package/skills/06_fMRI_Neuroimaging/asl-skill/scripts/compute_cbf.py +224 -0
  75. package/skills/06_fMRI_Neuroimaging/bids-organizer/SKILL.md +241 -0
  76. package/skills/06_fMRI_Neuroimaging/bold5000-skill/SKILL.md +186 -0
  77. package/skills/06_fMRI_Neuroimaging/bold5000-skill/scripts/bold5000_qc_summary.py +96 -0
  78. package/skills/06_fMRI_Neuroimaging/bold5000-skill/scripts/extract_bold5000_stimulus.py +125 -0
  79. package/skills/06_fMRI_Neuroimaging/bold5000-skill/scripts/reorganize_bold5000.py +102 -0
  80. package/skills/06_fMRI_Neuroimaging/camcan-skill/SKILL.md +213 -0
  81. package/skills/06_fMRI_Neuroimaging/camcan-skill/scripts/camcan_qc_summary.py +131 -0
  82. package/skills/06_fMRI_Neuroimaging/camcan-skill/scripts/extract_camcan_phenotype.py +145 -0
  83. package/skills/06_fMRI_Neuroimaging/camcan-skill/scripts/validate_camcan.py +141 -0
  84. package/skills/06_fMRI_Neuroimaging/cobre-skill/SKILL.md +201 -0
  85. package/skills/06_fMRI_Neuroimaging/cobre-skill/scripts/cobre_qc_summary.py +95 -0
  86. package/skills/06_fMRI_Neuroimaging/cobre-skill/scripts/extract_cobre_phenotype.py +104 -0
  87. package/skills/06_fMRI_Neuroimaging/cobre-skill/scripts/reorganize_cobre.py +140 -0
  88. package/skills/06_fMRI_Neuroimaging/conn-tool/SKILL.md +180 -0
  89. package/skills/06_fMRI_Neuroimaging/dcm2nii/SKILL.md +189 -0
  90. package/skills/06_fMRI_Neuroimaging/dmt-har-med-skill/SKILL.md +183 -0
  91. package/skills/06_fMRI_Neuroimaging/dmt-har-med-skill/scripts/dmt_har_med_qc_summary.py +96 -0
  92. package/skills/06_fMRI_Neuroimaging/dmt-har-med-skill/scripts/extract_dmt_har_med_phenotype.py +121 -0
  93. package/skills/06_fMRI_Neuroimaging/dmt-har-med-skill/scripts/reorganize_dmt_har_med.py +125 -0
  94. package/skills/06_fMRI_Neuroimaging/dwi-skill/SKILL.md +359 -0
  95. package/skills/06_fMRI_Neuroimaging/fmri-skill/SKILL.md +371 -0
  96. package/skills/06_fMRI_Neuroimaging/fmriprep-tool/SKILL.md +228 -0
  97. package/skills/06_fMRI_Neuroimaging/freesurfer-tool/SKILL.md +286 -0
  98. package/skills/06_fMRI_Neuroimaging/freesurfer-tool/scripts/freesurfer_processor.py +145 -0
  99. package/skills/06_fMRI_Neuroimaging/fsl-tool/SKILL.md +208 -0
  100. package/skills/06_fMRI_Neuroimaging/hbn-skill/SKILL.md +271 -0
  101. package/skills/06_fMRI_Neuroimaging/hbn-skill/scripts/extract_hbn_phenotype.py +107 -0
  102. package/skills/06_fMRI_Neuroimaging/hbn-skill/scripts/hbn_qc_summary.py +96 -0
  103. package/skills/06_fMRI_Neuroimaging/hbn-skill/scripts/reorganize_hbn.py +150 -0
  104. package/skills/06_fMRI_Neuroimaging/hcpa-skill/SKILL.md +210 -0
  105. package/skills/06_fMRI_Neuroimaging/hcpa-skill/scripts/extract_hcpa_phenotype.py +146 -0
  106. package/skills/06_fMRI_Neuroimaging/hcpa-skill/scripts/hcpa_qc_summary.py +120 -0
  107. package/skills/06_fMRI_Neuroimaging/hcpa-skill/scripts/reorganize_hcpa.py +155 -0
  108. package/skills/06_fMRI_Neuroimaging/hcpd-skill/SKILL.md +210 -0
  109. package/skills/06_fMRI_Neuroimaging/hcpd-skill/scripts/extract_hcpd_phenotype.py +148 -0
  110. package/skills/06_fMRI_Neuroimaging/hcpd-skill/scripts/hcpd_qc_summary.py +125 -0
  111. package/skills/06_fMRI_Neuroimaging/hcpd-skill/scripts/reorganize_hcpd.py +146 -0
  112. package/skills/06_fMRI_Neuroimaging/hcpep-skill/SKILL.md +215 -0
  113. package/skills/06_fMRI_Neuroimaging/hcpep-skill/scripts/extract_hcpep_phenotype.py +157 -0
  114. package/skills/06_fMRI_Neuroimaging/hcpep-skill/scripts/hcpep_qc_summary.py +143 -0
  115. package/skills/06_fMRI_Neuroimaging/hcpep-skill/scripts/reorganize_hcpep.py +146 -0
  116. package/skills/06_fMRI_Neuroimaging/hcppipeline-tool/SKILL.md +217 -0
  117. package/skills/06_fMRI_Neuroimaging/hcpya-skill/SKILL.md +214 -0
  118. package/skills/06_fMRI_Neuroimaging/hcpya-skill/scripts/extract_hcpya_phenotype.py +190 -0
  119. package/skills/06_fMRI_Neuroimaging/hcpya-skill/scripts/hcpya_qc_summary.py +152 -0
  120. package/skills/06_fMRI_Neuroimaging/hcpya-skill/scripts/reorganize_hcpya.py +203 -0
  121. package/skills/06_fMRI_Neuroimaging/ixi-skill/SKILL.md +198 -0
  122. package/skills/06_fMRI_Neuroimaging/ixi-skill/scripts/ixi_qc_summary.py +137 -0
  123. package/skills/06_fMRI_Neuroimaging/ixi-skill/scripts/reorganize_ixi.py +190 -0
  124. package/skills/06_fMRI_Neuroimaging/mnd-skill/SKILL.md +191 -0
  125. package/skills/06_fMRI_Neuroimaging/mnd-skill/scripts/extract_mnd_phenotype.py +143 -0
  126. package/skills/06_fMRI_Neuroimaging/mnd-skill/scripts/mnd_qc_summary.py +120 -0
  127. package/skills/06_fMRI_Neuroimaging/mnd-skill/scripts/validate_mnd.py +107 -0
  128. package/skills/06_fMRI_Neuroimaging/mschallenge-skill/SKILL.md +203 -0
  129. package/skills/06_fMRI_Neuroimaging/mschallenge-skill/scripts/analyze_lesions.py +119 -0
  130. package/skills/06_fMRI_Neuroimaging/mschallenge-skill/scripts/longitudinal_lesion.py +148 -0
  131. package/skills/06_fMRI_Neuroimaging/mschallenge-skill/scripts/mschallenge_qc_summary.py +132 -0
  132. package/skills/06_fMRI_Neuroimaging/mschallenge-skill/scripts/validate_mschallenge.py +116 -0
  133. package/skills/06_fMRI_Neuroimaging/nibabel-skill/SKILL.md +184 -0
  134. package/skills/06_fMRI_Neuroimaging/nibabel-skill/scripts/atlas_coordinate_reference.py +61 -0
  135. package/skills/06_fMRI_Neuroimaging/nibabel-skill/scripts/freesurfer_io_reference.py +34 -0
  136. package/skills/06_fMRI_Neuroimaging/nibabel-skill/scripts/nifti_inspection_reference.py +35 -0
  137. package/skills/06_fMRI_Neuroimaging/nifd-skill/SKILL.md +205 -0
  138. package/skills/06_fMRI_Neuroimaging/nifd-skill/scripts/extract_nifd_phenotype.py +132 -0
  139. package/skills/06_fMRI_Neuroimaging/nifd-skill/scripts/nifd_qc_summary.py +111 -0
  140. package/skills/06_fMRI_Neuroimaging/nifd-skill/scripts/validate_nifd.py +111 -0
  141. package/skills/06_fMRI_Neuroimaging/nii2dcm/SKILL.md +143 -0
  142. package/skills/06_fMRI_Neuroimaging/nilearn-tool/SKILL.md +266 -0
  143. package/skills/06_fMRI_Neuroimaging/nilearn-tool/scripts/connectome_reference.py +65 -0
  144. package/skills/06_fMRI_Neuroimaging/nilearn-tool/scripts/denoise_timeseries_reference.py +58 -0
  145. package/skills/06_fMRI_Neuroimaging/nilearn-tool/scripts/hierarchical_parcellation_reference.py +53 -0
  146. package/skills/06_fMRI_Neuroimaging/nilearn-tool/scripts/kmeans_parcellation_reference.py +53 -0
  147. package/skills/06_fMRI_Neuroimaging/nilearn-tool/scripts/preprocess_bold_reference.py +76 -0
  148. package/skills/06_fMRI_Neuroimaging/nilearn-tool/scripts/rest_dictlearning_reference.py +56 -0
  149. package/skills/06_fMRI_Neuroimaging/nilearn-tool/scripts/rest_ica_reference.py +59 -0
  150. package/skills/06_fMRI_Neuroimaging/nilearn-tool/scripts/second_level_glm_reference.py +58 -0
  151. package/skills/06_fMRI_Neuroimaging/nilearn-tool/scripts/spacenet_classifier_reference.py +59 -0
  152. package/skills/06_fMRI_Neuroimaging/nilearn-tool/scripts/svm_classifier_reference.py +60 -0
  153. package/skills/06_fMRI_Neuroimaging/nilearn-tool/scripts/task_glm_reference.py +63 -0
  154. package/skills/06_fMRI_Neuroimaging/nilearn-tool/scripts/zalff_summary_reference.py +109 -0
  155. package/skills/06_fMRI_Neuroimaging/nsd-skill/SKILL.md +210 -0
  156. package/skills/06_fMRI_Neuroimaging/nsd-skill/scripts/extract_nsd_stimulus.py +171 -0
  157. package/skills/06_fMRI_Neuroimaging/nsd-skill/scripts/nsd_qc_summary.py +142 -0
  158. package/skills/06_fMRI_Neuroimaging/nsd-skill/scripts/validate_nsd.py +142 -0
  159. package/skills/06_fMRI_Neuroimaging/oasis-skill/SKILL.md +205 -0
  160. package/skills/06_fMRI_Neuroimaging/oasis-skill/scripts/extract_oasis_phenotype.py +126 -0
  161. package/skills/06_fMRI_Neuroimaging/oasis-skill/scripts/oasis_qc_summary.py +115 -0
  162. package/skills/06_fMRI_Neuroimaging/oasis-skill/scripts/validate_oasis.py +119 -0
  163. package/skills/06_fMRI_Neuroimaging/pet-skill/SKILL.md +173 -0
  164. package/skills/06_fMRI_Neuroimaging/pet-skill/scripts/compute_suvr.py +202 -0
  165. package/skills/06_fMRI_Neuroimaging/pnc-skill/SKILL.md +206 -0
  166. package/skills/06_fMRI_Neuroimaging/pnc-skill/scripts/extract_pnc_phenotype.py +136 -0
  167. package/skills/06_fMRI_Neuroimaging/pnc-skill/scripts/pnc_qc_summary.py +116 -0
  168. package/skills/06_fMRI_Neuroimaging/pnc-skill/scripts/validate_pnc.py +120 -0
  169. package/skills/06_fMRI_Neuroimaging/ppmi-skill/SKILL.md +209 -0
  170. package/skills/06_fMRI_Neuroimaging/ppmi-skill/scripts/extract_ppmi_phenotype.py +138 -0
  171. package/skills/06_fMRI_Neuroimaging/ppmi-skill/scripts/ppmi_qc_summary.py +111 -0
  172. package/skills/06_fMRI_Neuroimaging/ppmi-skill/scripts/validate_ppmi.py +117 -0
  173. package/skills/06_fMRI_Neuroimaging/qsiprep-tool/SKILL.md +320 -0
  174. package/skills/06_fMRI_Neuroimaging/rest-mneta-mdd-skill/SKILL.md +215 -0
  175. package/skills/06_fMRI_Neuroimaging/rest-mneta-mdd-skill/scripts/extract_rest_mdd_phenotype.py +132 -0
  176. package/skills/06_fMRI_Neuroimaging/rest-mneta-mdd-skill/scripts/harmonize_sites.py +152 -0
  177. package/skills/06_fMRI_Neuroimaging/rest-mneta-mdd-skill/scripts/rest_mdd_qc_summary.py +124 -0
  178. package/skills/06_fMRI_Neuroimaging/rest-mneta-mdd-skill/scripts/validate_rest_mdd.py +103 -0
  179. package/skills/06_fMRI_Neuroimaging/smri-skill/SKILL.md +302 -0
  180. package/skills/06_fMRI_Neuroimaging/tcp-skill/SKILL.md +204 -0
  181. package/skills/06_fMRI_Neuroimaging/tcp-skill/scripts/extract_tcp_phenotype.py +139 -0
  182. package/skills/06_fMRI_Neuroimaging/tcp-skill/scripts/tcp_qc_summary.py +111 -0
  183. package/skills/06_fMRI_Neuroimaging/tcp-skill/scripts/validate_tcp.py +99 -0
  184. package/skills/06_fMRI_Neuroimaging/ucla-cnp-skill/SKILL.md +217 -0
  185. package/skills/06_fMRI_Neuroimaging/ucla-cnp-skill/scripts/extract_ucla_cnp_phenotype.py +145 -0
  186. package/skills/06_fMRI_Neuroimaging/ucla-cnp-skill/scripts/ucla_cnp_qc_summary.py +111 -0
  187. package/skills/06_fMRI_Neuroimaging/ucla-cnp-skill/scripts/validate_ucla_cnp.py +113 -0
  188. package/skills/06_fMRI_Neuroimaging/ukb-skill/SKILL.md +310 -0
  189. package/skills/06_fMRI_Neuroimaging/ukb-skill/scripts/build_ukb_survival.py +210 -0
  190. package/skills/06_fMRI_Neuroimaging/ukb-skill/scripts/extract_ukb_cases.py +308 -0
  191. package/skills/06_fMRI_Neuroimaging/ukb-skill/scripts/extract_ukb_phenotype.py +232 -0
  192. package/skills/06_fMRI_Neuroimaging/ukb-skill/scripts/ukb_qc_summary.py +158 -0
  193. package/skills/06_fMRI_Neuroimaging/wmh-segmentation/SKILL.md +133 -0
  194. package/skills/07_Computational_Modeling/detrending/SKILL.md +118 -0
  195. package/skills/07_Computational_Modeling/dictlearning/SKILL.md +122 -0
  196. package/skills/07_Computational_Modeling/filtering/SKILL.md +121 -0
  197. package/skills/07_Computational_Modeling/glm/SKILL.md +153 -0
  198. package/skills/07_Computational_Modeling/hierarchical/SKILL.md +121 -0
  199. package/skills/07_Computational_Modeling/ica/SKILL.md +122 -0
  200. package/skills/07_Computational_Modeling/kmeans/SKILL.md +119 -0
  201. package/skills/07_Computational_Modeling/run_models/SKILL.md +427 -0
  202. package/skills/07_Computational_Modeling/spacenet/SKILL.md +122 -0
  203. package/skills/07_Computational_Modeling/svm/SKILL.md +120 -0
  204. package/skills/08_Computational_Neuroscience/brain_gnn/SKILL.md +183 -0
  205. package/skills/08_Computational_Neuroscience/dipy-tool/SKILL.md +239 -0
  206. package/skills/08_Computational_Neuroscience/dipy-tool/scripts/dti_metrics_reference.py +70 -0
  207. package/skills/08_Computational_Neuroscience/dipy-tool/scripts/load_and_mask_reference.py +76 -0
  208. package/skills/08_Computational_Neuroscience/dipy-tool/scripts/roi_stats_reference.py +59 -0
  209. package/skills/08_Computational_Neuroscience/fm_app/SKILL.md +195 -0
  210. package/skills/08_Computational_Neuroscience/neurostorm/SKILL.md +151 -0
  211. package/skills/13_Visualization/brain-visualization/SKILL.md +191 -0
  212. package/skills/13_Visualization/brain-visualization/scripts/connectome_reference.py +108 -0
  213. package/skills/13_Visualization/brain-visualization/scripts/freesurfer_ply_reference.py +54 -0
  214. package/skills/13_Visualization/brain-visualization/scripts/zalff_summary_reference.py +116 -0
  215. package/skills/13_Visualization/ethoclaw-paper-figure-layout/SKILL.md +78 -0
  216. package/skills/13_Visualization/ethoclaw-paper-figure-layout/assets/naturecomm_figures.tex +74 -0
  217. package/skills/13_Visualization/ethoclaw-paper-figure-layout/scripts/layout_results_foldered.py +579 -0
  218. package/skills/14_Writing/overleaf-skill/SKILL.md +184 -0
  219. package/skills/14_Writing/overleaf-skill/scripts/install.sh +30 -0
  220. package/skills/14_Writing/paper-writing/SKILL.md +146 -0
  221. package/skills/14_Writing/paper-writing/scripts/data_statement_templates.py +164 -0
  222. package/skills/14_Writing/paper-writing/scripts/figure_templates.py +315 -0
  223. package/skills/14_Writing/paper-writing/scripts/nature_figure_style.py +214 -0
  224. package/skills/14_Writing/paper-writing/scripts/section_phrasebank.py +246 -0
  225. package/skills/16_Animal_Behavior/deeplabcut/SKILL.md +154 -0
  226. package/skills/16_Animal_Behavior/deeplabcut/references/3d-pose.md +89 -0
  227. package/skills/16_Animal_Behavior/deeplabcut/references/maDLC.md +123 -0
  228. package/skills/16_Animal_Behavior/deeplabcut/references/modelzoo.md +98 -0
  229. package/skills/16_Animal_Behavior/deeplabcut/references/standard-pipeline.md +165 -0
  230. package/skills/16_Animal_Behavior/deeplabcut/references/utilities.md +146 -0
  231. package/skills/16_Animal_Behavior/ethoclaw-analysis-report/SKILL.md +274 -0
  232. package/skills/16_Animal_Behavior/ethoclaw-analysis-report/assets/report_template_en.html +112 -0
  233. package/skills/16_Animal_Behavior/ethoclaw-analysis-report/assets/report_template_en.md +21 -0
  234. package/skills/16_Animal_Behavior/ethoclaw-analysis-report/assets/section_templates/cluster-section.md +5 -0
  235. package/skills/16_Animal_Behavior/ethoclaw-analysis-report/assets/section_templates/heatmap-section.md +5 -0
  236. package/skills/16_Animal_Behavior/ethoclaw-analysis-report/assets/section_templates/integrated-interpretation.md +3 -0
  237. package/skills/16_Animal_Behavior/ethoclaw-analysis-report/assets/section_templates/overview.md +3 -0
  238. package/skills/16_Animal_Behavior/ethoclaw-analysis-report/assets/section_templates/project-summary.md +3 -0
  239. package/skills/16_Animal_Behavior/ethoclaw-analysis-report/assets/section_templates/radar-section.md +5 -0
  240. package/skills/16_Animal_Behavior/ethoclaw-analysis-report/assets/section_templates/raw-trajectory.md +3 -0
  241. package/skills/16_Animal_Behavior/ethoclaw-analysis-report/assets/section_templates/sample-check.md +3 -0
  242. package/skills/16_Animal_Behavior/ethoclaw-analysis-report/assets/section_templates/single-subject-section.md +3 -0
  243. package/skills/16_Animal_Behavior/ethoclaw-analysis-report/assets/section_templates/stats-section.md +5 -0
  244. package/skills/16_Animal_Behavior/ethoclaw-analysis-report/references/experiment-types/epm.md +52 -0
  245. package/skills/16_Animal_Behavior/ethoclaw-analysis-report/references/experiment-types/fst.md +37 -0
  246. package/skills/16_Animal_Behavior/ethoclaw-analysis-report/references/experiment-types/nor.md +39 -0
  247. package/skills/16_Animal_Behavior/ethoclaw-analysis-report/references/experiment-types/oft.md +43 -0
  248. package/skills/16_Animal_Behavior/ethoclaw-analysis-report/references/experiment-types/tcst.md +45 -0
  249. package/skills/16_Animal_Behavior/ethoclaw-analysis-report/references/experiment-types/tst.md +36 -0
  250. package/skills/16_Animal_Behavior/ethoclaw-analysis-report/references/input-types.md +59 -0
  251. package/skills/16_Animal_Behavior/ethoclaw-analysis-report/references/interpretation-guardrails.md +45 -0
  252. package/skills/16_Animal_Behavior/ethoclaw-analysis-report/references/metadata-schema.md +57 -0
  253. package/skills/16_Animal_Behavior/ethoclaw-analysis-report/references/report-sections.md +86 -0
  254. package/skills/16_Animal_Behavior/ethoclaw-analysis-report/references/section-selection-rules.md +169 -0
  255. package/skills/16_Animal_Behavior/ethoclaw-analysis-report/scripts/build_report_manifest.py +27 -0
  256. package/skills/16_Animal_Behavior/ethoclaw-analysis-report/scripts/render_report.py +34 -0
  257. package/skills/16_Animal_Behavior/ethoclaw-analysis-report/scripts/report_utils.py +1121 -0
  258. package/skills/16_Animal_Behavior/ethoclaw-animal-grounding/SKILL.md +390 -0
  259. package/skills/16_Animal_Behavior/ethoclaw-animal-grounding/reference_code.py +98 -0
  260. package/skills/16_Animal_Behavior/ethoclaw-animal-pose-estimation/SKILL.md +336 -0
  261. package/skills/16_Animal_Behavior/ethoclaw-kinematic-parameter-generator/README.md +21 -0
  262. package/skills/16_Animal_Behavior/ethoclaw-kinematic-parameter-generator/SKILL.md +41 -0
  263. package/skills/16_Animal_Behavior/ethoclaw-kinematic-parameter-generator/batch_kinematic_generator.py +663 -0
  264. package/skills/16_Animal_Behavior/ethoclaw-kinematic-parameter-generator/config.json +19 -0
  265. package/skills/16_Animal_Behavior/ethoclaw-kinematic-parameter-generator/generate_kinematic_parameter.py +401 -0
  266. package/skills/16_Animal_Behavior/ethoclaw-kinematic-parameter-generator/kinematic_generator.py +265 -0
  267. package/skills/16_Animal_Behavior/ethoclaw-multiparameter-clustermap-generate/SKILL.md +72 -0
  268. package/skills/16_Animal_Behavior/ethoclaw-multiparameter-clustermap-generate/references/config.example.toml +56 -0
  269. package/skills/16_Animal_Behavior/ethoclaw-multiparameter-clustermap-generate/scripts/cluster_all_params.py +232 -0
  270. package/skills/16_Animal_Behavior/ethoclaw-multiparameter-clustermap-generate/scripts/cluster_all_params_from_config.py +236 -0
  271. package/skills/16_Animal_Behavior/ethoclaw-multiparameter-radar-generate/SKILL.md +68 -0
  272. package/skills/16_Animal_Behavior/ethoclaw-multiparameter-radar-generate/references/notes.md +5 -0
  273. package/skills/16_Animal_Behavior/ethoclaw-multiparameter-radar-generate/scripts/plot_h5_radar.py +513 -0
  274. package/skills/16_Animal_Behavior/ethoclaw-multiparameter-violin-stats-generate/SKILL.md +52 -0
  275. package/skills/16_Animal_Behavior/ethoclaw-multiparameter-violin-stats-generate/config.toml +81 -0
  276. package/skills/16_Animal_Behavior/ethoclaw-multiparameter-violin-stats-generate/references/stats-rule.md +18 -0
  277. package/skills/16_Animal_Behavior/ethoclaw-multiparameter-violin-stats-generate/scripts/h5_inspect.py +79 -0
  278. package/skills/16_Animal_Behavior/ethoclaw-multiparameter-violin-stats-generate/scripts/h5_violin_batch.py +624 -0
  279. package/skills/16_Animal_Behavior/ethoclaw-multiparameter-violin-stats-generate/scripts/h5_violin_stats.py +438 -0
  280. package/skills/16_Animal_Behavior/ethoclaw-trajectory-velocity-heatmap-generate/SKILL.md +280 -0
  281. package/skills/16_Animal_Behavior/ethoclaw-trajectory-velocity-heatmap-generate/core_scripts/heatmap_trajectory.py +790 -0
  282. package/skills/16_Animal_Behavior/ethoclaw-trajectory-velocity-heatmap-generate/core_scripts/heatmap_velocity.py +855 -0
  283. package/skills/16_Animal_Behavior/ethoclaw-trajectory-velocity-heatmap-generate/reference_data/reference_2d.csv +101 -0
  284. package/skills/16_Animal_Behavior/ethoclaw-trajectory-velocity-heatmap-generate/reference_data/reference_2d.h5 +0 -0
  285. package/skills/16_Animal_Behavior/ethoclaw-trajectory-velocity-heatmap-generate/reference_data/reference_data_readme.md +126 -0
@@ -0,0 +1,103 @@
1
+ #!/usr/bin/env python3
2
+ """Validate REST-meta-MDD BIDS structure and generate compliance report.
3
+
4
+ Checks directory structure, site identification, and diagnostic group labeling.
5
+ """
6
+ import argparse
7
+ import csv
8
+ import sys
9
+ from pathlib import Path
10
+ from typing import Dict, List
11
+
12
+
13
+ def validate_subject(subject_dir: Path) -> Dict[str, any]:
14
+ report = {
15
+ "subject": subject_dir.name,
16
+ "rs_fMRI_present": False,
17
+ "anat_present": False,
18
+ "site_id": "",
19
+ "n_runs": 0,
20
+ "missing_files": [],
21
+ "warnings": [],
22
+ }
23
+
24
+ # Extract site from subject ID if encoded (e.g., sub-Site01_001)
25
+ parts = subject_dir.name.replace("sub-", "").split("_")
26
+ if len(parts) > 1:
27
+ report["site_id"] = parts[0]
28
+
29
+ # Check func
30
+ func_dir = subject_dir / "func"
31
+ if func_dir.exists():
32
+ rest_bold = list(func_dir.glob("*_task-rest_bold.nii.gz"))
33
+ report["rs_fMRI_present"] = len(rest_bold) > 0
34
+ report["n_runs"] = len(rest_bold)
35
+ if not rest_bold:
36
+ report["missing_files"].append("func/*_task-rest_bold.nii.gz")
37
+ else:
38
+ report["missing_files"].append("func/")
39
+
40
+ # Check anat (optional)
41
+ anat_dir = subject_dir / "anat"
42
+ if anat_dir.exists():
43
+ t1w_files = list(anat_dir.glob("*_T1w.nii.gz"))
44
+ report["anat_present"] = len(t1w_files) > 0
45
+ else:
46
+ report["warnings"].append("No anat directory (optional)")
47
+
48
+ return report
49
+
50
+
51
+ def main() -> int:
52
+ parser = argparse.ArgumentParser(description="Validate REST-meta-MDD BIDS structure.")
53
+ parser.add_argument("--input", required=True)
54
+ parser.add_argument("--output", required=True)
55
+ args = parser.parse_args()
56
+
57
+ input_dir = Path(args.input).resolve()
58
+ if not input_dir.exists():
59
+ print(f"Input directory not found: {input_dir}", file=sys.stderr)
60
+ return 1
61
+
62
+ subjects = sorted([d for d in input_dir.glob("sub-*") if d.is_dir()])
63
+ print(f"Found {len(subjects)} subjects in {input_dir}")
64
+
65
+ if not subjects:
66
+ print("[ERROR] No subjects found.", file=sys.stderr)
67
+ return 1
68
+
69
+ results = []
70
+ for sub_dir in subjects:
71
+ report = validate_subject(sub_dir)
72
+ results.append(report)
73
+
74
+ output_path = Path(args.output).resolve()
75
+ output_path.parent.mkdir(parents=True, exist_ok=True)
76
+
77
+ fieldnames = [
78
+ "subject", "rs_fMRI_present", "anat_present", "site_id",
79
+ "n_runs", "missing_files", "warnings",
80
+ ]
81
+ with open(output_path, "w", newline="", encoding="utf-8") as f:
82
+ writer = csv.DictWriter(f, fieldnames=fieldnames)
83
+ writer.writeheader()
84
+ for r in results:
85
+ r["missing_files"] = "; ".join(r["missing_files"])
86
+ r["warnings"] = "; ".join(r["warnings"])
87
+ writer.writerow(r)
88
+
89
+ sites = set(r["site_id"] for r in results if r["site_id"])
90
+ print(f"\nValidation Summary:")
91
+ print(f" Total subjects: {len(results)}")
92
+ print(f" With rs-fMRI: {sum(1 for r in results if r['rs_fMRI_present'])}")
93
+ print(f" With T1w: {sum(1 for r in results if r['anat_present'])}")
94
+ print(f" Sites detected: {len(sites)}")
95
+ if sites:
96
+ print(f" Site IDs: {', '.join(sorted(sites)[:10])}{'...' if len(sites) > 10 else ''}")
97
+ print(f" Output: {output_path}")
98
+
99
+ return 0
100
+
101
+
102
+ if __name__ == "__main__":
103
+ sys.exit(main())
@@ -0,0 +1,302 @@
1
+ ---
2
+ name: smri-skill
3
+ description: "Use this skill whenever the user wants to process structural MRI (sMRI) such as T1w/T2w/FLAIR for brain extraction, bias correction, tissue segmentation (GM/WM/CSF), registration to MNI, cortical/subcortical parcellation, cortical thickness/volumetry (FreeSurfer), HCP-style structural preprocessing, WMH lesion segmentation (FLAIR+T1), ROI-wise feature extraction, or converting results back to DICOM. This is the NeuroClaw modality-layer interface: it plans WHAT to do and delegates execution to tool skills."
4
+ license: MIT License (NeuroClaw custom skill – freely modifiable within the project)
5
+ layer: subagent
6
+ skill_type: modality
7
+ dependencies:
8
+ - freesurfer-tool
9
+ - fsl-tool
10
+ - wmh-segmentation
11
+ - nii2dcm
12
+ - claw-shell
13
+ complementary_skills:
14
+ - fmri-skill
15
+ - dwi-skill
16
+ ---
17
+ # sMRI Skill (Modality Layer)
18
+
19
+ ## Overview
20
+ `smri-skill` is the NeuroClaw **modality-layer** interface skill responsible for **structural MRI** processing (T1w/T2w/FLAIR) and feature extraction.
21
+
22
+ It strictly follows NeuroClaw hierarchical design principles:
23
+ - This skill describes **WHAT needs to be done** and **which tool skill to delegate to**.
24
+ - It contains **no implementation code** and **no direct shell commands**.
25
+ - All concrete execution is delegated to tool skills and routed through `claw-shell`.
26
+
27
+ **Core workflow (never bypassed):**
28
+ 1. Identify input type (DICOM / NIfTI / BIDS), modalities available (T1w only vs T1w+T2w vs T1w+FLAIR).
29
+ 2. Generate a **numbered execution plan** (steps, tools, outputs, runtime, risks).
30
+ 3. Present the plan and wait for explicit user confirmation (“YES” / “execute” / “proceed”).
31
+ 4. On confirmation, delegate each step via `claw-shell`.
32
+ 5. Save outputs into a clean folder structure (`smri_output/`).
33
+
34
+ ## Benchmark-Facing Default Mainline
35
+
36
+ For benchmark-style structural MRI tasks, start from the narrowest valid anatomical mainline and only add optional branches when the prompt or inputs explicitly require them.
37
+
38
+ - If the task is full structural MRI processing with no explicit T2w or FLAIR dependency:
39
+ - Default to `DICOM -> NIfTI if needed -> T1w mainline -> FreeSurfer recon-all -> feature/stat table export`.
40
+ - Keep T2w, FLAIR, WMH, HCP structural, and DICOM re-export as optional branches, not default branches.
41
+ - If the task is only DICOM conversion:
42
+ - Delegate to `dcm2nii` and stop there.
43
+ - If the task asks for quick volumetric preprocessing only:
44
+ - Prefer the `fsl-tool` route rather than mixing FreeSurfer and HCP options in the mainline.
45
+ - If optional modalities or branches are missing:
46
+ - Mark them as skipped or blocked.
47
+ - Do not widen the task into unrelated structural subpipelines.
48
+
49
+ Avoid listing unrelated modality-adjacent tools in the primary plan for T1-only structural benchmarks.
50
+
51
+ **Research use only.**
52
+
53
+ ---
54
+
55
+ ## Quick Reference (Common sMRI Tasks → Delegation Map)
56
+
57
+ | Task | What needs to be done (high level) | Delegate to which skill | Expected outputs |
58
+ |---|---|---|---|
59
+ | DICOM → NIfTI | Convert DICOM series to NIfTI (+ JSON) | `dcm2nii` | `*_T1w.nii.gz`, `*_T2w.nii.gz`, `*_FLAIR.nii.gz`, `*.json` |
60
+ | Organize to BIDS | Create valid BIDS layout (anat/) | `bids-organizer` | `bids/sub-*/anat/sub-*_T1w.nii.gz` etc. |
61
+ | Fast structural preprocessing | Brain extraction, bias correction, tissue segmentation, MNI registration | `fsl-tool` (`fsl_anat`, BET/FAST/FLIRT/FNIRT) | brain mask, tissue maps, transforms, QC |
62
+ | FreeSurfer Autorecon1 (volumetric preprocessing) | Image conversion, motion correction, intensity normalization, registration to Talairach, bias correction, skull stripping | `freesurfer-tool` (`recon-all -autorecon1`) | `orig.mgz`, `T1.mgz`, `brainmask.mgz`, `transforms/talairach.xfm` |
63
+ | FreeSurfer Autorecon2 (subcortical segmentation & surface extraction) | Tissue classification, white matter segmentation, surface tessellation, topology repair, white matter & pial surface generation | `freesurfer-tool` (`recon-all -autorecon2`) | `?h.orig`, `?h.white`, `?h.pial`, `aseg.mgz`, `wm.mgz`, surface QC |
64
+ | FreeSurfer Autorecon3 (spherical registration & parcellation) | Spherical surface registration, cortical parcellation (Desikan-Killiany, Destrieux, DKT), anatomical statistics extraction, Brodmann area mapping | `freesurfer-tool` (`recon-all -autorecon3`) | `?h.sphere.reg`, `?h.aparc.annot`, `stats/?h.aparc.stats`, ROI morphology tables |
65
+ | Full FreeSurfer pipeline (all 3 stages) | Complete T1/T2 preprocessing with optional T2-pial refinement | `freesurfer-tool` (`recon-all -all -T2pial`) | Full FreeSurfer subject directory with surfaces, atlases, stats |
66
+ | Surface-based morphometry (quick) | Cortical surfaces, parcellation, thickness, aseg/aparc stats (simplified) | `freesurfer-tool` | FreeSurfer subject dir, stats tables |
67
+ | HCP-grade structural pipeline | PreFreeSurfer → FreeSurfer → PostFreeSurfer | `hcppipeline-tool` | HCP-style derivatives, surfaces, QC |
68
+ | BIDS anatomical derivatives (standardized) | Run BIDS-App anatomical-only workflow | `fmriprep-tool` (`--anat-only`) | BIDS derivatives + QC report |
69
+ | WMH lesion segmentation | Segment WMH from FLAIR+T1 | `wmh-segmentation` (+ `docker-env-manager` if Docker ops needed) | WMH mask NIfTI + run log |
70
+ | ROI-wise feature extraction | Extract ROI stats from derived maps (GM prob, WMH mask, thickness maps in NIfTI, cortical thickness, surface-based stats) | `nilearn-tool` (or `fsl-tool` `fslstats`, FreeSurfer `mris_anatomical_stats`) | `roi_stats_*.csv`, morphology tables |
71
+ | Export results to DICOM | Convert final NIfTI outputs back to DICOM series | `nii2dcm` | DICOM series for PACS/viewers |
72
+
73
+ ---
74
+
75
+ ## Recommended Strategy (Decision Logic)
76
+ - If the goal is **quick brain extraction + tissue segmentation + MNI alignment** (fast baseline, ~6 minutes):
77
+ - Prefer `fsl-tool` (`fsl_anat`).
78
+ - Best for: quick QC, preprocessing, multi-subject batches.
79
+
80
+ - If the goal is **cortical thickness / surface parcellation / aseg-aparc volumetry** (detailed surface morphometry):
81
+ - Prefer `freesurfer-tool` (`recon-all`) with **3-stage execution** (recommended for flexibility):
82
+ - **Stage 1: `-autorecon1`** (volumetric preprocessing, ~15-30 min)
83
+ - Produces: intensity-normalized brain image (`T1.mgz`), Talairach registration (`talairach.xfm`), brain mask (`brainmask.mgz`).
84
+ - Use when: you need just preprocessing, quality control, or pial surface refinement before running surface extraction.
85
+ - **Stage 2: `-autorecon2`** (white matter segmentation & surface extraction, ~30-60 min)
86
+ - Produces: white matter mask (`wm.mgz`), initial surfaces (`?h.orig`, `?h.white`, `?h.pial`), segmentation (`aseg.mgz`).
87
+ - Use when: you need cortical surfaces for thickness measurement, but haven't registered to standard space yet.
88
+ - **Stage 3: `-autorecon3`** (spherical registration & parcellation, ~15-30 min)
89
+ - Produces: registered sphere (`?h.sphere.reg`), cortical parcellations (`?h.aparc.annot`, `?h.aparc.a2009s.annot`, `?h.aparc.DKTatlas.annot`), morphometric statistics (`stats/?h.aparc.stats`).
90
+ - Use when: you need full atlas-based ROI labels, cortical thickness maps, and anatomical statistics for group-level analysis.
91
+ - **Quick execution**: Run `recon-all -all -T2pial` (if T2 available, ~2-3 hours total) for immediate full results.
92
+ - Best for: surface-based group analysis, cortical thickness studies, clinico-anatomical correlation.
93
+
94
+ - If the goal is **highest-quality, HCP-style surfaces and multimodal alignment**:
95
+ - Prefer `hcppipeline-tool` (structural stages).
96
+ - Best for: HCP datasets, publication-grade preprocessing, maximal anatomical detail.
97
+
98
+ - If the dataset is already **BIDS** and you want **standardized derivatives + QC** (and future fMRI integration):
99
+ - Prefer `fmriprep-tool --anat-only` (or full fMRIPrep if fMRI exists).
100
+ - Best for: reproducible BIDS-compliant preprocessing, multi-modal (fMRI-ready), open science.
101
+
102
+ - If the goal is **WMH lesion segmentation** (vascular burden, aging, MS-like WM lesions):
103
+ - Use `wmh-segmentation` (Docker-based); ensure Docker readiness via `docker-env-manager` if needed.
104
+ - Best for: FLAIR+T1 pathological lesion mapping.
105
+
106
+ - If the goal is **ROI-level tables** from any NIfTI scalar map (thickness, volume, WMH count, etc.):
107
+ - Use `nilearn-tool` to generate reproducible CSV feature tables.
108
+ - Best for: downstream statistical analysis, machine learning pipelines.
109
+
110
+ ---
111
+
112
+ ## FreeSurfer Setup & Prerequisites (Ubuntu)
113
+
114
+ ### System Dependencies & Installation
115
+ For Ubuntu 22.04+ systems, `freesurfer-tool` must ensure:
116
+
117
+ #### 1. System-level Dependencies
118
+ ```bash
119
+ sudo apt-get update
120
+ sudo apt-get install -y \
121
+ tcsh bc perl tar libgomp1 build-essential \
122
+ wget vim-common libxmu-dev libxi-dev libxt-dev \
123
+ libx11-dev libglu1-mesa-dev libjpeg62-dev
124
+ ```
125
+
126
+ #### 2. FreeSurfer Installation & License
127
+ - **Download** FreeSurfer 7.4.1 (or newer): Install to `/usr/local/freesurfer/`
128
+ - **License file**: Obtain from https://surfer.nmr.mgh.harvard.edu/fswiki/License → place at `/usr/local/freesurfer/license.txt`
129
+
130
+ #### 3. Environment Configuration (in shell profile, e.g., `.bashrc`)
131
+ ```bash
132
+ export FREESURFER_HOME=/usr/local/freesurfer
133
+ export SUBJECTS_DIR=/path/to/your/freesurfer/subjects
134
+ source $FREESURFER_HOME/SetUpFreeSurfer.sh
135
+ ```
136
+
137
+ ### When to Use Each Stage
138
+
139
+ | Stage | Command | Input | Output | Runtime | Use Case |
140
+ |---|---|---|---|---|---|
141
+ | **Autorecon1** | `recon-all -autorecon1 -i <T1.nii.gz> -subjid <sub>` | T1w NIfTI (mandatory) | `orig.mgz`, `T1.mgz`, `brainmask.mgz`, Talairach xfm | 15–30 min | Preprocessing only, QC checkpoints, T2-pial setup |
142
+ | **Autorecon2** | `recon-all -autorecon2 -subjid <sub>` | (uses autorecon1 outputs) | `wm.mgz`, surfaces (`?h.orig`, `?h.white`, `?h.pial`) | 30–60 min | Cortical surface extraction, thickness measurement |
143
+ | **Autorecon3** | `recon-all -autorecon3 -subjid <sub>` | (uses autorecon2 outputs) | `?h.sphere.reg`, `?h.aparc.annot`, stats tables | 15–30 min | Atlas registration, ROI labels, group analysis ready |
144
+ | **All (1-click)** | `recon-all -all -T2pial -i <T1.nii.gz> -T2 <T2.nii.gz> -subjid <sub>` | T1w (required), T2w (optional but improves pial surface) | Complete subject dir | 2–3 hours | Full pipeline; T2-pial refines pial boundary |
145
+
146
+ ---
147
+
148
+ ## Standard Output Layout (Recommended)
149
+ All outputs must be written under `./smri_output/`:
150
+ - `smri_output/nifti/` (converted inputs if needed: `*_T1w.nii.gz`, `*_T2w.nii.gz`)
151
+ - `smri_output/bids/` (optional staging BIDS: `bids/sub-*/anat/`)
152
+ - `smri_output/fsl_anat/` (FSL structural outputs: brain mask, tissue maps, transforms)
153
+ - `smri_output/freesurfer/` (FreeSurfer SUBJECTS_DIR structure)
154
+ - `freesurfer/sub-01/mri/`
155
+ - `orig.mgz`, `T1.mgz`, `T2.mgz` (if T2 available)
156
+ - `brainmask.mgz`, `wm.mgz`, `norm.mgz`
157
+ - `aseg.mgz`, `aparc+aseg.mgz`, `wmparc.mgz` (after autorecon2+3)
158
+ - `transforms/talairach.xfm`, `cc_up.lta`, etc.
159
+ - `freesurfer/sub-01/surf/`
160
+ - `?h.orig`, `?h.white`, `?h.pial` (surfaces)
161
+ - `?h.sphere.reg` (registered sphere, after autorecon3)
162
+ - `?h.inflated`, `?h.sphere` (topological surfaces)
163
+ - `freesurfer/sub-01/label/`
164
+ - `?h.aparc.annot`, `?h.aparc.a2009s.annot`, `?h.aparc.DKTatlas.annot` (parcellations, after autorecon3)
165
+ - `?h.cortex.label`, `?h.BA*.label` (Brodmann areas, after autorecon3)
166
+ - `freesurfer/sub-01/stats/`
167
+ - `?h.aparc.stats`, `?h.aparc.a2009s.stats`, `?h.aparc.DKTatlas.stats` (cortical morphometry)
168
+ - `aseg.stats`, `wmparc.stats` (subcortical volumes)
169
+ - `?h.curv.stats` (curvature statistics)
170
+ - `smri_output/hcp/` (HCP structural outputs)
171
+ - `smri_output/fmriprep/` (fMRIPrep derivatives/QC pointers)
172
+ - `smri_output/wmh/` (WMH masks + logs)
173
+ - `smri_output/roi/` (ROI feature CSVs extracted from FreeSurfer stats or NIfTI-based ROIs)
174
+ - `smri_output/logs/` (claw-shell log tags / pointers, FreeSurfer recon-all logs)
175
+
176
+ ---
177
+
178
+ ## Safety / Execution Rules (NeuroClaw)
179
+ - **No execution without explicit user confirmation** of the full numbered plan.
180
+ - All execution must be routed through `claw-shell`.
181
+ - If a required dependency is missing, delegate installation planning to `dependency-planner`.
182
+ - If Docker is required (e.g., WMH segmentation containers), coordinate via `docker-env-manager` (plan → confirm → run).
183
+
184
+ ---
185
+
186
+ ## Important Notes & Limitations
187
+ - **Structural pipelines are long-running** (especially FreeSurfer/HCP). Always provide realistic runtime + disk estimates in the plan:
188
+ - Autorecon1: 15–30 min, ~2 GB disk
189
+ - Autorecon2: 30–60 min, ~1 GB additional
190
+ - Autorecon3: 15–30 min, ~500 MB additional
191
+ - Full pipeline (`-all`): 2–3 hours total, ~4–5 GB disk per subject
192
+ - **FreeSurfer License**: Required and must be placed at `$FREESURFER_HOME/license.txt`. Obtain from https://surfer.nmr.mgh.harvard.edu/fswiki/License (free registration).
193
+ - **T2-pial optimization**: Include T2w image with `-T2 <file> -T2pial` flags to refine pial surface in cortical regions with ambiguous GM/CSF boundaries. Recommended for HCP and high-resolution clinical datasets.
194
+ - **System dependencies**: Unix/Linux-only (macOS with Rosetta2 for ARM; Windows via WSL2). Requires X11 forwarding for visualization tools.
195
+ - **ROI extraction**: Surface-based ROIs from FreeSurfer `.annot` files can be extracted via `mris_anatomical_stats` (built-in) or converted to NIfTI via `mri_aparc2aseg` for volumetric ROI analysis.
196
+ - **Registration outputs**: FreeSurfer surfaces (`?h.sphere.reg`) are registered to average template space; enables cross-subject statistical inference via QDEC or nilearn.
197
+ - **This skill is for research workflows**; not for clinical decision-making.
198
+
199
+ ---
200
+
201
+ ## When to Call This Skill
202
+ - Any request involving: T1w/T2w/FLAIR preprocessing, brain extraction, tissue segmentation, MNI registration, cortical thickness, FreeSurfer recon-all, HCP structural pipeline, WMH segmentation, or ROI-wise structural features.
203
+
204
+ ## Post-Execution Verification (Harness Integration)
205
+
206
+ After structural MRI processing completes, this skill **automatically invokes harness-core's VerificationRunner** to validate structural derivatives:
207
+
208
+ **Integrated verification checks**:
209
+
210
+ ```python
211
+ from skills.harness_core import VerificationRunner, AuditLogger
212
+ import nibabel as nib
213
+ import numpy as np
214
+
215
+ verifier = VerificationRunner(task_type="structural_mri_processing")
216
+
217
+ # 1. Structural brain extraction quality
218
+ verifier.add_check("brain_extraction_mask",
219
+ checker=lambda: verify_brain_mask_exists(output_dir),
220
+ severity="error"
221
+ )
222
+
223
+ # 2. Tissue segmentation (GM/WM/CSF) available and reasonable
224
+ verifier.add_check("tissue_segmentation",
225
+ checker=lambda: verify_tissue_maps_integrity(output_dir),
226
+ severity="error"
227
+ )
228
+
229
+ # 3. MNI registration transforms
230
+ verifier.add_check("mni_registration",
231
+ checker=lambda: verify_mni_transforms(output_dir),
232
+ severity="warning"
233
+ )
234
+
235
+ # 4. Cortical surface files (if FreeSurfer)
236
+ verifier.add_check("cortical_surfaces",
237
+ checker=lambda: verify_freesurfer_surfaces(output_dir),
238
+ severity="warning"
239
+ )
240
+
241
+ # 5. No NaN/Inf in structural maps
242
+ verifier.add_check("structural_data_integrity",
243
+ checker=lambda: verify_structural_no_nan_inf(output_dir),
244
+ severity="error"
245
+ )
246
+
247
+ # 6. Cortical thickness reasonable range (if available)
248
+ verifier.add_check("cortical_thickness_bounds",
249
+ checker=lambda: verify_thickness_range(output_dir, min_mm=1.0, max_mm=4.0),
250
+ severity="warning"
251
+ )
252
+
253
+ # 7. Volume statistics plausible
254
+ verifier.add_check("volume_statistics",
255
+ checker=lambda: verify_tissue_volume_ratios(output_dir),
256
+ severity="warning"
257
+ )
258
+
259
+ report = verifier.run(output_dir)
260
+
261
+ # Log verification results
262
+ logger = AuditLogger(log_file=f"{output_dir}/structural_verification.jsonl")
263
+ logger.log_validation(
264
+ task_name="structural_mri_processing",
265
+ checks_passed=len([r for r in report.results if r.passed]),
266
+ checks_failed=len([r for r in report.results if not r.passed]),
267
+ warnings=len([r for r in report.results if r.severity == "warning" and not r.passed]),
268
+ report_summary=report.to_dict()
269
+ )
270
+
271
+ if report.failed:
272
+ raise ValueError(f"Structural MRI verification failed: {report.summary}")
273
+ ```
274
+
275
+ **Output files generated**:
276
+ - `{output_dir}/structural_verification.jsonl` — structured audit log
277
+ - `{output_dir}/.structural_verification_timestamp` — completion marker
278
+
279
+ ## Complementary / Related Skills
280
+
281
+ - `dcm2nii` → DICOM → NIfTI
282
+ - `fsl-tool` → fsl_anat / BET / FAST / FIRST / registration utilities
283
+ - `freesurfer-tool` → cortical & subcortical morphometry + thickness/parcellation
284
+ - `hcppipeline-tool` → HCP-style structural pipeline
285
+ - `fmriprep-tool` → standardized BIDS-App anatomical-only derivatives + QC
286
+ - `wmh-segmentation` → WMH lesion mask from FLAIR+T1 (Docker)
287
+ - `docker-env-manager` → safe Docker operations (when needed)
288
+ - `nilearn-tool` → ROI feature extraction from structural-derived NIfTI maps
289
+ - `nii2dcm` → export final NIfTI results back to DICOM
290
+ - `dependency-planner` + `conda-env-manager` → installation/environment management
291
+ - `claw-shell` → mandatory safe execution layer
292
+ - `harness-core` → automated verification and audit logging
293
+
294
+ ---
295
+
296
+ ## Reference
297
+ Aligned with NeuroClaw modality-skill pattern (see `fmri-skill`, `dwi-skill`, `eeg-skill`).
298
+ Common sMRI toolchain: FSL (fast structural utilities), FreeSurfer (surface morphometry), HCP pipelines (HCP-grade structural processing), fMRIPrep (BIDS anatomical derivatives), Nilearn (ROI features on NIfTI maps), MARS-WMH (WMH segmentation via Docker).
299
+
300
+ Created At: 2026-03-26 01:09 HKT
301
+ Last Updated At: 2026-04-05 02:01 HKT
302
+ Author: chengwang96
@@ -0,0 +1,204 @@
1
+ ---
2
+ name: tcp-skill
3
+ description: "Use this skill whenever the user wants an end-to-end workflow for the Transdiagnostic Connectome Project (TCP) dataset, including BIDS validation, multimodal processing of sMRI, rs-fMRI, and dMRI, phenotype extraction, and QC integration. Triggers include: 'TCP', 'Transdiagnostic Connectome', 'process TCP data', 'TCP fMRI', or any request to run the TCP multimodal pipeline."
4
+ license: MIT License (NeuroClaw custom skill - freely modifiable within the project)
5
+ layer: subagent
6
+ skill_type: dataset
7
+ dependencies:
8
+ - smri-skill
9
+ - fmri-skill
10
+ - dwi-skill
11
+ - bids-organizer
12
+ - claw-shell
13
+ complementary_skills:
14
+ - brain-visualization
15
+ ---
16
+ # TCP Skill (Dataset-Orchestration Layer)
17
+
18
+ ## Overview
19
+
20
+ `tcp-skill` is the NeuroClaw orchestration skill for the **Transdiagnostic Connectome Project (TCP)** dataset, collected at Washington University in St. Louis.
21
+
22
+ It strictly follows the NeuroClaw hierarchical design principles:
23
+ - This skill **only describes WHAT needs to be done** and **which tool skill to delegate to**.
24
+ - It contains **no implementation code or concrete commands**.
25
+ - All concrete execution is delegated to existing base/tool skills via `claw-shell`.
26
+ - Companion scripts in `scripts/` provide reference implementations for BIDS validation, phenotype extraction, and QC.
27
+
28
+ **Core workflow (never bypassed):**
29
+ 1. Identify input TCP data and target modalities.
30
+ 2. Generate a **numbered execution plan** clearly stating WHAT needs to be done and which tool skill will handle each step.
31
+ 3. Present the full plan, estimated runtime, resource requirements, and risks to the user and wait for explicit confirmation ("YES" / "execute" / "proceed").
32
+ 4. On confirmation, delegate every step to the appropriate skill via `claw-shell`.
33
+ 5. After execution, save all outputs in a clean directory structure (`tcp_output/`).
34
+
35
+ **Research use only.**
36
+
37
+ ---
38
+
39
+ ## Quick Reference
40
+
41
+ | Task | What needs to be done | Delegate to | Expected output |
42
+ |---|---|---|---|
43
+ | BIDS validation | Validate TCP BIDS structure | `scripts/validate_tcp.py` | Validation report |
44
+ | sMRI processing | Brain extraction, tissue segmentation | `smri-skill` | `smri_output/` derivatives |
45
+ | rs-fMRI processing | Preprocessing, denoising, connectivity | `fmri-skill` | `fmri_output/` connectivity |
46
+ | dMRI processing | Diffusion preprocessing, tractography | `dwi-skill` | `dwi_output/` metrics |
47
+ | Phenotype extraction | Psychiatric diagnosis, dimensional measures | `scripts/extract_tcp_phenotype.py` | Merged phenotype CSV |
48
+ | QC summary | Per-subject quality control | `scripts/tcp_qc_summary.py` | QC summary + exclusion list |
49
+
50
+ ---
51
+
52
+ ## Dataset Characteristics
53
+
54
+ - **Cohort**: ~600+ participants
55
+ - Transdiagnostic approach: participants span multiple diagnostic categories
56
+ - **Healthy controls**: Age-matched
57
+ - **Psychiatric groups**: Depression, anxiety, psychosis spectrum, etc.
58
+ - **Scanner**: 3T Siemens (WashU)
59
+ - **Modalities**: T1w sMRI, rs-fMRI, dMRI/DTI
60
+ - **Clinical**: RDoC-informed dimensional measures, diagnostic assessments
61
+ - **Access**: NIMH Data Archive (NDA), OpenNeuro
62
+ - **Format**: BIDS-compliant
63
+ - **Reference**: Barch, Gordon et al., WashU
64
+
65
+ ---
66
+
67
+ ## Supported Modalities
68
+
69
+ | Modality | Description | Details |
70
+ |---|---|---|
71
+ | T1w | High-resolution structural MRI | 1mm isotropic, cortical thickness |
72
+ | rs-fMRI | Resting-state functional MRI | Eyes open, functional connectivity |
73
+ | dMRI | Diffusion-weighted imaging | DTI, white matter tractography |
74
+
75
+ ---
76
+
77
+ ## TCP Clinical Dimensions
78
+
79
+ | Domain | Measures | RDoC Construct |
80
+ |---|---|---|
81
+ | Negative valence | Anhedonia, anxiety | Negative valence systems |
82
+ | Positive valence | Reward processing | Positive valence systems |
83
+ | Cognitive | Working memory, executive function | Cognitive systems |
84
+ | Social | Social cognition | Social processes |
85
+ | Arousal | Arousal/regulatory systems | Arousal/regulatory systems |
86
+
87
+ ---
88
+
89
+ ## BIDS Preparation
90
+
91
+ ### Script: `scripts/validate_tcp.py`
92
+
93
+ Validates TCP BIDS structure and generates a compliance report.
94
+
95
+ ```bash
96
+ python skills/tcp-skill/scripts/validate_tcp.py \
97
+ --input /path/to/TCP/bids \
98
+ --output /path/to/tcp_output/qc/bids_validation.csv
99
+ ```
100
+
101
+ Features:
102
+ - BIDS directory structure validation
103
+ - Modality completeness check (T1w, rs-fMRI, dMRI)
104
+ - Diagnostic group labeling
105
+ - Missing data identification
106
+
107
+ ---
108
+
109
+ ## Core Workflow (Never Bypassed)
110
+
111
+ 1. Identify user target: full TCP processing, imaging subset, phenotype extraction, or BIDS validation only.
112
+ 2. Generate a numbered plan with tools, outputs, runtime, storage, and risks.
113
+ 3. Wait for explicit confirmation (`YES` / `execute` / `proceed`).
114
+ 4. On confirmation, run BIDS validation using `scripts/validate_tcp.py`.
115
+ 5. Delegate to `smri-skill` for structural MRI processing.
116
+ 6. Delegate to `fmri-skill` for rs-fMRI processing.
117
+ 7. Delegate to `dwi-skill` for dMRI processing.
118
+ 8. If phenotype extraction is requested, run `scripts/extract_tcp_phenotype.py`.
119
+ 9. If QC summary is requested, run `scripts/tcp_qc_summary.py`.
120
+ 10. Save outputs into `tcp_output/`.
121
+
122
+ ---
123
+
124
+ ## Modality Processing Delegation
125
+
126
+ | Modality | Delegated skill | Typical tasks | Main outputs |
127
+ |---|---|---|---|
128
+ | sMRI (T1w) | `smri-skill` | brain extraction, tissue segmentation, cortical thickness | `smri_output/` derivatives |
129
+ | rs-fMRI | `fmri-skill` | preprocessing, denoising, connectivity | `fmri_output/` connectivity |
130
+ | dMRI | `dwi-skill` | diffusion preprocessing, tensor metrics | `dwi_output/` metrics |
131
+
132
+ ---
133
+
134
+ ## Standard Output Layout
135
+
136
+ ```
137
+ tcp_output/
138
+ ├── bids/ # BIDS-staged data (or validation report)
139
+ ├── smri/ # Structural MRI derivatives
140
+ ├── fmri/ # Functional MRI derivatives (rs-fMRI connectivity)
141
+ ├── dwi/ # Diffusion MRI derivatives
142
+ ├── phenotype/ # Merged phenotype tables (diagnosis, dimensional)
143
+ ├── qc/ # QC summaries and exclusion lists
144
+ └── logs/ # Processing logs
145
+ ```
146
+
147
+ ---
148
+
149
+ ## Benchmark Adapter Guidance
150
+
151
+ For benchmark-style prompts, do not force the full orchestration when the task only asks for local TCP data validation.
152
+
153
+ - If the task starts from TCP data already present on disk and only asks for BIDS validation:
154
+ - Skip the download stage
155
+ - Default to the narrow path `local TCP discovery -> BIDS validation -> report`
156
+ - In benchmark mode, do not require explicit confirmation before presenting the validation solution.
157
+
158
+ ---
159
+
160
+ ## Safety and Execution Policy
161
+ - No execution before explicit plan confirmation.
162
+ - All execution must be routed via `claw-shell`.
163
+ - Missing dependencies must be resolved by `dependency-planner` before running.
164
+
165
+ ---
166
+
167
+ ## Important Notes and Limitations
168
+ - TCP uses a transdiagnostic approach; analyses should consider dimensional rather than categorical models.
169
+ - RDoC-informed phenotyping enables cross-diagnostic connectivity analyses.
170
+ - Connectome-based predictive modeling (CPM) is a commonly used analysis approach.
171
+ - Multi-diagnostic design requires careful handling of group comparisons.
172
+ - `tcp-skill` is orchestration-only; detailed preprocessing logic remains in modality skills.
173
+
174
+ ---
175
+
176
+ ## When to Call This Skill
177
+ - User asks for end-to-end TCP workflow.
178
+ - User asks to process TCP neuroimaging data.
179
+ - User needs BIDS validation for TCP data.
180
+ - User asks to extract TCP phenotype data (diagnostic, dimensional).
181
+ - User asks for transdiagnostic connectivity analysis.
182
+
183
+ ---
184
+
185
+ ## Complementary / Related Skills
186
+ - `smri-skill` → structural MRI preprocessing
187
+ - `fmri-skill` → functional MRI preprocessing and analysis
188
+ - `dwi-skill` → diffusion MRI preprocessing
189
+ - `bids-organizer` → BIDS validation and organization
190
+ - `brain-visualization` → visualization of derivatives
191
+ - `dependency-planner` → dependency resolution
192
+ - `conda-env-manager` → environment management
193
+ - `claw-shell` → command execution
194
+
195
+ ---
196
+
197
+ ## Reference
198
+ - TCP: Washington University in St. Louis
199
+ - Barch, Gordon et al.: Transdiagnostic Connectome Project
200
+ - NIMH Data Archive: https://nda.nih.gov/
201
+
202
+ Created At: 2026-05-06 14:21 HKT
203
+ Last Updated At: 2026-05-06 14:21 HKT
204
+ Author: chengwang96