Synapse and there classification anatomical,physiological,functional,chemical,morphological

Reading File
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Reading File
Reading File
Reading File
Reading File
Reading File
Finding Sources
Reading File
Reading File
Loading Image
Loading Image
Finding Sources
Finding Sources
I now have comprehensive information from multiple authoritative textbooks. Let me compile the full detailed answer.

Synapse and Its Classification

A synapse is the specialized junction where a neuron makes contact with and transmits information to another neuron, muscle fiber, or gland cell. The term was coined by Charles Sherrington in 1897, derived from the Greek word meaning "to clasp." It consists of three core components: the presynaptic terminal (source of signal), the synaptic cleft (200-300 Å wide gap), and the postsynaptic membrane (receptor surface).

1. Anatomical Classification (by location of contact)

This is based on which part of the postsynaptic neuron the presynaptic axon terminal contacts.
Three types of synapses: axosomatic, axodendritic, and axoaxonic

a) Axodendritic Synapse

  • The axon terminal of the presynaptic neuron synapses onto the dendrite of the postsynaptic neuron.
  • The most common type in the CNS.
  • Often associated with dendritic spines, which are small projections that increase synaptic surface area and are closely linked to learning and memory.
  • Typically carries excitatory signals.

b) Axosomatic Synapse

  • The axon terminal contacts the cell body (soma) of the postsynaptic neuron.
  • Often carries inhibitory signals (e.g., basket cells in the cerebellum synapsing onto Purkinje cell bodies).
  • Located closer to the axon hillock, making these synapses highly influential over whether the postsynaptic neuron fires.

c) Axoaxonic Synapse

  • The axon terminal synapses onto the axon (usually the axon hillock or terminal) of another neuron.
  • Acts to modulate the effect of other synapses - can cause presynaptic inhibition or facilitation.
  • Less common, but physiologically important for fine-tuning neural output.
Other less common anatomical types include: dendrodendritic (dendrite-to-dendrite), somatodendritic, and somatosomatic synapses.
Sources: Histology: A Text and Atlas, p. 930; Junqueira's Basic Histology, p. 428

2. Physiological Classification (by effect on postsynaptic membrane)

a) Excitatory Synapse

  • Releases excitatory neurotransmitters (e.g., glutamate, acetylcholine).
  • Causes depolarization of the postsynaptic membrane.
  • Generates an Excitatory Postsynaptic Potential (EPSP) - a local, graded depolarization.
  • Increases permeability to Na⁺ and other cations.
  • Moves the membrane potential toward (or past) the action potential threshold.

b) Inhibitory Synapse

  • Releases inhibitory neurotransmitters (e.g., GABA, glycine).
  • Causes hyperpolarization of the postsynaptic membrane.
  • Generates an Inhibitory Postsynaptic Potential (IPSP).
  • Increases permeability to K⁺ or Cl⁻, making the inside of the cell more negative.
  • Moves the membrane potential away from the action potential threshold.
The decision to fire an action potential is based on the summation (temporal + spatial) of hundreds or thousands of EPSPs and IPSPs arriving simultaneously at the postsynaptic neuron.
Source: Guyton and Hall Textbook of Medical Physiology, p. 569

3. Functional (Structural) Classification

Electrical vs. Chemical synapse - detailed structure

a) Electrical Synapse

FeatureDetail
StructureGap junctions formed by connexin proteins; two connexons form one gap junction channel
Cleft gapOnly ~3 nm
DirectionMostly bidirectional
SpeedVery fast - nearly no delay
SignalIonic current passes directly from cell to cell
ReliabilityNear fail-safe if synapse is large
ExamplesInferior olivary neurons (motor coordination), hypothalamic hormone-secreting neurons, cardiac muscle, smooth muscle
FunctionSynchronizes activity of large neuronal populations

b) Chemical Synapse

FeatureDetail
StructurePresynaptic terminal with synaptic vesicles, synaptic cleft (200-300 Å), postsynaptic membrane with receptors
Cleft gap200-300 Å
DirectionUnidirectional (pre → post)
SpeedSynaptic delay (~0.5 ms) due to chemical intermediary
SignalNeurotransmitter released from vesicles, diffuses across cleft, binds receptors
AmplificationSmall presynaptic signal can produce large postsynaptic response
ExamplesVast majority of CNS and PNS synapses
Although most synapses in the brain are chemical, electrical and chemical synapses can coexist and interact in the CNS. - Guyton and Hall, p. 568
Source: Neuroscience: Exploring the Brain, 5th Ed., pp. 391-396

4. Chemical Classification (by neurotransmitter)

Synapses are classified by the neurotransmitter released from the presynaptic terminal:
CategoryNeurotransmitter(s)Example Locations
CholinergicAcetylcholine (ACh)Neuromuscular junction, autonomic ganglia, CNS
GlutamatergicGlutamateMost excitatory CNS synapses
GABAergicGABA (γ-aminobutyric acid)Most inhibitory CNS synapses
GlycinergicGlycineInhibitory synapses in spinal cord, brainstem
DopaminergicDopamineSubstantia nigra, mesolimbic pathway
SerotonergicSerotonin (5-HT)Raphe nuclei, mood regulation
NoradrenergicNorepinephrineLocus coeruleus, sympathetic system
PeptidergicSubstance P, endorphins, neuropeptide YWidespread; often co-released
PurinergicATP, adenosineCNS, autonomic system
Different receptors and second-messenger systems exist for the same transmitter, greatly multiplying the possible downstream effects. - Junqueira's Basic Histology, p. 429

5. Morphological Classification (Gray's Types)

Based on electron microscopy, E.G. Gray (1959) classified synapses by the thickness of presynaptic and postsynaptic densities and the shape of synaptic vesicles:

Gray Type I (Asymmetric)

  • Prominent postsynaptic density (the postsynaptic membrane is thicker than the presynaptic).
  • Round synaptic vesicles.
  • Wider synaptic cleft (~30 nm).
  • Located predominantly on dendritic spines and shafts (axodendritic).
  • Generally excitatory in function.

Gray Type II (Symmetric)

  • Equal density on both pre- and postsynaptic membranes (symmetric).
  • Flattened or pleomorphic synaptic vesicles.
  • Narrower synaptic cleft (~20 nm).
  • Located predominantly on cell bodies and axon hillock (axosomatic, axoaxonic).
  • Generally inhibitory in function.
Presynaptic terminals have varied anatomical forms, but most resemble small round or oval knobs and are called terminal knobs, boutons, end-feet, or synaptic knobs. - Guyton and Hall, p. 569

Summary Table

ClassificationTypes
AnatomicalAxodendritic, Axosomatic, Axoaxonic (+ dendrodendritic, etc.)
PhysiologicalExcitatory (EPSP), Inhibitory (IPSP)
FunctionalElectrical (gap junctions), Chemical (neurotransmitter-mediated)
ChemicalCholinergic, Glutamatergic, GABAergic, Dopaminergic, Serotonergic, etc.
MorphologicalGray Type I (asymmetric, excitatory), Gray Type II (symmetric, inhibitory)

Key sources:
  • Guyton and Hall Textbook of Medical Physiology, pp. 568-570
  • Neuroscience: Exploring the Brain, 5th Ed., pp. 391-396
  • Histology: A Text and Atlas (Eroschenko), pp. 929-931
  • Junqueira's Basic Histology, pp. 427-429

Make this pdf format

Reading File
Running Command

ls -la /home/daytona/workspace/ 2>/dev/null || mkdir -p /home/daytona/workspace

Running Command

mkdir -p /home/daytona/workspace/synapse-pdf && python3 -c "from reportlab.platypus import SimpleDocTemplate; print('reportlab ok')" && python3 -c "from PIL import Image; import requests; print('ok')"

Writing File

~/synapse-pdf/build_pdf.py

import requests
import os
from io import BytesIO
from reportlab.platypus import (
    SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
    HRFlowable, Image as RLImage, KeepTogether
)
from reportlab.lib.pagesizes import A4
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import cm, mm
from reportlab.lib import colors
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
from reportlab.platypus import PageBreak

OUTPUT = "/home/daytona/workspace/synapse-pdf/Synapse_Classification.pdf"

# ── Download images ──────────────────────────────────────────────────────────
IMG_URLS = {
    "anatomical": "https://cdn.orris.care/cdss_images/19769af8652d4cdcc2a503ea5e8ea86c7a0ea8f621c4fd39abf7ac476ae7c0b8.png",
    "elec_chem":  "https://cdn.orris.care/cdss_images/504ae477f587824fab304dce8fa05afc8f79d41006508d9203ebf92a707b8185.png",
}

def fetch_img(url, name):
    path = f"/home/daytona/workspace/synapse-pdf/{name}.png"
    if not os.path.exists(path):
        r = requests.get(url, timeout=20)
        with open(path, "wb") as f:
            f.write(r.content)
    return path

img_paths = {k: fetch_img(v, k) for k, v in IMG_URLS.items()}

# ── Styles ───────────────────────────────────────────────────────────────────
W, H = A4
styles = getSampleStyleSheet()

BLUE   = colors.HexColor("#1a3a5c")
LBLUE  = colors.HexColor("#2e6da4")
TEAL   = colors.HexColor("#17a589")
LTEAL  = colors.HexColor("#d0f0eb")
LGREY  = colors.HexColor("#f4f6f8")
DGREY  = colors.HexColor("#5d6d7e")
WHITE  = colors.white
ACCENT = colors.HexColor("#e8f4fd")

title_style = ParagraphStyle("Title", parent=styles["Normal"],
    fontSize=26, textColor=WHITE, fontName="Helvetica-Bold",
    alignment=TA_CENTER, spaceAfter=4)

subtitle_style = ParagraphStyle("Subtitle", parent=styles["Normal"],
    fontSize=13, textColor=colors.HexColor("#d6eaf8"),
    fontName="Helvetica", alignment=TA_CENTER, spaceAfter=0)

h1 = ParagraphStyle("H1", parent=styles["Normal"],
    fontSize=15, textColor=WHITE, fontName="Helvetica-Bold",
    spaceBefore=10, spaceAfter=6, leftIndent=0)

h2 = ParagraphStyle("H2", parent=styles["Normal"],
    fontSize=12, textColor=LBLUE, fontName="Helvetica-Bold",
    spaceBefore=8, spaceAfter=4, leftIndent=0)

body = ParagraphStyle("Body", parent=styles["Normal"],
    fontSize=10, textColor=colors.HexColor("#2c3e50"),
    fontName="Helvetica", leading=15, spaceAfter=4,
    alignment=TA_JUSTIFY)

bullet = ParagraphStyle("Bullet", parent=body,
    leftIndent=16, bulletIndent=6, spaceAfter=2,
    bulletFontName="Helvetica", bulletFontSize=10)

caption = ParagraphStyle("Caption", parent=styles["Normal"],
    fontSize=8.5, textColor=DGREY, fontName="Helvetica-Oblique",
    alignment=TA_CENTER, spaceAfter=6)

source_style = ParagraphStyle("Source", parent=styles["Normal"],
    fontSize=8, textColor=DGREY, fontName="Helvetica-Oblique",
    alignment=TA_LEFT)

# ── Helper builders ──────────────────────────────────────────────────────────
def section_header(text, story):
    """Teal banner with white text for section headings."""
    tbl = Table([[Paragraph(text, h1)]], colWidths=[W - 4*cm])
    tbl.setStyle(TableStyle([
        ("BACKGROUND", (0,0), (-1,-1), TEAL),
        ("ROWBACKGROUNDS", (0,0), (-1,-1), [TEAL]),
        ("LEFTPADDING",  (0,0), (-1,-1), 12),
        ("RIGHTPADDING", (0,0), (-1,-1), 12),
        ("TOPPADDING",   (0,0), (-1,-1), 7),
        ("BOTTOMPADDING",(0,0), (-1,-1), 7),
        ("ROUNDEDCORNERS", [4]),
    ]))
    story.append(Spacer(1, 6))
    story.append(tbl)
    story.append(Spacer(1, 4))

def info_box(text, story, bg=ACCENT):
    tbl = Table([[Paragraph(text, body)]], colWidths=[W - 4*cm])
    tbl.setStyle(TableStyle([
        ("BACKGROUND", (0,0), (-1,-1), bg),
        ("LEFTPADDING",  (0,0), (-1,-1), 12),
        ("RIGHTPADDING", (0,0), (-1,-1), 12),
        ("TOPPADDING",   (0,0), (-1,-1), 7),
        ("BOTTOMPADDING",(0,0), (-1,-1), 7),
        ("BOX", (0,0), (-1,-1), 0.5, LBLUE),
    ]))
    story.append(tbl)
    story.append(Spacer(1, 6))

def make_table(headers, rows, story, col_widths=None):
    data = [[Paragraph(f"<b>{h}</b>", ParagraphStyle("th", parent=body,
                textColor=WHITE, fontName="Helvetica-Bold", fontSize=9.5)) for h in headers]]
    for row in rows:
        data.append([Paragraph(str(c), body) for c in row])
    cw = col_widths or [(W - 4*cm) / len(headers)] * len(headers)
    t = Table(data, colWidths=cw, repeatRows=1)
    ts = TableStyle([
        ("BACKGROUND", (0,0), (-1,0), BLUE),
        ("ROWBACKGROUNDS", (0,1), (-1,-1), [WHITE, LGREY]),
        ("GRID", (0,0), (-1,-1), 0.4, colors.HexColor("#bdc3c7")),
        ("LEFTPADDING",  (0,0), (-1,-1), 8),
        ("RIGHTPADDING", (0,0), (-1,-1), 8),
        ("TOPPADDING",   (0,0), (-1,-1), 5),
        ("BOTTOMPADDING",(0,0), (-1,-1), 5),
        ("VALIGN", (0,0), (-1,-1), "TOP"),
    ])
    t.setStyle(ts)
    story.append(t)
    story.append(Spacer(1, 8))

def centered_image(path, story, width_cm=14, caption_text=""):
    img = RLImage(path, width=width_cm*cm, height=None)
    # Preserve aspect ratio
    from PIL import Image as PILImage
    with PILImage.open(path) as im:
        iw, ih = im.size
    h = (width_cm * cm) * ih / iw
    img = RLImage(path, width=width_cm*cm, height=h)
    tbl = Table([[img]], colWidths=[W - 4*cm])
    tbl.setStyle(TableStyle([
        ("ALIGN", (0,0), (-1,-1), "CENTER"),
        ("BACKGROUND", (0,0), (-1,-1), LGREY),
        ("BOX", (0,0), (-1,-1), 0.5, colors.HexColor("#bdc3c7")),
        ("TOPPADDING", (0,0), (-1,-1), 8),
        ("BOTTOMPADDING", (0,0), (-1,-1), 8),
    ]))
    story.append(tbl)
    if caption_text:
        story.append(Paragraph(caption_text, caption))
    story.append(Spacer(1, 8))

# ── Page template with header/footer ─────────────────────────────────────────
def on_page(canvas, doc):
    canvas.saveState()
    # Header bar
    canvas.setFillColor(BLUE)
    canvas.rect(0, H - 1.4*cm, W, 1.4*cm, fill=1, stroke=0)
    canvas.setFillColor(WHITE)
    canvas.setFont("Helvetica-Bold", 9)
    canvas.drawString(2*cm, H - 0.9*cm, "Synapse & Classification")
    canvas.setFont("Helvetica", 8)
    canvas.drawRightString(W - 2*cm, H - 0.9*cm, "Neuroscience | Medical Physiology")
    # Footer
    canvas.setFillColor(BLUE)
    canvas.rect(0, 0, W, 1.0*cm, fill=1, stroke=0)
    canvas.setFillColor(WHITE)
    canvas.setFont("Helvetica", 8)
    canvas.drawString(2*cm, 0.35*cm, "Sources: Guyton & Hall | Neuroscience: Exploring the Brain | Junqueira's Histology")
    canvas.drawRightString(W - 2*cm, 0.35*cm, f"Page {doc.page}")
    canvas.restoreState()

# ── Build story ───────────────────────────────────────────────────────────────
story = []

# ── Cover / Title block ───────────────────────────────────────────────────────
cover_data = [[
    Paragraph("SYNAPSE", title_style),
    Paragraph("&amp; its Classification", subtitle_style),
    Spacer(1, 6),
    Paragraph("Anatomical · Physiological · Functional · Chemical · Morphological", subtitle_style),
]]
cover_tbl = Table([[
    Paragraph("SYNAPSE &amp; ITS CLASSIFICATION", title_style),
]], colWidths=[W - 4*cm])
cover_tbl.setStyle(TableStyle([
    ("BACKGROUND", (0,0), (-1,-1), BLUE),
    ("LEFTPADDING",  (0,0), (-1,-1), 20),
    ("RIGHTPADDING", (0,0), (-1,-1), 20),
    ("TOPPADDING",   (0,0), (-1,-1), 18),
    ("BOTTOMPADDING",(0,0), (-1,-1), 6),
]))
story.append(cover_tbl)

sub_tbl = Table([[
    Paragraph("Anatomical &nbsp;·&nbsp; Physiological &nbsp;·&nbsp; Functional &nbsp;·&nbsp; Chemical &nbsp;·&nbsp; Morphological", subtitle_style),
]], colWidths=[W - 4*cm])
sub_tbl.setStyle(TableStyle([
    ("BACKGROUND", (0,0), (-1,-1), LBLUE),
    ("LEFTPADDING",  (0,0), (-1,-1), 20),
    ("RIGHTPADDING", (0,0), (-1,-1), 20),
    ("TOPPADDING",   (0,0), (-1,-1), 8),
    ("BOTTOMPADDING",(0,0), (-1,-1), 10),
]))
story.append(sub_tbl)
story.append(Spacer(1, 12))

# ── Definition ────────────────────────────────────────────────────────────────
info_box(
    "<b>Definition:</b> A <b>synapse</b> is a specialized junction where a neuron contacts and "
    "transmits information to another neuron, muscle fiber, or gland cell. The term was coined "
    "by Charles Sherrington (1897), from the Greek meaning 'to clasp.' It consists of three "
    "components: the <b>presynaptic terminal</b>, the <b>synaptic cleft</b> (200-300 Å wide), "
    "and the <b>postsynaptic membrane</b>.",
    story
)

# ═══════════════════════════════════════════════════════════════════════════════
# 1. ANATOMICAL
# ═══════════════════════════════════════════════════════════════════════════════
section_header("1.  Anatomical Classification  (by site of contact)", story)
story.append(Paragraph(
    "Based on which part of the postsynaptic neuron the presynaptic axon terminal contacts.", body))
story.append(Spacer(1, 4))

centered_image(
    img_paths["anatomical"], story, width_cm=13.5,
    caption_text="Figure 1. Three morphological types of CNS synapses: Axosomatic, Axodendritic, and Axoaxonic.\n"
                 "(Source: Junqueira's Basic Histology, p. 428)"
)

make_table(
    ["Type", "Contact Site", "Key Features", "Function"],
    [
        ["<b>Axodendritic</b>", "Axon → Dendrite", "Most common; often on dendritic spines; linked to learning & memory", "Mainly excitatory"],
        ["<b>Axosomatic</b>", "Axon → Cell body (soma)", "Strong influence over firing threshold; near axon hillock", "Often inhibitory"],
        ["<b>Axoaxonic</b>", "Axon → Axon", "Modulates other synapses; causes presynaptic inhibition/facilitation", "Modulatory"],
        ["<b>Dendrodendritic</b>", "Dendrite → Dendrite", "Less common; found in olfactory bulb, retina", "Bidirectional signaling"],
    ],
    story,
    col_widths=[3.5*cm, 3.5*cm, 7*cm, 3.5*cm]
)

story.append(Paragraph(
    "<i>Note: On a typical anterior motor neuron, 80-95% of presynaptic terminals contact dendrites "
    "and only 5-20% contact the soma. Up to 10,000-200,000 synaptic knobs may be present on a single neuron.</i>",
    source_style))
story.append(Spacer(1, 8))

# ═══════════════════════════════════════════════════════════════════════════════
# 2. PHYSIOLOGICAL
# ═══════════════════════════════════════════════════════════════════════════════
section_header("2.  Physiological Classification  (by effect on postsynaptic cell)", story)

make_table(
    ["Feature", "Excitatory Synapse", "Inhibitory Synapse"],
    [
        ["Neurotransmitter", "Glutamate, Acetylcholine", "GABA, Glycine"],
        ["Effect on membrane", "Depolarization", "Hyperpolarization"],
        ["Postsynaptic potential", "EPSP (Excitatory PSP)", "IPSP (Inhibitory PSP)"],
        ["Ion permeability", "Increases Na⁺ (and other cations)", "Increases K⁺ or Cl⁻"],
        ["Membrane potential shift", "Toward threshold (fires AP)", "Away from threshold (inhibits AP)"],
        ["Location", "Often axodendritic", "Often axosomatic / axoaxonic"],
    ],
    story,
    col_widths=[5*cm, 6.5*cm, 6*cm]
)

info_box(
    "<b>Synaptic Summation:</b> The postsynaptic neuron integrates hundreds to thousands of EPSPs "
    "and IPSPs simultaneously. <b>Temporal summation</b> occurs when rapid repeated impulses from "
    "one synapse accumulate. <b>Spatial summation</b> occurs when multiple synapses fire at once. "
    "The final response is the algebraic sum of all inputs.",
    story
)

# ═══════════════════════════════════════════════════════════════════════════════
# 3. FUNCTIONAL
# ═══════════════════════════════════════════════════════════════════════════════
section_header("3.  Functional Classification  (Electrical vs. Chemical)", story)

centered_image(
    img_paths["elec_chem"], story, width_cm=14,
    caption_text="Figure 2. (A) Electrical synapse via gap junctions (connexons). (B) Chemical synapse "
                 "showing synaptic vesicles, neurotransmitter release, and postsynaptic receptors.\n"
                 "(Source: Neuroscience: Exploring the Brain, 5th Ed., p. 392)"
)

make_table(
    ["Feature", "Electrical Synapse", "Chemical Synapse"],
    [
        ["Structure", "Gap junctions (connexons / connexins)", "Synaptic vesicles, cleft, receptors"],
        ["Cleft gap", "~3 nm", "200-300 Å (20-30 nm)"],
        ["Signal mediator", "Ionic current (direct)", "Neurotransmitter (indirect)"],
        ["Direction", "Mostly bidirectional", "Strictly unidirectional"],
        ["Speed", "Very fast (no delay)", "~0.5 ms synaptic delay"],
        ["Amplification", "No (signal may decrease)", "Yes (small signal → large response)"],
        ["Reliability", "Near fail-safe (large junctions)", "Variable; modifiable"],
        ["Plasticity", "Limited", "High (basis of learning)"],
        ["Examples", "Inferior olive, hypothalamic neurons, cardiac muscle", "Vast majority of CNS/PNS synapses"],
        ["Function", "Synchronizes neuronal populations", "Precise signal processing & modulation"],
    ],
    story,
    col_widths=[4*cm, 6*cm, 7.5*cm]  # adjusted
)

story.append(Paragraph(
    "<i>Electrical and chemical synapses can coexist and interact in the CNS. "
    "Electrical synapses are especially important where synchronized firing of groups of neurons is needed. "
    "– Guyton &amp; Hall, p. 568</i>",
    source_style))
story.append(Spacer(1, 8))

# ═══════════════════════════════════════════════════════════════════════════════
# 4. CHEMICAL
# ═══════════════════════════════════════════════════════════════════════════════
section_header("4.  Chemical Classification  (by neurotransmitter)", story)

story.append(Paragraph(
    "Synapses are named by the neurotransmitter released from the presynaptic terminal:", body))
story.append(Spacer(1, 4))

make_table(
    ["Synapse Type", "Neurotransmitter", "Receptor Types", "Location / Role"],
    [
        ["Cholinergic",    "Acetylcholine (ACh)",    "Nicotinic, Muscarinic",       "NMJ, autonomic ganglia, CNS cortex"],
        ["Glutamatergic",  "Glutamate",               "AMPA, NMDA, Kainate, mGluR",  "Most excitatory CNS synapses"],
        ["GABAergic",      "GABA",                    "GABA-A (ionotropic), GABA-B", "Most inhibitory CNS synapses"],
        ["Glycinergic",    "Glycine",                 "Glycine receptor (GlyR)",     "Spinal cord & brainstem inhibition"],
        ["Dopaminergic",   "Dopamine",                "D1-D5 receptors",             "Substantia nigra, mesolimbic pathway"],
        ["Serotonergic",   "Serotonin (5-HT)",        "5-HT1 – 5-HT7",              "Raphe nuclei; mood, sleep, appetite"],
        ["Noradrenergic",  "Norepinephrine",           "α1, α2, β1, β2",             "Locus coeruleus; arousal, stress"],
        ["Peptidergic",    "Substance P, Endorphins,\nNeuropeptide Y", "GPCRs",      "Pain modulation; widespread CNS"],
        ["Purinergic",     "ATP / Adenosine",          "P1 (adenosine), P2 (ATP)",   "CNS neuromodulation, autonomic"],
    ],
    story,
    col_widths=[3.5*cm, 3.5*cm, 5*cm, 5.5*cm]
)

info_box(
    "<b>Key principle:</b> Different receptor subtypes and second-messenger systems exist for the same "
    "transmitter, greatly multiplying possible effects. After release, transmitters are rapidly removed "
    "by enzymatic breakdown (e.g., AChE), glial reuptake, or endocytic recycling at presynaptic "
    "membrane receptors. – Junqueira's Basic Histology, p. 429",
    story
)

# ═══════════════════════════════════════════════════════════════════════════════
# 5. MORPHOLOGICAL
# ═══════════════════════════════════════════════════════════════════════════════
section_header("5.  Morphological Classification  (Gray's Types I &amp; II)", story)

story.append(Paragraph(
    "Based on <b>electron microscopy</b>, E.G. Gray (1959) classified synapses by the density of "
    "pre- and postsynaptic specializations and the shape of synaptic vesicles:", body))
story.append(Spacer(1, 4))

make_table(
    ["Feature", "Gray Type I (Asymmetric)", "Gray Type II (Symmetric)"],
    [
        ["Postsynaptic density",   "Prominent (thick)",              "Equal / thin on both sides"],
        ["Synaptic vesicle shape", "Round / spherical",              "Flattened / pleomorphic"],
        ["Synaptic cleft width",   "~30 nm (wider)",                 "~20 nm (narrower)"],
        ["Location",               "Dendritic spines & shafts (axodendritic)", "Cell bodies & axon hillock (axosomatic, axoaxonic)"],
        ["Physiological effect",   "Excitatory (EPSP)",              "Inhibitory (IPSP)"],
        ["Main neurotransmitter",  "Glutamate",                      "GABA, Glycine"],
    ],
    story,
    col_widths=[4.5*cm, 6.5*cm, 6.5*cm]
)

story.append(Paragraph(
    "<i>Note: Synaptic structure cannot be resolved by routine H&amp;E staining. Silver precipitation "
    "methods (e.g., Golgi method) reveal synapses as oval bodies (boutons terminaux) on the "
    "postsynaptic cell surface. Axons may also form boutons en passant — multiple contacts along "
    "the axon before ending as a terminal bulb. – Histology: A Text and Atlas, p. 931</i>",
    source_style))
story.append(Spacer(1, 10))

# ═══════════════════════════════════════════════════════════════════════════════
# Summary Table
# ═══════════════════════════════════════════════════════════════════════════════
section_header("Summary Table", story)

make_table(
    ["Classification", "Subtypes"],
    [
        ["<b>Anatomical</b>",     "Axodendritic · Axosomatic · Axoaxonic · Dendrodendritic"],
        ["<b>Physiological</b>",  "Excitatory (EPSP) · Inhibitory (IPSP)"],
        ["<b>Functional</b>",     "Electrical (gap junctions) · Chemical (neurotransmitter-mediated)"],
        ["<b>Chemical</b>",       "Cholinergic · Glutamatergic · GABAergic · Glycinergic · Dopaminergic · Serotonergic · Noradrenergic · Peptidergic · Purinergic"],
        ["<b>Morphological</b>",  "Gray Type I (asymmetric, excitatory) · Gray Type II (symmetric, inhibitory)"],
    ],
    story,
    col_widths=[4.5*cm, 13*cm]
)

# References
story.append(HRFlowable(width="100%", thickness=0.5, color=LBLUE))
story.append(Spacer(1, 4))
story.append(Paragraph("<b>Key References</b>", h2))
refs = [
    "Guyton AC, Hall JE. Textbook of Medical Physiology, 14th Ed. pp. 568-570.",
    "Bear MF, Connors BW, Paradiso MA. Neuroscience: Exploring the Brain, 5th Ed. pp. 391-396.",
    "Eroschenko VP. Histology: A Text and Atlas with Correlated Cell and Molecular Biology. pp. 929-931.",
    "Mescher AL. Junqueira's Basic Histology: Text and Atlas, 17th Ed. pp. 427-429.",
    "Gray EG. Axo-somatic and axo-dendritic synapses of the cerebral cortex. J Anat. 1959;93:420-433.",
]
for r in refs:
    story.append(Paragraph(f"• {r}", source_style))
story.append(Spacer(1, 6))

# ── Render ─────────────────────────────────────────────────────────────────────
doc = SimpleDocTemplate(
    OUTPUT,
    pagesize=A4,
    leftMargin=2*cm, rightMargin=2*cm,
    topMargin=2*cm, bottomMargin=1.5*cm,
    title="Synapse and Its Classification",
    author="Orris Medical"
)
doc.build(story, onFirstPage=on_page, onLaterPages=on_page)
print(f"PDF saved to {OUTPUT}")
Running Command

cd /home/daytona/workspace/synapse-pdf && python3 build_pdf.py 2>&1

Running Command

ls -lh /home/daytona/workspace/synapse-pdf/Synapse_Classification.pdf

Your PDF is ready! Here's the download link:

Synapse Classification

PDF Document · PDF

What's included in the PDF (2.9 MB, A4):
  • Branded header/footer on every page with page numbers
  • Definition block at the top
  • All 5 classification sections with teal section banners
  • Two textbook diagrams embedded (anatomical types + electrical vs. chemical)
  • Comparison tables for each classification with alternating row colors
  • Highlighted info boxes for key concepts
  • Full summary table at the end
  • References from Guyton & Hall, Neuroscience: Exploring the Brain, Junqueira's, and Eroschenko's Histology
This is a shared conversation. Sign in to Orris to start your own chat.