higher order thinking mcqs for 1st year mbbs students to be practised in physiology
| # | Topic | Style | Bloom's Level |
|---|---|---|---|
| 1 | Bohr effect / Exercise physiology | Clinical vignette | Analysis |
| 2 | Oxygen carrying capacity in anemia | Concept calculation | Application |
| 3 | Pulmonary embolism / Dead space | Clinical vignette | Analysis |
| 4 | CO2 transport forms | Concept application | Understanding |
| 5 | Hyperventilation and O2 delivery | Clinical vignette | Evaluation |
| 6 | Altitude / Alveolar gas equation | Concept calculation | Application |
| 7 | 2,3-BPG in stored blood | Concept application | Analysis |
| 8 | Shunt vs dead space (pneumonia) | Clinical vignette | Evaluation |
| 9 | COPD / Hypoxic drive | Clinical vignette | Evaluation |
| 10 | Intracellular O2 utilization / ADP | Concept application | Analysis |
retry
| # | Topic | Style | Mechanism Tested |
|---|---|---|---|
| 1 | Lung compliance in fibrosis | Concept | Compliance-elastance inverse relationship |
| 2 | IRDS / surfactant deficiency | Clinical vignette | 3 roles of surfactant |
| 3 | Laplace's Law & small alveoli | Concept | P = 2T/r; surfactant stabilization |
| 4 | Spontaneous pneumothorax | Clinical vignette | Intrapleural pressure mechanics |
| 5 | Functional Residual Capacity | Concept | Force balance at FRC |
| 6 | Spirometry patterns | Concept calculation | Obstructive vs. Restrictive distinction |
| 7 | CO poisoning - normal SpO2 trap | Clinical vignette | Hb-O2 curve left shift; false SpO2 |
| 8 | Lung hysteresis - saline experiment | Concept | Surface tension vs. elastic tissue |
| 9 | Cyanide poisoning - bright venous blood | Clinical vignette | Histotoxic/cytotoxic hypoxia |
| 10 | Emphysema vs Fibrosis - integrated | Clinical reasoning | DLCO, TLC, FEV1/FVC pattern integration |
Create a PDF study guide with all 20 MCQs (both sets)
ls -la /tmp/workspace/ 2>/dev/null || echo "workspace empty or does not exist"
mkdir -p /tmp/workspace/resp-physio-mcq
~/resp-physio-mcq/generate_pdf.py
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import cm
from reportlab.platypus import (
SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
HRFlowable, PageBreak, KeepTogether
)
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
from reportlab.platypus import FrameBreak
OUTPUT = "/tmp/workspace/resp-physio-mcq/Respiratory_Physiology_HOT_MCQs.pdf"
doc = SimpleDocTemplate(
OUTPUT,
pagesize=A4,
rightMargin=2*cm, leftMargin=2*cm,
topMargin=2.2*cm, bottomMargin=2*cm,
title="Respiratory Physiology – Higher Order Thinking MCQs",
author="Orris Medical Education",
subject="1st Year MBBS Physiology Practice"
)
# ── Colour palette ──────────────────────────────────────────────────
DARK_BLUE = colors.HexColor("#1B3A6B")
MID_BLUE = colors.HexColor("#2E6DA4")
LIGHT_BLUE = colors.HexColor("#D6E8F7")
TEAL = colors.HexColor("#1A7A6E")
TEAL_LIGHT = colors.HexColor("#D0EFEB")
GREEN = colors.HexColor("#1E6B3C")
GREEN_LIGHT = colors.HexColor("#D4EDDA")
AMBER = colors.HexColor("#7A4F00")
AMBER_LIGHT = colors.HexColor("#FFF3CD")
GREY_BG = colors.HexColor("#F5F7FA")
GREY_RULE = colors.HexColor("#CBD5E1")
WHITE = colors.white
styles = getSampleStyleSheet()
# Custom styles
title_style = ParagraphStyle(
"MainTitle", parent=styles["Normal"],
fontSize=22, textColor=WHITE, fontName="Helvetica-Bold",
alignment=TA_CENTER, spaceAfter=4, leading=28
)
subtitle_style = ParagraphStyle(
"SubTitle", parent=styles["Normal"],
fontSize=11, textColor=colors.HexColor("#BDD7EE"),
fontName="Helvetica", alignment=TA_CENTER, leading=15
)
set_header_style = ParagraphStyle(
"SetHeader", parent=styles["Normal"],
fontSize=14, textColor=WHITE, fontName="Helvetica-Bold",
alignment=TA_CENTER, leading=18, spaceAfter=2
)
set_sub_style = ParagraphStyle(
"SetSub", parent=styles["Normal"],
fontSize=9, textColor=colors.HexColor("#BDD7EE"),
fontName="Helvetica-Oblique", alignment=TA_CENTER, leading=12
)
q_num_style = ParagraphStyle(
"QNum", parent=styles["Normal"],
fontSize=11, textColor=DARK_BLUE, fontName="Helvetica-Bold",
spaceBefore=0, spaceAfter=2, leading=14
)
q_text_style = ParagraphStyle(
"QText", parent=styles["Normal"],
fontSize=10.5, textColor=colors.HexColor("#1A1A2E"),
fontName="Helvetica", leading=15, spaceAfter=6, alignment=TA_JUSTIFY
)
option_style = ParagraphStyle(
"Option", parent=styles["Normal"],
fontSize=10, textColor=colors.HexColor("#2C3E50"),
fontName="Helvetica", leading=14, leftIndent=8, spaceAfter=2
)
correct_option_style = ParagraphStyle(
"CorrectOption", parent=styles["Normal"],
fontSize=10, textColor=GREEN, fontName="Helvetica-Bold",
leading=14, leftIndent=8, spaceAfter=2
)
answer_label_style = ParagraphStyle(
"AnswerLabel", parent=styles["Normal"],
fontSize=10, textColor=GREEN, fontName="Helvetica-Bold",
leading=13, spaceAfter=2
)
explanation_style = ParagraphStyle(
"Explanation", parent=styles["Normal"],
fontSize=9.5, textColor=colors.HexColor("#2C3E50"),
fontName="Helvetica", leading=14, alignment=TA_JUSTIFY,
spaceAfter=3
)
source_style = ParagraphStyle(
"Source", parent=styles["Normal"],
fontSize=8.5, textColor=MID_BLUE, fontName="Helvetica-Oblique",
leading=12, spaceAfter=0
)
topic_tag_style = ParagraphStyle(
"TopicTag", parent=styles["Normal"],
fontSize=8, textColor=TEAL, fontName="Helvetica-Bold",
leading=11, spaceAfter=0
)
table_header_style = ParagraphStyle(
"TableHeader", parent=styles["Normal"],
fontSize=9, textColor=WHITE, fontName="Helvetica-Bold",
alignment=TA_CENTER, leading=12
)
table_cell_style = ParagraphStyle(
"TableCell", parent=styles["Normal"],
fontSize=8.5, textColor=colors.HexColor("#2C3E50"),
fontName="Helvetica", alignment=TA_CENTER, leading=11
)
footer_style = ParagraphStyle(
"Footer", parent=styles["Normal"],
fontSize=8, textColor=colors.HexColor("#94A3B8"),
fontName="Helvetica", alignment=TA_CENTER, leading=10
)
# ── MCQ DATA ────────────────────────────────────────────────────────
# Each dict: num, topic, style_tag, q, options (list of (letter,text)),
# correct, answer_text, explanation, source
SET1 = [
{
"num": 1,
"topic": "Bohr Effect / Exercise Physiology",
"style_tag": "Clinical Vignette",
"bloom": "Analysis",
"q": "A 25-year-old athlete is sprinting. His muscles are producing large amounts of CO\u2082 and lactic acid. His muscle temperature rises by 3\u00b0C. Which of the following BEST explains why more oxygen is delivered to his muscles under these conditions?",
"options": [
("A", "Increased pulmonary ventilation raises alveolar PO\u2082 to >150 mm Hg, pushing more O\u2082 into blood"),
("B", "The oxyhemoglobin dissociation curve shifts rightward, releasing more O\u2082 at the same PO\u2082"),
("C", "More hemoglobin is synthesised by the bone marrow within minutes"),
("D", "Increased cardiac output increases the PO\u2082 gradient from blood to muscle"),
],
"correct": "B",
"explanation": (
"During exercise, rising CO\u2082 and H\u207a (lactic acid) in muscle capillaries lower pH, and elevated temperature together shift the oxyhemoglobin dissociation curve to the RIGHT (Bohr effect). "
"Hemoglobin releases O\u2082 at higher PO\u2082 values than usual \u2014 at a PO\u2082 of 40 mm Hg, 70% of O\u2082 can be unloaded rather than the resting ~25%. "
"Option A is incorrect because high FiO\u2082 slightly raises alveolar PO\u2082 but is not the mechanism here; Option C takes days, not seconds; Option D is partially true but the PO\u2082 gradient does not change \u2014 what changes is O\u2082 release from Hb."
),
"source": "Guyton and Hall Textbook of Medical Physiology, Chapter 41"
},
{
"num": 2,
"topic": "Oxygen Carrying Capacity in Anaemia",
"style_tag": "Concept Application",
"bloom": "Application",
"q": "Normal arterial blood has PO\u2082 95 mm Hg with 97% Hb saturation. Normal mixed venous blood has PO\u2082 40 mm Hg with 75% saturation. A patient with severe anaemia has Hb of 7 g/dL (normal 15 g/dL). Assuming normal cardiac output and normal PO\u2082 values, what is the approximate O\u2082 delivered per 100 mL of blood during one pass through tissues?",
"options": [
("A", "~5 mL O\u2082/100 mL blood (same as normal)"),
("B", "~2.3 mL O\u2082/100 mL blood"),
("C", "~1.2 mL O\u2082/100 mL blood"),
("D", "~10 mL O\u2082/100 mL blood"),
],
"correct": "B",
"explanation": (
"Normal Hb (15 g/dL) capacity = 15 \u00d7 1.34 = ~20 mL O\u2082/100 mL at 100% sat. Arterial (97% sat) \u2248 19.4 mL; venous (75% sat) \u2248 14.4 mL; delivery = 5 mL/100 mL. "
"With anaemia (7 g/dL): capacity = 7 \u00d7 1.34 = 9.38 mL/100 mL. Arterial (97%) \u2248 9.1 mL; venous (75%) \u2248 7.0 mL; delivery \u2248 2.1\u20132.3 mL/100 mL. "
"This illustrates why anaemia is dangerous even with normal lungs and heart \u2014 the oxygen-carrying capacity, not the PO\u2082, is the limiting factor."
),
"source": "Guyton and Hall Textbook of Medical Physiology, Chapter 41"
},
{
"num": 3,
"topic": "Pulmonary Embolism / Dead Space",
"style_tag": "Clinical Vignette",
"bloom": "Analysis",
"q": "A 60-year-old smoker is admitted with sudden onset pleuritic chest pain and dyspnoea. CT pulmonary angiography confirms a large pulmonary embolism occluding the right pulmonary artery. Which of the following BEST describes the gas exchange abnormality in the affected right lung?",
"options": [
("A", "Low V/Q ratio \u2014 ventilation is reduced with normal perfusion"),
("B", "Shunt \u2014 perfusion is normal but ventilation is absent"),
("C", "High V/Q / dead space \u2014 ventilation continues but perfusion is absent"),
("D", "Normal V/Q ratio \u2014 both ventilation and perfusion are equally reduced"),
],
"correct": "C",
"explanation": (
"Pulmonary embolism blocks blood flow while ventilation continues, creating dead space (V/Q = \u221e). No gas exchange occurs because there is no blood to receive O\u2082 or release CO\u2082. "
"Alveolar gas in dead-space regions takes on the composition of humidified inspired air: PAO\u2082 ~150 mm Hg and PACO\u2082 ~0 mm Hg. "
"This contrasts with a shunt (Option B), where perfusion is present but ventilation is absent (V/Q = 0), as seen in pneumonia or ARDS. "
"Low V/Q (Option A) is the opposite, seen in bronchospasm or mucus plugging."
),
"source": "Costanzo Physiology 7th Edition, Chapter 5 \u2014 V/Q Defects"
},
{
"num": 4,
"topic": "CO\u2082 Transport Forms",
"style_tag": "Concept Application",
"bloom": "Understanding",
"q": "Approximately what percentage of CO\u2082 is transported in blood as bicarbonate (HCO\u2083\u207b)?",
"options": [
("A", "~5% (dissolved)"),
("B", "~25% (carbaminohaemoglobin)"),
("C", "~70% (bicarbonate)"),
("D", "~50% (equally dissolved and bicarbonate)"),
],
"correct": "C",
"explanation": (
"CO\u2082 is transported in three forms: (1) dissolved CO\u2082 ~5% (CO\u2082 is 20\u00d7 more soluble than O\u2082 but still a minor fraction); "
"(2) carbaminohaemoglobin ~25% (CO\u2082 bound to terminal amino groups of Hb); "
"(3) bicarbonate HCO\u2083\u207b ~70%, by far the dominant form. "
"In RBCs, CO\u2082 + H\u2082O \u21cc H\u2082CO\u2083 \u21cc H\u207a + HCO\u2083\u207b (catalysed by carbonic anhydrase), and HCO\u2083\u207b exits into plasma via the chloride shift. "
"Clinically important: respiratory failure leads to CO\u2082 retention and respiratory acidosis via this carbonic acid pathway."
),
"source": "Costanzo Physiology 7th Edition; Guyton and Hall, Chapter 41"
},
{
"num": 5,
"topic": "Hyperventilation and O\u2082 Delivery (Bohr Effect Reversal)",
"style_tag": "Clinical Vignette",
"bloom": "Evaluation",
"q": "A patient receiving mechanical ventilation has his PaCO\u2082 lowered from 40 to 25 mm Hg (hyperventilation). Which of the following effects will occur on oxygen delivery to peripheral tissues?",
"options": [
("A", "Improved O\u2082 delivery because lower CO\u2082 means more O\u2082 stays in blood"),
("B", "Impaired O\u2082 delivery because the oxyhemoglobin curve shifts left, reducing O\u2082 unloading at tissues"),
("C", "No change because O\u2082 delivery depends only on PaO\u2082, not PaCO\u2082"),
("D", "Improved O\u2082 delivery because a leftward shift increases Hb\u2013O\u2082 affinity in the lungs"),
],
"correct": "B",
"explanation": (
"Hypocapnia (low PaCO\u2082) raises blood pH (alkalosis), shifting the oxyhemoglobin dissociation curve to the LEFT. "
"A left shift increases Hb\u2019s affinity for O\u2082 \u2014 Hb holds on to O\u2082 and releases less at tissue level. "
"This is why patients who hyperventilate can develop symptoms of peripheral tissue hypoxia despite normal or even elevated PaO\u2082 \u2014 a paradox requiring understanding of the dissociation curve, not just arterial oxygen levels."
),
"source": "Guyton and Hall Textbook of Medical Physiology, Chapter 41"
},
{
"num": 6,
"topic": "Alveolar Gas Equation / Altitude",
"style_tag": "Concept Application",
"bloom": "Application",
"q": "A mountaineer ascends to an altitude where barometric pressure is 380 mm Hg (half of sea level). Breathing room air (FiO\u2082 = 21%), what is the approximate PO\u2082 of inspired air (PIo\u2082)?",
"options": [
("A", "160 mm Hg"),
("B", "80 mm Hg"),
("C", "70 mm Hg"),
("D", "40 mm Hg"),
],
"correct": "C",
"explanation": (
"PIo\u2082 = (P\u0299 \u2212 P\u029cH\u2082O) \u00d7 FiO\u2082. Water vapour pressure at body temperature is constant at 47 mm Hg regardless of altitude. "
"Therefore: PIo\u2082 = (380 \u2212 47) \u00d7 0.21 = 333 \u00d7 0.21 \u2248 70 mm Hg. "
"At sea level: (760 \u2212 47) \u00d7 0.21 = 150 mm Hg. "
"So at this altitude PIo\u2082 is less than half sea-level value, explaining severe hypoxia at high altitude. "
"Supplemental O\u2082 (raising FiO\u2082) compensates for reduced barometric pressure \u2014 the principle behind pressurised aircraft cabins."
),
"source": "Costanzo Physiology 7th Edition; Guyton and Hall Textbook of Medical Physiology"
},
{
"num": 7,
"topic": "2,3-BPG in Stored Blood",
"style_tag": "Concept Application",
"bloom": "Analysis",
"q": "2,3-Bisphosphoglycerate (2,3-BPG) levels in stored blood bank blood change during storage. When such old stored blood is transfused into a patient, what is the IMMEDIATE effect on oxygen delivery?",
"options": [
("A", "Enhanced O\u2082 delivery because high 2,3-BPG levels shift the curve right"),
("B", "Impaired O\u2082 delivery because stored blood has LOW 2,3-BPG, causing a left curve shift"),
("C", "No change because 2,3-BPG has no effect on Hb\u2013O\u2082 affinity"),
("D", "Enhanced O\u2082 delivery because Hb in stored blood has higher oxygen saturation"),
],
"correct": "B",
"explanation": (
"During blood storage, 2,3-BPG DECREASES progressively because RBCs continue metabolising and 2,3-BPG degrades over time. "
"Low 2,3-BPG shifts the oxyhemoglobin curve to the LEFT (increased Hb\u2013O\u2082 affinity), meaning transfused Hb holds on to O\u2082 and delivers less to tissues. "
"2,3-BPG normally decreases Hb\u2013O\u2082 affinity (right shift) by binding to and stabilising deoxyhaemoglobin. "
"This is why massive transfusion of old stored blood can paradoxically cause tissue hypoxia despite adequate haemoglobin levels."
),
"source": "Guyton and Hall Textbook of Medical Physiology, Chapter 41"
},
{
"num": 8,
"topic": "Shunt vs Dead Space (Pneumonia)",
"style_tag": "Clinical Vignette",
"bloom": "Evaluation",
"q": "A 35-year-old with pneumonia has consolidation of the left lower lobe. Despite being given 100% oxygen, his SpO\u2082 improves only minimally. Which V/Q abnormality BEST explains this poor response to supplemental O\u2082?",
"options": [
("A", "Dead space (V/Q = \u221e) \u2014 O\u2082 cannot reach unperfused alveoli"),
("B", "Shunt (V/Q = 0) \u2014 blood bypasses ventilated alveoli entirely"),
("C", "High V/Q \u2014 over-ventilation dilutes alveolar oxygen"),
("D", "Diffusion impairment \u2014 thickened alveolar membrane blocks O\u2082"),
],
"correct": "B",
"explanation": (
"Pneumonia fills alveoli with exudate, creating a shunt (V/Q = 0): blood perfuses but alveoli cannot be ventilated. "
"When 100% O\u2082 is given, normal alveoli develop very high PAO\u2082 (~660 mm Hg), but the shunted blood completely bypasses these alveoli and returns deoxygenated. "
"Mixing of shunted blood with well-oxygenated blood from normal alveoli results in a persistently low final PaO\u2082. "
"This poor response to high FiO\u2082 is the hallmark distinguishing shunt from V/Q mismatch or diffusion impairment, which both respond to supplemental O\u2082."
),
"source": "Costanzo Physiology 7th Edition, Chapter 5"
},
{
"num": 9,
"topic": "COPD and Hypoxic Drive",
"style_tag": "Clinical Vignette",
"bloom": "Evaluation",
"q": "A patient with severe COPD has chronic CO\u2082 retention (PaCO\u2082 = 65 mm Hg, chronic). He is given high-flow oxygen at 10 L/min. Shortly after, his respiratory rate drops and he becomes drowsy. What is the MOST likely mechanism?",
"options": [
("A", "O\u2082 toxicity directly suppresses the respiratory centre"),
("B", "Loss of hypoxic drive \u2014 the only remaining stimulus for breathing was low PaO\u2082"),
("C", "CO\u2082 narcosis \u2014 sudden rise in CO\u2082 upon O\u2082 administration"),
("D", "Metabolic alkalosis caused by the oxygen, suppressing breathing"),
],
"correct": "B",
"explanation": (
"In chronic CO\u2082 retainers, central chemoreceptors (which normally respond to rising PaCO\u2082) have reset and are no longer sensitive to chronically elevated CO\u2082. "
"The primary drive to breathe shifts to peripheral chemoreceptors (carotid and aortic bodies), which respond to low PaO\u2082 (hypoxic drive). "
"When high-flow O\u2082 is administered, PaO\u2082 rises, eliminating this hypoxic drive, and breathing decreases. "
"This is the physiological basis for the clinical recommendation of controlled low-flow O\u2082 (target SpO\u2082 88\u201392%) in COPD with known CO\u2082 retention."
),
"source": "Ganong\u2019s Review of Medical Physiology 26th Ed; Guyton and Hall"
},
{
"num": 10,
"topic": "Intracellular O\u2082 Utilisation / ADP",
"style_tag": "Concept Application",
"bloom": "Analysis",
"q": "In a cell with normal mitochondrial function, which of the following changes will MOST increase the rate of oxygen consumption?",
"options": [
("A", "Raising intracellular PO\u2082 from 2 mm Hg to 10 mm Hg"),
("B", "Increasing ATP utilisation in the cell (e.g., active muscle contraction)"),
("C", "Doubling the concentration of dissolved O\u2082 in cytoplasm"),
("D", "Increasing blood PO\u2082 from 95 to 150 mm Hg via supplemental O\u2082"),
],
"correct": "B",
"explanation": (
"Once intracellular PO\u2082 exceeds approximately 1 mm Hg, oxygen availability is NO LONGER the rate-limiting factor. "
"Instead, the rate-limiting factor is intracellular ADP concentration. "
"When ATP is consumed (e.g., during muscle contraction), ADP rises, driving the mitochondrial electron transport chain to consume more O\u2082 to regenerate ATP. "
"Options A, C, and D all raise O\u2082 availability beyond the critical 1 mm Hg threshold, which has no further effect on O\u2082 usage rate under normal conditions. "
"Simply giving supplemental O\u2082 does not increase cellular metabolism in healthy tissues."
),
"source": "Guyton and Hall \u2014 \u201cEffect of Intracellular PO\u2082 on Oxygen Usage Rate\u201d, Chapter 41"
},
]
SET2 = [
{
"num": 11,
"topic": "Lung Compliance in Fibrosis",
"style_tag": "Concept Application",
"bloom": "Analysis",
"q": "A patient with pulmonary fibrosis has increased deposition of fibrous tissue throughout both lungs. Which of the following changes in lung mechanics is MOST expected?",
"options": [
("A", "Increased compliance, decreased elastic recoil"),
("B", "Decreased compliance, increased elastic recoil \u2014 lungs resist inflation"),
("C", "Increased compliance, intrapleural pressure becomes less negative"),
("D", "Normal compliance but increased airway resistance"),
],
"correct": "B",
"explanation": (
"Compliance = \u0394Volume / \u0394Pressure. Fibrosis adds stiff fibrous tissue, increasing elastic tissue content. "
"Greater elastic tissue = lower compliance (harder to inflate) and higher elastic recoil (greater tendency to snap back). "
"This is the opposite of emphysema, where alveolar wall destruction reduces elastic tissue, increasing compliance. "
"Key principle: compliance and elastance (elastic recoil) are inversely related. "
"A patient with fibrosis must generate much larger changes in transpulmonary pressure to achieve the same tidal volume, greatly increasing the work of breathing."
),
"source": "Costanzo Physiology 7th Ed \u2014 \u201cCompliance of the Lungs\u201d"
},
{
"num": 12,
"topic": "IRDS / Surfactant Deficiency",
"style_tag": "Clinical Vignette",
"bloom": "Analysis",
"q": "A premature neonate at 29 weeks gestation develops severe respiratory distress within hours of birth \u2014 grunting, nasal flaring, subcostal retractions, and cyanosis. CXR shows bilateral ground-glass opacities. Which statement BEST explains the pathophysiology?",
"options": [
("A", "Bronchoconstriction from histamine release narrows the airways"),
("B", "Absence of surfactant increases surface tension, collapses alveoli, draws fluid into alveoli, and makes ventilation uneven"),
("C", "Pulmonary hypertension diverts blood away from the lungs"),
("D", "Thick mucus plugs obstruct airways and trap air distally"),
],
"correct": "B",
"explanation": (
"This is Infant Respiratory Distress Syndrome (IRDS) from surfactant deficiency (surfactant is produced in increasing quantities after 32 weeks). "
"Surfactant has three major effects that are all lost: (1) reduces surface tension, increases compliance, prevents alveolar collapse; "
"(2) prevents fluid accumulation \u2014 without surfactant, high surface tension draws fluid from the interstitium into alveolar space, impairing diffusion; "
"(3) keeps alveolar size uniform \u2014 acts as a \u2018brake\u2019 on rapidly expanding alveoli, preventing their over-inflation while allowing smaller ones to catch up. "
"Loss of all three effects produces collapsed, fluid-filled, unevenly ventilated lungs."
),
"source": "Medical Physiology (Boron & Boulpaep) \u2014 \u201cPulmonary surfactant reduces surface tension and increases compliance\u201d"
},
{
"num": 13,
"topic": "Laplace\u2019s Law and Alveolar Stability",
"style_tag": "Concept Application",
"bloom": "Application",
"q": "Two connected alveoli have the same surface tension. Alveolus A has a radius of 100 \u00b5m and Alveolus B has a radius of 50 \u00b5m. According to the Law of Laplace (P = 2T/r), what would happen WITHOUT surfactant?",
"options": [
("A", "Both alveoli remain stable because they share the same air pressure"),
("B", "Air flows from the larger alveolus into the smaller one, stabilising both"),
("C", "Air flows from the smaller alveolus into the larger one, collapsing the smaller"),
("D", "Both alveoli collapse simultaneously at equal rates"),
],
"correct": "C",
"explanation": (
"Laplace\u2019s Law: Pressure = 2 \u00d7 Surface Tension / Radius. With the same surface tension, the smaller alveolus (r = 50 \u00b5m) has HIGHER internal pressure than the larger one (r = 100 \u00b5m). "
"Air flows from high pressure to low pressure \u2014 from the small alveolus into the large one, collapsing the small alveolus. "
"Surfactant prevents this: as an alveolus shrinks, surfactant concentration increases (same amount, smaller surface area), lowering surface tension more in small alveoli, equalising pressures and preventing collapse."
),
"source": "Morgan & Mikhail\u2019s Clinical Anesthesiology \u2014 \u201cSurface Tension Forces\u201d; Costanzo Physiology 7th Ed"
},
{
"num": 14,
"topic": "Pneumothorax and Intrapleural Pressure",
"style_tag": "Clinical Vignette",
"bloom": "Analysis",
"q": "A 22-year-old tall, thin male presents with sudden left-sided chest pain and shortness of breath. CXR confirms a left-sided spontaneous pneumothorax. Which BEST describes the mechanism and immediate physical changes?",
"options": [
("A", "Atmospheric air enters the intrapleural space, raising intrapleural pressure from \u22125 to 0 cm H\u2082O; the left lung collapses and the left chest wall springs outward"),
("B", "Air enters the pleural space and pushes the left lung outward while the chest wall collapses inward"),
("C", "Intrapleural pressure becomes more negative (\u221220 cm H\u2082O), pulling the lung further out"),
("D", "The lung over-inflates due to trapped air, and intrapleural pressure rises to +10 cm H\u2082O"),
],
"correct": "A",
"explanation": (
"Normally, two opposing elastic forces maintain negative intrapleural pressure (\u22125 cm H\u2082O at FRC): lungs tend to collapse inward, chest wall tends to spring outward. "
"A pneumothorax introduces atmospheric air, so intrapleural pressure becomes 0. Two changes occur simultaneously: "
"(1) without negative pressure holding it open, the lung collapses (follows its elastic recoil inward); "
"(2) without negative pressure restraining the chest wall, the chest wall springs outward. "
"This is a key integrated concept \u2014 both changes happen together."
),
"source": "Costanzo Physiology 7th Ed \u2014 \u201cCompliance of the Chest Wall\u201d and Fig. 5.9"
},
{
"num": 15,
"topic": "Functional Residual Capacity (FRC)",
"style_tag": "Concept Application",
"bloom": "Understanding",
"q": "At Functional Residual Capacity (FRC), which statement is CORRECT about the respiratory system?",
"options": [
("A", "The inspiratory muscles are actively contracted to maintain this lung volume"),
("B", "Intrapleural pressure is zero (atmospheric) and both lung and chest wall forces are absent"),
("C", "FRC is the equilibrium point where the inward recoil of lungs exactly balances the outward recoil of the chest wall; no muscle activity is needed"),
("D", "FRC is always equal to residual volume since it represents the minimum lung volume"),
],
"correct": "C",
"explanation": (
"FRC is the resting lung volume at end of a quiet, passive expiration \u2014 no respiratory muscle activity is occurring. "
"It represents the equilibrium position where the lung\u2019s inward elastic recoil is exactly balanced by the chest wall\u2019s outward recoil. "
"Intrapleural pressure at FRC is approximately \u22125 cm H\u2082O (negative, not zero). "
"FRC is NOT equal to residual volume (RV); RV is the volume remaining after maximal forced expiration, which is smaller than FRC."
),
"source": "Costanzo Physiology 7th Ed; Harrison\u2019s Principles of Internal Medicine 22E"
},
{
"num": 16,
"topic": "Spirometry: Obstructive vs Restrictive Pattern",
"style_tag": "Concept Application",
"bloom": "Application",
"q": "A spirometry report shows: FVC = 2.0 L (predicted 4.0 L), FEV\u2081 = 1.8 L (predicted 3.3 L), FEV\u2081/FVC ratio = 90%. Which pattern does this represent?",
"options": [
("A", "Obstructive pattern \u2014 consistent with COPD or asthma"),
("B", "Restrictive pattern \u2014 consistent with pulmonary fibrosis or pleural effusion"),
("C", "Mixed pattern \u2014 both obstructive and restrictive components"),
("D", "Normal pattern \u2014 FEV\u2081/FVC of 90% rules out significant disease"),
],
"correct": "B",
"explanation": (
"The hallmark distinction: In obstructive disease (COPD, asthma), FEV\u2081 falls disproportionately more than FVC, so FEV\u2081/FVC is LOW (<70%). "
"In restrictive disease (fibrosis, obesity, neuromuscular disease), both FEV\u2081 and FVC fall proportionally, so FEV\u2081/FVC is NORMAL or HIGH. "
"Here, FVC is halved (50% of predicted) but FEV\u2081/FVC is 90% (well above 70%) \u2014 the classic restrictive pattern. "
"Option D is wrong: a normal ratio does not equal no disease when absolute FVC is severely reduced."
),
"source": "Ganong\u2019s Review of Medical Physiology 26th Ed \u2014 \u201cAirflow Measurements of Obstructive & Restrictive Disease\u201d"
},
{
"num": 17,
"topic": "Carbon Monoxide Poisoning \u2014 Normal SpO\u2082 Trap",
"style_tag": "Clinical Vignette",
"bloom": "Evaluation",
"q": "A 30-year-old is found unconscious in a garage with a running engine. SpO\u2082 by pulse oximetry reads 98%. ABG shows PaO\u2082 = 95 mm Hg. Yet the patient has severe tissue hypoxia and cherry-red skin. What is the best explanation?",
"options": [
("A", "The ABG and SpO\u2082 are both falsely elevated due to carboxyhaemoglobin"),
("B", "The patient has metabolic alkalosis causing a left shift of the O\u2082-Hb curve"),
("C", "PaO\u2082 is normal but CO occupies Hb binding sites, reduces O\u2082 content, AND causes a left shift \u2014 O\u2082 cannot be unloaded to tissues"),
("D", "Cherry-red skin indicates normal oxygenation; the unconsciousness has another cause"),
],
"correct": "C",
"explanation": (
"CO poisoning: PaO\u2082 measures dissolved O\u2082 in plasma, which is unaffected by CO. "
"Pulse oximetry cannot distinguish oxyhaemoglobin from carboxyhaemoglobin (COHb) \u2014 SpO\u2082 reads falsely normal. "
"The real problem: CO has 250\u00d7 greater affinity for Hb than O\u2082, displacing O\u2082 from binding sites (reducing O\u2082 content). "
"CO also causes a LEFT shift of the O\u2082-Hb curve \u2014 the remaining O\u2082-loaded Hb holds on tighter and refuses to unload O\u2082 to tissues. "
"Cherry-red skin is from COHb itself, which is bright red, NOT from good oxygenation."
),
"source": "Costanzo Physiology 7th Ed \u2014 \u201cHypoxia\u201d Table 5.6"
},
{
"num": 18,
"topic": "Lung Hysteresis \u2014 Saline Experiment",
"style_tag": "Concept Application",
"bloom": "Analysis",
"q": "When a saline-filled (instead of air-filled) isolated lung is studied on a pressure-volume loop, the inspiration and expiration curves become identical (no hysteresis). What does this experiment demonstrate?",
"options": [
("A", "Saline increases elastic tissue content, stiffening the lung equally in both directions"),
("B", "Saline eliminates the liquid-air interface, removing surface tension as a factor \u2014 proving hysteresis is caused by surface tension dynamics, not elastic tissue"),
("C", "Saline dissolves surfactant, making the lung uniformly stiffer on both inspiration and expiration"),
("D", "Saline reduces lung compliance so severely that volume change cannot be measured"),
],
"correct": "B",
"explanation": (
"This classic experiment isolates two contributors to lung elasticity: (1) elastic tissue properties of lung parenchyma, and (2) surface tension at the liquid-air interface. "
"Filling the lung with saline eliminates the air-liquid interface entirely, removing surface tension. "
"When hysteresis disappears in the saline lung, it directly proves that hysteresis in the normal air-filled lung is caused by surface tension dynamics (surfactant behaviour during inflation vs. deflation), not by elastic tissue. "
"Elastic tissue behaviour would be symmetrical on inflation and deflation."
),
"source": "Costanzo Physiology 7th Ed \u2014 \u201cCompliance of the Lungs\u201d (hysteresis section)"
},
{
"num": 19,
"topic": "Cyanide Poisoning \u2014 Histotoxic Hypoxia",
"style_tag": "Clinical Vignette",
"bloom": "Evaluation",
"q": "A factory worker exposed to a chemical fume presents with confusion and lactic acidosis. PaO\u2082 is 95 mm Hg, SpO\u2082 is 97%, and his venous blood is bright red (nearly arterial in colour). CO levels are undetectable. Which mechanism BEST explains his hypoxia?",
"options": [
("A", "Low V/Q mismatch causing hypoxaemic hypoxia"),
("B", "Cyanide poisoning \u2014 blocks cytochrome c oxidase, preventing O\u2082 utilisation by mitochondria; O\u2082 is delivered but cannot be used"),
("C", "Methaemoglobinaemia \u2014 iron oxidised to Fe\u00b3\u207a cannot bind O\u2082"),
("D", "Diffusion impairment across a thickened alveolar membrane"),
],
"correct": "B",
"explanation": (
"The key clue is bright red venous blood. Normally, venous blood is dark because tissues extract O\u2082, converting oxyhaemoglobin to deoxyhaemoglobin. "
"In cyanide poisoning, cells cannot use O\u2082 (cyanide blocks Complex IV / cytochrome c oxidase in the mitochondrial electron transport chain). "
"Tissues do not extract O\u2082, so venous blood remains oxygen-saturated and appears bright red \u2014 nearly identical to arterial blood. "
"This is \u2018histotoxic hypoxia\u2019: PaO\u2082 is normal, O\u2082 content is normal, O\u2082 delivery to cells is normal, but O\u2082 utilisation is blocked. "
"Lactic acidosis occurs because cells shift to anaerobic glycolysis. "
"This is the ONLY form of hypoxia where venous PO\u2082 is near-normal."
),
"source": "Costanzo Physiology 7th Ed \u2014 \u201cHypoxia\u201d Table 5.6"
},
{
"num": 20,
"topic": "Emphysema vs Fibrosis \u2014 Integrated",
"style_tag": "Clinical Reasoning",
"bloom": "Evaluation",
"q": (
"Compare the following two patients:\n"
"Patient X: FEV\u2081/FVC = 45%, TLC increased, DLCO decreased\n"
"Patient Y: FEV\u2081/FVC = 88%, TLC decreased, DLCO decreased\n\n"
"What is the MOST LIKELY diagnosis for each, and what is the unifying finding?"
),
"options": [
("A", "X = Asthma; Y = Pulmonary fibrosis; both have reduced airflow"),
("B", "X = Emphysema; Y = Pulmonary fibrosis; both have reduced DLCO because gas-exchanging surface area is lost in both"),
("C", "X = Chronic bronchitis; Y = Fibrosis; both have obstructive spirometry"),
("D", "X = Emphysema; Y = Fibrosis; both have increased TLC reflecting air trapping"),
],
"correct": "B",
"explanation": (
"Patient X: Low FEV\u2081/FVC (obstructive) + increased TLC (air trapping from loss of elastic recoil) = Emphysema. "
"Alveolar wall destruction reduces the gas-exchanging surface area, explaining reduced DLCO. "
"Patient Y: Normal/high FEV\u2081/FVC + decreased TLC (restrictive \u2014 stiff lungs cannot fully inflate) = Pulmonary Fibrosis. "
"Fibrosis thickens alveolar walls and scars the lung, also reducing DLCO. "
"Unifying finding: both diseases destroy or scar the alveolar-capillary membrane, reducing surface area for diffusion \u2014 hence both have reduced DLCO despite completely opposite spirometry and lung volume patterns."
),
"source": "Ganong\u2019s Review of Medical Physiology 26th Ed; Costanzo Physiology 7th Ed"
},
]
ALL_MCQS = SET1 + SET2
# ── Helper to build one MCQ block ───────────────────────────────────
def build_mcq_block(mcq, set_color):
items = []
# Question header row
header_data = [
[
Paragraph(f"Q{mcq['num']}", q_num_style),
Paragraph(f"<font color='#{set_color[1:]}'>\u25cf</font> {mcq['topic']}", topic_tag_style),
Paragraph(mcq['style_tag'], topic_tag_style),
]
]
header_tbl = Table(header_data, colWidths=[1.2*cm, 10*cm, 4.5*cm])
header_tbl.setStyle(TableStyle([
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
("LEFTPADDING", (0,0), (-1,-1), 0),
("RIGHTPADDING", (0,0), (-1,-1), 0),
("BOTTOMPADDING", (0,0), (-1,-1), 2),
("TOPPADDING", (0,0), (-1,-1), 0),
]))
items.append(header_tbl)
# Question text
# Replace \n with <br/>
q_html = mcq["q"].replace("\n", "<br/>")
items.append(Paragraph(q_html, q_text_style))
# Options
for letter, text in mcq["options"]:
if letter == mcq["correct"]:
items.append(Paragraph(f"\u2714 {letter}. {text}", correct_option_style))
else:
items.append(Paragraph(f"\u25a1 {letter}. {text}", option_style))
items.append(Spacer(1, 4))
# Answer + explanation box
ans_content = [
[Paragraph(f"Correct Answer: {mcq['correct']}", answer_label_style)],
[Paragraph(mcq["explanation"], explanation_style)],
[Paragraph(f"\u2139 Source: {mcq['source']}", source_style)],
]
ans_tbl = Table(ans_content, colWidths=[15.5*cm])
ans_tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), GREEN_LIGHT),
("BOX", (0,0), (-1,-1), 0.8, colors.HexColor("#1E6B3C")),
("LEFTPADDING", (0,0), (-1,-1), 8),
("RIGHTPADDING", (0,0), (-1,-1), 8),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("VALIGN", (0,0), (-1,-1), "TOP"),
]))
items.append(ans_tbl)
items.append(Spacer(1, 10))
items.append(HRFlowable(width="100%", thickness=0.5, color=GREY_RULE))
items.append(Spacer(1, 8))
return KeepTogether(items)
def build_set_header(set_num, title, subtitle):
color = DARK_BLUE if set_num == 1 else TEAL
data = [
[Paragraph(title, set_header_style)],
[Paragraph(subtitle, set_sub_style)],
]
tbl = Table(data, colWidths=[15.5*cm])
tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), color),
("BOX", (0,0), (-1,-1), 0, color),
("LEFTPADDING", (0,0), (-1,-1), 12),
("RIGHTPADDING", (0,0), (-1,-1), 12),
("TOPPADDING", (0,0), (-1,-1), 8),
("BOTTOMPADDING", (0,0), (-1,-1), 8),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
]))
return tbl
def build_summary_table(mcqs, set_num):
color = DARK_BLUE if set_num == 1 else TEAL
header = [
Paragraph("Q#", table_header_style),
Paragraph("Topic", table_header_style),
Paragraph("Style", table_header_style),
Paragraph("Bloom's Level", table_header_style),
]
rows = [header]
for m in mcqs:
rows.append([
Paragraph(str(m["num"]), table_cell_style),
Paragraph(m["topic"], table_cell_style),
Paragraph(m["style_tag"], table_cell_style),
Paragraph(m["bloom"], table_cell_style),
])
tbl = Table(rows, colWidths=[1.2*cm, 7*cm, 4.3*cm, 3*cm])
style = TableStyle([
("BACKGROUND", (0,0), (-1,0), color),
("TEXTCOLOR", (0,0), (-1,0), WHITE),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,-1), 8.5),
("ROWBACKGROUNDS", (0,1), (-1,-1), [WHITE, GREY_BG]),
("BOX", (0,0), (-1,-1), 0.5, GREY_RULE),
("INNERGRID", (0,0), (-1,-1), 0.3, GREY_RULE),
("ALIGN", (0,0), (-1,-1), "CENTER"),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING", (0,0), (-1,-1), 4),
("LEFTPADDING", (0,0), (-1,-1), 4),
("RIGHTPADDING", (0,0), (-1,-1), 4),
])
tbl.setStyle(style)
return tbl
# ── Build cover page ─────────────────────────────────────────────────
def cover_page():
items = []
items.append(Spacer(1, 1.2*cm))
# Title banner
cover_data = [
[Paragraph("Respiratory Physiology", title_style)],
[Paragraph("Higher Order Thinking MCQs", title_style)],
[Spacer(1, 4)],
[Paragraph("20 Questions \u2022 Sets 1 & 2 \u2022 Mixed Clinical Vignette + Concept Application", subtitle_style)],
[Paragraph("1st Year MBBS \u2022 Bloom\u2019s Levels: Application | Analysis | Evaluation", subtitle_style)],
]
cover_tbl = Table(cover_data, colWidths=[15.5*cm])
cover_tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), DARK_BLUE),
("TOPPADDING", (0,0), (-1,-1), 10),
("BOTTOMPADDING", (0,0), (-1,-1), 10),
("LEFTPADDING", (0,0), (-1,-1), 16),
("RIGHTPADDING", (0,0), (-1,-1), 16),
]))
items.append(cover_tbl)
items.append(Spacer(1, 0.5*cm))
# Info grid
info_data = [
[
Paragraph("<b>Total Questions</b><br/>20 MCQs", ParagraphStyle("ic", parent=styles["Normal"], fontSize=10, textColor=DARK_BLUE, fontName="Helvetica", alignment=TA_CENTER, leading=14)),
Paragraph("<b>Topic</b><br/>Respiratory Physiology", ParagraphStyle("ic", parent=styles["Normal"], fontSize=10, textColor=DARK_BLUE, fontName="Helvetica", alignment=TA_CENTER, leading=14)),
Paragraph("<b>Level</b><br/>1st Year MBBS", ParagraphStyle("ic", parent=styles["Normal"], fontSize=10, textColor=DARK_BLUE, fontName="Helvetica", alignment=TA_CENTER, leading=14)),
Paragraph("<b>Format</b><br/>Single Best Answer", ParagraphStyle("ic", parent=styles["Normal"], fontSize=10, textColor=DARK_BLUE, fontName="Helvetica", alignment=TA_CENTER, leading=14)),
]
]
info_tbl = Table(info_data, colWidths=[3.875*cm]*4)
info_tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), LIGHT_BLUE),
("BOX", (0,0), (-1,-1), 1, MID_BLUE),
("INNERGRID", (0,0), (-1,-1), 0.5, MID_BLUE),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
("TOPPADDING", (0,0), (-1,-1), 10),
("BOTTOMPADDING", (0,0), (-1,-1), 10),
]))
items.append(info_tbl)
items.append(Spacer(1, 0.5*cm))
# Topics covered
topics_intro = ParagraphStyle("ti", parent=styles["Normal"], fontSize=10, textColor=DARK_BLUE, fontName="Helvetica-Bold", leading=14, spaceAfter=4)
topics_body = ParagraphStyle("tb", parent=styles["Normal"], fontSize=9.5, textColor=colors.HexColor("#2C3E50"), fontName="Helvetica", leading=14)
items.append(Paragraph("Topics Covered", topics_intro))
items.append(Paragraph(
"<b>Set 1:</b> Bohr Effect \u2022 Oxygen Carrying Capacity \u2022 V/Q Dead Space (Pulmonary Embolism) \u2022 CO\u2082 Transport \u2022 "
"Hyperventilation & O\u2082 Delivery \u2022 Alveolar Gas Equation / Altitude \u2022 2,3-BPG in Stored Blood \u2022 "
"Shunt vs Dead Space (Pneumonia) \u2022 COPD & Hypoxic Drive \u2022 Intracellular O\u2082 / ADP",
topics_body
))
items.append(Spacer(1, 4))
items.append(Paragraph(
"<b>Set 2:</b> Lung Compliance in Fibrosis \u2022 IRDS / Surfactant Deficiency \u2022 Laplace\u2019s Law \u2022 "
"Pneumothorax & Intrapleural Pressure \u2022 Functional Residual Capacity \u2022 Spirometry Patterns (Obstructive/Restrictive) \u2022 "
"CO Poisoning (Normal SpO\u2082 Trap) \u2022 Lung Hysteresis \u2022 Cyanide / Histotoxic Hypoxia \u2022 Emphysema vs Fibrosis (DLCO)",
topics_body
))
items.append(Spacer(1, 0.5*cm))
# Sources
items.append(Paragraph("Sources", topics_intro))
items.append(Paragraph(
"Guyton and Hall Textbook of Medical Physiology \u2022 Costanzo Physiology 7th Edition \u2022 "
"Ganong\u2019s Review of Medical Physiology 26th Edition \u2022 Medical Physiology (Boron & Boulpaep)",
topics_body
))
items.append(Spacer(1, 0.5*cm))
# How to use
items.append(Paragraph("How to Use This Guide", topics_intro))
items.append(Paragraph(
"1. Attempt each question before reading the answer.\n"
"2. Cover the answer box and work through the options systematically.\n"
"3. Pay attention to the explanation \u2014 most questions test a MECHANISM, not just a fact.\n"
"4. Use the summary tables at the start of each set to identify weak areas.",
ParagraphStyle("howto", parent=styles["Normal"], fontSize=9.5, textColor=colors.HexColor("#2C3E50"),
fontName="Helvetica", leading=15)
))
items.append(PageBreak())
return items
# ── Assemble document ────────────────────────────────────────────────
story = []
story.extend(cover_page())
# ── SET 1 ─────────────────────────────────────────────────────────────
story.append(build_set_header(1, "SET 1 \u2014 Questions 1\u201310",
"O\u2082 & CO\u2082 Transport \u2022 Hb-O\u2082 Dissociation Curve \u2022 V/Q Relationships \u2022 Control of Breathing"))
story.append(Spacer(1, 0.4*cm))
# Summary table Set 1
story.append(build_summary_table(SET1, 1))
story.append(Spacer(1, 0.5*cm))
story.append(HRFlowable(width="100%", thickness=1.2, color=DARK_BLUE))
story.append(Spacer(1, 0.4*cm))
for mcq in SET1:
story.append(build_mcq_block(mcq, "#1B3A6B"))
story.append(PageBreak())
# ── SET 2 ─────────────────────────────────────────────────────────────
story.append(build_set_header(2, "SET 2 \u2014 Questions 11\u201320",
"Lung Mechanics \u2022 Surfactant \u2022 Spirometry \u2022 Hypoxia Types \u2022 Clinical Integration"))
story.append(Spacer(1, 0.4*cm))
story.append(build_summary_table(SET2, 2))
story.append(Spacer(1, 0.5*cm))
story.append(HRFlowable(width="100%", thickness=1.2, color=TEAL))
story.append(Spacer(1, 0.4*cm))
for mcq in SET2:
story.append(build_mcq_block(mcq, "#1A7A6E"))
# ── Footer callback ───────────────────────────────────────────────────
def add_footer(canvas, doc):
canvas.saveState()
canvas.setFont("Helvetica", 7.5)
canvas.setFillColor(colors.HexColor("#94A3B8"))
canvas.drawCentredString(A4[0]/2, 1.2*cm,
f"Respiratory Physiology HOT MCQs \u2022 1st Year MBBS \u2022 Page {doc.page}")
canvas.restoreState()
doc.build(story, onFirstPage=add_footer, onLaterPages=add_footer)
print(f"PDF created: {OUTPUT}")
cd /tmp/workspace/resp-physio-mcq && python generate_pdf.py 2>&1
ls -lh /tmp/workspace/resp-physio-mcq/Respiratory_Physiology_HOT_MCQs.pdf
Respiratory Physiology HOT MCQs
PDF Document · PDF
thanks
write a short note on organisation of electron transport chain
| Feature | Detail |
|---|---|
| Size | ~45 subunits - the largest complex |
| Prosthetic groups | FMN (flavin mononucleotide) + multiple Fe-S centres |
| Electron donor | NADH |
| Electron acceptor | Coenzyme Q (CoQ) |
| Protons pumped | 4 H+ from matrix to IMS per NADH |
| Feature | Detail |
|---|---|
| Also part of | TCA cycle |
| Prosthetic groups | FAD + Fe-S centres |
| Electron donor | FADH2 (from succinate → fumarate) |
| Electron acceptor | Coenzyme Q |
| Protons pumped | 0 |
| Feature | Detail |
|---|---|
| Components | Cytochromes b, c1 + Fe-S centre (Rieske protein) |
| Electron donor | CoQH2 |
| Electron acceptor | Cytochrome c |
| Protons pumped | 4 H+ per 2 electrons via the Q cycle |
| Feature | Detail |
|---|---|
| Components | Cytochromes a and a3, copper centres CuA and CuB |
| Electron donor | Cytochrome c |
| Final electron acceptor | O2 |
| Product | H2O |
| Protons pumped | 2 H+ per 2 electrons (plus 2 H+ consumed from matrix to form H2O) |
| Complex | H+ pumped |
|---|---|
| I | 4 |
| III | 4 |
| IV | 2 |
| Total | 10 H+ |
NADH ──→ Complex I ──→ CoQ ──→ Complex III ──→ Cyt c ──→ Complex IV ──→ O2 → H2O
↑
FADH2 ──→ Complex II ──→ CoQ
(Other flavoproteins also → CoQ)
H+ pumped: [4] [4] [2]
| Inhibitor | Site of Action | Clinical Relevance |
|---|---|---|
| Rotenone | Complex I | Pesticide; Parkinson's model |
| Cyanide (CN-) | Complex IV | Blocks O2 binding; histotoxic hypoxia |
| Carbon monoxide (CO) | Complex IV | Also binds haemoglobin |
| Antimycin A | Complex III | Experimental inhibitor |
| Oligomycin | ATP synthase (Complex V) | Blocks proton channel |
create pdf
you mean only one time i can make pdf?
how to topup