scientific-writer 2.2.1__py3-none-any.whl → 2.2.3__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.
- scientific_writer/.claude/WRITER.md +748 -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 +483 -0
- scientific_writer/.claude/skills/treatment-plans/SKILL.md +817 -0
- scientific_writer/.claude/skills/treatment-plans/assets/chronic_disease_management_plan.tex +636 -0
- scientific_writer/.claude/skills/treatment-plans/assets/general_medical_treatment_plan.tex +616 -0
- scientific_writer/.claude/skills/treatment-plans/assets/mental_health_treatment_plan.tex +745 -0
- scientific_writer/.claude/skills/treatment-plans/assets/pain_management_plan.tex +770 -0
- scientific_writer/.claude/skills/treatment-plans/assets/perioperative_care_plan.tex +724 -0
- scientific_writer/.claude/skills/treatment-plans/assets/quality_checklist.md +471 -0
- scientific_writer/.claude/skills/treatment-plans/assets/rehabilitation_treatment_plan.tex +727 -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 +607 -0
- scientific_writer/.claude/skills/treatment-plans/references/treatment_plan_standards.md +456 -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 +1 -1
- scientific_writer/api.py +9 -5
- scientific_writer/cli.py +9 -5
- scientific_writer/core.py +28 -5
- {scientific_writer-2.2.1.dist-info → scientific_writer-2.2.3.dist-info}/METADATA +1 -1
- scientific_writer-2.2.3.dist-info/RECORD +312 -0
- scientific_writer-2.2.1.dist-info/RECORD +0 -11
- {scientific_writer-2.2.1.dist-info → scientific_writer-2.2.3.dist-info}/WHEEL +0 -0
- {scientific_writer-2.2.1.dist-info → scientific_writer-2.2.3.dist-info}/entry_points.txt +0 -0
- {scientific_writer-2.2.1.dist-info → scientific_writer-2.2.3.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,794 @@
|
|
|
1
|
+
# Citation Validation Guide
|
|
2
|
+
|
|
3
|
+
Comprehensive guide to validating citation accuracy, completeness, and formatting in BibTeX files.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
Citation validation ensures:
|
|
8
|
+
- All citations are accurate and complete
|
|
9
|
+
- DOIs resolve correctly
|
|
10
|
+
- Required fields are present
|
|
11
|
+
- No duplicate entries
|
|
12
|
+
- Proper formatting and syntax
|
|
13
|
+
- Links are accessible
|
|
14
|
+
|
|
15
|
+
Validation should be performed:
|
|
16
|
+
- After extracting metadata
|
|
17
|
+
- Before manuscript submission
|
|
18
|
+
- After manual edits to BibTeX files
|
|
19
|
+
- Periodically for maintained bibliographies
|
|
20
|
+
|
|
21
|
+
## Validation Categories
|
|
22
|
+
|
|
23
|
+
### 1. DOI Verification
|
|
24
|
+
|
|
25
|
+
**Purpose**: Ensure DOIs are valid and resolve correctly.
|
|
26
|
+
|
|
27
|
+
#### What to Check
|
|
28
|
+
|
|
29
|
+
**DOI format**:
|
|
30
|
+
```
|
|
31
|
+
Valid: 10.1038/s41586-021-03819-2
|
|
32
|
+
Valid: 10.1126/science.aam9317
|
|
33
|
+
Invalid: 10.1038/invalid
|
|
34
|
+
Invalid: doi:10.1038/... (should omit "doi:" prefix in BibTeX)
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
**DOI resolution**:
|
|
38
|
+
- DOI should resolve via https://doi.org/
|
|
39
|
+
- Should redirect to actual article
|
|
40
|
+
- Should not return 404 or error
|
|
41
|
+
|
|
42
|
+
**Metadata consistency**:
|
|
43
|
+
- CrossRef metadata should match BibTeX
|
|
44
|
+
- Author names should align
|
|
45
|
+
- Title should match
|
|
46
|
+
- Year should match
|
|
47
|
+
|
|
48
|
+
#### How to Validate
|
|
49
|
+
|
|
50
|
+
**Manual check**:
|
|
51
|
+
1. Copy DOI from BibTeX
|
|
52
|
+
2. Visit https://doi.org/10.1038/nature12345
|
|
53
|
+
3. Verify it redirects to correct article
|
|
54
|
+
4. Check metadata matches
|
|
55
|
+
|
|
56
|
+
**Automated check** (recommended):
|
|
57
|
+
```bash
|
|
58
|
+
python scripts/validate_citations.py references.bib --check-dois
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
**Process**:
|
|
62
|
+
1. Extract all DOIs from BibTeX file
|
|
63
|
+
2. Query doi.org resolver for each
|
|
64
|
+
3. Query CrossRef API for metadata
|
|
65
|
+
4. Compare metadata with BibTeX entry
|
|
66
|
+
5. Report discrepancies
|
|
67
|
+
|
|
68
|
+
#### Common Issues
|
|
69
|
+
|
|
70
|
+
**Broken DOIs**:
|
|
71
|
+
- Typos in DOI
|
|
72
|
+
- Publisher changed DOI (rare)
|
|
73
|
+
- Article retracted
|
|
74
|
+
- Solution: Find correct DOI from publisher site
|
|
75
|
+
|
|
76
|
+
**Mismatched metadata**:
|
|
77
|
+
- BibTeX has old/incorrect information
|
|
78
|
+
- Solution: Re-extract metadata from CrossRef
|
|
79
|
+
|
|
80
|
+
**Missing DOIs**:
|
|
81
|
+
- Older articles may not have DOIs
|
|
82
|
+
- Acceptable for pre-2000 publications
|
|
83
|
+
- Add URL or PMID instead
|
|
84
|
+
|
|
85
|
+
### 2. Required Fields
|
|
86
|
+
|
|
87
|
+
**Purpose**: Ensure all necessary information is present.
|
|
88
|
+
|
|
89
|
+
#### Required by Entry Type
|
|
90
|
+
|
|
91
|
+
**@article**:
|
|
92
|
+
```bibtex
|
|
93
|
+
author % REQUIRED
|
|
94
|
+
title % REQUIRED
|
|
95
|
+
journal % REQUIRED
|
|
96
|
+
year % REQUIRED
|
|
97
|
+
volume % Highly recommended
|
|
98
|
+
pages % Highly recommended
|
|
99
|
+
doi % Highly recommended for modern papers
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
**@book**:
|
|
103
|
+
```bibtex
|
|
104
|
+
author OR editor % REQUIRED (at least one)
|
|
105
|
+
title % REQUIRED
|
|
106
|
+
publisher % REQUIRED
|
|
107
|
+
year % REQUIRED
|
|
108
|
+
isbn % Recommended
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
**@inproceedings**:
|
|
112
|
+
```bibtex
|
|
113
|
+
author % REQUIRED
|
|
114
|
+
title % REQUIRED
|
|
115
|
+
booktitle % REQUIRED (conference/proceedings name)
|
|
116
|
+
year % REQUIRED
|
|
117
|
+
pages % Recommended
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
**@incollection** (book chapter):
|
|
121
|
+
```bibtex
|
|
122
|
+
author % REQUIRED
|
|
123
|
+
title % REQUIRED (chapter title)
|
|
124
|
+
booktitle % REQUIRED (book title)
|
|
125
|
+
publisher % REQUIRED
|
|
126
|
+
year % REQUIRED
|
|
127
|
+
editor % Recommended
|
|
128
|
+
pages % Recommended
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
**@phdthesis**:
|
|
132
|
+
```bibtex
|
|
133
|
+
author % REQUIRED
|
|
134
|
+
title % REQUIRED
|
|
135
|
+
school % REQUIRED
|
|
136
|
+
year % REQUIRED
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
**@misc** (preprints, datasets, etc.):
|
|
140
|
+
```bibtex
|
|
141
|
+
author % REQUIRED
|
|
142
|
+
title % REQUIRED
|
|
143
|
+
year % REQUIRED
|
|
144
|
+
howpublished % Recommended (bioRxiv, Zenodo, etc.)
|
|
145
|
+
doi OR url % At least one required
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
#### Validation Script
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
python scripts/validate_citations.py references.bib --check-required-fields
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
**Output**:
|
|
155
|
+
```
|
|
156
|
+
Error: Entry 'Smith2024' missing required field 'journal'
|
|
157
|
+
Error: Entry 'Doe2023' missing required field 'year'
|
|
158
|
+
Warning: Entry 'Jones2022' missing recommended field 'volume'
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### 3. Author Name Formatting
|
|
162
|
+
|
|
163
|
+
**Purpose**: Ensure consistent, correct author name formatting.
|
|
164
|
+
|
|
165
|
+
#### Proper Format
|
|
166
|
+
|
|
167
|
+
**Recommended BibTeX format**:
|
|
168
|
+
```bibtex
|
|
169
|
+
author = {Last1, First1 and Last2, First2 and Last3, First3}
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
**Examples**:
|
|
173
|
+
```bibtex
|
|
174
|
+
% Correct
|
|
175
|
+
author = {Smith, John}
|
|
176
|
+
author = {Smith, John A.}
|
|
177
|
+
author = {Smith, John Andrew}
|
|
178
|
+
author = {Smith, John and Doe, Jane}
|
|
179
|
+
author = {Smith, John and Doe, Jane and Johnson, Mary}
|
|
180
|
+
|
|
181
|
+
% For many authors
|
|
182
|
+
author = {Smith, John and Doe, Jane and others}
|
|
183
|
+
|
|
184
|
+
% Incorrect
|
|
185
|
+
author = {John Smith} % First Last format (not recommended)
|
|
186
|
+
author = {Smith, J.; Doe, J.} % Semicolon separator (wrong)
|
|
187
|
+
author = {Smith J, Doe J} % Missing commas
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
#### Special Cases
|
|
191
|
+
|
|
192
|
+
**Suffixes (Jr., III, etc.)**:
|
|
193
|
+
```bibtex
|
|
194
|
+
author = {King, Jr., Martin Luther}
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
**Multiple surnames (hyphenated)**:
|
|
198
|
+
```bibtex
|
|
199
|
+
author = {Smith-Jones, Mary}
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
**Van, von, de, etc.**:
|
|
203
|
+
```bibtex
|
|
204
|
+
author = {van der Waals, Johannes}
|
|
205
|
+
author = {de Broglie, Louis}
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
**Organizations as authors**:
|
|
209
|
+
```bibtex
|
|
210
|
+
author = {{World Health Organization}}
|
|
211
|
+
% Double braces treat as single author
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
#### Validation Checks
|
|
215
|
+
|
|
216
|
+
**Automated validation**:
|
|
217
|
+
```bash
|
|
218
|
+
python scripts/validate_citations.py references.bib --check-authors
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
**Checks for**:
|
|
222
|
+
- Proper separator (and, not &, ; , etc.)
|
|
223
|
+
- Comma placement
|
|
224
|
+
- Empty author fields
|
|
225
|
+
- Malformed names
|
|
226
|
+
|
|
227
|
+
### 4. Data Consistency
|
|
228
|
+
|
|
229
|
+
**Purpose**: Ensure all fields contain valid, reasonable values.
|
|
230
|
+
|
|
231
|
+
#### Year Validation
|
|
232
|
+
|
|
233
|
+
**Valid years**:
|
|
234
|
+
```bibtex
|
|
235
|
+
year = {2024} % Current/recent
|
|
236
|
+
year = {1953} % Watson & Crick DNA structure (historical)
|
|
237
|
+
year = {1665} % Hooke's Micrographia (very old)
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
**Invalid years**:
|
|
241
|
+
```bibtex
|
|
242
|
+
year = {24} % Two digits (ambiguous)
|
|
243
|
+
year = {202} % Typo
|
|
244
|
+
year = {2025} % Future (unless accepted/in press)
|
|
245
|
+
year = {0} % Obviously wrong
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
**Check**:
|
|
249
|
+
- Four digits
|
|
250
|
+
- Reasonable range (1600-current+1)
|
|
251
|
+
- Not all zeros
|
|
252
|
+
|
|
253
|
+
#### Volume/Number Validation
|
|
254
|
+
|
|
255
|
+
```bibtex
|
|
256
|
+
volume = {123} % Numeric
|
|
257
|
+
volume = {12} % Valid
|
|
258
|
+
number = {3} % Valid
|
|
259
|
+
number = {S1} % Supplement issue (valid)
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
**Invalid**:
|
|
263
|
+
```bibtex
|
|
264
|
+
volume = {Vol. 123} % Should be just number
|
|
265
|
+
number = {Issue 3} % Should be just number
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
#### Page Range Validation
|
|
269
|
+
|
|
270
|
+
**Correct format**:
|
|
271
|
+
```bibtex
|
|
272
|
+
pages = {123--145} % En-dash (two hyphens)
|
|
273
|
+
pages = {e0123456} % PLOS-style article ID
|
|
274
|
+
pages = {123} % Single page
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
**Incorrect format**:
|
|
278
|
+
```bibtex
|
|
279
|
+
pages = {123-145} % Single hyphen (use --)
|
|
280
|
+
pages = {pp. 123-145} % Remove "pp."
|
|
281
|
+
pages = {123–145} % Unicode en-dash (may cause issues)
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
#### URL Validation
|
|
285
|
+
|
|
286
|
+
**Check**:
|
|
287
|
+
- URLs are accessible (return 200 status)
|
|
288
|
+
- HTTPS when available
|
|
289
|
+
- No obvious typos
|
|
290
|
+
- Permanent links (not temporary)
|
|
291
|
+
|
|
292
|
+
**Valid**:
|
|
293
|
+
```bibtex
|
|
294
|
+
url = {https://www.nature.com/articles/nature12345}
|
|
295
|
+
url = {https://arxiv.org/abs/2103.14030}
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
**Questionable**:
|
|
299
|
+
```bibtex
|
|
300
|
+
url = {http://...} % HTTP instead of HTTPS
|
|
301
|
+
url = {file:///...} % Local file path
|
|
302
|
+
url = {bit.ly/...} % URL shortener (not permanent)
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
### 5. Duplicate Detection
|
|
306
|
+
|
|
307
|
+
**Purpose**: Find and remove duplicate entries.
|
|
308
|
+
|
|
309
|
+
#### Types of Duplicates
|
|
310
|
+
|
|
311
|
+
**Exact duplicates** (same DOI):
|
|
312
|
+
```bibtex
|
|
313
|
+
@article{Smith2024a,
|
|
314
|
+
doi = {10.1038/nature12345},
|
|
315
|
+
...
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
@article{Smith2024b,
|
|
319
|
+
doi = {10.1038/nature12345}, % Same DOI!
|
|
320
|
+
...
|
|
321
|
+
}
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
**Near duplicates** (similar title/authors):
|
|
325
|
+
```bibtex
|
|
326
|
+
@article{Smith2024,
|
|
327
|
+
title = {Machine Learning for Drug Discovery},
|
|
328
|
+
...
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
@article{Smith2024method,
|
|
332
|
+
title = {Machine learning for drug discovery}, % Same, different case
|
|
333
|
+
...
|
|
334
|
+
}
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
**Preprint + Published**:
|
|
338
|
+
```bibtex
|
|
339
|
+
@misc{Smith2023arxiv,
|
|
340
|
+
title = {AlphaFold Results},
|
|
341
|
+
howpublished = {arXiv},
|
|
342
|
+
...
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
@article{Smith2024,
|
|
346
|
+
title = {AlphaFold Results}, % Same paper, now published
|
|
347
|
+
journal = {Nature},
|
|
348
|
+
...
|
|
349
|
+
}
|
|
350
|
+
% Keep published version only
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
#### Detection Methods
|
|
354
|
+
|
|
355
|
+
**By DOI** (most reliable):
|
|
356
|
+
- Same DOI = exact duplicate
|
|
357
|
+
- Keep one, remove other
|
|
358
|
+
|
|
359
|
+
**By title similarity**:
|
|
360
|
+
- Normalize: lowercase, remove punctuation
|
|
361
|
+
- Calculate similarity (e.g., Levenshtein distance)
|
|
362
|
+
- Flag if >90% similar
|
|
363
|
+
|
|
364
|
+
**By author-year-title**:
|
|
365
|
+
- Same first author + year + similar title
|
|
366
|
+
- Likely duplicate
|
|
367
|
+
|
|
368
|
+
**Automated detection**:
|
|
369
|
+
```bash
|
|
370
|
+
python scripts/validate_citations.py references.bib --check-duplicates
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
**Output**:
|
|
374
|
+
```
|
|
375
|
+
Warning: Possible duplicate entries:
|
|
376
|
+
- Smith2024a (DOI: 10.1038/nature12345)
|
|
377
|
+
- Smith2024b (DOI: 10.1038/nature12345)
|
|
378
|
+
Recommendation: Keep one entry, remove the other.
|
|
379
|
+
```
|
|
380
|
+
|
|
381
|
+
### 6. Format and Syntax
|
|
382
|
+
|
|
383
|
+
**Purpose**: Ensure valid BibTeX syntax.
|
|
384
|
+
|
|
385
|
+
#### Common Syntax Errors
|
|
386
|
+
|
|
387
|
+
**Missing commas**:
|
|
388
|
+
```bibtex
|
|
389
|
+
@article{Smith2024,
|
|
390
|
+
author = {Smith, John} % Missing comma!
|
|
391
|
+
title = {Title}
|
|
392
|
+
}
|
|
393
|
+
% Should be:
|
|
394
|
+
author = {Smith, John}, % Comma after each field
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
**Unbalanced braces**:
|
|
398
|
+
```bibtex
|
|
399
|
+
title = {Title with {Protected} Text % Missing closing brace
|
|
400
|
+
% Should be:
|
|
401
|
+
title = {Title with {Protected} Text}
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
**Missing closing brace for entry**:
|
|
405
|
+
```bibtex
|
|
406
|
+
@article{Smith2024,
|
|
407
|
+
author = {Smith, John},
|
|
408
|
+
title = {Title}
|
|
409
|
+
% Missing closing brace!
|
|
410
|
+
% Should end with:
|
|
411
|
+
}
|
|
412
|
+
```
|
|
413
|
+
|
|
414
|
+
**Invalid characters in keys**:
|
|
415
|
+
```bibtex
|
|
416
|
+
@article{Smith&Doe2024, % & not allowed in key
|
|
417
|
+
...
|
|
418
|
+
}
|
|
419
|
+
% Use:
|
|
420
|
+
@article{SmithDoe2024,
|
|
421
|
+
...
|
|
422
|
+
}
|
|
423
|
+
```
|
|
424
|
+
|
|
425
|
+
#### BibTeX Syntax Rules
|
|
426
|
+
|
|
427
|
+
**Entry structure**:
|
|
428
|
+
```bibtex
|
|
429
|
+
@TYPE{citationkey,
|
|
430
|
+
field1 = {value1},
|
|
431
|
+
field2 = {value2},
|
|
432
|
+
...
|
|
433
|
+
fieldN = {valueN}
|
|
434
|
+
}
|
|
435
|
+
```
|
|
436
|
+
|
|
437
|
+
**Citation keys**:
|
|
438
|
+
- Alphanumeric and some punctuation (-, _, ., :)
|
|
439
|
+
- No spaces
|
|
440
|
+
- Case-sensitive
|
|
441
|
+
- Unique within file
|
|
442
|
+
|
|
443
|
+
**Field values**:
|
|
444
|
+
- Enclosed in {braces} or "quotes"
|
|
445
|
+
- Braces preferred for complex text
|
|
446
|
+
- Numbers can be unquoted: `year = 2024`
|
|
447
|
+
|
|
448
|
+
**Special characters**:
|
|
449
|
+
- `{` and `}` for grouping
|
|
450
|
+
- `\` for LaTeX commands
|
|
451
|
+
- Protect capitalization: `{AlphaFold}`
|
|
452
|
+
- Accents: `{\"u}`, `{\'e}`, `{\aa}`
|
|
453
|
+
|
|
454
|
+
#### Validation
|
|
455
|
+
|
|
456
|
+
```bash
|
|
457
|
+
python scripts/validate_citations.py references.bib --check-syntax
|
|
458
|
+
```
|
|
459
|
+
|
|
460
|
+
**Checks**:
|
|
461
|
+
- Valid BibTeX structure
|
|
462
|
+
- Balanced braces
|
|
463
|
+
- Proper commas
|
|
464
|
+
- Valid entry types
|
|
465
|
+
- Unique citation keys
|
|
466
|
+
|
|
467
|
+
## Validation Workflow
|
|
468
|
+
|
|
469
|
+
### Step 1: Basic Validation
|
|
470
|
+
|
|
471
|
+
Run comprehensive validation:
|
|
472
|
+
|
|
473
|
+
```bash
|
|
474
|
+
python scripts/validate_citations.py references.bib
|
|
475
|
+
```
|
|
476
|
+
|
|
477
|
+
**Checks all**:
|
|
478
|
+
- DOI resolution
|
|
479
|
+
- Required fields
|
|
480
|
+
- Author formatting
|
|
481
|
+
- Data consistency
|
|
482
|
+
- Duplicates
|
|
483
|
+
- Syntax
|
|
484
|
+
|
|
485
|
+
### Step 2: Review Report
|
|
486
|
+
|
|
487
|
+
Examine validation report:
|
|
488
|
+
|
|
489
|
+
```json
|
|
490
|
+
{
|
|
491
|
+
"total_entries": 150,
|
|
492
|
+
"valid_entries": 140,
|
|
493
|
+
"errors": [
|
|
494
|
+
{
|
|
495
|
+
"entry": "Smith2024",
|
|
496
|
+
"error": "missing_required_field",
|
|
497
|
+
"field": "journal",
|
|
498
|
+
"severity": "high"
|
|
499
|
+
},
|
|
500
|
+
{
|
|
501
|
+
"entry": "Doe2023",
|
|
502
|
+
"error": "invalid_doi",
|
|
503
|
+
"doi": "10.1038/broken",
|
|
504
|
+
"severity": "high"
|
|
505
|
+
}
|
|
506
|
+
],
|
|
507
|
+
"warnings": [
|
|
508
|
+
{
|
|
509
|
+
"entry": "Jones2022",
|
|
510
|
+
"warning": "missing_recommended_field",
|
|
511
|
+
"field": "volume",
|
|
512
|
+
"severity": "medium"
|
|
513
|
+
}
|
|
514
|
+
],
|
|
515
|
+
"duplicates": [
|
|
516
|
+
{
|
|
517
|
+
"entries": ["Smith2024a", "Smith2024b"],
|
|
518
|
+
"reason": "same_doi",
|
|
519
|
+
"doi": "10.1038/nature12345"
|
|
520
|
+
}
|
|
521
|
+
]
|
|
522
|
+
}
|
|
523
|
+
```
|
|
524
|
+
|
|
525
|
+
### Step 3: Fix Issues
|
|
526
|
+
|
|
527
|
+
**High-priority** (errors):
|
|
528
|
+
1. Add missing required fields
|
|
529
|
+
2. Fix broken DOIs
|
|
530
|
+
3. Remove duplicates
|
|
531
|
+
4. Correct syntax errors
|
|
532
|
+
|
|
533
|
+
**Medium-priority** (warnings):
|
|
534
|
+
1. Add recommended fields
|
|
535
|
+
2. Improve author formatting
|
|
536
|
+
3. Fix page ranges
|
|
537
|
+
|
|
538
|
+
**Low-priority**:
|
|
539
|
+
1. Standardize formatting
|
|
540
|
+
2. Add URLs for accessibility
|
|
541
|
+
|
|
542
|
+
### Step 4: Auto-Fix
|
|
543
|
+
|
|
544
|
+
Use auto-fix for safe corrections:
|
|
545
|
+
|
|
546
|
+
```bash
|
|
547
|
+
python scripts/validate_citations.py references.bib \
|
|
548
|
+
--auto-fix \
|
|
549
|
+
--output fixed_references.bib
|
|
550
|
+
```
|
|
551
|
+
|
|
552
|
+
**Auto-fix can**:
|
|
553
|
+
- Fix page range format (- to --)
|
|
554
|
+
- Remove "pp." from pages
|
|
555
|
+
- Standardize author separators
|
|
556
|
+
- Fix common syntax errors
|
|
557
|
+
- Normalize field order
|
|
558
|
+
|
|
559
|
+
**Auto-fix cannot**:
|
|
560
|
+
- Add missing information
|
|
561
|
+
- Find correct DOIs
|
|
562
|
+
- Determine which duplicate to keep
|
|
563
|
+
- Fix semantic errors
|
|
564
|
+
|
|
565
|
+
### Step 5: Manual Review
|
|
566
|
+
|
|
567
|
+
Review auto-fixed file:
|
|
568
|
+
```bash
|
|
569
|
+
# Check what changed
|
|
570
|
+
diff references.bib fixed_references.bib
|
|
571
|
+
|
|
572
|
+
# Review specific entries that had errors
|
|
573
|
+
grep -A 10 "Smith2024" fixed_references.bib
|
|
574
|
+
```
|
|
575
|
+
|
|
576
|
+
### Step 6: Re-Validate
|
|
577
|
+
|
|
578
|
+
Validate after fixes:
|
|
579
|
+
|
|
580
|
+
```bash
|
|
581
|
+
python scripts/validate_citations.py fixed_references.bib --verbose
|
|
582
|
+
```
|
|
583
|
+
|
|
584
|
+
Should show:
|
|
585
|
+
```
|
|
586
|
+
✓ All DOIs valid
|
|
587
|
+
✓ All required fields present
|
|
588
|
+
✓ No duplicates found
|
|
589
|
+
✓ Syntax valid
|
|
590
|
+
✓ 150/150 entries valid
|
|
591
|
+
```
|
|
592
|
+
|
|
593
|
+
## Validation Checklist
|
|
594
|
+
|
|
595
|
+
Use this checklist before final submission:
|
|
596
|
+
|
|
597
|
+
### DOI Validation
|
|
598
|
+
- [ ] All DOIs resolve correctly
|
|
599
|
+
- [ ] Metadata matches between BibTeX and CrossRef
|
|
600
|
+
- [ ] No broken or invalid DOIs
|
|
601
|
+
|
|
602
|
+
### Completeness
|
|
603
|
+
- [ ] All entries have required fields
|
|
604
|
+
- [ ] Modern papers (2000+) have DOIs
|
|
605
|
+
- [ ] Authors properly formatted
|
|
606
|
+
- [ ] Journals/conferences properly named
|
|
607
|
+
|
|
608
|
+
### Consistency
|
|
609
|
+
- [ ] Years are 4-digit numbers
|
|
610
|
+
- [ ] Page ranges use -- not -
|
|
611
|
+
- [ ] Volume/number are numeric
|
|
612
|
+
- [ ] URLs are accessible
|
|
613
|
+
|
|
614
|
+
### Duplicates
|
|
615
|
+
- [ ] No entries with same DOI
|
|
616
|
+
- [ ] No near-duplicate titles
|
|
617
|
+
- [ ] Preprints updated to published versions
|
|
618
|
+
|
|
619
|
+
### Formatting
|
|
620
|
+
- [ ] Valid BibTeX syntax
|
|
621
|
+
- [ ] Balanced braces
|
|
622
|
+
- [ ] Proper commas
|
|
623
|
+
- [ ] Unique citation keys
|
|
624
|
+
|
|
625
|
+
### Final Checks
|
|
626
|
+
- [ ] Bibliography compiles without errors
|
|
627
|
+
- [ ] All citations in text appear in bibliography
|
|
628
|
+
- [ ] All bibliography entries cited in text
|
|
629
|
+
- [ ] Citation style matches journal requirements
|
|
630
|
+
|
|
631
|
+
## Best Practices
|
|
632
|
+
|
|
633
|
+
### 1. Validate Early and Often
|
|
634
|
+
|
|
635
|
+
```bash
|
|
636
|
+
# After extraction
|
|
637
|
+
python scripts/extract_metadata.py --doi ... --output refs.bib
|
|
638
|
+
python scripts/validate_citations.py refs.bib
|
|
639
|
+
|
|
640
|
+
# After manual edits
|
|
641
|
+
python scripts/validate_citations.py refs.bib
|
|
642
|
+
|
|
643
|
+
# Before submission
|
|
644
|
+
python scripts/validate_citations.py refs.bib --strict
|
|
645
|
+
```
|
|
646
|
+
|
|
647
|
+
### 2. Use Automated Tools
|
|
648
|
+
|
|
649
|
+
Don't validate manually - use scripts:
|
|
650
|
+
- Faster
|
|
651
|
+
- More comprehensive
|
|
652
|
+
- Catches errors humans miss
|
|
653
|
+
- Generates reports
|
|
654
|
+
|
|
655
|
+
### 3. Keep Backup
|
|
656
|
+
|
|
657
|
+
```bash
|
|
658
|
+
# Before auto-fix
|
|
659
|
+
cp references.bib references_backup.bib
|
|
660
|
+
|
|
661
|
+
# Run auto-fix
|
|
662
|
+
python scripts/validate_citations.py references.bib \
|
|
663
|
+
--auto-fix \
|
|
664
|
+
--output references_fixed.bib
|
|
665
|
+
|
|
666
|
+
# Review changes
|
|
667
|
+
diff references.bib references_fixed.bib
|
|
668
|
+
|
|
669
|
+
# If satisfied, replace
|
|
670
|
+
mv references_fixed.bib references.bib
|
|
671
|
+
```
|
|
672
|
+
|
|
673
|
+
### 4. Fix High-Priority First
|
|
674
|
+
|
|
675
|
+
**Priority order**:
|
|
676
|
+
1. Syntax errors (prevent compilation)
|
|
677
|
+
2. Missing required fields (incomplete citations)
|
|
678
|
+
3. Broken DOIs (broken links)
|
|
679
|
+
4. Duplicates (confusion, wasted space)
|
|
680
|
+
5. Missing recommended fields
|
|
681
|
+
6. Formatting inconsistencies
|
|
682
|
+
|
|
683
|
+
### 5. Document Exceptions
|
|
684
|
+
|
|
685
|
+
For entries that can't be fixed:
|
|
686
|
+
|
|
687
|
+
```bibtex
|
|
688
|
+
@article{Old1950,
|
|
689
|
+
author = {Smith, John},
|
|
690
|
+
title = {Title},
|
|
691
|
+
journal = {Obscure Journal},
|
|
692
|
+
year = {1950},
|
|
693
|
+
volume = {12},
|
|
694
|
+
pages = {34--56},
|
|
695
|
+
note = {DOI not available for publications before 2000}
|
|
696
|
+
}
|
|
697
|
+
```
|
|
698
|
+
|
|
699
|
+
### 6. Validate Against Journal Requirements
|
|
700
|
+
|
|
701
|
+
Different journals have different requirements:
|
|
702
|
+
- Citation style (numbered, author-year)
|
|
703
|
+
- Abbreviations (journal names)
|
|
704
|
+
- Maximum reference count
|
|
705
|
+
- Format (BibTeX, EndNote, manual)
|
|
706
|
+
|
|
707
|
+
Check journal author guidelines!
|
|
708
|
+
|
|
709
|
+
## Common Validation Issues
|
|
710
|
+
|
|
711
|
+
### Issue 1: Metadata Mismatch
|
|
712
|
+
|
|
713
|
+
**Problem**: BibTeX says 2023, CrossRef says 2024.
|
|
714
|
+
|
|
715
|
+
**Cause**:
|
|
716
|
+
- Online-first vs print publication
|
|
717
|
+
- Correction/update
|
|
718
|
+
- Extraction error
|
|
719
|
+
|
|
720
|
+
**Solution**:
|
|
721
|
+
1. Check actual article
|
|
722
|
+
2. Use more recent/accurate date
|
|
723
|
+
3. Update BibTeX entry
|
|
724
|
+
4. Re-validate
|
|
725
|
+
|
|
726
|
+
### Issue 2: Special Characters
|
|
727
|
+
|
|
728
|
+
**Problem**: LaTeX compilation fails on special characters.
|
|
729
|
+
|
|
730
|
+
**Cause**:
|
|
731
|
+
- Accented characters (é, ü, ñ)
|
|
732
|
+
- Chemical formulas (H₂O)
|
|
733
|
+
- Math symbols (α, β, ±)
|
|
734
|
+
|
|
735
|
+
**Solution**:
|
|
736
|
+
```bibtex
|
|
737
|
+
% Use LaTeX commands
|
|
738
|
+
author = {M{\"u}ller, Hans} % Müller
|
|
739
|
+
title = {Study of H\textsubscript{2}O} % H₂O
|
|
740
|
+
% Or use UTF-8 with proper LaTeX packages
|
|
741
|
+
```
|
|
742
|
+
|
|
743
|
+
### Issue 3: Incomplete Extraction
|
|
744
|
+
|
|
745
|
+
**Problem**: Extracted metadata missing fields.
|
|
746
|
+
|
|
747
|
+
**Cause**:
|
|
748
|
+
- Source doesn't provide all metadata
|
|
749
|
+
- Extraction error
|
|
750
|
+
- Incomplete record
|
|
751
|
+
|
|
752
|
+
**Solution**:
|
|
753
|
+
1. Check original article
|
|
754
|
+
2. Manually add missing fields
|
|
755
|
+
3. Use alternative source (PubMed vs CrossRef)
|
|
756
|
+
|
|
757
|
+
### Issue 4: Cannot Find Duplicate
|
|
758
|
+
|
|
759
|
+
**Problem**: Same paper appears twice, not detected.
|
|
760
|
+
|
|
761
|
+
**Cause**:
|
|
762
|
+
- Different DOIs (should be rare)
|
|
763
|
+
- Different titles (abbreviated, typo)
|
|
764
|
+
- Different citation keys
|
|
765
|
+
|
|
766
|
+
**Solution**:
|
|
767
|
+
- Manual search for author + year
|
|
768
|
+
- Check for similar titles
|
|
769
|
+
- Remove manually
|
|
770
|
+
|
|
771
|
+
## Summary
|
|
772
|
+
|
|
773
|
+
Validation ensures citation quality:
|
|
774
|
+
|
|
775
|
+
✓ **Accuracy**: DOIs resolve, metadata correct
|
|
776
|
+
✓ **Completeness**: All required fields present
|
|
777
|
+
✓ **Consistency**: Proper formatting throughout
|
|
778
|
+
✓ **No duplicates**: Each paper cited once
|
|
779
|
+
✓ **Valid syntax**: BibTeX compiles without errors
|
|
780
|
+
|
|
781
|
+
**Always validate** before final submission!
|
|
782
|
+
|
|
783
|
+
Use automated tools:
|
|
784
|
+
```bash
|
|
785
|
+
python scripts/validate_citations.py references.bib
|
|
786
|
+
```
|
|
787
|
+
|
|
788
|
+
Follow workflow:
|
|
789
|
+
1. Extract metadata
|
|
790
|
+
2. Validate
|
|
791
|
+
3. Fix errors
|
|
792
|
+
4. Re-validate
|
|
793
|
+
5. Submit
|
|
794
|
+
|