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,287 @@
|
|
|
1
|
+
# Publication Table Standards — Knowledge Base
|
|
2
|
+
|
|
3
|
+
> Reference document for medical journal table formatting.
|
|
4
|
+
> Source: YouTube tutorials, journal author guidelines, AMA Manual of Style, tool documentation.
|
|
5
|
+
> Last updated: 2026-04-11
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 1. Universal Rules (All Medical Journals)
|
|
10
|
+
|
|
11
|
+
1. **No vertical lines** — horizontal rules only (top, below header, bottom)
|
|
12
|
+
2. **Editable Word tables** — use Word Insert > Table. Never submit images, Excel, or PDF
|
|
13
|
+
3. **Sequential numbering** — Table 1, 2, 3... in order of first citation in text
|
|
14
|
+
4. **Define all abbreviations** — in footnotes, independently for each table
|
|
15
|
+
5. **Explanatory content in footnotes, not headings**
|
|
16
|
+
6. **Display item limit** — most journals: tables + figures combined 4-5
|
|
17
|
+
7. **Exact P values** — never just "significant/not significant"
|
|
18
|
+
8. **Variability measures required** — always state mean (SD) or median (IQR)
|
|
19
|
+
9. **Self-contained titles** — table title alone must convey content without reading text
|
|
20
|
+
10. **No duplication** — tables and figures must not repeat the same data
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## 2. Journal-Specific Differences
|
|
25
|
+
|
|
26
|
+
### Footnote Markers
|
|
27
|
+
|
|
28
|
+
| Journal Family | Marker System | Order |
|
|
29
|
+
|---|---|---|
|
|
30
|
+
| AMA (Radiology, JAMA, AJR, Rad:AI) | Superscript lowercase letters | a, b, c, d... |
|
|
31
|
+
| NEJM | Symbols | *, †, ‡, §, ‖, ¶, **, ††... |
|
|
32
|
+
| Lancet | Symbols | *, †, ‡, §, ¶, ‖, **, ††... |
|
|
33
|
+
| European Radiology (Springer) | Superscript lowercase letters + asterisks for significance | a, b, c... and *, **, *** |
|
|
34
|
+
|
|
35
|
+
### P Value Formatting
|
|
36
|
+
|
|
37
|
+
| Journal | Case | Leading Zero | Examples |
|
|
38
|
+
|---|---|---|---|
|
|
39
|
+
| Radiology / JAMA / AJR / Rad:AI | Uppercase italic *P* | No | *P* = .03, *P* < .001 |
|
|
40
|
+
| NEJM | Uppercase *P* | No | *P* = .04, *P* < .001 |
|
|
41
|
+
| Lancet | Lowercase p | Yes | p = 0.03, p < 0.0001 |
|
|
42
|
+
| European Radiology | Lowercase p (Springer) | Varies | p = 0.03 |
|
|
43
|
+
|
|
44
|
+
### P Value Decimal Places
|
|
45
|
+
|
|
46
|
+
| Value Range | JAMA/Radiology | NEJM | Lancet |
|
|
47
|
+
|---|---|---|---|
|
|
48
|
+
| > .01 | 2 decimals (.04) | 2 decimals (.04) | 2 sig figs (0.04) |
|
|
49
|
+
| .01-.001 | 3 decimals (.003) | 3 decimals (.003) | Up to 4 decimals (0.0023) |
|
|
50
|
+
| < .001 | *P* < .001 | *P* < .001 | p < 0.0001 |
|
|
51
|
+
|
|
52
|
+
### Horizontal Lines
|
|
53
|
+
|
|
54
|
+
| Journal | Rule |
|
|
55
|
+
|---|---|
|
|
56
|
+
| AMA journals | Top, below header, bottom. Additional sparingly |
|
|
57
|
+
| NEJM | Minimize even internal horizontal lines |
|
|
58
|
+
| Lancet | Exactly 3: top, below header, bottom |
|
|
59
|
+
|
|
60
|
+
### 95% CI Format
|
|
61
|
+
|
|
62
|
+
| Journal | Format |
|
|
63
|
+
|---|---|
|
|
64
|
+
| Radiology | (XX, XX) — comma separator |
|
|
65
|
+
| JAMA | XX to XX — "to" separator |
|
|
66
|
+
| Lancet | XX to XX or XX-XX |
|
|
67
|
+
| NEJM | XX to XX |
|
|
68
|
+
|
|
69
|
+
### Table Title Format
|
|
70
|
+
|
|
71
|
+
| Journal | Format |
|
|
72
|
+
|---|---|
|
|
73
|
+
| AMA journals | **Table N.** Title in regular weight (bold "Table N." only) |
|
|
74
|
+
| NEJM | Table N. Title |
|
|
75
|
+
| Lancet | Table N: Title |
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## 3. AMA Manual of Style (11th Ed) — Table Rules
|
|
80
|
+
|
|
81
|
+
### Structure
|
|
82
|
+
- **Column headers**: Bold
|
|
83
|
+
- **Row headers (stub)**: Regular weight, sentence case
|
|
84
|
+
- **Decking** (nested column headers): Maximum 3 levels
|
|
85
|
+
- **Alignment**: Text = left-aligned, Numbers = center or decimal-aligned
|
|
86
|
+
- **Units**: In column header parentheses, not repeated in cells
|
|
87
|
+
- **Maximum size**: ~40 rows x 6-8 columns, fit within 1 page
|
|
88
|
+
|
|
89
|
+
### Footnote System (AMA 11th)
|
|
90
|
+
- **Table footnotes**: Superscript lowercase letters (a, b, c...)
|
|
91
|
+
- **NOT symbols** — symbols (*, †, ‡) are for bottom-of-page text footnotes only
|
|
92
|
+
- **Assignment order**: Top-to-bottom, left-to-right through the table
|
|
93
|
+
- **Whole-table footnote**: Place superscript "a" at end of table title
|
|
94
|
+
- **Reference numbers + footnotes**: Reference first, comma, then footnote letter (e.g., 5,b)
|
|
95
|
+
|
|
96
|
+
### Footnote Placement Order
|
|
97
|
+
```
|
|
98
|
+
Below the table, in this sequence:
|
|
99
|
+
|
|
100
|
+
1. General note (no marker, applies to entire table)
|
|
101
|
+
"Data are presented as median (IQR) unless otherwise noted."
|
|
102
|
+
|
|
103
|
+
2. Abbreviation note
|
|
104
|
+
"ASA = American Society of Anesthesiologists, BMI = body mass index,
|
|
105
|
+
CI = confidence interval."
|
|
106
|
+
→ Listed in order of appearance in table (left→right, top→bottom)
|
|
107
|
+
→ Some journals (JAMA) require alphabetical order — check guide
|
|
108
|
+
|
|
109
|
+
3. Specific notes (superscript letter markers)
|
|
110
|
+
"a Excludes patients with missing follow-up data."
|
|
111
|
+
"b Adjusted for age and sex."
|
|
112
|
+
|
|
113
|
+
4. Probability notes (asterisk markers, if used)
|
|
114
|
+
"* P < .05; ** P < .01."
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### P Value Rules
|
|
118
|
+
- Uppercase italic: *P*
|
|
119
|
+
- No leading zero: .05, not 0.05
|
|
120
|
+
- Thin space around operators: *P* = .03
|
|
121
|
+
- Only *P*, *α*, *β* omit leading zero; all other statistics keep it
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## 4. Footnote System Specification
|
|
126
|
+
|
|
127
|
+
### When to Use Symbols vs Letters vs Numbers
|
|
128
|
+
|
|
129
|
+
| System | Markers | Use Case | Journals |
|
|
130
|
+
|---|---|---|---|
|
|
131
|
+
| Lowercase letters | a, b, c... | **Table footnotes (standard)** | AMA journals, EUR, most |
|
|
132
|
+
| Symbols | *, †, ‡, §, ‖, ¶ | Table footnotes (traditional) | NEJM, Lancet |
|
|
133
|
+
| Asterisks only | *, **, *** | **Probability notes only** | Springer journals |
|
|
134
|
+
| Uppercase letters | A, B, C... | Table footnotes | JCI |
|
|
135
|
+
| Numbers | 1, 2, 3... | Non-numeric tables only | Rarely used (confusion with references) |
|
|
136
|
+
|
|
137
|
+
### Caption vs Footnote — What Goes Where
|
|
138
|
+
|
|
139
|
+
| Content | Caption (above table) | Footnote (below table) |
|
|
140
|
+
|---|---|---|
|
|
141
|
+
| Table title | Yes | No |
|
|
142
|
+
| Study period/setting | Yes (brief) | No |
|
|
143
|
+
| Abbreviation definitions | No | **Yes** (first footnote) |
|
|
144
|
+
| Statistical test descriptions | No | **Yes** |
|
|
145
|
+
| P value thresholds | No | **Yes** (probability note) |
|
|
146
|
+
| Data source | No | **Yes** (source note) |
|
|
147
|
+
| Missing data explanation | No | **Yes** (specific note) |
|
|
148
|
+
| Sample size (N) | Column header or caption | Footnote (supplementary) |
|
|
149
|
+
|
|
150
|
+
### Statistical Test Footnote Patterns
|
|
151
|
+
|
|
152
|
+
**Pattern A — Individual markers (preferred when tests vary by row):**
|
|
153
|
+
```
|
|
154
|
+
Age, y 65.3 (12.1) 62.1 (11.8) .04ᵃ
|
|
155
|
+
Sex, male 53 (52) 48 (47) .41ᵇ
|
|
156
|
+
|
|
157
|
+
ᵃ Wilcoxon rank-sum test.
|
|
158
|
+
ᵇ Fisher exact test.
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
**Pattern B — General note (preferred when same test for all rows of a type):**
|
|
162
|
+
```
|
|
163
|
+
P values were calculated using the Wilcoxon rank-sum test for continuous
|
|
164
|
+
variables and the Fisher exact test for categorical variables.
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## 5. Common Mistakes Checklist
|
|
170
|
+
|
|
171
|
+
### Structure
|
|
172
|
+
- [ ] Binary variables: show only one level (Male 53%, not Male 53% / Female 47%)
|
|
173
|
+
- [ ] Remove derivable columns (Total column when groups are shown)
|
|
174
|
+
- [ ] Keep tables under 50 rows (excess → supplementary)
|
|
175
|
+
- [ ] No sub-part numbering (Table 3A/3B → Table 3, Table 4)
|
|
176
|
+
- [ ] Do not repeat all table data in Results text
|
|
177
|
+
|
|
178
|
+
### Formatting
|
|
179
|
+
- [ ] Consistent decimal places within each column
|
|
180
|
+
- [ ] Units in column headers, not in cells
|
|
181
|
+
- [ ] No vertical lines, minimal horizontal lines
|
|
182
|
+
- [ ] Numbers right-aligned or center-aligned (not left)
|
|
183
|
+
- [ ] Specify variability: "Mean (SD)" or "Median (IQR)" in header or footnote
|
|
184
|
+
|
|
185
|
+
### Statistics
|
|
186
|
+
- [ ] RCTs: P values in Table 1 are usually unnecessary (randomization)
|
|
187
|
+
- [ ] Always name the statistical test (in footnote or general note)
|
|
188
|
+
- [ ] Report effect sizes per clinically meaningful unit (OR per 10-year, not per 1-year)
|
|
189
|
+
- [ ] CI notation consistent throughout (parentheses vs "to" — match journal style)
|
|
190
|
+
- [ ] Never use "NS" — report exact P values
|
|
191
|
+
|
|
192
|
+
### Submission
|
|
193
|
+
- [ ] Editable Word table (not image/screenshot)
|
|
194
|
+
- [ ] No color as sole information carrier (use bold/italic/symbols instead)
|
|
195
|
+
- [ ] All abbreviations defined in footnotes
|
|
196
|
+
- [ ] Each table's footnotes are self-contained (no "see Table 1 footnote")
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
## 6. Tool Recommendations
|
|
201
|
+
|
|
202
|
+
### Primary Pipeline: R {gtsummary}
|
|
203
|
+
|
|
204
|
+
**Why gtsummary:**
|
|
205
|
+
- Built-in journal themes: JAMA, Lancet, NEJM
|
|
206
|
+
- Auto-selects statistical tests (Wilcoxon, Fisher, Chi-square)
|
|
207
|
+
- Auto-generates footnotes (test names, summary statistics)
|
|
208
|
+
- Outputs to Word (via flextable), LaTeX (via huxtable), HTML (via gt)
|
|
209
|
+
|
|
210
|
+
**Core API:**
|
|
211
|
+
```r
|
|
212
|
+
library(gtsummary)
|
|
213
|
+
|
|
214
|
+
# Set journal theme FIRST
|
|
215
|
+
theme_gtsummary_journal("jama") # or "lancet", "nejm"
|
|
216
|
+
theme_gtsummary_compact()
|
|
217
|
+
|
|
218
|
+
# Table 1
|
|
219
|
+
tbl <- df %>%
|
|
220
|
+
tbl_summary(
|
|
221
|
+
by = group,
|
|
222
|
+
type = list(age ~ "continuous2"),
|
|
223
|
+
statistic = list(
|
|
224
|
+
all_continuous() ~ c("{mean} ({sd})", "{median} ({p25}, {p75})"),
|
|
225
|
+
all_categorical() ~ "{n} ({p}%)"
|
|
226
|
+
),
|
|
227
|
+
digits = list(all_continuous() ~ 1),
|
|
228
|
+
missing = "ifany"
|
|
229
|
+
) %>%
|
|
230
|
+
add_p() %>%
|
|
231
|
+
add_overall() %>%
|
|
232
|
+
add_stat_label() %>%
|
|
233
|
+
bold_labels() %>%
|
|
234
|
+
modify_footnote(all_stat_cols() ~ "Mean (SD); Median (Q1, Q3); n (%)")
|
|
235
|
+
|
|
236
|
+
# Export
|
|
237
|
+
tbl %>% as_flex_table() %>% flextable::save_as_docx(path = "table1.docx")
|
|
238
|
+
tbl %>% as_hux_table() %>% huxtable::to_latex() %>% writeLines("table1.tex")
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
**Regression table:**
|
|
242
|
+
```r
|
|
243
|
+
model <- glm(outcome ~ age + sex + bmi, data = df, family = binomial)
|
|
244
|
+
|
|
245
|
+
tbl_regression(model, exponentiate = TRUE) %>%
|
|
246
|
+
add_global_p() %>%
|
|
247
|
+
bold_p(t = 0.05) %>%
|
|
248
|
+
bold_labels()
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
### Supporting Tools
|
|
252
|
+
|
|
253
|
+
| Tool | Role | When to Use |
|
|
254
|
+
|---|---|---|
|
|
255
|
+
| gt | Fine-grained styling | Cell-level colors, custom footnote marks, heatmaps |
|
|
256
|
+
| flextable | Word output engine | Final DOCX formatting, autofit, borders |
|
|
257
|
+
| huxtable | LaTeX output engine | LaTeX code extraction |
|
|
258
|
+
| tableone (R/Python) | Quick exploratory Table 1 | Early drafts, data exploration |
|
|
259
|
+
| python-docx | Python Word tables | When pipeline is Python-only |
|
|
260
|
+
| great_tables | Python gt port | Growing but immature for medical use |
|
|
261
|
+
|
|
262
|
+
### Python Limitation
|
|
263
|
+
Python has no equivalent to gtsummary's journal themes or automatic statistical test selection. For publication tables, R is strongly recommended. Python-only pipelines should use tableone for generation + python-docx for Word formatting, accepting manual style adjustments.
|
|
264
|
+
|
|
265
|
+
---
|
|
266
|
+
|
|
267
|
+
## 7. Format-Specific Notes
|
|
268
|
+
|
|
269
|
+
### Word (DOCX) Submission
|
|
270
|
+
- Use Word's Insert > Table function (never tab-separated)
|
|
271
|
+
- Font: Times New Roman 10-12pt (table body can be 9-10pt)
|
|
272
|
+
- Single spacing within cells
|
|
273
|
+
- Remove all vertical borders; keep 3 horizontal lines
|
|
274
|
+
- Bold headers, regular body text
|
|
275
|
+
- Each table on a separate page, after References
|
|
276
|
+
|
|
277
|
+
### LaTeX Submission
|
|
278
|
+
- Use `booktabs` package (`\toprule`, `\midrule`, `\bottomrule`)
|
|
279
|
+
- Never use `\hline` or `|` vertical separators
|
|
280
|
+
- `\siunitx` for decimal alignment
|
|
281
|
+
- `\multirow` / `\multicolumn` for merged cells
|
|
282
|
+
- Generate via gtsummary → huxtable → to_latex() for consistency
|
|
283
|
+
|
|
284
|
+
### HTML (Review/Proofing)
|
|
285
|
+
- gt produces the highest quality HTML tables
|
|
286
|
+
- Useful for co-author review before final Word/LaTeX export
|
|
287
|
+
- Can include interactive features (sorting, filtering) for supplementary materials
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Table: Diagnostic Accuracy Results
|
|
2
|
+
|
|
3
|
+
## Reporting Guidelines
|
|
4
|
+
- **STARD**: Sensitivity, Specificity, PPV, NPV with 95% CIs
|
|
5
|
+
- **TRIPOD-AI / CLAIM**: For AI model performance
|
|
6
|
+
|
|
7
|
+
## Standard Structure
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
Table 2. Diagnostic Performance of [Model/Test] for [Condition]
|
|
11
|
+
|
|
12
|
+
Sensitivity Specificity PPV NPV AUC
|
|
13
|
+
(95% CI) (95% CI) (95% CI) (95% CI) (95% CI)
|
|
14
|
+
|
|
15
|
+
Model A 0.92 (0.87-0.96) 0.85 (0.79-0.90) 0.78 (0.71-0.84) 0.95 (0.91-0.97) 0.94 (0.91-0.97)
|
|
16
|
+
Model B 0.88 (0.82-0.93) 0.90 (0.85-0.94) 0.83 (0.76-0.88) 0.93 (0.89-0.96) 0.93 (0.89-0.96)
|
|
17
|
+
P value .12 .08 .21 .34 .45
|
|
18
|
+
|
|
19
|
+
95% CIs were calculated using the Wilson score method. AUC comparison
|
|
20
|
+
by DeLong test.
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Rules
|
|
24
|
+
- **Always include 95% CIs** for all metrics (STARD requirement)
|
|
25
|
+
- **CI method**: Specify in footnote (Wilson score, Clopper-Pearson, DeLong)
|
|
26
|
+
- **Threshold**: State the decision threshold used (e.g., "at Youden optimal threshold")
|
|
27
|
+
- **Per-class results**: For multi-class, show per-class + macro/micro average
|
|
28
|
+
- **Comparison P values**: DeLong test for AUC, McNemar for sensitivity/specificity
|
|
29
|
+
- **Decimal places**: 2-3 for proportions (0.92), 2-3 for AUC (0.94)
|
|
30
|
+
- **Reader studies**: Include per-reader AND pooled results
|
|
31
|
+
|
|
32
|
+
## Key Footnote Content
|
|
33
|
+
- CI calculation method
|
|
34
|
+
- Comparison test used (DeLong, McNemar, bootstrap)
|
|
35
|
+
- Threshold selection method
|
|
36
|
+
- Whether results are per-patient or per-lesion
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Tables: Meta-Analysis
|
|
2
|
+
|
|
3
|
+
## Reporting Guidelines
|
|
4
|
+
- **PRISMA 2020**: Study characteristics + pooled results
|
|
5
|
+
- **PRISMA-DTA**: For diagnostic test accuracy meta-analyses
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Table A: Characteristics of Included Studies
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
Table 1. Characteristics of Included Studies
|
|
13
|
+
|
|
14
|
+
Author, Year Country Design N Population Index Test Reference Standard Quality
|
|
15
|
+
Kim 2023 Korea Retro 450 Suspected PE CTPA AI (v2.1) Expert consensus Low risk
|
|
16
|
+
Smith 2024 USA Prosp 1200 ED patients CTPA AI (v3.0) Pulmonary DSA Some concerns
|
|
17
|
+
...
|
|
18
|
+
|
|
19
|
+
Retro = retrospective, Prosp = prospective, PE = pulmonary embolism,
|
|
20
|
+
CTPA = CT pulmonary angiography, ED = emergency department,
|
|
21
|
+
DSA = digital subtraction angiography.
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### Rules
|
|
25
|
+
- **Column order**: Author/Year, Country, Design, N, Population, Index test, Reference standard, Quality/RoB
|
|
26
|
+
- **Author format**: First author surname + year
|
|
27
|
+
- **Study design**: Use standard abbreviations (Retro, Prosp, RCT)
|
|
28
|
+
- **Quality assessment tool**: QUADAS-2 (DTA), RoB 2 (RCT), NOS (observational)
|
|
29
|
+
- **Quality rating**: "Low risk" / "Some concerns" / "High risk" (QUADAS-2 terms)
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Table B: Pooled Results / Summary Estimates
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
Table 2. Pooled Diagnostic Accuracy Estimates
|
|
37
|
+
|
|
38
|
+
k N Pooled Estimate (95% CI) I² P_het
|
|
39
|
+
|
|
40
|
+
Sensitivity 12 3400 0.91 (0.87-0.94) 78% <.001
|
|
41
|
+
Specificity 12 3400 0.88 (0.83-0.92) 65% .002
|
|
42
|
+
Positive LR 12 3400 7.58 (5.12-11.2) 72% <.001
|
|
43
|
+
Negative LR 12 3400 0.10 (0.07-0.15) 69% .001
|
|
44
|
+
DOR 12 3400 75.8 (42.1-136.5) 58% .008
|
|
45
|
+
|
|
46
|
+
k = number of studies, N = total participants, CI = confidence interval,
|
|
47
|
+
LR = likelihood ratio, DOR = diagnostic odds ratio.
|
|
48
|
+
Pooled estimates from bivariate random-effects model.
|
|
49
|
+
I² = Higgins inconsistency statistic; P_het from Cochran Q test.
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Rules
|
|
53
|
+
- **k and N**: Always report number of studies and total participants
|
|
54
|
+
- **Heterogeneity**: I² + P from Cochran Q test (mandatory)
|
|
55
|
+
- **Model**: State random-effects vs fixed-effects in footnote
|
|
56
|
+
- **Subgroup analyses**: Separate rows or separate table
|
|
57
|
+
- **Prediction interval**: Include for random-effects if k >= 3
|
|
58
|
+
- **Forest plot complement**: Table complements but does not replace forest plot
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Table: Model Performance Comparison
|
|
2
|
+
|
|
3
|
+
## Reporting Guidelines
|
|
4
|
+
- **TRIPOD-AI**: AI model development/validation
|
|
5
|
+
- **CLAIM**: AI in medical imaging
|
|
6
|
+
|
|
7
|
+
## Standard Structure
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
Table 3. Comparison of Model Performance on Test Set
|
|
11
|
+
|
|
12
|
+
Model AUROC (95% CI) Sensitivity (95% CI) Specificity (95% CI) P vs Baseline
|
|
13
|
+
|
|
14
|
+
Baseline CNN 0.87 (0.83-0.91) 0.82 (0.75-0.88) 0.85 (0.79-0.90) —
|
|
15
|
+
Proposed Model 0.93 (0.90-0.96) 0.90 (0.84-0.94) 0.89 (0.84-0.93) .003
|
|
16
|
+
Reader A 0.88 (0.84-0.92) 0.85 (0.78-0.90) 0.86 (0.80-0.91) .52
|
|
17
|
+
Reader B 0.86 (0.81-0.90) 0.83 (0.76-0.89) 0.84 (0.78-0.89) .71
|
|
18
|
+
|
|
19
|
+
AUROC compared by DeLong test. Sensitivity/specificity at Youden optimal
|
|
20
|
+
threshold. 95% CIs by Wilson score interval.
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Rules
|
|
24
|
+
- **Baseline/reference model**: Always include (first row, P = — or "Ref")
|
|
25
|
+
- **Reader comparison**: Include human readers when available
|
|
26
|
+
- **Same test set**: All models evaluated on identical held-out data
|
|
27
|
+
- **Threshold**: Specify how threshold was chosen (Youden, fixed sensitivity, etc.)
|
|
28
|
+
- **Bootstrap CIs**: State number of iterations if used (e.g., "1000 bootstrap replicates")
|
|
29
|
+
- **Multiple test sets**: Separate sections or sub-tables for internal vs external validation
|
|
30
|
+
- **Calibration**: Include Brier score or calibration slope if relevant
|
|
31
|
+
|
|
32
|
+
## AI-Specific Additions (CLAIM)
|
|
33
|
+
- Software version / model architecture in footnote or methods
|
|
34
|
+
- Training set size in footnote
|
|
35
|
+
- Hardware used (if inference time reported)
|
|
36
|
+
- Whether results are per-image or per-patient
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Table: Regression Results
|
|
2
|
+
|
|
3
|
+
## Reporting Guidelines
|
|
4
|
+
- **STROBE**: Observational studies — OR, HR, RR with 95% CI
|
|
5
|
+
- **TRIPOD**: Prediction models — coefficients or OR with CI
|
|
6
|
+
|
|
7
|
+
## Standard Structure
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
Table 3. Multivariable Logistic Regression for [Outcome]
|
|
11
|
+
|
|
12
|
+
Variable Univariable Multivariable
|
|
13
|
+
OR (95% CI) P Value OR (95% CI) P Value
|
|
14
|
+
|
|
15
|
+
Age, per 10 y 1.22 (1.08-1.38) .002 1.18 (1.03-1.35) .02
|
|
16
|
+
Sex, male vs female 1.45 (0.98-2.14) .06 1.38 (0.91-2.09) .13
|
|
17
|
+
BMI, per 5 kg/m² 1.31 (1.12-1.53) <.001 1.25 (1.06-1.47) .008
|
|
18
|
+
Stage III vs I-II 2.87 (1.92-4.29) <.001 2.54 (1.65-3.91) <.001
|
|
19
|
+
|
|
20
|
+
OR = odds ratio, CI = confidence interval, BMI = body mass index.
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Rules
|
|
24
|
+
- **Reference category**: Always state (e.g., "male vs female", "Stage III vs I-II")
|
|
25
|
+
- **Clinically meaningful units**: "per 10 years" not "per 1 year" for continuous
|
|
26
|
+
- **Effect measure**: Match study design — OR (logistic), HR (Cox), RR (log-binomial), β (linear)
|
|
27
|
+
- **Always show both univariable AND multivariable** (or justify omission)
|
|
28
|
+
- **Model fit statistics**: AIC, C-statistic, or Hosmer-Lemeshow in footnote or separate row
|
|
29
|
+
- **Variable selection method**: State in footnote (e.g., "Variables with P < .10 in univariable entered multivariable")
|
|
30
|
+
- **Collinearity**: Note if VIF checked, in footnote
|
|
31
|
+
|
|
32
|
+
## gtsummary Code
|
|
33
|
+
```r
|
|
34
|
+
# Univariable
|
|
35
|
+
uv <- tbl_uvregression(
|
|
36
|
+
data, y = outcome, method = glm,
|
|
37
|
+
method.args = list(family = binomial),
|
|
38
|
+
exponentiate = TRUE
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
# Multivariable
|
|
42
|
+
mv <- glm(outcome ~ age + sex + bmi + stage, data = data, family = binomial)
|
|
43
|
+
mv_tbl <- tbl_regression(mv, exponentiate = TRUE) %>%
|
|
44
|
+
add_global_p() %>%
|
|
45
|
+
bold_p(t = 0.05)
|
|
46
|
+
|
|
47
|
+
# Merge
|
|
48
|
+
tbl_merge(list(uv, mv_tbl),
|
|
49
|
+
tab_spanner = c("Univariable", "Multivariable"))
|
|
50
|
+
```
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Table 1: Baseline Demographics / Characteristics
|
|
2
|
+
|
|
3
|
+
## Reporting Guidelines
|
|
4
|
+
- **RCT**: CONSORT (Table 1 should NOT include P values — randomization makes them irrelevant)
|
|
5
|
+
- **Cohort/Cross-sectional**: STROBE (P values optional, SMD preferred for propensity-matched)
|
|
6
|
+
- **Diagnostic**: STARD (patient demographics + index test characteristics)
|
|
7
|
+
|
|
8
|
+
## Standard Structure
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
Table 1. Baseline Characteristics of Patients
|
|
12
|
+
|
|
13
|
+
Group A (n=XXX) Group B (n=XXX) P Value
|
|
14
|
+
Age, y 65.3 (12.1) 62.1 (11.8) .04
|
|
15
|
+
Sex
|
|
16
|
+
Male 53 (52) 48 (47) .41
|
|
17
|
+
Female 49 (48) 54 (53)
|
|
18
|
+
BMI, kg/m² 24.8 (3.2) 25.1 (3.5) .52
|
|
19
|
+
...
|
|
20
|
+
|
|
21
|
+
Data are presented as mean (SD) for continuous variables and n (%)
|
|
22
|
+
for categorical variables.
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Rules
|
|
26
|
+
- **Binary variables**: Show only one level (e.g., Male only; Female is implied)
|
|
27
|
+
- **Continuous variables**: Mean (SD) if normal; Median (IQR) if skewed. State which in footnote
|
|
28
|
+
- **Categorical variables**: n (%)
|
|
29
|
+
- **Column headers**: Include group size — "Group A (n=XXX)"
|
|
30
|
+
- **Units**: In row label — "Age, y" or "Age, years"
|
|
31
|
+
- **Missing data**: Report as "Missing" row or footnote stating N with complete data
|
|
32
|
+
- **P values in RCTs**: Omit (CONSORT recommendation) or include for observational studies
|
|
33
|
+
- **SMD**: Preferred over P values for propensity-matched studies
|
|
34
|
+
|
|
35
|
+
## gtsummary Code
|
|
36
|
+
```r
|
|
37
|
+
tbl_summary(
|
|
38
|
+
data, by = group,
|
|
39
|
+
type = list(age ~ "continuous2"),
|
|
40
|
+
statistic = list(
|
|
41
|
+
all_continuous() ~ c("{mean} ({sd})"),
|
|
42
|
+
all_categorical() ~ "{n} ({p}%)"
|
|
43
|
+
),
|
|
44
|
+
digits = list(all_continuous() ~ 1, all_categorical() ~ c(0, 1)),
|
|
45
|
+
missing = "ifany",
|
|
46
|
+
missing_text = "Missing"
|
|
47
|
+
) %>%
|
|
48
|
+
add_p() %>% # omit for RCTs
|
|
49
|
+
add_overall() %>%
|
|
50
|
+
bold_labels()
|
|
51
|
+
```
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# Publication Table Tools — Comparison
|
|
2
|
+
|
|
3
|
+
## R Packages
|
|
4
|
+
|
|
5
|
+
| Feature | gtsummary | gt | flextable | tableone | kableExtra | huxtable |
|
|
6
|
+
|---|---|---|---|---|---|---|
|
|
7
|
+
| **Primary Use** | Table 1 + regression | Fine styling | Word output | Quick Table 1 | LaTeX/PDF | Multi-format |
|
|
8
|
+
| **Auto Statistics** | Yes (test selection) | No | No | Yes (p, SMD) | No | huxreg() only |
|
|
9
|
+
| **Journal Themes** | JAMA, Lancet, NEJM | No | Custom | No | No | No |
|
|
10
|
+
| **Footnotes** | Via gt engine | Native (excellent) | Native | Manual | Native | Native |
|
|
11
|
+
| **Word Output** | Via flextable | Limited | **Best** | Via knitr | Limited | Yes |
|
|
12
|
+
| **LaTeX Output** | Via huxtable | Native | Limited | Via knitr | **Best** | Native |
|
|
13
|
+
| **HTML Output** | Via gt | **Best** | Yes | Via knitr | Yes | Yes |
|
|
14
|
+
| **Maintenance** | Active (MSKCC) | Active (Posit) | Active | Maintenance | Maintenance | Maintenance |
|
|
15
|
+
|
|
16
|
+
## Python Libraries
|
|
17
|
+
|
|
18
|
+
| Feature | great_tables | tableone (py) | python-docx | pandas Styler |
|
|
19
|
+
|---|---|---|---|---|
|
|
20
|
+
| **Primary Use** | gt port | Quick Table 1 | Word tables | HTML/LaTeX |
|
|
21
|
+
| **Auto Statistics** | No | Yes (p, SMD) | No | No |
|
|
22
|
+
| **Journal Themes** | No | No | No | No |
|
|
23
|
+
| **Footnotes** | tab_footnote() | No | Manual | No |
|
|
24
|
+
| **Word Output** | No | No | **Native** | No |
|
|
25
|
+
| **LaTeX Output** | No | Via export | No | to_latex() |
|
|
26
|
+
| **Maturity** | Growing | Stable | Stable | Built-in |
|
|
27
|
+
|
|
28
|
+
## Recommended Pipelines
|
|
29
|
+
|
|
30
|
+
### Best: R gtsummary → Word
|
|
31
|
+
```r
|
|
32
|
+
theme_gtsummary_journal("jama")
|
|
33
|
+
theme_gtsummary_compact()
|
|
34
|
+
tbl %>% as_flex_table() %>% flextable::save_as_docx(path = "table.docx")
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Best: R gtsummary → LaTeX
|
|
38
|
+
```r
|
|
39
|
+
tbl %>% as_hux_table() %>% huxtable::to_latex()
|
|
40
|
+
# OR
|
|
41
|
+
tbl %>% as_gt() %>% gt::gtsave("table.tex")
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Python-only (acceptable, not ideal)
|
|
45
|
+
```python
|
|
46
|
+
# Generation
|
|
47
|
+
from tableone import TableOne
|
|
48
|
+
table1 = TableOne(df, columns=cols, categorical=cats, groupby='group', pval=True)
|
|
49
|
+
# Export to CSV, then format with python-docx
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Key Insight
|
|
53
|
+
> **Python lacks gtsummary-equivalent journal themes and auto-statistics.**
|
|
54
|
+
> For publication tables in medical journals, R is strongly preferred.
|
|
55
|
+
> Python pipelines require manual style adjustments that R handles automatically.
|
|
56
|
+
|
|
57
|
+
## Tool Selection Decision Tree
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
Need Table 1 or regression table?
|
|
61
|
+
→ gtsummary (+ journal theme)
|
|
62
|
+
|
|
63
|
+
Need pixel-perfect custom styling?
|
|
64
|
+
→ gt (HTML) or flextable (Word)
|
|
65
|
+
|
|
66
|
+
Submitting to Word-only journal?
|
|
67
|
+
→ gtsummary → as_flex_table() → save_as_docx()
|
|
68
|
+
|
|
69
|
+
Submitting LaTeX?
|
|
70
|
+
→ gtsummary → as_hux_table() → to_latex()
|
|
71
|
+
→ OR kableExtra for direct LaTeX control
|
|
72
|
+
|
|
73
|
+
Python-only constraint?
|
|
74
|
+
→ tableone (generation) + python-docx (formatting)
|
|
75
|
+
→ Accept manual style work
|
|
76
|
+
|
|
77
|
+
Quick exploratory table?
|
|
78
|
+
→ tableone (R or Python) — fastest setup
|
|
79
|
+
```
|