@wentorai/research-plugins 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +204 -0
- package/curated/analysis/README.md +64 -0
- package/curated/domains/README.md +104 -0
- package/curated/literature/README.md +53 -0
- package/curated/research/README.md +62 -0
- package/curated/tools/README.md +87 -0
- package/curated/writing/README.md +61 -0
- package/index.ts +39 -0
- package/mcp-configs/academic-db/ChatSpatial.json +17 -0
- package/mcp-configs/academic-db/academia-mcp.json +17 -0
- package/mcp-configs/academic-db/academic-paper-explorer.json +17 -0
- package/mcp-configs/academic-db/academic-search-mcp-server.json +17 -0
- package/mcp-configs/academic-db/agentinterviews-mcp.json +17 -0
- package/mcp-configs/academic-db/all-in-mcp.json +17 -0
- package/mcp-configs/academic-db/apple-health-mcp.json +17 -0
- package/mcp-configs/academic-db/arxiv-latex-mcp.json +17 -0
- package/mcp-configs/academic-db/arxiv-mcp-server.json +17 -0
- package/mcp-configs/academic-db/bgpt-mcp.json +17 -0
- package/mcp-configs/academic-db/biomcp.json +17 -0
- package/mcp-configs/academic-db/biothings-mcp.json +17 -0
- package/mcp-configs/academic-db/catalysishub-mcp-server.json +17 -0
- package/mcp-configs/academic-db/clinicaltrialsgov-mcp-server.json +17 -0
- package/mcp-configs/academic-db/deep-research-mcp.json +17 -0
- package/mcp-configs/academic-db/dicom-mcp.json +17 -0
- package/mcp-configs/academic-db/enrichr-mcp-server.json +17 -0
- package/mcp-configs/academic-db/fec-mcp-server.json +17 -0
- package/mcp-configs/academic-db/fhir-mcp-server-themomentum.json +17 -0
- package/mcp-configs/academic-db/fhir-mcp.json +19 -0
- package/mcp-configs/academic-db/gget-mcp.json +17 -0
- package/mcp-configs/academic-db/google-researcher-mcp.json +17 -0
- package/mcp-configs/academic-db/idea-reality-mcp.json +17 -0
- package/mcp-configs/academic-db/legiscan-mcp.json +19 -0
- package/mcp-configs/academic-db/lex.json +17 -0
- package/mcp-configs/ai-platform/Adaptive-Graph-of-Thoughts-MCP-server.json +17 -0
- package/mcp-configs/ai-platform/ai-counsel.json +17 -0
- package/mcp-configs/ai-platform/atlas-mcp-server.json +17 -0
- package/mcp-configs/ai-platform/counsel-mcp.json +17 -0
- package/mcp-configs/ai-platform/cross-llm-mcp.json +17 -0
- package/mcp-configs/ai-platform/gptr-mcp.json +17 -0
- package/mcp-configs/browser/decipher-research-agent.json +17 -0
- package/mcp-configs/browser/deep-research.json +17 -0
- package/mcp-configs/browser/everything-claude-code.json +17 -0
- package/mcp-configs/browser/gpt-researcher.json +17 -0
- package/mcp-configs/browser/heurist-agent-framework.json +17 -0
- package/mcp-configs/data-platform/4everland-hosting-mcp.json +17 -0
- package/mcp-configs/data-platform/context-keeper.json +17 -0
- package/mcp-configs/data-platform/context7.json +19 -0
- package/mcp-configs/data-platform/contextstream-mcp.json +17 -0
- package/mcp-configs/data-platform/email-mcp.json +17 -0
- package/mcp-configs/note-knowledge/ApeRAG.json +17 -0
- package/mcp-configs/note-knowledge/In-Memoria.json +17 -0
- package/mcp-configs/note-knowledge/agent-memory.json +17 -0
- package/mcp-configs/note-knowledge/aimemo.json +17 -0
- package/mcp-configs/note-knowledge/biel-mcp.json +19 -0
- package/mcp-configs/note-knowledge/cognee.json +17 -0
- package/mcp-configs/note-knowledge/context-awesome.json +17 -0
- package/mcp-configs/note-knowledge/context-mcp.json +17 -0
- package/mcp-configs/note-knowledge/conversation-handoff-mcp.json +17 -0
- package/mcp-configs/note-knowledge/cortex.json +17 -0
- package/mcp-configs/note-knowledge/devrag.json +17 -0
- package/mcp-configs/note-knowledge/easy-obsidian-mcp.json +17 -0
- package/mcp-configs/note-knowledge/engram.json +17 -0
- package/mcp-configs/note-knowledge/gnosis-mcp.json +17 -0
- package/mcp-configs/note-knowledge/graphlit-mcp-server.json +19 -0
- package/mcp-configs/reference-mgr/arxiv-cli.json +17 -0
- package/mcp-configs/reference-mgr/arxiv-search-mcp.json +17 -0
- package/mcp-configs/reference-mgr/chiken.json +17 -0
- package/mcp-configs/reference-mgr/claude-scholar.json +17 -0
- package/mcp-configs/reference-mgr/devonthink-mcp.json +17 -0
- package/mcp-configs/registry.json +447 -0
- package/openclaw.plugin.json +21 -0
- package/package.json +61 -0
- package/skills/analysis/dataviz/color-accessibility-guide/SKILL.md +230 -0
- package/skills/analysis/dataviz/geospatial-viz-guide/SKILL.md +218 -0
- package/skills/analysis/dataviz/interactive-viz-guide/SKILL.md +287 -0
- package/skills/analysis/dataviz/network-visualization-guide/SKILL.md +195 -0
- package/skills/analysis/dataviz/publication-figures-guide/SKILL.md +238 -0
- package/skills/analysis/dataviz/python-dataviz-guide/SKILL.md +195 -0
- package/skills/analysis/econometrics/causal-inference-guide/SKILL.md +197 -0
- package/skills/analysis/econometrics/iv-regression-guide/SKILL.md +198 -0
- package/skills/analysis/econometrics/panel-data-guide/SKILL.md +274 -0
- package/skills/analysis/econometrics/robustness-checks/SKILL.md +250 -0
- package/skills/analysis/econometrics/stata-regression/SKILL.md +117 -0
- package/skills/analysis/econometrics/time-series-guide/SKILL.md +235 -0
- package/skills/analysis/statistics/bayesian-statistics-guide/SKILL.md +221 -0
- package/skills/analysis/statistics/hypothesis-testing-guide/SKILL.md +210 -0
- package/skills/analysis/statistics/meta-analysis-guide/SKILL.md +206 -0
- package/skills/analysis/statistics/nonparametric-tests-guide/SKILL.md +221 -0
- package/skills/analysis/statistics/power-analysis-guide/SKILL.md +240 -0
- package/skills/analysis/statistics/sem-guide/SKILL.md +231 -0
- package/skills/analysis/statistics/survival-analysis-guide/SKILL.md +195 -0
- package/skills/analysis/wrangling/missing-data-handling/SKILL.md +224 -0
- package/skills/analysis/wrangling/pandas-data-wrangling/SKILL.md +242 -0
- package/skills/analysis/wrangling/questionnaire-design-guide/SKILL.md +234 -0
- package/skills/analysis/wrangling/text-mining-guide/SKILL.md +225 -0
- package/skills/domains/ai-ml/computer-vision-guide/SKILL.md +213 -0
- package/skills/domains/ai-ml/deep-learning-papers-guide/SKILL.md +200 -0
- package/skills/domains/ai-ml/llm-evaluation-guide/SKILL.md +194 -0
- package/skills/domains/ai-ml/prompt-engineering-research/SKILL.md +233 -0
- package/skills/domains/ai-ml/reinforcement-learning-guide/SKILL.md +254 -0
- package/skills/domains/ai-ml/transformer-architecture-guide/SKILL.md +233 -0
- package/skills/domains/biomedical/clinical-research-guide/SKILL.md +232 -0
- package/skills/domains/biomedical/clinicaltrials-api/SKILL.md +177 -0
- package/skills/domains/biomedical/epidemiology-guide/SKILL.md +200 -0
- package/skills/domains/biomedical/genomics-analysis-guide/SKILL.md +270 -0
- package/skills/domains/business/market-analysis-guide/SKILL.md +112 -0
- package/skills/domains/business/strategic-management-guide/SKILL.md +154 -0
- package/skills/domains/chemistry/computational-chemistry-guide/SKILL.md +266 -0
- package/skills/domains/chemistry/retrosynthesis-guide/SKILL.md +215 -0
- package/skills/domains/cs/algorithms-complexity-guide/SKILL.md +194 -0
- package/skills/domains/cs/dblp-api/SKILL.md +129 -0
- package/skills/domains/cs/software-engineering-research/SKILL.md +218 -0
- package/skills/domains/ecology/biodiversity-data-guide/SKILL.md +296 -0
- package/skills/domains/ecology/conservation-biology-guide/SKILL.md +198 -0
- package/skills/domains/ecology/gbif-api/SKILL.md +158 -0
- package/skills/domains/ecology/inaturalist-api/SKILL.md +173 -0
- package/skills/domains/economics/behavioral-economics-guide/SKILL.md +239 -0
- package/skills/domains/economics/development-economics-guide/SKILL.md +181 -0
- package/skills/domains/economics/fred-api/SKILL.md +189 -0
- package/skills/domains/education/curriculum-design-guide/SKILL.md +144 -0
- package/skills/domains/education/learning-science-guide/SKILL.md +150 -0
- package/skills/domains/finance/financial-data-analysis/SKILL.md +152 -0
- package/skills/domains/finance/quantitative-finance-guide/SKILL.md +151 -0
- package/skills/domains/geoscience/climate-science-guide/SKILL.md +158 -0
- package/skills/domains/geoscience/gis-remote-sensing-guide/SKILL.md +129 -0
- package/skills/domains/humanities/digital-humanities-guide/SKILL.md +181 -0
- package/skills/domains/humanities/philosophy-research-guide/SKILL.md +148 -0
- package/skills/domains/law/courtlistener-api/SKILL.md +213 -0
- package/skills/domains/law/legal-research-guide/SKILL.md +250 -0
- package/skills/domains/math/linear-algebra-applications/SKILL.md +227 -0
- package/skills/domains/math/numerical-methods-guide/SKILL.md +236 -0
- package/skills/domains/math/oeis-api/SKILL.md +158 -0
- package/skills/domains/pharma/clinical-pharmacology-guide/SKILL.md +165 -0
- package/skills/domains/pharma/drug-development-guide/SKILL.md +177 -0
- package/skills/domains/physics/computational-physics-guide/SKILL.md +300 -0
- package/skills/domains/physics/nasa-ads-api/SKILL.md +150 -0
- package/skills/domains/physics/quantum-computing-guide/SKILL.md +234 -0
- package/skills/domains/social-science/social-research-methods/SKILL.md +194 -0
- package/skills/domains/social-science/survey-research-guide/SKILL.md +182 -0
- package/skills/literature/discovery/citation-alert-guide/SKILL.md +154 -0
- package/skills/literature/discovery/conference-proceedings-guide/SKILL.md +142 -0
- package/skills/literature/discovery/literature-mapping-guide/SKILL.md +175 -0
- package/skills/literature/discovery/paper-tracking-guide/SKILL.md +211 -0
- package/skills/literature/discovery/rss-paper-feeds/SKILL.md +214 -0
- package/skills/literature/discovery/semantic-scholar-recs-guide/SKILL.md +164 -0
- package/skills/literature/fulltext/doaj-api/SKILL.md +120 -0
- package/skills/literature/fulltext/interlibrary-loan-guide/SKILL.md +163 -0
- package/skills/literature/fulltext/open-access-guide/SKILL.md +183 -0
- package/skills/literature/fulltext/pmc-oai-api/SKILL.md +184 -0
- package/skills/literature/fulltext/preprint-servers-guide/SKILL.md +128 -0
- package/skills/literature/fulltext/repository-harvesting-guide/SKILL.md +207 -0
- package/skills/literature/fulltext/unpaywall-api/SKILL.md +113 -0
- package/skills/literature/metadata/altmetrics-guide/SKILL.md +132 -0
- package/skills/literature/metadata/citation-network-guide/SKILL.md +236 -0
- package/skills/literature/metadata/crossref-api/SKILL.md +133 -0
- package/skills/literature/metadata/datacite-api/SKILL.md +126 -0
- package/skills/literature/metadata/doi-resolution-guide/SKILL.md +168 -0
- package/skills/literature/metadata/h-index-guide/SKILL.md +183 -0
- package/skills/literature/metadata/journal-metrics-guide/SKILL.md +188 -0
- package/skills/literature/metadata/opencitations-api/SKILL.md +128 -0
- package/skills/literature/metadata/orcid-api/SKILL.md +136 -0
- package/skills/literature/metadata/orcid-integration-guide/SKILL.md +178 -0
- package/skills/literature/search/arxiv-api/SKILL.md +95 -0
- package/skills/literature/search/biorxiv-api/SKILL.md +123 -0
- package/skills/literature/search/boolean-search-guide/SKILL.md +199 -0
- package/skills/literature/search/citation-chaining-guide/SKILL.md +148 -0
- package/skills/literature/search/database-comparison-guide/SKILL.md +100 -0
- package/skills/literature/search/europe-pmc-api/SKILL.md +120 -0
- package/skills/literature/search/google-scholar-guide/SKILL.md +182 -0
- package/skills/literature/search/mesh-terms-guide/SKILL.md +164 -0
- package/skills/literature/search/openalex-api/SKILL.md +134 -0
- package/skills/literature/search/pubmed-api/SKILL.md +130 -0
- package/skills/literature/search/scientify-literature-survey/SKILL.md +203 -0
- package/skills/literature/search/semantic-scholar-api/SKILL.md +134 -0
- package/skills/literature/search/systematic-search-strategy/SKILL.md +214 -0
- package/skills/research/automation/ai-scientist-guide/SKILL.md +228 -0
- package/skills/research/automation/data-collection-automation/SKILL.md +248 -0
- package/skills/research/automation/research-workflow-automation/SKILL.md +266 -0
- package/skills/research/deep-research/meta-synthesis-guide/SKILL.md +174 -0
- package/skills/research/deep-research/research-cog/SKILL.md +153 -0
- package/skills/research/deep-research/scoping-review-guide/SKILL.md +217 -0
- package/skills/research/deep-research/systematic-review-guide/SKILL.md +250 -0
- package/skills/research/funding/figshare-api/SKILL.md +163 -0
- package/skills/research/funding/grant-writing-guide/SKILL.md +233 -0
- package/skills/research/funding/nsf-grant-guide/SKILL.md +206 -0
- package/skills/research/funding/open-science-guide/SKILL.md +255 -0
- package/skills/research/funding/zenodo-api/SKILL.md +174 -0
- package/skills/research/methodology/action-research-guide/SKILL.md +201 -0
- package/skills/research/methodology/experimental-design-guide/SKILL.md +236 -0
- package/skills/research/methodology/grad-school-guide/SKILL.md +182 -0
- package/skills/research/methodology/grounded-theory-guide/SKILL.md +171 -0
- package/skills/research/methodology/mixed-methods-guide/SKILL.md +208 -0
- package/skills/research/methodology/qualitative-research-guide/SKILL.md +234 -0
- package/skills/research/methodology/scientify-idea-generation/SKILL.md +222 -0
- package/skills/research/paper-review/paper-reading-assistant/SKILL.md +266 -0
- package/skills/research/paper-review/peer-review-guide/SKILL.md +227 -0
- package/skills/research/paper-review/rebuttal-writing-guide/SKILL.md +185 -0
- package/skills/research/paper-review/scientify-write-review-paper/SKILL.md +209 -0
- package/skills/tools/code-exec/jupyter-notebook-guide/SKILL.md +178 -0
- package/skills/tools/code-exec/python-reproducibility-guide/SKILL.md +341 -0
- package/skills/tools/code-exec/r-reproducibility-guide/SKILL.md +236 -0
- package/skills/tools/code-exec/sandbox-execution-guide/SKILL.md +221 -0
- package/skills/tools/diagram/mermaid-diagram-guide/SKILL.md +269 -0
- package/skills/tools/diagram/plantuml-guide/SKILL.md +397 -0
- package/skills/tools/diagram/scientific-illustration-guide/SKILL.md +225 -0
- package/skills/tools/document/anystyle-api/SKILL.md +199 -0
- package/skills/tools/document/grobid-pdf-parsing/SKILL.md +294 -0
- package/skills/tools/document/markdown-academic-guide/SKILL.md +217 -0
- package/skills/tools/document/pdf-extraction-guide/SKILL.md +321 -0
- package/skills/tools/knowledge-graph/knowledge-graph-construction/SKILL.md +306 -0
- package/skills/tools/knowledge-graph/ontology-design-guide/SKILL.md +214 -0
- package/skills/tools/knowledge-graph/rag-methodology-guide/SKILL.md +325 -0
- package/skills/tools/ocr-translate/formula-recognition-guide/SKILL.md +367 -0
- package/skills/tools/ocr-translate/handwriting-recognition-guide/SKILL.md +211 -0
- package/skills/tools/ocr-translate/latex-ocr-guide/SKILL.md +204 -0
- package/skills/tools/ocr-translate/multilingual-research-guide/SKILL.md +234 -0
- package/skills/tools/scraping/academic-web-scraping/SKILL.md +326 -0
- package/skills/tools/scraping/api-data-collection-guide/SKILL.md +301 -0
- package/skills/tools/scraping/web-scraping-ethics-guide/SKILL.md +250 -0
- package/skills/writing/citation/bibtex-management-guide/SKILL.md +246 -0
- package/skills/writing/citation/citation-style-guide/SKILL.md +248 -0
- package/skills/writing/citation/reference-manager-comparison/SKILL.md +208 -0
- package/skills/writing/citation/zotero-api/SKILL.md +188 -0
- package/skills/writing/composition/abstract-writing-guide/SKILL.md +188 -0
- package/skills/writing/composition/discussion-writing-guide/SKILL.md +194 -0
- package/skills/writing/composition/introduction-writing-guide/SKILL.md +194 -0
- package/skills/writing/composition/literature-review-writing/SKILL.md +196 -0
- package/skills/writing/composition/methods-section-guide/SKILL.md +185 -0
- package/skills/writing/composition/response-to-reviewers/SKILL.md +215 -0
- package/skills/writing/composition/scientific-writing-guide/SKILL.md +152 -0
- package/skills/writing/latex/bibliography-management-guide/SKILL.md +206 -0
- package/skills/writing/latex/latex-drawing-guide/SKILL.md +234 -0
- package/skills/writing/latex/latex-ecosystem-guide/SKILL.md +240 -0
- package/skills/writing/latex/math-typesetting-guide/SKILL.md +231 -0
- package/skills/writing/latex/overleaf-collaboration-guide/SKILL.md +211 -0
- package/skills/writing/latex/tikz-diagrams-guide/SKILL.md +211 -0
- package/skills/writing/polish/academic-translation-guide/SKILL.md +175 -0
- package/skills/writing/polish/academic-writing-refiner/SKILL.md +143 -0
- package/skills/writing/polish/ai-writing-humanizer/SKILL.md +178 -0
- package/skills/writing/polish/grammar-checker-guide/SKILL.md +184 -0
- package/skills/writing/polish/plagiarism-detection-guide/SKILL.md +167 -0
- package/skills/writing/templates/beamer-presentation-guide/SKILL.md +263 -0
- package/skills/writing/templates/conference-paper-template/SKILL.md +219 -0
- package/skills/writing/templates/thesis-template-guide/SKILL.md +200 -0
- package/skills/writing/templates/thesis-writing-guide/SKILL.md +220 -0
- package/src/tools/arxiv.ts +131 -0
- package/src/tools/crossref.ts +112 -0
- package/src/tools/openalex.ts +174 -0
- package/src/tools/pubmed.ts +166 -0
- package/src/tools/semantic-scholar.ts +108 -0
- package/src/tools/unpaywall.ts +58 -0
|
@@ -0,0 +1,397 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: plantuml-guide
|
|
3
|
+
description: "Create UML diagrams and architecture visualizations with PlantUML"
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
emoji: "diagram"
|
|
7
|
+
category: "tools"
|
|
8
|
+
subcategory: "diagram"
|
|
9
|
+
keywords: ["UML diagram", "PlantUML", "architecture diagram", "flow chart"]
|
|
10
|
+
source: "wentor-research-plugins"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# PlantUML Guide
|
|
14
|
+
|
|
15
|
+
Create UML diagrams, architecture visualizations, flowcharts, and other technical diagrams using PlantUML's text-based notation for reproducible, version-controllable diagrams.
|
|
16
|
+
|
|
17
|
+
## Getting Started
|
|
18
|
+
|
|
19
|
+
PlantUML generates diagrams from plain text descriptions. Diagrams are defined in `.puml` files and rendered to PNG, SVG, or PDF.
|
|
20
|
+
|
|
21
|
+
### Installation Options
|
|
22
|
+
|
|
23
|
+
| Method | Command / URL | Best For |
|
|
24
|
+
|--------|--------------|----------|
|
|
25
|
+
| VS Code extension | Install "PlantUML" by jebbs | IDE integration |
|
|
26
|
+
| CLI (Java JAR) | `java -jar plantuml.jar diagram.puml` | Batch processing |
|
|
27
|
+
| Online server | plantuml.com/plantuml | Quick prototyping |
|
|
28
|
+
| Docker | `docker run plantuml/plantuml-server` | Self-hosted server |
|
|
29
|
+
| Python | `pip install plantuml` | Python integration |
|
|
30
|
+
| Jupyter | `pip install iplantuml` | Notebook integration |
|
|
31
|
+
|
|
32
|
+
### Basic Syntax
|
|
33
|
+
|
|
34
|
+
```plantuml
|
|
35
|
+
@startuml
|
|
36
|
+
title My First Diagram
|
|
37
|
+
|
|
38
|
+
Alice -> Bob: Hello
|
|
39
|
+
Bob --> Alice: Hi there!
|
|
40
|
+
|
|
41
|
+
@enduml
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Sequence Diagrams
|
|
45
|
+
|
|
46
|
+
Model interactions between components over time:
|
|
47
|
+
|
|
48
|
+
```plantuml
|
|
49
|
+
@startuml
|
|
50
|
+
title Research Paper Submission Workflow
|
|
51
|
+
|
|
52
|
+
actor Author
|
|
53
|
+
participant "Submission\nSystem" as SS
|
|
54
|
+
participant "Editor" as Ed
|
|
55
|
+
participant "Reviewer 1" as R1
|
|
56
|
+
participant "Reviewer 2" as R2
|
|
57
|
+
|
|
58
|
+
Author -> SS: Submit manuscript
|
|
59
|
+
activate SS
|
|
60
|
+
SS -> Ed: Notify new submission
|
|
61
|
+
activate Ed
|
|
62
|
+
|
|
63
|
+
Ed -> SS: Assign reviewers
|
|
64
|
+
SS -> R1: Review request
|
|
65
|
+
SS -> R2: Review request
|
|
66
|
+
|
|
67
|
+
activate R1
|
|
68
|
+
activate R2
|
|
69
|
+
|
|
70
|
+
R1 -> SS: Submit review (Accept)
|
|
71
|
+
deactivate R1
|
|
72
|
+
R2 -> SS: Submit review (Minor revision)
|
|
73
|
+
deactivate R2
|
|
74
|
+
|
|
75
|
+
Ed -> SS: Decision: Minor revision
|
|
76
|
+
SS -> Author: Revision request
|
|
77
|
+
deactivate Ed
|
|
78
|
+
deactivate SS
|
|
79
|
+
|
|
80
|
+
Author -> SS: Submit revised manuscript
|
|
81
|
+
activate SS
|
|
82
|
+
SS -> Ed: Notify revision
|
|
83
|
+
Ed -> SS: Accept
|
|
84
|
+
SS -> Author: Acceptance notification
|
|
85
|
+
deactivate SS
|
|
86
|
+
|
|
87
|
+
@enduml
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## Class Diagrams
|
|
91
|
+
|
|
92
|
+
Model system structure and relationships:
|
|
93
|
+
|
|
94
|
+
```plantuml
|
|
95
|
+
@startuml
|
|
96
|
+
title Research Data Model
|
|
97
|
+
|
|
98
|
+
class Paper {
|
|
99
|
+
+id: UUID
|
|
100
|
+
+title: String
|
|
101
|
+
+abstract: String
|
|
102
|
+
+doi: String
|
|
103
|
+
+year: Integer
|
|
104
|
+
+venue: String
|
|
105
|
+
--
|
|
106
|
+
+getCitations(): List<Paper>
|
|
107
|
+
+getAuthors(): List<Author>
|
|
108
|
+
+getBibTeX(): String
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
class Author {
|
|
112
|
+
+id: UUID
|
|
113
|
+
+name: String
|
|
114
|
+
+orcid: String
|
|
115
|
+
+affiliation: String
|
|
116
|
+
+h_index: Integer
|
|
117
|
+
--
|
|
118
|
+
+getPapers(): List<Paper>
|
|
119
|
+
+getCoauthors(): List<Author>
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
class Dataset {
|
|
123
|
+
+id: UUID
|
|
124
|
+
+name: String
|
|
125
|
+
+doi: String
|
|
126
|
+
+license: String
|
|
127
|
+
+size_bytes: Long
|
|
128
|
+
--
|
|
129
|
+
+download(): File
|
|
130
|
+
+getCitation(): String
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
class Experiment {
|
|
134
|
+
+id: UUID
|
|
135
|
+
+description: String
|
|
136
|
+
+date: Date
|
|
137
|
+
+config: JSON
|
|
138
|
+
--
|
|
139
|
+
+run(): Results
|
|
140
|
+
+getMetrics(): Map
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
Paper "1" -- "*" Author : authored by >
|
|
144
|
+
Paper "1" -- "*" Dataset : uses >
|
|
145
|
+
Paper "1" -- "*" Experiment : contains >
|
|
146
|
+
Dataset "1" -- "*" Experiment : used in >
|
|
147
|
+
Paper "1" -- "*" Paper : cites >
|
|
148
|
+
|
|
149
|
+
@enduml
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
## Activity Diagrams (Flowcharts)
|
|
153
|
+
|
|
154
|
+
Model workflows and decision processes:
|
|
155
|
+
|
|
156
|
+
```plantuml
|
|
157
|
+
@startuml
|
|
158
|
+
title Systematic Review Screening Process
|
|
159
|
+
|
|
160
|
+
start
|
|
161
|
+
|
|
162
|
+
:Import records from databases;
|
|
163
|
+
:Remove duplicates;
|
|
164
|
+
|
|
165
|
+
:Screen title and abstract;
|
|
166
|
+
|
|
167
|
+
if (Meets inclusion criteria?) then (yes)
|
|
168
|
+
:Retrieve full text;
|
|
169
|
+
if (Full text available?) then (yes)
|
|
170
|
+
:Screen full text;
|
|
171
|
+
if (Meets all criteria?) then (yes)
|
|
172
|
+
:Include in review;
|
|
173
|
+
:Extract data;
|
|
174
|
+
if (Suitable for meta-analysis?) then (yes)
|
|
175
|
+
:Include in meta-analysis;
|
|
176
|
+
else (no)
|
|
177
|
+
:Include in narrative synthesis;
|
|
178
|
+
endif
|
|
179
|
+
else (no)
|
|
180
|
+
:Exclude with reason;
|
|
181
|
+
endif
|
|
182
|
+
else (no)
|
|
183
|
+
:Mark as unavailable;
|
|
184
|
+
endif
|
|
185
|
+
else (no)
|
|
186
|
+
:Exclude;
|
|
187
|
+
endif
|
|
188
|
+
|
|
189
|
+
:Compile PRISMA flow diagram;
|
|
190
|
+
stop
|
|
191
|
+
|
|
192
|
+
@enduml
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
## Component Diagrams
|
|
196
|
+
|
|
197
|
+
Model system architecture:
|
|
198
|
+
|
|
199
|
+
```plantuml
|
|
200
|
+
@startuml
|
|
201
|
+
title Research Platform Architecture
|
|
202
|
+
|
|
203
|
+
package "Web Frontend" {
|
|
204
|
+
[React SPA] as SPA
|
|
205
|
+
[Dashboard] as Dash
|
|
206
|
+
[Skills Browser] as Skills
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
package "API Gateway" {
|
|
210
|
+
[FastAPI Server] as API
|
|
211
|
+
[Auth Service] as Auth
|
|
212
|
+
[Rate Limiter] as RL
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
package "Backend Services" {
|
|
216
|
+
[Paper Search] as PS
|
|
217
|
+
[Citation Graph] as CG
|
|
218
|
+
[Skill Registry] as SR
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
package "Data Layer" {
|
|
222
|
+
database "PostgreSQL" as PG
|
|
223
|
+
database "Redis Cache" as Redis
|
|
224
|
+
database "Elasticsearch" as ES
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
package "External APIs" {
|
|
228
|
+
[Semantic Scholar] as S2
|
|
229
|
+
[CrossRef] as CR
|
|
230
|
+
[OpenAlex] as OA
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
SPA --> API : HTTPS
|
|
234
|
+
Dash --> API : HTTPS
|
|
235
|
+
Skills --> API : HTTPS
|
|
236
|
+
|
|
237
|
+
API --> Auth : validate token
|
|
238
|
+
API --> RL : check rate limit
|
|
239
|
+
API --> PS : search request
|
|
240
|
+
API --> CG : graph query
|
|
241
|
+
API --> SR : skill lookup
|
|
242
|
+
|
|
243
|
+
PS --> ES : full-text search
|
|
244
|
+
PS --> S2 : paper metadata
|
|
245
|
+
PS --> CR : DOI resolution
|
|
246
|
+
|
|
247
|
+
CG --> PG : citation data
|
|
248
|
+
CG --> OA : citation graph
|
|
249
|
+
|
|
250
|
+
SR --> PG : skill metadata
|
|
251
|
+
SR --> Redis : cache
|
|
252
|
+
|
|
253
|
+
@enduml
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
## State Diagrams
|
|
257
|
+
|
|
258
|
+
Model system states and transitions:
|
|
259
|
+
|
|
260
|
+
```plantuml
|
|
261
|
+
@startuml
|
|
262
|
+
title Paper Lifecycle States
|
|
263
|
+
|
|
264
|
+
[*] --> Draft
|
|
265
|
+
|
|
266
|
+
Draft --> Submitted : Author submits
|
|
267
|
+
Submitted --> UnderReview : Editor assigns reviewers
|
|
268
|
+
Submitted --> DeskRejected : Editor rejects
|
|
269
|
+
|
|
270
|
+
UnderReview --> RevisionRequired : Minor/Major revision
|
|
271
|
+
UnderReview --> Accepted : Accept as is
|
|
272
|
+
UnderReview --> Rejected : Reject
|
|
273
|
+
|
|
274
|
+
RevisionRequired --> UnderReview : Author resubmits
|
|
275
|
+
RevisionRequired --> Withdrawn : Author withdraws
|
|
276
|
+
|
|
277
|
+
Accepted --> InProduction : Copy editing
|
|
278
|
+
InProduction --> Published : Online first
|
|
279
|
+
Published --> [*]
|
|
280
|
+
|
|
281
|
+
DeskRejected --> [*]
|
|
282
|
+
Rejected --> [*]
|
|
283
|
+
Withdrawn --> [*]
|
|
284
|
+
|
|
285
|
+
@enduml
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
## Gantt Charts
|
|
289
|
+
|
|
290
|
+
Plan research timelines:
|
|
291
|
+
|
|
292
|
+
```plantuml
|
|
293
|
+
@startuml
|
|
294
|
+
title Research Project Timeline
|
|
295
|
+
|
|
296
|
+
Project starts 2025-01-01
|
|
297
|
+
|
|
298
|
+
[Literature Review] starts 2025-01-01 and lasts 8 weeks
|
|
299
|
+
[Research Design] starts at [Literature Review]'s end and lasts 4 weeks
|
|
300
|
+
[IRB Approval] starts at [Research Design]'s end and lasts 6 weeks
|
|
301
|
+
[Data Collection] starts at [IRB Approval]'s end and lasts 12 weeks
|
|
302
|
+
[Data Analysis] starts at [Data Collection]'s end and lasts 8 weeks
|
|
303
|
+
[Paper Writing] starts at [Data Analysis]'s end and lasts 10 weeks
|
|
304
|
+
[Peer Review] starts at [Paper Writing]'s end and lasts 12 weeks
|
|
305
|
+
[Revision] starts at [Peer Review]'s end and lasts 6 weeks
|
|
306
|
+
|
|
307
|
+
-- Milestones --
|
|
308
|
+
[Proposal Defense] happens at [Research Design]'s end
|
|
309
|
+
[Conference Presentation] happens at [Data Analysis]'s end
|
|
310
|
+
[Submission] happens at [Paper Writing]'s end
|
|
311
|
+
|
|
312
|
+
@enduml
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
## Mind Maps
|
|
316
|
+
|
|
317
|
+
Organize research topics:
|
|
318
|
+
|
|
319
|
+
```plantuml
|
|
320
|
+
@startmindmap
|
|
321
|
+
title Machine Learning Research Landscape
|
|
322
|
+
|
|
323
|
+
* Machine Learning
|
|
324
|
+
** Supervised Learning
|
|
325
|
+
*** Classification
|
|
326
|
+
**** SVM
|
|
327
|
+
**** Decision Trees
|
|
328
|
+
**** Neural Networks
|
|
329
|
+
*** Regression
|
|
330
|
+
**** Linear Regression
|
|
331
|
+
**** Gradient Boosting
|
|
332
|
+
** Unsupervised Learning
|
|
333
|
+
*** Clustering
|
|
334
|
+
**** K-Means
|
|
335
|
+
**** DBSCAN
|
|
336
|
+
*** Dimensionality Reduction
|
|
337
|
+
**** PCA
|
|
338
|
+
**** t-SNE
|
|
339
|
+
**** UMAP
|
|
340
|
+
** Reinforcement Learning
|
|
341
|
+
*** Model-Free
|
|
342
|
+
**** DQN
|
|
343
|
+
**** PPO
|
|
344
|
+
*** Model-Based
|
|
345
|
+
**** Dreamer
|
|
346
|
+
**** MuZero
|
|
347
|
+
** Deep Learning
|
|
348
|
+
*** CNNs
|
|
349
|
+
*** Transformers
|
|
350
|
+
*** GANs
|
|
351
|
+
*** Diffusion Models
|
|
352
|
+
|
|
353
|
+
@endmindmap
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
## Integration with LaTeX
|
|
357
|
+
|
|
358
|
+
```latex
|
|
359
|
+
\usepackage{plantuml}
|
|
360
|
+
|
|
361
|
+
\begin{plantuml}
|
|
362
|
+
@startuml
|
|
363
|
+
Alice -> Bob: Hello
|
|
364
|
+
Bob --> Alice: Hi
|
|
365
|
+
@enduml
|
|
366
|
+
\end{plantuml}
|
|
367
|
+
|
|
368
|
+
% Compile with: pdflatex -shell-escape paper.tex
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
## Integration with Markdown (Mermaid Alternative)
|
|
372
|
+
|
|
373
|
+
Many Markdown renderers (GitHub, GitLab, Notion) support Mermaid natively. PlantUML can be used via plugins or pre-rendering:
|
|
374
|
+
|
|
375
|
+
```python
|
|
376
|
+
# Pre-render PlantUML to SVG for Markdown embedding
|
|
377
|
+
import plantuml
|
|
378
|
+
|
|
379
|
+
server = plantuml.PlantUML(url="http://www.plantuml.com/plantuml/svg/")
|
|
380
|
+
svg_content = server.processes("""
|
|
381
|
+
@startuml
|
|
382
|
+
Alice -> Bob: Hello
|
|
383
|
+
@enduml
|
|
384
|
+
""")
|
|
385
|
+
|
|
386
|
+
with open("diagram.svg", "wb") as f:
|
|
387
|
+
f.write(svg_content)
|
|
388
|
+
```
|
|
389
|
+
|
|
390
|
+
## Best Practices
|
|
391
|
+
|
|
392
|
+
1. **Version control your diagrams**: Store `.puml` files alongside code/documentation in git.
|
|
393
|
+
2. **Use consistent styling**: Define skinparams at the top of each file for consistent colors and fonts.
|
|
394
|
+
3. **Keep diagrams focused**: One diagram per concept; split complex architectures into multiple views.
|
|
395
|
+
4. **Add legends and notes**: Use `note left of`, `note right of`, or `legend` blocks to clarify semantics.
|
|
396
|
+
5. **Automate rendering**: Include PlantUML rendering in CI/CD pipelines to keep documentation current.
|
|
397
|
+
6. **Export as SVG**: Prefer SVG over PNG for scalable diagrams in papers and presentations.
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: scientific-illustration-guide
|
|
3
|
+
description: "Create graphical abstracts, schematic diagrams, and scientific illustrations"
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
emoji: "crayon"
|
|
7
|
+
category: "tools"
|
|
8
|
+
subcategory: "diagram"
|
|
9
|
+
keywords: ["scientific illustration", "graphical abstract", "schematic diagram", "architecture diagram", "vector graphics"]
|
|
10
|
+
source: "wentor"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Scientific Illustration Guide
|
|
14
|
+
|
|
15
|
+
A skill for creating clear, professional scientific illustrations including graphical abstracts, schematic diagrams, workflow visualizations, and architecture diagrams. Covers both programmatic and design tool approaches.
|
|
16
|
+
|
|
17
|
+
## Graphical Abstract Design
|
|
18
|
+
|
|
19
|
+
### Composition Principles
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
Layout Guidelines for Graphical Abstracts:
|
|
23
|
+
- Dimensions: typically 500x300px to 1200x800px (check journal spec)
|
|
24
|
+
- Flow direction: left-to-right or top-to-bottom
|
|
25
|
+
- Maximum 5-7 visual elements
|
|
26
|
+
- Use arrows to show process flow
|
|
27
|
+
- Include 1-2 key data points or results
|
|
28
|
+
- Minimal text (30-50 words maximum)
|
|
29
|
+
- Consistent color scheme (3-4 colors)
|
|
30
|
+
|
|
31
|
+
Structure:
|
|
32
|
+
[Input/Problem] --> [Method/Process] --> [Output/Finding]
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Programmatic Diagrams with Python
|
|
36
|
+
|
|
37
|
+
```python
|
|
38
|
+
import matplotlib.pyplot as plt
|
|
39
|
+
import matplotlib.patches as patches
|
|
40
|
+
from matplotlib.patches import FancyBboxPatch, FancyArrowPatch
|
|
41
|
+
|
|
42
|
+
def create_workflow_diagram(steps: list[dict], output: str = 'workflow.pdf'):
|
|
43
|
+
"""
|
|
44
|
+
Create a horizontal workflow diagram.
|
|
45
|
+
|
|
46
|
+
Args:
|
|
47
|
+
steps: List of dicts with 'label', 'color', and optional 'sublabel'
|
|
48
|
+
output: Output file path
|
|
49
|
+
"""
|
|
50
|
+
fig, ax = plt.subplots(figsize=(12, 3))
|
|
51
|
+
n = len(steps)
|
|
52
|
+
box_width = 0.12
|
|
53
|
+
gap = (1 - n * box_width) / (n + 1)
|
|
54
|
+
|
|
55
|
+
for i, step in enumerate(steps):
|
|
56
|
+
x = gap + i * (box_width + gap)
|
|
57
|
+
y = 0.3
|
|
58
|
+
|
|
59
|
+
# Draw box
|
|
60
|
+
box = FancyBboxPatch(
|
|
61
|
+
(x, y), box_width, 0.4,
|
|
62
|
+
boxstyle="round,pad=0.01",
|
|
63
|
+
facecolor=step.get('color', '#3B82F6'),
|
|
64
|
+
edgecolor='#1E293B',
|
|
65
|
+
linewidth=1.5,
|
|
66
|
+
alpha=0.9
|
|
67
|
+
)
|
|
68
|
+
ax.add_patch(box)
|
|
69
|
+
|
|
70
|
+
# Add label
|
|
71
|
+
ax.text(x + box_width/2, y + 0.2, step['label'],
|
|
72
|
+
ha='center', va='center', fontsize=9,
|
|
73
|
+
fontweight='bold', color='white')
|
|
74
|
+
|
|
75
|
+
if 'sublabel' in step:
|
|
76
|
+
ax.text(x + box_width/2, y - 0.08, step['sublabel'],
|
|
77
|
+
ha='center', va='center', fontsize=7, color='#475569')
|
|
78
|
+
|
|
79
|
+
# Draw arrow to next step
|
|
80
|
+
if i < n - 1:
|
|
81
|
+
ax.annotate('', xy=(x + box_width + gap*0.2, 0.5),
|
|
82
|
+
xytext=(x + box_width + gap*0.8, 0.5),
|
|
83
|
+
arrowprops=dict(arrowstyle='->', color='#64748B',
|
|
84
|
+
lw=1.5))
|
|
85
|
+
|
|
86
|
+
ax.set_xlim(0, 1)
|
|
87
|
+
ax.set_ylim(0, 1)
|
|
88
|
+
ax.axis('off')
|
|
89
|
+
fig.savefig(output, dpi=300, bbox_inches='tight',
|
|
90
|
+
facecolor='white', edgecolor='none')
|
|
91
|
+
plt.close()
|
|
92
|
+
return output
|
|
93
|
+
|
|
94
|
+
# Example: research pipeline
|
|
95
|
+
steps = [
|
|
96
|
+
{'label': 'Data\nCollection', 'color': '#3B82F6', 'sublabel': 'N=1,200'},
|
|
97
|
+
{'label': 'Preprocessing', 'color': '#6366F1', 'sublabel': 'QC + Filtering'},
|
|
98
|
+
{'label': 'Analysis', 'color': '#8B5CF6', 'sublabel': 'ML Pipeline'},
|
|
99
|
+
{'label': 'Validation', 'color': '#A855F7', 'sublabel': 'Cross-validation'},
|
|
100
|
+
{'label': 'Results', 'color': '#EC4899', 'sublabel': 'AUC = 0.92'}
|
|
101
|
+
]
|
|
102
|
+
create_workflow_diagram(steps, 'research_pipeline.pdf')
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## Schematic Diagrams
|
|
106
|
+
|
|
107
|
+
### System Architecture Diagrams
|
|
108
|
+
|
|
109
|
+
```python
|
|
110
|
+
import matplotlib.pyplot as plt
|
|
111
|
+
from matplotlib.patches import FancyBboxPatch, FancyArrowPatch
|
|
112
|
+
|
|
113
|
+
def create_architecture_diagram(components: list[dict],
|
|
114
|
+
connections: list[tuple],
|
|
115
|
+
output: str = 'architecture.pdf'):
|
|
116
|
+
"""
|
|
117
|
+
Create a system architecture diagram.
|
|
118
|
+
|
|
119
|
+
Args:
|
|
120
|
+
components: List of {'name', 'x', 'y', 'width', 'height', 'color', 'type'}
|
|
121
|
+
connections: List of (source_name, target_name, label) tuples
|
|
122
|
+
"""
|
|
123
|
+
fig, ax = plt.subplots(figsize=(10, 7))
|
|
124
|
+
|
|
125
|
+
# Draw components
|
|
126
|
+
comp_positions = {}
|
|
127
|
+
for comp in components:
|
|
128
|
+
x, y = comp['x'], comp['y']
|
|
129
|
+
w, h = comp.get('width', 1.5), comp.get('height', 0.8)
|
|
130
|
+
color = comp.get('color', '#3B82F6')
|
|
131
|
+
|
|
132
|
+
if comp.get('type') == 'database':
|
|
133
|
+
# Cylinder shape for databases
|
|
134
|
+
ellipse_h = 0.15
|
|
135
|
+
ax.add_patch(patches.Rectangle((x, y), w, h-ellipse_h,
|
|
136
|
+
facecolor=color, edgecolor='#1E293B', linewidth=1.2))
|
|
137
|
+
ax.add_patch(patches.Ellipse((x+w/2, y+h-ellipse_h), w, ellipse_h*2,
|
|
138
|
+
facecolor=color, edgecolor='#1E293B', linewidth=1.2))
|
|
139
|
+
ax.add_patch(patches.Ellipse((x+w/2, y), w, ellipse_h*2,
|
|
140
|
+
facecolor=color, edgecolor='#1E293B', linewidth=1.2))
|
|
141
|
+
else:
|
|
142
|
+
box = FancyBboxPatch((x, y), w, h,
|
|
143
|
+
boxstyle="round,pad=0.05",
|
|
144
|
+
facecolor=color, edgecolor='#1E293B',
|
|
145
|
+
linewidth=1.2, alpha=0.9)
|
|
146
|
+
ax.add_patch(box)
|
|
147
|
+
|
|
148
|
+
ax.text(x + w/2, y + h/2, comp['name'],
|
|
149
|
+
ha='center', va='center', fontsize=10,
|
|
150
|
+
fontweight='bold', color='white')
|
|
151
|
+
|
|
152
|
+
comp_positions[comp['name']] = (x + w/2, y + h/2, w, h)
|
|
153
|
+
|
|
154
|
+
# Draw connections
|
|
155
|
+
for src, tgt, label in connections:
|
|
156
|
+
sx, sy, sw, sh = comp_positions[src]
|
|
157
|
+
tx, ty, tw, th = comp_positions[tgt]
|
|
158
|
+
|
|
159
|
+
ax.annotate('', xy=(tx, ty + th/2 if sy > ty else ty - th/2),
|
|
160
|
+
xytext=(sx, sy - sh/2 if sy > ty else sy + sh/2),
|
|
161
|
+
arrowprops=dict(arrowstyle='->', color='#64748B',
|
|
162
|
+
lw=1.5, connectionstyle='arc3,rad=0.1'))
|
|
163
|
+
|
|
164
|
+
mid_x = (sx + tx) / 2
|
|
165
|
+
mid_y = (sy + ty) / 2
|
|
166
|
+
if label:
|
|
167
|
+
ax.text(mid_x + 0.1, mid_y, label, fontsize=7, color='#475569')
|
|
168
|
+
|
|
169
|
+
ax.set_xlim(-0.5, 10)
|
|
170
|
+
ax.set_ylim(-0.5, 8)
|
|
171
|
+
ax.set_aspect('equal')
|
|
172
|
+
ax.axis('off')
|
|
173
|
+
fig.savefig(output, dpi=300, bbox_inches='tight',
|
|
174
|
+
facecolor='white')
|
|
175
|
+
plt.close()
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
## Vector Graphics with Drawio
|
|
179
|
+
|
|
180
|
+
For complex diagrams, use draw.io (diagrams.net) which exports to SVG, PDF, and PNG:
|
|
181
|
+
|
|
182
|
+
```xml
|
|
183
|
+
<!-- Example draw.io XML structure -->
|
|
184
|
+
<mxGraphModel>
|
|
185
|
+
<root>
|
|
186
|
+
<mxCell id="0"/>
|
|
187
|
+
<mxCell id="1" parent="0"/>
|
|
188
|
+
<mxCell id="2" value="Data Source" style="rounded=1;fillColor=#3B82F6;
|
|
189
|
+
fontColor=#FFFFFF;strokeColor=#1E40AF;" vertex="1" parent="1">
|
|
190
|
+
<mxGeometry x="80" y="80" width="120" height="60" as="geometry"/>
|
|
191
|
+
</mxCell>
|
|
192
|
+
</root>
|
|
193
|
+
</mxGraphModel>
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
### Recommended Tools by Diagram Type
|
|
197
|
+
|
|
198
|
+
| Diagram Type | Best Tool | Output Format | Learning Curve |
|
|
199
|
+
|-------------|-----------|---------------|----------------|
|
|
200
|
+
| Flowcharts | draw.io / Mermaid | SVG, PDF | Low |
|
|
201
|
+
| Molecular structures | ChemDraw / RDKit | SVG, PNG | Medium |
|
|
202
|
+
| Biological pathways | BioRender / KEGG | PNG, SVG | Low |
|
|
203
|
+
| Network graphs | Cytoscape / NetworkX | SVG, PDF | Medium |
|
|
204
|
+
| 3D protein structures | PyMOL / ChimeraX | PNG, TIFF | High |
|
|
205
|
+
| Circuit diagrams | KiCad / CircuiTikZ | PDF, SVG | Medium |
|
|
206
|
+
| Math diagrams | TikZ/PGF | PDF | High |
|
|
207
|
+
| UML diagrams | PlantUML / Mermaid | SVG, PNG | Low |
|
|
208
|
+
|
|
209
|
+
## Color and Accessibility
|
|
210
|
+
|
|
211
|
+
Use colorblind-safe palettes consistently. The key rules:
|
|
212
|
+
|
|
213
|
+
1. Never use red and green together to encode different categories
|
|
214
|
+
2. Use both color and shape/pattern to distinguish elements
|
|
215
|
+
3. Ensure sufficient contrast (WCAG AA: 4.5:1 ratio for text)
|
|
216
|
+
4. Test your diagram in grayscale to verify it remains interpretable
|
|
217
|
+
5. Label elements directly rather than relying solely on a color legend
|
|
218
|
+
|
|
219
|
+
## Export and Journal Compliance
|
|
220
|
+
|
|
221
|
+
- Export vector formats (SVG, PDF, EPS) for line art and diagrams
|
|
222
|
+
- Minimum 300 DPI for raster elements within diagrams
|
|
223
|
+
- Embed fonts or convert text to paths in final SVG/PDF
|
|
224
|
+
- Check journal-specific requirements for graphical abstract dimensions and file size
|
|
225
|
+
- Name files following journal convention (e.g., "Figure_1.pdf", "graphical_abstract.tiff")
|