@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,116 @@
|
|
|
1
|
+
"""Template: Ingest a new data source into the knowledge graph.
|
|
2
|
+
|
|
3
|
+
Usage:
|
|
4
|
+
python scripts/new_data_source_template.py --input data.tsv
|
|
5
|
+
|
|
6
|
+
Replace TODO sections with your source-specific logic.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from __future__ import annotations
|
|
10
|
+
|
|
11
|
+
import argparse
|
|
12
|
+
import logging
|
|
13
|
+
from pathlib import Path
|
|
14
|
+
|
|
15
|
+
# Adjust import path for your project structure
|
|
16
|
+
from core.knowledge_graph.src.schema import ConceptNode, Edge, DomainTag
|
|
17
|
+
from core.knowledge_graph.src.graph_manager import KnowledgeGraph
|
|
18
|
+
from core.knowledge_graph.src.storage import load_graph, save_graph
|
|
19
|
+
|
|
20
|
+
logger = logging.getLogger(__name__)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def parse_data(data_path: str) -> list[dict]:
|
|
24
|
+
"""TODO: Parse your source data file.
|
|
25
|
+
|
|
26
|
+
Returns list of dicts with at minimum:
|
|
27
|
+
- id: unique identifier
|
|
28
|
+
- name: preferred display name
|
|
29
|
+
- type: entity type (maps to DomainTag)
|
|
30
|
+
- parent_id: optional, for hierarchical edges
|
|
31
|
+
- synonyms: optional, list of alternate names
|
|
32
|
+
"""
|
|
33
|
+
records = []
|
|
34
|
+
# TODO: implement parsing logic
|
|
35
|
+
# Example TSV parsing:
|
|
36
|
+
# with open(data_path) as f:
|
|
37
|
+
# reader = csv.DictReader(f, delimiter='\t')
|
|
38
|
+
# for row in reader:
|
|
39
|
+
# records.append({
|
|
40
|
+
# "id": f"SRC:{row['id']}",
|
|
41
|
+
# "name": row["name"],
|
|
42
|
+
# "type": "disease",
|
|
43
|
+
# "parent_id": row.get("parent_id"),
|
|
44
|
+
# "synonyms": row.get("synonyms", "").split("|"),
|
|
45
|
+
# })
|
|
46
|
+
return records
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
def ingest_source(kg: KnowledgeGraph, data_path: str) -> dict:
|
|
50
|
+
"""Parse source data and add concepts + edges to graph.
|
|
51
|
+
|
|
52
|
+
Returns summary dict.
|
|
53
|
+
"""
|
|
54
|
+
records = parse_data(data_path)
|
|
55
|
+
concepts_added = 0
|
|
56
|
+
edges_added = 0
|
|
57
|
+
|
|
58
|
+
for rec in records:
|
|
59
|
+
# 1. Create ConceptNode
|
|
60
|
+
# TODO: map your entity types to DomainTag values
|
|
61
|
+
domain = DomainTag.DISEASE # adjust as needed
|
|
62
|
+
|
|
63
|
+
node = ConceptNode(
|
|
64
|
+
id=rec["id"],
|
|
65
|
+
preferred_name=rec["name"],
|
|
66
|
+
domain_tags=[domain.value],
|
|
67
|
+
source_vocab="your_source_name",
|
|
68
|
+
aliases=rec.get("synonyms", []),
|
|
69
|
+
)
|
|
70
|
+
kg.add_concept(node)
|
|
71
|
+
concepts_added += 1
|
|
72
|
+
|
|
73
|
+
# 2. Create hierarchical edge (if applicable)
|
|
74
|
+
parent_id = rec.get("parent_id")
|
|
75
|
+
if parent_id:
|
|
76
|
+
edge = Edge(
|
|
77
|
+
source_id=rec["id"],
|
|
78
|
+
target_id=parent_id,
|
|
79
|
+
relation_type="is_a", # or "part_of" for anatomy
|
|
80
|
+
source="your_source_name",
|
|
81
|
+
)
|
|
82
|
+
before = kg.G.number_of_edges()
|
|
83
|
+
kg.add_edge(edge)
|
|
84
|
+
if kg.G.number_of_edges() > before:
|
|
85
|
+
edges_added += 1
|
|
86
|
+
|
|
87
|
+
summary = {
|
|
88
|
+
"concepts_added": concepts_added,
|
|
89
|
+
"edges_added": edges_added,
|
|
90
|
+
"total_records": len(records),
|
|
91
|
+
}
|
|
92
|
+
logger.info(f"ingestion complete: {summary}")
|
|
93
|
+
return summary
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
def main():
|
|
97
|
+
parser = argparse.ArgumentParser(description="Ingest data from a new source")
|
|
98
|
+
parser.add_argument("--input", required=True, help="Path to source data file")
|
|
99
|
+
parser.add_argument("--graph", default=None, help="Path to existing graph JSON")
|
|
100
|
+
parser.add_argument("--output", default=None, help="Output graph path")
|
|
101
|
+
args = parser.parse_args()
|
|
102
|
+
|
|
103
|
+
logging.basicConfig(level=logging.INFO, format="%(asctime)s %(message)s")
|
|
104
|
+
|
|
105
|
+
graph_path = Path(args.graph) if args.graph else Path("core/knowledge_graph/data/knowledge_graph.json")
|
|
106
|
+
kg = load_graph(graph_path)
|
|
107
|
+
|
|
108
|
+
summary = ingest_source(kg, args.input)
|
|
109
|
+
|
|
110
|
+
out_path = Path(args.output) if args.output else graph_path
|
|
111
|
+
save_graph(kg, out_path)
|
|
112
|
+
logger.info(f"saved graph to {out_path}")
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
if __name__ == "__main__":
|
|
116
|
+
main()
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Knowledge Graph Builder - Python Dependencies
|
|
2
|
+
|
|
3
|
+
# Core
|
|
4
|
+
networkx>=3.0
|
|
5
|
+
requests>=2.31.0
|
|
6
|
+
|
|
7
|
+
# LLM extraction
|
|
8
|
+
openai>=1.0.0
|
|
9
|
+
|
|
10
|
+
# PubMed (optional, requests fallback available)
|
|
11
|
+
biopython>=1.81
|
|
12
|
+
|
|
13
|
+
# Atlas generation (optional)
|
|
14
|
+
nilearn>=0.10.0
|
|
15
|
+
nibabel>=5.0.0
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: method-design
|
|
3
|
+
description: "Use this skill whenever the user wants to formalize a network architecture and derive theoretical components from a research idea. Triggers include: 'method design', 'design method', 'network architecture', 'formula derivation', 'method-design', 'theoretical framework', 'derive equations', or any request to transform IDEA.md into a detailed METHOD.md. This skill is the **mandatory interface-layer method formalizer** in NeuroClaw: it reads IDEA.md, designs concrete network structures (layers, modules, connections), performs mathematical derivations (equations, loss functions, proofs), and always outputs a structured METHOD.md."
|
|
4
|
+
license: MIT License (NeuroClaw custom skill – freely modifiable within the project)
|
|
5
|
+
layer: interface
|
|
6
|
+
skill_type: workflow
|
|
7
|
+
dependencies: []
|
|
8
|
+
---
|
|
9
|
+
# Method Design
|
|
10
|
+
|
|
11
|
+
## Overview
|
|
12
|
+
This skill implements the **Framework Formalization & Theoretical Derivation** process for the NeuroClaw method-design phase.
|
|
13
|
+
|
|
14
|
+
It acts as the Method Architect within the multi-agent framework:
|
|
15
|
+
- Reads the latest **IDEA.md** from the workspace.
|
|
16
|
+
- Designs the specific neural network structure (e.g., CNN backbone, attention modules, MRI-specific layers) tailored to the neuroscience task.
|
|
17
|
+
- Derives all necessary formulas (loss functions, gradients, convergence proofs, etc.) using symbolic or step-by-step reasoning.
|
|
18
|
+
- Produces a clean, publication-ready **METHOD.md** with sections: Architecture Diagram (text description), Detailed Layers, Mathematical Formulation, Implementation Notes, and Pseudocode.
|
|
19
|
+
|
|
20
|
+
If any part is ambiguous, it asks the user for clarification before proceeding.
|
|
21
|
+
**Research use only** — the output is a mathematically rigorous METHOD.md ready for experiment-controller and paper-writing.
|
|
22
|
+
|
|
23
|
+
## Quick Reference (Method Flow)
|
|
24
|
+
|
|
25
|
+
| Step | Description | Output File |
|
|
26
|
+
|------|--------------------------------------|------------------------|
|
|
27
|
+
| 1. Read & Parse | Load and analyze IDEA.md | 01_idea_summary.md |
|
|
28
|
+
| 2. Architecture Design | Define network layers & modules | 02_architecture.md |
|
|
29
|
+
| 3. Formula Derivation | Derive equations & proofs | 03_formulas.md |
|
|
30
|
+
| 4. Pseudocode & Notes | Generate implementation details | 04_pseudocode.md |
|
|
31
|
+
| 5. Finalize | Compile and polish | METHOD.md |
|
|
32
|
+
|
|
33
|
+
## Installation
|
|
34
|
+
```bash
|
|
35
|
+
# Place files in: skills/method-design/
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Important Notes & Limitations
|
|
39
|
+
- Always starts from the latest IDEA.md; stops and prompts if missing.
|
|
40
|
+
- Every step saved as numbered .md files for transparency and resumption.
|
|
41
|
+
- Uses symbolic derivation (no hallucinated math); can call claw-shell or code tools internally for verification.
|
|
42
|
+
- Final output always saved as `METHOD.md` in workspace root.
|
|
43
|
+
- Diagrams are described in text (PlantUML/Mermaid ready); no image generation here.
|
|
44
|
+
|
|
45
|
+
## When to Call This Skill
|
|
46
|
+
- Immediately after research-idea skill completes IDEA.md
|
|
47
|
+
- When the user wants to specify network details or mathematical foundation
|
|
48
|
+
- Before experiment-controller or paper-writing
|
|
49
|
+
|
|
50
|
+
## Complementary / Related Skills
|
|
51
|
+
- `research-idea` → provides IDEA.md (input)
|
|
52
|
+
- `experiment-controller` → consumes METHOD.md
|
|
53
|
+
- `paper-writing` → consumes METHOD.md
|
|
54
|
+
|
|
55
|
+
## Reference
|
|
56
|
+
NeuroClaw architecture (section 1.5 method-design skill).
|
|
57
|
+
Flow: IDEA.md parsing → architecture design → equation derivation → pseudocode → METHOD.md
|
|
58
|
+
|
|
59
|
+
Created At: 2026-03-24 00:00 HKT
|
|
60
|
+
Last Updated At: 2026-03-26 00:14 HKT
|
|
61
|
+
Author: chengwang96
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "multi-search-engine"
|
|
3
|
+
description: "Multi search engine integration with 17 engines (8 CN + 9 Global). Supports advanced search operators, time filters, site search, privacy engines, and WolframAlpha knowledge queries. No API keys required."
|
|
4
|
+
layer: base
|
|
5
|
+
skill_type: tool
|
|
6
|
+
dependencies: []
|
|
7
|
+
---
|
|
8
|
+
# Multi Search Engine v2.0.1
|
|
9
|
+
|
|
10
|
+
Integration of 17 search engines for web crawling without API keys.
|
|
11
|
+
|
|
12
|
+
## Search Engines
|
|
13
|
+
|
|
14
|
+
### Domestic (8)
|
|
15
|
+
- **Baidu**: `https://www.baidu.com/s?wd={keyword}`
|
|
16
|
+
- **Bing CN**: `https://cn.bing.com/search?q={keyword}&ensearch=0`
|
|
17
|
+
- **Bing INT**: `https://cn.bing.com/search?q={keyword}&ensearch=1`
|
|
18
|
+
- **360**: `https://www.so.com/s?q={keyword}`
|
|
19
|
+
- **Sogou**: `https://sogou.com/web?query={keyword}`
|
|
20
|
+
- **WeChat**: `https://wx.sogou.com/weixin?type=2&query={keyword}`
|
|
21
|
+
- **Toutiao**: `https://so.toutiao.com/search?keyword={keyword}`
|
|
22
|
+
- **Jisilu**: `https://www.jisilu.cn/explore/?keyword={keyword}`
|
|
23
|
+
|
|
24
|
+
### International (9)
|
|
25
|
+
- **Google**: `https://www.google.com/search?q={keyword}`
|
|
26
|
+
- **Google HK**: `https://www.google.com.hk/search?q={keyword}`
|
|
27
|
+
- **DuckDuckGo**: `https://duckduckgo.com/html/?q={keyword}`
|
|
28
|
+
- **Yahoo**: `https://search.yahoo.com/search?p={keyword}`
|
|
29
|
+
- **Startpage**: `https://www.startpage.com/sp/search?query={keyword}`
|
|
30
|
+
- **Brave**: `https://search.brave.com/search?q={keyword}`
|
|
31
|
+
- **Ecosia**: `https://www.ecosia.org/search?q={keyword}`
|
|
32
|
+
- **Qwant**: `https://www.qwant.com/?q={keyword}`
|
|
33
|
+
- **WolframAlpha**: `https://www.wolframalpha.com/input?i={keyword}`
|
|
34
|
+
|
|
35
|
+
## Quick Examples
|
|
36
|
+
|
|
37
|
+
```javascript
|
|
38
|
+
// Basic search
|
|
39
|
+
web_fetch({"url": "https://www.google.com/search?q=python+tutorial"})
|
|
40
|
+
|
|
41
|
+
// Site-specific
|
|
42
|
+
web_fetch({"url": "https://www.google.com/search?q=site:github.com+react"})
|
|
43
|
+
|
|
44
|
+
// File type
|
|
45
|
+
web_fetch({"url": "https://www.google.com/search?q=machine+learning+filetype:pdf"})
|
|
46
|
+
|
|
47
|
+
// Time filter (past week)
|
|
48
|
+
web_fetch({"url": "https://www.google.com/search?q=ai+news&tbs=qdr:w"})
|
|
49
|
+
|
|
50
|
+
// Privacy search
|
|
51
|
+
web_fetch({"url": "https://duckduckgo.com/html/?q=privacy+tools"})
|
|
52
|
+
|
|
53
|
+
// DuckDuckGo Bangs
|
|
54
|
+
web_fetch({"url": "https://duckduckgo.com/html/?q=!gh+tensorflow"})
|
|
55
|
+
|
|
56
|
+
// Knowledge calculation
|
|
57
|
+
web_fetch({"url": "https://www.wolframalpha.com/input?i=100+USD+to+CNY"})
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Advanced Operators
|
|
61
|
+
|
|
62
|
+
| Operator | Example | Description |
|
|
63
|
+
|----------|--------------------------|----------------------|
|
|
64
|
+
| `site:` | `site:github.com python` | Search within site |
|
|
65
|
+
| `filetype:` | `filetype:pdf report` | Specific file type |
|
|
66
|
+
| `""` | `"machine learning"` | Exact match |
|
|
67
|
+
| `-` | `python -snake` | Exclude term |
|
|
68
|
+
| `OR` | `cat OR dog` | Either term |
|
|
69
|
+
|
|
70
|
+
## Time Filters
|
|
71
|
+
|
|
72
|
+
| Parameter | Description |
|
|
73
|
+
|-------------|-------------|
|
|
74
|
+
| `tbs=qdr:h` | Past hour |
|
|
75
|
+
| `tbs=qdr:d` | Past day |
|
|
76
|
+
| `tbs=qdr:w` | Past week |
|
|
77
|
+
| `tbs=qdr:m` | Past month |
|
|
78
|
+
| `tbs=qdr:y` | Past year |
|
|
79
|
+
|
|
80
|
+
## Privacy Engines
|
|
81
|
+
- **DuckDuckGo**: No tracking
|
|
82
|
+
- **Startpage**: Google results + privacy
|
|
83
|
+
- **Brave**: Independent index
|
|
84
|
+
- **Qwant**: EU GDPR compliant
|
|
85
|
+
|
|
86
|
+
## Bangs Shortcuts (DuckDuckGo)
|
|
87
|
+
|
|
88
|
+
| Bang | Destination |
|
|
89
|
+
|------|-----------------|
|
|
90
|
+
| `!g` | Google |
|
|
91
|
+
| `!gh`| GitHub |
|
|
92
|
+
| `!so`| Stack Overflow |
|
|
93
|
+
| `!w` | Wikipedia |
|
|
94
|
+
| `!yt`| YouTube |
|
|
95
|
+
|
|
96
|
+
## WolframAlpha Queries
|
|
97
|
+
- Math: `integrate x^2 dx`
|
|
98
|
+
- Conversion: `100 USD to CNY`
|
|
99
|
+
- Stocks: `AAPL stock`
|
|
100
|
+
- Weather: `weather in Beijing`
|
|
101
|
+
|
|
102
|
+
## Documentation
|
|
103
|
+
- `references/advanced-search.md` - Domestic search guide
|
|
104
|
+
- `references/international-search.md` - International search guide
|
|
105
|
+
- `CHANGELOG.md` - Version history
|
|
106
|
+
|
|
107
|
+
## License
|
|
108
|
+
MIT
|
|
109
|
+
|
|
110
|
+
## Complementary / Related Skills
|
|
111
|
+
- `academic-research-hub` → scholarly paper search
|
|
112
|
+
|
|
113
|
+
## Reference
|
|
114
|
+
Core multi-engine search integration for NeuroClaw (v2.0.1).
|
|
115
|
+
Used as the primary literature & web search backend across all interface-layer skills.
|
|
116
|
+
|
|
117
|
+
Created At: 2026-03-24 00:00 HKT
|
|
118
|
+
Last Updated At: 2026-03-26 00:18 HKT
|
|
119
|
+
Author: chengwang96
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: research-idea
|
|
3
|
+
description: "Use this skill whenever the user wants to generate or refine a research idea through literature search and discussion. Triggers include: 'research idea', 'brainstorm idea', 'generate idea', 'research-idea', 'idea generation', 'discuss new direction', or any request to explore literature and output to IDEA.md. This skill is the **mandatory interface-layer idea generator** in NeuroClaw: it calls networking search skills to retrieve recent papers, identifies gaps/trends, then iteratively discusses with the user to finalize a structured idea, always saving the result as IDEA.md."
|
|
4
|
+
license: MIT License (NeuroClaw custom skill – freely modifiable within the project)
|
|
5
|
+
layer: interface
|
|
6
|
+
skill_type: workflow
|
|
7
|
+
dependencies:
|
|
8
|
+
- multi-search-engine
|
|
9
|
+
- academic-research-hub
|
|
10
|
+
---
|
|
11
|
+
# Research Idea
|
|
12
|
+
|
|
13
|
+
## Overview
|
|
14
|
+
This skill implements the **Literature Search + User Discussion** process for NeuroClaw research-idea phase.
|
|
15
|
+
|
|
16
|
+
It acts as the Idea Generator within the multi-agent framework:
|
|
17
|
+
- Automatically calls search skills (`multi-search-engine`, `academic-research-hub`, etc.) for the latest papers (prefer last 3–6 months).
|
|
18
|
+
- Summarizes key trends, methods, and open gaps.
|
|
19
|
+
- Engages in step-by-step discussion with the user to refine novelty and feasibility.
|
|
20
|
+
- Saves the final structured idea as **IDEA.md** (Background, Gap, Proposed Idea, Methods Outline, Impact).
|
|
21
|
+
|
|
22
|
+
If no topic is provided, it first asks the user for a domain (e.g., MRI segmentation, world models in neuroscience).
|
|
23
|
+
|
|
24
|
+
**Research use only** — the output is a concise, actionable IDEA.md ready for method-design.
|
|
25
|
+
|
|
26
|
+
## Quick Reference (Idea Flow)
|
|
27
|
+
|
|
28
|
+
| Step | Description | Output File |
|
|
29
|
+
|------|------------------------------|----------------------|
|
|
30
|
+
| 1. Search | Call search skills for recent literature | temp_search.md |
|
|
31
|
+
| 2. Analysis | Summarize trends & gaps | 01_gap_analysis.md |
|
|
32
|
+
| 3. Draft | Propose initial idea | 02_preliminary.md |
|
|
33
|
+
| 4. Discuss | Iterate with user feedback | 03_discussion.md |
|
|
34
|
+
| 5. Finalize | Polish and save | IDEA.md |
|
|
35
|
+
|
|
36
|
+
## Installation
|
|
37
|
+
```bash
|
|
38
|
+
# Place files in: skills/research-idea/
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Important Notes & Limitations
|
|
42
|
+
- Always uses external search skills (no LLM hallucination for literature).
|
|
43
|
+
- Every step saved as numbered .md files for transparency/resume.
|
|
44
|
+
- Requires user confirmation at discussion steps.
|
|
45
|
+
- Final output always saved as `IDEA.md` in workspace root.
|
|
46
|
+
|
|
47
|
+
## When to Call This Skill
|
|
48
|
+
- Start of any new project
|
|
49
|
+
- User wants to brainstorm or pivot research direction
|
|
50
|
+
- Before method-design or paper-writing
|
|
51
|
+
|
|
52
|
+
## Complementary / Related Skills
|
|
53
|
+
- `multi-search-engine` → core web & general literature retrieval
|
|
54
|
+
- `academic-research-hub` → arXiv, PubMed, Semantic Scholar paper search
|
|
55
|
+
- `method-design` → consumes IDEA.md
|
|
56
|
+
- `paper-writing` → consumes IDEA.md
|
|
57
|
+
- `experiment-controller` → follows finalized idea
|
|
58
|
+
|
|
59
|
+
## Reference
|
|
60
|
+
NeuroClaw architecture (section 1.4 research survey skill).
|
|
61
|
+
Flow: search → gap analysis → proposal → user discussion → IDEA.md
|
|
62
|
+
|
|
63
|
+
Created At: 2026-03-24 20:00 HKT
|
|
64
|
+
Last Updated At: 2026-03-26 00:28 HKT
|
|
65
|
+
Author: chengwang96
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: eeg-skill
|
|
3
|
+
description: "Use this skill whenever the user wants to load, preprocess, epoch, filter, or extract features from EEG data (resting-state, task-based, BCI, clinical, motor imagery, emotion, epilepsy, fatigue, etc.). Triggers include: 'eeg', 'EEG preprocessing', 'EEG feature extraction', 'band power', 'downsample to frequency bands', 'motor imagery BCI', 'emotion EEG', 'epilepsy detection', or any request involving .set/.edf/.bdf/.fif/.bids files."
|
|
4
|
+
license: MIT License (NeuroClaw custom skill – freely modifiable within the project)
|
|
5
|
+
layer: subagent
|
|
6
|
+
skill_type: modality
|
|
7
|
+
dependencies:
|
|
8
|
+
- mne-eeg-tool
|
|
9
|
+
- claw-shell
|
|
10
|
+
---
|
|
11
|
+
# EEG Skill (Modality Layer)
|
|
12
|
+
|
|
13
|
+
## Overview
|
|
14
|
+
|
|
15
|
+
`eeg-skill` is the NeuroClaw **modality-layer** interface skill responsible for all EEG data processing tasks.
|
|
16
|
+
It strictly follows the NeuroClaw hierarchical design principles:
|
|
17
|
+
|
|
18
|
+
- This skill **only describes WHAT needs to be done** and **which tool skill to delegate to**.
|
|
19
|
+
- It contains **no full implementation code**.
|
|
20
|
+
- All concrete execution (MNE-Python calls, torchaudio, scipy, file I/O, etc.) is delegated to the dedicated base/tool skill `mne-eeg-tool`.
|
|
21
|
+
- Waveform-to-spectrogram conversion uses `torchaudio.transforms.MelSpectrogram`.
|
|
22
|
+
- Frequency-band energy extraction uses continuous wavelet transform (`scipy.signal.cwt` with `morlet2` wavelet).
|
|
23
|
+
|
|
24
|
+
**Core workflow (never bypassed):**
|
|
25
|
+
|
|
26
|
+
1. Identify the user-provided EEG files (BIDS, .set, .edf, .bdf, .fif, etc.).
|
|
27
|
+
2. Generate a **numbered execution plan** that clearly states WHAT needs to be done and which tool skill will handle each step.
|
|
28
|
+
3. Present the full plan, estimated runtime, resource requirements, and risks to the user and wait for explicit confirmation (“YES” / “execute” / “proceed”).
|
|
29
|
+
4. On confirmation, delegate every step to `mne-eeg-tool` via `claw-shell`.
|
|
30
|
+
5. After execution, save all outputs in a clean directory structure (`eeg_output/`).
|
|
31
|
+
|
|
32
|
+
**Research use only** — outputs are for scientific analysis only.
|
|
33
|
+
|
|
34
|
+
## Quick Reference (Common EEG Tasks – Updated 2026-03-25)
|
|
35
|
+
|
|
36
|
+
| Task | What needs to be done | Delegate to which tool skill | Expected output |
|
|
37
|
+
|-------------------------------------------|----------------------------------------------------------------------------|-----------------------------------------------|------------------------------------------|
|
|
38
|
+
| Load & basic validation | Read raw EEG + channel locations + events + validation | `claw-shell` (via `mne-eeg-tool`) | Validation report + raw object |
|
|
39
|
+
| Bad-channel detection & interpolation | Auto-detect + interpolate noisy channels | `claw-shell` (via `mne-eeg-tool`) | Cleaned raw data |
|
|
40
|
+
| Downsampling + filtering | Resample, high-pass, notch, bandpass filtering | `claw-shell` (via `mne-eeg-tool`) | Filtered .fif files |
|
|
41
|
+
| Artifact removal | ICA + AutoReject + EOG/ECG regression | `claw-shell` (via `mne-eeg-tool`) | Cleaned data |
|
|
42
|
+
| Continuous data cleaning | Resting-state pipeline (no events) | `claw-shell` (via `mne-eeg-tool`) | Cleaned continuous data |
|
|
43
|
+
| Re-referencing & epoching | Average reference (CAR) / REST + epoching + baseline correction | `claw-shell` (via `mne-eeg-tool`) | Epoched .fif files |
|
|
44
|
+
| Waveform to Mel-Spectrogram | Convert raw waveform to Mel spectrogram using torchaudio | `claw-shell` (via `mne-eeg-tool`) | Mel-spectrogram tensors (.pt) |
|
|
45
|
+
| Frequency-band energy extraction | Extract δ/θ/α/β/γ band energy using CWT with morlet2 wavelet | `claw-shell` (via `mne-eeg-tool`) | Per-band power matrices (CSV / .npy) |
|
|
46
|
+
| Feature extraction (core) | Band power, CSP, Hjorth, sample entropy | `claw-shell` (via `mne-eeg-tool`) | Feature matrices (CSV / .npy / .npz) |
|
|
47
|
+
| Advanced features | Functional connectivity, ERP peaks/latency/AUC, frontal alpha asymmetry, microstates | `claw-shell` (via `mne-eeg-tool`) | Connectivity matrices, ERP CSV, asymmetry .npy, microstates .fif |
|
|
48
|
+
| Full end-to-end pipeline | Any combination of the above for BCI, emotion, epilepsy, fatigue, etc. | `claw-shell` + `dependency-planner` | Complete processed dataset + QC report |
|
|
49
|
+
|
|
50
|
+
## Installation (Handled by dependency-planner)
|
|
51
|
+
|
|
52
|
+
No manual installation required.
|
|
53
|
+
When first used, `eeg-skill` automatically calls `dependency-planner` to create the isolated `neuroclaw-eeg` conda environment containing MNE-Python, torchaudio, scipy, and all required packages.
|
|
54
|
+
|
|
55
|
+
## NeuroClaw recommended wrapper script
|
|
56
|
+
|
|
57
|
+
```python
|
|
58
|
+
# Example snippets (for reference in mne-eeg-tool implementation)
|
|
59
|
+
|
|
60
|
+
# 1. Waveform to Mel-Spectrogram
|
|
61
|
+
import torch
|
|
62
|
+
import torchaudio.transforms as T
|
|
63
|
+
|
|
64
|
+
mel_spec = T.MelSpectrogram(
|
|
65
|
+
sample_rate=256, # Adjust according to your EEG sampling rate
|
|
66
|
+
n_fft=1024,
|
|
67
|
+
hop_length=256,
|
|
68
|
+
n_mels=128,
|
|
69
|
+
f_min=0.5,
|
|
70
|
+
f_max=60.0 # Common EEG frequency range
|
|
71
|
+
)
|
|
72
|
+
spectrogram = mel_spec(waveform) # waveform shape: (channels, time)
|
|
73
|
+
|
|
74
|
+
# 2. Frequency-band energy extraction using CWT + morlet2
|
|
75
|
+
import numpy as np
|
|
76
|
+
from scipy.signal import cwt, morlet2
|
|
77
|
+
|
|
78
|
+
def extract_band_power(signal, fs=256):
|
|
79
|
+
widths = np.arange(1, 128) # Adjust according to frequency range
|
|
80
|
+
cwt_matrix = cwt(signal, morlet2, widths)
|
|
81
|
+
|
|
82
|
+
# Example: extract delta (0.5-4 Hz), theta (4-8 Hz), alpha (8-13 Hz), beta (13-30 Hz), gamma (30-60 Hz)
|
|
83
|
+
delta_power = np.mean(np.abs(cwt_matrix[low_idx:high_idx])**2, axis=0)
|
|
84
|
+
# ... similar processing for other bands
|
|
85
|
+
return band_powers
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Important Notes & Limitations
|
|
89
|
+
|
|
90
|
+
- This SKILL.md contains **only high-level task descriptions and delegation instructions**.
|
|
91
|
+
- Waveform-to-spectrogram conversion is handled by `torchaudio.transforms.MelSpectrogram`.
|
|
92
|
+
- Frequency-band energy extraction is performed via continuous wavelet transform (`scipy.signal.cwt` + `morlet2` wavelet).
|
|
93
|
+
- Long-running operations (ICA on long recordings, CWT on high-density data, connectivity matrices, microstate analysis) are automatically routed to background mode in the `claw` tmux session.
|
|
94
|
+
- Execution begins **only after explicit user confirmation** of the full numbered plan.
|
|
95
|
+
- All outputs are saved in `./eeg_output/` with clear subfolders (raw/, filtered/, epoched/, features/, spectrograms/, etc.).
|
|
96
|
+
|
|
97
|
+
## When to Call This Skill
|
|
98
|
+
|
|
99
|
+
- The user provides raw or partially processed EEG data and requests preprocessing, Mel-spectrogram conversion, frequency-band energy extraction, feature engineering, or a full pipeline.
|
|
100
|
+
- After `research-idea` or `method-design` when the experiment involves EEG data.
|
|
101
|
+
|
|
102
|
+
## Post-Execution Verification (Harness Integration)
|
|
103
|
+
|
|
104
|
+
After EEG processing completes, this skill **automatically invokes harness-core's VerificationRunner** to validate preprocessed data quality:
|
|
105
|
+
|
|
106
|
+
**Integrated verification checks**:
|
|
107
|
+
|
|
108
|
+
```python
|
|
109
|
+
from skills.harness_core import VerificationRunner, AuditLogger
|
|
110
|
+
import numpy as np
|
|
111
|
+
import mne
|
|
112
|
+
|
|
113
|
+
verifier = VerificationRunner(task_type="eeg_preprocessing")
|
|
114
|
+
|
|
115
|
+
# 1. EEG data file exists and is readable
|
|
116
|
+
verifier.add_check("eeg_file_integrity",
|
|
117
|
+
checker=lambda: verify_eeg_file_readable(output_dir),
|
|
118
|
+
severity="error"
|
|
119
|
+
)
|
|
120
|
+
|
|
121
|
+
# 2. Channel count matches expected
|
|
122
|
+
verifier.add_check("channel_count",
|
|
123
|
+
checker=lambda: verify_expected_channels(output_dir, expected_count=64),
|
|
124
|
+
severity="warning"
|
|
125
|
+
)
|
|
126
|
+
|
|
127
|
+
# 3. No excessive bad segments (after artifact removal)
|
|
128
|
+
verifier.add_check("artifact_removal_success",
|
|
129
|
+
checker=lambda: verify_bad_segments_removed(output_dir, max_pct=5),
|
|
130
|
+
severity="warning"
|
|
131
|
+
)
|
|
132
|
+
|
|
133
|
+
# 4. Data range plausible (not clipped or saturated)
|
|
134
|
+
verifier.add_check("data_range_plausible",
|
|
135
|
+
checker=lambda: verify_data_range(output_dir, min_range=-500, max_range=500),
|
|
136
|
+
severity="error"
|
|
137
|
+
)
|
|
138
|
+
|
|
139
|
+
# 5. No NaN/Inf values in preprocessed data
|
|
140
|
+
verifier.add_check("no_nan_inf",
|
|
141
|
+
checker=lambda: verify_no_nan_inf(output_dir),
|
|
142
|
+
severity="error"
|
|
143
|
+
)
|
|
144
|
+
|
|
145
|
+
# 6. Frequency spectrum reasonable (no DC offset, reasonable content)
|
|
146
|
+
verifier.add_check("frequency_spectrum",
|
|
147
|
+
checker=lambda: verify_frequency_spectrum(output_dir),
|
|
148
|
+
severity="warning"
|
|
149
|
+
)
|
|
150
|
+
|
|
151
|
+
# 7. Epoching statistics (if applicable)
|
|
152
|
+
verifier.add_check("epoch_statistics",
|
|
153
|
+
checker=lambda: verify_epoch_count_and_length(output_dir),
|
|
154
|
+
severity="warning"
|
|
155
|
+
)
|
|
156
|
+
|
|
157
|
+
# 8. Feature extraction output dimensions
|
|
158
|
+
verifier.add_check("feature_matrix_shape",
|
|
159
|
+
checker=lambda: verify_feature_matrix_shape(output_dir),
|
|
160
|
+
severity="warning"
|
|
161
|
+
)
|
|
162
|
+
|
|
163
|
+
report = verifier.run(output_dir)
|
|
164
|
+
|
|
165
|
+
# Log verification results
|
|
166
|
+
logger = AuditLogger(log_file=f"{output_dir}/eeg_verification.jsonl")
|
|
167
|
+
logger.log_validation(
|
|
168
|
+
task_name="eeg_preprocessing",
|
|
169
|
+
checks_passed=len([r for r in report.results if r.passed]),
|
|
170
|
+
checks_failed=len([r for r in report.results if not r.passed]),
|
|
171
|
+
warnings=len([r for r in report.results if r.severity == "warning" and not r.passed]),
|
|
172
|
+
report_summary=report.to_dict()
|
|
173
|
+
)
|
|
174
|
+
|
|
175
|
+
if report.failed:
|
|
176
|
+
raise ValueError(f"EEG preprocessing verification failed: {report.summary}")
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
**Output files generated**:
|
|
180
|
+
- `{output_dir}/eeg_verification.jsonl` — structured audit log
|
|
181
|
+
- `{output_dir}/.eeg_verification_timestamp` — completion marker
|
|
182
|
+
|
|
183
|
+
## Complementary / Related Skills
|
|
184
|
+
|
|
185
|
+
- `dependency-planner` + `conda-env-manager` → environment and package installation (MNE-Python + torchaudio + scipy)
|
|
186
|
+
- `mne-eeg-tool` → base/tool layer that contains all specific implementation code
|
|
187
|
+
- `harness-core` → automated verification and audit logging
|
|
188
|
+
|
|
189
|
+
## Reference
|
|
190
|
+
|
|
191
|
+
Aligned with NeuroClaw modality-skill pattern (see `freesurfer-tool`, `wmh-segmentation`, etc.).
|
|
192
|
+
Core libraries: MNE-Python (main), `torchaudio.transforms.MelSpectrogram` (waveform to spectrogram), `scipy.signal.cwt` + `morlet2` (frequency band energy extraction).
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
Created At: 2026-03-25 16:00 HKT
|
|
196
|
+
Last Updated At: 2026-04-05 02:01 HKT
|
|
197
|
+
Author: chengwang96
|