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() "

Now I have the full question paper. Let me read the medical library skill and then research all topics simultaneously.
Reading File
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
I have the key library references. Now let me read the most relevant sections simultaneously.
Reading File
Reading File
Reading File
I have enough reference material. Now I have comprehensive knowledge from my training to write thorough, exam-appropriate answers for all questions. Let me now produce the complete solved paper as a DOCX.
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() "

I have the full paper. Now let me build the complete solved DOCX immediately.
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.