Mechanism of hcl secretion to get full marks in mbbs physiology university exam

| Membrane | Transporters Present |
|---|---|
| Apical (luminal) | H⁺-K⁺ ATPase (proton pump), Cl⁻ channels |
| Basolateral | Na⁺-K⁺ ATPase, Cl⁻-HCO₃⁻ exchanger |
| Intracellular | Carbonic anhydrase enzyme |
High-yield pharmacology: Omeprazole (PPI) irreversibly blocks H⁺-K⁺ ATPase. Cimetidine/ranitidine block H₂ receptors. Atropine blocks M₃ muscarinic receptors on parietal cells.

| Agent | Type | Source | Receptor on Parietal Cell | Second Messenger | Blocked By |
|---|---|---|---|---|---|
| Histamine | Paracrine | ECL cells | H₂ receptor | cAMP (via Gs → adenylyl cyclase → PKA) | Cimetidine |
| ACh | Neurocrine | Vagus nerve endings | M₃ (muscarinic) receptor | IP₃/Ca²⁺ (via Gq → PLC → PKC) | Atropine |
| Gastrin | Hormone | G cells (antrum) | CCK_B receptor | IP₃/Ca²⁺ (same as ACh pathway) | - |
| Inhibitor | Source | Mechanism |
|---|---|---|
| Somatostatin | D cells (antrum/fundus) | Acts via Gi protein → ↓adenylyl cyclase → ↓cAMP; also inhibits histamine release from ECL cells and gastrin release from G cells |
| Prostaglandin E₂ | Gastric mucosa | Activates Gi → ↓adenylyl cyclase → ↓cAMP; antagonizes histamine's stimulatory action |
| Low pH of gastric contents | - | Triggers somatostatin release from D cells → negative feedback on parietal cells and G cells |
| Phase | % of Total HCl | Stimuli | Mechanism |
|---|---|---|---|
| Cephalic | ~30% | Smell, taste, chewing, swallowing, conditioned reflexes | (1) Vagus → ACh → direct parietal cell stimulation; (2) Vagus → GRP → G cells → gastrin → parietal cells |
| Gastric | ~60% | Stomach distension + protein breakdown products (amino acids, small peptides) | (1) Distension → vagal ACh → parietal cells; (2) Distension → vagal GRP → gastrin; (3) Amino acids/peptides → G cell gastrin release; (4) Local enteric nerve reflexes → ACh → parietal cells |
| Intestinal | ~10% | Products of protein digestion in duodenum | Endocrine/paracrine factors from intestinal mucosa |
| Point | Detail |
|---|---|
| Cell type | Parietal (oxyntic) cell |
| Key enzyme | Carbonic anhydrase (intracellular) |
| Proton pump | H⁺-K⁺ ATPase (apical membrane, primary active transport) |
| Cl⁻ entry into cell | Cl⁻-HCO₃⁻ exchanger at basolateral membrane |
| Cl⁻ exit to lumen | Passive via Cl⁻ channels at apical membrane |
| Alkaline tide | HCO₃⁻ absorbed into venous blood after a meal |
| Three stimulants | Histamine (H₂/cAMP), ACh (M₃/IP₃-Ca²⁺), Gastrin (CCK_B/IP₃-Ca²⁺) |
| Inhibitors | Somatostatin, prostaglandin E₂, low luminal pH |
| Phases | Cephalic 30%, Gastric 60%, Intestinal 10% |
| Drug targets | Omeprazole (H⁺-K⁺ ATPase), Cimetidine (H₂ receptor), Atropine (M₃) |
Keep the headings and the content exactly the same, but add flowcharts for every section
Medical physiology flowchart: Cellular mechanism of HCl secretion by gastric parietal cell. Clean vertical flowchart with labeled boxes and arrows. Steps: CO2 + H2O → (carbonic anhydrase) → H2CO3 → H+ + HCO3-. Then two branches: Left branch: H+ → pumped into lumen via H+-K+ ATPase (apical membrane, primary active transport, ATP consumed), K+ recycled back, Cl- follows via Cl- channels → HCl secreted into lumen. Right branch: HCO3- → exchanged for Cl- via Cl--HCO3- exchanger (basolateral membrane) → HCO3- absorbed into blood (alkaline tide). Bottom box: Net result = HCl secreted into lumen + HCO3- absorbed into blood. White background, clean medical diagram style, clear labels.
Medical physiology flowchart: Three stimulants of HCl secretion by gastric parietal cell. Clean horizontal flowchart. Three parallel columns: Column 1 (Histamine): ECL cells → Histamine → H2 receptor on parietal cell → Gs protein → adenylyl cyclase → cAMP↑ → PKA → H+ secretion. Blocked by Cimetidine. Column 2 (ACh): Vagus nerve → ACh → M3 receptor on parietal cell → Gq protein → PLC → IP3 + DAG → Ca2+ release → protein kinase → H+ secretion. Blocked by Atropine. Column 3 (Gastrin): G cells antrum → Gastrin → bloodstream → CCK-B receptor on parietal cell → Gq → IP3/Ca2+ → H+ secretion. All three columns converge at bottom: H+-K+ ATPase → HCl secreted. White background, clean labeled boxes with arrows, color-coded columns.
Medical physiology flowchart: Three phases of gastric HCl secretion in response to a meal. Vertical timeline flowchart with three sections. Phase 1 - Cephalic (30%): Smell/taste/chewing/conditioned reflexes → Vagus nerve activated → (a) ACh → parietal cells directly, (b) GRP → G cells → Gastrin → parietal cells → HCl secretion. Phase 2 - Gastric (60%): Food in stomach → Stomach distension + Protein breakdown products (amino acids, peptides) → (a) Vagal ACh → parietal cells, (b) GRP → Gastrin, (c) Amino acids → G cells → Gastrin, (d) Local enteric reflexes → ACh → HCl secretion. Phase 3 - Intestinal (10%): Chyme enters duodenum → intestinal factors → HCl secretion. Clean white background, three color-coded sections, labeled boxes and arrows.
Medical physiology flowchart: Inhibition of HCl secretion - negative feedback control. Clean vertical flowchart. Top: HCl secreted → gastric pH falls. Then: Low pH → D cells release Somatostatin → three inhibitory arrows: (1) inhibits ECL cells → less Histamine → less H+ secretion, (2) inhibits G cells → less Gastrin → less H+ secretion, (3) directly inhibits parietal cells → less H+ secretion. Separate branch: Prostaglandin E2 from gastric mucosa → Gi protein → adenylyl cyclase inhibited → cAMP falls → less H+ secretion. Bottom box: Net result = negative feedback suppression of HCl secretion. Note: NSAIDs inhibit PGE2 synthesis → lose protection. White background, red inhibitory arrows labeled with minus signs, clean medical diagram style.
Medical physiology flowchart: Potentiation of HCl secretion. Clean diagram showing three stimulants (Histamine, ACh, Gastrin) each with different receptors and second messengers converging on H+-K+ ATPase. Show indirect pathways: ACh also stimulates ECL cells → more Histamine. Gastrin also stimulates ECL cells → more Histamine. Central box showing potentiation: combined response greater than sum of individual responses. Clinical implication boxes: Cimetidine blocks H2 receptor → blocks direct histamine + histamine-potentiated effects of ACh and gastrin. Atropine blocks M3 receptor → blocks direct ACh + ACh-potentiated effects of histamine and gastrin. White background, clear arrows, labeled boxes.
404 Not Found. {'message': '{\n "error": {\n "code": 404,\n "message": "Publisher model `projects/engaged-beaker-474810-u2/locations/global/publishers/google/models/gemini-3-pro-image-preview` was not found or your project does not have access to it. Ensure you are using a valid model name and that the model is available in the specified region. For more information, see: https://docs.cloud.google.com/gemini-enterprise-agent-platform/resources/locations.",\n "status": "NOT_FOUND"\n }\n}\n', 'status': 'Not Found'}
We encountered an error while processing your request. Please try again or reach out to us for help.
Keep the headings and the content exactly the same, but add flowcharts for every section
mkdir -p /tmp/workspace/hcl-flowcharts && echo "dir ready"
~/hcl-flowcharts/make_flowcharts.py
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
from matplotlib.patches import FancyBboxPatch, FancyArrowPatch
import numpy as np
# ── helpers ──────────────────────────────────────────────────────────────────
def box(ax, x, y, w, h, text, fc='#dbeafe', ec='#1e40af', fontsize=9,
bold=False, tc='black', radius=0.04, ha='center', va='center', wrap=True):
bp = FancyBboxPatch((x - w/2, y - h/2), w, h,
boxstyle=f"round,pad={radius}", fc=fc, ec=ec, lw=1.5, zorder=3)
ax.add_patch(bp)
weight = 'bold' if bold else 'normal'
ax.text(x, y, text, ha=ha, va=va, fontsize=fontsize, fontweight=weight,
color=tc, zorder=4, wrap=wrap, multialignment='center')
def arrow(ax, x1, y1, x2, y2, color='#1e40af', lw=1.8, label=''):
ax.annotate('', xy=(x2, y2), xytext=(x1, y1),
arrowprops=dict(arrowstyle='->', color=color, lw=lw))
if label:
mx, my = (x1+x2)/2, (y1+y2)/2
ax.text(mx+0.02, my, label, fontsize=7.5, color='#64748b', va='center')
def inhibit_arrow(ax, x1, y1, x2, y2, color='#dc2626'):
ax.annotate('', xy=(x2, y2), xytext=(x1, y1),
arrowprops=dict(arrowstyle='-|>', color=color, lw=1.8,
mutation_scale=10))
def title_bar(ax, text, y=0.97, fontsize=12):
ax.text(0.5, y, text, transform=ax.transAxes, ha='center', va='top',
fontsize=fontsize, fontweight='bold', color='#1e3a5f',
bbox=dict(fc='#bfdbfe', ec='#1e40af', boxstyle='round,pad=0.3'))
# ─────────────────────────────────────────────────────────────────────────────
# FLOWCHART 1 – Cellular Mechanism
# ─────────────────────────────────────────────────────────────────────────────
fig, ax = plt.subplots(figsize=(9, 11))
ax.set_xlim(0, 9); ax.set_ylim(0, 11)
ax.axis('off')
title_bar(ax, 'Flowchart 1 – Cellular Mechanism of HCl Secretion\n(Gastric Parietal Cell)')
# ----- central column: CO2 → H2CO3 → H+ + HCO3-
box(ax, 4.5, 9.8, 4.5, 0.55, 'CO₂ (from aerobic metabolism) + H₂O', fc='#f0fdf4', ec='#166534', bold=True)
arrow(ax, 4.5, 9.52, 4.5, 9.05, label='carbonic anhydrase')
box(ax, 4.5, 8.75, 3.2, 0.55, 'H₂CO₃ (carbonic acid)', fc='#f0fdf4', ec='#166534')
arrow(ax, 4.5, 8.47, 4.5, 7.98)
box(ax, 4.5, 7.68, 3.8, 0.55, 'H⁺ + HCO₃⁻ (dissociation)', fc='#fefce8', ec='#854d0e', bold=True)
# split arrow left for H+
ax.annotate('', xy=(2.2, 7.05), xytext=(4.1, 7.4),
arrowprops=dict(arrowstyle='->', color='#1e40af', lw=1.8))
ax.text(2.9, 7.3, 'H⁺', fontsize=8, color='#1e40af', fontweight='bold')
# split arrow right for HCO3-
ax.annotate('', xy=(6.8, 7.05), xytext=(4.9, 7.4),
arrowprops=dict(arrowstyle='->', color='#9d174d', lw=1.8))
ax.text(5.8, 7.3, 'HCO₃⁻', fontsize=8, color='#9d174d', fontweight='bold')
# ----- LEFT branch: H+ → lumen
box(ax, 2.2, 6.65, 3.6, 0.7,
'H⁺-K⁺ ATPase\n(Apical membrane)\nPrimary active transport',
fc='#eff6ff', ec='#1e40af', fontsize=8)
arrow(ax, 2.2, 6.3, 2.2, 5.75)
box(ax, 2.2, 5.45, 3.2, 0.55, 'H⁺ pumped into gastric LUMEN\n(K⁺ recycled back into cell)', fc='#dbeafe', ec='#1e40af', fontsize=8)
# Cl- branch (parallel)
box(ax, 2.2, 4.65, 3.4, 0.55,
'Cl⁻ enters cell from blood\n(via basolateral Cl⁻-HCO₃⁻ exchanger)',
fc='#fef9c3', ec='#854d0e', fontsize=7.5)
arrow(ax, 2.2, 4.37, 2.2, 3.88)
box(ax, 2.2, 3.58, 3.2, 0.55,
'Cl⁻ exits into LUMEN\nthrough Cl⁻ channels (apical)',
fc='#fef9c3', ec='#854d0e', fontsize=8)
# converge to HCl
ax.annotate('', xy=(2.2, 2.95), xytext=(2.2, 3.3),
arrowprops=dict(arrowstyle='->', color='#1e40af', lw=1.8))
box(ax, 2.2, 2.65, 3.2, 0.55, '✔ HCl secreted into lumen\n(pH 1–2)', fc='#bbf7d0', ec='#15803d', bold=True, fontsize=9)
# ----- RIGHT branch: HCO3- → blood
box(ax, 6.8, 6.65, 3.6, 0.7,
'Cl⁻-HCO₃⁻ Exchanger\n(Basolateral membrane)\nSecondary active transport',
fc='#fdf2f8', ec='#9d174d', fontsize=8)
arrow(ax, 6.8, 6.3, 6.8, 5.75)
box(ax, 6.8, 5.45, 3.2, 0.55, 'HCO₃⁻ absorbed into BLOOD\nCl⁻ enters cell in exchange', fc='#fce7f3', ec='#9d174d', fontsize=8)
arrow(ax, 6.8, 5.17, 6.8, 4.65)
box(ax, 6.8, 4.35, 3.2, 0.55,
'"Alkaline Tide"\n(↑ pH in gastric venous blood\nafter a meal)',
fc='#fce7f3', ec='#9d174d', fontsize=8)
# Net result bar
box(ax, 4.5, 1.8, 8, 0.65,
'NET RESULT: HCl secreted into lumen | HCO₃⁻ absorbed into blood',
fc='#1e3a5f', ec='#1e3a5f', tc='white', bold=True, fontsize=9)
# Drug note
ax.text(4.5, 1.2, '⚠ Omeprazole (PPI) irreversibly blocks H⁺-K⁺ ATPase',
ha='center', fontsize=8.5, color='#dc2626',
bbox=dict(fc='#fee2e2', ec='#dc2626', boxstyle='round,pad=0.25'))
plt.tight_layout(pad=0.4)
plt.savefig('/tmp/workspace/hcl-flowcharts/fc1_cellular_mechanism.png', dpi=150, bbox_inches='tight')
plt.close()
print("FC1 done")
# ─────────────────────────────────────────────────────────────────────────────
# FLOWCHART 2 – Three Stimulants
# ─────────────────────────────────────────────────────────────────────────────
fig, ax = plt.subplots(figsize=(13, 11))
ax.set_xlim(0, 13); ax.set_ylim(0, 11)
ax.axis('off')
title_bar(ax, 'Flowchart 2 – Three Stimulants of HCl Secretion by Parietal Cell', fontsize=11)
cols = [2.2, 6.5, 10.8]
colors = [
('#dbeafe','#1e40af'), # blue – histamine
('#dcfce7','#166534'), # green – ACh
('#fce7f3','#9d174d'), # pink – gastrin
]
titles = ['HISTAMINE\n(Paracrine)', 'ACETYLCHOLINE (ACh)\n(Neurocrine)', 'GASTRIN\n(Hormone/Endocrine)']
sources = ['ECL cells\n(gastric mucosa)', 'Vagus nerve endings', 'G cells\n(stomach antrum)']
recs = ['H₂ receptor', 'M₃ (muscarinic)\nreceptor', 'CCK_B receptor']
gprots = ['Gs protein\n→ adenylyl cyclase', 'Gq protein\n→ PLC (phospholipase C)', 'Gq protein\n→ PLC']
second = ['↑ cAMP\n→ PKA activation', 'IP₃ + DAG\n→ Ca²⁺ from stores\n→ PKC', 'IP₃ + DAG\n→ Ca²⁺ from stores']
blockers= ['Blocked by\nCIMETIDINE (H₂ blocker)', 'Blocked by\nATROPINE (M blocker)', '—']
ys = [9.6, 8.5, 7.4, 6.3, 5.1]
for i, (cx, (fc, ec)) in enumerate(zip(cols, colors)):
# header
box(ax, cx, 10.2, 3.5, 0.75, titles[i], fc=ec, ec=ec, tc='white', bold=True, fontsize=9)
# rows
for j, (txt, y) in enumerate(zip([sources[i], recs[i], gprots[i], second[i]], ys)):
box(ax, cx, y, 3.5, 0.75, txt, fc=fc, ec=ec, fontsize=8.5)
if j < len(ys)-1:
arrow(ax, cx, y-0.38, cx, ys[j+1]+0.38, color=ec)
# blocker badge
if blockers[i] != '—':
ax.text(cx, 4.3, blockers[i], ha='center', fontsize=7.5, color='#dc2626',
bbox=dict(fc='#fee2e2', ec='#dc2626', boxstyle='round,pad=0.2'))
# converge arrows to H+-K+ ATPase
for cx in cols:
ax.annotate('', xy=(6.5, 2.85), xytext=(cx, 4.72),
arrowprops=dict(arrowstyle='->', color='#374151', lw=1.6))
box(ax, 6.5, 2.5, 5.5, 0.65,
'H⁺-K⁺ ATPase activated → H⁺ secreted into lumen → HCl',
fc='#1e3a5f', ec='#1e3a5f', tc='white', bold=True, fontsize=9.5)
# indirect paths note
ax.text(6.5, 1.75,
'Indirect paths: ACh & Gastrin also stimulate ECL cells → more Histamine → more H⁺ secretion (potentiation)',
ha='center', fontsize=8, color='#6b21a8',
bbox=dict(fc='#f3e8ff', ec='#7c3aed', boxstyle='round,pad=0.25'))
ax.text(6.5, 1.2,
'POTENTIATION: Combined response > Sum of individual responses (different receptors + second messengers)',
ha='center', fontsize=8, color='#1e3a5f',
bbox=dict(fc='#e0f2fe', ec='#0284c7', boxstyle='round,pad=0.25'))
plt.tight_layout(pad=0.4)
plt.savefig('/tmp/workspace/hcl-flowcharts/fc2_stimulants.png', dpi=150, bbox_inches='tight')
plt.close()
print("FC2 done")
# ─────────────────────────────────────────────────────────────────────────────
# FLOWCHART 3 – Potentiation & Drug Targets
# ─────────────────────────────────────────────────────────────────────────────
fig, ax = plt.subplots(figsize=(11, 8))
ax.set_xlim(0, 11); ax.set_ylim(0, 8)
ax.axis('off')
title_bar(ax, 'Flowchart 3 – Potentiation of HCl Secretion & Drug Targets', fontsize=11)
# 3 stimulant boxes
for cx, lbl, fc, ec in [(2,'Histamine','#dbeafe','#1e40af'),
(5.5,'ACh','#dcfce7','#166534'),
(9,'Gastrin','#fce7f3','#9d174d')]:
box(ax, cx, 6.8, 2.6, 0.65, lbl, fc=fc, ec=ec, bold=True)
# indirect routes: ACh → ECL; Gastrin → ECL
ax.annotate('', xy=(2, 6.15), xytext=(5.2, 6.48),
arrowprops=dict(arrowstyle='->', color='#166534', lw=1.4, linestyle='dashed'))
ax.text(3.3, 6.45, 'also stimulates\nECL cells', fontsize=7, color='#166534', ha='center')
ax.annotate('', xy=(2, 6.15), xytext=(8.7, 6.48),
arrowprops=dict(arrowstyle='->', color='#9d174d', lw=1.4, linestyle='dashed'))
ax.text(5.5, 6.8, '→ ECL cells', fontsize=7, color='#9d174d', ha='center')
# receptor boxes
for cx, txt, fc, ec in [(2,'H₂ receptor\n→ Gs → cAMP','#dbeafe','#1e40af'),
(5.5,'M₃ receptor\n→ Gq → IP₃/Ca²⁺','#dcfce7','#166534'),
(9,'CCK_B receptor\n→ Gq → IP₃/Ca²⁺','#fce7f3','#9d174d')]:
box(ax, cx, 5.5, 2.8, 0.75, txt, fc=fc, ec=ec, fontsize=8.5)
arrow(ax, cx, 6.48, cx, 5.88)
# blocker tags
for cx, txt in [(2,'⊗ Cimetidine\nblocks H₂ receptor'),(5.5,'⊗ Atropine\nblocks M₃ receptor')]:
ax.text(cx, 4.9, txt, ha='center', fontsize=7.5, color='#dc2626',
bbox=dict(fc='#fee2e2', ec='#dc2626', boxstyle='round,pad=0.2'))
# converge to H+-K+ ATPase
for cx in [2, 5.5, 9]:
ax.annotate('', xy=(5.5, 3.8), xytext=(cx, 5.12),
arrowprops=dict(arrowstyle='->', color='#374151', lw=1.6))
box(ax, 5.5, 3.45, 7, 0.65, 'H⁺-K⁺ ATPase → H⁺ secretion', fc='#1e3a5f', ec='#1e3a5f', tc='white', bold=True)
ax.annotate('', xy=(5.5, 2.85), xytext=(5.5, 3.12),
arrowprops=dict(arrowstyle='->', color='#15803d', lw=2))
box(ax, 5.5, 2.5, 7.5, 0.65,
'Combined potentiated response >> sum of individual responses',
fc='#bbf7d0', ec='#15803d', bold=True, fontsize=9)
ax.text(5.5, 1.7,
'Clinical implication:\nCimetidine blocks direct histamine action + histamine-potentiated effects of ACh & Gastrin\n'
'Atropine blocks direct ACh action + ACh-potentiated effects of Histamine & Gastrin',
ha='center', fontsize=8.5, color='#1e3a5f',
bbox=dict(fc='#e0f2fe', ec='#0284c7', boxstyle='round,pad=0.3'))
plt.tight_layout(pad=0.4)
plt.savefig('/tmp/workspace/hcl-flowcharts/fc3_potentiation.png', dpi=150, bbox_inches='tight')
plt.close()
print("FC3 done")
# ─────────────────────────────────────────────────────────────────────────────
# FLOWCHART 4 – Three Phases
# ─────────────────────────────────────────────────────────────────────────────
fig, ax = plt.subplots(figsize=(13, 12))
ax.set_xlim(0, 13); ax.set_ylim(0, 12)
ax.axis('off')
title_bar(ax, 'Flowchart 4 – Three Phases of Gastric HCl Secretion (Response to a Meal)', fontsize=11)
phase_data = [
{
'title': 'CEPHALIC PHASE (~30%)',
'fc': '#dbeafe', 'ec': '#1e40af',
'stimulus': 'Smell / Taste / Chewing /\nSwallowing / Conditioned reflexes',
'cx': 2.2,
'paths': [
'Vagus nerve activated',
['Direct: ACh released\n→ M₃ on parietal cells',
'Indirect: GRP released\n→ G cells → Gastrin\n→ CCK_B on parietal cells'],
]
},
{
'title': 'GASTRIC PHASE (~60%)',
'fc': '#dcfce7', 'ec': '#166534',
'stimulus': 'Stomach distension +\nProtein products (AA, peptides)',
'cx': 6.5,
'paths': [
'Stretch receptors +\nChemoreceptors activated',
['(1) Vagal ACh →\nparietal cells (direct)',
'(2) Vagal GRP →\nGastrin (indirect)',
'(3) AA/peptides →\nG cells → Gastrin',
'(4) Local enteric\nnerves → ACh'],
]
},
{
'title': 'INTESTINAL PHASE (~10%)',
'fc': '#fce7f3', 'ec': '#9d174d',
'stimulus': 'Chyme enters\nduodenum',
'cx': 10.8,
'paths': [
'Intestinal mucosal\nfactors activated',
['Endocrine / paracrine\nmediators from\nduodenal mucosa'],
]
},
]
for pd in phase_data:
cx = pd['cx']
fc, ec = pd['fc'], pd['ec']
# phase header
box(ax, cx, 10.8, 3.8, 0.7, pd['title'], fc=ec, ec=ec, tc='white', bold=True, fontsize=9)
# stimulus
box(ax, cx, 9.8, 3.8, 0.8, pd['stimulus'], fc=fc, ec=ec, fontsize=8.5)
arrow(ax, cx, 10.45, cx, 10.2)
arrow(ax, cx, 9.4, cx, 8.85)
# intermediate step
interm = pd['paths'][0]
box(ax, cx, 8.55, 3.8, 0.6, interm, fc=fc, ec=ec, fontsize=8)
arrow(ax, cx, 8.25, cx, 7.65)
# branch paths
branches = pd['paths'][1]
n = len(branches)
if n == 1:
box(ax, cx, 7.3, 3.8, 0.65, branches[0], fc=fc, ec=ec, fontsize=8)
arrow(ax, cx, 6.98, cx, 6.35)
elif n == 2:
for bi, (bx, txt) in enumerate(zip([cx-1.1, cx+1.1], branches)):
ax.annotate('', xy=(bx, 7.35), xytext=(cx, 7.65),
arrowprops=dict(arrowstyle='->', color=ec, lw=1.4))
box(ax, bx, 7.0, 1.9, 0.65, txt, fc=fc, ec=ec, fontsize=7.5)
ax.annotate('', xy=(cx, 6.35), xytext=(bx, 6.68),
arrowprops=dict(arrowstyle='->', color=ec, lw=1.4))
elif n == 4:
bxs = [cx-1.6, cx-0.5, cx+0.55, cx+1.65]
for bx, txt in zip(bxs, branches):
ax.annotate('', xy=(bx, 7.3), xytext=(cx, 7.65),
arrowprops=dict(arrowstyle='->', color=ec, lw=1.2))
box(ax, bx, 6.95, 1.9, 0.65, txt, fc=fc, ec=ec, fontsize=7)
ax.annotate('', xy=(cx, 6.35), xytext=(bx, 6.62),
arrowprops=dict(arrowstyle='->', color=ec, lw=1.2))
# converge all to HCl secretion
for pd in phase_data:
ax.annotate('', xy=(6.5, 5.3), xytext=(pd['cx'], 6.35),
arrowprops=dict(arrowstyle='->', color='#374151', lw=2))
box(ax, 6.5, 4.95, 9, 0.65,
'H⁺-K⁺ ATPase activated → HCl secreted into gastric lumen',
fc='#1e3a5f', ec='#1e3a5f', tc='white', bold=True, fontsize=10)
# summary bar
box(ax, 6.5, 3.9, 10, 0.75,
'Total HCl: Cephalic 30% | Gastric 60% | Intestinal 10%\n'
'(Largest contribution from gastric phase – stomach contents)',
fc='#bbf7d0', ec='#15803d', fontsize=9, bold=True)
plt.tight_layout(pad=0.4)
plt.savefig('/tmp/workspace/hcl-flowcharts/fc4_phases.png', dpi=150, bbox_inches='tight')
plt.close()
print("FC4 done")
# ─────────────────────────────────────────────────────────────────────────────
# FLOWCHART 5 – Inhibition / Negative Feedback
# ─────────────────────────────────────────────────────────────────────────────
fig, ax = plt.subplots(figsize=(10, 10))
ax.set_xlim(0, 10); ax.set_ylim(0, 10)
ax.axis('off')
title_bar(ax, 'Flowchart 5 – Inhibition of HCl Secretion (Negative Feedback)', fontsize=11)
# top
box(ax, 5, 9.1, 6, 0.65, 'HCl secreted → Gastric pH falls (↓ pH)', fc='#fee2e2', ec='#dc2626', bold=True)
arrow(ax, 5, 8.77, 5, 8.25, color='#dc2626')
box(ax, 5, 7.95, 5, 0.6, 'D cells (antrum/fundus) detect low pH', fc='#fef3c7', ec='#d97706')
arrow(ax, 5, 7.65, 5, 7.12, color='#d97706')
box(ax, 5, 6.82, 4.5, 0.6, 'D cells release SOMATOSTATIN', fc='#fef3c7', ec='#d97706', bold=True)
# 3 inhibitory branches
branch_xs = [1.5, 5, 8.5]
branch_labels = [
'① Inhibits ECL cells\n→ ↓ Histamine release\n→ ↓ H⁺ secretion',
'② Directly inhibits\nParietal cells\n→ ↓ H⁺ secretion',
'③ Inhibits G cells\n→ ↓ Gastrin release\n→ ↓ H⁺ secretion',
]
for bx, txt in zip(branch_xs, branch_labels):
ax.annotate('', xy=(bx, 5.95), xytext=(5, 6.52),
arrowprops=dict(arrowstyle='-|>', color='#dc2626', lw=1.8,
mutation_scale=12))
box(ax, bx, 5.55, 2.9, 0.8, txt, fc='#fee2e2', ec='#dc2626', fontsize=8)
ax.annotate('', xy=(5, 4.5), xytext=(bx, 5.15),
arrowprops=dict(arrowstyle='->', color='#374151', lw=1.4))
# prostaglandin branch
box(ax, 5, 3.65, 7, 0.65,
'↓ HCl secretion (negative feedback maintained)',
fc='#bbf7d0', ec='#15803d', bold=True)
# PGE2 path (separate)
box(ax, 5, 2.8, 6.5, 0.65,
'Prostaglandin E₂ (PGE₂) from gastric mucosa\n→ Gi protein → ↓ adenylyl cyclase → ↓ cAMP → ↓ H⁺ secretion',
fc='#f3e8ff', ec='#7c3aed', fontsize=8)
ax.annotate('', xy=(5, 3.32), xytext=(5, 3.12),
arrowprops=dict(arrowstyle='->', color='#7c3aed', lw=1.6))
# NSAID warning
ax.text(5, 2.1,
'⚠ NSAIDs inhibit COX → ↓ PGE₂ synthesis → lose mucosal protection → Peptic ulcer risk ↑',
ha='center', fontsize=8.5, color='#dc2626',
bbox=dict(fc='#fee2e2', ec='#dc2626', boxstyle='round,pad=0.3'))
# atropine note
ax.text(5, 1.35,
'Note: Atropine does NOT fully block HCl secretion — vagal stimulation of G cells uses GRP (not ACh)',
ha='center', fontsize=8, color='#1e3a5f',
bbox=dict(fc='#e0f2fe', ec='#0284c7', boxstyle='round,pad=0.25'))
plt.tight_layout(pad=0.4)
plt.savefig('/tmp/workspace/hcl-flowcharts/fc5_inhibition.png', dpi=150, bbox_inches='tight')
plt.close()
print("FC5 done")
print("ALL FLOWCHARTS COMPLETE")
cd /tmp/workspace/hcl-flowcharts && python make_flowcharts.py 2>&1

| Membrane | Transporters Present |
|---|---|
| Apical (luminal) | H⁺-K⁺ ATPase (proton pump), Cl⁻ channels |
| Basolateral | Na⁺-K⁺ ATPase, Cl⁻-HCO₃⁻ exchanger |
| Intracellular | Carbonic anhydrase enzyme |
High-yield pharmacology: Omeprazole (PPI) irreversibly blocks H⁺-K⁺ ATPase. Cimetidine/ranitidine block H₂ receptors. Atropine blocks M₃ muscarinic receptors on parietal cells.


| Agent | Type | Source | Receptor on Parietal Cell | Second Messenger | Blocked By |
|---|---|---|---|---|---|
| Histamine | Paracrine | ECL cells | H₂ receptor | cAMP (via Gs → adenylyl cyclase → PKA) | Cimetidine |
| ACh | Neurocrine | Vagus nerve endings | M₃ (muscarinic) receptor | IP₃/Ca²⁺ (via Gq → PLC → PKC) | Atropine |
| Gastrin | Hormone | G cells (antrum) | CCK_B receptor | IP₃/Ca²⁺ (same as ACh pathway) | - |


| Inhibitor | Source | Mechanism |
|---|---|---|
| Somatostatin | D cells (antrum/fundus) | Acts via Gi protein → ↓adenylyl cyclase → ↓cAMP; also inhibits histamine release from ECL cells and gastrin release from G cells |
| Prostaglandin E₂ | Gastric mucosa | Activates Gi → ↓adenylyl cyclase → ↓cAMP; antagonizes histamine's stimulatory action |
| Low pH of gastric contents | - | Triggers somatostatin release from D cells → negative feedback on parietal cells and G cells |
| Phase | % of Total HCl | Stimuli | Mechanism |
|---|---|---|---|
| Cephalic | ~30% | Smell, taste, chewing, swallowing, conditioned reflexes | (1) Vagus → ACh → direct parietal cell stimulation; (2) Vagus → GRP → G cells → gastrin → parietal cells |
| Gastric | ~60% | Stomach distension + protein breakdown products (amino acids, small peptides) | (1) Distension → vagal ACh → parietal cells; (2) Distension → vagal GRP → gastrin; (3) Amino acids/peptides → G cell gastrin release; (4) Local enteric nerve reflexes → ACh → parietal cells |
| Intestinal | ~10% | Products of protein digestion in duodenum | Endocrine/paracrine factors from intestinal mucosa |


| Point | Detail |
|---|---|
| Cell type | Parietal (oxyntic) cell |
| Key enzyme | Carbonic anhydrase (intracellular) |
| Proton pump | H⁺-K⁺ ATPase (apical membrane, primary active transport) |
| Cl⁻ entry into cell | Cl⁻-HCO₃⁻ exchanger at basolateral membrane |
| Cl⁻ exit to lumen | Passive via Cl⁻ channels at apical membrane |
| Alkaline tide | HCO₃⁻ absorbed into venous blood after a meal |
| Three stimulants | Histamine (H₂/cAMP), ACh (M₃/IP₃-Ca²⁺), Gastrin (CCK_B/IP₃-Ca²⁺) |
| Inhibitors | Somatostatin, prostaglandin E₂, low luminal pH |
| Phases | Cephalic 30%, Gastric 60%, Intestinal 10% |
| Drug targets | Omeprazole (H⁺-K⁺ ATPase), Cimetidine (H₂ receptor), Atropine (M₃) |
fc1 cellular mechanism
Image · PNG
fc2 stimulants
Image · PNG
fc3 potentiation
Image · PNG
fc4 phases
Image · PNG
fc5 inhibition
Image · PNG