Scientific Schematics Complete
Enterprise-grade skill for create, publication, quality, scientific. Includes structured workflows, validation checks, and reusable patterns for scientific.
Scientific Schematics Complete
Create professional scientific diagrams, flowcharts, and schematics for research publications and presentations. This skill covers molecular diagrams, experimental workflows, pathway illustrations, equipment setups, and automated figure generation using Python drawing libraries.
When to Use This Skill
Choose Scientific Schematics Complete when you need to:
- Generate experimental workflow diagrams for methods sections
- Create molecular or cellular schematics for biology papers
- Build equipment setup diagrams for reproducibility
- Automate generation of standardized figure panels for publications
Consider alternatives when:
- You need data visualization charts (use matplotlib or Plotly)
- You need interactive web diagrams (use D3.js or Mermaid)
- You need 3D molecular visualizations (use PyMOL or ChimeraX)
Quick Start
pip install matplotlib numpy schemdraw
import matplotlib.pyplot as plt import matplotlib.patches as mpatches from matplotlib.patches import FancyBboxPatch, FancyArrowPatch def create_workflow_diagram(): """Create a simple experimental workflow diagram.""" fig, ax = plt.subplots(figsize=(12, 4)) ax.set_xlim(0, 12) ax.set_ylim(0, 4) ax.axis("off") steps = [ ("Sample\nCollection", 1, "#3498DB"), ("RNA\nExtraction", 3.5, "#2ECC71"), ("Library\nPrep", 6, "#E74C3C"), ("Sequencing", 8.5, "#9B59B6"), ("Analysis", 11, "#F39C12") ] for label, x, color in steps: box = FancyBboxPatch( (x - 0.9, 1.2), 1.8, 1.6, boxstyle="round,pad=0.1", facecolor=color, edgecolor="white", alpha=0.85, linewidth=2 ) ax.add_patch(box) ax.text(x, 2, label, ha="center", va="center", fontsize=10, fontweight="bold", color="white") # Arrows between steps for i in range(len(steps) - 1): ax.annotate("", xy=(steps[i+1][1] - 0.9, 2), xytext=(steps[i][1] + 0.9, 2), arrowprops=dict(arrowstyle="->", lw=2, color="#333")) ax.set_title("RNA-seq Experimental Workflow", fontsize=14, fontweight="bold", pad=20) fig.tight_layout() fig.savefig("workflow.png", dpi=300, bbox_inches="tight") create_workflow_diagram()
Core Concepts
Diagram Types for Research
| Diagram Type | Use Case | Tools |
|---|---|---|
| Workflow/Pipeline | Methods section | matplotlib, diagrams |
| Molecular pathway | Biology papers | matplotlib, BioRender-style |
| Circuit schematic | Engineering papers | schemdraw |
| Equipment setup | Experimental methods | matplotlib, TikZ |
| Data flow | Computational methods | matplotlib, graphviz |
| Statistical design | Study design | matplotlib |
Complex Pathway Diagram
import matplotlib.pyplot as plt import matplotlib.patches as mpatches import numpy as np def create_signaling_pathway(): """Create a cell signaling pathway diagram.""" fig, ax = plt.subplots(figsize=(10, 8)) ax.set_xlim(0, 10) ax.set_ylim(0, 10) ax.axis("off") # Cell membrane ax.plot([1, 9], [7, 7], "k-", linewidth=3) ax.text(5, 7.3, "Cell Membrane", ha="center", fontsize=10, fontstyle="italic") # Components components = { "Ligand": (5, 8.5, "#E74C3C", "circle"), "Receptor": (5, 7, "#3498DB", "rect"), "Kinase A": (5, 5.5, "#2ECC71", "rect"), "Kinase B": (5, 4, "#F39C12", "rect"), "TF": (5, 2.5, "#9B59B6", "rect"), "Gene\nExpression": (5, 1, "#1ABC9C", "rect"), } for name, (x, y, color, shape) in components.items(): if shape == "circle": circle = plt.Circle((x, y), 0.4, fc=color, ec="white", lw=2) ax.add_patch(circle) else: rect = FancyBboxPatch( (x - 0.8, y - 0.3), 1.6, 0.6, boxstyle="round,pad=0.1", fc=color, ec="white", lw=2 ) ax.add_patch(rect) ax.text(x, y, name, ha="center", va="center", fontsize=9, fontweight="bold", color="white") # Arrows (signaling cascade) positions = [(5, 8.1), (5, 6.7), (5, 5.2), (5, 3.7), (5, 2.2)] for i in range(len(positions) - 1): ax.annotate("", xy=positions[i+1], xytext=positions[i], arrowprops=dict(arrowstyle="-|>", lw=2, color="#333", connectionstyle="arc3,rad=0")) # Phosphorylation labels ax.text(5.8, 5.8, "P", fontsize=8, fontweight="bold", color="#E74C3C", bbox=dict(fc="white", ec="#E74C3C", boxstyle="circle")) ax.text(5.8, 4.3, "P", fontsize=8, fontweight="bold", color="#E74C3C", bbox=dict(fc="white", ec="#E74C3C", boxstyle="circle")) ax.set_title("MAPK Signaling Pathway", fontsize=14, fontweight="bold") fig.savefig("pathway.png", dpi=300, bbox_inches="tight") create_signaling_pathway()
Configuration
| Parameter | Description | Default |
|---|---|---|
figure_width | Diagram width in inches | 10 |
figure_height | Diagram height in inches | 8 |
dpi | Output resolution | 300 |
color_scheme | Color palette for components | Professional palette |
font_family | Font for labels | "Arial" |
arrow_style | Arrow head style | "-|>" |
Best Practices
-
Use consistent color coding across figures — Assign colors to categories (e.g., blue=proteins, green=metabolites, red=inhibitors) and maintain this coding across all figures in a paper. Include a legend if the coding isn't self-explanatory.
-
Simplify to the essential information — A schematic should highlight the key message, not replicate every biological detail. Include only components directly relevant to your findings. Over-detailed diagrams obscure the important relationships.
-
Maintain publication figure standards — Use 300 DPI minimum, vector formats (SVG, PDF) when possible, and ensure all text is readable at the final printed size (minimum 6pt font). Match the journal's figure width guidelines (single column: ~3.5", double column: ~7").
-
Label all components clearly — Every shape, arrow, and symbol should be identifiable. Use a combination of in-diagram labels and a figure legend. Abbreviations must be defined in the legend.
-
Use standard scientific symbols and conventions — Follow field conventions: arrowheads for activation, flat-ended lines for inhibition, dashed lines for indirect effects, P-in-circle for phosphorylation. Non-standard symbols confuse readers familiar with the conventions.
Common Issues
Diagram elements overlap or crowd each other — Calculate positions algorithmically rather than hardcoding. Space components evenly using np.linspace and leave at least 20% whitespace. If the diagram is too dense, split into sub-panels or simplify.
Text in diagrams is too small when printed — Font sizes that look fine on a monitor (10pt) become illegible when the figure is shrunk to fit a journal column. Set minimum font size to 8pt at final figure dimensions, and verify readability by printing at actual size.
Colors are indistinguishable in grayscale — Some journals print in grayscale. Use patterns (hatching, line styles) in addition to color, or choose colors with different lightness values that remain distinct in grayscale. Test by converting your figure to grayscale.
Reviews
No reviews yet. Be the first to review this template!
Similar Templates
Full-Stack Code Reviewer
Comprehensive code review skill that checks for security vulnerabilities, performance issues, accessibility, and best practices across frontend and backend code.
Test Suite Generator
Generates comprehensive test suites with unit tests, integration tests, and edge cases. Supports Jest, Vitest, Pytest, and Go testing.
Pro Architecture Workspace
Battle-tested skill for architectural, decision, making, framework. Includes structured workflows, validation checks, and reusable patterns for development.