NMJ anatomy and physiology and metabolism ppt in clean white slides
mkdir -p /home/daytona/workspace/nmj-ppt && ls /home/daytona/workspace/nmj-ppt/
~/nmj-ppt/nmj.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Neuromuscular Junction: Anatomy, Physiology & Metabolism";
// ─── DESIGN TOKENS ────────────────────────────────────────────────────────────
const C = {
white: "FFFFFF",
bg: "F8F9FA",
navy: "1A2E5A",
blue: "2563EB",
lightBlue: "DBEAFE",
teal: "0D9488",
lightTeal: "CCFBF1",
accent: "F59E0B",
accentLight:"FEF3C7",
gray: "6B7280",
lightGray: "E5E7EB",
darkText: "111827",
bodyText: "374151",
};
const FONT = "Calibri";
// ─── HELPERS ──────────────────────────────────────────────────────────────────
function titleSlide(title, subtitle, accentColor) {
const s = pres.addSlide();
// White background
s.background = { color: C.white };
// Left navy bar
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.18, h: 5.625, fill: { color: accentColor || C.navy } });
// Top thin accent line
s.addShape(pres.ShapeType.rect, { x: 0.18, y: 0, w: 9.82, h: 0.06, fill: { color: C.blue } });
// Decorative circle
s.addShape(pres.ShapeType.ellipse, {
x: 7.8, y: 3.5, w: 2.5, h: 2.5,
fill: { color: C.lightBlue },
line: { color: C.lightBlue }
});
s.addShape(pres.ShapeType.ellipse, {
x: 8.3, y: 3.8, w: 1.8, h: 1.8,
fill: { color: C.blue, transparency: 70 },
line: { color: C.blue, transparency: 70 }
});
// Title
s.addText(title, {
x: 0.5, y: 1.5, w: 7.8, h: 1.5,
fontFace: FONT, fontSize: 38, bold: true,
color: C.navy, align: "left", valign: "middle", margin: 0
});
if (subtitle) {
s.addText(subtitle, {
x: 0.5, y: 3.0, w: 7.5, h: 0.6,
fontFace: FONT, fontSize: 18, color: C.gray,
align: "left", italic: true, margin: 0
});
}
// Bottom source tag
s.addText("Sources: Ganong's Physiology · Miller's Anesthesia · Basic Medical Biochemistry", {
x: 0.5, y: 5.1, w: 9, h: 0.4,
fontFace: FONT, fontSize: 9, color: C.gray, align: "left", margin: 0
});
return s;
}
function sectionHeader(title, subtitle, color) {
const s = pres.addSlide();
s.background = { color: C.navy };
// Accent circle
s.addShape(pres.ShapeType.ellipse, {
x: 7.5, y: -0.8, w: 3.5, h: 3.5,
fill: { color: color || C.blue, transparency: 75 },
line: { color: C.white, transparency: 85 }
});
s.addShape(pres.ShapeType.ellipse, {
x: 8.2, y: 3.0, w: 2.2, h: 2.2,
fill: { color: color || C.teal, transparency: 80 },
line: { color: C.white, transparency: 85 }
});
s.addText(title, {
x: 0.7, y: 1.6, w: 8.5, h: 1.4,
fontFace: FONT, fontSize: 40, bold: true,
color: C.white, align: "left", valign: "middle", margin: 0
});
if (subtitle) {
s.addText(subtitle, {
x: 0.7, y: 3.1, w: 7.5, h: 0.6,
fontFace: FONT, fontSize: 18, color: C.lightBlue, italic: true, margin: 0
});
}
return s;
}
function contentSlide(title, bullets, footnote) {
const s = pres.addSlide();
s.background = { color: C.white };
// Top accent bar
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.08, fill: { color: C.blue } });
// Left thin colored stripe on title area
s.addShape(pres.ShapeType.rect, { x: 0, y: 0.08, w: 0.06, h: 0.82, fill: { color: C.navy } });
// Title
s.addText(title, {
x: 0.18, y: 0.08, w: 9.6, h: 0.82,
fontFace: FONT, fontSize: 22, bold: true,
color: C.navy, valign: "middle", margin: [0, 0, 0, 8]
});
// Divider
s.addShape(pres.ShapeType.rect, { x: 0.18, y: 0.92, w: 9.6, h: 0.02, fill: { color: C.lightGray } });
// Bullets
const items = bullets.map((b, i) => {
if (b.sub) {
return {
text: b.text,
options: {
bullet: { indent: 30, code: 0x25E6 },
indentLevel: 1,
fontSize: 14,
color: C.bodyText,
breakLine: i < bullets.length - 1
}
};
}
const isBold = b.bold || false;
return {
text: b.text,
options: {
bullet: { indent: 15 },
fontSize: b.size || 15,
color: isBold ? C.navy : C.bodyText,
bold: isBold,
breakLine: i < bullets.length - 1
}
};
});
s.addText(items, {
x: 0.3, y: 1.05, w: 9.4, h: 4.2,
fontFace: FONT, valign: "top", margin: 4
});
if (footnote) {
s.addText(footnote, {
x: 0.18, y: 5.2, w: 9.6, h: 0.35,
fontFace: FONT, fontSize: 9, color: C.gray, italic: true, margin: 0
});
}
return s;
}
function twoColSlide(title, leftTitle, leftItems, rightTitle, rightItems, leftColor, rightColor) {
const s = pres.addSlide();
s.background = { color: C.white };
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.08, fill: { color: C.blue } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0.08, w: 0.06, h: 0.82, fill: { color: C.navy } });
s.addText(title, {
x: 0.18, y: 0.08, w: 9.6, h: 0.82,
fontFace: FONT, fontSize: 22, bold: true,
color: C.navy, valign: "middle", margin: [0, 0, 0, 8]
});
s.addShape(pres.ShapeType.rect, { x: 0.18, y: 0.92, w: 9.6, h: 0.02, fill: { color: C.lightGray } });
// Left column header
s.addShape(pres.ShapeType.rect, { x: 0.25, y: 1.05, w: 4.5, h: 0.42, fill: { color: leftColor || C.lightBlue }, line: { color: leftColor || C.lightBlue } });
s.addText(leftTitle, { x: 0.25, y: 1.05, w: 4.5, h: 0.42, fontFace: FONT, fontSize: 14, bold: true, color: C.navy, align: "center", valign: "middle", margin: 0 });
// Right column header
s.addShape(pres.ShapeType.rect, { x: 5.25, y: 1.05, w: 4.5, h: 0.42, fill: { color: rightColor || C.lightTeal }, line: { color: rightColor || C.lightTeal } });
s.addText(rightTitle, { x: 5.25, y: 1.05, w: 4.5, h: 0.42, fontFace: FONT, fontSize: 14, bold: true, color: C.navy, align: "center", valign: "middle", margin: 0 });
const makeItems = (arr) => arr.map((b, i) => ({
text: b.sub ? " ◦ " + b.text : b.text,
options: {
bullet: !b.sub,
fontSize: b.size || 13,
color: b.bold ? C.navy : C.bodyText,
bold: b.bold || false,
breakLine: i < arr.length - 1
}
}));
s.addText(makeItems(leftItems), { x: 0.25, y: 1.55, w: 4.5, h: 3.8, fontFace: FONT, valign: "top", margin: 4 });
s.addText(makeItems(rightItems), { x: 5.25, y: 1.55, w: 4.5, h: 3.8, fontFace: FONT, valign: "top", margin: 4 });
return s;
}
function stepSlide(title, steps, note) {
const s = pres.addSlide();
s.background = { color: C.white };
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.08, fill: { color: C.teal } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0.08, w: 0.06, h: 0.82, fill: { color: C.teal } });
s.addText(title, {
x: 0.18, y: 0.08, w: 9.6, h: 0.82,
fontFace: FONT, fontSize: 22, bold: true,
color: C.navy, valign: "middle", margin: [0, 0, 0, 8]
});
s.addShape(pres.ShapeType.rect, { x: 0.18, y: 0.92, w: 9.6, h: 0.02, fill: { color: C.lightGray } });
const colors = [C.blue, C.teal, C.navy, "7C3AED", "DB2777", "D97706", "059669", "DC2626"];
const perRow = steps.length <= 4 ? 1 : 2;
const colW = perRow === 1 ? 9.0 : 4.3;
const startX = perRow === 1 ? 0.5 : 0.25;
const boxH = 0.72;
const gapY = 0.1;
const startY = 1.1;
steps.forEach((step, i) => {
const col = perRow === 2 ? i % 2 : 0;
const row = perRow === 2 ? Math.floor(i / 2) : i;
const x = startX + col * (colW + 0.4);
const y = startY + row * (boxH + gapY);
const c = colors[i % colors.length];
// Circle number
s.addShape(pres.ShapeType.ellipse, {
x: x, y: y + 0.04, w: 0.62, h: 0.62,
fill: { color: c }, line: { color: c }
});
s.addText(String(i + 1), {
x: x, y: y + 0.04, w: 0.62, h: 0.62,
fontFace: FONT, fontSize: 16, bold: true,
color: C.white, align: "center", valign: "middle", margin: 0
});
// Step box
s.addShape(pres.ShapeType.rect, {
x: x + 0.7, y: y, w: colW - 0.75, h: boxH,
fill: { color: C.bg }, line: { color: C.lightGray, width: 0.5 }
});
s.addText([
{ text: step.title + " ", options: { bold: true, color: C.navy } },
{ text: step.desc, options: { color: C.bodyText } }
], {
x: x + 0.75, y: y, w: colW - 0.82, h: boxH,
fontFace: FONT, fontSize: 12.5, valign: "middle", margin: 6
});
});
if (note) {
s.addText(note, {
x: 0.25, y: 5.2, w: 9.5, h: 0.35,
fontFace: FONT, fontSize: 9, color: C.gray, italic: true, margin: 0
});
}
return s;
}
function tableSlide(title, headers, rows, note) {
const s = pres.addSlide();
s.background = { color: C.white };
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.08, fill: { color: C.blue } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0.08, w: 0.06, h: 0.82, fill: { color: C.navy } });
s.addText(title, {
x: 0.18, y: 0.08, w: 9.6, h: 0.82,
fontFace: FONT, fontSize: 22, bold: true,
color: C.navy, valign: "middle", margin: [0, 0, 0, 8]
});
s.addShape(pres.ShapeType.rect, { x: 0.18, y: 0.92, w: 9.6, h: 0.02, fill: { color: C.lightGray } });
const tableData = [
headers.map(h => ({
text: h, options: { bold: true, color: C.white, fill: C.navy, fontSize: 13, fontFace: FONT, align: "center" }
})),
...rows.map((row, ri) => row.map((cell, ci) => ({
text: cell,
options: {
fontSize: 12, fontFace: FONT,
fill: ri % 2 === 0 ? C.white : C.bg,
color: ci === 0 ? C.navy : C.bodyText,
bold: ci === 0,
align: ci === 0 ? "left" : "center"
}
})))
];
s.addTable(tableData, {
x: 0.25, y: 1.05, w: 9.5,
border: { type: "solid", color: C.lightGray, pt: 0.5 },
rowH: 0.48
});
if (note) {
s.addText(note, {
x: 0.25, y: 5.2, w: 9.5, h: 0.35,
fontFace: FONT, fontSize: 9, color: C.gray, italic: true, margin: 0
});
}
return s;
}
function diagramSlide(title, items, caption) {
// Flowchart-style diagram using shapes
const s = pres.addSlide();
s.background = { color: C.white };
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.08, fill: { color: C.teal } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0.08, w: 0.06, h: 0.82, fill: { color: C.teal } });
s.addText(title, {
x: 0.18, y: 0.08, w: 9.6, h: 0.82,
fontFace: FONT, fontSize: 22, bold: true,
color: C.navy, valign: "middle", margin: [0, 0, 0, 8]
});
s.addShape(pres.ShapeType.rect, { x: 0.18, y: 0.92, w: 9.6, h: 0.02, fill: { color: C.lightGray } });
const boxW = 2.0, boxH = 0.6, gap = 0.22;
const cols = 4, rows = Math.ceil(items.length / cols);
const totalW = cols * boxW + (cols - 1) * gap;
const startX = (10 - totalW) / 2;
const startY = 1.15;
items.forEach((item, i) => {
const col = i % cols;
const row = Math.floor(i / cols);
const x = startX + col * (boxW + gap);
const y = startY + row * (boxH + 0.55);
s.addShape(pres.ShapeType.rect, {
x, y, w: boxW, h: boxH,
fill: { color: item.color || C.lightBlue },
line: { color: item.borderColor || C.blue, width: 1.2 },
rectRadius: 0.08
});
s.addText(item.text, {
x, y, w: boxW, h: boxH,
fontFace: FONT, fontSize: 12, bold: item.bold || false,
color: item.textColor || C.navy, align: "center", valign: "middle", margin: 4
});
// Arrow to next in same row
if (col < cols - 1 && i < items.length - 1 && Math.floor((i + 1) / cols) === row) {
s.addShape(pres.ShapeType.line, {
x: x + boxW, y: y + boxH / 2, w: gap, h: 0,
line: { color: C.gray, width: 1, endArrowType: "arrow" }
});
}
// Arrow down to next row
if (col === cols - 1 && row < rows - 1 && i + 1 < items.length) {
s.addShape(pres.ShapeType.line, {
x: x + boxW / 2, y: y + boxH, w: 0, h: 0.55,
line: { color: C.gray, width: 1, endArrowType: "arrow" }
});
}
});
if (caption) {
s.addText(caption, {
x: 0.5, y: 5.1, w: 9, h: 0.4,
fontFace: FONT, fontSize: 9, color: C.gray, italic: true, align: "center", margin: 0
});
}
return s;
}
function keyPointsSlide(title, points) {
const s = pres.addSlide();
s.background = { color: C.white };
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.08, fill: { color: C.accent } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0.08, w: 0.06, h: 0.82, fill: { color: C.navy } });
s.addText(title, {
x: 0.18, y: 0.08, w: 9.6, h: 0.82,
fontFace: FONT, fontSize: 22, bold: true,
color: C.navy, valign: "middle", margin: [0, 0, 0, 8]
});
s.addShape(pres.ShapeType.rect, { x: 0.18, y: 0.92, w: 9.6, h: 0.02, fill: { color: C.lightGray } });
const cardW = 4.55, cardH = 1.0, gap = 0.1;
points.forEach((pt, i) => {
const col = i % 2;
const row = Math.floor(i / 2);
const x = 0.25 + col * (cardW + gap);
const y = 1.05 + row * (cardH + 0.12);
s.addShape(pres.ShapeType.rect, {
x, y, w: cardW, h: cardH,
fill: { color: C.accentLight },
line: { color: C.accent, width: 1 },
rectRadius: 0.06
});
// Icon circle
s.addShape(pres.ShapeType.ellipse, {
x: x + 0.12, y: y + 0.18, w: 0.62, h: 0.62,
fill: { color: C.accent }, line: { color: C.accent }
});
s.addText(pt.icon || "!", {
x: x + 0.12, y: y + 0.18, w: 0.62, h: 0.62,
fontFace: FONT, fontSize: 18, bold: true,
color: C.white, align: "center", valign: "middle", margin: 0
});
s.addText([
{ text: pt.title + "\n", options: { bold: true, color: C.navy, fontSize: 13 } },
{ text: pt.text, options: { color: C.bodyText, fontSize: 11 } }
], {
x: x + 0.82, y: y, w: cardW - 0.94, h: cardH,
fontFace: FONT, valign: "middle", margin: 4
});
});
return s;
}
// ════════════════════════════════════════════════════════════════════════════════
// SLIDES
// ════════════════════════════════════════════════════════════════════════════════
// ── 1. TITLE ─────────────────────────────────────────────────────────────────
titleSlide(
"Neuromuscular Junction",
"Anatomy · Physiology · Metabolism",
C.navy
);
// ── 2. TABLE OF CONTENTS ─────────────────────────────────────────────────────
{
const s = pres.addSlide();
s.background = { color: C.white };
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.08, fill: { color: C.blue } });
s.addText("Contents", {
x: 0.3, y: 0.15, w: 9.4, h: 0.7,
fontFace: FONT, fontSize: 26, bold: true, color: C.navy, margin: 0
});
s.addShape(pres.ShapeType.rect, { x: 0.3, y: 0.88, w: 9.4, h: 0.02, fill: { color: C.lightGray } });
const sections = [
{ n: "01", title: "Overview & Definition", color: C.blue },
{ n: "02", title: "Anatomy of the NMJ", color: C.teal },
{ n: "03", title: "Motor Unit & Motor End Plate", color: C.navy },
{ n: "04", title: "Acetylcholine: Synthesis & Storage", color: C.blue },
{ n: "05", title: "Transmission: Step-by-Step", color: C.teal },
{ n: "06", title: "Nicotinic Receptor Structure & Function", color: C.navy },
{ n: "07", title: "Endplate Potential & Action Potential", color: C.blue },
{ n: "08", title: "Excitation–Contraction Coupling", color: C.teal },
{ n: "09", title: "ACh Metabolism & Recycling", color: C.navy },
{ n: "10", title: "Quantal Release & Safety Factor", color: C.blue },
{ n: "11", title: "Summary & Clinical Relevance", color: C.teal },
];
const colW = 4.5, gap = 0.3;
sections.forEach((sec, i) => {
const col = i % 2;
const row = Math.floor(i / 2);
const x = 0.3 + col * (colW + gap);
const y = 1.0 + row * 0.72;
s.addShape(pres.ShapeType.rect, {
x, y, w: 0.55, h: 0.52,
fill: { color: sec.color }, line: { color: sec.color }
});
s.addText(sec.n, { x, y, w: 0.55, h: 0.52, fontFace: FONT, fontSize: 14, bold: true, color: C.white, align: "center", valign: "middle", margin: 0 });
s.addText(sec.title, { x: x + 0.62, y, w: colW - 0.68, h: 0.52, fontFace: FONT, fontSize: 13.5, color: C.bodyText, valign: "middle", margin: 0 });
});
}
// ── 3. SECTION HEADER: ANATOMY ───────────────────────────────────────────────
sectionHeader("Section 1", "Anatomy of the Neuromuscular Junction", C.blue);
// ── 4. OVERVIEW ──────────────────────────────────────────────────────────────
contentSlide("Overview: What is the NMJ?", [
{ text: "The neuromuscular junction (NMJ) is the specialized chemical synapse between a motor neuron axon terminal and a skeletal muscle fiber.", bold: true },
{ text: "" },
{ text: "Key concept: Converts an electrical nerve signal into a chemical signal, which then re-initiates an electrical signal in the muscle." },
{ text: "" },
{ text: "Location: Where the axon of a lower motor neuron terminates on the sarcolemma of a skeletal muscle fiber." },
{ text: "" },
{ text: "Also called:", bold: true },
{ text: "Motor end plate (the muscle membrane side of the junction)", sub: true },
{ text: "Myoneural junction", sub: true },
{ text: "" },
{ text: "Neurotransmitter: Acetylcholine (ACh) – released from presynaptic terminal, acts on postsynaptic nicotinic receptors (NM type)." },
], "Source: Ganong's Review of Medical Physiology, 26e");
// ── 5. ANATOMY COMPONENTS ────────────────────────────────────────────────────
twoColSlide(
"Structural Components of the NMJ",
"Presynaptic (Nerve Terminal)",
[
{ text: "Axon loses myelin sheath as it approaches muscle", bold: false },
{ text: "Divides into terminal boutons (bulb-like endings)" },
{ text: "Active zones: specialized membrane sites for ACh vesicle fusion" },
{ text: "Mitochondria: supply ATP for ACh synthesis" },
{ text: "Synaptic vesicles: ~10,000 ACh molecules each (one quantum)" },
{ text: "Voltage-gated Ca²⁺ channels: trigger exocytosis upon depolarization" },
{ text: "SNARE proteins (VAMP/synaptobrevin): mediate vesicle docking & fusion" },
{ text: "Synaptotagmin: calcium sensor on vesicle membrane" },
],
"Postsynaptic (Motor End Plate)",
[
{ text: "Thickened region of sarcolemma = motor end plate", bold: false },
{ text: "Junctional folds: deep infoldings that increase surface area" },
{ text: "Nicotinic ACh receptors (nAChRs): clustered at tops of junctional folds" },
{ text: "Acetylcholinesterase (AChE): enzyme in the synaptic cleft & folds" },
{ text: "Na⁺/K⁺ channels: opened by ACh binding → endplate potential" },
{ text: "Voltage-gated Na⁺ channels: dense at base of junctional folds" },
{ text: "Each endplate receives input from only ONE nerve fiber" },
],
C.lightBlue,
C.lightTeal
);
// ── 6. SYNAPTIC CLEFT ────────────────────────────────────────────────────────
contentSlide("The Synaptic Cleft", [
{ text: "A gap of ~50–100 nm separates the presynaptic nerve terminal from the postsynaptic motor end plate.", bold: true },
{ text: "" },
{ text: "Contents of the synaptic cleft:" },
{ text: "Basal lamina (extracellular matrix) running through the cleft", sub: true },
{ text: "Acetylcholinesterase (AChE) – anchored to basal lamina, rapidly destroys ACh", sub: true },
{ text: "Released ACh molecules diffuse across the 50 nm gap in microseconds", sub: true },
{ text: "" },
{ text: "Junctional folds amplify the signal:" },
{ text: "Increase the surface area of the motor end plate ~10-fold", sub: true },
{ text: "nAChRs concentrated at the tops/crests of the folds (~10,000 receptors/µm²)", sub: true },
{ text: "Voltage-gated Na⁺ channels concentrated at the depths of the folds", sub: true },
{ text: "" },
{ text: "This spatial arrangement ensures maximal receptor activation and rapid signal termination after ACh is released." },
], "Source: Miller's Anesthesia, 10e");
// ── 7. MOTOR UNIT ─────────────────────────────────────────────────────────────
contentSlide("Motor Unit & Innervation", [
{ text: "Motor Unit = One alpha motor neuron + all muscle fibers it innervates", bold: true },
{ text: "" },
{ text: "Innervation ratio varies with function:" },
{ text: "Fine motor muscles (e.g., extraocular): 1 neuron : 3–6 fibers", sub: true },
{ text: "Power muscles (e.g., gastrocnemius): 1 neuron : 1,000–2,000 fibers", sub: true },
{ text: "" },
{ text: "Each skeletal muscle fiber receives innervation from exactly ONE motor neuron." },
{ text: "" },
{ text: "The motor neuron axon branches near the muscle, sending a terminal bouton to each fiber it innervates." },
{ text: "" },
{ text: "Acetylcholine receptor clustering at the endplate is maintained by agrin (released from nerve terminal) → activates MuSK receptor on muscle → activates rapsyn → clusters nAChRs." },
{ text: "" },
{ text: "Loss of innervation → spread of nAChRs across entire muscle surface (denervation supersensitivity)." },
], "Source: Ganong's Review of Medical Physiology, 26e · Miller's Anesthesia, 10e");
// ── 8. SECTION: PHYSIOLOGY ───────────────────────────────────────────────────
sectionHeader("Section 2", "Physiology of Neuromuscular Transmission", C.teal);
// ── 9. ACH SYNTHESIS ─────────────────────────────────────────────────────────
contentSlide("Acetylcholine (ACh): Synthesis", [
{ text: "ACh is the neurotransmitter at the NMJ. It is synthesized in the nerve terminal cytoplasm.", bold: true },
{ text: "" },
{ text: "Substrates:" },
{ text: "Choline – transported into the nerve terminal from extracellular fluid by high-affinity choline transporter (ChT1)", sub: true },
{ text: "Acetyl-CoA – derived from mitochondrial metabolism of pyruvate (from glucose)", sub: true },
{ text: "" },
{ text: "Reaction:" },
{ text: "Choline + Acetyl-CoA → Acetylcholine + CoA", bold: true },
{ text: "Enzyme: Choline acetyltransferase (ChAT)", sub: true },
{ text: "" },
{ text: "After synthesis, ACh is packaged into synaptic vesicles by vesicular acetylcholine transporter (VAChT)." },
{ text: "" },
{ text: "Each vesicle contains ~10,000 ACh molecules (one quantum)." },
{ text: "" },
{ text: "All synthesis machinery (ChAT, VAChT) is made in the motor neuron cell body and transported by axonal transport to the nerve terminal." },
], "Source: Miller's Anesthesia, 10e · Basic Medical Biochemistry, 6e");
// ── 10. VESICLE POOLS ────────────────────────────────────────────────────────
twoColSlide(
"ACh Storage: Vesicle Pools",
"Readily Releasable Pool (RRP)",
[
{ text: "Vesicles docked at active zones", bold: true },
{ text: "Immediately available for release" },
{ text: "~1,000 vesicles at the active zone" },
{ text: "SNARE complex pre-formed" },
{ text: "Released by first few nerve stimuli" },
{ text: "" },
{ text: "SNARE Proteins involved:", bold: true },
{ text: "VAMP (synaptobrevin) – on vesicle" },
{ text: "Syntaxin – on nerve terminal membrane" },
{ text: "SNAP-25 – on nerve terminal membrane" },
{ text: "Synaptotagmin – Ca²⁺ sensor, triggers fusion" },
],
"Mobilization / Reserve Pool",
[
{ text: "Vesicles held by cytoskeletal scaffold", bold: true },
{ text: "Released during sustained stimulation" },
{ text: "Synapsin I phosphorylation mobilizes vesicles" },
{ text: "Important for maintaining transmission during tetanic stimulation" },
{ text: "" },
{ text: "Recycling after exocytosis:", bold: true },
{ text: "Endocytosis of membrane (clathrin-mediated)" },
{ text: "Re-acidification of vesicle lumen" },
{ text: "Reload with ACh via VAChT" },
{ text: "Synaptophysin: major vesicle membrane glycoprotein" },
],
C.lightBlue,
C.lightTeal
);
// ── 11. STEP-BY-STEP TRANSMISSION ────────────────────────────────────────────
stepSlide(
"Neuromuscular Transmission: Step-by-Step",
[
{ title: "1. Action Potential Arrives", desc: "Nerve AP travels down motor axon → reaches terminal bouton → membrane depolarizes." },
{ title: "2. Ca²⁺ Channel Opens", desc: "Depolarization opens voltage-gated Ca²⁺ channels (P/Q-type) on nerve terminal membrane." },
{ title: "3. Ca²⁺ Influx", desc: "Ca²⁺ rushes into nerve terminal down its concentration gradient. [Ca²⁺] rises ~100-fold locally." },
{ title: "4. Vesicle Fusion (Exocytosis)", desc: "Ca²⁺ binds synaptotagmin → SNARE complex zipps → vesicle fuses with membrane → ACh released into cleft." },
{ title: "5. ACh Diffuses Across Cleft", desc: "ACh crosses the ~50–100 nm synaptic cleft in microseconds." },
{ title: "6. ACh Binds nAChR", desc: "2 ACh molecules bind both α-subunits of the nicotinic receptor → channel opens." },
{ title: "7. Endplate Potential (EPP)", desc: "Na⁺ influx (and K⁺ efflux) through nAChR → local depolarization = endplate potential." },
{ title: "8. Action Potential Generated", desc: "EPP depolarizes adjacent sarcolemma → voltage-gated Na⁺ channels fire → muscle AP propagates." },
],
"Each step can be modulated by drugs (neuromuscular blockers, anticholinesterases, toxins). Source: Ganong's 26e · Miller's Anesthesia 10e"
);
// ── 12. NICOTINIC RECEPTOR ───────────────────────────────────────────────────
contentSlide("Nicotinic ACh Receptor (nAChR) Structure", [
{ text: "Pentameric ligand-gated ion channel (ionotropic receptor) – belongs to Cys-loop receptor superfamily.", bold: true },
{ text: "" },
{ text: "Mature muscle nAChR subunit composition:", bold: false },
{ text: "2α + 1β + 1δ + 1ε (adult/junctional type)", sub: true },
{ text: "2α + 1β + 1δ + 1γ (fetal/extrajunctional type)", sub: true },
{ text: "" },
{ text: "Two ACh binding sites: located at the interfaces of each α-subunit with its neighboring δ and ε (or γ) subunit." },
{ text: "" },
{ text: "Activation requirement: BOTH α-subunits must be simultaneously occupied by ACh." },
{ text: "" },
{ text: "Channel properties when open:" },
{ text: "Non-selective cation channel – permeable to Na⁺, K⁺, and Ca²⁺", sub: true },
{ text: "Net effect: Na⁺ influx > K⁺ efflux → depolarization", sub: true },
{ text: "Each channel passes ~4 pA; ~500,000 channels open per nerve stimulus", sub: true },
{ text: "" },
{ text: "Channel closes when one or both ACh molecules dissociate. AChE removes ACh from the cleft within ~1 ms." },
], "Source: Miller's Anesthesia, 10e · Katzung Pharmacology, 16e");
// ── 13. TABLE – RECEPTOR TYPES ───────────────────────────────────────────────
tableSlide(
"Junctional vs Extrajunctional nAChRs",
["Property", "Junctional (Mature)", "Extrajunctional (Fetal)"],
[
["Subunit composition", "2α₁ + β₁ + δ + ε", "2α₁ + β₁ + δ + γ"],
["Location", "Concentrated at endplate", "Spread across whole muscle"],
["Channel open time", "~1 ms (brief)", "~5 ms (prolonged)"],
["Conductance", "~60 pS", "~40 pS"],
["Sensitivity to succinylcholine", "Normal", "Increased (K⁺ efflux risk)"],
["Present in adults", "Yes (normal)", "Only if denervated/immobilized"],
["Clinical relevance", "Target for NDMRs", "Dangerous hyperkalemia with suxamethonium"],
],
"NDMR = Non-depolarizing muscle relaxant. Source: Miller's Anesthesia, 10e"
);
// ── 14. ENDPLATE POTENTIAL ───────────────────────────────────────────────────
contentSlide("Endplate Potential (EPP) & Safety Factor", [
{ text: "EPP is the graded depolarization at the motor endplate produced by ACh-induced nAChR activation.", bold: true },
{ text: "" },
{ text: "Magnitude of EPP:" },
{ text: "Normal EPP amplitude: ~70–80 mV (well above the ~−55 mV threshold for AP generation)", sub: true },
{ text: "Each nerve impulse normally releases ~200–300 quanta of ACh", sub: true },
{ text: "Only ~25–30 quanta are needed to trigger a muscle AP → large safety margin", sub: true },
{ text: "" },
{ text: "Safety Factor:", bold: true },
{ text: "Ratio of actual EPP to threshold EPP ≈ 3–5× (very high safety margin)", sub: true },
{ text: "This ensures reliable neuromuscular transmission under most physiological conditions", sub: true },
{ text: "Safety factor is REDUCED in: myasthenia gravis, LEMS, aminoglycoside antibiotics", sub: true },
{ text: "" },
{ text: "The EPP is NOT an action potential – it is a local graded potential. It reaches threshold and triggers flanking voltage-gated Na⁺ channels → full muscle AP." },
{ text: "" },
{ text: "Action potentials propagate bidirectionally along the muscle fiber, entering T-tubules." },
], "Source: Ganong's 26e · Miller's Anesthesia, 10e");
// ── 15. SECTION: METABOLISM ──────────────────────────────────────────────────
sectionHeader("Section 3", "Metabolism at the NMJ", C.navy);
// ── 16. EXCITATION–CONTRACTION COUPLING ──────────────────────────────────────
stepSlide(
"Excitation–Contraction (E–C) Coupling",
[
{ title: "AP into T-tubules", desc: "Muscle AP propagates along sarcolemma and enters transverse tubule (T-tubule) system." },
{ title: "DHPR Activation", desc: "Dihydropyridine receptor (DHPR) in T-tubule membrane senses voltage change → conformational change." },
{ title: "RyR Activation", desc: "DHPR physically couples to and activates ryanodine receptor (RyR1) on sarcoplasmic reticulum (SR) membrane." },
{ title: "Ca²⁺ Release from SR", desc: "RyR1 opens → Ca²⁺ floods from SR into sarcoplasm (rises from 10⁻⁷ to 10⁻⁵ M)." },
{ title: "Troponin C Binding", desc: "Ca²⁺ binds troponin C → conformational change moves tropomyosin → exposes myosin-binding sites on actin." },
{ title: "Cross-bridge Cycling", desc: "Myosin heads bind actin → power stroke (pivoting) → sarcomere shortens → muscle contracts. Requires ATP." },
{ title: "Relaxation", desc: "SR Ca²⁺-ATPase (SERCA) pumps Ca²⁺ back into SR against gradient → Ca²⁺ falls → troponin releases → tropomyosin covers actin → relaxation." },
],
"DHPR = dihydropyridine receptor; RyR1 = ryanodine receptor type 1; SERCA = sarcoplasmic/endoplasmic reticulum Ca²⁺-ATPase. Source: Basic Medical Biochemistry, 6e"
);
// ── 17. ACHE METABOLISM ──────────────────────────────────────────────────────
contentSlide("ACh Metabolism: Acetylcholinesterase (AChE)", [
{ text: "Termination of ACh action is achieved primarily by enzymatic hydrolysis by acetylcholinesterase (AChE).", bold: true },
{ text: "" },
{ text: "Location of AChE:" },
{ text: "Anchored to the basal lamina in the synaptic cleft", sub: true },
{ text: "Also on the junctional folds of the motor end plate", sub: true },
{ text: "" },
{ text: "Reaction:" },
{ text: "ACh + H₂O → Choline + Acetate (catalyzed by AChE)", bold: true },
{ text: "" },
{ text: "Speed: One of the fastest enzymes known – hydrolyzes ACh in <1 ms." },
{ text: "" },
{ text: "Fate of products:" },
{ text: "Choline: ~50% is recycled back into the nerve terminal via high-affinity Na⁺-dependent choline transporter (rate-limiting step for new ACh synthesis)", sub: true },
{ text: "Acetate: diffuses away into plasma", sub: true },
{ text: "" },
{ text: "Clinical: AChE inhibitors (neostigmine, pyridostigmine) block this reaction → ACh accumulates → enhanced and prolonged EPP → reversal of NDMR block." },
], "Source: Ganong's 26e · Goodman & Gilman's, Guyton & Hall Physiology");
// ── 18. ACH RECYCLING CYCLE ──────────────────────────────────────────────────
diagramSlide(
"ACh Synthesis–Release–Hydrolysis Cycle",
[
{ text: "Glucose → Pyruvate → Acetyl-CoA (mitochondria)", color: C.lightTeal, borderColor: C.teal, bold: false },
{ text: "Choline Uptake (ChT1 transporter)", color: C.lightBlue, borderColor: C.blue },
{ text: "ACh Synthesis\nCholine + Acetyl-CoA\n→ ACh (ChAT enzyme)", color: C.accentLight, borderColor: C.accent, bold: true },
{ text: "Packaging into vesicles (VAChT)", color: C.lightBlue, borderColor: C.blue },
{ text: "Nerve AP → Ca²⁺ influx", color: C.lightTeal, borderColor: C.teal },
{ text: "Exocytosis of ACh\n(SNARE complex)", color: C.accentLight, borderColor: C.accent, bold: true },
{ text: "ACh binds nAChR\n→ Muscle contraction", color: C.lightBlue, borderColor: C.blue, bold: true },
{ text: "AChE hydrolyzes ACh\n→ Choline + Acetate", color: C.lightTeal, borderColor: C.teal },
],
"The cycle is continuous: choline is recycled back from the cleft to re-enter synthesis. Rate-limiting step: choline uptake."
);
// ── 19. QUANTAL RELEASE & CALCIUM ────────────────────────────────────────────
contentSlide("Quantal Release & Calcium Dependence", [
{ text: "ACh is released in discrete packets called quanta. Each quantum = contents of one synaptic vesicle (~10,000 ACh molecules).", bold: true },
{ text: "" },
{ text: "Spontaneous release:" },
{ text: "Even without a nerve impulse, individual vesicles randomly fuse → produce miniature endplate potentials (MEPPs)", sub: true },
{ text: "MEPPs are ~0.5 mV each (sub-threshold) – markers of quantal release", sub: true },
{ text: "" },
{ text: "Evoked release (during AP):" },
{ text: "~200–300 quanta released simultaneously per AP", sub: true },
{ text: "Total EPP = sum of individual quantal contributions", sub: true },
{ text: "" },
{ text: "Critical role of Ca²⁺:" },
{ text: "If no Ca²⁺ in extracellular fluid → NO ACh release even with normal depolarization", sub: true },
{ text: "Doubling extracellular Ca²⁺ → 16-fold increase in quantal content released", sub: true },
{ text: "Mg²⁺ competes with Ca²⁺ and reduces quantal release", sub: true },
{ text: "" },
{ text: "Posttetanic potentiation (PTP): Ca²⁺ accumulates in terminal after tetanic stimulation → temporarily increased ACh release → transient reversal of neuromuscular block." },
], "Source: Miller's Anesthesia, 10e");
// ── 20. ENERGY METABOLISM AT NMJ ─────────────────────────────────────────────
contentSlide("Energy Metabolism at the NMJ", [
{ text: "The NMJ is metabolically highly active and depends on continuous ATP supply.", bold: true },
{ text: "" },
{ text: "ATP is required for:" },
{ text: "ACh synthesis: formation of Acetyl-CoA from glucose metabolism", sub: true },
{ text: "Vesicle loading: VAChT transporter is H⁺-ATPase driven (proton gradient)", sub: true },
{ text: "Axonal transport: kinesin/dynein motors transport vesicle precursors to terminal", sub: true },
{ text: "Vesicle recycling: clathrin-mediated endocytosis requires ATP", sub: true },
{ text: "SERCA pump: ATP needed to return Ca²⁺ to SR after contraction", sub: true },
{ text: "Na⁺/K⁺-ATPase: restores resting membrane potential after each AP", sub: true },
{ text: "" },
{ text: "Key mitochondrial role: Motor nerve terminals are rich in mitochondria, providing ATP and acetyl-CoA for sustained neurotransmission." },
{ text: "" },
{ text: "Ischemia or metabolic failure → rapid decline in ACh synthesis and vesicle recycling → neuromuscular failure." },
], "Source: Miller's Anesthesia, 10e · Basic Medical Biochemistry, 6e");
// ── 21. SUMMARY TABLE ────────────────────────────────────────────────────────
tableSlide(
"NMJ Molecules: Roles at a Glance",
["Molecule", "Location", "Role"],
[
["Choline acetyltransferase (ChAT)", "Nerve terminal cytoplasm", "Synthesizes ACh from choline + acetyl-CoA"],
["VAChT", "Vesicle membrane", "Loads ACh into synaptic vesicles (H⁺ gradient driven)"],
["Synaptotagmin", "Vesicle membrane", "Ca²⁺ sensor – triggers SNARE-mediated exocytosis"],
["VAMP / Synaptobrevin", "Vesicle membrane (v-SNARE)", "Docks vesicle to active zone; drives fusion"],
["SNAP-25 + Syntaxin", "Nerve terminal membrane (t-SNARE)", "Partner proteins completing SNARE complex"],
["nAChR (NM)", "Motor end plate (junctional folds)", "Ligand-gated Na⁺/K⁺ channel; generates EPP"],
["Acetylcholinesterase (AChE)", "Synaptic cleft / basal lamina", "Hydrolyzes ACh → choline + acetate (<1 ms)"],
["ChT1 (high-affinity)", "Nerve terminal membrane", "Recycles choline back into terminal (rate-limiting)"],
["Ryanodine receptor (RyR1)", "SR membrane", "Ca²⁺ release channel (opens during E–C coupling)"],
["SERCA pump", "SR membrane", "Pumps Ca²⁺ back into SR; enables relaxation"],
],
"ACh = acetylcholine; SR = sarcoplasmic reticulum; EPP = endplate potential"
);
// ── 22. KEY POINTS ───────────────────────────────────────────────────────────
keyPointsSlide("Key Takeaways", [
{ icon: "1", title: "Chemical Synapse", text: "NMJ converts electrical nerve signals to chemical (ACh), then back to electrical (EPP → muscle AP)" },
{ icon: "2", title: "Ca²⁺ is the Key Trigger", text: "Ca²⁺ influx through P/Q-type channels is absolutely required for ACh exocytosis" },
{ icon: "3", title: "Quantal Release", text: "ACh released in quanta (~10,000 molecules/vesicle); EPP = sum of hundreds of simultaneous quanta" },
{ icon: "4", title: "High Safety Factor", text: "3–5× more ACh released than needed to fire muscle AP; ensures reliable transmission" },
{ icon: "5", title: "nAChR Pentamer", text: "Both α-subunits must bind ACh simultaneously to open the cation channel" },
{ icon: "6", title: "Rapid Termination", text: "AChE hydrolyzes ACh in <1 ms; choline is recycled back (rate-limiting for new synthesis)" },
]);
// ── 23. CLINICAL RELEVANCE ───────────────────────────────────────────────────
contentSlide("Clinical Relevance of NMJ Physiology", [
{ text: "Understanding NMJ physiology underlies many clinical scenarios:", bold: true },
{ text: "" },
{ text: "Myasthenia Gravis: autoantibodies against nAChRs → reduced EPP → fatigable weakness; treated with AChE inhibitors (pyridostigmine)" },
{ text: "" },
{ text: "Lambert-Eaton Myasthenic Syndrome (LEMS): autoantibodies against presynaptic Ca²⁺ channels → reduced ACh release → proximal weakness" },
{ text: "" },
{ text: "Neuromuscular Blocking Drugs (NMBDs):" },
{ text: "Depolarizing: Succinylcholine mimics ACh → prolonged depolarization → fasciculations then flaccid paralysis", sub: true },
{ text: "Non-depolarizing: Vecuronium, rocuronium compete with ACh at nAChR → prevent channel opening → reversed by AChE inhibitors or sugammadex", sub: true },
{ text: "" },
{ text: "Organophosphate poisoning: irreversible AChE inhibition → ACh accumulates → continuous muscle stimulation → paralysis" },
{ text: "" },
{ text: "Botulinum toxin: cleaves SNARE proteins (SNAP-25) → prevents ACh vesicle fusion → flaccid paralysis" },
], "Source: Katzung Pharmacology 16e · Miller's Anesthesia 10e · Goodman & Gilman's");
// ── 24. END SLIDE ─────────────────────────────────────────────────────────────
{
const s = pres.addSlide();
s.background = { color: C.navy };
s.addShape(pres.ShapeType.ellipse, {
x: 6.5, y: -1, w: 5, h: 5,
fill: { color: C.blue, transparency: 80 },
line: { color: C.blue, transparency: 80 }
});
s.addShape(pres.ShapeType.ellipse, {
x: -1, y: 3.2, w: 3.5, h: 3.5,
fill: { color: C.teal, transparency: 80 },
line: { color: C.teal, transparency: 80 }
});
s.addText("Thank You", {
x: 1, y: 1.2, w: 8, h: 1.4,
fontFace: FONT, fontSize: 52, bold: true,
color: C.white, align: "center", margin: 0
});
s.addText("Neuromuscular Junction: Anatomy · Physiology · Metabolism", {
x: 1, y: 2.8, w: 8, h: 0.7,
fontFace: FONT, fontSize: 18, color: C.lightBlue,
align: "center", italic: true, margin: 0
});
s.addShape(pres.ShapeType.rect, { x: 3, y: 3.65, w: 4, h: 0.03, fill: { color: C.accent } });
s.addText("Sources: Ganong's Review of Medical Physiology 26e · Miller's Anesthesia 10e\nBasic Medical Biochemistry 6e · Katzung Pharmacology 16e · Goodman & Gilman's", {
x: 1, y: 3.8, w: 8, h: 0.8,
fontFace: FONT, fontSize: 11, color: C.lightBlue,
align: "center", margin: 0
});
}
// ─── SAVE ─────────────────────────────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/nmj-ppt/NMJ_Anatomy_Physiology_Metabolism.pptx" })
.then(() => console.log("PPT saved successfully"))
.catch(err => { console.error(err); process.exit(1); });
cd /home/daytona/workspace/nmj-ppt && node nmj.js 2>&1
ls -lh /home/daytona/workspace/nmj-ppt/NMJ_Anatomy_Physiology_Metabolism.pptx
NMJ Anatomy Physiology Metabolism
Presentation · PPTX
| # | Slide | Content |
|---|---|---|
| 1 | Title | Neuromuscular Junction: Anatomy · Physiology · Metabolism |
| 2 | Contents | Numbered visual table of contents with 11 sections |
| 3 | Section header | Anatomy (navy dark slide) |
| 4 | Overview | Definition, location, key concept |
| 5 | Structural Components | Two-column: Presynaptic vs Postsynaptic |
| 6 | Synaptic Cleft | ~50–100 nm gap, junctional folds, AChE location |
| 7 | Motor Unit | Innervation ratio, agrin-MuSK-rapsyn clustering |
| 8 | Section header | Physiology (navy dark slide) |
| 9 | ACh Synthesis | ChAT reaction, choline + Acetyl-CoA, VAChT |
| 10 | Vesicle Pools | RRP vs Reserve pool, SNARE proteins |
| 11 | Transmission | 8-step numbered flow diagram |
| 12 | nAChR Structure | Pentamer, subunit composition, adult vs fetal |
| 13 | Receptor Table | Junctional vs Extrajunctional comparison |
| 14 | EPP & Safety Factor | Amplitudes, safety factor 3-5×, LEMS/MG |
| 15 | Section header | Metabolism (navy dark slide) |
| 16 | E-C Coupling | 7-step: AP → DHPR → RyR1 → Ca²⁺ → troponin → contraction → SERCA |
| 17 | AChE Metabolism | Hydrolysis reaction, choline recycling, AChE inhibitors |
| 18 | ACh Cycle Diagram | Flowchart: glucose → synthesis → release → hydrolysis → recycle |
| 19 | Quantal Release | MEPPs, Ca²⁺ dependence, posttetanic potentiation |
| 20 | Energy Metabolism | ATP requirements at all NMJ steps, mitochondria role |
| 21 | Molecule Table | 10-row summary of all key NMJ molecules and roles |
| 22 | Key Takeaways | 6-card amber highlight panel |
| 23 | Clinical Relevance | MG, LEMS, NMBDs, organophosphates, botulinum toxin |
| 24 | End slide | Thank you (navy accent) |
NMJ anatomy and physiology and metabolism ppt in clean white slides 60 slides
NMJ anatomy and physiology and metabolism ppt in clean white slides 60 slides
Give me ppt in 60 slides
mkdir -p /home/daytona/workspace/nmj60 && ls /home/daytona/workspace/nmj60/
NMJ anatomy physiology and metabolism ppt of 60 slides in clean white slides
mkdir -p /home/daytona/workspace/nmj60