~/physiology-unit1-pptx/build.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Physiology Unit I - Guyton & Hall Quick Revision";
pres.author = "Orris Medical Education";
// βββ COLOUR PALETTE ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
const C = {
navy: "0B2447", // dominant dark background
teal: "19A7CE", // accent headings
gold: "F5A623", // highlight / callout
white: "FFFFFF",
lightBg: "EAF4FB", // slide body background (light)
darkCard:"153460", // card on dark bg
red: "E84545", // warning / clinical
green: "27AE60", // positive/normal
gray: "5D6D7E", // muted text
orange: "E67E22", // pathway arrows
purple: "8E44AD", // molecular
};
// βββ HELPERS βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
function titleSlide(title, subtitle) {
const s = pres.addSlide();
s.background = { color: C.navy };
// Decorative left accent bar
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.18, h: 5.625, fill: { color: C.teal }, line: { color: C.teal } });
// Decorative bottom bar
s.addShape(pres.ShapeType.rect, { x: 0, y: 5.0, w: 10, h: 0.625, fill: { color: C.darkCard }, line: { color: C.darkCard } });
s.addText(title, {
x: 0.4, y: 1.5, w: 9.2, h: 1.2,
fontSize: 40, bold: true, color: C.white, fontFace: "Calibri",
align: "left",
});
s.addText(subtitle, {
x: 0.4, y: 2.85, w: 9.2, h: 0.7,
fontSize: 20, color: C.teal, fontFace: "Calibri", align: "left",
});
s.addText("Source: Guyton & Hall Textbook of Medical Physiology, 14th Ed.", {
x: 0.4, y: 5.05, w: 9, h: 0.45,
fontSize: 13, color: C.white, fontFace: "Calibri", italic: true, align: "left",
});
return s;
}
function sectionDivider(num, title, subtitle) {
const s = pres.addSlide();
s.background = { color: C.navy };
s.addShape(pres.ShapeType.rect, { x: 0, y: 2.2, w: 10, h: 1.2, fill: { color: C.teal }, line: { color: C.teal } });
s.addText(`CHAPTER ${num}`, {
x: 0.5, y: 0.7, w: 9, h: 0.6,
fontSize: 16, bold: true, color: C.gold, fontFace: "Calibri", charSpacing: 4,
});
s.addText(title, {
x: 0.5, y: 2.3, w: 9, h: 1.0,
fontSize: 32, bold: true, color: C.white, fontFace: "Calibri", align: "center",
});
if (subtitle) {
s.addText(subtitle, {
x: 0.5, y: 3.65, w: 9, h: 0.55,
fontSize: 17, color: C.teal, fontFace: "Calibri", align: "center",
});
}
return s;
}
function contentSlide(title, topLabel) {
const s = pres.addSlide();
s.background = { color: C.lightBg };
// Top bar
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.75, fill: { color: C.navy }, line: { color: C.navy } });
// Accent line under bar
s.addShape(pres.ShapeType.rect, { x: 0, y: 0.75, w: 10, h: 0.06, fill: { color: C.teal }, line: { color: C.teal } });
s.addText(title, {
x: 0.25, y: 0.06, w: 7.5, h: 0.62,
fontSize: 22, bold: true, color: C.white, fontFace: "Calibri", valign: "middle", margin: 0,
});
if (topLabel) {
s.addText(topLabel, {
x: 7.8, y: 0.1, w: 2.1, h: 0.55,
fontSize: 11, color: C.gold, fontFace: "Calibri", align: "right", valign: "middle",
});
}
return s;
}
function addBullets(slide, items, opts = {}) {
const {
x = 0.35, y = 0.9, w = 9.3, h = 4.5,
fontSize = 16, color = C.navy, bold = false,
} = opts;
const rows = items.map((item, i) => ({
text: item.text || item,
options: {
bullet: { type: "bullet" },
breakLine: i < items.length - 1,
bold: item.bold || bold,
color: item.color || color,
fontSize: item.size || fontSize,
indentLevel: item.indent || 0,
},
}));
slide.addText(rows, { x, y, w, h, fontFace: "Calibri", valign: "top" });
}
function addCard(slide, x, y, w, h, header, body, bgColor = C.navy, hColor = C.teal) {
// Card background
slide.addShape(pres.ShapeType.rect, { x, y, w, h, fill: { color: bgColor }, line: { color: bgColor }, rectRadius: 0.08 });
// Header strip
slide.addShape(pres.ShapeType.rect, { x, y, w, h: 0.42, fill: { color: hColor }, line: { color: hColor }, rectRadius: 0.08 });
// Workaround β draw a rect at the bottom of the header to square-off the rounded bottom corners of the header strip
slide.addShape(pres.ShapeType.rect, { x, y: y + 0.25, w, h: 0.17, fill: { color: hColor }, line: { color: hColor } });
slide.addText(header, {
x: x + 0.08, y: y + 0.03, w: w - 0.16, h: 0.36,
fontSize: 13, bold: true, color: C.white, fontFace: "Calibri", valign: "middle", margin: 0,
});
slide.addText(body, {
x: x + 0.1, y: y + 0.46, w: w - 0.2, h: h - 0.56,
fontSize: 12, color: C.white, fontFace: "Calibri", valign: "top", margin: 0,
});
}
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 1 β TITLE
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
titleSlide(
"UNIT I β INTRODUCTION TO PHYSIOLOGY",
"The Cell & General Physiology | Quick Revision Deck"
);
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 2 β TABLE OF CONTENTS
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
{
const s = contentSlide("TABLE OF CONTENTS", "Unit I Overview");
const topics = [
{ text: "Chapter 1 β Functional Organization & Homeostasis", bold: true, size: 17, color: C.navy },
{ text: " Control systems β’ Negative & Positive Feedback β’ Gain", indent: 1, size: 14, color: C.gray },
{ text: "Chapter 2 β The Cell and Its Functions", bold: true, size: 17, color: C.navy },
{ text: " Cell membrane β’ Organelles β’ Transport mechanisms β’ Cell movement", indent: 1, size: 14, color: C.gray },
{ text: "Chapter 3 β Genetic Control of Protein Synthesis", bold: true, size: 17, color: C.navy },
{ text: " DNA structure β’ Transcription β’ Translation β’ Gene regulation", indent: 1, size: 14, color: C.gray },
{ text: "Quick Tables β’ Key Numbers β’ Clinical Pearls β’ MCQs", bold: true, size: 16, color: C.teal },
];
addBullets(s, topics, { y: 0.95, h: 4.45 });
}
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// CHAPTER 1 DIVIDER
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
sectionDivider("1", "Functional Organization & Homeostasis", "The Internal Environment & Control Systems");
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 4 β WHAT IS HOMEOSTASIS?
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
{
const s = contentSlide("What Is Homeostasis?", "Ch. 1 β Guyton");
// Quote box
s.addShape(pres.ShapeType.rect, { x: 0.35, y: 0.88, w: 9.3, h: 0.78, fill: { color: C.darkCard }, line: { color: C.teal, pt: 1.5 } });
s.addText([
{ text: "Claude Bernard (1865): ", options: { bold: true, color: C.gold } },
{ text: '"The constancy of the internal environment is the condition of free life."', options: { italic: true, color: C.white } },
], { x: 0.5, y: 0.9, w: 9.0, h: 0.72, fontSize: 14, fontFace: "Calibri", valign: "middle" });
// Cards row
const cards = [
["HOMEOSTASIS", "Maintenance of a stable internal environment despite external changes\n(Walter Cannon, 1932)", C.navy],
["INTERNAL ENVIRONMENT", "The Extracellular Fluid (ECF) surrounding all cells\n= Interstitial fluid + Plasma", C.navy],
["WHY IT MATTERS", "Every disease = failure of homeostasis at some level", C.navy],
];
cards.forEach(([h, b, bg], i) => {
addCard(s, 0.28 + i * 3.16, 1.82, 3.0, 1.65, h, b, bg);
});
// Body fluid distribution
s.addShape(pres.ShapeType.rect, { x: 0.28, y: 3.62, w: 9.44, h: 1.72, fill: { color: C.white }, line: { color: C.teal, pt: 1 } });
s.addText("BODY FLUID DISTRIBUTION (70 kg adult)", { x: 0.4, y: 3.68, w: 9, h: 0.38, fontSize: 13, bold: true, color: C.teal, fontFace: "Calibri" });
const bfRows = [
[{ text: "Compartment", options: { bold: true, fill: { color: C.navy }, color: C.white } },
{ text: "Volume", options: { bold: true, fill: { color: C.navy }, color: C.white } },
{ text: "% Body Weight", options: { bold: true, fill: { color: C.navy }, color: C.white } },
{ text: "Key Solute", options: { bold: true, fill: { color: C.navy }, color: C.white } }],
["Total Body Water", "42 L", "60%", "All electrolytes"],
["Intracellular Fluid (ICF)", "28 L", "40%", "KβΊ (140 mmol/L)"],
["Extracellular Fluid (ECF)", "14 L", "20%", "NaβΊ (142 mmol/L)"],
[" Interstitial Fluid", "11 L", "15%", "Proteins (low)"],
[" Plasma", "3 L", "5%", "Albumin, NaβΊ"],
];
s.addTable(bfRows, {
x: 0.3, y: 4.1, w: 9.4, h: 1.28,
border: { pt: 0.5, color: "CCCCCC" },
fontSize: 11, fontFace: "Calibri",
colW: [3.0, 1.4, 1.8, 3.2],
});
}
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 5 β ECF NORMAL VALUES TABLE
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
{
const s = contentSlide("ECF Normal Values β Guyton Table 1.1", "Must-Know Numbers");
s.addText("These are the parameters the body tightly regulates β deviations = DISEASE", {
x: 0.35, y: 0.82, w: 9.3, h: 0.38,
fontSize: 13, italic: true, color: C.gray, fontFace: "Calibri",
});
const rows = [
[{ text: "Parameter", options: { bold: true, fill: { color: C.navy }, color: C.white } },
{ text: "Normal Value", options: { bold: true, fill: { color: C.navy }, color: C.white } },
{ text: "Normal Range", options: { bold: true, fill: { color: C.navy }, color: C.white } },
{ text: "Lethal Limit (approx.)", options: { bold: true, fill: { color: C.navy }, color: C.white } },
{ text: "Unit", options: { bold: true, fill: { color: C.navy }, color: C.white } }],
["NaβΊ (main ECF cation)", "142", "135β145", "115β175", "mmol/L"],
["KβΊ", "4.2", "3.5β5.3", "1.5β9.0", "mmol/L"],
["CaΒ²βΊ", "1.2", "1.0β1.4", "0.5β2.0", "mmol/L"],
["Clβ»", "106", "98β108", "70β130", "mmol/L"],
["HCOββ»", "24", "22β29", "8β45", "mmol/L"],
["Glucose", "90", "70β115", "20β1500", "mg/dL"],
["pH (venous)", "7.4", "7.3β7.5", "6.9β8.0", "β"],
["pOβ (venous)", "40", "25β40", "10β1000", "mm Hg"],
["pCOβ (venous)", "45", "41β51", "5β80", "mm Hg"],
["Body Temperature", "37.0", "37.0Β±0.5", "18.3β43.3", "Β°C"],
];
s.addTable(rows, {
x: 0.28, y: 1.26, w: 9.44, h: 4.1,
border: { pt: 0.5, color: "CCCCCC" },
fontSize: 12, fontFace: "Calibri",
colW: [2.8, 1.5, 1.5, 2.2, 1.44],
});
}
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 6 β CONTROL SYSTEMS FLOWCHART
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
{
const s = contentSlide("Homeostatic Control System", "Negative Feedback");
// Draw flowchart boxes + arrows
const boxes = [
{ label: "STIMULUS\n(Disturbance)", x: 3.8, y: 0.85, color: C.gold, tc: C.navy },
{ label: "RECEPTOR\n(Sensor)", x: 3.8, y: 1.6, color: C.teal, tc: C.white },
{ label: "CONTROL CENTER\n(Integrator)", x: 3.8, y: 2.35, color: C.navy, tc: C.white },
{ label: "EFFECTOR\n(Muscle / Gland)", x: 3.8, y: 3.1, color: C.teal, tc: C.white },
{ label: "RESPONSE\n(Corrects stimulus)", x: 3.8, y: 3.85, color: C.green, tc: C.white },
];
boxes.forEach(b => {
s.addShape(pres.ShapeType.rect, { x: b.x, y: b.y, w: 2.4, h: 0.65, fill: { color: b.color }, line: { color: b.color }, rectRadius: 0.06 });
s.addText(b.label, { x: b.x, y: b.y, w: 2.4, h: 0.65, fontSize: 12, bold: true, color: b.tc, fontFace: "Calibri", align: "center", valign: "middle" });
});
// Arrows between boxes
for (let i = 0; i < boxes.length - 1; i++) {
s.addShape(pres.ShapeType.line, {
x: 5.0, y: boxes[i].y + 0.65, w: 0, h: 0.3,
line: { color: C.orange, pt: 2 },
});
}
// Feedback arrow (curved annotation)
s.addShape(pres.ShapeType.rect, { x: 0.3, y: 1.58, w: 2.8, h: 2.55, fill: { color: C.darkCard }, line: { color: C.gold, pt: 1.5 } });
s.addText([
{ text: "NEGATIVE FEEDBACK\n", options: { bold: true, color: C.gold, breakLine: true } },
{ text: "Response OPPOSES\nthe original stimulus\nβ restores set point\n\n", options: { color: C.white, breakLine: true } },
{ text: "GAIN = -(Correction / Error remaining)\n\n", options: { color: C.teal, breakLine: true } },
{ text: "Baroreceptors: Gain β β2", options: { color: C.gold } },
], { x: 0.42, y: 1.68, w: 2.56, h: 2.35, fontSize: 12, fontFace: "Calibri", valign: "top" });
// Right side: examples
s.addShape(pres.ShapeType.rect, { x: 6.5, y: 0.85, w: 3.22, h: 4.55, fill: { color: C.white }, line: { color: C.teal, pt: 1 } });
s.addText("EXAMPLES", { x: 6.6, y: 0.9, w: 3.0, h: 0.35, fontSize: 13, bold: true, color: C.teal, fontFace: "Calibri" });
addBullets(s,
[
{ text: "NEGATIVE FEEDBACK (common):", bold: true, size: 12, color: C.navy },
{ text: "β’ BP regulation (baroreceptors)", size: 11, indent: 1 },
{ text: "β’ COβ regulation (breathing)", size: 11, indent: 1 },
{ text: "β’ Blood glucose (insulin/glucagon)", size: 11, indent: 1 },
{ text: "β’ Temperature (sweating/shivering)", size: 11, indent: 1 },
{ text: "POSITIVE FEEDBACK (rare β ALBA):", bold: true, size: 12, color: C.red },
{ text: "β’ Action potential (NaβΊ channels)", size: 11, indent: 1, color: C.navy },
{ text: "β’ LH surge β ovulation", size: 11, indent: 1, color: C.navy },
{ text: "β’ Birth (oxytocin)", size: 11, indent: 1, color: C.navy },
{ text: "β’ Aggregation (blood clotting)", size: 11, indent: 1, color: C.navy },
],
{ x: 6.55, y: 1.28, w: 3.1, h: 4.0, fontSize: 12 }
);
}
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// CHAPTER 2 DIVIDER
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
sectionDivider("2", "The Cell and Its Functions", "Membrane β’ Organelles β’ Transport β’ Movement");
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 8 β CELL STRUCTURE MAP
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
{
const s = contentSlide("Cell Organelles β Structure & Function", "Ch. 2 β Guyton");
const organelles = [
{ name: "NUCLEUS", fn: "DNA storage, gene expression, RNA synthesis", color: C.navy },
{ name: "ROUGH ER", fn: "Protein synthesis & folding (has ribosomes)", color: C.teal },
{ name: "SMOOTH ER", fn: "Lipid/steroid synthesis, CaΒ²βΊ storage, detox", color: C.teal },
{ name: "GOLGI", fn: "Processing, packaging, sorting, secretion", color: C.purple },
{ name: "MITOCHONDRIA", fn: "ATP production (aerobic). Own DNA & 70S ribosomes", color: C.orange },
{ name: "LYSOSOMES", fn: "Acid hydrolases (pH 5). Digestion of debris & pathogens", color: C.red },
{ name: "PEROXISOMES", fn: "VLCFA oxidation, HβOβ detox via catalase", color: C.green },
{ name: "CYTOSKELETON", fn: "Actin, microtubules, intermediate filaments β structure & movement", color: C.gray },
];
organelles.forEach((o, i) => {
const col = i % 2;
const row = Math.floor(i / 2);
const x = 0.28 + col * 4.72;
const y = 0.88 + row * 1.15;
s.addShape(pres.ShapeType.rect, { x, y, w: 4.5, h: 1.0, fill: { color: C.white }, line: { color: o.color, pt: 2 } });
s.addShape(pres.ShapeType.rect, { x, y, w: 1.55, h: 1.0, fill: { color: o.color }, line: { color: o.color } });
s.addText(o.name, { x, y, w: 1.55, h: 1.0, fontSize: 11, bold: true, color: C.white, fontFace: "Calibri", align: "center", valign: "middle" });
s.addText(o.fn, { x: x + 1.62, y, w: 2.82, h: 1.0, fontSize: 12, color: C.navy, fontFace: "Calibri", valign: "middle" });
});
}
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 9 β CELL MEMBRANE & GLYCOCALYX
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
{
const s = contentSlide("Cell Membrane β Fluid Mosaic Model", "Ch. 2");
// Left diagram area
s.addShape(pres.ShapeType.rect, { x: 0.28, y: 0.88, w: 4.6, h: 4.5, fill: { color: C.white }, line: { color: C.teal, pt: 1 } });
// Draw simplified membrane layers
s.addShape(pres.ShapeType.rect, { x: 0.38, y: 1.0, w: 4.4, h: 0.38, fill: { color: "B3E5FC" }, line: { color: "B3E5FC" } });
s.addText("EXTRACELLULAR (glycocalyx, NaβΊ 142)", { x: 0.38, y: 1.01, w: 4.4, h: 0.36, fontSize: 10, color: C.navy, fontFace: "Calibri", align: "center", valign: "middle" });
s.addShape(pres.ShapeType.rect, { x: 0.38, y: 1.45, w: 4.4, h: 0.28, fill: { color: C.teal }, line: { color: C.teal } });
s.addText("Outer Phospholipid Leaflet", { x: 0.38, y: 1.45, w: 4.4, h: 0.28, fontSize: 9, color: C.white, fontFace: "Calibri", align: "center", valign: "middle" });
s.addShape(pres.ShapeType.rect, { x: 0.38, y: 1.78, w: 4.4, h: 0.28, fill: { color: C.navy }, line: { color: C.navy } });
s.addText("Hydrophobic Core (fatty acid tails)", { x: 0.38, y: 1.78, w: 4.4, h: 0.28, fontSize: 9, color: C.white, fontFace: "Calibri", align: "center", valign: "middle" });
s.addShape(pres.ShapeType.rect, { x: 0.38, y: 2.11, w: 4.4, h: 0.28, fill: { color: C.teal }, line: { color: C.teal } });
s.addText("Inner Phospholipid Leaflet", { x: 0.38, y: 2.11, w: 4.4, h: 0.28, fontSize: 9, color: C.white, fontFace: "Calibri", align: "center", valign: "middle" });
s.addShape(pres.ShapeType.rect, { x: 0.38, y: 2.44, w: 4.4, h: 0.38, fill: { color: "E8F5E9" }, line: { color: "E8F5E9" } });
s.addText("INTRACELLULAR (KβΊ 140 mmol/L, proteins)", { x: 0.38, y: 2.45, w: 4.4, h: 0.36, fontSize: 10, color: C.navy, fontFace: "Calibri", align: "center", valign: "middle" });
// Protein types legend
s.addText("MEMBRANE PROTEINS:", { x: 0.38, y: 2.92, w: 4.4, h: 0.32, fontSize: 12, bold: true, color: C.navy, fontFace: "Calibri" });
addBullets(s, [
{ text: "Ion channels β NaβΊ, KβΊ, CaΒ²βΊ", size: 11 },
{ text: "Pumps β NaβΊ/KβΊ ATPase", size: 11 },
{ text: "Receptors β insulin, adrenergic", size: 11 },
{ text: "Glycoproteins (ABO antigens)", size: 11 },
], { x: 0.42, y: 3.22, w: 4.2, h: 1.9, fontSize: 11 });
// Right panel: key facts
const facts = [
{ hdr: "FLUID MOSAIC MODEL (1972)", body: "Singer & Nicolson\nLipid bilayer + floating proteins", c: C.teal },
{ hdr: "GLYCOCALYX", body: "Outer carbohydrate coat\nFunctions: Cell ID (ABO), hormone receptors, cell adhesion, repels negative charges", c: C.purple },
{ hdr: "NaβΊ/KβΊ ATPase", body: "3 NaβΊ OUT / 2 KβΊ IN / 1 ATP\nResting membrane potential = β70 mV\nInhibited by: DIGOXIN", c: C.red },
];
facts.forEach((f, i) => {
addCard(s, 5.1, 0.88 + i * 1.52, 4.62, 1.42, f.hdr, f.body, C.navy, f.c);
});
}
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 10 β TRANSPORT MECHANISMS TABLE
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
{
const s = contentSlide("Transport Across Cell Membrane", "Ch. 2");
const rows = [
[{ text: "Type", options: { bold: true, fill: { color: C.navy }, color: C.white } },
{ text: "Energy?", options: { bold: true, fill: { color: C.navy }, color: C.white } },
{ text: "Direction", options: { bold: true, fill: { color: C.navy }, color: C.white } },
{ text: "Mechanism", options: { bold: true, fill: { color: C.navy }, color: C.white } },
{ text: "Examples", options: { bold: true, fill: { color: C.navy }, color: C.white } }],
[{ text: "Simple Diffusion", options: { fill: { color: "E3F2FD" } } }, "No", "HighβLow conc.", "Through lipid bilayer", "Oβ, COβ, steroid hormones, alcohol"],
[{ text: "Facilitated Diffusion", options: { fill: { color: "E3F2FD" } } }, "No", "HighβLow conc.", "Via carrier/channel proteins", "Glucose (GLUT1-4), ions through open channels"],
[{ text: "Osmosis", options: { fill: { color: "E3F2FD" } } }, "No", "LowβHigh solute", "Water through aquaporins", "AQP1 (RBC, kidney), AQP2 (collecting duct)"],
[{ text: "Primary Active", options: { fill: { color: "FFF3E0" } } }, "YES (ATP)", "Against gradient", "ATP hydrolysis drives pump", "NaβΊ/KβΊ ATPase, CaΒ²βΊ pump, HβΊ pump"],
[{ text: "Secondary Active (cotransport)", options: { fill: { color: "FFF3E0" } } }, "Indirect", "NaβΊ down + other up", "NaβΊ gradient drives co-transport", "SGLT1/2 (NaβΊ-glucose), NaβΊ-amino acid"],
[{ text: "Secondary Active (countertransport)", options: { fill: { color: "FFF3E0" } } }, "Indirect", "NaβΊ down + HβΊ up", "NaβΊ in, other out (antiport)", "NaβΊ/HβΊ exchanger, NaβΊ/CaΒ²βΊ exchanger"],
[{ text: "Endocytosis", options: { fill: { color: "F3E5F5" } } }, "YES (ATP)", "Into cell", "Pinocytosis / Phagocytosis", "Macrophage engulfing bacteria, LDL uptake"],
[{ text: "Exocytosis", options: { fill: { color: "F3E5F5" } } }, "YES", "Out of cell", "Vesicle fusion with membrane", "Insulin secretion, neurotransmitter release"],
];
s.addTable(rows, {
x: 0.28, y: 0.88, w: 9.44, h: 4.5,
border: { pt: 0.5, color: "CCCCCC" },
fontSize: 11, fontFace: "Calibri",
colW: [1.9, 0.9, 1.4, 2.0, 3.24],
});
}
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 11 β Na+/K+ ATPase DEEP DIVE
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
{
const s = contentSlide("NaβΊ/KβΊ ATPase β The Master Pump", "Clinical Focus");
// Flowchart of pump cycle
s.addShape(pres.ShapeType.rect, { x: 0.28, y: 0.88, w: 5.5, h: 4.5, fill: { color: C.white }, line: { color: C.navy, pt: 1 } });
s.addText("PUMP CYCLE", { x: 0.38, y: 0.93, w: 5.3, h: 0.35, fontSize: 14, bold: true, color: C.navy, fontFace: "Calibri" });
const steps = [
"β 3 NaβΊ (inside cell) bind to pump",
"β‘ ATP hydrolyzed β ADP + Pi\n Pump becomes phosphorylated",
"β’ Shape change β 3 NaβΊ expelled OUTSIDE",
"β£ 2 KβΊ (from outside) bind to pump",
"β€ Pi released β pump returns to original shape",
"β₯ 2 KβΊ released INSIDE cell",
];
steps.forEach((step, i) => {
const bg = i % 2 === 0 ? "EAF4FB" : C.white;
s.addShape(pres.ShapeType.rect, { x: 0.33, y: 1.33 + i * 0.52, w: 5.35, h: 0.48, fill: { color: bg }, line: { color: "CCCCCC", pt: 0.5 } });
s.addText(step, { x: 0.38, y: 1.35 + i * 0.52, w: 5.25, h: 0.44, fontSize: 11.5, color: C.navy, fontFace: "Calibri", valign: "middle" });
});
// Results
s.addShape(pres.ShapeType.rect, { x: 0.33, y: 4.46, w: 5.35, h: 0.75, fill: { color: C.gold }, line: { color: C.gold } });
s.addText("NET: 3 NaβΊ OUT / 2 KβΊ IN / 1 ATP consumed\nResting Membrane Potential = β70 mV (inside negative)", {
x: 0.38, y: 4.48, w: 5.25, h: 0.7,
fontSize: 12, bold: true, color: C.navy, fontFace: "Calibri", valign: "middle",
});
// Right: Clinical table
s.addShape(pres.ShapeType.rect, { x: 6.0, y: 0.88, w: 3.72, h: 4.5, fill: { color: C.navy }, line: { color: C.navy } });
s.addText("CLINICAL IMPORTANCE", { x: 6.1, y: 0.93, w: 3.52, h: 0.38, fontSize: 13, bold: true, color: C.teal, fontFace: "Calibri" });
addBullets(s, [
{ text: "Maintains RMP (β70 mV)", size: 12, color: C.white },
{ text: "Prevents cell swelling (osmotic)", size: 12, color: C.white },
{ text: "Creates NaβΊ gradient for secondary active transport", size: 12, color: C.white },
{ text: "Uses 20β30% of body's resting energy!", size: 12, color: C.gold, bold: true },
{ text: "DIGOXIN inhibits pump", size: 12, color: C.red, bold: true },
{ text: " β β ICF NaβΊ β slows NaβΊ/CaΒ²βΊ exchanger β β ICF CaΒ²βΊ β stronger heart contraction", size: 11, color: C.white, indent: 1 },
{ text: "Toxicity: hyperkalemia, arrhythmias, yellow-green halos", size: 11, color: C.orange, indent: 1 },
], { x: 6.1, y: 1.38, w: 3.52, h: 3.85, fontSize: 12 });
}
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 12 β LYSOSOMES & STORAGE DISEASES
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
{
const s = contentSlide("Lysosomes & Storage Diseases", "Pathophysiology");
// Header info
s.addText("Lysosomes contain ~40 acid hydrolases active at pH 5 (maintained by HβΊ pump). Deficiency β substrate accumulates.", {
x: 0.35, y: 0.82, w: 9.3, h: 0.48,
fontSize: 12, italic: true, color: C.gray, fontFace: "Calibri",
});
const rows = [
[{ text: "Disease", options: { bold: true, fill: { color: C.navy }, color: C.white } },
{ text: "Missing Enzyme", options: { bold: true, fill: { color: C.navy }, color: C.white } },
{ text: "Substrate Accumulated", options: { bold: true, fill: { color: C.navy }, color: C.white } },
{ text: "Key Features", options: { bold: true, fill: { color: C.navy }, color: C.white } },
{ text: "Treatment", options: { bold: true, fill: { color: C.navy }, color: C.white } }],
["Gaucher disease", "Glucocerebrosidase", "Glucocerebroside", "Hepatosplenomegaly, bone pain, 'wrinkled paper' macrophages", "Imiglucerase (ERT)"],
["Tay-Sachs", "Hexosaminidase A", "GM2 ganglioside", "Neurodegeneration, cherry-red spot, fatal in childhood", "No cure (supportive)"],
["Niemann-Pick", "Sphingomyelinase", "Sphingomyelin", "Hepatosplenomegaly, cherry-red spot, foam cells", "Miglustat (type C)"],
["Pompe disease", "Acid maltase (Ξ±-glucosidase)", "Glycogen", "Cardiomegaly, hypotonia, myopathy", "Alglucosidase alfa (ERT)"],
["Hurler syndrome", "Ξ±-L-iduronidase", "Heparan sulfate", "Coarse facies, corneal clouding, developmental delay", "HSCT, Laronidase"],
["Krabbe disease", "Galactocerebrosidase", "Galactocerebroside", "Severe neurodegeneration, leukodystrophy", "HSCT (early)"],
];
s.addTable(rows, {
x: 0.28, y: 1.38, w: 9.44, h: 4.0,
border: { pt: 0.5, color: "CCCCCC" },
fontSize: 11, fontFace: "Calibri",
colW: [1.6, 2.0, 1.8, 2.5, 1.54],
});
}
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 13 β ENDOCYTOSIS & PHAGOCYTOSIS
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
{
const s = contentSlide("Endocytosis β Pinocytosis & Phagocytosis", "Ch. 2");
// Two-column layout
// Left: Pinocytosis
s.addShape(pres.ShapeType.rect, { x: 0.28, y: 0.88, w: 4.65, h: 4.5, fill: { color: C.white }, line: { color: C.teal, pt: 1.5 } });
s.addText("PINOCYTOSIS (Cell Drinking)", { x: 0.38, y: 0.93, w: 4.45, h: 0.38, fontSize: 14, bold: true, color: C.teal, fontFace: "Calibri" });
addBullets(s, [
{ text: "Molecule binds receptor at COATED PIT", size: 12, color: C.navy },
{ text: "Clathrin lattice invaginates pit inward", size: 12, color: C.navy },
{ text: "Membrane pinches off β clathrin-coated vesicle", size: 12, color: C.navy },
{ text: "Clathrin shed β Early endosome forms", size: 12, color: C.navy },
{ text: "Protein recycled to membrane OR degraded in lysosome", size: 12, color: C.navy },
{ text: "", size: 8 },
{ text: "Requires: ATP + CaΒ²βΊ", bold: true, size: 12, color: C.red },
{ text: "Rate: up to 3%/min of macrophage membrane!", size: 11, color: C.gray },
{ text: "Examples: LDL uptake (via LDLR), transferrin", size: 12, color: C.navy },
{ text: "", size: 8 },
{ text: "FAMILIAL HYPERCHOLESTEROLEMIA:", bold: true, size: 12, color: C.red },
{ text: "Defective LDL receptor β LDL not endocytosed β very high LDL β premature CAD", size: 11, indent: 1, color: C.navy },
], { x: 0.38, y: 1.38, w: 4.45, h: 3.88, fontSize: 12 });
// Right: Phagocytosis
s.addShape(pres.ShapeType.rect, { x: 5.1, y: 0.88, w: 4.62, h: 4.5, fill: { color: C.white }, line: { color: C.orange, pt: 1.5 } });
s.addText("PHAGOCYTOSIS (Cell Eating)", { x: 5.2, y: 0.93, w: 4.42, h: 0.38, fontSize: 14, bold: true, color: C.orange, fontFace: "Calibri" });
addBullets(s, [
{ text: "Bacterium coated with Ab (OPSONIZATION)", size: 12, color: C.navy },
{ text: "Ab binds Fc receptor on macrophage", size: 12, color: C.navy },
{ text: "Pseudopodia extend and surround particle", size: 12, color: C.navy },
{ text: "Membrane fuses β PHAGOSOME formed", size: 12, color: C.navy },
{ text: "Phagosome + Lysosome β PHAGOLYSOSOME", size: 12, color: C.navy },
{ text: "Hydrolases + NADPH oxidase kill bacterium", size: 12, color: C.navy },
{ text: "Residual body expelled by exocytosis", size: 12, color: C.navy },
{ text: "", size: 8 },
{ text: "CHRONIC GRANULOMATOUS DISEASE (CGD):", bold: true, size: 12, color: C.red },
{ text: "NADPH oxidase deficiency β can phagocytose BUT CANNOT KILL β recurrent infections with catalase+ organisms (S. aureus, Aspergillus)", size: 11, indent: 1, color: C.navy },
], { x: 5.2, y: 1.38, w: 4.42, h: 3.88, fontSize: 12 });
}
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// CHAPTER 3 DIVIDER
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
sectionDivider("3", "Genetic Control of Protein Synthesis", "DNA β RNA β Protein β’ The Central Dogma");
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 15 β DNA STRUCTURE
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
{
const s = contentSlide("DNA Structure & The Genetic Code", "Ch. 3 β Guyton");
// Left: DNA facts
s.addShape(pres.ShapeType.rect, { x: 0.28, y: 0.88, w: 4.65, h: 4.5, fill: { color: C.white }, line: { color: C.navy, pt: 1 } });
s.addText("DNA STRUCTURE", { x: 0.38, y: 0.93, w: 4.45, h: 0.38, fontSize: 14, bold: true, color: C.navy, fontFace: "Calibri" });
const dnaTable = [
[{ text: "Feature", options: { bold: true, fill: { color: C.teal }, color: C.white } },
{ text: "DNA", options: { bold: true, fill: { color: C.teal }, color: C.white } },
{ text: "RNA", options: { bold: true, fill: { color: C.teal }, color: C.white } }],
["Sugar", "Deoxyribose", "Ribose"],
["Bases", "A, T, G, C", "A, U, G, C"],
["Strands", "Double (helix)", "Single"],
["Location", "Nucleus, mito", "Nucleus + Cytoplasm"],
["Thymine/Uracil", "Thymine (T)", "Uracil (U)"],
["Stability", "Very stable", "Short-lived"],
];
s.addTable(dnaTable, {
x: 0.33, y: 1.35, w: 4.55, h: 2.2,
border: { pt: 0.5, color: "CCCCCC" },
fontSize: 11, fontFace: "Calibri",
colW: [1.5, 1.5, 1.55],
});
s.addText("BASE PAIRING RULES (Chargaff):", { x: 0.38, y: 3.62, w: 4.45, h: 0.32, fontSize: 12, bold: true, color: C.navy, fontFace: "Calibri" });
addBullets(s, [
{ text: "A = T (2 hydrogen bonds) β DNA only", size: 12 },
{ text: "A = U (2 hydrogen bonds) β RNA", size: 12 },
{ text: "G β‘ C (3 hydrogen bonds) β both", size: 12 },
{ text: "Purines (2 rings): Adenine + Guanine β 'PuRE As Gold'", size: 11, color: C.gray },
{ text: "Pyrimidines (1 ring): Cytosine + Thymine/Uracil", size: 11, color: C.gray },
], { x: 0.38, y: 3.98, w: 4.45, h: 1.3 });
// Right: Genetic code facts
s.addShape(pres.ShapeType.rect, { x: 5.1, y: 0.88, w: 4.62, h: 4.5, fill: { color: C.white }, line: { color: C.teal, pt: 1 } });
s.addText("THE GENETIC CODE", { x: 5.2, y: 0.93, w: 4.42, h: 0.38, fontSize: 14, bold: true, color: C.teal, fontFace: "Calibri" });
const codeRows = [
[{ text: "Property", options: { bold: true, fill: { color: C.navy }, color: C.white } },
{ text: "Meaning", options: { bold: true, fill: { color: C.navy }, color: C.white } }],
["Triplet", "3 bases = 1 codon = 1 amino acid"],
["Degeneracy", "64 codons for only 20 amino acids (multiple codons/AA)"],
["Non-overlapping", "Each base read only once"],
["Universal", "Same code in all life forms"],
["Unambiguous", "Each codon = only ONE amino acid"],
["START codon", "AUG (codes for Methionine)"],
["STOP codons", "UAA, UAG, UGA (3 codons, no tRNA match)"],
];
s.addTable(codeRows, {
x: 5.15, y: 1.35, w: 4.5, h: 2.9,
border: { pt: 0.5, color: "CCCCCC" },
fontSize: 11, fontFace: "Calibri",
colW: [1.7, 2.8],
});
s.addShape(pres.ShapeType.rect, { x: 5.15, y: 4.35, w: 4.5, h: 0.88, fill: { color: C.darkCard }, line: { color: C.gold, pt: 1 } });
s.addText([
{ text: "SICKLE CELL DISEASE β 1 mutation changes codon 6:\n", options: { bold: true, color: C.gold, breakLine: true } },
{ text: "Normal: GAG β Glutamic acid Mutant: GTG β Valine", options: { color: C.white } },
], { x: 5.2, y: 4.38, w: 4.4, h: 0.8, fontSize: 11, fontFace: "Calibri", valign: "middle" });
}
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 16 β TRANSCRIPTION FLOWCHART
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
{
const s = contentSlide("Transcription β DNA β mRNA", "Central Dogma Step 1");
// Step-by-step flow on left
const steps = [
{ step: "1. INITIATION", desc: "Transcription factors bind PROMOTER upstream of gene", color: C.teal },
{ step: "2. HELIX UNWINDING", desc: "RNA Polymerase II recruited; DNA double helix unwinds at transcription start site", color: C.navy },
{ step: "3. ELONGATION", desc: "RNA polymerase moves 3'β5' along template strand, synthesizes complementary RNA 5'β3'\nDNA AβRNA U, DNA TβRNA A, DNA GβRNA C, DNA CβRNA G", color: C.teal },
{ step: "4. TERMINATION", desc: "Polymerase reaches termination sequence; pre-mRNA transcript released; DNA helix reforms", color: C.navy },
{ step: "5. mRNA PROCESSING", desc: "β 5' Cap (7-methylguanosine) β protects + ribosome recognition\nβ‘ 3' Poly-A tail β stabilizes mRNA\nβ’ Splicing β introns removed, exons joined (spliceosome/snRNA)", color: C.purple },
{ step: "6. EXPORT", desc: "Mature mRNA exits through NUCLEAR PORES into cytoplasm for translation", color: C.green },
];
steps.forEach((st, i) => {
const y = 0.88 + i * 0.76;
s.addShape(pres.ShapeType.rect, { x: 0.28, y, w: 9.44, h: 0.7, fill: { color: i % 2 === 0 ? "EAF4FB" : C.white }, line: { color: "DDDDDD", pt: 0.5 } });
s.addShape(pres.ShapeType.rect, { x: 0.28, y, w: 1.6, h: 0.7, fill: { color: st.color }, line: { color: st.color } });
s.addText(st.step, { x: 0.28, y, w: 1.6, h: 0.7, fontSize: 10, bold: true, color: C.white, fontFace: "Calibri", align: "center", valign: "middle" });
s.addText(st.desc, { x: 1.95, y: y + 0.04, w: 7.6, h: 0.62, fontSize: 11, color: C.navy, fontFace: "Calibri", valign: "middle" });
});
// Bottom clinical note
s.addShape(pres.ShapeType.rect, { x: 0.28, y: 5.4, w: 9.44, h: 0.1, fill: { color: C.teal }, line: { color: C.teal } });
}
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 17 β TRANSLATION FLOWCHART
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
{
const s = contentSlide("Translation β mRNA β Protein", "Central Dogma Step 2");
// Ribosome comparison table
s.addText("RIBOSOME STRUCTURE:", { x: 0.35, y: 0.85, w: 5.0, h: 0.35, fontSize: 13, bold: true, color: C.navy, fontFace: "Calibri" });
const ribRows = [
[{ text: "Feature", options: { bold: true, fill: { color: C.navy }, color: C.white } },
{ text: "Eukaryote", options: { bold: true, fill: { color: C.navy }, color: C.white } },
{ text: "Prokaryote", options: { bold: true, fill: { color: C.navy }, color: C.white } }],
["Total", "80S", "70S (Antibiotic target!)"],
["Small subunit", "40S", "30S"],
["Large subunit", "60S", "50S"],
["rRNA", "18S, 5.8S, 28S, 5S", "16S, 23S, 5S"],
];
s.addTable(ribRows, {
x: 0.33, y: 1.22, w: 5.5, h: 1.5,
border: { pt: 0.5, color: "CCCCCC" },
fontSize: 12, fontFace: "Calibri",
colW: [1.5, 2.0, 2.0],
});
// Translation steps
s.addText("TRANSLATION STEPS:", { x: 0.35, y: 2.82, w: 9.3, h: 0.35, fontSize: 13, bold: true, color: C.teal, fontFace: "Calibri" });
const tlSteps = [
{ phase: "INITIATION", detail: "mRNA binds 40S subunit β scans for AUG β Met-tRNA in P-site β 60S joins β 80S complex ready", c: C.navy },
{ phase: "ELONGATION", detail: "β Aminoacyl-tRNA enters A-site (codon-anticodon match)\nβ‘ Peptide bond formed by peptidyl transferase (= rRNA!)\nβ’ Ribosome translocates 3 nucleotides β new codon in A-site", c: C.teal },
{ phase: "TERMINATION", detail: "Stop codon (UAA/UAG/UGA) in A-site β no matching tRNA β release factor binds β polypeptide released β ribosome dissociates", c: C.orange },
];
tlSteps.forEach((ts, i) => {
const y = 3.22 + i * 0.68;
s.addShape(pres.ShapeType.rect, { x: 0.28, y, w: 9.44, h: 0.62, fill: { color: i % 2 === 0 ? "EAF4FB" : C.white }, line: { color: "DDDDDD", pt: 0.5 } });
s.addShape(pres.ShapeType.rect, { x: 0.28, y, w: 1.4, h: 0.62, fill: { color: ts.c }, line: { color: ts.c } });
s.addText(ts.phase, { x: 0.28, y, w: 1.4, h: 0.62, fontSize: 10, bold: true, color: C.white, fontFace: "Calibri", align: "center", valign: "middle" });
s.addText(ts.detail, { x: 1.75, y: y + 0.04, w: 7.8, h: 0.54, fontSize: 11, color: C.navy, fontFace: "Calibri", valign: "middle" });
});
// Antibiotic table right-side upper
s.addShape(pres.ShapeType.rect, { x: 5.9, y: 0.82, w: 3.82, h: 2.25, fill: { color: C.navy }, line: { color: C.navy } });
s.addText("ANTIBIOTICS vs RIBOSOMES", { x: 6.0, y: 0.87, w: 3.62, h: 0.35, fontSize: 12, bold: true, color: C.gold, fontFace: "Calibri" });
const abRows = [
[{ text: "Target", options: { bold: true, fill: { color: C.teal }, color: C.white } },
{ text: "Drug", options: { bold: true, fill: { color: C.teal }, color: C.white } },
{ text: "Use", options: { bold: true, fill: { color: C.teal }, color: C.white } }],
["30S", "Aminoglycosides", "Gram-negative"],
["30S", "Tetracyclines", "Atypical organisms"],
["50S", "Macrolides", "Atypical pneumonia"],
["50S", "Chloramphenicol", "Typhoid, meningitis"],
["50S", "Linezolid", "MRSA, VRE"],
];
s.addTable(abRows, {
x: 5.93, y: 1.24, w: 3.75, h: 1.78,
border: { pt: 0.5, color: "444444" },
fontSize: 10.5, fontFace: "Calibri",
colW: [0.7, 1.55, 1.5],
});
}
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 18 β PHARMACOLOGY CONNECTIONS TABLE
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
{
const s = contentSlide("Pharmacology β Physiological Mechanisms & Drugs", "Applied Pharmacology");
const rows = [
[{ text: "Mechanism", options: { bold: true, fill: { color: C.navy }, color: C.white } },
{ text: "Drug", options: { bold: true, fill: { color: C.navy }, color: C.white } },
{ text: "Action", options: { bold: true, fill: { color: C.navy }, color: C.white } },
{ text: "Clinical Use", options: { bold: true, fill: { color: C.navy }, color: C.white } },
{ text: "Key ADR", options: { bold: true, fill: { color: C.navy }, color: C.white } }],
["NaβΊ/KβΊ ATPase inhibition", "Digoxin", "β ICF CaΒ²βΊ β β contractility", "Heart failure, AF", "Arrhythmias, yellow-green halos, hyperKβΊ"],
["DNA transcription (prokaryote)", "Rifampicin", "Inhibits bacterial RNA polymerase", "TB, leprosy, meningitis prophylaxis", "Orange secretions, hepatotoxicity, enzyme inducer"],
["30S ribosome inhibition", "Gentamicin", "mRNA misreading", "Gram-negative sepsis", "Ototoxicity, nephrotoxicity"],
["50S ribosome inhibition", "Erythromycin", "Blocks translocation", "Atypical pneumonia, STIs", "GI upset, QT prolongation"],
["Microtubule polymerization", "Colchicine", "Binds tubulin β inhibits spindle", "Gout, FMF", "GI toxicity, myopathy"],
["Microtubule stabilization", "Paclitaxel (Taxol)", "Prevents depolymerization β mitotic arrest", "Breast/ovarian cancer", "Peripheral neuropathy, neutropenia"],
["LDL receptor upregulation", "Statins (Atorvastatin)", "β LDL receptor expression β β LDL endocytosis", "Hypercholesterolemia", "Myopathy, hepatotoxicity"],
["Lysosomal enzyme replacement", "Imiglucerase", "Replaces glucocerebrosidase", "Gaucher disease", "Infusion reactions"],
["mRNA silencing (RNAi)", "Patisiran", "Silences TTR mRNA", "Hereditary amyloidosis", "Infusion reactions, nausea"],
];
s.addTable(rows, {
x: 0.25, y: 0.88, w: 9.5, h: 4.6,
border: { pt: 0.5, color: "CCCCCC" },
fontSize: 10.5, fontFace: "Calibri",
colW: [2.1, 1.5, 1.8, 1.8, 2.3],
});
}
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 19 β CLINICAL PEARLS & IMPORTANT DISEASES
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
{
const s = contentSlide("Clinical Pearls β Unit I", "High-Yield for Exams");
const pearls = [
{ title: "Kartagener Syndrome", body: "Dynein defect β immotile cilia\nBronchiectasis + Situs inversus + Infertility (male) + Sinusitis", c: C.teal },
{ title: "CGD (Chronic Granulomatous Disease)", body: "NADPH oxidase deficiency\nPhagocytose but can't kill catalaseβΊ organisms (S. aureus, Aspergillus)", c: C.red },
{ title: "Mitochondrial Diseases (MELAS, MERRF, LHON)", body: "Maternal inheritance (mtDNA from egg)\nAffects high-energy tissues: brain, muscle, retina", c: C.orange },
{ title: "Zellweger Syndrome", body: "Absent peroxisomes β VLCFA accumulate\nSevere neurological dysfunction, fatal in first year", c: C.purple },
{ title: "Familial Hypercholesterolemia", body: "LDL receptor defect β impaired endocytosis of LDL\nVery high LDL β premature coronary artery disease", c: C.navy },
{ title: "Cushing's Disease", body: "ACTH-secreting pituitary adenoma β cortisol excess\nNegative feedback FAILS β buffalo hump, hypertension, diabetes, osteoporosis", c: C.green },
];
pearls.forEach((p, i) => {
const col = i % 2;
const row = Math.floor(i / 2);
addCard(s, 0.28 + col * 4.72, 0.88 + row * 1.57, 4.5, 1.48, p.title, p.body, C.navy, p.c);
});
}
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 20 β IMPORTANT NUMBERS
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
{
const s = contentSlide("Key Numbers β Must Memorize", "Numerical Values");
const rows = [
[{ text: "Parameter", options: { bold: true, fill: { color: C.navy }, color: C.white } },
{ text: "Value", options: { bold: true, fill: { color: C.navy }, color: C.white } },
{ text: "Unit", options: { bold: true, fill: { color: C.navy }, color: C.white } },
{ text: "Clinical Significance", options: { bold: true, fill: { color: C.navy }, color: C.white } }],
["Total body cells", "35β40 trillion", "cells", "Most numerous = RBC (~25 trillion)"],
["Total body water (70 kg)", "42", "litres", "60% body weight"],
["ICF", "28", "litres", "40% body weight; KβΊ dominant"],
["ECF", "14", "litres", "20% body weight; NaβΊ dominant"],
["Plasma volume", "~3", "litres", "5% body weight"],
["Plasma osmolality", "285β295", "mOsm/kg", "NaβΊ is main determinant"],
["Resting membrane potential", "β70", "mV", "Inside negative; set by NaβΊ/KβΊ ATPase"],
["NaβΊ in ECF", "142", "mmol/L", "Main ECF cation"],
["KβΊ in ICF", "140", "mmol/L", "Main ICF cation"],
["Normal plasma pH", "7.35β7.45", "β", "Narrow range; deviation fatal"],
["Normal body temperature", "37", "Β°C", "Enzyme optima; deviations dangerous"],
["Eukaryote ribosome", "80S (40S + 60S)", "β", "Target of eukaryote-specific drugs"],
["Prokaryote ribosome", "70S (30S + 50S)", "β", "Target of antibiotics"],
["Human genome", "~3 billion", "base pairs", "Only 1.5% codes for proteins!"],
["Number of human genes", "~20,000β25,000", "genes", "Encodes ~100,000+ proteins (alt. splicing)"],
];
s.addTable(rows, {
x: 0.28, y: 0.88, w: 9.44, h: 4.6,
border: { pt: 0.5, color: "CCCCCC" },
fontSize: 11, fontFace: "Calibri",
colW: [2.5, 1.6, 1.1, 4.24],
});
}
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 21 β COMMON MISTAKES & EXAM TRAPS
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
{
const s = contentSlide("Common Mistakes & Exam Traps", "Don't Fall Here!");
const mistakes = [
{ q: "NaβΊ/KβΊ ATPase direction?", a: "3 NaβΊ OUT, 2 KβΊ IN (NOT the reverse!)", c: C.red },
{ q: "DNA contains Uracil?", a: "NO β DNA has Thymine (T). Only RNA has Uracil (U).", c: C.red },
{ q: "Ribosome is membrane-bound?", a: "Free ribosomes are NOT membrane-bound. Only those on rough ER are.", c: C.orange },
{ q: "Positive feedback always = disease?", a: "NO β Action potential, LH surge, parturition, clotting = normal physiology!", c: C.orange },
{ q: "pOβ venous = pOβ arterial?", a: "Venous pOβ = 40 mmHg. Arterial pOβ = 95 mmHg. Very different!", c: C.red },
{ q: "Mitochondria use 80S ribosomes?", a: "NO β Mitochondria use 70S ribosomes (bacterial origin, endosymbiotic theory).", c: C.orange },
{ q: "All 64 codons code for amino acids?", a: "3 are STOP codons (UAA, UAG, UGA). Only 61 code for AAs.", c: C.teal },
{ q: "Nuclear membrane = single layer?", a: "The nuclear envelope is DOUBLE-layered with nuclear pores.", c: C.teal },
];
mistakes.forEach((m, i) => {
const col = i % 2;
const row = Math.floor(i / 2);
const x = 0.28 + col * 4.72;
const y = 0.88 + row * 1.15;
s.addShape(pres.ShapeType.rect, { x, y, w: 4.5, h: 1.05, fill: { color: C.white }, line: { color: m.c, pt: 2 } });
s.addShape(pres.ShapeType.rect, { x, y, w: 4.5, h: 0.36, fill: { color: m.c }, line: { color: m.c } });
s.addText("β " + m.q, { x: x + 0.08, y, w: 4.34, h: 0.36, fontSize: 11, bold: true, color: C.white, fontFace: "Calibri", valign: "middle", margin: 0 });
s.addText("β " + m.a, { x: x + 0.1, y: y + 0.4, w: 4.3, h: 0.6, fontSize: 11, color: C.navy, fontFace: "Calibri", valign: "middle" });
});
}
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 22 β MCQs QUICK FIRE
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
{
const s = contentSlide("Quick-Fire MCQs", "Test Yourself!");
const qs = [
{ q: "1. Which is a POSITIVE feedback example in physiology?", a: "D β Uterine contractions during labor (oxytocin amplification)", opts: "A) BP regulation B) Thermoregulation C) Insulin release D) Labor contractions" },
{ q: "2. NaβΊ/KβΊ ATPase: per cycle it pumps:", a: "C β 3 NaβΊ out, 2 KβΊ in (electrogenic, generates RMP β70 mV)", opts: "A) 2 NaβΊ out, 3 KβΊ in B) 3 NaβΊ in, 2 KβΊ out C) 3 NaβΊ out, 2 KβΊ in D) 2 NaβΊ in, 3 KβΊ out" },
{ q: "3. CGD β the defective protein/process is:", a: "B β NADPH oxidase (can phagocytose but cannot kill catalase+ bacteria)", opts: "A) Lysosomal acid hydrolase B) NADPH oxidase C) NaβΊ/KβΊ ATPase D) Clathrin" },
{ q: "4. Intracellular fluid volume in a 70 kg adult:", a: "D β 28 L (40% of 70 kg = 28 L)", opts: "A) 3 L B) 11 L C) 14 L D) 28 L" },
];
qs.forEach((q, i) => {
const y = 0.88 + i * 1.15;
s.addShape(pres.ShapeType.rect, { x: 0.28, y, w: 9.44, h: 1.08, fill: { color: i % 2 === 0 ? "EAF4FB" : C.white }, line: { color: "DDDDDD", pt: 0.5 } });
s.addText(q.q, { x: 0.38, y: y + 0.04, w: 6.5, h: 0.34, fontSize: 12, bold: true, color: C.navy, fontFace: "Calibri", valign: "middle" });
s.addText(q.opts, { x: 0.38, y: y + 0.38, w: 6.5, h: 0.34, fontSize: 11, color: C.gray, fontFace: "Calibri" });
s.addShape(pres.ShapeType.rect, { x: 6.95, y: y + 0.06, w: 2.65, h: 0.9, fill: { color: C.green }, line: { color: C.green } });
s.addText("ANS: " + q.a, { x: 7.0, y: y + 0.06, w: 2.55, h: 0.9, fontSize: 10, color: C.white, fontFace: "Calibri", valign: "middle" });
});
}
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 23 β RAPID REVISION β 20 KEY TAKEAWAYS
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
{
const s = contentSlide("20 Key Takeaways β Rapid Revision", "Last-Minute Review");
const takeaways = [
{ text: "Homeostasis coined by Walter Cannon (1932). Internal environment by Claude Bernard (1865).", num: "1" },
{ text: "Internal environment = ECF (interstitial fluid + plasma). All cells live in ECF.", num: "2" },
{ text: "Body fluids: 60-40-20-15-5 rule (% body weight) β TBW 42L, ICF 28L, ECF 14L.", num: "3" },
{ text: "Negative feedback = stabilizing (most body systems). Positive feedback = amplifying (ALBA: Action potential, LH surge, Birth, Aggregation).", num: "4" },
{ text: "Control system: Receptor β Control center β Effector β Response β Feedback.", num: "5" },
{ text: "Gain = -(Correction/Error remaining). Baroreceptor gain β β2.", num: "6" },
{ text: "Body has ~35-40 trillion cells. RBCs are most numerous (~25 trillion).", num: "7" },
{ text: "Cell membrane = fluid mosaic (Singer & Nicolson, 1972). Lipid bilayer + integral/peripheral proteins.", num: "8" },
{ text: "Glycocalyx: outer carbohydrate coat. Functions: ABO antigens, insulin receptor, cell adhesion.", num: "9" },
{ text: "NaβΊ/KβΊ ATPase: 3 NaβΊ OUT / 2 KβΊ IN / 1 ATP. Creates RMP = β70 mV. Inhibited by digoxin.", num: "10" },
{ text: "Mitochondria: own circular DNA + 70S ribosomes (endosymbiotic origin). Maternal inheritance.", num: "11" },
{ text: "Lysosomes: acid hydrolases (pH 5). Deficiency β lysosomal storage disease (Gaucher, Tay-Sachs, Pompe, etc.).", num: "12" },
{ text: "Pinocytosis = cell drinking (clathrin-coated pits, needs ATP + CaΒ²βΊ). Phagocytosis = cell eating.", num: "13" },
{ text: "CGD = NADPH oxidase defect β can engulf but not kill catalase+ bacteria (S. aureus, Aspergillus).", num: "14" },
{ text: "Ameboid locomotion: actin-myosin + ATP. Cells: WBCs, macrophages, fibroblasts, cancer cells.", num: "15" },
{ text: "Central dogma: DNA β (transcription) β mRNA β (translation) β Protein.", num: "16" },
{ text: "DNA: A=T (2H bonds), Gβ‘C (3H bonds), thymine. RNA: A=U, ribose, uracil.", num: "17" },
{ text: "Genetic code: 64 codons, 3 stop (UAA/UAG/UGA), degenerate, universal, non-overlapping.", num: "18" },
{ text: "Ribosomes: 80S (eukaryote) vs 70S (prokaryote). 30S = aminoglycosides/tetracyclines. 50S = macrolides/chloramphenicol.", num: "19" },
{ text: "Every disease is ultimately a failure of homeostasis at some level.", num: "20" },
];
// Two columns, 10 each
const col1 = takeaways.slice(0, 10);
const col2 = takeaways.slice(10, 20);
[col1, col2].forEach((col, ci) => {
col.forEach((item, i) => {
const x = 0.28 + ci * 4.72;
const y = 0.88 + i * 0.46;
const bg = i % 2 === 0 ? "EAF4FB" : C.white;
s.addShape(pres.ShapeType.rect, { x, y, w: 4.5, h: 0.42, fill: { color: bg }, line: { color: "DDDDDD", pt: 0.3 } });
s.addShape(pres.ShapeType.rect, { x, y, w: 0.38, h: 0.42, fill: { color: C.teal }, line: { color: C.teal } });
s.addText(item.num, { x, y, w: 0.38, h: 0.42, fontSize: 10, bold: true, color: C.white, fontFace: "Calibri", align: "center", valign: "middle" });
s.addText(item.text, { x: x + 0.43, y: y + 0.02, w: 4.02, h: 0.38, fontSize: 9.5, color: C.navy, fontFace: "Calibri", valign: "middle" });
});
});
}
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 24 β FINAL / WHAT'S NEXT
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
{
const s = pres.addSlide();
s.background = { color: C.navy };
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.18, h: 5.625, fill: { color: C.teal }, line: { color: C.teal } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 5.0, w: 10, h: 0.625, fill: { color: C.darkCard }, line: { color: C.darkCard } });
s.addText("UNIT I β COMPLETE!", {
x: 0.4, y: 0.8, w: 9.2, h: 0.9,
fontSize: 42, bold: true, color: C.white, fontFace: "Calibri", align: "left",
});
s.addText("You now have a solid foundation in:", { x: 0.4, y: 1.82, w: 9, h: 0.44, fontSize: 18, color: C.teal, fontFace: "Calibri" });
addBullets(s, [
{ text: "Homeostasis & Control Systems", bold: true, size: 16, color: C.white },
{ text: "Cell Structure & Organelles", bold: true, size: 16, color: C.white },
{ text: "Transport Mechanisms", bold: true, size: 16, color: C.white },
{ text: "Genetic Control of Protein Synthesis", bold: true, size: 16, color: C.white },
{ text: "Clinical Correlations & Pharmacology", bold: true, size: 16, color: C.white },
], { x: 0.4, y: 2.3, w: 5.5, h: 2.2, fontSize: 16 });
s.addShape(pres.ShapeType.rect, { x: 6.0, y: 1.7, w: 3.72, h: 2.9, fill: { color: C.darkCard }, line: { color: C.gold, pt: 1.5 } });
s.addText("NEXT UP:", { x: 6.1, y: 1.78, w: 3.52, h: 0.38, fontSize: 14, bold: true, color: C.gold, fontFace: "Calibri" });
addBullets(s, [
{ text: "Unit II: Membrane Physiology", size: 13, color: C.white },
{ text: " Resting Membrane Potential", size: 12, color: C.teal, indent: 1 },
{ text: " Action Potential", size: 12, color: C.teal, indent: 1 },
{ text: " Nerve Conduction", size: 12, color: C.teal, indent: 1 },
{ text: " Neuromuscular Junction", size: 12, color: C.teal, indent: 1 },
{ text: " Muscle Contraction", size: 12, color: C.teal, indent: 1 },
], { x: 6.1, y: 2.2, w: 3.52, h: 2.2, fontSize: 13 });
s.addText("Guyton & Hall Textbook of Medical Physiology, 14th Edition", {
x: 0.4, y: 5.06, w: 9, h: 0.44,
fontSize: 13, color: C.white, fontFace: "Calibri", italic: true,
});
}
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// WRITE FILE
// βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
pres.writeFile({ fileName: "/home/daytona/workspace/physiology-unit1-pptx/Physiology_Unit_I_Quick_Revision.pptx" })
.then(() => console.log("SUCCESS: PPTX written."))
.catch(err => { console.error("ERROR:", err); process.exit(1); });