these are screenshots from ganong . give me persentation for tomorrow about topic mechano tranduction of inner ear . take max slide . points should explanatory and concise . also can inclde flow chart .
generate again
mkdir -p /tmp/workspace/mechanotransduction-pptx && ls /tmp/workspace/
~/mechanotransduction-pptx/create_pptx.py
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.util import Inches, Pt
import copy
prs = Presentation()
prs.slide_width = Inches(13.333)
prs.slide_height = Inches(7.5)
blank = prs.slide_layouts[6]
# ─── Color palette ───────────────────────────────────────────────
C_NAVY = RGBColor(0x1A, 0x3A, 0x5C) # dark navy – titles
C_TEAL = RGBColor(0x00, 0x7B, 0x8A) # teal – accents / headers
C_CYAN = RGBColor(0x00, 0xB4, 0xD8) # light cyan – subheading bg
C_WHITE = RGBColor(0xFF, 0xFF, 0xFF)
C_LTGRAY = RGBColor(0xF4, 0xF7, 0xFA) # slide background
C_DKTEXT = RGBColor(0x1E, 0x1E, 0x2E) # body text
C_ACCENT = RGBColor(0xFF, 0x6B, 0x35) # orange – callout / key
C_GREEN = RGBColor(0x2D, 0x9C, 0x63) # green – flowchart node
C_YELLOW = RGBColor(0xFF, 0xC3, 0x00) # yellow – highlight nodes
C_PURPLE = RGBColor(0x7B, 0x2D, 0x8B) # purple – ion channels
def hex_to_rgb(h):
h = h.lstrip('#')
return RGBColor(int(h[0:2],16), int(h[2:4],16), int(h[4:6],16))
# ─── Helpers ─────────────────────────────────────────────────────
def bg_rect(slide, color=C_LTGRAY):
"""Full-slide background rectangle."""
shape = slide.shapes.add_shape(
1, # MSO_SHAPE_TYPE.RECTANGLE
0, 0, prs.slide_width, prs.slide_height
)
shape.fill.solid()
shape.fill.fore_color.rgb = color
shape.line.fill.background()
return shape
def accent_bar(slide, color=C_TEAL, height=Inches(0.08), y=Inches(1.15)):
shape = slide.shapes.add_shape(1, 0, y, prs.slide_width, height)
shape.fill.solid()
shape.fill.fore_color.rgb = color
shape.line.fill.background()
return shape
def title_box(slide, text, y=Inches(0.18), font_size=36, color=C_NAVY, bold=True):
tb = slide.shapes.add_textbox(Inches(0.5), y, Inches(12.2), Inches(0.9))
tf = tb.text_frame
tf.word_wrap = True
p = tf.paragraphs[0]
run = p.add_run()
run.text = text
run.font.size = Pt(font_size)
run.font.bold = bold
run.font.color.rgb = color
run.font.name = "Calibri"
return tb
def subtitle_pill(slide, text, x, y, w, h=Inches(0.38), bg=C_TEAL):
shape = slide.shapes.add_shape(1, x, y, w, h)
shape.fill.solid()
shape.fill.fore_color.rgb = bg
shape.line.fill.background()
tf = shape.text_frame
tf.vertical_anchor = MSO_ANCHOR.MIDDLE
p = tf.paragraphs[0]
p.alignment = PP_ALIGN.CENTER
run = p.add_run()
run.text = text
run.font.size = Pt(13)
run.font.bold = True
run.font.color.rgb = C_WHITE
run.font.name = "Calibri"
return shape
def content_box(slide, lines, x, y, w, h, font_size=13, bullet=True, title=None, title_bg=C_TEAL):
"""Renders a titled content box with bullet lines."""
if title:
# header
hdr = slide.shapes.add_shape(1, x, y, w, Inches(0.35))
hdr.fill.solid()
hdr.fill.fore_color.rgb = title_bg
hdr.line.fill.background()
tf_h = hdr.text_frame
tf_h.vertical_anchor = MSO_ANCHOR.MIDDLE
p = tf_h.paragraphs[0]
p.alignment = PP_ALIGN.LEFT
run = p.add_run()
run.text = " " + title
run.font.size = Pt(13)
run.font.bold = True
run.font.color.rgb = C_WHITE
run.font.name = "Calibri"
body_y = y + Inches(0.35)
body_h = h - Inches(0.35)
else:
body_y = y
body_h = h
# body
bg = slide.shapes.add_shape(1, x, body_y, w, body_h)
bg.fill.solid()
bg.fill.fore_color.rgb = C_WHITE
bg.line.color.rgb = RGBColor(0xCC, 0xCC, 0xCC)
tb = slide.shapes.add_textbox(x + Inches(0.1), body_y + Inches(0.08),
w - Inches(0.2), body_h - Inches(0.12))
tf = tb.text_frame
tf.word_wrap = True
first = True
for line in lines:
if first:
p = tf.paragraphs[0]
first = False
else:
p = tf.add_paragraph()
p.space_before = Pt(2)
run = p.add_run()
prefix = "• " if bullet else ""
run.text = prefix + line
run.font.size = Pt(font_size)
run.font.color.rgb = C_DKTEXT
run.font.name = "Calibri"
return tb
def flowchart_node(slide, text, x, y, w=Inches(2.2), h=Inches(0.52), bg=C_GREEN, fontsize=12, text_color=C_WHITE):
shape = slide.shapes.add_shape(1, x, y, w, h)
shape.fill.solid()
shape.fill.fore_color.rgb = bg
shape.line.color.rgb = RGBColor(0x99, 0x99, 0x99)
tf = shape.text_frame
tf.vertical_anchor = MSO_ANCHOR.MIDDLE
p = tf.paragraphs[0]
p.alignment = PP_ALIGN.CENTER
run = p.add_run()
run.text = text
run.font.size = Pt(fontsize)
run.font.bold = True
run.font.color.rgb = text_color
run.font.name = "Calibri"
return shape
def arrow_down(slide, x, y, h=Inches(0.25)):
"""Draw a simple downward arrow line."""
from pptx.util import Emu
connector = slide.shapes.add_shape(1, x, y, Inches(0.04), h)
connector.fill.solid()
connector.fill.fore_color.rgb = C_NAVY
connector.line.fill.background()
return connector
def add_source_note(slide):
tb = slide.shapes.add_textbox(Inches(0.3), Inches(7.15), Inches(12), Inches(0.28))
tf = tb.text_frame
p = tf.paragraphs[0]
run = p.add_run()
run.text = "Source: Ganong's Review of Medical Physiology – Chapter 11: Hearing & Equilibrium"
run.font.size = Pt(9)
run.font.italic = True
run.font.color.rgb = RGBColor(0x88, 0x88, 0x88)
run.font.name = "Calibri"
# ══════════════════════════════════════════════════════════════════
# SLIDE 1 – TITLE SLIDE
# ══════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
bg = slide.shapes.add_shape(1, 0, 0, prs.slide_width, prs.slide_height)
bg.fill.solid(); bg.fill.fore_color.rgb = C_NAVY; bg.line.fill.background()
# Decorative cyan bar at bottom
bar = slide.shapes.add_shape(1, 0, Inches(6.5), prs.slide_width, Inches(1.0))
bar.fill.solid(); bar.fill.fore_color.rgb = C_TEAL; bar.line.fill.background()
# Title
tb = slide.shapes.add_textbox(Inches(1), Inches(1.8), Inches(11.3), Inches(1.6))
tf = tb.text_frame; tf.word_wrap = True
p = tf.paragraphs[0]; p.alignment = PP_ALIGN.CENTER
run = p.add_run(); run.text = "Mechanotransduction of the Inner Ear"
run.font.size = Pt(44); run.font.bold = True; run.font.color.rgb = C_WHITE; run.font.name = "Calibri"
# Subtitle
tb2 = slide.shapes.add_textbox(Inches(1), Inches(3.5), Inches(11.3), Inches(0.7))
tf2 = tb2.text_frame
p2 = tf2.paragraphs[0]; p2.alignment = PP_ALIGN.CENTER
run2 = p2.add_run(); run2.text = "From Sound Waves to Nerve Impulses – A Complete Pathway"
run2.font.size = Pt(22); run2.font.color.rgb = C_CYAN; run2.font.name = "Calibri"; run2.font.italic = True
# Presenter line
tb3 = slide.shapes.add_textbox(Inches(1), Inches(4.4), Inches(11.3), Inches(0.5))
tf3 = tb3.text_frame
p3 = tf3.paragraphs[0]; p3.alignment = PP_ALIGN.CENTER
run3 = p3.add_run(); run3.text = "Based on Ganong's Review of Medical Physiology, Chapter 11"
run3.font.size = Pt(15); run3.font.color.rgb = RGBColor(0xCC, 0xCC, 0xCC); run3.font.name = "Calibri"
# Topics listed at bottom bar
tb4 = slide.shapes.add_textbox(Inches(0.5), Inches(6.55), Inches(12.3), Inches(0.82))
tf4 = tb4.text_frame
p4 = tf4.paragraphs[0]; p4.alignment = PP_ALIGN.CENTER
run4 = p4.add_run()
run4.text = "Inner Ear Anatomy • Hair Cell Structure • Tip Links & Ion Channels • Electrical Responses • Sound Transmission • Traveling Waves • K⁺ Recycling"
run4.font.size = Pt(12); run4.font.color.rgb = C_WHITE; run4.font.name = "Calibri"
# ══════════════════════════════════════════════════════════════════
# SLIDE 2 – OVERVIEW: ANATOMY OF THE EAR
# ══════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
bg_rect(slide)
accent_bar(slide)
title_box(slide, "Anatomy of the Human Ear – Overview")
add_source_note(slide)
# Three column headers
subtitle_pill(slide, "EXTERNAL EAR", Inches(0.4), Inches(1.35), Inches(3.6))
subtitle_pill(slide, "MIDDLE EAR", Inches(4.3), Inches(1.35), Inches(3.6))
subtitle_pill(slide, "INNER EAR (Labyrinth)", Inches(8.2), Inches(1.35), Inches(4.7))
content_box(slide, [
"Auricle (pinna) – captures sound waves",
"External auditory meatus – ear canal",
"Tympanic membrane (eardrum) – vibrates in response to sound",
"Marks the start of the middle ear"
], Inches(0.4), Inches(1.73), Inches(3.6), Inches(2.5))
content_box(slide, [
"Air-filled cavity in temporal bone",
"Eustachian tube – equalises pressure",
"3 Ossicles: Malleus, Incus, Stapes",
"Oval window – connects to inner ear",
"Tensor tympani & stapedius muscles (tympanic reflex)",
"Amplifies sound ~1.3× via lever action"
], Inches(4.3), Inches(1.73), Inches(3.6), Inches(2.5))
content_box(slide, [
"Bony labyrinth – channels in temporal bone, filled with perilymph",
"Membranous labyrinth – inside bony channels, filled with endolymph",
"3 components: Cochlea, Semicircular canals, Otolith organs",
"Cochlea – 35 mm coiled tube, 2¾ turns",
"3 chambers: Scala vestibuli, Scala media, Scala tympani"
], Inches(8.2), Inches(1.73), Inches(4.7), Inches(2.5))
# Key callout box
content_box(slide, [
"Perilymph: low K⁺ (like plasma) | Endolymph: HIGH K⁺ (~150 mEq/L), low Na⁺ – formed by stria vascularis",
"Scala media is electrically +85 mV relative to scala vestibuli/tympani (endocochlear potential)",
"Helicotrema – opening connecting scala vestibuli & tympani at cochlear apex"
], Inches(0.4), Inches(4.3), Inches(12.5), Inches(1.5), title="KEY FACTS", title_bg=C_ACCENT, font_size=13)
# ══════════════════════════════════════════════════════════════════
# SLIDE 3 – COCHLEA & ORGAN OF CORTI
# ══════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
bg_rect(slide)
accent_bar(slide)
title_box(slide, "The Cochlea & Organ of Corti")
add_source_note(slide)
content_box(slide, [
"Cochlea is a 35-mm coiled tube making 2¾ turns",
"Basilar membrane + Reissner membrane divide it into 3 scalae",
"Scala vestibuli (top) and Scala tympani (bottom) contain PERILYMPH",
"Scala media (middle) contains ENDOLYMPH – the K⁺-rich fluid",
"Scala vestibuli and tympani communicate at apex via helicotrema",
"Scala vestibuli ends at the OVAL WINDOW (stapes footplate)",
"Scala tympani ends at the ROUND WINDOW (secondary tympanic membrane)"
], Inches(0.4), Inches(1.35), Inches(6.0), Inches(3.2), title="COCHLEAR CHAMBERS", title_bg=C_NAVY)
content_box(slide, [
"Spiral-shaped organ on basilar membrane – base to apex",
"Contains highly specialized auditory hair cells",
"3 rows OUTER hair cells lateral to tunnel of Corti",
"1 row INNER hair cells medial to tunnel",
"20,000 outer hair cells + 3,500 inner hair cells per cochlea",
"Reticular lamina supports hair cell processes",
"Tectorial membrane – thin elastic membrane over OHCs",
"Spiral ganglion – afferent neuron cell bodies in modiolus"
], Inches(6.6), Inches(1.35), Inches(6.3), Inches(3.2), title="ORGAN OF CORTI", title_bg=C_TEAL)
content_box(slide, [
"90–95% of auditory nerve fibers → INNER hair cells (primary sensory receptors)",
"5–10% → outer hair cells | Efferents from olivocochlear bundle terminate mainly on OHCs",
"Gap junctions between hair cells & phalangeal cells prevent endolymph from reaching basilar membrane",
"Bases of hair cells bathed in PERILYMPH; processes project into ENDOLYMPH"
], Inches(0.4), Inches(4.6), Inches(12.5), Inches(1.55), title="INNERVATION PATTERN", title_bg=C_PURPLE, font_size=12.5)
# ══════════════════════════════════════════════════════════════════
# SLIDE 4 – HAIR CELL STRUCTURE
# ══════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
bg_rect(slide)
accent_bar(slide)
title_box(slide, "Hair Cell Structure – The Sensory Mechanoreceptor")
add_source_note(slide)
content_box(slide, [
"6 patches of hair cells in membranous labyrinth",
"Each hair cell has an APICAL hair bundle projecting upward",
"Basal end is in close contact with afferent neurons",
"Located within an epithelium of supporting cells (SC)",
"Surrounded by otolithic membrane (OM) in otolith organs",
"Bases bathed in PERILYMPH; apical bundles in ENDOLYMPH"
], Inches(0.4), Inches(1.35), Inches(4.2), Inches(2.9), title="HAIR CELL BASICS", title_bg=C_NAVY)
content_box(slide, [
"ONE kinocilium – true non-motile cilium",
"9 pairs of microtubules around circumference + central pair",
"Lost from cochlear hair cells in adults",
"Present in vestibular hair cells throughout life"
], Inches(4.8), Inches(1.35), Inches(3.8), Inches(1.6), title="KINOCILIUM (K)", title_bg=C_TEAL)
content_box(slide, [
"30–150 stereocilia per hair cell",
"Actin filament cores coated with isoforms of MYOSIN",
"Graded height – increase progressively toward kinocilium axis",
"All same height perpendicular to kinocilium axis",
"TIP LINKS connect tip of each stereocilium to side of taller neighbour",
"Mechanically sensitive cation channels located at tip link junction"
], Inches(4.8), Inches(3.05), Inches(3.8), Inches(2.5), title="STEREOCILIA (S)", title_bg=C_PURPLE)
content_box(slide, [
"Displacement TOWARD kinocilium → DEPOLARIZATION",
"Displacement AWAY → HYPERPOLARIZATION",
"Perpendicular displacement → NO change",
"Direction-sensitive transduction mechanism",
"Magnitude of deflection ∝ receptor potential"
], Inches(8.8), Inches(1.35), Inches(4.1), Inches(4.2), title="DIRECTIONAL SENSITIVITY", title_bg=C_ACCENT)
# ══════════════════════════════════════════════════════════════════
# SLIDE 5 – IONIC ENVIRONMENT (ENDO vs. PERILYMPH)
# ══════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
bg_rect(slide)
accent_bar(slide)
title_box(slide, "Fluid Compartments – Ionic Composition")
add_source_note(slide)
# Table
table_data = [
("Parameter", "Perilymph\n(Scala Vestibuli/Tympani)", "Endolymph\n(Scala Media)"),
("Na⁺ (mEq/L)", "~150", "~1"),
("K⁺ (mEq/L)", "3–5", "~150"),
("Cl⁻ (mEq/L)", "~125", "~130"),
("Source", "Mainly from PLASMA", "Stria vascularis (active secretion)"),
("Electrical potential", "0 mV (reference)", "+85 mV (endocochlear potential)"),
("Resembles", "Extracellular fluid / CSF", "Intracellular fluid"),
]
col_widths = [Inches(2.4), Inches(4.8), Inches(4.8)]
row_height = Inches(0.52)
tbl_x = Inches(0.5)
tbl_y = Inches(1.4)
header_colors = [C_NAVY, C_TEAL, C_PURPLE]
row_color_odd = RGBColor(0xEA, 0xF4, 0xFB)
row_color_even = C_WHITE
for r, row in enumerate(table_data):
x_pos = tbl_x
bg_c = (C_NAVY if r == 0 else row_color_odd if r % 2 == 1 else row_color_even)
for c, cell in enumerate(row):
shape = slide.shapes.add_shape(1, x_pos, tbl_y + r * row_height,
col_widths[c], row_height)
if r == 0:
shape.fill.solid(); shape.fill.fore_color.rgb = header_colors[c]
else:
shape.fill.solid(); shape.fill.fore_color.rgb = bg_c
shape.line.color.rgb = RGBColor(0xCC, 0xCC, 0xCC)
tf = shape.text_frame; tf.vertical_anchor = MSO_ANCHOR.MIDDLE
p = tf.paragraphs[0]; p.alignment = PP_ALIGN.CENTER
run = p.add_run(); run.text = cell
run.font.size = Pt(12.5)
run.font.bold = (r == 0)
run.font.color.rgb = (C_WHITE if r == 0 else C_DKTEXT)
run.font.name = "Calibri"
x_pos += col_widths[c]
# Key points below
content_box(slide, [
"Endocochlear potential (+85 mV) drives K⁺ into hair cells during mechanotransduction",
"Resting membrane potential of hair cell: ~−60 mV → combined driving force for K⁺ entry is ~145 mV",
"Stria vascularis contains high concentration of Na⁺/K⁺-ATPase – unique electrogenic K⁺ pump",
"Hair cell processes project INTO endolymph; bases bathed in perilymph – ESSENTIAL for normal receptor potentials"
], Inches(0.4), Inches(5.25), Inches(12.5), Inches(1.55), title="CLINICAL SIGNIFICANCE", title_bg=C_ACCENT, font_size=12.5)
# ══════════════════════════════════════════════════════════════════
# SLIDE 6 – TIP LINKS & ION CHANNELS (MECHANOTRANSDUCTION CORE)
# ══════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
bg_rect(slide)
accent_bar(slide)
title_box(slide, "Tip Links & Mechanically-Gated Ion Channels")
add_source_note(slide)
content_box(slide, [
"Very fine protein filaments called TIP LINKS",
"Connect the TIP of each stereocilium to the SIDE of its taller neighbour",
"Act as molecular 'springs' that sense deflection",
"Cadherin-23 (upper tip link) and protocadherin-15 (lower tip link)",
"Mechanically sensitive CATION CHANNELS at junction of taller process",
"Channels are transient receptor potential (MET channels)"
], Inches(0.4), Inches(1.35), Inches(6.0), Inches(2.8), title="TIP LINKS – STRUCTURE", title_bg=C_NAVY)
content_box(slide, [
"Deflect TOWARD kinocilium → tip link STRETCHES → channel OPEN TIME ↑",
"K⁺ (most abundant cation in endolymph) and Ca²⁺ enter → DEPOLARIZATION",
"Myosin-based motor in taller stereocilium moves channel toward BASE",
"This releases tension in tip link → channel CLOSES → resting state restored",
"Deflect AWAY from kinocilium → tip link goes SLACK → channel CLOSED",
"Ca²⁺ entry also provides negative feedback – helps close channels (adaptation)"
], Inches(6.6), Inches(1.35), Inches(6.3), Inches(2.8), title="CHANNEL GATING MECHANISM", title_bg=C_TEAL)
content_box(slide, [
"Depolarization of hair cell → release of GLUTAMATE (neurotransmitter) at basal synapse",
"Glutamate → depolarization of adjacent AFFERENT neurons → action potentials in auditory nerve",
"Resting membrane potential: −60 mV | Depolarization peak: ~−50 mV | Hyperpolarization with backward deflection",
"Receptor potential is graded – proportional to DIRECTION and DISTANCE of stereocilia movement"
], Inches(0.4), Inches(4.2), Inches(12.5), Inches(1.6), title="DOWNSTREAM SIGNALLING", title_bg=C_PURPLE, font_size=12.5)
# Channel states summary
content_box(slide, [
"Deflection toward kinocilium: Channel OPEN → K⁺/Ca²⁺ influx → Depolarization → Glutamate release",
"Deflection away: Channel CLOSED → Hyperpolarization → ↓ neurotransmitter release",
"Perpendicular deflection: No change in membrane potential"
], Inches(0.4), Inches(5.9), Inches(12.5), Inches(1.3), title="SUMMARY OF STATES", title_bg=C_ACCENT, font_size=13)
# ══════════════════════════════════════════════════════════════════
# SLIDE 7 – FLOWCHART: COMPLETE MECHANOTRANSDUCTION PATHWAY
# ══════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
bg_rect(slide)
accent_bar(slide)
title_box(slide, "Mechanotransduction: Step-by-Step Flowchart")
add_source_note(slide)
# Draw flowchart nodes vertically on left half
nodes = [
("Sound Wave Strikes Tympanic Membrane", C_NAVY, C_WHITE),
("Ossicles Vibrate (Malleus → Incus → Stapes)", C_NAVY, C_WHITE),
("Stapes Footplate Moves Oval Window", C_TEAL, C_WHITE),
("Traveling Wave in Perilymph (Scala Vestibuli)", C_TEAL, C_WHITE),
("Basilar Membrane Deflects at Frequency-Specific Point", C_PURPLE, C_WHITE),
("Shearing Motion: Tectorial Membrane ↔ Reticular Lamina", C_PURPLE, C_WHITE),
("Stereocilia Deflect Toward Kinocilium", RGBColor(0xD6, 0x37, 0x1E), C_WHITE),
("Tip Links Stretch → MET Channels Open", RGBColor(0xD6, 0x37, 0x1E), C_WHITE),
("K⁺ + Ca²⁺ Influx → Hair Cell Depolarization", C_GREEN, C_WHITE),
("Glutamate Release at Basal Synapse", C_GREEN, C_WHITE),
("Action Potential in Auditory (VIII) Nerve", C_ACCENT, C_WHITE),
]
node_w = Inches(5.0)
node_h = Inches(0.44)
node_x = Inches(0.4)
start_y = Inches(1.4)
gap = Inches(0.09)
for i, (txt, bg, fg) in enumerate(nodes):
ny = start_y + i * (node_h + gap)
shape = slide.shapes.add_shape(1, node_x, ny, node_w, node_h)
shape.fill.solid(); shape.fill.fore_color.rgb = bg
shape.line.color.rgb = RGBColor(0x88, 0x88, 0x88)
tf = shape.text_frame; tf.vertical_anchor = MSO_ANCHOR.MIDDLE
p = tf.paragraphs[0]; p.alignment = PP_ALIGN.LEFT
run = p.add_run(); run.text = f" {i+1}. {txt}"
run.font.size = Pt(11.5); run.font.bold = True
run.font.color.rgb = fg; run.font.name = "Calibri"
# Arrow
if i < len(nodes) - 1:
arr_y = ny + node_h
arr = slide.shapes.add_shape(1, node_x + node_w/2 - Inches(0.03), arr_y,
Inches(0.06), gap)
arr.fill.solid(); arr.fill.fore_color.rgb = C_NAVY; arr.line.fill.background()
# Right side – key notes
content_box(slide, [
"Tympanic reflex – tensor tympani & stapedius contract on loud sounds to protect cochlea",
"Lever system of ossicles increases force 1.3× and area difference (tympanic/stapes) increases pressure ~22×",
"High-pitched sounds → traveling wave peaks near base of cochlea",
"Low-pitched sounds → traveling wave peaks near apex",
"Outer hair cells (OHC): change length with depolarization (prestin motor protein) → amplify basilar membrane motion",
"Inner hair cells (IHC): primary sensory transducers – generate action potentials in auditory nerve",
"Olivocochlear bundle (efferent) → modulates OHC activity from brainstem"
], Inches(5.7), Inches(1.35), Inches(7.2), Inches(5.9), title="PARALLEL PROCESSES & KEY NOTES", title_bg=C_TEAL, font_size=12)
# ══════════════════════════════════════════════════════════════════
# SLIDE 8 – K⁺ RECYCLING PATHWAY
# ══════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
bg_rect(slide)
accent_bar(slide)
title_box(slide, "K⁺ Recycling – The Endocochlear Cycle")
add_source_note(slide)
content_box(slide, [
"K⁺ that enters hair cells via MET channels must be RECYCLED back to endolymph",
"If K⁺ is not recycled, endolymphatic K⁺ concentration would rapidly fall, abolishing transduction",
"Recycling maintains the high K⁺ endolymph essential for mechanotransduction"
], Inches(0.4), Inches(1.35), Inches(12.5), Inches(1.1), title="WHY RECYCLING MATTERS", title_bg=C_NAVY, font_size=13)
# Recycling pathway flowchart (horizontal)
steps = [
("K⁺ enters\nhair cell via\nMET channel", C_PURPLE),
("K⁺ exits hair cell\ninto supporting\ncells (perilymph side)", C_TEAL),
("Passes through\nGAP JUNCTIONS\nto adjacent cells", C_TEAL),
("Reaches\nSPIRAL LIGAMENT\n(lateral wall)", C_GREEN),
("Taken up by\nSTRIA VASCULARIS\n(electrogenic pump)", C_ACCENT),
("Secreted back\ninto ENDOLYMPH\n(Scala Media)", C_NAVY),
]
node_w2 = Inches(1.9)
node_h2 = Inches(1.1)
arr_w = Inches(0.28)
start_x2 = Inches(0.4)
nodes_y = Inches(2.5)
for i, (txt, bg) in enumerate(steps):
nx = start_x2 + i * (node_w2 + arr_w)
shape = slide.shapes.add_shape(1, nx, nodes_y, node_w2, node_h2)
shape.fill.solid(); shape.fill.fore_color.rgb = bg
shape.line.color.rgb = RGBColor(0x88, 0x88, 0x88)
tf = shape.text_frame; tf.vertical_anchor = MSO_ANCHOR.MIDDLE
p = tf.paragraphs[0]; p.alignment = PP_ALIGN.CENTER
run = p.add_run(); run.text = txt
run.font.size = Pt(11); run.font.bold = True
run.font.color.rgb = C_WHITE; run.font.name = "Calibri"
# Arrow between nodes
if i < len(steps) - 1:
ax = nx + node_w2
arr_shape = slide.shapes.add_shape(1, ax, nodes_y + node_h2/2 - Inches(0.06),
arr_w, Inches(0.12))
arr_shape.fill.solid(); arr_shape.fill.fore_color.rgb = C_NAVY; arr_shape.line.fill.background()
# "Cycle" label
tb_cycle = slide.shapes.add_textbox(Inches(4.5), Inches(3.75), Inches(4.5), Inches(0.45))
tf_c = tb_cycle.text_frame
p_c = tf_c.paragraphs[0]; p_c.alignment = PP_ALIGN.CENTER
run_c = p_c.add_run(); run_c.text = "↺ CONTINUOUS CYCLE – essential for hearing"
run_c.font.size = Pt(14); run_c.font.bold = True; run_c.font.color.rgb = C_ACCENT; run_c.font.name = "Calibri"
content_box(slide, [
"Stria vascularis – unique Na⁺/K⁺-ATPase-rich secretory epithelium lining lateral wall of scala media",
"Electrogenic K⁺ pump maintains +85 mV endocochlear potential – the 'battery' driving mechanotransduction",
"Gap junctions in cochlea (connexin 26 & 30) are essential – mutations cause commonest form of hereditary deafness (DFNB1)",
"Disruption of K⁺ recycling (aminoglycosides, loop diuretics, Meniere's disease) → sensorineural hearing loss"
], Inches(0.4), Inches(4.35), Inches(12.5), Inches(2.3), title="CLINICAL CORRELATES", title_bg=C_PURPLE, font_size=12.5)
# ══════════════════════════════════════════════════════════════════
# SLIDE 9 – SOUND TRANSMISSION & TRAVELING WAVES
# ══════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
bg_rect(slide)
accent_bar(slide)
title_box(slide, "Sound Transmission & Traveling Waves")
add_source_note(slide)
content_box(slide, [
"Sound = longitudinal vibrations of molecules → change in pressure on tympanic membrane",
"Tympanic membrane vibrations → manubrium of malleus → incus → head of stapes",
"Stapes footplate swings at oval window → creates pressure waves in perilymph",
"Lever action of ossicles multiplies force ×1.3",
"Area of tympanic membrane >> stapes footplate → pressure amplified ~22×",
"Loud sounds: tympanic reflex (tensor tympani + stapedius contract) → attenuates transmission"
], Inches(0.4), Inches(1.35), Inches(6.0), Inches(3.0), title="SOUND TRANSMISSION", title_bg=C_NAVY)
content_box(slide, [
"Stapes movement → series of TRAVELING WAVES in scala vestibuli perilymph",
"Wave height increases to a maximum then drops off rapidly",
"Distance from stapes to peak height varies with FREQUENCY",
"HIGH-frequency sounds: peak near BASE of cochlea",
"LOW-frequency sounds: peak near APEX of cochlea",
"This tonotopic organization = basis of PITCH discrimination",
"Reissner membrane is flexible; basilar membrane is under no tension (easily depressed)"
], Inches(6.6), Inches(1.35), Inches(6.3), Inches(3.0), title="TRAVELING WAVES (von Bekesy)", title_bg=C_TEAL)
content_box(slide, [
"Sound intensity: 0–140 dB range in humans | 0 dB = 0.000204 dyne/cm² (threshold pressure)",
"Pitch determined primarily by FREQUENCY; Loudness by AMPLITUDE; Timbre by harmonic content (overtones)",
"Most sensitive range: 1000–3000 Hz | Low < 500 Hz perceived as lower; High > 4000 Hz perceived as higher",
"Masking: one sound reduces ability to hear others – due to relative refractoriness of auditory receptors"
], Inches(0.4), Inches(4.45), Inches(12.5), Inches(1.8), title="PROPERTIES OF SOUND", title_bg=C_ACCENT, font_size=12.5)
# ══════════════════════════════════════════════════════════════════
# SLIDE 10 – OUTER HAIR CELLS & ACTIVE AMPLIFICATION
# ══════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
bg_rect(slide)
accent_bar(slide)
title_box(slide, "Inner vs. Outer Hair Cells – Role in Hearing")
add_source_note(slide)
content_box(slide, [
"PRIMARY sensory receptors",
"Generate action potentials via afferent auditory neurons",
"Stimulated by FLUID MOVEMENT between tectorial membrane and reticular lamina",
"Hairs NOT attached to tectorial membrane – bent by fluid motion",
"90–95% of auditory nerve fibers terminate here",
"Respond similarly to OHCs electrically",
"Loss → permanent sensorineural deafness"
], Inches(0.4), Inches(1.35), Inches(5.8), Inches(3.0), title="INNER HAIR CELLS (IHC) – Sensory", title_bg=C_NAVY)
content_box(slide, [
"AMPLIFIER cells – not primary sensory receptors",
"Respond to sounds like IHCs but have additional motor function",
"DEPOLARIZATION → cells SHORTEN",
"HYPERPOLARIZATION → cells LENGTHEN",
"Occurs over very flexible part of basilar membrane",
"Dramatically increases AMPLITUDE and CLARITY of sounds",
"Motor protein: PRESTIN (SLC26A5) – unique to OHCs",
"Hairs EMBEDDED in tectorial membrane"
], Inches(6.6), Inches(1.35), Inches(6.3), Inches(3.0), title="OUTER HAIR CELLS (OHC) – Amplifier", title_bg=C_TEAL)
content_box(slide, [
"OHC electromotility amplifies basilar membrane vibrations by up to 100× – essential for sensitivity and frequency selectivity",
"Olivocochlear bundle (efferent) – arises from both ipsi- and contralateral superior olivary complexes → modulates OHC gain",
"Otoacoustic emissions (OAEs) – sounds produced by OHC electromotility – used clinically to screen neonatal hearing",
"Presbycusis (age-related hearing loss) primarily reflects OHC degeneration at base of cochlea (high-frequency loss first)"
], Inches(0.4), Inches(4.45), Inches(12.5), Inches(1.9), title="CLINICAL SIGNIFICANCE OF OHCs", title_bg=C_ACCENT, font_size=12.5)
# ══════════════════════════════════════════════════════════════════
# SLIDE 11 – VESTIBULAR MECHANOTRANSDUCTION (Semicircular Canals)
# ══════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
bg_rect(slide)
accent_bar(slide)
title_box(slide, "Vestibular Mechanotransduction – Semicircular Canals & Otolith Organs")
add_source_note(slide)
content_box(slide, [
"3 semicircular canals perpendicular to each other → oriented in 3 planes of space",
"Each contains CRISTA AMPULLARIS (sensory organ) in expanded ampulla",
"Crista: hair cells + supporting cells surmounted by gelatinous CUPULA",
"Cupula closes off the ampulla completely",
"Hair cell processes embedded in cupula; bases contact vestibular nerve fibers",
"Angular HEAD ROTATION → endolymph lags behind → deflects cupula",
"Deflects hair bundles → receptor potential → firing rate change in vestibular nerve"
], Inches(0.4), Inches(1.35), Inches(6.0), Inches(3.2), title="SEMICIRCULAR CANALS – Angular Acceleration", title_bg=C_NAVY)
content_box(slide, [
"SACCULE and UTRICLE near center of membranous labyrinth",
"MACULA – sensory epithelium of each otolith organ",
"Saccule macula: vertically oriented (responds to vertical acceleration)",
"Utricle macula: horizontally oriented when head is upright",
"Otoliths (otoconia): calcium carbonate crystals, 3–19 μm",
"Embedded in otolithic membrane (gelatinous layer)",
"Gravity/linear acceleration → otoliths shift → bend hair bundles",
"Utricle: horizontal linear acceleration | Saccule: vertical acceleration"
], Inches(6.6), Inches(1.35), Inches(6.3), Inches(3.2), title="OTOLITH ORGANS – Linear Acceleration", title_bg=C_TEAL)
content_box(slide, [
"Same mechanotransduction principle: stereocilia deflection → tip link stretch → MET channel opening → K⁺/Ca²⁺ influx → depolarization → glutamate release",
"Vestibular info carried by VESTIBULAR DIVISION of CN VIII → brainstem → cerebellum → spinal cord → eye muscles",
"Benign Paroxysmal Positional Vertigo (BPPV): dislodged otoconia enter semicircular canal → inappropriate angular acceleration signal"
], Inches(0.4), Inches(4.65), Inches(12.5), Inches(1.65), title="SHARED TRANSDUCTION MECHANISM + CLINICAL LINK", title_bg=C_PURPLE, font_size=12.5)
# ══════════════════════════════════════════════════════════════════
# SLIDE 12 – COMPLETE MECHANOTRANSDUCTION SUMMARY FLOWCHART
# ══════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
bg_rect(slide)
accent_bar(slide)
title_box(slide, "Complete Mechanotransduction Summary – Molecular Level")
add_source_note(slide)
# Left column – Mechanical events
left_nodes = [
("MECHANICAL INPUT", C_NAVY, "Sound / Head Movement"),
("Basilar / Cupula / Otolithic\nMembrane Deformation", C_TEAL, ""),
("Stereocilia Bundle\nDeflection", C_PURPLE, ""),
("TIP LINK Tension Change", RGBColor(0xD6, 0x37, 0x1E), ""),
]
# Right column – Electrical/chemical events
right_nodes = [
("MET Channel Opens\n(K⁺ + Ca²⁺ influx)", C_TEAL, "Mechanosensitive cation channel"),
("Hair Cell\nDEPOLARIZATION", C_GREEN, "~−60 mV → ~−50 mV"),
("Glutamate\nRelease (synapse)", C_ACCENT, "Basal pole"),
("Auditory / Vestibular\nNerve Firing", C_NAVY, "CN VIII"),
]
lx = Inches(0.5)
rx = Inches(7.0)
nw = Inches(5.5)
nh = Inches(0.8)
sy = Inches(1.5)
gap2 = Inches(0.15)
for i, (txt, bg, note) in enumerate(left_nodes):
ny = sy + i * (nh + gap2)
shape = slide.shapes.add_shape(1, lx, ny, nw, nh)
shape.fill.solid(); shape.fill.fore_color.rgb = bg
shape.line.color.rgb = RGBColor(0x88, 0x88, 0x88)
tf = shape.text_frame; tf.vertical_anchor = MSO_ANCHOR.MIDDLE
p = tf.paragraphs[0]; p.alignment = PP_ALIGN.CENTER
run = p.add_run(); run.text = txt
run.font.size = Pt(13); run.font.bold = True; run.font.color.rgb = C_WHITE; run.font.name = "Calibri"
if note:
p2 = tf.add_paragraph(); p2.alignment = PP_ALIGN.CENTER
r2 = p2.add_run(); r2.text = note
r2.font.size = Pt(10); r2.font.color.rgb = C_CYAN; r2.font.name = "Calibri"
if i < len(left_nodes) - 1:
ary = ny + nh
a = slide.shapes.add_shape(1, lx + nw/2 - Inches(0.04), ary, Inches(0.08), gap2)
a.fill.solid(); a.fill.fore_color.rgb = C_NAVY; a.line.fill.background()
for i, (txt, bg, note) in enumerate(right_nodes):
ny = sy + i * (nh + gap2)
shape = slide.shapes.add_shape(1, rx, ny, nw, nh)
shape.fill.solid(); shape.fill.fore_color.rgb = bg
shape.line.color.rgb = RGBColor(0x88, 0x88, 0x88)
tf = shape.text_frame; tf.vertical_anchor = MSO_ANCHOR.MIDDLE
p = tf.paragraphs[0]; p.alignment = PP_ALIGN.CENTER
run = p.add_run(); run.text = txt
run.font.size = Pt(13); run.font.bold = True; run.font.color.rgb = C_WHITE; run.font.name = "Calibri"
if note:
p2 = tf.add_paragraph(); p2.alignment = PP_ALIGN.CENTER
r2 = p2.add_run(); r2.text = note
r2.font.size = Pt(10); r2.font.color.rgb = C_YELLOW; r2.font.name = "Calibri"
if i < len(right_nodes) - 1:
ary = ny + nh
a = slide.shapes.add_shape(1, rx + nw/2 - Inches(0.04), ary, Inches(0.08), gap2)
a.fill.solid(); a.fill.fore_color.rgb = C_NAVY; a.line.fill.background()
# Center linking arrow
mid_y = sy + 1.5 * (nh + gap2) + nh / 2
link_x = lx + nw + Inches(0.1)
link_w = rx - link_x - Inches(0.1)
link = slide.shapes.add_shape(1, link_x, mid_y - Inches(0.08), link_w, Inches(0.16))
link.fill.solid(); link.fill.fore_color.rgb = C_ACCENT; link.line.fill.background()
lbl = slide.shapes.add_textbox(link_x, mid_y + Inches(0.1), link_w, Inches(0.4))
tf_l = lbl.text_frame; p_l = tf_l.paragraphs[0]; p_l.alignment = PP_ALIGN.CENTER
run_l = p_l.add_run(); run_l.text = "Mechanical → Electrical"
run_l.font.size = Pt(11); run_l.font.bold = True; run_l.font.color.rgb = C_ACCENT; run_l.font.name = "Calibri"
# K+ recycling note
content_box(slide, [
"K⁺ recycling: Hair cell → Supporting cells → Gap junctions → Spiral ligament → Stria vascularis → Endolymph (loop)",
"Ca²⁺ feedback: Ca²⁺ that entered through MET channel binds to myosin motor → pulls channel down → closes channel (ADAPTATION)",
"Myosin-1c motor: Adjusts tip link tension to set sensitivity (motor adaptation)"
], Inches(0.5), Inches(5.55), Inches(12.3), Inches(1.65), title="ADAPTATION & RECYCLING MECHANISMS", title_bg=C_TEAL, font_size=12.5)
# ══════════════════════════════════════════════════════════════════
# SLIDE 13 – CLINICAL CORRELATES
# ══════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
bg_rect(slide)
accent_bar(slide)
title_box(slide, "Clinical Correlates of Mechanotransduction")
add_source_note(slide)
content_box(slide, [
"Mutations in connexin-26 (GJB2) / connexin-30 (GJB6) → defective K⁺ recycling → DFNB1 (commonest hereditary deafness)",
"Mutations in MYO7A, CDH23 (cadherin-23) → abnormal tip links → Usher syndrome (deafness + retinitis pigmentosa)",
"Prestin (SLC26A5) mutations → OHC dysfunction → high-frequency hearing loss",
"Aminoglycoside antibiotics (gentamicin): enter via MET channels → hair cell toxicity → permanent sensorineural deafness"
], Inches(0.4), Inches(1.35), Inches(12.5), Inches(2.3), title="GENETIC & TOXIC CAUSES OF DEAFNESS", title_bg=C_NAVY, font_size=13)
content_box(slide, [
"Endolymphatic hydrops (Meniere's disease): ↑ endolymph volume → distortion of membranous labyrinth → episodic vertigo, tinnitus, hearing loss",
"Loop diuretics (furosemide): block Na⁺/K⁺/2Cl⁻ cotransporter in stria vascularis → transient ↓ endocochlear potential → reversible deafness",
"Acoustic trauma: OHC stereocilia disruption → permanent hearing loss (tympanic reflex is too slow to protect against sudden loud noise)"
], Inches(0.4), Inches(3.75), Inches(12.5), Inches(2.0), title="ACQUIRED CAUSES", title_bg=C_TEAL, font_size=13)
content_box(slide, [
"Otoacoustic emissions (OAEs): sounds generated by OHC electromotility can be measured externally → neonatal hearing screening",
"Cochlear implants: bypass hair cells entirely; directly stimulate spiral ganglion neurons with electrical signals",
"BPPV: Otoconia displaced into semicircular canal → inappropriate mechanotransduction signal → positional vertigo → Epley manoeuvre",
"Tinnitus: abnormal spontaneous firing due to disrupted mechanotransduction or central sensitisation"
], Inches(0.4), Inches(5.8), Inches(12.5), Inches(1.5), title="DIAGNOSTICS & MANAGEMENT", title_bg=C_ACCENT, font_size=12.5)
# ══════════════════════════════════════════════════════════════════
# SLIDE 14 – SUMMARY SLIDE
# ══════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
bg_rect(slide, RGBColor(0x0D, 0x1B, 0x2A))
# Decorative top bar
bar_top = slide.shapes.add_shape(1, 0, 0, prs.slide_width, Inches(0.12))
bar_top.fill.solid(); bar_top.fill.fore_color.rgb = C_TEAL; bar_top.line.fill.background()
bar_bot = slide.shapes.add_shape(1, 0, Inches(7.38), prs.slide_width, Inches(0.12))
bar_bot.fill.solid(); bar_bot.fill.fore_color.rgb = C_TEAL; bar_bot.line.fill.background()
tb = slide.shapes.add_textbox(Inches(1), Inches(0.25), Inches(11.3), Inches(0.65))
tf = tb.text_frame; p = tf.paragraphs[0]; p.alignment = PP_ALIGN.CENTER
run = p.add_run(); run.text = "Key Takeaways – Mechanotransduction of the Inner Ear"
run.font.size = Pt(28); run.font.bold = True; run.font.color.rgb = C_WHITE; run.font.name = "Calibri"
key_points = [
("1", "Sound → Mechanical", "Tympanic membrane + ossicles convert sound pressure waves into stapes footplate movement at the oval window"),
("2", "Wave Propagation", "Traveling waves in perilymph deflect basilar membrane; peak location encodes FREQUENCY (tonotopy)"),
("3", "Shearing Motion", "Tectorial membrane – reticular lamina shear deflects stereocilia of hair cells"),
("4", "Tip Link Gating", "Tip links stretch → MET channels open → K⁺ + Ca²⁺ influx → hair cell depolarisation"),
("5", "Neurotransmission", "Depolarisation → glutamate release at basal synapse → AP in CN VIII auditory/vestibular fibres"),
("6", "Amplification", "OHC electromotility (prestin) amplifies basilar membrane motion ×100"),
("7", "K⁺ Recycling", "K⁺ recycled via supporting cells → gap junctions → stria vascularis → endolymph (closed loop)"),
("8", "Ionic Drive", "Endocochlear potential (+85 mV) provides the electrochemical driving force for K⁺ entry"),
]
for i, (num, head, body) in enumerate(key_points):
col = i // 4
row = i % 4
kx = Inches(0.35) + col * Inches(6.45)
ky = Inches(1.05) + row * Inches(1.55)
# Number circle
circ = slide.shapes.add_shape(9, kx, ky, Inches(0.45), Inches(0.45)) # oval
circ.fill.solid(); circ.fill.fore_color.rgb = C_TEAL; circ.line.fill.background()
tf_c = circ.text_frame; tf_c.vertical_anchor = MSO_ANCHOR.MIDDLE
p_c = tf_c.paragraphs[0]; p_c.alignment = PP_ALIGN.CENTER
r_c = p_c.add_run(); r_c.text = num; r_c.font.size = Pt(13); r_c.font.bold = True
r_c.font.color.rgb = C_WHITE; r_c.font.name = "Calibri"
# Content
tb_k = slide.shapes.add_textbox(kx + Inches(0.55), ky, Inches(5.7), Inches(1.45))
tf_k = tb_k.text_frame; tf_k.word_wrap = True
p_h = tf_k.paragraphs[0]
r_h = p_h.add_run(); r_h.text = head + " "
r_h.font.size = Pt(13.5); r_h.font.bold = True; r_h.font.color.rgb = C_CYAN; r_h.font.name = "Calibri"
p_b = tf_k.add_paragraph(); p_b.space_before = Pt(2)
r_b = p_b.add_run(); r_b.text = body
r_b.font.size = Pt(11.5); r_b.font.color.rgb = RGBColor(0xCC, 0xCC, 0xCC); r_b.font.name = "Calibri"
# ── SAVE ──────────────────────────────────────────────────────────
out = "/tmp/workspace/mechanotransduction-pptx/Mechanotransduction_Inner_Ear.pptx"
prs.save(out)
print(f"Saved: {out}")
print(f"Total slides: {len(prs.slides)}")
cd /tmp/workspace/mechanotransduction-pptx && python create_pptx.py 2>&1
Mechanotransduction Inner Ear
Presentation · PPTX
| # | Slide Title |
|---|---|
| 1 | Title Slide – Mechanotransduction of the Inner Ear |
| 2 | Anatomy Overview – External / Middle / Inner Ear (3-column layout) |
| 3 | Cochlea & Organ of Corti – Chambers, hair cell counts, innervation |
| 4 | Hair Cell Structure – Kinocilium, stereocilia, directional sensitivity |
| 5 | Fluid Compartments – Endolymph vs. perilymph ionic table (Na⁺/K⁺/Cl⁻) |
| 6 | Tip Links & Ion Channels – Channel gating, K⁺/Ca²⁺ influx, glutamate release |
| 7 | Step-by-Step Flowchart – Sound → tympanic membrane → stapes → hair cell → nerve |
| 8 | K⁺ Recycling Cycle – Horizontal flowchart: hair cell → gap junctions → stria vascularis → endolymph |
| 9 | Sound Transmission & Traveling Waves – von Bekesy, tonotopy, properties of sound |
| 10 | Inner vs. Outer Hair Cells – IHC (sensory) vs. OHC (amplifier/prestin) |
| 11 | Vestibular Mechanotransduction – Semicircular canals, otolith organs (saccule/utricle) |
| 12 | Molecular Summary Flowchart – Dual-column: Mechanical events ↔ Electrical events |
| 13 | Clinical Correlates – DFNB1, Meniere's, ototoxicity, cochlear implants, BPPV |
| 14 | Key Takeaways – 8 numbered summary points |
thses are from guyton comppare add info from these abd generate again