@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.
Files changed (229) hide show
  1. package/dist/index.d.ts +6 -0
  2. package/dist/index.d.ts.map +1 -0
  3. package/dist/index.js +28 -0
  4. package/dist/index.js.map +1 -0
  5. package/package.json +35 -0
  6. package/skills/01_Meta-Skills/contribute-skill/SKILL.md +277 -0
  7. package/skills/01_Meta-Skills/contribute-skills-via-pr/SKILL.md +163 -0
  8. package/skills/01_Meta-Skills/paper-to-skill/SKILL.md +435 -0
  9. package/skills/01_Meta-Skills/paper-to-skill/references/extraction-guide.md +286 -0
  10. package/skills/01_Meta-Skills/paper-to-skill/references/skill-template.md +250 -0
  11. package/skills/01_Meta-Skills/repo-to-skill/SKILL.md +289 -0
  12. package/skills/01_Meta-Skills/share-case/SKILL.md +253 -0
  13. package/skills/01_Meta-Skills/share-usage/README.md +63 -0
  14. package/skills/01_Meta-Skills/share-usage/SKILL.md +395 -0
  15. package/skills/01_Meta-Skills/verify-skill/SKILL.md +331 -0
  16. package/skills/02_Cross-Domain_Foundation/cogsci-power-analysis/SKILL.md +194 -0
  17. package/skills/02_Cross-Domain_Foundation/cogsci-power-analysis/references/effect-sizes.md +352 -0
  18. package/skills/02_Cross-Domain_Foundation/cogsci-power-analysis/references/sample-size-guide.md +407 -0
  19. package/skills/02_Cross-Domain_Foundation/cogsci-statistics/SKILL.md +361 -0
  20. package/skills/02_Cross-Domain_Foundation/cogsci-statistics/references/common-analyses.md +517 -0
  21. package/skills/02_Cross-Domain_Foundation/cogsci-visualization/SKILL.md +292 -0
  22. package/skills/02_Cross-Domain_Foundation/cogsci-visualization/references/plot-recipes.md +709 -0
  23. package/skills/02_Cross-Domain_Foundation/research-literacy/SKILL.md +286 -0
  24. package/skills/02_Cross-Domain_Foundation/research-literacy/references/common-assumptions.md +320 -0
  25. package/skills/02_Cross-Domain_Foundation/research-literacy/references/planning-template.md +143 -0
  26. package/skills/03_Cognitive_Psychology/alternative-uses-task-designer/SKILL.md +197 -0
  27. package/skills/03_Cognitive_Psychology/alternative-uses-task-designer/references/instruction-templates.md +60 -0
  28. package/skills/03_Cognitive_Psychology/cognitive-paradigm-design/SKILL.md +246 -0
  29. package/skills/03_Cognitive_Psychology/cognitive-paradigm-design/references/classic-paradigms.md +435 -0
  30. package/skills/03_Cognitive_Psychology/cognitive-paradigm-design/references/design-principles.md +256 -0
  31. package/skills/03_Cognitive_Psychology/creativity-self-efficacy-mediation/SKILL.md +270 -0
  32. package/skills/03_Cognitive_Psychology/creativity-self-efficacy-mediation/references/lavaan-templates.md +172 -0
  33. package/skills/03_Cognitive_Psychology/divergent-thinking-scoring/SKILL.md +238 -0
  34. package/skills/03_Cognitive_Psychology/divergent-thinking-scoring/references/scoring-rubric.md +143 -0
  35. package/skills/03_Cognitive_Psychology/drift-diffusion-model/SKILL.md +203 -0
  36. package/skills/03_Cognitive_Psychology/drift-diffusion-model/references/fitting-guide.md +571 -0
  37. package/skills/03_Cognitive_Psychology/drift-diffusion-model/references/model-variants.md +427 -0
  38. package/skills/03_Cognitive_Psychology/evidence-accumulation-selector/SKILL.md +310 -0
  39. package/skills/03_Cognitive_Psychology/evidence-accumulation-selector/references/ez-diffusion-formulas.md +137 -0
  40. package/skills/03_Cognitive_Psychology/signal-detection-analysis/SKILL.md +300 -0
  41. package/skills/03_Cognitive_Psychology/signal-detection-analysis/references/application-guide.md +278 -0
  42. package/skills/03_Cognitive_Psychology/signal-detection-analysis/references/sdt-formulas.md +318 -0
  43. package/skills/03_Cognitive_Psychology/visual-search-array-generator/SKILL.md +283 -0
  44. package/skills/03_Cognitive_Psychology/visual-search-array-generator/references/array-generation-parameters.yaml +111 -0
  45. package/skills/04_Psycholinguistics/reading-time-analysis/SKILL.md +301 -0
  46. package/skills/04_Psycholinguistics/reading-time-analysis/references/measure-computation-guide.md +195 -0
  47. package/skills/04_Psycholinguistics/self-paced-reading-designer/SKILL.md +257 -0
  48. package/skills/04_Psycholinguistics/self-paced-reading-designer/references/analysis-guide.md +356 -0
  49. package/skills/04_Psycholinguistics/self-paced-reading-designer/references/region-segmentation.md +266 -0
  50. package/skills/04_Psycholinguistics/sentence-stimulus-norming/SKILL.md +346 -0
  51. package/skills/04_Psycholinguistics/sentence-stimulus-norming/references/lexical-databases-guide.md +184 -0
  52. package/skills/05_EEG_ERP/eeg-paradigm-designer/SKILL.md +226 -0
  53. package/skills/05_EEG_ERP/eeg-paradigm-designer/references/component-paradigm-map.md +276 -0
  54. package/skills/05_EEG_ERP/eeg-paradigm-designer/references/timing-parameters.md +244 -0
  55. package/skills/05_EEG_ERP/eeg-preprocessing-pipeline-guide/SKILL.md +367 -0
  56. package/skills/05_EEG_ERP/eeg-preprocessing-pipeline-guide/references/parameter-lookup-tables.md +138 -0
  57. package/skills/05_EEG_ERP/erp-analysis/SKILL.md +185 -0
  58. package/skills/05_EEG_ERP/erp-analysis/references/erp-components.md +447 -0
  59. package/skills/05_EEG_ERP/erp-analysis/references/preprocessing-pipeline.md +277 -0
  60. package/skills/05_EEG_ERP/erp-analysis/references/statistical-approaches.md +351 -0
  61. package/skills/05_EEG_ERP/mne-python-guide/SKILL.md +174 -0
  62. package/skills/05_EEG_ERP/mne-python-guide/references/decoding.md +178 -0
  63. package/skills/05_EEG_ERP/mne-python-guide/references/io_formats.md +160 -0
  64. package/skills/05_EEG_ERP/mne-python-guide/references/preprocessing.md +259 -0
  65. package/skills/05_EEG_ERP/mne-python-guide/references/simulation.md +173 -0
  66. package/skills/05_EEG_ERP/mne-python-guide/references/source_localization.md +234 -0
  67. package/skills/05_EEG_ERP/mne-python-guide/references/statistics.md +196 -0
  68. package/skills/05_EEG_ERP/mne-python-guide/references/time_frequency.md +165 -0
  69. package/skills/05_EEG_ERP/mne-python-guide/references/visualization.md +175 -0
  70. package/skills/06_fMRI_Neuroimaging/brain-connectivity-modeler/SKILL.md +317 -0
  71. package/skills/06_fMRI_Neuroimaging/brain-connectivity-modeler/references/method-implementation-guide.md +116 -0
  72. package/skills/06_fMRI_Neuroimaging/fmri-glm-analysis-guide/SKILL.md +296 -0
  73. package/skills/06_fMRI_Neuroimaging/fmri-glm-analysis-guide/references/design-matrix-guide.md +214 -0
  74. package/skills/06_fMRI_Neuroimaging/fmri-glm-analysis-guide/references/statistical-inference.md +288 -0
  75. package/skills/06_fMRI_Neuroimaging/fmri-preprocessing-pipeline-guide/SKILL.md +274 -0
  76. package/skills/06_fMRI_Neuroimaging/fmri-preprocessing-pipeline-guide/references/quality-control.md +336 -0
  77. package/skills/06_fMRI_Neuroimaging/fmri-preprocessing-pipeline-guide/references/step-by-step-pipeline.md +380 -0
  78. package/skills/06_fMRI_Neuroimaging/fmri-task-design-guide/SKILL.md +264 -0
  79. package/skills/06_fMRI_Neuroimaging/fmri-task-design-guide/references/design-optimization-examples.md +114 -0
  80. package/skills/06_fMRI_Neuroimaging/neural-decoding-analysis/SKILL.md +273 -0
  81. package/skills/06_fMRI_Neuroimaging/neural-decoding-analysis/references/decoding-methods.md +170 -0
  82. package/skills/06_fMRI_Neuroimaging/neural-decoding-analysis/references/rsa-guide.md +266 -0
  83. package/skills/06_fMRI_Neuroimaging/pycortex-guide/SKILL.md +123 -0
  84. package/skills/06_fMRI_Neuroimaging/pycortex-guide/references/database-subjects.md +179 -0
  85. package/skills/06_fMRI_Neuroimaging/pycortex-guide/references/dataset-types.md +208 -0
  86. package/skills/06_fMRI_Neuroimaging/pycortex-guide/references/freesurfer-fmriprep.md +162 -0
  87. package/skills/06_fMRI_Neuroimaging/pycortex-guide/references/mapping-transforms.md +181 -0
  88. package/skills/06_fMRI_Neuroimaging/pycortex-guide/references/mni-utils.md +207 -0
  89. package/skills/06_fMRI_Neuroimaging/pycortex-guide/references/surface-analysis.md +219 -0
  90. package/skills/06_fMRI_Neuroimaging/pycortex-guide/references/visualization.md +251 -0
  91. package/skills/07_Computational_Modeling/act-r-model-builder/SKILL.md +297 -0
  92. package/skills/07_Computational_Modeling/act-r-model-builder/references/model-patterns.md +197 -0
  93. package/skills/07_Computational_Modeling/act-r-model-builder/references/parameter-table.yaml +204 -0
  94. package/skills/07_Computational_Modeling/bayesian-cognitive-model-builder/SKILL.md +294 -0
  95. package/skills/07_Computational_Modeling/bayesian-cognitive-model-builder/references/diagnostics-checklist.md +351 -0
  96. package/skills/07_Computational_Modeling/bayesian-cognitive-model-builder/references/prior-selection-guide.md +241 -0
  97. package/skills/07_Computational_Modeling/parameter-recovery-checker/SKILL.md +269 -0
  98. package/skills/07_Computational_Modeling/parameter-recovery-checker/references/recovery-diagnostics.md +207 -0
  99. package/skills/08_Computational_Neuroscience/brain-connectivity-modeler/SKILL.md +317 -0
  100. package/skills/08_Computational_Neuroscience/brain-connectivity-modeler/references/method-implementation-guide.md +116 -0
  101. package/skills/08_Computational_Neuroscience/neural-decoding-analysis/SKILL.md +273 -0
  102. package/skills/08_Computational_Neuroscience/neural-decoding-analysis/references/decoding-methods.md +170 -0
  103. package/skills/08_Computational_Neuroscience/neural-decoding-analysis/references/rsa-guide.md +266 -0
  104. package/skills/08_Computational_Neuroscience/neural-population-analysis-guide/SKILL.md +305 -0
  105. package/skills/08_Computational_Neuroscience/neural-population-analysis-guide/references/data-requirements.md +60 -0
  106. package/skills/08_Computational_Neuroscience/neural-population-analysis-guide/references/method-comparison.md +151 -0
  107. package/skills/08_Computational_Neuroscience/spiking-network-model-builder/SKILL.md +376 -0
  108. package/skills/08_Computational_Neuroscience/spiking-network-model-builder/references/hh-parameters.md +117 -0
  109. package/skills/08_Computational_Neuroscience/spiking-network-model-builder/references/network-regimes.md +130 -0
  110. package/skills/09_Cellular_Molecular_Neuroscience/calcium-imaging-analysis-guide/SKILL.md +258 -0
  111. package/skills/09_Cellular_Molecular_Neuroscience/calcium-imaging-analysis-guide/references/indicator-parameters.md +242 -0
  112. package/skills/09_Cellular_Molecular_Neuroscience/calcium-imaging-analysis-guide/references/pipeline-details.md +211 -0
  113. package/skills/09_Cellular_Molecular_Neuroscience/optogenetics-protocol-designer/SKILL.md +261 -0
  114. package/skills/09_Cellular_Molecular_Neuroscience/optogenetics-protocol-designer/references/opsin-catalog.md +124 -0
  115. package/skills/09_Cellular_Molecular_Neuroscience/optogenetics-protocol-designer/references/stimulation-parameters.md +304 -0
  116. package/skills/10_Clinical_Neuropsychology/lesion-symptom-mapping-guide/SKILL.md +367 -0
  117. package/skills/10_Clinical_Neuropsychology/lesion-symptom-mapping-guide/references/disconnection-guide.md +152 -0
  118. package/skills/10_Clinical_Neuropsychology/lesion-symptom-mapping-guide/references/vlsm-pipeline.md +182 -0
  119. package/skills/10_Clinical_Neuropsychology/neuropsych-battery-selector/SKILL.md +250 -0
  120. package/skills/10_Clinical_Neuropsychology/neuropsych-battery-selector/references/deficit-profiles.md +302 -0
  121. package/skills/10_Clinical_Neuropsychology/neuropsych-battery-selector/references/test-catalog.md +304 -0
  122. package/skills/11_Developmental_Cognition/infant-looking-time-designer/SKILL.md +345 -0
  123. package/skills/11_Developmental_Cognition/infant-looking-time-designer/references/age-parameters.yaml +186 -0
  124. package/skills/12_Social_Cognition/tom-task-selector/SKILL.md +379 -0
  125. package/skills/12_Social_Cognition/tom-task-selector/references/task-database.md +317 -0
  126. package/skills/13_Visualization/nature-figure/README.md +442 -0
  127. package/skills/13_Visualization/nature-figure/SKILL.md +60 -0
  128. package/skills/13_Visualization/nature-figure/assets/chart-atlas/atlas-01-bar-charts.png +0 -0
  129. package/skills/13_Visualization/nature-figure/assets/chart-atlas/atlas-02-line-trends.png +0 -0
  130. package/skills/13_Visualization/nature-figure/assets/chart-atlas/atlas-03-heatmaps.png +0 -0
  131. package/skills/13_Visualization/nature-figure/assets/chart-atlas/atlas-04-scatter-bubble.png +0 -0
  132. package/skills/13_Visualization/nature-figure/assets/chart-atlas/atlas-05-radar-polar.png +0 -0
  133. package/skills/13_Visualization/nature-figure/assets/chart-atlas/atlas-06-distributions.png +0 -0
  134. package/skills/13_Visualization/nature-figure/assets/chart-atlas/atlas-07-forest-interval.png +0 -0
  135. package/skills/13_Visualization/nature-figure/assets/chart-atlas/atlas-08-area-stacked.png +0 -0
  136. package/skills/13_Visualization/nature-figure/assets/chart-atlas/atlas-09-image-plates.png +0 -0
  137. package/skills/13_Visualization/nature-figure/assets/chart-atlas/atlas-10-network-matrix.png +0 -0
  138. package/skills/13_Visualization/nature-figure/assets/figures4papers/assets/Dispersion_motivation.png +0 -0
  139. package/skills/13_Visualization/nature-figure/assets/figures4papers/assets/Dispersion_observation.png +0 -0
  140. package/skills/13_Visualization/nature-figure/assets/figures4papers/assets/Dispersion_observation_distillation.png +0 -0
  141. package/skills/13_Visualization/nature-figure/assets/figures4papers/assets/ImmunoStruct_contrastive.png +0 -0
  142. package/skills/13_Visualization/nature-figure/assets/figures4papers/assets/ImmunoStruct_results_CEDAR.png +0 -0
  143. package/skills/13_Visualization/nature-figure/assets/figures4papers/assets/ImmunoStruct_results_IEDB.png +0 -0
  144. package/skills/13_Visualization/nature-figure/assets/figures4papers/assets/ImmunoStruct_schematic.png +0 -0
  145. package/skills/13_Visualization/nature-figure/assets/figures4papers/assets/RNAGenScape_schematic.png +0 -0
  146. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_CellSpliceNet/figures/ablation.png +0 -0
  147. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_CellSpliceNet/figures/comparison.png +0 -0
  148. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_CellSpliceNet/plot_ablation.py +86 -0
  149. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_CellSpliceNet/plot_comparison.py +109 -0
  150. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_Cflows/diffusion_swiss_roll.py +97 -0
  151. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_Cflows/figures/diffusion_swiss_roll.png +0 -0
  152. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_Cflows/figures/fig2_comparison_GeneRegulatory.pdf +0 -0
  153. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_Cflows/figures/fig2_comparison_GeneRegulatory.png +0 -0
  154. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_Cflows/figures/fig2_comparison_Trajectory.pdf +0 -0
  155. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_Cflows/figures/fig2_comparison_Trajectory.png +0 -0
  156. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_Cflows/figures/figX_comparison_Ablation.pdf +0 -0
  157. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_Cflows/figures/figX_comparison_Ablation.png +0 -0
  158. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_Cflows/plot_comparison_Ablation.py +64 -0
  159. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_Cflows/plot_comparison_GeneRegulatory.py +74 -0
  160. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_Cflows/plot_comparison_Trajectory.py +74 -0
  161. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_Dispersion/figures/idea.png +0 -0
  162. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_Dispersion/figures/illustration.png +0 -0
  163. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_Dispersion/plot_idea.py +76 -0
  164. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_Dispersion/plot_illustration.py +404 -0
  165. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_FPGM/figures/freq_prior.png +0 -0
  166. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_FPGM/plot_freq_prior.py +146 -0
  167. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_ImmunoStruct/figures/bars_ablation_Cancer.png +0 -0
  168. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_ImmunoStruct/figures/bars_ablation_IEDB.png +0 -0
  169. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_ImmunoStruct/figures/bars_comparison_Cancer.png +0 -0
  170. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_ImmunoStruct/figures/bars_comparison_IEDB.png +0 -0
  171. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_ImmunoStruct/plot_bars.py +216 -0
  172. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_ImmunoStruct/raw_data.py +125 -0
  173. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_RNAGenScape/figures/manifold.png +0 -0
  174. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_RNAGenScape/figures/manifold_holes.png +0 -0
  175. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_RNAGenScape/figures/results_comparison_optimization.png +0 -0
  176. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_RNAGenScape/figures/results_comparison_speed.png +0 -0
  177. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_RNAGenScape/figures/results_sweep.png +0 -0
  178. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_RNAGenScape/plot_comparison.py +228 -0
  179. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_RNAGenScape/plot_hole_manifold.py +82 -0
  180. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_RNAGenScape/plot_manifold.py +61 -0
  181. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_RNAGenScape/plot_sweep.py +77 -0
  182. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_VIGIL/figures/comparison_posttraining.png +0 -0
  183. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_VIGIL/figures/comparison_radar.png +0 -0
  184. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_VIGIL/plot_comparison_radar.py +173 -0
  185. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_VIGIL/plot_posttraining.py +82 -0
  186. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_brainteaser/figures/brute_force.png +0 -0
  187. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_brainteaser/figures/correctness_by_category.png +0 -0
  188. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_brainteaser/figures/correctness_by_subcategory.png +0 -0
  189. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_brainteaser/figures/rewriting.png +0 -0
  190. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_brainteaser/figures/selfcorrection_math.png +0 -0
  191. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_brainteaser/plot_brute_force.py +248 -0
  192. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_brainteaser/plot_correctness_by_category.py +132 -0
  193. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_brainteaser/plot_correctness_by_subcategory.py +131 -0
  194. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_brainteaser/plot_rewriting.py +105 -0
  195. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_brainteaser/plot_selfcorrection_math.py +99 -0
  196. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_ophthal_review/figures/composition_heatmap.png +0 -0
  197. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_ophthal_review/figures/trend_by_month.png +0 -0
  198. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_ophthal_review/plot_composition.py +81 -0
  199. package/skills/13_Visualization/nature-figure/assets/figures4papers/figure_ophthal_review/plot_trend.py +125 -0
  200. package/skills/13_Visualization/nature-figure/assets/gallery/fig1-material-mechanism-rich.png +0 -0
  201. package/skills/13_Visualization/nature-figure/assets/gallery/fig2-spatial-imaging-rich.png +0 -0
  202. package/skills/13_Visualization/nature-figure/assets/gallery/fig3-in-vivo-efficacy-rich.png +0 -0
  203. package/skills/13_Visualization/nature-figure/assets/gallery/fig4-single-cell-systems-rich.png +0 -0
  204. package/skills/13_Visualization/nature-figure/assets/gallery/fig5-validation-perturbation-rich.png +0 -0
  205. package/skills/13_Visualization/nature-figure/evals/evals.json +37 -0
  206. package/skills/13_Visualization/nature-figure/manifest.yaml +57 -0
  207. package/skills/13_Visualization/nature-figure/references/api.md +428 -0
  208. package/skills/13_Visualization/nature-figure/references/backend-selection.md +100 -0
  209. package/skills/13_Visualization/nature-figure/references/chart-types.md +281 -0
  210. package/skills/13_Visualization/nature-figure/references/common-patterns.md +350 -0
  211. package/skills/13_Visualization/nature-figure/references/demos.md +65 -0
  212. package/skills/13_Visualization/nature-figure/references/design-theory.md +436 -0
  213. package/skills/13_Visualization/nature-figure/references/figure-contract.md +93 -0
  214. package/skills/13_Visualization/nature-figure/references/nature-2026-observations.md +112 -0
  215. package/skills/13_Visualization/nature-figure/references/qa-contract.md +119 -0
  216. package/skills/13_Visualization/nature-figure/references/r-template-index.md +66 -0
  217. package/skills/13_Visualization/nature-figure/references/r-workflow.md +161 -0
  218. package/skills/13_Visualization/nature-figure/references/tutorials.md +251 -0
  219. package/skills/13_Visualization/nature-figure/static/core/contract.md +29 -0
  220. package/skills/13_Visualization/nature-figure/static/core/stance.md +37 -0
  221. package/skills/13_Visualization/nature-figure/static/fragments/backend/python.md +37 -0
  222. package/skills/13_Visualization/nature-figure/static/fragments/backend/r.md +44 -0
  223. package/skills/14_Writing/markdown-report-writing/SKILL.md +306 -0
  224. package/skills/14_Writing/markdown-report-writing/references/compatibility-matrix.md +72 -0
  225. package/skills/14_Writing/markdown-report-writing/references/templates.md +299 -0
  226. package/skills/15_Others/neuroimaging-power-guide/SKILL.md +324 -0
  227. package/skills/15_Others/neuroimaging-power-guide/references/effect-size-lookup-tables.md +102 -0
  228. package/skills/15_Others/neuroimaging-sample-size-calculator/SKILL.md +330 -0
  229. 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)
@@ -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')