Histopathology of luteal cyst and cystic follicles

Reading File
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Reading File
Reading File
Reading File
Finding Sources
Loading Image
Reading File
Loading Image
Finding Sources
Finding Sources
Reading File
Loading Image
Loading Image
Those plate images are mostly empty (placeholder grids). I have enough content now. Let me compile the comprehensive answer.

Histopathology of Luteal Cysts and Cystic Follicles

1. Cystic Follicles (Follicular Cysts)

Definition

A follicle is classified as a follicular cyst when its diameter exceeds 3 cm. They are the most common functional ovarian cysts, rarely exceeding 8 cm. They result from failure of the dominant follicle to ovulate, with persistence and continued expansion of the follicular cavity.

Gross Appearance

  • Thin-walled, unilocular cysts
  • Filled with clear, watery (serous) fluid
  • Lined by a smooth inner surface

Microscopic / Histopathological Features

FeatureDescription
Inner liningStratified granulosa cells (membrana granulosa) - small, round cells with scant cytoplasm and dark nuclei
Outer layerTheca interna cells - plump, lipid-laden, steroidogenic cells
Theca externaFibromuscular layer, outermost
Follicular fluidEosinophilic fluid in the antrum
Basement membraneIntact between granulosa and theca layers

Atretic Follicles (advanced/involuting cystic follicles)

As atresia progresses:
  • Granulosa (follicle) cells degenerate first, becoming pyknotic and sloughing into the antrum
  • The basement membrane between granulosa and theca thickens into a hyalinized "glassy membrane" (eosinophilic, PAS-positive) - a hallmark of atresia
  • Theca interna cells persist longer with intact epithelioid character and remain temporarily steroidogenically active
  • Zona pellucida may persist as a collapsed, wrinkled eosinophilic ring inside the cavity, even after granulosa cells disappear
  • Eventually, the entire follicle is replaced by fibrous tissue (corpus fibrosum/small scar)
Key histological landmarks in atresia: retained zona pellucida + glassy membrane + degenerating granulosa + intact theca interna

2. Luteal Cyst (Corpus Luteum Cyst)

A luteal cyst forms when the corpus luteum fails to involute normally or when its central cavity (corpus hemorrhagicum) expands and persists.

Formation - Normal Corpus Luteum First

At ovulation, the follicular wall collapses and is thrown into deep folds (scalloped/crenated wall - characteristic low-power appearance). The sequence is:
  1. Corpus hemorrhagicum - initial bleeding from theca interna capillaries fills the former follicular lumen with a central clot
  2. Luteinization - granulosa and theca interna cells undergo dramatic enlargement and fill with lipid droplets; a lipochrome pigment gives them their yellow color on gross exam
  3. Connective tissue invasion from stroma into the former cavity

Gross Appearance

  • Yellow, stellate-shaped structure with a crenated wall
  • Central cavity may contain serosanguineous or hemorrhagic fluid
  • Cysts: > 3 cm diameter (some define > 2.5 cm); can reach 10 cm
  • The bright yellow color is imparted by lipochrome pigment in luteal cells
Gross section of human corpus luteum showing the bright yellow luteinized wall, corpus albicans, cortex, medulla, and mesovarium

Microscopic / Histopathological Features

H&E photomicrograph: (a) low power showing scalloped cyst wall around central cavity (Cav) with theca interna cells (arrows); (b) high power showing granulosa lutein cells (GLC) and theca lutein cells (TLC)
Two populations of luteal cells are present:
Cell TypeSizeLocationNucleusCytoplasmFunction
Granulosa lutein cells (GLC)Large (~30 µm)Central, bulk of wallLarge, spherical, paleAbundant, foamy/vacuolated (lipid)~80% of corpus luteum; secrete estrogen, progesterone, inhibin
Theca lutein cells (TLC)Smaller (~15 µm)Peripheral, in foldsSpherical, darkerLess cytoplasm, more deeply staining~20%; secrete androgens and progesterone
Ultrastructural features (steroid-secreting cell pattern):
  • Abundant smooth endoplasmic reticulum (sER)
  • Mitochondria with tubular cristae (vs. lamellar in non-steroidogenic cells)
  • Lipid droplets throughout cytoplasm
  • Golgi apparatus with membrane-bound dense bodies
Vascularity: Rich network of capillaries and lymphatics invade from theca interna - the corpus luteum is one of the most vascularized structures in the body

Involution - Corpus Luteum of Menstruation

If no fertilization occurs (~10 days post-ovulation):
  • Cells become loaded with lipid, decrease in size, undergo autolysis
  • Intercellular hyaline material accumulates among degenerating cells
  • Forms the corpus albicans - a white, hyalinized scar that sinks into the cortex over months

3. Key Differences: Cystic Follicle vs. Luteal Cyst

FeatureCystic FollicleLuteal Cyst
Wall liningGranulosa cells + theca internaLuteinized granulosa + luteinized theca cells
Cell sizeSmall granulosa cellsLarge, lipid-laden luteal cells
CytoplasmScant, darkAbundant, foamy/vacuolated
Fluid contentClear, serousSerosanguineous / hemorrhagic
Wall foldingSmooth/flatScalloped, deeply folded
Rupture riskLess commonMore common (can cause hemoperitoneum)
Glassy membranePresent in atresiaNot a feature
Gross colorGrey-white/translucentBright yellow

Sources:
  • Histology: A Text and Atlas with Correlated Cell and Molecular Biology (Pawlina/Ross), pp. 2214-2220, 2329-2331
  • Berek & Novak's Gynecology, pp. 451-452

Save this

Reading File
Running Command

ls -la /tmp/workspace/ 2>/dev/null || mkdir -p /tmp/workspace && echo "created"

Writing File

~/create_histopath_doc.py

from docx import Document
from docx.shared import Pt, RGBColor, Inches
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.oxml.ns import qn
from docx.oxml import OxmlElement
import urllib.request
import os

doc = Document()

# --- Default style ---
style = doc.styles["Normal"]
style.font.name = "Arial"
style.font.size = Pt(11)

# Set narrow margins
from docx.shared import Cm
for section in doc.sections:
    section.top_margin = Cm(2)
    section.bottom_margin = Cm(2)
    section.left_margin = Cm(2.5)
    section.right_margin = Cm(2.5)

# --- Title ---
title = doc.add_heading("Histopathology of Luteal Cysts and Cystic Follicles", level=1)
title.alignment = WD_ALIGN_PARAGRAPH.CENTER
title.runs[0].font.color.rgb = RGBColor(0x1A, 0x1A, 0x6C)

# Sources line
src_p = doc.add_paragraph()
src_p.alignment = WD_ALIGN_PARAGRAPH.CENTER
src_run = src_p.add_run("Sources: Histology: A Text and Atlas (Pawlina/Ross), pp. 2214–2220, 2329–2331 | Berek & Novak's Gynecology, pp. 451–452")
src_run.font.size = Pt(9)
src_run.font.italic = True
src_run.font.color.rgb = RGBColor(0x55, 0x55, 0x55)

doc.add_paragraph()

# ---- SECTION 1: Cystic Follicles ----
h2 = doc.add_heading("1. Cystic Follicles (Follicular Cysts)", level=2)
h2.runs[0].font.color.rgb = RGBColor(0x1A, 0x5C, 0x1A)

doc.add_heading("Definition", level=3)
doc.add_paragraph(
    "A follicle is classified as a follicular cyst when its diameter exceeds 3 cm. "
    "They are the most common functional ovarian cysts, rarely exceeding 8 cm. "
    "They result from failure of the dominant follicle to ovulate, with persistence and continued expansion of the follicular cavity."
)

doc.add_heading("Gross Appearance", level=3)
gross1 = [
    "Thin-walled, unilocular cysts",
    "Filled with clear, watery (serous) fluid",
    "Lined by a smooth inner surface",
]
for item in gross1:
    p = doc.add_paragraph(style="List Bullet")
    p.add_run(item)

doc.add_heading("Microscopic / Histopathological Features", level=3)

# Table
table1 = doc.add_table(rows=1, cols=2)
table1.style = "Table Grid"
hdr_cells = table1.rows[0].cells
hdr_cells[0].text = "Feature"
hdr_cells[1].text = "Description"
for cell in hdr_cells:
    cell.paragraphs[0].runs[0].font.bold = True
    cell.paragraphs[0].runs[0].font.color.rgb = RGBColor(0xFF, 0xFF, 0xFF)
    tc = cell._tc
    tcPr = tc.get_or_add_tcPr()
    shd = OxmlElement("w:shd")
    shd.set(qn("w:val"), "clear")
    shd.set(qn("w:color"), "auto")
    shd.set(qn("w:fill"), "1A5C1A")
    tcPr.append(shd)

rows_data1 = [
    ("Inner lining", "Stratified granulosa cells (membrana granulosa) — small, round cells with scant cytoplasm and dark nuclei"),
    ("Outer layer", "Theca interna cells — plump, lipid-laden, steroidogenic cells"),
    ("Theca externa", "Fibromuscular layer, outermost"),
    ("Follicular fluid", "Eosinophilic fluid in the antrum"),
    ("Basement membrane", "Intact between granulosa and theca layers"),
]
for feat, desc in rows_data1:
    row = table1.add_row().cells
    row[0].text = feat
    row[0].paragraphs[0].runs[0].font.bold = True
    row[1].text = desc

doc.add_paragraph()

doc.add_heading("Atretic Follicles (Advanced / Involuting Cystic Follicles)", level=3)
atretic = [
    "Granulosa (follicle) cells degenerate first — becoming pyknotic and sloughing into the antrum",
    'The basement membrane thickens into a hyalinized "glassy membrane" (eosinophilic, PAS-positive) — a hallmark of atresia',
    "Theca interna cells persist longer with intact epithelioid character and remain temporarily steroidogenically active",
    "Zona pellucida may persist as a collapsed, wrinkled eosinophilic ring inside the cavity, even after granulosa cells disappear",
    "Eventually, the entire follicle is replaced by fibrous tissue (corpus fibrosum/small scar)",
]
for item in atretic:
    p = doc.add_paragraph(style="List Bullet")
    p.add_run(item)

key = doc.add_paragraph()
key.add_run("Key histological landmarks in atresia: ").font.bold = True
key.add_run("retained zona pellucida + glassy membrane + degenerating granulosa + intact theca interna")

# ---- SECTION 2: Luteal Cyst ----
doc.add_page_break()
h2b = doc.add_heading("2. Luteal Cyst (Corpus Luteum Cyst)", level=2)
h2b.runs[0].font.color.rgb = RGBColor(0x7A, 0x40, 0x00)

doc.add_heading("Formation — Normal Corpus Luteum", level=3)
doc.add_paragraph(
    "At ovulation, the follicular wall collapses and is thrown into deep folds (scalloped/crenated wall — characteristic low-power appearance). "
    "A luteal cyst forms when the corpus luteum fails to involute normally, or when the central cavity expands and persists (> 3 cm)."
)

formation_steps = [
    "Corpus hemorrhagicum — initial bleeding from theca interna capillaries fills the former follicular lumen with a central clot",
    "Luteinization — granulosa and theca interna cells undergo dramatic enlargement and fill with lipid droplets; lipochrome pigment gives them their yellow color on gross exam",
    "Connective tissue invasion from stroma into the former cavity",
    "Rich vascular network established within the luteal wall",
]
for i, item in enumerate(formation_steps, 1):
    p = doc.add_paragraph(style="List Number")
    p.add_run(item)

doc.add_heading("Gross Appearance", level=3)
gross2 = [
    "Yellow, stellate-shaped structure with a crenated (scalloped) wall",
    "Central cavity may contain serosanguineous or hemorrhagic fluid",
    "Cysts: > 3 cm diameter; can reach up to 10 cm",
    "Bright yellow color imparted by lipochrome pigment in luteal cells",
]
for item in gross2:
    p = doc.add_paragraph(style="List Bullet")
    p.add_run(item)

# Download and insert gross image
img_url = "https://cdn.orris.care/cdss_images/a9ec5d95d9586def1f981033637b1f6240a8f74718a3e4d040e27eee4fd8382e.png"
img_path = "/tmp/workspace/corpus_luteum_gross.png"
try:
    urllib.request.urlretrieve(img_url, img_path)
    doc.add_picture(img_path, width=Inches(3.5))
    cap = doc.add_paragraph("Figure 1. Gross section of human corpus luteum showing bright yellow luteinized wall, corpus albicans, cortex, medulla, and mesovarium.")
    cap.alignment = WD_ALIGN_PARAGRAPH.CENTER
    cap.runs[0].font.size = Pt(9)
    cap.runs[0].font.italic = True
except Exception as e:
    doc.add_paragraph(f"[Image could not be embedded: {e}]")

doc.add_heading("Microscopic / Histopathological Features", level=3)

# Download and insert histology image
img_url2 = "https://cdn.orris.care/cdss_images/f77627d2371a315ce4c487ac76b2b61266e7b9baa697d84456fbd107c50310aa.png"
img_path2 = "/tmp/workspace/corpus_luteum_histo.png"
try:
    urllib.request.urlretrieve(img_url2, img_path2)
    doc.add_picture(img_path2, width=Inches(5.0))
    cap2 = doc.add_paragraph(
        "Figure 2. H&E photomicrograph of corpus luteum. (a) Low power: scalloped cyst wall around central cavity (Cav) with theca interna cells (arrows). "
        "(b) High power: granulosa lutein cells (GLC) — large, pale; theca lutein cells (TLC) — smaller, more darkly staining. (Pawlina/Ross Histology)"
    )
    cap2.alignment = WD_ALIGN_PARAGRAPH.CENTER
    cap2.runs[0].font.size = Pt(9)
    cap2.runs[0].font.italic = True
except Exception as e:
    doc.add_paragraph(f"[Image could not be embedded: {e}]")

doc.add_paragraph()

# Two-cell table
doc.add_heading("Two Populations of Luteal Cells", level=3)
table2 = doc.add_table(rows=1, cols=6)
table2.style = "Table Grid"
headers2 = ["Cell Type", "Size", "Location", "Nucleus", "Cytoplasm", "Function"]
hdr_row2 = table2.rows[0].cells
for i, h in enumerate(headers2):
    hdr_row2[i].text = h
    hdr_row2[i].paragraphs[0].runs[0].font.bold = True
    hdr_row2[i].paragraphs[0].runs[0].font.color.rgb = RGBColor(0xFF, 0xFF, 0xFF)
    tc = hdr_row2[i]._tc
    tcPr = tc.get_or_add_tcPr()
    shd = OxmlElement("w:shd")
    shd.set(qn("w:val"), "clear")
    shd.set(qn("w:color"), "auto")
    shd.set(qn("w:fill"), "7A4000")
    tcPr.append(shd)

cells_data2 = [
    ("Granulosa lutein cells (GLC)", "Large (~30 µm)", "Central, bulk of wall", "Large, spherical, pale", "Abundant, foamy/vacuolated (lipid)", "~80% of CL; secrete estrogen, progesterone, inhibin"),
    ("Theca lutein cells (TLC)", "Smaller (~15 µm)", "Peripheral, in folds", "Spherical, darker staining", "Less cytoplasm, more deeply eosinophilic", "~20%; secrete androgens and progesterone"),
]
for row_data in cells_data2:
    row = table2.add_row().cells
    for i, val in enumerate(row_data):
        row[i].text = val
        if i == 0:
            row[i].paragraphs[0].runs[0].font.bold = True

doc.add_paragraph()

doc.add_heading("Ultrastructural Features (Steroid-Secreting Cell Pattern)", level=3)
ultra = [
    "Abundant smooth endoplasmic reticulum (sER)",
    "Mitochondria with tubular cristae (vs. lamellar cristae in non-steroidogenic cells)",
    "Lipid droplets throughout cytoplasm",
    "Golgi apparatus with membrane-bound dense bodies",
    "Rich capillary network (one of the most vascularized structures in the body)",
]
for item in ultra:
    p = doc.add_paragraph(style="List Bullet")
    p.add_run(item)

doc.add_heading("Involution — Corpus Luteum of Menstruation", level=3)
doc.add_paragraph(
    "If no fertilization occurs (~10 days post-ovulation), the corpus luteum involutes:"
)
invol = [
    "Cells become loaded with lipid, decrease in size, undergo autolysis",
    "Intercellular hyaline material accumulates among degenerating cells",
    "Forms the corpus albicans — a white, hyalinized scar that sinks into the cortex over months",
]
for item in invol:
    p = doc.add_paragraph(style="List Bullet")
    p.add_run(item)

# ---- SECTION 3: Comparison Table ----
doc.add_page_break()
h2c = doc.add_heading("3. Key Differences: Cystic Follicle vs. Luteal Cyst", level=2)
h2c.runs[0].font.color.rgb = RGBColor(0x1A, 0x1A, 0x6C)

table3 = doc.add_table(rows=1, cols=3)
table3.style = "Table Grid"
headers3 = ["Feature", "Cystic Follicle", "Luteal Cyst"]
hdr_row3 = table3.rows[0].cells
for i, h in enumerate(headers3):
    hdr_row3[i].text = h
    hdr_row3[i].paragraphs[0].runs[0].font.bold = True
    hdr_row3[i].paragraphs[0].runs[0].font.color.rgb = RGBColor(0xFF, 0xFF, 0xFF)
    tc = hdr_row3[i]._tc
    tcPr = tc.get_or_add_tcPr()
    shd = OxmlElement("w:shd")
    shd.set(qn("w:val"), "clear")
    shd.set(qn("w:color"), "auto")
    shd.set(qn("w:fill"), "1A1A6C")
    tcPr.append(shd)

comparison = [
    ("Wall lining", "Granulosa cells + theca interna", "Luteinized granulosa + luteinized theca cells"),
    ("Cell size", "Small granulosa cells", "Large, lipid-laden luteal cells"),
    ("Cytoplasm", "Scant, dark", "Abundant, foamy/vacuolated"),
    ("Fluid content", "Clear, serous", "Serosanguineous / hemorrhagic"),
    ("Wall folding", "Smooth / flat", "Scalloped, deeply folded"),
    ("Rupture risk", "Less common", "More common (can cause hemoperitoneum)"),
    ("Glassy membrane", "Present in atresia", "Not a feature"),
    ("Gross color", "Grey-white / translucent", "Bright yellow (lipochrome)"),
]
for feat, col1, col2 in comparison:
    row = table3.add_row().cells
    row[0].text = feat
    row[0].paragraphs[0].runs[0].font.bold = True
    row[1].text = col1
    row[2].text = col2

doc.add_paragraph()

# Footer note
footer_p = doc.add_paragraph()
footer_p.add_run("Sources: ").font.bold = True
footer_run = footer_p.add_run(
    "Histology: A Text and Atlas with Correlated Cell and Molecular Biology (Pawlina/Ross), 9th ed., pp. 2214–2220, 2329–2331. "
    "Berek & Novak's Gynecology, 16th ed., pp. 451–452."
)
footer_run.font.size = Pt(9)
footer_run.font.italic = True

out_path = "/tmp/workspace/Histopathology_Luteal_Cyst_Cystic_Follicle.docx"
doc.save(out_path)
print(f"Saved: {out_path}")
Running Command

python3 /tmp/workspace/create_histopath_doc.py

Your document is ready with all content, tables, and both embedded images (gross corpus luteum photo + H&E histology photomicrograph):

Histopathology Luteal Cyst Cystic Follicle

Word Document · DOCX

The document includes:
  • Section 1 - Cystic Follicles: definition, gross appearance, histopathology table, and atretic follicle changes (glassy membrane, zona pellucida, etc.)
  • Section 2 - Luteal Cyst: formation sequence, gross appearance with the yellow corpus luteum photo, H&E histology image with the GLC/TLC photomicrograph, two-cell comparison table, ultrastructural features, and involution
  • Section 3 - Side-by-side comparison table of all key differences
This is a shared conversation. Sign in to Orris to start your own chat.