Give all the functions and the relations of Oestrogen Progesterone LH FSH

Reading File
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Reading File
Reading File
Finding Sources
Finding Sources
Reading File
Reading File
Reading File
Searching Images

menstrual cycle LH FSH estrogen progesterone levels graph

I have all the information needed. Here is the complete, structured answer:

Oestrogen, Progesterone, LH, and FSH - Functions & Relations


1. OESTROGEN (Estradiol / 17β-estradiol is the main form)

Source: Granulosa cells of the ovarian follicle (follicular phase); corpus luteum (luteal phase); placenta (in pregnancy); adrenal cortex (small amounts); converted from androgens by aromatase.

Functions

SystemEffect
UterusProliferates endometrial stroma and glands (proliferative phase); increases uterine size at puberty
VaginaChanges epithelium from cuboidal to stratified (more resistant to infection and trauma)
Fallopian tubesStimulates glandular proliferation, increases ciliated cells; enhances ciliary beating toward uterus to propel ovum
BreastsDevelops stromal tissue, duct system, and fat deposition; initiates mammary growth
SkeletonInhibits osteoclastic activity; stimulates osteoprotegerin (osteoclastogenesis inhibitory factor); causes the pubertal growth spurt AND then closes the epiphyseal plates, limiting final height
Protein metabolismCauses slight positive nitrogen balance (mild anabolic effect)
Fat depositionIncreases fat deposition in subcutaneous tissue, breasts, buttocks, thighs - responsible for female body contour
SkinMakes skin softer and smoother; increases skin vascularity
HairCreates female body-hair distribution pattern
Electrolytes / fluidCauses slight sodium and water retention (similar to aldosterone, but weaker)
CardiovascularIncreases HDL, decreases LDL; protective effect on vessels pre-menopause
CNSLibido effects; negative feedback on GnRH/LH/FSH at low levels
Cervical mucusProduces thin, watery, ferning mucus - favorable for sperm penetration
Feedback (KEY)At low levels → negative feedback on pituitary/hypothalamus, suppresses LH & FSH. At high pre-ovulatory levels → positive feedback → triggers the LH surge that causes ovulation

2. PROGESTERONE

Source: Corpus luteum (primarily, in luteal phase); placenta (in pregnancy); adrenal cortex (small amounts); luteinized granulosa cells.

Functions

SystemEffect
Uterus (endometrium)Converts proliferative endometrium → secretory endometrium (rich in glycogen and lipids) - prepares for implantation
MyometriumDecreases uterine contractility (prevents premature expulsion of implanted egg)
Cervical mucusMakes mucus thick, viscid, and cellular - forms a "plug" that blocks sperm and bacteria
BreastsTogether with prolactin, completes development of alveoli and lobules into milk-secreting structures (estrogen initiates duct growth; progesterone develops alveoli)
Body temperatureRaises basal body temperature by ~0.5°C after ovulation - used clinically to confirm ovulation
RespirationStimulates respiratory drive; increases minute ventilation (important in pregnancy)
Sodium excretionCompetes with aldosterone at the renal tubule → mild natriuresis (sodium-losing effect)
Smooth muscleRelaxes smooth muscle throughout body (GI tract → constipation in pregnancy; ureter dilation; gallbladder stasis)
CNS/moodHas sedative/anxiolytic properties via GABA-A receptor modulation (metabolite allopregnanolone)
Immune modulationSuppresses maternal immune response to allow tolerance of the semi-allogeneic embryo
FeedbackAmplifies estrogen's negative feedback on LH and FSH. Progesterone alone has little effect, but together with estrogen, strongly suppresses gonadotropins

3. LH (Luteinizing Hormone)

Source: Gonadotroph cells of the anterior pituitary gland. Secretion is stimulated by pulsatile GnRH from the hypothalamus.
Chemical nature: Glycoprotein (α subunit shared with FSH, TSH, hCG; β subunit is unique).

Functions

ContextEffect
Follicular phaseStimulates theca cells of ovarian follicle to produce androgens (androstenedione, testosterone) - which then diffuse to granulosa cells for aromatization to estrogen
LH surge (day ~13-14)A massive mid-cycle LH surge (triggered by high estrogen positive feedback) causes ovulation - rupture of the dominant follicle and release of the oocyte. Ovulation occurs ~9-12 hours after the LH peak
LuteinizationAfter ovulation, LH converts the ruptured follicle into the corpus luteum
Corpus luteum maintenanceLH maintains corpus luteum and stimulates it to produce progesterone and estrogen during the luteal phase
Male functionStimulates Leydig cells of testes to produce testosterone (hence LH is also called ICSH - interstitial cell stimulating hormone, in males)

4. FSH (Follicle-Stimulating Hormone)

Source: Gonadotroph cells of the anterior pituitary gland. Co-secreted with LH in response to GnRH pulses.
Chemical nature: Glycoprotein (α subunit shared with LH, TSH, hCG; β subunit unique).

Functions

ContextEffect
Follicular developmentStimulates growth and maturation of ovarian follicles each cycle
Aromatase stimulationActs on granulosa cells to upregulate aromatase enzyme - which converts androgens (from theca cells) into estrogens
Granulosa cell proliferationCauses granulosa cell mitosis and increases the number of FSH and LH receptors on granulosa cells
Antrum formationStimulates production of follicular fluid and antrum formation
Dominant follicle selectionThe follicle with the most FSH receptors becomes the dominant one; rising estrogen + inhibin suppress FSH, causing atresia of non-dominant follicles
Male functionActs on Sertoli cells of the testes to stimulate spermatogenesis and to produce inhibin and androgen-binding protein (ABP)

RELATIONS BETWEEN THE FOUR HORMONES

This is best understood in the context of the 28-day menstrual cycle:

Hypothalamic-Pituitary-Ovarian Axis

Hypothalamus (GnRH, pulsatile)
        ↓
Anterior Pituitary → LH + FSH
        ↓
  Ovarian follicle → Estrogen + (some Progesterone)
        ↓
  Feedback back to Hypothalamus + Pituitary

Phase-by-Phase Relations

Follicular Phase (Days 1-13):
  • FSH rises → stimulates follicular growth → granulosa cells produce increasing estrogen
  • Rising estrogen → negative feedback → suppresses FSH and LH (keeps only the dominant follicle growing)
  • LH (low but pulsatile) → stimulates theca cells → androgens → aromatized to estrogen by FSH-stimulated aromatase
Pre-Ovulatory (Day 12-13):
  • Estrogen peaks very high (~200-400 pg/mL) → switches to positive feedback → triggers the LH surge
  • The LH surge causes ovulation ~12-24 hours later
  • FSH also shows a smaller mid-cycle surge
Luteal Phase (Days 14-28):
  • Post-ovulation: corpus luteum (formed by LH) secretes large amounts of progesterone and moderate estrogen
  • High progesterone + estrogen → strong negative feedback → LH and FSH are suppressed
  • Inhibin (from corpus luteum) also suppresses FSH specifically
  • If no pregnancy: corpus luteum degenerates (luteolysis) → progesterone and estrogen fall → menstruation begins
  • LH and FSH then rise again, starting the next cycle
In Pregnancy:
  • hCG (from trophoblast) mimics LH and maintains the corpus luteum → progesterone stays high
  • Eventually the placenta takes over progesterone production

Negative and Positive Feedback Summary

HormoneEffect on GnRHEffect on LHEffect on FSH
Low estrogenNegative feedback ↓
High estrogen (pre-ovulatory)Positive feedback ↑↑↑ (LH surge)↑ (small)
Progesterone + estrogenNegative feedback ↓↓↓↓↓
Inhibin B (granulosa cells)Little effectLittle effect↓ specifically

Key Interplay Points

  1. FSH drives estrogen production (via aromatase in granulosa cells), and estrogen in turn suppresses FSH - a classic negative feedback loop that selects only one dominant follicle.
  2. LH drives androgen production (in theca cells), which is the raw material for estrogen synthesis - the two-cell, two-gonadotropin theory.
  3. Estrogen triggers the LH surge at mid-cycle (positive feedback), which causes ovulation - the central event of the cycle.
  4. LH maintains the corpus luteum, which produces progesterone to prepare the endometrium for implantation.
  5. Progesterone amplifies estrogen's negative feedback to keep LH and FSH suppressed throughout the luteal phase.
  6. If implantation fails, falling progesterone and estrogen release the pituitary from suppression, FSH rises, and a new cycle begins.

Sources: Guyton and Hall Textbook of Medical Physiology, 14th Ed.; Costanzo Physiology, 7th Ed.; Ganong's Review of Medical Physiology, 26th Ed.

Create it as a pdf

Reading File
Running Command

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

Running Command

mkdir -p /tmp/workspace/hormones-pdf && cat > /tmp/workspace/hormones-pdf/create_pdf.py << 'PYEOF' from reportlab.lib.pagesizes import A4 from reportlab.lib import colors from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.units import cm from reportlab.platypus import ( SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, HRFlowable, PageBreak, KeepTogether ) from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY from reportlab.platypus import ListFlowable, ListItem # ── Output path ────────────────────────────────────────────────────────────── OUTPUT = "/tmp/workspace/hormones-pdf/Reproductive_Hormones.pdf" # ── Colour palette ─────────────────────────────────────────────────────────── DARK_BLUE = colors.HexColor("#1A3557") MID_BLUE = colors.HexColor("#2E6DA4") LIGHT_BLUE = colors.HexColor("#D6E8F7") ACCENT_PINK = colors.HexColor("#C0392B") TEAL = colors.HexColor("#117A65") LIGHT_TEAL = colors.HexColor("#D5F5E3") LIGHT_PINK = colors.HexColor("#FADBD8") LIGHT_GOLD = colors.HexColor("#FEF9E7") GOLD = colors.HexColor("#D4AC0D") LIGHT_PURPLE= colors.HexColor("#EBD5F5") PURPLE = colors.HexColor("#7D3C98") WHITE = colors.white DARK_GRAY = colors.HexColor("#2C3E50") MED_GRAY = colors.HexColor("#5D6D7E") LIGHT_GRAY = colors.HexColor("#ECF0F1") doc = SimpleDocTemplate( OUTPUT, pagesize=A4, leftMargin=1.8*cm, rightMargin=1.8*cm, topMargin=2*cm, bottomMargin=2*cm, title="Reproductive Hormones – Functions & Relations", author="Orris Medical" ) styles = getSampleStyleSheet() # ── Custom styles ───────────────────────────────────────────────────────────── def S(name, **kw): return ParagraphStyle(name, **kw) cover_title = S("CoverTitle", fontSize=26, textColor=WHITE, alignment=TA_CENTER, leading=32, fontName="Helvetica-Bold") cover_sub = S("CoverSub", fontSize=13, textColor=LIGHT_BLUE, alignment=TA_CENTER, leading=18, fontName="Helvetica") h_section = S("HSection", fontSize=15, textColor=WHITE, alignment=TA_LEFT, leading=20, fontName="Helvetica-Bold", spaceBefore=6, spaceAfter=4) h2 = S("H2", fontSize=11, textColor=DARK_BLUE, fontName="Helvetica-Bold", spaceBefore=10, spaceAfter=4, leading=15) h3 = S("H3", fontSize=10, textColor=MID_BLUE, fontName="Helvetica-Bold", spaceBefore=6, spaceAfter=2, leading=13) body = S("Body", fontSize=9, textColor=DARK_GRAY, fontName="Helvetica", spaceBefore=2, spaceAfter=2, leading=13) body_j = S("BodyJ", fontSize=9, textColor=DARK_GRAY, fontName="Helvetica", spaceBefore=2, spaceAfter=2, leading=13, alignment=TA_JUSTIFY) small_italic = S("SmallItalic",fontSize=7.5,textColor=MED_GRAY, fontName="Helvetica-Oblique", spaceBefore=2, spaceAfter=4, alignment=TA_CENTER) label = S("Label", fontSize=8, textColor=WHITE, fontName="Helvetica-Bold", alignment=TA_CENTER, leading=10) cell_bold = S("CellBold", fontSize=8, textColor=DARK_BLUE, fontName="Helvetica-Bold", leading=11) cell_normal = S("CellNormal", fontSize=8, textColor=DARK_GRAY, fontName="Helvetica", leading=11) # ── Helper ─────────────────────────────────────────────────────────────────── def section_banner(text, bg=DARK_BLUE): tbl = Table([[Paragraph(text, h_section)]], colWidths=[17.4*cm]) tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,-1), bg), ("ROUNDEDCORNERS", [4,4,4,4]), ("TOPPADDING", (0,0),(-1,-1), 7), ("BOTTOMPADDING", (0,0),(-1,-1), 7), ("LEFTPADDING", (0,0),(-1,-1), 10), ])) return tbl def func_table(headers, rows, col_widths, header_bg=MID_BLUE): data = [[Paragraph(h, S("TH", fontSize=8, textColor=WHITE, fontName="Helvetica-Bold", leading=10)) for h in headers]] for row in rows: data.append([Paragraph(str(c), cell_normal) for c in row]) tbl = Table(data, colWidths=col_widths, repeatRows=1) ts = TableStyle([ ("BACKGROUND", (0,0), (-1,0), header_bg), ("ROWBACKGROUNDS",(0,1), (-1,-1), [WHITE, LIGHT_GRAY]), ("GRID", (0,0), (-1,-1), 0.4, colors.HexColor("#BDC3C7")), ("TOPPADDING", (0,0), (-1,-1), 4), ("BOTTOMPADDING", (0,0), (-1,-1), 4), ("LEFTPADDING", (0,0), (-1,-1), 5), ("RIGHTPADDING", (0,0), (-1,-1), 5), ("VALIGN", (0,0), (-1,-1), "TOP"), ]) tbl.setStyle(ts) return tbl def info_box(text, bg=LIGHT_BLUE, border=MID_BLUE): tbl = Table([[Paragraph(text, body_j)]], colWidths=[17.4*cm]) tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0),(-1,-1), bg), ("LINEAFTER", (0,0),(0,-1), 2, border), ("LEFTPADDING", (0,0),(-1,-1), 10), ("RIGHTPADDING", (0,0),(-1,-1), 8), ("TOPPADDING", (0,0),(-1,-1), 6), ("BOTTOMPADDING", (0,0),(-1,-1), 6), ("LINEBEFORE", (0,0),(0,-1), 3, border), ])) return tbl def feedback_row(items, bgs): """Horizontal coloured tiles""" cells = [Paragraph(t, S("Tile", fontSize=8, textColor=WHITE, fontName="Helvetica-Bold", alignment=TA_CENTER, leading=11)) for t in items] tbl = Table([cells], colWidths=[17.4/len(items)*cm]*len(items)) ts = [("TOPPADDING",(0,0),(-1,-1),6),("BOTTOMPADDING",(0,0),(-1,-1),6), ("LEFTPADDING",(0,0),(-1,-1),3),("RIGHTPADDING",(0,0),(-1,-1),3), ("ALIGN",(0,0),(-1,-1),"CENTER"),("VALIGN",(0,0),(-1,-1),"MIDDLE")] for i, bg in enumerate(bgs): ts.append(("BACKGROUND",(i,0),(i,0), bg)) tbl.setStyle(TableStyle(ts)) return tbl # ═══════════════════════════════════════════════════════════════════════════════ story = [] # ─── COVER PAGE ────────────────────────────────────────────────────────────── cover_bg = Table( [[Paragraph("Reproductive Hormones", cover_title)], [Spacer(1, 0.3*cm)], [Paragraph("Functions &amp; Relations", cover_sub)], [Spacer(1, 0.4*cm)], [Paragraph("Oestrogen · Progesterone · LH · FSH", S("CS2", fontSize=11, textColor=LIGHT_BLUE, alignment=TA_CENTER, fontName="Helvetica-Oblique"))], [Spacer(1, 0.6*cm)], [HRFlowable(width="80%", thickness=1, color=LIGHT_BLUE, hAlign="CENTER")], [Spacer(1, 0.4*cm)], [Paragraph("Based on Guyton &amp; Hall · Costanzo Physiology · Ganong's Physiology", small_italic)], ], colWidths=[17.4*cm] ) cover_bg.setStyle(TableStyle([ ("BACKGROUND", (0,0),(-1,-1), DARK_BLUE), ("TOPPADDING", (0,0),(-1,-1), 14), ("BOTTOMPADDING", (0,0),(-1,-1), 14), ("LEFTPADDING", (0,0),(-1,-1), 20), ("RIGHTPADDING", (0,0),(-1,-1), 20), ])) story += [Spacer(1, 2*cm), cover_bg, PageBreak()] # ─── SECTION 1: OESTROGEN ──────────────────────────────────────────────────── story.append(section_banner("1. OESTROGEN (17β-Estradiol — Principal Form)", bg=ACCENT_PINK)) story.append(Spacer(1, 0.3*cm)) story.append(Paragraph("<b>Source:</b> Granulosa cells (follicular phase) → Corpus luteum (luteal phase) → Placenta (pregnancy) → Adrenal cortex (minor). Synthesised from androgens via aromatase in granulosa cells, stimulated by FSH.", body)) story.append(Spacer(1, 0.2*cm)) story.append(Paragraph("<b>Functions</b>", h2)) est_rows = [ ["Uterus", "Proliferates endometrial stroma and glands (proliferative phase); increases uterine size at puberty 2-3×"], ["Vagina", "Changes epithelium from cuboidal → stratified; greatly increases resistance to trauma and infection"], ["Fallopian tubes","Stimulates glandular proliferation; increases ciliated cells; enhances ciliary beating toward uterus to propel the ovum"], ["Breasts", "Develops stromal tissue, extensive duct system, fat deposition; initiates mammary growth (alveolar completion needs progesterone + prolactin)"], ["Skeleton", "Inhibits osteoclasts via osteoprotegerin; causes pubertal growth spurt then closes epiphyseal plates, limiting final height"], ["Protein/Anabolic","Slight positive nitrogen balance; mild anabolic effect on body proteins"], ["Fat distribution","Deposits fat in breasts, buttocks, thighs, subcutaneous tissue — responsible for female body contour"], ["Skin & Hair", "Softer, smoother skin; increased vascularity; female body-hair distribution pattern"], ["Electrolytes", "Mild sodium and water retention (weak aldosterone-like effect)"], ["Cardiovascular", "Raises HDL, lowers LDL; vasculoprotective before menopause"], ["Cervical mucus", "Thin, watery, ferning mucus — favourable for sperm penetration (mid-cycle)"], ["Feedback (KEY)", "Low levels → negative feedback → suppresses LH & FSH. High pre-ovulatory levels → POSITIVE feedback → triggers the mid-cycle LH surge → ovulation"], ] story.append(func_table(["System / Target", "Effect"], est_rows, [4.5*cm, 12.9*cm], header_bg=ACCENT_PINK)) story.append(Spacer(1, 0.3*cm)) story.append(info_box("<b>Liver metabolism:</b> Estradiol and estrone are converted to the weaker estriol by the liver; conjugated to glucuronides/sulfates and excreted in bile and urine. Liver disease → elevated estrogen activity (hyperestrinism).", bg=LIGHT_PINK, border=ACCENT_PINK)) story.append(Spacer(1, 0.4*cm)) # ─── SECTION 2: PROGESTERONE ───────────────────────────────────────────────── story.append(section_banner("2. PROGESTERONE", bg=TEAL)) story.append(Spacer(1, 0.3*cm)) story.append(Paragraph("<b>Source:</b> Corpus luteum (dominant source, luteal phase); placenta (takes over from ~8 weeks of pregnancy); adrenal cortex (minor). Transported in blood bound to albumin and progesterone-binding globulin. Degraded → pregnanediol (excreted in urine).", body)) story.append(Spacer(1, 0.2*cm)) story.append(Paragraph("<b>Functions</b>", h2)) prog_rows = [ ["Endometrium", "Converts proliferative → secretory endometrium (rich in glycogen and lipids); prepares uterus for implantation"], ["Myometrium", "Decreases uterine contractility → prevents premature expulsion of implanted ovum / fetus"], ["Cervical mucus", "Makes mucus thick, viscid, and cellular → forms a plug blocking sperm and pathogens in luteal phase and pregnancy"], ["Breasts", "With prolactin, completes development of alveoli and lobules into milk-secreting structures"], ["Body temperature", "Raises basal body temperature ~0.5 °C after ovulation — used clinically to confirm ovulation has occurred"], ["Respiration", "Stimulates respiratory drive; increases alveolar ventilation (important in pregnancy to compensate for fetal CO₂)"], ["Renal", "Competes with aldosterone at renal tubule → mild natriuresis (sodium-losing effect)"], ["Smooth muscle", "Relaxes GI smooth muscle (→ constipation in pregnancy); ureteral dilation; gallbladder stasis"], ["CNS / Mood", "Sedative/anxiolytic via GABA-A modulation (metabolite allopregnanolone); contributes to premenstrual symptoms"], ["Immune", "Suppresses maternal immune response to allow tolerance of semi-allogeneic embryo"], ["Feedback", "Amplifies estrogen's negative feedback on LH and FSH → strongly suppresses both gonadotropins in the luteal phase"], ] story.append(func_table(["System / Target", "Effect"], prog_rows, [4.5*cm, 12.9*cm], header_bg=TEAL)) story.append(Spacer(1, 0.4*cm)) # ─── SECTION 3: LH ─────────────────────────────────────────────────────────── story.append(section_banner("3. LH — Luteinizing Hormone", bg=GOLD)) story.append(Spacer(1, 0.3*cm)) story.append(Paragraph("<b>Source:</b> Gonadotroph cells of the <b>anterior pituitary gland</b>. Stimulated by pulsatile GnRH. Glycoprotein with a shared α-subunit (with FSH, TSH, hCG) and a unique β-subunit. Secreted in pulses every 60-90 min.", body)) story.append(Spacer(1, 0.2*cm)) story.append(Paragraph("<b>Functions</b>", h2)) lh_rows = [ ["Follicular phase (female)","Stimulates theca cells → produce androgens (androstenedione, testosterone) → diffuse to granulosa cells for aromatization to estrogens. Low basal pulsatile LH supports ongoing follicular steroid synthesis."], ["Mid-cycle LH surge", "High estrogen (positive feedback) triggers a massive LH surge. This causes: (1) completion of 1st meiotic division of oocyte, (2) rupture of dominant follicle → OVULATION ~9-24 h after peak"], ["Luteinization", "LH converts the ruptured follicle into the corpus luteum (luteinization of granulosa and theca cells)"], ["Corpus luteum maintenance","Maintains CL and drives its secretion of progesterone (and estrogen) throughout the luteal phase"], ["Male — Leydig cells", "Stimulates Leydig (interstitial) cells of testes to produce testosterone (hence also called ICSH — Interstitial Cell Stimulating Hormone in males)"], ] story.append(func_table(["Context", "Effect"], lh_rows, [4.5*cm, 12.9*cm], header_bg=GOLD)) story.append(Spacer(1, 0.4*cm)) # ─── SECTION 4: FSH ────────────────────────────────────────────────────────── story.append(section_banner("4. FSH — Follicle-Stimulating Hormone", bg=PURPLE)) story.append(Spacer(1, 0.3*cm)) story.append(Paragraph("<b>Source:</b> Gonadotroph cells of the <b>anterior pituitary gland</b>. Co-secreted with LH in response to GnRH pulses. Same α-subunit as LH; unique β-subunit confers specificity.", body)) story.append(Spacer(1, 0.2*cm)) story.append(Paragraph("<b>Functions</b>", h2)) fsh_rows = [ ["Follicular development", "Stimulates growth and maturation of ovarian follicles each menstrual cycle; drives granulosa cell proliferation"], ["Aromatase stimulation", "Upregulates aromatase in granulosa cells → converts LH-driven androgens (from theca cells) into estrogens. This is the two-cell, two-gonadotropin model."], ["Receptor upregulation", "Increases FSH and LH receptors on granulosa cells, sensitising the dominant follicle to LH for the mid-cycle surge"], ["Antrum formation", "Stimulates production of follicular fluid accumulation forming the antrum (FSH is present in the antral fluid)"], ["Dominant follicle selection","Rising estrogen + inhibin-B suppress FSH → follicles with fewer FSH receptors undergo atresia; only the dominant follicle (most receptors) survives"], ["Male — Sertoli cells", "Acts on Sertoli cells → stimulates spermatogenesis; drives production of inhibin-B and androgen-binding protein (ABP)"], ] story.append(func_table(["Context", "Effect"], fsh_rows, [4.5*cm, 12.9*cm], header_bg=PURPLE)) story.append(Spacer(1, 0.4*cm)) # ─── SECTION 5: RELATIONS ──────────────────────────────────────────────────── story.append(PageBreak()) story.append(section_banner("5. RELATIONS BETWEEN THE FOUR HORMONES", bg=DARK_BLUE)) story.append(Spacer(1, 0.3*cm)) story.append(Paragraph("Hypothalamic-Pituitary-Ovarian Axis", h2)) axis_rows = [ [Paragraph("HYPOTHALAMUS", S("AX", fontSize=8, textColor=WHITE, fontName="Helvetica-Bold", alignment=TA_CENTER)), "", ""], [Paragraph("GnRH (pulsatile, every 60-90 min)", S("AX2", fontSize=8, textColor=DARK_GRAY, alignment=TA_CENTER)), "", ""], [Paragraph("↓", S("Arrow", fontSize=14, textColor=MID_BLUE, alignment=TA_CENTER, fontName="Helvetica-Bold")), "", ""], [Paragraph("ANTERIOR PITUITARY", S("AX", fontSize=8, textColor=WHITE, fontName="Helvetica-Bold", alignment=TA_CENTER)), "", ""], [Paragraph("LH + FSH", S("AX2", fontSize=8, textColor=DARK_GRAY, alignment=TA_CENTER)), "", ""], [Paragraph("↓", S("Arrow", fontSize=14, textColor=MID_BLUE, alignment=TA_CENTER, fontName="Helvetica-Bold")), "", ""], [Paragraph("OVARY", S("AX", fontSize=8, textColor=WHITE, fontName="Helvetica-Bold", alignment=TA_CENTER)), "", ""], [Paragraph("Estrogen + Progesterone + Inhibin", S("AX2", fontSize=8, textColor=DARK_GRAY, alignment=TA_CENTER)), "", ""], [Paragraph("↑ Feedback loop ↑", S("AX2", fontSize=8, textColor=ACCENT_PINK, fontName="Helvetica-Bold", alignment=TA_CENTER)), "", ""], ] ax_tbl = Table(axis_rows, colWidths=[17.4*cm, 0*cm, 0*cm]) ax_tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0),(0,0), MID_BLUE), ("BACKGROUND", (0,3),(0,3), MID_BLUE), ("BACKGROUND", (0,6),(0,6), TEAL), ("TOPPADDING", (0,0),(-1,-1), 3), ("BOTTOMPADDING",(0,0),(-1,-1), 3), ("LEFTPADDING", (0,0),(-1,-1), 10), ("RIGHTPADDING",(0,0),(-1,-1), 10), ("BACKGROUND", (0,1),(0,1), LIGHT_BLUE), ("BACKGROUND", (0,4),(0,4), LIGHT_BLUE), ("BACKGROUND", (0,7),(0,7), LIGHT_TEAL), ("BACKGROUND", (0,8),(0,8), LIGHT_PINK), ])) story.append(ax_tbl) story.append(Spacer(1, 0.4*cm)) # ── Menstrual Cycle Phase-by-Phase ─────────────────────────────────────────── story.append(Paragraph("Menstrual Cycle — Phase-by-Phase Hormone Relations", h2)) story.append(Spacer(1, 0.15*cm)) phase_rows = [ ["Phase", "Key Hormonal Events"], ["Follicular\n(Days 1-13)", "FSH rises → follicular growth → granulosa cells produce ↑Estrogen\n" "Rising estrogen → negative feedback → suppresses FSH & LH\n" "LH (low, pulsatile) → theca cells → androgens → aromatized to estrogen (FSH-driven)\n" "Only the dominant follicle (most FSH receptors) survives — others undergo atresia"], ["Pre-Ovulatory\n(Day 12-13)", "Estrogen peaks (~200-400 pg/mL) → SWITCHES to POSITIVE feedback\n" "→ Triggers the MID-CYCLE LH SURGE (and smaller FSH surge)\n" "→ Ovulation occurs 9-24 h after LH peak"], ["Luteal\n(Days 14-28)", "LH → converts ruptured follicle → Corpus Luteum\n" "Corpus luteum secretes large Progesterone + moderate Estrogen\n" "Progesterone + Estrogen → strong negative feedback → LH & FSH suppressed\n" "Inhibin-B from CL → specifically suppresses FSH\n" "If no pregnancy: CL degenerates → Progesterone & Estrogen fall → menstruation begins\n" "LH and FSH rise again → new cycle starts"], ["Pregnancy\n(if fertilised)", "hCG (from trophoblast) mimics LH → maintains CL → Progesterone stays high\n" "Placenta eventually takes over steroid production (~8-10 weeks)\n" "High Progesterone + Estrogen throughout pregnancy → LH & FSH remain suppressed"], ] phase_tbl = Table(phase_rows, colWidths=[3.5*cm, 13.9*cm], repeatRows=1) phase_tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,0), DARK_BLUE), ("TEXTCOLOR", (0,0), (-1,0), WHITE), ("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"), ("FONTSIZE", (0,0), (-1,0), 9), ("FONTNAME", (0,1), (-1,-1), "Helvetica"), ("FONTSIZE", (0,1), (-1,-1), 8), ("BACKGROUND", (0,1), (-1,1), LIGHT_BLUE), ("BACKGROUND", (0,2), (-1,2), LIGHT_PINK), ("BACKGROUND", (0,3), (-1,3), LIGHT_TEAL), ("BACKGROUND", (0,4), (-1,4), LIGHT_GOLD), ("FONTNAME", (0,1), (0,-1), "Helvetica-Bold"), ("FONTSIZE", (0,1), (0,-1), 8), ("TEXTCOLOR", (0,1), (0,-1), DARK_BLUE), ("GRID", (0,0), (-1,-1), 0.4, colors.HexColor("#BDC3C7")), ("VALIGN", (0,0), (-1,-1), "TOP"), ("TOPPADDING", (0,0), (-1,-1), 5), ("BOTTOMPADDING", (0,0), (-1,-1), 5), ("LEFTPADDING", (0,0), (-1,-1), 6), ("RIGHTPADDING", (0,0), (-1,-1), 6), ])) story.append(phase_tbl) story.append(Spacer(1, 0.4*cm)) # ── Feedback Summary Table ─────────────────────────────────────────────────── story.append(Paragraph("Feedback Summary", h2)) fb_rows = [ ["Hormone State", "Effect on GnRH", "Effect on LH", "Effect on FSH"], ["Low Estrogen", "Negative (↓)", "↓", "↓"], ["High Estrogen (pre-ovulatory peak)", "Positive (↑)", "↑↑ LH SURGE", "↑ (smaller)"], ["Progesterone + Estrogen (luteal)", "Negative (↓↓)", "↓↓", "↓↓"], ["Inhibin-B (granulosa / Sertoli)", "Little effect", "Little effect", "↓↓ specifically"], ["Inhibin-A (corpus luteum)", "Little effect", "Little effect", "↓ specifically"], ] fb_tbl = Table(fb_rows, colWidths=[5.5*cm, 3.8*cm, 4*cm, 4.1*cm], repeatRows=1) fb_tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,0), DARK_BLUE), ("TEXTCOLOR", (0,0), (-1,0), WHITE), ("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"), ("FONTSIZE", (0,0), (-1,-1), 8), ("ROWBACKGROUNDS",(0,1), (-1,-1), [WHITE, LIGHT_GRAY]), ("FONTNAME", (0,1), (0,-1), "Helvetica-Bold"), ("TEXTCOLOR", (0,1), (0,-1), DARK_BLUE), ("GRID", (0,0), (-1,-1), 0.4, colors.HexColor("#BDC3C7")), ("ALIGN", (1,0), (-1,-1), "CENTER"), ("VALIGN", (0,0), (-1,-1), "MIDDLE"), ("TOPPADDING", (0,0), (-1,-1), 5), ("BOTTOMPADDING", (0,0), (-1,-1), 5), ("LEFTPADDING", (0,0), (-1,-1), 5), ("RIGHTPADDING", (0,0), (-1,-1), 5), ])) story.append(fb_tbl) story.append(Spacer(1, 0.4*cm)) # ── Key Interplay Points ───────────────────────────────────────────────────── story.append(Paragraph("Key Interplay Points", h2)) key_points = [ "<b>Two-cell, two-gonadotropin model:</b> LH acts on theca cells → androgens. FSH acts on granulosa cells → aromatase → converts those androgens to estrogens. Neither cell can produce estrogen alone.", "<b>FSH drives estrogen, estrogen suppresses FSH:</b> A classic negative feedback loop that ensures only one dominant follicle survives per cycle.", "<b>Estrogen triggers the LH surge:</b> The same hormone that is normally inhibitory becomes stimulatory at high concentrations — the positive feedback switch. This is the central event that causes ovulation.", "<b>LH creates and maintains the corpus luteum:</b> Without LH, there is no CL, no progesterone, and no preparation for implantation.", "<b>Progesterone amplifies estrogen's brake on gonadotropins:</b> Progesterone alone has little feedback effect, but combined with estrogen it strongly suppresses both LH and FSH throughout the luteal phase.", "<b>Corpus luteum lifespan governs cycle length:</b> If fertilisation fails, the CL involutes after ~14 days, progesterone and estrogen fall, the brake is lifted, FSH rises, and the next cycle begins.", "<b>hCG rescues the corpus luteum in pregnancy:</b> hCG mimics LH's action, keeping the CL alive and progesterone high until the placenta takes over, preventing menstruation.", ] for pt in key_points: row = Table([[Paragraph("•", S("Bullet", fontSize=10, textColor=MID_BLUE, fontName="Helvetica-Bold")), Paragraph(pt, body_j)]], colWidths=[0.4*cm, 17.0*cm]) row.setStyle(TableStyle([ ("TOPPADDING", (0,0),(-1,-1), 2), ("BOTTOMPADDING", (0,0),(-1,-1), 2), ("LEFTPADDING", (0,0),(-1,-1), 0), ("VALIGN", (0,0),(-1,-1), "TOP"), ])) story.append(row) story.append(Spacer(1, 0.4*cm)) story.append(HRFlowable(width="100%", thickness=0.5, color=MED_GRAY)) story.append(Spacer(1, 0.15*cm)) story.append(Paragraph("Sources: Guyton &amp; Hall Textbook of Medical Physiology 14e · Costanzo Physiology 7e · Ganong's Review of Medical Physiology 26e", small_italic)) # ── Build ───────────────────────────────────────────────────────────────────── doc.build(story) print("PDF created:", OUTPUT) PYEOF echo "Script written"

Running Command

cd /tmp/workspace/hormones-pdf && python create_pdf.py

Your PDF is ready. Here it is:

Reproductive Hormones

PDF Document · PDF

What's inside:
  • Cover page with title and source references
  • Section 1 - Oestrogen - full functions table across 12 body systems + metabolism note
  • Section 2 - Progesterone - 11-system functions table including temperature, respiration, CNS, and immune effects
  • Section 3 - LH - 5-context functions table including the LH surge and male Leydig cell action
  • Section 4 - FSH - 6-context functions table including the two-cell model and male Sertoli cell action
  • Section 5 - Relations - HPO axis diagram, phase-by-phase menstrual cycle table (follicular → pre-ovulatory → luteal → pregnancy), feedback summary table, and 7 key interplay points
This is a shared conversation. Sign in to Orris to start your own chat.