u pls teach me according to the paper setter of neet2027 from ncert
| Animal | Respiratory Organ |
|---|---|
| Insects | Tracheae (tracheal system) |
| Fish | Gills |
| Frogs | Lungs + Moist skin (cutaneous) |
| Reptiles / Birds / Mammals | Lungs |
NEET tip: Frog does cutaneous respiration - direct NEET MCQ target!
NEET tip: "3 lobes right, 2 lobes left" is a direct 1-marker.
Key law: Inspiration occurs when intrapulmonary pressure < atmospheric pressure. Expiration when intrapulmonary pressure > atmospheric pressure.

| Volume | Full Name | Value | Definition |
|---|---|---|---|
| TV | Tidal Volume | 500 mL | Air inspired/expired per normal breath |
| IRV | Inspiratory Reserve Volume | 2500-3000 mL | Extra air inhaled after normal inspiration |
| ERV | Expiratory Reserve Volume | 1000-1100 mL | Extra air expelled after normal expiration |
| RV | Residual Volume | 1100-1200 mL | Air left in lungs after forceful expiration |
| Capacity | Formula | Value | Key Point |
|---|---|---|---|
| IC (Inspiratory Capacity) | TV + IRV | ~3500 mL | Total air breathable after normal expiration |
| FRC (Functional Residual Capacity) | ERV + RV | ~2300 mL | Air remaining after normal expiration |
| VC (Vital Capacity) | IRV + TV + ERV | ~4600 mL | Maximum breathable air |
| TLC (Total Lung Capacity) | VC + RV | ~5800 mL | Total lung air at max inspiration |
NEET 2027 expected MCQ: "Which volume cannot be measured by spirometry?" β RV (Residual Volume) - because it can never be fully expelled!
| Gas | Alveoli (pOβ/pCOβ) | Oxygenated Blood | Deoxygenated Blood | Tissues |
|---|---|---|---|---|
| Oβ | 104 mmHg | 95 mmHg | 40 mmHg | 40 mmHg |
| COβ | 40 mmHg | 40 mmHg | 45 mmHg | 45 mmHg |
NEET tip: Gases always move from HIGH partial pressure to LOW - simple diffusion!
| Form | Percentage |
|---|---|
| As bicarbonate (HCOββ») in plasma | 70% (most important) |
| As carbaminohaemoglobin (HbCOβ) | 20-25% |
| Dissolved in plasma | 7% |
NEET 2027 expected MCQ: "What % of COβ is transported as bicarbonate?" β 70%
NEET tip: COβ is the PRIMARY driver of breathing - not oxygen!
| Disorder | Key Facts for NEET |
|---|---|
| Asthma | Inflammation + spasm of bronchioles; wheezing sound; triggered by allergens |
| Emphysema | Destruction of alveolar walls β reduced surface area for exchange; caused mainly by smoking; barrel chest |
| Occupational Respiratory Disorders | Silicosis (silica dust - stone workers), Asbestosis (asbestos fibres - miners), Siderosis (iron particles) |
NEET 2027 expected MCQ: "Which disorder involves destruction of alveolar walls?" β Emphysema "Silicosis is caused by?" β Silicon dioxide dust in stone cutting/mining workers.
think u r paper setter of neet 2027..and i am ur studendent i need to get 360/360 in biology
NEET 2027 biology syllabus unit 1 diversity living world chapter wise NTA
i have exam on this topic
i need summary
| Animal | Organ |
|---|---|
| Insects | Tracheae |
| Fish | Gills |
| Frog | Lungs + Moist skin |
| Birds/Mammals | Lungs |
| Process | Muscles | Volume | Pressure | Air |
|---|---|---|---|---|
| Inspiration | Diaphragm contracts + External intercostals | β | β | Flows IN |
| Expiration | Diaphragm relaxes (passive at rest) | β | β | Flows OUT |
| Volume/Capacity | Value | Formula |
|---|---|---|
| TV (Tidal Volume) | 500 mL | - |
| IRV | 2500-3000 mL | - |
| ERV | 1000-1100 mL | - |
| RV | 1100-1200 mL | Cannot be measured by spirometer β οΈ |
| VC (Vital Capacity) | ~4600 mL | IRV + TV + ERV |
| IC | ~3500 mL | TV + IRV |
| FRC | ~2300 mL | ERV + RV |
| TLC | ~5800 mL | VC + RV |
| Gas | Alveoli | Blood | Tissues |
|---|---|---|---|
| pOβ | 104 mmHg | 95 mmHg | 40 mmHg |
| pCOβ | 40 mmHg | 40 mmHg | 45 mmHg |
| Form | % |
|---|---|
| Bicarbonate HCOββ» in plasma | 70% β most |
| Carbaminohaemoglobin (HbCOβ) | 20-25% |
| Dissolved in plasma | 7% |
COβ binds globin (protein) part of Hb. Oβ binds haem (FeΒ²βΊ) part. β οΈ
| Disorder | Cause | Clue Word |
|---|---|---|
| Asthma | Allergens β bronchiole spasm | Wheezing |
| Emphysema | Smoking β alveolar wall destruction | Barrel chest, β surface area |
| Silicosis | Silicon dioxide dust (miners/stone cutters) | Occupational |
| Asbestosis | Asbestos fibres | Occupational |
β This entire chapter = approximately 3-4 marks in NEET every year. Memorise the values in bold - those are direct 1-mark questions. Ready for the next topic? Say "Next"!
ncert one liner for these topics
| # | One-Liner |
|---|---|
| β | RV = cannot be measured by spirometer |
| β | Oβ binds haem; COβ binds globin |
| β | COβ mainly travels as HCOββ» (70%) |
| β | Primary stimulus for breathing = COβ rise |
| β | Emphysema = alveolar wall destruction by smoking |
| β | Respiratory centre = medulla oblongata |
| β | Right lung = 3 lobes; Left = 2 lobes |
| β | Inspiration = active; Expiration = passive |
| β | Normal TV = 500 mL; TLC = 5800 mL |
| β | 1 Hb binds 4 Oβ molecules |
π 69 one-liners = the entire chapter. If you can recall all 69 without looking, this chapter is done for NEET 2027. Want me to do the same for Body Fluids & Circulation next? Just say "Next topic"! π―
pls prepare pdf of notes and mcqs
ls /home/daytona/workspace/ 2>/dev/null || mkdir -p /home/daytona/workspace
mkdir -p /home/daytona/workspace/neet2027 && python3 -c "import reportlab; print('reportlab ok')" && python3 -c "from reportlab.lib.pagesizes import A4; print('A4 ok')"
~/neet2027/make_pdf.py
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import cm
from reportlab.platypus import (SimpleDocTemplate, Paragraph, Spacer, Table,
TableStyle, HRFlowable, PageBreak, KeepTogether)
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
from reportlab.platypus import ListFlowable, ListItem
OUTPUT = "/home/daytona/workspace/neet2027/NEET2027_Breathing_Respiration.pdf"
doc = SimpleDocTemplate(
OUTPUT, pagesize=A4,
rightMargin=1.8*cm, leftMargin=1.8*cm,
topMargin=1.8*cm, bottomMargin=1.8*cm
)
# ββ Colour palette ββββββββββββββββββββββββββββββββββββββββββββββ
C_DARK = colors.HexColor("#1a237e") # deep indigo (headings)
C_MED = colors.HexColor("#1565c0") # blue (sub-headings)
C_ACCENT = colors.HexColor("#e53935") # red (trap / star lines)
C_GREEN = colors.HexColor("#2e7d32") # green (MCQ correct)
C_BG1 = colors.HexColor("#e8eaf6") # light indigo bg
C_BG2 = colors.HexColor("#fff9c4") # light yellow bg (traps)
C_BG3 = colors.HexColor("#e8f5e9") # light green (one-liners)
C_BLACK = colors.HexColor("#212121")
C_GREY = colors.HexColor("#616161")
C_WHITE = colors.white
styles = getSampleStyleSheet()
def S(name, **kw):
return ParagraphStyle(name, **kw)
# ββ Custom styles ββββββββββββββββββββββββββββββββββββββββββββββββ
TITLE = S("TITLE", fontName="Helvetica-Bold", fontSize=20, textColor=C_WHITE,
alignment=TA_CENTER, spaceAfter=4)
SUBTITLE = S("SUBTITLE", fontName="Helvetica", fontSize=11, textColor=C_WHITE,
alignment=TA_CENTER, spaceAfter=2)
H1 = S("H1", fontName="Helvetica-Bold", fontSize=14, textColor=C_WHITE,
spaceBefore=10, spaceAfter=4, leftIndent=0)
H2 = S("H2", fontName="Helvetica-Bold", fontSize=11, textColor=C_MED,
spaceBefore=8, spaceAfter=3)
H3 = S("H3", fontName="Helvetica-Bold", fontSize=10, textColor=C_DARK,
spaceBefore=5, spaceAfter=2)
BODY = S("BODY", fontName="Helvetica", fontSize=9, textColor=C_BLACK,
leading=14, spaceAfter=2, alignment=TA_JUSTIFY)
BULLET = S("BULLET", fontName="Helvetica", fontSize=9, textColor=C_BLACK,
leading=13, leftIndent=14, spaceAfter=2)
TRAP = S("TRAP", fontName="Helvetica-BoldOblique", fontSize=9,
textColor=C_ACCENT, leading=13, leftIndent=10, spaceAfter=2)
ONELINER = S("ONELINER", fontName="Helvetica", fontSize=8.5, textColor=C_BLACK,
leading=13, leftIndent=8, spaceAfter=1)
MCQ_Q = S("MCQ_Q", fontName="Helvetica-Bold", fontSize=9.5, textColor=C_DARK,
leading=14, spaceBefore=6, spaceAfter=2)
MCQ_OPT = S("MCQ_OPT", fontName="Helvetica", fontSize=9, textColor=C_BLACK,
leading=12, leftIndent=16, spaceAfter=1)
MCQ_ANS = S("MCQ_ANS", fontName="Helvetica-Bold", fontSize=9,
textColor=C_GREEN, leading=12, leftIndent=16, spaceAfter=4)
FOOTER = S("FOOTER", fontName="Helvetica-Oblique", fontSize=8,
textColor=C_GREY, alignment=TA_CENTER)
# ββ Helper flowables βββββββββββββββββββββββββββββββββββββββββββββ
def colored_header(text, sub=""):
data = [[Paragraph(text, TITLE)]]
if sub:
data.append([Paragraph(sub, SUBTITLE)])
t = Table(data, colWidths=[17.4*cm])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), C_DARK),
("ROUNDEDCORNERS", [6]),
("TOPPADDING", (0,0), (-1,-1), 10),
("BOTTOMPADDING", (0,0), (-1,-1), 10),
("LEFTPADDING", (0,0), (-1,-1), 10),
("RIGHTPADDING", (0,0), (-1,-1), 10),
]))
return t
def section_banner(text):
t = Table([[Paragraph(text, H1)]], colWidths=[17.4*cm])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), C_MED),
("TOPPADDING", (0,0), (-1,-1), 6),
("BOTTOMPADDING", (0,0), (-1,-1), 6),
("LEFTPADDING", (0,0), (-1,-1), 10),
]))
return t
def trap_box(text):
t = Table([[Paragraph("β οΈ PAPER SETTER TRAP: " + text, TRAP)]], colWidths=[17.4*cm])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), C_BG2),
("BOX", (0,0), (-1,-1), 1, C_ACCENT),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 8),
]))
return t
def simple_table(headers, rows, col_w=None):
data = [headers] + rows
if col_w is None:
col_w = [17.4*cm / len(headers)] * len(headers)
styled_data = []
for i, row in enumerate(data):
styled_row = []
for cell in row:
if i == 0:
styled_row.append(Paragraph(str(cell),
S("TH", fontName="Helvetica-Bold", fontSize=8.5,
textColor=C_WHITE, leading=12)))
else:
styled_row.append(Paragraph(str(cell),
S("TD", fontName="Helvetica", fontSize=8.5,
textColor=C_BLACK, leading=12)))
styled_data.append(styled_row)
t = Table(styled_data, colWidths=col_w)
ts = TableStyle([
("BACKGROUND", (0,0), (-1,0), C_DARK),
("ROWBACKGROUNDS", (0,1), (-1,-1), [C_WHITE, C_BG1]),
("GRID", (0,0), (-1,-1), 0.5, colors.HexColor("#9fa8da")),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING", (0,0), (-1,-1), 4),
("LEFTPADDING", (0,0), (-1,-1), 6),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
])
t.setStyle(ts)
return t
def hr():
return HRFlowable(width="100%", thickness=0.5,
color=colors.HexColor("#c5cae9"), spaceAfter=4)
def sp(n=6):
return Spacer(1, n)
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# BUILD CONTENT
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story = []
# ββ COVER ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story.append(sp(40))
story.append(colored_header(
"NEET 2027 | UNIT 5: HUMAN PHYSIOLOGY",
"Breathing & Respiration β Complete Notes + MCQs"
))
story.append(sp(10))
cover_info = [
["Chapter", "Breathing & Respiration (NCERT Class 11, Ch 17)"],
["Exam", "NEET 2027"],
["Expected Marks", "3β4 marks (direct from this chapter)"],
["Includes", "Full Notes Β· 69 NCERT One-Liners Β· 25 MCQs with Answers"],
]
ci_table = Table(cover_info, colWidths=[5*cm, 12.4*cm])
ci_table.setStyle(TableStyle([
("BACKGROUND", (0,0), (0,-1), C_BG1),
("FONTNAME", (0,0), (0,-1), "Helvetica-Bold"),
("FONTNAME", (1,0), (1,-1), "Helvetica"),
("FONTSIZE", (0,0), (-1,-1), 9.5),
("GRID", (0,0), (-1,-1), 0.5, colors.HexColor("#9fa8da")),
("TOPPADDING", (0,0), (-1,-1), 6),
("BOTTOMPADDING", (0,0), (-1,-1), 6),
("LEFTPADDING", (0,0), (-1,-1), 8),
]))
story.append(ci_table)
story.append(PageBreak())
# ββββββββββββββββββββββββββββββββββββ
# PART 1: COMPLETE NOTES
# ββββββββββββββββββββββββββββββββββββ
story.append(section_banner("PART 1: COMPLETE NOTES"))
story.append(sp(8))
# --- 1. RESPIRATORY ORGANS ---
story.append(Paragraph("1. RESPIRATORY ORGANS IN ANIMALS (Recall Only)", H2))
story.append(hr())
headers = ["Animal", "Respiratory Organ", "Special Note"]
rows = [
["Insects", "Tracheae (tracheal system)", "β"],
["Earthworm", "Moist skin (cutaneous)", "β"],
["Fish", "Gills", "β"],
["Frog (tadpole)", "Gills", "Ammonotelic"],
["Frog (adult)", "Lungs + Moist skin", "Ureotelic β changes at metamorphosis!"],
["Reptiles / Birds / Mammals", "Lungs", "β"],
]
story.append(simple_table(headers, rows, [4*cm, 6*cm, 7.4*cm]))
story.append(sp(4))
story.append(trap_box("Adult frog uses BOTH lungs + moist skin. Tadpole uses gills β classic NEET trap!"))
story.append(sp(8))
# --- 2. HUMAN RESPIRATORY SYSTEM ---
story.append(Paragraph("2. HUMAN RESPIRATORY SYSTEM β STRUCTURE", H2))
story.append(hr())
story.append(Paragraph(
"<b>Pathway:</b> Nostrils β Nasal cavity β Pharynx β Larynx β "
"Trachea β Primary Bronchi β Bronchioles β <b>Alveoli</b>", BODY))
story.append(sp(4))
key_points = [
("Trachea", "Supported by <b>incomplete C-shaped cartilage rings</b> (open side faces oesophagus)"),
("Epiglottis", "Cartilage flap; prevents food entry into trachea"),
("Lung lobes", "<b>Right = 3 lobes; Left = 2 lobes</b> (cardiac notch on left for heart)"),
("Alveoli wall", "<b>Simple squamous epithelium</b> (one cell thick) for rapid gas exchange"),
("Pleural membrane", "Double-layered; pleural fluid reduces friction"),
("Larynx", "Voice box; contains vocal cords"),
]
kp_rows = [[k, v] for k, v in key_points]
story.append(simple_table(["Structure", "Key Fact"], kp_rows, [4*cm, 13.4*cm]))
story.append(sp(8))
# --- 3. MECHANISM OF BREATHING ---
story.append(Paragraph("3. MECHANISM OF BREATHING", H2))
story.append(hr())
mech_rows = [
["Inspiration", "Diaphragm contracts + flattens;\nExternal intercostals contract;\nRibs move up + outward",
"β Volume β β Pressure", "ACTIVE process"],
["Expiration\n(at rest)", "Diaphragm relaxes (domes up);\nRibs move down + inward",
"β Volume β β Pressure", "PASSIVE process"],
["Forced\nExpiration", "Internal intercostals +\nAbdominal muscles contract",
"ββ Volume", "ACTIVE process"],
]
story.append(simple_table(["Process", "Muscles", "Volume/Pressure", "Type"],
mech_rows, [3*cm, 5.5*cm, 4.5*cm, 4.4*cm]))
story.append(sp(4))
story.append(trap_box("Normal expiration is PASSIVE. Only FORCED expiration is active."))
story.append(sp(8))
# --- 4. RESPIRATORY VOLUMES ---
story.append(Paragraph("4. RESPIRATORY VOLUMES & CAPACITIES", H2))
story.append(hr())
vol_rows = [
["TV β Tidal Volume", "500 mL", "β", "Air per normal breath"],
["IRV β Inspiratory Reserve Volume", "2500β3000 mL", "β", "Extra air after normal inspiration"],
["ERV β Expiratory Reserve Volume", "1000β1100 mL", "β", "Extra air after normal expiration"],
["RV β Residual Volume", "1100β1200 mL", "β", "Cannot be measured by spirometer β οΈ"],
["IC β Inspiratory Capacity", "~3500 mL", "TV + IRV", "Max air breathed in from FRC"],
["FRC β Functional Residual Capacity", "~2300 mL", "ERV + RV", "Air after normal expiration"],
["VC β Vital Capacity", "~4600 mL", "IRV + TV + ERV", "Maximum movable air"],
["TLC β Total Lung Capacity", "~5800 mL", "VC + RV", "Max air in lungs"],
]
story.append(simple_table(["Volume / Capacity", "Value", "Formula", "Definition"],
vol_rows, [5.5*cm, 2.5*cm, 3*cm, 6.4*cm]))
story.append(sp(4))
story.append(trap_box("RV, FRC, and TLC cannot be measured by a spirometer (all contain RV)."))
story.append(sp(8))
# --- 5. EXCHANGE OF GASES ---
story.append(Paragraph("5. EXCHANGE OF GASES", H2))
story.append(hr())
pp_rows = [
["pOβ", "104 mmHg", "95 mmHg", "40 mmHg", "40 mmHg"],
["pCOβ", "40 mmHg", "40 mmHg", "45 mmHg", "45 mmHg"],
]
story.append(simple_table(
["Gas", "Alveoli", "Arterial Blood", "Venous Blood", "Tissues"],
pp_rows, [2.5*cm, 3*cm, 3.5*cm, 3.5*cm, 4.9*cm]))
story.append(sp(4))
story.append(Paragraph("β’ Gases diffuse from <b>HIGH β LOW</b> partial pressure (simple diffusion).", BULLET))
story.append(Paragraph("β’ Oβ moves: Alveoli β Blood β Tissues. COβ moves: Tissues β Blood β Alveoli.", BULLET))
story.append(Paragraph("β’ COβ solubility in blood is <b>20β25 times higher</b> than Oβ.", BULLET))
story.append(sp(8))
# --- 6. TRANSPORT OF GASES ---
story.append(Paragraph("6. TRANSPORT OF GASES", H2))
story.append(hr())
story.append(Paragraph("<b>A. Oxygen Transport:</b>", H3))
o2_rows = [
["As Oxyhaemoglobin (HbOβ) in RBCs", "97%", "Binds to HAEM (FeΒ²βΊ) part of Hb"],
["Dissolved in plasma", "3%", "Minor fraction"],
]
story.append(simple_table(["Form", "%", "Note"], o2_rows, [7*cm, 3*cm, 7.4*cm]))
story.append(sp(4))
story.append(Paragraph("β’ 1 Hb molecule binds <b>4 Oβ molecules</b> (one per haem group).", BULLET))
story.append(Paragraph("β’ <b>Bohr Effect:</b> βCOβ / βHβΊ / βTemp at tissues β Hb releases Oβ more easily.", BULLET))
story.append(sp(4))
story.append(Paragraph("<b>B. COβ Transport:</b>", H3))
co2_rows = [
["Bicarbonate ions (HCOββ») in plasma", "70%", "MOST IMPORTANT form β
"],
["Carbaminohaemoglobin (HbCOβ)", "20β25%", "Binds to GLOBIN (protein) part"],
["Dissolved in plasma", "7%", "Smallest fraction"],
]
story.append(simple_table(["Form", "%", "Note"], co2_rows, [7*cm, 3*cm, 7.4*cm]))
story.append(sp(4))
story.append(trap_box(
"Oβ binds HAEM (FeΒ²βΊ). COβ binds GLOBIN (protein). Never mix these up!"))
story.append(sp(4))
story.append(Paragraph(
"β’ <b>Chloride Shift (Hamburger's phenomenon):</b> HCOββ» exits RBC β Clβ» enters RBC "
"to maintain electrical neutrality.", BULLET))
story.append(Paragraph(
"β’ Enzyme <b>carbonic anhydrase</b> in RBCs: COβ + HβO β HβCOβ β HβΊ + HCOββ»", BULLET))
story.append(sp(8))
# --- 7. REGULATION ---
story.append(Paragraph("7. REGULATION OF RESPIRATION", H2))
story.append(hr())
reg_rows = [
["Respiratory rhythm centre", "Medulla oblongata", "Primary breathing centre"],
["Pneumotaxic centre", "Pons", "Moderates inspiration; limits respiratory rate"],
["Chemoreceptors", "Medulla, Carotid body, Aortic arch",
"Detect βCOβ, βpH β stimulate breathing"],
]
story.append(simple_table(["Centre", "Location", "Function"],
reg_rows, [5*cm, 5*cm, 7.4*cm]))
story.append(sp(4))
story.append(trap_box(
"PRIMARY stimulus for breathing = RISE IN COβ, not fall in Oβ!"))
story.append(sp(8))
# --- 8. DISORDERS ---
story.append(Paragraph("8. DISORDERS OF RESPIRATION", H2))
story.append(hr())
dis_rows = [
["Asthma", "Allergens", "Bronchiole inflammation + spasm", "Wheezing"],
["Emphysema", "Cigarette smoking (mainly)",
"Alveolar wall destruction β β gas exchange surface", "Barrel chest"],
["Silicosis", "Silicon dioxide dust (miners, stone cutters)",
"Lung tissue fibrosis", "Occupational"],
["Asbestosis", "Asbestos fibres (mine/ship workers)",
"Lung tissue fibrosis", "Occupational"],
["Siderosis", "Iron dust particles", "Lung tissue inflammation", "Occupational"],
]
story.append(simple_table(["Disorder", "Cause", "Pathology", "Key Word"],
dis_rows, [3*cm, 5*cm, 6*cm, 3.4*cm]))
story.append(PageBreak())
# ββββββββββββββββββββββββββββββββββββ
# PART 2: 69 NCERT ONE-LINERS
# ββββββββββββββββββββββββββββββββββββ
story.append(section_banner("PART 2: 69 NCERT ONE-LINERS (Every Line = 1 MCQ)"))
story.append(sp(8))
sections_oneliners = [
("RESPIRATORY ORGANS", [
"Insects breathe through tracheae (tracheal system).",
"Aquatic animals like fish use gills for respiration.",
"Earthworm and frog use moist skin (cutaneous) for respiration.",
"Adult frog uses both lungs and moist skin; tadpole uses gills.",
"Higher vertebrates (reptiles, birds, mammals) use lungs.",
]),
("HUMAN RESPIRATORY SYSTEM", [
"The respiratory tract begins at the nostrils and ends at the alveoli.",
"Larynx is also called the voice box; contains vocal cords.",
"Epiglottis is a cartilaginous flap that prevents food from entering the trachea.",
"Trachea is supported by incomplete C-shaped cartilaginous rings (open side faces oesophagus).",
"Right lung has 3 lobes; left lung has 2 lobes (to accommodate heart). β
",
"Lungs are covered by a double-layered membrane called the pleural membrane.",
"Pleural fluid reduces friction between the lungs and thoracic wall.",
"Alveoli are the primary sites of gas exchange in humans.",
"Alveolar walls are made of simple squamous epithelium (one cell thick).",
"The lungs are situated in the thoracic cavity surrounded by ribs.",
]),
("MECHANISM OF BREATHING", [
"Breathing is also called pulmonary ventilation.",
"Inspiration is an active process; expiration is passive at rest. β
",
"During inspiration, the diaphragm contracts and flattens.",
"During inspiration, external intercostal muscles contract β ribs move upward and outward.",
"Inspiration occurs when intrapulmonary pressure falls below atmospheric pressure.",
"Expiration occurs when intrapulmonary pressure rises above atmospheric pressure.",
"Normal breathing rate in humans = 12β16 breaths per minute.",
"Pressure difference during breathing = 1β3 mmHg.",
"Forced expiration involves contraction of internal intercostal muscles and abdominal muscles.",
]),
("RESPIRATORY VOLUMES & CAPACITIES", [
"Tidal Volume (TV) = volume of air inspired or expired in one normal breath = 500 mL. β
",
"Inspiratory Reserve Volume (IRV) = additional air inspired after normal inspiration = 2500β3000 mL.",
"Expiratory Reserve Volume (ERV) = additional air expired after normal expiration = 1000β1100 mL.",
"Residual Volume (RV) = air remaining in lungs after maximum expiration = 1100β1200 mL.",
"RV cannot be measured by a spirometer. β
",
"Vital Capacity (VC) = IRV + TV + ERV = ~4600 mL. β
",
"Total Lung Capacity (TLC) = VC + RV = ~5800 mL.",
"Inspiratory Capacity (IC) = TV + IRV = ~3500 mL.",
"Functional Residual Capacity (FRC) = ERV + RV = ~2300 mL.",
]),
("EXCHANGE OF GASES", [
"Partial pressure of Oβ in alveoli = 104 mmHg; in deoxygenated blood = 40 mmHg. β
",
"Partial pressure of COβ in alveoli = 40 mmHg; in deoxygenated blood = 45 mmHg. β
",
"pOβ in tissues = 40 mmHg; pCOβ in tissues = 45 mmHg.",
"Gases always diffuse from region of higher partial pressure to lower partial pressure.",
"Oβ moves: alveoli β blood β tissues.",
"COβ moves: tissues β blood β alveoli.",
"Solubility of COβ is 20β25 times higher than Oβ in blood.",
"Gas exchange surface in alveoli is thin to allow rapid diffusion.",
]),
("TRANSPORT OF GASES", [
"97% of Oβ is transported as oxyhaemoglobin (HbOβ) in RBCs. β
",
"3% of Oβ is transported in dissolved form in plasma.",
"One molecule of haemoglobin binds 4 molecules of Oβ (one per haem group). β
",
"Oβ binds to the haem (FeΒ²βΊ) part of haemoglobin. β
",
"Bohr effect: βCOβ or βHβΊ decreases affinity of Hb for Oβ (Oβ released to tissues).",
"70% of COβ is transported as bicarbonate ions (HCOββ») in plasma. β
",
"20β25% of COβ is transported as carbaminohaemoglobin (HbCOβ).",
"7% of COβ is dissolved directly in plasma.",
"COβ binds to the globin (protein) part of haemoglobin β NOT the haem. β
",
"Chloride shift (Hamburger's phenomenon): HCOββ» exits RBC β Clβ» enters RBC.",
"Enzyme carbonic anhydrase in RBCs catalyses: COβ + HβO β HβCOβ β HβΊ + HCOββ».",
"At lungs, low COβ β reaction reverses β COβ released β exhaled.",
]),
("REGULATION OF RESPIRATION", [
"Respiratory rhythm centre is located in the medulla oblongata. β
",
"Pneumotaxic centre in the pons moderates the function of respiratory rhythm centre.",
"Rise in COβ (not fall in Oβ) is the primary stimulus for breathing. β
",
"Chemoreceptors in medulla, carotid body, and aortic arch detect changes in COβ and HβΊ.",
"A small rise in COβ or HβΊ in blood significantly increases breathing rate.",
"Oxygen levels affect breathing only when pOβ drops very significantly (hypoxia).",
]),
("DISORDERS OF RESPIRATION", [
"Asthma = inflammation and spasm of bronchioles; caused by allergens; produces wheezing sound.",
"Emphysema = chronic disorder where alveolar walls are destroyed β reduced gas exchange. β
",
"Main cause of emphysema = cigarette smoking. β
",
"Emphysema patients develop a barrel-shaped chest due to air trapping.",
"Occupational respiratory disorders are caused by long-term inhalation of dust particles.",
"Silicosis = caused by inhalation of silicon dioxide (silica) dust (stone cutters, miners). β
",
"Asbestosis = caused by inhalation of asbestos fibres (shipyard/mine workers).",
"Siderosis = caused by inhalation of iron dust particles.",
"In all occupational disorders, inflammation of lung tissues leads to fibrosis over time.",
]),
]
counter = 1
for sec_title, lines in sections_oneliners:
story.append(Paragraph(sec_title, H3))
for line in lines:
is_star = "β
" in line
style = ParagraphStyle(
"OL_STAR" if is_star else "OL_NORM",
fontName="Helvetica-Bold" if is_star else "Helvetica",
fontSize=8.5,
textColor=C_ACCENT if is_star else C_BLACK,
leading=13, leftIndent=8, spaceAfter=1
)
story.append(Paragraph(f"{counter}. {line}", style))
counter += 1
story.append(sp(6))
story.append(PageBreak())
# ββββββββββββββββββββββββββββββββββββ
# PART 3: 25 MCQs
# ββββββββββββββββββββββββββββββββββββ
story.append(section_banner("PART 3: 25 PREDICTED MCQs β NEET 2027 STYLE"))
story.append(sp(8))
mcqs = [
{
"q": "Q1. Which of the following volumes CANNOT be measured by a spirometer?",
"opts": ["A) Tidal Volume", "B) Inspiratory Reserve Volume",
"C) Expiratory Reserve Volume", "D) Residual Volume"],
"ans": "D) Residual Volume",
"exp": "RV stays in the lungs even after maximum expiration, so a spirometer cannot measure it."
},
{
"q": "Q2. The maximum amount of air a person can breathe in after a normal expiration is called:",
"opts": ["A) Vital Capacity", "B) Total Lung Capacity",
"C) Inspiratory Capacity", "D) Functional Residual Capacity"],
"ans": "C) Inspiratory Capacity (TV + IRV = ~3500 mL)",
"exp": "IC = TV + IRV = amount of air that can be inspired from FRC position."
},
{
"q": "Q3. COβ is transported in the blood MAINLY as:",
"opts": ["A) Carbaminohaemoglobin", "B) Bicarbonate ions (HCOββ»)",
"C) Dissolved in plasma", "D) Oxyhaemoglobin"],
"ans": "B) Bicarbonate ions (HCOββ») β 70%",
"exp": "70% as HCOββ», 20β25% as carbaminoHb, 7% dissolved."
},
{
"q": "Q4. COβ binds to which part of the haemoglobin molecule?",
"opts": ["A) Haem (FeΒ²βΊ) group", "B) Globin (protein) chain",
"C) Both haem and globin", "D) Neither β dissolved only"],
"ans": "B) Globin (protein) chain",
"exp": "Oβ binds haem (FeΒ²βΊ); COβ binds the protein (globin) part."
},
{
"q": "Q5. The primary/strongest stimulus for increasing the rate of breathing is:",
"opts": ["A) Fall in Oβ level", "B) Rise in COβ level",
"C) Rise in Oβ level", "D) Fall in COβ level"],
"ans": "B) Rise in COβ level",
"exp": "COβ rise (and HβΊ rise) is the primary driver of breathing rate."
},
{
"q": "Q6. The respiratory rhythm centre responsible for the basic breathing pattern is located in:",
"opts": ["A) Pons", "B) Cerebellum",
"C) Medulla oblongata", "D) Hypothalamus"],
"ans": "C) Medulla oblongata",
"exp": "Pneumotaxic centre in pons only modulates; primary centre is medulla."
},
{
"q": "Q7. Which of the following has the highest partial pressure of Oβ?",
"opts": ["A) Venous blood", "B) Tissues",
"C) Alveolar air", "D) Arterial blood"],
"ans": "C) Alveolar air (pOβ = 104 mmHg)",
"exp": "Alveolar pOβ = 104 mmHg > arterial blood 95 mmHg > tissues 40 mmHg."
},
{
"q": "Q8. During the Bohr effect, increased COβ in tissues causes haemoglobin to:",
"opts": ["A) Bind more Oβ", "B) Release more Oβ",
"C) Bind COβ at haem group", "D) Increase its pH"],
"ans": "B) Release more Oβ",
"exp": "Bohr effect: βCOβ/βHβΊ at tissues β Hb affinity for Oβ β β Oβ released."
},
{
"q": "Q9. Right lung of humans has how many lobes?",
"opts": ["A) 1", "B) 2", "C) 3", "D) 4"],
"ans": "C) 3 lobes",
"exp": "Right lung = 3 lobes; Left lung = 2 lobes (cardiac notch accommodates heart)."
},
{
"q": "Q10. Which enzyme catalyses the conversion of COβ to bicarbonate inside RBCs?",
"opts": ["A) Pepsin", "B) Carbonic anhydrase",
"C) Phosphodiesterase", "D) ATPase"],
"ans": "B) Carbonic anhydrase",
"exp": "Carbonic anhydrase: COβ + HβO β HβCOβ β HβΊ + HCOββ»."
},
{
"q": "Q11. Vital Capacity of the lungs is:",
"opts": ["A) TV + IRV", "B) IRV + TV + ERV",
"C) IRV + TV + ERV + RV", "D) TV + ERV"],
"ans": "B) IRV + TV + ERV (~4600 mL)",
"exp": "VC does NOT include RV. TLC = VC + RV."
},
{
"q": "Q12. Tidal volume in a normal healthy adult at rest is approximately:",
"opts": ["A) 250 mL", "B) 500 mL", "C) 1000 mL", "D) 2500 mL"],
"ans": "B) 500 mL",
"exp": "TV = 500 mL (approximately 6β8 mL/kg body weight)."
},
{
"q": "Q13. The chloride shift during COβ transport involves:",
"opts": [
"A) Clβ» moving out of RBC as HCOββ» moves in",
"B) Clβ» moving into RBC as HCOββ» moves out",
"C) NaβΊ moving out of RBC",
"D) KβΊ moving into RBC"
],
"ans": "B) Clβ» moving into RBC as HCOββ» moves out",
"exp": "Hamburger's phenomenon: HCOββ» exits β Clβ» enters to maintain electrical neutrality."
},
{
"q": "Q14. Emphysema primarily involves destruction of:",
"opts": ["A) Bronchioles", "B) Alveolar walls",
"C) Tracheal rings", "D) Pleural membrane"],
"ans": "B) Alveolar walls",
"exp": "Emphysema = alveolar wall destruction β reduced surface area β chronic dyspnoea."
},
{
"q": "Q15. Silicosis is an occupational disease caused by inhalation of:",
"opts": ["A) Coal dust", "B) Asbestos fibres",
"C) Iron particles", "D) Silicon dioxide dust"],
"ans": "D) Silicon dioxide dust",
"exp": "Silicosis affects miners, stone cutters who inhale silica (SiOβ) dust."
},
{
"q": "Q16. What happens to alveolar air partial pressure of COβ during normal breathing?",
"opts": [
"A) pCOβ alveoli = 45 mmHg",
"B) pCOβ alveoli = 40 mmHg",
"C) pCOβ alveoli = 104 mmHg",
"D) pCOβ alveoli = 95 mmHg"
],
"ans": "B) pCOβ alveoli = 40 mmHg",
"exp": "Alveolar pCOβ = 40 mmHg; tissue pCOβ = 45 mmHg (gradient drives COβ out)."
},
{
"q": "Q17. Which of the following DOES NOT form part of Vital Capacity?",
"opts": ["A) IRV", "B) TV", "C) ERV", "D) RV"],
"ans": "D) RV (Residual Volume)",
"exp": "VC = IRV + TV + ERV. RV is only in TLC = VC + RV."
},
{
"q": "Q18. The condition in which alveolar walls are intact but bronchioles are inflamed/spastic is:",
"opts": ["A) Emphysema", "B) Silicosis",
"C) Asthma", "D) Asbestosis"],
"ans": "C) Asthma",
"exp": "Asthma = bronchiole spasm + inflammation. Emphysema = alveolar wall destruction."
},
{
"q": "Q19. In which structure does exchange of Oβ and COβ take place between blood and air?",
"opts": ["A) Bronchioles", "B) Trachea",
"C) Alveoli", "D) Pleural cavity"],
"ans": "C) Alveoli",
"exp": "Alveoli are the functional units for gas exchange; walls are 1 cell thick."
},
{
"q": "Q20. During inspiration, the intrapulmonary pressure:",
"opts": [
"A) Rises above atmospheric pressure",
"B) Equals atmospheric pressure",
"C) Falls below atmospheric pressure",
"D) Becomes zero"
],
"ans": "C) Falls below atmospheric pressure",
"exp": "Thoracic volume β β lung volume β β pressure β β air flows in."
},
{
"q": "Q21. What percentage of Oβ is carried in dissolved form in plasma?",
"opts": ["A) 97%", "B) 20%", "C) 3%", "D) 7%"],
"ans": "C) 3%",
"exp": "97% as HbOβ; only 3% dissolved in plasma."
},
{
"q": "Q22. Which of the following is an example of occupational respiratory disorder caused by asbestos fibres?",
"opts": ["A) Silicosis", "B) Siderosis",
"C) Asbestosis", "D) Emphysema"],
"ans": "C) Asbestosis",
"exp": "Asbestosis = asbestos fibres; Silicosis = silica; Siderosis = iron dust."
},
{
"q": "Q23. The trachea in humans is kept open by:",
"opts": [
"A) Complete rings of hyaline cartilage",
"B) Incomplete C-shaped cartilaginous rings",
"C) Elastic fibres only",
"D) Smooth muscle rings"
],
"ans": "B) Incomplete C-shaped cartilaginous rings",
"exp": "Open (posterior) side of the C faces the oesophagus to allow food bolus passage."
},
{
"q": "Q24. Which of the following statements about the Bohr effect is CORRECT?",
"opts": [
"A) High Oβ decreases Hb affinity for Oβ",
"B) High COβ increases Hb affinity for Oβ",
"C) High COβ decreases Hb affinity for Oβ",
"D) Low COβ decreases Hb affinity for Oβ"
],
"ans": "C) High COβ decreases Hb affinity for Oβ",
"exp": "Bohr effect: βCOβ β βHβΊ β Hb releases Oβ to active tissues."
},
{
"q": "Q25. The pneumotaxic centre that regulates breathing is located in:",
"opts": ["A) Medulla oblongata", "B) Cerebellum",
"C) Pons", "D) Hypothalamus"],
"ans": "C) Pons",
"exp": "Pneumotaxic centre in pons limits inspiratory duration; primary rhythm centre is medulla."
},
]
for i, mcq in enumerate(mcqs):
# question block
q_data = [[Paragraph(mcq["q"], MCQ_Q)]]
q_t = Table(q_data, colWidths=[17.4*cm])
q_t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), C_BG1 if i%2==0 else C_WHITE),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 3),
("LEFTPADDING", (0,0), (-1,-1), 8),
("BOX", (0,0), (-1,-1), 0.5, colors.HexColor("#9fa8da")),
]))
items = [q_t]
for opt in mcq["opts"]:
is_ans = opt == mcq["ans"] or mcq["ans"].startswith(opt[:3])
items.append(Paragraph(opt, MCQ_ANS if is_ans else MCQ_OPT))
exp_style = ParagraphStyle("EXP", fontName="Helvetica-Oblique", fontSize=8.5,
textColor=C_GREY, leading=12, leftIndent=16, spaceAfter=6)
items.append(Paragraph(f"β Explanation: {mcq['exp']}", exp_style))
items.append(hr())
story.append(KeepTogether(items))
# ββ BACK PAGE ββββββββββββββββββββββββββββββββββββββββββββββββββββ
story.append(PageBreak())
story.append(sp(30))
t = Table([[Paragraph("ALL THE BEST FOR NEET 2027! π―", TITLE),]],
colWidths=[17.4*cm])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), C_ACCENT),
("TOPPADDING", (0,0), (-1,-1), 18),
("BOTTOMPADDING", (0,0), (-1,-1), 18),
("LEFTPADDING", (0,0), (-1,-1), 10),
]))
story.append(t)
story.append(sp(10))
story.append(Paragraph(
"Chapter: Breathing & Respiration | Unit 5: Human Physiology | "
"Prepared for NEET 2027 | NCERT Class 11 Biology",
FOOTER))
# ββ BUILD ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
doc.build(story)
print("PDF created:", OUTPUT)
cd /home/daytona/workspace/neet2027 && python3 make_pdf.py
ls -lh /home/daytona/workspace/neet2027/NEET2027_Breathing_Respiration.pdf
NEET2027 Breathing Respiration
PDF Document Β· PDF
| Section | Content |
|---|---|
| Cover Page | Chapter info, exam details, what's included |
| Part 1 - Full Notes | All 8 topics with color-coded tables, trap boxes |
| Part 2 - 69 NCERT One-Liners | Every line = 1 direct MCQ, star-marked high-priority ones |
| Part 3 - 25 MCQs | NEET 2027 style questions with correct answers highlighted in green + explanations |
pdf is not working .
python3 -c " from reportlab.pdfgen import canvas from reportlab.lib.pagesizes import A4 c = canvas.Canvas('/home/daytona/workspace/neet2027/test.pdf', pagesize=A4) c.drawString(100, 750, 'Test PDF') c.save() print('basic canvas ok') "
python3 -c "import subprocess; r = subprocess.run(['pandoc','--version'], capture_output=True, text=True); print(r.stdout[:80])"
~/neet2027/build_pdf.py
"""
Builds NEET 2027 Breathing & Respiration PDF using only reportlab canvas.
No Platypus / Table objects β pure canvas drawing = maximum compatibility.
"""
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
W, H = A4 # 595.27 x 841.89 pts
LM = 40 # left margin
RM = W - 40 # right margin
TM = H - 40 # top margin
BM = 50 # bottom margin
CW = RM - LM # content width
OUT = "/home/daytona/workspace/neet2027/NEET2027_Breathing_Respiration.pdf"
# ββ colours ββββββββββββββββββββββββββββββββββββββββββββββββββββββ
DARK = colors.HexColor("#1a237e")
BLUE = colors.HexColor("#1565c0")
RED = colors.HexColor("#c62828")
GREEN = colors.HexColor("#1b5e20")
LGREY = colors.HexColor("#eceff1")
LYELL = colors.HexColor("#fff9c4")
LGREEN = colors.HexColor("#e8f5e9")
LBLUE = colors.HexColor("#e8eaf6")
WHITE = colors.white
BLACK = colors.HexColor("#212121")
GREY = colors.HexColor("#757575")
class PDF:
def __init__(self, path):
self.c = canvas.Canvas(path, pagesize=A4)
self.c.setTitle("NEET 2027 β Breathing & Respiration")
self.c.setAuthor("NEET 2027 Paper Setter Notes")
self.y = TM
self._pg = 1
# ββ page management ββββββββββββββββββββββββββββββββββββββββββ
def new_page(self):
self._footer()
self.c.showPage()
self._pg += 1
self.y = TM
def _footer(self):
self.c.saveState()
self.c.setFont("Helvetica-Oblique", 7)
self.c.setFillColor(GREY)
self.c.drawCentredString(W/2, 28,
f"NEET 2027 | Breathing & Respiration | Page {self._pg}")
self.c.setStrokeColor(GREY)
self.c.setLineWidth(0.3)
self.c.line(LM, 36, RM, 36)
self.c.restoreState()
def need(self, pts):
if self.y - pts < BM:
self.new_page()
# ββ drawing primitives ββββββββββββββββββββββββββββββββββββββββ
def rect_fill(self, x, y, w, h, fill, stroke=None, radius=4):
self.c.saveState()
self.c.setFillColor(fill)
if stroke:
self.c.setStrokeColor(stroke)
self.c.roundRect(x, y, w, h, radius, fill=1, stroke=1)
else:
self.c.roundRect(x, y, w, h, radius, fill=1, stroke=0)
self.c.restoreState()
def hline(self, y=None, color=LGREY, width=0.5):
self.c.saveState()
self.c.setStrokeColor(color)
self.c.setLineWidth(width)
yy = y if y is not None else self.y
self.c.line(LM, yy, RM, yy)
self.c.restoreState()
def text(self, txt, x, y, font="Helvetica", size=9, color=BLACK, align="left"):
self.c.saveState()
self.c.setFont(font, size)
self.c.setFillColor(color)
if align == "center":
self.c.drawCentredString(x, y, txt)
elif align == "right":
self.c.drawRightString(x, y, txt)
else:
self.c.drawString(x, y, txt)
self.c.restoreState()
# ββ wrapped text ββββββββββββββββββββββββββββββββββββββββββββββ
def wrap_text(self, txt, x, y, max_w, font="Helvetica", size=9,
color=BLACK, line_h=13):
"""Draws wrapped text, returns final y position."""
from reportlab.pdfbase.pdfmetrics import stringWidth
words = str(txt).split()
line = ""
cy = y
self.c.saveState()
self.c.setFont(font, size)
self.c.setFillColor(color)
for w in words:
test = (line + " " + w).strip()
if stringWidth(test, font, size) <= max_w:
line = test
else:
if line:
self.c.drawString(x, cy, line)
cy -= line_h
line = w
if line:
self.c.drawString(x, cy, line)
cy -= line_h
self.c.restoreState()
return cy
# ββ high-level blocks βββββββββββββββββββββββββββββββββββββββββ
def banner(self, title, subtitle="", big=False):
"""Full-width coloured banner."""
h = 50 if big else 28
self.need(h + 10)
by = self.y - h
self.rect_fill(LM, by, CW, h, DARK)
fs = 16 if big else 11
ty = by + h/2 - fs/2 + (8 if subtitle else 0)
self.text(title, LM + CW/2, ty, "Helvetica-Bold", fs, WHITE, "center")
if subtitle:
self.text(subtitle, LM + CW/2, by + 8,
"Helvetica-Oblique", 8.5, WHITE, "center")
self.y = by - 8
def section_bar(self, txt):
self.need(26)
by = self.y - 22
self.rect_fill(LM, by, CW, 22, BLUE)
self.text(txt, LM + 8, by + 7, "Helvetica-Bold", 10, WHITE)
self.y = by - 6
def sub_head(self, txt):
self.need(18)
self.y -= 4
self.text(txt, LM, self.y, "Helvetica-Bold", 9.5, DARK)
self.y -= 14
self.hline(self.y, BLUE, 0.4)
self.y -= 4
def bullet(self, txt, indent=10, color=BLACK, bold=False):
from reportlab.pdfbase.pdfmetrics import stringWidth
font = "Helvetica-Bold" if bold else "Helvetica"
approx_lines = max(1, int(len(txt) * 5.5 / (CW - indent - 12)) + 1)
self.need(approx_lines * 13 + 4)
bx = LM + indent
self.text("β’", bx - 8, self.y, font, 9, color)
ny = self.wrap_text(txt, bx, self.y, CW - indent - 12,
font, 9, color, 13)
self.y = ny - 2
def trap_box(self, txt):
from reportlab.pdfbase.pdfmetrics import stringWidth
approx_lines = max(1, int(len(txt)*5.5/(CW-24))+1)
bh = approx_lines * 13 + 14
self.need(bh + 6)
by = self.y - bh
self.rect_fill(LM, by, CW, bh, LYELL, RED, 4)
self.c.saveState()
self.c.setFont("Helvetica-Bold", 8.5)
self.c.setFillColor(RED)
label = "PAPER SETTER TRAP: "
lw = stringWidth(label, "Helvetica-Bold", 8.5)
self.c.drawString(LM+8, by+bh-14, label)
self.c.setFont("Helvetica", 8.5)
self.c.setFillColor(BLACK)
self.wrap_text(txt, LM+8+lw, by+bh-14, CW-16-lw,
"Helvetica", 8.5, BLACK, 13)
self.c.restoreState()
self.y = by - 6
def oneliner(self, num, txt, star=False):
from reportlab.pdfbase.pdfmetrics import stringWidth
approx = max(1, int(len(txt)*5.2/(CW-20))+1)
self.need(approx * 12 + 4)
bg = LGREEN if star else WHITE
h = approx * 12 + 6
by = self.y - h
self.rect_fill(LM, by, CW, h, bg)
font = "Helvetica-Bold" if star else "Helvetica"
color = GREEN if star else BLACK
num_txt = f"{num}."
self.c.saveState()
self.c.setFont("Helvetica-Bold", 8.5)
self.c.setFillColor(BLUE)
self.c.drawString(LM+4, by+h-12, num_txt)
self.c.restoreState()
nw = stringWidth(num_txt, "Helvetica-Bold", 8.5) + 6
self.wrap_text(txt, LM+4+nw, by+h-12, CW-nw-8, font, 8.5, color, 12)
if star:
self.text("β
", RM-14, by+h-12, "Helvetica-Bold", 9, RED)
self.y = by - 1
def table(self, headers, rows, col_widths):
"""Simple grid table."""
row_h = 16
all_rows = [headers] + rows
# estimate wrapped heights per row
from reportlab.pdfbase.pdfmetrics import stringWidth
heights = []
for ri, row in enumerate(all_rows):
max_lines = 1
for ci, cell in enumerate(row):
cw = col_widths[ci] - 8
words = str(cell).split()
line = ""
lines = 1
fs = 8
for w in words:
test = (line+" "+w).strip()
if stringWidth(test, "Helvetica", fs) <= cw:
line = test
else:
lines += 1
line = w
max_lines = max(max_lines, lines)
heights.append(max_lines * 11 + 8)
total_h = sum(heights)
self.need(total_h + 6)
cy = self.y
for ri, row in enumerate(all_rows):
rh = heights[ri]
cx = LM
for ci, cell in enumerate(row):
cw = col_widths[ci]
bg = DARK if ri == 0 else (LBLUE if ri%2==1 else WHITE)
self.c.saveState()
self.c.setFillColor(bg)
self.c.setStrokeColor(colors.HexColor("#9fa8da"))
self.c.setLineWidth(0.4)
self.c.rect(cx, cy - rh, cw, rh, fill=1, stroke=1)
font = "Helvetica-Bold" if ri == 0 else "Helvetica"
color = WHITE if ri == 0 else BLACK
self.c.setFont(font, 8)
self.c.setFillColor(color)
# wrap inside cell
words = str(cell).split()
line = ""
ly = cy - 10
for w in words:
from reportlab.pdfbase.pdfmetrics import stringWidth as sw
test = (line+" "+w).strip()
if sw(test, font, 8) <= cw - 8:
line = test
else:
self.c.drawString(cx+4, ly, line)
ly -= 11
line = w
if line:
self.c.drawString(cx+4, ly, line)
self.c.restoreState()
cx += cw
cy -= rh
self.y = cy - 6
def mcq(self, num, question, opts, answer, explanation, shaded):
"""Render a single MCQ block."""
from reportlab.pdfbase.pdfmetrics import stringWidth
# estimate height
q_lines = max(1, int(len(question)*5.5/(CW-8))+1)
opt_lines = sum(max(1, int(len(o)*5/(CW-24))+1) for o in opts)
exp_lines = max(1, int(len(explanation)*5/(CW-8))+1)
total_h = (q_lines+1)*13 + opt_lines*12 + exp_lines*12 + 28
self.need(total_h + 10)
bx = LM
by = self.y - total_h
# background
bg = LBLUE if shaded else WHITE
self.rect_fill(bx, by, CW, total_h, bg, colors.HexColor("#9fa8da"), 4)
ty = self.y - 8
# question
q_txt = f"Q{num}. {question}"
ty = self.wrap_text(q_txt, bx+6, ty, CW-12, "Helvetica-Bold", 9, DARK, 13) - 2
# options
for opt in opts:
is_ans = opt.startswith(answer[:2])
font = "Helvetica-Bold" if is_ans else "Helvetica"
color = GREEN if is_ans else BLACK
prefix = "β " if is_ans else " "
ty = self.wrap_text(prefix + opt, bx+18, ty, CW-26, font, 8.5, color, 12) - 1
ty -= 3
self.hline(ty, GREY, 0.3)
ty -= 10
self.wrap_text("Exp: " + explanation, bx+6, ty, CW-12,
"Helvetica-Oblique", 8, GREY, 11)
self.y = by - 8
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
p = PDF(OUT)
# ββββββββββββββββββ COVER βββββββββββββββββββββββββββββββββββββββ
p.y -= 60
p.banner("NEET 2027 β UNIT 5: HUMAN PHYSIOLOGY",
"Breathing & Respiration | Complete Notes + 69 One-Liners + 25 MCQs",
big=True)
p.y -= 10
info = [
["Chapter", "Breathing & Respiration (NCERT Class 11, Ch 17)"],
["Exam Target", "NEET 2027"],
["Expected Marks", "3β4 marks (direct from this chapter every year)"],
["Contents", "Full Notes + 69 NCERT One-Liners + 25 MCQs with Answers"],
]
p.table(["Field", "Details"], info, [4.5*72/2.54, 13.4*72/2.54])
p.new_page()
# ββββββββββββββββββ PART 1: NOTES βββββββββββββββββββββββββββββββ
p.banner("PART 1: COMPLETE NOTES")
p.y -= 4
# 1. Respiratory organs
p.sub_head("1. RESPIRATORY ORGANS IN ANIMALS (Recall Only)")
p.table(
["Animal", "Organ", "Special Note"],
[
["Insects", "Tracheae", "β"],
["Earthworm", "Moist skin", "β"],
["Fish", "Gills", "β"],
["Frog (tadpole)", "Gills", "Ammonotelic"],
["Frog (adult)", "Lungs + Moist skin", "Ureotelic β changes at metamorphosis!"],
["Reptiles/Birds/Mammals", "Lungs", "β"],
],
[3.5*28.35, 4.5*28.35, 7.3*28.35]
)
p.trap_box("Adult frog uses BOTH lungs + moist skin. Tadpole uses gills β classic NEET trap!")
# 2. Human respiratory system
p.sub_head("2. HUMAN RESPIRATORY SYSTEM β STRUCTURE")
p.bullet("Pathway: Nostrils -> Nasal cavity -> Pharynx -> Larynx -> Trachea -> Bronchi -> Bronchioles -> Alveoli")
p.table(
["Structure", "Key Fact"],
[
["Trachea", "Incomplete C-shaped cartilage rings (open side faces oesophagus)"],
["Epiglottis", "Cartilage flap; prevents food entry into trachea"],
["Lung lobes", "Right = 3 lobes | Left = 2 lobes (cardiac notch for heart)"],
["Alveoli wall", "Simple squamous epithelium β 1 cell thick for rapid gas exchange"],
["Pleural membrane", "Double-layered; pleural fluid reduces friction"],
["Larynx", "Voice box; contains vocal cords"],
],
[4*28.35, 11.3*28.35]
)
p.trap_box("Right lung = 3 lobes. Left lung = 2 lobes. This is a direct 1-mark MCQ every year!")
# 3. Mechanism
p.sub_head("3. MECHANISM OF BREATHING")
p.table(
["Process", "Muscles Active", "Volume/Pressure", "Type"],
[
["Inspiration", "Diaphragm contracts + flattens; External intercostals contract; Ribs move up+out", "Volume UP; Pressure DOWN", "ACTIVE"],
["Expiration (rest)", "Diaphragm relaxes; Ribs move down+in", "Volume DOWN; Pressure UP", "PASSIVE"],
["Forced Expiration", "Internal intercostals + Abdominal muscles", "Volume DOWN further", "ACTIVE"],
],
[2.8*28.35, 5.8*28.35, 4*28.35, 2.7*28.35]
)
p.trap_box("Normal expiration is PASSIVE. Only FORCED expiration is active!")
# 4. Volumes
p.sub_head("4. RESPIRATORY VOLUMES & CAPACITIES")
p.table(
["Volume/Capacity", "Value", "Formula", "Key Point"],
[
["TV β Tidal Volume", "500 mL", "β", "Air per normal breath"],
["IRV β Inspiratory Reserve", "2500-3000 mL", "β", "Extra air after normal inspiration"],
["ERV β Expiratory Reserve", "1000-1100 mL", "β", "Extra air after normal expiration"],
["RV β Residual Volume", "1100-1200 mL", "β", "CANNOT be measured by spirometer!"],
["IC β Inspiratory Capacity", "~3500 mL", "TV + IRV", "Max air from FRC"],
["FRC β Functional Residual", "~2300 mL", "ERV + RV", "Air after normal expiration"],
["VC β Vital Capacity", "~4600 mL", "IRV+TV+ERV", "Maximum movable air"],
["TLC β Total Lung Capacity", "~5800 mL", "VC + RV", "Max air in lungs"],
],
[4.5*28.35, 2.5*28.35, 3*28.35, 5.3*28.35]
)
p.trap_box("RV, FRC, and TLC CANNOT be measured by spirometer β all contain RV.")
p.new_page()
# 5. Exchange
p.sub_head("5. EXCHANGE OF GASES")
p.table(
["Gas", "Alveoli", "Arterial Blood", "Venous Blood", "Tissues"],
[
["pO2", "104 mmHg", "95 mmHg", "40 mmHg", "40 mmHg"],
["pCO2", "40 mmHg", "40 mmHg", "45 mmHg", "45 mmHg"],
],
[2.5*28.35, 3*28.35, 3.5*28.35, 3.5*28.35, 3.3*28.35]
)
p.bullet("Gases diffuse from HIGH -> LOW partial pressure (simple diffusion).")
p.bullet("O2 moves: Alveoli -> Blood -> Tissues. CO2 moves: Tissues -> Blood -> Alveoli.")
p.bullet("CO2 solubility in blood is 20-25 times higher than O2.")
# 6. Transport
p.sub_head("6. TRANSPORT OF GASES")
p.table(
["Form", "% of O2", "Note"],
[
["Oxyhaemoglobin (HbO2) in RBCs", "97%", "Binds to HAEM (Fe2+) part of Hb"],
["Dissolved in plasma", "3%", "Minor fraction"],
],
[7*28.35, 2.5*28.35, 6*28.35]
)
p.bullet("1 Hb molecule binds 4 O2 molecules (one per haem group).")
p.bullet("Bohr Effect: High CO2 / High H+ / High Temp at tissues -> Hb releases O2.")
p.y -= 4
p.table(
["Form", "% of CO2", "Note"],
[
["Bicarbonate ions (HCO3-) in plasma", "70%", "MOST IMPORTANT form"],
["Carbaminohaemoglobin (HbCO2)", "20-25%", "Binds to GLOBIN (protein) part"],
["Dissolved in plasma", "7%", "Smallest fraction"],
],
[7*28.35, 2.5*28.35, 6*28.35]
)
p.trap_box("O2 binds HAEM (Fe2+). CO2 binds GLOBIN (protein). Never mix these up!")
p.bullet("Chloride Shift (Hamburger's phenomenon): HCO3- exits RBC -> Cl- enters RBC.")
p.bullet("Carbonic anhydrase in RBCs: CO2 + H2O = H2CO3 = H+ + HCO3-.")
# 7. Regulation
p.sub_head("7. REGULATION OF RESPIRATION")
p.table(
["Centre", "Location", "Function"],
[
["Respiratory rhythm centre", "Medulla oblongata", "PRIMARY breathing centre"],
["Pneumotaxic centre", "Pons", "Limits inspiration; modulates rate"],
["Chemoreceptors", "Medulla + Carotid + Aortic arch", "Detect rise in CO2 and H+"],
],
[4*28.35, 4*28.35, 7.3*28.35]
)
p.trap_box("PRIMARY stimulus for breathing = RISE IN CO2 (not fall in O2)!")
# 8. Disorders
p.sub_head("8. DISORDERS OF RESPIRATION")
p.table(
["Disorder", "Cause", "Pathology", "Keyword"],
[
["Asthma", "Allergens", "Bronchiole inflammation + spasm", "Wheezing"],
["Emphysema", "Cigarette smoking", "Alveolar wall destruction; reduced gas exchange surface", "Barrel chest"],
["Silicosis", "SiO2 dust (miners)", "Lung fibrosis", "Occupational"],
["Asbestosis", "Asbestos fibres", "Lung fibrosis", "Occupational"],
["Siderosis", "Iron dust", "Lung inflammation", "Occupational"],
],
[2.8*28.35, 3.8*28.35, 5.9*28.35, 2.8*28.35]
)
p.new_page()
# ββββββββββββββββββ PART 2: ONE-LINERS ββββββββββββββββββββββββββ
p.banner("PART 2: 69 NCERT ONE-LINERS (starred = highest NEET priority)")
p.y -= 4
sections = [
("RESPIRATORY ORGANS", [
(1, "Insects breathe through tracheae (tracheal system).", False),
(2, "Aquatic animals like fish use gills for respiration.", False),
(3, "Earthworm and frog use moist skin (cutaneous) for respiration.", False),
(4, "Adult frog uses BOTH lungs and moist skin; tadpole uses gills.", True),
(5, "Higher vertebrates (reptiles, birds, mammals) use lungs.", False),
]),
("HUMAN RESPIRATORY SYSTEM", [
(6, "The respiratory tract begins at the nostrils and ends at the alveoli.", False),
(7, "Larynx is also called the voice box; contains vocal cords.", False),
(8, "Epiglottis is a cartilaginous flap that prevents food from entering the trachea.", True),
(9, "Trachea is supported by incomplete C-shaped cartilaginous rings (open side faces oesophagus).", True),
(10, "Right lung has 3 lobes; left lung has 2 lobes (to accommodate the heart).", True),
(11, "Lungs are covered by a double-layered membrane called the pleural membrane.", False),
(12, "Pleural fluid reduces friction between the lungs and thoracic wall.", False),
(13, "Alveoli are the primary sites of gas exchange in humans.", True),
(14, "Alveolar walls are made of simple squamous epithelium (one cell thick).", True),
(15, "The lungs are situated in the thoracic cavity surrounded by ribs.", False),
]),
("MECHANISM OF BREATHING", [
(16, "Breathing is also called pulmonary ventilation.", False),
(17, "Inspiration is an active process; expiration is passive at rest.", True),
(18, "During inspiration, the diaphragm contracts and flattens.", True),
(19, "External intercostal muscles contract during inspiration; ribs move upward and outward.", False),
(20, "Inspiration occurs when intrapulmonary pressure falls below atmospheric pressure.", True),
(21, "Expiration occurs when intrapulmonary pressure rises above atmospheric pressure.", False),
(22, "Normal breathing rate in humans = 12-16 breaths per minute.", False),
(23, "Pressure difference between atmosphere and lungs during breathing = 1-3 mmHg.", False),
(24, "Forced expiration involves contraction of internal intercostal and abdominal muscles.", False),
]),
("RESPIRATORY VOLUMES & CAPACITIES", [
(25, "Tidal Volume (TV) = volume of air inspired or expired per normal breath = 500 mL.", True),
(26, "Inspiratory Reserve Volume (IRV) = additional air after normal inspiration = 2500-3000 mL.", True),
(27, "Expiratory Reserve Volume (ERV) = additional air after normal expiration = 1000-1100 mL.", True),
(28, "Residual Volume (RV) = air remaining after maximum expiration = 1100-1200 mL.", True),
(29, "RV cannot be measured by a spirometer β it can never be fully expelled.", True),
(30, "Vital Capacity (VC) = IRV + TV + ERV = approximately 4600 mL.", True),
(31, "Total Lung Capacity (TLC) = VC + RV = approximately 5800 mL.", True),
(32, "Inspiratory Capacity (IC) = TV + IRV = approximately 3500 mL.", False),
(33, "Functional Residual Capacity (FRC) = ERV + RV = approximately 2300 mL.", False),
]),
("EXCHANGE OF GASES", [
(34, "Partial pressure of O2 in alveoli = 104 mmHg; in deoxygenated blood = 40 mmHg.", True),
(35, "Partial pressure of CO2 in alveoli = 40 mmHg; in deoxygenated blood = 45 mmHg.", True),
(36, "pO2 in tissues = 40 mmHg; pCO2 in tissues = 45 mmHg.", True),
(37, "Gases always diffuse from region of higher partial pressure to lower partial pressure.", True),
(38, "O2 moves: alveoli -> blood -> tissues.", False),
(39, "CO2 moves: tissues -> blood -> alveoli.", False),
(40, "Solubility of CO2 in blood is 20-25 times higher than that of O2.", True),
(41, "Gas exchange surface in alveoli is extremely thin (less than 1 mm) for rapid diffusion.", False),
]),
("TRANSPORT OF GASES", [
(42, "97% of O2 is transported as oxyhaemoglobin (HbO2) in RBCs.", True),
(43, "3% of O2 is transported in dissolved form in plasma.", False),
(44, "One molecule of haemoglobin binds 4 molecules of O2 (one per haem group).", True),
(45, "O2 binds to the haem (Fe2+) part of haemoglobin.", True),
(46, "Bohr effect: High CO2 or H+ decreases affinity of Hb for O2 (O2 released to tissues).", True),
(47, "70% of CO2 is transported as bicarbonate ions (HCO3-) in plasma.", True),
(48, "20-25% of CO2 is transported as carbaminohaemoglobin (HbCO2).", True),
(49, "7% of CO2 is dissolved directly in plasma.", False),
(50, "CO2 binds to the globin (protein) part of haemoglobin β NOT the haem.", True),
(51, "Chloride shift (Hamburger's phenomenon): HCO3- exits RBC; Cl- enters to maintain neutrality.", True),
(52, "Enzyme carbonic anhydrase in RBCs: CO2 + H2O = H2CO3 = H+ + HCO3-.", True),
(53, "At lungs, low CO2 level reverses the reaction; CO2 is released and exhaled.", False),
]),
("REGULATION OF RESPIRATION", [
(54, "Respiratory rhythm centre is located in the medulla oblongata.", True),
(55, "Pneumotaxic centre in the pons moderates the respiratory rhythm centre.", True),
(56, "Rise in CO2 (NOT fall in O2) is the primary/strongest stimulus for breathing.", True),
(57, "Chemoreceptors in medulla, carotid body, and aortic arch detect CO2 and H+ changes.", False),
(58, "A small rise in CO2 or H+ significantly increases breathing rate.", False),
(59, "Oxygen levels affect breathing only when pO2 drops very significantly (hypoxia).", False),
]),
("DISORDERS OF RESPIRATION", [
(60, "Asthma = inflammation and spasm of bronchioles; caused by allergens; produces wheezing.", True),
(61, "Emphysema = alveolar walls are destroyed; caused mainly by cigarette smoking.", True),
(62, "Emphysema leads to reduced gas exchange surface area and barrel-shaped chest.", True),
(63, "Occupational respiratory disorders are caused by long-term inhalation of dust particles.", False),
(64, "Silicosis = caused by inhalation of silicon dioxide (silica) dust (stone cutters, miners).", True),
(65, "Asbestosis = caused by inhalation of asbestos fibres (shipyard/mine workers).", True),
(66, "Siderosis = caused by inhalation of iron dust particles.", False),
(67, "In occupational disorders, inflammation of lung tissues leads to fibrosis over time.", False),
(68, "In asthma, bronchioles are affected (NOT alveoli). In emphysema, alveoli are destroyed.", True),
(69, "Emphysema is IRREVERSIBLE; alveolar walls once destroyed cannot be regenerated.", True),
]),
]
for sec_title, lines in sections:
p.sub_head(sec_title)
for num, txt, star in lines:
p.oneliner(num, txt, star)
p.y -= 4
p.new_page()
# ββββββββββββββββββ PART 3: MCQs ββββββββββββββββββββββββββββββββ
p.banner("PART 3: 25 PREDICTED MCQs β NEET 2027 STYLE")
p.y -= 4
mcqs = [
(1, "Which of the following volumes CANNOT be measured by a spirometer?",
["A) Tidal Volume", "B) Inspiratory Reserve Volume", "C) Expiratory Reserve Volume", "D) Residual Volume"],
"D", "RV stays in lungs even after max expiration; spirometer cannot measure it."),
(2, "The maximum amount of air a person can breathe in after a normal expiration is called:",
["A) Vital Capacity", "B) Total Lung Capacity", "C) Inspiratory Capacity", "D) Functional Residual Capacity"],
"C", "IC = TV + IRV = ~3500 mL β air inspired from the FRC position."),
(3, "CO2 is transported in the blood MAINLY as:",
["A) Carbaminohaemoglobin", "B) Bicarbonate ions (HCO3-)", "C) Dissolved in plasma", "D) Oxyhaemoglobin"],
"B", "70% as HCO3-, 20-25% as carbaminoHb, only 7% dissolved."),
(4, "CO2 binds to which part of the haemoglobin molecule?",
["A) Haem (Fe2+) group", "B) Globin (protein) chain", "C) Both haem and globin equally", "D) It does not bind β only dissolved"],
"B", "O2 binds haem (Fe2+). CO2 binds the globin (protein) part β classic distinction."),
(5, "The PRIMARY/strongest stimulus for increasing the rate of breathing is:",
["A) Fall in blood O2 level", "B) Rise in blood CO2 level", "C) Rise in blood O2 level", "D) Fall in blood CO2 level"],
"B", "CO2 rise and H+ rise are the primary drivers; O2 only matters in severe hypoxia."),
(6, "The respiratory rhythm centre that generates the basic breathing rhythm is located in:",
["A) Pons", "B) Cerebellum", "C) Medulla oblongata", "D) Hypothalamus"],
"C", "Medulla oblongata houses the primary rhythm centre. Pons has pneumotaxic centre."),
(7, "Which of the following has the HIGHEST partial pressure of O2?",
["A) Venous blood (40 mmHg)", "B) Tissues (40 mmHg)", "C) Alveolar air (104 mmHg)", "D) Arterial blood (95 mmHg)"],
"C", "Alveolar pO2 = 104 mmHg is highest; drives O2 into blood."),
(8, "During the Bohr effect, increased CO2 in tissues causes haemoglobin to:",
["A) Bind more O2", "B) Release more O2", "C) Bind CO2 at haem group", "D) Increase blood pH"],
"B", "Bohr effect: high CO2/H+ at tissues lowers Hb-O2 affinity; O2 released to active cells."),
(9, "Right lung of humans has how many lobes?",
["A) 1", "B) 2", "C) 3", "D) 4"],
"C", "Right = 3 lobes. Left = 2 lobes (cardiac notch on left accommodates heart)."),
(10, "Which enzyme in RBCs catalyses: CO2 + H2O to H2CO3?",
["A) Pepsin", "B) Carbonic anhydrase", "C) Phosphodiesterase", "D) ATPase"],
"B", "Carbonic anhydrase catalyses CO2 + H2O = H2CO3 = H+ + HCO3- inside RBCs."),
(11, "Vital Capacity of the lungs is defined as:",
["A) TV + IRV", "B) IRV + TV + ERV", "C) IRV + TV + ERV + RV", "D) TV + ERV + RV"],
"B", "VC = IRV + TV + ERV (~4600 mL). It does NOT include RV."),
(12, "Tidal volume in a normal healthy adult at rest is approximately:",
["A) 250 mL", "B) 500 mL", "C) 1000 mL", "D) 2500 mL"],
"B", "TV = 500 mL β the volume moved in one normal quiet breath."),
(13, "The chloride shift during CO2 transport involves:",
["A) Cl- moving out of RBC as HCO3- moves in", "B) Cl- moving into RBC as HCO3- moves out",
"C) Na+ moving out of RBC", "D) K+ moving into RBC"],
"B", "Hamburger's phenomenon: HCO3- exits RBC; Cl- enters to maintain electrical neutrality."),
(14, "Emphysema primarily involves destruction of:",
["A) Bronchioles", "B) Alveolar walls", "C) Tracheal cartilage rings", "D) Pleural membrane"],
"B", "Emphysema = alveolar wall destruction (mainly from smoking) -> reduced gas exchange."),
(15, "Silicosis is an occupational disease caused by long-term inhalation of:",
["A) Coal dust", "B) Asbestos fibres", "C) Iron particles", "D) Silicon dioxide dust"],
"D", "Silicosis = SiO2 dust; affects miners and stone cutters."),
(16, "What is the partial pressure of CO2 in alveolar air during normal breathing?",
["A) 45 mmHg", "B) 40 mmHg", "C) 104 mmHg", "D) 95 mmHg"],
"B", "Alveolar pCO2 = 40 mmHg; tissue pCO2 = 45 mmHg (gradient drives CO2 out of blood)."),
(17, "Which of the following does NOT form part of Vital Capacity?",
["A) IRV", "B) TV", "C) ERV", "D) RV"],
"D", "VC = IRV + TV + ERV. RV is only part of TLC = VC + RV."),
(18, "In which condition are the alveolar walls intact but bronchioles are inflamed and spastic?",
["A) Emphysema", "B) Silicosis", "C) Asthma", "D) Asbestosis"],
"C", "Asthma = bronchiole spasm. Emphysema = alveolar wall destruction. Classic trap!"),
(19, "In which structure does exchange of O2 and CO2 take place between blood and air?",
["A) Bronchioles", "B) Trachea", "C) Alveoli", "D) Pleural cavity"],
"C", "Alveoli are the functional gas exchange units with 1-cell-thick walls."),
(20, "During inspiration, the intrapulmonary pressure:",
["A) Rises above atmospheric", "B) Equals atmospheric pressure",
"C) Falls below atmospheric pressure", "D) Becomes zero"],
"C", "Thoracic volume UP -> lung volume UP -> pressure DOWN -> air flows in."),
(21, "What percentage of O2 is carried in dissolved form in plasma?",
["A) 97%", "B) 20%", "C) 3%", "D) 7%"],
"C", "97% as HbO2; only 3% dissolved in plasma."),
(22, "Which occupational disorder is caused by inhalation of asbestos fibres?",
["A) Silicosis", "B) Siderosis", "C) Asbestosis", "D) Emphysema"],
"C", "Asbestosis = asbestos; Silicosis = silica; Siderosis = iron dust."),
(23, "The trachea in humans is kept open (patent) by:",
["A) Complete rings of hyaline cartilage", "B) Incomplete C-shaped cartilaginous rings",
"C) Elastic fibres only", "D) Smooth muscle rings"],
"B", "C-shape is incomplete posteriorly (faces oesophagus) to allow food bolus passage."),
(24, "Which of the following statements about the Bohr effect is CORRECT?",
["A) High O2 decreases Hb affinity for O2", "B) High CO2 increases Hb affinity for O2",
"C) High CO2 decreases Hb affinity for O2", "D) Low CO2 decreases Hb affinity for O2"],
"C", "High CO2 at active tissues lowers Hb-O2 affinity -> O2 released to tissues."),
(25, "The pneumotaxic centre that helps regulate breathing is located in:",
["A) Medulla oblongata", "B) Cerebellum", "C) Pons", "D) Hypothalamus"],
"C", "Pneumotaxic centre in PONS limits inspiratory duration. Primary centre is medulla."),
]
for num, q, opts, ans, exp in mcqs:
p.mcq(num, q, opts, ans, exp, shaded=(num%2==0))
# final page
p.new_page()
p.y -= 60
p.banner("ALL THE BEST FOR NEET 2027!", "Score 360/360 in Biology!", big=True)
p.y -= 10
p.text("Chapter: Breathing & Respiration | Unit 5: Human Physiology | NCERT Class 11",
W/2, p.y, "Helvetica-Oblique", 8, GREY, "center")
p._footer()
p.c.save()
print("SUCCESS:", OUT)
cd /home/daytona/workspace/neet2027 && python3 build_pdf.py 2>&1
ls -lh /home/daytona/workspace/neet2027/NEET2027_Breathing_Respiration.pdf && python3 -c " from pypdf import PdfReader r = PdfReader('/home/daytona/workspace/neet2027/NEET2027_Breathing_Respiration.pdf') print(f'Pages: {len(r.pages)}') print(f'Page 1 text sample: {r.pages[0].extract_text()[:120]}') "
NEET2027 Breathing Respiration
PDF Document Β· PDF
| Page | Content |
|---|---|
| 1 | Cover page with chapter details |
| 2-5 | Part 1: Full Notes - All 8 topics with colour-coded tables + Trap boxes |
| 6-9 | Part 2: 69 NCERT One-Liners - Green highlighted = highest priority |
| 10-12 | Part 3: 25 MCQs - Green = correct answer, with full explanation |
| 13 | Final motivation page |