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,109 @@
|
|
|
1
|
+
# Missing Data Guide
|
|
2
|
+
|
|
3
|
+
Strategies for handling missing data in medical research analyses.
|
|
4
|
+
This is a preprocessing step, not an independent analysis type.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Missing Data Mechanisms
|
|
9
|
+
|
|
10
|
+
| Mechanism | Definition | Example | Implication |
|
|
11
|
+
|-----------|-----------|---------|-------------|
|
|
12
|
+
| **MCAR** | Missing completely at random | Specimen lost in transit | Complete case analysis OK |
|
|
13
|
+
| **MAR** | Missingness depends on observed data | Older patients more likely to drop out | **Multiple imputation needed** |
|
|
14
|
+
| **MNAR** | Missingness depends on unobserved value | Sicker patients miss follow-up | Sensitivity analysis required |
|
|
15
|
+
|
|
16
|
+
MNAR cannot be verified statistically — always consider as a possibility.
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Decision by Missing Rate
|
|
21
|
+
|
|
22
|
+
| Missing % | Action |
|
|
23
|
+
|-----------|--------|
|
|
24
|
+
| < 5% | Complete case analysis generally acceptable |
|
|
25
|
+
| 5-20% | **Multiple imputation recommended** |
|
|
26
|
+
| 20-40% | MI + sensitivity analysis mandatory |
|
|
27
|
+
| > 40% | Consider excluding the variable from analysis |
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Multiple Imputation via Chained Equations (MICE)
|
|
32
|
+
|
|
33
|
+
### Procedure
|
|
34
|
+
1. Specify imputation model for each variable with missing data
|
|
35
|
+
2. Generate m imputed datasets (m = 5 minimum; m = 20 if missing > 20%)
|
|
36
|
+
3. Analyze each dataset independently (same analysis model)
|
|
37
|
+
4. Pool results using **Rubin's rules**: estimate = mean of m estimates; variance = within + between variance
|
|
38
|
+
|
|
39
|
+
### Imputation Model Rules
|
|
40
|
+
- Include ALL variables from the analysis model in the imputation model
|
|
41
|
+
- Include the outcome variable (in imputation model only)
|
|
42
|
+
- Match variable type to method:
|
|
43
|
+
- Continuous → predictive mean matching (PMM) or regression
|
|
44
|
+
- Binary → logistic regression
|
|
45
|
+
- Multinomial → polytomous regression
|
|
46
|
+
- Ordinal → proportional odds
|
|
47
|
+
|
|
48
|
+
### Methods NOT Recommended
|
|
49
|
+
- **Mean imputation**: underestimates variance — never use
|
|
50
|
+
- **LOCF (Last Observation Carried Forward)**: biased in most settings — avoid
|
|
51
|
+
- **Single imputation**: does not account for imputation uncertainty
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## Reporting Template
|
|
56
|
+
|
|
57
|
+
"Missing data ranged from X% (variable A) to Y% (variable B). Little's MCAR test suggested data were not MCAR (P = 0.003). Multiple imputation using chained equations (MICE) was performed with m = 20 imputed datasets. Results were pooled using Rubin's rules. Sensitivity analyses using complete case analysis yielded consistent results (Supplementary Table X)."
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## When to Trigger in analyze-stats
|
|
62
|
+
|
|
63
|
+
During Phase 1 (Data Assessment), if any analysis variable has > 5% missing:
|
|
64
|
+
1. Report missing counts and percentages
|
|
65
|
+
2. Suggest MICE before proceeding
|
|
66
|
+
3. Generate imputation code as a preprocessing step
|
|
67
|
+
4. Run the primary analysis on imputed data
|
|
68
|
+
5. Run complete case analysis as sensitivity analysis
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Python Implementation
|
|
73
|
+
|
|
74
|
+
```python
|
|
75
|
+
from sklearn.experimental import enable_iterative_imputer
|
|
76
|
+
from sklearn.impute import IterativeImputer
|
|
77
|
+
import numpy as np
|
|
78
|
+
import pandas as pd
|
|
79
|
+
|
|
80
|
+
m = 20 # number of imputations
|
|
81
|
+
results = []
|
|
82
|
+
for i in range(m):
|
|
83
|
+
imputer = IterativeImputer(max_iter=10, random_state=i, sample_posterior=True)
|
|
84
|
+
df_imputed = pd.DataFrame(imputer.fit_transform(df), columns=df.columns)
|
|
85
|
+
# Run analysis on each imputed dataset
|
|
86
|
+
# ... append results
|
|
87
|
+
# Pool using Rubin's rules
|
|
88
|
+
pooled_estimate = np.mean(results, axis=0)
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## R Implementation
|
|
92
|
+
|
|
93
|
+
```r
|
|
94
|
+
library(mice)
|
|
95
|
+
imp <- mice(df, m = 20, method = 'pmm', seed = 42)
|
|
96
|
+
fit <- with(imp, lm(y ~ x1 + x2))
|
|
97
|
+
pooled <- pool(fit)
|
|
98
|
+
summary(pooled)
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## Common Reviewer Flags
|
|
104
|
+
|
|
105
|
+
1. Not reporting missing data counts per variable
|
|
106
|
+
2. Using listwise deletion without justification
|
|
107
|
+
3. Mean imputation or LOCF without acknowledging limitations
|
|
108
|
+
4. Not performing sensitivity analysis (complete case vs MI comparison)
|
|
109
|
+
5. Not stating the assumed missing mechanism (MCAR/MAR/MNAR)
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
# NHIS Claims-Based Disease Definition Guide
|
|
2
|
+
|
|
3
|
+
Methodological patterns for defining exposures, outcomes, and comorbidities
|
|
4
|
+
using ICD-10 codes in Korean NHIS claims data. This guide covers the validated
|
|
5
|
+
algorithm patterns -- NOT specific code lists for individual diseases.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## When to Use
|
|
10
|
+
|
|
11
|
+
- Defining study populations, exposures, or outcomes in NHIS cohort studies
|
|
12
|
+
- Building claims-based algorithms for disease ascertainment
|
|
13
|
+
- Validating disease definitions using multiple data sources within NHIS
|
|
14
|
+
- NOT for: survey data (KNHANES/NHANES), clinical registry data
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Core Principle: Claims-Based Algorithms
|
|
19
|
+
|
|
20
|
+
A single ICD-10 claim is insufficient for disease ascertainment due to rule-out
|
|
21
|
+
diagnoses, coding errors, and provisional codes. Validated algorithms combine
|
|
22
|
+
multiple data elements to improve positive predictive value.
|
|
23
|
+
|
|
24
|
+
### Algorithm Components
|
|
25
|
+
|
|
26
|
+
| Component | Source in NHIS | Purpose |
|
|
27
|
+
|-----------|---------------|---------|
|
|
28
|
+
| **ICD-10 diagnostic codes** | Inpatient + outpatient claims | Primary disease identification |
|
|
29
|
+
| **Medication prescriptions** | Pharmacy dispensing records | Confirms active treatment |
|
|
30
|
+
| **Procedure codes** | Claims procedure fields | Confirms diagnostic workup or treatment |
|
|
31
|
+
| **Health examination results** | National health exam data | Objective measurement (lab values, vitals) |
|
|
32
|
+
| **Visit frequency** | Claim count within time window | Distinguishes incident from rule-out |
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Validated Algorithm Patterns
|
|
37
|
+
|
|
38
|
+
### Pattern 1: N-Claim Rule (Most Common)
|
|
39
|
+
|
|
40
|
+
Require N or more claims with the target ICD-10 code within a defined time
|
|
41
|
+
window to establish a diagnosis.
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
Disease = (ICD-10 code X appears >= N times within T months)
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
| Stringency | Claims | Window | PPV | Use case |
|
|
48
|
+
|------------|--------|--------|-----|----------|
|
|
49
|
+
| Lenient | >= 1 claim | Any | Lower | Screening, sensitivity-focused |
|
|
50
|
+
| Standard | >= 2 claims | 12 months | Moderate | Most cohort studies |
|
|
51
|
+
| Strict | >= 3 claims | 12 months | Higher | Sensitivity analysis |
|
|
52
|
+
|
|
53
|
+
**Reporting template**:
|
|
54
|
+
"[DISEASE] was identified by at least [N] claims with ICD-10 codes [CODE
|
|
55
|
+
RANGE] within [T] months during the observation period."
|
|
56
|
+
|
|
57
|
+
### Pattern 2: Claim + Medication (Recommended for Chronic Diseases)
|
|
58
|
+
|
|
59
|
+
Combine diagnostic codes with disease-specific medication prescriptions.
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
Disease = (ICD-10 code X >= 1 time) AND (related medication dispensed >= 1 time)
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**Reporting template**:
|
|
66
|
+
"[DISEASE] was defined as at least one claim with ICD-10 codes [CODE RANGE]
|
|
67
|
+
combined with a prescription for [MEDICATION CLASS] (ATC codes [RANGE])."
|
|
68
|
+
|
|
69
|
+
**Common medication validation pairs**:
|
|
70
|
+
|
|
71
|
+
| Disease category | ICD-10 pattern | Medication confirmation |
|
|
72
|
+
|-----------------|----------------|----------------------|
|
|
73
|
+
| Hypertension | I10-I15 | Antihypertensive agents (ATC C02-C09) |
|
|
74
|
+
| Diabetes mellitus | E10-E14 | Antidiabetic agents (ATC A10) |
|
|
75
|
+
| Hyperlipidemia | E78 | Lipid-modifying agents (ATC C10) |
|
|
76
|
+
| Coronary artery disease | I20-I25 | Antiplatelet + statin combination |
|
|
77
|
+
| Depressive disorders | F32-F33 | Antidepressants (ATC N06A) |
|
|
78
|
+
| Asthma | J45 | Inhaled corticosteroids / bronchodilators |
|
|
79
|
+
|
|
80
|
+
### Pattern 3: Look-Back Period for Incident Cases
|
|
81
|
+
|
|
82
|
+
To identify **incident** (new-onset) cases, require a disease-free washout
|
|
83
|
+
period before the index date.
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
Incident case = (ICD-10 code X after index date)
|
|
87
|
+
AND (NO claims with code X during look-back period)
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
| Look-back | Strength | Trade-off |
|
|
91
|
+
|-----------|----------|-----------|
|
|
92
|
+
| 1 year | Minimum acceptable | May misclassify prevalent cases as incident |
|
|
93
|
+
| 3 years | Recommended | Better incident case identification |
|
|
94
|
+
| 5+ years | Strongest | Reduces sample size due to data availability |
|
|
95
|
+
|
|
96
|
+
**Reporting template**:
|
|
97
|
+
"To ensure the identification of incident cases, we applied a minimum [N]-year
|
|
98
|
+
look-back period and excluded individuals with any diagnostic claims for
|
|
99
|
+
[DISEASE] during this period."
|
|
100
|
+
|
|
101
|
+
### Pattern 4: Outcome Validation with Time Windows
|
|
102
|
+
|
|
103
|
+
For complications or sequelae, require temporal proximity to the index event.
|
|
104
|
+
|
|
105
|
+
```
|
|
106
|
+
Complication = (ICD-10 code Y within T1-T2 days after event X)
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
**Examples of time-window patterns**:
|
|
110
|
+
|
|
111
|
+
| Complication type | Window | Rationale |
|
|
112
|
+
|------------------|--------|-----------|
|
|
113
|
+
| Post-procedural complication | 0-30 days | Immediate perioperative period |
|
|
114
|
+
| Delayed complication | 30-90 days | Sub-acute period |
|
|
115
|
+
| Chronic sequela | 90 days - 1 year | Excludes acute phase, captures chronicity |
|
|
116
|
+
| Hospital admission for condition | Within 30 days of onset | Links admission to the triggering event |
|
|
117
|
+
|
|
118
|
+
### Pattern 5: Hierarchical Disease Classification
|
|
119
|
+
|
|
120
|
+
When exposure or outcome categories overlap, use a hierarchical scheme.
|
|
121
|
+
|
|
122
|
+
```
|
|
123
|
+
Level 1 (broadest): Any code in ICD-10 block (e.g., E10-E14 for all diabetes)
|
|
124
|
+
Level 2: Specific subcategory (e.g., E11 for type 2 diabetes only)
|
|
125
|
+
Level 3 (strictest): Subcategory + medication + lab confirmation
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Sensitivity analyses should test multiple levels to assess robustness.
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## ICD-10-KM vs ICD-10 Differences
|
|
133
|
+
|
|
134
|
+
Korean NHIS uses ICD-10-KM (Korean Modification), which is based on ICD-10
|
|
135
|
+
but includes Korea-specific extensions:
|
|
136
|
+
|
|
137
|
+
| Feature | ICD-10 (WHO) | ICD-10-KM |
|
|
138
|
+
|---------|-------------|-----------|
|
|
139
|
+
| Base structure | Same alphanumeric codes | Same base + Korean extensions |
|
|
140
|
+
| Additional codes | -- | U-codes for Korean-specific conditions |
|
|
141
|
+
| Version alignment | WHO updates | HIRA publishes annual Korean versions |
|
|
142
|
+
| Medication mapping | ATC codes | ATC codes (same international standard) |
|
|
143
|
+
|
|
144
|
+
For most major disease categories (cardiovascular, metabolic, respiratory,
|
|
145
|
+
neurological), the ICD-10-KM codes are identical to international ICD-10.
|
|
146
|
+
Country-specific extensions primarily affect rare or culture-bound conditions.
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## Charlson Comorbidity Index in NHIS
|
|
151
|
+
|
|
152
|
+
The CCI is computed from claims using the Quan adaptation for ICD-10:
|
|
153
|
+
|
|
154
|
+
| CCI Category | Standard grouping |
|
|
155
|
+
|-------------|-------------------|
|
|
156
|
+
| 0 | No comorbidities |
|
|
157
|
+
| 1 | Single comorbidity point |
|
|
158
|
+
| >= 2 | Multiple comorbidities |
|
|
159
|
+
|
|
160
|
+
Always specify which CCI adaptation was used (Quan 2005 is standard for
|
|
161
|
+
ICD-10 claims data).
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
## Covariate Definitions from NHIS Data Sources
|
|
166
|
+
|
|
167
|
+
NHIS integrates three data sources, each providing different covariate types:
|
|
168
|
+
|
|
169
|
+
### Source 1: Claims Database
|
|
170
|
+
- Comorbidities (via ICD-10 codes)
|
|
171
|
+
- Medication history (via dispensing records)
|
|
172
|
+
- Healthcare utilization (visit counts, hospitalization days)
|
|
173
|
+
|
|
174
|
+
### Source 2: National Health Examination
|
|
175
|
+
- BMI, blood pressure, fasting glucose, GFR
|
|
176
|
+
- Liver enzymes (AST, ALT, gamma-GTP)
|
|
177
|
+
- Hemoglobin, total cholesterol
|
|
178
|
+
- Urinalysis
|
|
179
|
+
|
|
180
|
+
### Source 3: Health Interview / Questionnaire
|
|
181
|
+
- Smoking status (never / former / current)
|
|
182
|
+
- Alcohol consumption (frequency categories)
|
|
183
|
+
- Physical activity (MET-based sufficiency)
|
|
184
|
+
- Region of residence, household income level
|
|
185
|
+
|
|
186
|
+
**Baseline alignment**: Covariates must be anchored to the most recent data
|
|
187
|
+
available **prior to** the index date. Do not use post-index measurements.
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## Sensitivity Analysis Patterns
|
|
192
|
+
|
|
193
|
+
### Stricter Disease Definition
|
|
194
|
+
Run the primary analysis with the standard algorithm, then repeat with a
|
|
195
|
+
more stringent definition (e.g., 2-claim → 3-claim, or adding medication
|
|
196
|
+
confirmation).
|
|
197
|
+
|
|
198
|
+
### Negative Control Outcomes
|
|
199
|
+
Select outcomes with no plausible biological link to the exposure (e.g.,
|
|
200
|
+
neuromuscular junction disorders, self-harm) to detect residual confounding
|
|
201
|
+
or coding artifacts.
|
|
202
|
+
|
|
203
|
+
### Negative Control Exposures
|
|
204
|
+
Use an exposure with no expected effect on the outcome as a falsification test.
|
|
205
|
+
|
|
206
|
+
### Multiple Look-Back Periods
|
|
207
|
+
Test 1-year, 3-year, and 5-year look-back periods and compare incidence rates
|
|
208
|
+
to assess the impact of prevalent case misclassification.
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## Reporting Checklist
|
|
213
|
+
|
|
214
|
+
When reporting NHIS claims-based definitions in a manuscript:
|
|
215
|
+
|
|
216
|
+
- [ ] ICD-10 code ranges specified (main text or supplementary table)
|
|
217
|
+
- [ ] Number of claims required (1 vs 2+ vs with medication)
|
|
218
|
+
- [ ] Time window for claims (within 12 months, any time, etc.)
|
|
219
|
+
- [ ] Look-back period for incident case definition
|
|
220
|
+
- [ ] Medication confirmation specified with ATC codes (if used)
|
|
221
|
+
- [ ] Data source specified (claims vs exam vs questionnaire)
|
|
222
|
+
- [ ] CCI adaptation cited (Quan 2005 or other)
|
|
223
|
+
- [ ] Sensitivity analysis with alternative definition included
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
## Common Reviewer Flags
|
|
228
|
+
|
|
229
|
+
1. Single-claim definition without justification (low PPV concern)
|
|
230
|
+
2. No look-back period for "incident" cases
|
|
231
|
+
3. Mixing ICD-10 and ICD-9 codes without noting transition dates
|
|
232
|
+
4. Not specifying whether inpatient, outpatient, or both claims were used
|
|
233
|
+
5. CCI version not cited
|
|
234
|
+
6. Covariate timing not anchored to index date
|
|
235
|
+
7. Missing sensitivity analysis with stricter/looser definitions
|
|
236
|
+
8. Rule-out diagnoses not addressed (diagnostic codes without treatment)
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
## References (Methodological)
|
|
241
|
+
|
|
242
|
+
- Quan H et al. Coding algorithms for defining comorbidities in ICD-9-CM
|
|
243
|
+
and ICD-10 administrative data. Med Care. 2005;43(11):1130-9.
|
|
244
|
+
- Choi JY et al. Validation of administrative data for the identification
|
|
245
|
+
of chronic diseases in South Korea. J Korean Med Sci. (methodology reference)
|
|
246
|
+
- NHIS data user guide: nhiss.nhis.or.kr (Korean National Health Insurance
|
|
247
|
+
Sharing Service)
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
# Propensity Score Analysis Guide
|
|
2
|
+
|
|
3
|
+
Methods for estimating causal treatment effects in observational studies by balancing
|
|
4
|
+
confounders between treatment groups.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## When to Use
|
|
9
|
+
|
|
10
|
+
- Observational study comparing treatment vs control (or two interventions)
|
|
11
|
+
- Multiple confounders to adjust for
|
|
12
|
+
- Goal: estimate causal effect analogous to an RCT
|
|
13
|
+
- NOT for: randomized trials (already balanced), single-arm studies
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Estimands — Choose Before Analysis
|
|
18
|
+
|
|
19
|
+
| Estimand | Definition | Target population | Method |
|
|
20
|
+
|----------|-----------|-------------------|--------|
|
|
21
|
+
| **ATE** | Average Treatment Effect | Entire study population | IPTW |
|
|
22
|
+
| **ATT** | Effect on Treated | Treatment group only | PSM, ATT weighting |
|
|
23
|
+
| **ATO** | Effect on Overlap population | PS 0.2-0.8 region | Overlap weighting |
|
|
24
|
+
|
|
25
|
+
Comparing PSM and IPTW results directly is inappropriate — they estimate different estimands.
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Step-by-Step Workflow
|
|
30
|
+
|
|
31
|
+
### Step 1: PS Estimation
|
|
32
|
+
- Model: logistic regression (standard)
|
|
33
|
+
- Dependent variable: treatment assignment (binary)
|
|
34
|
+
- Covariates: all variables that affect the outcome (confounders)
|
|
35
|
+
- Do NOT include: instrumental variables (affect treatment but not outcome)
|
|
36
|
+
- Individual PS model coefficients have no clinical meaning — only PS distribution matters
|
|
37
|
+
|
|
38
|
+
### Step 2: Apply PS Method
|
|
39
|
+
|
|
40
|
+
**Option A — PS Matching (PSM)**
|
|
41
|
+
- Nearest-neighbor matching with caliper = 0.2 x SD(logit PS)
|
|
42
|
+
- 1:1 matching is standard; 1:N or full matching available
|
|
43
|
+
- Estimand: ATT (typically)
|
|
44
|
+
- Drawback: unmatched subjects are excluded → sample size reduction
|
|
45
|
+
|
|
46
|
+
**Option B — IPTW (Inverse Probability of Treatment Weighting)**
|
|
47
|
+
- Weights: treated = 1/PS, control = 1/(1-PS) for ATE
|
|
48
|
+
- **Always use stabilized weights** to prevent extreme values
|
|
49
|
+
- Stabilized: treated = P(T=1)/PS, control = P(T=0)/(1-PS)
|
|
50
|
+
- All subjects included (no exclusion)
|
|
51
|
+
- Flag extreme weights > 10
|
|
52
|
+
|
|
53
|
+
**Option C — SIPTW (Stabilized Inverse Probability of Treatment Weighting)**
|
|
54
|
+
- Weights: treated = P(T=1)/PS, control = P(T=0)/(1-PS)
|
|
55
|
+
- Mathematically equivalent to stabilized IPTW (Option B with stabilized=True)
|
|
56
|
+
- Named explicitly as SIPTW in emulated target trial literature
|
|
57
|
+
- Maintains entire cohort sample size (no exclusion)
|
|
58
|
+
- Allows appropriate variance estimation of main effect
|
|
59
|
+
- Estimand: ATE
|
|
60
|
+
- Increasingly used in large-scale NHIS cohort studies
|
|
61
|
+
- Report effective sample size (ESS) alongside raw N
|
|
62
|
+
|
|
63
|
+
**Option D — Overlap Weighting (Recommended for most cases)**
|
|
64
|
+
- Weights: treated = (1-PS), control = PS
|
|
65
|
+
- Naturally down-weights subjects at PS extremes
|
|
66
|
+
- No extreme weight problem (advantage over IPTW)
|
|
67
|
+
- Estimand: ATO
|
|
68
|
+
- Increasingly recommended in recent guidelines (JAMA 2020, AJE 2024)
|
|
69
|
+
|
|
70
|
+
### Step 3: Assess Balance
|
|
71
|
+
- **SMD < 0.10** for all covariates (Austin, 2009)
|
|
72
|
+
- SMD < 0.25 is acceptable but suboptimal
|
|
73
|
+
- Use SMD, NOT p-values (SMD is sample-size independent)
|
|
74
|
+
- **Love plot**: pre/post-matching SMD comparison (mandatory figure)
|
|
75
|
+
- Variance ratios: should be within 0.5-2.0
|
|
76
|
+
- PS distribution overlap: histogram comparing treated vs control
|
|
77
|
+
|
|
78
|
+
### Step 4: Outcome Analysis
|
|
79
|
+
- **After PSM**: paired analysis (paired t-test, conditional logistic, stratified Cox)
|
|
80
|
+
- **After IPTW/OW**: weighted regression using survey methods
|
|
81
|
+
- Always use robust/sandwich standard errors for weighted analyses
|
|
82
|
+
|
|
83
|
+
### Step 5: Sensitivity Analysis
|
|
84
|
+
- **E-value**: quantifies how strong unmeasured confounding would need to be to explain away the result
|
|
85
|
+
- Report E-value for the point estimate and lower CI bound
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## Balance Table (Required Output)
|
|
90
|
+
|
|
91
|
+
| Variable | Before matching | | After matching | |
|
|
92
|
+
|----------|------|------|------|------|
|
|
93
|
+
| | Treated | Control | SMD | Treated | Control | SMD |
|
|
94
|
+
| Age, mean (SD) | 65.2 (12.1) | 58.7 (14.3) | 0.49 | 62.1 (11.8) | 61.8 (12.0) | 0.03 |
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## Reporting Templates
|
|
99
|
+
|
|
100
|
+
**PSM**: "Propensity scores were estimated using logistic regression with the following covariates: [list]. PS matching was performed using 1:1 nearest-neighbor matching with a caliper of 0.2 SD of the logit PS. After matching, all SMDs were below 0.10 (Figure X). In the matched cohort (n = X pairs), ..."
|
|
101
|
+
|
|
102
|
+
**IPTW/OW**: "Inverse probability of treatment weighting (or overlap weighting) was applied using stabilized weights. Covariate balance was assessed using SMDs (all < 0.10; Figure X). The weighted analysis showed ..."
|
|
103
|
+
|
|
104
|
+
**SIPTW**: "Stabilized inverse probability of treatment weighting was used to balance covariate distributions between the [exposed] and [unexposed] groups. This approach maintains the sample size of the entire cohort and allows for appropriate estimation of the variance of the main effect. Covariate balance was assessed using SMDs (all < 0.10; Figure X)."
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## Common Reviewer Flags
|
|
109
|
+
|
|
110
|
+
1. SMD not reported (using p-values instead)
|
|
111
|
+
2. Caliper width not specified
|
|
112
|
+
3. Estimand (ATE/ATT/ATO) not stated
|
|
113
|
+
4. No sensitivity analysis for unmeasured confounding
|
|
114
|
+
5. Number of unmatched subjects not reported (for PSM)
|
|
115
|
+
6. Extreme weights not assessed (for IPTW)
|
|
116
|
+
7. Individual PS model coefficients interpreted clinically
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Python Packages
|
|
121
|
+
- `sklearn.linear_model.LogisticRegression` — PS estimation
|
|
122
|
+
- `causalinference` — matching (limited)
|
|
123
|
+
- Manual implementation for IPTW/OW (see template)
|
|
124
|
+
- `statsmodels` — weighted regression
|
|
125
|
+
|
|
126
|
+
## R Packages
|
|
127
|
+
- `MatchIt` — PS matching
|
|
128
|
+
- `WeightIt` — IPTW, overlap weighting
|
|
129
|
+
- `cobalt` — balance assessment, Love plot
|
|
130
|
+
- `survey` — weighted outcome analysis
|
|
131
|
+
- `tableone` — baseline table with SMD
|
|
132
|
+
- `EValue` — sensitivity analysis
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
# Regression Analysis Guide
|
|
2
|
+
|
|
3
|
+
Covers both logistic regression (binary outcome) and multiple linear regression (continuous outcome).
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Logistic Regression
|
|
8
|
+
|
|
9
|
+
### When to Use
|
|
10
|
+
Binary outcome variable (0/1, event/no event) with one or more predictors.
|
|
11
|
+
Used for risk factor identification and prediction model building.
|
|
12
|
+
|
|
13
|
+
### Assumptions
|
|
14
|
+
1. Binary outcome
|
|
15
|
+
2. Linear relationship between continuous predictors and log-odds (Box-Tidwell test)
|
|
16
|
+
3. Independent observations (if repeated → GEE or mixed logistic)
|
|
17
|
+
4. No multicollinearity: VIF < 5
|
|
18
|
+
5. Sufficient sample: EPV >= 10 (minimum), >= 20 (recommended)
|
|
19
|
+
|
|
20
|
+
### Variable Selection
|
|
21
|
+
- **Clinical rationale first** — avoid purely data-driven stepwise selection
|
|
22
|
+
- Include: variables significant at P < 0.10 in univariable analysis + known confounders
|
|
23
|
+
- STROBE/TRIPOD guideline compliance required
|
|
24
|
+
|
|
25
|
+
### Model Assessment
|
|
26
|
+
|
|
27
|
+
**Calibration:**
|
|
28
|
+
- Hosmer-Lemeshow test: P > 0.05 = adequate fit (overpowered with large N)
|
|
29
|
+
- Calibration plot: predicted probability vs observed frequency
|
|
30
|
+
|
|
31
|
+
**Discrimination:**
|
|
32
|
+
- C-statistic (= AUC): 0.7-0.8 acceptable, 0.8-0.9 excellent, > 0.9 outstanding
|
|
33
|
+
|
|
34
|
+
**Multicollinearity:**
|
|
35
|
+
- VIF > 5 → remove or combine variables
|
|
36
|
+
|
|
37
|
+
### Required Outputs
|
|
38
|
+
1. OR table: univariable AND multivariable OR (95% CI), P-value per variable
|
|
39
|
+
2. C-statistic with 95% CI
|
|
40
|
+
3. Hosmer-Lemeshow test result
|
|
41
|
+
4. VIF table (supplementary)
|
|
42
|
+
5. Box-Tidwell results for continuous predictors (supplementary)
|
|
43
|
+
|
|
44
|
+
### OR Table Format
|
|
45
|
+
| Variable | Univariable OR (95% CI) | P | Multivariable OR (95% CI) | P |
|
|
46
|
+
|----------|------------------------|---|--------------------------|---|
|
|
47
|
+
| Age (per 10 yr) | 1.45 (1.12-1.88) | 0.005 | 1.32 (1.01-1.73) | 0.042 |
|
|
48
|
+
|
|
49
|
+
### Reporting Template
|
|
50
|
+
"Multivariable logistic regression was performed to identify independent predictors of [outcome]. Variables with P < 0.10 in univariable analysis and clinically relevant confounders were included. The model showed good discrimination (C-statistic = 0.82, 95% CI 0.78-0.86) and calibration (Hosmer-Lemeshow P = 0.45). [Variable] was independently associated with [outcome] (adjusted OR = 2.15, 95% CI 1.43-3.24; P < 0.001)."
|
|
51
|
+
|
|
52
|
+
### Pitfalls
|
|
53
|
+
- OR != RR: when event rate > 10%, OR overestimates RR
|
|
54
|
+
- EPV < 10 → overfitting risk. Consider penalized regression (LASSO/Ridge)
|
|
55
|
+
- Specify reference category for categorical variables
|
|
56
|
+
- Specify units for continuous variables (per 1 year vs per 10 years)
|
|
57
|
+
- Complete separation → use Firth's penalized likelihood
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Multiple Linear Regression
|
|
62
|
+
|
|
63
|
+
### When to Use
|
|
64
|
+
Continuous outcome variable with one or more predictors.
|
|
65
|
+
Used for identifying determinants and estimating adjusted effects.
|
|
66
|
+
|
|
67
|
+
### Assumptions (LINE + No Multicollinearity)
|
|
68
|
+
1. **L**inearity: residuals vs fitted plot
|
|
69
|
+
2. **I**ndependence: no repeated measures (if repeated → LMM/GEE)
|
|
70
|
+
3. **N**ormality of residuals: Q-Q plot, Shapiro-Wilk on residuals
|
|
71
|
+
4. **E**qual variance (homoscedasticity): residuals vs fitted, Scale-Location plot
|
|
72
|
+
5. No multicollinearity: VIF < 5
|
|
73
|
+
6. No influential outliers: Cook's distance < 4/n
|
|
74
|
+
|
|
75
|
+
### Assumption Violations → Alternatives
|
|
76
|
+
| Violation | Fix |
|
|
77
|
+
|-----------|-----|
|
|
78
|
+
| Non-linearity | Log transform, polynomial terms, GAM |
|
|
79
|
+
| Heteroscedasticity | Robust SE, WLS |
|
|
80
|
+
| Non-normal residuals | Transform outcome, bootstrap CI |
|
|
81
|
+
| Multicollinearity | Remove variable, combine, Ridge/LASSO |
|
|
82
|
+
|
|
83
|
+
### Model Evaluation
|
|
84
|
+
- R² (coefficient of determination): proportion of variance explained
|
|
85
|
+
- Adjusted R²: penalized for number of predictors — use for model comparison
|
|
86
|
+
- In medical research, R² = 0.2-0.4 can be meaningful (high biological variability)
|
|
87
|
+
|
|
88
|
+
### Diagnostic Plots (4-panel, always generate)
|
|
89
|
+
1. Residuals vs Fitted → linearity + homoscedasticity
|
|
90
|
+
2. Q-Q plot → residual normality
|
|
91
|
+
3. Scale-Location → homoscedasticity
|
|
92
|
+
4. Residuals vs Leverage → influential outliers (Cook's distance)
|
|
93
|
+
|
|
94
|
+
### Required Outputs
|
|
95
|
+
1. Coefficient table: β (95% CI), P-value per variable
|
|
96
|
+
2. R² and adjusted R²
|
|
97
|
+
3. VIF table
|
|
98
|
+
4. 4-panel diagnostic plot
|
|
99
|
+
5. Standardized coefficients (optional, for effect size comparison)
|
|
100
|
+
|
|
101
|
+
### Coefficient Table Format
|
|
102
|
+
| Variable | β (95% CI) | P |
|
|
103
|
+
|----------|-----------|---|
|
|
104
|
+
| Age (per year) | 0.45 (0.32 to 0.58) | < 0.001 |
|
|
105
|
+
| Model R² | 0.35 | |
|
|
106
|
+
| Adjusted R² | 0.33 | |
|
|
107
|
+
|
|
108
|
+
### Reporting Template
|
|
109
|
+
"Multiple linear regression was performed with [outcome] as the dependent variable. The model explained X% of the variance (adjusted R² = 0.XX). After adjusting for [covariates], [variable] was significantly associated with [outcome] (β = X.XX, 95% CI X.XX to X.XX; P = exact). Model assumptions were verified using diagnostic plots."
|
|
110
|
+
|
|
111
|
+
### Pitfalls
|
|
112
|
+
- Always report β units (per 1 year, per 10 kg/m², etc.)
|
|
113
|
+
- Standardized β useful for comparing effect sizes but unstandardized is standard in papers
|
|
114
|
+
- EPV for continuous outcome: N >= 10-20 per predictor
|
|
115
|
+
- Always present diagnostic plots (at minimum in supplementary)
|