scientific-writer 2.1.1__py3-none-any.whl → 2.2.2__py3-none-any.whl

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.

Potentially problematic release.


This version of scientific-writer might be problematic. Click here for more details.

Files changed (311) hide show
  1. scientific_writer/.claude/settings.local.json +30 -0
  2. scientific_writer/.claude/skills/citation-management/SKILL.md +1046 -0
  3. scientific_writer/.claude/skills/citation-management/assets/bibtex_template.bib +264 -0
  4. scientific_writer/.claude/skills/citation-management/assets/citation_checklist.md +386 -0
  5. scientific_writer/.claude/skills/citation-management/references/bibtex_formatting.md +908 -0
  6. scientific_writer/.claude/skills/citation-management/references/citation_validation.md +794 -0
  7. scientific_writer/.claude/skills/citation-management/references/google_scholar_search.md +725 -0
  8. scientific_writer/.claude/skills/citation-management/references/metadata_extraction.md +870 -0
  9. scientific_writer/.claude/skills/citation-management/references/pubmed_search.md +839 -0
  10. scientific_writer/.claude/skills/citation-management/scripts/doi_to_bibtex.py +204 -0
  11. scientific_writer/.claude/skills/citation-management/scripts/extract_metadata.py +569 -0
  12. scientific_writer/.claude/skills/citation-management/scripts/format_bibtex.py +349 -0
  13. scientific_writer/.claude/skills/citation-management/scripts/search_google_scholar.py +282 -0
  14. scientific_writer/.claude/skills/citation-management/scripts/search_pubmed.py +398 -0
  15. scientific_writer/.claude/skills/citation-management/scripts/validate_citations.py +497 -0
  16. scientific_writer/.claude/skills/clinical-reports/IMPLEMENTATION_SUMMARY.md +641 -0
  17. scientific_writer/.claude/skills/clinical-reports/README.md +236 -0
  18. scientific_writer/.claude/skills/clinical-reports/SKILL.md +1088 -0
  19. scientific_writer/.claude/skills/clinical-reports/assets/case_report_template.md +352 -0
  20. scientific_writer/.claude/skills/clinical-reports/assets/clinical_trial_csr_template.md +353 -0
  21. scientific_writer/.claude/skills/clinical-reports/assets/clinical_trial_sae_template.md +359 -0
  22. scientific_writer/.claude/skills/clinical-reports/assets/consult_note_template.md +305 -0
  23. scientific_writer/.claude/skills/clinical-reports/assets/discharge_summary_template.md +453 -0
  24. scientific_writer/.claude/skills/clinical-reports/assets/hipaa_compliance_checklist.md +395 -0
  25. scientific_writer/.claude/skills/clinical-reports/assets/history_physical_template.md +305 -0
  26. scientific_writer/.claude/skills/clinical-reports/assets/lab_report_template.md +309 -0
  27. scientific_writer/.claude/skills/clinical-reports/assets/pathology_report_template.md +249 -0
  28. scientific_writer/.claude/skills/clinical-reports/assets/quality_checklist.md +338 -0
  29. scientific_writer/.claude/skills/clinical-reports/assets/radiology_report_template.md +318 -0
  30. scientific_writer/.claude/skills/clinical-reports/assets/soap_note_template.md +253 -0
  31. scientific_writer/.claude/skills/clinical-reports/references/case_report_guidelines.md +570 -0
  32. scientific_writer/.claude/skills/clinical-reports/references/clinical_trial_reporting.md +693 -0
  33. scientific_writer/.claude/skills/clinical-reports/references/data_presentation.md +530 -0
  34. scientific_writer/.claude/skills/clinical-reports/references/diagnostic_reports_standards.md +629 -0
  35. scientific_writer/.claude/skills/clinical-reports/references/medical_terminology.md +588 -0
  36. scientific_writer/.claude/skills/clinical-reports/references/patient_documentation.md +744 -0
  37. scientific_writer/.claude/skills/clinical-reports/references/peer_review_standards.md +585 -0
  38. scientific_writer/.claude/skills/clinical-reports/references/regulatory_compliance.md +577 -0
  39. scientific_writer/.claude/skills/clinical-reports/scripts/check_deidentification.py +346 -0
  40. scientific_writer/.claude/skills/clinical-reports/scripts/compliance_checker.py +78 -0
  41. scientific_writer/.claude/skills/clinical-reports/scripts/extract_clinical_data.py +102 -0
  42. scientific_writer/.claude/skills/clinical-reports/scripts/format_adverse_events.py +103 -0
  43. scientific_writer/.claude/skills/clinical-reports/scripts/generate_report_template.py +163 -0
  44. scientific_writer/.claude/skills/clinical-reports/scripts/terminology_validator.py +133 -0
  45. scientific_writer/.claude/skills/clinical-reports/scripts/validate_case_report.py +334 -0
  46. scientific_writer/.claude/skills/clinical-reports/scripts/validate_trial_report.py +89 -0
  47. scientific_writer/.claude/skills/document-skills/docx/LICENSE.txt +30 -0
  48. scientific_writer/.claude/skills/document-skills/docx/SKILL.md +197 -0
  49. scientific_writer/.claude/skills/document-skills/docx/docx-js.md +350 -0
  50. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  51. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  52. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  53. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  54. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  55. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  56. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  57. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  58. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  59. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  60. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  61. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  62. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  63. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  64. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  65. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  66. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  67. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  68. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  69. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  70. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  71. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  72. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  73. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  74. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  75. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  76. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  77. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  78. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  79. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  80. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  81. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/mce/mc.xsd +75 -0
  82. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
  83. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
  84. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
  85. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
  86. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
  87. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  88. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
  89. scientific_writer/.claude/skills/document-skills/docx/ooxml/scripts/pack.py +159 -0
  90. scientific_writer/.claude/skills/document-skills/docx/ooxml/scripts/unpack.py +29 -0
  91. scientific_writer/.claude/skills/document-skills/docx/ooxml/scripts/validate.py +69 -0
  92. scientific_writer/.claude/skills/document-skills/docx/ooxml/scripts/validation/__init__.py +15 -0
  93. scientific_writer/.claude/skills/document-skills/docx/ooxml/scripts/validation/base.py +951 -0
  94. scientific_writer/.claude/skills/document-skills/docx/ooxml/scripts/validation/docx.py +274 -0
  95. scientific_writer/.claude/skills/document-skills/docx/ooxml/scripts/validation/pptx.py +315 -0
  96. scientific_writer/.claude/skills/document-skills/docx/ooxml/scripts/validation/redlining.py +279 -0
  97. scientific_writer/.claude/skills/document-skills/docx/ooxml.md +610 -0
  98. scientific_writer/.claude/skills/document-skills/docx/scripts/__init__.py +1 -0
  99. scientific_writer/.claude/skills/document-skills/docx/scripts/document.py +1276 -0
  100. scientific_writer/.claude/skills/document-skills/docx/scripts/templates/comments.xml +3 -0
  101. scientific_writer/.claude/skills/document-skills/docx/scripts/templates/commentsExtended.xml +3 -0
  102. scientific_writer/.claude/skills/document-skills/docx/scripts/templates/commentsExtensible.xml +3 -0
  103. scientific_writer/.claude/skills/document-skills/docx/scripts/templates/commentsIds.xml +3 -0
  104. scientific_writer/.claude/skills/document-skills/docx/scripts/templates/people.xml +3 -0
  105. scientific_writer/.claude/skills/document-skills/docx/scripts/utilities.py +374 -0
  106. scientific_writer/.claude/skills/document-skills/pdf/LICENSE.txt +30 -0
  107. scientific_writer/.claude/skills/document-skills/pdf/SKILL.md +294 -0
  108. scientific_writer/.claude/skills/document-skills/pdf/forms.md +205 -0
  109. scientific_writer/.claude/skills/document-skills/pdf/reference.md +612 -0
  110. scientific_writer/.claude/skills/document-skills/pdf/scripts/check_bounding_boxes.py +70 -0
  111. scientific_writer/.claude/skills/document-skills/pdf/scripts/check_bounding_boxes_test.py +226 -0
  112. scientific_writer/.claude/skills/document-skills/pdf/scripts/check_fillable_fields.py +12 -0
  113. scientific_writer/.claude/skills/document-skills/pdf/scripts/convert_pdf_to_images.py +35 -0
  114. scientific_writer/.claude/skills/document-skills/pdf/scripts/create_validation_image.py +41 -0
  115. scientific_writer/.claude/skills/document-skills/pdf/scripts/extract_form_field_info.py +152 -0
  116. scientific_writer/.claude/skills/document-skills/pdf/scripts/fill_fillable_fields.py +114 -0
  117. scientific_writer/.claude/skills/document-skills/pdf/scripts/fill_pdf_form_with_annotations.py +108 -0
  118. scientific_writer/.claude/skills/document-skills/pptx/LICENSE.txt +30 -0
  119. scientific_writer/.claude/skills/document-skills/pptx/SKILL.md +484 -0
  120. scientific_writer/.claude/skills/document-skills/pptx/html2pptx.md +625 -0
  121. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  122. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  123. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  124. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  125. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  126. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  127. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  128. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  129. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  130. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  131. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  132. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  133. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  134. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  135. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  136. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  137. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  138. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  139. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  140. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  141. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  142. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  143. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  144. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  145. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  146. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  147. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  148. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  149. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  150. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  151. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  152. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/mce/mc.xsd +75 -0
  153. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
  154. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
  155. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
  156. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
  157. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
  158. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  159. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
  160. scientific_writer/.claude/skills/document-skills/pptx/ooxml/scripts/pack.py +159 -0
  161. scientific_writer/.claude/skills/document-skills/pptx/ooxml/scripts/unpack.py +29 -0
  162. scientific_writer/.claude/skills/document-skills/pptx/ooxml/scripts/validate.py +69 -0
  163. scientific_writer/.claude/skills/document-skills/pptx/ooxml/scripts/validation/__init__.py +15 -0
  164. scientific_writer/.claude/skills/document-skills/pptx/ooxml/scripts/validation/base.py +951 -0
  165. scientific_writer/.claude/skills/document-skills/pptx/ooxml/scripts/validation/docx.py +274 -0
  166. scientific_writer/.claude/skills/document-skills/pptx/ooxml/scripts/validation/pptx.py +315 -0
  167. scientific_writer/.claude/skills/document-skills/pptx/ooxml/scripts/validation/redlining.py +279 -0
  168. scientific_writer/.claude/skills/document-skills/pptx/ooxml.md +427 -0
  169. scientific_writer/.claude/skills/document-skills/pptx/scripts/html2pptx.js +979 -0
  170. scientific_writer/.claude/skills/document-skills/pptx/scripts/inventory.py +1020 -0
  171. scientific_writer/.claude/skills/document-skills/pptx/scripts/rearrange.py +231 -0
  172. scientific_writer/.claude/skills/document-skills/pptx/scripts/replace.py +385 -0
  173. scientific_writer/.claude/skills/document-skills/pptx/scripts/thumbnail.py +450 -0
  174. scientific_writer/.claude/skills/document-skills/xlsx/LICENSE.txt +30 -0
  175. scientific_writer/.claude/skills/document-skills/xlsx/SKILL.md +289 -0
  176. scientific_writer/.claude/skills/document-skills/xlsx/recalc.py +178 -0
  177. scientific_writer/.claude/skills/hypothesis-generation/SKILL.md +155 -0
  178. scientific_writer/.claude/skills/hypothesis-generation/assets/hypothesis_output_template.md +302 -0
  179. scientific_writer/.claude/skills/hypothesis-generation/references/experimental_design_patterns.md +327 -0
  180. scientific_writer/.claude/skills/hypothesis-generation/references/hypothesis_quality_criteria.md +196 -0
  181. scientific_writer/.claude/skills/hypothesis-generation/references/literature_search_strategies.md +505 -0
  182. scientific_writer/.claude/skills/latex-posters/README.md +417 -0
  183. scientific_writer/.claude/skills/latex-posters/SKILL.md +919 -0
  184. scientific_writer/.claude/skills/latex-posters/assets/baposter_template.tex +257 -0
  185. scientific_writer/.claude/skills/latex-posters/assets/beamerposter_template.tex +244 -0
  186. scientific_writer/.claude/skills/latex-posters/assets/poster_quality_checklist.md +358 -0
  187. scientific_writer/.claude/skills/latex-posters/assets/tikzposter_template.tex +251 -0
  188. scientific_writer/.claude/skills/latex-posters/references/latex_poster_packages.md +745 -0
  189. scientific_writer/.claude/skills/latex-posters/references/poster_content_guide.md +748 -0
  190. scientific_writer/.claude/skills/latex-posters/references/poster_design_principles.md +806 -0
  191. scientific_writer/.claude/skills/latex-posters/references/poster_layout_design.md +900 -0
  192. scientific_writer/.claude/skills/latex-posters/scripts/review_poster.sh +214 -0
  193. scientific_writer/.claude/skills/literature-review/SKILL.md +546 -0
  194. scientific_writer/.claude/skills/literature-review/assets/review_template.md +412 -0
  195. scientific_writer/.claude/skills/literature-review/references/citation_styles.md +166 -0
  196. scientific_writer/.claude/skills/literature-review/references/database_strategies.md +381 -0
  197. scientific_writer/.claude/skills/literature-review/scripts/generate_pdf.py +176 -0
  198. scientific_writer/.claude/skills/literature-review/scripts/search_databases.py +303 -0
  199. scientific_writer/.claude/skills/literature-review/scripts/verify_citations.py +222 -0
  200. scientific_writer/.claude/skills/markitdown/INSTALLATION_GUIDE.md +318 -0
  201. scientific_writer/.claude/skills/markitdown/LICENSE.txt +22 -0
  202. scientific_writer/.claude/skills/markitdown/OPENROUTER_INTEGRATION.md +359 -0
  203. scientific_writer/.claude/skills/markitdown/QUICK_REFERENCE.md +309 -0
  204. scientific_writer/.claude/skills/markitdown/README.md +184 -0
  205. scientific_writer/.claude/skills/markitdown/SKILL.md +450 -0
  206. scientific_writer/.claude/skills/markitdown/SKILL_SUMMARY.md +307 -0
  207. scientific_writer/.claude/skills/markitdown/assets/example_usage.md +463 -0
  208. scientific_writer/.claude/skills/markitdown/references/api_reference.md +399 -0
  209. scientific_writer/.claude/skills/markitdown/references/file_formats.md +542 -0
  210. scientific_writer/.claude/skills/markitdown/scripts/batch_convert.py +228 -0
  211. scientific_writer/.claude/skills/markitdown/scripts/convert_literature.py +283 -0
  212. scientific_writer/.claude/skills/markitdown/scripts/convert_with_ai.py +243 -0
  213. scientific_writer/.claude/skills/paper-2-web/SKILL.md +455 -0
  214. scientific_writer/.claude/skills/paper-2-web/references/installation.md +141 -0
  215. scientific_writer/.claude/skills/paper-2-web/references/paper2poster.md +346 -0
  216. scientific_writer/.claude/skills/paper-2-web/references/paper2video.md +305 -0
  217. scientific_writer/.claude/skills/paper-2-web/references/paper2web.md +187 -0
  218. scientific_writer/.claude/skills/paper-2-web/references/usage_examples.md +436 -0
  219. scientific_writer/.claude/skills/peer-review/SKILL.md +375 -0
  220. scientific_writer/.claude/skills/peer-review/references/common_issues.md +552 -0
  221. scientific_writer/.claude/skills/peer-review/references/reporting_standards.md +290 -0
  222. scientific_writer/.claude/skills/research-grants/README.md +285 -0
  223. scientific_writer/.claude/skills/research-grants/SKILL.md +896 -0
  224. scientific_writer/.claude/skills/research-grants/assets/budget_justification_template.md +453 -0
  225. scientific_writer/.claude/skills/research-grants/assets/nih_specific_aims_template.md +166 -0
  226. scientific_writer/.claude/skills/research-grants/assets/nsf_project_summary_template.md +92 -0
  227. scientific_writer/.claude/skills/research-grants/references/broader_impacts.md +392 -0
  228. scientific_writer/.claude/skills/research-grants/references/darpa_guidelines.md +636 -0
  229. scientific_writer/.claude/skills/research-grants/references/doe_guidelines.md +586 -0
  230. scientific_writer/.claude/skills/research-grants/references/nih_guidelines.md +851 -0
  231. scientific_writer/.claude/skills/research-grants/references/nsf_guidelines.md +570 -0
  232. scientific_writer/.claude/skills/research-grants/references/specific_aims_guide.md +458 -0
  233. scientific_writer/.claude/skills/research-lookup/README.md +116 -0
  234. scientific_writer/.claude/skills/research-lookup/SKILL.md +443 -0
  235. scientific_writer/.claude/skills/research-lookup/examples.py +174 -0
  236. scientific_writer/.claude/skills/research-lookup/lookup.py +93 -0
  237. scientific_writer/.claude/skills/research-lookup/research_lookup.py +335 -0
  238. scientific_writer/.claude/skills/research-lookup/scripts/research_lookup.py +261 -0
  239. scientific_writer/.claude/skills/scholar-evaluation/SKILL.md +254 -0
  240. scientific_writer/.claude/skills/scholar-evaluation/references/evaluation_framework.md +663 -0
  241. scientific_writer/.claude/skills/scholar-evaluation/scripts/calculate_scores.py +378 -0
  242. scientific_writer/.claude/skills/scientific-critical-thinking/SKILL.md +530 -0
  243. scientific_writer/.claude/skills/scientific-critical-thinking/references/common_biases.md +364 -0
  244. scientific_writer/.claude/skills/scientific-critical-thinking/references/evidence_hierarchy.md +484 -0
  245. scientific_writer/.claude/skills/scientific-critical-thinking/references/experimental_design.md +496 -0
  246. scientific_writer/.claude/skills/scientific-critical-thinking/references/logical_fallacies.md +478 -0
  247. scientific_writer/.claude/skills/scientific-critical-thinking/references/scientific_method.md +169 -0
  248. scientific_writer/.claude/skills/scientific-critical-thinking/references/statistical_pitfalls.md +506 -0
  249. scientific_writer/.claude/skills/scientific-schematics/SKILL.md +2035 -0
  250. scientific_writer/.claude/skills/scientific-schematics/assets/block_diagram_template.tex +199 -0
  251. scientific_writer/.claude/skills/scientific-schematics/assets/circuit_template.tex +159 -0
  252. scientific_writer/.claude/skills/scientific-schematics/assets/flowchart_template.tex +161 -0
  253. scientific_writer/.claude/skills/scientific-schematics/assets/pathway_template.tex +162 -0
  254. scientific_writer/.claude/skills/scientific-schematics/assets/tikz_styles.tex +422 -0
  255. scientific_writer/.claude/skills/scientific-schematics/references/best_practices.md +562 -0
  256. scientific_writer/.claude/skills/scientific-schematics/references/diagram_types.md +637 -0
  257. scientific_writer/.claude/skills/scientific-schematics/references/python_libraries.md +791 -0
  258. scientific_writer/.claude/skills/scientific-schematics/references/tikz_guide.md +734 -0
  259. scientific_writer/.claude/skills/scientific-schematics/scripts/circuit_generator.py +307 -0
  260. scientific_writer/.claude/skills/scientific-schematics/scripts/compile_tikz.py +292 -0
  261. scientific_writer/.claude/skills/scientific-schematics/scripts/generate_flowchart.py +281 -0
  262. scientific_writer/.claude/skills/scientific-schematics/scripts/pathway_diagram.py +406 -0
  263. scientific_writer/.claude/skills/scientific-writing/SKILL.md +443 -0
  264. scientific_writer/.claude/skills/scientific-writing/references/citation_styles.md +720 -0
  265. scientific_writer/.claude/skills/scientific-writing/references/figures_tables.md +806 -0
  266. scientific_writer/.claude/skills/scientific-writing/references/imrad_structure.md +658 -0
  267. scientific_writer/.claude/skills/scientific-writing/references/reporting_guidelines.md +748 -0
  268. scientific_writer/.claude/skills/scientific-writing/references/writing_principles.md +824 -0
  269. scientific_writer/.claude/skills/treatment-plans/README.md +483 -0
  270. scientific_writer/.claude/skills/treatment-plans/SKILL.md +817 -0
  271. scientific_writer/.claude/skills/treatment-plans/assets/chronic_disease_management_plan.tex +636 -0
  272. scientific_writer/.claude/skills/treatment-plans/assets/general_medical_treatment_plan.tex +616 -0
  273. scientific_writer/.claude/skills/treatment-plans/assets/mental_health_treatment_plan.tex +745 -0
  274. scientific_writer/.claude/skills/treatment-plans/assets/pain_management_plan.tex +770 -0
  275. scientific_writer/.claude/skills/treatment-plans/assets/perioperative_care_plan.tex +724 -0
  276. scientific_writer/.claude/skills/treatment-plans/assets/quality_checklist.md +471 -0
  277. scientific_writer/.claude/skills/treatment-plans/assets/rehabilitation_treatment_plan.tex +727 -0
  278. scientific_writer/.claude/skills/treatment-plans/references/goal_setting_frameworks.md +411 -0
  279. scientific_writer/.claude/skills/treatment-plans/references/intervention_guidelines.md +507 -0
  280. scientific_writer/.claude/skills/treatment-plans/references/regulatory_compliance.md +476 -0
  281. scientific_writer/.claude/skills/treatment-plans/references/specialty_specific_guidelines.md +607 -0
  282. scientific_writer/.claude/skills/treatment-plans/references/treatment_plan_standards.md +456 -0
  283. scientific_writer/.claude/skills/treatment-plans/scripts/check_completeness.py +318 -0
  284. scientific_writer/.claude/skills/treatment-plans/scripts/generate_template.py +244 -0
  285. scientific_writer/.claude/skills/treatment-plans/scripts/timeline_generator.py +369 -0
  286. scientific_writer/.claude/skills/treatment-plans/scripts/validate_treatment_plan.py +367 -0
  287. scientific_writer/.claude/skills/venue-templates/SKILL.md +590 -0
  288. scientific_writer/.claude/skills/venue-templates/assets/grants/nih_specific_aims.tex +235 -0
  289. scientific_writer/.claude/skills/venue-templates/assets/grants/nsf_proposal_template.tex +375 -0
  290. scientific_writer/.claude/skills/venue-templates/assets/journals/nature_article.tex +171 -0
  291. scientific_writer/.claude/skills/venue-templates/assets/journals/neurips_article.tex +283 -0
  292. scientific_writer/.claude/skills/venue-templates/assets/journals/plos_one.tex +317 -0
  293. scientific_writer/.claude/skills/venue-templates/assets/posters/beamerposter_academic.tex +311 -0
  294. scientific_writer/.claude/skills/venue-templates/references/conferences_formatting.md +564 -0
  295. scientific_writer/.claude/skills/venue-templates/references/grants_requirements.md +787 -0
  296. scientific_writer/.claude/skills/venue-templates/references/journals_formatting.md +486 -0
  297. scientific_writer/.claude/skills/venue-templates/references/posters_guidelines.md +628 -0
  298. scientific_writer/.claude/skills/venue-templates/scripts/customize_template.py +206 -0
  299. scientific_writer/.claude/skills/venue-templates/scripts/query_template.py +260 -0
  300. scientific_writer/.claude/skills/venue-templates/scripts/validate_format.py +255 -0
  301. scientific_writer/CLAUDE.md +748 -0
  302. scientific_writer/__init__.py +2 -2
  303. scientific_writer/api.py +14 -7
  304. scientific_writer/cli.py +12 -7
  305. scientific_writer/core.py +27 -5
  306. {scientific_writer-2.1.1.dist-info → scientific_writer-2.2.2.dist-info}/METADATA +5 -1
  307. scientific_writer-2.2.2.dist-info/RECORD +312 -0
  308. scientific_writer-2.1.1.dist-info/RECORD +0 -11
  309. {scientific_writer-2.1.1.dist-info → scientific_writer-2.2.2.dist-info}/WHEEL +0 -0
  310. {scientific_writer-2.1.1.dist-info → scientific_writer-2.2.2.dist-info}/entry_points.txt +0 -0
  311. {scientific_writer-2.1.1.dist-info → scientific_writer-2.2.2.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,381 @@
1
+ # Literature Database Search Strategies
2
+
3
+ This document provides comprehensive guidance for searching multiple literature databases systematically and effectively.
4
+
5
+ ## Available Databases and Skills
6
+
7
+ ### Biomedical & Life Sciences
8
+
9
+ #### PubMed / PubMed Central
10
+ - **Access**: Use `gget` skill or WebFetch tool
11
+ - **Coverage**: 35M+ citations in biomedical literature
12
+ - **Best for**: Clinical studies, biomedical research, genetics, molecular biology
13
+ - **Search tips**: Use MeSH terms, Boolean operators (AND, OR, NOT), field tags [Title], [Author]
14
+ - **Example**: `"CRISPR"[Title] AND "gene editing"[Title/Abstract] AND 2020:2024[Publication Date]`
15
+
16
+ #### bioRxiv / medRxiv
17
+ - **Access**: Use `gget` skill or direct API
18
+ - **Coverage**: Preprints in biology and medicine
19
+ - **Best for**: Latest unpublished research, cutting-edge findings
20
+ - **Note**: Not peer-reviewed; verify findings with caution
21
+ - **Search tips**: Search by category (bioinformatics, genomics, etc.)
22
+
23
+ ### General Scientific Literature
24
+
25
+ #### arXiv
26
+ - **Access**: Direct API access
27
+ - **Coverage**: Preprints in physics, mathematics, computer science, quantitative biology
28
+ - **Best for**: Computational methods, bioinformatics algorithms, theoretical work
29
+ - **Categories**: q-bio (Quantitative Biology), cs.LG (Machine Learning), stat.ML (Statistics)
30
+ - **Search format**: `cat:q-bio.QM AND title:"single cell"`
31
+
32
+ #### Semantic Scholar
33
+ - **Access**: Direct API (requires API key)
34
+ - **Coverage**: 200M+ papers across all fields
35
+ - **Best for**: Cross-disciplinary searches, citation graphs, paper recommendations
36
+ - **Features**: Influential citations, paper summaries, related papers
37
+ - **Rate limits**: 100 requests/5 minutes with API key
38
+
39
+ #### Google Scholar
40
+ - **Access**: Web scraping (use cautiously) or manual search
41
+ - **Coverage**: Comprehensive across all fields
42
+ - **Best for**: Finding highly cited papers, conference proceedings, theses
43
+ - **Limitations**: No official API, rate limiting
44
+ - **Export**: Use "Cite" feature for formatted citations
45
+
46
+ ### Specialized Databases
47
+
48
+ #### ChEMBL / PubChem
49
+ - **Access**: Use `gget` skill or `bioservices` skill
50
+ - **Coverage**: Chemical compounds, bioactivity data, drug molecules
51
+ - **Best for**: Drug discovery, chemical biology, medicinal chemistry
52
+ - **ChEMBL**: 2M+ compounds, bioactivity data
53
+ - **PubChem**: 110M+ compounds, assay data
54
+
55
+ #### UniProt
56
+ - **Access**: Use `gget` skill or `bioservices` skill
57
+ - **Coverage**: Protein sequence and functional information
58
+ - **Best for**: Protein research, sequence analysis, functional annotations
59
+ - **Search by**: Protein name, gene name, organism, function
60
+
61
+ #### KEGG (Kyoto Encyclopedia of Genes and Genomes)
62
+ - **Access**: Use `bioservices` skill
63
+ - **Coverage**: Pathways, diseases, drugs, genes
64
+ - **Best for**: Pathway analysis, systems biology, metabolic research
65
+
66
+ #### COSMIC (Catalogue of Somatic Mutations in Cancer)
67
+ - **Access**: Use `gget` skill or direct download
68
+ - **Coverage**: Cancer genomics, somatic mutations
69
+ - **Best for**: Cancer research, mutation analysis
70
+
71
+ #### AlphaFold Database
72
+ - **Access**: Use `gget` skill with `alphafold` command
73
+ - **Coverage**: 200M+ protein structure predictions
74
+ - **Best for**: Structural biology, protein modeling
75
+
76
+ #### PDB (Protein Data Bank)
77
+ - **Access**: Use `gget` or direct API
78
+ - **Coverage**: Experimental 3D structures of proteins, nucleic acids
79
+ - **Best for**: Structural biology, drug design, molecular modeling
80
+
81
+ ### Citation & Reference Management
82
+
83
+ #### OpenAlex
84
+ - **Access**: Direct API (free, no key required)
85
+ - **Coverage**: 250M+ works, comprehensive metadata
86
+ - **Best for**: Citation analysis, author disambiguation, institutional research
87
+ - **Features**: Open access, excellent for bibliometrics
88
+
89
+ #### Dimensions
90
+ - **Access**: Free tier available
91
+ - **Coverage**: Publications, grants, patents, clinical trials
92
+ - **Best for**: Research impact, funding analysis, translational research
93
+
94
+ ---
95
+
96
+ ## Search Strategy Framework
97
+
98
+ ### 1. Define Research Question (PICO Framework)
99
+
100
+ For clinical/biomedical reviews:
101
+ - **P**opulation: Who is the study about?
102
+ - **I**ntervention: What is being tested?
103
+ - **C**omparison: What is it compared to?
104
+ - **O**utcome: What are the results?
105
+
106
+ **Example**: "What is the efficacy of CRISPR-Cas9 gene therapy (I) for treating sickle cell disease (P) compared to standard care (C) in improving patient outcomes (O)?"
107
+
108
+ ### 2. Develop Search Terms
109
+
110
+ #### Primary Concepts
111
+ Identify 2-4 main concepts from your research question.
112
+
113
+ **Example**:
114
+ - Concept 1: CRISPR, Cas9, gene editing
115
+ - Concept 2: sickle cell disease, SCD, hemoglobin disorders
116
+ - Concept 3: gene therapy, therapeutic editing
117
+
118
+ #### Synonyms & Related Terms
119
+ List alternative terms, abbreviations, and related concepts.
120
+
121
+ **Tool**: Use MeSH (Medical Subject Headings) browser for standardized terms
122
+
123
+ #### Boolean Operators
124
+ - **AND**: Narrows search (must include both terms)
125
+ - **OR**: Broadens search (includes either term)
126
+ - **NOT**: Excludes terms
127
+
128
+ **Example**: `(CRISPR OR Cas9 OR "gene editing") AND ("sickle cell" OR SCD) AND therapy`
129
+
130
+ #### Wildcards & Truncation
131
+ - `*` or `%`: Matches any characters
132
+ - `?`: Matches single character
133
+
134
+ **Example**: `genom*` matches genomic, genomics, genome
135
+
136
+ ### 3. Set Inclusion/Exclusion Criteria
137
+
138
+ #### Inclusion Criteria
139
+ - **Date range**: e.g., 2015-2024 (last 10 years)
140
+ - **Language**: English (or specify multilingual)
141
+ - **Publication type**: Peer-reviewed articles, reviews, preprints
142
+ - **Study design**: RCTs, cohort studies, meta-analyses
143
+ - **Population**: Human, animal models, in vitro
144
+
145
+ #### Exclusion Criteria
146
+ - Case reports (n<5)
147
+ - Conference abstracts without full text
148
+ - Non-original research (editorials, commentaries)
149
+ - Duplicate publications
150
+ - Retracted articles
151
+
152
+ ### 4. Database Selection Strategy
153
+
154
+ #### Multi-Database Approach
155
+ Search at least 3 complementary databases:
156
+
157
+ 1. **Primary database**: PubMed (biomedical) or arXiv (computational)
158
+ 2. **Preprint server**: bioRxiv/medRxiv or arXiv
159
+ 3. **Comprehensive database**: Semantic Scholar or Google Scholar
160
+ 4. **Specialized database**: ChEMBL, UniProt, or field-specific
161
+
162
+ #### Database-Specific Syntax
163
+
164
+ | Database | Field Tags | Example |
165
+ |----------|-----------|---------|
166
+ | PubMed | [Title], [Author], [MeSH] | "CRISPR"[Title] AND 2020:2024[DP] |
167
+ | arXiv | ti:, au:, cat: | ti:"machine learning" AND cat:q-bio.QM |
168
+ | Semantic Scholar | title:, author:, year: | title:"deep learning" year:2020-2024 |
169
+
170
+ ---
171
+
172
+ ## Search Execution Workflow
173
+
174
+ ### Phase 1: Pilot Search
175
+ 1. Run initial search with broad terms
176
+ 2. Review first 50 results for relevance
177
+ 3. Note common keywords and MeSH terms
178
+ 4. Refine search strategy
179
+
180
+ ### Phase 2: Comprehensive Search
181
+ 1. Execute refined searches across all selected databases
182
+ 2. Export results in standard format (RIS, BibTeX, JSON)
183
+ 3. Document search strings and date for each database
184
+ 4. Record number of results per database
185
+
186
+ ### Phase 3: Deduplication
187
+ 1. Import all results into a single file
188
+ 2. Use `search_databases.py --deduplicate` to remove duplicates
189
+ 3. Identify duplicates by DOI (primary) or title (fallback)
190
+ 4. Keep the version with most complete metadata
191
+
192
+ ### Phase 4: Screening
193
+ 1. **Title screening**: Review titles, exclude obviously irrelevant
194
+ 2. **Abstract screening**: Read abstracts, apply inclusion/exclusion criteria
195
+ 3. **Full-text screening**: Obtain and review full texts
196
+ 4. Document reasons for exclusion at each stage
197
+
198
+ ### Phase 5: Quality Assessment
199
+ 1. Assess study quality using appropriate tools:
200
+ - **RCTs**: Cochrane Risk of Bias tool
201
+ - **Observational**: Newcastle-Ottawa Scale
202
+ - **Systematic reviews**: AMSTAR 2
203
+ 2. Grade quality of evidence (high, moderate, low, very low)
204
+ 3. Consider excluding very low-quality studies
205
+
206
+ ---
207
+
208
+ ## Search Documentation Template
209
+
210
+ ### Required Documentation
211
+ All searches must be documented for reproducibility:
212
+
213
+ ```markdown
214
+ ## Search Strategy
215
+
216
+ ### Database: PubMed
217
+ - **Date searched**: 2024-10-25
218
+ - **Date range**: 2015-01-01 to 2024-10-25
219
+ - **Search string**:
220
+ ```
221
+ ("CRISPR"[Title] OR "Cas9"[Title] OR "gene editing"[Title/Abstract])
222
+ AND ("sickle cell disease"[MeSH] OR "SCD"[Title/Abstract])
223
+ AND ("gene therapy"[MeSH] OR "therapeutic editing"[Title/Abstract])
224
+ AND 2015:2024[Publication Date]
225
+ AND English[Language]
226
+ ```
227
+ - **Results**: 247 articles
228
+ - **After deduplication**: 189 articles
229
+
230
+ ### Database: bioRxiv
231
+ - **Date searched**: 2024-10-25
232
+ - **Date range**: 2015-01-01 to 2024-10-25
233
+ - **Search string**: "CRISPR" AND "sickle cell" (in title/abstract)
234
+ - **Results**: 34 preprints
235
+ - **After deduplication**: 28 preprints
236
+
237
+ ### Total Unique Articles
238
+ - **Combined results**: 217 unique articles
239
+ - **After title screening**: 156 articles
240
+ - **After abstract screening**: 89 articles
241
+ - **After full-text screening**: 52 articles included in review
242
+ ```
243
+
244
+ ---
245
+
246
+ ## Advanced Search Techniques
247
+
248
+ ### Citation Chaining
249
+
250
+ #### Forward Citation Search
251
+ Find papers that cite a key paper:
252
+ - Use Google Scholar "Cited by" feature
253
+ - Use OpenAlex or Semantic Scholar APIs
254
+ - Identifies newer research building on seminal work
255
+
256
+ #### Backward Citation Search
257
+ Review references in key papers:
258
+ - Extract references from included papers
259
+ - Search for highly cited references
260
+ - Identifies foundational research
261
+
262
+ ### Snowball Sampling
263
+ 1. Start with 3-5 highly relevant papers
264
+ 2. Extract all their references
265
+ 3. Check which references are cited by multiple papers
266
+ 4. Review those high-overlap references
267
+ 5. Repeat for newly identified key papers
268
+
269
+ ### Author Search
270
+ Follow prolific authors in the field:
271
+ - Search by author name across databases
272
+ - Check author profiles (ORCID, Google Scholar)
273
+ - Review recent publications and preprints
274
+
275
+ ### Related Article Features
276
+ Many databases suggest related articles:
277
+ - PubMed "Similar articles"
278
+ - Semantic Scholar "Recommended papers"
279
+ - Use to discover papers missed by keyword search
280
+
281
+ ---
282
+
283
+ ## Quality Control Checklist
284
+
285
+ ### Before Searching
286
+ - [ ] Research question clearly defined
287
+ - [ ] PICO criteria established (if applicable)
288
+ - [ ] Search terms and synonyms listed
289
+ - [ ] Inclusion/exclusion criteria documented
290
+ - [ ] Target databases selected (minimum 3)
291
+ - [ ] Date range determined
292
+
293
+ ### During Searching
294
+ - [ ] Search string tested and refined
295
+ - [ ] Results exported with complete metadata
296
+ - [ ] Search parameters documented
297
+ - [ ] Number of results recorded per database
298
+ - [ ] Search date recorded
299
+
300
+ ### After Searching
301
+ - [ ] Duplicates removed
302
+ - [ ] Screening protocol followed
303
+ - [ ] Reasons for exclusion documented
304
+ - [ ] Quality assessment completed
305
+ - [ ] All citations verified with verify_citations.py
306
+ - [ ] Search methodology documented in review
307
+
308
+ ---
309
+
310
+ ## Common Pitfalls to Avoid
311
+
312
+ 1. **Too narrow search**: Missing relevant papers
313
+ - Solution: Include synonyms, related terms, broader concepts
314
+
315
+ 2. **Too broad search**: Thousands of irrelevant results
316
+ - Solution: Add specific concepts with AND, use field tags
317
+
318
+ 3. **Single database**: Incomplete coverage
319
+ - Solution: Search minimum 3 complementary databases
320
+
321
+ 4. **Ignoring preprints**: Missing latest findings
322
+ - Solution: Include bioRxiv, medRxiv, or arXiv
323
+
324
+ 5. **No documentation**: Irreproducible search
325
+ - Solution: Document every search string, date, and result count
326
+
327
+ 6. **Manual deduplication**: Time-consuming and error-prone
328
+ - Solution: Use search_databases.py script
329
+
330
+ 7. **Unverified citations**: Broken DOIs, incorrect metadata
331
+ - Solution: Run verify_citations.py on final reference list
332
+
333
+ 8. **Publication bias**: Only including published positive results
334
+ - Solution: Search trial registries, contact authors for unpublished data
335
+
336
+ ---
337
+
338
+ ## Example Multi-Database Search Workflow
339
+
340
+ ```python
341
+ # Example workflow using available skills
342
+
343
+ # 1. Search PubMed via gget
344
+ search_term = "CRISPR AND sickle cell disease"
345
+ # Use gget search pubmed search_term
346
+
347
+ # 2. Search bioRxiv
348
+ # Use gget search biorxiv search_term
349
+
350
+ # 3. Search arXiv for computational papers
351
+ # Search arXiv with: cat:q-bio AND "CRISPR" AND "sickle cell"
352
+
353
+ # 4. Search Semantic Scholar via API
354
+ # Use semantic scholar API with search query
355
+
356
+ # 5. Aggregate and deduplicate results
357
+ # python search_databases.py combined_results.json --deduplicate --format markdown --output review_papers.md
358
+
359
+ # 6. Verify all citations
360
+ # python verify_citations.py review_papers.md
361
+
362
+ # 7. Generate final PDF
363
+ # python generate_pdf.py review_papers.md --citation-style nature
364
+ ```
365
+
366
+ ---
367
+
368
+ ## Resources
369
+
370
+ ### MeSH Browser
371
+ https://meshb.nlm.nih.gov/search
372
+
373
+ ### Boolean Search Tutorial
374
+ https://www.ncbi.nlm.nih.gov/books/NBK3827/
375
+
376
+ ### Citation Style Guides
377
+ See references/citation_styles.md in this skill
378
+
379
+ ### PRISMA Guidelines
380
+ Preferred Reporting Items for Systematic Reviews and Meta-Analyses:
381
+ http://www.prisma-statement.org/
@@ -0,0 +1,176 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ PDF Generation Script for Literature Reviews
4
+ Converts markdown files to professionally formatted PDFs with proper styling.
5
+ """
6
+
7
+ import subprocess
8
+ import sys
9
+ import os
10
+ from pathlib import Path
11
+
12
+ def generate_pdf(
13
+ markdown_file: str,
14
+ output_pdf: str = None,
15
+ citation_style: str = "apa",
16
+ template: str = None,
17
+ toc: bool = True,
18
+ number_sections: bool = True
19
+ ) -> bool:
20
+ """
21
+ Generate a PDF from a markdown file using pandoc.
22
+
23
+ Args:
24
+ markdown_file: Path to the markdown file
25
+ output_pdf: Path for output PDF (defaults to same name as markdown)
26
+ citation_style: Citation style (apa, nature, chicago, etc.)
27
+ template: Path to custom LaTeX template
28
+ toc: Include table of contents
29
+ number_sections: Number the sections
30
+
31
+ Returns:
32
+ True if successful, False otherwise
33
+ """
34
+
35
+ # Verify markdown file exists
36
+ if not os.path.exists(markdown_file):
37
+ print(f"Error: Markdown file not found: {markdown_file}")
38
+ return False
39
+
40
+ # Set default output path
41
+ if output_pdf is None:
42
+ output_pdf = Path(markdown_file).with_suffix('.pdf')
43
+
44
+ # Check if pandoc is installed
45
+ try:
46
+ subprocess.run(['pandoc', '--version'], capture_output=True, check=True)
47
+ except (subprocess.CalledProcessError, FileNotFoundError):
48
+ print("Error: pandoc is not installed.")
49
+ print("Install with: brew install pandoc (macOS) or apt-get install pandoc (Linux)")
50
+ return False
51
+
52
+ # Build pandoc command
53
+ cmd = [
54
+ 'pandoc',
55
+ markdown_file,
56
+ '-o', str(output_pdf),
57
+ '--pdf-engine=xelatex', # Better Unicode support
58
+ '-V', 'geometry:margin=1in',
59
+ '-V', 'fontsize=11pt',
60
+ '-V', 'colorlinks=true',
61
+ '-V', 'linkcolor=blue',
62
+ '-V', 'urlcolor=blue',
63
+ '-V', 'citecolor=blue',
64
+ ]
65
+
66
+ # Add table of contents
67
+ if toc:
68
+ cmd.extend(['--toc', '--toc-depth=3'])
69
+
70
+ # Add section numbering
71
+ if number_sections:
72
+ cmd.append('--number-sections')
73
+
74
+ # Add citation processing if bibliography exists
75
+ bib_file = Path(markdown_file).with_suffix('.bib')
76
+ if bib_file.exists():
77
+ cmd.extend([
78
+ '--citeproc',
79
+ '--bibliography', str(bib_file),
80
+ '--csl', f'{citation_style}.csl' if not citation_style.endswith('.csl') else citation_style
81
+ ])
82
+
83
+ # Add custom template if provided
84
+ if template and os.path.exists(template):
85
+ cmd.extend(['--template', template])
86
+
87
+ # Execute pandoc
88
+ try:
89
+ print(f"Generating PDF: {output_pdf}")
90
+ print(f"Command: {' '.join(cmd)}")
91
+ result = subprocess.run(cmd, capture_output=True, text=True, check=True)
92
+ print(f"✓ PDF generated successfully: {output_pdf}")
93
+ return True
94
+ except subprocess.CalledProcessError as e:
95
+ print(f"Error generating PDF:")
96
+ print(f"STDOUT: {e.stdout}")
97
+ print(f"STDERR: {e.stderr}")
98
+ return False
99
+
100
+ def check_dependencies():
101
+ """Check if required dependencies are installed."""
102
+ dependencies = {
103
+ 'pandoc': 'pandoc --version',
104
+ 'xelatex': 'xelatex --version'
105
+ }
106
+
107
+ missing = []
108
+ for name, cmd in dependencies.items():
109
+ try:
110
+ subprocess.run(cmd.split(), capture_output=True, check=True)
111
+ print(f"✓ {name} is installed")
112
+ except (subprocess.CalledProcessError, FileNotFoundError):
113
+ print(f"✗ {name} is NOT installed")
114
+ missing.append(name)
115
+
116
+ if missing:
117
+ print("\n" + "="*60)
118
+ print("Missing dependencies:")
119
+ for dep in missing:
120
+ if dep == 'pandoc':
121
+ print(" - pandoc: brew install pandoc (macOS) or apt-get install pandoc (Linux)")
122
+ elif dep == 'xelatex':
123
+ print(" - xelatex: brew install --cask mactex (macOS) or apt-get install texlive-xetex (Linux)")
124
+ return False
125
+
126
+ return True
127
+
128
+ def main():
129
+ """Command-line interface."""
130
+ if len(sys.argv) < 2:
131
+ print("Usage: python generate_pdf.py <markdown_file> [output_pdf] [--citation-style STYLE]")
132
+ print("\nOptions:")
133
+ print(" --citation-style STYLE Citation style (default: apa)")
134
+ print(" --no-toc Disable table of contents")
135
+ print(" --no-numbers Disable section numbering")
136
+ print(" --check-deps Check if dependencies are installed")
137
+ sys.exit(1)
138
+
139
+ # Check dependencies mode
140
+ if '--check-deps' in sys.argv:
141
+ check_dependencies()
142
+ sys.exit(0)
143
+
144
+ # Parse arguments
145
+ markdown_file = sys.argv[1]
146
+ output_pdf = sys.argv[2] if len(sys.argv) > 2 and not sys.argv[2].startswith('--') else None
147
+
148
+ citation_style = 'apa'
149
+ toc = True
150
+ number_sections = True
151
+
152
+ # Parse optional flags
153
+ if '--citation-style' in sys.argv:
154
+ idx = sys.argv.index('--citation-style')
155
+ if idx + 1 < len(sys.argv):
156
+ citation_style = sys.argv[idx + 1]
157
+
158
+ if '--no-toc' in sys.argv:
159
+ toc = False
160
+
161
+ if '--no-numbers' in sys.argv:
162
+ number_sections = False
163
+
164
+ # Generate PDF
165
+ success = generate_pdf(
166
+ markdown_file,
167
+ output_pdf,
168
+ citation_style=citation_style,
169
+ toc=toc,
170
+ number_sections=number_sections
171
+ )
172
+
173
+ sys.exit(0 if success else 1)
174
+
175
+ if __name__ == "__main__":
176
+ main()