Prolactin and dopamine synthesis And pathways for internal medicine postgraduate students

Reading File
Finding Sources
Finding Sources
Finding Sources
Searching the Web

prolactin secretion regulation dopamine tuberoinfundibular pathway physiology

Reading File
Reading File
Reading File
Reading File
Searching PubMed

hyperprolactinemia dopamine agonist treatment

Searching Images

dopamine synthesis pathway tyrosine to norepinephrine epinephrine diagram

Searching Images

hypothalamic pituitary prolactin regulation dopamine tuberoinfundibular diagram

Dopamine Synthesis and the Regulation of Prolactin

1. Dopamine biosynthesis (the catecholamine pathway)

Dopamine, norepinephrine, and epinephrine are a single biosynthetic family, all derived from the amino acid tyrosine:
Tyrosine → L-DOPA → Dopamine → Norepinephrine → Epinephrine
StepEnzymeNotes
Tyrosine → L-DOPATyrosine hydroxylaseRate-limiting step; cytoplasmic; requires tetrahydrobiopterin cofactor; subject to feedback inhibition by dopamine and norepinephrine (Ganong's Physiology, p. 555-564)
L-DOPA → DopamineDOPA decarboxylase (aromatic amino acid decarboxylase)Cytoplasmic
Dopamine → NorepinephrineDopamine β-hydroxylaseOccurs inside the storage vesicle after dopamine is pumped in by VMAT (vesicular monoamine transporter)
Norepinephrine → EpinephrinePhenylethanolamine-N-methyltransferase (PNMT)Only present in adrenal medulla and a few CNS neurons; requires S-adenosylmethionine
The enzyme set present in a given neuron/cell determines its final product:
  • Dopaminergic neurons: tyrosine hydroxylase + DOPA decarboxylase only → secrete dopamine
  • Noradrenergic neurons: add dopamine β-hydroxylase → secrete norepinephrine
  • Adrenal medulla: full pathway including PNMT → secretes predominantly epinephrine
Catabolism is via MAO (monoamine oxidase, presynaptic, requires reuptake first) and COMT (catechol-O-methyltransferase, widely distributed, especially liver) - Costanzo Physiology 7e, p. 1205-1222; Ganong's Review of Medical Physiology 26e.
Dopamine, norepinephrine, epinephrine synthesis and degradation pathway

2. The Tuberoinfundibular Dopamine (TIDA) Pathway

This is one of the four major dopamine pathways in the brain (alongside mesolimbic, mesocortical, and nigrostriatal), and the one clinically relevant to prolactin:
  • Origin: Dopaminergic neuron cell bodies in the arcuate nucleus (infundibular nucleus) of the hypothalamus
  • Projection: Axons terminate in the median eminence, releasing dopamine into the hypophyseal portal circulation
  • Target: Dopamine travels via portal vessels to the anterior pituitary lactotrophs, where it binds D2 receptors
  • Effect: D2 receptor activation decreases cAMP, which inhibits both prolactin gene transcription and secretion
This is why dopamine is historically called PIF (prolactin-inhibiting factor) - it is the dominant tonic inhibitor of a hormone that otherwise would be secreted unchecked. Unlike every other anterior pituitary hormone (which is under primarily stimulatory hypothalamic control), prolactin is unique in being under tonic inhibitory control (Berek & Novak's Gynecology, p. 376-383; Costanzo Physiology, p. 3885-3887).

3. Overall regulation of prolactin secretion

FactorEffect on prolactinMechanism
DopamineInhibits↓cAMP in lactotrophs, ↓prolactin gene transcription
TRHStimulates↑prolactin gene transcription (this is why hypothyroidism can cause mild hyperprolactinemia)
EstrogenStimulatesIncreases lactotroph number/sensitivity, partly by reducing dopamine tone
Suckling/nipple stimulationStimulatesNeural reflex reduces hypothalamic dopamine release
Prolactin itselfShort-loop negative feedbackHigh prolactin stimulates hypothalamic TIDA neurons to release more dopamine, which suppresses further prolactin release
Because dopamine's role is inhibitory, any interruption of the dopamine supply to lactotrophs raises prolactin - this is the key concept for internal medicine trainees:
  • Pituitary stalk/hypothalamic lesions (tumor, infiltrative disease, trauma, surgery, radiation) interrupt dopamine delivery down the stalk → "stalk effect" hyperprolactinemia, usually modest (<100-150 ng/mL) (Goldman-Cecil Medicine, p. 969-974)
  • Large non-secreting pituitary adenomas with suprasellar extension compress the stalk → similarly modest elevation, must be distinguished from a true prolactinoma, which typically produces much higher levels (often 5-50x or more); very large "giant" adenomas can cause a spuriously low reading (hook effect) requiring dilution testing
  • Drugs that block D2 receptors (typical and many atypical antipsychotics, metoclopramide, some antiemetics) remove the inhibitory tone on lactotrophs → drug-induced hyperprolactinemia. This is the same mechanism by which antipsychotics cause galactorrhea, amenorrhea, sexual dysfunction, and long-term bone density loss (Kaplan & Sadock's Comprehensive Textbook of Psychiatry, p. 3098; Stahl's Essential Psychopharmacology, p. 3478-3490)
  • Primary hypothyroidism raises TRH → stimulates prolactin independent of dopamine
  • Prolactinomas (lactotroph adenomas) - the most common functioning pituitary tumor - autonomously secrete prolactin; treated first-line with dopamine agonists (cabergoline preferred over bromocriptine for efficacy/tolerability), which replace the missing inhibitory tone directly at the D2 receptor

4. Clinical correlation snapshot for postgraduates

  • Order of hyperprolactinemia work-up: exclude pregnancy → medication review → TSH → MRI pituitary/hypothalamus if levels are significantly elevated or no drug cause found
  • Dilution assay for markedly elevated levels with large tumors (hook effect)
  • Dopamine agonists (cabergoline, bromocriptine) are both diagnostic-therapeutic (a fall in prolactin and tumor shrinkage supports prolactinoma) and definitive treatment for most prolactinomas, reserving surgery for resistant/intolerant cases or acute mass effect
Recent evidence check: A 2025 systematic review/network meta-analysis (PMID: 39411853) compared aripiprazole, bromocriptine, and cabergoline for hyperprolactinemia (including antipsychotic-induced cases), and a 2023 meta-analysis (PMID: 36761195) evaluated quinagolide efficacy/safety - both are consistent with cabergoline's established first-line status but add more head-to-head efficacy/tolerability data than most core textbooks discuss. A 2025 meta-analysis (PMID: 40480033) also flags an increased risk of impulse control disorders with dopamine agonist therapy in prolactinoma patients, an important counseling point not always emphasized in standard textbooks - worth mentioning to patients started on cabergoline/bromocriptine long-term.

Make a PowerPoint from the above data

Reading File
Reading File
Running Command

mkdir -p /tmp/workspace/prolactin-dopamine-ppt/output && ls -la /tmp/workspace/

Running Command

cd /tmp/workspace/prolactin-dopamine-ppt && python /tmp/skills/shared/scripts/fetch_images.py "https://cdn.orris.care/cdss_images/a56eb88ba6528da3dda7d0794fd1b8dca1659abca14842f8dc96e7b2c529f065.png" > assets_images.json 2>fetch_err.log; echo EXIT:$?; wc -c assets_images.json; head -c 300 fetch_err.log

Writing File

~/prolactin-dopamine-ppt/build_ppt.py

import 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
from pptx.enum.shapes import MSO_SHAPE

# ---------- Colors ----------
NAVY = RGBColor(0x0B, 0x2C, 0x4A)
TEAL = RGBColor(0x0E, 0x76, 0x7A)
LIGHT_BG = RGBColor(0xF4, 0xF7, 0xF9)
WHITE = RGBColor(0xFF, 0xFF, 0xFF)
DARK = RGBColor(0x22, 0x2A, 0x33)
ACCENT = RGBColor(0xE0, 0x7A, 0x2A)
GREY = RGBColor(0x6B, 0x74, 0x7C)

with open("assets_images.json") as f:
    imgs = json.load(f)
dopamine_img_b64 = None
for im in imgs:
    if im.get("base64"):
        dopamine_img_b64 = im["base64"].split(",", 1)[1]

def img_stream():
    return BytesIO(base64.b64decode(dopamine_img_b64))

prs = Presentation()
prs.slide_width = Inches(13.333)
prs.slide_height = Inches(7.5)
BLANK = prs.slide_layouts[6]
SW, SH = prs.slide_width, prs.slide_height

def add_slide(bg=LIGHT_BG):
    s = prs.slides.add_slide(BLANK)
    rect = s.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, 0, SW, SH)
    rect.fill.solid()
    rect.fill.fore_color.rgb = bg
    rect.line.fill.background()
    rect.shadow.inherit = False
    s.shapes._spTree.remove(rect._element)
    s.shapes._spTree.insert(2, rect._element)
    return s

def add_text(slide, x, y, w, h, text, size=18, bold=False, color=DARK,
             align=PP_ALIGN.LEFT, font="Calibri", anchor=None, line_spacing=1.0,
             italic=False):
    tb = slide.shapes.add_textbox(x, y, w, h)
    tf = tb.text_frame
    tf.word_wrap = True
    if anchor is not None:
        tf.vertical_anchor = anchor
    lines = text.split("\n")
    for i, line in enumerate(lines):
        p = tf.paragraphs[0] if i == 0 else tf.add_paragraph()
        p.text = line
        p.alignment = align
        p.line_spacing = line_spacing
        r = p.runs[0]
        r.font.size = Pt(size)
        r.font.bold = bold
        r.font.italic = italic
        r.font.name = font
        r.font.color.rgb = color
    return tb

def add_bullets(slide, x, y, w, h, items, size=15, color=DARK, bold_first=False,
                 bullet_color=TEAL, line_spacing=1.15, space_after=8):
    tb = slide.shapes.add_textbox(x, y, w, h)
    tf = tb.text_frame
    tf.word_wrap = True
    for i, item in enumerate(items):
        if isinstance(item, tuple):
            text, lvl = item
        else:
            text, lvl = item, 0
        p = tf.paragraphs[0] if i == 0 else tf.add_paragraph()
        p.line_spacing = line_spacing
        p.space_after = Pt(space_after)
        bullet_char = "\u25CF " if lvl == 0 else "\u2013 "
        p.text = ("   " * lvl) + bullet_char + text
        r = p.runs[0]
        r.font.size = Pt(size - lvl * 1.5)
        r.font.color.rgb = color
        r.font.name = "Calibri"
    return tb

def header_bar(slide, title, kicker="INTERNAL MEDICINE | ENDOCRINE PHYSIOLOGY", num=None):
    bar = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, 0, SW, Inches(1.15))
    bar.fill.solid(); bar.fill.fore_color.rgb = NAVY
    bar.line.fill.background(); bar.shadow.inherit = False
    stripe = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, Inches(1.15), SW, Inches(0.06))
    stripe.fill.solid(); stripe.fill.fore_color.rgb = ACCENT
    stripe.line.fill.background(); stripe.shadow.inherit = False
    add_text(slide, Inches(0.5), Inches(0.10), Inches(10), Inches(0.3), kicker,
              size=11, bold=True, color=RGBColor(0xC9,0xD8,0xE3))
    add_text(slide, Inches(0.5), Inches(0.36), Inches(12.2), Inches(0.72), title,
              size=26, bold=True, color=WHITE)
    if num is not None:
        add_text(slide, Inches(12.6), Inches(6.98), Inches(0.6), Inches(0.4), str(num),
                  size=12, color=GREY, align=PP_ALIGN.RIGHT)

def footer(slide, text="Prolactin & Dopamine Synthesis \u2013 Postgraduate Review"):
    add_text(slide, Inches(0.5), Inches(7.05), Inches(9), Inches(0.35), text,
              size=9.5, color=GREY, italic=True)

# ============================================================
# SLIDE 1 — TITLE
# ============================================================
s = add_slide(NAVY)
band = s.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, Inches(4.55), SW, Inches(0.08))
band.fill.solid(); band.fill.fore_color.rgb = ACCENT; band.line.fill.background(); band.shadow.inherit=False
add_text(s, Inches(0.9), Inches(2.55), Inches(11.5), Inches(0.5), "INTERNAL MEDICINE POSTGRADUATE SERIES",
          size=16, bold=True, color=RGBColor(0xC9,0xD8,0xE3))
add_text(s, Inches(0.9), Inches(3.0), Inches(11.5), Inches(1.4), "Prolactin & Dopamine:\nSynthesis and Pathways",
          size=40, bold=True, color=WHITE, line_spacing=1.05)
add_text(s, Inches(0.9), Inches(4.75), Inches(11.5), Inches(0.5),
          "Catecholamine biosynthesis, the tuberoinfundibular dopamine pathway, and clinical correlations in hyperprolactinemia",
          size=15, color=RGBColor(0xC9,0xD8,0xE3), italic=True)
add_text(s, Inches(0.9), Inches(6.7), Inches(8), Inches(0.4),
          "Endocrine Physiology \u00b7 Neuroendocrinology \u00b7 Clinical Endocrinology", size=12, color=GREY)

# ============================================================
# SLIDE 2 — LEARNING OBJECTIVES / ROADMAP
# ============================================================
s = add_slide()
header_bar(s, "Learning Objectives", num=2)
objs = [
    "Describe the biosynthetic pathway of catecholamines from tyrosine, and identify the rate-limiting enzyme",
    "Explain how cell-specific enzyme expression determines whether a neuron secretes dopamine, norepinephrine, or epinephrine",
    "Describe the anatomy and function of the tuberoinfundibular dopaminergic (TIDA) pathway",
    "Explain the unique tonic inhibitory control of prolactin secretion by dopamine, and the stimulatory role of TRH",
    "Apply this physiology to clinical causes of hyperprolactinemia (stalk effect, drug-induced, prolactinoma, hypothyroidism)",
    "Outline the role of dopamine agonists in treating hyperprolactinemia/prolactinoma, and recent safety evidence",
]
add_bullets(s, Inches(0.7), Inches(1.55), Inches(11.9), Inches(5.0), objs, size=17, space_after=16)
footer(s)

# ============================================================
# SLIDE 3 — CATECHOLAMINE BIOSYNTHESIS PATHWAY (text flow)
# ============================================================
s = add_slide()
header_bar(s, "Dopamine Biosynthesis: The Catecholamine Pathway", num=3)
add_text(s, Inches(0.6), Inches(1.35), Inches(12.1), Inches(0.5),
          "Dopamine, norepinephrine, and epinephrine share a common precursor (tyrosine) and biosynthetic pathway.",
          size=14, italic=True, color=GREY)

steps = [
    ("TYROSINE", "Dietary / from phenylalanine\n(phenylalanine hydroxylase, liver)"),
    ("L-DOPA", "Enzyme: Tyrosine hydroxylase\nRATE-LIMITING STEP\nFeedback-inhibited by dopamine & NE"),
    ("DOPAMINE", "Enzyme: DOPA decarboxylase\n(aromatic amino acid decarboxylase)\nCytoplasmic"),
    ("NOREPINEPHRINE", "Enzyme: Dopamine \u03b2-hydroxylase\nOccurs INSIDE storage vesicle\n(after VMAT transport)"),
    ("EPINEPHRINE", "Enzyme: PNMT\n(phenylethanolamine-N-methyltransferase)\nAdrenal medulla + few CNS neurons"),
]
n = len(steps)
box_w = Inches(2.05)
gap = Inches(0.28)
total_w = box_w * n + gap * (n - 1)
start_x = int((SW - total_w) / 2)
y = Inches(2.15)
box_h = Inches(2.15)
for i, (title, desc) in enumerate(steps):
    x = start_x + i * (box_w + gap)
    box = s.shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE, x, y, box_w, box_h)
    box.fill.solid()
    box.fill.fore_color.rgb = NAVY if i in (1, 4) else TEAL
    box.line.color.rgb = WHITE
    box.line.width = Pt(1)
    box.shadow.inherit = False
    tf = box.text_frame
    tf.word_wrap = True
    tf.vertical_anchor = MSO_ANCHOR.TOP
    tf.margin_left = Pt(8); tf.margin_right = Pt(8); tf.margin_top = Pt(10)
    p = tf.paragraphs[0]
    p.text = title
    p.alignment = PP_ALIGN.CENTER
    p.runs[0].font.size = Pt(15)
    p.runs[0].font.bold = True
    p.runs[0].font.color.rgb = WHITE
    p2 = tf.add_paragraph()
    p2.text = desc
    p2.alignment = PP_ALIGN.CENTER
    p2.line_spacing = 1.05
    p2.space_before = Pt(8)
    p2.runs[0].font.size = Pt(10.5)
    p2.runs[0].font.color.rgb = RGBColor(0xE8, 0xF0, 0xF3)
    if i < n - 1:
        ax = x + box_w + Emu(1000)
        arrow = s.shapes.add_shape(MSO_SHAPE.RIGHT_ARROW, x + box_w - Inches(0.02), y + box_h/2 - Inches(0.12), gap + Inches(0.04), Inches(0.24))
        arrow.fill.solid(); arrow.fill.fore_color.rgb = ACCENT
        arrow.line.fill.background(); arrow.shadow.inherit = False

add_text(s, Inches(0.6), Inches(4.7), Inches(12.1), Inches(0.4),
          "Key point: Tyrosine hydroxylase (Tyr \u2192 L-DOPA) is the rate-limiting step for ALL catecholamine synthesis.",
          size=14, bold=True, color=NAVY)
add_bullets(s, Inches(0.6), Inches(5.25), Inches(12.1), Inches(1.6), [
    "Cell-specific enzyme expression determines final product: dopaminergic neurons stop at dopamine (lack dopamine \u03b2-hydroxylase); noradrenergic neurons add dopamine \u03b2-hydroxylase; adrenal medulla has the full pathway including PNMT \u2192 secretes mainly epinephrine",
    "Catabolism: MAO (presynaptic, requires reuptake) and COMT (extraneuronal, e.g. liver) degrade all three catecholamines",
], size=13, space_after=6)
add_text(s, Inches(0.6), Inches(6.95), Inches(10), Inches(0.3),
          "Ganong's Review of Medical Physiology, 26e, p.555-566  \u00b7  Costanzo Physiology 7e, p.1205-1222", size=9.5, color=GREY, italic=True)

# ============================================================
# SLIDE 4 — DIAGRAM IMAGE
# ============================================================
s = add_slide()
header_bar(s, "Synthesis & Degradation Pathway (Textbook Figure)", num=4)
if dopamine_img_b64:
    pic = s.shapes.add_picture(img_stream(), Inches(2.9), Inches(1.5), height=Inches(4.9))
    # center horizontally based on actual width
    pic_w = pic.width
    pic.left = int((SW - pic_w) / 2)
add_text(s, Inches(0.6), Inches(6.65), Inches(12.1), Inches(0.5),
          "Fig. Synthesis and degradation of dopamine, norepinephrine, and epinephrine. COMT = catechol-O-methyltransferase; MAO = monoamine oxidase.",
          size=12, italic=True, color=GREY)
add_text(s, Inches(0.6), Inches(7.05), Inches(10), Inches(0.3),
          "Source: Costanzo Physiology, 7th Edition, Fig. 1.18, p.1207", size=9.5, color=GREY, italic=True)

# ============================================================
# SLIDE 5 — TUBEROINFUNDIBULAR PATHWAY
# ============================================================
s = add_slide()
header_bar(s, "The Tuberoinfundibular Dopamine (TIDA) Pathway", num=5)
add_text(s, Inches(0.6), Inches(1.35), Inches(6.0), Inches(0.35), "One of 4 major CNS dopamine pathways", size=14, bold=True, color=NAVY)
left_items = [
    "Cell bodies: Arcuate (infundibular) nucleus of the hypothalamus",
    "Axons project to: Median eminence",
    "Release site: Hypophyseal portal circulation",
    "Target: Anterior pituitary lactotrophs (D2 receptors)",
    "Effect: \u2193 cAMP in lactotrophs \u2192 \u2193 prolactin gene transcription & secretion",
]
add_bullets(s, Inches(0.6), Inches(1.8), Inches(6.4), Inches(4.5), left_items, size=15, space_after=14)

box = s.shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE, Inches(7.3), Inches(1.8), Inches(5.4), Inches(3.9))
box.fill.solid(); box.fill.fore_color.rgb = RGBColor(0xEA, 0xF1, 0xF3)
box.line.color.rgb = TEAL; box.line.width = Pt(1.25); box.shadow.inherit = False
tf = box.text_frame; tf.word_wrap = True
tf.margin_left = Pt(16); tf.margin_top = Pt(14); tf.margin_right = Pt(14)
p = tf.paragraphs[0]; p.text = "Other major dopamine pathways (context)"
p.runs[0].font.bold = True; p.runs[0].font.size = Pt(14); p.runs[0].font.color.rgb = NAVY
for line in [
    "Mesolimbic \u2013 reward, psychosis positive symptoms",
    "Mesocortical \u2013 cognition; under-activity \u2192 negative symptoms",
    "Nigrostriatal \u2013 movement; D2 blockade \u2192 extrapyramidal symptoms",
    "Tuberoinfundibular \u2013 prolactin regulation (this slide)",
]:
    pp = tf.add_paragraph(); pp.text = "\u25CF " + line
    pp.space_before = Pt(10); pp.runs[0].font.size = Pt(13); pp.runs[0].font.color.rgb = DARK

add_text(s, Inches(0.6), Inches(6.35), Inches(12.1), Inches(0.5),
          "Clinical link: D2 antagonists (antipsychotics) block this pathway \u2192 remove inhibitory tone \u2192 hyperprolactinemia (\u201cprolactin-inhibiting factor\u201d, PIF).",
          size=13.5, bold=True, color=ACCENT)
add_text(s, Inches(0.6), Inches(7.05), Inches(10), Inches(0.3),
          "Berek & Novak's Gynecology, p.376-383  \u00b7  Stahl's Essential Psychopharmacology, p.1915-1923, 3478-3490", size=9.5, color=GREY, italic=True)

# ============================================================
# SLIDE 6 — REGULATION OF PROLACTIN (TABLE)
# ============================================================
s = add_slide()
header_bar(s, "Regulation of Prolactin Secretion", num=6)
add_text(s, Inches(0.6), Inches(1.3), Inches(12.1), Inches(0.4),
          "Unique among anterior pituitary hormones: prolactin is under tonic INHIBITORY hypothalamic control.",
          size=14, italic=True, color=GREY)

rows_data = [
    ("Factor", "Effect on Prolactin", "Mechanism"),
    ("Dopamine (PIF)", "Inhibits", "\u2193 cAMP in lactotrophs, \u2193 gene transcription (dominant tonic signal)"),
    ("TRH", "Stimulates", "\u2191 prolactin gene transcription (link to hypothyroidism)"),
    ("Estrogen", "Stimulates", "\u2191 lactotroph number/sensitivity, \u2193 dopamine tone"),
    ("Suckling / nipple stimulation", "Stimulates", "Neural reflex \u2193 hypothalamic dopamine release"),
    ("Prolactin itself", "Short-loop feedback", "\u2191 PRL stimulates TIDA neurons \u2192 \u2191 dopamine \u2192 \u2193 further PRL release"),
]
rows, cols = len(rows_data), 3
tbl_w, tbl_h = Inches(12.1), Inches(4.55)
gtbl = s.shapes.add_table(rows, cols, Inches(0.6), Inches(1.85), tbl_w, tbl_h).table
gtbl.columns[0].width = Inches(3.1)
gtbl.columns[1].width = Inches(2.6)
gtbl.columns[2].width = Inches(6.4)
for c, htext in enumerate(rows_data[0]):
    cell = gtbl.cell(0, c)
    cell.text = htext
    cell.fill.solid(); cell.fill.fore_color.rgb = NAVY
    p = cell.text_frame.paragraphs[0]; p.runs[0].font.bold = True
    p.runs[0].font.size = Pt(14); p.runs[0].font.color.rgb = WHITE
    cell.vertical_anchor = MSO_ANCHOR.MIDDLE
for r in range(1, rows):
    for c in range(cols):
        cell = gtbl.cell(r, c)
        cell.text = rows_data[r][c]
        cell.fill.solid()
        cell.fill.fore_color.rgb = WHITE if r % 2 else RGBColor(0xEE, 0xF3, 0xF6)
        p = cell.text_frame.paragraphs[0]
        p.runs[0].font.size = Pt(12.5)
        p.runs[0].font.color.rgb = DARK
        if c == 0:
            p.runs[0].font.bold = True
        cell.vertical_anchor = MSO_ANCHOR.MIDDLE
        cell.margin_left = Pt(8); cell.margin_right = Pt(8)
footer(s)

# ============================================================
# SLIDE 7 — CLINICAL CAUSES OF HYPERPROLACTINEMIA
# ============================================================
s = add_slide()
header_bar(s, "Clinical Correlation: Causes of Hyperprolactinemia", num=7)
add_text(s, Inches(0.6), Inches(1.3), Inches(12.1), Inches(0.4),
          "Any interruption of dopamine delivery to lactotrophs raises prolactin \u2013 the unifying concept.",
          size=14, bold=True, color=NAVY)

causes = [
    ("Stalk effect / hypothalamic lesions", "Tumor, infiltrative disease, trauma, surgery, radiation compress the pituitary stalk \u2192 \u2193 dopamine delivery \u2192 usually modest rise (< 100\u2013150 ng/mL)"),
    ("Non-secreting adenoma with suprasellar extension", "Mass compresses stalk; must be distinguished from a true prolactinoma"),
    ("Prolactinoma", "Autonomous lactotroph adenoma; levels typically 5\u201350x normal (or higher). Very large tumors may need diluted assay to avoid a spuriously low \u201chook effect\u201d reading"),
    ("Drugs (D2 receptor blockers)", "Typical/atypical antipsychotics, metoclopramide, some antiemetics \u2192 remove inhibitory dopamine tone \u2192 galactorrhea, amenorrhea, sexual dysfunction, \u2193 bone density"),
    ("Primary hypothyroidism", "\u2191 TRH directly stimulates prolactin, independent of dopamine pathway"),
    ("Physiologic", "Pregnancy, lactation, stress, sleep, nipple stimulation"),
]
y = Inches(1.85)
row_h = Inches(0.82)
for title, desc in causes:
    dot = s.shapes.add_shape(MSO_SHAPE.OVAL, Inches(0.6), y + Inches(0.08), Inches(0.16), Inches(0.16))
    dot.fill.solid(); dot.fill.fore_color.rgb = ACCENT; dot.line.fill.background(); dot.shadow.inherit=False
    add_text(s, Inches(0.95), y, Inches(3.4), row_h, title, size=13.5, bold=True, color=NAVY, line_spacing=1.05)
    add_text(s, Inches(4.5), y, Inches(8.2), row_h, desc, size=12.5, color=DARK, line_spacing=1.05)
    y += row_h
add_text(s, Inches(0.6), Inches(7.05), Inches(11), Inches(0.3),
          "Goldman-Cecil Medicine, International Edition, p.969-974", size=9.5, color=GREY, italic=True)

# ============================================================
# SLIDE 8 — MANAGEMENT: DOPAMINE AGONISTS
# ============================================================
s = add_slide()
header_bar(s, "Management: Dopamine Agonists in Hyperprolactinemia", num=8)
add_bullets(s, Inches(0.6), Inches(1.45), Inches(6.5), Inches(4.8), [
    "First-line therapy for most prolactinomas: replaces the missing inhibitory dopamine tone directly at the lactotroph D2 receptor",
    "Cabergoline preferred over bromocriptine \u2013 better efficacy, tolerability, and dosing convenience",
    "Response (\u2193 PRL, tumor shrinkage) is both diagnostic and therapeutic evidence for prolactinoma",
    "Surgery reserved for medication-resistant/intolerant cases or acute mass effect (e.g. visual field compromise)",
    "Work-up sequence: exclude pregnancy \u2192 review medications \u2192 check TSH \u2192 MRI pituitary/hypothalamus if unexplained or markedly elevated",
], size=14.5, space_after=14)

box = s.shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE, Inches(7.4), Inches(1.45), Inches(5.35), Inches(4.6))
box.fill.solid(); box.fill.fore_color.rgb = RGBColor(0xFB, 0xEF, 0xE3)
box.line.color.rgb = ACCENT; box.line.width = Pt(1.25); box.shadow.inherit = False
tf = box.text_frame; tf.word_wrap = True
tf.margin_left = Pt(16); tf.margin_top = Pt(16); tf.margin_right = Pt(14)
p = tf.paragraphs[0]; p.text = "\u26A0 Recent Evidence (PubMed, 2023\u20132025)"
p.runs[0].font.bold = True; p.runs[0].font.size = Pt(15); p.runs[0].font.color.rgb = NAVY
for line in [
    "2025 network meta-analysis compared aripiprazole, bromocriptine & cabergoline for hyperprolactinemia (incl. antipsychotic-induced) \u2013 PMID 39411853",
    "2023 meta-analysis on quinagolide efficacy/safety supports established alternatives \u2013 PMID 36761195",
    "2025 meta-analysis: increased risk of IMPULSE CONTROL DISORDERS with dopamine agonists in prolactinoma patients \u2013 PMID 40480033. Important counseling point for long-term cabergoline/bromocriptine use.",
]:
    pp = tf.add_paragraph(); pp.text = "\u25CF " + line
    pp.space_before = Pt(12); pp.runs[0].font.size = Pt(12.5); pp.runs[0].font.color.rgb = DARK
footer(s)

# ============================================================
# SLIDE 9 — SUMMARY
# ============================================================
s = add_slide(NAVY)
add_text(s, Inches(0.7), Inches(0.55), Inches(10), Inches(0.7), "Key Takeaways", size=30, bold=True, color=WHITE)
takeaways = [
    "Tyrosine \u2192 L-DOPA \u2192 Dopamine \u2192 Norepinephrine \u2192 Epinephrine; tyrosine hydroxylase is rate-limiting",
    "Cell-specific enzymes (dopamine \u03b2-hydroxylase, PNMT) determine which catecholamine a cell ultimately secretes",
    "The tuberoinfundibular dopamine pathway (arcuate nucleus \u2192 median eminence \u2192 portal vessels \u2192 lactotroph D2 receptors) is the dominant, tonic INHIBITOR of prolactin",
    "TRH stimulates prolactin; this is the only anterior pituitary axis with dominant inhibitory hypothalamic control",
    "Clinically: stalk lesions, D2-blocking drugs, prolactinomas, and hypothyroidism all raise prolactin through this circuit",
    "Dopamine agonists (cabergoline, bromocriptine) remain first-line prolactinoma therapy, but screen for impulse control disorders on long-term use",
]
add_bullets(s, Inches(0.7), Inches(1.55), Inches(11.9), Inches(5.3), takeaways, size=16.5,
             color=WHITE, space_after=16)

prs.save("/tmp/workspace/prolactin-dopamine-ppt/output/Prolactin_Dopamine_Synthesis_Pathways.pptx")
print("SAVED OK")
Running Command

cd /tmp/workspace/prolactin-dopamine-ppt && python build_ppt.py

Running Command

cd /tmp/workspace/prolactin-dopamine-ppt && python3 -c " from pptx import Presentation prs = Presentation('output/Prolactin_Dopamine_Synthesis_Pathways.pptx') print('Slides:', len(prs.slides)) for i, slide in enumerate(prs.slides, 1): texts = [sh.text_frame.text for sh in slide.shapes if sh.has_text_frame and sh.text_frame.text.strip()] print(i, '->', texts[0][:60] if texts else '(no text)') " && ls -la output/

The presentation is built successfully - 9 slides covering the full topic.

Prolactin Dopamine Synthesis Pathways

Presentation · PPTX

Slide breakdown:
  1. Title slide - Prolactin & Dopamine: Synthesis and Pathways
  2. Learning objectives - 6 postgraduate-level goals
  3. Catecholamine biosynthesis pathway - visual flow diagram (Tyrosine → L-DOPA → Dopamine → NE → Epinephrine) with enzymes and rate-limiting step highlighted
  4. Textbook figure - embedded synthesis/degradation diagram (Costanzo Physiology)
  5. Tuberoinfundibular dopamine (TIDA) pathway - anatomy and function, plus context on the other 3 major CNS dopamine pathways
  6. Regulation of prolactin secretion - table of stimulatory/inhibitory factors and mechanisms
  7. Clinical correlation - causes of hyperprolactinemia (stalk effect, prolactinoma, drugs, hypothyroidism, physiologic)
  8. Management - dopamine agonists, work-up sequence, plus a highlighted box with recent PubMed evidence (PMIDs 39411853, 36761195, 40480033 including the impulse control disorder warning)
  9. Key takeaways summary
All content is sourced from the textbook citations and PubMed evidence gathered earlier, with a consistent navy/teal/orange academic color scheme, header bars, and page numbers throughout. Let me know if you'd like any slide expanded, additional images (e.g. antipsychotic-induced hyperprolactinemia diagram), or speaker notes added.
This is a shared conversation. Sign in to Orris to start your own chat.