screening of antianginal drugs 50 slide conetnt
screening of antianginal drugs experimental methods preclinical models pithed rat isoprenaline
https://www.slideshare.net/slideshow/pre-clinical-screening-…
mkdir -p /home/daytona/workspace/antianginal-pptx && ls /home/daytona/workspace/antianginal-pptx
~/antianginal-pptx/build.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Screening of Antianginal Drugs";
pres.author = "Pharmacology Department";
// ─── THEME ────────────────────────────────────────────────────────────────────
const C = {
darkBg: "0D1F3C", // deep navy
midBg: "102A52", // slightly lighter navy
accent: "E8473F", // red-orange accent
gold: "F5A623", // amber highlight
white: "FFFFFF",
lightBlue:"B8D4F5",
lightGray:"E8EEF7",
subtleGray:"A0AABF",
cardBg: "162B4F",
green: "27AE60",
};
// ─── HELPER FUNCTIONS ─────────────────────────────────────────────────────────
function addTitleSlide(pres, title, subtitle) {
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: "100%", h: "100%", fill: { color: C.darkBg } });
// decorative top bar
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: "100%", h: 0.08, fill: { color: C.accent } });
// decorative bottom bar
s.addShape(pres.ShapeType.rect, { x: 0, y: 5.545, w: "100%", h: 0.08, fill: { color: C.gold } });
// left colored stripe
s.addShape(pres.ShapeType.rect, { x: 0, y: 0.08, w: 0.18, h: 5.465, fill: { color: C.accent } });
s.addText(title, {
x: 0.5, y: 1.2, w: 9.0, h: 1.8,
fontSize: 38, bold: true, color: C.white, fontFace: "Calibri",
align: "left", valign: "middle", wrap: true,
});
s.addText(subtitle, {
x: 0.5, y: 3.1, w: 8.5, h: 0.8,
fontSize: 18, bold: false, color: C.gold, fontFace: "Calibri",
align: "left", valign: "middle",
});
s.addText("Pharmacology | UG/PG Program", {
x: 0.5, y: 5.0, w: 9, h: 0.4,
fontSize: 12, color: C.subtleGray, fontFace: "Calibri", align: "left",
});
return s;
}
function addSectionDivider(pres, sectionTitle, sectionNumber) {
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: "100%", h: "100%", fill: { color: C.accent } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: "100%", h: 0.1, fill: { color: C.gold } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 5.525, w: "100%", h: 0.1, fill: { color: C.darkBg } });
s.addText(`SECTION ${sectionNumber}`, {
x: 0.6, y: 1.2, w: 8.8, h: 0.5,
fontSize: 14, bold: true, color: C.white, fontFace: "Calibri",
align: "left", charSpacing: 4,
});
s.addText(sectionTitle, {
x: 0.6, y: 1.8, w: 8.8, h: 2.2,
fontSize: 40, bold: true, color: C.white, fontFace: "Calibri",
align: "left", valign: "middle", wrap: true,
});
return s;
}
function addContentSlide(pres, title, bullets, opts = {}) {
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: "100%", h: "100%", fill: { color: C.darkBg } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: "100%", h: 0.07, fill: { color: C.accent } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0.07, w: 0.12, h: 0.93, fill: { color: C.accent } });
// Title bar
s.addShape(pres.ShapeType.rect, { x: 0.12, y: 0.07, w: 9.88, h: 0.93, fill: { color: C.midBg } });
s.addText(title, {
x: 0.3, y: 0.07, w: 9.5, h: 0.93, margin: 0,
fontSize: opts.titleSize || 22, bold: true, color: C.white, fontFace: "Calibri",
align: "left", valign: "middle",
});
// Bottom accent
s.addShape(pres.ShapeType.rect, { x: 0, y: 5.45, w: "100%", h: 0.175, fill: { color: C.midBg } });
const bulletItems = bullets.map((b, i) => {
if (typeof b === "string") {
return { text: b, options: { bullet: { code: "2022" }, color: C.white, fontSize: opts.fontSize || 16, fontFace: "Calibri", breakLine: i < bullets.length - 1, paraSpaceAfter: 4 } };
}
// object with text + color
return { text: b.text, options: { bullet: { code: "2022" }, color: b.color || C.white, bold: b.bold || false, fontSize: opts.fontSize || 16, fontFace: "Calibri", breakLine: i < bullets.length - 1, paraSpaceAfter: 4 } };
});
s.addText(bulletItems, {
x: 0.4, y: 1.1, w: 9.3, h: 4.2, valign: "top", wrap: true,
});
return s;
}
function addTwoColSlide(pres, title, col1Title, col1Items, col2Title, col2Items) {
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: "100%", h: "100%", fill: { color: C.darkBg } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: "100%", h: 0.07, fill: { color: C.accent } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0.07, w: 0.12, h: 0.93, fill: { color: C.accent } });
s.addShape(pres.ShapeType.rect, { x: 0.12, y: 0.07, w: 9.88, h: 0.93, fill: { color: C.midBg } });
s.addText(title, {
x: 0.3, y: 0.07, w: 9.5, h: 0.93, margin: 0,
fontSize: 22, bold: true, color: C.white, fontFace: "Calibri",
align: "left", valign: "middle",
});
// Col 1 card
s.addShape(pres.ShapeType.rect, { x: 0.2, y: 1.15, w: 4.6, h: 4.2, fill: { color: C.cardBg }, line: { color: C.accent, width: 1.5 } });
s.addText(col1Title, {
x: 0.25, y: 1.2, w: 4.5, h: 0.4,
fontSize: 14, bold: true, color: C.gold, fontFace: "Calibri", align: "left",
});
const c1 = col1Items.map((b, i) => ({ text: b, options: { bullet: { code: "25BA" }, color: C.lightBlue, fontSize: 14, fontFace: "Calibri", breakLine: i < col1Items.length - 1, paraSpaceAfter: 5 } }));
s.addText(c1, { x: 0.3, y: 1.65, w: 4.4, h: 3.55, valign: "top", wrap: true });
// Col 2 card
s.addShape(pres.ShapeType.rect, { x: 5.2, y: 1.15, w: 4.6, h: 4.2, fill: { color: C.cardBg }, line: { color: C.gold, width: 1.5 } });
s.addText(col2Title, {
x: 5.25, y: 1.2, w: 4.5, h: 0.4,
fontSize: 14, bold: true, color: C.accent, fontFace: "Calibri", align: "left",
});
const c2 = col2Items.map((b, i) => ({ text: b, options: { bullet: { code: "25BA" }, color: C.lightBlue, fontSize: 14, fontFace: "Calibri", breakLine: i < col2Items.length - 1, paraSpaceAfter: 5 } }));
s.addText(c2, { x: 5.3, y: 1.65, w: 4.4, h: 3.55, valign: "top", wrap: true });
return s;
}
function addTableSlide(pres, title, headers, rows) {
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: "100%", h: "100%", fill: { color: C.darkBg } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: "100%", h: 0.07, fill: { color: C.accent } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0.07, w: 0.12, h: 0.93, fill: { color: C.accent } });
s.addShape(pres.ShapeType.rect, { x: 0.12, y: 0.07, w: 9.88, h: 0.93, fill: { color: C.midBg } });
s.addText(title, {
x: 0.3, y: 0.07, w: 9.5, h: 0.93, margin: 0,
fontSize: 22, bold: true, color: C.white, fontFace: "Calibri", align: "left", valign: "middle",
});
const tableRows = [];
// header row
tableRows.push(headers.map(h => ({ text: h, options: { bold: true, color: C.white, fill: C.accent, fontSize: 12, align: "center", fontFace: "Calibri" } })));
rows.forEach((row, ri) => {
tableRows.push(row.map(cell => ({
text: cell,
options: { color: C.white, fill: ri % 2 === 0 ? C.cardBg : C.midBg, fontSize: 11, fontFace: "Calibri", align: "left" }
})));
});
s.addTable(tableRows, {
x: 0.2, y: 1.1, w: 9.6, h: 4.3, colW: Array(headers.length).fill(9.6 / headers.length),
border: { color: C.accent, pt: 0.5 },
autoPage: false,
});
return s;
}
function addModelSlide(pres, title, principle, procedure, endpoint) {
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: "100%", h: "100%", fill: { color: C.darkBg } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: "100%", h: 0.07, fill: { color: C.accent } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0.07, w: 0.12, h: 0.93, fill: { color: C.accent } });
s.addShape(pres.ShapeType.rect, { x: 0.12, y: 0.07, w: 9.88, h: 0.93, fill: { color: C.midBg } });
s.addText(title, {
x: 0.3, y: 0.07, w: 9.5, h: 0.93, margin: 0,
fontSize: 20, bold: true, color: C.white, fontFace: "Calibri", align: "left", valign: "middle",
});
// Three labeled boxes
const boxes = [
{ label: "PRINCIPLE", content: principle, x: 0.2, color: C.accent },
{ label: "PROCEDURE", content: procedure, x: 3.55, color: C.gold },
{ label: "ENDPOINT", content: endpoint, x: 6.9, color: C.green },
];
boxes.forEach(b => {
s.addShape(pres.ShapeType.rect, { x: b.x, y: 1.1, w: 3.1, h: 4.3, fill: { color: C.cardBg }, line: { color: b.color, width: 1.5 } });
s.addText(b.label, {
x: b.x + 0.05, y: 1.1, w: 3.0, h: 0.4,
fontSize: 11, bold: true, color: b.color, fontFace: "Calibri", align: "center",
});
s.addText(b.content, {
x: b.x + 0.1, y: 1.52, w: 2.9, h: 3.8,
fontSize: 11, color: C.lightBlue, fontFace: "Calibri", wrap: true, valign: "top",
});
});
return s;
}
// ──────────────────────────────────────────────────────────────────────────────
// SLIDE 1 – TITLE
// ──────────────────────────────────────────────────────────────────────────────
addTitleSlide(pres,
"Screening of\nAntianginal Drugs",
"Preclinical & Clinical Evaluation Methods | Pharmacology UG/PG"
);
// ──────────────────────────────────────────────────────────────────────────────
// SLIDE 2 – OUTLINE
// ──────────────────────────────────────────────────────────────────────────────
addContentSlide(pres, "Lecture Outline", [
"1. Introduction to Angina Pectoris",
"2. Types of Angina",
"3. Pathophysiology & Determinants of O2 Balance",
"4. Classification of Antianginal Drugs",
"5. Mechanism of Action – Organic Nitrates",
"6. Mechanism of Action – Beta Blockers",
"7. Mechanism of Action – Calcium Channel Blockers",
"8. Newer Antianginal Drugs",
"9. Preclinical Screening – In Vivo Models",
"10. Preclinical Screening – In Vitro Models",
"11. Clinical Evaluation",
"12. Summary & Drug Comparison",
], { fontSize: 15 });
// ──────────────────────────────────────────────────────────────────────────────
// SECTION 1: INTRODUCTION
// ──────────────────────────────────────────────────────────────────────────────
addSectionDivider(pres, "Introduction to Angina Pectoris", "01");
// SLIDE 4 – What is Angina?
addContentSlide(pres, "What is Angina Pectoris?", [
"Angina pectoris: chest pain caused by accumulation of metabolites resulting from myocardial ischemia (Katzung, 16th ed.)",
"Most common cardiovascular condition involving tissue ischemia requiring vasodilators",
"Primary cause: imbalance between myocardial O2 requirement and O2 supply",
"Most common underlying cause: atheromatous obstruction of large coronary vessels (CAD)",
"Coronary microvascular dysfunction ('Coronary Syndrome X') also causes angina with normal epicardial vessels",
"Symptoms: substernal chest tightness, pain radiating to left arm/jaw, dyspnea, diaphoresis",
"Precipitating factors: exercise, emotional stress, cold exposure, heavy meals",
], { fontSize: 15 });
// SLIDE 5 – Types of Angina
addContentSlide(pres, "Types of Angina Pectoris", [
{ text: "Stable (Effort) Angina:", bold: true, color: C.gold },
" - Imbalance occurs when O2 requirement INCREASES (exercise, stress)",
" - Predictable, relieved by rest/nitrates; caused by fixed atherosclerotic obstruction",
{ text: "Variant (Vasospastic / Prinzmetal) Angina:", bold: true, color: C.accent },
" - O2 delivery DECREASES due to reversible coronary vasospasm",
" - Occurs at rest, often early morning; confirmed by provocative tests",
{ text: "Unstable Angina (ACS):", bold: true, color: C.lightBlue },
" - Episodes at rest OR increased severity/frequency in previously stable patient",
" - Caused by platelet thrombi at fissured atheromatous plaque – medical emergency",
{ text: "Microvascular Angina:", bold: true, color: C.green },
" - Typical symptoms with normal epicardial coronaries; impaired fractional flow reserve",
], { fontSize: 13 });
// SLIDE 6 – Pathophysiology
addContentSlide(pres, "Pathophysiology: O2 Supply-Demand Imbalance", [
{ text: "Determinants of Myocardial O2 DEMAND:", bold: true, color: C.gold },
" - Heart rate (major determinant – increases demand during tachycardia)",
" - Myocardial contractility (inotropy)",
" - Ventricular wall tension = affected by PRELOAD (end-diastolic vol) + AFTERLOAD (peripheral resistance)",
" - Aortic pressure, ejection time",
{ text: "Determinants of O2 SUPPLY (Coronary Blood Flow):", bold: true, color: C.accent },
" - Aortic diastolic pressure & duration of diastole",
" - Coronary vascular resistance (metabolites, autonomic tone, endothelium)",
" - During tachycardia: diastole shortens → REDUCED perfusion time",
{ text: "Law of Laplace:", bold: true, color: C.lightBlue },
" - Wall tension ∝ Pressure × Radius → increased EDV raises O2 demand",
], { fontSize: 13 });
// SLIDE 7 – Coronary Blood Flow
addContentSlide(pres, "Coronary Blood Flow & Ischemia Cascade", [
"Coronary flow drops to near zero during systole – nearly all perfusion occurs in diastole",
"Flow is directly proportional to aortic diastolic pressure and diastolic duration",
"Flow is inversely proportional to coronary vascular resistance",
"Endothelial damage impairs vasodilation and increases resistance",
"In CAD: coronary flow reserve (CFR) is reduced – maximal dilation cannot compensate",
{ text: "Ischemia Cascade (in order of onset):", bold: true, color: C.gold },
" 1. Perfusion abnormality (radionuclide scan)",
" 2. Diastolic dysfunction (echo)",
" 3. Systolic dysfunction",
" 4. ECG changes (ST depression/elevation)",
" 5. Anginal pain (last to appear)",
], { fontSize: 14 });
// ──────────────────────────────────────────────────────────────────────────────
// SECTION 2: CLASSIFICATION
// ──────────────────────────────────────────────────────────────────────────────
addSectionDivider(pres, "Classification of Antianginal Drugs", "02");
// SLIDE 9 – Classification
addContentSlide(pres, "Classification of Antianginal Drugs", [
{ text: "I. ORGANIC NITRATES (Nitrovasodilators)", bold: true, color: C.gold },
" - Short-acting: Nitroglycerin (GTN), Amyl nitrite",
" - Long-acting: Isosorbide dinitrate (ISDN), Isosorbide mononitrate (ISMN), Pentaerythritol tetranitrate",
{ text: "II. BETA-ADRENERGIC BLOCKERS", bold: true, color: C.accent },
" - Non-selective: Propranolol, Nadolol",
" - Cardioselective (B1): Metoprolol, Atenolol, Bisoprolol",
{ text: "III. CALCIUM CHANNEL BLOCKERS (CCBs)", bold: true, color: C.lightBlue },
" - Dihydropyridines (DHP): Nifedipine, Amlodipine, Felodipine",
" - Non-DHP: Verapamil (phenylalkylamine), Diltiazem (benzothiazepine)",
{ text: "IV. NEWER / ADJUNCT DRUGS", bold: true, color: C.green },
" - Ranolazine (late INa blocker), Ivabradine (If inhibitor)",
" - Nicorandil (K-ATP opener + nitrate), Trimetazidine (pFOX inhibitor)",
], { fontSize: 13 });
// SLIDE 10 – Drug Targets Table
addTableSlide(pres,
"Drug Classes: Targets & Primary Effects on O2 Balance",
["Drug Class", "Primary Target", "Effect on Demand", "Effect on Supply"],
[
["Organic Nitrates", "Guanylyl cyclase / cGMP", "Reduces preload & afterload", "Dilates coronary vessels (vasospasm)"],
["Beta Blockers", "B1-adrenoceptors", "Reduces HR, contractility, BP", "Prolongs diastole → more perfusion"],
["CCBs (DHP)", "L-type Ca2+ channels (vascular)", "Reduces afterload (BP)", "Coronary vasodilation"],
["CCBs (Non-DHP)", "L-type Ca2+ channels (cardiac)", "Reduces HR, contractility", "Coronary vasodilation"],
["Ranolazine", "Late sodium current (INa)", "Reduces diastolic tension", "Improves microvascular flow"],
["Ivabradine", "HCN/If channels (SA node)", "Reduces HR only", "Prolongs diastole"],
["Nicorandil", "K-ATP channels + NO", "Reduces pre & afterload", "Coronary vasodilation"],
["Trimetazidine", "Long-chain 3-KAT (FA oxidation)", "Metabolic optimization", "Better O2 use per ATP"],
]
);
// ──────────────────────────────────────────────────────────────────────────────
// SECTION 3: MECHANISMS OF ACTION
// ──────────────────────────────────────────────────────────────────────────────
addSectionDivider(pres, "Mechanisms of Action", "03");
// SLIDE 12 – Organic Nitrates Mechanism
addContentSlide(pres, "Organic Nitrates: Mechanism of Action", [
{ text: "Bioactivation:", bold: true, color: C.gold },
" GTN → denitrated by ALDH2 (mitochondrial) + glutathione S-transferase → releases NO",
{ text: "Signaling Cascade:", bold: true, color: C.gold },
" NO + heme group of soluble guanylyl cyclase → ↑ cGMP",
" cGMP → activates PKG → dephosphorylates myosin light chain → smooth muscle RELAXATION",
{ text: "Antianginal Mechanism (Goodman & Gilman):", bold: true, color: C.accent },
" - Primarily venodilation → reduces venous return → reduces PRELOAD",
" - Reduces end-diastolic volume → reduces wall tension → REDUCES O2 demand",
" - Higher doses: arterial dilation → reduces AFTERLOAD",
" - In vasospastic angina: direct CORONARY vasodilation reverses spasm",
{ text: "Key Concept:", bold: true, color: C.lightBlue },
" Major benefit = reduced O2 demand (NOT increased O2 delivery) in stable angina",
], { fontSize: 13 });
// SLIDE 13 – Nitrate Preparations
addTableSlide(pres,
"Organic Nitrate Preparations: Comparison",
["Drug", "Route", "Onset", "Duration", "First-Pass?", "Use"],
[
["Nitroglycerin (GTN)", "Sublingual tablet/spray", "1-2 min", "15-30 min", "Yes (avoid oral)", "Acute angina attack"],
["GTN transdermal patch", "Skin patch", "30-60 min", "8-12 h (12 h off)", "Bypassed", "Prophylaxis (nitrate-free interval)"],
["GTN IV infusion", "IV", "Immediate", "During infusion", "-", "ACS, heart failure"],
["Isosorbide dinitrate", "Oral/sublingual", "30-60 min (oral)", "4-6 h", "Yes (low oral BA)", "Prophylaxis"],
["Isosorbide mononitrate", "Oral", "30-60 min", "6-10 h", "No (BA~100%)", "Prophylaxis (stable)"],
["Amyl nitrite", "Inhalation", "< 1 min", "2-5 min", "Bypassed", "Obsolete; cyanide antidote"],
]
);
// SLIDE 14 – Nitrate Tolerance & Adverse Effects
addContentSlide(pres, "Nitrate Tolerance & Adverse Effects", [
{ text: "Adverse Effects:", bold: true, color: C.accent },
" - Headache (most common) – due to cerebral vasodilation",
" - Postural hypotension, reflex tachycardia",
" - Facial flushing",
{ text: "Key Drug Interaction – CONTRAINDICATED:", bold: true, color: C.accent },
" PDE-5 inhibitors (sildenafil, tadalafil) + Nitrates → SEVERE hypotension",
" Mechanism: both raise cGMP → excessive vasodilation",
" Wait at least 6 hours between nitrate use and PDE-5 inhibitor",
{ text: "Nitrate Tolerance:", bold: true, color: C.gold },
" - Develops rapidly with continuous use (desensitization of ALDH2)",
" - Prevention: 10-12 hour NITRATE-FREE INTERVAL daily (e.g., remove patch at night)",
" - Exception: Variant angina worsens early morning – nitrate-free interval in LATE AFTERNOON",
], { fontSize: 13 });
// SLIDE 15 – Beta Blockers Mechanism
addContentSlide(pres, "Beta-Adrenergic Blockers: Mechanism", [
{ text: "Receptor:", bold: true, color: C.gold },
" Block B1-adrenoceptors in the heart (and B2 in lung/vasculature for non-selective)",
{ text: "Hemodynamic Effects:", bold: true, color: C.gold },
" - Reduce heart rate (negative chronotropy) → prolongs diastole → improves coronary filling",
" - Reduce myocardial contractility (negative inotropy) → reduces O2 demand",
" - Reduce blood pressure (afterload) → reduces wall stress",
{ text: "Net Effect:", bold: true, color: C.accent },
" All three effects REDUCE myocardial O2 consumption",
" Triple product (HR × Systolic BP × Ejection time) is a surrogate for O2 demand – beta blockers reduce all three components",
{ text: "NOT effective in Variant Angina (may worsen by allowing unopposed alpha vasoconstriction)", bold: true, color: C.lightBlue },
{ text: "Drugs:", bold: true, color: C.green },
" Propranolol, Atenolol, Metoprolol, Nadolol, Bisoprolol, Carvedilol (with alpha block)",
], { fontSize: 13 });
// SLIDE 16 – Beta Blocker Adverse Effects
addContentSlide(pres, "Beta Blockers: Adverse Effects & Contraindications", [
{ text: "Adverse Effects:", bold: true, color: C.accent },
" - Bradycardia, AV block, negative inotropy (HF worsening if abrupt use)",
" - Bronchoconstriction (especially non-selective; avoid in asthma/COPD)",
" - Peripheral vasoconstriction – cold extremities, Raynaud's worsening",
" - Masking hypoglycemia symptoms in diabetics",
" - Fatigue, depression, impotence",
" - Rebound angina with ABRUPT withdrawal – taper slowly",
{ text: "Contraindications:", bold: true, color: C.gold },
" - Severe bradycardia or heart block",
" - Decompensated heart failure (initiate only when stable)",
" - Variant angina (relative contraindication)",
" - Asthma / severe COPD (use cardioselective with caution)",
{ text: "Advantages:", bold: true, color: C.green },
" Reduce long-term mortality in post-MI and heart failure patients",
], { fontSize: 13 });
// SLIDE 17 – CCBs Mechanism
addContentSlide(pres, "Calcium Channel Blockers: Mechanism", [
{ text: "Target:", bold: true, color: C.gold },
" Block L-type voltage-gated Ca2+ channels in vascular smooth muscle and myocardium",
{ text: "Dihydropyridines (Nifedipine, Amlodipine):", bold: true, color: C.accent },
" - Greater selectivity for VASCULAR smooth muscle",
" - Potent vasodilation → reduces afterload (blood pressure)",
" - Reflex tachycardia (especially short-acting nifedipine)",
" - Drug of choice for VARIANT angina",
{ text: "Verapamil (Phenylalkylamine):", bold: true, color: C.lightBlue },
" - Greater selectivity for CARDIAC muscle (heart rate and contractility)",
" - Reduces HR, AV conduction, contractility",
" - No reflex tachycardia; negative chronotropic and inotropic",
{ text: "Diltiazem (Benzothiazepine):", bold: true, color: C.green },
" - Intermediate selectivity: both vascular and cardiac effects",
" - Moderate heart rate reduction + peripheral vasodilation",
" - Well tolerated; often used in angina with concurrent arrhythmia",
], { fontSize: 13 });
// SLIDE 18 – CCBs Adverse Effects
addTwoColSlide(pres, "CCBs: Adverse Effects & Clinical Applications",
"Adverse Effects",
[
"DHP: Peripheral edema (ankle), headache, flushing, reflex tachycardia",
"Verapamil: Constipation, bradycardia, AV block, negative inotropy",
"Diltiazem: Bradycardia (milder), edema",
"All CCBs: Dizziness, hypotension",
"AVOID verapamil + beta blocker (additive bradycardia/AV block)",
"CAUTION with CYP3A4 interactions (grapefruit juice)",
],
"Clinical Applications",
[
"Stable angina: All CCBs effective",
"Variant angina: FIRST LINE (DHP or non-DHP)",
"Angina + HTN: DHP (amlodipine preferred – long-acting)",
"Angina + SVT: Verapamil or diltiazem",
"Angina + Heart failure: Amlodipine only (verapamil/diltiazem worsen HF)",
"Post-MI: Avoid non-DHP CCBs if LV dysfunction present",
]
);
// ──────────────────────────────────────────────────────────────────────────────
// SECTION 4: NEWER DRUGS
// ──────────────────────────────────────────────────────────────────────────────
addSectionDivider(pres, "Newer Antianginal Drugs", "04");
// SLIDE 20 – Ranolazine
addContentSlide(pres, "Ranolazine – Late Sodium Current Blocker", [
{ text: "Mechanism (Lippincott Pharmacology):", bold: true, color: C.gold },
" Inhibits LATE phase of sodium current (late INa) → reduces intracellular Na+",
" ↓ Na+ → reduces Na+/Ca2+ exchange → ↓ intracellular Ca2+ overload",
" Result: improved diastolic function (lusitropy), reduced wall tension",
{ text: "Unique Features:", bold: true, color: C.accent },
" - Does NOT significantly alter heart rate or blood pressure",
" - Has additional antiarrhythmic properties",
" - Effects less pronounced in women (unknown mechanism)",
" - Used as ADD-ON therapy when other agents fail",
{ text: "Adverse Effects & Interactions:", bold: true, color: C.lightBlue },
" - Prolongs QT interval – avoid with other QT-prolonging drugs",
" - Extensively metabolized by CYP3A4 and CYP2D6",
" - Substrate of P-glycoprotein → multiple drug interactions",
" - May inhibit digoxin and simvastatin metabolism (raise their levels)",
], { fontSize: 13 });
// SLIDE 21 – Ivabradine & Nicorandil
addTwoColSlide(pres, "Ivabradine & Nicorandil",
"Ivabradine (If/HCN Inhibitor)",
[
"Blocks hyperpolarization-activated (If) channels in SA node",
"Selectively reduces HEART RATE – no other hemodynamic effect",
"Prolongs diastole → improved coronary perfusion",
"Does not affect contractility, AV conduction, or BP",
"Useful in: stable angina + heart failure with reduced EF (HFrEF)",
"Adverse: visual disturbances (phosphenes), bradycardia",
"Approved for HFrEF (EF <35%) with HR >70 bpm in many guidelines",
],
"Nicorandil (Dual Mechanism)",
[
"K-ATP channel opener → hyperpolarizes smooth muscle → vasodilation",
"Also has nitrate-like moiety → releases NO → cGMP↑",
"Reduces preload AND afterload simultaneously",
"Coronary vasodilation (both epicardial and microvascular)",
"No reflex tachycardia",
"Adverse: headache, GI ulceration (rare but significant)",
"Used in refractory stable angina in many countries",
]
);
// SLIDE 22 – Trimetazidine & Metabolic Modulators
addContentSlide(pres, "Metabolic Modulators: Trimetazidine & Perhexiline", [
{ text: "Trimetazidine (pFOX Inhibitor):", bold: true, color: C.gold },
" - Inhibits long-chain 3-ketoacyl thiolase (LC-3KAT) → partially blocks fatty acid oxidation",
" - Shifts myocardial metabolism from FA oxidation → glucose oxidation",
" - Glucose oxidation requires LESS O2 per ATP generated → metabolic efficiency",
" - Efficacy demonstrated in stable angina trials",
" - NOT approved in USA; used in Europe, Asia",
" - Adverse: Parkinsonism-like symptoms (rare, tremor, gait disturbance)",
{ text: "Perhexiline:", bold: true, color: C.accent },
" - Also shifts FA → glucose metabolism (similar to trimetazidine)",
" - Historical: abandoned due to hepatotoxicity and neuropathy",
" - Toxicity now attributed to CYP2D6 polymorphism (slow metabolizers develop high levels)",
" - With careful pharmacokinetic monitoring – considered in refractory angina",
" - Approved in only a few countries",
], { fontSize: 13 });
// SLIDE 23 – Other newer agents
addTableSlide(pres,
"Other Drugs Under Investigation for Angina (Katzung, 16th ed.)",
["Drug / Class", "Mechanism", "Status"],
[
["Fasudil", "Rho-kinase (ROCK) inhibitor – vasodilation", "Investigational"],
["Allopurinol", "Xanthine oxidase inhibitor – reduces oxidative stress", "Investigational"],
["L-Arginine", "NO substrate/donor", "Investigational"],
["Amiloride", "Blocks Na+ channel / Na-H exchanger", "Investigational"],
["Capsaicin", "TRPV1 agonist – reduces nociception", "Investigational"],
["Glibenclamide", "Sulfonylurea / K-ATP channel blocker", "Investigational"],
["Detanoate", "PKG facilitator", "Investigational"],
["Vasopeptidase inhibitors", "Dual ACE / NEP inhibition", "Investigational"],
]
);
// ──────────────────────────────────────────────────────────────────────────────
// SECTION 5: PRECLINICAL SCREENING – IN VIVO
// ──────────────────────────────────────────────────────────────────────────────
addSectionDivider(pres, "Preclinical Screening: In Vivo Models", "05");
// SLIDE 25 – Overview of Screening Models
addTwoColSlide(pres, "Overview: Preclinical Screening of Antianginal Drugs",
"In Vivo Models",
[
"1. Isoproterenol-induced myocardial necrosis",
"2. Stenosis-induced coronary thrombosis",
"3. Electrical stimulation-induced coronary thrombosis",
"4. Microspheres-induced acute ischemia",
"5. Coronary artery occlusion/reperfusion",
"6. Myocardial ischemia preconditioning model",
],
"In Vitro Models",
[
"1. Isolated heart-lung preparation",
"2. Langendorff isolated perfused heart",
"3. Calcium antagonism in pithed rat",
"4. Coronary artery ligation in isolated heart",
"5. Isolated rabbit aorta preparation",
]
);
// SLIDE 26 – Isoproterenol Model
addModelSlide(pres,
"IN VIVO MODEL 1: Isoproterenol-Induced Myocardial Necrosis",
"Isoproterenol (ISP), a synthetic catecholamine, in high doses causes:\n- Severe tachycardia\n- Increased O2 demand\n- Coronary vasospasm\n- Relative ischemia\nResults in biochemical and histological changes resembling MI",
"Animal: Rats (Wistar/albino)\nISP: 85 mg/kg SC on Day 1 & 2\nPre-treatment: test drug 7 days before\nSacrifice on Day 3\nBlood: cardiac markers\nHeart: histopathology",
"Biochemical markers:\n- Serum CK-MB, LDH, AST, ALT elevation\n- Lipid peroxidation (MDA)\n- Antioxidant enzymes (SOD, CAT)\nHistopathology:\n- H&E staining\n- TTC staining (infarct size %)\nECG: ST changes\nBody/heart weight ratio"
);
// SLIDE 27 – Coronary Artery Occlusion Model
addModelSlide(pres,
"IN VIVO MODEL 2: Coronary Artery Occlusion-Reperfusion Model",
"Surgical ligation of the left anterior descending (LAD) coronary artery in rats/rabbits creates myocardial ischemia.\nReperfusion injury is modeled by releasing the ligature.\nGold standard for studying ischemia-reperfusion injury.",
"Anesthetize: urethane / ketamine-xylazine\nThoracotomy via left intercostal space\nPlace 4-0 silk suture around LAD\nOcclude for 30 min\nReperfuse for 2-4 hours\nRecord ECG throughout\nSacrifice; measure infarct size",
"Infarct size:\n- TTC staining (triphenyltetrazolium chloride)\n- Viable myocardium stains RED\n- Infarcted tissue WHITE\nECG: VF incidence, ST elevation\nBiochemical: troponin, CK-MB\nHistopathology\nPost-ischemic LV function (pressure-volume)"
);
// SLIDE 28 – Preconditioning Model
addModelSlide(pres,
"IN VIVO MODEL 3: Ischemic Preconditioning Model",
"Brief, repeated ischemic episodes confer CARDIOPROTECTION against a subsequent sustained ischemic event.\nPharmacological preconditioning mimics this protection.\nTests agents that activate KATP channels, PKC, adenosine receptors.",
"Rabbit (2.5-3.5 kg): ketamine 0.6 ml/kg\nTracheal cannulation, artificial ventilation (30/min)\nFemoral artery catheterized for BP\nFemoral vein for drug administration\n4-0 suture around marginal branch of LCA\nIschemic preconditioning: 5 min occlusion × 3 cycles\nSustained ischemia: 30 min, reperfusion: 3 hr",
"Infarct size reduction (% of AAR)\nTTC staining\nHemodynamics: HR, BP, dp/dt\nMarkers: CK-MB, LDH\nMitochondrial function assessment\nKATP channel involvement (glibenclamide blockade)"
);
// SLIDE 29 – Microspheres Model
addModelSlide(pres,
"IN VIVO MODEL 4: Microspheres-Induced Acute Ischemia",
"Injection of microspheres (polystyrene/latex beads, 15-45 µm diameter) into the coronary circulation causes microembolism.\nProduces patchy myocardial ischemia simulating microvascular angina.\nUsed to study agents that improve microvascular blood flow.",
"Anesthetize dog/rat\nCanulate left atrium or inject via coronary catheter\nInject calibrated microspheres\nMonitor ECG, BP continuously\nTest drug administered before/during microsphere injection\nMeasure regional myocardial blood flow",
"Regional myocardial blood flow:\n- Radioactive microsphere technique (reference organ)\n- Fluorescent microspheres (newer, no radiation)\nInfarct size (TTC)\nECG: arrhythmias, ST depression\nLV function: ejection fraction, dP/dt\nHistopathology: focal necrosis"
);
// SLIDE 30 – Electrical Stimulation Thrombosis Model
addModelSlide(pres,
"IN VIVO MODEL 5: Electrical Stimulation-Induced Coronary Thrombosis",
"Direct electrical current applied to coronary artery endothelium causes endothelial injury → platelet activation → thrombus formation.\nMimics atherosclerotic plaque rupture.\nUsed to test antiplatelet and antianginal combination strategies.",
"Anesthetize (pentobarbitone)\nExpose coronary artery\nPlace platinum wire electrodes on coronary artery\nApply constant DC current (200-500 µA)\nMonitor coronary flow (Doppler probe)\nThrombus forms within 30-90 min\nRecord time to occlusion (TTO)",
"Time to coronary occlusion (TTO)\nCoronary blood flow\nECG: ischemic changes, VF\nInfarct size\nPlatelet counts / aggregation ex vivo\nTest drug: may prolong TTO or prevent complete occlusion"
);
// SLIDE 31 – Pithed Rat Model
addModelSlide(pres,
"IN VITRO/IN VIVO MODEL 6: Calcium Antagonism in Pithed Rat",
"Pithed rat preparation eliminates CNS reflexes while preserving cardiovascular function driven only by the peripheral autonomic nervous system.\nIdeal for studying direct vascular effects of drugs without CNS interference.\nUsed to characterize calcium channel blockers.",
"Rat anesthetized → cervical dislocation\nSpinal cord destroyed by metal rod (pithed)\nArtificial ventilation maintained\nCumulative IV doses of CaCl2 injected\nCa2+-induced pressor responses recorded\nTest drug given IV before Ca2+ challenge\nDose-response curves constructed",
"Ca2+-induced pressor response\n(vasoconstriction via L-type channels)\nShift of dose-response curve (rightward shift = antagonism)\npA2 value determination\nConfirms L-type Ca2+ channel blockade\nDifferentiates Ca2+ antagonists from other vasodilators"
);
// ──────────────────────────────────────────────────────────────────────────────
// SECTION 6: IN VITRO MODELS
// ──────────────────────────────────────────────────────────────────────────────
addSectionDivider(pres, "Preclinical Screening: In Vitro Models", "06");
// SLIDE 33 – Langendorff Preparation
addModelSlide(pres,
"IN VITRO MODEL 1: Langendorff Isolated Perfused Heart",
"Isolated heart perfused retrogradely (aorta upward) with oxygenated buffer (Krebs-Henseleit, 37°C, 95% O2/5% CO2).\nHeart beats spontaneously in absence of neurohormonal influences.\nGold standard for studying direct cardiac drug effects.",
"Excise rat/guinea pig heart rapidly\nCannulate aorta on Langendorff apparatus\nRetrograde perfusion: 10 ml/min at 70-80 cmH2O\nEquilibrate 20 min\nInduce ischemia: stop flow (global) or LAD ligation (regional)\nApply test drug before/during/after ischemia\nRecord for 60-120 min",
"Developed tension (contractility)\nHeart rate\nCoronary flow rate (ml/min)\nLeft ventricular developed pressure (LVDP)\n+dP/dt and -dP/dt (inotropy/lusitropy)\nInfarct size (TTC)\nLDH/CK-MB release into perfusate\nMetabolic markers"
);
// SLIDE 34 – Isolated Rabbit Aorta
addModelSlide(pres,
"IN VITRO MODEL 2: Isolated Rabbit Aorta Preparation",
"Aortic rings from rabbit mounted in isolated organ bath containing Krebs-Henseleit solution.\nPre-contracted with norepinephrine (NE) or KCl.\nUsed to study vasodilatory and anti-vasospastic activity of drugs.\nDirect measure of vascular smooth muscle relaxation.",
"Rabbit (2-3 kg) sacrificed\nThoracic aorta excised, cleaned of fat\nCut into rings (3-4 mm)\nMount in organ bath (37°C, 95% O2)\nAllow to equilibrate under 2g resting tension\nPre-contract with NE (10−6 M) or KCl (60 mM)\nCumulative concentrations of test drug added",
"% relaxation of precontracted ring\nIC50 (concentration causing 50% relaxation)\nEndothelium-intact vs. denuded: distinguishes direct vs. endothelium-dependent relaxation\nEffect on Ca2+-induced contractions\nRole of NO, K-ATP channels confirmed using blockers (L-NAME, glibenclamide)"
);
// SLIDE 35 – Heart-Lung Preparation
addContentSlide(pres, "IN VITRO MODEL 3: Isolated Heart-Lung Preparation", [
{ text: "Principle:", bold: true, color: C.gold },
"Both heart and lungs are kept functioning together outside the body.",
"The lungs oxygenate the blood, which circulates through the heart.",
"More physiological than Langendorff (blood-perfused, includes pulmonary circulation).",
{ text: "Procedure:", bold: true, color: C.gold },
" - Animal: cat, dog, or rabbit",
" - Thorax opened; heart-lung block dissected with trachea intact",
" - Venous return collected and recirculated",
" - Trachea connected to artificial ventilation",
" - Cardiac output, BP, and drug effects measured",
{ text: "Endpoints:", bold: true, color: C.accent },
" - Cardiac output and stroke volume",
" - Coronary perfusion pressure",
" - O2 consumption of myocardium",
" - Drug effects on rate, rhythm, and contractility",
], { fontSize: 13 });
// SLIDE 36 – Biochemical Endpoints Summary
addContentSlide(pres, "Biochemical & Molecular Endpoints in Antianginal Screening", [
{ text: "Serum Cardiac Biomarkers:", bold: true, color: C.gold },
" - Creatine kinase-MB (CK-MB): released within 3-6 hr of myocardial necrosis",
" - Lactate dehydrogenase (LDH): peaks at 24-48 hr",
" - Troponin I/T: most sensitive and specific; peaks at 12-24 hr",
" - Aspartate aminotransferase (AST): non-specific but used in animal models",
{ text: "Oxidative Stress Markers:", bold: true, color: C.accent },
" - Malondialdehyde (MDA): lipid peroxidation marker",
" - Superoxide dismutase (SOD), Catalase (CAT): antioxidant defense enzymes",
" - Glutathione (GSH): reduced form indicates oxidative damage when depleted",
{ text: "Histopathological Stains:", bold: true, color: C.lightBlue },
" - Hematoxylin & Eosin (H&E): cellular architecture, necrosis, infiltrates",
" - TTC (2,3,5-Triphenyltetrazolium chloride): live tissue red, infarct pale/white",
" - Masson trichrome: fibrosis/scar tissue",
], { fontSize: 13 });
// ──────────────────────────────────────────────────────────────────────────────
// SECTION 7: CLINICAL EVALUATION
// ──────────────────────────────────────────────────────────────────────────────
addSectionDivider(pres, "Clinical Evaluation of Antianginal Drugs", "07");
// SLIDE 38 – Clinical Endpoints
addContentSlide(pres, "Clinical Evaluation: Key Endpoints", [
{ text: "Primary Efficacy Endpoints:", bold: true, color: C.gold },
" - Time to onset of angina on exercise stress test (EST)",
" - Time to 1 mm ST depression on EST",
" - Total exercise duration on treadmill (Bruce protocol)",
" - Weekly anginal attack frequency (diary-based)",
" - Weekly nitroglycerin consumption (rescue use)",
{ text: "Secondary Endpoints:", bold: true, color: C.accent },
" - Canadian Cardiovascular Society (CCS) angina class change",
" - Quality of life (SAQ – Seattle Angina Questionnaire)",
" - MACE (Major Adverse Cardiovascular Events): MI, death, revascularization",
{ text: "Hemodynamic Parameters:", bold: true, color: C.lightBlue },
" - Resting and exercise HR, BP",
" - Rate-pressure product (RPP = HR × systolic BP) – surrogate for O2 demand",
" - Holter monitoring: frequency of silent ischemia episodes",
], { fontSize: 13 });
// SLIDE 39 – Stress Testing
addContentSlide(pres, "Exercise Stress Testing (EST) in Drug Evaluation", [
{ text: "Principle:", bold: true, color: C.gold },
" Controlled increase in workload provokes ischemia in patients with CAD",
" Antianginal drug efficacy = delayed onset of ischemia / increased exercise capacity",
{ text: "Protocols Used:", bold: true, color: C.gold },
" - Bruce Treadmill Protocol (stages of increasing speed + incline)",
" - Modified Bruce (elderly/deconditioned patients)",
" - Bicycle ergometry (standard in European trials)",
{ text: "Positive Test Criteria:", bold: true, color: C.accent },
" - Horizontal/downsloping ST depression ≥ 1 mm at 60-80 ms after J-point",
" - Typical anginal symptoms during test",
" - ST elevation (rare; indicates vasospasm or severe ischemia)",
{ text: "Drug Testing Protocol:", bold: true, color: C.lightBlue },
" - Baseline EST → drug treatment period (washout if comparing) → repeat EST",
" - Crossover design or parallel group RCT",
" - Test done at time of PEAK drug plasma concentration",
], { fontSize: 13 });
// SLIDE 40 – Clinical Trial Endpoints
addContentSlide(pres, "Clinical Trial Design for Antianginal Drugs", [
{ text: "Phase I:", bold: true, color: C.gold },
" Safety, tolerability, pharmacokinetics, dose-ranging in healthy volunteers",
{ text: "Phase II:", bold: true, color: C.gold },
" Proof of concept; EST-based endpoints; 50-200 patients with stable angina",
{ text: "Phase III:", bold: true, color: C.accent },
" Randomized, double-blind, placebo-controlled or active-comparator trial",
" Primary: MACE, time to ischemia on EST, anginal frequency",
" Large multicenter; 500-5000 patients; 6-24 months",
{ text: "Phase IV (Post-marketing):", bold: true, color: C.lightBlue },
" Real-world effectiveness, safety surveillance, special populations",
{ text: "Notable Clinical Trials:", bold: true, color: C.green },
" - COURAGE: PCI + medical therapy vs. medical therapy alone in stable CAD",
" - IONA: Nicorandil reduces cardiac events in stable angina",
" - BEAUTIFUL: Ivabradine in CAD + HFrEF (HR subgroup benefited)",
" - SIGNIFY: Ivabradine in CAD without HF (no benefit; possible harm in higher HR)",
], { fontSize: 13 });
// ──────────────────────────────────────────────────────────────────────────────
// SECTION 8: COMPARISON & SPECIAL TOPICS
// ──────────────────────────────────────────────────────────────────────────────
addSectionDivider(pres, "Comparison, Special Situations & Summary", "08");
// SLIDE 42 – Drug Selection by Angina Type
addTableSlide(pres,
"Drug Selection by Angina Type",
["Angina Type", "First-Line Drug(s)", "Second-Line", "Avoid"],
[
["Stable effort angina", "Beta blocker + sublingual GTN (relief)", "CCB (amlodipine), Ivabradine (if BB intolerant)", "–"],
["Variant (Vasospastic)", "DHP CCB (nifedipine, amlodipine)", "Long-acting nitrates, Diltiazem", "Beta blockers (may worsen)"],
["Unstable angina (ACS)", "Aspirin, LMWH, IV nitrates, BB", "Clopidogrel, PCI/CABG, RAAS inhibitors", "Isolated nitrates (no mortality benefit)"],
["Angina + HTN", "CCB (amlodipine) or BB", "Long-acting nitrates + hydralazine", "Short-acting nifedipine (reflex tachycardia)"],
["Angina + HFrEF", "BB (bisoprolol/carvedilol) + ivabradine", "Long-acting nitrates", "Non-DHP CCBs (verapamil, diltiazem)"],
["Angina + Diabetes", "BB (with caution) + CCB", "Ranolazine, Nicorandil", "Sulfonylureas (KATP blockade)"],
["Refractory angina", "Ranolazine add-on, Nicorandil", "Trimetazidine (outside USA)", "–"],
]
);
// SLIDE 43 – Hemodynamic Comparison
addTableSlide(pres,
"Hemodynamic Comparison of Major Antianginal Drugs",
["Parameter", "Nitrates", "Beta Blockers", "DHP CCBs", "Non-DHP CCBs"],
[
["Heart Rate", "Reflex ↑", "↓↓", "Reflex ↑ (short)", "↓↓"],
["Contractility", "Mild ↓ (reflex ↑)", "↓↓", "Minimal", "↓↓"],
["Preload", "↓↓ (major)", "↓ (mild)", "Minimal", "Minimal"],
["Afterload", "↓ (dose-dependent)", "↓ (mild)", "↓↓", "↓↓"],
["Coronary vasodilation", "↑↑ (vasospasm)", "Minimal", "↑↑", "↑↑"],
["O2 Demand", "↓↓", "↓↓", "↓", "↓↓"],
["O2 Supply", "↑ (vasospasm)", "↑ (prolongs diastole)", "↑", "↑"],
]
);
// SLIDE 44 – Drug Interactions Summary
addContentSlide(pres, "Important Drug Interactions in Antianginal Therapy", [
{ text: "Nitrates + PDE-5 inhibitors (sildenafil, tadalafil, vardenafil):", bold: true, color: C.accent },
" CONTRAINDICATED – severe hypotension via excess cGMP accumulation",
{ text: "Verapamil / Diltiazem + Beta Blockers:", bold: true, color: C.accent },
" ADDITIVE bradycardia and AV block – potentially fatal combination",
{ text: "Ranolazine + CYP3A4/2D6 inhibitors:", bold: true, color: C.gold },
" Ketoconazole, clarithromycin → significantly raise ranolazine levels → QT prolongation",
{ text: "Ranolazine + Digoxin / Simvastatin:", bold: true, color: C.gold },
" Ranolazine inhibits their metabolism → toxicity",
{ text: "CCBs (especially verapamil) + Digoxin:", bold: true, color: C.lightBlue },
" Verapamil increases digoxin plasma levels (reduces renal/biliary clearance)",
{ text: "Beta Blockers + Insulin / Oral Hypoglycemics:", bold: true, color: C.lightBlue },
" BB masks tachycardia (warning sign of hypoglycemia); prolongs hypoglycemia recovery",
{ text: "Nitrates + Alcohol:", bold: true, color: C.subtleGray },
" Additive hypotension and dizziness",
], { fontSize: 13 });
// SLIDE 45 – Special Populations
addContentSlide(pres, "Antianginal Drugs in Special Populations", [
{ text: "Elderly:", bold: true, color: C.gold },
" - Use lower doses; increased sensitivity to hypotension and falls",
" - Amlodipine preferred over verapamil (less heart block risk)",
" - Ranolazine: extra caution re QT prolongation",
{ text: "Pregnancy:", bold: true, color: C.accent },
" - Beta blockers (propranolol, metoprolol): generally safe; used for peripartum hypertension with angina",
" - Nitrates: limited data; used acutely if benefit outweighs risk",
" - CCBs (nifedipine): commonly used for preterm labor; considered safe",
{ text: "Renal Impairment:", bold: true, color: C.lightBlue },
" - Isosorbide mononitrate: dose reduction needed (renal excretion of active metabolites)",
" - Ranolazine: avoid in severe renal impairment",
{ text: "Hepatic Impairment:", bold: true, color: C.lightBlue },
" - Nitrates: increased bioavailability (reduced first-pass) – use lower doses",
" - Ranolazine: contraindicated in severe hepatic impairment (major hepatic metabolism)",
], { fontSize: 13 });
// SLIDE 46 – ECG Changes in Ischemia
addContentSlide(pres, "ECG Changes Used in Antianginal Drug Screening", [
{ text: "Ischemic Changes (used as endpoints in preclinical + clinical studies):", bold: true, color: C.gold },
" - ST segment DEPRESSION: subendocardial ischemia (typical in stable angina, ACS)",
" - ST segment ELEVATION: transmural ischemia (STEMI, vasospasm in Prinzmetal)",
" - T-wave inversions: ischemia or reperfusion",
" - Q waves: established myocardial infarction (irreversible)",
{ text: "In Preclinical Studies (Animal ECG):", bold: true, color: C.accent },
" - Ventricular fibrillation (VF) incidence during ischemia: drug reduces VF = protective",
" - ST deviation measured continuously via needle electrodes",
" - Rate of ST normalization after reperfusion",
{ text: "QT Interval Monitoring:", bold: true, color: C.lightBlue },
" - Critical for ranolazine, sotalol, amiodarone",
" - QTc > 500 ms = high risk of torsades de pointes",
" - Required in ICH E14 guidelines for all new cardiovascular drugs",
], { fontSize: 13 });
// SLIDE 47 – Anginal Drug Pharmacokinetics Summary
addTableSlide(pres,
"Pharmacokinetics at a Glance",
["Drug", "Bioavailability", "Half-life", "Metabolism", "Route of Elimination"],
[
["GTN (sublingual)", "~80% (sublingual)", "2-8 min", "ALDH2, glutathione S-transferase", "Renal (glucuronides)"],
["ISDN (oral)", "~25% (first-pass)", "45-60 min", "Hepatic (active metabolite ISMN)", "Renal"],
["ISMN (oral)", "~100%", "4-5 h", "Not first-pass; hepatic oxidation", "Renal"],
["Propranolol", "~30%", "3-6 h", "Hepatic (CYP2D6) extensive first-pass", "Renal"],
["Atenolol", "~50%", "6-9 h", "Minimal hepatic", "Renal (unchanged)"],
["Amlodipine", "~64%", "35-50 h", "Hepatic (CYP3A4)", "Renal/fecal"],
["Verapamil", "~20-35%", "6-12 h", "Hepatic (CYP3A4), high first-pass", "Renal"],
["Ranolazine", "~76%", "7 h", "CYP3A4, CYP2D6, P-gp substrate", "Renal/fecal"],
]
);
// SLIDE 48 – Comparison Summary Diagram
addContentSlide(pres, "Step-by-Step Approach: Initiating Antianginal Therapy", [
{ text: "STEP 1: Symptom Relief", bold: true, color: C.gold },
" Sublingual GTN (nitroglycerin) for ALL acute episodes",
" Every patient should carry GTN at all times",
{ text: "STEP 2: First-Line Prophylaxis", bold: true, color: C.gold },
" Beta blocker (reduces HR, contractility, O2 demand) – proven mortality benefit post-MI",
" If beta blocker contraindicated / not tolerated → use CCB (non-DHP for rate control)",
{ text: "STEP 3: Add-On if Uncontrolled", bold: true, color: C.accent },
" Add long-acting nitrate (with nitrate-free interval) OR second class of antianginal",
" Avoid combining verapamil/diltiazem WITH beta blockers",
{ text: "STEP 4: Refractory Angina", bold: true, color: C.lightBlue },
" Add ranolazine, ivabradine, or nicorandil",
" Consider revascularization (PCI or CABG) if anatomy suitable",
{ text: "SPECIAL CONSIDERATION:", bold: true, color: C.green },
" Variant angina → CCB FIRST (beta blockers may worsen vasospasm)",
], { fontSize: 13 });
// SLIDE 49 – Quick Recall / Memory Aids
addContentSlide(pres, "Key Memory Aids for Exams", [
{ text: "Nitrates = VEIN relaxers (primarily venodilation = preload reduction)", bold: true, color: C.gold },
{ text: "Beta Blockers = HEART slowers (HR ↓, contractility ↓ → O2 demand ↓)", bold: true, color: C.gold },
{ text: "DHP CCBs = ARTERY relaxers (peripheral vasodilation = afterload ↓)", bold: true, color: C.gold },
{ text: "Non-DHP CCBs = Heart slowers + vasodilators (like BB + DHP combined)", bold: true, color: C.gold },
{ text: "Ranolazine = Na+ channel blocker → indirectly reduces Ca2+ overload", bold: true, color: C.accent },
{ text: "Ivabradine = ONLY slows heart rate (pure If blocker; no BP effect)", bold: true, color: C.accent },
{ text: "Trimetazidine = Metabolic optimizer (FA → glucose oxidation; less O2/ATP)", bold: true, color: C.accent },
{ text: "TTC staining: Viable = RED; Infarcted = WHITE (remember: TTC = True Color for alive)", bold: true, color: C.lightBlue },
{ text: "Langendorff = Retrograde (aorta UP; pressure drives coronary circulation backward)", bold: true, color: C.lightBlue },
{ text: "Isoproterenol model = Increases O2 demand until ischemia occurs (mimics exercise-induced MI)", bold: true, color: C.lightBlue },
], { fontSize: 14 });
// SLIDE 50 – CONCLUSION
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: "100%", h: "100%", fill: { color: C.darkBg } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: "100%", h: 0.08, fill: { color: C.gold } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 5.545, w: "100%", h: 0.08, fill: { color: C.accent } });
s.addShape(pres.ShapeType.rect, { x: 9.82, y: 0.08, w: 0.18, h: 5.465, fill: { color: C.gold } });
s.addText("Summary", {
x: 0.5, y: 0.15, w: 9.0, h: 0.65,
fontSize: 14, bold: true, color: C.subtleGray, fontFace: "Calibri", align: "left", charSpacing: 3,
});
s.addText("Screening of\nAntianginal Drugs", {
x: 0.5, y: 0.8, w: 9.0, h: 1.4,
fontSize: 34, bold: true, color: C.white, fontFace: "Calibri", align: "left",
});
const pts = [
"Angina pectoris arises from myocardial O2 supply-demand mismatch",
"3 classic drug classes: Organic nitrates | Beta blockers | CCBs – each reduces O2 demand by different mechanisms",
"Newer drugs (ranolazine, ivabradine, nicorandil, trimetazidine) are adjuncts targeting metabolic/ionic pathways",
"Preclinical screening: In vivo (ISO model, LAD ligation, preconditioning) + In vitro (Langendorff, isolated aorta)",
"Clinical endpoints: EST parameters, anginal frequency, MACE in Phase II-III RCTs",
"Drug selection is guided by angina type, comorbidities, and hemodynamic profile",
];
const bullItems = pts.map((p, i) => ({
text: p,
options: { bullet: { code: "25BA" }, color: i % 2 === 0 ? C.lightBlue : C.white, fontSize: 13, fontFace: "Calibri", breakLine: i < pts.length - 1, paraSpaceAfter: 6 }
}));
s.addText(bullItems, { x: 0.5, y: 2.35, w: 9.1, h: 3.0, valign: "top", wrap: true });
s.addText("Sources: Katzung's Basic & Clinical Pharmacology 16e | Goodman & Gilman's Pharmacological Basis of Therapeutics | Lippincott Illustrated Reviews Pharmacology", {
x: 0.5, y: 5.15, w: 9.1, h: 0.32,
fontSize: 8.5, color: C.subtleGray, fontFace: "Calibri", align: "left", italic: true,
});
}
// ─── WRITE FILE ───────────────────────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/antianginal-pptx/Screening_of_Antianginal_Drugs.pptx" })
.then(() => console.log("DONE"))
.catch(e => { console.error(e); process.exit(1); });
cd /home/daytona/workspace/antianginal-pptx && node build.js 2>&1
ls -lh /home/daytona/workspace/antianginal-pptx/Screening_of_Antianginal_Drugs.pptx
Screening of Antianginal Drugs
Presentation · PPTX
| Section | Slides | Content |
|---|---|---|
| 01 – Introduction | 1-7 | Title, Outline, Definition, Types of angina (stable/variant/unstable/microvascular), Pathophysiology, O2 supply-demand, Coronary blood flow & ischemia cascade |
| 02 – Classification | 8-10 | Full drug classification (nitrates, beta blockers, CCBs, newer drugs), Drug targets table |
| 03 – Mechanisms of Action | 11-18 | Organic nitrates (NO → cGMP pathway), Nitrate preparations comparison table, Tolerance & adverse effects, Beta blockers, CCBs (DHP vs. non-DHP) |
| 04 – Newer Drugs | 19-23 | Ranolazine (late INa blocker), Ivabradine, Nicorandil, Trimetazidine/Perhexiline, Investigational agents table |
| 05 – In Vivo Screening | 24-31 | Overview, Isoproterenol-induced necrosis, LAD coronary artery occlusion-reperfusion, Preconditioning model (rabbit), Microspheres model, Electrical stimulation thrombosis, Pithed rat preparation |
| 06 – In Vitro Screening | 32-36 | Overview, Langendorff isolated perfused heart, Isolated rabbit aorta, Heart-lung preparation, Biochemical & histological endpoints (TTC, H&E, CK-MB, MDA, SOD) |
| 07 – Clinical Evaluation | 37-40 | Clinical endpoints, Exercise Stress Testing (Bruce protocol), Clinical trial design (Phase I-IV), Notable trials (COURAGE, IONA, BEAUTIFUL, SIGNIFY) |
| 08 – Comparison & Summary | 41-50 | Drug selection by angina type, Hemodynamic comparison table, Drug interactions, Special populations, ECG changes, PK summary table, Step-by-step therapy guide, Memory aids, Conclusion |
Create a one-page cheat sheet summarizing the 6 in vivo and 5 in vitro screening models
~/antianginal-pptx/cheatsheet.py
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.units import mm
from reportlab.platypus import (
SimpleDocTemplate, Table, TableStyle, Paragraph, Spacer, HRFlowable
)
from reportlab.lib.styles import ParagraphStyle
from reportlab.lib.enums import TA_CENTER, TA_LEFT
from reportlab.platypus import KeepTogether
OUTPUT = "/home/daytona/workspace/antianginal-pptx/Antianginal_Screening_Cheatsheet.pdf"
# ── COLOURS ──────────────────────────────────────────────────────────────────
NAVY = colors.HexColor("#0D1F3C")
MIDNAVY = colors.HexColor("#102A52")
ACCENT = colors.HexColor("#E8473F")
GOLD = colors.HexColor("#F5A623")
LBLUE = colors.HexColor("#B8D4F5")
CARDBLUE = colors.HexColor("#162B4F")
WHITE = colors.white
LGRAY = colors.HexColor("#E8EEF7")
GREEN = colors.HexColor("#27AE60")
PALE = colors.HexColor("#F0F4FB")
# ── STYLES ────────────────────────────────────────────────────────────────────
def s(name, **kw):
base = dict(fontName="Helvetica", fontSize=7, leading=9,
textColor=colors.black, spaceAfter=0, spaceBefore=0)
base.update(kw)
return ParagraphStyle(name, **base)
TITLE_S = s("title", fontName="Helvetica-Bold", fontSize=15, textColor=WHITE,
alignment=TA_CENTER, leading=18)
SUB_S = s("sub", fontName="Helvetica", fontSize=7.5, textColor=GOLD,
alignment=TA_CENTER, leading=10)
SEC_S = s("sec", fontName="Helvetica-Bold", fontSize=8.5, textColor=WHITE,
alignment=TA_CENTER, leading=10)
HDR_S = s("hdr", fontName="Helvetica-Bold", fontSize=6.8, textColor=WHITE,
alignment=TA_CENTER, leading=8)
BODY_S = s("body", fontName="Helvetica", fontSize=6.5, textColor=colors.black,
leading=8.2, alignment=TA_LEFT)
BOLD_S = s("bold", fontName="Helvetica-Bold", fontSize=6.5,
textColor=NAVY, leading=8.2)
ENDPT_S = s("endpt", fontName="Helvetica-Oblique", fontSize=6.3,
textColor=colors.HexColor("#1a1a5e"), leading=8, alignment=TA_LEFT)
FOOT_S = s("foot", fontName="Helvetica-Oblique", fontSize=5.5,
textColor=colors.HexColor("#555555"), alignment=TA_CENTER, leading=7)
def P(txt, style=BODY_S):
return Paragraph(txt, style)
def bold(txt):
return f'<b>{txt}</b>'
# ── HELPERS ───────────────────────────────────────────────────────────────────
W = A4[0] # 210 mm
H = A4[1] # 297 mm
PAGE_M = 6*mm
def section_header(text, bg=ACCENT):
t = Table([[Paragraph(text, SEC_S)]], colWidths=[W - 2*PAGE_M])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), bg),
("ROUNDEDCORNERS", [3]),
("TOPPADDING", (0,0), (-1,-1), 3),
("BOTTOMPADDING", (0,0), (-1,-1), 3),
("LEFTPADDING", (0,0), (-1,-1), 4),
]))
return t
def model_row(num, name, animal, principle, procedure, endpoint, row_bg):
cells = [
Paragraph(f"<b>{num}</b>", HDR_S),
Paragraph(f"<b>{name}</b>", BOLD_S),
Paragraph(animal, BODY_S),
Paragraph(principle, BODY_S),
Paragraph(procedure, BODY_S),
Paragraph(endpoint, ENDPT_S),
]
return cells, row_bg
# ── DOCUMENT SETUP ────────────────────────────────────────────────────────────
doc = SimpleDocTemplate(
OUTPUT,
pagesize=A4,
leftMargin=PAGE_M, rightMargin=PAGE_M,
topMargin=PAGE_M, bottomMargin=6*mm,
)
story = []
# ── TITLE BAR ─────────────────────────────────────────────────────────────────
title_tbl = Table(
[[Paragraph("SCREENING OF ANTIANGINAL DRUGS", TITLE_S)],
[Paragraph("Preclinical Evaluation Models | Quick Reference Cheat Sheet | Pharmacology UG/PG", SUB_S)]],
colWidths=[W - 2*PAGE_M]
)
title_tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), NAVY),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 6),
("LINEBELOW", (0,-1), (-1,-1), 2, GOLD),
]))
story.append(title_tbl)
story.append(Spacer(1, 2*mm))
# ── COLUMN WIDTHS (for model tables) ─────────────────────────────────────────
# No | Name | Animal | Principle | Procedure | Endpoint
TW = W - 2*PAGE_M # total usable width ~198mm
COLS = [8*mm, 38*mm, 22*mm, 48*mm, 42*mm, 40*mm]
def build_table(header_row, data_rows, col_widths=COLS):
table_data = [header_row] + [r[0] for r in data_rows]
bg_map = [r[1] for r in data_rows]
style_cmds = [
# Header
("BACKGROUND", (0,0), (-1,0), MIDNAVY),
("TEXTCOLOR", (0,0), (-1,0), WHITE),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,0), 6.8),
("ALIGN", (0,0), (-1,0), "CENTER"),
("VALIGN", (0,0), (-1,-1), "TOP"),
("TOPPADDING", (0,0), (-1,-1), 3),
("BOTTOMPADDING", (0,0), (-1,-1), 3),
("LEFTPADDING", (0,0), (-1,-1), 3),
("RIGHTPADDING", (0,0), (-1,-1), 3),
("GRID", (0,0), (-1,-1), 0.3, colors.HexColor("#AABBCC")),
("ROWBACKGROUNDS",(0,1), (-1,-1), [PALE, WHITE]),
]
# number cell accent color
for i, (_, bg) in enumerate(data_rows):
r = i + 1
style_cmds.append(("BACKGROUND", (0,r), (0,r), bg))
style_cmds.append(("TEXTCOLOR", (0,r), (0,r), WHITE))
style_cmds.append(("FONTNAME", (0,r), (0,r), "Helvetica-Bold"))
style_cmds.append(("FONTSIZE", (0,r), (0,r), 9))
style_cmds.append(("ALIGN", (0,r), (0,r), "CENTER"))
style_cmds.append(("VALIGN", (0,r), (0,r), "MIDDLE"))
t = Table(table_data, colWidths=col_widths, repeatRows=1)
t.setStyle(TableStyle(style_cmds))
return t
HDR_ROW = [
Paragraph("<b>#</b>", HDR_S),
Paragraph("<b>Model Name</b>", HDR_S),
Paragraph("<b>Animal/Prep</b>", HDR_S),
Paragraph("<b>Principle</b>", HDR_S),
Paragraph("<b>Procedure (Key Steps)</b>", HDR_S),
Paragraph("<b>Endpoints</b>", HDR_S),
]
# ═══════════════════════════════════════════════════════════════════════════════
# IN VIVO MODELS
# ═══════════════════════════════════════════════════════════════════════════════
story.append(section_header(" ▶ IN VIVO SCREENING MODELS (6 Models)", bg=ACCENT))
story.append(Spacer(1, 1.2*mm))
iv_rows = [
model_row("1",
"Isoproterenol-Induced\nMyocardial Necrosis",
"Wistar rat\n(200–250 g)",
"ISO (synthetic catecholamine) in high dose → severe tachycardia + O₂ demand surge → coronary spasm → relative ischemia → necrosis biochemically similar to MI",
"• ISO 85 mg/kg SC on Day 1 & 2\n• Pre-treat with drug × 7 days before\n• Sacrifice on Day 3\n• Collect blood & heart",
"Serum: CK-MB ↑, LDH ↑, AST ↑\nOxidative stress: MDA ↑, SOD/CAT ↓\nHistopathology: H&E, TTC staining\nECG: ST deviation\nHeart wt / body wt ratio",
ACCENT),
model_row("2",
"Coronary Artery\nOcclusion–Reperfusion\n(LAD Ligation)",
"Rat / Rabbit",
"Surgical ligation of LAD coronary artery → controlled ischemia. Release of ligation = reperfusion injury model. Gold standard for ischemia-reperfusion (I/R) studies.",
"• Anaesthetise (urethane/ketamine-xylazine)\n• Left thoracotomy\n• 4-0 silk suture around LAD\n• Occlude 30 min → reperfuse 2–4 h\n• Record ECG throughout",
"Infarct size by TTC staining\n(viable = RED, infarcted = WHITE)\nTroponin I/T, CK-MB in serum\nVF incidence, ST elevation on ECG\nLV function: dP/dt, LVEDP",
colors.HexColor("#C0392B")),
model_row("3",
"Ischemic Preconditioning\nModel",
"Rabbit\n(2.5–3.5 kg)",
"Brief repetitive ischemic episodes confer cardioprotection against sustained ischemia (preconditioning). Drug-induced preconditioning activates KATP channels / PKC / adenosine receptors.",
"• Ketamine 0.6 ml/kg anaesthesia\n• Tracheal cannulation + IPPV 30/min\n• Suture around marginal LCA branch\n• 5 min occlusion × 3 cycles (IPC)\n• Sustained ischemia 30 min → reperfuse 3 h",
"Infarct size (% of area at risk)\nTTC staining\nHR, BP, dP/dt monitoring\nCK-MB, LDH release\nMitochondrial function assays\nBlock with glibenclamide to confirm KATP role",
colors.HexColor("#D35400")),
model_row("4",
"Microspheres-Induced\nAcute Ischemia",
"Dog / Rat",
"Intra-coronary injection of polystyrene microspheres (15–45 µm) → microembolism → patchy ischemia simulating microvascular angina. Tests drugs improving microvascular flow.",
"• Anaesthetise; catheterise coronary artery\n• Inject calibrated microsphere dose\n• Monitor ECG + BP continuously\n• Administer test drug before/during injection",
"Regional myocardial blood flow\n(radioactive or fluorescent microspheres)\nECG: ST depression, arrhythmias\nLV function: EF, dP/dt\nInfarct size (TTC)\nHistopathology: focal necrosis",
colors.HexColor("#E67E22")),
model_row("5",
"Electrical Stimulation–\nInduced Coronary\nThrombosis",
"Dog / Rat",
"DC current applied to coronary endothelium → endothelial injury → platelet activation → thrombus formation. Mimics plaque rupture in ACS. Tests antiplatelet + antianginal strategies.",
"• Pentobarbitone anaesthesia\n• Expose coronary artery surgically\n• Platinum wire electrodes on vessel wall\n• Apply constant DC 200–500 µA\n• Doppler probe measures coronary flow",
"Time to coronary occlusion (TTO)\n(longer TTO = drug protective)\nCoronary blood flow\nECG: ischaemic changes, VF\nInfarct size; platelet aggregation ex vivo",
colors.HexColor("#6C3483")),
model_row("6",
"Stenosis-Induced\nCoronary Thrombosis\nModel",
"Dog",
"Mechanical narrowing (stenosis) of coronary artery by ameroid constrictor or external band → progressive reduction in flow → triggers platelet thrombus formation at site of stenosis.",
"• Implant ameroid constrictor on coronary artery\n• Slow progressive stenosis over 2–4 weeks\n• Monitor via angiography/Doppler\n• Administer test drug from Day 1",
"Coronary blood flow velocity\nTime to complete occlusion\nRegional wall motion abnormalities (echo)\nHistopathology of thrombus\nECG and haemodynamic parameters",
colors.HexColor("#1A5276")),
]
story.append(build_table(HDR_ROW, iv_rows))
story.append(Spacer(1, 2.5*mm))
# ═══════════════════════════════════════════════════════════════════════════════
# IN VITRO MODELS
# ═══════════════════════════════════════════════════════════════════════════════
story.append(section_header(" ▶ IN VITRO SCREENING MODELS (5 Models)", bg=MIDNAVY))
story.append(Spacer(1, 1.2*mm))
ITV_COLS = [8*mm, 38*mm, 22*mm, 48*mm, 42*mm, 40*mm]
itv_rows = [
model_row("1",
"Langendorff\nIsolated Perfused\nHeart",
"Rat /\nGuinea pig",
"Heart excised and perfused retrogradely via aorta (upward) with oxygenated Krebs-Henseleit buffer (37 °C, 95% O₂/5% CO₂). Beats spontaneously. No neurohormonal influences — direct cardiac drug effects measurable.",
"• Rapidly excise heart; cannulate aorta\n• Retrograde perfusion 10 ml/min at 70–80 cmH₂O\n• Equilibrate 20 min\n• Induce ischemia: stop flow (global) or LAD ligation\n• Apply test drug; record 60–120 min",
"Developed tension / LVDP (mmHg)\n+dP/dt (inotropy), −dP/dt (lusitropy)\nHeart rate (bpm)\nCoronary flow rate (ml/min)\nLDH/CK-MB in perfusate\nInfarct size (TTC)",
GREEN),
model_row("2",
"Isolated Heart-Lung\nPreparation",
"Cat / Dog /\nRabbit",
"Heart AND lungs maintained together ex vivo. Lungs oxygenate blood (blood-perfused, more physiological than Langendorff). Includes pulmonary circulation. Tests integrated cardiac + vascular drug effects.",
"• Open thorax; dissect heart-lung block with trachea\n• Connect trachea to artificial ventilation\n• Collect and recirculate venous return\n• Measure cardiac output, BP, coronary perfusion pressure",
"Cardiac output & stroke volume\nCoronary perfusion pressure\nMyocardial O₂ consumption\nRate, rhythm, and contractility changes\nPulmonary vascular resistance",
colors.HexColor("#1E8449")),
model_row("3",
"Calcium Antagonism\nin Pithed Rat",
"Rat\n(pithed)",
"Spinal cord destroyed (pithed) → eliminates CNS reflexes while preserving peripheral cardiovascular function. Ideal for studying direct vascular Ca²⁺ channel blocking activity without CNS interference.",
"• Rat anaesthetised → cervical dislocation\n• Spinal cord pithed via steel rod\n• Artificial ventilation maintained\n• IV CaCl₂ given cumulatively\n• Test drug given IV before Ca²⁺ challenge",
"Ca²⁺-induced pressor response (%)\nDose-response curve shift (rightward = antagonism)\npA₂ value calculation\nConfirms L-type Ca²⁺ channel blockade\nDifferentiates from other vasodilators",
colors.HexColor("#117A65")),
model_row("4",
"Coronary Artery\nLigation in\nIsolated Rat Heart",
"Rat heart\n(Langendorff)",
"Regional ischemia created in isolated Langendorff heart by ligation of LAD. Combines advantages of in vitro control (no systemic variables) with a relevant ischemia model. Drug added to perfusate.",
"• Set up Langendorff heart (see Model 1)\n• After equilibration, ligate LAD with 4-0 suture\n• Add test drug to perfusate\n• Maintain ischemia ± reperfusion as required",
"Infarct size (TTC; % of LV area)\nLVDP, dP/dt, heart rate\nLDH/CK-MB release into perfusate\nRhythm disturbances during ischemia\nMetabolic markers in effluent",
colors.HexColor("#0E6655")),
model_row("5",
"Isolated Rabbit\nAorta Preparation",
"Rabbit\n(2–3 kg)",
"Thoracic aortic rings pre-contracted with NE (10⁻⁶ M) or KCl (60 mM) in isolated organ bath (Krebs-Henseleit, 37°C). Test drug added cumulatively. Measures direct vascular smooth muscle relaxation.",
"• Excise thoracic aorta; cut 3–4 mm rings\n• Mount in organ bath under 2 g resting tension\n• Equilibrate 60 min\n• Pre-contract with NE or KCl\n• Add test drug in cumulative concentrations",
"% relaxation of pre-contracted ring\nIC₅₀ (50% relaxation concentration)\nEndothelium-intact vs denuded (NO involvement)\nEffect on Ca²⁺-induced contractions\nConfirm KATP/NO pathway with blockers",
colors.HexColor("#1A5276")),
]
story.append(build_table(HDR_ROW, itv_rows, ITV_COLS))
story.append(Spacer(1, 2*mm))
# ── BOTTOM KEY ────────────────────────────────────────────────────────────────
key_data = [[
Paragraph("<b>KEY ABBREVIATIONS</b>", BOLD_S),
Paragraph("ISO = Isoproterenol | LAD = Left Anterior Descending | IPC = Ischemic Preconditioning | LCA = Left Coronary Artery | LVDP = LV Developed Pressure | TTC = 2,3,5-Triphenyltetrazolium Chloride | LVEDP = LV End-Diastolic Pressure | MDA = Malondialdehyde | SOD = Superoxide Dismutase | CAT = Catalase | VF = Ventricular Fibrillation | TTO = Time to Occlusion | IPPV = Intermittent Positive Pressure Ventilation | EF = Ejection Fraction", FOOT_S),
]]
key_tbl = Table(key_data, colWidths=[30*mm, TW - 30*mm])
key_tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (0,0), NAVY),
("BACKGROUND", (1,0), (1,0), LGRAY),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING", (0,0), (-1,-1), 4),
("LEFTPADDING", (0,0), (-1,-1), 5),
("TEXTCOLOR", (0,0), (0,0), WHITE),
("GRID", (0,0), (-1,-1), 0.3, colors.HexColor("#AABBCC")),
]))
story.append(key_tbl)
story.append(Spacer(1, 1.5*mm))
# ── FOOTER ────────────────────────────────────────────────────────────────────
story.append(HRFlowable(width="100%", thickness=0.5, color=GOLD))
story.append(Spacer(1, 0.8*mm))
story.append(P(
"Sources: Katzung's Basic & Clinical Pharmacology 16e | Goodman & Gilman's Pharmacological Basis of Therapeutics | Lippincott Illustrated Reviews Pharmacology | Preclinical Screening Models Literature",
FOOT_S
))
# ── BUILD ─────────────────────────────────────────────────────────────────────
doc.build(story)
print(f"PDF written to {OUTPUT}")
cd /home/daytona/workspace/antianginal-pptx && python cheatsheet.py 2>&1
ls -lh /home/daytona/workspace/antianginal-pptx/Antianginal_Screening_Cheatsheet.pdf
Antianginal Screening Cheatsheet
PDF Document · PDF