scientific-writer 2.3.1__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.
- scientific_writer/.claude/WRITER.md +822 -0
- scientific_writer/.claude/settings.local.json +30 -0
- scientific_writer/.claude/skills/citation-management/SKILL.md +1046 -0
- scientific_writer/.claude/skills/citation-management/assets/bibtex_template.bib +264 -0
- scientific_writer/.claude/skills/citation-management/assets/citation_checklist.md +386 -0
- scientific_writer/.claude/skills/citation-management/references/bibtex_formatting.md +908 -0
- scientific_writer/.claude/skills/citation-management/references/citation_validation.md +794 -0
- scientific_writer/.claude/skills/citation-management/references/google_scholar_search.md +725 -0
- scientific_writer/.claude/skills/citation-management/references/metadata_extraction.md +870 -0
- scientific_writer/.claude/skills/citation-management/references/pubmed_search.md +839 -0
- scientific_writer/.claude/skills/citation-management/scripts/doi_to_bibtex.py +204 -0
- scientific_writer/.claude/skills/citation-management/scripts/extract_metadata.py +569 -0
- scientific_writer/.claude/skills/citation-management/scripts/format_bibtex.py +349 -0
- scientific_writer/.claude/skills/citation-management/scripts/search_google_scholar.py +282 -0
- scientific_writer/.claude/skills/citation-management/scripts/search_pubmed.py +398 -0
- scientific_writer/.claude/skills/citation-management/scripts/validate_citations.py +497 -0
- scientific_writer/.claude/skills/clinical-reports/IMPLEMENTATION_SUMMARY.md +641 -0
- scientific_writer/.claude/skills/clinical-reports/README.md +236 -0
- scientific_writer/.claude/skills/clinical-reports/SKILL.md +1088 -0
- scientific_writer/.claude/skills/clinical-reports/assets/case_report_template.md +352 -0
- scientific_writer/.claude/skills/clinical-reports/assets/clinical_trial_csr_template.md +353 -0
- scientific_writer/.claude/skills/clinical-reports/assets/clinical_trial_sae_template.md +359 -0
- scientific_writer/.claude/skills/clinical-reports/assets/consult_note_template.md +305 -0
- scientific_writer/.claude/skills/clinical-reports/assets/discharge_summary_template.md +453 -0
- scientific_writer/.claude/skills/clinical-reports/assets/hipaa_compliance_checklist.md +395 -0
- scientific_writer/.claude/skills/clinical-reports/assets/history_physical_template.md +305 -0
- scientific_writer/.claude/skills/clinical-reports/assets/lab_report_template.md +309 -0
- scientific_writer/.claude/skills/clinical-reports/assets/pathology_report_template.md +249 -0
- scientific_writer/.claude/skills/clinical-reports/assets/quality_checklist.md +338 -0
- scientific_writer/.claude/skills/clinical-reports/assets/radiology_report_template.md +318 -0
- scientific_writer/.claude/skills/clinical-reports/assets/soap_note_template.md +253 -0
- scientific_writer/.claude/skills/clinical-reports/references/case_report_guidelines.md +570 -0
- scientific_writer/.claude/skills/clinical-reports/references/clinical_trial_reporting.md +693 -0
- scientific_writer/.claude/skills/clinical-reports/references/data_presentation.md +530 -0
- scientific_writer/.claude/skills/clinical-reports/references/diagnostic_reports_standards.md +629 -0
- scientific_writer/.claude/skills/clinical-reports/references/medical_terminology.md +588 -0
- scientific_writer/.claude/skills/clinical-reports/references/patient_documentation.md +744 -0
- scientific_writer/.claude/skills/clinical-reports/references/peer_review_standards.md +585 -0
- scientific_writer/.claude/skills/clinical-reports/references/regulatory_compliance.md +577 -0
- scientific_writer/.claude/skills/clinical-reports/scripts/check_deidentification.py +346 -0
- scientific_writer/.claude/skills/clinical-reports/scripts/compliance_checker.py +78 -0
- scientific_writer/.claude/skills/clinical-reports/scripts/extract_clinical_data.py +102 -0
- scientific_writer/.claude/skills/clinical-reports/scripts/format_adverse_events.py +103 -0
- scientific_writer/.claude/skills/clinical-reports/scripts/generate_report_template.py +163 -0
- scientific_writer/.claude/skills/clinical-reports/scripts/terminology_validator.py +133 -0
- scientific_writer/.claude/skills/clinical-reports/scripts/validate_case_report.py +334 -0
- scientific_writer/.claude/skills/clinical-reports/scripts/validate_trial_report.py +89 -0
- scientific_writer/.claude/skills/document-skills/docx/LICENSE.txt +30 -0
- scientific_writer/.claude/skills/document-skills/docx/SKILL.md +197 -0
- scientific_writer/.claude/skills/document-skills/docx/docx-js.md +350 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/mce/mc.xsd +75 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/scripts/pack.py +159 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/scripts/unpack.py +29 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/scripts/validate.py +69 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/scripts/validation/__init__.py +15 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/scripts/validation/base.py +951 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/scripts/validation/docx.py +274 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/scripts/validation/pptx.py +315 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml/scripts/validation/redlining.py +279 -0
- scientific_writer/.claude/skills/document-skills/docx/ooxml.md +610 -0
- scientific_writer/.claude/skills/document-skills/docx/scripts/__init__.py +1 -0
- scientific_writer/.claude/skills/document-skills/docx/scripts/document.py +1276 -0
- scientific_writer/.claude/skills/document-skills/docx/scripts/templates/comments.xml +3 -0
- scientific_writer/.claude/skills/document-skills/docx/scripts/templates/commentsExtended.xml +3 -0
- scientific_writer/.claude/skills/document-skills/docx/scripts/templates/commentsExtensible.xml +3 -0
- scientific_writer/.claude/skills/document-skills/docx/scripts/templates/commentsIds.xml +3 -0
- scientific_writer/.claude/skills/document-skills/docx/scripts/templates/people.xml +3 -0
- scientific_writer/.claude/skills/document-skills/docx/scripts/utilities.py +374 -0
- scientific_writer/.claude/skills/document-skills/pdf/LICENSE.txt +30 -0
- scientific_writer/.claude/skills/document-skills/pdf/SKILL.md +294 -0
- scientific_writer/.claude/skills/document-skills/pdf/forms.md +205 -0
- scientific_writer/.claude/skills/document-skills/pdf/reference.md +612 -0
- scientific_writer/.claude/skills/document-skills/pdf/scripts/check_bounding_boxes.py +70 -0
- scientific_writer/.claude/skills/document-skills/pdf/scripts/check_bounding_boxes_test.py +226 -0
- scientific_writer/.claude/skills/document-skills/pdf/scripts/check_fillable_fields.py +12 -0
- scientific_writer/.claude/skills/document-skills/pdf/scripts/convert_pdf_to_images.py +35 -0
- scientific_writer/.claude/skills/document-skills/pdf/scripts/create_validation_image.py +41 -0
- scientific_writer/.claude/skills/document-skills/pdf/scripts/extract_form_field_info.py +152 -0
- scientific_writer/.claude/skills/document-skills/pdf/scripts/fill_fillable_fields.py +114 -0
- scientific_writer/.claude/skills/document-skills/pdf/scripts/fill_pdf_form_with_annotations.py +108 -0
- scientific_writer/.claude/skills/document-skills/pptx/LICENSE.txt +30 -0
- scientific_writer/.claude/skills/document-skills/pptx/SKILL.md +484 -0
- scientific_writer/.claude/skills/document-skills/pptx/html2pptx.md +625 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/mce/mc.xsd +75 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/scripts/pack.py +159 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/scripts/unpack.py +29 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/scripts/validate.py +69 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/scripts/validation/__init__.py +15 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/scripts/validation/base.py +951 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/scripts/validation/docx.py +274 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/scripts/validation/pptx.py +315 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml/scripts/validation/redlining.py +279 -0
- scientific_writer/.claude/skills/document-skills/pptx/ooxml.md +427 -0
- scientific_writer/.claude/skills/document-skills/pptx/scripts/html2pptx.js +979 -0
- scientific_writer/.claude/skills/document-skills/pptx/scripts/inventory.py +1020 -0
- scientific_writer/.claude/skills/document-skills/pptx/scripts/rearrange.py +231 -0
- scientific_writer/.claude/skills/document-skills/pptx/scripts/replace.py +385 -0
- scientific_writer/.claude/skills/document-skills/pptx/scripts/thumbnail.py +450 -0
- scientific_writer/.claude/skills/document-skills/xlsx/LICENSE.txt +30 -0
- scientific_writer/.claude/skills/document-skills/xlsx/SKILL.md +289 -0
- scientific_writer/.claude/skills/document-skills/xlsx/recalc.py +178 -0
- scientific_writer/.claude/skills/hypothesis-generation/SKILL.md +155 -0
- scientific_writer/.claude/skills/hypothesis-generation/assets/hypothesis_output_template.md +302 -0
- scientific_writer/.claude/skills/hypothesis-generation/references/experimental_design_patterns.md +327 -0
- scientific_writer/.claude/skills/hypothesis-generation/references/hypothesis_quality_criteria.md +196 -0
- scientific_writer/.claude/skills/hypothesis-generation/references/literature_search_strategies.md +505 -0
- scientific_writer/.claude/skills/latex-posters/README.md +417 -0
- scientific_writer/.claude/skills/latex-posters/SKILL.md +919 -0
- scientific_writer/.claude/skills/latex-posters/assets/baposter_template.tex +257 -0
- scientific_writer/.claude/skills/latex-posters/assets/beamerposter_template.tex +244 -0
- scientific_writer/.claude/skills/latex-posters/assets/poster_quality_checklist.md +358 -0
- scientific_writer/.claude/skills/latex-posters/assets/tikzposter_template.tex +251 -0
- scientific_writer/.claude/skills/latex-posters/references/latex_poster_packages.md +745 -0
- scientific_writer/.claude/skills/latex-posters/references/poster_content_guide.md +748 -0
- scientific_writer/.claude/skills/latex-posters/references/poster_design_principles.md +806 -0
- scientific_writer/.claude/skills/latex-posters/references/poster_layout_design.md +900 -0
- scientific_writer/.claude/skills/latex-posters/scripts/review_poster.sh +214 -0
- scientific_writer/.claude/skills/literature-review/SKILL.md +546 -0
- scientific_writer/.claude/skills/literature-review/assets/review_template.md +412 -0
- scientific_writer/.claude/skills/literature-review/references/citation_styles.md +166 -0
- scientific_writer/.claude/skills/literature-review/references/database_strategies.md +381 -0
- scientific_writer/.claude/skills/literature-review/scripts/generate_pdf.py +176 -0
- scientific_writer/.claude/skills/literature-review/scripts/search_databases.py +303 -0
- scientific_writer/.claude/skills/literature-review/scripts/verify_citations.py +222 -0
- scientific_writer/.claude/skills/markitdown/INSTALLATION_GUIDE.md +318 -0
- scientific_writer/.claude/skills/markitdown/LICENSE.txt +22 -0
- scientific_writer/.claude/skills/markitdown/OPENROUTER_INTEGRATION.md +359 -0
- scientific_writer/.claude/skills/markitdown/QUICK_REFERENCE.md +309 -0
- scientific_writer/.claude/skills/markitdown/README.md +184 -0
- scientific_writer/.claude/skills/markitdown/SKILL.md +450 -0
- scientific_writer/.claude/skills/markitdown/SKILL_SUMMARY.md +307 -0
- scientific_writer/.claude/skills/markitdown/assets/example_usage.md +463 -0
- scientific_writer/.claude/skills/markitdown/references/api_reference.md +399 -0
- scientific_writer/.claude/skills/markitdown/references/file_formats.md +542 -0
- scientific_writer/.claude/skills/markitdown/scripts/batch_convert.py +228 -0
- scientific_writer/.claude/skills/markitdown/scripts/convert_literature.py +283 -0
- scientific_writer/.claude/skills/markitdown/scripts/convert_with_ai.py +243 -0
- scientific_writer/.claude/skills/paper-2-web/SKILL.md +455 -0
- scientific_writer/.claude/skills/paper-2-web/references/installation.md +141 -0
- scientific_writer/.claude/skills/paper-2-web/references/paper2poster.md +346 -0
- scientific_writer/.claude/skills/paper-2-web/references/paper2video.md +305 -0
- scientific_writer/.claude/skills/paper-2-web/references/paper2web.md +187 -0
- scientific_writer/.claude/skills/paper-2-web/references/usage_examples.md +436 -0
- scientific_writer/.claude/skills/peer-review/SKILL.md +375 -0
- scientific_writer/.claude/skills/peer-review/references/common_issues.md +552 -0
- scientific_writer/.claude/skills/peer-review/references/reporting_standards.md +290 -0
- scientific_writer/.claude/skills/research-grants/README.md +285 -0
- scientific_writer/.claude/skills/research-grants/SKILL.md +896 -0
- scientific_writer/.claude/skills/research-grants/assets/budget_justification_template.md +453 -0
- scientific_writer/.claude/skills/research-grants/assets/nih_specific_aims_template.md +166 -0
- scientific_writer/.claude/skills/research-grants/assets/nsf_project_summary_template.md +92 -0
- scientific_writer/.claude/skills/research-grants/references/broader_impacts.md +392 -0
- scientific_writer/.claude/skills/research-grants/references/darpa_guidelines.md +636 -0
- scientific_writer/.claude/skills/research-grants/references/doe_guidelines.md +586 -0
- scientific_writer/.claude/skills/research-grants/references/nih_guidelines.md +851 -0
- scientific_writer/.claude/skills/research-grants/references/nsf_guidelines.md +570 -0
- scientific_writer/.claude/skills/research-grants/references/specific_aims_guide.md +458 -0
- scientific_writer/.claude/skills/research-lookup/README.md +116 -0
- scientific_writer/.claude/skills/research-lookup/SKILL.md +443 -0
- scientific_writer/.claude/skills/research-lookup/examples.py +174 -0
- scientific_writer/.claude/skills/research-lookup/lookup.py +93 -0
- scientific_writer/.claude/skills/research-lookup/research_lookup.py +335 -0
- scientific_writer/.claude/skills/research-lookup/scripts/research_lookup.py +261 -0
- scientific_writer/.claude/skills/scholar-evaluation/SKILL.md +254 -0
- scientific_writer/.claude/skills/scholar-evaluation/references/evaluation_framework.md +663 -0
- scientific_writer/.claude/skills/scholar-evaluation/scripts/calculate_scores.py +378 -0
- scientific_writer/.claude/skills/scientific-critical-thinking/SKILL.md +530 -0
- scientific_writer/.claude/skills/scientific-critical-thinking/references/common_biases.md +364 -0
- scientific_writer/.claude/skills/scientific-critical-thinking/references/evidence_hierarchy.md +484 -0
- scientific_writer/.claude/skills/scientific-critical-thinking/references/experimental_design.md +496 -0
- scientific_writer/.claude/skills/scientific-critical-thinking/references/logical_fallacies.md +478 -0
- scientific_writer/.claude/skills/scientific-critical-thinking/references/scientific_method.md +169 -0
- scientific_writer/.claude/skills/scientific-critical-thinking/references/statistical_pitfalls.md +506 -0
- scientific_writer/.claude/skills/scientific-schematics/SKILL.md +2035 -0
- scientific_writer/.claude/skills/scientific-schematics/assets/block_diagram_template.tex +199 -0
- scientific_writer/.claude/skills/scientific-schematics/assets/circuit_template.tex +159 -0
- scientific_writer/.claude/skills/scientific-schematics/assets/flowchart_template.tex +161 -0
- scientific_writer/.claude/skills/scientific-schematics/assets/pathway_template.tex +162 -0
- scientific_writer/.claude/skills/scientific-schematics/assets/tikz_styles.tex +422 -0
- scientific_writer/.claude/skills/scientific-schematics/references/best_practices.md +562 -0
- scientific_writer/.claude/skills/scientific-schematics/references/diagram_types.md +637 -0
- scientific_writer/.claude/skills/scientific-schematics/references/python_libraries.md +791 -0
- scientific_writer/.claude/skills/scientific-schematics/references/tikz_guide.md +734 -0
- scientific_writer/.claude/skills/scientific-schematics/scripts/circuit_generator.py +307 -0
- scientific_writer/.claude/skills/scientific-schematics/scripts/compile_tikz.py +292 -0
- scientific_writer/.claude/skills/scientific-schematics/scripts/generate_flowchart.py +281 -0
- scientific_writer/.claude/skills/scientific-schematics/scripts/pathway_diagram.py +406 -0
- scientific_writer/.claude/skills/scientific-writing/SKILL.md +443 -0
- scientific_writer/.claude/skills/scientific-writing/references/citation_styles.md +720 -0
- scientific_writer/.claude/skills/scientific-writing/references/figures_tables.md +806 -0
- scientific_writer/.claude/skills/scientific-writing/references/imrad_structure.md +658 -0
- scientific_writer/.claude/skills/scientific-writing/references/reporting_guidelines.md +748 -0
- scientific_writer/.claude/skills/scientific-writing/references/writing_principles.md +824 -0
- scientific_writer/.claude/skills/treatment-plans/README.md +488 -0
- scientific_writer/.claude/skills/treatment-plans/SKILL.md +1536 -0
- scientific_writer/.claude/skills/treatment-plans/assets/STYLING_QUICK_REFERENCE.md +185 -0
- scientific_writer/.claude/skills/treatment-plans/assets/chronic_disease_management_plan.tex +665 -0
- scientific_writer/.claude/skills/treatment-plans/assets/general_medical_treatment_plan.tex +547 -0
- scientific_writer/.claude/skills/treatment-plans/assets/medical_treatment_plan.sty +222 -0
- scientific_writer/.claude/skills/treatment-plans/assets/mental_health_treatment_plan.tex +774 -0
- scientific_writer/.claude/skills/treatment-plans/assets/one_page_treatment_plan.tex +193 -0
- scientific_writer/.claude/skills/treatment-plans/assets/pain_management_plan.tex +799 -0
- scientific_writer/.claude/skills/treatment-plans/assets/perioperative_care_plan.tex +753 -0
- scientific_writer/.claude/skills/treatment-plans/assets/quality_checklist.md +471 -0
- scientific_writer/.claude/skills/treatment-plans/assets/rehabilitation_treatment_plan.tex +756 -0
- scientific_writer/.claude/skills/treatment-plans/references/goal_setting_frameworks.md +411 -0
- scientific_writer/.claude/skills/treatment-plans/references/intervention_guidelines.md +507 -0
- scientific_writer/.claude/skills/treatment-plans/references/regulatory_compliance.md +476 -0
- scientific_writer/.claude/skills/treatment-plans/references/specialty_specific_guidelines.md +655 -0
- scientific_writer/.claude/skills/treatment-plans/references/treatment_plan_standards.md +485 -0
- scientific_writer/.claude/skills/treatment-plans/scripts/check_completeness.py +318 -0
- scientific_writer/.claude/skills/treatment-plans/scripts/generate_template.py +244 -0
- scientific_writer/.claude/skills/treatment-plans/scripts/timeline_generator.py +369 -0
- scientific_writer/.claude/skills/treatment-plans/scripts/validate_treatment_plan.py +367 -0
- scientific_writer/.claude/skills/venue-templates/SKILL.md +590 -0
- scientific_writer/.claude/skills/venue-templates/assets/grants/nih_specific_aims.tex +235 -0
- scientific_writer/.claude/skills/venue-templates/assets/grants/nsf_proposal_template.tex +375 -0
- scientific_writer/.claude/skills/venue-templates/assets/journals/nature_article.tex +171 -0
- scientific_writer/.claude/skills/venue-templates/assets/journals/neurips_article.tex +283 -0
- scientific_writer/.claude/skills/venue-templates/assets/journals/plos_one.tex +317 -0
- scientific_writer/.claude/skills/venue-templates/assets/posters/beamerposter_academic.tex +311 -0
- scientific_writer/.claude/skills/venue-templates/references/conferences_formatting.md +564 -0
- scientific_writer/.claude/skills/venue-templates/references/grants_requirements.md +787 -0
- scientific_writer/.claude/skills/venue-templates/references/journals_formatting.md +486 -0
- scientific_writer/.claude/skills/venue-templates/references/posters_guidelines.md +628 -0
- scientific_writer/.claude/skills/venue-templates/scripts/customize_template.py +206 -0
- scientific_writer/.claude/skills/venue-templates/scripts/query_template.py +260 -0
- scientific_writer/.claude/skills/venue-templates/scripts/validate_format.py +255 -0
- scientific_writer/__init__.py +43 -0
- scientific_writer/api.py +393 -0
- scientific_writer/cli.py +326 -0
- scientific_writer/core.py +275 -0
- scientific_writer/models.py +76 -0
- scientific_writer/utils.py +289 -0
- scientific_writer-2.3.1.dist-info/METADATA +272 -0
- scientific_writer-2.3.1.dist-info/RECORD +315 -0
- scientific_writer-2.3.1.dist-info/WHEEL +4 -0
- scientific_writer-2.3.1.dist-info/entry_points.txt +2 -0
- scientific_writer-2.3.1.dist-info/licenses/LICENSE +22 -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()
|