And merge both files in 1 Can you put the questions at the end. And also I’ve got an exam I don’t know anything. Explain everything in detail in simple words like you’re teaching it to a very dumb kid
python -m markitdown /home/daytona/workspace/attachments/5e29e94e-74af-4332-818f-2299fbd71f55/Lecture_2_Oncology_DH_26.pptx 2>&1 | head -300
cd /home/daytona/workspace && python3 -c " from pptx import Presentation import json def extract_pptx(path): prs = Presentation(path) slides = [] for i, slide in enumerate(prs.slides): texts = [] for shape in slide.shapes: if shape.has_text_frame: for para in shape.text_frame.paragraphs: t = para.text.strip() if t: texts.append(t) slides.append({'slide': i+1, 'texts': texts}) return slides l2 = extract_pptx('/home/daytona/workspace/attachments/5e29e94e-74af-4332-818f-2299fbd71f55/Lecture_2_Oncology_DH_26.pptx') l3 = extract_pptx('/home/daytona/workspace/attachments/5e29e94e-74af-4332-818f-2299fbd71f55/Lecture_3_Oncology_DH_26.pptx') print('=== LECTURE 2 ===') for s in l2: print(f'--- Slide {s[\"slide\"]} ---') for t in s['texts']: print(t) print() print('=== LECTURE 3 ===') for s in l3: print(f'--- Slide {s[\"slide\"]} ---') for t in s['texts']: print(t) " 2>&1
ls /home/daytona/skills/pptx/scripts/ 2>/dev/null || ls /home/daytona/skills/pptx/ 2>&1
ls /home/daytona/skills/pptx/scripts/office/ 2>&1
mkdir -p /home/daytona/workspace/oncology-merged && python3 /home/daytona/skills/pptx/scripts/office/unpack.py /home/daytona/workspace/attachments/5e29e94e-74af-4332-818f-2299fbd71f55/Lecture_2_Oncology_DH_26.pptx /home/daytona/workspace/oncology-merged/unpacked_l2 2>&1 && echo "L2 done" && python3 /home/daytona/skills/pptx/scripts/office/unpack.py /home/daytona/workspace/attachments/5e29e94e-74af-4332-818f-2299fbd71f55/Lecture_3_Oncology_DH_26.pptx /home/daytona/workspace/oncology-merged/unpacked_l3 2>&1 && echo "L3 done"
cd /home/daytona/workspace/oncology-merged && unzip -o /home/daytona/workspace/attachments/5e29e94e-74af-4332-818f-2299fbd71f55/Lecture_2_Oncology_DH_26.pptx -d unpacked_l2 2>&1 | tail -5 && echo "L2 done"
ls -la /home/daytona/workspace/attachments/5e29e94e-74af-4332-818f-2299fbd71f55/ 2>&1
mkdir -p /home/daytona/workspace/oncology-merged/unpacked_l2 && unzip -o /home/daytona/workspace/attachments/5e29e94e-74af-4332-818f-2299fbd71f55/Lecture_2_Oncology_DH_26.pptx -d /home/daytona/workspace/oncology-merged/unpacked_l2 > /dev/null 2>&1 && echo "L2 done" || echo "L2 failed"
mkdir -p /home/daytona/workspace/oncology-merged/unpacked_l3 && unzip -o /home/daytona/workspace/attachments/5e29e94e-74af-4332-818f-2299fbd71f55/Lecture_3_Oncology_DH_26.pptx -d /home/daytona/workspace/oncology-merged/unpacked_l3 > /dev/null 2>&1 && echo "L3 done" || echo "L3 failed"
# Extract text from L2 which is already unpacked python3 << 'EOF' import os, glob, re from xml.etree import ElementTree as ET def extract_text_from_pptx_dir(base_dir): slides_dir = os.path.join(base_dir, 'ppt', 'slides') if not os.path.exists(slides_dir): print(f"No slides dir at {slides_dir}") return [] slide_files = sorted(glob.glob(os.path.join(slides_dir, 'slide[0-9]*.xml')), key=lambda x: int(re.search(r'slide(\d+)', x).group(1))) ns = {'a': 'http://schemas.openxmlformats.org/drawingml/2006/main', 'p': 'http://schemas.openxmlformats.org/presentationml/2006/main', 'r': 'http://schemas.openxmlformats.org/officeDocument/2006/relationships'} all_slides = [] for sf in slide_files: tree = ET.parse(sf) root = tree.getroot() texts = [] for t_elem in root.iter('{http://schemas.openxmlformats.org/drawingml/2006/main}t'): txt = t_elem.text if txt and txt.strip(): texts.append(txt.strip()) slide_num = re.search(r'slide(\d+)', sf).group(1) all_slides.append({'slide': int(slide_num), 'texts': texts}) return all_slides slides_l2 = extract_text_from_pptx_dir('/home/daytona/workspace/oncology-merged/unpacked_l2') print(f"L2: {len(slides_l2)} slides extracted") for s in slides_l2: print(f"\n--- Slide {s['slide']} ---") # Join consecutive small text pieces into lines print(' | '.join(s['texts'][:50])) EOF
cp /home/daytona/workspace/attachments/5e29e94e-74af-4332-818f-2299fbd71f55/Lecture_3_Oncology_DH_26.pptx /home/daytona/workspace/oncology-merged/L3.pptx && echo "copied"
mkdir -p /home/daytona/workspace/oncology-merged/unpacked_l3 && unzip -o /home/daytona/workspace/oncology-merged/L3.pptx -d /home/daytona/workspace/oncology-merged/unpacked_l3 > /dev/null 2>&1 && echo "L3 unpacked" || echo "failed"
Failed to delete session:
We encountered an error while processing your request. Please try again or reach out to us for help.
And merge both files in 1 Can you put the questions at the end. And also I’ve got an exam I don’t know anything. Explain everything in detail in simple words like you’re teaching it to a very dumb kid
ls /home/daytona/workspace/attachments/5e29e94e-74af-4332-818f-2299fbd71f55/ 2>&1
mkdir -p /home/daytona/workspace/oncology-merged/unpacked_l2 /home/daytona/workspace/oncology-merged/unpacked_l3 unzip -o "/home/daytona/workspace/attachments/5e29e94e-74af-4332-818f-2299fbd71f55/Lecture_2_Oncology_DH_26 (1).pptx" -d /home/daytona/workspace/oncology-merged/unpacked_l2 > /dev/null 2>&1 && echo "L2 done" || echo "L2 failed"
unzip -o "/home/daytona/workspace/attachments/5e29e94e-74af-4332-818f-2299fbd71f55/Lecture_3_Oncology_DH_26 (1).pptx" -d /home/daytona/workspace/oncology-merged/unpacked_l3 > /dev/null 2>&1 && echo "L3 done" || echo "L3 failed"
python3 << 'EOF' import os, glob, re from xml.etree import ElementTree as ET def extract_text_from_pptx_dir(base_dir): slides_dir = os.path.join(base_dir, 'ppt', 'slides') if not os.path.exists(slides_dir): return [] slide_files = sorted(glob.glob(os.path.join(slides_dir, 'slide[0-9]*.xml')), key=lambda x: int(re.search(r'slide(\d+)', x).group(1))) all_slides = [] for sf in slide_files: tree = ET.parse(sf) root = tree.getroot() # Collect text elements, trying to preserve paragraph grouping paragraphs = [] for sp in root.iter('{http://schemas.openxmlformats.org/drawingml/2006/main}p'): line = ''.join(t.text or '' for t in sp.iter('{http://schemas.openxmlformats.org/drawingml/2006/main}t')).strip() if line: paragraphs.append(line) slide_num = int(re.search(r'slide(\d+)', sf).group(1)) all_slides.append({'slide': slide_num, 'paragraphs': paragraphs}) return all_slides l2 = extract_text_from_pptx_dir('/home/daytona/workspace/oncology-merged/unpacked_l2') l3 = extract_text_from_pptx_dir('/home/daytona/workspace/oncology-merged/unpacked_l3') print(f"L2 slides: {len(l2)}, L3 slides: {len(l3)}") print("\n=== LECTURE 2 ===") for s in l2: print(f"\n--- Slide {s['slide']} ---") for p in s['paragraphs']: print(p) print("\n=== LECTURE 3 ===") for s in l3: print(f"\n--- Slide {s['slide']} ---") for p in s['paragraphs']: print(p) EOF
~/oncology-merged/build.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Oncology Lectures 2 & 3 – Breast Cancer & Colorectal Cancer";
pres.author = "D. Hakimian";
// ─── COLOUR PALETTE ─────────────────────────────────────────────────────────
const C = {
navy: "0D1B2A",
teal: "1B8CA6",
tealDark:"136B80",
orange: "E8640C",
white: "FFFFFF",
offWhite:"F2F6F9",
light: "D6EAF0",
gray: "7F8C8D",
darkGray:"3D3D3D",
green: "1E8449",
red: "C0392B",
yellow: "F5CBA7",
};
// ─── HELPER FUNCTIONS ───────────────────────────────────────────────────────
function addTitleSlide(title, subtitle) {
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: "100%", h: "100%", fill: { color: C.navy } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 4.2, w: "100%", h: 1.4, fill: { color: C.teal } });
s.addText(title, {
x: 0.6, y: 1.2, w: 8.8, h: 1.8,
fontSize: 40, bold: true, color: C.white, fontFace: "Calibri", align: "left", valign: "middle"
});
s.addText(subtitle, {
x: 0.6, y: 4.3, w: 8.8, h: 1.1,
fontSize: 22, color: C.white, fontFace: "Calibri", align: "left", valign: "middle"
});
return s;
}
function addSectionDivider(sectionTitle, lectureLabel) {
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: "100%", h: "100%", fill: { color: C.tealDark } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.18, h: "100%", fill: { color: C.orange } });
s.addText(lectureLabel, {
x: 0.5, y: 1.5, w: 9, h: 0.6,
fontSize: 18, color: C.light, fontFace: "Calibri", align: "left"
});
s.addText(sectionTitle, {
x: 0.5, y: 2.1, w: 9, h: 1.8,
fontSize: 38, bold: true, color: C.white, fontFace: "Calibri", align: "left", valign: "middle"
});
return s;
}
// Content slide: title bar + bullet list + explanation box
function addContentSlide(title, bullets, explanation) {
const s = pres.addSlide();
// Background
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: "100%", h: "100%", fill: { color: C.offWhite } });
// Title bar
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: "100%", h: 0.78, fill: { color: C.navy } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0.78, w: "100%", h: 0.06, fill: { color: C.orange } });
s.addText(title, {
x: 0.3, y: 0, w: 9.4, h: 0.78,
fontSize: 22, bold: true, color: C.white, fontFace: "Calibri", align: "left", valign: "middle", margin: 0
});
// Decide layout: if explanation is long, use full-width for bullets + separate explanation
const hasBullets = bullets && bullets.length > 0;
const hasExplanation = explanation && explanation.trim().length > 0;
if (hasBullets && hasExplanation) {
// Left: bullets (60%), Right: explanation (38%)
const bulletItems = bullets.map((b, i) => ({
text: b,
options: { bullet: { type: "bullet" }, breakLine: i < bullets.length - 1, fontSize: 14, color: C.darkGray }
}));
s.addText(bulletItems, {
x: 0.3, y: 1.0, w: 5.5, h: 4.3, fontFace: "Calibri", valign: "top", margin: 6
});
// Explanation box
s.addShape(pres.ShapeType.rect, { x: 5.95, y: 0.95, w: 3.75, h: 4.45, fill: { color: C.light }, line: { color: C.teal, width: 1.5 } });
s.addText("💡 What does this mean?", {
x: 6.05, y: 1.0, w: 3.55, h: 0.4,
fontSize: 11, bold: true, color: C.tealDark, fontFace: "Calibri"
});
s.addText(explanation, {
x: 6.05, y: 1.45, w: 3.55, h: 3.85,
fontSize: 11.5, color: C.darkGray, fontFace: "Calibri", valign: "top", wrap: true
});
} else if (hasBullets) {
const bulletItems = bullets.map((b, i) => ({
text: b,
options: { bullet: { type: "bullet" }, breakLine: i < bullets.length - 1, fontSize: 15, color: C.darkGray }
}));
s.addText(bulletItems, {
x: 0.4, y: 1.0, w: 9.2, h: 4.4, fontFace: "Calibri", valign: "top", margin: 8
});
} else if (hasExplanation) {
s.addText(explanation, {
x: 0.4, y: 1.0, w: 9.2, h: 4.4,
fontSize: 14, color: C.darkGray, fontFace: "Calibri", valign: "top", wrap: true
});
}
return s;
}
// Case study slide
function addCaseSlide(caseNum, scenario, findings, answer) {
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: "100%", h: "100%", fill: { color: C.offWhite } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: "100%", h: 0.78, fill: { color: C.green } });
s.addText(`Case Study ${caseNum}`, {
x: 0.3, y: 0, w: 9.4, h: 0.78,
fontSize: 22, bold: true, color: C.white, fontFace: "Calibri", align: "left", valign: "middle", margin: 0
});
// Scenario
s.addShape(pres.ShapeType.rect, { x: 0.3, y: 0.95, w: 9.4, h: 1.5, fill: { color: "EAF4FB" }, line: { color: C.teal, width: 1 } });
s.addText("🩺 Scenario", { x: 0.45, y: 0.98, w: 9.1, h: 0.35, fontSize: 12, bold: true, color: C.tealDark });
s.addText(scenario, { x: 0.45, y: 1.35, w: 9.1, h: 1.05, fontSize: 12, color: C.darkGray, fontFace: "Calibri", wrap: true });
// Findings
if (findings && findings.length > 0) {
s.addShape(pres.ShapeType.rect, { x: 0.3, y: 2.55, w: 4.5, h: 1.6, fill: { color: "FEF9E7" }, line: { color: C.orange, width: 1 } });
s.addText("🔬 Findings", { x: 0.45, y: 2.58, w: 4.2, h: 0.35, fontSize: 12, bold: true, color: C.orange });
const fi = findings.map((f, i) => ({ text: f, options: { bullet: true, breakLine: i < findings.length - 1, fontSize: 11.5, color: C.darkGray } }));
s.addText(fi, { x: 0.45, y: 2.95, w: 4.2, h: 1.15, fontFace: "Calibri" });
}
// Answer
s.addShape(pres.ShapeType.rect, { x: 5.0, y: 2.55, w: 4.7, h: 1.6, fill: { color: "EAFAF1" }, line: { color: C.green, width: 1 } });
s.addText("✅ Treatment", { x: 5.15, y: 2.58, w: 4.4, h: 0.35, fontSize: 12, bold: true, color: C.green });
s.addText(answer, { x: 5.15, y: 2.95, w: 4.4, h: 1.15, fontSize: 12, color: C.darkGray, fontFace: "Calibri", wrap: true });
// Footer
s.addText("Think like a doctor: What is the subtype? What biomarkers guide treatment?", {
x: 0.3, y: 4.8, w: 9.4, h: 0.6,
fontSize: 11, italic: true, color: C.gray, fontFace: "Calibri"
});
return s;
}
// Summary slide
function addSummarySlide(title, points) {
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: "100%", h: "100%", fill: { color: C.navy } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: "100%", h: 0.85, fill: { color: C.orange } });
s.addText(title, {
x: 0.3, y: 0, w: 9.4, h: 0.85,
fontSize: 22, bold: true, color: C.white, fontFace: "Calibri", valign: "middle", margin: 0
});
const items = points.map((p, i) => ({
text: p,
options: { bullet: true, breakLine: i < points.length - 1, fontSize: 14, color: C.light }
}));
s.addText(items, { x: 0.4, y: 1.0, w: 9.2, h: 4.3, fontFace: "Calibri", valign: "top" });
return s;
}
// Q&A slide
function addQASlide(qNum, question, answer) {
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: "100%", h: "100%", fill: { color: C.offWhite } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: "100%", h: 0.78, fill: { color: C.tealDark } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0.78, w: "100%", h: 0.06, fill: { color: C.orange } });
s.addText(`Exam Question ${qNum}`, {
x: 0.3, y: 0, w: 9.4, h: 0.78,
fontSize: 21, bold: true, color: C.white, fontFace: "Calibri", valign: "middle", margin: 0
});
s.addShape(pres.ShapeType.rect, { x: 0.3, y: 1.0, w: 9.4, h: 1.5, fill: { color: "EAF4FB" }, line: { color: C.teal, width: 1.5 } });
s.addText("❓ " + question, {
x: 0.45, y: 1.05, w: 9.1, h: 1.4,
fontSize: 15, bold: true, color: C.navy, fontFace: "Calibri", wrap: true, valign: "middle"
});
s.addShape(pres.ShapeType.rect, { x: 0.3, y: 2.65, w: 9.4, h: 2.65, fill: { color: "EAFAF1" }, line: { color: C.green, width: 1.5 } });
s.addText("✅ Answer:", {
x: 0.45, y: 2.7, w: 9.1, h: 0.4, fontSize: 13, bold: true, color: C.green, fontFace: "Calibri"
});
s.addText(answer, {
x: 0.45, y: 3.1, w: 9.1, h: 2.1,
fontSize: 13, color: C.darkGray, fontFace: "Calibri", wrap: true, valign: "top"
});
return s;
}
// ════════════════════════════════════════════════════════════════════════════
// SLIDE 1 — MASTER TITLE
// ════════════════════════════════════════════════════════════════════════════
addTitleSlide(
"Oncology: Lectures 2 & 3",
"Breast Cancer | Colorectal Cancer\nDaron Hakimian, M.Sc. Synthetic Biotechnology"
);
// ════════════════════════════════════════════════════════════════════════════
// SECTION DIVIDER — LECTURE 2
// ════════════════════════════════════════════════════════════════════════════
addSectionDivider("LECTURE 2\nBreast Cancer", "Oncology — Week 12");
// ─── L2: RECAP FROM LECTURE 1 ───────────────────────────────────────────────
addContentSlide(
"Quick Recap from Lecture 1",
[
"Hayflick limit: cells can only divide a limited number of times (~50)",
"Warburg effect: cancer cells prefer fermentation even with oxygen",
"Rb1, p53, BRCA1: all tumour suppressor genes — they STOP runaway growth",
"Cancer is individual: each tumour has its own unique set of mutations",
],
"Think of the Hayflick limit like a phone battery that can only be recharged 50 times — after that it's done. Normal cells have this limit, cancer cells bypass it and recharge forever.\n\nThe Warburg effect is like a car using cheap fuel (sugar fermentation) instead of proper petrol (oxygen). It's less efficient but cancer does it on purpose to grow fast.\n\nRb1, p53 and BRCA1 are like the brakes on a car. When all three are broken, the car just accelerates with no way to stop — that's cancer."
);
// ─── L2: EPIDEMIOLOGY ───────────────────────────────────────────────────────
addContentSlide(
"Breast Cancer: Epidemiology",
[
"Most common cancer in women worldwide",
"Lifetime risk: 1 in 8 women will get it",
"Men make up less than 1% of cases",
"Mortality has been decreasing thanks to better treatment",
"NOT one single disease — it is a whole family of different cancers",
],
"1 in 8 sounds scary — that means in a room of 8 women, statistically one will get breast cancer in her lifetime.\n\nThe good news: deaths have gone down a lot. Why? Because we now know it's not just 'breast cancer' — it's many different subtypes that need different treatments. Understanding the subtype = better treatment = fewer deaths."
);
// ─── L2: RECEPTORS — THE KEY TO EVERYTHING ──────────────────────────────────
addContentSlide(
"Why Receptors Matter: ER, PR, and HER2",
[
"ER (Estrogen Receptor): picks up estrogen signals to grow",
"Pre-menopausal: high estrogen from ovaries → receptors are very important",
"Post-menopausal: lower estrogen made in fat tissue → aromatase enzyme becomes key",
"PR (Progesterone Receptor): similar concept, picks up progesterone",
"HER2 receptor: growth signal receptor — if overexpressed, cancer grows very fast",
],
"Imagine cancer cells like plants. Estrogen is the sunlight. ER+ cancer has big windows (receptors) that catch a LOT of sunlight and grow fast.\n\nIf we close the windows (block the receptor with tamoxifen) or turn off the sun (block aromatase) — the plant can't grow.\n\nHER2 is a different type of antenna — if there are too many HER2 antennas on the cell, it just keeps getting 'grow!' signals nonstop."
);
// ─── L2: KI67 ───────────────────────────────────────────────────────────────
addContentSlide(
"Ki-67: The Speedometer of Cancer",
[
"Ki-67 is a protein only present in actively dividing cells",
"It tells us how fast the tumour is growing (proliferation rate)",
"Low Ki-67: slow growing → less aggressive",
"High Ki-67: fast growing → more aggressive, needs stronger treatment",
"Measured from biopsy tissue sample",
],
"Ki-67 is like a speedometer on a car. A low Ki-67 means the cancer is driving at 30 km/h — manageable. A high Ki-67 means it's doing 150 km/h — we need to act fast and aggressively.\n\nThis number is measured by looking at tumour cells under a microscope after a biopsy. The more cells that are actively dividing, the higher the Ki-67 score."
);
// ─── L2: BRCA1/2 ────────────────────────────────────────────────────────────
addContentSlide(
"BRCA1 & BRCA2: The DNA Repair Crew",
[
"DNA gets damaged all the time — BRCA1/2 proteins repair the damage",
"If BRCA is mutated, DNA breaks are NOT repaired properly",
"This allows mutations to accumulate → cancer forms",
"PARP is another DNA repair pathway — when BRCA is broken, PARP becomes essential",
"PARP inhibitors (e.g. olaparib): block this backup repair → only cancer cells die",
"Normal cells with working BRCA survive — this is called synthetic lethality",
],
"Think of BRCA like a construction crew that fixes broken roads (DNA). If the crew goes on strike (BRCA mutation), roads break down everywhere.\n\nNow imagine there's a backup crew called PARP. If we ALSO fire the PARP crew (PARP inhibitor), only the cells that already had broken BRCA — the cancer cells — will collapse. Normal cells still have their BRCA crew, so they're fine.\n\nThis is why PARP inhibitors are so clever: they only kill cancer cells, not healthy ones."
);
// ─── L2: BREAST CANCER SUBTYPES OVERVIEW ───────────────────────────────────
addContentSlide(
"The 4 Main Breast Cancer Subtypes",
[
"Luminal A: ER+, PR+, HER2−, low Ki-67 — slowest, best prognosis (40% of all cases)",
"Luminal B: ER+, PR+, HER2 varies, high Ki-67 — faster than A",
"HER2-enriched: ER−, PR−, HER2+ — used to be deadly, now very treatable",
"Triple Negative (TNBC): ER−, PR−, HER2− — hardest to treat",
],
"You can think of these like 4 different 'flavours' of breast cancer. Each one has a different combination of receptor status (positive or negative for ER, PR, HER2) and growth speed (Ki-67).\n\nWhy does this matter? Because the TREATMENT is completely different for each one. You can't treat Luminal A the same way as Triple Negative — that would be like using the same medicine for a cold and a broken leg.\n\nThe receptor test on the biopsy tells us which flavour we're dealing with."
);
// ─── L2: LUMINAL A ──────────────────────────────────────────────────────────
addContentSlide(
"Subtype 1: Luminal A",
[
"Markers: ER+, PR+, HER2−, low Ki-67, no BRCA mutation",
"Most common type — 40% of all breast cancers",
"Excellent prognosis (best outcomes)",
"Treatment: endocrine therapy (hormone blocking)",
" Pre-menopausal → Tamoxifen (blocks estrogen receptor directly)",
" Post-menopausal → Aromatase inhibitors (stop estrogen production in fat tissue)",
"Chemotherapy only if needed (usually not required)",
],
"Luminal A is the 'good' cancer if such a thing exists. It is slow, responds well to hormone-blocking drugs, and has excellent survival rates.\n\nTamoxifen works like a fake key in the lock: it blocks the estrogen receptor so real estrogen can't get in. No estrogen signal = cancer can't grow.\n\nAromatase inhibitors are different: they stop the PRODUCTION of estrogen in fat tissue after menopause. No estrogen made = no signal to block = cancer starves."
);
// ─── L2: LUMINAL B ──────────────────────────────────────────────────────────
addContentSlide(
"Subtype 2: Luminal B",
[
"Markers: ER+, PR+, (HER2− with high Ki-67) OR (HER2+ with any Ki-67)",
"Grows faster than Luminal A",
"Treatment: endocrine therapy PLUS often chemotherapy",
"CDK4/6 inhibitors: pause the cell cycle to slow growth",
"If HER2+: add HER2-targeted therapy on top",
],
"Luminal B is like Luminal A's more aggressive younger sibling. It still has hormone receptors, so we still use hormone-blocking drugs. But it's faster (higher Ki-67), so we usually need chemotherapy on top.\n\nCDK4/6 inhibitors are a newer tool — CDK4 and CDK6 are proteins that act like the 'green light' for cell division. Blocking them is like putting a handbrake on the cell division engine. The cancer cells stop but don't die immediately — they're just frozen."
);
// ─── L2: HER2-ENRICHED ──────────────────────────────────────────────────────
addContentSlide(
"Subtype 3: HER2-Enriched",
[
"Markers: ER−, PR−, HER2+ (lots of HER2 receptors on surface)",
"Previously: one of the worst outcomes in breast cancer",
"Now: one of the most TREATABLE subtypes thanks to targeted therapy",
"Key drugs: Trastuzumab (Herceptin), Pertuzumab, T-DM1, Trastuzumab deruxtecan",
"These drugs attach to HER2 and block the growth signal (or deliver chemo directly)",
],
"HER2-enriched is the cancer subtype that had the most dramatic turnaround in medical history.\n\n30 years ago, HER2+ breast cancer was deadly. Then scientists discovered trastuzumab (Herceptin) — a lab-made antibody that locks onto HER2 receptors like a bouncer at the door: 'You shall not pass!'\n\nThe newer drug T-DM1 is even smarter — it's like a guided missile: the antibody finds the cancer cell, then releases chemotherapy right inside it. Normal cells are left alone.\n\nThis is why HER2+ breast cancer went from worst to best treatable in just 20 years."
);
// ─── L2: TRIPLE NEGATIVE ────────────────────────────────────────────────────
addContentSlide(
"Subtype 4: Triple Negative Breast Cancer (TNBC)",
[
"Markers: ER−, PR−, HER2− (negative for ALL three receptors)",
"Worst prognosis — most aggressive subtype",
"No targeted therapy possible through hormone/HER2 pathways",
"Step 1: Test for BRCA mutation",
" If BRCA mutated → PARP inhibitors (targeted therapy!)",
" If no BRCA mutation → chemotherapy only",
],
"Triple Negative is called 'triple' because it's negative for all three targets we normally aim for. It's like trying to fight a fire with no water, no foam, and no sand — our usual weapons don't work.\n\nThe only hope for targeted therapy is if there's a BRCA mutation — then PARP inhibitors can be used (remember the backup repair crew analogy).\n\nWithout BRCA mutation, chemotherapy is the only option — which is why this subtype has the worst short-term prognosis. Scientists are actively working on immunotherapy approaches for TNBC."
);
// ─── L2: GENETICS ───────────────────────────────────────────────────────────
addContentSlide(
"Genetic Predisposition & Screening",
[
"BRCA1 and BRCA2 mutations can be INHERITED from parents",
"Family history of breast or ovarian cancer is a major red flag",
"Women with known BRCA mutations need annual screening (MRI + mammogram)",
"Genetic testing recommended for all triple-negative cases",
"Angelina Jolie's case made this famous worldwide (BRCA1 carrier)",
],
"You inherit your eye colour from your parents — you can also inherit broken BRCA genes.\n\nIf your mum or grandmother had breast or ovarian cancer, your doctor should test you for BRCA mutations. Finding it early means we can screen you more often and catch cancer before it even starts — or even consider preventive surgery.\n\nAnnual screening: every year you get an MRI and mammogram so if anything grows, we catch it at Stage 1 instead of Stage 4."
);
// ─── L2: IMAGING ────────────────────────────────────────────────────────────
addContentSlide(
"Imaging Techniques for Breast Cancer",
[
"Mammogram: X-ray of the breast — gold standard for screening",
"Ultrasound: good for young women with dense breast tissue",
"MRI: best detail, used for high-risk patients (BRCA+)",
"AI: MIT-developed models can predict breast cancer UP TO 5 YEARS in advance",
],
"A mammogram is like taking an X-ray photo of the breast. Doctors look for suspicious white spots or irregular shadows.\n\nFor younger women, breast tissue is denser (like a thick forest vs a thin one) — mammograms don't work as well, so we use ultrasound instead.\n\nMRI gives the most detailed picture — like HD vs standard definition — so it's used when the patient is high-risk.\n\nThe AI tool from MIT analyses mammogram images and can flag patterns years before a human can see a lump. This is the future of screening."
);
// ─── L2: DIAGNOSIS ──────────────────────────────────────────────────────────
addContentSlide(
"Diagnosis: The Triple Assessment",
[
"Step 1: History & physical examination (feel for lumps, check lymph nodes)",
"Step 2: Imaging (mammogram / ultrasound / MRI)",
"Step 3: Core needle biopsy with receptor testing",
" Biopsy tests for: ER, PR, HER2, Ki-67",
" In triple-negative cases: also test for BRCA mutation",
"You CANNOT plan treatment without all three steps",
],
"The Triple Assessment is the standard 3-step process every patient goes through:\n\n1. Physical exam: the doctor feels for lumps, looks for skin changes, checks armpit lymph nodes.\n\n2. Imaging: take pictures from inside to see the shape, size and location of any mass.\n\n3. Biopsy: a thin needle extracts a tiny piece of the tumour. This piece is sent to the lab to check which receptors are on the cancer cells — this determines ALL treatment decisions.\n\nWithout the biopsy receptor test, you're flying blind."
);
// ─── L2: SYMPTOMS ───────────────────────────────────────────────────────────
addContentSlide(
"Breast Cancer Symptoms to Know",
[
"Skin dimpling: the skin looks like it's being pulled inward",
"Nipple retraction: nipple is pulled inward instead of pointing out",
"Peau d'orange: skin looks like orange peel (bumpy and thickened)",
"Lymph node swelling: armpit feels lumpy/swollen",
"Breast lump (most common presenting symptom)",
"Unexplained breast pain or nipple discharge",
],
"These are the visual signs that should make anyone go to the doctor IMMEDIATELY:\n\nSkin dimpling: cancer cells can pull on the skin ligaments from inside, causing dents.\n\nPeau d'orange (French for 'orange skin'): lymph vessels are blocked by cancer, causing the skin to swell and look like orange peel. This is an ADVANCED sign.\n\nNipple retraction: a tumour pulling on ducts behind the nipple can drag it inward.\n\nAny of these? Go to the doctor. Don't wait."
);
// ─── L2: CASE STUDY ─────────────────────────────────────────────────────────
addCaseSlide(
"L2",
"A 42-year-old woman presents with a 2 cm right breast lump. Mammogram shows a spiculated mass with microcalcifications.",
["ER+, PR+, HER2−", "Ki-67: 15% (borderline)", "Pre-menopausal"],
"LUMINAL A/B borderline. Pre-menopausal → Tamoxifen (blocks ER receptor).\nIf post-menopausal → Aromatase inhibitor instead.\nKi-67 of 15% may indicate Luminal B → consider adding CDK4/6 inhibitor or chemotherapy."
);
// ─── L2: SUMMARY ────────────────────────────────────────────────────────────
addSummarySlide("Lecture 2 Summary: Key Takeaways", [
"You CANNOT plan breast cancer treatment without knowing ER, PR, HER2, and Ki-67 — biopsy is mandatory",
"HER2+ breast cancer went from worst to most treatable in 20 years — trastuzumab (Herceptin) is the greatest targeted therapy success in oncology",
"Triple Negative Breast Cancer has no hormone/HER2 target — only BRCA mutation opens the door to targeted therapy (PARP inhibitors)",
"Luminal A = best prognosis, Luminal B = moderate, HER2+ = now great, TNBC = worst short-term",
"Genetic testing (BRCA) should be offered to all triple-negative patients and those with family history",
"Menopausal status determines WHICH hormone therapy to use: Tamoxifen (pre) vs Aromatase inhibitor (post)",
]);
// ════════════════════════════════════════════════════════════════════════════
// SECTION DIVIDER — LECTURE 3
// ════════════════════════════════════════════════════════════════════════════
addSectionDivider("LECTURE 3\nColorectal Cancer (CRC)", "Oncology — Week 13");
// ─── L3: EPIDEMIOLOGY ───────────────────────────────────────────────────────
addContentSlide(
"Colorectal Cancer (CRC): Epidemiology",
[
"3rd most common cancer worldwide",
"2nd leading cause of cancer DEATH worldwide",
"~1.9 million new cases every year",
"Incidence rising in adults UNDER 50 (young people are getting it more)",
"One of the MOST PREVENTABLE cancers if detected early",
],
"Colorectal cancer affects the large intestine (colon) and the rectum.\n\nThe key fact: it is one of the MOST preventable cancers. Why? Because it almost always starts as a benign polyp (a small benign growth in the gut) that slowly — over 10-15 years — turns into cancer. If a doctor spots and removes that polyp during a routine colonoscopy, cancer never forms.\n\nThis is why screening colonoscopy at age 50+ is so important."
);
// ─── L3: ANATOMY ────────────────────────────────────────────────────────────
addContentSlide(
"Anatomy of the Colorectum",
[
"Colon sections: Ascending (right side) → Transverse → Descending (left side) → Sigmoid",
"Rectum: connects sigmoid colon to anal canal",
"Anal canal: the final exit",
"RIGHT colon (ascending): absorbs water and electrolytes",
"LEFT colon & sigmoid: forms and stores stool",
],
"Picture the colon as a long tube that frames the inside of your abdomen like a picture frame.\n\nStart on the lower right: this is the ASCENDING colon. It goes up, crosses (TRANSVERSE), comes down the left side (DESCENDING), curves into the SIGMOID, then into the RECTUM, and finally exits through the ANAL CANAL.\n\nWhy does location matter? Because right-sided tumours and left-sided tumours have completely different biology, different gene mutations, and need different treatments!"
);
// ─── L3: RISK FACTORS ───────────────────────────────────────────────────────
addContentSlide(
"Risk Factors for Colorectal Cancer",
[
"Dietary: high fat, high red/processed meat, low fibre (cellulose)",
"Lifestyle: sedentary (sitting all day), overweight/obese",
"Genetic (20% of cases): family history = 3x higher risk",
"FAP (Familial Adenomatous Polyposis): genetic syndrome — hundreds of polyps form",
"Lynch syndrome: inherited MMR gene mutation → high CRC risk",
"IBD: Crohn's disease / Ulcerative Colitis — 3-5% develop CRC",
"Polyps: 15-40% of colon cancers start from adenomatous polyps",
],
"Think of the gut as a lawn. Healthy lifestyle = mowing regularly (no overgrowth). Poor diet + no exercise = lawn gets wild, weeds (polyps) appear.\n\nPolyps under 1cm: less than 2% chance of becoming cancer. Over 3cm: MORE THAN 40% chance. This is why doctors remove them immediately during colonoscopy.\n\nGenetics: if your dad had colon cancer at 58, YOU should start colonoscopy screening younger — not wait until 50."
);
// ─── L3: TUMOUR STAGING ─────────────────────────────────────────────────────
addContentSlide(
"Tumour Staging: The TNM System",
[
"T (Tumour): how deep has cancer grown into the bowel wall?",
" T1: into the inner lining (submucosa)",
" T2: into the muscle layer",
" T3: through the muscle wall into surrounding tissue",
" T4: into nearby organs or through the outer surface",
"N (Node): has cancer spread to lymph nodes?",
"M (Metastasis): has cancer spread to distant organs (liver, lungs)?",
"Stage I: T1-T2, no nodes, no mets — surgery alone often curative",
"Stage IV: any T, any N, M1 — distant spread, complex treatment needed",
],
"The TNM system is the universal language doctors use to describe how far a cancer has spread.\n\nImagine cancer as a fire. T tells us how deep the fire has burned through the wall. N tells us if the fire has jumped to the next house (lymph nodes). M tells us if the fire is now in a completely different city (metastases).\n\nStage I = small house fire, contained. Stage IV = city-wide fire. Treatment is completely different for each."
);
// ─── L3: HISTOLOGY ──────────────────────────────────────────────────────────
addContentSlide(
"Histology: Where Cancer Starts in the Gut",
[
"Villi: finger-like projections that absorb nutrients",
"Crypts: deep pockets at the base of villi — CONTAIN STEM CELLS",
"Cancer starts in the CRYPTS (where stem cells are)",
"Stem cells normally replenish the gut lining every 3-5 days",
"If stem cell mutations accumulate → cancer begins here",
],
"Zoom in on the inside surface of your intestine. It looks like a landscape of tiny hills (villi) and valleys (crypts).\n\nAt the BOTTOM of each valley (the crypt) live stem cells. These are the 'factory workers' that constantly make new gut lining cells — every 3-5 days, the whole lining is renewed.\n\nBecause stem cells divide so often, they are most likely to accumulate DNA errors. When the DNA repair systems (like BRCA or MMR) fail, these stem cells go rogue → colorectal cancer."
);
// ─── L3: MICROSATELLITE INSTABILITY ─────────────────────────────────────────
addContentSlide(
"Right-Sided Colon Cancer: The MSI Pathway",
[
"MSI = Microsatellite Instability",
"Microsatellites: short repetitive DNA sequences (like CACACACA...)",
"These sequences are VERY error-prone during DNA replication",
"Normally repaired by MMR genes: MLH1, MSH2, MSH6, PMS2",
"When MMR genes are mutated → errors accumulate = MSI-High (MSI-H)",
"MSI-H tumours: lots of mutations → lots of abnormal proteins (neoantigens)",
"Neoantigens are visible to the immune system → perfect for immunotherapy",
],
"Microsatellites are like a broken record: CACACACACACA. Every time DNA is copied, these repetitive sections tend to get errors.\n\nThe MMR (Mismatch Repair) team spots and fixes these errors. If MMR is broken (mutated), errors pile up. The cancer cell ends up with THOUSANDS of mutations.\n\nAll these mutations create weird proteins that the immune system can recognise as 'foreign'. This makes MSI-H cancers PERFECT targets for immunotherapy (PD-1 inhibitors) — the immune system can see and attack the cancer."
);
// ─── L3: LYNCH SYNDROME ─────────────────────────────────────────────────────
addContentSlide(
"Lynch Syndrome: Inherited MMR Mutation",
[
"Lynch syndrome = INHERITED mutation in MMR genes (MLH1, MSH2, MSH6, PMS2)",
"30-80% lifetime risk of developing CRC",
"Also raises risk of: endometrial, ovarian, stomach, urinary cancers",
"Tumours are MSI-H → produce many neoantigens",
"Treatment: PD-1 checkpoint inhibitors (e.g. pembrolizumab)",
"Diagnosis: IHC (immunohistochemistry) staining of biopsy tissue",
"If MMR proteins are ABSENT on IHC → Lynch syndrome suspected",
],
"Lynch syndrome is to colorectal cancer what BRCA is to breast cancer — an inherited mutation that massively increases cancer risk.\n\nPD-1 checkpoint inhibitors (like pembrolizumab) work by 'releasing the brakes' on the immune system. Normally PD-1 tells immune cells to stand down. Cancer cells exploit this. Blocking PD-1 lets the immune system see and destroy MSI-H cancer cells.\n\nIHC is a lab test where special stains make MMR proteins show up coloured under the microscope. If the protein is missing (no colour) → the gene is mutated."
);
// ─── L3: SPORADIC RIGHT COLON ───────────────────────────────────────────────
addContentSlide(
"Sporadic Right Colon Cancer (Not Inherited)",
[
"Cause: epigenetic SILENCING of MLH1 gene (methylation turns the gene off)",
"Not inherited — happens randomly over a lifetime",
"Strongly associated with BRAF mutation (V600E): fast proliferation",
"Can be MSI-H (more common) or MSS (stable, less mutations)",
"If MSI-H → PD-1 inhibitor (immunotherapy)",
"If MSS → BRAF inhibitor + EGFR inhibitor + chemotherapy (combination)",
],
"Sporadic means it wasn't inherited — it happened by bad luck.\n\nHere's the tricky bit: the MLH1 gene (a DNA repair gene) gets 'silenced' by methylation. Methylation is like putting duct tape over a gene's mouth — the gene is physically still there but can't speak (can't be read).\n\nBRAF is a protein in the proliferation signalling chain. V600E is a specific mutation that keeps BRAF permanently switched ON — like a car stuck in first gear with the accelerator floored.\n\nBlocking BRAF stops proliferation, but we ALSO need to block EGFR to prevent the cell from finding a bypass route."
);
// ─── L3: LEFT COLON ─────────────────────────────────────────────────────────
addContentSlide(
"Left-Sided Colon Cancer: Different Biology",
[
"Detected earlier because symptoms appear sooner (narrower lumen → obstruction)",
"Less MSI-H — more chromosomally unstable (CIN pathway)",
"Less BRAF mutation — more RAS mutation (KRAS / NRAS)",
"CIN = Chromosomal Instability: whole chromosome sections are gained/lost",
"Starts with APC mutation → permanent activation of Wnt/β-catenin growth pathway",
"Then RAS mutation → permanent proliferation signal",
],
"Left-sided cancers are different animals:\n\n- APC mutation: APC normally puts the brakes on a growth pathway (Wnt signalling). Mutate APC → brakes gone → cell starts dividing uncontrollably.\n\n- RAS mutation: RAS is a signalling protein. Normally it's briefly activated, delivers the 'grow' message, then switches off. Mutated RAS is STUCK ON — like a stuck doorbell that never stops ringing.\n\n- Key clinical point: RAS mutation means EGFR inhibitors WON'T WORK. This was a landmark discovery in oncology — first predictive biomarker."
);
// ─── L3: RAS & ANTI-ANGIOGENESIS ─────────────────────────────────────────────
addContentSlide(
"RAS Mutation & Anti-Angiogenesis Strategy",
[
"RAS is NOT a kinase — cannot be directly inhibited like BRAF",
"Blocking EGFR (upstream) is USELESS if RAS is already mutated (downstream bypass)",
"But: RAS mutation in ENDOTHELIAL cells → block angiogenesis instead",
"Anti-VEGF therapy (bevacizumab): cuts off the tumour's blood supply",
"No blood supply = no nutrients for tumour = tumour starves and shrinks",
"Works even when RAS is mutated in tumour cells",
],
"RAS was considered 'undruggable' for decades — scientists couldn't find a way to make a drug that binds to its surface effectively.\n\nBut here's the workaround: even though we can't block RAS directly in the TUMOUR cells, if RAS is mutated in blood vessel cells (endothelial cells), we can block VEGF — the signal that tells blood vessels to grow toward the tumour.\n\nBevacizumab (Avastin) blocks VEGF and cuts off the tumour's blood supply. It's like cutting off the supply lines to an army — they run out of food and collapse."
);
// ─── L3: RECTAL CANCER ──────────────────────────────────────────────────────
addContentSlide(
"Rectal Cancer: Special Considerations",
[
"Molecularly similar to LEFT-sided colon cancer",
"DIFFERENT blood supply: drains to systemic circulation (not portal/liver first)",
"This means: lung metastases are more common (vs liver in colon cancer)",
"Higher risk of LOCAL RECURRENCE (cancer comes back in the same spot)",
"Treatment: local radiotherapy FIRST to shrink tumour → then surgery",
"Systemic chemotherapy for distant metastases",
],
"The rectum sits in the pelvis and has a different blood drainage compared to the colon.\n\nColon blood goes through the portal vein → liver is the first filter → liver metastases are common.\n\nRectal blood bypasses the portal system → goes directly to lungs → LUNG metastases are more common.\n\nBecause the rectum is in a tight pelvic space surrounded by nerves and organs, surgeons have less room to work. Local recurrence is a real risk, so we give radiation before surgery to shrink the tumour and reduce that risk."
);
// ─── L3: PREVENTION ─────────────────────────────────────────────────────────
addContentSlide(
"Prevention: How to Avoid Colorectal Cancer",
[
"Balanced diet: high fibre, low red/processed meat, low fat",
"Physical activity: at least 30 min moderate exercise daily",
"Routine colonoscopy from age 50 — earlier if family history!",
"Colonoscopy detects polyps → removed immediately before they become cancer",
"The adenoma-to-carcinoma sequence takes 10-15 years — that is a HUGE window for intervention",
],
"The 10-15 year window from benign polyp to cancer is EXTRAORDINARY. No other major cancer gives you this much warning.\n\nA colonoscopy is a procedure where a thin flexible camera is passed through your intestine. A doctor can see polyps and snip them out on the spot. The whole thing takes 20-30 minutes and you're done.\n\nIf everyone over 50 had a colonoscopy every 5-10 years, colorectal cancer deaths would drop dramatically. The problem is most people skip it. Don't."
);
// ─── L3: CASE STUDIES ───────────────────────────────────────────────────────
addCaseSlide(
"L3 — 1",
"A 67-year-old man: 3 months of alternating bowel habits, bright red rectal bleeding. Father died of colon cancer at 58. CT shows 4 cm ascending colon mass + 2 small hepatic lesions (liver mets).",
["MSI-H", "BRAF−", "RAS−", "Ascending colon = RIGHT-sided", "Family history → likely Lynch syndrome"],
"MSI-H with no BRAF/RAS → PD-1 Checkpoint Inhibitor (e.g. pembrolizumab). Immune system can attack the MSI-H tumour. Also manage liver metastases. Screen family for Lynch syndrome."
);
addCaseSlide(
"L3 — 2",
"A 75-year-old man, no major symptoms. Routine blood test: iron deficiency anaemia. Colonoscopy: 4 cm T4 tumour in ascending colon. MRI shows liver metastases.",
["MSS (microsatellite stable)", "BRAF+ (mutated)", "RAS−", "Sporadic right colon cancer"],
"SPORADIC right colon, MSS, BRAF+: PD-1 inhibitor won't work (MSS). Use BRAF inhibitor + EGFR inhibitor + chemotherapy (triplet therapy). Iron deficiency anaemia was the only clue — common in right-sided cancers due to slow bleeding."
);
addCaseSlide(
"L3 — 3",
"A 62-year-old woman: progressive fatigue, mild breathlessness. Iron-deficiency anaemia on labs. Colonoscopy: 3.5 cm tumour in sigmoid colon (left side). CT shows NO metastases.",
["MSS", "BRAF−", "RAS−", "Left-sided, localised (no mets)"],
"Localised left-sided cancer, no metastases: Surgery (resection) is the primary treatment. Chemotherapy may be added based on final staging after surgery. No targeted therapy needed (no BRAF/RAS/MSI-H)."
);
addCaseSlide(
"L3 — 4",
"A 59-year-old man: breathlessness + tenesmus (feeling of incomplete bowel emptying). Rectal bleeding. Low rectal tumour (5 cm from anal verge). CT shows bilateral lung metastases.",
["MSS", "BRAF−", "RAS−", "Rectal cancer, lung mets"],
"Local chemoRADIOTHERAPY to the rectum (to prevent local recurrence). SYSTEMIC chemotherapy for lung metastases. RAS− → can add EGFR inhibitor (e.g. cetuximab) to chemotherapy. Lung mets = typical rectal cancer pattern (systemic blood drainage)."
);
addCaseSlide(
"L3 — 5",
"A 71-year-old woman: weight loss, abdominal discomfort, anaemia. Tumour in descending colon. CT shows multiple liver metastases.",
["MSS", "BRAF−", "RAS+ (mutated)", "Left-sided, liver mets"],
"RAS mutated → EGFR inhibitors are USELESS (bypass the block). Strategy: Anti-VEGF therapy (bevacizumab) + chemotherapy. Bevacizumab blocks blood vessel growth to the tumour. RAS mutation in endothelial cells → angiogenesis blockade is the key."
);
// ─── L3: SUMMARY ────────────────────────────────────────────────────────────
addSummarySlide("Lecture 3 Summary: Key Takeaways", [
"CRC is the most preventable cancer — the adenoma-to-carcinoma sequence gives 10-15 years to intervene with colonoscopy",
"RIGHT-sided CRC: MSI pathway, MMR mutations, Lynch syndrome, MSI-H → immunotherapy (PD-1 inhibitors)",
"LEFT-sided CRC: CIN pathway, APC + RAS mutations, chromosomal instability",
"MMR/MSI testing is NOW MANDATORY for all CRC — guides immunotherapy AND Lynch syndrome detection",
"RAS testing: FIRST predictive biomarker in oncology — if RAS mutated, EGFR inhibitors DON'T WORK",
"Rectal cancer: local radiation before surgery; lung mets more common than liver mets",
"BRAF+ sporadic right colon: triplet therapy (BRAF inhibitor + EGFR inhibitor + chemo)",
]);
// ════════════════════════════════════════════════════════════════════════════
// SECTION DIVIDER — EXAM QUESTIONS
// ════════════════════════════════════════════════════════════════════════════
addSectionDivider("EXAM PREPARATION\nQuestions & Detailed Answers", "Lectures 2 & 3 — Practice");
// ─── EXAM QUESTIONS ─────────────────────────────────────────────────────────
addQASlide(1,
"What is the Hayflick limit and how do cancer cells bypass it?",
"The Hayflick limit is the maximum number of times a normal cell can divide (~50 times). Each division shortens the telomeres (protective caps at the ends of chromosomes). When telomeres become too short, the cell stops dividing and undergoes senescence or apoptosis.\n\nCancer cells bypass this by activating TELOMERASE — an enzyme that rebuilds telomeres after each division. This makes cancer cells effectively immortal."
);
addQASlide(2,
"What is the Warburg effect and why do cancer cells use it?",
"The Warburg effect is the observation that cancer cells preferentially use aerobic glycolysis (fermentation/lactate production) even when oxygen is available, rather than the more efficient oxidative phosphorylation.\n\nWhy? Cancer cells prioritise SPEED over efficiency. Fermentation is less efficient at making ATP but is faster and also produces building blocks (nucleotides, lipids) needed for rapid cell division. This supports the high metabolic demand of uncontrolled proliferation."
);
addQASlide(3,
"What do Rb1, p53, and BRCA1 have in common? Why are they important in cancer?",
"All three are TUMOUR SUPPRESSOR GENES — they normally PREVENT cancer by:\n• Rb1: controls the G1/S checkpoint in the cell cycle. Mutated Rb1 = cells skip the checkpoint and divide uncontrollably.\n• p53: the 'guardian of the genome.' Detects DNA damage and triggers repair, cell cycle arrest, or apoptosis. Mutated p53 = damaged DNA goes unrepaired.\n• BRCA1: repairs double-strand DNA breaks via homologous recombination. Mutated BRCA1 = DNA errors accumulate.\n\nAll three act as brakes. When these brakes are lost, cancer accelerates."
);
addQASlide(4,
"A patient has ER+, PR+, HER2−, Ki-67 8%, and is post-menopausal. What subtype and treatment?",
"SUBTYPE: Luminal A (most common, best prognosis — low Ki-67 confirms slow growth).\n\nTREATMENT: Endocrine (hormone) therapy.\n• Post-menopausal → AROMATASE INHIBITOR (e.g. letrozole, anastrozole). These block the aromatase enzyme in fat tissue that converts androgens to estrogen after menopause.\n• NOT tamoxifen (tamoxifen blocks the receptor — preferred pre-menopausal).\n• Chemotherapy is generally NOT needed for Luminal A with low Ki-67.\n\nKey logic: no estrogen produced → no estrogen signal → cancer starves."
);
addQASlide(5,
"What is PARP inhibition and in which breast cancer subtype is it used?",
"PARP (Poly ADP-Ribose Polymerase) is a backup DNA repair enzyme used when BRCA1/2 is dysfunctional.\n\nWhen BRCA1/2 is mutated, cancer cells DEPEND on PARP to survive. If we inhibit PARP, cancer cells can no longer repair their DNA and die — but normal cells (which still have functioning BRCA) survive using their own repair machinery.\n\nThis principle is called SYNTHETIC LETHALITY — two non-lethal mutations become lethal when combined.\n\nUsed in: TRIPLE NEGATIVE BREAST CANCER (ER−, PR−, HER2−) with BRCA1/2 mutation. Also used in BRCA-mutated HER2− metastatic breast cancer."
);
addQASlide(6,
"Why did HER2+ breast cancer go from worst prognosis to most treatable?",
"Before 1998: HER2-overexpressing breast cancer was the most aggressive subtype with the worst outcomes. The overexpressed HER2 receptors send constant 'grow!' signals to the cell.\n\nTURNAROUND: Development of TRASTUZUMAB (Herceptin) — a monoclonal antibody that binds to the extracellular domain of HER2, blocking growth signalling.\n\nSubsequent advances:\n• Pertuzumab: blocks a different HER2 binding site (dual blockade)\n• T-DM1: trastuzumab linked to a chemotherapy payload (targeted delivery)\n• Trastuzumab deruxtecan: newer antibody-drug conjugate with high potency\n\nLesson: Understanding the molecular driver led directly to a cure-level treatment."
);
addQASlide(7,
"What is Lynch syndrome and how is it diagnosed and treated?",
"Lynch syndrome is an INHERITED condition caused by germline mutations in MMR (Mismatch Repair) genes: MLH1, MSH2, MSH6, or PMS2.\n\nConsequence: MMR proteins fail to fix replication errors in microsatellite sequences → microsatellite instability HIGH (MSI-H) → many mutations accumulate → high neoantigen load.\n\nRisk: 30-80% lifetime risk of CRC; also elevated risk for endometrial, ovarian, gastric cancers.\n\nDIAGNOSIS: IHC (immunohistochemistry) of tumour tissue — if MMR proteins are absent (no staining), gene mutation suspected. Confirmed by germline genetic testing.\n\nTREATMENT: PD-1 checkpoint inhibitors (pembrolizumab) — MSI-H tumours are highly immunogenic, making them excellent immunotherapy targets."
);
addQASlide(8,
"What is the difference between MSI-H and MSS in colorectal cancer? Why does it matter?",
"MSI-H (Microsatellite Instability High): MMR genes are non-functional → DNA replication errors accumulate in microsatellite sequences → thousands of mutations → many neoantigens → immune system can see the cancer → RESPONDS TO PD-1 immunotherapy.\n\nMSS (Microsatellite Stable): MMR genes work normally → few mutations → few neoantigens → immune system can't see the cancer well → DOES NOT respond to PD-1 immunotherapy.\n\nClinical implication: you MUST test every CRC for MSI/MMR status before deciding on treatment. MSI-H → immunotherapy (pembrolizumab). MSS → chemotherapy ± targeted agents (BRAF/EGFR/VEGF depending on mutations).\n\nThis is why MMR/MSI testing is now MANDATORY for all CRC."
);
addQASlide(9,
"If a CRC patient has a RAS mutation, which therapy does NOT work and why?",
"EGFR INHIBITORS (cetuximab, panitumumab) do NOT work when RAS is mutated.\n\nReason: RAS sits DOWNSTREAM of EGFR in the signalling pathway:\nEGFR → RAS → RAF → MEK → ERK → cell proliferation\n\nIf we block EGFR (top of the chain), the signal should stop. BUT if RAS is mutated and PERMANENTLY ACTIVATED, it doesn't matter if we block EGFR — RAS ignores the blockade and continues sending the proliferation signal.\n\nAnalogy: Blocking the doorbell (EGFR) doesn't help if someone has duct-taped the door chime to ring continuously (mutant RAS).\n\nIf RAS is mutated and there's no other druggable target → use anti-VEGF (bevacizumab) + chemotherapy."
);
addQASlide(10,
"Why is right-sided colon cancer different from left-sided? Compare their molecular profiles.",
"RIGHT-SIDED (ascending colon):\n• Pathway: MSI / MMR pathway (epigenetic or inherited)\n• Key mutations: MLH1 (epigenetic silencing), BRAF V600E\n• Microsatellite instability: often MSI-H\n• Treatment options: immunotherapy (PD-1) if MSI-H; BRAF+EGFR inhibitors if BRAF+ MSS\n• Symptoms: often silent, may only cause iron-deficiency anaemia from slow bleeding\n\nLEFT-SIDED (descending/sigmoid colon):\n• Pathway: CIN (Chromosomal Instability) pathway\n• Key mutations: APC, then KRAS/NRAS (RAS family)\n• Mostly MSS\n• Treatment: surgery ± chemo; if RAS−: add EGFR inhibitor; if RAS+: anti-VEGF\n• Symptoms: obstruction, change in bowel habits, bright red blood\n\nKey rule: location = different biology = different treatment."
);
addQASlide(11,
"Describe the adenoma-carcinoma sequence. Why is it clinically important?",
"The adenoma-carcinoma sequence describes how colorectal cancer develops step by step over many years:\n\n1. NORMAL COLON EPITHELIUM\n2. → APC mutation → EARLY ADENOMA (small polyp, <1cm, <2% cancer risk)\n3. → RAS mutation → INTERMEDIATE ADENOMA (growing, more dysplastic)\n4. → Loss of DCC/SMAD → LATE ADENOMA (>3cm, >40% cancer risk)\n5. → p53 mutation → CARCINOMA IN SITU\n6. → Additional mutations → INVASIVE CANCER → METASTASIS\n\nThis process takes 10-15 YEARS.\n\nClinical importance: This long window gives us a massive opportunity for PREVENTION. Colonoscopy can find and remove adenomas at steps 1-4, before cancer ever forms. This is why colonoscopy screening is so powerful and why CRC is called 'the most preventable cancer.'"
);
addQASlide(12,
"What is the Triple Assessment in breast cancer diagnosis? Why is each step needed?",
"The Triple Assessment is the gold-standard diagnostic approach for suspected breast cancer — it requires ALL THREE components:\n\n1. HISTORY & PHYSICAL EXAMINATION\n Why: identify risk factors, feel for lumps, assess lymph nodes, look for skin changes. A finding here raises or lowers suspicion before any test.\n\n2. IMAGING (mammogram / ultrasound / MRI)\n Why: mammogram detects microcalcifications and masses. Ultrasound for dense breast tissue (younger women). MRI for high-risk patients. Gives SIZE, SHAPE, LOCATION of any mass.\n\n3. CORE NEEDLE BIOPSY with receptor testing (ER, PR, HER2, Ki-67)\n Why: this is the ONLY way to definitively identify the cancer subtype. You cannot determine treatment without knowing receptor status. Image alone is not enough.\n\nAll three together give 99%+ diagnostic accuracy. Missing any one step risks incorrect diagnosis or wrong treatment."
);
// ─── FINAL SLIDE ─────────────────────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: "100%", h: "100%", fill: { color: C.navy } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 4.5, w: "100%", h: 1.1, fill: { color: C.orange } });
s.addText("Good Luck on Your Exam!", {
x: 0.5, y: 0.8, w: 9, h: 1.5,
fontSize: 40, bold: true, color: C.white, fontFace: "Calibri", align: "center", valign: "middle"
});
s.addText("You now know breast cancer subtypes, receptor logic, BRCA/PARP, CRC pathways,\nMSI/MMR, Lynch syndrome, RAS/BRAF, and when each treatment applies.", {
x: 0.5, y: 2.4, w: 9, h: 1.8,
fontSize: 17, color: C.light, fontFace: "Calibri", align: "center"
});
s.addText("Oncology | Lectures 2 & 3 | D. Hakimian", {
x: 0.5, y: 4.55, w: 9, h: 0.9,
fontSize: 16, color: C.white, fontFace: "Calibri", align: "center", valign: "middle"
});
}
// ─── WRITE FILE ──────────────────────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/oncology-merged/Oncology_Lectures_2_3_Merged.pptx" })
.then(() => console.log("DONE: /home/daytona/workspace/oncology-merged/Oncology_Lectures_2_3_Merged.pptx"))
.catch(e => { console.error("ERROR:", e); process.exit(1); });
cd /home/daytona/workspace/oncology-merged && node build.js 2>&1
ls -lh /home/daytona/workspace/oncology-merged/Oncology_Lectures_2_3_Merged.pptx
Oncology Lectures 2 3 Merged
Presentation · PPTX