medsci-skills 4.1.0
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/LICENSE +50 -0
- package/README.md +602 -0
- package/README_FIRST.md +27 -0
- package/bin/medsci-skills.js +159 -0
- package/installers/install-macos.command +19 -0
- package/installers/install-windows.cmd +26 -0
- package/installers/install-windows.ps1 +17 -0
- package/installers/install.py +218 -0
- package/metadata/skills_catalog.json +452 -0
- package/package.json +48 -0
- package/skills/academic-aio/SKILL.md +408 -0
- package/skills/academic-aio/references/case_studies/kjr_mllm_2025.md +82 -0
- package/skills/academic-aio/references/checklists/AIO_GENERAL.md +354 -0
- package/skills/academic-aio/references/journal_summarybox_templates.yaml +126 -0
- package/skills/academic-aio/references/oac_funding_checklist.yaml +129 -0
- package/skills/academic-aio/references/reporting_guideline_mapping.md +39 -0
- package/skills/academic-aio/references/schema_markup_templates/CodeRepository.jsonld +32 -0
- package/skills/academic-aio/references/schema_markup_templates/Dataset.jsonld +36 -0
- package/skills/academic-aio/references/schema_markup_templates/Person.jsonld +30 -0
- package/skills/academic-aio/references/schema_markup_templates/README.md +43 -0
- package/skills/academic-aio/references/schema_markup_templates/ScholarlyArticle.jsonld +55 -0
- package/skills/academic-aio/scripts/batch_metadata_audit.py +169 -0
- package/skills/academic-aio/scripts/validate_schema.py +118 -0
- package/skills/academic-aio/skill.yml +36 -0
- package/skills/academic-aio/templates/aio_audit_checklist.md.j2 +108 -0
- package/skills/add-journal/SKILL.md +482 -0
- package/skills/add-journal/skill.yml +33 -0
- package/skills/analyze-stats/SKILL.md +598 -0
- package/skills/analyze-stats/references/analysis_guides/missing_data.md +109 -0
- package/skills/analyze-stats/references/analysis_guides/nhis_icd10_mapping.md +247 -0
- package/skills/analyze-stats/references/analysis_guides/propensity_score.md +132 -0
- package/skills/analyze-stats/references/analysis_guides/regression.md +115 -0
- package/skills/analyze-stats/references/analysis_guides/repeated_measures.md +160 -0
- package/skills/analyze-stats/references/analysis_guides/survey_weighted.md +366 -0
- package/skills/analyze-stats/references/analysis_guides/test_selection.md +86 -0
- package/skills/analyze-stats/references/style/figure_style.mplstyle +69 -0
- package/skills/analyze-stats/references/style/theme_publication.R +147 -0
- package/skills/analyze-stats/references/table-standards/journal-profiles/ajr.yaml +51 -0
- package/skills/analyze-stats/references/table-standards/journal-profiles/european_radiology.yaml +55 -0
- package/skills/analyze-stats/references/table-standards/journal-profiles/jama.yaml +66 -0
- package/skills/analyze-stats/references/table-standards/journal-profiles/lancet.yaml +57 -0
- package/skills/analyze-stats/references/table-standards/journal-profiles/nejm.yaml +51 -0
- package/skills/analyze-stats/references/table-standards/journal-profiles/radiology.yaml +66 -0
- package/skills/analyze-stats/references/table-standards/table-standards.md +287 -0
- package/skills/analyze-stats/references/table-standards/table-types/diagnostic_accuracy.md +36 -0
- package/skills/analyze-stats/references/table-standards/table-types/meta_analysis.md +58 -0
- package/skills/analyze-stats/references/table-standards/table-types/model_comparison.md +36 -0
- package/skills/analyze-stats/references/table-standards/table-types/regression_results.md +50 -0
- package/skills/analyze-stats/references/table-standards/table-types/table1_demographics.md +51 -0
- package/skills/analyze-stats/references/table-standards/tool-comparison.md +79 -0
- package/skills/analyze-stats/references/templates/agreement_analysis.py +436 -0
- package/skills/analyze-stats/references/templates/dca_plot.R +237 -0
- package/skills/analyze-stats/references/templates/diagnostic_accuracy.py +401 -0
- package/skills/analyze-stats/references/templates/dta_meta_analysis.R +384 -0
- package/skills/analyze-stats/references/templates/forest_plot.py +412 -0
- package/skills/analyze-stats/references/templates/likert_summary.py +356 -0
- package/skills/analyze-stats/references/templates/meta_analysis.R +365 -0
- package/skills/analyze-stats/references/templates/propensity_score.py +478 -0
- package/skills/analyze-stats/references/templates/regression.py +425 -0
- package/skills/analyze-stats/references/templates/repeated_measures.py +434 -0
- package/skills/analyze-stats/references/templates/sample_size.R +382 -0
- package/skills/analyze-stats/references/templates/survey_weighted_analysis.py +411 -0
- package/skills/analyze-stats/references/templates/survival_analysis.py +325 -0
- package/skills/analyze-stats/references/templates/table1_demographics.py +287 -0
- package/skills/analyze-stats/scripts/check_generated_code.py +335 -0
- package/skills/analyze-stats/skill.yml +38 -0
- package/skills/analyze-stats/tests/fixtures/gen_bad.R +16 -0
- package/skills/analyze-stats/tests/fixtures/gen_bad.py +24 -0
- package/skills/analyze-stats/tests/fixtures/gen_clean.py +21 -0
- package/skills/analyze-stats/tests/test_generated_code.sh +59 -0
- package/skills/analyze-stats/tests/test_survival_template.sh +53 -0
- package/skills/author-strategy/SKILL.md +117 -0
- package/skills/author-strategy/analyze_patterns.py +303 -0
- package/skills/author-strategy/fetch_pubmed.py +374 -0
- package/skills/author-strategy/skill.yml +34 -0
- package/skills/batch-cohort/SKILL.md +223 -0
- package/skills/batch-cohort/references/base_template_knhanes.R +210 -0
- package/skills/batch-cohort/references/batch_template_generator.R +222 -0
- package/skills/batch-cohort/references/variable_coding_registry.md +136 -0
- package/skills/batch-cohort/skill.yml +35 -0
- package/skills/calc-sample-size/SKILL.md +491 -0
- package/skills/calc-sample-size/references/formulas.md +655 -0
- package/skills/calc-sample-size/references/observational_cohort.md +49 -0
- package/skills/calc-sample-size/skill.yml +51 -0
- package/skills/check-reporting/SKILL.md +534 -0
- package/skills/check-reporting/references/LICENSES.md +41 -0
- package/skills/check-reporting/references/checklists/AMSTAR2.md +54 -0
- package/skills/check-reporting/references/checklists/ARRIVE_2.md +234 -0
- package/skills/check-reporting/references/checklists/CARE.md +102 -0
- package/skills/check-reporting/references/checklists/CLAIM_2024.md +128 -0
- package/skills/check-reporting/references/checklists/CLEAR.md +113 -0
- package/skills/check-reporting/references/checklists/CONSORT.md +86 -0
- package/skills/check-reporting/references/checklists/COSMIN_RoB.md +136 -0
- package/skills/check-reporting/references/checklists/GRRAS.md +61 -0
- package/skills/check-reporting/references/checklists/MI_CLEAR_LLM.md +167 -0
- package/skills/check-reporting/references/checklists/MOOSE.md +85 -0
- package/skills/check-reporting/references/checklists/NOS.md +88 -0
- package/skills/check-reporting/references/checklists/PRISMA_2020.md +135 -0
- package/skills/check-reporting/references/checklists/PRISMA_DTA.md +36 -0
- package/skills/check-reporting/references/checklists/PRISMA_P.md +56 -0
- package/skills/check-reporting/references/checklists/PROBAST.md +75 -0
- package/skills/check-reporting/references/checklists/PROBAST_AI.md +130 -0
- package/skills/check-reporting/references/checklists/QUADAS2.md +77 -0
- package/skills/check-reporting/references/checklists/QUADAS_C.md +131 -0
- package/skills/check-reporting/references/checklists/ROBINS_E.md +179 -0
- package/skills/check-reporting/references/checklists/ROBINS_I.md +87 -0
- package/skills/check-reporting/references/checklists/ROBIS.md +114 -0
- package/skills/check-reporting/references/checklists/ROB_ME.md +126 -0
- package/skills/check-reporting/references/checklists/RoB2.md +79 -0
- package/skills/check-reporting/references/checklists/RoB_NMA.md +96 -0
- package/skills/check-reporting/references/checklists/SPIRIT.md +112 -0
- package/skills/check-reporting/references/checklists/SQUIRE_2.md +68 -0
- package/skills/check-reporting/references/checklists/STARD.md +129 -0
- package/skills/check-reporting/references/checklists/STARD_AI.md +211 -0
- package/skills/check-reporting/references/checklists/STROBE.md +80 -0
- package/skills/check-reporting/references/checklists/SWiM.md +33 -0
- package/skills/check-reporting/references/checklists/TRIPOD.md +157 -0
- package/skills/check-reporting/references/checklists/TRIPOD_AI.md +140 -0
- package/skills/check-reporting/references/step4c_registration_timing.md +93 -0
- package/skills/check-reporting/references/step4d_prisma_figure_audit.md +137 -0
- package/skills/check-reporting/scripts/check_checklist_exists.py +183 -0
- package/skills/check-reporting/scripts/check_checklist_version.py +168 -0
- package/skills/check-reporting/scripts/check_framework_naming.py +206 -0
- package/skills/check-reporting/scripts/check_prisma_figure.py +209 -0
- package/skills/check-reporting/scripts/prisma_cascade_check.py +274 -0
- package/skills/check-reporting/skill.yml +41 -0
- package/skills/check-reporting/tests/fixtures/framework_bad.md +8 -0
- package/skills/check-reporting/tests/fixtures/framework_clean.md +7 -0
- package/skills/check-reporting/tests/test_checklist_fail_fast.sh +77 -0
- package/skills/check-reporting/tests/test_checklist_version.sh +72 -0
- package/skills/check-reporting/tests/test_framework_naming.sh +45 -0
- package/skills/check-reporting/tests/test_prisma_cascade.sh +104 -0
- package/skills/clean-data/SKILL.md +180 -0
- package/skills/clean-data/references/cleaning_patterns.md +299 -0
- package/skills/clean-data/references/profiling_template.py +304 -0
- package/skills/clean-data/scripts/check_structural_zero.py +174 -0
- package/skills/clean-data/skill.yml +35 -0
- package/skills/clean-data/tests/fixtures/smoking.csv +8 -0
- package/skills/clean-data/tests/test_structural_zero.sh +49 -0
- package/skills/cross-national/SKILL.md +264 -0
- package/skills/cross-national/skill.yml +37 -0
- package/skills/define-variables/SKILL.md +146 -0
- package/skills/define-variables/references/common_definitions.md +190 -0
- package/skills/define-variables/skill.yml +34 -0
- package/skills/define-variables/templates/variable_operationalization.md +64 -0
- package/skills/deidentify/SKILL.md +203 -0
- package/skills/deidentify/deidentify.py +1224 -0
- package/skills/deidentify/locales/_template.json +45 -0
- package/skills/deidentify/locales/au.json +43 -0
- package/skills/deidentify/locales/ca.json +44 -0
- package/skills/deidentify/locales/cn.json +47 -0
- package/skills/deidentify/locales/de.json +48 -0
- package/skills/deidentify/locales/fr.json +48 -0
- package/skills/deidentify/locales/in.json +48 -0
- package/skills/deidentify/locales/jp.json +48 -0
- package/skills/deidentify/locales/kr.json +48 -0
- package/skills/deidentify/locales/uk.json +45 -0
- package/skills/deidentify/locales/us.json +43 -0
- package/skills/deidentify/references/date_shift_guide.md +82 -0
- package/skills/deidentify/references/hipaa_18_identifiers.md +48 -0
- package/skills/deidentify/references/korean_phi_patterns.md +135 -0
- package/skills/deidentify/skill.yml +43 -0
- package/skills/deidentify/tests/README.md +26 -0
- package/skills/deidentify/tests/test_clean.csv +16 -0
- package/skills/deidentify/tests/test_edge_cases.csv +11 -0
- package/skills/deidentify/tests/test_phi_korean.csv +11 -0
- package/skills/design-ai-benchmarking/SKILL.md +214 -0
- package/skills/design-ai-benchmarking/references/benchmark_export_schema.json +69 -0
- package/skills/design-ai-benchmarking/references/elicitation_rubric_template.md +37 -0
- package/skills/design-ai-benchmarking/skill.yml +38 -0
- package/skills/design-study/SKILL.md +298 -0
- package/skills/design-study/skill.yml +33 -0
- package/skills/fill-icmje-coi/SKILL.md +216 -0
- package/skills/fill-icmje-coi/scripts/fill_icmje_coi.py +140 -0
- package/skills/fill-icmje-coi/skill.yml +35 -0
- package/skills/fill-icmje-coi/templates/icmje_coi_seed_synthetic.docx +0 -0
- package/skills/fill-protocol/SKILL.md +248 -0
- package/skills/fill-protocol/examples/example_irb_template.yaml +53 -0
- package/skills/fill-protocol/references/best_practices.md +121 -0
- package/skills/fill-protocol/scripts/doc_to_docx.py +111 -0
- package/skills/fill-protocol/scripts/fill_form.py +611 -0
- package/skills/fill-protocol/scripts/inspect_template.py +61 -0
- package/skills/fill-protocol/setup.sh +162 -0
- package/skills/fill-protocol/skill.yml +37 -0
- package/skills/find-cohort-gap/SKILL.md +309 -0
- package/skills/find-cohort-gap/references/cohort_profile_template.md +93 -0
- package/skills/find-cohort-gap/references/onepager_template.md +84 -0
- package/skills/find-cohort-gap/references/pattern_scoring_rubric.md +169 -0
- package/skills/find-cohort-gap/references/saturation_query_templates.md +143 -0
- package/skills/find-cohort-gap/skill.yml +35 -0
- package/skills/find-journal/POLICY.md +87 -0
- package/skills/find-journal/SKILL.md +340 -0
- package/skills/find-journal/references/journal_profiles/AJNR.md +29 -0
- package/skills/find-journal/references/journal_profiles/AJR.md +30 -0
- package/skills/find-journal/references/journal_profiles/Abdominal_Radiology.md +30 -0
- package/skills/find-journal/references/journal_profiles/Academic_Radiology.md +30 -0
- package/skills/find-journal/references/journal_profiles/Annals_of_Internal_Medicine.md +33 -0
- package/skills/find-journal/references/journal_profiles/Artificial_Intelligence_in_Medicine.md +28 -0
- package/skills/find-journal/references/journal_profiles/BMC_Medicine.md +31 -0
- package/skills/find-journal/references/journal_profiles/British_Journal_of_Radiology.md +39 -0
- package/skills/find-journal/references/journal_profiles/CVIR.md +30 -0
- package/skills/find-journal/references/journal_profiles/Chest.md +39 -0
- package/skills/find-journal/references/journal_profiles/Clinical_Radiology.md +30 -0
- package/skills/find-journal/references/journal_profiles/Clinical_and_Molecular_Hepatology.md +32 -0
- package/skills/find-journal/references/journal_profiles/Diabetes_Metabolism_Journal.md +36 -0
- package/skills/find-journal/references/journal_profiles/Diagnostic_and_Interventional_Radiology.md +32 -0
- package/skills/find-journal/references/journal_profiles/Endocrinology_and_Metabolism.md +37 -0
- package/skills/find-journal/references/journal_profiles/European_Journal_of_Preventive_Cardiology.md +39 -0
- package/skills/find-journal/references/journal_profiles/European_Radiology.md +29 -0
- package/skills/find-journal/references/journal_profiles/Hepatology_Communications.md +40 -0
- package/skills/find-journal/references/journal_profiles/Hepatology_International.md +37 -0
- package/skills/find-journal/references/journal_profiles/IEEE_JBHI.md +28 -0
- package/skills/find-journal/references/journal_profiles/IEEE_TMI.md +28 -0
- package/skills/find-journal/references/journal_profiles/INSI.md +29 -0
- package/skills/find-journal/references/journal_profiles/Investigative_Radiology.md +25 -0
- package/skills/find-journal/references/journal_profiles/JACC_Advances.md +41 -0
- package/skills/find-journal/references/journal_profiles/JACC_Asia.md +30 -0
- package/skills/find-journal/references/journal_profiles/JACR.md +28 -0
- package/skills/find-journal/references/journal_profiles/JAMA.md +40 -0
- package/skills/find-journal/references/journal_profiles/JAMA_Network_Open.md +30 -0
- package/skills/find-journal/references/journal_profiles/JCSM.md +39 -0
- package/skills/find-journal/references/journal_profiles/JKMS.md +32 -0
- package/skills/find-journal/references/journal_profiles/JMIR.md +29 -0
- package/skills/find-journal/references/journal_profiles/JMIR_Medical_Education.md +29 -0
- package/skills/find-journal/references/journal_profiles/JNIS.md +35 -0
- package/skills/find-journal/references/journal_profiles/JVIR.md +31 -0
- package/skills/find-journal/references/journal_profiles/Journal_of_Biomedical_Informatics.md +29 -0
- package/skills/find-journal/references/journal_profiles/Journal_of_Clinical_Endocrinology_and_Metabolism.md +40 -0
- package/skills/find-journal/references/journal_profiles/Journal_of_Magnetic_Resonance_Imaging.md +30 -0
- package/skills/find-journal/references/journal_profiles/Journal_of_Nuclear_Medicine.md +31 -0
- package/skills/find-journal/references/journal_profiles/Journal_of_Stroke.md +32 -0
- package/skills/find-journal/references/journal_profiles/KJR.md +38 -0
- package/skills/find-journal/references/journal_profiles/Korean_Circulation_Journal.md +38 -0
- package/skills/find-journal/references/journal_profiles/Korean_Journal_of_Internal_Medicine.md +36 -0
- package/skills/find-journal/references/journal_profiles/Lancet_Diabetes_and_Endocrinology.md +40 -0
- package/skills/find-journal/references/journal_profiles/Lancet_Gastroenterology_and_Hepatology.md +49 -0
- package/skills/find-journal/references/journal_profiles/Lancet_Infectious_Diseases.md +38 -0
- package/skills/find-journal/references/journal_profiles/Lancet_Neurology.md +39 -0
- package/skills/find-journal/references/journal_profiles/Lancet_Oncology.md +40 -0
- package/skills/find-journal/references/journal_profiles/Lancet_Psychiatry.md +38 -0
- package/skills/find-journal/references/journal_profiles/Lancet_Public_Health.md +30 -0
- package/skills/find-journal/references/journal_profiles/Lancet_Respiratory_Medicine.md +39 -0
- package/skills/find-journal/references/journal_profiles/Liver_International.md +33 -0
- package/skills/find-journal/references/journal_profiles/Medical_Image_Analysis.md +28 -0
- package/skills/find-journal/references/journal_profiles/NEJM.md +33 -0
- package/skills/find-journal/references/journal_profiles/Nature_Machine_Intelligence.md +31 -0
- package/skills/find-journal/references/journal_profiles/Nature_Medicine.md +39 -0
- package/skills/find-journal/references/journal_profiles/Neuroradiology.md +31 -0
- package/skills/find-journal/references/journal_profiles/Nutrition_Metabolism_and_Cardiovascular_Diseases.md +39 -0
- package/skills/find-journal/references/journal_profiles/PLOS_Medicine.md +32 -0
- package/skills/find-journal/references/journal_profiles/RYAI.md +28 -0
- package/skills/find-journal/references/journal_profiles/Radiology.md +29 -0
- package/skills/find-journal/references/journal_profiles/Skeletal_Radiology.md +31 -0
- package/skills/find-journal/references/journal_profiles/Stroke.md +37 -0
- package/skills/find-journal/references/journal_profiles/The_BMJ.md +31 -0
- package/skills/find-journal/references/journal_profiles/The_Lancet.md +31 -0
- package/skills/find-journal/references/journal_profiles/The_Lancet_Digital_Health.md +29 -0
- package/skills/find-journal/references/journal_profiles/World_Journal_of_Hepatology.md +53 -0
- package/skills/find-journal/references/journal_profiles/npj_Digital_Medicine.md +29 -0
- package/skills/find-journal/skill.yml +34 -0
- package/skills/fulltext-retrieval/SKILL.md +174 -0
- package/skills/fulltext-retrieval/fetch_oa.py +433 -0
- package/skills/fulltext-retrieval/pdf_to_md.py +160 -0
- package/skills/fulltext-retrieval/skill.yml +41 -0
- package/skills/generate-codebook/SKILL.md +155 -0
- package/skills/generate-codebook/references/codebook_schema.md +76 -0
- package/skills/generate-codebook/scripts/generate_codebook.py +278 -0
- package/skills/generate-codebook/skill.yml +35 -0
- package/skills/generate-codebook/tests/test_generate_codebook.sh +76 -0
- package/skills/grant-builder/SKILL.md +251 -0
- package/skills/grant-builder/skill.yml +34 -0
- package/skills/humanize/SKILL.md +251 -0
- package/skills/humanize/references/ai_patterns.md +571 -0
- package/skills/humanize/skill.yml +33 -0
- package/skills/intake-project/SKILL.md +264 -0
- package/skills/intake-project/skill.yml +34 -0
- package/skills/lit-sync/SKILL.md +448 -0
- package/skills/lit-sync/references/locale/ko/note_templates.md +110 -0
- package/skills/lit-sync/skill.yml +52 -0
- package/skills/lit-sync/tests/test_poll_logic.sh +92 -0
- package/skills/ma-scout/SKILL.md +640 -0
- package/skills/ma-scout/references/project_readme_template.md +95 -0
- package/skills/ma-scout/references/project_readme_template_ko.md +82 -0
- package/skills/ma-scout/skill.yml +33 -0
- package/skills/make-figures/SKILL.md +957 -0
- package/skills/make-figures/references/critic_rubrics/data_plot.md +166 -0
- package/skills/make-figures/references/critic_rubrics/flow_diagram.md +169 -0
- package/skills/make-figures/references/design_principles.md +181 -0
- package/skills/make-figures/references/exemplar_diagrams/README.md +65 -0
- package/skills/make-figures/references/exemplar_diagrams/consort/README.md +15 -0
- package/skills/make-figures/references/exemplar_diagrams/consort/template_input.yaml +37 -0
- package/skills/make-figures/references/exemplar_diagrams/consort/template_output.pdf +0 -0
- package/skills/make-figures/references/exemplar_diagrams/consort/template_output.png +0 -0
- package/skills/make-figures/references/exemplar_diagrams/consort/template_output_600.png +0 -0
- package/skills/make-figures/references/exemplar_diagrams/other/other_02.meta.yaml +4 -0
- package/skills/make-figures/references/exemplar_diagrams/other/other_02.png +0 -0
- package/skills/make-figures/references/exemplar_diagrams/other/other_02_why.md +13 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/README.md +15 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_01.meta.yaml +4 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_01.png +0 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_01_why.md +13 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_03.meta.yaml +4 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_03.png +0 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_03_why.md +13 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_04.meta.yaml +4 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_04.png +0 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_04_why.md +13 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_05.meta.yaml +4 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_05.png +0 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_05_why.md +13 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_06.meta.yaml +4 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_06.png +0 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_06_why.md +13 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_07.meta.yaml +4 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_07.png +0 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_07_why.md +13 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_08.meta.yaml +4 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_08.png +0 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_08_why.md +13 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_09.meta.yaml +4 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_09.png +0 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_09_why.md +13 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_10.meta.yaml +4 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_10.png +0 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_10_why.md +13 -0
- package/skills/make-figures/references/exemplar_diagrams/prisma/README.md +15 -0
- package/skills/make-figures/references/exemplar_diagrams/prisma/template_input.yaml +47 -0
- package/skills/make-figures/references/exemplar_diagrams/prisma/template_output.pdf +0 -0
- package/skills/make-figures/references/exemplar_diagrams/prisma/template_output.png +0 -0
- package/skills/make-figures/references/exemplar_diagrams/prisma/template_output_600.png +0 -0
- package/skills/make-figures/references/exemplar_diagrams/stard/README.md +15 -0
- package/skills/make-figures/references/exemplar_diagrams/stard/template_input.yaml +40 -0
- package/skills/make-figures/references/exemplar_diagrams/stard/template_output.pdf +0 -0
- package/skills/make-figures/references/exemplar_diagrams/stard/template_output.png +0 -0
- package/skills/make-figures/references/exemplar_diagrams/stard/template_output_600.png +0 -0
- package/skills/make-figures/references/exemplar_diagrams/strobe/template_input.yaml +43 -0
- package/skills/make-figures/references/exemplar_diagrams/strobe/template_input_pptx.yaml +43 -0
- package/skills/make-figures/references/exemplar_diagrams/strobe/template_output.pdf +0 -0
- package/skills/make-figures/references/exemplar_diagrams/strobe/template_output.png +0 -0
- package/skills/make-figures/references/exemplar_diagrams/strobe/template_output.pptx +0 -0
- package/skills/make-figures/references/exemplar_diagrams/strobe/template_output_600.png +0 -0
- package/skills/make-figures/references/figure_specs.md +291 -0
- package/skills/make-figures/references/flow_diagram_lessons.md +164 -0
- package/skills/make-figures/references/jacc_central_illustration_principles.md +91 -0
- package/skills/make-figures/references/medical_illustration_sources.md +98 -0
- package/skills/make-figures/references/pipeline_concepts_medical_ai.md +240 -0
- package/skills/make-figures/references/reporting_guideline_figure_map.md +104 -0
- package/skills/make-figures/references/visual_abstract_templates/european_radiology.pptx +0 -0
- package/skills/make-figures/references/visual_abstract_templates/jacc_central_illustration.pptx +0 -0
- package/skills/make-figures/references/visual_abstract_templates/medsci_default.pptx +0 -0
- package/skills/make-figures/references/visual_abstract_templates/template_guide.md +114 -0
- package/skills/make-figures/scripts/build_jacc_template.py +77 -0
- package/skills/make-figures/scripts/build_prisma2020_template.py +371 -0
- package/skills/make-figures/scripts/build_strobe_template.py +351 -0
- package/skills/make-figures/scripts/critic_figure.py +264 -0
- package/skills/make-figures/scripts/derive_figure_legend_counts.py +138 -0
- package/skills/make-figures/scripts/extract_exemplar_from_pdf.py +186 -0
- package/skills/make-figures/scripts/fetch_official_templates.sh +88 -0
- package/skills/make-figures/scripts/fill_prisma_template.py +142 -0
- package/skills/make-figures/scripts/generate_flow_diagram.R +133 -0
- package/skills/make-figures/scripts/generate_image.py +99 -0
- package/skills/make-figures/scripts/generate_visual_abstract.py +438 -0
- package/skills/make-figures/scripts/validate_pptx_mac_compat.py +233 -0
- package/skills/make-figures/skill.yml +52 -0
- package/skills/make-figures/templates/official/NOTES.md +62 -0
- package/skills/make-figures/templates/official/consort2010/CONSORT_2025_editable_checklist.docx +0 -0
- package/skills/make-figures/templates/official/consort2010/CONSORT_2025_flow_diagram.docx +0 -0
- package/skills/make-figures/templates/official/prisma2020/PRISMA_2020_flow_new_v1.pptx +0 -0
- package/skills/make-figures/templates/official/prisma2020/PRISMA_2020_flow_new_v2.pptx +0 -0
- package/skills/make-figures/templates/official/prisma2020/PRISMA_2020_flow_updated_v2.pptx +0 -0
- package/skills/make-figures/templates/official/spirit2013/SPIRIT_2025_editable_checklist.docx +0 -0
- package/skills/make-figures/templates/official/spirit2013/SPIRIT_2025_participant_timeline.docx +0 -0
- package/skills/make-figures/templates/official/stard2015/STARD_2015_checklist.docx +0 -0
- package/skills/make-figures/templates/official/stard2015/STARD_2015_flow_diagram.pdf +0 -0
- package/skills/make-figures/tests/fixtures/figure1_flow.yaml +8 -0
- package/skills/make-figures/tests/fixtures/manuscript_ok.md +9 -0
- package/skills/make-figures/tests/fixtures/manuscript_stale.md +4 -0
- package/skills/make-figures/tests/test_legend_reconcile.sh +36 -0
- package/skills/manage-project/SKILL.md +358 -0
- package/skills/manage-project/references/pre_submission_checklist.md +53 -0
- package/skills/manage-project/references/project_state_template.json +37 -0
- package/skills/manage-project/references/scaffold_templates.md +118 -0
- package/skills/manage-project/references/status_output_format.md +44 -0
- package/skills/manage-project/references/timeline_example.md +20 -0
- package/skills/manage-project/skill.yml +36 -0
- package/skills/manage-project/templates/SSOT.yaml.template +41 -0
- package/skills/manage-refs/LICENSE.zotero-mcp +21 -0
- package/skills/manage-refs/NOTICE.md +29 -0
- package/skills/manage-refs/SKILL.md +289 -0
- package/skills/manage-refs/citation_styles/README.md +40 -0
- package/skills/manage-refs/citation_styles/american-journal-of-roentgenology.csl +211 -0
- package/skills/manage-refs/citation_styles/cardiovascular-and-interventional-radiology.csl +19 -0
- package/skills/manage-refs/citation_styles/european-radiology.csl +19 -0
- package/skills/manage-refs/citation_styles/journal-of-cachexia-sarcopenia-and-muscle.csl +150 -0
- package/skills/manage-refs/citation_styles/journal-of-korean-medical-science-strict.csl +533 -0
- package/skills/manage-refs/citation_styles/journal-of-korean-medical-science.csl +16 -0
- package/skills/manage-refs/citation_styles/korean-journal-of-radiology.csl +155 -0
- package/skills/manage-refs/citation_styles/nature.csl +189 -0
- package/skills/manage-refs/citation_styles/nlm-citation-sequence.csl +535 -0
- package/skills/manage-refs/citation_styles/radiology.csl +228 -0
- package/skills/manage-refs/citation_styles/springer-basic-brackets.csl +187 -0
- package/skills/manage-refs/citation_styles/springer-vancouver-brackets.csl +276 -0
- package/skills/manage-refs/citation_styles/vancouver-superscript.csl +536 -0
- package/skills/manage-refs/citation_styles/vancouver.csl +535 -0
- package/skills/manage-refs/references/REFERENCE_STYLE_SPECS.md +59 -0
- package/skills/manage-refs/references/check_xref_symptoms.md +35 -0
- package/skills/manage-refs/scripts/_vendor_citation_writer.py +600 -0
- package/skills/manage-refs/scripts/check_citation_keys.py +112 -0
- package/skills/manage-refs/scripts/check_csl_render.py +102 -0
- package/skills/manage-refs/scripts/check_xref.py +633 -0
- package/skills/manage-refs/scripts/fill_journal_abbrev.py +104 -0
- package/skills/manage-refs/scripts/inject_zotero_cwyw.py +133 -0
- package/skills/manage-refs/scripts/md_marker_convert.py +193 -0
- package/skills/manage-refs/scripts/pre_submission_gate.sh +238 -0
- package/skills/manage-refs/scripts/render_pandoc.sh +88 -0
- package/skills/manage-refs/skill.yml +70 -0
- package/skills/manage-refs/tests/fixtures/pre_submission_gate/README.md +32 -0
- package/skills/manage-refs/tests/fixtures/pre_submission_gate/manuscript.md +10 -0
- package/skills/manage-refs/tests/fixtures/pre_submission_gate/refs.bib +34 -0
- package/skills/manage-refs/tests/fixtures/pre_submission_gate/run.sh +117 -0
- package/skills/manage-refs/tests/test_vN_docx_check.sh +145 -0
- package/skills/meta-analysis/SKILL.md +739 -0
- package/skills/meta-analysis/references/LICENSES.md +21 -0
- package/skills/meta-analysis/references/PROSPERO_template.md +221 -0
- package/skills/meta-analysis/references/ai_pre_screening_template.py +245 -0
- package/skills/meta-analysis/references/checklists/JBI_Case_Series.md +45 -0
- package/skills/meta-analysis/references/checklists/NOS.md +88 -0
- package/skills/meta-analysis/references/checklists/PRISMA_DTA.md +36 -0
- package/skills/meta-analysis/references/checklists/PROBAST.md +75 -0
- package/skills/meta-analysis/references/checklists/QUADAS2.md +77 -0
- package/skills/meta-analysis/references/checklists/ROBINS_I.md +87 -0
- package/skills/meta-analysis/references/checklists/RoB2.md +79 -0
- package/skills/meta-analysis/references/data_integrity_checklist.md +57 -0
- package/skills/meta-analysis/references/icmje_coi_guide.md +181 -0
- package/skills/meta-analysis/references/phase10_recovery.md +136 -0
- package/skills/meta-analysis/references/phase4_km_composite.md +58 -0
- package/skills/meta-analysis/references/phase6_statistical_synthesis.md +148 -0
- package/skills/meta-analysis/references/phase9_circulation.md +84 -0
- package/skills/meta-analysis/references/post_submission_release_ops.md +41 -0
- package/skills/meta-analysis/references/r_templates.md +132 -0
- package/skills/meta-analysis/references/review_orchestration.md +40 -0
- package/skills/meta-analysis/references/submission_package_drift.md +71 -0
- package/skills/meta-analysis/scripts/check_pool_consistency.py +201 -0
- package/skills/meta-analysis/scripts/cohort_overlap_check.py +242 -0
- package/skills/meta-analysis/scripts/dta_extraction_qc.py +137 -0
- package/skills/meta-analysis/scripts/screening_reconcile.py +160 -0
- package/skills/meta-analysis/skill.yml +47 -0
- package/skills/meta-analysis/templates/FINAL_POOL_LOCK.yaml.template +70 -0
- package/skills/meta-analysis/templates/extraction_form_v2.md +129 -0
- package/skills/meta-analysis/templates/supplementary_8file_checklist.md +94 -0
- package/skills/meta-analysis/tests/test_pool_consistency.sh +123 -0
- package/skills/orchestrate/SKILL.md +501 -0
- package/skills/orchestrate/references/dialogue_nodes.md +196 -0
- package/skills/orchestrate/references/report_template.md +109 -0
- package/skills/orchestrate/references/report_template_ko.md +88 -0
- package/skills/orchestrate/skill.yml +44 -0
- package/skills/peer-review/SKILL.md +381 -0
- package/skills/peer-review/references/aczel_2021_reviewer2_patterns.md +88 -0
- package/skills/peer-review/references/domain-probes/ai_overclaiming.md +47 -0
- package/skills/peer-review/references/domain-probes/narrative_review.md +44 -0
- package/skills/peer-review/references/domain-probes/observational_confounding.md +48 -0
- package/skills/peer-review/references/domain-probes/radiomics.md +38 -0
- package/skills/peer-review/references/domain-probes/sr_ma.md +87 -0
- package/skills/peer-review/references/domain-probes/survival_prognostic.md +68 -0
- package/skills/peer-review/references/exemplar_reviews/README.md +43 -0
- package/skills/peer-review/references/exemplar_reviews/ai_overclaiming.md +47 -0
- package/skills/peer-review/references/exemplar_reviews/calibration_missing.md +44 -0
- package/skills/peer-review/references/exemplar_reviews/data_leakage.md +48 -0
- package/skills/peer-review/references/exemplar_reviews/reference_standard_validity.md +45 -0
- package/skills/peer-review/references/narrative_review_audit.md +67 -0
- package/skills/peer-review/references/reviewer_calibration/README.md +34 -0
- package/skills/peer-review/references/reviewer_calibration/compliance_floor.md +52 -0
- package/skills/peer-review/references/reviewer_profiles/AJR.md +82 -0
- package/skills/peer-review/references/reviewer_profiles/EURE.md +64 -0
- package/skills/peer-review/references/reviewer_profiles/INSI.md +57 -0
- package/skills/peer-review/references/reviewer_profiles/KJR.md +100 -0
- package/skills/peer-review/references/reviewer_profiles/README.md +32 -0
- package/skills/peer-review/references/reviewer_profiles/RYAI.md +86 -0
- package/skills/peer-review/skill.yml +39 -0
- package/skills/present-paper/SKILL.md +675 -0
- package/skills/present-paper/references/critic_rubrics/slide.md +155 -0
- package/skills/present-paper/references/generate_pptx_templates.py +604 -0
- package/skills/present-paper/references/medical_presentation_templates.md +277 -0
- package/skills/present-paper/references/slide_design_principles.md +202 -0
- package/skills/present-paper/references/slide_visual_styles/nature_lancet.md +168 -0
- package/skills/present-paper/references/workflow-checklist.md +109 -0
- package/skills/present-paper/scripts/extract_pdf_figures.py +243 -0
- package/skills/present-paper/scripts/inject_pronunciation_notes.py +178 -0
- package/skills/present-paper/scripts/inject_speaker_notes.py +133 -0
- package/skills/present-paper/scripts/strip_notes_for_sharing.py +140 -0
- package/skills/present-paper/scripts/trim_caption.py +271 -0
- package/skills/present-paper/skill.yml +41 -0
- package/skills/present-paper/templates/build_pptx_nature_lancet.py +688 -0
- package/skills/publish-skill/SKILL.md +370 -0
- package/skills/publish-skill/references/license-compatibility-matrix.md +132 -0
- package/skills/publish-skill/references/pii-patterns.md +130 -0
- package/skills/publish-skill/scripts/audit_skill.sh +278 -0
- package/skills/publish-skill/skill.yml +35 -0
- package/skills/render-pdf-doc/SKILL.md +146 -0
- package/skills/render-pdf-doc/references/known_pitfalls.md +53 -0
- package/skills/render-pdf-doc/references/pandoc_korean_cheatsheet.md +77 -0
- package/skills/render-pdf-doc/scripts/check_deps.sh +42 -0
- package/skills/render-pdf-doc/scripts/infer_colwidths.py +164 -0
- package/skills/render-pdf-doc/scripts/render_pdf.sh +98 -0
- package/skills/render-pdf-doc/skill.yml +57 -0
- package/skills/render-pdf-doc/templates/anchor-doc.md +27 -0
- package/skills/render-pdf-doc/templates/anchor-doc_ko.md +25 -0
- package/skills/render-pdf-doc/templates/briefing-handout.md +33 -0
- package/skills/render-pdf-doc/templates/briefing-handout_ko.md +31 -0
- package/skills/render-pdf-doc/templates/proposal-cover.md +33 -0
- package/skills/render-pdf-doc/templates/proposal-cover_ko.md +31 -0
- package/skills/render-pdf-doc/templates/reference-table.md +22 -0
- package/skills/render-pdf-doc/templates/reference-table_ko.md +20 -0
- package/skills/replicate-study/SKILL.md +150 -0
- package/skills/replicate-study/references/harmonization_3country.csv +47 -0
- package/skills/replicate-study/references/harmonization_knhanes_nhanes.csv +68 -0
- package/skills/replicate-study/references/methodology_extraction_template.md +134 -0
- package/skills/replicate-study/skill.yml +37 -0
- package/skills/review-paper/SKILL.md +104 -0
- package/skills/review-paper/references/macro_skeleton.md +6 -0
- package/skills/review-paper/skill.yml +25 -0
- package/skills/revise/SKILL.md +515 -0
- package/skills/revise/references/r2r_voice.md +346 -0
- package/skills/revise/skill.yml +43 -0
- package/skills/search-lit/SKILL.md +443 -0
- package/skills/search-lit/references/parse_pubmed.py +326 -0
- package/skills/search-lit/references/pubmed_eutils.sh +111 -0
- package/skills/search-lit/skill.yml +46 -0
- package/skills/self-review/SKILL.md +1045 -0
- package/skills/self-review/references/domain-probes/ai_overclaiming.md +47 -0
- package/skills/self-review/references/domain-probes/narrative_review.md +44 -0
- package/skills/self-review/references/domain-probes/observational_confounding.md +48 -0
- package/skills/self-review/references/domain-probes/radiomics.md +38 -0
- package/skills/self-review/references/domain-probes/sr_ma.md +87 -0
- package/skills/self-review/references/domain-probes/survival_prognostic.md +68 -0
- package/skills/self-review/references/exemplar_findings/README.md +43 -0
- package/skills/self-review/references/exemplar_findings/cohort_arithmetic_mismatch.md +35 -0
- package/skills/self-review/references/exemplar_findings/estimand_drift_posthoc_primary.md +39 -0
- package/skills/self-review/references/exemplar_findings/scope_overreach_cross_sectional.md +35 -0
- package/skills/self-review/references/exemplar_findings/unadjusted_confounder.md +36 -0
- package/skills/self-review/references/panel_review_template.md +177 -0
- package/skills/self-review/scripts/check_artifact_coverage.py +301 -0
- package/skills/self-review/scripts/check_claim_artifact.py +248 -0
- package/skills/self-review/scripts/check_classical_style.py +185 -0
- package/skills/self-review/scripts/check_cohort_arithmetic.py +481 -0
- package/skills/self-review/scripts/check_confounding_completeness.py +287 -0
- package/skills/self-review/scripts/check_panel_diversity.py +336 -0
- package/skills/self-review/scripts/check_reference_adequacy.py +392 -0
- package/skills/self-review/scripts/check_reviewer_team_consistency.py +412 -0
- package/skills/self-review/scripts/check_scope_coherence.py +177 -0
- package/skills/self-review/skill.yml +47 -0
- package/skills/self-review/tests/fixtures/claim_manuscript.md +17 -0
- package/skills/self-review/tests/fixtures/claim_prereg.md +6 -0
- package/skills/self-review/tests/fixtures/cohort_bad.md +21 -0
- package/skills/self-review/tests/fixtures/cohort_clean.md +21 -0
- package/skills/self-review/tests/fixtures/cohort_partition.csv +5 -0
- package/skills/self-review/tests/fixtures/coverage_analysis/31_delong_nested_added_value.csv +3 -0
- package/skills/self-review/tests/fixtures/coverage_analysis/table1_demographics.csv +3 -0
- package/skills/self-review/tests/fixtures/coverage_clean.md +13 -0
- package/skills/self-review/tests/fixtures/coverage_manuscript.md +11 -0
- package/skills/self-review/tests/fixtures/panel_collapse.json +27 -0
- package/skills/self-review/tests/fixtures/panel_good.json +32 -0
- package/skills/self-review/tests/fixtures/panel_monoculture.json +32 -0
- package/skills/self-review/tests/fixtures/refadeq_letter.md +13 -0
- package/skills/self-review/tests/fixtures/refadeq_original_fixed.md +42 -0
- package/skills/self-review/tests/fixtures/refadeq_original_uncited.md +40 -0
- package/skills/self-review/tests/fixtures/scope_bad.md +9 -0
- package/skills/self-review/tests/fixtures/scope_clean.md +8 -0
- package/skills/self-review/tests/fixtures/scope_surrogate.md +8 -0
- package/skills/self-review/tests/fixtures/style_bad.md +13 -0
- package/skills/self-review/tests/fixtures/style_clean.md +11 -0
- package/skills/self-review/tests/fixtures/table1_by_exposure.csv +11 -0
- package/skills/self-review/tests/test_artifact_coverage.sh +44 -0
- package/skills/self-review/tests/test_claim_artifact.sh +50 -0
- package/skills/self-review/tests/test_classical_style.sh +44 -0
- package/skills/self-review/tests/test_cohort_arithmetic.sh +49 -0
- package/skills/self-review/tests/test_confounding_completeness.sh +66 -0
- package/skills/self-review/tests/test_panel_diversity.sh +55 -0
- package/skills/self-review/tests/test_panel_mode.sh +69 -0
- package/skills/self-review/tests/test_reference_adequacy.sh +68 -0
- package/skills/self-review/tests/test_reviewer_team_consistency.sh +138 -0
- package/skills/self-review/tests/test_scope_coherence.sh +46 -0
- package/skills/setup-medsci/SKILL.md +110 -0
- package/skills/setup-medsci/references/setup-checklist.md +51 -0
- package/skills/setup-medsci/skill.yml +30 -0
- package/skills/sync-submission/SKILL.md +382 -0
- package/skills/sync-submission/scripts/author_registry_example.yaml +36 -0
- package/skills/sync-submission/scripts/blind_sweep.py +203 -0
- package/skills/sync-submission/scripts/check_asset_anonymization.py +300 -0
- package/skills/sync-submission/scripts/check_cross_artifact_stale.py +211 -0
- package/skills/sync-submission/scripts/cover_letter_drift_check.py +451 -0
- package/skills/sync-submission/scripts/cross_document_n_check.py +486 -0
- package/skills/sync-submission/scripts/detect_copy_divergence.py +136 -0
- package/skills/sync-submission/scripts/preflight_gate.py +458 -0
- package/skills/sync-submission/scripts/scope_drift_check.py +362 -0
- package/skills/sync-submission/scripts/sync_submission.py +169 -0
- package/skills/sync-submission/skill.yml +43 -0
- package/skills/sync-submission/tests/fixtures/copy_ok.md +5 -0
- package/skills/sync-submission/tests/fixtures/copy_stale.md +5 -0
- package/skills/sync-submission/tests/fixtures/ssot.md +5 -0
- package/skills/sync-submission/tests/test_asset_anonymization.sh +99 -0
- package/skills/sync-submission/tests/test_copy_divergence.sh +44 -0
- package/skills/sync-submission/tests/test_cross_artifact_stale.sh +80 -0
- package/skills/sync-submission/tests/test_cross_document_n.sh +132 -0
- package/skills/sync-submission/tests/test_preflight_gate.sh +112 -0
- package/skills/sync-submission/tests/test_scope_drift.sh +122 -0
- package/skills/sync-submission/tests/test_vN_docx_assertion.sh +51 -0
- package/skills/verify-refs/SKILL.md +177 -0
- package/skills/verify-refs/references/manual_checkpoint_guide.md +100 -0
- package/skills/verify-refs/scripts/verify_cli.sh +62 -0
- package/skills/verify-refs/scripts/verify_refs.py +782 -0
- package/skills/verify-refs/skill.yml +44 -0
- package/skills/verify-refs/tests/fixtures/pagination_placeholder.bib +17 -0
- package/skills/verify-refs/tests/test_pagination_placeholder.sh +42 -0
- package/skills/version-dataset/SKILL.md +143 -0
- package/skills/version-dataset/references/manifest_schema.md +72 -0
- package/skills/version-dataset/scripts/version_dataset.py +242 -0
- package/skills/version-dataset/skill.yml +35 -0
- package/skills/version-dataset/tests/test_version_dataset.sh +52 -0
- package/skills/write-paper/SKILL.md +1148 -0
- package/skills/write-paper/references/exemplar_methods/README.md +38 -0
- package/skills/write-paper/references/exemplar_methods/ai_validation_tripod_claim.md +47 -0
- package/skills/write-paper/references/exemplar_methods/diagnostic_accuracy_stard.md +50 -0
- package/skills/write-paper/references/exemplar_methods/observational_cohort_strobe.md +43 -0
- package/skills/write-paper/references/journal_profiles/AJNR.md +185 -0
- package/skills/write-paper/references/journal_profiles/AJR.md +149 -0
- package/skills/write-paper/references/journal_profiles/Abdominal_Radiology.md +139 -0
- package/skills/write-paper/references/journal_profiles/Academic_Radiology.md +90 -0
- package/skills/write-paper/references/journal_profiles/Annals_of_Internal_Medicine.md +150 -0
- package/skills/write-paper/references/journal_profiles/Artificial_Intelligence_in_Medicine.md +82 -0
- package/skills/write-paper/references/journal_profiles/British_Journal_of_Radiology.md +161 -0
- package/skills/write-paper/references/journal_profiles/CVIR.md +157 -0
- package/skills/write-paper/references/journal_profiles/Chest.md +270 -0
- package/skills/write-paper/references/journal_profiles/Clinical_Radiology.md +160 -0
- package/skills/write-paper/references/journal_profiles/Clinical_and_Molecular_Hepatology.md +147 -0
- package/skills/write-paper/references/journal_profiles/Diabetes_Metabolism_Journal.md +163 -0
- package/skills/write-paper/references/journal_profiles/Diagnostic_and_Interventional_Radiology.md +216 -0
- package/skills/write-paper/references/journal_profiles/Endocrinology_and_Metabolism.md +167 -0
- package/skills/write-paper/references/journal_profiles/European_Journal_of_Preventive_Cardiology.md +192 -0
- package/skills/write-paper/references/journal_profiles/European_Radiology.md +159 -0
- package/skills/write-paper/references/journal_profiles/Hepatology_Communications.md +110 -0
- package/skills/write-paper/references/journal_profiles/Hepatology_International.md +106 -0
- package/skills/write-paper/references/journal_profiles/IEEE_TMI.md +180 -0
- package/skills/write-paper/references/journal_profiles/INSI.md +163 -0
- package/skills/write-paper/references/journal_profiles/Investigative_Radiology.md +86 -0
- package/skills/write-paper/references/journal_profiles/JACC_Advances.md +197 -0
- package/skills/write-paper/references/journal_profiles/JACC_Asia.md +168 -0
- package/skills/write-paper/references/journal_profiles/JACR.md +87 -0
- package/skills/write-paper/references/journal_profiles/JAMA.md +188 -0
- package/skills/write-paper/references/journal_profiles/JAMA_Network_Open.md +170 -0
- package/skills/write-paper/references/journal_profiles/JCSM.md +266 -0
- package/skills/write-paper/references/journal_profiles/JKMS.md +201 -0
- package/skills/write-paper/references/journal_profiles/JMIR.md +88 -0
- package/skills/write-paper/references/journal_profiles/JMIR_Medical_Education.md +86 -0
- package/skills/write-paper/references/journal_profiles/JNIS.md +227 -0
- package/skills/write-paper/references/journal_profiles/JVIR.md +158 -0
- package/skills/write-paper/references/journal_profiles/Journal_of_Clinical_Endocrinology_and_Metabolism.md +191 -0
- package/skills/write-paper/references/journal_profiles/Journal_of_Stroke.md +176 -0
- package/skills/write-paper/references/journal_profiles/KJR.md +185 -0
- package/skills/write-paper/references/journal_profiles/Korean_Circulation_Journal.md +184 -0
- package/skills/write-paper/references/journal_profiles/Korean_Journal_of_Internal_Medicine.md +178 -0
- package/skills/write-paper/references/journal_profiles/Lancet_Gastroenterology_and_Hepatology.md +127 -0
- package/skills/write-paper/references/journal_profiles/Liver_International.md +165 -0
- package/skills/write-paper/references/journal_profiles/Medical_Image_Analysis.md +147 -0
- package/skills/write-paper/references/journal_profiles/NEJM.md +147 -0
- package/skills/write-paper/references/journal_profiles/Nature_Medicine.md +181 -0
- package/skills/write-paper/references/journal_profiles/Neuroradiology.md +151 -0
- package/skills/write-paper/references/journal_profiles/Nutrition_Metabolism_and_Cardiovascular_Diseases.md +184 -0
- package/skills/write-paper/references/journal_profiles/PLOS_Medicine.md +166 -0
- package/skills/write-paper/references/journal_profiles/RYAI.md +124 -0
- package/skills/write-paper/references/journal_profiles/Radiology.md +173 -0
- package/skills/write-paper/references/journal_profiles/Skeletal_Radiology.md +135 -0
- package/skills/write-paper/references/journal_profiles/Stroke.md +210 -0
- package/skills/write-paper/references/journal_profiles/The_BMJ.md +121 -0
- package/skills/write-paper/references/journal_profiles/The_Lancet.md +112 -0
- package/skills/write-paper/references/journal_profiles/The_Lancet_Digital_Health.md +104 -0
- package/skills/write-paper/references/journal_profiles/World_Journal_of_Hepatology.md +106 -0
- package/skills/write-paper/references/journal_profiles/npj_Digital_Medicine.md +93 -0
- package/skills/write-paper/references/paper_types/ai_validation.md +270 -0
- package/skills/write-paper/references/paper_types/animal_study.md +194 -0
- package/skills/write-paper/references/paper_types/case_report.md +237 -0
- package/skills/write-paper/references/paper_types/cross_national.md +328 -0
- package/skills/write-paper/references/paper_types/letter.md +127 -0
- package/skills/write-paper/references/paper_types/meta_analysis.md +181 -0
- package/skills/write-paper/references/paper_types/nhis_cohort.md +297 -0
- package/skills/write-paper/references/paper_types/original_article.md +221 -0
- package/skills/write-paper/references/paper_types/technical_note.md +131 -0
- package/skills/write-paper/references/section_guides/discussion.md +155 -0
- package/skills/write-paper/references/section_guides/introduction.md +108 -0
- package/skills/write-paper/references/section_guides/methods.md +144 -0
- package/skills/write-paper/references/section_guides/results.md +113 -0
- package/skills/write-paper/references/section_guides/step7_1_classical_qc.md +67 -0
- package/skills/write-paper/references/section_guides/step7_4a_audit_recovery.md +74 -0
- package/skills/write-paper/references/section_guides/title_abstract.md +123 -0
- package/skills/write-paper/references/section_templates/methods_statistical.md +147 -0
- package/skills/write-paper/scripts/check_placeholders.py +182 -0
- package/skills/write-paper/skill.yml +48 -0
- package/skills/write-paper/tests/test_placeholders.sh +107 -0
- package/skills/write-protocol/SKILL.md +243 -0
- package/skills/write-protocol/references/ethics_checklist.md +150 -0
- package/skills/write-protocol/references/protocol_template.md +304 -0
- package/skills/write-protocol/skill.yml +34 -0
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
# Figure Specifications Reference
|
|
2
|
+
|
|
3
|
+
## Journal Dimension Requirements
|
|
4
|
+
|
|
5
|
+
| Journal | Single Column | 1.5 Column | Double Column | Full Page | Max Height |
|
|
6
|
+
|---------|--------------|------------|---------------|-----------|------------|
|
|
7
|
+
| AJR | 3.3 in (84 mm) | 5.0 in (127 mm) | 6.83 in (174 mm) | 6.83 x 9.19 in | 9.19 in |
|
|
8
|
+
| Radiology | 3.37 in (85.6 mm) | 5.04 in (128 mm) | 6.83 in (173.5 mm) | 6.83 x 9.19 in | 9.19 in |
|
|
9
|
+
| Radiology: AI | 3.37 in (85.6 mm) | 5.04 in (128 mm) | 6.83 in (173.5 mm) | 6.83 x 9.19 in | 9.19 in |
|
|
10
|
+
| European Radiology | 3.35 in (85 mm) | -- | 6.85 in (174 mm) | 6.85 x 9.13 in | 9.13 in |
|
|
11
|
+
| KJR | 3.27 in (83 mm) | -- | 6.89 in (175 mm) | 6.89 x 9.21 in | 9.21 in |
|
|
12
|
+
| **Default** | **3.5 in (88 mm)** | **5.0 in (127 mm)** | **7.0 in (178 mm)** | **7.0 x 9.5 in** | **9.5 in** |
|
|
13
|
+
|
|
14
|
+
### Notes
|
|
15
|
+
|
|
16
|
+
- Dimensions are the maximum printable area; figures should not exceed these.
|
|
17
|
+
- When in doubt, use single-column width (3.5 in) for simple plots and double-column (7.0 in) for complex or multi-panel figures.
|
|
18
|
+
- Height is flexible but should not exceed the max height listed above.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## DPI Requirements
|
|
23
|
+
|
|
24
|
+
| Content Type | Minimum DPI | Recommended DPI | Notes |
|
|
25
|
+
|-------------|-------------|-----------------|-------|
|
|
26
|
+
| Line art (diagrams, flow charts) | 600 | 1200 | Vector PDF preferred |
|
|
27
|
+
| Halftone (photographs, medical images) | 300 | 300 | TIFF or PNG |
|
|
28
|
+
| Combination (line art + halftone) | 600 | 600 | |
|
|
29
|
+
| Color figures | 300 | 300 | |
|
|
30
|
+
| Review/presentation | 150 | 300 | PNG acceptable |
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## File Format Requirements by Journal
|
|
35
|
+
|
|
36
|
+
| Journal | Preferred Format | Accepted Formats | Notes |
|
|
37
|
+
|---------|-----------------|------------------|-------|
|
|
38
|
+
| AJR | TIFF | TIFF, EPS, PDF, JPEG | TIFF LZW compression; JPEG only for photos |
|
|
39
|
+
| Radiology | TIFF | TIFF, EPS, PDF, PNG | EPS for vector; TIFF for raster |
|
|
40
|
+
| Radiology: AI | PDF | PDF, TIFF, EPS, PNG | PDF preferred for vector graphics |
|
|
41
|
+
| European Radiology | TIFF | TIFF, EPS, PDF | EPS or PDF for line art |
|
|
42
|
+
| KJR | TIFF | TIFF, JPEG, PPT | PPT accepted but not recommended |
|
|
43
|
+
| **Default** | **PDF + PNG** | PDF (vector), PNG (raster) | Always produce both |
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Color Palettes
|
|
48
|
+
|
|
49
|
+
### Wong Colorblind-Safe Palette (Default)
|
|
50
|
+
|
|
51
|
+
| Index | Name | Hex | Use |
|
|
52
|
+
|-------|------|-----|-----|
|
|
53
|
+
| 0 | Black | `#000000` | Text, axes, reference lines |
|
|
54
|
+
| 1 | Orange | `#E69F00` | Primary category 1 |
|
|
55
|
+
| 2 | Sky Blue | `#56B4E9` | Primary category 2 |
|
|
56
|
+
| 3 | Bluish Green | `#009E73` | Primary category 3 |
|
|
57
|
+
| 4 | Yellow | `#F0E442` | Highlight (use sparingly) |
|
|
58
|
+
| 5 | Blue | `#0072B2` | Primary model/group |
|
|
59
|
+
| 6 | Vermillion | `#D55E00` | Secondary model/group |
|
|
60
|
+
| 7 | Reddish Purple | `#CC79A7` | Tertiary model/group |
|
|
61
|
+
|
|
62
|
+
```python
|
|
63
|
+
WONG = ['#000000', '#E69F00', '#56B4E9', '#009E73',
|
|
64
|
+
'#F0E442', '#0072B2', '#D55E00', '#CC79A7']
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Sequential Palettes (Heatmaps)
|
|
68
|
+
|
|
69
|
+
| Use Case | Matplotlib Colormap | Direction |
|
|
70
|
+
|----------|-------------------|-----------|
|
|
71
|
+
| Positive values only | `Blues`, `Greens`, `Oranges` | Light to dark |
|
|
72
|
+
| Diverging (centered at 0) | `coolwarm`, `RdBu_r` | Negative=blue, positive=red |
|
|
73
|
+
| Correlation matrix | `coolwarm` | -1 to +1 centered |
|
|
74
|
+
| Agreement matrix | `YlOrRd` | Low=yellow, high=red |
|
|
75
|
+
| Confusion matrix | `Blues` | Low=white, high=blue |
|
|
76
|
+
| p-value heatmap | `Reds_r` | Significant=dark |
|
|
77
|
+
|
|
78
|
+
### Rules
|
|
79
|
+
|
|
80
|
+
- Never rely on color alone; combine with line style, marker shape, or hatching.
|
|
81
|
+
- Test figures in grayscale to ensure readability.
|
|
82
|
+
- Avoid pure red (#FF0000) and pure green (#00FF00) adjacent to each other.
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## Font Size Table
|
|
87
|
+
|
|
88
|
+
| Element | Size (pt) | Weight | Font Family |
|
|
89
|
+
|---------|-----------|--------|-------------|
|
|
90
|
+
| Figure title (rare, prefer caption) | 10 | Bold | Arial / Helvetica |
|
|
91
|
+
| Axis label | 9 | Regular | Arial / Helvetica |
|
|
92
|
+
| Tick label | 8 | Regular | Arial / Helvetica |
|
|
93
|
+
| Legend text | 8 | Regular | Arial / Helvetica |
|
|
94
|
+
| Annotation text | 8 | Regular | Arial / Helvetica |
|
|
95
|
+
| Panel label (A, B, C) | 12 | Bold | Arial / Helvetica |
|
|
96
|
+
| Inset text | 7 | Regular | Arial / Helvetica |
|
|
97
|
+
| Table text (in figure) | 7-8 | Regular | Arial / Helvetica |
|
|
98
|
+
|
|
99
|
+
### Rules
|
|
100
|
+
|
|
101
|
+
- Minimum readable size after print: 6 pt.
|
|
102
|
+
- All text in figures must be embedded (not rasterized) for vector formats.
|
|
103
|
+
- Use `plt.rcParams['font.family'] = 'sans-serif'` and `plt.rcParams['font.sans-serif'] = ['Arial', 'Helvetica']`.
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Common Figure Layouts
|
|
108
|
+
|
|
109
|
+
### Single Panel
|
|
110
|
+
|
|
111
|
+
```
|
|
112
|
+
+-----------+
|
|
113
|
+
| |
|
|
114
|
+
| Plot |
|
|
115
|
+
| |
|
|
116
|
+
+-----------+
|
|
117
|
+
```
|
|
118
|
+
- Width: single column (3.5 in) or double column (7.0 in)
|
|
119
|
+
- Height: proportional, typically 1:1 or 4:3 aspect ratio
|
|
120
|
+
- Use: ROC curve, calibration plot, KM curve, Bland-Altman
|
|
121
|
+
|
|
122
|
+
### 2-Panel Horizontal
|
|
123
|
+
|
|
124
|
+
```
|
|
125
|
+
+-----+-----+
|
|
126
|
+
| A | B |
|
|
127
|
+
+-----+-----+
|
|
128
|
+
```
|
|
129
|
+
- Width: double column (7.0 in), each panel ~3.3 in
|
|
130
|
+
- Height: 3.0-3.5 in
|
|
131
|
+
- Use: comparing two related plots (e.g., ROC for two endpoints)
|
|
132
|
+
|
|
133
|
+
### 2-Panel Vertical
|
|
134
|
+
|
|
135
|
+
```
|
|
136
|
+
+-----+
|
|
137
|
+
| A |
|
|
138
|
+
+-----+
|
|
139
|
+
| B |
|
|
140
|
+
+-----+
|
|
141
|
+
```
|
|
142
|
+
- Width: single column (3.5 in)
|
|
143
|
+
- Height: 6.0-7.0 in
|
|
144
|
+
- Use: same variable, different conditions (e.g., training vs test set)
|
|
145
|
+
|
|
146
|
+
### 2x2 Grid
|
|
147
|
+
|
|
148
|
+
```
|
|
149
|
+
+-----+-----+
|
|
150
|
+
| A | B |
|
|
151
|
+
+-----+-----+
|
|
152
|
+
| C | D |
|
|
153
|
+
+-----+-----+
|
|
154
|
+
```
|
|
155
|
+
- Width: double column (7.0 in), each panel ~3.3 in
|
|
156
|
+
- Height: 6.0-7.0 in
|
|
157
|
+
- Use: four related analyses (e.g., subgroup comparisons)
|
|
158
|
+
|
|
159
|
+
### 3-Panel Horizontal
|
|
160
|
+
|
|
161
|
+
```
|
|
162
|
+
+---+---+---+
|
|
163
|
+
| A | B | C |
|
|
164
|
+
+---+---+---+
|
|
165
|
+
```
|
|
166
|
+
- Width: double column (7.0 in), each panel ~2.1 in
|
|
167
|
+
- Height: 2.5-3.0 in
|
|
168
|
+
- Use: three conditions or progressive stages
|
|
169
|
+
|
|
170
|
+
### Unequal Panels (GridSpec)
|
|
171
|
+
|
|
172
|
+
```
|
|
173
|
+
+---------+----+
|
|
174
|
+
| | B |
|
|
175
|
+
| A +----+
|
|
176
|
+
| | C |
|
|
177
|
+
+---------+----+
|
|
178
|
+
```
|
|
179
|
+
- Use `matplotlib.gridspec.GridSpec` for custom layouts
|
|
180
|
+
- Use: main result (A) with supporting details (B, C)
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## Caption Writing Guidelines
|
|
185
|
+
|
|
186
|
+
### Structure
|
|
187
|
+
|
|
188
|
+
1. **Sentence 1**: What the figure shows -- figure type and key finding.
|
|
189
|
+
2. **Sentences 2-3**: Define symbols, abbreviations, colors, and line styles.
|
|
190
|
+
3. **Sentence 3-4**: State sample sizes, statistical tests, significance levels.
|
|
191
|
+
4. **Final sentence**: Interpretation aid (if not self-evident from the plot).
|
|
192
|
+
|
|
193
|
+
### Format
|
|
194
|
+
|
|
195
|
+
```
|
|
196
|
+
Figure {N}. {Description starting with capital letter, ending with period.}
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
- No bold title. No title case (except proper nouns and abbreviations).
|
|
200
|
+
- Use sentence case throughout.
|
|
201
|
+
- Spell out abbreviations on first use in the caption.
|
|
202
|
+
|
|
203
|
+
### Multi-Panel Captions
|
|
204
|
+
|
|
205
|
+
```
|
|
206
|
+
Figure {N}. {Overall description.} (A) {Panel A description.} (B) {Panel B description.}
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
### Examples
|
|
210
|
+
|
|
211
|
+
**ROC Curve:**
|
|
212
|
+
> Figure 2. Receiver operating characteristic curves for the multi-agent validation pipeline. The area under the curve was 0.92 (95% CI: 0.89-0.95) for the full pipeline and 0.84 (95% CI: 0.80-0.88) for the single-agent baseline (DeLong test, p = 0.003). The dashed diagonal line represents chance performance (AUC = 0.5). AUC = area under the curve, CI = confidence interval.
|
|
213
|
+
|
|
214
|
+
**Flow Diagram:**
|
|
215
|
+
> Figure 1. Study flow diagram following the Standards for Reporting Diagnostic Accuracy Studies (STARD) 2015 guidelines. Numbers in each box represent the count of Anki flashcards at each stage of the validation pipeline.
|
|
216
|
+
|
|
217
|
+
**Multi-Panel:**
|
|
218
|
+
> Figure 3. Agreement analysis between human reviewers and the multi-agent pipeline. (A) Bland-Altman plot showing the difference in quality scores between reviewer 1 and the pipeline against their mean. Horizontal dashed lines indicate the mean difference and 95% limits of agreement. (B) Scatter plot of reviewer 1 versus pipeline scores with the line of identity (dashed).
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
## Figure Numbering Conventions
|
|
223
|
+
|
|
224
|
+
- Number figures sequentially as they appear in the text (Figure 1, Figure 2, ...).
|
|
225
|
+
- Supplemental figures: Figure S1, Figure S2, ...
|
|
226
|
+
- Reference every figure at least once in the main text.
|
|
227
|
+
- Place figures after first mention (or at end, per journal preference).
|
|
228
|
+
- Do not include a figure title inside the plot area; use the caption below instead.
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
## Flow Diagram Tool Selection (STROBE / CONSORT / PRISMA / STARD)
|
|
233
|
+
|
|
234
|
+
All reporting-guideline flow diagrams use a single canonical pipeline: `scripts/generate_flow_diagram.R` (DiagrammeR DOT → DiagrammeRsvg → rsvg).
|
|
235
|
+
|
|
236
|
+
### Why this stack
|
|
237
|
+
|
|
238
|
+
| Requirement | Requirement detail | DiagrammeR + rsvg |
|
|
239
|
+
|---|---|---|
|
|
240
|
+
| Vector PDF (editable, journal-grade) | Radiology/NEJM/Eur Radiol require EPS/AI/PDF | **True vector via `rsvg_pdf()`** |
|
|
241
|
+
| 300 / 600 / 1200 dpi PNG | RSNA line-art = 1200 dpi; Eur Radiol = 300–1000 | **Arbitrary DPI via `rsvg_png(width=...)`** |
|
|
242
|
+
| Arial font embedded | AMA/RSNA style | `fontname="Arial"` enforced in DOT header |
|
|
243
|
+
| Single-color monochrome outline | BMJ/Annals IM convention | `color=black, fillcolor=white, style=filled` |
|
|
244
|
+
| Auto-overlap resolution | Labels change size; manual coords fail | Graphviz `dot` hierarchical engine |
|
|
245
|
+
| 4 reporting guidelines in one tool | Avoid stack sprawl | Generic DOT template switch |
|
|
246
|
+
|
|
247
|
+
### Why not the obvious alternatives
|
|
248
|
+
|
|
249
|
+
| Rejected tool | Reason |
|
|
250
|
+
|---|---|
|
|
251
|
+
| matplotlib `FancyBboxPatch` (manual coords) | Overlap on label change; DOCX embed distortion. Root cause of an STROBE Figure 1 rework. |
|
|
252
|
+
| D2 + post-processing | Weak Arial enforcement; PNG needs 85% vertical compression hack; font-size must be manually set 20–24. Retained as legacy fallback only. |
|
|
253
|
+
| R `consort` v1.2.2 | CONSORT/STROBE only; STARD/PRISMA not covered; box style parameters not officially exposed (requires gpar override). |
|
|
254
|
+
| R `PRISMA2020` v1.1.1 | `PRISMA_save()` uses webshot → PDF rasterized; no DPI parameter. Not suitable for journal submission. |
|
|
255
|
+
| Mermaid / PlantUML | Font control weak; hard to enforce Arial + monochrome outline. |
|
|
256
|
+
|
|
257
|
+
### PRISMA 2020 compliance
|
|
258
|
+
|
|
259
|
+
The generic DOT template in `generate_flow_diagram.R` implements the PRISMA 2020 structure (two identification streams, duplicates-removed box, title/abstract screening, full-text retrieval, full-text assessment, final inclusion) and can reproduce the official template shape. When a journal explicitly requires use of the PRISMA2020 R package or Shiny app for provenance, run that tool separately; the DiagrammeR pipeline is the default for all other submissions.
|
|
260
|
+
|
|
261
|
+
### File outputs
|
|
262
|
+
|
|
263
|
+
Every render emits three files at the same prefix:
|
|
264
|
+
|
|
265
|
+
```
|
|
266
|
+
<prefix>.pdf true vector (journal submission, figure_manifest primary)
|
|
267
|
+
<prefix>.png 300 dpi (2400 px wide; review copy, DOCX embed)
|
|
268
|
+
<prefix>_600.png 600 dpi (4800 px wide; RSNA/Eur Radiol line-art)
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
### System dependency
|
|
272
|
+
|
|
273
|
+
`brew install librsvg` (macOS; one-time). On Linux: `apt-get install librsvg2-bin`.
|
|
274
|
+
|
|
275
|
+
## Central Illustration Dimensions
|
|
276
|
+
|
|
277
|
+
Used by the JACC family and all journals that distinguish a Central Illustration from a Visual Abstract (Fuster V, Mann DL. *JACC.* 2019;74(22):2816–2820). See `references/jacc_central_illustration_principles.md`.
|
|
278
|
+
|
|
279
|
+
| Spec | Value |
|
|
280
|
+
|---|---|
|
|
281
|
+
| PPTX slide size | 10 × 7.5 in (4:3 standard) |
|
|
282
|
+
| Content figure area | ~4 × 4.2 in (top-center of slide) |
|
|
283
|
+
| Citation textbox | 9.4 × 0.5 in at (0.4, 5.3) |
|
|
284
|
+
| Content figure resolution | ≥ 600 DPI PNG; PDF vector preferred |
|
|
285
|
+
| Font | Sans-serif (Arial or equivalent), ≥ 9 pt at print scale |
|
|
286
|
+
| Color | Color allowed; figure should remain interpretable in grayscale |
|
|
287
|
+
| Visual zones in content figure | 1–3 (enforced by `--type central-illustration`) |
|
|
288
|
+
| Total label word count | ≤ 30 |
|
|
289
|
+
| Numerical highlights | ≤ 4 |
|
|
290
|
+
|
|
291
|
+
**Do not pre-render**: the red outer border and the blue "CENTRAL ILLUSTRATION:" header bar visible in published JACC issues are applied by JACC editorial after acceptance. Authors submit only the content figure and citation footer.
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
# Flow Diagram Production — Hard-Earned Lessons
|
|
2
|
+
|
|
3
|
+
> **Triggered from**: SKILL.md Step 4b (Critic Loop). Read this file when
|
|
4
|
+
> generating PRISMA / CONSORT / STARD / STROBE diagrams, especially before a
|
|
5
|
+
> circulation round with senior co-authors.
|
|
6
|
+
>
|
|
7
|
+
> **Source**: Distilled from a multi-revision meta-analysis project where
|
|
8
|
+
> Figure 1 (PRISMA flow) went through four major iterations before clearing
|
|
9
|
+
> a senior reviewer round. Each lesson maps to a concrete failure mode.
|
|
10
|
+
|
|
11
|
+
Flow diagrams look simple but consume disproportionate revision time. The
|
|
12
|
+
underlying causes are rarely "wrong numbers" — they are template fidelity,
|
|
13
|
+
PDF export fidelity, and version drift between the diagram and the
|
|
14
|
+
manuscript. The five lessons below address each in turn.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Lesson 1: Use the official template once a senior reviewer is in the loop
|
|
19
|
+
|
|
20
|
+
**Failure mode**: Custom Graphviz / DiagrammeR layout offers more freedom
|
|
21
|
+
(left-aligned bullets via `\l`, `penwidth=1.8` highlights on the analytic
|
|
22
|
+
cohort, free positioning of side-boxes). Senior systematic-review reviewers,
|
|
23
|
+
however, expect the **PRISMA 2020 standard layout** as published by the
|
|
24
|
+
PRISMA Statement group. A custom layout reads as "the authors did not follow
|
|
25
|
+
the guideline," even when every count is correct.
|
|
26
|
+
|
|
27
|
+
**Resolution**:
|
|
28
|
+
|
|
29
|
+
- Prototype freely with Graphviz / DiagrammeR for early drafts.
|
|
30
|
+
- **Switch to an official template before circulation.** The R package
|
|
31
|
+
`PRISMA2020` (Haddaway et al.) renders the canonical layout from a CSV.
|
|
32
|
+
Equivalent canonical templates exist for CONSORT 2010, STARD 2015, and
|
|
33
|
+
STROBE.
|
|
34
|
+
- If the official template lacks a feature you need (e.g., a third
|
|
35
|
+
exclusion sub-branch), prefer to fold the detail into the existing slots
|
|
36
|
+
rather than restructure.
|
|
37
|
+
|
|
38
|
+
**Cross-link**: `critic_rubrics/flow_diagram.md` — "Official template
|
|
39
|
+
fidelity" check.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Lesson 2: PDF export — the VML fallback breaks under headless converters
|
|
44
|
+
|
|
45
|
+
**Failure mode**: The official PRISMA 2020 docx contains VML (Vector Markup
|
|
46
|
+
Language) fallback pairs that older Word versions render. When converted to
|
|
47
|
+
PDF via headless LibreOffice (`soffice --headless --convert-to pdf`), the
|
|
48
|
+
phase labels can shift by several pixels, columns misalign, and on some
|
|
49
|
+
systems text reflows out of its box. The PDF looks "almost right" — the
|
|
50
|
+
kind of bug that survives a quick visual scan.
|
|
51
|
+
|
|
52
|
+
**Resolution by platform**:
|
|
53
|
+
|
|
54
|
+
| Platform | Approach | Notes |
|
|
55
|
+
|---|---|---|
|
|
56
|
+
| **macOS** | AppleScript driving Microsoft Word for Mac | Deterministic native render; can be invoked headlessly via `osascript`. |
|
|
57
|
+
| **Windows** | PowerShell / VBScript COM driving Word | `Word.Application` object → `.SaveAs2` with `wdFormatPDF`. |
|
|
58
|
+
| **Linux / CI** | Office Online Server (paid), or commit a pre-rendered PDF produced on macOS / Windows | Headless LibreOffice is **not** safe for VML-heavy templates. |
|
|
59
|
+
| Any platform (fallback) | Open in desktop Word → "Save As PDF" manually | Slow but always correct; document the manual step in the manifest. |
|
|
60
|
+
|
|
61
|
+
**Verify visually**: After export, open the PDF and the source docx
|
|
62
|
+
side-by-side. Compare phase-label positions, column widths, and the Y
|
|
63
|
+
position of every numeric box. If anything has shifted, do not submit that
|
|
64
|
+
PDF.
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Lesson 3: docx XML editing requires entity escape
|
|
69
|
+
|
|
70
|
+
**Failure mode**: A docx file is a ZIP archive containing
|
|
71
|
+
`word/document.xml`. Programmatic placeholder substitution (e.g., replacing
|
|
72
|
+
`{{n_screened}}` with `1,234` plus a comment, or `{{study_title}}` with a
|
|
73
|
+
title containing `&`) by raw `str.replace` produces invalid XML. Word then
|
|
74
|
+
shows "We're sorry, we can't open the file because there's a problem with
|
|
75
|
+
the contents." dialog on next open, or — worse — opens with a "repair"
|
|
76
|
+
prompt that silently drops content.
|
|
77
|
+
|
|
78
|
+
**Resolution**:
|
|
79
|
+
|
|
80
|
+
- Use an entity-escaping helper before injecting any user-provided string.
|
|
81
|
+
Python: `xml.sax.saxutils.escape(value)`. JavaScript: `he.encode` or a
|
|
82
|
+
small regex (`& → &`, `< → <`, `> → >`).
|
|
83
|
+
- High-risk fields:
|
|
84
|
+
- Study titles containing `&` (`Smith & Jones, 2020`).
|
|
85
|
+
- Range strings containing `<` or `>` (`age <5 years`, `loss >50%`).
|
|
86
|
+
- Author lists with apostrophes (`O'Brien`).
|
|
87
|
+
- After substitution, validate with `python -c "import zipfile,
|
|
88
|
+
xml.etree.ElementTree as E;
|
|
89
|
+
E.fromstring(zipfile.ZipFile('out.docx').read('word/document.xml'))"`.
|
|
90
|
+
An exception means the docx is broken.
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Lesson 4: VML fallback templates need sequential placeholder maps
|
|
95
|
+
|
|
96
|
+
**Failure mode**: The official PRISMA 2020 docx duplicates each numeric box
|
|
97
|
+
as a `<w:t>` pair: a primary text element plus a VML fallback. Branch
|
|
98
|
+
ordering in XML DOM does **not** match rendering order — the "Other"
|
|
99
|
+
identification branch and the "Database" branch are interleaved in the
|
|
100
|
+
document, and the VML fallbacks appear elsewhere again. A naive
|
|
101
|
+
"replace each placeholder with the next number" loop misaligns most boxes.
|
|
102
|
+
|
|
103
|
+
**Resolution**:
|
|
104
|
+
|
|
105
|
+
1. Dump every `<w:t>` in document order with a script
|
|
106
|
+
(`python -c "from docx import Document; ..."` or direct XML walk).
|
|
107
|
+
2. Annotate each `<w:t>` with column / branch / role
|
|
108
|
+
(`identification.databases.records_n`, `identification.databases.records_n.fallback`).
|
|
109
|
+
3. Build a static `VALUES` list with one entry per `<w:t>` slot, **with a
|
|
110
|
+
comment per slot** documenting what it represents.
|
|
111
|
+
4. Validate by filling all slots with a sentinel value (e.g., `999`) and
|
|
112
|
+
visually checking that all 60+ boxes show `999` in the rendered PDF
|
|
113
|
+
before re-running with real data.
|
|
114
|
+
|
|
115
|
+
This sentinel-render is cheap (one extra `999` pass) and catches mapping
|
|
116
|
+
errors before they propagate into a circulation round.
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Lesson 5: Freeze figure versions alongside manuscript versions
|
|
121
|
+
|
|
122
|
+
**Failure mode**: A reviewer asks about Figure 1 in revision round 2, but
|
|
123
|
+
the figure file in `manuscript/figures/figure_1.pdf` was edited in place
|
|
124
|
+
between rounds. The version visible in v3 of the manuscript no longer
|
|
125
|
+
exists, and tracing what changed requires diffing PDFs (lossy and slow).
|
|
126
|
+
|
|
127
|
+
**Resolution**:
|
|
128
|
+
|
|
129
|
+
- Treat figures as part of the manuscript artifact — they freeze with each
|
|
130
|
+
manuscript version under the **`v_N` rule** (manuscript-versioning
|
|
131
|
+
protocol).
|
|
132
|
+
- Maintain `figures/v{N}/` directories. Each contains the source script
|
|
133
|
+
(`generate_figure_1.R`), the input data CSV, and the rendered docx + PDF
|
|
134
|
+
pair.
|
|
135
|
+
- An `INDEX.md` at `figures/INDEX.md` maps figure version ↔ manuscript
|
|
136
|
+
version, e.g.:
|
|
137
|
+
```
|
|
138
|
+
| Manuscript | Figure 1 | Figure 2 | Figure 3 |
|
|
139
|
+
|---|---|---|---|
|
|
140
|
+
| v3 (circulated 2025-09-01) | figures/v3/figure_1.pdf | figures/v3/figure_2.pdf | figures/v2/figure_3.pdf |
|
|
141
|
+
| v4 (submitted 2025-10-15) | figures/v4/figure_1.pdf | figures/v3/figure_2.pdf | figures/v3/figure_3.pdf |
|
|
142
|
+
```
|
|
143
|
+
- **Never edit `figures/v3/*.pdf` after circulation.** Branch to
|
|
144
|
+
`figures/v4/` and rebuild.
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## When to use which approach
|
|
149
|
+
|
|
150
|
+
| Stage | Tool | Output | Risk if you skip |
|
|
151
|
+
|---|---|---|---|
|
|
152
|
+
| Early draft | DiagrammeR + Graphviz custom | PNG, fast iteration | None — flexibility wins here |
|
|
153
|
+
| Internal QC | R `PRISMA2020` package or equivalent | Official-template PNG / PDF | Custom layout will be flagged in circulation |
|
|
154
|
+
| Circulation | Filled official-template docx + native-Word PDF (macOS AppleScript / Windows COM) | Frozen docx + PDF pair | Headless export drift; reviewer notices misaligned labels |
|
|
155
|
+
| Submission | `figures/v_N/` frozen pair | Immutable docx + PDF | Edit-in-place breaks the manuscript-figure version map |
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## Quick cross-references
|
|
160
|
+
|
|
161
|
+
- `critic_rubrics/flow_diagram.md` — extended critic checklist (rounds T=1…3)
|
|
162
|
+
- `design_principles.md` — communication-first design strategies
|
|
163
|
+
- `figure_specs.md` — journal-specific dimensions and DPI
|
|
164
|
+
- `exemplar_diagrams/{prisma,consort,stard,strobe}/` — reference layouts
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# JACC Central Illustration — Principles & Layout Spec
|
|
2
|
+
|
|
3
|
+
Distilled from Fuster V, Mann DL. **The Art and Challenge of Crafting a Central Illustration or Visual Abstract.** *J Am Coll Cardiol.* 2019;74(22):2816–2820. doi:10.1016/j.jacc.2019.10.035
|
|
4
|
+
|
|
5
|
+
This document is the canonical reference when generating Central Illustrations for JACC, JACC: Asia, JACC: Cardiovascular Imaging, JACC: Heart Failure, JACC: Basic to Translational Science, JACC: CardioOncology, and JACC: Clinical Electrophysiology.
|
|
6
|
+
|
|
7
|
+
## CI vs Visual Abstract — they are different artifacts
|
|
8
|
+
|
|
9
|
+
| Aspect | Central Illustration | Visual Abstract |
|
|
10
|
+
|---|---|---|
|
|
11
|
+
| Purpose | Single key finding / take-home message | Methods + Results pictorial summary |
|
|
12
|
+
| Where referenced in paper | End of Results / start of Discussion | Beginning of paper |
|
|
13
|
+
| Methods content | **None** | Required |
|
|
14
|
+
| Audience | Cardiovascular clinicians + readers of the journal issue | Broad including non-specialists / social media |
|
|
15
|
+
| Used by | All JACC family journals + JACC: Asia | Originally JACC: Basic to Translational Science |
|
|
16
|
+
| Text density | Minimal (graphical priority) | More allowed (methods labels) |
|
|
17
|
+
| Bar graphs | OK if they capture entire message | Avoid — use ↑↓ arrows |
|
|
18
|
+
| Default complexity | Simple (1–3 visual zones) | Simple (Q→M→R three blocks) |
|
|
19
|
+
|
|
20
|
+
If a paper requires *both* a central illustration and a visual abstract (some JACC sister journals), they must convey complementary content; do not duplicate.
|
|
21
|
+
|
|
22
|
+
## Five Fuster-Mann rules (must pass all)
|
|
23
|
+
|
|
24
|
+
1. **Know the message.** Decide one finding the figure must convey. Do not stuff in the study design + multiple findings + take-homes — that "causes confusion and excess that does not inform the reader."
|
|
25
|
+
2. **Convey graphically, not textually.** Even a simple Kaplan–Meier curve is acceptable if it captures the entire message. Bar graphs are tolerated if they earn their space.
|
|
26
|
+
3. **Avoid using too much text.** Any text that can be replaced by an icon or arrow should be.
|
|
27
|
+
4. **Avoid secondary messages.** If a viewer cannot state the main finding within 5 seconds of looking at the figure, the figure has too much.
|
|
28
|
+
5. **Simplicity is superior.** Authors "truly struggle with the concept" early; default to fewer panels rather than more.
|
|
29
|
+
|
|
30
|
+
## CI mode validation rules (enforced by `generate_visual_abstract.py --type central-illustration`)
|
|
31
|
+
|
|
32
|
+
A submission rejects with a warning if any of the following holds:
|
|
33
|
+
|
|
34
|
+
| Rule | Threshold | Rationale (Fuster-Mann) |
|
|
35
|
+
|---|---|---|
|
|
36
|
+
| `n_visual_zones` | ≤ 3 | "Simplicity is superior" |
|
|
37
|
+
| `total_label_word_count` | ≤ 30 | "Avoid using too much text" |
|
|
38
|
+
| `methods_terms_present` | none of: `cohort flow`, `inclusion`, `exclusion`, `study design`, `enrollment`, `randomized`, `sample size` | CI ≠ VA; methods belong in VA |
|
|
39
|
+
| `numerical_data_points` | ≤ 4 | "Avoid incorporating secondary messages" |
|
|
40
|
+
|
|
41
|
+
Override a single rule with `--allow rule=name` and a justification note recorded in the output PPTX speaker notes.
|
|
42
|
+
|
|
43
|
+
## JACC PPTX layout (verified from official submission templates)
|
|
44
|
+
|
|
45
|
+
Reference: 4 official JACC PPTX submission files (Figures 1–4 of Fuster-Mann editorial, doi:10.1016/j.jacc.2019.10.035). All four share an identical layout:
|
|
46
|
+
|
|
47
|
+
| Slot | Type | Position (left, top) inches | Size (W × H) inches | Content |
|
|
48
|
+
|---|---|---|---|---|
|
|
49
|
+
| 1 | TEXT_BOX | (0.4, 5.3) | 9.4 × 0.5 | Citation: `"FirstAuthor et al. JACC YYYY; vol(issue):pages."` |
|
|
50
|
+
| 2 | PICTURE | (3.0, 0.8) | 4.0 × 4.2 | **Author-provided content figure** (the only thing the author owns) |
|
|
51
|
+
| 3 | TEXT_BOX | (0.4, 7.0) | 4.1 × 0.5 | Reserved (often empty in production templates) |
|
|
52
|
+
| 4 | PICTURE | (7.3, 6.7) | 2.7 × 0.8 | JACC family logo (placeholder; supplied by editorial) |
|
|
53
|
+
|
|
54
|
+
Slide size: **10 × 7.5 inches (4:3)**. Background white.
|
|
55
|
+
|
|
56
|
+
The red border + the blue "CENTRAL ILLUSTRATION:" header bar visible in published JACC issues are **applied by the JACC editorial team after acceptance** — authors should not pre-render those elements in their submission.
|
|
57
|
+
|
|
58
|
+
Authors submit:
|
|
59
|
+
- Slot 1 (citation text)
|
|
60
|
+
- Slot 2 (the content figure as PNG/TIFF, ≥600 DPI, content area ~4 × 4.2 in at print)
|
|
61
|
+
|
|
62
|
+
Slots 3 and 4 stay as placeholders.
|
|
63
|
+
|
|
64
|
+
## Author-provided content figure spec
|
|
65
|
+
|
|
66
|
+
| Spec | Value |
|
|
67
|
+
|---|---|
|
|
68
|
+
| Aspect ratio | ~1:1 to slightly portrait (4 × 4.2 in) |
|
|
69
|
+
| Print resolution | 600 DPI for PNG, vector preferred (PDF) |
|
|
70
|
+
| Font | Sans-serif; minimum 9 pt at print scale |
|
|
71
|
+
| Color | Allowed; high-contrast for grayscale fallback |
|
|
72
|
+
| Visual zones | 1–3 (rule above) |
|
|
73
|
+
| Total label words | ≤ 30 |
|
|
74
|
+
| Numerical highlights | ≤ 4 |
|
|
75
|
+
| Photographs | Allowed (Fuster-Mann Figure 4 example) |
|
|
76
|
+
|
|
77
|
+
Reference good examples cited in the editorial:
|
|
78
|
+
- *Moccetti F, et al. J Am Coll Cardiol. 2018;72(9):1015–26.* — heart anatomy + 3 concept boxes + vessel cross-section + brain image. Total ~20 words. (Fuster-Mann Figure 1)
|
|
79
|
+
- *Brugada J, et al. J Am Coll Cardiol. 2018;72(9):1046–59.* — 3-column "Diagnosis / Pathophysiology / Management" grid with ECG, sequencing, defibrillator imagery. (Fuster-Mann Figure 2)
|
|
80
|
+
|
|
81
|
+
## Common author mistakes (rejected examples)
|
|
82
|
+
|
|
83
|
+
- Embedding the cohort flow / CONSORT-style diagram → that is a study Figure 1 or a Visual Abstract, never a Central Illustration.
|
|
84
|
+
- Side-by-side forest plot + KM curve + heat map → too many secondary messages.
|
|
85
|
+
- Text-heavy "Clinical takeaway" tile boxes summarizing multiple bullets → reduce to one icon-anchored sentence or move to Discussion narrative.
|
|
86
|
+
- Multiple HR/CI/p-value annotations across rows → keep ≤ 4 numerical highlights total.
|
|
87
|
+
- Methodology labels ("Inclusion criteria", "N=...") → CI must not look like Methods.
|
|
88
|
+
|
|
89
|
+
## Adding a non-JACC cardiology CI template
|
|
90
|
+
|
|
91
|
+
Other journals using a CI-style figure (Circulation family, EHJ, JAHA) tend to follow the same simplicity rules. For these, reuse the Fuster-Mann 5 rules above and the validation thresholds, but adjust the PPTX template to the journal's published submission size and citation footer pattern.
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# Medical Illustration Sources
|
|
2
|
+
|
|
3
|
+
Reference for finding medical illustrations for visual abstracts, graphical abstracts, and
|
|
4
|
+
manuscript figures. Consult this file when a standalone illustration (not a data plot) is needed.
|
|
5
|
+
|
|
6
|
+
## Priority Order
|
|
7
|
+
|
|
8
|
+
1. **Study's own figures** — ROC curve, flow diagram, representative images from the study.
|
|
9
|
+
Always preferred. No licensing issues. Most relevant to the paper.
|
|
10
|
+
2. **Free illustration libraries** — Download and insert into the visual abstract template.
|
|
11
|
+
3. **Manual drawing** — Simple shapes in Figma, PowerPoint, or Keynote.
|
|
12
|
+
4. **AI generation** — Only if GEMINI_API_KEY is available. Use `generate_image.py --style medical`.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Free Resources (CC BY or Public Domain)
|
|
17
|
+
|
|
18
|
+
### Servier Medical Art (SMART)
|
|
19
|
+
|
|
20
|
+
- **URL:** https://smart.servier.com/
|
|
21
|
+
- **License:** CC BY 4.0 (attribution required)
|
|
22
|
+
- **Assets:** 3000+ medical illustrations
|
|
23
|
+
- **Categories:** Anatomy (11 systems), cellular biology, medical specialties, equipment
|
|
24
|
+
- **Format:** PowerPoint (editable vectors), PNG
|
|
25
|
+
- **Best for:** Organ systems, cells, molecules, medical devices, surgical instruments
|
|
26
|
+
- **Attribution:** "Illustrations adapted from Servier Medical Art (https://smart.servier.com/),
|
|
27
|
+
licensed under CC BY 4.0"
|
|
28
|
+
- **Access:** Browse categories on website. No API. Download slide sets per category.
|
|
29
|
+
|
|
30
|
+
### NIAID Visual & Medical Arts (BioArt)
|
|
31
|
+
|
|
32
|
+
- **URL:** https://bioart.niaid.nih.gov/
|
|
33
|
+
- **License:** Public domain (US Government work — no attribution legally required, but recommended)
|
|
34
|
+
- **Assets:** 2000+ illustrations
|
|
35
|
+
- **Categories:** Viruses, bacteria, parasites, anatomy, cells, lab equipment, animals
|
|
36
|
+
- **Format:** SVG, PNG, TIFF (high resolution)
|
|
37
|
+
- **Best for:** Infectious disease, pathogens, immune cells, laboratory scenes
|
|
38
|
+
- **Access:** Browse/search on website. No API.
|
|
39
|
+
|
|
40
|
+
### BioIcons
|
|
41
|
+
|
|
42
|
+
- **URL:** https://bioicons.com/
|
|
43
|
+
- **License:** Various CC licenses (check per icon)
|
|
44
|
+
- **Format:** SVG
|
|
45
|
+
- **Best for:** Schematic diagrams, pathway illustrations, icons for flow diagrams
|
|
46
|
+
|
|
47
|
+
### Reactome Icon Library
|
|
48
|
+
|
|
49
|
+
- **URL:** https://reactome.org/icon-lib
|
|
50
|
+
- **License:** CC BY 4.0
|
|
51
|
+
- **Format:** SVG, PNG
|
|
52
|
+
- **Best for:** Molecular pathways, biochemistry, cell signaling
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Paid Resources
|
|
57
|
+
|
|
58
|
+
### BioRender
|
|
59
|
+
|
|
60
|
+
- **URL:** https://biorender.com/
|
|
61
|
+
- **License:** Subscription (academic plans available, ~$99/year student)
|
|
62
|
+
- **Best for:** Professional graphical abstracts, pathway diagrams, figure panels
|
|
63
|
+
- **Note:** Industry standard. Output must include BioRender watermark on free tier.
|
|
64
|
+
Academic publications require paid license for copyright clearance.
|
|
65
|
+
|
|
66
|
+
### Medi-Sketch
|
|
67
|
+
|
|
68
|
+
- **URL:** https://www.medi-sketch.com/
|
|
69
|
+
- **License:** Per-illustration purchase
|
|
70
|
+
- **Best for:** High-quality Korean medical illustrations, graphical abstract commissions
|
|
71
|
+
- **Note:** Korean marketplace connecting researchers with professional medical illustrators
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## Keyword → Source Mapping
|
|
76
|
+
|
|
77
|
+
| Need | Recommended Source |
|
|
78
|
+
|------|--------------------|
|
|
79
|
+
| Organ anatomy (heart, lung, brain, kidney) | Servier Medical Art |
|
|
80
|
+
| Cell biology (membrane, organelles, DNA) | Servier Medical Art |
|
|
81
|
+
| Infectious agents (virus, bacteria) | NIAID BioArt |
|
|
82
|
+
| Lab equipment (microscope, pipette, scanner) | NIAID BioArt or Servier |
|
|
83
|
+
| CT/MRI scanner illustration | Servier Medical Art |
|
|
84
|
+
| Molecular pathway | Reactome or BioRender |
|
|
85
|
+
| Schematic flow icons | BioIcons |
|
|
86
|
+
| Custom professional illustration | Medi-Sketch or BioRender |
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Usage Notes
|
|
91
|
+
|
|
92
|
+
- **Editable vectors preferred.** Servier provides PowerPoint files with ungroupable vector shapes.
|
|
93
|
+
Extract individual elements and recolor to match your visual abstract palette.
|
|
94
|
+
- **Resolution check.** Ensure downloaded PNGs are ≥300 DPI for print. SVGs scale infinitely.
|
|
95
|
+
- **Consistency.** Within one visual abstract, use illustrations from the same source to maintain
|
|
96
|
+
visual coherence (mixing Servier flat style with NIAID 3D renders looks inconsistent).
|
|
97
|
+
- **AI generation warning.** See the AI-Generated Figure Warning section in SKILL.md.
|
|
98
|
+
AI-generated medical illustrations are recognizable to reviewers. Use sparingly and customize.
|