Create a PowerPoint presentations on hemoglobinopathies focussing pathology
hemoglobinopathy sickle cell thalassemia pathology blood smear

Educational medical image panel consisting of a clinical photograph and a diagnostic pathology image illustrating physical and hematological findings of a hemoglobinopathy such as Hb E/beta-thalassemia. Panel A is a clinical photograph of a patient's abdomen showing a prominent bulge in the left upper quadrant and mid-abdomen, with a black arrow indicating the anterior notch of a massively enlarged spleen (splenomegaly). The overlying skin shows subtle striae or discoloration. Panel B is a peripheral blood smear (Leishman stain, 200x) showing significant red blood cell (RBC) dysmorphology. Key findings include target cells (codocytes) marked by black arrows, teardrop cells (dacrocytes) marked by blue arrows, and basophilic stippling within microcytic, hypochromic RBCs marked by yellow arrows. These visual markers are classic indicators of disordered erythropoiesis and hemoglobin synthesis abnormalities, providing a diagnostic bridge between clinical examination (splenomegaly) and laboratory hematopathology.

Diagnostic axial images of the upper abdomen in a 26-year-old male demonstrate findings characteristic of Acute Splenic Sequestration Crisis (ASSC) in the setting of sickle cell-thalassemia. Panel (a) is a contrast-enhanced axial CT showing significant splenomegaly with a complete lack of parenchymal enhancement (arrows), indicating severe hypoperfusion. Notably, there is visualization of the splenic vein (arrowhead) through retrograde filling from the portal vein. Panel (b) is a corresponding axial T2-weighted MRI. The splenic parenchyma appears markedly hypointense (arrows), consistent with chronic iron deposition from repeated hemolysis or transfusions. The splenic vein (arrowhead) displays high signal intensity (hyperintense), a radiological sign of slow or stagnant blood flow resulting from the altered hemodynamics of retrograde venous filling. These findings illustrate the vascular compromise and massive blood pooling associated with splenic sequestration crises in patients with hemoglobinopathies.

A medical pathophysiology diagram illustrating the oxidative stress cascade in Sickle Cell Disease (SCD) and its progression to vascular pathology. The diagram follows a vertical flow starting with a sickled red blood cell (RBC) undergoing HbS auto-oxidation and polymerization, leading to the generation of reactive oxygen species (ROS) such as H2O2, ferrylHb, and hemichromes. This triggers a central event of RBC hemolysis, characterized by membrane lipid oxidation, protein aggregation, and the release of pro-oxidant microparticles and L-arginase. Downstream pathways depict the systemic consequences, including the activation of platelets and the TLR4-linked inflammatory pathway, adhesion of SCD RBCs to endothelial cells and leukocytes, and a significant decrease in nitric oxide (NO) bioavailability. The lower section highlights the depletion of the antioxidant system and the oxidative modification of blood components into ADMA, AGEs, and ALEs. The cascade culminates in clinical manifestations such as vasoconstriction, endothelial dysfunction, and thrombosis, collectively summarized as SCD vascular pathology. This illustration is designed for advanced medical education regarding the molecular mechanisms of hematologic disorders.

This composite educational image illustrates the clinical signs and laboratory findings of thalassemia intermedia. Panel A is a clinical photograph of a patient's torso showing massive abdominal distention. Yellow skin markings delineate the margins of significant hepatomegaly and massive splenomegaly, with the spleen extending from the left upper quadrant across the midline and deep into the pelvic region, occupying nearly the entire abdominal cavity. Panel B is a peripheral blood smear (light microscopy) demonstrating classic hematological abnormalities associated with thalassemia. The red blood cells exhibit marked microcytosis (small size) and hypochromia (central pallor), along with numerous target cells (codocytes) and irregularly contracted cells (schistocytes). These findings collectively highlight the physical manifestations of extramedullary hematopoiesis and chronic hemolytic anemia characteristic of advanced hemoglobinopathies.

This endoscopic image provides a close-up view of the rectal lumen, demonstrating severe mucosal pathology characteristic of ischemic colitis in a patient with sickle cell disease. The diagnostic image reveals a rectum with diffuse, intense erythema and extensive mucosal hemorrhage, evidenced by widespread bright red blood and friability. Notable features include multiple large, irregular ulcerations that disrupt the normal mucosal architecture. Several of these ulcerated areas are covered with dark, blackish hematin, indicating recent bleeding and tissue necrosis. The surrounding vascular pattern is markedly diminished or absent, replaced by inflammatory exudates and edema. This visual representation serves as an educational tool for identifying colonic ischemia, highlighting the critical endoscopic signs of hemorrhagic and ulcerative tissue damage associated with vaso-occlusive complications in hematologic disorders.

This composite diagnostic image features three panels illustrating neurovascular pathology in a patient with sickle cell disease (SCD). Panel (a) is an axial T2-weighted magnetic resonance image (MRI) of the brain, showing a subtle hypointense 'dark blush' in the right basal ganglia, suggestive of a hemorrhagic infarct. Panel (b) shows the same anatomical section using a T2* gradient-recalled echo sequence; the lesion appears significantly more pronounced as a distinct area of signal void (arrow), demonstrating the sequence's high sensitivity to the magnetic susceptibility effects of blood breakdown products (hemosiderin). Panel (c) is a Time-of-Flight (TOF) Magnetic Resonance Angiogram (MRA) displaying the intracranial vasculature. It reveals severe focal stenosis of the proximal right middle cerebral artery (MCA) (arrow), with a marked reduction in vessel caliber and sparse distal pial vessel filling compared to the contralateral side. These images clinically illustrate silent cerebral infarction and large-vessel arteriopathy, critical complications in pediatric SCD management often screened for via transcranial Doppler.

This diagnostic image is an axial slice from a non-contrast-enhanced computed tomography (CT) scan of the upper abdomen. The visual focus, indicated by a yellow arrow, demonstrates a classic presentation of autosplenectomy secondary to sickle cell disease (S/β+ sickle cell syndrome). The spleen is markedly atrophic, reduced to a small, shrunken, and irregularly shaped remnant located in the left upper quadrant. It exhibits diffuse, high-density mottled calcifications, giving it a speckled or heterogeneous appearance. Surrounding anatomical structures include a normally appearing liver in the right upper quadrant, the stomach, and vertebral bodies. The clinical significance of these findings lies in the demonstration of splenic infarction and subsequent fibrosis and calcification over time, a common complication in sickle cell syndromes that leads to functional asplenia. This imaging is often prompted by the finding of Howell-Jolly bodies on a peripheral blood smear.

This educational graphic illustrates the molecular and cellular pathophysiology of sickle cell disease (SCD) leading to vaso-occlusion. The diagram is divided into a microscopic anatomical illustration and a high-magnification scanning electron micrograph. Steps A through D depict the hemoglobin S (HbS) polymerization process: (A) individual deoxygenated hemoglobin tetramers, (B) aggregation of hemoglobin molecules, (C) formation of long, rigid hemoglobin polymers or strands, and (D) the resulting transformation of a flexible biconcave red blood cell into a rigid, crescent or sickle-shaped erythrocyte. A corresponding scanning electron micrograph (labeled D) highlights the characteristic elongated, spicular morphology of a sickled cell. Section E shows a cross-section of a small bifurcating blood vessel where these rigid, abnormally shaped cells are aggregating, causing mechanical obstruction (vaso-occlusion) of the lumen. This process demonstrates the mechanism behind tissue ischemia and subsequent complications such as osteonecrosis in SCD patients. The content is suitable for medical students and clinicians studying hematology and musculoskeletal pathology.
mkdir -p /tmp/workspace/hemoglobinopathies && ls /tmp/workspace/hemoglobinopathies/
~/hemoglobinopathies/build_pptx.py
"""
Hemoglobinopathies - Pathology Focus
PowerPoint Presentation Builder
"""
import subprocess, json, base64
from io import BytesIO
from pptx import Presentation
from pptx.util import Inches, Pt, Emu
from pptx.dml.color import RGBColor
from pptx.enum.text import PP_ALIGN, MSO_ANCHOR
# ── Colour palette ──────────────────────────────────────────────────────────
DARK_BG = RGBColor(0x1A, 0x1A, 0x2E) # navy-black background
ACCENT1 = RGBColor(0xE9, 0x4F, 0x37) # vivid red (blood / sickle)
ACCENT2 = RGBColor(0x39, 0x3E, 0x8C) # deep blue
ACCENT3 = RGBColor(0xF5, 0xA6, 0x23) # amber
WHITE = RGBColor(0xFF, 0xFF, 0xFF)
LIGHT_GREY = RGBColor(0xD0, 0xD0, 0xD0)
SUBTITLE_C = RGBColor(0xB0, 0xC4, 0xDE) # light steel blue
prs = Presentation()
prs.slide_width = Inches(13.333)
prs.slide_height = Inches(7.5)
blank = prs.slide_layouts[6] # fully blank
# ──────────────────────────────────────────────────────────────────────────────
# Helper functions
# ──────────────────────────────────────────────────────────────────────────────
def add_rect(slide, x, y, w, h, fill_rgb=None, line_rgb=None, line_width_pt=0):
shape = slide.shapes.add_shape(1, Inches(x), Inches(y), Inches(w), Inches(h))
if fill_rgb:
shape.fill.solid()
shape.fill.fore_color.rgb = fill_rgb
else:
shape.fill.background()
if line_rgb:
shape.line.color.rgb = line_rgb
shape.line.width = Pt(line_width_pt)
else:
shape.line.fill.background()
return shape
def add_text(slide, text, x, y, w, h,
font_size=18, bold=False, italic=False,
color=WHITE, align=PP_ALIGN.LEFT,
v_anchor=MSO_ANCHOR.TOP, wrap=True, font_name="Calibri"):
tb = slide.shapes.add_textbox(Inches(x), Inches(y), Inches(w), Inches(h))
tf = tb.text_frame
tf.word_wrap = wrap
tf.vertical_anchor = v_anchor
tf.margin_left = tf.margin_right = tf.margin_top = tf.margin_bottom = 0
p = tf.paragraphs[0]
p.alignment = align
run = p.add_run()
run.text = text
run.font.name = font_name
run.font.size = Pt(font_size)
run.font.bold = bold
run.font.italic = italic
run.font.color.rgb = color
return tf
def add_bullets(slide, items, x, y, w, h,
font_size=16, color=LIGHT_GREY, font_name="Calibri",
bullet_char="•"):
tb = slide.shapes.add_textbox(Inches(x), Inches(y), Inches(w), Inches(h))
tf = tb.text_frame
tf.word_wrap = True
tf.margin_left = tf.margin_right = tf.margin_top = tf.margin_bottom = 0
for i, item in enumerate(items):
if i == 0:
p = tf.paragraphs[0]
else:
p = tf.add_paragraph()
p.space_before = Pt(4)
run = p.add_run()
run.text = f"{bullet_char} {item}"
run.font.name = font_name
run.font.size = Pt(font_size)
run.font.color.rgb = color
return tf
def bg_slide(slide, color=DARK_BG):
add_rect(slide, 0, 0, 13.333, 7.5, fill_rgb=color)
def section_header_bar(slide, title, subtitle=None):
"""Full-width accent bar at top with title."""
add_rect(slide, 0, 0, 13.333, 1.25, fill_rgb=ACCENT1)
add_text(slide, title, 0.3, 0.05, 12, 1.1,
font_size=32, bold=True, color=WHITE, v_anchor=MSO_ANCHOR.MIDDLE)
if subtitle:
add_text(slide, subtitle, 0.3, 1.3, 12, 0.5,
font_size=16, italic=True, color=SUBTITLE_C)
def slide_divider_bar(slide, x, y, w, h=0.04, color=ACCENT1):
add_rect(slide, x, y, w, h, fill_rgb=color)
def fetch_images(*urls):
result = subprocess.check_output(
["python", "/tmp/skills/shared/scripts/fetch_images.py"] + list(urls),
timeout=60
)
return json.loads(result)
def embed_image(slide, img_data, x, y, w=None, h=None):
if not img_data.get("base64"):
return
header, b64 = img_data["base64"].split(",", 1)
ext = header.split("/")[1].split(";")[0]
raw = base64.b64decode(b64)
buf = BytesIO(raw)
if w and h:
slide.shapes.add_picture(buf, Inches(x), Inches(y), Inches(w), Inches(h))
elif w:
slide.shapes.add_picture(buf, Inches(x), Inches(y), width=Inches(w))
elif h:
slide.shapes.add_picture(buf, Inches(x), Inches(y), height=Inches(h))
else:
slide.shapes.add_picture(buf, Inches(x), Inches(y))
# ──────────────────────────────────────────────────────────────────────────────
# Pre-fetch images
# ──────────────────────────────────────────────────────────────────────────────
IMAGE_URLS = [
# 0 - HbE/beta-thal smear + splenomegaly
"https://cdn.orris.care/cdss_images/pmc_clinical_VQA_136ee151890b7985d776fa0b24a95ab97d7e902d245c592073207efa1c0ac29d.jpg",
# 1 - Thalassemia intermedia smear + hepatosplenomegaly
"https://cdn.orris.care/cdss_images/pmc_clinical_VQA_4e749b2dde1e5c4afc462692d4022574d108a870fbe9fb25f146f0dd08346c5.jpg",
# 2 - SCD oxidative stress/vascular pathology diagram
"https://cdn.orris.care/cdss_images/pmc_clinical_VQA_8fdd1550f591aa025e29843049a3a66072520c600f105eb5ce8ffb802ef998ea.jpg",
# 3 - HbS polymerization SEM diagram
"https://cdn.orris.care/cdss_images/pmc_clinical_VQA_f8dbf9a0401d7490eb41f3739219b79ded37bcca788b00b1e8efca32aa66b099.jpg",
# 4 - Autosplenectomy CT
"https://cdn.orris.care/cdss_images/pmc_clinical_VQA_f8aa8400e3775b7e6400ef852adfcc560b0673498c6ab38f084c509f65133e55.jpg",
# 5 - Brain MRI/MRA stroke in SCD
"https://cdn.orris.care/cdss_images/pmc_clinical_VQA_31e9f97ebf1ec0110022c7edd9df7f1231d75738e7c6a89e475c8be9040d6da6.jpg",
# 6 - Splenic sequestration CT/MRI
"https://cdn.orris.care/cdss_images/pmc_clinical_VQA_497dc5403570d3371bb2b3774073056e6f62ebcd8fd2a670857218669e663238.jpg",
]
print("Fetching images ...")
imgs = fetch_images(*IMAGE_URLS)
print(f" Fetched {sum(1 for i in imgs if i['base64'])} / {len(imgs)} images OK")
# ──────────────────────────────────────────────────────────────────────────────
# SLIDE 1 – TITLE
# ──────────────────────────────────────────────────────────────────────────────
slide = prs.slides.add_slide(blank)
bg_slide(slide)
# decorative left accent stripe
add_rect(slide, 0, 0, 0.18, 7.5, fill_rgb=ACCENT1)
# large circle motif (decorative)
add_rect(slide, 9.0, 1.2, 3.8, 5.5, fill_rgb=RGBColor(0x26, 0x26, 0x4A))
# Title
add_text(slide, "HEMOGLOBINOPATHIES",
0.4, 1.6, 8.5, 1.4,
font_size=46, bold=True, color=ACCENT1,
v_anchor=MSO_ANCHOR.MIDDLE)
add_text(slide, "Pathology – Structure, Classification & Disease Mechanisms",
0.4, 3.1, 8.5, 0.8,
font_size=22, italic=True, color=SUBTITLE_C,
v_anchor=MSO_ANCHOR.MIDDLE)
slide_divider_bar(slide, 0.4, 3.95, 8.2, 0.05)
add_text(slide, "Harrison's Principles of Internal Medicine 22E · Goldman-Cecil Medicine",
0.4, 4.1, 8.5, 0.5, font_size=13, color=LIGHT_GREY, italic=True)
add_text(slide, "Pathology Focus", 9.2, 2.8, 3.0, 0.6,
font_size=18, bold=True, color=ACCENT3, align=PP_ALIGN.CENTER)
# embed sickle cell image if available
if imgs[3]["base64"]:
embed_image(slide, imgs[3], 9.1, 3.5, w=3.9, h=2.8)
# ──────────────────────────────────────────────────────────────────────────────
# SLIDE 2 – OVERVIEW / LEARNING OBJECTIVES
# ──────────────────────────────────────────────────────────────────────────────
slide = prs.slides.add_slide(blank)
bg_slide(slide)
section_header_bar(slide, "Overview & Learning Objectives")
objectives = [
"Define hemoglobinopathies and classify them by molecular mechanism",
"Understand normal hemoglobin structure and developmental globin switching",
"Explain the molecular pathology of sickle cell disease (HbS)",
"Describe alpha and beta thalassemia pathophysiology",
"Identify key pathological manifestations and organ damage patterns",
"Recognise laboratory and morphological findings in hemoglobinopathies",
"Discuss principles of management: transfusion, chelation, curative therapies",
]
for i, obj in enumerate(objectives):
y = 1.55 + i * 0.72
add_rect(slide, 0.4, y, 0.3, 0.45, fill_rgb=ACCENT1)
add_text(slide, str(i+1), 0.42, y+0.02, 0.28, 0.42,
font_size=14, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
add_text(slide, obj, 0.82, y+0.03, 11.8, 0.45,
font_size=16, color=WHITE)
# ──────────────────────────────────────────────────────────────────────────────
# SLIDE 3 – NORMAL HEMOGLOBIN STRUCTURE
# ──────────────────────────────────────────────────────────────────────────────
slide = prs.slides.add_slide(blank)
bg_slide(slide)
section_header_bar(slide, "Normal Hemoglobin – Structure & Function",
"Tetrameric protein essential for oxygen transport")
# Left content
add_text(slide, "Molecular Architecture", 0.4, 1.5, 6.0, 0.45,
font_size=20, bold=True, color=ACCENT3)
slide_divider_bar(slide, 0.4, 1.98, 5.8, 0.04, color=ACCENT3)
left_pts = [
"Tetramer of 2 alpha (α) + 2 non-alpha globin chains",
"Each subunit contains an iron-protoporphyrin IX (heme) group",
"O₂ binds to Fe²⁺ in heme; 4 O₂ molecules per tetramer",
"Cooperative O₂ binding (sigmoidal dissociation curve)",
"T-state (deoxy, tense) ⟷ R-state (oxy, relaxed) allosteric switch",
"2,3-BPG, CO₂ and pH regulate O₂ affinity (Bohr effect)",
]
add_bullets(slide, left_pts, 0.4, 2.1, 6.0, 4.8, font_size=16)
# Right panel - normal Hb variants
add_text(slide, "Normal Human Hemoglobins", 6.8, 1.5, 6.2, 0.45,
font_size=20, bold=True, color=ACCENT3)
slide_divider_bar(slide, 6.8, 1.98, 6.0, 0.04, color=ACCENT3)
hb_data = [
("HbA", "α₂β₂", "Adult (95-97%)", "Major adult Hb"),
("HbA₂", "α₂δ₂", "Adult (2-3%)", "Minor adult Hb"),
("HbF", "α₂γ₂", "Fetal → neonate","High O₂ affinity"),
("Hb Gower","ζ₂ε₂", "Embryonic", "Yolk sac stage"),
("HbH", "β₄", "Pathological", "α-thal intermediate"),
("Hb Bart's","γ₄", "Pathological", "Hydrops fetalis"),
]
headers = ["Name", "Chains", "Stage", "Notes"]
col_x = [6.8, 7.85, 9.3, 10.7]
col_w = [0.95, 1.35, 1.35, 2.5]
# header row
for hx, hw, ht in zip(col_x, col_w, headers):
add_rect(slide, hx, 2.1, hw, 0.38, fill_rgb=ACCENT2)
add_text(slide, ht, hx+0.05, 2.12, hw-0.1, 0.34,
font_size=13, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
for row_i, row in enumerate(hb_data):
bg = RGBColor(0x22, 0x22, 0x44) if row_i % 2 == 0 else RGBColor(0x2C, 0x2C, 0x52)
for col_i, (hx, hw, cell) in enumerate(zip(col_x, col_w, row)):
add_rect(slide, hx, 2.5 + row_i*0.6, hw, 0.56, fill_rgb=bg)
add_text(slide, cell, hx+0.05, 2.52 + row_i*0.6, hw-0.1, 0.52,
font_size=13, color=WHITE, align=PP_ALIGN.CENTER,
v_anchor=MSO_ANCHOR.MIDDLE)
# ──────────────────────────────────────────────────────────────────────────────
# SLIDE 4 – CLASSIFICATION OF HEMOGLOBINOPATHIES
# ──────────────────────────────────────────────────────────────────────────────
slide = prs.slides.add_slide(blank)
bg_slide(slide)
section_header_bar(slide, "Classification of Hemoglobinopathies",
"Based on molecular mechanism and clinical expression")
categories = [
("I. Structural Variants\n(Qualitative defects)",
ACCENT1,
["HbS – polymerization on deoxygenation (sickle cell disease)",
"HbC – Hb-membrane interaction, target cells, mild hemolysis",
"HbE – reduced biosynthesis; behaves like β-thalassemia",
"Unstable Hbs – precipitate as Heinz bodies → hemolytic anemia",
"High/Low O₂ affinity Hbs – erythrocytosis / cyanosis"]),
("II. Thalassemias\n(Quantitative defects)",
ACCENT2,
["α-Thalassemia – deletion of HBA1/HBA2 genes (chr 16)",
"β-Thalassemia – point mutations reducing/abolishing β-globin",
"δβ-Thalassemia – deletion of δ and β genes",
"Complex (ε γ δ β) thalassemia – rare large deletions"]),
("III. Hereditary Persistence of HbF",
RGBColor(0x2E, 0x7D, 0x4F),
["Large deletions in HBB cluster → 15-30% HbF in heterozygotes",
"Point mutations in HBG2/1 promoters",
"Pancellular or heterocellular HbF distribution",
"Usually benign; ameliorates thalassemia and sickle cell disease"]),
("IV. Acquired Hemoglobinopathies",
RGBColor(0x6A, 0x4C, 0x93),
["Methemoglobin – toxic oxidants (nitrites, dapsone, local anaesthetics)",
"Carboxyhemoglobin – carbon monoxide poisoning",
"Sulfhemoglobin – irreversible, sulfonamides",
"HbH in erythroleukemia; elevated HbF in myelodysplasia"]),
]
col_positions = [(0.3, 0), (6.8, 0), (0.3, 3.4), (6.8, 3.4)]
for (cx, cy), (title, color, bullets) in zip(col_positions, categories):
add_rect(slide, cx, 1.35 + cy, 6.2, 0.55, fill_rgb=color)
add_text(slide, title, cx+0.12, 1.38 + cy, 5.9, 0.5,
font_size=14, bold=True, color=WHITE, v_anchor=MSO_ANCHOR.MIDDLE)
add_rect(slide, cx, 1.9 + cy, 6.2, 1.4, fill_rgb=RGBColor(0x20, 0x20, 0x3A))
add_bullets(slide, bullets, cx+0.15, 1.95 + cy, 5.9, 1.35, font_size=13)
# ──────────────────────────────────────────────────────────────────────────────
# SLIDE 5 – SICKLE CELL DISEASE: MOLECULAR PATHOLOGY
# ──────────────────────────────────────────────────────────────────────────────
slide = prs.slides.add_slide(blank)
bg_slide(slide)
section_header_bar(slide, "Sickle Cell Disease – Molecular Pathology",
"HbS: β6 Glu→Val point mutation (GAG→GTG)")
add_text(slide, "Pathogenesis Cascade", 0.4, 1.42, 6.2, 0.45,
font_size=19, bold=True, color=ACCENT3)
steps = [
("1. Point Mutation", "β6 Glu→Val substitution; HbS forms on deoxygenation"),
("2. HbS Polymerization", "Deoxygenation exposes hydrophobic Val; HbS monomers polymerize into long rigid rods"),
("3. Sickling", "RBC deforms into crescent/sickle shape; rigid, fragile, increased adhesion"),
("4. Vaso-occlusion", "Rigid sickled cells obstruct microvasculature; RBC-endothelial adhesion via P-selectin"),
("5. Ischemia-reperfusion", "Tissue infarction; pain crises, acute chest syndrome, stroke, organ failure"),
("6. Hemolysis", "Chronic intravascular & extravascular hemolysis; NO scavenging → vasculopathy"),
("7. Oxidative Stress", "ROS generated by HbS auto-oxidation; lipid peroxidation, pro-inflammatory microparticles"),
]
for i, (step_title, step_text) in enumerate(steps):
y = 1.9 + i * 0.65
col = ACCENT1 if i % 2 == 0 else ACCENT2
add_rect(slide, 0.4, y, 2.5, 0.55, fill_rgb=col)
add_text(slide, step_title, 0.45, y+0.04, 2.4, 0.48,
font_size=13, bold=True, color=WHITE, v_anchor=MSO_ANCHOR.MIDDLE)
add_rect(slide, 2.9, y, 3.8, 0.55, fill_rgb=RGBColor(0x22, 0x22, 0x44))
add_text(slide, step_text, 2.95, y+0.04, 3.7, 0.48,
font_size=13, color=LIGHT_GREY, v_anchor=MSO_ANCHOR.MIDDLE, wrap=True)
# Right panel - image
add_text(slide, "HbS Polymerization & Vaso-occlusion", 7.2, 1.42, 5.8, 0.45,
font_size=17, bold=True, color=ACCENT3, align=PP_ALIGN.CENTER)
if imgs[3]["base64"]:
embed_image(slide, imgs[3], 7.1, 1.95, w=5.9, h=3.8)
if imgs[2]["base64"]:
embed_image(slide, imgs[2], 7.1, 5.9, w=5.9, h=1.4)
# ──────────────────────────────────────────────────────────────────────────────
# SLIDE 6 – SICKLE CELL: ORGAN PATHOLOGY
# ──────────────────────────────────────────────────────────────────────────────
slide = prs.slides.add_slide(blank)
bg_slide(slide)
section_header_bar(slide, "Sickle Cell Disease – Organ Pathology",
"Widespread vaso-occlusive and hemolytic organ damage")
organs = [
("Spleen", ACCENT1,
["Acute: splenic sequestration crisis (rapid painful enlargement)",
"Chronic: repeated infarcts → autosplenectomy by age ~5 years",
"Functional asplenia → Howell-Jolly bodies on smear",
"Susceptibility to encapsulated organisms (Streptococcus, H. influenzae)"]),
("Bone Marrow & Skeleton", ACCENT2,
["Marrow hyperplasia → 'hair-on-end' skull X-ray",
"Avascular necrosis (AVN) of femoral/humeral heads",
"Dactylitis (hand-foot syndrome) in infants – earliest manifestation",
"Salmonella osteomyelitis risk (due to infarcted bone)"]),
("Central Nervous System", RGBColor(0x2E, 0x7D, 0x4F),
["Large-vessel arteriopathy (intracranial ICA/MCA stenosis)",
"Silent cerebral infarcts in ~35% of children by age 18",
"Overt stroke in ~10% of SCD patients",
"TCD screening detects high-velocity flow predicting stroke risk"]),
("Kidneys", RGBColor(0x6A, 0x4C, 0x93),
["Papillary necrosis (medullary ischemia due to low pO₂ environment)",
"Sickle cell nephropathy → glomerulosclerosis → CKD",
"Loss of urine concentrating ability (hyposthenuria) early sign",
"Haematuria from medullary ischaemia"]),
("Lung", RGBColor(0x1A, 0x75, 0x96),
["Acute Chest Syndrome: fever, chest pain, new infiltrate, hypoxia",
"Pulmonary hypertension (hemolysis → NO scavenging → vasoconstriction)",
"Fat embolism from bone marrow infarction",
"Leading cause of death in SCD patients"]),
("Other Organs", RGBColor(0x7A, 0x47, 0x19),
["Liver: sickle hepatopathy, gallstones (pigment), hepatic sequestration",
"Eyes: proliferative retinopathy, vitreous hemorrhage (HbSC > HbSS)",
"Skin: chronic leg ulcers over medial malleolus",
"Priapism: veno-occlusive obstruction; risk of ED"]),
]
col_x = [0.3, 4.55, 8.8]
for i, (organ, color, pts) in enumerate(organs):
col = i % 3
row = i // 3
cx = col_x[col]
cy = 1.45 + row * 3.0
add_rect(slide, cx, cy, 3.9, 0.5, fill_rgb=color)
add_text(slide, organ, cx+0.1, cy+0.05, 3.7, 0.42,
font_size=16, bold=True, color=WHITE, v_anchor=MSO_ANCHOR.MIDDLE)
add_rect(slide, cx, cy+0.5, 3.9, 2.4, fill_rgb=RGBColor(0x1F, 0x1F, 0x38))
add_bullets(slide, pts, cx+0.1, cy+0.55, 3.75, 2.3, font_size=12.5, bullet_char="-")
# ──────────────────────────────────────────────────────────────────────────────
# SLIDE 7 – PERIPHERAL SMEAR & IMAGING: SCD
# ──────────────────────────────────────────────────────────────────────────────
slide = prs.slides.add_slide(blank)
bg_slide(slide)
section_header_bar(slide, "Sickle Cell Disease – Morphological & Imaging Findings")
# Image panels
if imgs[0]["base64"]:
embed_image(slide, imgs[0], 0.3, 1.4, w=4.1, h=2.9)
if imgs[4]["base64"]:
embed_image(slide, imgs[4], 4.65, 1.4, w=4.0, h=2.9)
if imgs[5]["base64"]:
embed_image(slide, imgs[5], 8.9, 1.4, w=4.1, h=2.9)
add_text(slide, "Peripheral Blood Smear\n(HbE/β-thal: target cells, tear drops, basophilic stippling)",
0.3, 4.4, 4.1, 0.95, font_size=13, color=LIGHT_GREY, italic=True,
align=PP_ALIGN.CENTER, wrap=True)
add_text(slide, "CT Abdomen: Autosplenectomy\n(shrunken calcified spleen, functional asplenia)",
4.65, 4.4, 4.1, 0.95, font_size=13, color=LIGHT_GREY, italic=True,
align=PP_ALIGN.CENTER, wrap=True)
add_text(slide, "MRI Brain: Cerebral Infarction\n(right basal ganglia hemorrhagic infarct + MCA stenosis on MRA)",
8.9, 4.4, 4.1, 0.95, font_size=13, color=LIGHT_GREY, italic=True,
align=PP_ALIGN.CENTER, wrap=True)
# Key morphological findings
add_text(slide, "Key Peripheral Smear Findings in Sickle Cell Disease:", 0.4, 5.5, 12.5, 0.4,
font_size=16, bold=True, color=ACCENT3)
smear_pts = [
"Sickle cells (drepanocytes) – crescent-shaped RBCs (irreversible and reversible)",
"Target cells (codocytes) – central pallor with dense central spot",
"Howell-Jolly bodies – nuclear remnants → indicate functional asplenia",
"Polychromasia / reticulocytosis – compensatory hemolysis response",
"Nucleated RBCs – seen in severe anemia / crises",
]
add_bullets(slide, smear_pts, 0.4, 5.95, 12.5, 1.3, font_size=14, color=LIGHT_GREY)
# ──────────────────────────────────────────────────────────────────────────────
# SLIDE 8 – ALPHA-THALASSEMIA
# ──────────────────────────────────────────────────────────────────────────────
slide = prs.slides.add_slide(blank)
bg_slide(slide)
section_header_bar(slide, "Alpha-Thalassemia – Molecular Pathology",
"Deletion of HBA1/HBA2 genes on chromosome 16")
add_text(slide, "Genetics & Molecular Basis", 0.4, 1.42, 6.2, 0.42,
font_size=19, bold=True, color=ACCENT3)
add_text(slide, "• Two α-globin genes (HBA1, HBA2) on each chromosome 16 — 4 genes total\n"
"• Most caused by large deletions (detected by MLPA/quantitative PCR)\n"
"• Minority caused by point mutations (e.g. Hb Constant Spring – elongated α-chain)\n"
"• Alpha chain excess (in β-thal) or deficit drives pathology",
0.4, 1.9, 6.0, 1.5, font_size=15, color=LIGHT_GREY, wrap=True)
# Clinical spectrum table
spectrum = [
("Silent Carrier\n(-α/αα)", "1 gene deleted",
"Normal; slightly ↓ MCV/MCH", "Carrier screening only"),
("α-Thalassemia\nTrait (-α/-α or --/αα)", "2 genes deleted",
"Mild microcytic hypochromic\nanemia; no transfusion", "Electrophoresis near normal"),
("HbH Disease\n(--/-α)", "3 genes deleted",
"Moderate hemolytic anemia,\nsplenomegaly, HbH inclusions", "HbH (β₄ tetramers) 5-30%\non HPLC/electrophoresis"),
("Hydrops Fetalis\n(--/--)", "4 genes deleted",
"Lethal in utero or neonatal;\nhydrops, massive hepatosplenomegaly", "Hb Bart's (γ₄) 80%+; high\nO₂ affinity, tissue hypoxia"),
]
headers_s = ["Syndrome", "Genes Deleted", "Clinical Features", "Lab Findings"]
col_xs = [0.35, 3.3, 6.55, 9.9]
col_ws = [2.85, 3.1, 3.3, 3.2]
header_colors = [ACCENT1, ACCENT2, RGBColor(0x2E, 0x7D, 0x4F), RGBColor(0x6A, 0x4C, 0x93)]
add_text(slide, "Clinical Spectrum (Gene Dosage Effect)", 0.35, 3.5, 12.5, 0.4,
font_size=19, bold=True, color=ACCENT3)
for hx, hw, ht, hc in zip(col_xs, col_ws, headers_s, header_colors):
add_rect(slide, hx, 3.95, hw, 0.45, fill_rgb=hc)
add_text(slide, ht, hx+0.05, 3.97, hw-0.1, 0.42,
font_size=14, bold=True, color=WHITE, align=PP_ALIGN.CENTER,
v_anchor=MSO_ANCHOR.MIDDLE)
for r_i, row in enumerate(spectrum):
bg = RGBColor(0x22, 0x22, 0x44) if r_i % 2 == 0 else RGBColor(0x28, 0x28, 0x4E)
for c_i, (hx, hw, cell) in enumerate(zip(col_xs, col_ws, row)):
add_rect(slide, hx, 4.4 + r_i*0.78, hw, 0.75, fill_rgb=bg)
add_text(slide, cell, hx+0.07, 4.42 + r_i*0.78, hw-0.14, 0.72,
font_size=12.5, color=WHITE, v_anchor=MSO_ANCHOR.MIDDLE,
align=PP_ALIGN.CENTER, wrap=True)
add_text(slide, "Note: α-Thalassemia is the most common inherited disorder worldwide (affects ~25% of some populations)",
0.35, 7.15, 12.5, 0.32, font_size=12, italic=True, color=ACCENT3)
# ──────────────────────────────────────────────────────────────────────────────
# SLIDE 9 – BETA-THALASSEMIA
# ──────────────────────────────────────────────────────────────────────────────
slide = prs.slides.add_slide(blank)
bg_slide(slide)
section_header_bar(slide, "Beta-Thalassemia – Pathophysiology",
"Mutations reduce or abolish β-globin synthesis → α-chain excess")
# Left - mutation types
add_text(slide, "Molecular Basis", 0.4, 1.42, 6.2, 0.42, font_size=19, bold=True, color=ACCENT3)
mutation_types = [
"β⁰ mutations – NO β-globin produced (stop codons, frameshifts)",
"β⁺ mutations – REDUCED β-globin (promoter, splice site mutations)",
"Promoter mutations – mild/silent β⁺ thalassemia",
"Splice site mutations – commonest cause of β⁰/β⁺",
"Nonsense mutations / frameshifts → β⁰ thalassemia",
"HbE (β27 Glu→Lys) – altered mRNA processing → β-thal phenotype",
">300 mutations known; each population has its own prevalent mutations",
]
add_bullets(slide, mutation_types, 0.4, 1.9, 6.1, 3.2, font_size=14.5)
# Right - pathophysiology cascade
add_text(slide, "Pathophysiology of Excess α-Chains", 6.8, 1.42, 6.2, 0.42,
font_size=19, bold=True, color=ACCENT3)
cascade_items = [
"↓ β-globin → EXCESS free α-chains accumulate",
"Free α-chains are unstable → form PRECIPITATES",
"α-chain precipitates damage RBC membrane → INTRAMEDULLARY HEMOLYSIS",
"Ineffective erythropoiesis (>90% of erythroblasts destroyed in marrow)",
"Severe hemolytic anemia → tissue hypoxia",
"Compensatory erythropoietic expansion:\n - Medullary: marrow hyperplasia → bone deformities\n - Extramedullary: hepatosplenomegaly",
"Massive transfusion dependency → secondary IRON OVERLOAD",
"Iron deposits in heart, liver, endocrine glands → organ failure",
]
for i, pt in enumerate(cascade_items):
y = 1.9 + i * 0.58
col = ACCENT1 if i in [0,2,4,6] else RGBColor(0x25, 0x25, 0x50)
add_rect(slide, 6.8, y, 0.12, 0.5, fill_rgb=ACCENT1)
add_text(slide, pt, 7.0, y+0.02, 6.0, 0.56,
font_size=13.5, color=WHITE if i in [0,2,4,6] else LIGHT_GREY, wrap=True)
# ──────────────────────────────────────────────────────────────────────────────
# SLIDE 10 – BETA-THALASSEMIA: CLINICAL FORMS
# ──────────────────────────────────────────────────────────────────────────────
slide = prs.slides.add_slide(blank)
bg_slide(slide)
section_header_bar(slide, "Beta-Thalassemia – Clinical Forms & Organ Pathology",
"Severity determined by residual β-globin production and HbF levels")
# Thalassemia forms
forms = [
("Thalassemia\nMinor (Trait)", ACCENT2,
"Heterozygous β⁺ or β⁰",
["Mild microcytic hypochromic anemia",
"HbA₂ >3.5% (key diagnostic finding)",
"Usually asymptomatic; identified on screening",
"No transfusions required"]),
("Thalassemia\nIntermedia", RGBColor(0xE6, 0x8A, 0x00),
"Compound heterozygous or homozygous mild β⁺",
["Moderate anemia (Hb 7-10 g/dL)",
"Splenomegaly, bone deformities",
"Infrequent transfusions",
"Iron overload from increased GI absorption",
"Thrombotic risk (splenectomized patients)"]),
("Thalassemia\nMajor (Cooley's)", ACCENT1,
"Homozygous β⁰ or β⁰/β⁺ compound",
["Presents 6-24 months (as HbF declines)",
"Severe transfusion-dependent anemia",
"'Hair-on-end' skull, chipmunk facies",
"Massive hepatosplenomegaly",
"Iron overload: cardiac, hepatic, endocrine",
"Diabetes mellitus, hypothyroidism, hypogonadism",
"Death from cardiac iron without chelation"]),
]
col_xs_forms = [0.3, 4.6, 8.85]
for (cx, (name, color, genotype, pts)) in zip(col_xs_forms, forms):
add_rect(slide, cx, 1.45, 4.1, 0.55, fill_rgb=color)
add_text(slide, name, cx+0.1, 1.47, 3.9, 0.52,
font_size=15, bold=True, color=WHITE,
align=PP_ALIGN.CENTER, v_anchor=MSO_ANCHOR.MIDDLE)
add_rect(slide, cx, 2.0, 4.1, 0.38, fill_rgb=RGBColor(0x30, 0x30, 0x55))
add_text(slide, genotype, cx+0.1, 2.02, 3.9, 0.35,
font_size=13, italic=True, color=SUBTITLE_C, align=PP_ALIGN.CENTER,
v_anchor=MSO_ANCHOR.MIDDLE)
add_rect(slide, cx, 2.38, 4.1, 4.9, fill_rgb=RGBColor(0x1F, 0x1F, 0x38))
add_bullets(slide, pts, cx+0.1, 2.42, 3.9, 4.8, font_size=13.5)
# Bottom image
if imgs[3]["base64"]:
pass # already used
add_text(slide, "Key: Iron overload is the leading cause of morbidity and mortality in thalassemia major — "
"cardiac siderosis (MRI T2* <10 ms) predicts heart failure within 1 year",
0.35, 7.15, 12.5, 0.32, font_size=12.5, italic=True, color=ACCENT3)
# ──────────────────────────────────────────────────────────────────────────────
# SLIDE 11 – THALASSEMIA: IMAGES & PATHOLOGICAL FEATURES
# ──────────────────────────────────────────────────────────────────────────────
slide = prs.slides.add_slide(blank)
bg_slide(slide)
section_header_bar(slide, "Thalassemia – Morphological & Clinical Findings")
if imgs[0]["base64"]:
embed_image(slide, imgs[0], 0.35, 1.42, w=4.3, h=3.2)
if imgs[6]["base64"]:
embed_image(slide, imgs[6], 4.9, 1.42, w=4.15, h=3.2)
if imgs[2]["base64"]:
embed_image(slide, imgs[2], 9.25, 1.42, w=3.8, h=3.2)
add_text(slide, "HbE/β-Thalassemia\nTarget cells, tear drop cells, basophilic stippling\n+ Massive splenomegaly",
0.35, 4.7, 4.3, 0.9, font_size=13, color=LIGHT_GREY, italic=True,
align=PP_ALIGN.CENTER, wrap=True)
add_text(slide, "Splenic Sequestration Crisis\n(Thalassemia)\nSplenomegaly with infarction + splenic vein congestion",
4.9, 4.7, 4.2, 0.9, font_size=13, color=LIGHT_GREY, italic=True,
align=PP_ALIGN.CENTER, wrap=True)
add_text(slide, "Oxidative Stress Cascade\nHbS auto-oxidation → ROS → hemolysis → NO depletion\n→ endothelial dysfunction",
9.25, 4.7, 3.9, 0.9, font_size=12.5, color=LIGHT_GREY, italic=True,
align=PP_ALIGN.CENTER, wrap=True)
# Smear findings for beta-thal
add_text(slide, "Beta-Thalassemia Major Peripheral Smear:", 0.4, 5.7, 12.5, 0.38,
font_size=16, bold=True, color=ACCENT3)
bthal_pts = [
"Severe microcytosis (MCV <65 fL) and hypochromia (MCH <20 pg)",
"Target cells (codocytes), tear-drop cells (dacrocytes), elliptocytes",
"Nucleated RBCs – markedly elevated (intramedullary release)",
"Basophilic stippling – ribosomal aggregates reflecting abnormal RBC maturation",
"Heinz bodies (after splenectomy) – precipitated α-chain inclusions",
]
add_bullets(slide, bthal_pts, 0.4, 6.12, 12.5, 1.22, font_size=14, color=LIGHT_GREY)
# ──────────────────────────────────────────────────────────────────────────────
# SLIDE 12 – LABORATORY DIAGNOSIS
# ──────────────────────────────────────────────────────────────────────────────
slide = prs.slides.add_slide(blank)
bg_slide(slide)
section_header_bar(slide, "Laboratory Diagnosis of Hemoglobinopathies",
"Hierarchical approach: CBC → electrophoresis → molecular testing")
columns = [
("Haematology\n& Morphology", ACCENT1,
["CBC: Hb level, MCV, MCH, RDW",
"Peripheral smear: sickle, target, tear-drop cells",
"Reticulocyte count (elevated in hemolysis)",
"Osmotic fragility (decreased in thalassemia)",
"Heinz body preparation",
"HbF screening (Kleihauer-Betke acid elution)"]),
("Hemoglobin\nAnalysis", ACCENT2,
["HPLC (gold standard): quantifies HbA, HbA₂, HbF, HbS, HbC, HbE",
"Cellulose acetate (alkaline) electrophoresis: primary screen",
"Citrate agar (acid) electrophoresis: separates HbS from HbD/G",
"Isoelectric focusing (IEF): neonatal screening",
"HbA₂ >3.5% → β-thalassemia trait",
"HbF >1% adult → suspect sickle disease or HPFH"]),
("Molecular\nDiagnostics", RGBColor(0x2E, 0x7D, 0x4F),
["PCR-restriction digest: HbS destroys MstII/DdeI site",
"Allele-specific oligonucleotide (ASO) hybridization",
"MLPA: detects α-globin gene deletions",
"Sanger sequencing: β-globin locus (non-targeted)",
"Next-generation sequencing panels: comprehensive",
"Newborn screening: IEF or HPLC on Guthrie card"]),
("Additional\nWorkup", RGBColor(0x6A, 0x4C, 0x93),
["Serum ferritin + transferrin saturation (iron overload)",
"LFTs, LDH, indirect bilirubin (hemolysis markers)",
"Serum haptoglobin (decreased in hemolysis)",
"Urine dipstick: haematuria (papillary necrosis)",
"Cardiac MRI T2* (iron overload assessment)",
"TCD ultrasound: stroke risk in SCD children"]),
]
for i, (title, color, pts) in enumerate(columns):
cx = 0.3 + i * 3.25
add_rect(slide, cx, 1.45, 3.1, 0.55, fill_rgb=color)
add_text(slide, title, cx+0.08, 1.47, 2.95, 0.52,
font_size=14, bold=True, color=WHITE,
align=PP_ALIGN.CENTER, v_anchor=MSO_ANCHOR.MIDDLE)
add_rect(slide, cx, 2.0, 3.1, 5.3, fill_rgb=RGBColor(0x1F, 0x1F, 0x38))
add_bullets(slide, pts, cx+0.1, 2.05, 2.95, 5.2, font_size=13)
# ──────────────────────────────────────────────────────────────────────────────
# SLIDE 13 – MANAGEMENT OVERVIEW
# ──────────────────────────────────────────────────────────────────────────────
slide = prs.slides.add_slide(blank)
bg_slide(slide)
section_header_bar(slide, "Management Overview",
"Disease-modifying, supportive, and curative strategies")
mgmt = [
("Sickle Cell Disease", ACCENT1,
["Hydroxyurea – ↑ HbF, ↓ sickling, ↓ pain, ↓ ACS by ~50%",
"Voxelotor (GBT440) – ↑ Hb-O₂ affinity, ↓ hemolysis",
"Crizanlizumab – anti-P-selectin mAb, ↓ vaso-occlusive crises ~45%",
"L-glutamine – reduces oxidative stress, ↓ pain episodes",
"Chronic transfusion – stroke prevention (TCD >200 cm/s)",
"Simple/exchange transfusion for acute stroke, ACS, sequestration",
"Allogeneic HSCT – only proven cure; best in children with matched sibling",
"Gene therapy (Zynteglo/Casgevy) – newly approved"]),
("Beta-Thalassemia Major", ACCENT2,
["Regular transfusions (every 2-4 weeks) to maintain Hb >10 g/dL",
"Iron chelation therapy – mandatory with transfusions:",
" - Deferasirox (oral, 1st line)",
" - Deferoxamine (SC infusion, 5-7 days/week)",
" - Deferiprone (oral, cardioprotective)",
"Splenectomy – reduces transfusion requirements (post age 5)",
"Allogeneic HSCT – curative, best outcome in class I/II Pesaro",
"Luspatercept – inhibits ineffective erythropoiesis (approved 2020)"]),
("Alpha-Thalassemia\n(HbH/Hydrops)", RGBColor(0x2E, 0x7D, 0x4F),
["Silent carrier/trait: no treatment needed",
"HbH disease: folate, monitor Hb, splenectomy if severe",
"Hydrops fetalis: in utero blood transfusions to save fetus",
"Survivor care: chronic transfusions + chelation",
"Genetic counseling: risk of recurrence",
"Prenatal diagnosis: amniocentesis or CVS when both parents are carriers"]),
]
col_xs_mgmt = [0.3, 4.6, 9.05]
col_ws_mgmt = [4.1, 4.3, 4.0]
for (cx, cw, (title, color, pts)) in zip(col_xs_mgmt, col_ws_mgmt, mgmt):
add_rect(slide, cx, 1.45, cw, 0.55, fill_rgb=color)
add_text(slide, title, cx+0.1, 1.47, cw-0.2, 0.52,
font_size=15, bold=True, color=WHITE,
align=PP_ALIGN.CENTER, v_anchor=MSO_ANCHOR.MIDDLE)
add_rect(slide, cx, 2.0, cw, 5.3, fill_rgb=RGBColor(0x1F, 0x1F, 0x38))
add_bullets(slide, pts, cx+0.1, 2.05, cw-0.2, 5.2, font_size=13)
# ──────────────────────────────────────────────────────────────────────────────
# SLIDE 14 – GENE THERAPY & EMERGING TREATMENTS
# ──────────────────────────────────────────────────────────────────────────────
slide = prs.slides.add_slide(blank)
bg_slide(slide)
section_header_bar(slide, "Gene Therapy & Emerging Treatments",
"Moving toward a cure for hemoglobinopathies")
add_rect(slide, 0.3, 1.45, 12.7, 0.42, fill_rgb=RGBColor(0x22, 0x22, 0x50))
add_text(slide, "Target: Reactivate fetal hemoglobin (HbF) or correct the mutant gene via gene editing",
0.5, 1.47, 12.3, 0.38, font_size=15, bold=True, color=ACCENT3)
gene_tx = [
("Lentiviral Gene\nAddition", ACCENT2,
"Betibeglogene\nautotemecel\n(Zynteglo)",
["FDA approved 2022 for β-thalassemia",
"Autologous HSC transduced with functional HBB gene",
"77% of patients achieved transfusion independence",
"One-time treatment; sustained HbA-T87Q production"]),
("CRISPR/Cas9\nGene Editing", ACCENT1,
"Exagamglogene\nautotemcel\n(Casgevy)",
["FDA approved Dec 2023 – first CRISPR therapy",
"Disrupts BCL11A enhancer → de-represses HbF genes",
"97% of SCD patients pain-crisis free at 12 months",
"93% of β-thalassemia patients transfusion independent"]),
("HbF\nReactivation", RGBColor(0x2E, 0x7D, 0x4F),
"Hydroxyurea,\nDecitabine,\nLuspatercept",
["Hydroxyurea: ↑ HbF via BCL11A suppression and other mechanisms",
"Luspatercept: TGFβ-ligand trap → ↓ ineffective erythropoiesis",
"CRISPR disruption of BCL11A binding site → safe HbF induction"]),
("Allogeneic\nHSCT", RGBColor(0x6A, 0x4C, 0x93),
"Bone Marrow /\nPBSC /\nCord Blood",
["Only established cure pre-gene therapy era",
"Best outcomes: matched sibling donor, age <16, class I/II",
"Event-free survival >90% with good-risk patients",
"Challenges: donor availability, GVHD, conditioning toxicity"]),
]
for i, (title, color, agent, pts) in enumerate(gene_tx):
cx = 0.3 + i * 3.25
add_rect(slide, cx, 2.0, 3.1, 0.55, fill_rgb=color)
add_text(slide, title, cx+0.08, 2.02, 2.95, 0.52,
font_size=14, bold=True, color=WHITE,
align=PP_ALIGN.CENTER, v_anchor=MSO_ANCHOR.MIDDLE)
add_rect(slide, cx, 2.55, 3.1, 0.55, fill_rgb=RGBColor(0x30, 0x30, 0x60))
add_text(slide, agent, cx+0.08, 2.57, 2.95, 0.52,
font_size=12, italic=True, color=SUBTITLE_C,
align=PP_ALIGN.CENTER, v_anchor=MSO_ANCHOR.MIDDLE)
add_rect(slide, cx, 3.1, 3.1, 4.2, fill_rgb=RGBColor(0x1F, 0x1F, 0x38))
add_bullets(slide, pts, cx+0.1, 3.15, 2.95, 4.1, font_size=13)
# ──────────────────────────────────────────────────────────────────────────────
# SLIDE 15 – SUMMARY & KEY TAKEAWAYS
# ──────────────────────────────────────────────────────────────────────────────
slide = prs.slides.add_slide(blank)
bg_slide(slide)
section_header_bar(slide, "Summary & Key Takeaways",
"Hemoglobinopathies – Pathology Focus")
takeaways = [
("Molecular Basis",
"Sickle cell: single β6 Glu→Val mutation; HbS polymerizes on deoxygenation causing vaso-occlusion, hemolysis, and organ damage. "
"β-Thalassemia: >300 mutations reducing β-globin; excess α-chains precipitate causing ineffective erythropoiesis. "
"α-Thalassemia: gene deletions on chr 16; 4-gene deletion = lethal hydrops fetalis."),
("Core Pathology Themes",
"1. HEMOLYSIS (extravascular in thal; intra+extra in SCD) → anemia, jaundice, gallstones. "
"2. VASO-OCCLUSION (SCD-specific) → ischemia, infarction, pain crises. "
"3. IRON OVERLOAD (thalassemia major from transfusions, SCD from hemolysis) → cardiac/endocrine/hepatic failure. "
"4. INEFFECTIVE ERYTHROPOIESIS (β-thal) → marrow expansion, bone deformity, extramedullary hematopoiesis."),
("Critical Organ Targets",
"Spleen (autosplenectomy in SCD; splenomegaly in thal) | Brain (stroke, silent infarcts in SCD) | "
"Bone (AVN, dactylitis, 'hair-on-end' in thal) | Kidney (papillary necrosis, sickle nephropathy) | "
"Lung (ACS, pulmonary hypertension) | Heart (iron cardiomyopathy in thal)"),
("Diagnostic Pearls",
"HbA₂ >3.5% = β-thalassemia trait. HbS on HPLC + sickling test = SCD. "
"Howell-Jolly bodies = functional asplenia. 'Hair-on-end' skull XR = marrow hyperplasia. "
"Cardiac MRI T2* <10 ms = severe cardiac iron (high risk for heart failure)."),
("Treatment Milestones",
"Hydroxyurea: standard of care for all SCD patients (↑ HbF, ↓ crises). "
"Casgevy (CRISPR): first gene-editing therapy approved (Dec 2023) for both SCD and β-thal. "
"Luspatercept: approved for β-thalassemia (targets ineffective erythropoiesis). "
"HSCT: established cure; now challenged/complemented by gene therapy approaches."),
]
for i, (heading, text) in enumerate(takeaways):
y = 1.45 + i * 1.15
add_rect(slide, 0.3, y, 2.1, 1.0, fill_rgb=ACCENT1 if i % 2 == 0 else ACCENT2)
add_text(slide, heading, 0.38, y+0.1, 1.95, 0.82,
font_size=14, bold=True, color=WHITE,
align=PP_ALIGN.CENTER, v_anchor=MSO_ANCHOR.MIDDLE)
add_rect(slide, 2.4, y, 10.6, 1.0, fill_rgb=RGBColor(0x20, 0x20, 0x38))
add_text(slide, text, 2.5, y+0.06, 10.4, 0.9,
font_size=13, color=LIGHT_GREY, wrap=True,
v_anchor=MSO_ANCHOR.MIDDLE)
# ──────────────────────────────────────────────────────────────────────────────
# SAVE
# ──────────────────────────────────────────────────────────────────────────────
out_path = "/tmp/workspace/hemoglobinopathies/Hemoglobinopathies_Pathology.pptx"
prs.save(out_path)
print(f"\nSaved: {out_path}")
print(f"Slides: {len(prs.slides)}")
cd /tmp/workspace/hemoglobinopathies && python build_pptx.py 2>&1
find /tmp/skills -name "fetch_images.py" 2>/dev/null; ls /tmp/skills/ 2>/dev/null; ls /skills/ 2>/dev/null
**/fetch_images.py in /tmp/skills
~/hemoglobinopathies/build_pptx.py
Successfully replaced 1 instance(s) of the string in '/tmp/workspace/hemoglobinopathies/build_pptx.py'
cd /tmp/workspace/hemoglobinopathies && python build_pptx.py 2>&1
~/hemoglobinopathies/build_pptx.py
Successfully replaced 1 instance(s) of the string in '/tmp/workspace/hemoglobinopathies/build_pptx.py'
cd /tmp/workspace/hemoglobinopathies && python build_pptx.py 2>&1
Hemoglobinopathies Pathology
Presentation · PPTX
| # | Slide Title | Content Highlights |
|---|---|---|
| 1 | Title Slide | Dark navy/red design with HbS polymerization image |
| 2 | Overview & Learning Objectives | 7 numbered learning goals |
| 3 | Normal Hemoglobin Structure | Molecular architecture + table of all Hb variants (HbA, A₂, F, Gower, HbH, Hb Bart's) |
| 4 | Classification of Hemoglobinopathies | 4-panel grid: Structural variants, Thalassemias, HPFH, Acquired |
| 5 | Sickle Cell Disease – Molecular Pathology | 7-step cascade (mutation → polymerization → sickling → vaso-occlusion → ischemia → hemolysis → oxidative stress) + real SEM image |
| 6 | SCD – Organ Pathology | 6-organ grid: Spleen, Bone, CNS, Kidney, Lung, Others |
| 7 | SCD – Morphological & Imaging | 3 real clinical images: smear, CT autosplenectomy, MRI stroke + smear findings table |
| 8 | Alpha-Thalassemia | Gene dosage table: Silent carrier → Trait → HbH disease → Hydrops fetalis |
| 9 | Beta-Thalassemia Pathophysiology | Mutation classes + α-chain excess cascade leading to iron overload |
| 10 | Beta-Thal Clinical Forms | Minor/Intermedia/Major comparison with Cooley's anemia features |
| 11 | Thalassemia – Morphological Findings | Clinical images + smear: microcytosis, target cells, nucleated RBCs, Heinz bodies |
| 12 | Laboratory Diagnosis | 4-column table: Haematology, Hb analysis (HPLC), Molecular diagnostics, Workup |
| 13 | Management Overview | SCD (hydroxyurea, voxelotor, crizanlizumab, HSCT) vs. beta-thal (transfusion, chelation, luspatercept) vs. alpha-thal |
| 14 | Gene Therapy & Emerging Tx | Casgevy (CRISPR, FDA Dec 2023), Zynteglo (lentiviral), luspatercept, HSCT |
| 15 | Summary & Key Takeaways | 5-row structured summary: molecular basis, core pathology themes, organ targets, diagnostic pearls, treatment milestones |