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

Other less common anatomical types include: dendrodendritic (dendrite-to-dendrite), somatodendritic, and somatosomatic synapses.
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.

| Feature | Detail |
|---|---|
| Structure | Gap junctions formed by connexin proteins; two connexons form one gap junction channel |
| Cleft gap | Only ~3 nm |
| Direction | Mostly bidirectional |
| Speed | Very fast - nearly no delay |
| Signal | Ionic current passes directly from cell to cell |
| Reliability | Near fail-safe if synapse is large |
| Examples | Inferior olivary neurons (motor coordination), hypothalamic hormone-secreting neurons, cardiac muscle, smooth muscle |
| Function | Synchronizes activity of large neuronal populations |
| Feature | Detail |
|---|---|
| Structure | Presynaptic terminal with synaptic vesicles, synaptic cleft (200-300 Å), postsynaptic membrane with receptors |
| Cleft gap | 200-300 Å |
| Direction | Unidirectional (pre → post) |
| Speed | Synaptic delay (~0.5 ms) due to chemical intermediary |
| Signal | Neurotransmitter released from vesicles, diffuses across cleft, binds receptors |
| Amplification | Small presynaptic signal can produce large postsynaptic response |
| Examples | Vast 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
| Category | Neurotransmitter(s) | Example Locations |
|---|---|---|
| Cholinergic | Acetylcholine (ACh) | Neuromuscular junction, autonomic ganglia, CNS |
| Glutamatergic | Glutamate | Most excitatory CNS synapses |
| GABAergic | GABA (γ-aminobutyric acid) | Most inhibitory CNS synapses |
| Glycinergic | Glycine | Inhibitory synapses in spinal cord, brainstem |
| Dopaminergic | Dopamine | Substantia nigra, mesolimbic pathway |
| Serotonergic | Serotonin (5-HT) | Raphe nuclei, mood regulation |
| Noradrenergic | Norepinephrine | Locus coeruleus, sympathetic system |
| Peptidergic | Substance P, endorphins, neuropeptide Y | Widespread; often co-released |
| Purinergic | ATP, adenosine | CNS, 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
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
| Classification | Types |
|---|---|
| Anatomical | Axodendritic, Axosomatic, Axoaxonic (+ dendrodendritic, etc.) |
| Physiological | Excitatory (EPSP), Inhibitory (IPSP) |
| Functional | Electrical (gap junctions), Chemical (neurotransmitter-mediated) |
| Chemical | Cholinergic, Glutamatergic, GABAergic, Dopaminergic, Serotonergic, etc. |
| Morphological | Gray Type I (asymmetric, excitatory), Gray Type II (symmetric, inhibitory) |
Make this pdf format
ls -la /home/daytona/workspace/ 2>/dev/null || mkdir -p /home/daytona/workspace
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')"
~/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("& its Classification", subtitle_style),
Spacer(1, 6),
Paragraph("Anatomical · Physiological · Functional · Chemical · Morphological", subtitle_style),
]]
cover_tbl = Table([[
Paragraph("SYNAPSE & 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 · Physiological · Functional · Chemical · 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 & 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 & 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&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}")
cd /home/daytona/workspace/synapse-pdf && python3 build_pdf.py 2>&1
ls -lh /home/daytona/workspace/synapse-pdf/Synapse_Classification.pdf
Synapse Classification
PDF Document · PDF