Solved according to marks distribution in proper way

Reading File
Running Command

python3 -c " from docx import Document doc = Document('/tmp/workspace/attachments/4267cda5-cda3-4a7c-ae63-617ae212f0fb/unit test 3 2025-26.docx') for p in doc.paragraphs: style = p.style.name if p.style else 'None' if p.text.strip(): print(f'[{style}] {p.text}') for table in doc.tables: print('--- TABLE ---') for row in table.rows: for cell in row.cells: if cell.text.strip(): print(cell.text.strip(), end=' | ') print() "

Reading File
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Reading File
Reading File
Reading File
Running Command

mkdir -p /tmp/workspace/unit-test-physiology && ls /tmp/workspace/unit-test-physiology/

Writing File

~/unit-test-physiology/build_answers.py

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

doc = Document()

# ── Page margins ──────────────────────────────────────────────────────────────
from docx.shared import Inches as In
section = doc.sections[0]
section.top_margin = In(0.8)
section.bottom_margin = In(0.8)
section.left_margin = In(1.0)
section.right_margin = In(1.0)

# ── Style helpers ─────────────────────────────────────────────────────────────
normal_style = doc.styles['Normal']
normal_style.font.name = 'Times New Roman'
normal_style.font.size = Pt(12)

def add_title(doc, text):
    p = doc.add_paragraph()
    p.alignment = WD_ALIGN_PARAGRAPH.CENTER
    run = p.add_run(text)
    run.bold = True
    run.font.size = Pt(13)
    run.font.color.rgb = RGBColor(0x00, 0x00, 0x8B)  # dark blue

def add_heading1(doc, text):
    p = doc.add_paragraph()
    run = p.add_run(text)
    run.bold = True
    run.underline = True
    run.font.size = Pt(12)
    run.font.color.rgb = RGBColor(0xC0, 0x00, 0x00)  # dark red

def add_heading2(doc, text):
    p = doc.add_paragraph()
    run = p.add_run(text)
    run.bold = True
    run.font.size = Pt(12)

def add_body(doc, text):
    p = doc.add_paragraph(text)
    p.paragraph_format.left_indent = Inches(0.2)
    p.runs[0].font.size = Pt(11)

def add_bullet(doc, text, bold_prefix=None):
    p = doc.add_paragraph(style='List Bullet')
    p.paragraph_format.left_indent = Inches(0.3)
    if bold_prefix:
        run_b = p.add_run(bold_prefix)
        run_b.bold = True
        run_b.font.size = Pt(11)
        run_normal = p.add_run(text)
        run_normal.font.size = Pt(11)
    else:
        run = p.add_run(text)
        run.font.size = Pt(11)

def add_numbered(doc, text, bold_prefix=None):
    p = doc.add_paragraph(style='List Number')
    p.paragraph_format.left_indent = Inches(0.3)
    if bold_prefix:
        run_b = p.add_run(bold_prefix)
        run_b.bold = True
        run_b.font.size = Pt(11)
        run_normal = p.add_run(text)
        run_normal.font.size = Pt(11)
    else:
        run = p.add_run(text)
        run.font.size = Pt(11)

def add_marks_note(doc, text):
    p = doc.add_paragraph()
    p.alignment = WD_ALIGN_PARAGRAPH.RIGHT
    run = p.add_run(text)
    run.italic = True
    run.font.size = Pt(10)
    run.font.color.rgb = RGBColor(0x55, 0x55, 0x55)

def add_divider(doc):
    p = doc.add_paragraph()
    p.paragraph_format.space_before = Pt(2)
    p.paragraph_format.space_after = Pt(2)
    run = p.add_run('─' * 80)
    run.font.size = Pt(8)
    run.font.color.rgb = RGBColor(0xCC, 0xCC, 0xCC)

# ══════════════════════════════════════════════════════════════════════════════
# HEADER
# ══════════════════════════════════════════════════════════════════════════════
add_title(doc, 'DEPARTMENT OF PHYSIOLOGY')
add_title(doc, 'THIRD UNIT TEST — MBBS Batch 2025-26')
p = doc.add_paragraph()
p.alignment = WD_ALIGN_PARAGRAPH.CENTER
run = p.add_run('Subject: Physiology     |     Time: 1.30 Hrs     |     Max. Marks: 50')
run.font.size = Pt(11)
p2 = doc.add_paragraph()
p2.alignment = WD_ALIGN_PARAGRAPH.CENTER
run2 = p2.add_run('SOLVED ANSWER SHEET')
run2.bold = True
run2.font.size = Pt(12)
run2.font.color.rgb = RGBColor(0x00, 0x80, 0x00)
doc.add_paragraph()

add_divider(doc)

# ══════════════════════════════════════════════════════════════════════════════
# Q1  LONG ANSWER QUESTION  (2+3+2+3+5 = 15 marks)
# ══════════════════════════════════════════════════════════════════════════════
add_heading1(doc, 'Q.1  Long Answer Question                                                        (2+3+2+3+5 = 15 marks)')
doc.add_paragraph()
p = doc.add_paragraph()
run = p.add_run('Clinical Scenario: ')
run.bold = True
run.font.size = Pt(11)
run2 = p.add_run(
    'A 65-year-old male, chronic smoker and alcoholic, presented to the emergency '
    'with chest pain, sweating and dyspnoea for one hour. Pulse 100 bpm, BP 126/84 mmHg, '
    'ECG showing ST elevation in leads II, III and aVF.')
run2.font.size = Pt(11)

doc.add_paragraph()

# ── (a) Diagnosis (2 marks) ───────────────────────────────────────────────────
add_heading2(doc, '(a) Diagnosis with Two Features  [2 Marks]')
add_body(doc, 'Diagnosis: ACUTE INFERIOR WALL MYOCARDIAL INFARCTION (AWMI)')
doc.add_paragraph()
add_body(doc, 'Two features supporting the diagnosis:')
add_numbered(doc, 'ST-segment elevation in the inferior leads (II, III and aVF) — the hallmark of inferior wall MI, indicating occlusion of the Right Coronary Artery (RCA) or, less commonly, a dominant Left Circumflex (LCx) artery.')
add_numbered(doc, 'Classic triad of symptoms — chest pain (ischaemic), sweating (sympathetic activation) and dyspnoea (reduced cardiac output/pulmonary congestion) in an older male with atherosclerosis risk factors (smoking, alcohol).')

doc.add_paragraph()

# ── (b) Physiological basis (3 marks) ────────────────────────────────────────
add_heading2(doc, '(b) Physiological Basis of Chest Pain, Dyspnoea and Sweating  [3 Marks]')

add_body(doc, '')
p = doc.add_paragraph()
p.paragraph_format.left_indent = Inches(0.3)
run = p.add_run('1. Chest Pain (Angina-like):')
run.bold = True
run.font.size = Pt(11)
add_body(doc,
    'During myocardial ischaemia, lack of oxygen causes anaerobic metabolism in cardiac muscle. '
    'Metabolic by-products accumulate — lactic acid, bradykinin, histamine, potassium ions, adenosine — '
    'which stimulate type C (pain) afferent fibres in the myocardium. These travel via cardiac sympathetic '
    'nerves (T1–T5 sympathetic ganglia) to the spinal cord and then to the thalamus and cortex, '
    'producing a visceral, crushing, substernal chest pain that may radiate to the left arm and jaw '
    '(referred pain via dermatomes T1–T4).')

p = doc.add_paragraph()
p.paragraph_format.left_indent = Inches(0.3)
run = p.add_run('2. Dyspnoea (Breathlessness):')
run.bold = True
run.font.size = Pt(11)
add_body(doc,
    'Infarction of the inferior wall reduces left ventricular (or right ventricular) pumping ability. '
    'Reduced cardiac output leads to increased pulmonary venous pressure and pulmonary congestion. '
    'Pulmonary oedema stimulates juxtacapillary (J) receptors (Hering-Breuer extension not involved here), '
    'sending signals via vagal afferents to the respiratory centre in the medulla, increasing respiratory '
    'drive. Also, acidosis from poor perfusion stimulates central and peripheral chemoreceptors, further '
    'intensifying breathlessness.')

p = doc.add_paragraph()
p.paragraph_format.left_indent = Inches(0.3)
run = p.add_run('3. Sweating (Diaphoresis):')
run.bold = True
run.font.size = Pt(11)
add_body(doc,
    'In response to the pain and fall in cardiac output, the sympathetic nervous system is massively '
    'activated (catecholamine surge — adrenaline + noradrenaline). Sympathetic cholinergic fibres '
    'innervate eccrine sweat glands, causing profuse cold, clammy sweating. This is a typical feature '
    'of sympathetic over-activity (shock state) accompanying acute MI.')

doc.add_paragraph()

# ── (c) ECG changes (2 marks) ─────────────────────────────────────────────────
add_heading2(doc, '(c) Reason for ECG Changes (ST Elevation in II, III, aVF)  [2 Marks]')
add_body(doc,
    'The inferior wall of the left ventricle is supplied by the Right Coronary Artery (RCA) in '
    '~80% of individuals. In this patient, acute thrombotic occlusion of the RCA causes transmural '
    'ischaemia/infarction of the inferior wall.')
doc.add_paragraph()
add_body(doc, 'Ionic basis of ST elevation:')
add_bullet(doc, 'Ischaemic myocardial cells cannot maintain resting membrane potential — they partially depolarise. This creates a "current of injury" — a potential difference between injured (depolarised) and normal (polarised) zones.')
add_bullet(doc, 'During systole: injured cells cannot repolarise fully → the ST segment (representing plateau of ventricular repolarisation) is shifted upwards relative to the baseline in leads facing the injured area.')
add_bullet(doc, 'Leads II, III and aVF look at the inferior surface of the heart — they record the maximal ST elevation. Reciprocal ST depression is seen in leads I and aVL (looking from the opposite direction).')
add_body(doc, 'Summary: ST elevation = transmural ischaemia of the inferior wall from RCA occlusion.')

doc.add_paragraph()

# ── (d) Stokes-Adams syndrome (3 marks) ──────────────────────────────────────
add_heading2(doc, "(d) Stokes-Adams Syndrome  [3 Marks]")
add_body(doc,
    "Stokes-Adams syndrome (Adams-Stokes attacks) refers to sudden episodes of syncope (loss of "
    "consciousness) caused by a sudden marked decrease in cardiac output, most commonly due to "
    "complete heart block (3rd degree AV block) with a prolonged period of ventricular asystole before "
    "an escape rhythm is established.")
doc.add_paragraph()
add_body(doc, 'Features:')
add_numbered(doc, 'Aetiology: Complete AV block → ventricles rely on slow idioventricular escape rhythm (20–40 bpm). The pause between the last conducted beat and the first escape beat can last 5–30 seconds → cerebral hypoperfusion → syncope.')
add_numbered(doc, 'Clinical presentation: Sudden, brief loss of consciousness without warning; pallor (from absent cardiac output); followed by flushing when rhythm resumes. Convulsions may occur if asystole > 10 seconds. No neurological deficit after recovery.')
add_numbered(doc, 'ECG findings: P waves occurring at normal sinus rate, QRS complexes at a slow, independent rate (AV dissociation), wide QRS complexes (if ventricular origin).')
add_body(doc, 'Treatment: Permanent cardiac pacemaker implantation.')

doc.add_paragraph()

# ── (e) Cardiac output definition + regulation (5 marks) ─────────────────────
add_heading2(doc, '(e) Definition of Cardiac Output and its Regulation in Detail  [5 Marks]')
add_body(doc,
    'Definition: Cardiac output (CO) is the volume of blood pumped by each ventricle per minute.')
p = doc.add_paragraph()
p.paragraph_format.left_indent = Inches(0.3)
run = p.add_run('CO = Heart Rate (HR) × Stroke Volume (SV)')
run.bold = True
run.font.size = Pt(11)
add_body(doc, 'Normal resting cardiac output ≈ 5 L/min  (HR 72 bpm × SV 70 mL).')
doc.add_paragraph()

add_body(doc, 'REGULATION OF CARDIAC OUTPUT:')
doc.add_paragraph()

p = doc.add_paragraph()
p.paragraph_format.left_indent = Inches(0.3)
run = p.add_run('I. Intrinsic (Frank-Starling) Mechanism:')
run.bold = True
run.underline = True
run.font.size = Pt(11)
add_body(doc,
    'The heart has the inherent ability to increase its force of contraction in response to an '
    'increase in end-diastolic volume (EDV — the preload). When venous return rises, more blood '
    'fills the ventricle → sarcomere stretch → increased overlap of actin and myosin → greater '
    'cross-bridge formation → increased force of contraction → increased stroke volume. '
    'This is the Frank-Starling Law of the Heart.')
add_bullet(doc, 'Increased venous return → increased EDV (preload) → increased SV → increased CO.')
add_bullet(doc, 'Ensures that the left and right ventricles pump equal outputs over time.')

doc.add_paragraph()
p = doc.add_paragraph()
p.paragraph_format.left_indent = Inches(0.3)
run = p.add_run('II. Extrinsic Neural Regulation (Autonomic Nervous System):')
run.bold = True
run.underline = True
run.font.size = Pt(11)

add_body(doc, 'A. Sympathetic stimulation (via β1-adrenergic receptors):')
add_bullet(doc, 'Chronotropy (+): Increases heart rate by increasing the slope of pacemaker potential in SA node.')
add_bullet(doc, 'Inotropy (+): Increases force of ventricular contraction (increased intracellular Ca²⁺ via cAMP).')
add_bullet(doc, 'Lusitropy (+): Faster relaxation — increases CO by allowing better filling.')
add_bullet(doc, 'Net effect: Both HR and SV increase → CO increases significantly (up to 25 L/min during exercise).')

add_body(doc, 'B. Parasympathetic stimulation (via muscarinic M2 receptors):')
add_bullet(doc, 'Chronotropy (−): Decreases heart rate by slowing SA node depolarisation (increased K⁺ conductance).')
add_bullet(doc, 'Mild negative inotropy on atria. Little direct effect on ventricles.')
add_bullet(doc, 'Net effect: CO decreases.')

doc.add_paragraph()
p = doc.add_paragraph()
p.paragraph_format.left_indent = Inches(0.3)
run = p.add_run('III. Humoral/Hormonal Regulation:')
run.bold = True
run.underline = True
run.font.size = Pt(11)
add_bullet(doc, 'Catecholamines (adrenaline, noradrenaline): Increase CO via β1 stimulation.')
add_bullet(doc, 'Thyroid hormone: Increases HR and myocardial contractility → increases CO (hyperthyroid state = high CO).')
add_bullet(doc, 'Glucagon, glucocorticoids: Mildly increase CO.')
add_bullet(doc, 'Acetylcholine: Decreases HR → decreases CO.')

doc.add_paragraph()
p = doc.add_paragraph()
p.paragraph_format.left_indent = Inches(0.3)
run = p.add_run('IV. Preload, Afterload and Contractility:')
run.bold = True
run.underline = True
run.font.size = Pt(11)
add_bullet(doc, 'Preload (EDV): ↑ preload → ↑ SV (Frank-Starling). Determined by venous return, blood volume, venous tone.')
add_bullet(doc, 'Afterload (aortic pressure / systemic vascular resistance): ↑ afterload → ↓ SV → ↓ CO. Heart must work harder to eject against resistance.')
add_bullet(doc, 'Contractility (Inotropic state): Independent of preload/afterload. ↑ contractility → ↑ SV → ↑ CO. Increased by catecholamines, digoxin, Ca²⁺, etc.')

doc.add_paragraph()
p = doc.add_paragraph()
p.paragraph_format.left_indent = Inches(0.3)
run = p.add_run('V. Local Metabolic Regulation (Tissue Demand):')
run.bold = True
run.underline = True
run.font.size = Pt(11)
add_body(doc,
    'Active tissues produce metabolic vasodilators (CO₂, H⁺, adenosine, K⁺, hypoxia). These '
    'dilate local arterioles → decrease peripheral resistance → increase venous return → increase '
    'CO (via Frank-Starling). This is the dominant mechanism during exercise: increased O₂ demand '
    'of muscles → local vasodilation → increased venous return → increased CO.')

add_divider(doc)

# ══════════════════════════════════════════════════════════════════════════════
# Q2  SHORT NOTES  (5 × 7 = 35 marks)
# ══════════════════════════════════════════════════════════════════════════════
add_heading1(doc, 'Q.2  Short Notes                                                                              (5×7 = 35 marks)')

# ────────────────────────────────────────────────────────────────────────────
# (a) O2-Hb Dissociation Curve (7 marks)
# ────────────────────────────────────────────────────────────────────────────
add_heading2(doc, '(a) Oxygen-Haemoglobin Dissociation Curve — Diagram, Factors and Sigmoid Shape  [7 Marks]')

add_body(doc,
    'The oxygen-haemoglobin (O₂-Hb) dissociation curve represents the relationship between '
    'the partial pressure of oxygen (PO₂) and the percentage saturation of haemoglobin with oxygen.')

doc.add_paragraph()
add_body(doc, 'Key values on the normal curve:')
add_bullet(doc, 'PO₂ = 100 mmHg (alveolar): Hb saturation ≈ 97%  (arterial blood)')
add_bullet(doc, 'PO₂ = 40 mmHg (tissues):   Hb saturation ≈ 75%  (venous blood)')
add_bullet(doc, 'PO₂ = 26 mmHg (P50):        Hb saturation = 50%  (P50 — affinity index)')

doc.add_paragraph()
add_body(doc, '[DIAGRAM NOTE: Draw an S-shaped (sigmoid) curve with PO₂ on X-axis (0-100 mmHg) and % Hb saturation on Y-axis (0-100%). Mark: PO₂ 40 mmHg (75% sat), PO₂ 60 mmHg (90% sat), PO₂ 100 mmHg (97% sat). Show right-shift and left-shift curves with labels.]')

doc.add_paragraph()
p = doc.add_paragraph()
p.paragraph_format.left_indent = Inches(0.3)
run = p.add_run('Why is the Curve Sigmoid-Shaped?')
run.bold = True
run.underline = True
run.font.size = Pt(11)
add_body(doc, 'The sigmoid shape is due to co-operative binding (allosteric interaction):')
add_numbered(doc, 'Haemoglobin is a tetramer with 4 subunits (2α + 2β chains), each carrying one haem group with one Fe²⁺ ion that binds one O₂ molecule.')
add_numbered(doc, 'When the first O₂ binds to one haem group, it induces a conformational change (R-state/relaxed state) that increases the affinity of the remaining 3 subunits for O₂ — this is positive cooperativity.')
add_numbered(doc, 'At low PO₂, very few O₂ molecules are bound (T-state/tense state, low affinity) — this creates the flat lower part of the curve.')
add_numbered(doc, 'As PO₂ rises, cooperative binding accelerates — the curve rises steeply in the middle portion.')
add_numbered(doc, 'At high PO₂, all 4 sites are nearly saturated — the curve flattens at the top (plateau).')
add_body(doc, 'Physiological significance: The flat upper portion ensures adequate loading in the lungs even if PO₂ drops to 60 mmHg. The steep middle portion ensures efficient unloading of O₂ in tissues at PO₂ 40 mmHg.')

doc.add_paragraph()
p = doc.add_paragraph()
p.paragraph_format.left_indent = Inches(0.3)
run = p.add_run('Factors Shifting the Curve:')
run.bold = True
run.underline = True
run.font.size = Pt(11)

add_body(doc, 'RIGHT SHIFT (↑ P50 = decreased affinity = more O₂ released to tissues) — favoured in tissues:')
add_bullet(doc, '↑ CO₂ (Bohr effect)', '')
add_bullet(doc, '↓ pH (acidosis — Bohr effect)')
add_bullet(doc, '↑ Temperature')
add_bullet(doc, '↑ 2,3-BPG (bisphosphoglycerate) — in anaemia, chronic hypoxia, high altitude')

add_body(doc, 'LEFT SHIFT (↓ P50 = increased affinity = more O₂ held by Hb) — favoured in lungs:')
add_bullet(doc, '↓ CO₂')
add_bullet(doc, '↑ pH (alkalosis)')
add_bullet(doc, '↓ Temperature')
add_bullet(doc, '↓ 2,3-BPG')
add_bullet(doc, 'Fetal Hb (HbF) — binds 2,3-BPG less avidly → left shift → better O₂ extraction from mother')
add_bullet(doc, 'Carboxyhaemoglobin (CO poisoning) — left shift + reduced O₂-carrying capacity')

doc.add_paragraph()
add_divider(doc)

# ────────────────────────────────────────────────────────────────────────────
# (b) Compensatory mechanisms in hemorrhagic shock (7 marks)
# ────────────────────────────────────────────────────────────────────────────
add_heading2(doc, '(b) Compensatory Mechanisms in Haemorrhagic Shock  [7 Marks]')

add_body(doc,
    'Haemorrhagic shock occurs due to significant blood/fluid loss resulting in inadequate tissue '
    'perfusion. The body activates multiple compensatory mechanisms to restore blood pressure and '
    'cardiac output.')

doc.add_paragraph()
p = doc.add_paragraph()
p.paragraph_format.left_indent = Inches(0.3)
run = p.add_run('1. Immediate Cardiovascular Reflexes (within seconds):')
run.bold = True
run.font.size = Pt(11)
add_bullet(doc, 'Fall in BP → baroreceptors (carotid sinus, aortic arch) detect reduced stretch → increased sympathetic tone and decreased vagal tone.')
add_bullet(doc, 'Increased HR (tachycardia) and increased contractility → maintains CO.')
add_bullet(doc, 'Vasoconstriction of arterioles and veins (via α1-adrenergic receptors) → increases SVR → maintains MAP.')
add_bullet(doc, 'Venoconstriction: reduces venous capacitance → increases venous return and preload.')

doc.add_paragraph()
p = doc.add_paragraph()
p.paragraph_format.left_indent = Inches(0.3)
run = p.add_run('2. Neuroendocrine Response (within minutes):')
run.bold = True
run.font.size = Pt(11)
add_bullet(doc, 'Renin-Angiotensin-Aldosterone System (RAAS): Reduced renal perfusion → renin release → angiotensin II → potent vasoconstriction + aldosterone → Na⁺ and water retention → plasma volume expansion.')
add_bullet(doc, 'ADH (Vasopressin): Released from posterior pituitary in response to low BP and increased osmolality → water retention by renal collecting ducts → increases plasma volume. Also causes vasoconstriction.')
add_bullet(doc, 'Catecholamines (adrenaline from adrenal medulla): Increase HR, contractility, vasoconstriction. Also increase blood glucose (glycogenolysis) for metabolic demands.')
add_bullet(doc, 'Cortisol: Increases gluconeogenesis; supports cardiovascular response to catecholamines.')

doc.add_paragraph()
p = doc.add_paragraph()
p.paragraph_format.left_indent = Inches(0.3)
run = p.add_run('3. Fluid Shift from Interstitium to Plasma (Transcapillary Refill):')
run.bold = True
run.font.size = Pt(11)
add_bullet(doc, 'Reduced capillary hydrostatic pressure (due to arteriolar vasoconstriction) → net fluid absorption from interstitial space into capillaries → increases plasma volume by up to 0.5 L.')
add_bullet(doc, 'This mechanism can restore up to 1 L in the first hour and is the basis of "autotransfusion".')

doc.add_paragraph()
p = doc.add_paragraph()
p.paragraph_format.left_indent = Inches(0.3)
run = p.add_run('4. Haematological Compensation:')
run.bold = True
run.font.size = Pt(11)
add_bullet(doc, 'Spleen contracts (in animals) → releases stored RBCs → increases O₂-carrying capacity.')
add_bullet(doc, 'Erythropoietin (EPO) release from kidney → stimulates erythropoiesis → RBC production over days to weeks.')
add_bullet(doc, 'Plasma protein synthesis increases → restores oncotic pressure over 24–48 hours.')

doc.add_paragraph()
p = doc.add_paragraph()
p.paragraph_format.left_indent = Inches(0.3)
run = p.add_run('5. Tissue-Level Compensation:')
run.bold = True
run.font.size = Pt(11)
add_bullet(doc, 'Peripheral O₂ extraction increases: tissues extract more O₂ from each unit of blood (↓ venous PO₂).')
add_bullet(doc, 'Anaerobic metabolism → lactic acid accumulation → Bohr effect → right shift of O₂-Hb curve → more O₂ delivered to tissues.')

add_body(doc, 'NOTE: These mechanisms are self-limiting. If > 30–40% blood volume is lost (Class III/IV shock), compensatory mechanisms fail → decompensated shock → death if untreated.')

doc.add_paragraph()
add_divider(doc)

# ────────────────────────────────────────────────────────────────────────────
# (c) Long-term regulation of blood pressure (7 marks)
# ────────────────────────────────────────────────────────────────────────────
add_heading2(doc, '(c) Long-Term Regulation of Blood Pressure  [7 Marks]')

add_body(doc,
    'Long-term BP regulation is primarily achieved by the kidney through control of extracellular '
    'fluid (ECF) volume and blood volume. This is also called the "infinite gain" mechanism because '
    'it can, in theory, completely correct a sustained deviation in BP over time.')

doc.add_paragraph()
p = doc.add_paragraph()
p.paragraph_format.left_indent = Inches(0.3)
run = p.add_run('1. Renal Pressure-Natriuresis Mechanism (Guyton\'s Concept):')
run.bold = True
run.underline = True
run.font.size = Pt(11)
add_body(doc,
    'The kidney regulates BP through its control of urinary output:')
add_bullet(doc, '↑ BP → ↑ glomerular filtration + ↓ tubular reabsorption → natriuresis and diuresis → reduced ECF and blood volume → reduced venous return → reduced CO → BP returns to normal.')
add_bullet(doc, '↓ BP → ↓ urinary output → fluid retention → ↑ blood volume → ↑ venous return → ↑ CO → BP rises back to normal.')

doc.add_paragraph()
p = doc.add_paragraph()
p.paragraph_format.left_indent = Inches(0.3)
run = p.add_run('2. Renin-Angiotensin-Aldosterone System (RAAS):')
run.bold = True
run.underline = True
run.font.size = Pt(11)
add_bullet(doc, 'Low renal perfusion → Juxtaglomerular (JG) cells release renin → converts angiotensinogen to angiotensin I.')
add_bullet(doc, 'ACE (in lungs) converts Ang I → Angiotensin II.')
add_bullet(doc, 'Angiotensin II: (a) Direct vasoconstriction → ↑ SVR → ↑ BP. (b) Stimulates aldosterone from adrenal cortex → Na⁺ + water retention → ↑ blood volume → ↑ BP. (c) Stimulates ADH release and thirst.')
add_bullet(doc, 'Long-term: Na⁺ and water retention elevates blood volume and hence MAP over days to weeks.')

doc.add_paragraph()
p = doc.add_paragraph()
p.paragraph_format.left_indent = Inches(0.3)
run = p.add_run('3. ADH (Antidiuretic Hormone / Vasopressin):')
run.bold = True
run.underline = True
run.font.size = Pt(11)
add_bullet(doc, 'Released from posterior pituitary in response to ↑ osmolality or ↓ BP.')
add_bullet(doc, 'Acts on V2 receptors in renal collecting duct → inserts aquaporin-2 channels → water reabsorption → restores blood volume and BP.')
add_bullet(doc, 'Also acts on V1 receptors → vasoconstriction (pressor effect).')

doc.add_paragraph()
p = doc.add_paragraph()
p.paragraph_format.left_indent = Inches(0.3)
run = p.add_run('4. Atrial Natriuretic Peptide (ANP) and BNP:')
run.bold = True
run.underline = True
run.font.size = Pt(11)
add_bullet(doc, 'Released by atria (ANP) and ventricles (BNP) when stretched by ↑ blood volume.')
add_bullet(doc, 'Causes natriuresis, diuresis and vasodilation → reduces blood volume and BP.')
add_bullet(doc, 'Acts as a counter-regulatory mechanism against RAAS and ADH.')

doc.add_paragraph()
p = doc.add_paragraph()
p.paragraph_format.left_indent = Inches(0.3)
run = p.add_run('5. Aldosterone (Independent role):')
run.bold = True
run.underline = True
run.font.size = Pt(11)
add_bullet(doc, 'Acts on principal cells of renal collecting duct → activates ENaC channels → Na⁺ reabsorption + K⁺/H⁺ secretion.')
add_bullet(doc, 'Chronically elevated aldosterone (primary hyperaldosteronism / Conn\'s syndrome) causes hypertension due to persistent Na⁺ and water retention.')

doc.add_paragraph()
p = doc.add_paragraph()
p.paragraph_format.left_indent = Inches(0.3)
run = p.add_run('6. Structural Autoregulation of Vascular Resistance:')
run.bold = True
run.underline = True
run.font.size = Pt(11)
add_bullet(doc, 'Chronically elevated CO leads to local metabolic autoregulation → vasoconstriction → elevated SVR. Over months-years, chronic hypertension → vascular remodelling (hypertrophy of arteriolar walls) → sustained ↑ SVR → chronic hypertension.')

doc.add_paragraph()
add_divider(doc)

# ────────────────────────────────────────────────────────────────────────────
# (d) Acclimatization at high altitudes (7 marks)
# ────────────────────────────────────────────────────────────────────────────
add_heading2(doc, '(d) Acclimatization at High Altitudes  [7 Marks]')

add_body(doc,
    'Acclimatization refers to the physiological adjustments that occur when an individual '
    'ascends to high altitude (>2500 m) where barometric pressure and inspired PO₂ are reduced. '
    'At high altitude, the FiO₂ remains 21% but barometric pressure falls → alveolar PO₂ falls → '
    'arterial hypoxaemia → various adaptive responses.')

doc.add_paragraph()
p = doc.add_paragraph()
p.paragraph_format.left_indent = Inches(0.3)
run = p.add_run('Immediate Responses (within hours):')
run.bold = True
run.underline = True
run.font.size = Pt(11)
add_numbered(doc, 'Hyperventilation: Hypoxia stimulates peripheral chemoreceptors (carotid/aortic bodies) → increased respiratory rate and depth → ↓ PaCO₂ (hypocapnia) → respiratory alkalosis. This is the first and most important response.')
add_numbered(doc, 'Tachycardia and increased cardiac output: Sympathetic activation from hypoxia → increased HR and CO → more O₂ delivered per unit time.')
add_numbered(doc, 'Redistribution of blood flow to vital organs (brain, heart).')

doc.add_paragraph()
p = doc.add_paragraph()
p.paragraph_format.left_indent = Inches(0.3)
run = p.add_run('Compensatory Responses (within hours to days):')
run.bold = True
run.underline = True
run.font.size = Pt(11)
add_numbered(doc, 'Renal compensation for respiratory alkalosis: Kidneys excrete HCO₃⁻ (bicarbonate) → pH returns toward normal (metabolic compensation). This allows ventilation to increase further without limiting alkalosis.')
add_numbered(doc, 'Increased 2,3-BPG: Hypoxia activates glycolysis in RBCs → ↑ 2,3-BPG → right shift of O₂-Hb curve → better O₂ unloading to tissues. (Note: Right shift also slightly impairs O₂ loading in lungs, but at extreme altitude, this is balanced by the renal alkalosis compensation.)')

doc.add_paragraph()
p = doc.add_paragraph()
p.paragraph_format.left_indent = Inches(0.3)
run = p.add_run('Long-Term Acclimatization (days to weeks):')
run.bold = True
run.underline = True
run.font.size = Pt(11)
add_numbered(doc, 'Polycythaemia (increased RBC production): Renal peritubular cells sense hypoxia → ↑ Erythropoietin (EPO) → stimulates bone marrow erythropoiesis → ↑ RBC count, Hb, haematocrit → ↑ O₂-carrying capacity of blood. Haematocrit may rise from 45% to 60–65%.')
add_numbered(doc, 'Increased capillary density (angiogenesis): More capillaries per unit tissue → reduced diffusion distance → better O₂ delivery.')
add_numbered(doc, 'Increased mitochondrial density and myoglobin content: Cells become more efficient at extracting and using O₂.')
add_numbered(doc, 'Pulmonary vasoconstriction (hypoxic pulmonary vasoconstriction — HPV): Redirects blood from poorly ventilated areas to better-ventilated areas. Chronic HPV → pulmonary hypertension → right ventricular hypertrophy (cor pulmonale) — a maladaptation at extreme altitude.')
add_numbered(doc, 'Gradual decrease in HR and CO back toward normal as blood O₂ content improves.')

add_body(doc,
    'Net result of acclimatization: Arterial O₂ content and delivery to tissues is maintained '
    'despite low atmospheric PO₂, allowing sustained physical activity at high altitude.')

doc.add_paragraph()
add_divider(doc)

# ────────────────────────────────────────────────────────────────────────────
# (e) Functions of bile + enterohepatic circulation (7 marks)
# ────────────────────────────────────────────────────────────────────────────
add_heading2(doc, '(e) Functions of Bile and Enterohepatic Circulation of Bile Salts  [7 Marks]')

add_body(doc,
    'Bile is a greenish-yellow alkaline fluid secreted by hepatocytes and stored/concentrated in '
    'the gallbladder. Total daily secretion: ~500–1000 mL. pH ≈ 7.8–8.6.')

doc.add_paragraph()
p = doc.add_paragraph()
p.paragraph_format.left_indent = Inches(0.3)
run = p.add_run('Composition of Bile:')
run.bold = True
run.font.size = Pt(11)
add_bullet(doc, 'Water (97%), bile salts (primary: cholic acid, chenodeoxycholic acid; secondary: deoxycholic acid, lithocholic acid), bile pigments (bilirubin, biliverdin), cholesterol, phospholipids (lecithin), electrolytes, mucus.')

doc.add_paragraph()
p = doc.add_paragraph()
p.paragraph_format.left_indent = Inches(0.3)
run = p.add_run('Functions of Bile:')
run.bold = True
run.underline = True
run.font.size = Pt(11)

add_numbered(doc, 'Emulsification of fats: Bile salts are amphipathic (hydrophilic + hydrophobic ends). They break large fat droplets into small micelles (emulsification) → greatly increase surface area for lipase action. Without bile, fat digestion is markedly impaired.')
add_numbered(doc, 'Formation of micelles for fat absorption: Bile salts form mixed micelles with monoglycerides, fatty acids, fat-soluble vitamins (A, D, E, K) and cholesterol → transport them to the brush border of enterocytes for absorption.')
add_numbered(doc, 'Absorption of fat-soluble vitamins: A, D, E, K require bile for absorption. Bile deficiency → steatorrhoea + fat-soluble vitamin deficiencies.')
add_numbered(doc, 'Cholesterol excretion: Main route of cholesterol excretion from the body is via bile.')
add_numbered(doc, 'Excretion of bilirubin and other waste products: Bilirubin (from Hb breakdown) is conjugated in liver and excreted in bile → intestinal bacteria convert it to urobilinogen/stercobilinogen → gives stool its brown colour.')
add_numbered(doc, 'Alkalinisation of duodenum: Bile (alkaline, HCO₃⁻ rich) neutralises gastric acid entering duodenum → optimal pH for pancreatic enzyme activity.')
add_numbered(doc, 'Intestinal motility: Bile salts stimulate peristalsis in the small intestine.')

doc.add_paragraph()
p = doc.add_paragraph()
p.paragraph_format.left_indent = Inches(0.3)
run = p.add_run('Enterohepatic Circulation of Bile Salts:')
run.bold = True
run.underline = True
run.font.size = Pt(11)
add_body(doc,
    'The enterohepatic circulation is the recycling of bile salts between the liver and the intestine. '
    'The total bile salt pool is ~3–5 g, but it cycles 6–10 times per day, delivering a total of '
    '20–30 g of bile salts to the intestine daily.')
add_numbered(doc, 'Liver synthesises primary bile acids (cholic and chenodeoxycholic acid) from cholesterol, conjugates them with glycine or taurine → bile salts. Secreted into bile ducts → gallbladder.')
add_numbered(doc, 'On eating → CCK (cholecystokinin) released from duodenum → gallbladder contracts → bile salts released into duodenum.')
add_numbered(doc, 'Bile salts assist fat digestion and absorption in the jejunum.')
add_numbered(doc, 'In the terminal ileum: ~95% of bile salts are actively reabsorbed by specific Na⁺-dependent transporters (ASBT — apical sodium-dependent bile acid transporter).')
add_numbered(doc, 'Absorbed bile salts enter portal circulation → return to liver → re-secreted into bile (hepatic extraction 70–90%).')
add_numbered(doc, 'Only ~5% of bile salts escape into the colon, where bacteria deconjugate them → secondary bile acids (deoxycholic and lithocholic acid) → some reabsorbed, rest excreted in stool.')
add_body(doc,
    'Significance: The enterohepatic circulation conserves bile salts and reduces the need for '
    'de novo synthesis. Bile acid sequestrants (e.g., cholestyramine) interrupt this cycle → '
    'more bile acids synthesised from cholesterol → serum cholesterol falls (used as treatment for '
    'hypercholesterolaemia).')

doc.add_paragraph()
add_divider(doc)

# ────────────────────────────────────────────────────────────────────────────
# (f) Role of peripheral chemoreceptors in regulation of respiration (7 marks)
# ────────────────────────────────────────────────────────────────────────────
add_heading2(doc, '(f) Role of Peripheral Chemoreceptors in Regulation of Respiration  [7 Marks]')

add_body(doc,
    'Peripheral chemoreceptors are specialised sensory cells located outside the CNS that monitor '
    'the chemical composition of arterial blood and send signals to the respiratory centre to '
    'maintain homeostasis.')

doc.add_paragraph()
p = doc.add_paragraph()
p.paragraph_format.left_indent = Inches(0.3)
run = p.add_run('Location:')
run.bold = True
run.font.size = Pt(11)
add_bullet(doc, 'Carotid bodies: Located at the bifurcation of the common carotid arteries. More important. Afferents via the carotid sinus nerve (branch of glossopharyngeal nerve, CN IX) → nucleus tractus solitarius (NTS) → respiratory centres.')
add_bullet(doc, 'Aortic bodies: Located in the aortic arch. Afferents via the vagus nerve (CN X). Less important for respiratory control.')

doc.add_paragraph()
p = doc.add_paragraph()
p.paragraph_format.left_indent = Inches(0.3)
run = p.add_run('Cell Types:')
run.bold = True
run.font.size = Pt(11)
add_bullet(doc, 'Type I (glomus) cells: The main chemosensory cells. Contain dopamine, serotonin, and other neurotransmitters. Sense changes in PO₂, PCO₂ and pH.')
add_bullet(doc, 'Type II (sustentacular) cells: Supporting cells, similar to glial cells. Not chemosensory.')

doc.add_paragraph()
p = doc.add_paragraph()
p.paragraph_format.left_indent = Inches(0.3)
run = p.add_run('Stimuli (in order of sensitivity for peripheral chemoreceptors):')
run.bold = True
run.font.size = Pt(11)
add_numbered(doc, 'Hypoxia (↓ PaO₂ < 60 mmHg): PRIMARY stimulus. Mechanism: ↓ PO₂ → inhibits K⁺ channels in glomus cells → cell depolarisation → Ca²⁺ influx → dopamine/neurotransmitter release → afferent nerve firing → respiratory centre. Significant response only when PaO₂ falls below 60 mmHg (steep part of O₂-Hb curve). Important in patients with chronic hypoxia (COPD) where hypoxic drive becomes the primary stimulus ("hypoxic drive").')
add_numbered(doc, 'Hypercapnia (↑ PaCO₂): Peripheral chemoreceptors contribute ~20% of the ventilatory response to CO₂ (the remaining 80% is from central chemoreceptors at the medullary surface). PaCO₂ acts partly via local pH change at the receptor.')
add_numbered(doc, 'Acidosis (↓ pH): Unlike central chemoreceptors (which respond only to changes in CSF pH/PCO₂), peripheral chemoreceptors respond DIRECTLY to blood pH changes, including metabolic acidosis. This is important in: diabetic ketoacidosis, lactic acidosis — peripheral chemoreceptors drive Kussmaul breathing (deep, rapid respirations).')
add_numbered(doc, 'Other stimuli: Ischaemia, hypotension, nicotine, cytotoxic drugs (cyanide, CO).')

doc.add_paragraph()
p = doc.add_paragraph()
p.paragraph_format.left_indent = Inches(0.3)
run = p.add_run('Response:')
run.bold = True
run.font.size = Pt(11)
add_bullet(doc, 'Stimulation → increased firing rate → signals sent to dorsal respiratory group (DRG) in medulla → increased depth (tidal volume) and rate of breathing → increased minute ventilation.')
add_bullet(doc, 'Also trigger cardiovascular responses: bradycardia and hypertension (trigeminal-vagal reflex) when stimulated in isolation — though during hypoxia this is overridden by cortical/ventilatory responses causing tachycardia.')

doc.add_paragraph()
p = doc.add_paragraph()
p.paragraph_format.left_indent = Inches(0.3)
run = p.add_run('Clinical Importance:')
run.bold = True
run.font.size = Pt(11)
add_bullet(doc, 'COPD patients: Central chemoreceptors become insensitive to chronic hypercapnia → peripheral hypoxic drive becomes primary respiratory stimulus. Administration of high-flow O₂ → abolishes hypoxic drive → apnoea ("CO₂ narcosis" risk).')
add_bullet(doc, 'Cheyne-Stokes breathing: Alternating hyperpnoea and apnoea; occurs in heart failure and CNS lesions due to delay in chemoreceptor feedback loop.')
add_bullet(doc, 'High altitude: Peripheral chemoreceptors (carotid bodies) drive hyperventilation in response to hypoxia, initiating acclimatisation.')

doc.add_paragraph()
add_divider(doc)

# ────────────────────────────────────────────────────────────────────────────
# (g) Composition and regulation of pancreatic juice (7 marks)
# ────────────────────────────────────────────────────────────────────────────
add_heading2(doc, '(g) Composition and Regulation of Secretion of Pancreatic Juice  [7 Marks]')

add_body(doc,
    'The pancreas is a mixed exocrine/endocrine organ. The exocrine pancreas secretes pancreatic '
    'juice — ~1.5–2 L/day. It is the most important digestive fluid in the body, containing enzymes '
    'for digestion of proteins, carbohydrates and fats, along with bicarbonate to neutralise '
    'gastric acid.')

doc.add_paragraph()
p = doc.add_paragraph()
p.paragraph_format.left_indent = Inches(0.3)
run = p.add_run('Composition of Pancreatic Juice:')
run.bold = True
run.underline = True
run.font.size = Pt(11)

add_body(doc, 'A. Aqueous (Electrolyte) Component — secreted by ductal cells (centroacinar cells):')
add_bullet(doc, 'Water: 97%')
add_bullet(doc, 'Sodium (Na⁺): Similar to plasma (~140 mEq/L)')
add_bullet(doc, 'Potassium (K⁺): Similar to plasma (~5 mEq/L)')
add_bullet(doc, 'Bicarbonate (HCO₃⁻): KEY component — 70–120 mEq/L at high flow rates (highest of any body fluid). Neutralises gastric acid in duodenum → pH 6.0–7.0.')
add_bullet(doc, 'Chloride (Cl⁻): Inversely related to HCO₃⁻ (sum = ~155 mEq/L, matching total anion content)')
add_bullet(doc, 'pH: 7.8–8.4 (alkaline, due to high HCO₃⁻)')

add_body(doc, 'B. Enzymatic Component — secreted by acinar cells (as inactive zymogens):')

add_body(doc, 'Proteases (secreted as inactive zymogens):')
add_bullet(doc, 'Trypsinogen → activated by enterokinase (enteropeptidase) in duodenum → Trypsin (active). Trypsin then activates all other zymogens (cascade amplification).')
add_bullet(doc, 'Chymotrypsinogen → Chymotrypsin (cleaves aromatic/large neutral amino acids)')
add_bullet(doc, 'Proelastase → Elastase (cleaves elastic fibres)')
add_bullet(doc, 'Procarboxypeptidase A and B → Carboxypeptidases (exopeptidases: cleave C-terminal amino acids)')

add_body(doc, 'Amylolytic enzyme:')
add_bullet(doc, 'Pancreatic amylase: Secreted in active form. Hydrolyses starch and glycogen to maltose, maltotriose and α-limit dextrins.')

add_body(doc, 'Lipolytic enzymes:')
add_bullet(doc, 'Pancreatic lipase (colipase-dependent): Hydrolyses triglycerides to 2-monoglyceride and 2 free fatty acids. Requires colipase (also secreted by pancreas) to displace bile salts from lipid surface.')
add_bullet(doc, 'Phospholipase A₂ (secreted as prophospholipase): Cleaves phospholipids.')
add_bullet(doc, 'Cholesterol esterase: Hydrolyses cholesterol esters.')

add_body(doc, 'Nucleases:')
add_bullet(doc, 'DNase and RNase: Digest nucleic acids.')

doc.add_paragraph()
p = doc.add_paragraph()
p.paragraph_format.left_indent = Inches(0.3)
run = p.add_run('Regulation of Pancreatic Secretion:')
run.bold = True
run.underline = True
run.font.size = Pt(11)

add_body(doc, '3 Phases of Regulation:')
add_numbered(doc,
    'Cephalic phase (10% of total): Sight, smell, taste and chewing of food → vagal stimulation (ACh) → '
    'direct stimulation of acinar cells → enzyme-rich pancreatic secretion. Abolished by vagotomy.')
add_numbered(doc,
    'Gastric phase (10%): Distension of stomach → vagovagal reflex → enzyme-rich secretion from pancreas. '
    'Also, some gastrin from G-cells stimulates acinar cells.')
add_numbered(doc,
    'Intestinal phase (80% — most important):\n'
    '   • SECRETIN: Acid (H⁺) entering duodenum (pH < 4.5) → S-cells of duodenum release secretin → acts on ductal cells → large volume of HCO₃⁻-rich pancreatic juice. (Secretin effect: "voluminous + alkaline" juice.)\n'
    '   • CCK (Cholecystokinin): Fat and protein digestion products entering duodenum → I-cells release CCK → acts on acinar cells (CCK₁/A receptors) → enzyme-rich pancreatic juice + gallbladder contraction. (CCK effect: "enzyme-rich" juice.)\n'
    '   • Synergism: Secretin + CCK act synergistically — together they produce a response greater than either alone.\n'
    '   • Vagal potentiation: Vagal tone enhances the response to both secretin and CCK.')

doc.add_paragraph()
p = doc.add_paragraph()
p.paragraph_format.left_indent = Inches(0.3)
run = p.add_run('Protective Mechanisms against Autodigestion:')
run.bold = True
run.font.size = Pt(11)
add_bullet(doc, 'Zymogens stored in membrane-bound granules (zymogen granules) — enzymes segregated from cell cytoplasm.')
add_bullet(doc, 'Trypsin inhibitors (SPINK1 / pancreatic secretory trypsin inhibitor, PSTI) present in pancreatic juice and acinar cells neutralise any prematurely activated trypsin.')
add_bullet(doc, 'Enterokinase is only present in duodenal lumen — activation occurs distally, away from the pancreas.')
add_bullet(doc, 'Failure of these mechanisms → acute pancreatitis (autodigestion of pancreatic tissue).')

doc.add_paragraph()
add_divider(doc)

# Footer
p = doc.add_paragraph()
p.alignment = WD_ALIGN_PARAGRAPH.CENTER
run = p.add_run('— End of Solved Answer Sheet —')
run.italic = True
run.font.size = Pt(10)
run.font.color.rgb = RGBColor(0x88, 0x88, 0x88)

# Save
out_path = '/tmp/workspace/unit-test-physiology/Physiology_Unit_Test_3_Solved.docx'
doc.save(out_path)
print(f'Saved: {out_path}')
Running Command

cd /tmp/workspace/unit-test-physiology && python3 build_answers.py

Editing File

~/unit-test-physiology/build_answers.py

Successfully replaced 1 instance(s) of the string in '/tmp/workspace/unit-test-physiology/build_answers.py'
Running Command

cd /tmp/workspace/unit-test-physiology && python3 build_answers.py

Your solved answer paper is ready! Download it here:

Physiology Unit Test 3 Solved

Word Document · DOCX


Here is a complete summary of everything solved, with marks distribution:

Q.1 Long Answer (2+3+2+3+5 = 15 marks)

Case: 65-yr male, chronic smoker, chest pain + sweating + dyspnoea, ECG ST elevation in II, III, aVF

(a) Diagnosis + 2 features [2 marks]

Diagnosis: Acute Inferior Wall Myocardial Infarction (AWMI)
  1. ST elevation in inferior leads (II, III, aVF) - hallmark of RCA occlusion
  2. Classic triad of chest pain + diaphoresis + dyspnoea in a high-risk male (smoker, alcoholic)

(b) Physiological basis of symptoms [3 marks]

  • Chest pain: Ischaemia → anaerobic metabolism → accumulation of lactate, bradykinin, K⁺, adenosine → stimulate Type C nociceptive fibres → travel via T1-T5 sympathetic afferents → visceral, referred pain
  • Dyspnoea: Reduced LV function → ↑ pulmonary venous pressure → J-receptor stimulation via vagal afferents → ↑ respiratory drive; also metabolic acidosis stimulates chemoreceptors
  • Sweating: Massive sympathetic/catecholamine surge → activation of eccrine sweat glands by sympathetic cholinergic fibres → cold, clammy diaphoresis

(c) ECG changes - reason [2 marks]

Inferior wall supplied by RCA (80% of individuals). Thrombotic occlusion → transmural ischaemia → "current of injury" - ischaemic cells partially depolarised → ST segment elevated in leads II, III, aVF (which face the inferior wall). Reciprocal ST depression in I and aVL.

(d) Stokes-Adams Syndrome [3 marks]

Sudden syncopal episodes from complete AV block (3rd degree) → ventricular asystole before escape rhythm → cerebral hypoperfusion → loss of consciousness. Features: no prodrome, pallor followed by flushing, possible convulsions if asystole >10 s, ECG shows AV dissociation. Treatment: permanent pacemaker.

(e) Cardiac Output - Definition + Regulation [5 marks]

Definition: CO = HR × SV (Normal: ~5 L/min)
Regulation:
  1. Frank-Starling (intrinsic): ↑ venous return → ↑ EDV → ↑ sarcomere stretch → ↑ contractility → ↑ SV
  2. Sympathetic (extrinsic): β1 → ↑ HR + ↑ SV (via ↑ cAMP, ↑ Ca²⁺)
  3. Parasympathetic: M2 → ↓ HR → ↓ CO
  4. Hormonal: Catecholamines, thyroid hormone ↑ CO; ANP/BNP reduce it
  5. Preload/Afterload/Contractility: ↑ Preload → ↑ CO; ↑ Afterload → ↓ CO; ↑ Contractility → ↑ CO
  6. Metabolic autoregulation: Active tissues → vasodilators → ↓ SVR → ↑ venous return → ↑ CO (dominant in exercise)

Q.2 Short Notes (5 × 7 = 35 marks)

(a) O₂-Hb Dissociation Curve [7 marks]

Sigmoid curve. PO₂ 100 mmHg → 97% sat (lungs); PO₂ 40 mmHg → 75% sat (tissues); P50 = 26 mmHg.
  • Sigmoid shape reason: Co-operative binding - binding of first O₂ to one haem increases affinity of remaining 3 subunits (allosteric T-state to R-state transition)
  • Right shift (↓ affinity, ↑ O₂ delivery): ↑CO₂, ↓pH, ↑temp, ↑2,3-BPG (Bohr effect)
  • Left shift (↑ affinity): ↓CO₂, ↑pH, ↓temp, ↓2,3-BPG, HbF, CO poisoning

(b) Compensatory Mechanisms in Haemorrhagic Shock [7 marks]

  1. Baroreceptor reflex → tachycardia + vasoconstriction (seconds)
  2. RAAS activation → Ang II (vasoconstriction) + Aldosterone (Na⁺/H₂O retention)
  3. ADH release → water retention + vasoconstriction
  4. Transcapillary fluid shift → autotransfusion (up to 1L over 1 hour)
  5. EPO → polycythaemia over days-weeks
  6. ↑ O₂ extraction + Bohr effect (right shift from lactic acidosis)

(c) Long-term Regulation of Blood Pressure [7 marks]

  1. Renal pressure-natriuresis (Guyton's infinite gain mechanism) - kidneys control ECF volume
  2. RAAS: Renin → Ang I → Ang II → vasoconstriction + Aldosterone → Na⁺ retention
  3. ADH: ↑ blood volume via water reabsorption (aquaporin-2)
  4. ANP/BNP: Counter-regulation - natriuresis + vasodilation
  5. Aldosterone: ENaC-mediated Na⁺ reabsorption
  6. Vascular remodelling: Chronic ↑ SVR from arteriolar hypertrophy

(d) Acclimatization at High Altitude [7 marks]

  • Immediate: Hyperventilation (peripheral chemoreceptors), tachycardia, ↑ CO
  • Hours-days: Renal HCO₃⁻ excretion (corrects respiratory alkalosis), ↑ 2,3-BPG
  • Days-weeks: Polycythaemia (↑ EPO → ↑ RBC), ↑ capillary density, ↑ myoglobin + mitochondria, pulmonary hypoxic vasoconstriction

(e) Functions of Bile + Enterohepatic Circulation [7 marks]

  • Functions: Emulsification of fats, micelle formation for fat absorption, absorption of fat-soluble vitamins (A, D, E, K), cholesterol excretion, bilirubin excretion, alkalinisation of duodenum, stimulation of intestinal motility
  • Enterohepatic circulation: Liver synthesises bile salts → secreted via bile → 95% reabsorbed in terminal ileum (ASBT transporter) → portal vein → back to liver. Pool (3-5 g) cycles 6-10 times/day. Bile acid sequestrants (cholestyramine) interrupt this cycle → ↓ serum cholesterol.

(f) Peripheral Chemoreceptors in Respiration [7 marks]

  • Location: Carotid bodies (CN IX) - primary; Aortic bodies (CN X) - secondary
  • Cell type: Type I (glomus) cells - sense PO₂, PCO₂, pH
  • Stimuli in order: Hypoxia (PaO₂ <60 mmHg - PRIMARY), ↑PaCO₂ (20% of CO₂ response), metabolic acidosis (direct pH sensing - causes Kussmaul breathing)
  • Mechanism: ↓PO₂ → K⁺ channel inhibition → depolarisation → Ca²⁺ influx → dopamine release → afferent firing → ↑ ventilation
  • Clinical: COPD hypoxic drive; Cheyne-Stokes breathing; initiates acclimatization

(g) Composition + Regulation of Pancreatic Juice [7 marks]

  • Composition: HCO₃⁻-rich (up to 120 mEq/L), pH 7.8-8.4; Proteases (trypsinogen, chymotrypsinogen, proelastase, procarboxypeptidases), Amylase, Lipase + Colipase, Phospholipase A₂, Cholesterol esterase, DNase/RNase
  • Regulation (3 phases):
    • Cephalic (10%): Vagal/ACh → enzyme-rich juice
    • Gastric (10%): Distension → vagovagal reflex
    • Intestinal (80%): Secretin (acid → S-cells) → HCO₃⁻-rich voluminous juice; CCK (fat+protein → I-cells) → enzyme-rich juice + gallbladder contraction
  • Autodigestion protection: Zymogens + trypsin inhibitors (SPINK1) + enterokinase only in duodenum

Solved according to the mark distribution

Running Command

python3 -c " from docx import Document doc = Document('/tmp/workspace/attachments/4267cda5-cda3-4a7c-ae63-617ae212f0fb/UNIT TEST 1.docx') for p in doc.paragraphs: style = p.style.name if p.style else 'None' if p.text.strip(): print(f'[{style}] {p.text}') for table in doc.tables: print('--- TABLE ---') for row in table.rows: for cell in row.cells: if cell.text.strip(): print(cell.text.strip(), end=' | ') print() "

Running Command

mkdir -p /tmp/workspace/unit-test-1-physiology

Writing File

~/unit-test-1-physiology/build_ut1.py

from docx import Document
from docx.shared import Pt, Inches, RGBColor
from docx.enum.text import WD_ALIGN_PARAGRAPH

doc = Document()

# Page margins
section = doc.sections[0]
section.top_margin = Inches(0.8)
section.bottom_margin = Inches(0.8)
section.left_margin = Inches(1.0)
section.right_margin = Inches(1.0)

# Normal style
ns = doc.styles['Normal']
ns.font.name = 'Times New Roman'
ns.font.size = Pt(12)

# ── Helpers ───────────────────────────────────────────────────────────────────
def h_center(doc, text, size=13, bold=True, color=None):
    p = doc.add_paragraph()
    p.alignment = WD_ALIGN_PARAGRAPH.CENTER
    r = p.add_run(text)
    r.bold = bold
    r.font.size = Pt(size)
    if color:
        r.font.color.rgb = RGBColor(*color)

def h1(doc, text):
    p = doc.add_paragraph()
    r = p.add_run(text)
    r.bold = True; r.underline = True
    r.font.size = Pt(12)
    r.font.color.rgb = RGBColor(0xC0, 0x00, 0x00)

def h2(doc, text):
    p = doc.add_paragraph()
    r = p.add_run(text)
    r.bold = True; r.font.size = Pt(11)

def body(doc, text, indent=0.2):
    p = doc.add_paragraph(text)
    p.paragraph_format.left_indent = Inches(indent)
    if p.runs:
        p.runs[0].font.size = Pt(11)

def bullet(doc, text, indent=0.35, bold_prefix=None):
    p = doc.add_paragraph(style='List Bullet')
    p.paragraph_format.left_indent = Inches(indent)
    if bold_prefix:
        rb = p.add_run(bold_prefix); rb.bold = True; rb.font.size = Pt(11)
    r = p.add_run(text); r.font.size = Pt(11)

def numbered(doc, text, indent=0.35, bold_prefix=None):
    p = doc.add_paragraph(style='List Number')
    p.paragraph_format.left_indent = Inches(indent)
    if bold_prefix:
        rb = p.add_run(bold_prefix); rb.bold = True; rb.font.size = Pt(11)
    r = p.add_run(text); r.font.size = Pt(11)

def divider(doc):
    p = doc.add_paragraph()
    r = p.add_run('─' * 90)
    r.font.size = Pt(7)
    r.font.color.rgb = RGBColor(0xCC, 0xCC, 0xCC)

def marks_note(doc, text):
    p = doc.add_paragraph()
    p.alignment = WD_ALIGN_PARAGRAPH.RIGHT
    r = p.add_run(text); r.italic = True; r.font.size = Pt(10)
    r.font.color.rgb = RGBColor(0x55, 0x55, 0x55)

def spacer(doc):
    doc.add_paragraph()

# ══════════════════════════════════════════════════════════════════════════════
# HEADER
# ══════════════════════════════════════════════════════════════════════════════
h_center(doc, 'National Capital Region Institute of Medical Sciences', size=13, color=(0x00,0x00,0x8B))
h_center(doc, 'Department of Physiology', size=12, color=(0x00,0x00,0x8B))
h_center(doc, 'UNIT TEST-1  |  MBBS Batch 2025-26  |  Max. Marks: 40', size=11, bold=False)
h_center(doc, 'SOLVED ANSWER SHEET', size=13, color=(0x00,0x80,0x00))
divider(doc)

# ══════════════════════════════════════════════════════════════════════════════
# Q.1  ESSAY TYPE  (3+8+4 = 15 marks)
# ══════════════════════════════════════════════════════════════════════════════
h1(doc, 'Q.1  Essay Type Question                                                                (3+8+4 = 15 marks)')
spacer(doc)
body(doc,
    'Q: Classify different transport mechanisms across the cell membrane. Describe '
    'sodium-potassium ATPase pump with well-labelled diagram, its functions and clinical significance.')
spacer(doc)

# ── Part A: Classification of transport mechanisms [3 marks] ─────────────────
h2(doc, 'PART A: Classification of Transport Mechanisms Across Cell Membrane  [3 Marks]')
spacer(doc)
body(doc, 'Transport across the cell membrane is broadly classified as:')
spacer(doc)

h2(doc, 'I. Passive Transport (No energy required — moves along concentration/electrochemical gradient):')
bullet(doc, 'Simple Diffusion: Lipid-soluble, non-polar, small molecules (O₂, CO₂, steroids, alcohol, urea) diffuse directly through the lipid bilayer. Rate governed by Fick\'s law of diffusion.')
bullet(doc, 'Facilitated Diffusion: Lipid-insoluble, polar or large molecules transported via carrier proteins (uniporters) or channel proteins along their concentration gradient. No energy needed. Shows saturation kinetics and specificity. Examples: glucose (GLUT1-4), fructose, amino acids.')
bullet(doc, 'Osmosis: Movement of water across a semipermeable membrane from low to high solute concentration (down water\'s concentration gradient). Via aquaporins (AQP channels).')
bullet(doc, 'Filtration: Bulk flow of water + solutes driven by hydrostatic pressure (e.g., glomerular filtration).')

spacer(doc)
h2(doc, 'II. Active Transport (Energy — ATP — required; moves against concentration/electrochemical gradient):')
p = doc.add_paragraph(); p.paragraph_format.left_indent = Inches(0.35)
rb = p.add_run('A. Primary Active Transport: '); rb.bold = True; rb.font.size = Pt(11)
r = p.add_run('Directly uses ATP hydrolysis. Examples:')
r.font.size = Pt(11)
bullet(doc, 'Na⁺-K⁺ ATPase pump (most important)')
bullet(doc, 'Ca²⁺-ATPase pump (SERCA — sarcoplasmic reticulum; PMCA — plasma membrane)')
bullet(doc, 'H⁺-K⁺ ATPase pump (gastric parietal cells — acid secretion)')
bullet(doc, 'Iodide pump (thyroid follicular cells)')

p = doc.add_paragraph(); p.paragraph_format.left_indent = Inches(0.35)
rb = p.add_run('B. Secondary Active Transport: '); rb.bold = True; rb.font.size = Pt(11)
r = p.add_run('Uses electrochemical gradient of Na⁺ (created by Na⁺-K⁺ ATPase) as driving force. Indirectly uses ATP.')
r.font.size = Pt(11)
bullet(doc, 'Cotransport (Symport): Na⁺ and glucose move in the same direction (SGLT1 in intestine, SGLT2 in kidney). Na⁺ and amino acids; Na⁺ and Cl⁻.')
bullet(doc, 'Counter-transport (Antiport): Na⁺ and Ca²⁺ move in opposite directions (NCX — Na⁺-Ca²⁺ exchanger); Na⁺ and H⁺ (NHE).')

spacer(doc)
h2(doc, 'III. Vesicular (Bulk) Transport:')
bullet(doc, 'Endocytosis: Cell engulfs extracellular material into vesicles.')
bullet(doc, '  → Phagocytosis (large particles — bacteria, debris; by macrophages, neutrophils)')
bullet(doc, '  → Pinocytosis (fluid droplets — "cell drinking")')
bullet(doc, '  → Receptor-mediated endocytosis (specific macromolecules — LDL, transferrin, insulin — via clathrin-coated pits)')
bullet(doc, '  → Caveolae-dependent endocytosis (lipid rafts/caveolae — cholesterol transport, signalling)')
bullet(doc, 'Exocytosis: Cell expels contents of vesicles (e.g., neurotransmitter release, hormone secretion).')
bullet(doc, 'Transcytosis: Endocytosis at one surface + exocytosis at opposite surface (e.g., IgG across placenta, intestinal epithelium).')

spacer(doc)

# ── Part B: Na⁺-K⁺ ATPase pump [8 marks] ────────────────────────────────────
h2(doc, 'PART B: Sodium-Potassium ATPase (Na⁺-K⁺) Pump — Mechanism + Diagram  [8 Marks]')
spacer(doc)

h2(doc, 'Structure:')
bullet(doc, 'A transmembrane protein (P-type ATPase) made of 2 subunits: α-subunit (catalytic, 110 kDa — contains ATP binding site, Na⁺ and K⁺ binding sites, ouabain binding site) and β-subunit (regulatory glycoprotein, 55 kDa).')
bullet(doc, 'Universally present in virtually all animal cells; particularly abundant in neurons, cardiac muscle and renal tubular cells.')
spacer(doc)

h2(doc, 'Mechanism of Action (Albers-Post Cycle):')
numbered(doc, 'In E1 (high-affinity for Na⁺) conformation: 3 Na⁺ ions bind to intracellular binding sites of the α-subunit.')
numbered(doc, 'ATP is hydrolysed → ADP released + the pump is phosphorylated (E1-P state). Energy is used.')
numbered(doc, 'Phosphorylation causes conformational change → E2-P state (low affinity for Na⁺, high affinity for K⁺). The 3 Na⁺ ions are expelled to the extracellular space.')
numbered(doc, '2 K⁺ ions from the extracellular space bind to the pump in E2-P conformation.')
numbered(doc, 'Dephosphorylation occurs (inorganic phosphate released) → pump returns to E1 conformation. The 2 K⁺ ions are released into the intracellular space.')
numbered(doc, 'Cycle repeats. Net: 3 Na⁺ out : 2 K⁺ in per ATP hydrolysed.')

spacer(doc)
body(doc, '[DIAGRAM: Draw the Na⁺-K⁺ pump as a transmembrane protein spanning the lipid bilayer. Show α and β subunits. Inside cell: 3 Na⁺ arrows pointing outward, ATP → ADP+Pi. Outside cell: 2 K⁺ arrows pointing inward. Label: ATP binding site, phosphorylation site, Na⁺ binding sites (×3), K⁺ binding sites (×2). Arrow showing cycle direction. Note: Ouabain/cardiac glycoside binding site on extracellular face of α-subunit.]', indent=0.3)

spacer(doc)
h2(doc, 'Characteristics of the Pump:')
bullet(doc, 'Electrogenic: Moves 3 Na⁺ out for every 2 K⁺ in → net loss of 1 positive charge per cycle → makes inside of cell slightly more negative → contributes ~-4 mV to resting membrane potential.')
bullet(doc, 'Requires Mg²⁺-ATP (not just ATP) — Mg²⁺ is a cofactor.')
bullet(doc, 'Inhibited by ouabain (cardiac glycoside binding site) and other cardiac glycosides (digoxin, digitalis).')
bullet(doc, 'Rate is proportional to intracellular [Na⁺] — regulated by load.')

spacer(doc)

# ── Part C: Functions and clinical significance [4 marks] ────────────────────
h2(doc, 'PART C: Functions and Clinical Significance  [4 Marks]')
spacer(doc)

h2(doc, 'Functions of the Na⁺-K⁺ ATPase Pump:')
numbered(doc, 'Maintenance of resting membrane potential (RMP): Creates and maintains the Na⁺ and K⁺ gradients (Na⁺ high outside, K⁺ high inside) that are the basis of the RMP (~-70 mV in neurons). Also directly contributes -4 mV (electrogenic effect).')
numbered(doc, 'Cell volume regulation: Without the pump, Na⁺ leaking into the cell would cause osmotic water influx and cell swelling (lysis). The pump continuously extrudes Na⁺, preventing cell swelling — maintains cell volume homeostasis.')
numbered(doc, 'Driving secondary active transport: The Na⁺ gradient created by this pump provides energy for cotransport (SGLT1 — glucose absorption in intestine) and counter-transport (NHE — Na⁺/H⁺ exchange in kidney). Hence this pump indirectly drives absorption of glucose, amino acids, and other nutrients.')
numbered(doc, 'Maintenance of excitability: Essential for repolarisation of neurons and muscle cells after action potentials. Continuous pump activity restores Na⁺ and K⁺ gradients between action potentials.')
numbered(doc, 'Thermogenesis: The pump consumes ~25–40% of basal metabolic energy in resting cells (up to 70% in neurons) — major source of body heat.')
numbered(doc, 'Renal tubular reabsorption: Na⁺-K⁺ pump on the basolateral membrane of renal tubular cells drives Na⁺ reabsorption, which in turn drives water reabsorption.')

spacer(doc)
h2(doc, 'Clinical Significance:')
bullet(doc, 'Cardiac Glycosides (Digoxin/Digitalis): Inhibit the Na⁺-K⁺ pump → ↑ intracellular Na⁺ → reduces activity of Na⁺-Ca²⁺ exchanger (NCX, which normally uses Na⁺ gradient to extrude Ca²⁺) → ↑ intracellular Ca²⁺ → increased myocardial contractility (positive inotropy). Used in heart failure and atrial fibrillation. Toxicity (digoxin toxicity): hyperkalaemia, cardiac arrhythmias, visual disturbances, nausea.')
bullet(doc, 'Hyperkalaemia: High extracellular K⁺ inhibits the pump → depolarisation of cell membrane → muscle weakness, cardiac arrhythmias, paralysis (dangerous in renal failure).')
bullet(doc, 'Ischaemia/Hypoxia: No ATP → pump fails → Na⁺ accumulates inside cells → osmotic cell swelling → cell death (irreversible cell injury in stroke and MI).')
bullet(doc, 'Hypothyroidism: Thyroid hormone upregulates Na⁺-K⁺ pump expression → reduced pump activity in hypothyroidism contributes to reduced metabolic rate.')
bullet(doc, 'Anaesthetics (lidocaine, tetrodotoxin): Block Na⁺ channels (different from pump) but pump activity determines baseline excitability — relevant in local anaesthesia.')
bullet(doc, 'Ouabain-like compounds: Endogenous ouabain-like compounds (marinobufagenin) inhibit the pump → implicated in essential hypertension pathogenesis.')

divider(doc)

# ══════════════════════════════════════════════════════════════════════════════
# Q.2  SHORT NOTES (5 × 5 = 25 marks)
# ══════════════════════════════════════════════════════════════════════════════
h1(doc, 'Q.2  Short Notes                                                                                         (5×5 = 25 marks)')

# ── SN1: Positive Feedback Mechanism [5 marks] ────────────────────────────────
spacer(doc)
h2(doc, 'Short Note 1: Positive Feedback Mechanism with Examples  [5 Marks]')
spacer(doc)
body(doc,
    'Positive feedback is a control mechanism in which the output of a system amplifies or enhances '
    'the initiating stimulus, moving the system further away from the set point (unlike negative '
    'feedback which restores the set point). It is inherently unstable and self-amplifying — it '
    'continues until a definitive endpoint is reached or the system is interrupted.')
spacer(doc)
h2(doc, 'Characteristics:')
bullet(doc, 'Amplifying / explosive / self-reinforcing')
bullet(doc, 'Generally operates towards a specific end-point (completion)')
bullet(doc, 'Useful in physiological situations requiring a rapid, all-or-nothing response')
bullet(doc, 'Can be dangerous if uncontrolled (pathological positive feedback)')
spacer(doc)
h2(doc, 'Physiological Examples:')
numbered(doc, 'Action Potential (Hodgkin Cycle): Depolarisation → voltage-gated Na⁺ channels open → Na⁺ influx → further depolarisation → more Na⁺ channels open → more Na⁺ influx → rapid "explosive" upstroke of action potential. This is classic positive feedback. It is terminated by Na⁺ channel inactivation and K⁺ channel opening (repolarisation).')
numbered(doc, 'Parturition (Childbirth — Ferguson\'s Reflex): Fetal head presses on cervix → uterine stretch → oxytocin released from posterior pituitary → uterine contractions → more cervical stretch → more oxytocin → stronger contractions. Continues until delivery of baby (endpoint). Terminated by removal of fetal head pressure.')
numbered(doc, 'Blood Clotting (Coagulation Cascade): Vessel injury → thrombin formation → thrombin activates factors V and VIII (positive feedback) → more thrombin generated → amplification of clot formation. Endpoint: stable fibrin clot. Controlled by anticoagulants (antithrombin, protein C/S).')
numbered(doc, 'Ovulation (LH Surge): Rising oestrogen levels → instead of inhibiting LH (as in negative feedback), at high levels → stimulates GnRH + LH surge (positive feedback) → massive LH peak → ovulation. This occurs only once per cycle as the follicle ruptures.')
numbered(doc, 'Platelet Aggregation: ADP and thromboxane A₂ released by activated platelets → recruit more platelets → more ADP/TXA₂ → amplified aggregation (positive feedback) until stable platelet plug formed.')
spacer(doc)
h2(doc, 'Pathological Positive Feedback (Vicious cycles):')
bullet(doc, 'Septic shock: Reduced CO → reduced tissue perfusion → lactic acidosis → myocardial depression → further reduced CO → death.')
bullet(doc, 'Haemorrhagic shock (severe): Progressive blood loss → reduced CO → ischaemia → vasodilator metabolites → further BP drop → death.')

divider(doc)

# ── SN2: Methods of measurement of body fluids [5 marks] ──────────────────────
spacer(doc)
h2(doc, 'Short Note 2: Different Methods of Measurement of Body Fluids  [5 Marks]')
spacer(doc)

body(doc,
    'Total Body Water (TBW) constitutes approximately 60% of body weight in an adult male '
    '(~42 L in 70 kg). Body fluid compartments are measured using the Dilution Principle / '
    'Indicator Dilution Method.')
spacer(doc)
h2(doc, 'Principle of Indicator Dilution Method:')
body(doc, 'Volume = Amount of substance administered ÷ Concentration of substance at equilibrium')
body(doc, '  V = Q / C  (where Q = amount injected, C = equilibrium concentration)')
body(doc, 'The indicator must: (a) distribute only in the compartment being measured, (b) be non-toxic, (c) not be metabolised or excreted during the measurement period, (d) be easily and accurately measurable.')
spacer(doc)
h2(doc, 'Compartments and Indicators Used:')

# Build a simple table
table = doc.add_table(rows=1, cols=4)
table.style = 'Table Grid'
hdr = table.rows[0].cells
hdr[0].text = 'Compartment'
hdr[1].text = 'Volume (70 kg adult)'
hdr[2].text = 'Indicator'
hdr[3].text = 'Notes'
for cell in hdr:
    for para in cell.paragraphs:
        for run in para.runs:
            run.bold = True
            run.font.size = Pt(10)

data = [
    ('Total Body Water (TBW)', '42 L (60% BW)', 'Tritiated water (³H₂O)\nDeuterium (D₂O)\nAntipyrine', 'Distributes in all water compartments'),
    ('Extracellular Fluid (ECF)', '14 L (20% BW)', 'Inulin, mannitol, sucrose\nRadioactive Na⁺ (²⁴Na)\nThiosulfate, Cl⁻ (³⁶Cl)', 'Does NOT cross cell membrane\nDoes not enter cells'),
    ('Intracellular Fluid (ICF)', '28 L (40% BW)', 'Cannot measure directly', 'ICF = TBW − ECF'),
    ('Plasma Volume', '3 L (~5% BW)', 'Evans blue dye (T-1824)\nRadioiodinated serum albumin\n(¹³¹I-albumin)', 'Binds to plasma albumin\nStays within vascular space'),
    ('Blood Volume', '5 L (~7% BW)', '⁵¹Cr-labelled RBCs\n(chromium-tagged RBCs)', 'Also: BV = PV / (1−Hct)'),
    ('Interstitial Fluid (ISF)', '11 L (15% BW)', 'Cannot measure directly', 'ISF = ECF − Plasma Volume'),
]
for row_data in data:
    row = table.add_row().cells
    for i, text in enumerate(row_data):
        row[i].text = text
        for para in row[i].paragraphs:
            for run in para.runs:
                run.font.size = Pt(10)

spacer(doc)
h2(doc, 'Other Methods:')
bullet(doc, 'Bioelectrical Impedance Analysis (BIA): Measures resistance of body to a small electrical current. Fat-free mass conducts better than fat. Clinically used to estimate TBW and body composition.')
bullet(doc, 'Isotope Dilution (Heavy water / Deuterium oxide, D₂O): Most accurate method for TBW in clinical research. Non-radioactive, safe in pregnant women and children.')
bullet(doc, 'Haematocrit method: Blood volume can be calculated from plasma volume and haematocrit: BV = PV/(1−Hct).')
h2(doc, 'Key Relationships:')
bullet(doc, 'TBW = ICF + ECF')
bullet(doc, 'ECF = Plasma + Interstitial fluid (+ transcellular fluid ~1L)')
bullet(doc, 'Blood volume = Plasma volume + RBC volume')

divider(doc)

# ── SN3: Apoptosis [5 marks] ──────────────────────────────────────────────────
spacer(doc)
h2(doc, 'Short Note 3: Apoptosis  [5 Marks]')
spacer(doc)
body(doc,
    'Apoptosis is programmed cell death — an energy-dependent, genetically regulated, '
    'physiological process of cell suicide that eliminates unwanted, damaged or potentially '
    'harmful cells without causing inflammation. Coined by Kerr, Wyllie and Currie (1972). '
    'It is distinct from necrosis (uncontrolled, pathological cell death).')
spacer(doc)
h2(doc, 'Morphological Features of Apoptosis:')
bullet(doc, 'Cell shrinkage (pyknosis — nuclear condensation)')
bullet(doc, 'Chromatin condensation and margination along nuclear envelope')
bullet(doc, 'DNA fragmentation into oligonucleosomal fragments (ladder pattern on gel electrophoresis — "DNA ladder")')
bullet(doc, 'Membrane blebbing → formation of apoptotic bodies (membrane-bound fragments containing organelles and nuclear debris)')
bullet(doc, 'Apoptotic bodies are phagocytosed by neighbouring cells and macrophages — NO inflammatory response')
bullet(doc, 'Cell membrane remains intact throughout (unlike necrosis where membrane ruptures early)')
spacer(doc)
h2(doc, 'Mechanisms / Pathways:')
numbered(doc, 'Intrinsic (Mitochondrial) Pathway: Triggered by internal stresses (DNA damage, oxidative stress, growth factor withdrawal). → Pro-apoptotic proteins (Bax, Bak) form pores in mitochondrial outer membrane → release of Cytochrome C → binds Apaf-1 + caspase-9 → "Apoptosome" → activates executioner caspases (caspase-3, 6, 7) → cell death. Anti-apoptotic proteins (Bcl-2, Bcl-XL) inhibit this pathway.')
numbered(doc, 'Extrinsic (Death Receptor) Pathway: Triggered by extracellular death signals binding to death receptors (Fas/CD95, TNFR1). FasL binds Fas → DISC (Death-Inducing Signalling Complex) → caspase-8 activation → activates caspase-3 → cell death.')
numbered(doc, 'Common Final Pathway: Both pathways converge at executioner caspase-3, which cleaves structural proteins (cytoskeleton, nuclear lamins), activates DNases (CAD — caspase-activated DNase) → DNA ladder.')
spacer(doc)
h2(doc, 'Physiological Roles:')
bullet(doc, 'Embryonic development: Sculpting of fingers (removal of interdigital webbing), formation of neural tube')
bullet(doc, 'Immune system: Deletion of autoreactive T-cells (thymic selection), clonal deletion')
bullet(doc, 'Tissue homeostasis: Balances cell proliferation, eliminates aged/senescent cells')
bullet(doc, 'Removal of cells with DNA damage (prevents cancer)')
spacer(doc)
h2(doc, 'Apoptosis vs Necrosis:')
bullet(doc, 'Apoptosis: Programmed, energy-dependent, no inflammation, cell shrinkage, DNA ladder, apoptotic bodies, single cells')
bullet(doc, 'Necrosis: Accidental, energy-independent, inflammation present, cell swelling/lysis, random DNA degradation, affects groups of cells')
spacer(doc)
h2(doc, 'Clinical Significance:')
bullet(doc, 'Excessive apoptosis: Neurodegenerative diseases (Alzheimer\'s, Parkinson\'s, ALS), AIDS (CD4⁺ T-cell depletion), ischaemic injury')
bullet(doc, 'Deficient apoptosis: Cancer (Bcl-2 overexpression in follicular lymphoma — t(14;18) translocation), autoimmune diseases')
bullet(doc, 'Cancer therapy target: Many chemotherapy drugs (e.g., taxanes, cisplatin) and radiation work by inducing apoptosis in tumour cells. Bcl-2 inhibitors (venetoclax) are used in CLL.')

divider(doc)

# ── SN4: Intercellular Junctions [5 marks] ────────────────────────────────────
spacer(doc)
h2(doc, 'Short Note 4: Intercellular Junctions  [5 Marks]')
spacer(doc)
body(doc,
    'Intercellular junctions (cell junctions) are specialised structures at points of contact '
    'between adjacent cells or between cells and the extracellular matrix (ECM). They maintain '
    'tissue integrity, allow intercellular communication and regulate paracellular permeability.')
spacer(doc)

h2(doc, '1. Tight Junctions (Zonula Occludens):')
bullet(doc, 'Location: Apical region of epithelial and endothelial cells (e.g., intestinal epithelium, blood-brain barrier).')
bullet(doc, 'Structure: Transmembrane proteins claudins and occludins form "kisses" between adjacent cell membranes — fuse outer leaflets, obliterating intercellular space.')
bullet(doc, 'Function: (a) Barrier function — prevents paracellular diffusion of molecules between cells ("gate function"). (b) "Fence function" — prevents lateral diffusion of membrane proteins from apical to basolateral domains → maintains cell polarity.')
bullet(doc, 'Clinical: Disruption of tight junctions in BBB → cerebral oedema. Mutations in claudin-16 → familial hypomagnesaemia.')

h2(doc, '2. Adherens Junctions (Zonula Adherens):')
bullet(doc, 'Location: Just below tight junctions in epithelial cells.')
bullet(doc, 'Structure: E-cadherin (Ca²⁺-dependent transmembrane protein) connects adjacent cells. Intracellularly linked to actin cytoskeleton via catenins (α, β, γ-catenin).')
bullet(doc, 'Function: Mechanical attachment between cells; cell shape regulation; signal transduction.')
bullet(doc, 'Clinical: Loss of E-cadherin (mutation or methylation) → loss of cell-cell adhesion → epithelial-mesenchymal transition (EMT) → metastasis in carcinomas (e.g., gastric cancer — CDH1 mutations).')

h2(doc, '3. Desmosomes (Macula Adherens):')
bullet(doc, 'Location: Skin (epidermis), cardiac muscle, uterine epithelium — tissues under mechanical stress.')
bullet(doc, 'Structure: Desmogleins and desmocollins (cadherin family) connect cells; intracellularly linked to intermediate filaments (keratin in epithelium, desmin in cardiac muscle) via desmoplakin and plakoglobin.')
bullet(doc, 'Function: Provide strong mechanical attachment — "spot-welds" between cells.')
bullet(doc, 'Clinical: Pemphigus vulgaris — autoantibodies against desmoglein 3 → loss of desmosomes → acantholysis (separation of epidermal cells) → blistering skin disease.')

h2(doc, '4. Gap Junctions (Nexus):')
bullet(doc, 'Location: Cardiac muscle (intercalated discs), smooth muscle, neurons, liver, lens of eye.')
bullet(doc, 'Structure: Connexins (6 connexins form a connexon/hemichannel; 2 connexons from adjacent cells align to form a gap junction channel). Channel diameter ~1.5 nm. Allow passage of molecules <1000 Da (ions, cAMP, Ca²⁺, glucose).')
bullet(doc, 'Function: (a) Electrical coupling — rapid spread of action potential in cardiac muscle (syncytial contraction). (b) Metabolic coupling — sharing of nutrients/second messengers between cells. (c) Co-ordinated contraction in smooth muscle and uterus.')
bullet(doc, 'Clinical: Connexin 26 (GJB2) mutations → sensorineural deafness (most common cause of hereditary hearing loss). Cardiac gap junction disruption → re-entry arrhythmias.')

h2(doc, '5. Hemidesmosomes:')
bullet(doc, 'Location: Basal surface of epithelial cells — connects cells to basement membrane.')
bullet(doc, 'Structure: Integrins (α6β4) connect to laminin in the basement membrane; intracellularly linked to keratin intermediate filaments via BPAG1 (bullous pemphigoid antigen 1).')
bullet(doc, 'Function: Anchors epithelial cells to the underlying ECM/basement membrane.')
bullet(doc, 'Clinical: Bullous pemphigoid — autoantibodies against BPAG2 (collagen XVII) or BPAG1 → loss of hemidesmosomes → subepidermal blistering.')

divider(doc)

# ── SN5: Genesis of Resting Membrane Potential [5 marks] ──────────────────────
spacer(doc)
h2(doc, 'Short Note 5: Genesis of Resting Membrane Potential (RMP)  [5 Marks]')
spacer(doc)
body(doc,
    'The resting membrane potential (RMP) is the electrical potential difference across the '
    'plasma membrane of an excitable cell at rest (no stimulation). In neurons, RMP ≈ -70 mV '
    '(inside negative relative to outside). In skeletal muscle: -90 mV; cardiac muscle: -90 mV.')
spacer(doc)
h2(doc, 'Ionic Basis — Concentration Gradients:')

table2 = doc.add_table(rows=1, cols=4)
table2.style = 'Table Grid'
hdr2 = table2.rows[0].cells
hdr2[0].text = 'Ion'
hdr2[1].text = 'Intracellular (mM)'
hdr2[2].text = 'Extracellular (mM)'
hdr2[3].text = 'Nernst Potential'
for cell in hdr2:
    for para in cell.paragraphs:
        for run in para.runs:
            run.bold = True; run.font.size = Pt(10)
ion_data = [
    ('Na⁺', '12', '145', '+67 mV'),
    ('K⁺', '140', '4', '-94 mV'),
    ('Cl⁻', '4', '120', '-90 mV'),
    ('Ca²⁺', '0.0001', '1.2', '+132 mV'),
    ('A⁻ (organic anions)', '138', 'negligible', 'Non-diffusible'),
]
for row_data in ion_data:
    row2 = table2.add_row().cells
    for i, text in enumerate(row_data):
        row2[i].text = text
        for para in row2[i].paragraphs:
            for run in para.runs:
                run.font.size = Pt(10)

spacer(doc)
h2(doc, 'Genesis of RMP — Step by Step:')
numbered(doc,
    'Unequal ion distribution: Na⁺-K⁺-ATPase pump actively maintains high intracellular K⁺ '
    '(140 mEq/L vs 4 mEq/L outside) and low intracellular Na⁺ (12 mEq/L vs 145 mEq/L outside). '
    'Large organic anions (proteins, phosphates — A⁻) are trapped inside the cell and cannot cross the membrane.')
numbered(doc,
    'Selective K⁺ permeability at rest: At rest, the cell membrane is predominantly permeable to K⁺ '
    '(via leak K⁺ channels — inward rectifier K⁺ channels, Kir) and relatively impermeable to Na⁺ and Cl⁻. '
    'PK : PNa : PCl = 1 : 0.04 : 0.45 (Goldman-Hodgkin-Katz equation values).')
numbered(doc,
    'K⁺ diffusion creates negative charge: K⁺ ions diffuse OUT of the cell down their concentration gradient '
    'through leak channels. As K⁺ leaves, it takes positive charge with it → inside of cell becomes increasingly '
    'negative. The large non-diffusible organic anions (A⁻) remain behind, adding to the negativity inside.')
numbered(doc,
    'Equilibrium — Nernst potential for K⁺: As the inside becomes negative, it attracts K⁺ back (electrical '
    'gradient opposes further diffusion). At equilibrium, the K⁺ Nernst potential = -94 mV (the tendency to '
    'diffuse out equals the electrical pull back in). The actual RMP (-70 mV) is less negative than EK because '
    'of slight Na⁺ influx (Na⁺ Nernst potential = +67 mV; small inward leak of Na⁺ partially depolarises '
    'the membrane).')
numbered(doc,
    'Goldman-Hodgkin-Katz (GHK) equation: Accounts for permeability to all ions:\n'
    '  Vm = (RT/F) × ln [(PK[K⁺]o + PNa[Na⁺]o + PCl[Cl⁻]i) / (PK[K⁺]i + PNa[Na⁺]i + PCl[Cl⁻]o)]\n'
    '  At rest, K⁺ permeability dominates → Vm ≈ -70 mV (between EK and ENa, closer to EK).')
numbered(doc,
    'Contribution of Na⁺-K⁺ pump: The pump directly contributes -4 mV (electrogenic — removes 3 Na⁺, '
    'brings in 2 K⁺ per cycle, net outward positive current). More importantly, it maintains the ionic '
    'gradients that are the primary basis of the RMP.')
spacer(doc)
h2(doc, 'Summary — RMP = -70 mV because:')
bullet(doc, 'High K⁺ permeability at rest → K⁺ diffuses out → negative interior')
bullet(doc, 'Trapped intracellular organic anions (A⁻) → contribute to negativity')
bullet(doc, 'Small Na⁺ leak inward → partially reduces negativity')
bullet(doc, 'Na⁺-K⁺ pump → electrogenic contribution (-4 mV) + maintains gradients')
spacer(doc)
h2(doc, 'Factors affecting RMP:')
bullet(doc, 'Hyperkalaemia (↑ extracellular K⁺): Reduces K⁺ gradient → less K⁺ diffuses out → RMP becomes less negative (depolarisation) → increased excitability → cardiac arrhythmias, muscle weakness (in severe hyperkalaemia, paradoxical inexcitability due to Na⁺ channel inactivation).')
bullet(doc, 'Hypokalaemia: ↑ K⁺ gradient → more K⁺ efflux → hyperpolarisation → decreased excitability.')
bullet(doc, 'Na⁺-K⁺ pump failure (ischaemia, ouabain): Loss of ionic gradients → membrane depolarisation → loss of excitability.')

divider(doc)

# ══════════════════════════════════════════════════════════════════════════════
# MCQ SECTION
# ══════════════════════════════════════════════════════════════════════════════
h1(doc, 'MCQ SECTION — Unit Test 1  (Answers with Explanations)                           (10 marks)')
spacer(doc)

mcqs = [
    ('Q1', 'Nernst potential for K⁺', 'C. −90 mV',
     'The Nernst equation: EK = (RT/zF) × ln([K⁺]o/[K⁺]i) = (61/1) × log(4/140) ≈ 61 × (−1.54) ≈ −94 mV. '
     'The closest answer is −90 mV. (Standard value cited in most physiology textbooks is −90 to −94 mV.)'),
    ('Q2', 'False regarding facilitated diffusion', 'C. Does not follow saturation kinetics',
     'This statement is FALSE — facilitated diffusion DOES follow saturation kinetics (Michaelis-Menten kinetics) '
     'because it depends on a limited number of carrier proteins. When all carriers are occupied, rate cannot increase '
     'further (Vmax). All other options are TRUE about facilitated diffusion.'),
    ('Q3', 'All are examples of primary active transport EXCEPT', 'C. Na⁺-Glucose cotransport',
     'Na⁺-Glucose cotransport (SGLT) is SECONDARY active transport — it uses the Na⁺ electrochemical gradient '
     '(created by Na⁺-K⁺ ATPase) as energy, NOT direct ATP hydrolysis. All others (Na⁺-K⁺ ATPase, K⁺-H⁺ ATPase, '
     'Iodide pump) directly hydrolyse ATP = primary active transport.'),
    ('Q4', 'Cytoskeleton comprises', 'A. Microtubules and microfilaments',
     'The cytoskeleton consists of three components: (1) Microtubules (tubulin — 25 nm diameter), '
     '(2) Microfilaments / Actin filaments (actin — 7 nm), (3) Intermediate filaments (8–10 nm, e.g., keratin, '
     'vimentin, desmin, neurofilaments). The cell membrane, Golgi complex and cell junctions are separate structures.'),
    ('Q5', 'All are families of cell adhesion molecules EXCEPT', 'D. Hemidesmosomes',
     'Hemidesmosomes are cell junctions (not a family of adhesion molecules per se). The four major families of '
     'cell adhesion molecules (CAMs) are: (1) Integrins, (2) Cadherins, (3) Selectins, (4) Immunoglobulin '
     'superfamily CAMs (ICAMs, NCAMs). Hemidesmosomes USE integrins as their adhesion molecule but are not '
     'themselves a CAM family.'),
    ('Q6', 'Homeostasis is maximally controlled by', 'A. Endocrine and nervous system',
     'The endocrine system and nervous system are the two primary regulatory systems that maintain homeostasis '
     'by monitoring and adjusting the internal environment. The nervous system provides rapid, short-term control; '
     'the endocrine system provides slower, sustained regulation. Together they control virtually all homeostatic '
     'mechanisms (temperature, fluid balance, blood glucose, BP, etc.).'),
    ('Q7', 'Cell volume is mainly dependent upon activity of', 'B. Na⁺-K⁺ pump',
     'The Na⁺-K⁺ ATPase pump is the primary regulator of cell volume. It continuously pumps Na⁺ out, preventing '
     'osmotic water influx. Without it, Na⁺ (and accompanying water) would accumulate → cell swelling → lysis. '
     'The Donnan equilibrium/pump-leak model: the pump counteracts the osmotic effect of intracellular organic '
     'anions. This is why pump failure (ischaemia) rapidly causes cell swelling.'),
    ('Q8', 'Calculate Gain — BP scenario', 'D. −2',
     'Gain = Correction achieved / Error remaining\n'
     '  • Normal BP = 100 mmHg\n'
     '  • Disturbed BP = 175 mmHg (error induced = +75 mmHg)\n'
     '  • Baroreceptors bring BP to 125 mmHg\n'
     '  • Correction achieved = 175 − 125 = 50 mmHg\n'
     '  • Error remaining = 125 − 100 = +25 mmHg\n'
     '  • Gain = −(Correction / Error remaining) = −50/25 = −2\n'
     '(Negative sign because negative feedback — correction opposes the error.)'),
    ('Q9', 'Caveolae-dependent uptake is a type of', 'A. Endocytosis',
     'Caveolae are flask-shaped plasma membrane invaginations rich in cholesterol and sphingolipids, coated with '
     'caveolin-1 protein. Caveolae-dependent uptake is a form of endocytosis (specifically non-clathrin-mediated '
     'endocytosis). It is involved in transcytosis, signalling molecule internalisation, and cholesterol transport. '
     'Distinct from clathrin-mediated endocytosis but still classified as endocytosis.'),
    ('Q10', 'Majority of plasma osmolality is contributed by', 'C. Na⁺, Cl⁻ and HCO₃⁻ ions',
     'Normal plasma osmolality ≈ 285–295 mOsm/kg. Na⁺ and its anions (Cl⁻ and HCO₃⁻) contribute ~270 mOsm '
     '(~92% of total). Glucose contributes ~5 mOsm, Urea ~5 mOsm, Plasma proteins ~1.3 mOsm (they contribute '
     'oncotic pressure but only a tiny fraction of osmolality). K⁺, Mg²⁺, Ca²⁺ are present in small amounts. '
     'Hence Na⁺ is the dominant determinant of plasma osmolality.'),
]

for qnum, qtitle, answer, explanation in mcqs:
    p = doc.add_paragraph()
    p.paragraph_format.left_indent = Inches(0.2)
    rb = p.add_run(f'{qnum}: {qtitle}'); rb.bold = True; rb.font.size = Pt(11)
    p2 = doc.add_paragraph()
    p2.paragraph_format.left_indent = Inches(0.35)
    ra = p2.add_run(f'Answer: {answer}')
    ra.bold = True; ra.font.size = Pt(11)
    ra.font.color.rgb = RGBColor(0x00, 0x70, 0x00)
    body(doc, f'Explanation: {explanation}', indent=0.35)
    spacer(doc)

divider(doc)

# Footer
p = doc.add_paragraph()
p.alignment = WD_ALIGN_PARAGRAPH.CENTER
r = p.add_run('— End of Solved Answer Sheet — Unit Test 1 | Physiology | MBBS 2025-26 —')
r.italic = True; r.font.size = Pt(10)
r.font.color.rgb = RGBColor(0x88, 0x88, 0x88)

out_path = '/tmp/workspace/unit-test-1-physiology/Physiology_Unit_Test_1_Solved.docx'
doc.save(out_path)
print(f'Saved: {out_path}')
Running Command

cd /tmp/workspace/unit-test-1-physiology && python3 build_ut1.py

This is a shared conversation. Sign in to Orris to start your own chat.