Generate a difference between sympathetic and parasympathetic stimulation for five marks for first-year MBBS students.
| Feature | Sympathetic Stimulation | Parasympathetic Stimulation |
|---|---|---|
| Overall function | "Fight or flight" - prepares the body for emergency/stress | "Rest and digest" - promotes vegetative, day-to-day functions |
| Origin (CNS) | Thoracolumbar (T1-L2/L3) | Craniosacral (CN III, VII, IX, X; S2-S4) |
| Preganglionic fibre | Short | Long |
| Postganglionic fibre | Long | Short |
| Ganglia location | Paravertebral/prevertebral (far from organ) | Near or within the effector organ |
| Neurotransmitter | Noradrenaline (postganglionic); Adrenaline from adrenal medulla | Acetylcholine (both pre- and postganglionic) |
| Receptor type | Adrenergic (alpha and beta) | Muscarinic (postganglionic) |
| Extent of discharge | Mass/diffuse discharge (all fibres fire together) | Discrete, localised responses |
| Adrenal medulla | Stimulated - releases adrenaline and noradrenaline into blood | Not involved |
| Eye - Pupil | Dilation (mydriasis) - contracts radial/dilator muscle | Constriction (miosis) - contracts circular/sphincter muscle |
| Eye - Lens | Slight relaxation (far vision) | Constriction of ciliary muscle (near vision/accommodation) |
| Heart rate | Increased (tachycardia) | Decreased (bradycardia) |
| Heart contractility | Increased force of contraction | Decreased force (mainly atria) |
| Blood vessels | Vasoconstriction (most arterioles) | Little or no effect on most vessels |
| Lungs - Bronchi | Bronchodilation | Bronchoconstriction |
| GI tract - motility | Decreased peristalsis and tone | Increased peristalsis and tone |
| GI sphincters | Contraction | Relaxation |
| Glands (salivary, nasal, gastric) | Vasoconstriction; thick, enzyme-rich scanty secretion | Copious watery secretion |
| Sweat glands | Copious sweating (cholinergic sympathetic fibres) | Sweating on palms only |
| Liver | Glycogenolysis - glucose released into blood | Slight glycogen synthesis |
| Urinary bladder - Detrusor | Relaxation (fills with urine) | Contraction (empties bladder) |
| Urinary bladder - Sphincter | Contraction (retains urine) | Relaxation (allows voiding) |
| Penis | Ejaculation | Erection |
| Piloerection / Skin | Contraction of pilomotor muscles (goosebumps) | No effect |
| Blood glucose | Elevated (via glycogenolysis and gluconeogenesis) | No significant effect |
| Blood coagulation | Increased | No effect |
create pdf
ls -la /tmp/workspace/ 2>/dev/null || mkdir -p /tmp/workspace && echo "created"
mkdir -p /tmp/workspace/autonomic-ns && python3 << 'EOF' from reportlab.lib.pagesizes import A4 from reportlab.lib import colors from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.units import cm, mm from reportlab.platypus import ( SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, HRFlowable, KeepTogether ) from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY from reportlab.lib.colors import HexColor output_path = "/tmp/workspace/autonomic-ns/Sympathetic_vs_Parasympathetic.pdf" doc = SimpleDocTemplate( output_path, pagesize=A4, rightMargin=1.8*cm, leftMargin=1.8*cm, topMargin=1.8*cm, bottomMargin=1.8*cm ) styles = getSampleStyleSheet() # Custom styles title_style = ParagraphStyle( 'CustomTitle', parent=styles['Title'], fontSize=16, textColor=HexColor('#1a3c5e'), spaceAfter=4, alignment=TA_CENTER, fontName='Helvetica-Bold' ) subtitle_style = ParagraphStyle( 'Subtitle', parent=styles['Normal'], fontSize=10, textColor=HexColor('#4a6fa5'), spaceAfter=2, alignment=TA_CENTER, fontName='Helvetica' ) section_heading = ParagraphStyle( 'SectionHeading', parent=styles['Heading2'], fontSize=11, textColor=HexColor('#1a3c5e'), spaceAfter=4, spaceBefore=10, fontName='Helvetica-Bold' ) body_style = ParagraphStyle( 'Body', parent=styles['Normal'], fontSize=9, leading=13, spaceAfter=4, fontName='Helvetica', alignment=TA_JUSTIFY ) bullet_style = ParagraphStyle( 'Bullet', parent=styles['Normal'], fontSize=9, leading=13, leftIndent=12, spaceAfter=2, fontName='Helvetica' ) footer_style = ParagraphStyle( 'Footer', parent=styles['Normal'], fontSize=7.5, textColor=HexColor('#888888'), alignment=TA_CENTER, fontName='Helvetica-Oblique' ) # ─── CONTENT ──────────────────────────────────────────────────────────────── story = [] # Title block story.append(Paragraph("Sympathetic vs. Parasympathetic Stimulation", title_style)) story.append(Paragraph("5-Mark Answer | First-Year MBBS | Physiology", subtitle_style)) story.append(HRFlowable(width="100%", thickness=2, color=HexColor('#1a3c5e'), spaceAfter=8)) # Overview paragraph story.append(Paragraph("<b>Overview</b>", section_heading)) story.append(Paragraph( "The autonomic nervous system (ANS) has two main divisions — the <b>sympathetic</b> " "(\"fight or flight\") and the <b>parasympathetic</b> (\"rest and digest\") — that act in a " "reciprocal, coordinated manner to regulate involuntary organ function.", body_style )) story.append(Spacer(1, 4)) # ─── MAIN COMPARISON TABLE ────────────────────────────────────────────────── story.append(Paragraph("Tabular Comparison", section_heading)) col_w = [5.2*cm, 7.0*cm, 7.0*cm] cell_style = ParagraphStyle('Cell', fontSize=8.2, leading=11, fontName='Helvetica') cell_bold = ParagraphStyle('CellBold', fontSize=8.2, leading=11, fontName='Helvetica-Bold') def R(feat, sym, para): return [ Paragraph(feat, cell_bold), Paragraph(sym, cell_style), Paragraph(para, cell_style) ] header = [ Paragraph("<b>Feature</b>", cell_bold), Paragraph("<b>Sympathetic Stimulation</b>", cell_bold), Paragraph("<b>Parasympathetic Stimulation</b>", cell_bold) ] rows = [ header, R("Overall role", "\"Fight or flight\" – emergency/stress responses", "\"Rest and digest\" – day-to-day vegetative functions"), R("CNS origin", "Thoracolumbar (T1–L2/L3)", "Craniosacral (CN III, VII, IX, X; S2–S4)"), R("Preganglionic fibre", "Short", "Long"), R("Postganglionic fibre", "Long", "Short"), R("Ganglia location", "Paravertebral / prevertebral (far from organ)", "Near or within the effector organ"), R("Neurotransmitter (postganglionic)", "Noradrenaline (adrenergic)", "Acetylcholine (cholinergic)"), R("Receptor type", "Adrenergic (α and β)", "Muscarinic"), R("Discharge pattern", "Mass/diffuse – all fibres fire together", "Discrete, localised responses"), R("Adrenal medulla", "Stimulated → releases adrenaline (80%) + noradrenaline (20%) into blood", "Not involved"), R("Eye – Pupil", "Dilation (mydriasis) – contracts dilator/radial muscle", "Constriction (miosis) – contracts sphincter/circular muscle"), R("Eye – Lens", "Slight relaxation (far vision)", "Ciliary muscle contraction (near vision / accommodation)"), R("Heart rate", "Increased (tachycardia)", "Decreased (bradycardia)"), R("Heart contractility", "Increased force of contraction", "Decreased force (mainly atria)"), R("Blood vessels", "Vasoconstriction (most arterioles)", "Little or no direct effect"), R("Bronchi", "Bronchodilation", "Bronchoconstriction"), R("GI tract – motility", "Decreased peristalsis and tone", "Increased peristalsis and tone"), R("GI sphincters", "Contraction", "Relaxation"), R("Salivary / nasal glands", "Thick, enzyme-rich, scanty secretion", "Copious watery secretion"), R("Sweat glands", "Copious sweating (cholinergic sympathetic fibres)", "Sweating on palms only"), R("Liver", "Glycogenolysis → glucose released", "Slight glycogen synthesis"), R("Urinary bladder – Detrusor", "Relaxation (bladder fills)", "Contraction (bladder empties)"), R("Urinary bladder – Sphincter", "Contraction (retains urine)", "Relaxation (allows voiding)"), R("Penis", "Ejaculation", "Erection"), R("Pilomotor muscles / skin", "Contraction (goosebumps, cutaneous vasoconstriction)", "No effect"), R("Blood glucose", "Elevated (glycogenolysis + gluconeogenesis)", "No significant effect"), ] tbl = Table(rows, colWidths=col_w, repeatRows=1) # Alternate row shading row_bg = [] for i in range(2, len(rows)): bg = HexColor('#eaf1fb') if i % 2 == 0 else colors.white row_bg.append(('BACKGROUND', (0, i), (-1, i), bg)) tbl.setStyle(TableStyle([ # Header ('BACKGROUND', (0, 0), (-1, 0), HexColor('#1a3c5e')), ('TEXTCOLOR', (0, 0), (-1, 0), colors.white), ('FONTNAME', (0, 0), (-1, 0), 'Helvetica-Bold'), ('FONTSIZE', (0, 0), (-1, 0), 8.5), ('TOPPADDING', (0, 0), (-1, 0), 6), ('BOTTOMPADDING', (0, 0), (-1, 0), 6), # Body ('FONTSIZE', (0, 1), (-1, -1), 8.2), ('TOPPADDING', (0, 1), (-1, -1), 4), ('BOTTOMPADDING', (0, 1), (-1, -1), 4), ('LEFTPADDING', (0, 0), (-1, -1), 5), ('RIGHTPADDING', (0, 0), (-1, -1), 5), # Grid ('GRID', (0, 0), (-1, -1), 0.4, HexColor('#b0c4d8')), ('VALIGN', (0, 0), (-1, -1), 'TOP'), # Feature column bold highlight ('BACKGROUND', (0, 1), (0, -1), HexColor('#f0f5fc')), ('FONTNAME', (0, 1), (0, -1), 'Helvetica-Bold'), ] + row_bg)) story.append(tbl) story.append(Spacer(1, 10)) # ─── ADDITIONAL NOTES ────────────────────────────────────────────────────── story.append(HRFlowable(width="100%", thickness=0.8, color=HexColor('#b0c4d8'), spaceAfter=6)) story.append(Paragraph("Additional Important Points", section_heading)) notes = [ ("<b>Dual innervation:</b> Most organs receive both sympathetic and parasympathetic supply with antagonistic effects. " "However, most blood vessels, sweat glands, and pilomotor muscles receive <b>only sympathetic</b> innervation; " "lacrimal gland and ciliary muscle receive <b>only parasympathetic</b> innervation."), ("<b>Important exception:</b> Sympathetic fibres to <i>sweat glands</i> are <b>cholinergic</b> (not adrenergic)."), ("<b>Adrenal medulla:</b> Acts as a modified sympathetic ganglion. Preganglionic cholinergic fibres stimulate " "chromaffin cells to secrete adrenaline (80%) and noradrenaline (20%) into the bloodstream, amplifying " "and prolonging sympathetic effects throughout the body."), ("<b>Salivary glands (Ganong's):</b> Both divisions stimulate salivation but via different mechanisms — " "parasympathetic causes copious watery saliva; sympathetic causes thick, enzyme-rich saliva."), ] for note in notes: story.append(Paragraph(f"• {note}", bullet_style)) story.append(Spacer(1, 8)) # ─── MNEMONICS ───────────────────────────────────────────────────────────── story.append(Paragraph("Mnemonics for Exams", section_heading)) mnem_data = [ [Paragraph("<b>Sympathetic – \"4 Ds\"</b>", cell_bold), Paragraph("<b>Dilation</b> of pupils, <b>Dilation</b> of bronchi, <b>Decreased</b> GI motility, <b>Dilated</b> coronaries", cell_style)], [Paragraph("<b>Parasympathetic – \"SLUD\"</b>", cell_bold), Paragraph("<b>S</b>alivation, <b>L</b>acrimation, <b>U</b>rination, <b>D</b>efecation", cell_style)], ] mnem_tbl = Table(mnem_data, colWidths=[5.5*cm, 13.7*cm]) mnem_tbl.setStyle(TableStyle([ ('BACKGROUND', (0, 0), (0, -1), HexColor('#e8f0e8')), ('BACKGROUND', (1, 0), (1, -1), HexColor('#f5fbf5')), ('GRID', (0, 0), (-1, -1), 0.4, HexColor('#88bb88')), ('TOPPADDING', (0, 0), (-1, -1), 5), ('BOTTOMPADDING', (0, 0), (-1, -1), 5), ('LEFTPADDING', (0, 0), (-1, -1), 7), ('VALIGN', (0, 0), (-1, -1), 'TOP'), ])) story.append(mnem_tbl) story.append(Spacer(1, 10)) # ─── FOOTER ──────────────────────────────────────────────────────────────── story.append(HRFlowable(width="100%", thickness=0.5, color=HexColor('#cccccc'), spaceAfter=4)) story.append(Paragraph( "Sources: Guyton & Hall Textbook of Medical Physiology (Table 61.2, p. 759) | " "Costanzo Physiology, 7th Ed. | Ganong's Review of Medical Physiology, 26th Ed.", footer_style )) doc.build(story) print("PDF created:", output_path) EOF
Sympathetic vs Parasympathetic
PDF Document · PDF
Create a quick reference card on neurotransmitters and receptors
python3 << 'PYEOF' from reportlab.lib.pagesizes import A4 from reportlab.lib import colors from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.units import cm, mm from reportlab.platypus import ( SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, HRFlowable, KeepTogether ) from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY from reportlab.lib.colors import HexColor output_path = "/tmp/workspace/autonomic-ns/Neurotransmitters_Receptors_QRC.pdf" doc = SimpleDocTemplate( output_path, pagesize=A4, rightMargin=1.5*cm, leftMargin=1.5*cm, topMargin=1.5*cm, bottomMargin=1.4*cm ) # ── Colour palette ────────────────────────────────────────────── C_NAVY = HexColor('#1a3c5e') C_TEAL = HexColor('#0f7b8c') C_GREEN = HexColor('#1e7d4f') C_PURPLE = HexColor('#5c3a8e') C_ORANGE = HexColor('#b85c00') C_RED = HexColor('#8b1a1a') C_LBLUE = HexColor('#dce9f5') C_LTEAL = HexColor('#d4f0f5') C_LGREEN = HexColor('#d8f2e5') C_LPURP = HexColor('#ece5f5') C_LORANG = HexColor('#faebd7') C_LRED = HexColor('#fde8e8') C_LGRAY = HexColor('#f4f4f4') C_MGRAY = HexColor('#cccccc') C_DGRAY = HexColor('#555555') # ── Styles ────────────────────────────────────────────────────── def mk(name, **kw): s = ParagraphStyle(name, **kw) return s title_s = mk('T', fontName='Helvetica-Bold', fontSize=15, textColor=C_NAVY, alignment=TA_CENTER, spaceAfter=2) sub_s = mk('S', fontName='Helvetica', fontSize=9, textColor=C_TEAL, alignment=TA_CENTER, spaceAfter=6) sec_s = mk('H', fontName='Helvetica-Bold', fontSize=10, textColor=colors.white, alignment=TA_LEFT, spaceAfter=0, leading=14) body_s = mk('B', fontName='Helvetica', fontSize=8, leading=11, spaceAfter=2) cell_s = mk('C', fontName='Helvetica', fontSize=7.8,leading=11) cell_b = mk('CB',fontName='Helvetica-Bold', fontSize=7.8,leading=11) note_s = mk('N', fontName='Helvetica-Oblique', fontSize=7.5,textColor=C_DGRAY, leading=10) foot_s = mk('F', fontName='Helvetica-Oblique', fontSize=7, textColor=HexColor('#999999'), alignment=TA_CENTER) mnem_key = mk('MK',fontName='Helvetica-Bold', fontSize=8, textColor=C_NAVY, leading=11) mnem_val = mk('MV',fontName='Helvetica', fontSize=8, leading=11) tag_s = mk('TG',fontName='Helvetica-Bold', fontSize=7.5,textColor=colors.white, alignment=TA_CENTER) def P(txt, style=cell_s): return Paragraph(txt, style) def B(txt): return P(txt, cell_b) story = [] # ── TITLE ──────────────────────────────────────────────────────── story.append(P("Quick Reference Card: Neurotransmitters & Receptors", title_s)) story.append(P("First-Year MBBS | Physiology & Pharmacology", sub_s)) story.append(HRFlowable(width="100%", thickness=2, color=C_NAVY, spaceAfter=8)) # ════════════════════════════════════════════════════════════════ # SECTION HEADER helper def sec_header(txt, bg): tbl = Table([[P(f"<b>{txt}</b>", sec_s)]], colWidths=[18*cm]) tbl.setStyle(TableStyle([ ('BACKGROUND',(0,0),(-1,-1), bg), ('TOPPADDING',(0,0),(-1,-1),4), ('BOTTOMPADDING',(0,0),(-1,-1),4), ('LEFTPADDING',(0,0),(-1,-1),8), ('BOX',(0,0),(-1,-1),0.5,bg), ])) return tbl # ════════════════════════════════════════════════════════════════ # 1. CHOLINERGIC SYSTEM # ════════════════════════════════════════════════════════════════ story.append(KeepTogether([ sec_header("1. CHOLINERGIC SYSTEM | Neurotransmitter: Acetylcholine (ACh)", C_TEAL), Spacer(1,4), ])) ach_rows = [ [B("Receptor"), B("Type"), B("Location"), B("Key Effects"), B("Agonists"), B("Antagonists")], [P("Nicotinic N₁\n(NMJ)"), P("Ionotropic\n(ligand-gated Na⁺/K⁺)"), P("Neuromuscular junction"), P("Skeletal muscle contraction"), P("ACh, Nicotine, Suxamethonium"), P("Tubocurarine, Vecuronium")], [P("Nicotinic N₂\n(Ganglionic)"), P("Ionotropic\n(ligand-gated Na⁺/K⁺)"), P("Autonomic ganglia (sym + para)"), P("Depolarisation of postganglionic neuron"), P("ACh, Nicotine"), P("Hexamethonium, Trimethaphan")], [P("Muscarinic M₁"), P("Metabotropic\n(GPCR – Gq)"), P("CNS, gastric parietal cells"), P("↑ Gastric acid; CNS excitation"), P("ACh, Muscarine, McN-A-343"), P("Atropine, Pirenzepine")], [P("Muscarinic M₂"), P("Metabotropic\n(GPCR – Gi)"), P("Heart (SA/AV node), presynaptic"), P("↓ HR, ↓ conduction velocity"), P("ACh, Muscarine"), P("Atropine, Gallamine")], [P("Muscarinic M₃"), P("Metabotropic\n(GPCR – Gq)"), P("Smooth muscle, glands, eye"), P("Bronchoconstriction, ↑ secretions, miosis, bladder contraction"), P("ACh, Muscarine"), P("Atropine, Ipratropium, Solifenacin")], ] ach_col = [3.0*cm, 2.6*cm, 3.0*cm, 4.2*cm, 2.6*cm, 2.6*cm] ach_tbl = Table(ach_rows, colWidths=ach_col, repeatRows=1) ach_style = [ ('BACKGROUND',(0,0),(-1,0), C_TEAL), ('TEXTCOLOR',(0,0),(-1,0), colors.white), ('FONTNAME',(0,0),(-1,0),'Helvetica-Bold'), ('FONTSIZE',(0,0),(-1,-1), 7.8), ('TOPPADDING',(0,0),(-1,-1),3), ('BOTTOMPADDING',(0,0),(-1,-1),3), ('LEFTPADDING',(0,0),(-1,-1),4), ('RIGHTPADDING',(0,0),(-1,-1),4), ('GRID',(0,0),(-1,-1),0.3, HexColor('#aacccc')), ('VALIGN',(0,0),(-1,-1),'TOP'), ] for i in range(2, len(ach_rows), 2): ach_style.append(('BACKGROUND',(0,i),(-1,i), C_LTEAL)) ach_tbl.setStyle(TableStyle(ach_style)) story.append(ach_tbl) story.append(Spacer(1,6)) # ════════════════════════════════════════════════════════════════ # 2. ADRENERGIC SYSTEM # ════════════════════════════════════════════════════════════════ story.append(KeepTogether([ sec_header("2. ADRENERGIC SYSTEM | Neurotransmitters: Noradrenaline (NA) / Adrenaline (A)", C_NAVY), Spacer(1,4), ])) adr_rows = [ [B("Receptor"), B("G-Protein"), B("Location"), B("Key Effects"), B("Agonists"), B("Antagonists")], [P("α₁"), P("Gq → IP3/DAG\n↑ Ca²⁺"), P("Vascular smooth muscle, radial iris, sphincters"), P("Vasoconstriction, mydriasis, ejaculation, GI sphincter contraction"), P("NA, A\nPhenylephrine"), P("Prazosin\nPhentolamine")], [P("α₂"), P("Gi → ↓ cAMP"), P("Presynaptic (autoreceptor), platelets, CNS"), P("↓ NA release (negative feedback), platelet aggregation, sedation"), P("Clonidine\nMethyldopa"), P("Yohimbine\nMirtazapine")], [P("β₁"), P("Gs → ↑ cAMP"), P("Heart (SA node, myocardium), JGA (kidney)"), P("↑ HR, ↑ contractility, ↑ renin secretion"), P("NA, A\nDobutamine"), P("Propranolol\nMetoprolol\nAtenolol")], [P("β₂"), P("Gs → ↑ cAMP"), P("Bronchi, uterus, vascular smooth muscle, liver"), P("Bronchodilation, uterine relaxation, vasodilation, glycogenolysis"), P("A, Salbutamol\nTerbutaline"), P("Propranolol\nButoxamine")], [P("β₃"), P("Gs → ↑ cAMP"), P("Adipose tissue, bladder detrusor"), P("Lipolysis, bladder relaxation"), P("Mirabegron"), P("—")], ] adr_col = [1.8*cm, 2.6*cm, 3.6*cm, 4.2*cm, 2.9*cm, 2.9*cm] adr_tbl = Table(adr_rows, colWidths=adr_col, repeatRows=1) adr_style = [ ('BACKGROUND',(0,0),(-1,0), C_NAVY), ('TEXTCOLOR',(0,0),(-1,0), colors.white), ('FONTNAME',(0,0),(-1,0),'Helvetica-Bold'), ('FONTSIZE',(0,0),(-1,-1), 7.8), ('TOPPADDING',(0,0),(-1,-1),3), ('BOTTOMPADDING',(0,0),(-1,-1),3), ('LEFTPADDING',(0,0),(-1,-1),4), ('RIGHTPADDING',(0,0),(-1,-1),4), ('GRID',(0,0),(-1,-1),0.3, HexColor('#aabbcc')), ('VALIGN',(0,0),(-1,-1),'TOP'), ] for i in range(2, len(adr_rows), 2): adr_style.append(('BACKGROUND',(0,i),(-1,i), C_LBLUE)) adr_tbl.setStyle(TableStyle(adr_style)) story.append(adr_tbl) story.append(Spacer(1,6)) # ════════════════════════════════════════════════════════════════ # 3. DOPAMINERGIC SYSTEM # ════════════════════════════════════════════════════════════════ story.append(KeepTogether([ sec_header("3. DOPAMINERGIC SYSTEM | Neurotransmitter: Dopamine (DA)", C_PURPLE), Spacer(1,4), ])) da_rows = [ [B("Receptor Family"), B("Subtypes"), B("G-Protein"), B("CNS Pathways"), B("Key Functions"), B("Clinical Relevance")], [P("D1-like"), P("D1, D5"), P("Gs → ↑ cAMP\n(excitatory)"), P("Nigrostriatal\nMesocortical"), P("Motor control, cognition, reward, ↑ cAMP in striatum"), P("D1 activation → anti-Parkinson\nClozapine partial agonist")], [P("D2-like"), P("D2, D3, D4"), P("Gi → ↓ cAMP\n(inhibitory)"), P("Mesolimbic\nTuberoinfundibular"), P("Reward, mood, prolactin inhibition, presynaptic autoreceptor"), P("D2 block → antipsychotics (haloperidol)\n↑ prolactin (galactorrhoea)")], ] da_col = [2.5*cm, 2.0*cm, 2.5*cm, 3.2*cm, 4.3*cm, 3.5*cm] da_tbl = Table(da_rows, colWidths=da_col, repeatRows=1) da_style = [ ('BACKGROUND',(0,0),(-1,0), C_PURPLE), ('TEXTCOLOR',(0,0),(-1,0), colors.white), ('FONTNAME',(0,0),(-1,0),'Helvetica-Bold'), ('FONTSIZE',(0,0),(-1,-1), 7.8), ('TOPPADDING',(0,0),(-1,-1),3), ('BOTTOMPADDING',(0,0),(-1,-1),3), ('LEFTPADDING',(0,0),(-1,-1),4), ('RIGHTPADDING',(0,0),(-1,-1),4), ('GRID',(0,0),(-1,-1),0.3, HexColor('#cbb8e0')), ('VALIGN',(0,0),(-1,-1),'TOP'), ('BACKGROUND',(0,2),(-1,2), C_LPURP), ] da_tbl.setStyle(TableStyle(da_style)) story.append(da_tbl) story.append(Spacer(1,6)) # ════════════════════════════════════════════════════════════════ # 4. SEROTONIN # ════════════════════════════════════════════════════════════════ story.append(KeepTogether([ sec_header("4. SEROTONERGIC SYSTEM | Neurotransmitter: Serotonin (5-HT)", C_ORANGE), Spacer(1,4), ])) ht_rows = [ [B("Receptor"), B("Type"), B("Location"), B("Key Effects"), B("Clinical Relevance")], [P("5-HT1A"), P("Gᵢ / metabotropic"), P("Raphe nuclei (somatodendritic autoreceptor), hippocampus"), P("↓ 5-HT firing; anxiolysis, antidepressant effect"), P("Buspirone (partial agonist) – anxiety\nSSRIs desensitise 5-HT1A")], [P("5-HT1B/1D"), P("Gᵢ / metabotropic"), P("Presynaptic terminal (heteroreceptor), cranial blood vessels"), P("Vasoconstriction, ↓ CGRP release"), P("Triptans (agonist) – migraine")], [P("5-HT2A"), P("Gq / metabotropic"), P("Cortex, platelets, smooth muscle"), P("Hallucinations, platelet aggregation, vasoconstriction"), P("Atypical antipsychotics block 5-HT2A\nLSD is an agonist")], [P("5-HT3"), P("Ionotropic\n(Na⁺/K⁺ channel)"), P("GI tract (vagal afferents), area postrema, CNS"), P("Depolarisation → nausea/vomiting, GI motility"), P("Ondansetron (antagonist) – anti-emetic")], [P("5-HT4"), P("Gs / metabotropic"), P("GI tract, CNS"), P("↑ GI motility, gastric emptying"), P("Metoclopramide, Mosapride – prokinetics")], ] ht_col = [2.2*cm, 2.5*cm, 3.8*cm, 4.5*cm, 5.0*cm] ht_tbl = Table(ht_rows, colWidths=ht_col, repeatRows=1) ht_style = [ ('BACKGROUND',(0,0),(-1,0), C_ORANGE), ('TEXTCOLOR',(0,0),(-1,0), colors.white), ('FONTNAME',(0,0),(-1,0),'Helvetica-Bold'), ('FONTSIZE',(0,0),(-1,-1), 7.8), ('TOPPADDING',(0,0),(-1,-1),3), ('BOTTOMPADDING',(0,0),(-1,-1),3), ('LEFTPADDING',(0,0),(-1,-1),4), ('RIGHTPADDING',(0,0),(-1,-1),4), ('GRID',(0,0),(-1,-1),0.3, HexColor('#e0c8a0')), ('VALIGN',(0,0),(-1,-1),'TOP'), ] for i in range(2, len(ht_rows), 2): ht_style.append(('BACKGROUND',(0,i),(-1,i), C_LORANG)) ht_tbl.setStyle(TableStyle(ht_style)) story.append(ht_tbl) story.append(Spacer(1,6)) # ════════════════════════════════════════════════════════════════ # 5. AMINO ACIDS: GABA + GLUTAMATE # ════════════════════════════════════════════════════════════════ story.append(KeepTogether([ sec_header("5. AMINO ACID NEUROTRANSMITTERS | GABA (inhibitory) & Glutamate (excitatory)", C_GREEN), Spacer(1,4), ])) aa_rows = [ [B("Neurotransmitter"), B("Receptor"), B("Type / Ion"), B("Location"), B("Key Effects"), B("Clinical Relevance")], [P("GABA\n(γ-amino-\nbutyric acid)\n— Inhibitory"), P("GABAA"), P("Ionotropic\nCl⁻ channel → hyperpolarisation"), P("CNS (widespread), spinal cord"), P("Fast inhibition; membrane hyperpolarisation, ↓ neuronal firing"), P("Benzodiazepines ↑ Cl⁻ opening freq.\nBarbiturates ↑ duration\nAlcohol potentiates\nBicuculline – antagonist")], [P(""), P("GABAB"), P("Metabotropic\n(Gi → ↓ cAMP, ↑ K⁺ channel)"), P("Pre- & postsynaptic CNS"), P("Slow/prolonged inhibition; ↓ NT release, muscle relaxation"), P("Baclofen (agonist) – spasticity\nPhaclofen – antagonist")], [P("Glutamate\n— Excitatory"), P("AMPA"), P("Ionotropic\nNa⁺/K⁺ channel"), P("Widespread CNS synapses"), P("Fast depolarisation; major excitatory postsynaptic potential (EPSP)"), P("CNQX – antagonist (research)\nPerampanel – AMPA antagonist (epilepsy)")], [P(""), P("NMDA"), P("Ionotropic\nNa⁺/K⁺/Ca²⁺\n(Mg²⁺ block)"), P("Cortex, hippocampus"), P("Slow Ca²⁺ entry; LTP, learning, memory; Mg²⁺ block relieved by depolarisation"), P("Ketamine, PCP – antagonists (anaesthesia, dissociation)\nMemantine – antagonist (Alzheimer's)")], [P(""), P("mGluR\n(I-VIII)"), P("Metabotropic\n(GPCR)"), P("Pre & postsynaptic CNS"), P("Modulate synaptic transmission, plasticity, pain signalling"), P("mGluR5 antagonists under investigation for autism, anxiety")], ] aa_col = [2.2*cm, 1.8*cm, 2.8*cm, 3.0*cm, 4.0*cm, 4.2*cm] aa_tbl = Table(aa_rows, colWidths=aa_col, repeatRows=1) aa_style = [ ('BACKGROUND',(0,0),(-1,0), C_GREEN), ('TEXTCOLOR',(0,0),(-1,0), colors.white), ('FONTNAME',(0,0),(-1,0),'Helvetica-Bold'), ('FONTSIZE',(0,0),(-1,-1), 7.8), ('TOPPADDING',(0,0),(-1,-1),3), ('BOTTOMPADDING',(0,0),(-1,-1),3), ('LEFTPADDING',(0,0),(-1,-1),4), ('RIGHTPADDING',(0,0),(-1,-1),4), ('GRID',(0,0),(-1,-1),0.3, HexColor('#90c4a0')), ('VALIGN',(0,0),(-1,-1),'TOP'), ('SPAN',(0,2),(0,3)), # GABA spans 2 rows ('SPAN',(0,4),(0,6)), # Glu spans 3 rows ('BACKGROUND',(0,2),(-1,3), C_LGREEN), ('BACKGROUND',(0,5),(-1,5), HexColor('#eafff3')), ] aa_tbl.setStyle(TableStyle(aa_style)) story.append(aa_tbl) story.append(Spacer(1,6)) # ════════════════════════════════════════════════════════════════ # 6. OTHER NTs — quick summary row # ════════════════════════════════════════════════════════════════ story.append(KeepTogether([ sec_header("6. OTHER KEY NEUROTRANSMITTERS", C_RED), Spacer(1,4), ])) oth_rows = [ [B("Neurotransmitter"), B("Synthesis"), B("Receptor(s)"), B("Key Role"), B("Clinical Notes")], [P("Noradrenaline (NA)"), P("Tyrosine → DOPA → DA → NA (via dopamine β-hydroxylase)"), P("α₁, α₂, β₁, β₂\n(adrenoceptors)"), P("Arousal, attention, fight-or-flight, mood"), P("Reuptake blocked by TCAs, SNRIs\nMOA inhibited by MAOIs")], [P("Histamine"), P("Histidine → Histamine (histidine decarboxylase)"), P("H₁ (Gq), H₂ (Gs)\nH₃ (Gi – autoreceptor)"), P("Wakefulness (H₁), gastric acid (H₂), neuroinflammation"), P("H₁ blockers – antihistamines, anti-emetics\nH₂ blockers – ranitidine, cimetidine")], [P("Glycine"), P("Serine → Glycine"), P("Glycine receptor\n(Cl⁻ ionotropic)"), P("Inhibitory NT in spinal cord and brainstem"), P("Strychnine – antagonist (convulsions)\nTetanus toxin blocks glycine release")], [P("Nitric Oxide (NO)"), P("Arginine → NO (via NOS)"), P("Diffusible gas;\nActivates guanylyl cyclase → ↑ cGMP"), P("Vasodilation, penile erection, neurotransmission (retrograde)"), P("Sildenafil inhibits PDE5 → ↑ cGMP → vasodilation\nNitrates → NO donors")], [P("Opioid Peptides\n(Endorphins, Enkephalins, Dynorphins)"), P("Derived from pre-pro-opiomelanocortin (POMC) etc."), P("μ (mu), κ (kappa)\nδ (delta) – all Gi/Go GPCRs"), P("Analgesia, euphoria, respiratory depression, ↓ GI motility"), P("Morphine, codeine (agonists)\nNaloxone, naltrexone (antagonists)")], [P("Substance P"), P("Peptide precursor"), P("NK1 receptor (Gq)"), P("Pain transmission (primary afferents → dorsal horn), neurogenic inflammation"), P("Aprepitant (NK1 antagonist) – anti-emetic")], ] oth_col = [2.5*cm, 3.2*cm, 2.8*cm, 3.7*cm, 5.8*cm] oth_tbl = Table(oth_rows, colWidths=oth_col, repeatRows=1) oth_style = [ ('BACKGROUND',(0,0),(-1,0), C_RED), ('TEXTCOLOR',(0,0),(-1,0), colors.white), ('FONTNAME',(0,0),(-1,0),'Helvetica-Bold'), ('FONTSIZE',(0,0),(-1,-1), 7.8), ('TOPPADDING',(0,0),(-1,-1),3), ('BOTTOMPADDING',(0,0),(-1,-1),3), ('LEFTPADDING',(0,0),(-1,-1),4), ('RIGHTPADDING',(0,0),(-1,-1),4), ('GRID',(0,0),(-1,-1),0.3, HexColor('#e0aaaa')), ('VALIGN',(0,0),(-1,-1),'TOP'), ] for i in range(2, len(oth_rows), 2): oth_style.append(('BACKGROUND',(0,i),(-1,i), C_LRED)) oth_tbl.setStyle(TableStyle(oth_style)) story.append(oth_tbl) story.append(Spacer(1,6)) # ════════════════════════════════════════════════════════════════ # 7. RECEPTOR TYPE OVERVIEW # ════════════════════════════════════════════════════════════════ story.append(KeepTogether([ sec_header("7. RECEPTOR TYPES AT A GLANCE", HexColor('#4a4a6a')), Spacer(1,4), ])) rt_rows = [ [B("Type"), B("Mechanism"), B("Speed"), B("Examples")], [P("Ionotropic\n(Ligand-gated ion channels)"), P("NT binds → ion channel opens directly → rapid membrane potential change"), P("Milliseconds\n(fast)"), P("Nicotinic (ACh), GABAA, AMPA, NMDA, 5-HT3, Glycine receptor")], [P("Metabotropic\n(G-protein coupled – GPCR)"), P("NT binds → G-protein activated → 2nd messenger cascade (cAMP, IP3/DAG, cGMP)"), P("Seconds–minutes\n(slow)"), P("Muscarinic (ACh), Adrenoceptors (α,β), GABAB, mGluR, Dopamine (D1–D5), 5-HT1/2/4, Opioid (μ,κ,δ)")], [P("Receptor Tyrosine Kinases\n(RTKs)"), P("Ligand binds → autophosphorylation → intracellular kinase cascade"), P("Minutes–hours"), P("Insulin receptor, NGF receptor (TrkA), growth factors")], [P("Nuclear / Intracellular Receptors"), P("Lipid-soluble ligand diffuses into cell → receptor–ligand complex acts as transcription factor"), P("Hours–days"), P("Steroid hormones (cortisol, oestrogen, testosterone), Thyroid hormone, Vitamin D")], ] rt_col = [3.6*cm, 5.8*cm, 2.5*cm, 6.1*cm] rt_tbl = Table(rt_rows, colWidths=rt_col, repeatRows=1) rt_style = [ ('BACKGROUND',(0,0),(-1,0), HexColor('#4a4a6a')), ('TEXTCOLOR',(0,0),(-1,0), colors.white), ('FONTNAME',(0,0),(-1,0),'Helvetica-Bold'), ('FONTSIZE',(0,0),(-1,-1), 7.8), ('TOPPADDING',(0,0),(-1,-1),3), ('BOTTOMPADDING',(0,0),(-1,-1),3), ('LEFTPADDING',(0,0),(-1,-1),4), ('RIGHTPADDING',(0,0),(-1,-1),4), ('GRID',(0,0),(-1,-1),0.3, HexColor('#bbbbcc')), ('VALIGN',(0,0),(-1,-1),'TOP'), ('BACKGROUND',(0,2),(-1,2), HexColor('#e8e8f5')), ('BACKGROUND',(0,4),(-1,4), HexColor('#e8e8f5')), ] rt_tbl.setStyle(TableStyle(rt_style)) story.append(rt_tbl) story.append(Spacer(1,6)) # ════════════════════════════════════════════════════════════════ # 8. MNEMONICS # ════════════════════════════════════════════════════════════════ story.append(KeepTogether([ sec_header("8. MNEMONICS & HIGH-YIELD FACTS", HexColor('#2e6b35')), Spacer(1,4), ])) mn_data = [ [P("<b>Mnemonic / Fact</b>", cell_b), P("<b>Detail</b>", cell_b)], [P("α₁ effects: \"CVDMB\""), P("Contraction of vascular SM, Vasoconstriction, Dilation (pupil), Midodrine uses, Bladder sphincter contraction")], [P("β₁ = Heart (1 heart)"), P("β₁ receptors mainly on the heart → ↑HR and ↑contractility")], [P("β₂ = Lungs (2 lungs)"), P("β₂ receptors on bronchi → bronchodilation; also uterine relaxation")], [P("GABAA = Benzo/Barbs target"), P("Benzo ↑ Cl⁻ channel <b>frequency</b>; Barbiturate ↑ <b>duration</b> of opening")], [P("NMDA needs 2 keys"), P("Both glutamate AND glycine (co-agonist) needed to open NMDA channel; also needs membrane depolarisation to remove Mg²⁺ block")], [P("Dopamine pathways → \"MTML\""), P("<b>M</b>esolimbic (reward/psychosis), <b>M</b>esocortical (cognition/negative symptoms), <b>T</b>uberoinfundibular (prolactin inhibition), <b>N</b>igrostriatal (motor control)")], [P("5-HT3 is the odd one out"), P("Only ionotropic serotonin receptor; targeted by ondansetron for nausea/vomiting")], [P("Nicotinic = Na⁺ in"), P("Nicotinic receptors are Na⁺/K⁺ ionotropic; cause rapid depolarisation at NMJ and ganglia")], [P("\"Blue\" = NO → cGMP"), P("Sildenafil (Viagra) inhibits PDE5, preventing breakdown of cGMP → sustained vasodilation in corpus cavernosum")], ] mn_col = [4.5*cm, 13.5*cm] mn_tbl = Table(mn_data, colWidths=mn_col, repeatRows=1) mn_style = [ ('BACKGROUND',(0,0),(-1,0), HexColor('#2e6b35')), ('TEXTCOLOR',(0,0),(-1,0), colors.white), ('FONTNAME',(0,0),(-1,0),'Helvetica-Bold'), ('FONTSIZE',(0,0),(-1,-1), 7.8), ('TOPPADDING',(0,0),(-1,-1),3), ('BOTTOMPADDING',(0,0),(-1,-1),3), ('LEFTPADDING',(0,0),(-1,-1),5), ('RIGHTPADDING',(0,0),(-1,-1),4), ('GRID',(0,0),(-1,-1),0.3, HexColor('#90c090')), ('VALIGN',(0,0),(-1,-1),'TOP'), ('BACKGROUND',(0,0),(0,-1), HexColor('#d5eed5')), ] for i in range(2, len(mn_data), 2): mn_style.append(('BACKGROUND',(1,i),(1,i), HexColor('#edfaed'))) mn_tbl.setStyle(TableStyle(mn_style)) story.append(mn_tbl) story.append(Spacer(1,8)) # ── Footer ─────────────────────────────────────────────────────── story.append(HRFlowable(width="100%", thickness=0.5, color=C_MGRAY, spaceAfter=3)) story.append(P( "Sources: Costanzo Physiology 7e (Table 2.2) | Neuroscience: Exploring the Brain 5e (Table 6.1) | " "Guyton & Hall Medical Physiology | Goodman & Gilman's Pharmacological Basis of Therapeutics | " "Stahl's Essential Psychopharmacology | Kaplan & Sadock's Synopsis of Psychiatry", foot_s )) doc.build(story) print("Done:", output_path) PYEOF
python3 << 'PYEOF' 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, KeepTogether ) from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY from reportlab.lib.colors import HexColor output_path = "/tmp/workspace/autonomic-ns/Neurotransmitters_Receptors_QRC.pdf" doc = SimpleDocTemplate( output_path, pagesize=A4, rightMargin=1.5*cm, leftMargin=1.5*cm, topMargin=1.5*cm, bottomMargin=1.4*cm ) C_NAVY = HexColor('#1a3c5e'); C_TEAL = HexColor('#0f7b8c') C_GREEN = HexColor('#1e7d4f'); C_PURPLE = HexColor('#5c3a8e') C_ORANGE = HexColor('#b85c00'); C_RED = HexColor('#8b1a1a') C_LBLUE = HexColor('#dce9f5'); C_LTEAL = HexColor('#d4f0f5') C_LGREEN = HexColor('#d8f2e5'); C_LPURP = HexColor('#ece5f5') C_LORANG = HexColor('#faebd7'); C_LRED = HexColor('#fde8e8') C_MGRAY = HexColor('#cccccc') def mk(name, **kw): return ParagraphStyle(name, **kw) title_s = mk('T', fontName='Helvetica-Bold', fontSize=15, textColor=C_NAVY, alignment=TA_CENTER, spaceAfter=2) sub_s = mk('S', fontName='Helvetica', fontSize=9, textColor=C_TEAL, alignment=TA_CENTER, spaceAfter=6) sec_s = mk('H', fontName='Helvetica-Bold', fontSize=10, textColor=colors.white, spaceAfter=0, leading=14) cell_s = mk('C', fontName='Helvetica', fontSize=7.8, leading=11) cell_b = mk('CB',fontName='Helvetica-Bold', fontSize=7.8, leading=11) foot_s = mk('F', fontName='Helvetica-Oblique', fontSize=7, textColor=HexColor('#999999'), alignment=TA_CENTER) def P(txt, s=cell_s): return Paragraph(txt, s) def B(txt): return P(txt, cell_b) def sec_header(txt, bg): t = Table([[P(f"<b>{txt}</b>", sec_s)]], colWidths=[18*cm]) t.setStyle(TableStyle([ ('BACKGROUND',(0,0),(-1,-1),bg), ('TOPPADDING',(0,0),(-1,-1),4),('BOTTOMPADDING',(0,0),(-1,-1),4), ('LEFTPADDING',(0,0),(-1,-1),8), ])); return t def build_table(rows, col_w, hdr_color, alt_color, grid_color): tbl = Table(rows, colWidths=col_w, repeatRows=1) style = [ ('BACKGROUND',(0,0),(-1,0), hdr_color), ('TEXTCOLOR',(0,0),(-1,0), colors.white), ('FONTNAME',(0,0),(-1,0),'Helvetica-Bold'), ('FONTSIZE',(0,0),(-1,-1),7.8), ('TOPPADDING',(0,0),(-1,-1),3),('BOTTOMPADDING',(0,0),(-1,-1),3), ('LEFTPADDING',(0,0),(-1,-1),4),('RIGHTPADDING',(0,0),(-1,-1),4), ('GRID',(0,0),(-1,-1),0.3, grid_color), ('VALIGN',(0,0),(-1,-1),'TOP'), ] for i in range(2, len(rows), 2): style.append(('BACKGROUND',(0,i),(-1,i), alt_color)) tbl.setStyle(TableStyle(style)) return tbl story = [] # TITLE story.append(P("Quick Reference Card: Neurotransmitters & Receptors", title_s)) story.append(P("First-Year MBBS | Physiology & Pharmacology", sub_s)) story.append(HRFlowable(width="100%", thickness=2, color=C_NAVY, spaceAfter=8)) # ── 1. CHOLINERGIC ────────────────────────────────────────────── story.append(sec_header("1. CHOLINERGIC SYSTEM | Neurotransmitter: Acetylcholine (ACh)", C_TEAL)) story.append(Spacer(1,3)) ach = [ [B("Receptor"), B("Type"), B("Location"), B("Key Effects"), B("Agonists"), B("Antagonists")], [P("Nicotinic N₁ (NMJ)"), P("Ionotropic – Na⁺/K⁺"), P("Neuromuscular junction"), P("Skeletal muscle contraction"), P("ACh, Nicotine, Suxamethonium"), P("Tubocurarine, Vecuronium")], [P("Nicotinic N₂ (Gang.)"), P("Ionotropic – Na⁺/K⁺"), P("Autonomic ganglia (sym+para)"), P("Depolarisation of postganglionic neuron"), P("ACh, Nicotine"), P("Hexamethonium, Trimethaphan")], [P("Muscarinic M₁"), P("Metabotropic – Gq → ↑IP3/DAG"), P("CNS, gastric parietal cells"), P("↑ Gastric acid; CNS excitation"), P("ACh, Muscarine, McN-A-343"), P("Pirenzepine, Atropine")], [P("Muscarinic M₂"), P("Metabotropic – Gi → ↓cAMP"), P("Heart SA/AV node; presynaptic"), P("↓ HR, ↓ conduction velocity"), P("ACh, Muscarine"), P("Gallamine, Atropine")], [P("Muscarinic M₃"), P("Metabotropic – Gq → ↑IP3/DAG"), P("Smooth muscle, glands, iris"), P("Bronchoconstriction, ↑ secretions, miosis, bladder contraction"), P("ACh, Muscarine"), P("Atropine, Ipratropium")], ] story.append(build_table(ach, [2.8*cm,2.8*cm,3.0*cm,4.2*cm,2.6*cm,2.6*cm], C_TEAL, C_LTEAL, HexColor('#aacccc'))) story.append(Spacer(1,6)) # ── 2. ADRENERGIC ─────────────────────────────────────────────── story.append(sec_header("2. ADRENERGIC SYSTEM | Neurotransmitters: Noradrenaline (NA) / Adrenaline (A)", C_NAVY)) story.append(Spacer(1,3)) adr = [ [B("Receptor"), B("G-Protein / 2nd Msg"), B("Location"), B("Key Effects"), B("Agonists"), B("Antagonists")], [P("α₁"), P("Gq → ↑IP3/DAG → ↑Ca²⁺"), P("Vascular SM, iris (radial), sphincters"), P("Vasoconstriction, mydriasis, ejaculation, GI sphincter contraction"), P("NA, A; Phenylephrine"), P("Prazosin, Phentolamine")], [P("α₂"), P("Gi → ↓cAMP"), P("Presynaptic autoreceptors, platelets, CNS"), P("↓ NA release (negative feedback), platelet aggregation, sedation"), P("Clonidine, Methyldopa"), P("Yohimbine, Mirtazapine")], [P("β₁"), P("Gs → ↑cAMP → ↑PKA"), P("Heart (SA node, myocardium), JGA kidney"), P("↑ HR, ↑ contractility, ↑ renin secretion"), P("NA, A, Dobutamine"), P("Propranolol, Metoprolol, Atenolol")], [P("β₂"), P("Gs → ↑cAMP → ↑PKA"), P("Bronchi, uterus, vascular SM, liver"), P("Bronchodilation, uterine relaxation, vasodilation, glycogenolysis"), P("A, Salbutamol, Terbutaline"), P("Propranolol, Butoxamine")], [P("β₃"), P("Gs → ↑cAMP"), P("Adipose tissue, bladder detrusor"), P("Lipolysis, bladder relaxation"), P("Mirabegron"), P("—")], ] story.append(build_table(adr, [1.7*cm,2.8*cm,3.5*cm,4.2*cm,2.9*cm,2.9*cm], C_NAVY, C_LBLUE, HexColor('#aabbcc'))) story.append(Spacer(1,6)) # ── 3. DOPAMINERGIC ───────────────────────────────────────────── story.append(sec_header("3. DOPAMINERGIC SYSTEM | Neurotransmitter: Dopamine (DA)", C_PURPLE)) story.append(Spacer(1,3)) da = [ [B("Family"), B("Subtypes"), B("G-Protein"), B("CNS Pathways"), B("Key Functions"), B("Clinical Notes")], [P("D1-like"), P("D1, D5"), P("Gs → ↑cAMP\n(excitatory)"), P("Nigrostriatal\nMesocortical"), P("Motor control, cognition, reward"), P("D1 agonism – anti-Parkinson\nClozapine partial agonist")], [P("D2-like"), P("D2, D3, D4"), P("Gi → ↓cAMP\n(inhibitory)"), P("Mesolimbic\nTuberoinfundibular"), P("Reward, mood; prolactin inhibition; presynaptic autoreceptor"), P("D2 block → antipsychotics (haloperidol)\n↑ prolactin (galactorrhoea)")], ] story.append(build_table(da, [2.0*cm,2.0*cm,2.5*cm,3.0*cm,4.5*cm,4.0*cm], C_PURPLE, C_LPURP, HexColor('#cbb8e0'))) story.append(Spacer(1,6)) # ── 4. SEROTONERGIC ───────────────────────────────────────────── story.append(sec_header("4. SEROTONERGIC SYSTEM | Neurotransmitter: Serotonin (5-HT)", C_ORANGE)) story.append(Spacer(1,3)) ht = [ [B("Receptor"), B("Type"), B("Location"), B("Key Effects"), B("Clinical Relevance")], [P("5-HT1A"), P("Gi – metabotropic"), P("Raphe nuclei (somatodendritic autoreceptor), hippocampus"), P("↓ 5-HT firing; anxiolysis, antidepressant"), P("Buspirone (partial agonist) – anxiety; SSRIs desensitise 5-HT1A")], [P("5-HT1B/D"), P("Gi – metabotropic"), P("Presynaptic terminal, cranial blood vessels"), P("Vasoconstriction, ↓ CGRP release, migraine relief"), P("Triptans (agonist) – migraine")], [P("5-HT2A"), P("Gq – metabotropic"), P("Cortex, platelets, smooth muscle"), P("Hallucinations, platelet aggregation, vasoconstriction"), P("Atypical antipsychotics block 5-HT2A; LSD is agonist")], [P("5-HT3"), P("<b>Ionotropic</b> – Na⁺/K⁺"), P("GI tract (vagal afferents), area postrema, CNS"), P("Rapid depolarisation → nausea/vomiting, GI motility"), P("Ondansetron (antagonist) – anti-emetic")], [P("5-HT4"), P("Gs – metabotropic"), P("GI tract, CNS"), P("↑ GI motility, ↑ gastric emptying"), P("Metoclopramide, Mosapride – prokinetics")], ] story.append(build_table(ht, [2.2*cm,2.5*cm,3.5*cm,4.5*cm,5.3*cm], C_ORANGE, C_LORANG, HexColor('#e0c8a0'))) story.append(Spacer(1,6)) # ── 5. AMINO ACIDS ────────────────────────────────────────────── story.append(sec_header("5. AMINO ACID NEUROTRANSMITTERS | GABA (inhibitory) & Glutamate (excitatory)", C_GREEN)) story.append(Spacer(1,3)) aa = [ [B("NT"), B("Receptor"), B("Type / Ion"), B("Location"), B("Key Effects"), B("Clinical Relevance")], [P("<b>GABA</b>\n(inhibitory)"), P("GABAA"), P("Ionotropic – Cl⁻ channel → hyperpolarisation"), P("CNS widespread, spinal cord"), P("Fast inhibition; ↓ neuronal firing"), P("Benzodiazepines ↑ Cl⁻ opening <b>frequency</b>\nBarbiturates ↑ <b>duration</b>; Alcohol potentiates\nBicuculline – antagonist")], [P(""), P("GABAB"), P("Metabotropic – Gi → ↓cAMP, ↑K⁺ channel"), P("Pre- & postsynaptic CNS"), P("Slow/prolonged inhibition; ↓ NT release, muscle relaxation"), P("Baclofen (agonist) – spasticity\nPhaclofen – antagonist")], [P("<b>Glutamate</b>\n(excitatory)"), P("AMPA"), P("Ionotropic – Na⁺/K⁺ channel"), P("Widespread CNS synapses"), P("Fast depolarisation; major EPSP"), P("Perampanel (AMPA antagonist) – epilepsy\nCNQX – research antagonist")], [P(""), P("NMDA"), P("Ionotropic – Na⁺/K⁺/Ca²⁺ (Mg²⁺ block relieved by depolarisation)"), P("Cortex, hippocampus"), P("Slow Ca²⁺ entry; LTP, learning, memory; needs glutamate + glycine co-agonist"), P("Ketamine/PCP – antagonists (dissociation)\nMemantine – antagonist (Alzheimer's)")], [P(""), P("mGluR (I–VIII)"), P("Metabotropic – GPCR"), P("Pre & postsynaptic CNS"), P("Modulate plasticity, pain signalling, synaptic transmission"), P("mGluR5 antagonists under study – autism, anxiety, fragile-X")], ] aa_tbl = Table(aa, colWidths=[2.0*cm,1.8*cm,3.2*cm,2.8*cm,3.5*cm,4.7*cm], repeatRows=1) aa_style = [ ('BACKGROUND',(0,0),(-1,0),C_GREEN),('TEXTCOLOR',(0,0),(-1,0),colors.white), ('FONTNAME',(0,0),(-1,0),'Helvetica-Bold'), ('FONTSIZE',(0,0),(-1,-1),7.8), ('TOPPADDING',(0,0),(-1,-1),3),('BOTTOMPADDING',(0,0),(-1,-1),3), ('LEFTPADDING',(0,0),(-1,-1),4),('RIGHTPADDING',(0,0),(-1,-1),4), ('GRID',(0,0),(-1,-1),0.3,HexColor('#90c4a0')), ('VALIGN',(0,0),(-1,-1),'TOP'), ('BACKGROUND',(0,2),(-1,2),C_LGREEN), ('BACKGROUND',(0,4),(-1,4),C_LGREEN), ('BACKGROUND',(0,1),(0,2),HexColor('#e0f5e0')), # GABA rows ('BACKGROUND',(0,3),(0,5),HexColor('#e8ffe8')), # Glutamate rows ] aa_tbl.setStyle(TableStyle(aa_style)) story.append(aa_tbl) story.append(Spacer(1,6)) # ── 6. OTHER NTs ──────────────────────────────────────────────── story.append(sec_header("6. OTHER KEY NEUROTRANSMITTERS", C_RED)) story.append(Spacer(1,3)) oth = [ [B("Neurotransmitter"), B("Synthesis / Source"), B("Receptor(s)"), B("Key Role"), B("Clinical Notes")], [P("Noradrenaline (NA)"), P("Tyrosine → DOPA → DA → NA\n(dopamine β-hydroxylase)"), P("α₁, α₂, β₁, β₂\n(adrenoceptors)"), P("Arousal, attention, fight-or-flight, mood, blood pressure"), P("Reuptake blocked by TCAs, SNRIs\nMAO inhibited by MAOIs")], [P("Histamine"), P("Histidine → Histamine\n(histidine decarboxylase)"), P("H₁ (Gq), H₂ (Gs)\nH₃ (Gi – autoreceptor)"), P("Wakefulness (H₁), gastric acid secretion (H₂), neuroinflammation"), P("H₁ blockers – antihistamines, sedation\nH₂ blockers – ranitidine, cimetidine")], [P("Glycine"), P("Serine → Glycine"), P("Glycine receptor\n(Cl⁻ ionotropic)"), P("Inhibitory NT in spinal cord & brainstem"), P("Strychnine – antagonist (convulsions)\nTetanus toxin blocks glycine release")], [P("Nitric Oxide (NO)"), P("Arginine → NO\n(via nitric oxide synthase, NOS)"), P("Soluble guanylyl cyclase\n→ ↑ cGMP (diffusible gas)"), P("Vasodilation, penile erection, retrograde neurotransmission"), P("Sildenafil inhibits PDE5 → ↑ cGMP\nNitrates – NO donors (angina)")], [P("Endorphins / Enkephalins / Dynorphins"), P("Derived from POMC, proenkephalin precursors"), P("μ (mu), κ (kappa), δ (delta)\n– all Gi/Go GPCRs"), P("Analgesia, euphoria, respiratory depression, ↓ GI motility"), P("Morphine, codeine – agonists\nNaloxone, naltrexone – antagonists")], [P("Substance P"), P("Peptide from primary afferent neurons"), P("NK1 receptor (Gq)"), P("Pain transmission (primary afferents → dorsal horn), neurogenic inflammation"), P("Aprepitant (NK1 antagonist) – anti-emetic (chemotherapy)")], ] story.append(build_table(oth, [2.5*cm,3.0*cm,2.7*cm,3.8*cm,6.0*cm], C_RED, C_LRED, HexColor('#e0aaaa'))) story.append(Spacer(1,6)) # ── 7. RECEPTOR TYPE OVERVIEW ─────────────────────────────────── story.append(sec_header("7. RECEPTOR TYPES AT A GLANCE", HexColor('#4a4a6a'))) story.append(Spacer(1,3)) rt = [ [B("Type"), B("Mechanism"), B("Speed"), B("Key Examples")], [P("Ionotropic\n(Ligand-gated ion channels)"), P("NT binds → ion channel opens directly → immediate membrane potential change"), P("Milliseconds\n(fastest)"), P("Nicotinic (ACh), GABAA, AMPA, NMDA, 5-HT3, Glycine receptor")], [P("Metabotropic\n(G-protein coupled, GPCR)"), P("NT binds → G-protein activated → 2nd messenger cascade (cAMP, IP3/DAG, cGMP)"), P("Seconds–minutes\n(slower)"), P("Muscarinic, Adrenoceptors, GABAB, mGluR, Dopamine (D1–D5), 5-HT1/2/4, Opioid receptors")], [P("Receptor Tyrosine Kinases (RTKs)"), P("Ligand binds → autophosphorylation of tyrosine residues → kinase cascade"), P("Minutes–hours"), P("Insulin receptor, NGF receptor (TrkA), EGF receptor, growth factors")], [P("Nuclear / Intracellular Receptors"), P("Lipid-soluble ligand diffuses into cell → receptor–ligand complex acts as transcription factor"), P("Hours–days\n(gene expression)"), P("Steroid hormones (cortisol, oestrogen, testosterone), Thyroid hormone, Vitamin D")], ] rt_tbl = Table(rt, colWidths=[3.5*cm,6.0*cm,2.5*cm,6.0*cm], repeatRows=1) rt_style = [ ('BACKGROUND',(0,0),(-1,0),HexColor('#4a4a6a')),('TEXTCOLOR',(0,0),(-1,0),colors.white), ('FONTNAME',(0,0),(-1,0),'Helvetica-Bold'), ('FONTSIZE',(0,0),(-1,-1),7.8), ('TOPPADDING',(0,0),(-1,-1),3),('BOTTOMPADDING',(0,0),(-1,-1),3), ('LEFTPADDING',(0,0),(-1,-1),4),('RIGHTPADDING',(0,0),(-1,-1),4), ('GRID',(0,0),(-1,-1),0.3,HexColor('#bbbbcc')), ('VALIGN',(0,0),(-1,-1),'TOP'), ('BACKGROUND',(0,2),(-1,2),HexColor('#e8e8f5')), ('BACKGROUND',(0,4),(-1,4),HexColor('#e8e8f5')), ] rt_tbl.setStyle(TableStyle(rt_style)) story.append(rt_tbl) story.append(Spacer(1,6)) # ── 8. MNEMONICS ──────────────────────────────────────────────── story.append(sec_header("8. MNEMONICS & HIGH-YIELD FACTS", HexColor('#2e6b35'))) story.append(Spacer(1,3)) mn = [ [B("Mnemonic / Key Fact"), B("Detail")], [P("β₁ = Heart (1 heart)"), P("β₁ receptors mainly on the heart → ↑HR and ↑contractility; blocked by metoprolol, atenolol")], [P("β₂ = Lungs (2 lungs)"), P("β₂ receptors on bronchi → bronchodilation; also uterine relaxation; activated by salbutamol")], [P("GABAA Benzo vs Barb"), P("Benzodiazepines ↑ Cl⁻ channel opening <b>frequency</b>; Barbiturates ↑ <b>duration</b> – both enhance GABA effect")], [P("NMDA – 2 keys + voltage"), P("Needs both <b>glutamate AND glycine</b> (co-agonist) + membrane depolarisation to remove Mg²⁺ block before Ca²⁺ enters")], [P("DA pathways – \"MTML\""), P("<b>M</b>esolimbic (reward, psychosis), <b>M</b>esocortical (cognition, negative symptoms), <b>T</b>uberoinfundibular (prolactin inhibition), ni<b>G</b>rostriatal (motor control)")], [P("5-HT3 = Odd one out"), P("Only <b>ionotropic</b> serotonin receptor; targeted by ondansetron for chemotherapy-induced nausea")], [P("Nicotinic = Na⁺ in fast"), P("Nicotinic receptors are ionotropic Na⁺/K⁺ channels → rapid depolarisation at NMJ (N1) and autonomic ganglia (N2)")], [P("NO → cGMP (Sildenafil)"), P("Sildenafil inhibits PDE5 → prevents cGMP breakdown → sustained vasodilation in corpus cavernosum")], [P("Opioids = Gi (all 3 types)"), P("μ, κ, δ opioid receptors all couple to Gi/Go → ↓ cAMP, ↑ K⁺ outflow, ↓ Ca²⁺ entry → analgesia, sedation")], [P("Atropine blocks all M types"), P("Atropine is a non-selective competitive muscarinic antagonist → tachycardia, mydriasis, ↓ secretions, bronchodilation")], ] mn_tbl = Table(mn, colWidths=[4.5*cm,13.5*cm], repeatRows=1) mn_tbl.setStyle(TableStyle([ ('BACKGROUND',(0,0),(-1,0),HexColor('#2e6b35')), ('TEXTCOLOR',(0,0),(-1,0),colors.white), ('FONTNAME',(0,0),(-1,0),'Helvetica-Bold'), ('FONTSIZE',(0,0),(-1,-1),7.8), ('TOPPADDING',(0,0),(-1,-1),3),('BOTTOMPADDING',(0,0),(-1,-1),3), ('LEFTPADDING',(0,0),(-1,-1),5),('RIGHTPADDING',(0,0),(-1,-1),4), ('GRID',(0,0),(-1,-1),0.3,HexColor('#90c090')), ('VALIGN',(0,0),(-1,-1),'TOP'), ('BACKGROUND',(0,1),(-1,1),HexColor('#d5eed5')), ('BACKGROUND',(0,3),(-1,3),HexColor('#d5eed5')), ('BACKGROUND',(0,5),(-1,5),HexColor('#d5eed5')), ('BACKGROUND',(0,7),(-1,7),HexColor('#d5eed5')), ('BACKGROUND',(0,9),(-1,9),HexColor('#d5eed5')), ('FONTNAME',(0,1),(0,-1),'Helvetica-Bold'), ])) story.append(mn_tbl) story.append(Spacer(1,8)) # FOOTER story.append(HRFlowable(width="100%", thickness=0.5, color=C_MGRAY, spaceAfter=3)) story.append(P( "Sources: Costanzo Physiology 7e (Table 2.2) | Neuroscience: Exploring the Brain 5e (Table 6.1) | " "Guyton & Hall Textbook of Medical Physiology | Goodman & Gilman's Pharmacological Basis of Therapeutics | " "Stahl's Essential Psychopharmacology | Kaplan & Sadock's Synopsis of Psychiatry", foot_s )) doc.build(story) print("Done:", output_path) PYEOF
| Section | Content |
|---|---|
| 1. Cholinergic | Nicotinic N₁/N₂ and Muscarinic M₁/M₂/M₃ receptors with agonists & antagonists |
| 2. Adrenergic | α₁, α₂, β₁, β₂, β₃ receptors – G-proteins, locations, effects, drugs |
| 3. Dopaminergic | D1-like vs D2-like families, pathways, antipsychotic relevance |
| 4. Serotonergic | 5-HT1A/1B/2A/3/4 – includes the ionotropic exception (5-HT3) |
| 5. Amino Acids | GABAA, GABAB, AMPA, NMDA, mGluR with benzodiazepine/ketamine/memantine notes |
| 6. Others | Noradrenaline, Histamine, Glycine, NO, Opioids, Substance P |
| 7. Receptor Types | Ionotropic vs Metabotropic vs RTK vs Nuclear – speed comparison |
| 8. Mnemonics | 10 high-yield memory aids (β₁=heart, GABAA Benzo vs Barb, NMDA 2-key rule, etc.) |
Neurotransmitters Receptors QRC
PDF Document · PDF
Search for recent guidelines on psychopharmacology receptor interactions physiology 1st year mbbs
psychopharmacology neurotransmitter receptor pharmacology review
receptor pharmacology drug interactions CNS mechanisms
psychopharmacology receptor interactions guidelines 2023 2024 medical education MBBS pharmacology
autonomic nervous system receptor pharmacology teaching undergraduate
neurotransmitter receptor CNS pharmacology review update
GABA glutamate receptor pharmacology clinical relevance
PMID: 39465449
PMID: 39810555
PMID: 40340060
BAP WFSBP psychopharmacology guidelines 2023 2024 receptor mechanisms treatment
| Guideline Body | Relevant 2023-2025 Output |
|---|---|
| WFSBP 2023 | Anxiety/OCD/PTSD treatment guidelines v3 - reinforces SSRIs (5-HT reuptake block), benzodiazepines (GABAA), SNRIs as first-line |
| NICE (UK) | Depression (2022, updated 2024): SSRIs first-line; validates 5-HT transporter pharmacology |
| APA | Schizophrenia guidelines 2021: D2/5-HT2A dual block (SGAs) preferred over D2-only (FGAs) |
| BAP | Psychopharmacology guidelines emphasise receptor selectivity and side-effect profiles based on receptor binding profiles |