?
Read the content and explain everything exam compatible manner for an mcq based quiz tomorrow i should score high its based on biochemistry
BASE="/tmp/workspace/attachments/ec85d7f3-a3ac-4982-abe0-611b65734c06" python3 - <<'EOF' from pptx import Presentation import os files = [ "Plasma proteins. (1).pptx", "Chemical composition of lymph and interstitial fluid.pptx", "Metabolic Pathway in heart.pptx", "Biochemical basis of smooth muscle contraction and relaxation (1).pptx", "Biochemical basis of smooth muscle contraction and relaxation (1) (1).pptx" ] base = "/tmp/workspace/attachments/ec85d7f3-a3ac-4982-abe0-611b65734c06" for fname in files: path = os.path.join(base, fname) print(f"\n{'='*60}") print(f"FILE: {fname}") print('='*60) try: prs = Presentation(path) for i, slide in enumerate(prs.slides, 1): texts = [] for shape in slide.shapes: if shape.has_text_frame: t = shape.text_frame.text.strip() if t: texts.append(t) if texts: print(f"\n--- Slide {i} ---") for t in texts: print(t) except Exception as e: print(f"ERROR: {e}") EOF
| Protein | % | Key Function |
|---|---|---|
| Albumin | 60% | Oncotic pressure, transport |
| Globulins | 35% | Immunity (immunoglobulins), transport |
| Fibrinogen | 4% | Blood clotting |
| Others | 1% | Enzymes, complement, hormones |
| Protein | Type | Function |
|---|---|---|
| Glycophorin A | Integral membrane | Blood group antigens, structure |
| Band 3 (AE1) | Integral membrane | CO2/Cl- exchange; anchors cytoskeleton |
| Spectrin | Peripheral / Cytoskeletal | Meshwork for flexibility; biconcave shape |
| Ankyrin | Linker | Binds Band 3; anchors spectrin to membrane |
| Protein 4.1 | Linker | Links spectrin to glycophorin |
| Actin | Cytoskeletal | Works with spectrin for shape stability |
| Adducin | Cytoskeletal | Stabilizes spectrin-actin junctions |
| Component | Plasma | Lymph / Interstitial Fluid |
|---|---|---|
| Proteins | High (albumin, globulin, fibrinogen) | Less than plasma |
| Calcium | Normal | Less |
| Phosphorus | Normal | Less |
| Glucose | Normal | Higher in lymph |
| Water content | ~93% | ~94% |
| Antibodies | Yes | Yes (globulins present) |
| Lipoprotein | Origin | Main Cargo | Key Apolipoprotein |
|---|---|---|---|
| Chylomicron | Intestinal enterocytes | Dietary triglycerides | ApoB-48, ApoC-II, ApoE |
| VLDL | Liver | Endogenous TG | ApoB-100, ApoC-II, ApoE |
| IDL | Plasma (VLDL breakdown) | TG + cholesterol | ApoB-100, ApoE |
| LDL | Plasma (IDL breakdown) | Cholesterol | ApoB-100 (binds LDL receptor) |
| HDL | Liver + intestine | Reverse cholesterol | ApoA-I |
| Tissue | Effect of phosphorylation |
|---|---|
| Liver | Inactivated → less glycolysis |
| Skeletal muscle | Cannot be phosphorylated by hormones; responds to AMP/ADP |
| Cardiac muscle | ACTIVATED by phosphorylation → more F-2,6-BP → glycolysis speeds up |
| Type | Location | Role |
|---|---|---|
| eNOS (NOS3) | Endothelial cells | Vasodilation, vascular protection |
| nNOS (NOS1) | Neurons | Memory, learning, LTP |
| iNOS (NOS2) | Macrophages | Immune defense, kills pathogens |
| Muscle | Receptor | Effect of cAMP | Mechanism |
|---|---|---|---|
| Cardiac | β1-adrenergic | Contraction (positive inotropy) | PKA → ↑ Ca2+ → stronger contraction |
| Smooth | β2-adrenergic | Relaxation | PKA → phosphorylates MLCK → MLCK cannot bind Ca2+-calmodulin → inactive |
| Skeletal | - | Minimal direct effect; enhances ACh release; stimulates glycogen breakdown | - |
| Drug | Mechanism | Use |
|---|---|---|
| Salbutamol (Albuterol, Ventolin) | β2 agonist → ↑cAMP → PKA → inhibits MLCK → bronchodilation | Asthma |
| Adrenaline (Epinephrine) | β2 agonist (bronchi) → relaxation; α1 agonist (vessels) → constriction | Anaphylaxis, cardiac arrest |
| Oxytocin | Stimulates uterine smooth muscle contraction | Labor induction |
| Angiotensin II | Vasoconstriction | Blood pressure regulation |
| Sildenafil (Viagra) | PDE-5 inhibitor → ↑cGMP → smooth muscle relaxation | Erectile dysfunction, pulmonary hypertension |
| NO/Nitrates | ↑cGMP → vasodilation | Angina |
Create a quick reference PDF with key MCQ traps
ls -la /tmp/workspace/ 2>/dev/null || echo "workspace empty or missing"
mkdir -p /tmp/workspace/biochem-quickref && python3 - <<'PYEOF' from reportlab.lib.pagesizes import A4 from reportlab.lib import colors from reportlab.lib.units import cm from reportlab.platypus import ( SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, HRFlowable, KeepTogether ) from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY from reportlab.platypus import PageBreak # ── Output path ────────────────────────────────────────────────────────────── OUTPUT = "/tmp/workspace/biochem-quickref/Biochem_MCQ_Quick_Reference.pdf" # ── Colour palette ──────────────────────────────────────────────────────────── C_NAVY = colors.HexColor("#1B2A4A") C_BLUE = colors.HexColor("#2563EB") C_SKY = colors.HexColor("#DBEAFE") C_RED = colors.HexColor("#DC2626") C_PINK = colors.HexColor("#FEE2E2") C_GREEN = colors.HexColor("#16A34A") C_MINT = colors.HexColor("#DCFCE7") C_ORANGE = colors.HexColor("#D97706") C_AMBER = colors.HexColor("#FEF3C7") C_PURPLE = colors.HexColor("#7C3AED") C_LILAC = colors.HexColor("#EDE9FE") C_GREY = colors.HexColor("#F3F4F6") C_DARK = colors.HexColor("#111827") C_WHITE = colors.white # ── Styles ──────────────────────────────────────────────────────────────────── styles = getSampleStyleSheet() def style(name, **kw): s = ParagraphStyle(name, **kw) return s S_TITLE = style("S_TITLE", fontName="Helvetica-Bold", fontSize=22, textColor=C_WHITE, alignment=TA_CENTER, spaceAfter=4, leading=28) S_SUBTITLE = style("S_SUBTITLE", fontName="Helvetica", fontSize=11, textColor=C_SKY, alignment=TA_CENTER, spaceAfter=2) S_SECTION = style("S_SECTION", fontName="Helvetica-Bold", fontSize=13, textColor=C_WHITE, alignment=TA_LEFT, spaceAfter=2, spaceBefore=6, leftIndent=6, leading=18) S_SUBSEC = style("S_SUBSEC", fontName="Helvetica-Bold", fontSize=10, textColor=C_NAVY, spaceAfter=2, spaceBefore=4, leading=14) S_BODY = style("S_BODY", fontName="Helvetica", fontSize=9, textColor=C_DARK, spaceAfter=2, leading=13) S_TRAP_Q = style("S_TRAP_Q", fontName="Helvetica-Bold", fontSize=9, textColor=C_RED, spaceAfter=1, leading=13) S_TRAP_A = style("S_TRAP_A", fontName="Helvetica", fontSize=9, textColor=C_DARK, spaceAfter=3, leftIndent=12, leading=13) S_TRUE = style("S_TRUE", fontName="Helvetica-Bold", fontSize=9, textColor=C_GREEN, spaceAfter=1, leading=12) S_FALSE = style("S_FALSE", fontName="Helvetica-Bold", fontSize=9, textColor=C_RED, spaceAfter=1, leading=12) S_MNEM = style("S_MNEM", fontName="Helvetica-BoldOblique", fontSize=9, textColor=C_PURPLE, spaceAfter=2, leading=13, leftIndent=8) S_TABLE_H = style("S_TABLE_H", fontName="Helvetica-Bold", fontSize=8.5, textColor=C_WHITE, alignment=TA_CENTER, leading=12) S_TABLE_C = style("S_TABLE_C", fontName="Helvetica", fontSize=8, textColor=C_DARK, alignment=TA_LEFT, leading=11) S_FOOTER = style("S_FOOTER", fontName="Helvetica-Oblique", fontSize=7.5, textColor=colors.grey, alignment=TA_CENTER) # ── Helper builders ─────────────────────────────────────────────────────────── def section_header(text, bg=C_NAVY): data = [[Paragraph(text, S_SECTION)]] t = Table(data, colWidths=[17.5*cm]) t.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,-1), bg), ("TOPPADDING", (0,0), (-1,-1), 6), ("BOTTOMPADDING", (0,0), (-1,-1), 6), ("LEFTPADDING", (0,0), (-1,-1), 10), ("ROUNDEDCORNERS", [4, 4, 4, 4]), ])) return t def trap_block(q_text, a_text): return [ Paragraph(f"Q: {q_text}", S_TRAP_Q), Paragraph(f"→ {a_text}", S_TRAP_A), ] def mnem(text): return Paragraph(f"✦ {text}", S_MNEM) def build_table(headers, rows, col_widths, row_colors=None): header_row = [Paragraph(h, S_TABLE_H) for h in headers] data = [header_row] for r in rows: data.append([Paragraph(str(c), S_TABLE_C) for c in r]) t = Table(data, colWidths=col_widths) style_cmds = [ ("BACKGROUND", (0,0), (-1,0), C_NAVY), ("TEXTCOLOR", (0,0), (-1,0), C_WHITE), ("ALIGN", (0,0), (-1,-1), "LEFT"), ("VALIGN", (0,0), (-1,-1), "MIDDLE"), ("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"), ("FONTSIZE", (0,0), (-1,-1), 8), ("ROWBACKGROUNDS",(0,1), (-1,-1), [C_WHITE, C_GREY]), ("GRID", (0,0), (-1,-1), 0.3, colors.HexColor("#CBD5E1")), ("TOPPADDING", (0,0), (-1,-1), 4), ("BOTTOMPADDING", (0,0), (-1,-1), 4), ("LEFTPADDING", (0,0), (-1,-1), 5), ("RIGHTPADDING", (0,0), (-1,-1), 5), ] t.setStyle(TableStyle(style_cmds)) return t def highlight_box(text, bg=C_AMBER, txt_color=C_DARK): p = Paragraph(text, ParagraphStyle("hb", fontName="Helvetica", fontSize=9, textColor=txt_color, leading=13, leftIndent=0)) t = Table([[p]], colWidths=[17.5*cm]) t.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,-1), bg), ("TOPPADDING", (0,0), (-1,-1), 6), ("BOTTOMPADDING", (0,0), (-1,-1), 6), ("LEFTPADDING", (0,0), (-1,-1), 10), ("RIGHTPADDING", (0,0), (-1,-1), 10), ("BOX", (0,0), (-1,-1), 0.8, C_ORANGE), ])) return t # ── Page template with header/footer ───────────────────────────────────────── def on_page(canvas, doc): canvas.saveState() W, H = A4 # Top banner canvas.setFillColor(C_NAVY) canvas.rect(0, H - 1.1*cm, W, 1.1*cm, fill=1, stroke=0) canvas.setFillColor(C_WHITE) canvas.setFont("Helvetica-Bold", 9) canvas.drawString(1.5*cm, H - 0.75*cm, "BIOCHEMISTRY MCQ QUICK REFERENCE") canvas.setFont("Helvetica", 8) canvas.drawRightString(W - 1.5*cm, H - 0.75*cm, f"Page {doc.page}") # Footer canvas.setFillColor(colors.HexColor("#94A3B8")) canvas.setFont("Helvetica-Oblique", 7) canvas.drawCentredString(W/2, 0.5*cm, "Plasma Proteins | Lymph & Lipoproteins | Cardiac Metabolism | Smooth Muscle Contraction") canvas.restoreState() # ── Document ────────────────────────────────────────────────────────────────── doc = SimpleDocTemplate( OUTPUT, pagesize=A4, leftMargin=1.8*cm, rightMargin=1.8*cm, topMargin=1.8*cm, bottomMargin=1.4*cm, title="Biochemistry MCQ Quick Reference" ) story = [] # ═══════════════════════════════════════════════════════════════════════════════ # COVER BANNER # ═══════════════════════════════════════════════════════════════════════════════ cover_data = [[ Paragraph("BIOCHEMISTRY", S_TITLE), ],[ Paragraph("MCQ QUICK REFERENCE", S_TITLE), ],[ Paragraph("Plasma Proteins · Lymph & Lipoproteins · Cardiac Metabolism · Smooth Muscle", S_SUBTITLE), ]] cover_t = Table(cover_data, colWidths=[17.5*cm]) cover_t.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,-1), C_NAVY), ("TOPPADDING", (0,0), (-1,-1), 10), ("BOTTOMPADDING", (0,0), (-1,-1), 10), ("LEFTPADDING", (0,0), (-1,-1), 12), ("RIGHTPADDING", (0,0), (-1,-1), 12), ])) story.append(cover_t) story.append(Spacer(1, 0.3*cm)) # ═══════════════════════════════════════════════════════════════════════════════ # SECTION 1 – MCQ TRAPS # ═══════════════════════════════════════════════════════════════════════════════ story.append(section_header("⚠ MCQ TRAPS – CLASSIC WRONG ANSWERS")) story.append(Spacer(1, 0.2*cm)) traps = [ ("Which protein is NOT made by the liver?", "Immunoglobulins. They are made by plasma cells (activated B lymphocytes), NOT the liver."), ("Prealbumin is a precursor to albumin. True or False?", "FALSE. Prealbumin (transthyretin) migrates BEFORE albumin on electrophoresis only. It does NOT convert to albumin."), ("Smooth muscle uses troponin as the Ca²⁺ sensor. True or False?", "FALSE. Smooth muscle uses CALMODULIN. Troponin is used in skeletal and cardiac muscle."), ("CPT-I is the rate-limiting step in beta-oxidation. True or False?", "TRUE. CPT-I on the outer mitochondrial membrane is the rate-limiting step of fatty acid entry into mitochondria."), ("cAMP relaxes cardiac muscle. True or False?", "FALSE. cAMP STRENGTHENS cardiac contraction (positive inotropy) via PKA → ↑Ca²⁺. cAMP RELAXES smooth muscle."), ("In heart failure, fatty acid oxidation increases to compensate. True or False?", "FALSE. Fatty acid oxidation DECREASES in heart failure. The failing heart compensates by increasing glucose oxidation (less efficient)."), ("ApoB-48 is found on LDL. True or False?", "FALSE. ApoB-48 is exclusively on chylomicrons. LDL carries ApoB-100, which binds the LDL receptor."), ("Lymph has MORE protein than plasma. True or False?", "FALSE. Lymph/interstitial fluid has LESS protein than plasma. Plasma has high albumin, globulins, and fibrinogen."), ("BH4 deficiency causes eNOS to overproduce NO. True or False?", "FALSE. BH4 deficiency causes eNOS UNCOUPLING — eNOS makes superoxide (O₂⁻) instead of NO, worsening oxidative stress."), ("Normal colloidal osmotic pressure is 25 mmHg. True or False?", "TRUE. This is maintained mainly by albumin. Low albumin → edema."), ("The heart prefers glucose as its primary fuel in the fasting state. True or False?", "FALSE. In the fasting state, 70–90% of cardiac ATP comes from FATTY ACID oxidation, not glucose."), ("MLCP promotes contraction in smooth muscle. True or False?", "FALSE. MLCP (Myosin Light Chain PHOSPHATASE) dephosphorylates MLC → promotes RELAXATION. MLCK promotes contraction."), ("Salbutamol causes bronchial smooth muscle contraction. True or False?", "FALSE. Salbutamol (β₂ agonist) → ↑cAMP → PKA → inhibits MLCK → RELAXATION of bronchial smooth muscle → airway opens."), ("ApoC-II inhibits lipoprotein lipase (LPL). True or False?", "FALSE. ApoC-II ACTIVATES LPL. LPL hydrolyzes triglycerides in chylomicrons and VLDL."), ] for q, a in traps: for item in trap_block(q, a): story.append(item) story.append(Spacer(1, 0.3*cm)) # ═══════════════════════════════════════════════════════════════════════════════ # SECTION 2 – PLASMA PROTEINS AT A GLANCE # ═══════════════════════════════════════════════════════════════════════════════ story.append(section_header("1. PLASMA PROTEINS", bg=C_BLUE)) story.append(Spacer(1, 0.15*cm)) story.append(Paragraph("Composition & Origin", S_SUBSEC)) pp_table = build_table( ["Protein", "%", "Synthesised by", "Key Function"], [ ["Albumin", "60%", "Liver", "Oncotic pressure; transport of drugs, hormones, Ca²⁺, fatty acids"], ["Globulins", "35%", "Liver + Plasma cells", "Immunity (Ig), transport (transferrin)"], ["Fibrinogen", "4%", "Liver", "Blood clotting (→ fibrin)"], ["Others", "1%", "Liver / various", "Enzymes, complement, hormones"], ["Immunoglobulins","—", "Plasma cells (B cells)","Immune defense – NOT the liver"], ["Prealbumin\n(Transthyretin)","—","Liver + Choroid plexus","Transports T₄ + retinol (via RBP); migrates BEFORE albumin on electrophoresis"], ["CRP", "—", "Liver", "Acute-phase reactant; rises within 24–48 h of inflammation"], ], [3*cm, 1.2*cm, 4*cm, 9.3*cm] ) story.append(pp_table) story.append(Spacer(1, 0.15*cm)) story.append(Paragraph("Hypoalbuminemia – High-Yield Points", S_SUBSEC)) story.append(highlight_box( "<b>Normal oncotic pressure = 25 mmHg</b> (albumin maintains this)<br/>" "Low albumin → ↓ oncotic pressure → fluid leaks out → EDEMA<br/>" "<b>Causes:</b> liver cirrhosis, malnutrition, nephrotic syndrome (renal loss), burns, bowel bleeding<br/>" "<b>Effects:</b> edema | reduced drug transport | total Ca²⁺ drops but ionised Ca²⁺ may stay normal" )) story.append(Spacer(1, 0.15*cm)) story.append(Paragraph("RBC Membrane & Cytoskeleton Proteins", S_SUBSEC)) rbc_table = build_table( ["Protein", "Type", "Key Role"], [ ["Glycophorin A", "Integral membrane", "Blood group antigens (includes Rh-related determinants)"], ["Band 3 (AE1)", "Integral membrane", "CO₂/Cl⁻ exchange; anchors cytoskeleton to membrane"], ["Spectrin", "Peripheral / Cytoskeletal", "Meshwork → biconcave shape & flexibility. Deficiency → hereditary spherocytosis"], ["Ankyrin", "Linker", "Binds Band 3; anchors spectrin network"], ["Protein 4.1", "Linker", "Links spectrin to glycophorin"], ["Actin", "Cytoskeletal", "Works with spectrin for structural stability"], ["Adducin", "Cytoskeletal", "Stabilises spectrin–actin junctions"], ], [3.2*cm, 4.2*cm, 10.1*cm] ) story.append(rbc_table) story.append(Spacer(1, 0.15*cm)) story.append(mnem("'Spectrin = Shape keeper' — deficiency → hereditary spherocytosis")) story.append(Spacer(1, 0.15*cm)) story.append(Paragraph("Hemophilia A", S_SUBSEC)) story.append(highlight_box( "<b>Factor VIII deficiency</b> | X-linked recessive | Males mainly affected<br/>" "Features: easy bruising, haemarthrosis (joint bleeds)" , bg=C_PINK, txt_color=C_RED)) story.append(Spacer(1, 0.3*cm)) # ═══════════════════════════════════════════════════════════════════════════════ # SECTION 3 – LYMPH & LIPOPROTEINS # ═══════════════════════════════════════════════════════════════════════════════ story.append(section_header("2. LYMPH, INTERSTITIAL FLUID & LIPOPROTEIN TURNOVER", bg=C_GREEN)) story.append(Spacer(1, 0.15*cm)) story.append(Paragraph("Lymph vs Plasma Composition", S_SUBSEC)) lym_table = build_table( ["Component", "Plasma", "Lymph / Interstitial Fluid"], [ ["Total protein", "HIGH", "LOW (less than plasma)"], ["Albumin", "High", "Present but less"], ["Immunoglobulins","Present","Present (globulins/antibodies)"], ["Calcium", "Normal", "Less"], ["Phosphorus", "Normal", "Less"], ["Glucose", "Normal", "Higher in lymph"], ["Water", "~93%", "~94%"], ], [4.5*cm, 4*cm, 9*cm] ) story.append(lym_table) story.append(Spacer(1, 0.1*cm)) story.append(Paragraph( "Thoracic duct drains lymph → left subclavian vein. " "Dietary fat absorbed via intestinal LACTEALS into lymph (as chylomicrons).", S_BODY)) story.append(Spacer(1, 0.15*cm)) story.append(Paragraph("Lipoprotein Density Order (least → most dense)", S_SUBSEC)) story.append(highlight_box( "Chylomicrons → VLDL → IDL → LDL → HDL", bg=C_MINT, txt_color=C_GREEN )) story.append(Spacer(1, 0.1*cm)) lipo_table = build_table( ["Lipoprotein", "Origin", "Main Cargo", "Key Apo", "Clinical"], [ ["Chylomicron", "Intestinal enterocytes", "Dietary TG", "ApoB-48, ApoC-II, ApoE", "Delivers dietary fat to tissues"], ["VLDL", "Liver", "Endogenous TG","ApoB-100, ApoC-II, ApoE","High VLDL → hypertriglyceridemia"], ["IDL", "Plasma (VLDL breakdown)","TG + Chol", "ApoB-100, ApoE", "Atherogenic remnant"], ["LDL", "Plasma (IDL breakdown)", "Cholesterol", "ApoB-100", "'Bad cholesterol'; atherosclerosis"], ["HDL", "Liver + intestine", "Rev. chol. transport","ApoA-I", "'Good cholesterol'; anti-atherogenic"], ], [2.5*cm, 3.2*cm, 2.8*cm, 3.5*cm, 5.5*cm] ) story.append(lipo_table) story.append(Spacer(1, 0.15*cm)) story.append(Paragraph("Chylomicron Pathway (Sequence)", S_SUBSEC)) story.append(Paragraph( "Dietary fat → enterocytes → packaged with <b>ApoB-48</b> using <b>MTP</b> → secreted into <b>lacteals</b> → " "thoracic duct → blood → acquires <b>ApoC-II + ApoE</b> from HDL → " "<b>ApoC-II activates LPL</b> (on capillary endothelium) → TG hydrolysed → FFA to tissues → " "chylomicron remnant → taken up by liver via <b>ApoE binding LDL receptor + LRP1</b>", S_BODY)) story.append(Spacer(1, 0.1*cm)) story.append(mnem("'C-II Calls LPL' — ApoC-II activates Lipoprotein Lipase")) story.append(mnem("'E goes to the lEver (liver)' — ApoE mediates remnant clearance by liver")) story.append(Spacer(1, 0.3*cm)) # ═══════════════════════════════════════════════════════════════════════════════ # SECTION 4 – CARDIAC METABOLISM # ═══════════════════════════════════════════════════════════════════════════════ story.append(section_header("3. METABOLIC PATHWAYS IN THE HEART", bg=C_ORANGE)) story.append(Spacer(1, 0.15*cm)) story.append(Paragraph("Energy Numbers to Remember", S_SUBSEC)) energy_table = build_table( ["Parameter", "Value"], [ ["% cardiac ATP from fatty acids (normal)", "70–90%"], ["% cardiac ATP from glucose/lactate/ketones", "10–30%"], ["% ATP used for myocardial contraction", "60–70%"], ["% ATP used for ion pumps", "30–40%"], ["% ATP from mitochondrial oxidative phosphorylation","~90%"], ["ATP yield from palmitic acid (C16)", "~106 ATP"], ["ATP yield per glucose", "30–38 ATP"], ["Heart ATP demand per day", "~6 kg"], ], [10*cm, 7.5*cm] ) story.append(energy_table) story.append(Spacer(1, 0.15*cm)) story.append(Paragraph("Heart Failure Metabolic Shift", S_SUBSEC)) story.append(highlight_box( "<b>Normal heart:</b> fatty acids primary (70–90%) | " "<b>Failing heart:</b> ↓ fatty acid oxidation, ↑ glucose oxidation (compensatory but less efficient)<br/>" "Lactate: normal heart USES lactate; ischaemic/failing heart EXCRETES lactate (anaerobic glycolysis)" , bg=C_AMBER)) story.append(Spacer(1, 0.15*cm)) story.append(Paragraph("PFK Regulation in Different Tissues", S_SUBSEC)) pfk_table = build_table( ["Tissue", "PFK-2 Response to Phosphorylation", "How Glycolysis is Controlled"], [ ["Liver", "INACTIVATED → less glycolysis", "Glucagon/insulin hormonal control"], ["Skeletal muscle", "Cannot be phosphorylated by hormones", "AMP/ADP (energy demand); exercise"], ["Cardiac muscle", "ACTIVATED → more F-2,6-BP → glycolysis ON", "Insulin & AMPK phosphorylate PFK-2"], ], [3.5*cm, 6.5*cm, 7.5*cm] ) story.append(pfk_table) story.append(Spacer(1, 0.1*cm)) story.append(Paragraph( "<b>AMPK</b> (AMP-activated protein kinase) = cellular energy sensor. " "High AMP (low ATP) → AMPK activated → phosphorylates cardiac PFK-2 → ↑F-2,6-BP → glycolysis boosted.", S_BODY)) story.append(Spacer(1, 0.15*cm)) story.append(Paragraph("Carnitine Shuttle – Rate-Limiting Step", S_SUBSEC)) story.append(Paragraph( "Long-chain fatty acids cannot enter mitochondria directly.<br/>" "<b>CPT-I</b> (outer mitochondrial membrane) = <b>RATE-LIMITING</b>: Fatty acyl-CoA → Acyl-carnitine<br/>" "Translocase moves it across. <b>CPT-II</b> (inner membrane): Acyl-carnitine → Fatty acyl-CoA (inside)<br/>" "β-oxidation then proceeds: each cycle yields <b>1 FADH₂ + 1 NADH + 1 Acetyl-CoA</b>", S_BODY)) story.append(Spacer(1, 0.1*cm)) story.append(mnem("'CPT-I is the GATEKEEPER' — rate-limiting step of fatty acid entry into mitochondria")) story.append(Spacer(1, 0.15*cm)) story.append(Paragraph("Creatine Shuttle / CK in MI", S_SUBSEC)) story.append(highlight_box( "<b>Creatine Kinase (CK/CPK):</b> transfers high-energy phosphate between mitochondria and cytosol<br/>" "Phosphocreatine + ADP ↔ Creatine + ATP (rapid energy buffer)<br/>" "<b>In MI:</b> cardiomyocytes die → CK leaks into blood → elevated serum CK = heart muscle damage<br/>" "CK-MB isoform = cardiac-specific marker for MI" , bg=C_MINT, txt_color=C_DARK)) story.append(Spacer(1, 0.3*cm)) # ═══════════════════════════════════════════════════════════════════════════════ # SECTION 5 – SMOOTH MUSCLE # ═══════════════════════════════════════════════════════════════════════════════ story.append(section_header("4. SMOOTH MUSCLE CONTRACTION & RELAXATION", bg=C_PURPLE)) story.append(Spacer(1, 0.15*cm)) story.append(Paragraph("Contraction Pathway (Sequence)", S_SUBSEC)) story.append(Paragraph( "<b>Stimulus</b> (nerve/hormone/stretch) → ↑ intracellular <b>Ca²⁺</b> (via voltage-gated channels or SR) → " "Ca²⁺ binds <b>calmodulin</b> → Ca²⁺–calmodulin activates <b>MLCK</b> → " "MLCK <b>phosphorylates MLC</b> → phospho-myosin binds actin → <b>cross-bridge cycling</b> → contraction", S_BODY)) story.append(Spacer(1, 0.1*cm)) story.append(Paragraph("Relaxation Pathway", S_SUBSEC)) story.append(Paragraph( "↓ Ca²⁺ (pumped back to SR / out of cell) → Ca²⁺–calmodulin dissociates → MLCK inactive → " "<b>MLCP</b> (myosin light-chain phosphatase) <b>dephosphorylates MLC</b> → muscle relaxes", S_BODY)) story.append(Spacer(1, 0.15*cm)) story.append(Paragraph("CRITICAL: Smooth vs Skeletal Muscle Comparison", S_SUBSEC)) muscle_table = build_table( ["Feature", "Smooth Muscle", "Skeletal Muscle"], [ ["Ca²⁺ sensor", "CALMODULIN", "TROPONIN"], ["Regulatory kinase", "MLCK", "No MLCK"], ["Cross-striations", "ABSENT (no striations)", "Present"], ["Nucleus", "Single, central", "Multiple, peripheral"], ["Speed", "Slow, sustained", "Fast, fatigable"], ["Control", "Involuntary (ANS/hormones)", "Voluntary"], ], [5*cm, 6*cm, 6.5*cm] ) story.append(muscle_table) story.append(Spacer(1, 0.15*cm)) story.append(Paragraph("RhoA/ROCK Pathway – Ca²⁺ Sensitisation", S_SUBSEC)) story.append(Paragraph( "ROCK (Rho kinase) <b>inhibits MLCP</b> → MLC stays phosphorylated → contraction maintained even at moderate Ca²⁺<br/>" "This produces the <b>latch state</b>: sustained tone with minimal ATP<br/>" "<b>Disease link:</b> Hypertension = excessive RhoA/ROCK | Asthma = ↑ Ca²⁺ sensitivity in airway smooth muscle", S_BODY)) story.append(Spacer(1, 0.15*cm)) story.append(Paragraph("Nitric Oxide (NO) – Relaxation Pathway", S_SUBSEC)) story.append(Paragraph( "<b>L-arginine</b> → (NOS) → <b>NO</b><br/>" "NO → activates <b>guanylate cyclase</b> → ↑<b>cGMP</b> → activates <b>PKG</b> → MLCP activated → MLC dephosphorylated → <b>RELAXATION</b>", S_BODY)) story.append(Spacer(1, 0.1*cm)) nos_table = build_table( ["NOS Type", "Location", "Function"], [ ["eNOS (NOS3)", "Endothelial cells", "Vasodilation, vascular protection, ↓ BP"], ["nNOS (NOS1)", "Neurons", "Memory, learning, synaptic plasticity (LTP)"], ["iNOS (NOS2)", "Macrophages", "Immune defence – kills bacteria, viruses, parasites"], ], [3.5*cm, 5*cm, 9*cm] ) story.append(nos_table) story.append(Spacer(1, 0.1*cm)) story.append(highlight_box( "<b>eNOS cofactors (ALL required):</b> BH4 (most important), FAD, FMN, NADPH, L-arginine<br/>" "<b>BH4 deficiency → eNOS uncoupling</b>: makes superoxide (O₂⁻) instead of NO → oxidative stress<br/>" "<b>Akt phosphorylates eNOS at Ser1177 (activating)</b> | PKC at Thr495 (inhibitory)<br/>" "<b>Shear stress</b> (laminar blood flow) = powerful eNOS activator → exercise improves NO" , bg=C_LILAC, txt_color=C_PURPLE)) story.append(Spacer(1, 0.15*cm)) story.append(Paragraph("cAMP Effects on Different Muscle Types", S_SUBSEC)) camp_table = build_table( ["Muscle Type", "Receptor", "Effect of cAMP", "Mechanism"], [ ["Cardiac", "β₁-adrenergic", "CONTRACTION (positive inotropy)", "PKA → ↑Ca²⁺ → stronger cross-bridge cycling"], ["Smooth", "β₂-adrenergic", "RELAXATION", "PKA → phosphorylates MLCK → MLCK cannot bind Ca²⁺–CaM → inactive"], ["Skeletal", "—", "Minimal direct effect", "Enhances ACh release; glycogen breakdown via PKA"], ], [2.5*cm, 3.5*cm, 4.5*cm, 7*cm] ) story.append(camp_table) story.append(Spacer(1, 0.1*cm)) story.append(mnem("'cAMP = Cardiac Amplifier, Smooth Muscle Pacifier'")) story.append(Spacer(1, 0.15*cm)) story.append(Paragraph("Drug Mechanisms (High-Yield)", S_SUBSEC)) drug_table = build_table( ["Drug", "Mechanism", "Clinical Use"], [ ["Salbutamol/Albuterol (Ventolin)", "β₂ agonist → ↑cAMP → PKA → inhibits MLCK → bronchodilation", "Asthma"], ["Adrenaline (Epinephrine)", "β₂ (bronchi) → relaxation; α₁ (vessels) → constriction", "Anaphylaxis, cardiac arrest"], ["Sildenafil (Viagra)", "PDE-5 inhibitor → ↑cGMP → smooth muscle relaxation", "Erectile dysfunction, pulmonary HTN"], ["Oxytocin", "Stimulates uterine smooth muscle contraction", "Labour induction"], ["Angiotensin II", "Vasoconstriction via AT₁ receptor", "Blood pressure regulation"], ["Statins", "Inhibit NADPH oxidase (↓O₂⁻); upregulate eNOS (↑NO)", "Cardiovascular protection (beyond cholesterol)"], ], [4*cm, 7.5*cm, 6*cm] ) story.append(drug_table) story.append(Spacer(1, 0.3*cm)) # ═══════════════════════════════════════════════════════════════════════════════ # SECTION 6 – MNEMONICS # ═══════════════════════════════════════════════════════════════════════════════ story.append(section_header("5. RAPID MNEMONICS & KEY NUMBERS", bg=C_PURPLE)) story.append(Spacer(1, 0.15*cm)) mnems = [ "'Absolutely Good Friends' — Albumin 60%, Globulins 35%, Fibrinogen 4%", "'Spectrin = Shape keeper' — Spectrin deficiency → hereditary spherocytosis", "'C-II Calls LPL' — ApoC-II activates Lipoprotein Lipase to hydrolyse TG", "'E goes to the lEver (liver)' — ApoE mediates remnant clearance by liver", "'B-48 stays in gut, B-100 goes everywhere' — ApoB-48 on chylomicrons; ApoB-100 on VLDL/IDL/LDL", "'Ca calms MLCK → Contraction' — Ca²⁺–calmodulin activates MLCK → MLC phosphorylated → contraction", "'MLCP removes phosphate → Relaxation' — MLC dephosphorylated → no cross-bridges", "'cAMP = Cardiac Amplifier, Smooth Muscle Pacifier' — opposite effects in heart vs smooth muscle", "'CPT-I is the GATEKEEPER' — rate-limiting step of long-chain FA entry into mitochondria", "'BH4 = eNOS bodyguard' — BH4 deficiency → eNOS uncoupling → superoxide instead of NO", "'Onco = 25' — Normal colloidal osmotic pressure = 25 mmHg (albumin)", "'Heart loves FAT' — 70–90% of cardiac ATP from fatty acid oxidation (fasting/rest)", ] for m in mnems: story.append(mnem(m)) story.append(Spacer(1, 0.2*cm)) story.append(HRFlowable(width="100%", thickness=1, color=C_NAVY)) story.append(Spacer(1, 0.1*cm)) story.append(Paragraph( "Good luck on your quiz tomorrow! Review the MCQ Traps section last before you sleep.", S_FOOTER)) # ── Build ───────────────────────────────────────────────────────────────────── doc.build(story, onFirstPage=on_page, onLaterPages=on_page) print("PDF created:", OUTPUT) PYEOF
Biochem MCQ Quick Reference
PDF Document · PDF
Create a practice MCQ quiz from the exam topics
mkdir -p /tmp/workspace/biochem-quickref && python3 - <<'PYEOF' from reportlab.lib.pagesizes import A4 from reportlab.lib import colors from reportlab.lib.units import cm from reportlab.platypus import ( SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, HRFlowable, KeepTogether, PageBreak ) from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY OUTPUT = "/tmp/workspace/biochem-quickref/Biochem_Practice_MCQ_Quiz.pdf" # ── Colours ─────────────────────────────────────────────────────────────────── C_NAVY = colors.HexColor("#1B2A4A") C_BLUE = colors.HexColor("#2563EB") C_SKY = colors.HexColor("#DBEAFE") C_RED = colors.HexColor("#DC2626") C_PINK = colors.HexColor("#FEE2E2") C_GREEN = colors.HexColor("#16A34A") C_MINT = colors.HexColor("#DCFCE7") C_ORANGE = colors.HexColor("#D97706") C_AMBER = colors.HexColor("#FEF3C7") C_PURPLE = colors.HexColor("#7C3AED") C_LILAC = colors.HexColor("#EDE9FE") C_GREY = colors.HexColor("#F3F4F6") C_LGREY = colors.HexColor("#E5E7EB") C_DARK = colors.HexColor("#111827") C_WHITE = colors.white # ── Styles ──────────────────────────────────────────────────────────────────── def S(name, **kw): return ParagraphStyle(name, **kw) S_COVER_TITLE = S("ct", fontName="Helvetica-Bold", fontSize=26, textColor=C_WHITE, alignment=TA_CENTER, leading=32) S_COVER_SUB = S("cs", fontName="Helvetica", fontSize=11, textColor=C_SKY, alignment=TA_CENTER, leading=16) S_COVER_INFO = S("ci", fontName="Helvetica-Bold", fontSize=10, textColor=C_AMBER, alignment=TA_CENTER, leading=14) S_SEC_HDR = S("sh", fontName="Helvetica-Bold", fontSize=12, textColor=C_WHITE, leading=16) S_QNUM = S("qn", fontName="Helvetica-Bold", fontSize=10, textColor=C_NAVY, spaceAfter=2, leading=14) S_QTEXT = S("qt", fontName="Helvetica", fontSize=10, textColor=C_DARK, spaceAfter=4, leading=14) S_OPT = S("op", fontName="Helvetica", fontSize=9.5, textColor=C_DARK, spaceAfter=2, leftIndent=16, leading=13) S_OPT_CORRECT = S("oc", fontName="Helvetica-Bold", fontSize=9.5, textColor=C_GREEN, spaceAfter=2, leftIndent=16, leading=13) S_ANS_HDR = S("ah", fontName="Helvetica-Bold", fontSize=10, textColor=C_GREEN, spaceAfter=2, leading=14) S_ANS_TXT = S("at", fontName="Helvetica", fontSize=9.5, textColor=C_DARK, spaceAfter=2, leading=13, leftIndent=8) S_EXPL = S("ex", fontName="Helvetica-Oblique", fontSize=9, textColor=colors.HexColor("#374151"), spaceAfter=6, leftIndent=8, leading=13) S_BODY = S("bd", fontName="Helvetica", fontSize=9.5, textColor=C_DARK, spaceAfter=3, leading=13) S_FOOTER = S("ft", fontName="Helvetica-Oblique", fontSize=7.5, textColor=colors.grey, alignment=TA_CENTER) # ── Helpers ─────────────────────────────────────────────────────────────────── def sec_header(text, bg=C_NAVY, icon=""): p = Paragraph(f"{icon} {text}" if icon else text, S_SEC_HDR) t = Table([[p]], colWidths=[17.5*cm]) t.setStyle(TableStyle([ ("BACKGROUND", (0,0),(-1,-1), bg), ("TOPPADDING", (0,0),(-1,-1), 7), ("BOTTOMPADDING", (0,0),(-1,-1), 7), ("LEFTPADDING", (0,0),(-1,-1), 10), ])) return t def option_box(letter, text, correct=False): bg = C_MINT if correct else C_WHITE fc = C_GREEN if correct else C_DARK tick = " ✓" if correct else "" p = Paragraph( f"<b>{letter})</b> {text}{tick}", S("ob", fontName="Helvetica-Bold" if correct else "Helvetica", fontSize=9.5, textColor=fc, leading=13, leftIndent=0) ) t = Table([[p]], colWidths=[16.5*cm]) t.setStyle(TableStyle([ ("BACKGROUND", (0,0),(-1,-1), bg), ("BOX", (0,0),(-1,-1), 0.5, C_GREEN if correct else colors.HexColor("#D1D5DB")), ("TOPPADDING", (0,0),(-1,-1), 3), ("BOTTOMPADDING", (0,0),(-1,-1), 3), ("LEFTPADDING", (0,0),(-1,-1), 8), ])) return t def answer_box(q_num, correct_letter, explanation): p1 = Paragraph(f"Q{q_num}: Correct answer = <b>{correct_letter}</b>", S_ANS_HDR) p2 = Paragraph(explanation, S_EXPL) t = Table([[p1],[p2]], colWidths=[17.5*cm]) t.setStyle(TableStyle([ ("BACKGROUND", (0,0),(-1,-1), C_MINT), ("BOX", (0,0),(-1,-1), 0.6, C_GREEN), ("TOPPADDING", (0,0),(-1,-1), 5), ("BOTTOMPADDING", (0,0),(-1,-1), 5), ("LEFTPADDING", (0,0),(-1,-1), 10), ("RIGHTPADDING", (0,0),(-1,-1), 10), ])) return t def q_block(num, stem, opts, note=""): """opts = list of (letter, text, is_correct)""" elems = [] elems.append(Paragraph(f"Question {num}", S_QNUM)) elems.append(Paragraph(stem, S_QTEXT)) for letter, text, correct in opts: elems.append(option_box(letter, text, correct)) elems.append(Spacer(1, 0.08*cm)) if note: elems.append(Spacer(1, 0.05*cm)) elems.append(Paragraph(f"<i>Category: {note}</i>", S("nt", fontName="Helvetica-Oblique", fontSize=8, textColor=colors.grey, leading=11))) elems.append(Spacer(1, 0.25*cm)) return elems def on_page(canvas, doc): canvas.saveState() W, H = A4 canvas.setFillColor(C_NAVY) canvas.rect(0, H-1.1*cm, W, 1.1*cm, fill=1, stroke=0) canvas.setFillColor(C_WHITE) canvas.setFont("Helvetica-Bold", 9) canvas.drawString(1.5*cm, H-0.75*cm, "BIOCHEMISTRY PRACTICE MCQ QUIZ") canvas.setFont("Helvetica", 8) canvas.drawRightString(W-1.5*cm, H-0.75*cm, f"Page {doc.page}") canvas.setFillColor(colors.HexColor("#94A3B8")) canvas.setFont("Helvetica-Oblique", 7) canvas.drawCentredString(W/2, 0.5*cm, "40 Questions | Plasma Proteins · Lymph & Lipoproteins · Cardiac Metabolism · Smooth Muscle") canvas.restoreState() # ══════════════════════════════════════════════════════════════════════════════ # ALL QUESTIONS (stem, options A-E, correct letter, explanation, category) # ══════════════════════════════════════════════════════════════════════════════ # Format: (stem, [(letter, text, is_correct), ...], explanation, category) questions = [ # ── PLASMA PROTEINS (Q1-10) ────────────────────────────────────────────────── ( "Which plasma protein is responsible for maintaining colloidal osmotic pressure?", [("A","Fibrinogen",False),("B","Albumin",True),("C","Immunoglobulin G",False), ("D","Transferrin",False),("E","Prothrombin",False)], "Albumin (60% of plasma proteins) is the principal determinant of colloidal osmotic pressure, " "maintaining it at ~25 mmHg. Its large quantity and negative charge draw water into the vasculature.", "Plasma Proteins" ), ( "Immunoglobulins (antibodies) are synthesised by which cell type?", [("A","Hepatocytes",False),("B","Kupffer cells",False),("C","Plasma cells (activated B lymphocytes)",True), ("D","Mesenchymal cells",False),("E","Reticuloendothelial cells",False)], "Almost all plasma proteins are made in the liver — immunoglobulins are the classic exception. " "They are produced by plasma cells derived from activated B lymphocytes.", "Plasma Proteins" ), ( "Prealbumin (transthyretin) migrates before albumin on electrophoresis. " "Which statement about transthyretin is CORRECT?", [("A","It is a direct precursor that is converted into albumin",False), ("B","It is synthesised exclusively in the choroid plexus",False), ("C","It transports T4 and retinol-binding protein",True), ("D","It is the most abundant plasma protein",False), ("E","It is produced by plasma cells",False)], "Transthyretin (prealbumin) transports thyroid hormone T4 and carries retinol (vitamin A) via " "retinol-binding protein. It is synthesised in the liver AND choroid plexus. It is NOT a precursor to albumin.", "Plasma Proteins" ), ( "A 45-year-old man with liver cirrhosis develops pitting oedema in his legs. " "The PRIMARY biochemical mechanism is:", [("A","Increased hydrostatic pressure due to portal hypertension only",False), ("B","Decreased plasma albumin → reduced oncotic pressure → fluid leaks into interstitium",True), ("C","Elevated fibrinogen causing capillary blockage",False), ("D","Increased immunoglobulin levels",False), ("E","Loss of Band 3 protein from RBC membranes",False)], "Liver cirrhosis reduces albumin synthesis → hypoalbuminaemia → oncotic pressure falls below 25 mmHg " "→ fluid moves from plasma into interstitial space → oedema. Portal hypertension also contributes but " "the PRIMARY biochemical cause is low oncotic pressure.", "Plasma Proteins / Oedema" ), ( "A patient with nephrotic syndrome has heavy proteinuria. " "Which effect on calcium would you expect?", [("A","Total and ionised calcium both rise",False), ("B","Total calcium falls; ionised calcium may remain normal",True), ("C","Total calcium is unchanged; ionised calcium falls",False), ("D","Both total and ionised calcium fall equally",False), ("E","Calcium is unaffected by changes in albumin",False)], "Most plasma calcium is protein-bound (mainly to albumin). When albumin falls, TOTAL plasma calcium " "drops. However, free (ionised) calcium — the physiologically active form — may stay normal because " "it is not albumin-bound.", "Plasma Proteins" ), ( "Which RBC membrane protein is primarily responsible for CO2/Cl⁻ exchange AND anchors the cytoskeleton?", [("A","Glycophorin A",False),("B","Spectrin",False),("C","Ankyrin",False), ("D","Band 3 (Anion Exchanger 1)",True),("E","Protein 4.1",False)], "Band 3 (AE1) has two main roles: it mediates CO2/Cl⁻ exchange across the RBC membrane, and " "its cytoplasmic domain anchors the spectrin–actin cytoskeleton via ankyrin.", "RBC Membrane Proteins" ), ( "Deficiency of which RBC cytoskeletal protein classically causes hereditary spherocytosis?", [("A","Glycophorin A",False),("B","Band 3",False),("C","Spectrin",True), ("D","Actin",False),("E","Adducin",False)], "Spectrin forms the inner meshwork that maintains the RBC biconcave shape and deformability. " "Spectrin deficiency → loss of the structural network → RBCs become spherocytes → easily destroyed " "in the spleen → haemolytic anaemia.", "RBC Membrane Proteins" ), ( "C-reactive protein (CRP) is produced by which organ, and how quickly does it rise after acute injury?", [("A","Spleen; rises within 6 hours",False), ("B","Liver; rises within 24–48 hours",True), ("C","Kidney; rises within 1 week",False), ("D","Bone marrow; rises within 72 hours",False), ("E","Plasma cells; rises within 12 hours",False)], "CRP is an acute-phase protein synthesised by the LIVER in response to cytokines (e.g. IL-6) " "released by WBCs during inflammation. It rises rapidly, typically peaking within 24–48 hours.", "Plasma Proteins" ), ( "Haemophilia A is caused by deficiency of which clotting factor, and follows which inheritance pattern?", [("A","Factor IX; autosomal recessive",False), ("B","Factor VIII; X-linked recessive",True), ("C","Factor VIII; autosomal dominant",False), ("D","Factor X; X-linked recessive",False), ("E","von Willebrand factor; X-linked recessive",False)], "Haemophilia A = Factor VIII deficiency. X-linked recessive → mainly affects males; females are " "usually carriers. Features: easy bruising, haemarthrosis (joint bleeds), prolonged bleeding.", "Plasma Proteins" ), ( "Which antiprotease protects lung tissue from enzymatic damage, and what disease results from its deficiency?", [("A","α2-macroglobulin; nephrotic syndrome",False), ("B","Antithrombin; disseminated intravascular coagulation",False), ("C","α1-antitrypsin; emphysema/COPD",True), ("D","α1-antitrypsin; liver cirrhosis only",False), ("E","C-reactive protein; pneumonia",False)], "α1-antitrypsin inhibits neutrophil elastase in the lungs. Deficiency allows elastase to destroy " "alveolar walls → emphysema. It also causes liver disease due to misfolded protein accumulation in hepatocytes.", "Plasma Proteins" ), # ── LYMPH & LIPOPROTEINS (Q11-20) ──────────────────────────────────────────── ( "Compared to plasma, interstitial fluid/lymph has:", [("A","Higher protein concentration",False), ("B","Higher calcium and phosphorus",False), ("C","Lower protein but higher glucose concentration",True), ("D","Higher fibrinogen levels",False), ("E","No immunoglobulins",False)], "Lymph is formed by filtration from plasma. Small solutes (glucose) pass freely but large proteins " "are retained in plasma. Hence lymph has LESS protein (including less Ca²⁺ and phosphorus) but " "RELATIVELY HIGHER glucose. Globulins/antibodies are present in lymph but in lower amounts.", "Lymph & Interstitial Fluid" ), ( "Dietary triglycerides absorbed in the intestine are transported in lymph as which lipoprotein?", [("A","VLDL",False),("B","HDL",False),("C","LDL",False), ("D","Chylomicrons",True),("E","IDL",False)], "Enterocytes package dietary fat into chylomicrons, which are secreted into the intestinal lymphatics " "(lacteals). They travel via the thoracic duct to the bloodstream — bypassing the portal circulation.", "Lymph & Lipoproteins" ), ( "Which apolipoprotein on chylomicrons is essential for activating lipoprotein lipase (LPL)?", [("A","ApoB-48",False),("B","ApoE",False),("C","ApoC-II",True), ("D","ApoA-I",False),("E","ApoB-100",False)], "ApoC-II is acquired from HDL once chylomicrons enter the bloodstream. It binds and activates LPL " "on the capillary endothelium of muscle and adipose tissue, allowing hydrolysis of chylomicron TGs.", "Lipoproteins" ), ( "ApoB-100 is found on which lipoproteins?", [("A","Chylomicrons only",False), ("B","HDL only",False), ("C","VLDL, IDL, and LDL",True), ("D","Chylomicrons and VLDL",False), ("E","HDL and LDL",False)], "ApoB-48 is exclusive to chylomicrons. ApoB-100 is on VLDL (secreted by liver), IDL (intermediate), " "and LDL (final product). ApoB-100 is the ligand for the LDL receptor.", "Lipoproteins" ), ( "After triglyceride hydrolysis, chylomicron remnants are cleared by the liver via:", [("A","ApoC-II binding to LPL",False), ("B","ApoB-48 binding to LDL receptor",False), ("C","ApoE binding to LDL receptor and LRP1",True), ("D","ApoA-I binding to scavenger receptor",False), ("E","ApoB-100 binding to VLDL receptor",False)], "Chylomicron remnants lose TG but retain cholesterol and ApoE. ApoE mediates uptake by the liver " "via the LDL receptor (LDLR) and LDL receptor-related protein 1 (LRP1).", "Lipoproteins" ), ( "Which lipoprotein is synthesised in the liver and primarily transports ENDOGENOUS triglycerides " "to peripheral tissues?", [("A","Chylomicron",False),("B","LDL",False),("C","HDL",False), ("D","VLDL",True),("E","IDL",False)], "VLDL (Very-Low-Density Lipoprotein) is assembled in the liver and exported to deliver " "endogenously synthesised TGs to muscle and adipose tissue. High VLDL = hypertriglyceridaemia.", "Lipoproteins" ), ( "The protein that packages lipids into chylomicrons and VLDL by transferring lipids onto ApoB is:", [("A","Lipoprotein lipase (LPL)",False), ("B","Microsomal triglyceride transfer protein (MTP)",True), ("C","Lecithin-cholesterol acyltransferase (LCAT)",False), ("D","Cholesterol ester transfer protein (CETP)",False), ("E","Hepatic lipase",False)], "MTP (microsomal triglyceride transfer protein) is essential for lipidation of ApoB-48 in " "enterocytes (chylomicrons) and ApoB-100 in hepatocytes (VLDL). MTP inhibitors are used as " "lipid-lowering drugs.", "Lipoproteins" ), ( "Which lipoprotein is formed as a metabolic intermediate during VLDL catabolism and is considered atherogenic?", [("A","Chylomicron",False),("B","HDL",False),("C","LDL",False), ("D","IDL",True),("E","Lipoprotein(a)",False)], "IDL (Intermediate-Density Lipoprotein) is formed when VLDL loses TG via LPL. It can be further " "converted to LDL or taken up directly by the liver. Elevated IDL = remnant lipoprotein → atherogenic.", "Lipoproteins" ), ( "Oxidative stress is BEST defined as:", [("A","Excess antioxidants overwhelming free radicals",False), ("B","Imbalance between ROS production and antioxidant defence, favouring oxidation",True), ("C","Complete absence of reactive oxygen species",False), ("D","Elevated superoxide dismutase activity",False), ("E","High NADPH levels in mitochondria",False)], "Oxidative stress = imbalance where ROS (superoxide, H2O2, hydroxyl radical) exceed the " "body's antioxidant capacity (glutathione, vitamins C/E, catalase, SOD). This damages DNA, " "proteins, and lipids, contributing to atherosclerosis, cancer, and neurodegeneration.", "Oxidative Stress" ), ( "Which of the following is the PRIMARY route for absorption of dietary fat into the lymphatic system?", [("A","Portal venous capillaries of the villi",False), ("B","Intestinal lacteals (lymphatic capillaries of the villi)",True), ("C","Direct absorption into the thoracic duct",False), ("D","Mesenteric arterial capillaries",False), ("E","Colonic mucosa",False)], "Long-chain fatty acids and fat-soluble vitamins are packaged as chylomicrons in enterocytes and " "secreted into the lacteals (lymphatic capillaries in villi). Short/medium-chain fatty acids " "go directly into portal blood.", "Lymph" ), # ── CARDIAC METABOLISM (Q21-30) ─────────────────────────────────────────────── ( "In a healthy fasting adult, what percentage of cardiac ATP is derived from fatty acid oxidation?", [("A","20–30%",False),("B","40–50%",False),("C","50–60%",False), ("D","70–90%",True),("E","95–100%",False)], "The heart is metabolically flexible but strongly prefers fatty acids at rest/fasting, " "deriving 70–90% of its ATP from β-oxidation. Glucose, lactate, and ketones supply the rest.", "Cardiac Metabolism" ), ( "In heart failure, which metabolic shift is characteristically observed?", [("A","Increased fatty acid oxidation; decreased glucose use",False), ("B","Decreased fatty acid oxidation; increased glucose oxidation",True), ("C","Increased ketone body use as the primary fuel",False), ("D","Complete cessation of oxidative phosphorylation",False), ("E","Preferential use of amino acids for ATP production",False)], "Heart failure models consistently show downregulation of fatty acid metabolism genes and upregulation " "of glucose metabolism genes. The failing heart shifts to glucose (less efficient, ~30% fewer ATP " "per mole of fuel) in an attempt to compensate.", "Cardiac Metabolism" ), ( "PFK-1 is the rate-limiting enzyme of glycolysis. It converts:", [("A","Glucose → Glucose-6-phosphate",False), ("B","Fructose-6-phosphate → Fructose-1,6-bisphosphate",True), ("C","Fructose-1,6-bisphosphate → Glyceraldehyde-3-phosphate",False), ("D","Phosphoenolpyruvate → Pyruvate",False), ("E","Glucose-6-phosphate → Fructose-6-phosphate",False)], "PFK-1 catalyses the phosphorylation of Fructose-6-P to Fructose-1,6-bisphosphate. This is the " "COMMITMENT step of glycolysis — once past this point, glucose is committed to glycolytic breakdown.", "Cardiac Metabolism / Glycolysis" ), ( "In cardiac muscle, phosphorylation of PFK-2 has what effect on glycolysis?", [("A","Inhibits glycolysis by reducing F-2,6-BP",False), ("B","Has no effect because cardiac PFK-2 cannot be phosphorylated",False), ("C","Activates glycolysis by increasing F-2,6-BP production",True), ("D","Inhibits glycolysis via allosteric inhibition of PFK-1",False), ("E","Shifts metabolism to fatty acid oxidation",False)], "Unlike the liver (where phosphorylation INACTIVATES PFK-2), cardiac PFK-2 is ACTIVATED by " "phosphorylation. This increases Fructose-2,6-bisphosphate → potently activates PFK-1 → glycolysis " "accelerates. Both insulin and AMPK phosphorylate cardiac PFK-2.", "Cardiac Metabolism" ), ( "AMPK (AMP-activated protein kinase) is activated by high AMP levels. Its activation in " "the heart primarily results in:", [("A","Inhibition of glycolysis to conserve glucose",False), ("B","Stimulation of fatty acid synthesis",False), ("C","Phosphorylation of cardiac PFK-2 → increased glycolysis",True), ("D","Inhibition of the TCA cycle",False), ("E","Activation of glycogen synthesis",False)], "AMPK is the 'fuel gauge' — high AMP signals low energy. In the heart, AMPK phosphorylates " "PFK-2 (activating it), boosting F-2,6-BP and accelerating glycolysis to rapidly generate ATP.", "Cardiac Metabolism" ), ( "The rate-limiting step in mitochondrial fatty acid oxidation (the carnitine shuttle) is catalysed by:", [("A","Acyl-CoA synthetase in the cytosol",False), ("B","CPT-I on the outer mitochondrial membrane",True), ("C","CPT-II on the inner mitochondrial membrane",False), ("D","Carnitine translocase across the membrane",False), ("E","β-ketothiolase in the matrix",False)], "CPT-I (Carnitine Palmitoyltransferase I) on the OUTER mitochondrial membrane converts " "fatty acyl-CoA → acyl-carnitine and is the rate-limiting, regulated step. " "It is inhibited by malonyl-CoA (when fuel is abundant).", "Cardiac Metabolism / Beta-oxidation" ), ( "One cycle of β-oxidation of a fatty acid produces which set of products?", [("A","1 NADH, 1 FADH2, 1 Acetyl-CoA, 1 ATP",False), ("B","2 NADH, 1 FADH2, 1 Acetyl-CoA",False), ("C","1 FADH2, 1 NADH, 1 Acetyl-CoA (+ shortened acyl-CoA)",True), ("D","2 Acetyl-CoA, 1 NADH",False), ("E","1 GTP, 1 NADH, 1 Acetyl-CoA",False)], "Each round of β-oxidation: Step 1 (acyl-CoA dehydrogenase) → FADH2; " "Step 3 (β-hydroxyacyl-CoA dehydrogenase) → NADH; Step 4 (thiolase) → Acetyl-CoA. " "The shortened acyl-CoA re-enters the cycle.", "Cardiac Metabolism / Beta-oxidation" ), ( "Palmitic acid (C16:0) yields approximately how many ATP molecules upon complete oxidation?", [("A","36–38",False),("B","56",False),("C","80",False), ("D","106",True),("E","129",False)], "Palmitate (C16) requires 7 rounds of β-oxidation → 7 FADH2 + 7 NADH + 8 Acetyl-CoA. " "Adding TCA cycle and ETC contributions, net yield ≈ 106 ATP. This is why fat is the heart's " "preferred fuel — it gives far more ATP per mole than glucose.", "Cardiac Metabolism" ), ( "In myocardial infarction, elevated serum creatine kinase (CK-MB) indicates:", [("A","Liver cell necrosis",False), ("B","Skeletal muscle injury",False), ("C","Cardiac muscle cell death with enzyme leakage into blood",True), ("D","Renal tubular damage",False), ("E","Pancreatic inflammation",False)], "CK-MB is the cardiac-specific isoform of creatine kinase. When cardiomyocytes die in MI, " "their membranes rupture and release CK-MB into the bloodstream. Elevated CK-MB is a " "classic marker of myocardial injury.", "Cardiac Metabolism / MI" ), ( "In ischaemia, the myocardium switches from using lactate to PRODUCING lactate because:", [("A","The heart upregulates LDH to produce more energy",False), ("B","Oxygen deficiency forces anaerobic glycolysis, generating excess pyruvate → lactate",True), ("C","Fatty acid oxidation is accelerated, producing lactate as a by-product",False), ("D","AMPK inhibits lactate dehydrogenase",False), ("E","Mitochondrial oxidative phosphorylation is upregulated",False)], "Normally, the heart USES lactate (LDH converts it to pyruvate → TCA cycle). In ischaemia/oxygen " "deficiency, aerobic metabolism fails → anaerobic glycolysis → pyruvate accumulates → converted to " "lactate by LDH → lactate is EXCRETED. Lactate efflux from the heart is a sign of ischaemia.", "Cardiac Metabolism" ), # ── SMOOTH MUSCLE (Q31-40) ──────────────────────────────────────────────────── ( "The key difference between smooth and skeletal muscle regarding Ca²⁺-mediated contraction is:", [("A","Smooth muscle uses troponin; skeletal muscle uses calmodulin",False), ("B","Skeletal muscle uses calmodulin; smooth muscle uses troponin",False), ("C","Smooth muscle uses calmodulin–MLCK; skeletal muscle uses troponin–tropomyosin",True), ("D","Both use the same calmodulin–MLCK pathway",False), ("E","Smooth muscle does not require Ca²⁺ for contraction",False)], "This is the #1 MCQ trap. Skeletal (and cardiac) muscle uses the TROPONIN complex as the Ca²⁺ " "sensor. Smooth muscle has NO troponin — it uses CALMODULIN, which activates MLCK to phosphorylate " "the myosin light chain.", "Smooth Muscle" ), ( "Which enzyme must be activated to initiate smooth muscle contraction?", [("A","Myosin light-chain phosphatase (MLCP)",False), ("B","Myosin ATPase directly",False), ("C","Myosin light-chain kinase (MLCK)",True), ("D","Rho kinase (ROCK)",False), ("E","Protein kinase A (PKA)",False)], "Ca²⁺–calmodulin activates MLCK, which phosphorylates the myosin light chain (MLC). " "Phospho-MLC can then bind actin and undergo cross-bridge cycling → contraction.", "Smooth Muscle" ), ( "Smooth muscle relaxation requires which TWO simultaneous events?", [("A","↑ Ca²⁺ and ↑ MLCK activity",False), ("B","↓ intracellular Ca²⁺ AND ↑ MLCP activity",True), ("C","↑ cAMP and ↑ MLCK activity",False), ("D","↓ cGMP and ↑ Ca²⁺",False), ("E","↑ RhoA/ROCK signalling",False)], "For relaxation, Ca²⁺ must be removed from the cytosol (back to SR or out of cell), AND " "MLCP (myosin light-chain phosphatase) must be active to dephosphorylate MLC. " "Both steps are required.", "Smooth Muscle" ), ( "The RhoA/ROCK pathway maintains smooth muscle contraction by:", [("A","Increasing intracellular Ca²⁺",False), ("B","Directly phosphorylating myosin",False), ("C","Inhibiting MLCP → keeping MLC phosphorylated even at moderate Ca²⁺",True), ("D","Activating MLCK independent of calmodulin",False), ("E","Increasing cGMP levels",False)], "Ca²⁺ sensitisation via RhoA/ROCK means that inhibition of MLCP keeps MLC phosphorylated, " "sustaining contraction ('latch state') without needing high Ca²⁺. Excessive RhoA/ROCK " "signalling is implicated in hypertension.", "Smooth Muscle" ), ( "Nitric oxide (NO) causes smooth muscle relaxation through which second messenger?", [("A","cAMP → PKA",False), ("B","IP3 → Ca²⁺ release",False), ("C","cGMP → PKG → MLCP activation",True), ("D","DAG → PKC activation",False), ("E","Directly inhibiting calmodulin",False)], "NO activates soluble guanylate cyclase → ↑ cGMP → activates PKG (protein kinase G) → " "activates MLCP and other targets → MLC dephosphorylated → smooth muscle RELAXES. " "PDE-5 inhibitors (Viagra) prolong this effect by preventing cGMP breakdown.", "Smooth Muscle / NO" ), ( "BH4 (tetrahydrobiopterin) is a cofactor for eNOS. When BH4 is DEFICIENT, eNOS:", [("A","Is completely inactive and produces nothing",False), ("B","Produces excess NO causing hypotension",False), ("C","'Uncouples' and produces superoxide (O₂⁻) instead of NO",True), ("D","Switches to producing cGMP directly",False), ("E","Requires more L-arginine substrate",False)], "eNOS uncoupling is a critical concept. Without BH4, the electron transfer in eNOS is uncoupled " "from L-arginine oxidation → superoxide (O₂⁻) is produced instead of NO. Superoxide rapidly " "reacts with remaining NO → peroxynitrite → worsens endothelial dysfunction.", "Smooth Muscle / NO / eNOS" ), ( "Which phosphorylation event INHIBITS eNOS activity?", [("A","Akt at Ser1177",False), ("B","PKC at Thr495",True), ("C","AMPK at Ser1177",False), ("D","PKA at Ser1177",False), ("E","CaM kinase at Ser617",False)], "Akt (PKB) phosphorylates eNOS at Ser1177 → ACTIVATION (occurs with shear stress, insulin). " "PKC phosphorylates eNOS at Thr495 → INHIBITION (reduces Ca²⁺–CaM binding). " "This is a common MCQ — remember Ser1177=activate, Thr495=inhibit.", "eNOS Regulation" ), ( "Salbutamol (albuterol) causes bronchodilation in asthma via the following sequence:", [("A","β₁ receptor → ↑cAMP → PKA → ↑Ca²⁺ → contraction",False), ("B","β₂ receptor → ↑cAMP → PKA → inhibits MLCK → smooth muscle relaxation",True), ("C","β₂ receptor → ↑cGMP → PKG → smooth muscle relaxation",False), ("D","α₁ receptor → ↓cAMP → MLCK activation → contraction",False), ("E","Muscarinic receptor → ↓Ca²⁺ → relaxation",False)], "Salbutamol is a selective β₂ agonist. β₂ → Gs → adenylate cyclase → ↑cAMP → PKA activated → " "PKA phosphorylates MLCK → MLCK cannot bind Ca²⁺–calmodulin → MLCK inactive → MLC " "NOT phosphorylated → bronchial smooth muscle RELAXES.", "Smooth Muscle / Drugs" ), ( "cAMP has opposite effects on cardiac vs smooth muscle. In cardiac muscle, cAMP causes:", [("A","Relaxation by inhibiting MLCK",False), ("B","No effect on contractility",False), ("C","Stronger contraction via PKA → ↑Ca²⁺ (positive inotropy)",True), ("D","Relaxation via ↑cGMP",False), ("E","Inhibition of myosin ATPase",False)], "In cardiac muscle, β₁ stimulation → ↑cAMP → PKA → phosphorylates L-type Ca²⁺ channels, " "ryanodine receptors, and phospholamban → more Ca²⁺ released → stronger contraction. " "Remember: cAMP = Cardiac Amplifier (heart) vs. Smooth muscle Pacifier.", "Smooth Muscle / Cardiac" ), ( "A patient in anaphylactic shock is treated with epinephrine (adrenaline). " "Which receptor mediates bronchodilation in this context?", [("A","α₁-adrenergic (causes vasoconstriction)",False), ("B","β₁-adrenergic (increases heart rate)",False), ("C","β₂-adrenergic (causes bronchial smooth muscle relaxation)",True), ("D","Muscarinic M2 receptor",False), ("E","Dopamine D1 receptor",False)], "Epinephrine acts on multiple receptors. For bronchodilation: β₂-adrenergic receptors on " "bronchial smooth muscle → ↑cAMP → PKA → inhibits MLCK → relaxation → airways open. " "α₁ on blood vessels causes vasoconstriction (useful for raising BP in anaphylaxis).", "Smooth Muscle / Drugs" ), ] # ══════════════════════════════════════════════════════════════════════════════ # BUILD STORY # ══════════════════════════════════════════════════════════════════════════════ doc = SimpleDocTemplate( OUTPUT, pagesize=A4, leftMargin=1.8*cm, rightMargin=1.8*cm, topMargin=1.8*cm, bottomMargin=1.4*cm, title="Biochemistry Practice MCQ Quiz" ) story = [] # ── Cover ───────────────────────────────────────────────────────────────────── cover_rows = [ [Paragraph("BIOCHEMISTRY", S_COVER_TITLE)], [Paragraph("PRACTICE MCQ QUIZ", S_COVER_TITLE)], [Spacer(1, 0.2*cm)], [Paragraph("Plasma Proteins · Lymph & Lipoproteins · Cardiac Metabolism · Smooth Muscle", S_COVER_SUB)], [Spacer(1, 0.15*cm)], [Paragraph("40 Questions | Answer Key & Explanations Included", S_COVER_INFO)], [Spacer(1, 0.1*cm)], [Paragraph("Instructions: Choose the single BEST answer for each question.", S_COVER_SUB)], ] cover_t = Table(cover_rows, colWidths=[17.5*cm]) cover_t.setStyle(TableStyle([ ("BACKGROUND", (0,0),(-1,-1), C_NAVY), ("TOPPADDING", (0,0),(-1,-1), 8), ("BOTTOMPADDING", (0,0),(-1,-1), 8), ("LEFTPADDING", (0,0),(-1,-1), 12), ("RIGHTPADDING", (0,0),(-1,-1), 12), ])) story.append(cover_t) story.append(Spacer(1, 0.35*cm)) # ── Section headers per topic ───────────────────────────────────────────────── section_breaks = { 0: ("SECTION A: PLASMA PROTEINS (Q1–10)", C_BLUE), 10: ("SECTION B: LYMPH & LIPOPROTEINS (Q11–20)", C_GREEN), 20: ("SECTION C: CARDIAC METABOLISM (Q21–30)", C_ORANGE), 30: ("SECTION D: SMOOTH MUSCLE CONTRACTION & RELAXATION (Q31–40)", C_PURPLE), } for i, (stem, opts, explanation, category) in enumerate(questions): if i in section_breaks: hdr_text, hdr_color = section_breaks[i] if i > 0: story.append(Spacer(1, 0.2*cm)) story.append(sec_header(hdr_text, bg=hdr_color)) story.append(Spacer(1, 0.2*cm)) q_num = i + 1 story += q_block(q_num, stem, opts, note=category) # ── Answer Key ──────────────────────────────────────────────────────────────── story.append(PageBreak()) story.append(sec_header("ANSWER KEY & EXPLANATIONS", bg=C_NAVY)) story.append(Spacer(1, 0.25*cm)) section_ans_breaks = { 0: ("SECTION A – PLASMA PROTEINS", C_BLUE), 10: ("SECTION B – LYMPH & LIPOPROTEINS", C_GREEN), 20: ("SECTION C – CARDIAC METABOLISM", C_ORANGE), 30: ("SECTION D – SMOOTH MUSCLE", C_PURPLE), } for i, (stem, opts, explanation, category) in enumerate(questions): if i in section_ans_breaks: if i > 0: story.append(Spacer(1, 0.15*cm)) txt, col = section_ans_breaks[i] story.append(sec_header(txt, bg=col)) story.append(Spacer(1, 0.1*cm)) correct_letter = [l for l,t,c in opts if c][0] correct_text = [t for l,t,c in opts if c][0] story.append(answer_box(i+1, f"{correct_letter}) {correct_text}", explanation)) story.append(Spacer(1, 0.1*cm)) # ── Score guide ──────────────────────────────────────────────────────────────── story.append(Spacer(1, 0.2*cm)) score_data = [ [Paragraph("Score Guide", S("sg", fontName="Helvetica-Bold", fontSize=10, textColor=C_WHITE, leading=14))], [Paragraph("36–40 Excellent — exam-ready! ✓", S("s1", fontName="Helvetica", fontSize=9, textColor=C_DARK, leading=13))], [Paragraph("30–35 Good — review wrong answers with the Quick Reference PDF", S("s2", fontName="Helvetica", fontSize=9, textColor=C_DARK, leading=13))], [Paragraph("20–29 Fair — re-read all explanations and mnemonics tonight", S("s3", fontName="Helvetica", fontSize=9, textColor=C_DARK, leading=13))], [Paragraph("Below 20 Focus on starred topics in explanations above", S("s4", fontName="Helvetica", fontSize=9, textColor=C_DARK, leading=13))], ] score_t = Table(score_data, colWidths=[17.5*cm]) score_t.setStyle(TableStyle([ ("BACKGROUND", (0,0),(0,0), C_NAVY), ("BACKGROUND", (0,1),(-1,-1), C_AMBER), ("BOX", (0,0),(-1,-1), 0.8, C_ORANGE), ("TOPPADDING", (0,0),(-1,-1), 5), ("BOTTOMPADDING", (0,0),(-1,-1), 5), ("LEFTPADDING", (0,0),(-1,-1), 10), ])) story.append(score_t) # ── Build ────────────────────────────────────────────────────────────────────── doc.build(story, onFirstPage=on_page, onLaterPages=on_page) print("Done:", OUTPUT) PYEOF
Biochem Practice MCQ Quiz
PDF Document · PDF
| Section | Topic | Questions |
|---|---|---|
| A | Plasma Proteins | Q1–10 |
| B | Lymph & Lipoproteins | Q11–20 |
| C | Cardiac Metabolism | Q21–30 |
| D | Smooth Muscle Contraction & Relaxation | Q31–40 |