@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.
- package/package.json +2 -2
- package/skills/01_Meta-Skills/academic-research-hub/SKILL.md +108 -0
- package/skills/01_Meta-Skills/academic-research-hub/scripts/requirements.txt +17 -0
- package/skills/01_Meta-Skills/academic-research-hub/scripts/research.py +781 -0
- package/skills/01_Meta-Skills/beautiful-log/SKILL.md +64 -0
- package/skills/01_Meta-Skills/beautiful-log/scripts/beautiful_log.py +274 -0
- package/skills/01_Meta-Skills/ethoclaw-daily-paper/SKILL.md +130 -0
- package/skills/01_Meta-Skills/ethoclaw-daily-paper/assets/config.template.yaml +54 -0
- package/skills/01_Meta-Skills/ethoclaw-daily-paper/assets/top5_digest_template.md +5 -0
- package/skills/01_Meta-Skills/ethoclaw-daily-paper/scripts/build_top5_digest.py +300 -0
- package/skills/01_Meta-Skills/ethoclaw-daily-paper/scripts/common.py +137 -0
- package/skills/01_Meta-Skills/ethoclaw-daily-paper/scripts/merge_results.py +106 -0
- package/skills/01_Meta-Skills/ethoclaw-daily-paper/scripts/run_pipeline.py +177 -0
- package/skills/01_Meta-Skills/ethoclaw-daily-paper/scripts/search_arxiv.py +162 -0
- package/skills/01_Meta-Skills/ethoclaw-daily-paper/scripts/search_pubmed.py +202 -0
- package/skills/01_Meta-Skills/ethoclaw-normalize-tabular/SKILL.md +173 -0
- package/skills/01_Meta-Skills/ethoclaw-normalize-tabular/scripts/normalize_data.py +874 -0
- package/skills/01_Meta-Skills/ethoclaw-pdf-research/SKILL.md +134 -0
- package/skills/01_Meta-Skills/ethoclaw-pdf-research/references/confirmation-prompts.md +31 -0
- package/skills/01_Meta-Skills/ethoclaw-pdf-research/references/output-patterns.md +45 -0
- package/skills/01_Meta-Skills/ethoclaw-pdf-research/scripts/build_markdown_deliverables.py +41 -0
- package/skills/01_Meta-Skills/ethoclaw-pdf-research/scripts/build_research_log.py +84 -0
- package/skills/01_Meta-Skills/ethoclaw-pdf-research/scripts/build_summary_md.py +63 -0
- package/skills/01_Meta-Skills/ethoclaw-pdf-research/scripts/extract_pdf_bundle.py +140 -0
- package/skills/01_Meta-Skills/experiment-controller/SKILL.md +140 -0
- package/skills/01_Meta-Skills/knowledge-graph-builder/SKILL.md +366 -0
- package/skills/01_Meta-Skills/knowledge-graph-builder/scripts/entity_resolution.py +120 -0
- package/skills/01_Meta-Skills/knowledge-graph-builder/scripts/extraction_prompt_template.txt +19 -0
- package/skills/01_Meta-Skills/knowledge-graph-builder/scripts/graph_query.py +106 -0
- package/skills/01_Meta-Skills/knowledge-graph-builder/scripts/hypothesis_cli_reference.py +42 -0
- package/skills/01_Meta-Skills/knowledge-graph-builder/scripts/new_data_source_template.py +116 -0
- package/skills/01_Meta-Skills/knowledge-graph-builder/scripts/requirements.txt +15 -0
- package/skills/01_Meta-Skills/method-design/SKILL.md +61 -0
- package/skills/01_Meta-Skills/multi-search-engine/SKILL.md +119 -0
- package/skills/01_Meta-Skills/research-idea/SKILL.md +65 -0
- package/skills/05_EEG_ERP/eeg-skill/SKILL.md +197 -0
- package/skills/05_EEG_ERP/meg-skill/SKILL.md +188 -0
- package/skills/05_EEG_ERP/meg-skill/scripts/time_frequency.py +223 -0
- package/skills/05_EEG_ERP/mne-eeg-tool/SKILL.md +165 -0
- package/skills/05_EEG_ERP/mne-eeg-tool/scripts/eeg_pipeline_reference.py +231 -0
- package/skills/05_EEG_ERP/seed-iv-skill/SKILL.md +184 -0
- package/skills/05_EEG_ERP/seed-iv-skill/scripts/classify_seed_iv.py +154 -0
- package/skills/05_EEG_ERP/seed-iv-skill/scripts/extract_seed_iv_features.py +190 -0
- package/skills/05_EEG_ERP/seed-iv-skill/scripts/validate_seed_iv.py +102 -0
- package/skills/05_EEG_ERP/seed-vig-skill/SKILL.md +182 -0
- package/skills/05_EEG_ERP/seed-vig-skill/scripts/classify_seed_vig.py +165 -0
- package/skills/05_EEG_ERP/seed-vig-skill/scripts/extract_seed_vig_features.py +185 -0
- package/skills/05_EEG_ERP/seed-vig-skill/scripts/validate_seed_vig.py +88 -0
- package/skills/06_fMRI_Neuroimaging/abcd-skill/SKILL.md +308 -0
- package/skills/06_fMRI_Neuroimaging/abcd-skill/scripts/abcd_qc_summary.py +449 -0
- package/skills/06_fMRI_Neuroimaging/abcd-skill/scripts/extract_abcd_phenotype.py +292 -0
- package/skills/06_fMRI_Neuroimaging/abcd-skill/scripts/reorganize_abcd.py +387 -0
- package/skills/06_fMRI_Neuroimaging/abide-skill/SKILL.md +302 -0
- package/skills/06_fMRI_Neuroimaging/abide-skill/scripts/abide_qc_summary.py +317 -0
- package/skills/06_fMRI_Neuroimaging/abide-skill/scripts/extract_abide_phenotype.py +267 -0
- package/skills/06_fMRI_Neuroimaging/abide-skill/scripts/reorganize_abide.py +387 -0
- package/skills/06_fMRI_Neuroimaging/adhd200-skill/SKILL.md +244 -0
- package/skills/06_fMRI_Neuroimaging/adhd200-skill/scripts/adhd200_qc_summary.py +98 -0
- package/skills/06_fMRI_Neuroimaging/adhd200-skill/scripts/extract_adhd200_phenotype.py +134 -0
- package/skills/06_fMRI_Neuroimaging/adhd200-skill/scripts/reorganize_adhd200.py +206 -0
- package/skills/06_fMRI_Neuroimaging/adni-skill/SKILL.md +358 -0
- package/skills/06_fMRI_Neuroimaging/adni-skill/scripts/generate_adni_task_files.py +1305 -0
- package/skills/06_fMRI_Neuroimaging/adni-skill/scripts/generate_vqa_from_tasks.py +766 -0
- package/skills/06_fMRI_Neuroimaging/adni-skill/scripts/reorganize_adni.py +491 -0
- package/skills/06_fMRI_Neuroimaging/aibl-skill/SKILL.md +295 -0
- package/skills/06_fMRI_Neuroimaging/aibl-skill/scripts/aibl_qc_summary.py +260 -0
- package/skills/06_fMRI_Neuroimaging/aibl-skill/scripts/extract_aibl_phenotype.py +365 -0
- package/skills/06_fMRI_Neuroimaging/aibl-skill/scripts/reorganize_aibl.py +394 -0
- package/skills/06_fMRI_Neuroimaging/aomic-skill/SKILL.md +292 -0
- package/skills/06_fMRI_Neuroimaging/aomic-skill/scripts/aomic_qc_summary.py +258 -0
- package/skills/06_fMRI_Neuroimaging/aomic-skill/scripts/extract_aomic_phenotype.py +284 -0
- package/skills/06_fMRI_Neuroimaging/aomic-skill/scripts/reorganize_aomic.py +322 -0
- package/skills/06_fMRI_Neuroimaging/asl-skill/SKILL.md +168 -0
- package/skills/06_fMRI_Neuroimaging/asl-skill/scripts/compute_cbf.py +224 -0
- package/skills/06_fMRI_Neuroimaging/bids-organizer/SKILL.md +241 -0
- package/skills/06_fMRI_Neuroimaging/bold5000-skill/SKILL.md +186 -0
- package/skills/06_fMRI_Neuroimaging/bold5000-skill/scripts/bold5000_qc_summary.py +96 -0
- package/skills/06_fMRI_Neuroimaging/bold5000-skill/scripts/extract_bold5000_stimulus.py +125 -0
- package/skills/06_fMRI_Neuroimaging/bold5000-skill/scripts/reorganize_bold5000.py +102 -0
- package/skills/06_fMRI_Neuroimaging/camcan-skill/SKILL.md +213 -0
- package/skills/06_fMRI_Neuroimaging/camcan-skill/scripts/camcan_qc_summary.py +131 -0
- package/skills/06_fMRI_Neuroimaging/camcan-skill/scripts/extract_camcan_phenotype.py +145 -0
- package/skills/06_fMRI_Neuroimaging/camcan-skill/scripts/validate_camcan.py +141 -0
- package/skills/06_fMRI_Neuroimaging/cobre-skill/SKILL.md +201 -0
- package/skills/06_fMRI_Neuroimaging/cobre-skill/scripts/cobre_qc_summary.py +95 -0
- package/skills/06_fMRI_Neuroimaging/cobre-skill/scripts/extract_cobre_phenotype.py +104 -0
- package/skills/06_fMRI_Neuroimaging/cobre-skill/scripts/reorganize_cobre.py +140 -0
- package/skills/06_fMRI_Neuroimaging/conn-tool/SKILL.md +180 -0
- package/skills/06_fMRI_Neuroimaging/dcm2nii/SKILL.md +189 -0
- package/skills/06_fMRI_Neuroimaging/dmt-har-med-skill/SKILL.md +183 -0
- package/skills/06_fMRI_Neuroimaging/dmt-har-med-skill/scripts/dmt_har_med_qc_summary.py +96 -0
- package/skills/06_fMRI_Neuroimaging/dmt-har-med-skill/scripts/extract_dmt_har_med_phenotype.py +121 -0
- package/skills/06_fMRI_Neuroimaging/dmt-har-med-skill/scripts/reorganize_dmt_har_med.py +125 -0
- package/skills/06_fMRI_Neuroimaging/dwi-skill/SKILL.md +359 -0
- package/skills/06_fMRI_Neuroimaging/fmri-skill/SKILL.md +371 -0
- package/skills/06_fMRI_Neuroimaging/fmriprep-tool/SKILL.md +228 -0
- package/skills/06_fMRI_Neuroimaging/freesurfer-tool/SKILL.md +286 -0
- package/skills/06_fMRI_Neuroimaging/freesurfer-tool/scripts/freesurfer_processor.py +145 -0
- package/skills/06_fMRI_Neuroimaging/fsl-tool/SKILL.md +208 -0
- package/skills/06_fMRI_Neuroimaging/hbn-skill/SKILL.md +271 -0
- package/skills/06_fMRI_Neuroimaging/hbn-skill/scripts/extract_hbn_phenotype.py +107 -0
- package/skills/06_fMRI_Neuroimaging/hbn-skill/scripts/hbn_qc_summary.py +96 -0
- package/skills/06_fMRI_Neuroimaging/hbn-skill/scripts/reorganize_hbn.py +150 -0
- package/skills/06_fMRI_Neuroimaging/hcpa-skill/SKILL.md +210 -0
- package/skills/06_fMRI_Neuroimaging/hcpa-skill/scripts/extract_hcpa_phenotype.py +146 -0
- package/skills/06_fMRI_Neuroimaging/hcpa-skill/scripts/hcpa_qc_summary.py +120 -0
- package/skills/06_fMRI_Neuroimaging/hcpa-skill/scripts/reorganize_hcpa.py +155 -0
- package/skills/06_fMRI_Neuroimaging/hcpd-skill/SKILL.md +210 -0
- package/skills/06_fMRI_Neuroimaging/hcpd-skill/scripts/extract_hcpd_phenotype.py +148 -0
- package/skills/06_fMRI_Neuroimaging/hcpd-skill/scripts/hcpd_qc_summary.py +125 -0
- package/skills/06_fMRI_Neuroimaging/hcpd-skill/scripts/reorganize_hcpd.py +146 -0
- package/skills/06_fMRI_Neuroimaging/hcpep-skill/SKILL.md +215 -0
- package/skills/06_fMRI_Neuroimaging/hcpep-skill/scripts/extract_hcpep_phenotype.py +157 -0
- package/skills/06_fMRI_Neuroimaging/hcpep-skill/scripts/hcpep_qc_summary.py +143 -0
- package/skills/06_fMRI_Neuroimaging/hcpep-skill/scripts/reorganize_hcpep.py +146 -0
- package/skills/06_fMRI_Neuroimaging/hcppipeline-tool/SKILL.md +217 -0
- package/skills/06_fMRI_Neuroimaging/hcpya-skill/SKILL.md +214 -0
- package/skills/06_fMRI_Neuroimaging/hcpya-skill/scripts/extract_hcpya_phenotype.py +190 -0
- package/skills/06_fMRI_Neuroimaging/hcpya-skill/scripts/hcpya_qc_summary.py +152 -0
- package/skills/06_fMRI_Neuroimaging/hcpya-skill/scripts/reorganize_hcpya.py +203 -0
- package/skills/06_fMRI_Neuroimaging/ixi-skill/SKILL.md +198 -0
- package/skills/06_fMRI_Neuroimaging/ixi-skill/scripts/ixi_qc_summary.py +137 -0
- package/skills/06_fMRI_Neuroimaging/ixi-skill/scripts/reorganize_ixi.py +190 -0
- package/skills/06_fMRI_Neuroimaging/mnd-skill/SKILL.md +191 -0
- package/skills/06_fMRI_Neuroimaging/mnd-skill/scripts/extract_mnd_phenotype.py +143 -0
- package/skills/06_fMRI_Neuroimaging/mnd-skill/scripts/mnd_qc_summary.py +120 -0
- package/skills/06_fMRI_Neuroimaging/mnd-skill/scripts/validate_mnd.py +107 -0
- package/skills/06_fMRI_Neuroimaging/mschallenge-skill/SKILL.md +203 -0
- package/skills/06_fMRI_Neuroimaging/mschallenge-skill/scripts/analyze_lesions.py +119 -0
- package/skills/06_fMRI_Neuroimaging/mschallenge-skill/scripts/longitudinal_lesion.py +148 -0
- package/skills/06_fMRI_Neuroimaging/mschallenge-skill/scripts/mschallenge_qc_summary.py +132 -0
- package/skills/06_fMRI_Neuroimaging/mschallenge-skill/scripts/validate_mschallenge.py +116 -0
- package/skills/06_fMRI_Neuroimaging/nibabel-skill/SKILL.md +184 -0
- package/skills/06_fMRI_Neuroimaging/nibabel-skill/scripts/atlas_coordinate_reference.py +61 -0
- package/skills/06_fMRI_Neuroimaging/nibabel-skill/scripts/freesurfer_io_reference.py +34 -0
- package/skills/06_fMRI_Neuroimaging/nibabel-skill/scripts/nifti_inspection_reference.py +35 -0
- package/skills/06_fMRI_Neuroimaging/nifd-skill/SKILL.md +205 -0
- package/skills/06_fMRI_Neuroimaging/nifd-skill/scripts/extract_nifd_phenotype.py +132 -0
- package/skills/06_fMRI_Neuroimaging/nifd-skill/scripts/nifd_qc_summary.py +111 -0
- package/skills/06_fMRI_Neuroimaging/nifd-skill/scripts/validate_nifd.py +111 -0
- package/skills/06_fMRI_Neuroimaging/nii2dcm/SKILL.md +143 -0
- package/skills/06_fMRI_Neuroimaging/nilearn-tool/SKILL.md +266 -0
- package/skills/06_fMRI_Neuroimaging/nilearn-tool/scripts/connectome_reference.py +65 -0
- package/skills/06_fMRI_Neuroimaging/nilearn-tool/scripts/denoise_timeseries_reference.py +58 -0
- package/skills/06_fMRI_Neuroimaging/nilearn-tool/scripts/hierarchical_parcellation_reference.py +53 -0
- package/skills/06_fMRI_Neuroimaging/nilearn-tool/scripts/kmeans_parcellation_reference.py +53 -0
- package/skills/06_fMRI_Neuroimaging/nilearn-tool/scripts/preprocess_bold_reference.py +76 -0
- package/skills/06_fMRI_Neuroimaging/nilearn-tool/scripts/rest_dictlearning_reference.py +56 -0
- package/skills/06_fMRI_Neuroimaging/nilearn-tool/scripts/rest_ica_reference.py +59 -0
- package/skills/06_fMRI_Neuroimaging/nilearn-tool/scripts/second_level_glm_reference.py +58 -0
- package/skills/06_fMRI_Neuroimaging/nilearn-tool/scripts/spacenet_classifier_reference.py +59 -0
- package/skills/06_fMRI_Neuroimaging/nilearn-tool/scripts/svm_classifier_reference.py +60 -0
- package/skills/06_fMRI_Neuroimaging/nilearn-tool/scripts/task_glm_reference.py +63 -0
- package/skills/06_fMRI_Neuroimaging/nilearn-tool/scripts/zalff_summary_reference.py +109 -0
- package/skills/06_fMRI_Neuroimaging/nsd-skill/SKILL.md +210 -0
- package/skills/06_fMRI_Neuroimaging/nsd-skill/scripts/extract_nsd_stimulus.py +171 -0
- package/skills/06_fMRI_Neuroimaging/nsd-skill/scripts/nsd_qc_summary.py +142 -0
- package/skills/06_fMRI_Neuroimaging/nsd-skill/scripts/validate_nsd.py +142 -0
- package/skills/06_fMRI_Neuroimaging/oasis-skill/SKILL.md +205 -0
- package/skills/06_fMRI_Neuroimaging/oasis-skill/scripts/extract_oasis_phenotype.py +126 -0
- package/skills/06_fMRI_Neuroimaging/oasis-skill/scripts/oasis_qc_summary.py +115 -0
- package/skills/06_fMRI_Neuroimaging/oasis-skill/scripts/validate_oasis.py +119 -0
- package/skills/06_fMRI_Neuroimaging/pet-skill/SKILL.md +173 -0
- package/skills/06_fMRI_Neuroimaging/pet-skill/scripts/compute_suvr.py +202 -0
- package/skills/06_fMRI_Neuroimaging/pnc-skill/SKILL.md +206 -0
- package/skills/06_fMRI_Neuroimaging/pnc-skill/scripts/extract_pnc_phenotype.py +136 -0
- package/skills/06_fMRI_Neuroimaging/pnc-skill/scripts/pnc_qc_summary.py +116 -0
- package/skills/06_fMRI_Neuroimaging/pnc-skill/scripts/validate_pnc.py +120 -0
- package/skills/06_fMRI_Neuroimaging/ppmi-skill/SKILL.md +209 -0
- package/skills/06_fMRI_Neuroimaging/ppmi-skill/scripts/extract_ppmi_phenotype.py +138 -0
- package/skills/06_fMRI_Neuroimaging/ppmi-skill/scripts/ppmi_qc_summary.py +111 -0
- package/skills/06_fMRI_Neuroimaging/ppmi-skill/scripts/validate_ppmi.py +117 -0
- package/skills/06_fMRI_Neuroimaging/qsiprep-tool/SKILL.md +320 -0
- package/skills/06_fMRI_Neuroimaging/rest-mneta-mdd-skill/SKILL.md +215 -0
- package/skills/06_fMRI_Neuroimaging/rest-mneta-mdd-skill/scripts/extract_rest_mdd_phenotype.py +132 -0
- package/skills/06_fMRI_Neuroimaging/rest-mneta-mdd-skill/scripts/harmonize_sites.py +152 -0
- package/skills/06_fMRI_Neuroimaging/rest-mneta-mdd-skill/scripts/rest_mdd_qc_summary.py +124 -0
- package/skills/06_fMRI_Neuroimaging/rest-mneta-mdd-skill/scripts/validate_rest_mdd.py +103 -0
- package/skills/06_fMRI_Neuroimaging/smri-skill/SKILL.md +302 -0
- package/skills/06_fMRI_Neuroimaging/tcp-skill/SKILL.md +204 -0
- package/skills/06_fMRI_Neuroimaging/tcp-skill/scripts/extract_tcp_phenotype.py +139 -0
- package/skills/06_fMRI_Neuroimaging/tcp-skill/scripts/tcp_qc_summary.py +111 -0
- package/skills/06_fMRI_Neuroimaging/tcp-skill/scripts/validate_tcp.py +99 -0
- package/skills/06_fMRI_Neuroimaging/ucla-cnp-skill/SKILL.md +217 -0
- package/skills/06_fMRI_Neuroimaging/ucla-cnp-skill/scripts/extract_ucla_cnp_phenotype.py +145 -0
- package/skills/06_fMRI_Neuroimaging/ucla-cnp-skill/scripts/ucla_cnp_qc_summary.py +111 -0
- package/skills/06_fMRI_Neuroimaging/ucla-cnp-skill/scripts/validate_ucla_cnp.py +113 -0
- package/skills/06_fMRI_Neuroimaging/ukb-skill/SKILL.md +310 -0
- package/skills/06_fMRI_Neuroimaging/ukb-skill/scripts/build_ukb_survival.py +210 -0
- package/skills/06_fMRI_Neuroimaging/ukb-skill/scripts/extract_ukb_cases.py +308 -0
- package/skills/06_fMRI_Neuroimaging/ukb-skill/scripts/extract_ukb_phenotype.py +232 -0
- package/skills/06_fMRI_Neuroimaging/ukb-skill/scripts/ukb_qc_summary.py +158 -0
- package/skills/06_fMRI_Neuroimaging/wmh-segmentation/SKILL.md +133 -0
- package/skills/07_Computational_Modeling/detrending/SKILL.md +118 -0
- package/skills/07_Computational_Modeling/dictlearning/SKILL.md +122 -0
- package/skills/07_Computational_Modeling/filtering/SKILL.md +121 -0
- package/skills/07_Computational_Modeling/glm/SKILL.md +153 -0
- package/skills/07_Computational_Modeling/hierarchical/SKILL.md +121 -0
- package/skills/07_Computational_Modeling/ica/SKILL.md +122 -0
- package/skills/07_Computational_Modeling/kmeans/SKILL.md +119 -0
- package/skills/07_Computational_Modeling/run_models/SKILL.md +427 -0
- package/skills/07_Computational_Modeling/spacenet/SKILL.md +122 -0
- package/skills/07_Computational_Modeling/svm/SKILL.md +120 -0
- package/skills/08_Computational_Neuroscience/brain_gnn/SKILL.md +183 -0
- package/skills/08_Computational_Neuroscience/dipy-tool/SKILL.md +239 -0
- package/skills/08_Computational_Neuroscience/dipy-tool/scripts/dti_metrics_reference.py +70 -0
- package/skills/08_Computational_Neuroscience/dipy-tool/scripts/load_and_mask_reference.py +76 -0
- package/skills/08_Computational_Neuroscience/dipy-tool/scripts/roi_stats_reference.py +59 -0
- package/skills/08_Computational_Neuroscience/fm_app/SKILL.md +195 -0
- package/skills/08_Computational_Neuroscience/neurostorm/SKILL.md +151 -0
- package/skills/13_Visualization/brain-visualization/SKILL.md +191 -0
- package/skills/13_Visualization/brain-visualization/scripts/connectome_reference.py +108 -0
- package/skills/13_Visualization/brain-visualization/scripts/freesurfer_ply_reference.py +54 -0
- package/skills/13_Visualization/brain-visualization/scripts/zalff_summary_reference.py +116 -0
- package/skills/13_Visualization/ethoclaw-paper-figure-layout/SKILL.md +78 -0
- package/skills/13_Visualization/ethoclaw-paper-figure-layout/assets/naturecomm_figures.tex +74 -0
- package/skills/13_Visualization/ethoclaw-paper-figure-layout/scripts/layout_results_foldered.py +579 -0
- package/skills/14_Writing/overleaf-skill/SKILL.md +184 -0
- package/skills/14_Writing/overleaf-skill/scripts/install.sh +30 -0
- package/skills/14_Writing/paper-writing/SKILL.md +146 -0
- package/skills/14_Writing/paper-writing/scripts/data_statement_templates.py +164 -0
- package/skills/14_Writing/paper-writing/scripts/figure_templates.py +315 -0
- package/skills/14_Writing/paper-writing/scripts/nature_figure_style.py +214 -0
- package/skills/14_Writing/paper-writing/scripts/section_phrasebank.py +246 -0
- package/skills/16_Animal_Behavior/deeplabcut/SKILL.md +154 -0
- package/skills/16_Animal_Behavior/deeplabcut/references/3d-pose.md +89 -0
- package/skills/16_Animal_Behavior/deeplabcut/references/maDLC.md +123 -0
- package/skills/16_Animal_Behavior/deeplabcut/references/modelzoo.md +98 -0
- package/skills/16_Animal_Behavior/deeplabcut/references/standard-pipeline.md +165 -0
- package/skills/16_Animal_Behavior/deeplabcut/references/utilities.md +146 -0
- package/skills/16_Animal_Behavior/ethoclaw-analysis-report/SKILL.md +274 -0
- package/skills/16_Animal_Behavior/ethoclaw-analysis-report/assets/report_template_en.html +112 -0
- package/skills/16_Animal_Behavior/ethoclaw-analysis-report/assets/report_template_en.md +21 -0
- package/skills/16_Animal_Behavior/ethoclaw-analysis-report/assets/section_templates/cluster-section.md +5 -0
- package/skills/16_Animal_Behavior/ethoclaw-analysis-report/assets/section_templates/heatmap-section.md +5 -0
- package/skills/16_Animal_Behavior/ethoclaw-analysis-report/assets/section_templates/integrated-interpretation.md +3 -0
- package/skills/16_Animal_Behavior/ethoclaw-analysis-report/assets/section_templates/overview.md +3 -0
- package/skills/16_Animal_Behavior/ethoclaw-analysis-report/assets/section_templates/project-summary.md +3 -0
- package/skills/16_Animal_Behavior/ethoclaw-analysis-report/assets/section_templates/radar-section.md +5 -0
- package/skills/16_Animal_Behavior/ethoclaw-analysis-report/assets/section_templates/raw-trajectory.md +3 -0
- package/skills/16_Animal_Behavior/ethoclaw-analysis-report/assets/section_templates/sample-check.md +3 -0
- package/skills/16_Animal_Behavior/ethoclaw-analysis-report/assets/section_templates/single-subject-section.md +3 -0
- package/skills/16_Animal_Behavior/ethoclaw-analysis-report/assets/section_templates/stats-section.md +5 -0
- package/skills/16_Animal_Behavior/ethoclaw-analysis-report/references/experiment-types/epm.md +52 -0
- package/skills/16_Animal_Behavior/ethoclaw-analysis-report/references/experiment-types/fst.md +37 -0
- package/skills/16_Animal_Behavior/ethoclaw-analysis-report/references/experiment-types/nor.md +39 -0
- package/skills/16_Animal_Behavior/ethoclaw-analysis-report/references/experiment-types/oft.md +43 -0
- package/skills/16_Animal_Behavior/ethoclaw-analysis-report/references/experiment-types/tcst.md +45 -0
- package/skills/16_Animal_Behavior/ethoclaw-analysis-report/references/experiment-types/tst.md +36 -0
- package/skills/16_Animal_Behavior/ethoclaw-analysis-report/references/input-types.md +59 -0
- package/skills/16_Animal_Behavior/ethoclaw-analysis-report/references/interpretation-guardrails.md +45 -0
- package/skills/16_Animal_Behavior/ethoclaw-analysis-report/references/metadata-schema.md +57 -0
- package/skills/16_Animal_Behavior/ethoclaw-analysis-report/references/report-sections.md +86 -0
- package/skills/16_Animal_Behavior/ethoclaw-analysis-report/references/section-selection-rules.md +169 -0
- package/skills/16_Animal_Behavior/ethoclaw-analysis-report/scripts/build_report_manifest.py +27 -0
- package/skills/16_Animal_Behavior/ethoclaw-analysis-report/scripts/render_report.py +34 -0
- package/skills/16_Animal_Behavior/ethoclaw-analysis-report/scripts/report_utils.py +1121 -0
- package/skills/16_Animal_Behavior/ethoclaw-animal-grounding/SKILL.md +390 -0
- package/skills/16_Animal_Behavior/ethoclaw-animal-grounding/reference_code.py +98 -0
- package/skills/16_Animal_Behavior/ethoclaw-animal-pose-estimation/SKILL.md +336 -0
- package/skills/16_Animal_Behavior/ethoclaw-kinematic-parameter-generator/README.md +21 -0
- package/skills/16_Animal_Behavior/ethoclaw-kinematic-parameter-generator/SKILL.md +41 -0
- package/skills/16_Animal_Behavior/ethoclaw-kinematic-parameter-generator/batch_kinematic_generator.py +663 -0
- package/skills/16_Animal_Behavior/ethoclaw-kinematic-parameter-generator/config.json +19 -0
- package/skills/16_Animal_Behavior/ethoclaw-kinematic-parameter-generator/generate_kinematic_parameter.py +401 -0
- package/skills/16_Animal_Behavior/ethoclaw-kinematic-parameter-generator/kinematic_generator.py +265 -0
- package/skills/16_Animal_Behavior/ethoclaw-multiparameter-clustermap-generate/SKILL.md +72 -0
- package/skills/16_Animal_Behavior/ethoclaw-multiparameter-clustermap-generate/references/config.example.toml +56 -0
- package/skills/16_Animal_Behavior/ethoclaw-multiparameter-clustermap-generate/scripts/cluster_all_params.py +232 -0
- package/skills/16_Animal_Behavior/ethoclaw-multiparameter-clustermap-generate/scripts/cluster_all_params_from_config.py +236 -0
- package/skills/16_Animal_Behavior/ethoclaw-multiparameter-radar-generate/SKILL.md +68 -0
- package/skills/16_Animal_Behavior/ethoclaw-multiparameter-radar-generate/references/notes.md +5 -0
- package/skills/16_Animal_Behavior/ethoclaw-multiparameter-radar-generate/scripts/plot_h5_radar.py +513 -0
- package/skills/16_Animal_Behavior/ethoclaw-multiparameter-violin-stats-generate/SKILL.md +52 -0
- package/skills/16_Animal_Behavior/ethoclaw-multiparameter-violin-stats-generate/config.toml +81 -0
- package/skills/16_Animal_Behavior/ethoclaw-multiparameter-violin-stats-generate/references/stats-rule.md +18 -0
- package/skills/16_Animal_Behavior/ethoclaw-multiparameter-violin-stats-generate/scripts/h5_inspect.py +79 -0
- package/skills/16_Animal_Behavior/ethoclaw-multiparameter-violin-stats-generate/scripts/h5_violin_batch.py +624 -0
- package/skills/16_Animal_Behavior/ethoclaw-multiparameter-violin-stats-generate/scripts/h5_violin_stats.py +438 -0
- package/skills/16_Animal_Behavior/ethoclaw-trajectory-velocity-heatmap-generate/SKILL.md +280 -0
- package/skills/16_Animal_Behavior/ethoclaw-trajectory-velocity-heatmap-generate/core_scripts/heatmap_trajectory.py +790 -0
- package/skills/16_Animal_Behavior/ethoclaw-trajectory-velocity-heatmap-generate/core_scripts/heatmap_velocity.py +855 -0
- package/skills/16_Animal_Behavior/ethoclaw-trajectory-velocity-heatmap-generate/reference_data/reference_2d.csv +101 -0
- package/skills/16_Animal_Behavior/ethoclaw-trajectory-velocity-heatmap-generate/reference_data/reference_2d.h5 +0 -0
- 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
|