@brainpilot/skills 0.0.6
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/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +28 -0
- package/dist/index.js.map +1 -0
- package/package.json +35 -0
- package/skills/01_Meta-Skills/contribute-skill/SKILL.md +277 -0
- package/skills/01_Meta-Skills/contribute-skills-via-pr/SKILL.md +163 -0
- package/skills/01_Meta-Skills/paper-to-skill/SKILL.md +435 -0
- package/skills/01_Meta-Skills/paper-to-skill/references/extraction-guide.md +286 -0
- package/skills/01_Meta-Skills/paper-to-skill/references/skill-template.md +250 -0
- package/skills/01_Meta-Skills/repo-to-skill/SKILL.md +289 -0
- package/skills/01_Meta-Skills/share-case/SKILL.md +253 -0
- package/skills/01_Meta-Skills/share-usage/README.md +63 -0
- package/skills/01_Meta-Skills/share-usage/SKILL.md +395 -0
- package/skills/01_Meta-Skills/verify-skill/SKILL.md +331 -0
- package/skills/02_Cross-Domain_Foundation/cogsci-power-analysis/SKILL.md +194 -0
- package/skills/02_Cross-Domain_Foundation/cogsci-power-analysis/references/effect-sizes.md +352 -0
- package/skills/02_Cross-Domain_Foundation/cogsci-power-analysis/references/sample-size-guide.md +407 -0
- package/skills/02_Cross-Domain_Foundation/cogsci-statistics/SKILL.md +361 -0
- package/skills/02_Cross-Domain_Foundation/cogsci-statistics/references/common-analyses.md +517 -0
- package/skills/02_Cross-Domain_Foundation/cogsci-visualization/SKILL.md +292 -0
- package/skills/02_Cross-Domain_Foundation/cogsci-visualization/references/plot-recipes.md +709 -0
- package/skills/02_Cross-Domain_Foundation/research-literacy/SKILL.md +286 -0
- package/skills/02_Cross-Domain_Foundation/research-literacy/references/common-assumptions.md +320 -0
- package/skills/02_Cross-Domain_Foundation/research-literacy/references/planning-template.md +143 -0
- package/skills/03_Cognitive_Psychology/alternative-uses-task-designer/SKILL.md +197 -0
- package/skills/03_Cognitive_Psychology/alternative-uses-task-designer/references/instruction-templates.md +60 -0
- package/skills/03_Cognitive_Psychology/cognitive-paradigm-design/SKILL.md +246 -0
- package/skills/03_Cognitive_Psychology/cognitive-paradigm-design/references/classic-paradigms.md +435 -0
- package/skills/03_Cognitive_Psychology/cognitive-paradigm-design/references/design-principles.md +256 -0
- package/skills/03_Cognitive_Psychology/creativity-self-efficacy-mediation/SKILL.md +270 -0
- package/skills/03_Cognitive_Psychology/creativity-self-efficacy-mediation/references/lavaan-templates.md +172 -0
- package/skills/03_Cognitive_Psychology/divergent-thinking-scoring/SKILL.md +238 -0
- package/skills/03_Cognitive_Psychology/divergent-thinking-scoring/references/scoring-rubric.md +143 -0
- package/skills/03_Cognitive_Psychology/drift-diffusion-model/SKILL.md +203 -0
- package/skills/03_Cognitive_Psychology/drift-diffusion-model/references/fitting-guide.md +571 -0
- package/skills/03_Cognitive_Psychology/drift-diffusion-model/references/model-variants.md +427 -0
- package/skills/03_Cognitive_Psychology/evidence-accumulation-selector/SKILL.md +310 -0
- package/skills/03_Cognitive_Psychology/evidence-accumulation-selector/references/ez-diffusion-formulas.md +137 -0
- package/skills/03_Cognitive_Psychology/signal-detection-analysis/SKILL.md +300 -0
- package/skills/03_Cognitive_Psychology/signal-detection-analysis/references/application-guide.md +278 -0
- package/skills/03_Cognitive_Psychology/signal-detection-analysis/references/sdt-formulas.md +318 -0
- package/skills/03_Cognitive_Psychology/visual-search-array-generator/SKILL.md +283 -0
- package/skills/03_Cognitive_Psychology/visual-search-array-generator/references/array-generation-parameters.yaml +111 -0
- package/skills/04_Psycholinguistics/reading-time-analysis/SKILL.md +301 -0
- package/skills/04_Psycholinguistics/reading-time-analysis/references/measure-computation-guide.md +195 -0
- package/skills/04_Psycholinguistics/self-paced-reading-designer/SKILL.md +257 -0
- package/skills/04_Psycholinguistics/self-paced-reading-designer/references/analysis-guide.md +356 -0
- package/skills/04_Psycholinguistics/self-paced-reading-designer/references/region-segmentation.md +266 -0
- package/skills/04_Psycholinguistics/sentence-stimulus-norming/SKILL.md +346 -0
- package/skills/04_Psycholinguistics/sentence-stimulus-norming/references/lexical-databases-guide.md +184 -0
- package/skills/05_EEG_ERP/eeg-paradigm-designer/SKILL.md +226 -0
- package/skills/05_EEG_ERP/eeg-paradigm-designer/references/component-paradigm-map.md +276 -0
- package/skills/05_EEG_ERP/eeg-paradigm-designer/references/timing-parameters.md +244 -0
- package/skills/05_EEG_ERP/eeg-preprocessing-pipeline-guide/SKILL.md +367 -0
- package/skills/05_EEG_ERP/eeg-preprocessing-pipeline-guide/references/parameter-lookup-tables.md +138 -0
- package/skills/05_EEG_ERP/erp-analysis/SKILL.md +185 -0
- package/skills/05_EEG_ERP/erp-analysis/references/erp-components.md +447 -0
- package/skills/05_EEG_ERP/erp-analysis/references/preprocessing-pipeline.md +277 -0
- package/skills/05_EEG_ERP/erp-analysis/references/statistical-approaches.md +351 -0
- package/skills/05_EEG_ERP/mne-python-guide/SKILL.md +174 -0
- package/skills/05_EEG_ERP/mne-python-guide/references/decoding.md +178 -0
- package/skills/05_EEG_ERP/mne-python-guide/references/io_formats.md +160 -0
- package/skills/05_EEG_ERP/mne-python-guide/references/preprocessing.md +259 -0
- package/skills/05_EEG_ERP/mne-python-guide/references/simulation.md +173 -0
- package/skills/05_EEG_ERP/mne-python-guide/references/source_localization.md +234 -0
- package/skills/05_EEG_ERP/mne-python-guide/references/statistics.md +196 -0
- package/skills/05_EEG_ERP/mne-python-guide/references/time_frequency.md +165 -0
- package/skills/05_EEG_ERP/mne-python-guide/references/visualization.md +175 -0
- package/skills/06_fMRI_Neuroimaging/brain-connectivity-modeler/SKILL.md +317 -0
- package/skills/06_fMRI_Neuroimaging/brain-connectivity-modeler/references/method-implementation-guide.md +116 -0
- package/skills/06_fMRI_Neuroimaging/fmri-glm-analysis-guide/SKILL.md +296 -0
- package/skills/06_fMRI_Neuroimaging/fmri-glm-analysis-guide/references/design-matrix-guide.md +214 -0
- package/skills/06_fMRI_Neuroimaging/fmri-glm-analysis-guide/references/statistical-inference.md +288 -0
- package/skills/06_fMRI_Neuroimaging/fmri-preprocessing-pipeline-guide/SKILL.md +274 -0
- package/skills/06_fMRI_Neuroimaging/fmri-preprocessing-pipeline-guide/references/quality-control.md +336 -0
- package/skills/06_fMRI_Neuroimaging/fmri-preprocessing-pipeline-guide/references/step-by-step-pipeline.md +380 -0
- package/skills/06_fMRI_Neuroimaging/fmri-task-design-guide/SKILL.md +264 -0
- package/skills/06_fMRI_Neuroimaging/fmri-task-design-guide/references/design-optimization-examples.md +114 -0
- package/skills/06_fMRI_Neuroimaging/neural-decoding-analysis/SKILL.md +273 -0
- package/skills/06_fMRI_Neuroimaging/neural-decoding-analysis/references/decoding-methods.md +170 -0
- package/skills/06_fMRI_Neuroimaging/neural-decoding-analysis/references/rsa-guide.md +266 -0
- package/skills/06_fMRI_Neuroimaging/pycortex-guide/SKILL.md +123 -0
- package/skills/06_fMRI_Neuroimaging/pycortex-guide/references/database-subjects.md +179 -0
- package/skills/06_fMRI_Neuroimaging/pycortex-guide/references/dataset-types.md +208 -0
- package/skills/06_fMRI_Neuroimaging/pycortex-guide/references/freesurfer-fmriprep.md +162 -0
- package/skills/06_fMRI_Neuroimaging/pycortex-guide/references/mapping-transforms.md +181 -0
- package/skills/06_fMRI_Neuroimaging/pycortex-guide/references/mni-utils.md +207 -0
- package/skills/06_fMRI_Neuroimaging/pycortex-guide/references/surface-analysis.md +219 -0
- package/skills/06_fMRI_Neuroimaging/pycortex-guide/references/visualization.md +251 -0
- package/skills/07_Computational_Modeling/act-r-model-builder/SKILL.md +297 -0
- package/skills/07_Computational_Modeling/act-r-model-builder/references/model-patterns.md +197 -0
- package/skills/07_Computational_Modeling/act-r-model-builder/references/parameter-table.yaml +204 -0
- package/skills/07_Computational_Modeling/bayesian-cognitive-model-builder/SKILL.md +294 -0
- package/skills/07_Computational_Modeling/bayesian-cognitive-model-builder/references/diagnostics-checklist.md +351 -0
- package/skills/07_Computational_Modeling/bayesian-cognitive-model-builder/references/prior-selection-guide.md +241 -0
- package/skills/07_Computational_Modeling/parameter-recovery-checker/SKILL.md +269 -0
- package/skills/07_Computational_Modeling/parameter-recovery-checker/references/recovery-diagnostics.md +207 -0
- package/skills/08_Computational_Neuroscience/brain-connectivity-modeler/SKILL.md +317 -0
- package/skills/08_Computational_Neuroscience/brain-connectivity-modeler/references/method-implementation-guide.md +116 -0
- package/skills/08_Computational_Neuroscience/neural-decoding-analysis/SKILL.md +273 -0
- package/skills/08_Computational_Neuroscience/neural-decoding-analysis/references/decoding-methods.md +170 -0
- package/skills/08_Computational_Neuroscience/neural-decoding-analysis/references/rsa-guide.md +266 -0
- package/skills/08_Computational_Neuroscience/neural-population-analysis-guide/SKILL.md +305 -0
- package/skills/08_Computational_Neuroscience/neural-population-analysis-guide/references/data-requirements.md +60 -0
- package/skills/08_Computational_Neuroscience/neural-population-analysis-guide/references/method-comparison.md +151 -0
- package/skills/08_Computational_Neuroscience/spiking-network-model-builder/SKILL.md +376 -0
- package/skills/08_Computational_Neuroscience/spiking-network-model-builder/references/hh-parameters.md +117 -0
- package/skills/08_Computational_Neuroscience/spiking-network-model-builder/references/network-regimes.md +130 -0
- package/skills/09_Cellular_Molecular_Neuroscience/calcium-imaging-analysis-guide/SKILL.md +258 -0
- package/skills/09_Cellular_Molecular_Neuroscience/calcium-imaging-analysis-guide/references/indicator-parameters.md +242 -0
- package/skills/09_Cellular_Molecular_Neuroscience/calcium-imaging-analysis-guide/references/pipeline-details.md +211 -0
- package/skills/09_Cellular_Molecular_Neuroscience/optogenetics-protocol-designer/SKILL.md +261 -0
- package/skills/09_Cellular_Molecular_Neuroscience/optogenetics-protocol-designer/references/opsin-catalog.md +124 -0
- package/skills/09_Cellular_Molecular_Neuroscience/optogenetics-protocol-designer/references/stimulation-parameters.md +304 -0
- package/skills/10_Clinical_Neuropsychology/lesion-symptom-mapping-guide/SKILL.md +367 -0
- package/skills/10_Clinical_Neuropsychology/lesion-symptom-mapping-guide/references/disconnection-guide.md +152 -0
- package/skills/10_Clinical_Neuropsychology/lesion-symptom-mapping-guide/references/vlsm-pipeline.md +182 -0
- package/skills/10_Clinical_Neuropsychology/neuropsych-battery-selector/SKILL.md +250 -0
- package/skills/10_Clinical_Neuropsychology/neuropsych-battery-selector/references/deficit-profiles.md +302 -0
- package/skills/10_Clinical_Neuropsychology/neuropsych-battery-selector/references/test-catalog.md +304 -0
- package/skills/11_Developmental_Cognition/infant-looking-time-designer/SKILL.md +345 -0
- package/skills/11_Developmental_Cognition/infant-looking-time-designer/references/age-parameters.yaml +186 -0
- package/skills/12_Social_Cognition/tom-task-selector/SKILL.md +379 -0
- package/skills/12_Social_Cognition/tom-task-selector/references/task-database.md +317 -0
- package/skills/13_Visualization/nature-figure/README.md +442 -0
- package/skills/13_Visualization/nature-figure/SKILL.md +60 -0
- package/skills/13_Visualization/nature-figure/assets/chart-atlas/atlas-01-bar-charts.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/chart-atlas/atlas-02-line-trends.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/chart-atlas/atlas-03-heatmaps.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/chart-atlas/atlas-04-scatter-bubble.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/chart-atlas/atlas-05-radar-polar.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/chart-atlas/atlas-06-distributions.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/chart-atlas/atlas-07-forest-interval.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/chart-atlas/atlas-08-area-stacked.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/chart-atlas/atlas-09-image-plates.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/chart-atlas/atlas-10-network-matrix.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/assets/Dispersion_motivation.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/assets/Dispersion_observation.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/assets/Dispersion_observation_distillation.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/assets/ImmunoStruct_contrastive.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/assets/ImmunoStruct_results_CEDAR.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/assets/ImmunoStruct_results_IEDB.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/assets/ImmunoStruct_schematic.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/assets/RNAGenScape_schematic.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_CellSpliceNet/figures/ablation.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_CellSpliceNet/figures/comparison.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_CellSpliceNet/plot_ablation.py +86 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_CellSpliceNet/plot_comparison.py +109 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_Cflows/diffusion_swiss_roll.py +97 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_Cflows/figures/diffusion_swiss_roll.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_Cflows/figures/fig2_comparison_GeneRegulatory.pdf +0 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_Cflows/figures/fig2_comparison_GeneRegulatory.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_Cflows/figures/fig2_comparison_Trajectory.pdf +0 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_Cflows/figures/fig2_comparison_Trajectory.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_Cflows/figures/figX_comparison_Ablation.pdf +0 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_Cflows/figures/figX_comparison_Ablation.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_Cflows/plot_comparison_Ablation.py +64 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_Cflows/plot_comparison_GeneRegulatory.py +74 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_Cflows/plot_comparison_Trajectory.py +74 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_Dispersion/figures/idea.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_Dispersion/figures/illustration.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_Dispersion/plot_idea.py +76 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_Dispersion/plot_illustration.py +404 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_FPGM/figures/freq_prior.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_FPGM/plot_freq_prior.py +146 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_ImmunoStruct/figures/bars_ablation_Cancer.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_ImmunoStruct/figures/bars_ablation_IEDB.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_ImmunoStruct/figures/bars_comparison_Cancer.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_ImmunoStruct/figures/bars_comparison_IEDB.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_ImmunoStruct/plot_bars.py +216 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_ImmunoStruct/raw_data.py +125 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_RNAGenScape/figures/manifold.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_RNAGenScape/figures/manifold_holes.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_RNAGenScape/figures/results_comparison_optimization.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_RNAGenScape/figures/results_comparison_speed.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_RNAGenScape/figures/results_sweep.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_RNAGenScape/plot_comparison.py +228 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_RNAGenScape/plot_hole_manifold.py +82 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_RNAGenScape/plot_manifold.py +61 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_RNAGenScape/plot_sweep.py +77 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_VIGIL/figures/comparison_posttraining.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_VIGIL/figures/comparison_radar.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_VIGIL/plot_comparison_radar.py +173 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_VIGIL/plot_posttraining.py +82 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_brainteaser/figures/brute_force.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_brainteaser/figures/correctness_by_category.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_brainteaser/figures/correctness_by_subcategory.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_brainteaser/figures/rewriting.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_brainteaser/figures/selfcorrection_math.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_brainteaser/plot_brute_force.py +248 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_brainteaser/plot_correctness_by_category.py +132 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_brainteaser/plot_correctness_by_subcategory.py +131 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_brainteaser/plot_rewriting.py +105 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_brainteaser/plot_selfcorrection_math.py +99 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_ophthal_review/figures/composition_heatmap.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_ophthal_review/figures/trend_by_month.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_ophthal_review/plot_composition.py +81 -0
- package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_ophthal_review/plot_trend.py +125 -0
- package/skills/13_Visualization/nature-figure/assets/gallery/fig1-material-mechanism-rich.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/gallery/fig2-spatial-imaging-rich.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/gallery/fig3-in-vivo-efficacy-rich.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/gallery/fig4-single-cell-systems-rich.png +0 -0
- package/skills/13_Visualization/nature-figure/assets/gallery/fig5-validation-perturbation-rich.png +0 -0
- package/skills/13_Visualization/nature-figure/evals/evals.json +37 -0
- package/skills/13_Visualization/nature-figure/manifest.yaml +57 -0
- package/skills/13_Visualization/nature-figure/references/api.md +428 -0
- package/skills/13_Visualization/nature-figure/references/backend-selection.md +100 -0
- package/skills/13_Visualization/nature-figure/references/chart-types.md +281 -0
- package/skills/13_Visualization/nature-figure/references/common-patterns.md +350 -0
- package/skills/13_Visualization/nature-figure/references/demos.md +65 -0
- package/skills/13_Visualization/nature-figure/references/design-theory.md +436 -0
- package/skills/13_Visualization/nature-figure/references/figure-contract.md +93 -0
- package/skills/13_Visualization/nature-figure/references/nature-2026-observations.md +112 -0
- package/skills/13_Visualization/nature-figure/references/qa-contract.md +119 -0
- package/skills/13_Visualization/nature-figure/references/r-template-index.md +66 -0
- package/skills/13_Visualization/nature-figure/references/r-workflow.md +161 -0
- package/skills/13_Visualization/nature-figure/references/tutorials.md +251 -0
- package/skills/13_Visualization/nature-figure/static/core/contract.md +29 -0
- package/skills/13_Visualization/nature-figure/static/core/stance.md +37 -0
- package/skills/13_Visualization/nature-figure/static/fragments/backend/python.md +37 -0
- package/skills/13_Visualization/nature-figure/static/fragments/backend/r.md +44 -0
- package/skills/14_Writing/markdown-report-writing/SKILL.md +306 -0
- package/skills/14_Writing/markdown-report-writing/references/compatibility-matrix.md +72 -0
- package/skills/14_Writing/markdown-report-writing/references/templates.md +299 -0
- package/skills/15_Others/neuroimaging-power-guide/SKILL.md +324 -0
- package/skills/15_Others/neuroimaging-power-guide/references/effect-size-lookup-tables.md +102 -0
- package/skills/15_Others/neuroimaging-sample-size-calculator/SKILL.md +330 -0
- package/skills/15_Others/neuroimaging-sample-size-calculator/references/worked-examples.md +220 -0
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import os
|
|
2
|
+
import numpy as np
|
|
3
|
+
from matplotlib import pyplot as plt
|
|
4
|
+
from matplotlib import gridspec as gridspec
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
data_math_by_category = {
|
|
8
|
+
'methods': [
|
|
9
|
+
r'DeepSeek R1 Distill Qwen 1.5B',
|
|
10
|
+
r'DeepSeek R1 Distill Qwen 14B',
|
|
11
|
+
r'DeepSeek R1 Distill Llama 70B',
|
|
12
|
+
r'deepseek-chat (Deepseek-V3)',
|
|
13
|
+
r'deepseek-reasoner (Deepseek-R1)',
|
|
14
|
+
r'gemini-2.5-flash-preview-04-17',
|
|
15
|
+
r'OpenAI o3'
|
|
16
|
+
],
|
|
17
|
+
'colors': ['#DDF3DE', '#AADCA9', '#8BCF8B', '#F6CFCB', '#E9A6A1', '#FFF6CC', '#3775BA'],
|
|
18
|
+
'subtypes': ['Standard',
|
|
19
|
+
'Nonstandard',
|
|
20
|
+
'Heuristic'],
|
|
21
|
+
'result': {
|
|
22
|
+
'Standard': np.array([0.253623188, 0.5, 0.5, 0.594202899, 0.688405797, 0.710144928, 0.789855073]),
|
|
23
|
+
'Geometry': np.array([0.125, 0.416666667, 0.375, 0.291666667, 0.375, 0.541666667, 0.666666667]),
|
|
24
|
+
'Number Theory': np.array([0.441176471, 0.558823529, 0.529411765, 0.676470588, 0.823529412, 0.735294118, 0.852941177]),
|
|
25
|
+
'Combinatorics': np.array([0.25, 0.416666667, 0.416666667, 0.625, 0.666666667, 0.625, 0.75]),
|
|
26
|
+
'Algebra': np.array([0.196428571, 0.535714286, 0.571428571, 0.660714286, 0.75, 0.803571429, 0.821428571]),
|
|
27
|
+
'Nonstandard': np.array([0.103448276, 0.482758621, 0.431034483, 0.620689655, 0.74137931, 0.672413793, 0.827586207]),
|
|
28
|
+
'Logic': np.array([0.034482759, 0.413793103, 0.448275862, 0.517241379, 0.620689655, 0.517241379, 0.75862069]),
|
|
29
|
+
'Special Number': np.array([0.172413793, 0.551724138, 0.413793103, 0.724137931, 0.862068966, 0.827586207, 0.896551724]),
|
|
30
|
+
'Heuristic': np.array([0, 0.260869565, 0.173913044, 0.413043478, 0.673913044, 0.47826087, 0.804347826]),
|
|
31
|
+
'Pattern': np.array([0, 0.214285714, 0.178571429, 0.357142857, 0.642857143, 0.428571429, 0.75]),
|
|
32
|
+
'Arithmetic': np.array([0, 0.333333333, 0.166666667, 0.5, 0.722222222, 0.555555556, 0.888888889]),
|
|
33
|
+
},
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
data_logic_by_category = {
|
|
37
|
+
'methods': [
|
|
38
|
+
r'DeepSeek R1 Distill Qwen 1.5B',
|
|
39
|
+
r'DeepSeek R1 Distill Qwen 14B',
|
|
40
|
+
r'DeepSeek R1 Distill Llama 70B',
|
|
41
|
+
r'deepseek-chat (Deepseek-V3)',
|
|
42
|
+
r'deepseek-reasoner (Deepseek-R1)',
|
|
43
|
+
r'gemini-2.5-flash-preview-04-17',
|
|
44
|
+
r'OpenAI o3'
|
|
45
|
+
],
|
|
46
|
+
'colors': ['#DDF3DE', '#AADCA9', '#8BCF8B', '#F6CFCB', '#E9A6A1', '#FFF6CC', '#3775BA'],
|
|
47
|
+
'subtypes': ['Simple/large',
|
|
48
|
+
'Complex/small',
|
|
49
|
+
'Math-like',
|
|
50
|
+
'Heuristic'],
|
|
51
|
+
'result': {
|
|
52
|
+
'Simple/large': np.array([0.042105263, 0.178947368, 0.189473684, 0.389473684, 0.410526316, 0.515789474, 0.694736842]),
|
|
53
|
+
'0D': np.array([0.068965517, 0.172413793, 0.206896552, 0.379310345, 0.448275862, 0.517241379, 0.689655172]),
|
|
54
|
+
'1D': np.array([0, 0.230769231, 0.230769231, 0.615384615, 0.538461539, 0.538461539, 0.692307692]),
|
|
55
|
+
'2D': np.array([0, 0.045454545, 0.090909091, 0.272727273, 0.181818182, 0.363636364, 0.454545455]),
|
|
56
|
+
'Number': np.array([0.058823529, 0.470588235, 0.411764706, 0.588235294, 0.823529412, 0.941176471, 1]),
|
|
57
|
+
'Clusters': np.array([0, 0, 0, 0.125, 0, 0.25, 0.875]),
|
|
58
|
+
'Tree': np.array([0.166666667, 0, 0, 0.166666667, 0.166666667, 0.166666667, 0.5]),
|
|
59
|
+
'Complex/small': np.array([0, 0.433333333, 0.4, 0.466666667, 0.566666667, 0.833333333, 0.866666667]),
|
|
60
|
+
'Liars': np.array([0, 0.411764706, 0.411764706, 0.411764706, 0.705882353, 0.882352941, 0.882352941]),
|
|
61
|
+
'Communication': np.array([0, 0.5, 0, 0.25, 0, 0.5, 0.5]),
|
|
62
|
+
'Compound': np.array([0, 0.444444444, 0.555555556, 0.666666667, 0.555555556, 0.888888889, 1]),
|
|
63
|
+
'Math-like': np.array([0.085714286, 0.328571429, 0.371428571, 0.514285714, 0.542857143, 0.542857143, 0.714285714]),
|
|
64
|
+
'Algorithm': np.array([0.078947368, 0.315789474, 0.368421053, 0.473684211, 0.447368421, 0.473684211, 0.710526316]),
|
|
65
|
+
'Math': np.array([0.09375, 0.34375, 0.375, 0.5625, 0.65625, 0.625, 0.71875]),
|
|
66
|
+
'Heuristic': np.array([0, 0.12195122, 0.097560976, 0.317073171, 0.365853659, 0.268292683, 0.658536585]),
|
|
67
|
+
'Pattern': np.array([0, 0.153846154, 0.115384615, 0.230769231, 0.346153846, 0.307692308, 0.576923077]),
|
|
68
|
+
'Linguistic': np.array([0, 0.066666667, 0.066666667, 0.466666667, 0.4, 0.2, 0.8]), },
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
if __name__ == '__main__':
|
|
73
|
+
plt.rcParams['font.family'] = 'helvetica'
|
|
74
|
+
plt.rcParams['font.size'] = 24
|
|
75
|
+
plt.rcParams['axes.spines.right'] = False
|
|
76
|
+
plt.rcParams['axes.spines.top'] = False
|
|
77
|
+
plt.rcParams['axes.linewidth'] = 3
|
|
78
|
+
|
|
79
|
+
fig = plt.figure(figsize=(36, 12))
|
|
80
|
+
|
|
81
|
+
gs = gridspec.GridSpec(2, 4)
|
|
82
|
+
|
|
83
|
+
for subtype_idx, subtype_name in enumerate(data_math_by_category['subtypes']):
|
|
84
|
+
ax = fig.add_subplot(gs[subtype_idx])
|
|
85
|
+
num_methods = len(data_math_by_category['methods'])
|
|
86
|
+
ax.bar(
|
|
87
|
+
np.arange(num_methods),
|
|
88
|
+
data_math_by_category['result'][subtype_name],
|
|
89
|
+
color=data_math_by_category['colors'],
|
|
90
|
+
label=data_math_by_category['methods'],
|
|
91
|
+
)
|
|
92
|
+
|
|
93
|
+
ax.set_title(data_math_by_category['subtypes'][subtype_idx], fontsize=36, pad=36)
|
|
94
|
+
ax.set_ylabel('Probability', fontsize=30, labelpad=12)
|
|
95
|
+
ax.set_ylim([0, 1])
|
|
96
|
+
ax.set_xticks([])
|
|
97
|
+
|
|
98
|
+
ax = fig.add_subplot(gs[3])
|
|
99
|
+
bar = ax.bar(
|
|
100
|
+
np.arange(num_methods),
|
|
101
|
+
np.ones_like(np.arange(num_methods)),
|
|
102
|
+
color=data_math_by_category['colors'],
|
|
103
|
+
label=data_math_by_category['methods'],
|
|
104
|
+
hatch='',
|
|
105
|
+
)
|
|
106
|
+
handles, labels = ax.get_legend_handles_labels()
|
|
107
|
+
for b in bar:
|
|
108
|
+
b.remove()
|
|
109
|
+
ax.legend(handles, labels, fontsize=28, loc='center', frameon=False)
|
|
110
|
+
ax.set_axis_off()
|
|
111
|
+
|
|
112
|
+
for subtype_idx, subtype_name in enumerate(data_logic_by_category['subtypes']):
|
|
113
|
+
ax = fig.add_subplot(gs[4 + subtype_idx])
|
|
114
|
+
num_methods = len(data_logic_by_category['methods'])
|
|
115
|
+
ax.bar(
|
|
116
|
+
np.arange(num_methods),
|
|
117
|
+
data_logic_by_category['result'][subtype_name],
|
|
118
|
+
color=data_logic_by_category['colors'],
|
|
119
|
+
label=data_logic_by_category['methods'],
|
|
120
|
+
)
|
|
121
|
+
|
|
122
|
+
ax.set_title(data_logic_by_category['subtypes'][subtype_idx], fontsize=36, pad=36)
|
|
123
|
+
ax.set_ylabel('Probability', fontsize=30, labelpad=12)
|
|
124
|
+
ax.set_ylim([0, 1])
|
|
125
|
+
ax.set_xticks([])
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
fig.tight_layout(pad=2)
|
|
129
|
+
|
|
130
|
+
os.makedirs('./figures/', exist_ok=True)
|
|
131
|
+
fig.savefig('./figures/correctness_by_category.png', dpi=300)
|
|
132
|
+
plt.close(fig)
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import os
|
|
2
|
+
import numpy as np
|
|
3
|
+
from matplotlib import pyplot as plt
|
|
4
|
+
from matplotlib import gridspec as gridspec
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
data_math_by_category = {
|
|
8
|
+
'methods': [
|
|
9
|
+
r'DeepSeek R1 Distill Qwen 1.5B',
|
|
10
|
+
r'DeepSeek R1 Distill Qwen 14B',
|
|
11
|
+
r'DeepSeek R1 Distill Llama 70B',
|
|
12
|
+
r'deepseek-chat (Deepseek-V3)',
|
|
13
|
+
r'deepseek-reasoner (Deepseek-R1)',
|
|
14
|
+
r'gemini-2.5-flash-preview-04-17',
|
|
15
|
+
r'OpenAI o3'
|
|
16
|
+
],
|
|
17
|
+
'colors': ['#DDF3DE', '#AADCA9', '#8BCF8B', '#F6CFCB', '#E9A6A1', '#FFF6CC', '#3775BA'],
|
|
18
|
+
'subtypes': ['Geometry', 'Number Theory', 'Combinatorics', 'Algebra',
|
|
19
|
+
'Logic', 'Special Number', 'Pattern', 'Arithmetic'],
|
|
20
|
+
'result': {
|
|
21
|
+
'Standard': np.array([0.253623188, 0.5, 0.5, 0.594202899, 0.688405797, 0.710144928, 0.789855073]),
|
|
22
|
+
'Geometry': np.array([0.125, 0.416666667, 0.375, 0.291666667, 0.375, 0.541666667, 0.666666667]),
|
|
23
|
+
'Number Theory': np.array([0.441176471, 0.558823529, 0.529411765, 0.676470588, 0.823529412, 0.735294118, 0.852941177]),
|
|
24
|
+
'Combinatorics': np.array([0.25, 0.416666667, 0.416666667, 0.625, 0.666666667, 0.625, 0.75]),
|
|
25
|
+
'Algebra': np.array([0.196428571, 0.535714286, 0.571428571, 0.660714286, 0.75, 0.803571429, 0.821428571]),
|
|
26
|
+
'Nonstandard': np.array([0.103448276, 0.482758621, 0.431034483, 0.620689655, 0.74137931, 0.672413793, 0.827586207]),
|
|
27
|
+
'Logic': np.array([0.034482759, 0.413793103, 0.448275862, 0.517241379, 0.620689655, 0.517241379, 0.75862069]),
|
|
28
|
+
'Special Number': np.array([0.172413793, 0.551724138, 0.413793103, 0.724137931, 0.862068966, 0.827586207, 0.896551724]),
|
|
29
|
+
'Heuristic': np.array([0, 0.260869565, 0.173913044, 0.413043478, 0.673913044, 0.47826087, 0.804347826]),
|
|
30
|
+
'Pattern': np.array([0, 0.214285714, 0.178571429, 0.357142857, 0.642857143, 0.428571429, 0.75]),
|
|
31
|
+
'Arithmetic': np.array([0, 0.333333333, 0.166666667, 0.5, 0.722222222, 0.555555556, 0.888888889]),
|
|
32
|
+
},
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
data_logic_by_category = {
|
|
36
|
+
'methods': [
|
|
37
|
+
r'DeepSeek R1 Distill Qwen 1.5B',
|
|
38
|
+
r'DeepSeek R1 Distill Qwen 14B',
|
|
39
|
+
r'DeepSeek R1 Distill Llama 70B',
|
|
40
|
+
r'deepseek-chat (Deepseek-V3)',
|
|
41
|
+
r'deepseek-reasoner (Deepseek-R1)',
|
|
42
|
+
r'gemini-2.5-flash-preview-04-17',
|
|
43
|
+
r'OpenAI o3'
|
|
44
|
+
],
|
|
45
|
+
'colors': ['#DDF3DE', '#AADCA9', '#8BCF8B', '#F6CFCB', '#E9A6A1', '#FFF6CC', '#3775BA'],
|
|
46
|
+
'subtypes': ['0D', '1D', '2D', 'Number', 'Clusters', 'Tree', 'Liars',
|
|
47
|
+
'Communication', 'Compound', 'Algorithm', 'Math', 'Pattern', 'Linguistic'],
|
|
48
|
+
|
|
49
|
+
'result': {
|
|
50
|
+
'Simple/large': np.array([0.042105263, 0.178947368, 0.189473684, 0.389473684, 0.410526316, 0.515789474, 0.694736842]),
|
|
51
|
+
'0D': np.array([0.068965517, 0.172413793, 0.206896552, 0.379310345, 0.448275862, 0.517241379, 0.689655172]),
|
|
52
|
+
'1D': np.array([0, 0.230769231, 0.230769231, 0.615384615, 0.538461539, 0.538461539, 0.692307692]),
|
|
53
|
+
'2D': np.array([0, 0.045454545, 0.090909091, 0.272727273, 0.181818182, 0.363636364, 0.454545455]),
|
|
54
|
+
'Number': np.array([0.058823529, 0.470588235, 0.411764706, 0.588235294, 0.823529412, 0.941176471, 1]),
|
|
55
|
+
'Clusters': np.array([0, 0, 0, 0.125, 0, 0.25, 0.875]),
|
|
56
|
+
'Tree': np.array([0.166666667, 0, 0, 0.166666667, 0.166666667, 0.166666667, 0.5]),
|
|
57
|
+
'Complex/small': np.array([0, 0.433333333, 0.4, 0.466666667, 0.566666667, 0.833333333, 0.866666667]),
|
|
58
|
+
'Liars': np.array([0, 0.411764706, 0.411764706, 0.411764706, 0.705882353, 0.882352941, 0.882352941]),
|
|
59
|
+
'Communication': np.array([0, 0.5, 0, 0.25, 0, 0.5, 0.5]),
|
|
60
|
+
'Compound': np.array([0, 0.444444444, 0.555555556, 0.666666667, 0.555555556, 0.888888889, 1]),
|
|
61
|
+
'Math-like': np.array([0.085714286, 0.328571429, 0.371428571, 0.514285714, 0.542857143, 0.542857143, 0.714285714]),
|
|
62
|
+
'Algorithm': np.array([0.078947368, 0.315789474, 0.368421053, 0.473684211, 0.447368421, 0.473684211, 0.710526316]),
|
|
63
|
+
'Math': np.array([0.09375, 0.34375, 0.375, 0.5625, 0.65625, 0.625, 0.71875]),
|
|
64
|
+
'Heuristic': np.array([0, 0.12195122, 0.097560976, 0.317073171, 0.365853659, 0.268292683, 0.658536585]),
|
|
65
|
+
'Pattern': np.array([0, 0.153846154, 0.115384615, 0.230769231, 0.346153846, 0.307692308, 0.576923077]),
|
|
66
|
+
'Linguistic': np.array([0, 0.066666667, 0.066666667, 0.466666667, 0.4, 0.2, 0.8]),
|
|
67
|
+
},
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
if __name__ == '__main__':
|
|
72
|
+
plt.rcParams['font.family'] = 'helvetica'
|
|
73
|
+
plt.rcParams['font.size'] = 24
|
|
74
|
+
plt.rcParams['axes.spines.right'] = False
|
|
75
|
+
plt.rcParams['axes.spines.top'] = False
|
|
76
|
+
plt.rcParams['axes.linewidth'] = 3
|
|
77
|
+
|
|
78
|
+
fig = plt.figure(figsize=(96, 12))
|
|
79
|
+
|
|
80
|
+
gs = gridspec.GridSpec(2, 13)
|
|
81
|
+
|
|
82
|
+
for subtype_idx, subtype_name in enumerate(data_math_by_category['subtypes']):
|
|
83
|
+
ax = fig.add_subplot(gs[subtype_idx])
|
|
84
|
+
num_methods = len(data_math_by_category['methods'])
|
|
85
|
+
ax.bar(
|
|
86
|
+
np.arange(num_methods),
|
|
87
|
+
data_math_by_category['result'][subtype_name],
|
|
88
|
+
color=data_math_by_category['colors'],
|
|
89
|
+
label=data_math_by_category['methods'],
|
|
90
|
+
)
|
|
91
|
+
|
|
92
|
+
ax.set_title(data_math_by_category['subtypes'][subtype_idx], fontsize=36, pad=36)
|
|
93
|
+
ax.set_ylabel('Probability', fontsize=30, labelpad=12)
|
|
94
|
+
ax.set_ylim([0, 1])
|
|
95
|
+
ax.set_xticks([])
|
|
96
|
+
|
|
97
|
+
ax = fig.add_subplot(gs[11:12])
|
|
98
|
+
bar = ax.bar(
|
|
99
|
+
np.arange(num_methods),
|
|
100
|
+
np.ones_like(np.arange(num_methods)),
|
|
101
|
+
color=data_math_by_category['colors'],
|
|
102
|
+
label=data_math_by_category['methods'],
|
|
103
|
+
hatch='',
|
|
104
|
+
)
|
|
105
|
+
handles, labels = ax.get_legend_handles_labels()
|
|
106
|
+
for b in bar:
|
|
107
|
+
b.remove()
|
|
108
|
+
ax.legend(handles, labels, fontsize=28, loc='center', frameon=False)
|
|
109
|
+
ax.set_axis_off()
|
|
110
|
+
|
|
111
|
+
for subtype_idx, subtype_name in enumerate(data_logic_by_category['subtypes']):
|
|
112
|
+
ax = fig.add_subplot(gs[13 + subtype_idx])
|
|
113
|
+
num_methods = len(data_logic_by_category['methods'])
|
|
114
|
+
ax.bar(
|
|
115
|
+
np.arange(num_methods),
|
|
116
|
+
data_logic_by_category['result'][subtype_name],
|
|
117
|
+
color=data_logic_by_category['colors'],
|
|
118
|
+
label=data_logic_by_category['methods'],
|
|
119
|
+
)
|
|
120
|
+
|
|
121
|
+
ax.set_title(data_logic_by_category['subtypes'][subtype_idx], fontsize=36, pad=36)
|
|
122
|
+
ax.set_ylabel('Probability', fontsize=30, labelpad=12)
|
|
123
|
+
ax.set_ylim([0, 1])
|
|
124
|
+
ax.set_xticks([])
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
fig.tight_layout(pad=2)
|
|
128
|
+
|
|
129
|
+
os.makedirs('./figures/', exist_ok=True)
|
|
130
|
+
fig.savefig('./figures/correctness_by_subcategory.png', dpi=300)
|
|
131
|
+
plt.close(fig)
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import os
|
|
2
|
+
import numpy as np
|
|
3
|
+
from matplotlib import pyplot as plt
|
|
4
|
+
from matplotlib import gridspec as gridspec
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
data_rewriting_math = {
|
|
8
|
+
'methods': [r'DeepSeek R1 Distill Llama 70B',
|
|
9
|
+
r'deepseek-reasoner (Deepseek-R1)',
|
|
10
|
+
r'OpenAI o3'],
|
|
11
|
+
'colors': ['#8BCF8B', '#E9A6A1', '#3775BA'],
|
|
12
|
+
'hatch_styles': ['', '|', '\\', '/', '-'],
|
|
13
|
+
'fig1': ['Before rewriting', 'After rewriting'],
|
|
14
|
+
'fig2': [r'correct $\rightarrow$ incorrect', r'incorrect $\rightarrow$ correct', 'same result'],
|
|
15
|
+
'result': {
|
|
16
|
+
'Before rewriting': np.array([7, 15, 17]) / 30,
|
|
17
|
+
'After rewriting': np.array([10, 19, 22]) / 30,
|
|
18
|
+
r'correct $\rightarrow$ incorrect': np.array([0, 2, 1]) / 30,
|
|
19
|
+
r'incorrect $\rightarrow$ correct': np.array([3, 6, 6]) / 30,
|
|
20
|
+
'same result': np.array([27, 22, 23]) / 30,
|
|
21
|
+
},
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
if __name__ == '__main__':
|
|
25
|
+
plt.rcParams['font.family'] = 'helvetica'
|
|
26
|
+
plt.rcParams['font.size'] = 24
|
|
27
|
+
plt.rcParams['axes.spines.right'] = False
|
|
28
|
+
plt.rcParams['axes.spines.top'] = False
|
|
29
|
+
plt.rcParams['axes.linewidth'] = 3
|
|
30
|
+
|
|
31
|
+
fig = plt.figure(figsize=(24, 12))
|
|
32
|
+
|
|
33
|
+
gs = gridspec.GridSpec(2, 2)
|
|
34
|
+
num_methods = len(data_rewriting_math['methods'])
|
|
35
|
+
|
|
36
|
+
ax = fig.add_subplot(gs[0])
|
|
37
|
+
width = 0.3
|
|
38
|
+
for category_idx, category in enumerate(data_rewriting_math['fig1']):
|
|
39
|
+
ax.bar(np.arange(num_methods) + width * category_idx * 1.1,
|
|
40
|
+
data_rewriting_math['result'][category],
|
|
41
|
+
width=width,
|
|
42
|
+
label=category,
|
|
43
|
+
color=data_rewriting_math['colors'],
|
|
44
|
+
edgecolor='black',
|
|
45
|
+
linewidth=2,
|
|
46
|
+
hatch=data_rewriting_math['hatch_styles'][category_idx])
|
|
47
|
+
ax.set_title('Correctness', fontsize=36, pad=0)
|
|
48
|
+
ax.set_ylabel('Probability', fontsize=30, labelpad=12)
|
|
49
|
+
ax.set_ylim([0, 1.01])
|
|
50
|
+
ax.set_xticks([])
|
|
51
|
+
|
|
52
|
+
ax = fig.add_subplot(gs[1])
|
|
53
|
+
width = 0.25
|
|
54
|
+
for category_idx, category in enumerate(data_rewriting_math['fig2']):
|
|
55
|
+
ax.bar(np.arange(num_methods) + width * category_idx * 1.1,
|
|
56
|
+
data_rewriting_math['result'][category],
|
|
57
|
+
width=width,
|
|
58
|
+
label=category,
|
|
59
|
+
color=data_rewriting_math['colors'],
|
|
60
|
+
edgecolor='black',
|
|
61
|
+
linewidth=2,
|
|
62
|
+
hatch=data_rewriting_math['hatch_styles'][category_idx + 2])
|
|
63
|
+
ax.set_title('Change in Result', fontsize=36, pad=0)
|
|
64
|
+
ax.set_ylabel('Probability', fontsize=30, labelpad=12)
|
|
65
|
+
ax.set_ylim([0, 1.01])
|
|
66
|
+
ax.set_xticks([])
|
|
67
|
+
|
|
68
|
+
ax = fig.add_subplot(gs[2])
|
|
69
|
+
bar = ax.bar(
|
|
70
|
+
np.arange(num_methods),
|
|
71
|
+
np.ones_like(np.arange(num_methods)),
|
|
72
|
+
color=data_rewriting_math['colors'],
|
|
73
|
+
edgecolor='black',
|
|
74
|
+
linewidth=2,
|
|
75
|
+
label=data_rewriting_math['methods'],
|
|
76
|
+
hatch='',
|
|
77
|
+
)
|
|
78
|
+
handles, labels = ax.get_legend_handles_labels()
|
|
79
|
+
for b in bar:
|
|
80
|
+
b.remove()
|
|
81
|
+
ax.legend(handles, labels, fontsize=30, loc='center', frameon=False)
|
|
82
|
+
ax.set_axis_off()
|
|
83
|
+
|
|
84
|
+
ax = fig.add_subplot(gs[3])
|
|
85
|
+
subtypes = data_rewriting_math['fig1'] + data_rewriting_math['fig2']
|
|
86
|
+
bar = ax.bar(
|
|
87
|
+
np.arange(len(subtypes)),
|
|
88
|
+
np.ones_like(np.arange(len(subtypes))),
|
|
89
|
+
color='white',
|
|
90
|
+
edgecolor='black',
|
|
91
|
+
linewidth=2,
|
|
92
|
+
label=subtypes,
|
|
93
|
+
hatch=data_rewriting_math['hatch_styles'],
|
|
94
|
+
)
|
|
95
|
+
handles, labels = ax.get_legend_handles_labels()
|
|
96
|
+
for b in bar:
|
|
97
|
+
b.remove()
|
|
98
|
+
ax.legend(handles, labels, fontsize=30, loc='center', frameon=False)
|
|
99
|
+
ax.set_axis_off()
|
|
100
|
+
|
|
101
|
+
fig.tight_layout(pad=2)
|
|
102
|
+
|
|
103
|
+
os.makedirs('./figures/', exist_ok=True)
|
|
104
|
+
fig.savefig('./figures/rewriting.png', dpi=300)
|
|
105
|
+
plt.close(fig)
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import os
|
|
2
|
+
import numpy as np
|
|
3
|
+
from matplotlib import pyplot as plt
|
|
4
|
+
from matplotlib import gridspec as gridspec
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
data_math_correcting_llm = {
|
|
8
|
+
'methods': [r'DeepSeek R1 Distill Qwen 1.5B',
|
|
9
|
+
r'DeepSeek R1 Distill Qwen 14B',
|
|
10
|
+
r'DeepSeek R1 Distill Llama 70B',
|
|
11
|
+
r'deepseek-chat (Deepseek-V3)',
|
|
12
|
+
r'deepseek-reasoner (Deepseek-R1)',
|
|
13
|
+
r'OpenAI o3'],
|
|
14
|
+
'colors': ['#DDF3DE', '#AADCA9', '#8BCF8B', '#F6CFCB', '#E9A6A1', '#3775BA'],
|
|
15
|
+
'subtypes': [r'Fault denial$\downarrow$',
|
|
16
|
+
r'Error misattribution$\downarrow$',
|
|
17
|
+
r'Degenerate repetition or stuck$\downarrow$',
|
|
18
|
+
r'Flawed correction$\downarrow$',
|
|
19
|
+
r'Valid correction$\uparrow$'],
|
|
20
|
+
'result': {
|
|
21
|
+
r'Fault denial$\downarrow$': np.array([1, 0, 0, 1, 0, 0]) / 14 ,
|
|
22
|
+
r'Error misattribution$\downarrow$': np.array([4, 4, 3, 1, 0, 1]) / 14 ,
|
|
23
|
+
r'Degenerate repetition or stuck$\downarrow$': np.array([9, 2, 4, 0, 0, 0]) / 14 ,
|
|
24
|
+
r'Flawed correction$\downarrow$': np.array([0, 1, 0, 1, 3, 2]) / 14 ,
|
|
25
|
+
r'Valid correction$\uparrow$': np.array([0, 7, 7, 12, 11, 11]) / 14 ,
|
|
26
|
+
},
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
data_math_correcting_human = {
|
|
30
|
+
'methods': [r'DeepSeek R1 Distill Qwen 1.5B',
|
|
31
|
+
r'DeepSeek R1 Distill Qwen 14B',
|
|
32
|
+
r'DeepSeek R1 Distill Llama 70B',
|
|
33
|
+
r'deepseek-chat (Deepseek-V3)',
|
|
34
|
+
r'deepseek-reasoner (Deepseek-R1)',
|
|
35
|
+
r'OpenAI o3'],
|
|
36
|
+
'colors': ['#DDF3DE', '#AADCA9', '#8BCF8B', '#F6CFCB', '#E9A6A1', '#3775BA'],
|
|
37
|
+
'subtypes': [r'False confession$\downarrow$',
|
|
38
|
+
r'Degenerate repetition or stuck$\downarrow$',
|
|
39
|
+
r'Justified denial$\uparrow$'],
|
|
40
|
+
'result': {
|
|
41
|
+
r'False confession$\downarrow$': np.array([8, 10, 10, 13, 14, 12]) / 14 ,
|
|
42
|
+
r'Degenerate repetition or stuck$\downarrow$': np.array([5, 3, 2, 0, 0, 0]) / 14 ,
|
|
43
|
+
r'Justified denial$\uparrow$': np.array([0, 1, 2, 1, 0, 0]) / 14 ,
|
|
44
|
+
},
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
if __name__ == '__main__':
|
|
49
|
+
plt.rcParams['font.family'] = 'helvetica'
|
|
50
|
+
plt.rcParams['font.size'] = 24
|
|
51
|
+
plt.rcParams['axes.spines.right'] = False
|
|
52
|
+
plt.rcParams['axes.spines.top'] = False
|
|
53
|
+
plt.rcParams['axes.linewidth'] = 3
|
|
54
|
+
|
|
55
|
+
fig = plt.figure(figsize=(36, 12))
|
|
56
|
+
|
|
57
|
+
gs = gridspec.GridSpec(2, 5)
|
|
58
|
+
|
|
59
|
+
for subtype_idx, subtype_name in enumerate(data_math_correcting_llm['subtypes']):
|
|
60
|
+
ax = fig.add_subplot(gs[subtype_idx])
|
|
61
|
+
num_methods = len(data_math_correcting_llm['methods'])
|
|
62
|
+
ax.bar(
|
|
63
|
+
np.arange(num_methods),
|
|
64
|
+
data_math_correcting_llm['result'][subtype_name],
|
|
65
|
+
color=data_math_correcting_llm['colors'],
|
|
66
|
+
label=data_math_correcting_llm['methods'],
|
|
67
|
+
)
|
|
68
|
+
if subtype_idx == 0:
|
|
69
|
+
handles, labels = ax.get_legend_handles_labels()
|
|
70
|
+
|
|
71
|
+
ax.set_title(data_math_correcting_llm['subtypes'][subtype_idx], fontsize=30, pad=36)
|
|
72
|
+
ax.set_ylabel('Probability', fontsize=30, labelpad=12)
|
|
73
|
+
ax.set_ylim([0, 1])
|
|
74
|
+
ax.set_xticks([])
|
|
75
|
+
|
|
76
|
+
for subtype_idx, subtype_name in enumerate(data_math_correcting_human['subtypes']):
|
|
77
|
+
ax = fig.add_subplot(gs[5 + subtype_idx])
|
|
78
|
+
num_methods = len(data_math_correcting_human['methods'])
|
|
79
|
+
ax.bar(
|
|
80
|
+
np.arange(num_methods),
|
|
81
|
+
data_math_correcting_human['result'][subtype_name],
|
|
82
|
+
color=data_math_correcting_human['colors'],
|
|
83
|
+
label=data_math_correcting_human['methods'],
|
|
84
|
+
)
|
|
85
|
+
|
|
86
|
+
ax.set_title(data_math_correcting_human['subtypes'][subtype_idx], fontsize=30, pad=36)
|
|
87
|
+
ax.set_ylabel('Probability', fontsize=30, labelpad=12)
|
|
88
|
+
ax.set_ylim([0, 1])
|
|
89
|
+
ax.set_xticks([])
|
|
90
|
+
|
|
91
|
+
ax = fig.add_subplot(gs[8:])
|
|
92
|
+
ax.legend(handles, labels, fontsize=30, loc='center', frameon=False)
|
|
93
|
+
ax.set_axis_off()
|
|
94
|
+
|
|
95
|
+
fig.tight_layout(pad=2)
|
|
96
|
+
|
|
97
|
+
os.makedirs('./figures/', exist_ok=True)
|
|
98
|
+
fig.savefig('./figures/selfcorrection_math.png', dpi=300)
|
|
99
|
+
plt.close(fig)
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import os
|
|
2
|
+
import numpy as np
|
|
3
|
+
from matplotlib import pyplot as plt
|
|
4
|
+
import seaborn as sns
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
DATA = {
|
|
8
|
+
'clinical_stage': [
|
|
9
|
+
'Benchmark\nEvaluation', 'Expert\nEvaluation', 'Retrospective\nClinical Validation',
|
|
10
|
+
'Prospective\nPilot Study', 'Full\nClinical Trial',
|
|
11
|
+
],
|
|
12
|
+
'pub_by_category':
|
|
13
|
+
{
|
|
14
|
+
'Clinical Workflow': {
|
|
15
|
+
'Screening or Diagnosis': [10, 7, 10, 3, 0],
|
|
16
|
+
'Report Generation': [2, 3, 3, 0, 0],
|
|
17
|
+
'Treatment Planning or\nRecommendation': [2, 3, 3, 2, 0],
|
|
18
|
+
},
|
|
19
|
+
'Patient Support': {
|
|
20
|
+
'Patient Question Answering': [5, 13, 1, 1, 0],
|
|
21
|
+
'After Visit or Discharge\nSummary Generation': [0, 2, 0, 0, 0],
|
|
22
|
+
'Consultation or Interview': [0, 1, 1, 0, 0],
|
|
23
|
+
'Patient Education\nMaterial Generation': [1, 6, 0, 0, 0],
|
|
24
|
+
'Physician Recommendation': [0, 1, 0, 0, 0],
|
|
25
|
+
},
|
|
26
|
+
'Education and Training': {
|
|
27
|
+
'Exam Taking': [19, 5, 0, 0, 0],
|
|
28
|
+
'Medical Education and\nLearning Support': [3, 5, 0, 0, 0],
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
def plot_heatmap(fig_name: str):
|
|
34
|
+
plt.rcParams['text.usetex'] = True
|
|
35
|
+
plt.rcParams['font.family'] = 'helvetica'
|
|
36
|
+
plt.rcParams['font.size'] = 16
|
|
37
|
+
plt.rcParams['axes.spines.right'] = False
|
|
38
|
+
plt.rcParams['axes.spines.top'] = False
|
|
39
|
+
plt.rcParams['axes.linewidth'] = 2
|
|
40
|
+
|
|
41
|
+
os.makedirs(os.path.dirname(fig_name), exist_ok=True)
|
|
42
|
+
fig = plt.figure(figsize=(14, 10))
|
|
43
|
+
|
|
44
|
+
ax = fig.add_subplot(1, 1, 1)
|
|
45
|
+
category_count_arr, category_arr = [], []
|
|
46
|
+
subcategory_arr = []
|
|
47
|
+
value_arr = []
|
|
48
|
+
for category in DATA['pub_by_category']:
|
|
49
|
+
subcategories = DATA['pub_by_category'][category].keys()
|
|
50
|
+
category_count_arr.append(len(subcategories))
|
|
51
|
+
category_arr.append(category)
|
|
52
|
+
for subcategory in subcategories:
|
|
53
|
+
value = DATA['pub_by_category'][category][subcategory]
|
|
54
|
+
subcategory_arr.append(subcategory)
|
|
55
|
+
value_arr.append(value)
|
|
56
|
+
value_arr = np.stack(value_arr, axis=0)
|
|
57
|
+
for loc, item in enumerate(subcategory_arr):
|
|
58
|
+
item += '\n' + rf'($n={value_arr[loc, :].sum()}$)'
|
|
59
|
+
subcategory_arr[loc] = item
|
|
60
|
+
stage_arr = DATA['clinical_stage']
|
|
61
|
+
for loc, item in enumerate(stage_arr):
|
|
62
|
+
item += '\n' + rf'($n={value_arr[:, loc].sum()}$)'
|
|
63
|
+
stage_arr[loc] = item
|
|
64
|
+
|
|
65
|
+
hm = sns.heatmap(value_arr, annot=True, vmin=0, vmax=20, fmt='d', cmap='Reds',
|
|
66
|
+
linewidths=1, linecolor='white', ax=ax, cbar=True)
|
|
67
|
+
cbar = hm.collections[0].colorbar
|
|
68
|
+
cbar.set_ticks([0, 5, 10, 15, 20])
|
|
69
|
+
cbar.set_ticklabels([0, 5, 10, 15, 20])
|
|
70
|
+
ax.set_yticks(np.arange(len(subcategory_arr)) + 0.5)
|
|
71
|
+
ax.set_yticklabels(subcategory_arr, rotation=0)
|
|
72
|
+
ax.set_xticks(np.arange(len(stage_arr)) + 0.5)
|
|
73
|
+
ax.set_xticklabels(stage_arr, rotation=0)
|
|
74
|
+
|
|
75
|
+
fig.tight_layout(pad=2)
|
|
76
|
+
fig.savefig(fig_name, dpi=300)
|
|
77
|
+
return
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
if __name__ == '__main__':
|
|
81
|
+
plot_heatmap('./figures/composition_heatmap.png')
|