Who are u
Can I ask u questions on biology only?
Physics & chemistry?
I am preparing for neet 2027…as u know the level of difficulty…I need to get 700+ /720 in neet
| Subject | Target Score | Key Focus |
|---|---|---|
| Biology | 360/360 | NCERT line by line, diagrams |
| Chemistry | 180/180 | Concepts + numericals |
| Physics | 160-180/180 | Formulas + practice |
I need 360/360 in biology first…my first focus ncert line by line then diagrams …pyq of last 5 years was difficult &different…so u can assume how the paper will be for 2027
A student who reads NCERT casually will score 280-300. A student who reads it surgically will score 340-360.
| Chapter | Must-Know Diagrams |
|---|---|
| Cell Biology | Mitosis/Meiosis stages, Cell organelles |
| Plant Physiology | Z-scheme, Calvin cycle, stomata |
| Human Physiology | Heart, Nephron, Neuron, Ear, Eye |
| Genetics | Dihybrid cross, DNA replication |
| Ecology | Ecological pyramids, nutrient cycles |
| Reproduction | Embryo development, flower parts |
Shd I give u syllabus?
cd /home/daytona/workspace/attachments/b047a787-7a00-41ef-951b-e9c1c33889e4/ && python3 -c " import pdfplumber with pdfplumber.open('Notice_20260108180635.pdf') as pdf: for i, page in enumerate(pdf.pages): text = page.extract_text() print(f'--- PAGE {i+1} ---') print(text) print() "
| Priority | Units | Why |
|---|---|---|
| 🔴 Highest | Unit 7 (Genetics & Molecular Biology) | Most questions, most tricky |
| 🔴 Highest | Unit 5 (Human Physiology) | Heavy weightage, diagram-based |
| 🔴 Highest | Unit 6 (Reproduction) | Many direct NCERT questions |
| 🟠 High | Unit 3 (Cell Biology) | Conceptual + diagram |
| 🟠 High | Unit 4 (Plant Physiology) | Calculations + diagrams |
| 🟡 Medium | Unit 8 (Human Welfare) | Mostly factual, easy marks |
| 🟡 Medium | Unit 9 (Biotechnology) | Short but very specific |
| 🟡 Medium | Unit 10 (Ecology) | Conceptual, scoring |
| 🟢 Lower | Unit 1 (Diversity) | Memory-heavy, but important |
| 🟢 Lower | Unit 2 (Structural Organisation) | NCERT diagrams key |
Since I have exam in 5 th July
| Subject | Topics |
|---|---|
| Physics | Units and Dimensions |
| Chemistry | Mole Concept & Atomic Structure (till taught) |
| Biology - Botany | Cell the Unit of Life + Cell Cycle & Division upto Mitosis |
| Biology - Zoology | Breathing and Exchange of Gases (till taught) |
| Day | Focus |
|---|---|
| Today (Mon 29th) | Cell - The Unit of Life (full NCERT) |
| Tue 30th | Cell Cycle & Division upto Mitosis |
| Wed 1st July | Breathing & Exchange of Gases |
| Thu 2nd | Mole Concept + Atomic Structure |
| Fri 3rd | Units & Dimensions (Physics) |
| Sat 4th | Full revision + PYQs on all topics |
| Sun 5th | TEST DAY |
Pls keep in mind neet 2027 will be very difficult
"Which of the following statements about the cell membrane is INCORRECT?"
Showing an unlabelled stage of mitosis and asking what comes NEXT
"Which organelle is found in prokaryotes?"
"If a cell is placed in a hypertonic solution, which organelle will be affected first?"
Both correct but only ONE explains the other correctly
| What | Why |
|---|---|
| 📖 Every NCERT line that can become an MCQ | So nothing surprises you |
| ⚠️ Exceptions & special cases | Where 90% of students lose marks |
| 🔢 All numbers, percentages, names | Direct fact questions |
| 🖼️ Diagram breakdown | Label-based and stage-based questions |
| 🧠 Application-level questions | NEET 2027 style |
| ❌ Common wrong answers | Traps to avoid |
Ur wish
| Point | MCQ-worthy detail |
|---|---|
| Given by | Schleiden (1838) + Schwann (1839) |
| Schleiden studied | Plants |
| Schwann studied | Animals |
| Modified by | Rudolf Virchow (1855) |
| Virchow's addition | "Omnis cellula e cellula" - every cell arises from pre-existing cell |
| Exceptions to cell theory | Viruses (non-cellular), RBCs (no nucleus), Platelets (cell fragments) |
| Feature | Prokaryote | Eukaryote |
|---|---|---|
| Size | 1-10 µm | 10-100 µm |
| Nucleus | Absent (nucleoid) | Present (membrane-bound) |
| DNA | Circular, naked, no histone | Linear, with histones |
| Membrane-bound organelles | ABSENT | Present |
| Ribosomes | 70S (50S + 30S) | 80S (60S + 40S) |
| Cell wall | Present (peptidoglycan in bacteria) | Present in plants (cellulose), absent in animals |
| Examples | Bacteria, Mycoplasma, Cyanobacteria | All plants, animals, fungi |
| Type | Position | Function |
|---|---|---|
| Peripheral (extrinsic) | On surface only | Support, recognition |
| Integral (intrinsic) | Embedded inside | Transport channels |
| Type | Energy | Direction | Examples |
|---|---|---|---|
| Passive (diffusion) | No | High → Low | O₂, CO₂ |
| Osmosis | No | Water movement | Water |
| Facilitated diffusion | No | High → Low | Glucose (via carrier) |
| Active transport | Yes (ATP) | Low → High | Na⁺/K⁺ pump |
| Feature | Detail |
|---|---|
| Present in | Plants, Fungi, Bacteria, Algae - NOT in animals |
| Plant cell wall | Cellulose (primary), hemicellulose, pectin |
| Fungal cell wall | Chitin |
| Bacterial cell wall | Peptidoglycan (murein) |
| Algal cell wall | Cellulose + other polysaccharides |
| Middle lamella | Calcium pectate - between two plant cells, first formed |
| Plasmodesmata | Channels connecting adjacent plant cells through cell wall |
| Type | Has ribosomes? | Function |
|---|---|---|
| Rough ER (RER) | YES | Protein synthesis + secretion |
| Smooth ER (SER) | NO | Lipid synthesis, detoxification, steroid synthesis |
| Feature | Prokaryote | Eukaryote |
|---|---|---|
| Size | 70S | 80S |
| Subunits | 50S + 30S | 60S + 40S |
| Location | Free in cytoplasm | Free + on RER |
| Cell type | Vacuole |
|---|---|
| Plant cells | Large central vacuole (up to 90% of volume), filled with cell sap |
| Animal cells | Small, temporary food/contractile vacuoles |
| Amoeba | Contractile vacuole for osmoregulation |
| Structure | Detail |
|---|---|
| Cilia | 9+2 arrangement, short, numerous |
| Flagella | 9+2 arrangement, long, few |
| Microvilli | Increase absorption surface in intestine (NOT motile) |
| Cytoskeleton | Microtubules + microfilaments, gives shape to cell |
| Cell | Reason |
|---|---|
| Mature RBCs (mammals) | Nucleus expelled during maturation |
| Platelets | Cell fragments of megakaryocytes |
| Sieve tube cells | Nucleus degenerates at maturity |
We will go step by step completing every topics in ncert and topic wise pyq
Step 1 → Complete NCERT notes (every line, every word)
Step 2 → Key points & traps highlighted
Step 3 → Topic-wise PYQs (last 10 years)
Step 4 → Move to next topic only after you say "done"
| Who | Year | Contribution |
|---|---|---|
| M.J. Schleiden | 1838 | All plants are made of cells |
| Theodor Schwann | 1839 | All animals are made of cells |
| Rudolf Virchow | 1855 | "Omnis cellula e cellula" - cells arise from pre-existing cells |
| Exception | Reason |
|---|---|
| Viruses | Non-cellular (no cell structure) |
| First cell | Could not have come from pre-existing cell |
Ok
CELLS
├── PROKARYOTIC (Pro = before, karyon = nucleus)
│ No membrane-bound nucleus
│ Examples: Bacteria, Cyanobacteria, Mycoplasma, PPLO
│
└── EUKARYOTIC (Eu = true, karyon = nucleus)
True membrane-bound nucleus
Examples: All plants, animals, fungi, protists
| Cell Type | Size |
|---|---|
| Mycoplasma | 0.1 µm - smallest living cell |
| Bacteria (prokaryote) | 1 - 10 µm |
| Eukaryotic cell | 10 - 100 µm |
| Largest cell | Ostrich egg (egg yolk) |
| Longest cell in human body | Nerve cell (neuron) |
| Feature | Prokaryotic | Eukaryotic |
|---|---|---|
| Nucleus | Absent (nucleoid region) | Present (membrane-bound) |
| Nuclear membrane | Absent | Present |
| Size | Small (1-10 µm) | Large (10-100 µm) |
| DNA shape | Circular, naked | Linear, with histones |
| Histones | Absent | Present |
| Membrane-bound organelles | ABSENT | Present |
| Ribosomes | 70S (50S + 30S) | 80S (60S + 40S) |
| Mitochondria | Absent | Present |
| Chloroplast | Absent (thylakoids free in cytoplasm) | Present (in plants) |
| Cell wall | Present (peptidoglycan) | Plants: cellulose / Fungi: chitin / Animals: absent |
| Cell division | Binary fission | Mitosis / Meiosis |
| Plasmids | Present | Rare (absent usually) |
| Nucleolus | Absent | Present |
| Examples | Bacteria, Cyanobacteria, Mycoplasma | Plants, Animals, Fungi, Protists |
Prokaryote = No nucleus + No membrane organelles + 70S ribosome + Circular DNA
Eukaryote = True nucleus + Membrane organelles + 80S ribosome + Linear DNA
Exception = Mitochondria & Chloroplast → 70S ribosome (inside eukaryote)
Smallest = Mycoplasma (no cell wall)
Ok
PROKARYOTIC CELL COMPONENTS
├── Cell Envelope (outermost layers)
│ ├── Glycocalyx (outermost)
│ ├── Cell wall
│ └── Plasma membrane (innermost)
├── Cytoplasm
│ ├── Nucleoid (DNA)
│ ├── Plasmids
│ ├── Ribosomes (70S)
│ └── Inclusion bodies
└── Appendages
├── Flagella (locomotion)
├── Pili / Fimbriae (attachment)
└── Mesosome (infolding of plasma membrane)
| Type | Description |
|---|---|
| Slime layer | Loose, unorganized, loosely attached |
| Capsule | Thick, organized, tightly bound to cell wall |
| Type | Gram stain result | Cell wall | Example |
|---|---|---|---|
| Gram positive (+ve) | Purple/violet | Thick peptidoglycan, NO outer membrane | Staphylococcus |
| Gram negative (-ve) | Pink/red | Thin peptidoglycan + outer lipopolysaccharide membrane | E. coli, Salmonella |
| Feature | Pili | Fimbriae |
|---|---|---|
| Number | Few, longer | Many, shorter |
| Function | Conjugation (transfer of DNA between bacteria) | Attachment to surfaces/host cells |
| Special name | Sex pili (conjugation pili) | - |
Cell envelope = Glycocalyx → Cell wall → Plasma membrane
Cell wall = Peptidoglycan (Gram +ve thick, Gram -ve thin + outer membrane)
Mesosome = infolding of plasma membrane (respiration, DNA segregation)
Flagella = flagellin protein (Filament → Hook → Basal body)
Pili = conjugation | Fimbriae = attachment
Inclusions = NOT membrane-bound | Gas vacuoles = cyanobacteria
Ribosome = 70S (50S + 30S)
Ok
OUTSIDE (water)
🔵🔵🔵🔵🔵🔵 ← hydrophilic heads
|||||||||||| ← hydrophobic tails
|||||||||||| ← hydrophobic tails
🔵🔵🔵🔵🔵🔵 ← hydrophilic heads
INSIDE (cytoplasm)
| Type | Location | Also called |
|---|---|---|
| Integral proteins (Intrinsic) | Embedded within the bilayer | Transmembrane proteins (if spanning whole membrane) |
| Peripheral proteins (Extrinsic) | On the surface (inner or outer) | Surface proteins |
| Type | Description | Examples |
|---|---|---|
| Simple diffusion | Small, nonpolar molecules move freely | O₂, CO₂, ethanol, urea |
| Osmosis | Water moves from low solute → high solute concentration | Water movement |
| Facilitated diffusion | Polar/charged molecules use protein channels/carriers | Glucose, amino acids, ions |
| Solution Type | Effect on Cell |
|---|---|
| Hypotonic (less solute outside) | Water enters cell → cell swells → may burst (lysis in animals) |
| Hypertonic (more solute outside) | Water leaves cell → cell shrinks → plasmolysis in plants |
| Isotonic (equal solute) | No net movement of water |
| Model | Proposed by | Year | Description |
|---|---|---|---|
| Lipid bilayer | Gorter and Grendel | 1925 | First proposed bilayer |
| Protein-lipid-protein sandwich | Davson and Danielli | 1935 | Unit membrane model |
| Fluid Mosaic Model | Singer and Nicolson | 1972 | Current accepted model |
Cell membrane = Phospholipid bilayer + Proteins + Carbohydrates (outer only)
Model = Fluid Mosaic (Singer & Nicolson, 1972)
Proteins = Integral (embedded) + Peripheral (surface)
Cholesterol = animal cells only
Passive = no energy (diffusion, osmosis, facilitated diffusion)
Active = energy needed, against gradient (Na/K pump)
Hypertonic → plasmolysis (plant) / crenation (animal)
Hypotonic → turgid (plant) / lysis (animal)
Hope everything under each topics are covered..I don’t need to look back?
After we finish a topic together, you do NOT need to open NCERT for that topic again.
Yes
| Organism | Cell Wall Composition |
|---|---|
| Plants | Cellulose (primary) + hemicellulose + pectin |
| Fungi | Chitin |
| Bacteria | Peptidoglycan (murein) |
| Algae | Cellulose + other polysaccharides (e.g., algin, carrageenan) |
| Diatoms | Silica (silicon dioxide) - forms diatomaceous earth |
| Archaebacteria | Pseudopeptidoglycan (NOT true peptidoglycan) |
| Mycoplasma | ABSENT - no cell wall |
OUTSIDE
↓
Middle Lamella ← shared between two adjacent cells
↓
Primary Cell Wall ← thin, flexible, growing cells
↓
Secondary Cell Wall ← thick, rigid, mature cells (not in all cells)
↓
Plasma Membrane
| Feature | Cell Wall | Cell Membrane |
|---|---|---|
| Living/Non-living | Non-living | Living |
| Permeability | Fully permeable | Selectively permeable |
| Present in | Plants, Fungi, Bacteria | ALL cells |
| Main component | Cellulose (plants) | Phospholipids |
| Flexibility | Rigid | Flexible |
Cell wall present in: Plants, Fungi, Bacteria, Algae
Cell wall ABSENT in: Animals, Mycoplasma
Composition:
Plants → Cellulose (+ hemicellulose + pectin)
Fungi → Chitin
Bacteria → Peptidoglycan
Diatoms → Silica
Archaea → Pseudopeptidoglycan
Layers (Plant): Middle lamella → Primary wall → Secondary wall
Middle lamella = Calcium pectate (FIRST formed, between two cells)
Plasmodesmata = channels through cell wall, lined with plasma membrane
Cell wall = non-living, fully permeable, rigid
Plasma membrane = living, selectively permeable, flexible
Yes
| Feature | Rough ER (RER) | Smooth ER (SER) |
|---|---|---|
| Ribosomes | Present (gives rough appearance) | Absent |
| Main function | Protein synthesis + secretion | Lipid synthesis |
| Other functions | Glycosylation of proteins | Detoxification, steroid synthesis |
| Found more in | Secretory cells (pancreas, liver) | Liver cells, gonads |
| Face | Also called | Faces toward | Function |
|---|---|---|---|
| Cis face | Forming face | ER | Receives vesicles from ER |
| Trans face | Maturing face | Plasma membrane | Releases secretory vesicles |
ER → [CIS face] → Golgi cisternae → [TRANS face] → Secretory vesicles → Plasma membrane
| Function | Description |
|---|---|
| Intracellular digestion | Digest food particles, bacteria engulfed by cell |
| Autophagy | Digest damaged/old organelles within the cell |
| Autolysis | Self-destruction of cell (lysosome membrane bursts) |
| Extracellular digestion | Release enzymes outside (in some cells) |
| Type | Found in | Function |
|---|---|---|
| Central vacuole | Mature plant cells | Storage, maintains turgor pressure |
| Food vacuole | Amoeba, protists | Digestion of food |
| Contractile vacuole | Amoeba, freshwater protists | Osmoregulation (expels excess water) |
| Sap vacuole | Plant cells | Stores water, pigments, waste products |
NUCLEUS
↓ (outer membrane continuous with)
ROUGH ER → synthesizes proteins
↓ (vesicles bud off)
GOLGI (cis face receives) → processes, packages
↓ (trans face releases)
├── Secretory vesicles → PLASMA MEMBRANE → outside cell
├── LYSOSOMES → intracellular digestion
└── VACUOLES → storage
ENDOMEMBRANE = ER + Golgi + Lysosomes + Vacuoles
(NOT mitochondria, chloroplast, peroxisomes)
RER = ribosomes present → protein synthesis + secretion
SER = no ribosomes → lipid synthesis, detoxification, steroid synthesis
SER in liver = detox | SER in muscle = Ca²⁺ storage
Golgi: Cis (receives from ER) → Trans (sends out)
Golgi forms: Lysosomes + Acrosome + Cell plate
Lysosomes: Golgi-derived, hydrolytic enzymes, acidic pH
"Suicidal bags" = de Duve
Autolysis = self-destruction | Autophagy = digests old organelles
Vacuole membrane = Tonoplast
Cell sap = fluid in vacuole
Contractile vacuole = osmoregulation in Amoeba
Plant vacuole = up to 90% cell volume
Yes
OUTER MEMBRANE
↓
INTERMEMBRANE SPACE (between outer and inner)
↓
INNER MEMBRANE (folded into CRISTAE)
↓
MATRIX (innermost fluid space)
| Feature | Detail |
|---|---|
| Own DNA | Circular, double-stranded, like prokaryotes |
| Own ribosomes | 70S (prokaryotic type) |
| Self-replication | Can divide by binary fission |
| NOT fully autonomous | Still depend on nucleus for most proteins |
| Function | Location within mitochondria |
|---|---|
| Aerobic respiration | Overall |
| Glycolysis | Cytoplasm (NOT mitochondria) |
| Pyruvate oxidation | Matrix |
| Krebs cycle (TCA) | Matrix |
| Electron Transport System | Inner membrane |
| ATP synthesis (oxidative phosphorylation) | Inner membrane (F₁ particles) |
| Calcium regulation | Matrix |
| Heat production (thermogenesis) | Brown fat mitochondria |
| Apoptosis (programmed cell death) | Releases cytochrome c |
| Process | ATP produced |
|---|---|
| Glycolysis (cytoplasm) | 2 ATP (net) |
| Krebs cycle (matrix) | 2 ATP directly |
| ETS/Oxidative phosphorylation (inner membrane) | 34 ATP |
| Total (aerobic) | 36-38 ATP |
| Organelle | Number of membranes |
|---|---|
| Mitochondria | 2 (outer + inner) |
| Chloroplast | 2 (outer + inner) |
| Nucleus | 2 (outer + inner nuclear membrane) |
| ER, Golgi, Lysosome, Vacuole | 1 |
| Ribosome | 0 (no membrane) |
| Centriole | 0 (no membrane) |
Mitochondria = powerhouse, double membrane
Outer membrane = smooth, freely permeable (porins)
Inner membrane = cristae (folds), ETS, ATP synthase (F₁ particles)
Matrix = Krebs cycle, circular DNA, 70S ribosomes
Semi-autonomous = own DNA (circular, naked) + 70S ribosomes
mtDNA = maternally inherited
Glycolysis = cytoplasm (NOT mitochondria)
Krebs cycle = matrix
ETS + ATP synthesis = inner membrane
Absent in: mature mammalian RBCs
Yes
PLASTIDS
├── CHLOROPLASTS → green (contain chlorophyll) → photosynthesis
├── CHROMOPLASTS → coloured (yellow, orange, red) → no photosynthesis
└── LEUCOPLASTS → colourless → storage
├── Amyloplasts → store starch
├── Elaioplasts → store oils/fats
└── Aleuroplasts → store proteins
OUTER MEMBRANE (smooth)
↓
INTERMEMBRANE SPACE
↓
INNER MEMBRANE
↓
STROMA (matrix of chloroplast)
↓
THYLAKOIDS (membrane sacs inside stroma)
↓
GRANA (stacks of thylakoids)
| Part | Description | Function |
|---|---|---|
| Outer membrane | Smooth, freely permeable | Boundary |
| Inner membrane | Selectively permeable | Controls entry/exit |
| Stroma | Fluid matrix inside | Site of dark reaction (Calvin cycle) |
| Thylakoids | Flattened membrane sacs | Site of light reaction |
| Grana | Stack of thylakoids (like stack of coins) | Increases surface area for light absorption |
| Stroma lamellae | Membranes connecting grana | Connect individual grana |
| Lumen | Space inside thylakoid | Accumulates H⁺ during light reaction |
| Pigment | Colour | Absorption |
|---|---|---|
| Chlorophyll a | Bright green | Red + Blue light (primary pigment) |
| Chlorophyll b | Yellow-green | Red + Blue light (accessory) |
| Carotenoids | Yellow-orange | Blue-green light |
| Xanthophylls | Yellow | Blue light |
| Type | Stores | Example |
|---|---|---|
| Amyloplasts | Starch (carbohydrates) | Potato tubers, cereal grains |
| Elaioplasts | Oils and fats (lipids) | Oil seeds |
| Aleuroplasts | Proteins | Wheat grain aleurone layer |
Proplastid
↓
Chloroplast ⟷ Chromoplast ⟷ Leucoplast
| Feature | Chloroplast | Mitochondria |
|---|---|---|
| Membranes | Double | Double |
| Internal structure | Grana + stroma | Cristae + matrix |
| Ribosome | 70S | 70S |
| DNA | Circular, naked | Circular, naked |
| Function | Photosynthesis | Respiration |
| Found in | Plants, algae | All eukaryotes (except RBC) |
| Size | Larger (4-6 µm) | Smaller (0.2-1 µm) |
| Origin (endosymbiont) | Cyanobacteria | Aerobic bacteria |
Plastids = plants + algae ONLY (not animals, not fungi)
Double membrane + circular DNA + 70S ribosomes (semi-autonomous)
Chloroplast = green, photosynthesis
Light reaction → thylakoid membrane
Dark reaction (Calvin) → stroma
Primary pigment → Chlorophyll a
Chromoplast = coloured (no photosynthesis), attract pollinators
Tomato = lycopene | Carrot = beta-carotene
Leucoplast = colourless, storage
Amyloplast → starch
Elaioplast → oils
Aleuroplast → proteins
Interconversion: Chloroplast → Chromoplast (tomato ripening)
Proplastid = precursor of all plastids
Yes
| Feature | 70S Ribosome | 80S Ribosome |
|---|---|---|
| Found in | Prokaryotes, Mitochondria, Chloroplasts | Eukaryotic cytoplasm |
| Large subunit | 50S | 60S |
| Small subunit | 30S | 40S |
| rRNA in large subunit | 23S + 5S rRNA | 28S + 5.8S + 5S rRNA |
| rRNA in small subunit | 16S rRNA | 18S rRNA |
| Location | Type | Function |
|---|---|---|
| Free in cytoplasm | 80S | Synthesize proteins for use within the cell |
| On RER surface | 80S | Synthesize secretory proteins (exported out) |
| In mitochondria | 70S | Synthesize mitochondrial proteins |
| In chloroplasts | 70S | Synthesize chloroplast proteins |
| Antibiotic | Target | Effect |
|---|---|---|
| Streptomycin | 30S subunit (prokaryote) | Inhibits protein synthesis in bacteria |
| Erythromycin | 50S subunit (prokaryote) | Inhibits protein synthesis in bacteria |
| Tetracycline | 30S subunit | Blocks aminoacyl-tRNA binding |
| Cycloheximide | 80S subunit (eukaryote) | Inhibits eukaryotic protein synthesis |
| Feature | Detail |
|---|---|
| Discovered by | George Palade (1953) |
| Made of | rRNA + proteins |
| No. of subunits | 2 (large + small) |
| Membrane-bound? | NO |
| Function | Protein synthesis |
| Present in | ALL cells (universal) |
| S unit | Svedberg (not additive) |
Ribosome = protein factory, NO membrane, universal (all cells)
Discovered by = George Palade (1953)
Made of = rRNA + proteins
70S = prokaryotes + mitochondria + chloroplasts
Large = 50S (23S + 5S rRNA)
Small = 30S (16S rRNA)
80S = eukaryotic cytoplasm
Large = 60S (28S + 5.8S + 5S rRNA)
Small = 40S (18S rRNA)
S values NOT additive (50+30 = 70, not 80)
Free ribosomes → intracellular proteins
RER ribosomes → secretory proteins
Nucleolus → site of rRNA synthesis + ribosome assembly
Antibiotics: Streptomycin → 30S | Erythromycin → 50S
(Target 70S = bacteria, safe for human 80S)
Yes
| Type | Diameter | Protein | Function |
|---|---|---|---|
| Microfilaments | 6 nm (thinnest) | Actin | Cell movement, muscle contraction, cell division |
| Intermediate filaments | 10 nm | Keratin, vimentin | Mechanical strength, anchoring nucleus |
| Microtubules | 25 nm (thickest) | Tubulin | Cell shape, spindle formation, cilia/flagella, intracellular transport |
| Feature | Cilia | Flagella |
|---|---|---|
| Size | Short | Long |
| Number per cell | Many (numerous) | Few (1-few) |
| Movement | Oar-like (back and forth) | Whip-like (undulating) |
| Function | Move substances over cell surface + locomotion | Locomotion |
| Examples | Trachea lining, Paramecium | Sperm, Chlamydomonas, Euglena |
CROSS SECTION OF CILIUM / FLAGELLUM:
Outer ring: 9 DOUBLET microtubules (arranged in circle)
Centre: 2 SINGLE microtubules (central pair)
= 9+2 arrangement
| Component | Detail |
|---|---|
| 9 doublet microtubules | Outer ring, each doublet = A tubule + B tubule |
| 2 central microtubules | Enclosed in central sheath |
| Dynein arms | On A tubule of each doublet, cause sliding movement |
| Radial spokes | Connect outer doublets to central sheath |
| Nexin links | Connect adjacent outer doublets |
CROSS SECTION OF CENTRIOLE:
9 TRIPLET microtubules arranged in circle
NO central microtubules
= 9+0 arrangement (triplets)
| Component | Detail |
|---|---|
| 9 triplet microtubules | Each triplet = A + B + C tubules |
| No central pair | Unlike cilia/flagella |
| Wall | Cartwheel structure (hub + spokes + rim) |
| Length | ~0.3-0.5 µm |
| Protein | Tubulin |
| Structure | Arrangement | Microtubule type | Has central pair? |
|---|---|---|---|
| Cilia axoneme | 9+2 | Doublets + 2 singlets | YES |
| Flagella axoneme | 9+2 | Doublets + 2 singlets | YES |
| Centriole | 9+0 | Triplets | NO |
| Basal body | 9+0 | Triplets | NO |
CYTOSKELETON (eukaryotes only):
Microfilaments = actin (6nm, thinnest)
Intermediate = keratin (10nm)
Microtubules = tubulin (25nm, thickest)
CILIA vs FLAGELLA:
Both = 9+2 axoneme (9 doublets + 2 central singlets)
Cilia = short, many, oar movement
Flagella = long, few, whip movement
Movement = dynein (ATPase)
CENTRIOLE / BASAL BODY:
Both = 9+0 (9 triplets, NO central pair)
Centriole = in animal cells + lower plants (absent in higher plants)
Basal body = modified centriole, at base of cilia/flagella
MICROVILLI:
Core = actin (NOT tubulin)
Function = absorption (NOT locomotion)
No 9+2 arrangement
KEY: Cilia/Flagella = 9+2 | Centriole/Basal body = 9+0
Next
NUCLEAR ENVELOPE (outer + inner membrane)
↓
NUCLEAR PORES (channels through envelope)
↓
NUCLEOPLASM (fluid inside nucleus)
↓
CHROMATIN (DNA + histone proteins)
↓
NUCLEOLUS (inside nucleoplasm, no membrane)
| Type | Condensation | Gene activity | Staining |
|---|---|---|---|
| Euchromatin | Loosely packed | Transcriptionally active (genes expressed) | Lightly stained |
| Heterochromatin | Tightly packed | Transcriptionally inactive (genes silenced) | Darkly stained |
DNA double helix
↓
Winds around HISTONE OCTAMER (8 histones)
↓
NUCLEOSOME (basic unit of chromatin)
↓
String of nucleosomes = "beads on a string"
↓
Coiled further → solenoid
↓
Further folded → loops → chromosome
| Part | Description |
|---|---|
| Centromere | Constriction point where spindle fibres attach; divides into two arms |
| Chromatid | Each half of duplicated chromosome |
| Telomere | Ends of chromosome; protect from degradation |
| Satellite | Extra piece on chromosome arm (in some chromosomes) |
| Secondary constriction | Where nucleolus organiser region (NOR) is located |
| Type | Centromere position | Arm ratio | Shape during anaphase |
|---|---|---|---|
| Metacentric | Middle | Equal arms (p = q) | V-shape |
| Submetacentric | Off-centre | Unequal arms | L-shape |
| Acrocentric | Near one end | Very unequal arms | J-shape |
| Telocentric | At tip (end) | One arm only | I-shape |
| Type | Description |
|---|---|
| Polytene chromosomes | Giant chromosomes in salivary glands of Drosophila (many copies of DNA) |
| Lampbrush chromosomes | Found in oocytes of amphibians during meiosis |
Nucleus discovered by = Robert Brown (1831)
Double membrane = nuclear envelope (outer continuous with RER)
Nuclear pores = RNA + protein transport
CHROMATIN = DNA + histones
Euchromatin = loose, active | Heterochromatin = tight, inactive
Nucleosome = DNA + histone octamer (8 histones: 2×H2A, 2×H2B, 2×H3, 2×H4)
H1 = linker histone (NOT in octamer)
146 bp DNA wraps around octamer
NUCLEOLUS = NO membrane, rRNA synthesis + ribosome assembly
Disappears at prophase, reforms at telophase
CHROMOSOMES:
Metacentric = middle centromere = V shape
Submetacentric = off-centre = L shape
Acrocentric = near end = J shape
Telocentric = at tip = I shape (NOT in humans)
Polytene = Drosophila salivary gland
Lampbrush = amphibian oocytes
Anucleate cells = mature RBCs, sieve tube cells, platelets
| Topic | Status |
|---|---|
| Cell Theory & Discovery | ✅ |
| Prokaryotic vs Eukaryotic Overview | ✅ |
| Prokaryotic Cell (detailed) | ✅ |
| Cell Membrane | ✅ |
| Cell Wall | ✅ |
| Endomembrane System | ✅ |
| Mitochondria | ✅ |
| Plastids | ✅ |
| Ribosomes | ✅ |
| Cytoskeleton, Cilia, Flagella, Centrioles | ✅ |
| Nucleus | ✅ |
3
CELL CYCLE
├── INTERPHASE (~95% of cell cycle time)
│ ├── G1 phase (Gap 1 / First growth phase)
│ ├── S phase (Synthesis phase)
│ └── G2 phase (Gap 2 / Second growth phase)
│
└── M PHASE (~5% of cell cycle time)
├── Karyokinesis (nuclear division)
│ ├── Prophase
│ ├── Metaphase
│ ├── Anaphase
│ └── Telophase
└── Cytokinesis (cytoplasmic division)
| Phase | Duration |
|---|---|
| G1 phase | ~11 hours |
| S phase | ~8 hours |
| G2 phase | ~4 hours |
| M phase | ~1 hour |
Can I get all the notes we discussed in pdf
mkdir -p /home/daytona/workspace/neet-notes && ls /home/daytona/workspace/neet-notes
~/neet-notes/generate_notes.py
from reportlab.lib.pagesizes import A4
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import cm
from reportlab.lib import colors
from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, HRFlowable, PageBreak
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
doc = SimpleDocTemplate(
"/home/daytona/workspace/neet-notes/NEET_Biology_Cell_Notes.pdf",
pagesize=A4,
rightMargin=1.5*cm, leftMargin=1.5*cm,
topMargin=1.5*cm, bottomMargin=1.5*cm
)
styles = getSampleStyleSheet()
# Custom styles
title_style = ParagraphStyle('Title', parent=styles['Title'],
fontSize=20, textColor=colors.HexColor('#1a237e'),
spaceAfter=6, alignment=TA_CENTER, fontName='Helvetica-Bold')
subtitle_style = ParagraphStyle('Subtitle', parent=styles['Normal'],
fontSize=12, textColor=colors.HexColor('#1565c0'),
spaceAfter=4, alignment=TA_CENTER, fontName='Helvetica')
chapter_style = ParagraphStyle('Chapter', parent=styles['Normal'],
fontSize=16, textColor=colors.white,
spaceAfter=6, spaceBefore=12, fontName='Helvetica-Bold',
backColor=colors.HexColor('#1a237e'), leading=22,
leftIndent=8, rightIndent=8)
topic_style = ParagraphStyle('Topic', parent=styles['Normal'],
fontSize=13, textColor=colors.white,
spaceAfter=4, spaceBefore=8, fontName='Helvetica-Bold',
backColor=colors.HexColor('#1565c0'), leading=18,
leftIndent=6, rightIndent=6)
subtopic_style = ParagraphStyle('Subtopic', parent=styles['Normal'],
fontSize=11, textColor=colors.HexColor('#1a237e'),
spaceAfter=3, spaceBefore=6, fontName='Helvetica-Bold',
borderPad=2)
body_style = ParagraphStyle('Body', parent=styles['Normal'],
fontSize=9.5, textColor=colors.HexColor('#212121'),
spaceAfter=3, spaceBefore=1, fontName='Helvetica',
leading=14, leftIndent=4)
trap_style = ParagraphStyle('Trap', parent=styles['Normal'],
fontSize=9.5, textColor=colors.HexColor('#b71c1c'),
spaceAfter=3, spaceBefore=2, fontName='Helvetica-Bold',
backColor=colors.HexColor('#ffebee'), leading=14,
leftIndent=8, rightIndent=4, borderPad=3)
pyq_style = ParagraphStyle('PYQ', parent=styles['Normal'],
fontSize=9.5, textColor=colors.HexColor('#1b5e20'),
spaceAfter=2, spaceBefore=2, fontName='Helvetica',
backColor=colors.HexColor('#e8f5e9'), leading=14,
leftIndent=8, rightIndent=4, borderPad=3)
snap_style = ParagraphStyle('Snap', parent=styles['Normal'],
fontSize=9, textColor=colors.HexColor('#212121'),
spaceAfter=2, spaceBefore=2, fontName='Courier',
backColor=colors.HexColor('#f5f5f5'), leading=13,
leftIndent=8, rightIndent=4, borderPad=4)
note_style = ParagraphStyle('Note', parent=styles['Normal'],
fontSize=9, textColor=colors.HexColor('#4a148c'),
spaceAfter=2, spaceBefore=2, fontName='Helvetica-Oblique',
leading=13, leftIndent=4)
story = []
def add_title():
story.append(Spacer(1, 0.3*cm))
story.append(Paragraph("NEET 2027 BIOLOGY NOTES", title_style))
story.append(Paragraph("Cell - The Unit of Life + Cell Cycle Overview", subtitle_style))
story.append(Paragraph("Prepared for NEET 2027 | Based on NCERT Class 11", subtitle_style))
story.append(Spacer(1, 0.2*cm))
story.append(HRFlowable(width="100%", thickness=2, color=colors.HexColor('#1a237e')))
story.append(Spacer(1, 0.3*cm))
def ch(text):
story.append(Spacer(1, 0.2*cm))
story.append(Paragraph(text, chapter_style))
story.append(Spacer(1, 0.1*cm))
def tp(text):
story.append(Spacer(1, 0.15*cm))
story.append(Paragraph(text, topic_style))
story.append(Spacer(1, 0.1*cm))
def st(text):
story.append(Paragraph(text, subtopic_style))
def b(text):
story.append(Paragraph(text, body_style))
def trap(text):
story.append(Paragraph("⚠️ TRAP: " + text, trap_style))
def pyq(text):
story.append(Paragraph(text, pyq_style))
def snap(lines):
for line in lines:
story.append(Paragraph(line, snap_style))
def sp():
story.append(Spacer(1, 0.15*cm))
def table(headers, rows, col_widths=None):
data = [headers] + rows
if col_widths is None:
col_widths = [doc.width / len(headers)] * len(headers)
t = Table(data, colWidths=col_widths)
t.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,0), colors.HexColor('#1565c0')),
('TEXTCOLOR', (0,0), (-1,0), colors.white),
('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'),
('FONTSIZE', (0,0), (-1,0), 9),
('FONTNAME', (0,1), (-1,-1), 'Helvetica'),
('FONTSIZE', (0,1), (-1,-1), 8.5),
('BACKGROUND', (0,1), (-1,-1), colors.HexColor('#f5f5f5')),
('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.HexColor('#ffffff'), colors.HexColor('#e3f2fd')]),
('GRID', (0,0), (-1,-1), 0.5, colors.HexColor('#90caf9')),
('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
('PADDING', (0,0), (-1,-1), 4),
('ALIGN', (0,0), (-1,-1), 'LEFT'),
]))
story.append(t)
story.append(Spacer(1, 0.15*cm))
# ============================================================
add_title()
# ============================================================
ch("CHAPTER: CELL - THE UNIT OF LIFE")
# TOPIC 1
tp("TOPIC 1: WHAT IS A CELL? + CELL THEORY")
st("Discovery of Cell")
b("• Cell = basic structural and functional unit of life")
b("• <b>Robert Hooke (1665)</b> - first observed cells in dead cork, coined term <b>'cell'</b>")
b("• <b>Anton von Leeuwenhoek</b> - first observed <b>living cells</b> (bacteria, RBCs)")
b("• <b>Robert Brown (1831)</b> - discovered the <b>nucleus</b>")
trap("Hooke saw DEAD cells (cork). Leeuwenhoek saw LIVING cells first.")
st("Cell Theory")
table(
['Who', 'Year', 'Contribution'],
[['M.J. Schleiden', '1838', 'All plants are made of cells'],
['Theodor Schwann', '1839', 'All animals are made of cells'],
['Rudolf Virchow', '1855', '"Omnis cellula e cellula" - cells from pre-existing cells']],
[4*cm, 2.5*cm, 9*cm]
)
b("Cell Theory States: (1) All organisms made of cells (2) Cell = basic unit of life (3) Cells arise from pre-existing cells")
trap("Cell theory was NOT given by a single person. Virchow MODIFIED it, not proposed it.")
b("Exceptions to Cell Theory: Viruses (non-cellular) | First cell (had no pre-existing cell)")
st("PYQs")
pyq("[NEET 2022] Who coined 'cell'? → Robert Hooke")
pyq("[NEET 2019] 'Omnis cellula e cellula' was stated by? → Rudolf Virchow")
pyq("[NEET 2018] Cell theory proposed by? → Schleiden and Schwann (Virchow modified)")
pyq("[NEET 2017] First to observe living cells? → Leeuwenhoek")
pyq("[NEET 2016] What is NOT explained by cell theory? → Mechanism of cell division")
# TOPIC 2
tp("TOPIC 2: OVERVIEW - PROKARYOTIC vs EUKARYOTIC CELL")
st("Two Basic Types")
b("• <b>Prokaryotic</b> (Pro = before, karyon = nucleus): No membrane-bound nucleus")
b(" Examples: Bacteria, Cyanobacteria, Mycoplasma, PPLO")
b("• <b>Eukaryotic</b> (Eu = true, karyon = nucleus): True membrane-bound nucleus")
b(" Examples: All plants, animals, fungi, protists")
st("Size of Cells")
table(
['Cell', 'Size'],
[['Mycoplasma', '0.1 µm (smallest living cell)'],
['Bacteria (prokaryote)', '1-10 µm'],
['Eukaryotic cell', '10-100 µm'],
['Largest cell', 'Ostrich egg (egg yolk)'],
['Longest cell in humans', 'Nerve cell (neuron)']],
[7*cm, 9*cm]
)
trap("Mycoplasma = smallest AND has NO cell wall. Both facts are asked.")
st("Master Comparison Table")
table(
['Feature', 'Prokaryotic', 'Eukaryotic'],
[['Nucleus', 'Absent (nucleoid)', 'Present (membrane-bound)'],
['Size', 'Small (1-10 µm)', 'Large (10-100 µm)'],
['DNA shape', 'Circular, naked', 'Linear, with histones'],
['Histones', 'Absent', 'Present'],
['Membrane organelles', 'ABSENT', 'Present'],
['Ribosomes', '70S (50S+30S)', '80S (60S+40S)'],
['Cell wall', 'Peptidoglycan', 'Cellulose(plant)/Chitin(fungi)/Absent(animal)'],
['Cell division', 'Binary fission', 'Mitosis/Meiosis'],
['Nucleolus', 'Absent', 'Present'],
['Examples', 'Bacteria, Cyanobacteria', 'Plants, Animals, Fungi']],
[4.5*cm, 5*cm, 6*cm]
)
trap("Mitochondria & Chloroplasts have 70S ribosomes (inside eukaryote) - semi-autonomous!")
trap("'Which eukaryotic organelles have 70S ribosomes?' → Mitochondria AND Chloroplasts (BOTH)")
st("PYQs")
pyq("[NEET 2023] Which is a prokaryote? → Cyanobacteria")
pyq("[NEET 2022] Ribosomes of prokaryotes? → 70S (50S + 30S subunits)")
pyq("[NEET 2021] Which organelle is absent in prokaryotes? → Mitochondria")
pyq("[NEET 2019] Smallest living cell? → Mycoplasma")
pyq("[NEET 2018] Which has 70S ribosomes? → Both Mitochondria and Chloroplast")
# TOPIC 3
tp("TOPIC 3: PROKARYOTIC CELL - DETAILED")
st("Cell Envelope (3 layers outer→inner)")
b("1. <b>Glycocalyx</b> (outermost): Slime layer (loose) or Capsule (thick, organized) - polysaccharides")
b(" Function: protection, attachment, virulence")
b("2. <b>Cell wall</b>: Peptidoglycan (murein) - unique to bacteria; absent in Mycoplasma")
b("3. <b>Plasma membrane</b>: selectively permeable, innermost layer, site of respiration")
trap("Glycocalyx = outermost. Capsule = thick glycocalyx. Both are asked in NEET.")
st("Gram Staining")
table(
['Type', 'Gram Stain', 'Cell Wall', 'Example'],
[['Gram +ve', 'Purple/Violet', 'Thick peptidoglycan, NO outer membrane', 'Staphylococcus'],
['Gram -ve', 'Pink/Red', 'Thin peptidoglycan + outer LPS membrane', 'E. coli, Salmonella']],
[2.5*cm, 3*cm, 7*cm, 3*cm]
)
trap("Gram +ve = thick wall but stains PURPLE. Gram -ve = thin wall but has EXTRA outer membrane.")
st("Mesosome")
b("• Infolding of plasma membrane (NOT cell wall)")
b("• Types: vesicles, tubules, lamellae")
b("• Functions: cell wall formation, DNA replication, respiration, secretion, increases surface area")
trap("Mesosome = infolding of PLASMA MEMBRANE. Increases surface area.")
st("Genetic Material")
b("• Chromosomal DNA: single, circular, double-stranded, naked (no histones) in nucleoid region")
b("• Plasmids: small, circular, extra-chromosomal, self-replicating; used in recombinant DNA technology")
trap("Plasmids not essential for survival but give antibiotic resistance. Used as vectors in genetic engineering.")
st("Appendages")
table(
['Structure', 'Made of', 'Function', 'Detail'],
[['Flagella', 'Flagellin protein', 'Locomotion', 'Filament → Hook → Basal body'],
['Pili', 'Pilin protein', 'Conjugation (DNA transfer)', 'Few, longer'],
['Fimbriae', 'Pilin protein', 'Attachment to surfaces', 'Many, shorter']],
[2.5*cm, 3*cm, 4*cm, 4.5*cm]
)
trap("Bacterial flagella = flagellin (NOT microtubules). Pili = conjugation. Fimbriae = attachment.")
b("Flagella arrangements: Monotrichous | Lophotrichous | Amphitrichous | Peritrichous (E.coli)")
st("Ribosomes & Inclusions")
b("• Ribosomes: 70S (50S+30S), free in cytoplasm, target of antibiotics")
b("• Streptomycin → targets 30S subunit | Erythromycin → targets 50S subunit")
b("• Inclusion bodies: NOT membrane-bound; phosphate granules, glycogen, gas vacuoles (cyanobacteria)")
trap("Gas vacuoles found in CYANOBACTERIA - help them float.")
st("PYQs")
pyq("[NEET 2023] Mesosome in bacteria is? → Infolding of plasma membrane")
pyq("[NEET 2021] Gas vacuoles found in? → Cyanobacteria")
pyq("[NEET 2020] Pili in bacteria help in? → Conjugation (DNA transfer)")
pyq("[NEET 2019] Bacterial cell wall made of? → Peptidoglycan (murein)")
pyq("[NEET 2018] Gram -ve differs from Gram +ve in having? → Outer membrane of lipopolysaccharide")
pyq("[NEET 2017] Which component of bacterial flagellum embedded in cell envelope? → Basal body")
story.append(PageBreak())
# TOPIC 4A
tp("TOPIC 4A: EUKARYOTIC CELL - CELL MEMBRANE")
st("What is Cell Membrane?")
b("• Also called plasma membrane / plasmalemma")
b("• Present in ALL cells (prokaryotes + eukaryotes) | Selectively permeable")
b("• Made of: lipids + proteins + small amount of carbohydrates")
b("• Phospholipids: hydrophilic head (faces water) + hydrophobic tail (faces inside bilayer)")
trap("Cholesterol is in ANIMAL cells only. NOT in plant cell membranes or prokaryotes.")
st("Fluid Mosaic Model")
b("• Proposed by <b>Singer and Nicolson (1972)</b>")
b("• 'Fluid' = phospholipids can move laterally | 'Mosaic' = proteins embedded like tiles")
b("• Integral proteins: embedded within bilayer (transmembrane) - channels, carriers, receptors")
b("• Peripheral proteins: on surface only - enzymes, structural support")
b("• Carbohydrates: ONLY on outer surface → glycolipids + glycoproteins = glycocalyx")
trap("Carbohydrates are only on the OUTER face of membrane - NOT inside. Creates asymmetry.")
st("Transport Across Membrane")
table(
['Type', 'Energy', 'Direction', 'Examples'],
[['Simple diffusion', 'No', 'High→Low', 'O₂, CO₂, ethanol, urea'],
['Osmosis', 'No', 'Water movement', 'Water'],
['Facilitated diffusion', 'No (needs protein)', 'High→Low', 'Glucose, amino acids, ions'],
['Active transport', 'YES (ATP)', 'Low→High (against gradient)', 'Na⁺/K⁺ pump']],
[3.5*cm, 2.5*cm, 3.5*cm, 5.5*cm]
)
st("Osmosis Effects")
table(
['Solution', 'Plant Cell', 'Animal Cell'],
[['Hypotonic (less solute outside)', 'Turgid (water enters, wall resists)', 'Swells → lysis (bursts)'],
['Hypertonic (more solute outside)', 'Plasmolysis (water leaves)', 'Crenation (shrinks)'],
['Isotonic (equal solute)', 'No change', 'No change']],
[5*cm, 4.5*cm, 4.5*cm]
)
trap("Plasmolysis = plant cells only (have cell wall). Animal cells crenate or lyse.")
st("Historical Models")
table(
['Model', 'By', 'Year'],
[['Lipid bilayer', 'Gorter and Grendel', '1925'],
['Protein-lipid-protein sandwich', 'Davson and Danielli', '1935'],
['Fluid Mosaic Model (CURRENT)', 'Singer and Nicolson', '1972']],
[6*cm, 5*cm, 3.5*cm]
)
st("PYQs")
pyq("[NEET 2024] Which model: proteins floating in lipid bilayer? → Fluid Mosaic Model (Singer & Nicolson, 1972)")
pyq("[NEET 2020] Plasmolysis occurs when plant cell placed in? → Hypertonic solution")
pyq("[NEET 2018] Na⁺/K⁺ pump is an example of? → Active transport")
pyq("[NEET 2017] Integral proteins in membrane? → Embedded within phospholipid bilayer")
# TOPIC 4B
tp("TOPIC 4B: CELL WALL")
st("Overview")
b("• Rigid, NON-LIVING layer outside plasma membrane")
b("• Present in: Plants, Fungi, Bacteria, Algae | ABSENT in: Animal cells and Mycoplasma")
b("• Functions: definite shape, mechanical strength, protects against osmotic lysis, barrier to pathogens")
trap("Cell wall = NON-LIVING. Plasma membrane = LIVING.")
st("Cell Wall Composition")
table(
['Organism', 'Cell Wall Composition'],
[['Plants', 'Cellulose (primary) + hemicellulose + pectin'],
['Fungi', 'Chitin'],
['Bacteria', 'Peptidoglycan (murein)'],
['Algae', 'Cellulose + other polysaccharides'],
['Diatoms', 'Silica (silicon dioxide) - forms diatomaceous earth'],
['Archaebacteria', 'Pseudopeptidoglycan (NOT true peptidoglycan)'],
['Mycoplasma', 'ABSENT - no cell wall']],
[4.5*cm, 11*cm]
)
trap("Fungal cell wall = Chitin (nitrogen-containing polysaccharide, same as insect exoskeleton).")
trap("Diatom cell wall = Silica. Very specific, frequently asked.")
st("Plant Cell Wall Layers")
b("• Middle Lamella (outermost, shared between cells): <b>Calcium pectate</b> - FIRST formed at cell plate; dissolves in ripe fruit")
b("• Primary Cell Wall: thin, flexible, growing cells - cellulose + hemicellulose + pectin")
b("• Secondary Cell Wall: thick, rigid, mature cells - cellulose + LIGNIN (in xylem, sclerenchyma)")
trap("Middle lamella = CALCIUM PECTATE (NOT cellulose). First formed during cell division.")
st("Plasmodesmata")
b("• Channels through cell wall connecting adjacent plant cells")
b("• Lined with plasma membrane | Contain desmotubule (connected to ER)")
b("• Function: movement of water, minerals, molecules between cells (symplast pathway)")
trap("Plasmodesmata go through CELL WALL (not just membrane). Lined with plasma membrane.")
st("PYQs")
pyq("[NEET 2024] Cell wall of fungi made of? → Chitin")
pyq("[NEET 2023] Middle lamella composed of? → Calcium pectate")
pyq("[NEET 2022] Diatom cell wall made of? → Silica (silicon dioxide)")
pyq("[NEET 2020] Plasmodesmata are? → Cytoplasmic connections between adjacent plant cells through cell wall")
pyq("[NEET 2019] Primary cell wall made of? → Cellulose, hemicellulose and pectin")
story.append(PageBreak())
# TOPIC 4C
tp("TOPIC 4C: ENDOMEMBRANE SYSTEM")
st("Members of Endomembrane System")
b("• ER + Golgi apparatus + Lysosomes + Vacuoles")
b("• NOT included: Mitochondria, Chloroplast, Peroxisomes (independent functions)")
trap("Mitochondria and chloroplasts are NOT part of endomembrane system.")
st("A. Endoplasmic Reticulum (ER)")
table(
['Feature', 'Rough ER (RER)', 'Smooth ER (SER)'],
[['Ribosomes', 'PRESENT (rough appearance)', 'ABSENT'],
['Main function', 'Protein synthesis + secretion', 'Lipid synthesis'],
['Other', 'Glycosylation of proteins', 'Detoxification, steroid synthesis'],
['Found in', 'Secretory cells (pancreas, liver)', 'Liver cells, gonads']],
[3.5*cm, 6.5*cm, 5.5*cm]
)
trap("SER in liver = detoxification. SER in muscle = calcium storage (sarcoplasmic reticulum).")
st("B. Golgi Apparatus")
b("• Discovered by <b>Camillo Golgi (1898)</b> | Also called Dictyosome in plants")
b("• Stack of flattened membrane-bound cisternae")
b("• <b>Cis face</b> (forming face) = faces ER, RECEIVES vesicles")
b("• <b>Trans face</b> (maturing face) = faces plasma membrane, RELEASES vesicles")
b("• Functions: packaging, glycosylation, sulfation, secretion, forms lysosomes, acrosome, cell plate")
trap("Cis = receiving (faces ER). Trans = secreting (faces plasma membrane). Commonly reversed.")
trap("Acrosome of sperm = formed by Golgi apparatus. Cell plate in dividing plant cells = Golgi vesicles.")
st("C. Lysosomes")
b("• Membrane-bound vesicles with hydrolytic enzymes (work at acidic pH 4.5-5.0)")
b("• Formed by <b>Golgi apparatus</b> | Called <b>'suicidal bags'</b> - term by <b>Christian de Duve</b>")
b("• Enzymes: lipases, proteases, carbohydrases, nucleases")
b("• Functions: intracellular digestion, autophagy (digests old organelles), autolysis (self-destruction)")
trap("Autolysis = self-destruction when lysosome membrane breaks. Happens in tadpole tail disappearance.")
st("D. Vacuoles")
b("• Membrane-bound spaces | Membrane = <b>Tonoplast</b> | Fluid = <b>Cell sap</b>")
b("• Plant cells: large central vacuole (up to 90% of cell volume) - stores water, pigments, waste")
b("• Contractile vacuole (Amoeba): <b>osmoregulation</b> - expels excess water")
b("• Anthocyanins (blue, red, purple pigments) stored in vacuoles")
trap("Tonoplast = vacuole membrane (NOT plasma membrane). Contractile vacuole = osmoregulation.")
st("Endomembrane Flow")
snap(["ER → [vesicles] → GOLGI (cis) → processed → (trans) →",
" → Secretory vesicles → Plasma membrane (secretion)",
" → Lysosomes (intracellular digestion)",
" → Vacuoles (storage)"])
st("PYQs")
pyq("[NEET 2024] Acrosome of sperm derived from? → Golgi apparatus")
pyq("[NEET 2023] 'Suicidal bags' are? → Lysosomes (Christian de Duve)")
pyq("[NEET 2022] NOT part of endomembrane system? → Mitochondria")
pyq("[NEET 2021] Cis face of Golgi? → Faces the ER (receiving/forming face)")
pyq("[NEET 2020] Tonoplast is the membrane of? → Vacuole")
pyq("[NEET 2016] Contractile vacuole in Amoeba? → Osmoregulation")
# TOPIC 4D
tp("TOPIC 4D: MITOCHONDRIA")
st("Overview")
b("• <b>Powerhouse of the cell</b> | Found in ALL eukaryotic cells EXCEPT mature RBCs")
b("• Double membrane: outer (smooth, freely permeable, has porins) + inner (folded into cristae)")
b("• Cristae = inner membrane folds - increase surface area for ATP synthesis")
b("• Inner membrane has: ETS complexes + ATP synthase (F₀F₁/oxysomes) + F₁ particles project into matrix")
b("• Matrix contains: circular DNA + 70S ribosomes + Krebs cycle enzymes + NAD, FAD, CoA")
trap("Matrix = Krebs cycle. Inner membrane = ETS and ATP synthesis. Glycolysis = CYTOPLASM (not mitochondria).")
trap("F₁ particles (ATP synthase headpieces) on INNER membrane projecting into MATRIX.")
st("Function by Location")
table(
['Process', 'Location'],
[['Glycolysis', 'CYTOPLASM (NOT mitochondria)'],
['Pyruvate oxidation', 'Matrix'],
['Krebs cycle (TCA)', 'MATRIX'],
['Electron Transport System', 'INNER MEMBRANE'],
['ATP synthesis', 'INNER MEMBRANE (F₁ particles)']],
[6*cm, 9*cm]
)
st("Semi-Autonomous Nature")
b("• Own circular, double-stranded, naked DNA (no histones) = mtDNA")
b("• Own 70S ribosomes | Can divide by binary fission")
b("• Still depends on nucleus for most proteins → semi-autonomous (NOT fully autonomous)")
b("• Supports <b>Endosymbiont Theory</b> (Lynn Margulis) - once free-living aerobic bacteria")
b("• mtDNA is <b>maternally inherited</b> - used in evolutionary and forensic studies")
trap("mtDNA = maternally inherited. 'DNA inherited only from mother' = mitochondrial DNA.")
st("Number of Membranes (Important Table)")
table(
['Organelle', 'No. of Membranes'],
[['Mitochondria', '2 (outer + inner)'],
['Chloroplast', '2 (outer + inner)'],
['Nucleus', '2 (outer + inner nuclear membrane)'],
['ER, Golgi, Lysosome, Vacuole', '1'],
['Ribosome', '0 (no membrane)'],
['Centriole', '0 (no membrane)']],
[7*cm, 8*cm]
)
st("PYQs")
pyq("[NEET 2024] Krebs cycle takes place in? → Matrix of mitochondria")
pyq("[NEET 2023] Cristae found in? → Inner membrane of mitochondria")
pyq("[NEET 2022] Mitochondria semi-autonomous because? → Own circular DNA and 70S ribosomes")
pyq("[NEET 2020] ETS occurs on? → Inner membrane of mitochondria")
pyq("[NEET 2017] Glycolysis occurs in? → Cytoplasm (NOT mitochondria)")
pyq("[NEET 2016] Endosymbiont theory explains origin of? → Mitochondria and Chloroplasts")
story.append(PageBreak())
# TOPIC 4E
tp("TOPIC 4E: PLASTIDS")
st("Overview")
b("• Large organelles in <b>plant cells and algae ONLY</b> - absent in animals and fungi")
b("• Double membrane + own circular DNA + 70S ribosomes → semi-autonomous")
b("• Three types: Chloroplasts (green), Chromoplasts (coloured), Leucoplasts (colourless)")
b("• All develop from <b>proplastids</b> and can interconvert")
st("1. Chloroplast")
b("• Shape: lens-shaped/discoid | Number: 1 per cell (algae), 20-40 per cell (higher plants)")
b("• Structure: Outer membrane → Inner membrane → Stroma → Thylakoids → Grana")
b("• <b>Grana</b> = stacks of thylakoids (like stack of coins)")
b("• <b>Stroma lamellae</b> = membranes connecting grana")
b("• <b>Light reactions</b> → thylakoid membrane | <b>Dark reactions (Calvin cycle)</b> → stroma")
trap("Light reactions = thylakoid membrane. Dark reactions = stroma. Very commonly asked.")
table(
['Pigment', 'Colour', 'Role'],
[['Chlorophyll a', 'Bright green', 'PRIMARY pigment - directly involved in photochemistry'],
['Chlorophyll b', 'Yellow-green', 'Accessory pigment'],
['Carotenoids', 'Yellow-orange', 'Accessory pigment'],
['Xanthophylls', 'Yellow', 'Accessory pigment']],
[4*cm, 3*cm, 8*cm]
)
trap("Chlorophyll a = PRIMARY pigment. All others are ACCESSORY pigments.")
st("2. Chromoplasts")
b("• Coloured pigments (carotenoids - yellow, orange, red) | NO chlorophyll | NO photosynthesis")
b("• Found in: fruits, flower petals, autumn leaves")
b("• Tomato = lycopene (red) | Carrot = beta-carotene (orange)")
b("• Function: attract insects/animals for pollination and seed dispersal")
trap("'Green tomato ripens to red' = chloroplast converts to CHROMOPLAST.")
st("3. Leucoplasts")
table(
['Type', 'Stores', 'Example'],
[['Amyloplasts', 'Starch (carbohydrates)', 'Potato tubers, cereal grains'],
['Elaioplasts', 'Oils and fats (lipids)', 'Oil seeds'],
['Aleuroplasts', 'Proteins', 'Wheat grain aleurone layer']],
[4*cm, 5*cm, 6*cm]
)
trap("Potato starch stored in AMYLOPLASTS (leucoplasts) NOT chloroplasts.")
st("PYQs")
pyq("[NEET 2024] Leucoplasts involved in? → Storage of starch, oils or proteins")
pyq("[NEET 2023] Light reaction of photosynthesis occurs on? → Thylakoid membrane")
pyq("[NEET 2022] Stroma of chloroplast is site of? → Dark reaction/Calvin cycle/CO₂ fixation")
pyq("[NEET 2021] Which plastid stores starch? → Amyloplast (type of leucoplast)")
pyq("[NEET 2020] During ripening of tomato, chloroplasts convert to? → Chromoplasts")
pyq("[NEET 2018] Primary pigment in photosynthesis? → Chlorophyll a")
# TOPIC 4F
tp("TOPIC 4F: RIBOSOMES")
st("Overview")
b("• <b>Protein factories</b> of the cell | Site of protein synthesis in ALL cells")
b("• NOT membrane-bound | Present in prokaryotes AND eukaryotes (universal)")
b("• First observed by <b>George Palade (1953)</b> under electron microscope")
b("• Made of: rRNA + proteins | Two subunits - large and small")
b("• S = Svedberg unit (sedimentation coefficient) - values are NOT additive")
trap("50S + 30S = 70S (NOT 80S). 60S + 40S = 80S (NOT 100S). S values are NOT additive!")
st("Types of Ribosomes")
table(
['Feature', '70S Ribosome', '80S Ribosome'],
[['Found in', 'Prokaryotes, Mitochondria, Chloroplasts', 'Eukaryotic cytoplasm'],
['Large subunit', '50S (23S + 5S rRNA)', '60S (28S + 5.8S + 5S rRNA)'],
['Small subunit', '30S (16S rRNA)', '40S (18S rRNA)']],
[3.5*cm, 6.5*cm, 6*cm]
)
trap("70S ribosomes in: prokaryotes + mitochondria + chloroplasts (all three).")
trap("16S rRNA (30S) used by Carl Woese for phylogenetic classification of organisms.")
st("Location in Eukaryotes")
b("• Free in cytoplasm (80S) → proteins for intracellular use")
b("• On RER surface (80S) → secretory proteins (exported)")
b("• In mitochondria (70S) → mitochondrial proteins")
b("• In chloroplasts (70S) → chloroplast proteins")
b("• Polysomes (polyribosomes) = multiple ribosomes on ONE mRNA → increased efficiency")
b("• Ribosome assembly occurs in <b>nucleolus</b> (rRNA synthesized there)")
trap("Nucleolus = site of rRNA synthesis AND ribosome subunit assembly.")
st("Antibiotics and Ribosomes (NEET 2027 Level)")
table(
['Antibiotic', 'Target', 'Effect'],
[['Streptomycin', '30S subunit (prokaryote)', 'Inhibits bacterial protein synthesis'],
['Erythromycin', '50S subunit (prokaryote)', 'Inhibits bacterial protein synthesis'],
['Tetracycline', '30S subunit', 'Blocks aminoacyl-tRNA binding'],
['Cycloheximide', '80S subunit (eukaryote)', 'Inhibits eukaryotic protein synthesis']],
[4*cm, 4.5*cm, 7*cm]
)
trap("Antibiotics target 70S (bacteria) → safe for human 80S ribosomes = selective toxicity.")
st("PYQs")
pyq("[NEET 2024] 70S ribosomes found in? → Prokaryotes, Mitochondria, Chloroplasts")
pyq("[NEET 2022] Ribosomes assembled in? → Nucleolus")
pyq("[NEET 2021] Streptomycin inhibits by targeting? → 30S subunit of 70S ribosome")
pyq("[NEET 2017] Ribosomes first observed by? → George Palade")
pyq("[NEET 2016] Which organelle has NO membrane? → Ribosome (also centriole)")
story.append(PageBreak())
# TOPIC 4G
tp("TOPIC 4G: CYTOSKELETON, CILIA, FLAGELLA & CENTRIOLES")
st("A. Cytoskeleton")
b("• Network of protein filaments in eukaryotic cytoplasm | NOT in prokaryotes")
table(
['Type', 'Diameter', 'Protein', 'Function'],
[['Microfilaments', '6 nm (thinnest)', 'Actin', 'Cell movement, muscle contraction, cytokinesis'],
['Intermediate filaments', '10 nm', 'Keratin, vimentin', 'Mechanical strength, anchoring nucleus'],
['Microtubules', '25 nm (thickest)', 'Tubulin', 'Cell shape, spindle, cilia/flagella, transport']],
[3.5*cm, 3*cm, 3.5*cm, 5.5*cm]
)
trap("Microfilaments = actin. Microtubules = tubulin. Spindle fibres = microtubules (tubulin).")
st("B. Cilia and Flagella")
table(
['Feature', 'Cilia', 'Flagella'],
[['Size', 'Short', 'Long'],
['Number', 'Many (numerous)', 'Few (1-few)'],
['Movement', 'Oar-like (back and forth)', 'Whip-like (undulating)'],
['Examples', 'Trachea lining, Paramecium', 'Sperm, Chlamydomonas, Euglena']],
[3.5*cm, 6*cm, 6*cm]
)
b("• Both have SAME internal structure: <b>9+2 axoneme</b>")
b("• 9 doublet microtubules (outer ring) + 2 central singlet microtubules")
b("• Dynein arms on A tubule → cause sliding (uses ATP) | Nexin links connect doublets")
b("• Radial spokes connect outer doublets to central sheath")
b("• Arise from <b>basal body</b> (modified centriole) at cell surface")
trap("9+2 = 9 DOUBLETS + 2 singlets. Total microtubules = 9×2+2 = 20. Movement by DYNEIN (ATPase).")
st("C. Centrioles and Centrosome")
b("• Centrosome = organelle with TWO centrioles at right angles = diplosome")
b("• Present in: animal cells + lower plants | <b>ABSENT in higher plants</b>")
b("• Centriole structure: <b>9 triplet microtubules (9+0) - NO central pair</b> | Made of tubulin")
b("• Each triplet = A+B+C tubules | Cartwheel structure (hub+spokes+rim)")
b("• Functions: organizes mitotic spindle, forms aster, forms basal body, involved in cytokinesis")
trap("Higher plants have NO centrioles yet still divide (use polar cap instead of aster).")
st("THE MOST IMPORTANT COMPARISON: 9+2 vs 9+0")
table(
['Structure', 'Arrangement', 'Microtubule type', 'Has central pair?'],
[['Cilia axoneme', '9+2', 'Doublets + 2 singlets', 'YES'],
['Flagella axoneme', '9+2', 'Doublets + 2 singlets', 'YES'],
['Centriole', '9+0', 'Triplets (A+B+C)', 'NO'],
['Basal body', '9+0', 'Triplets (A+B+C)', 'NO']],
[4*cm, 2.5*cm, 4.5*cm, 3.5*cm]
)
trap("Cilia/Flagella = 9+2 (doublets + central pair). Centriole/Basal body = 9+0 (triplets, no centre). Asked EVERY year.")
st("Microvilli (Often confused with cilia)")
b("• Finger-like projections | Core = microfilaments (ACTIN) - NOT microtubules | NOT motile")
b("• Function: increase surface area for ABSORPTION (brush border in intestine)")
b("• NO 9+2 arrangement | Found in intestinal epithelium, kidney tubules")
trap("Microvilli ≠ cilia. Microvilli have actin core (no 9+2). NOT involved in locomotion.")
st("PYQs")
pyq("[NEET 2024] Axoneme of cilia contains? → 9+2 arrangement of microtubules")
pyq("[NEET 2023] Centrioles made of? → 9 triplet microtubules (9+0) made of tubulin")
pyq("[NEET 2022] Absent in higher plants? → Centrioles")
pyq("[NEET 2021] Movement in cilia caused by? → Dynein (ATPase motor protein)")
pyq("[NEET 2019] Basal body structurally similar to? → Centriole (both 9+0 triplet arrangement)")
pyq("[NEET 2016] Which has 9+2 arrangement? → Cilia and flagella (NOT centriole = 9+0)")
# TOPIC 4H
tp("TOPIC 4H: NUCLEUS")
st("Overview")
b("• Control centre of cell | Discovered by <b>Robert Brown (1831)</b> in orchid root cells")
b("• Present in all eukaryotic cells | Usually uninucleate (one nucleus)")
b("• <b>Anucleate cells:</b> mature RBCs (mammals), sieve tube cells, platelets")
b("• <b>Binucleate:</b> Paramecium (macronucleus + micronucleus), liver cells")
b("• <b>Multinucleate:</b> fungal hyphae, osteoclasts, skeletal muscle fibres")
trap("Paramecium = TWO types: macronucleus (vegetative) + micronucleus (reproduction).")
trap("Sieve tube cells = anucleate at maturity. Companion cells (next to them) HAVE nucleus.")
st("Nuclear Envelope")
b("• Double membrane: outer + inner nuclear membrane")
b("• <b>Outer nuclear membrane continuous with RER</b> (+ ribosomes on outer surface)")
b("• Perinuclear space = space between two membranes")
b("• <b>Nuclear pores</b>: made of nucleoporin proteins; allow RNA (out) and proteins (in); selective transport")
trap("Outer nuclear membrane = continuous with ER. Nuclear pores are REGULATED channels (not open holes).")
st("Chromatin")
b("• DNA + histone proteins complex | Loosely packed in non-dividing cell")
b("• Condenses into chromosomes during cell division")
table(
['Type', 'Packing', 'Gene Activity', 'Staining'],
[['Euchromatin', 'Loosely packed', 'Transcriptionally ACTIVE', 'Lightly stained'],
['Heterochromatin', 'Tightly packed', 'Transcriptionally INACTIVE', 'Darkly stained']],
[4*cm, 4*cm, 5*cm, 3.5*cm]
)
trap("Euchromatin = loose = active (accessible to RNA polymerase). Heterochromatin = tight = inactive.")
st("Nucleosome (Chromatin Packaging)")
b("• Nucleosome = basic unit of chromatin = DNA wound around histone octamer")
b("• Histone octamer = 8 histones: 2×H2A + 2×H2B + 2×H3 + 2×H4")
b("• <b>H1 = linker histone</b> (outside core, seals DNA) - NOT part of octamer")
b("• ~146 bp of DNA wraps around one octamer | 'beads on a string' appearance")
b("• Histones = positively charged (lysine/arginine rich) | DNA = negatively charged → attraction")
trap("Histone octamer = 8 histones (NOT 4 or 5). H1 is NOT part of the octamer.")
st("Nucleolus")
b("• NON-membrane bound structure | Usually 1-2 per nucleus")
b("• Site of <b>rRNA synthesis</b> and <b>ribosome subunit assembly</b>")
b("• Rich in RNA and proteins")
b("• <b>Disappears during cell division</b> (prophase) → reforms at telophase")
b("• Larger and more prominent in cells with high protein synthesis (liver, secretory cells)")
trap("Nucleolus is NOT membrane-bound. Disappears during mitosis (prophase) - frequently asked.")
st("Chromosomes")
b("• Condensed chromatin seen during cell division | Made of DNA + histone + non-histone proteins + RNA")
b("• Centromere = constriction where spindle attaches | Telomere = protective ends")
b("• Chromatid = each half of duplicated chromosome")
table(
['Type', 'Centromere Position', 'Arms', 'Anaphase Shape'],
[['Metacentric', 'Middle', 'Equal (p=q)', 'V-shape'],
['Submetacentric', 'Off-centre', 'Unequal', 'L-shape'],
['Acrocentric', 'Near one end', 'Very unequal', 'J-shape'],
['Telocentric', 'At tip (end)', 'One arm only', 'I-shape (NOT in humans)']],
[4*cm, 4*cm, 3*cm, 4.5*cm]
)
trap("Human chromosomes: metacentric, submetacentric, acrocentric. NO telocentric in humans.")
b("• <b>Polytene chromosomes</b> = giant chromosomes in <b>Drosophila salivary gland</b>")
b("• <b>Lampbrush chromosomes</b> = found in <b>oocytes of amphibians</b> during meiosis")
st("PYQs")
pyq("[NEET 2024] Nucleolus disappears during? → Cell division (prophase)")
pyq("[NEET 2023] Euchromatin differs from heterochromatin in being? → Loosely packed, transcriptionally active")
pyq("[NEET 2022] Histone octamer contains how many histones? → 8 (2 each of H2A, H2B, H3, H4)")
pyq("[NEET 2021] Nuclear pores allow passage of? → RNA and proteins")
pyq("[NEET 2020] Nucleosome is? → DNA wrapped around histone octamer")
pyq("[NEET 2019] Outer nuclear membrane is continuous with? → Rough Endoplasmic Reticulum (RER)")
pyq("[NEET 2018] Polytene chromosomes found in? → Salivary gland cells of Drosophila")
pyq("[NEET 2017] Lampbrush chromosomes found in? → Oocytes of amphibians")
pyq("[NEET 2016] H1 histone? → Linker histone, NOT part of histone octamer")
story.append(PageBreak())
# CELL CYCLE
ch("CHAPTER: CELL CYCLE AND CELL DIVISION (upto Mitosis)")
tp("TOPIC 1: CELL CYCLE OVERVIEW")
st("Why Do Cells Divide?")
b("• Growth of organism | Repair of damaged tissues | Reproduction (asexual)")
b("• To maintain <b>nucleo-cytoplasmic (N/C) ratio</b> - as cell grows, volume↑ faster than surface area")
b("• Cell cycle described by <b>Howard and Pelc (1953)</b>")
b("• Duration: Yeast ~90 min | Human intestinal cells ~24 hours | Neurons = DO NOT divide (G0)")
trap("Cell divides to maintain NUCLEO-CYTOPLASMIC RATIO - the scientific reason.")
st("Two Major Phases")
table(
['Phase', 'Sub-phases', 'Time (24h cell)', 'What happens'],
[['Interphase', 'G1 + S + G2', '~23 hours (~95%)', 'Cell preparation for division'],
['M phase', 'Karyokinesis + Cytokinesis', '~1 hour (~5%)', 'Actual cell division']],
[3*cm, 3.5*cm, 4*cm, 5.5*cm]
)
trap("Interphase takes ~95% of total cell cycle. M phase = only ~5%. Interphase is NOT resting phase.")
st("Time Distribution")
table(
['Phase', 'Duration (24h cell)'],
[['G1 phase', '~11 hours'],
['S phase', '~8 hours'],
['G2 phase', '~4 hours'],
['M phase', '~1 hour']],
[5*cm, 10*cm]
)
st("G0 Phase (Quiescent Stage)")
b("• Cells EXIT cell cycle and enter G0")
b("• Metabolically active but do NOT divide")
b("• Examples: Neurons (permanent G0), Cardiac muscle cells (permanent G0)")
b("• Liver cells - in G0 but CAN re-enter cell cycle if needed")
trap("Neurons are in G0 - do NOT divide in adults. This is why brain injuries are permanent.")
st("PYQs")
pyq("[NEET 2023] Cell cycle described by? → Howard and Pelc (1953)")
pyq("[NEET 2022] Which phase occupies maximum time in cell cycle? → Interphase (~95%)")
pyq("[NEET 2021] Cells in G0 phase? → Metabolically active but stopped dividing")
pyq("[NEET 2019] Neurons in adults are in? → G0 phase (permanently non-dividing)")
# FOOTER
story.append(Spacer(1, 0.5*cm))
story.append(HRFlowable(width="100%", thickness=1, color=colors.HexColor('#1565c0')))
story.append(Spacer(1, 0.2*cm))
story.append(Paragraph("NEET 2027 Biology Notes | Cell - Unit of Life + Cell Cycle Overview | Prepared with Orris AI",
ParagraphStyle('Footer', parent=styles['Normal'], fontSize=8, textColor=colors.grey, alignment=TA_CENTER)))
doc.build(story)
print("PDF created successfully!")
cd /home/daytona/workspace/neet-notes && python3 generate_notes.py
ls -lh /home/daytona/workspace/neet-notes/NEET_Biology_Cell_Notes.pdf
NEET Biology Cell Notes
PDF Document · PDF
| Section | Content |
|---|---|
| Cell - Unit of Life | All 8 topics (Cell Theory → Nucleus) |
| Cell Cycle Overview | Topic 1 (covered so far) |
| Tables | Color-coded comparison tables |
| ⚠️ TRAPS | Highlighted in red - every common mistake |
| PYQs | Highlighted in green - last 10 years questions |
| Quick Snapshots | At end of each topic |
I feel revision of cell lesson is to be done
All
Ya
I will come again for test on July 4
NEET Biology Cell Notes
PDF Document · PDF
Every NCERT line you read today is 4 marks saved on July 5th.
Make visual diagrams summary
mkdir -p /home/daytona/workspace/neet-notes/diagrams && python3 -c "import matplotlib; print(matplotlib.__version__)"
~/neet-notes/diagrams/make_diagrams.py
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
from matplotlib.patches import FancyBboxPatch, FancyArrowPatch, Circle, Ellipse, Rectangle, Wedge
import matplotlib.patheffects as pe
import numpy as np
from matplotlib.gridspec import GridSpec
OUT = "/home/daytona/workspace/neet-notes/diagrams/"
# ─────────────────────────────────────────────
# DIAGRAM 1: CELL THEORY TIMELINE
# ─────────────────────────────────────────────
fig, ax = plt.subplots(figsize=(16, 6))
ax.set_xlim(0, 16)
ax.set_ylim(0, 6)
ax.axis('off')
fig.patch.set_facecolor('#0d1b2a')
ax.set_facecolor('#0d1b2a')
ax.text(8, 5.5, 'CELL THEORY — TIMELINE & KEY FACTS', fontsize=18, fontweight='bold',
color='#ffd700', ha='center', va='center')
events = [
(1665, 'Robert\nHooke', 'Observed dead\ncork cells\nCoined "CELL"', '#4fc3f7'),
(1676, 'Anton von\nLeeuwenhoek', 'First observed\nLIVING CELLS\n(bacteria, RBCs)', '#81c784'),
(1831, 'Robert\nBrown', 'Discovered\nNUCLEUS\n(orchid root)', '#ffb74d'),
(1838, 'Schleiden', 'All PLANTS\nmade of cells', '#ce93d8'),
(1839, 'Schwann', 'All ANIMALS\nmade of cells', '#f48fb1'),
(1855, 'Rudolf\nVirchow', '"Omnis cellula\ne cellula"\nCells from cells', '#ef5350'),
]
xs = [1.2, 3.2, 5.5, 8.0, 10.5, 13.2]
for i, (year, name, desc, col) in enumerate(events):
x = xs[i]
ax.plot([x, x], [2.2, 3.2], color=col, lw=2)
ax.add_patch(FancyBboxPatch((x-0.8, 1.0), 1.6, 1.1,
boxstyle="round,pad=0.1", facecolor=col, edgecolor='white', lw=1.5, alpha=0.9))
ax.text(x, 1.55, str(year), fontsize=11, fontweight='bold', color='#0d1b2a', ha='center')
ax.add_patch(Circle((x, 3.35), 0.18, color=col, zorder=5))
ax.text(x, 4.1, name, fontsize=9, fontweight='bold', color=col, ha='center', va='center')
ax.text(x, 3.7, desc, fontsize=7.5, color='white', ha='center', va='top', linespacing=1.4)
ax.plot([xs[0], xs[-1]], [3.35, 3.35], color='#546e7a', lw=2.5, zorder=2)
trap_box = FancyBboxPatch((0.2, 0.05), 15.6, 0.65,
boxstyle="round,pad=0.1", facecolor='#b71c1c', edgecolor='#ef9a9a', lw=1.5)
ax.add_patch(trap_box)
ax.text(8, 0.38, '⚠️ TRAP: Hooke saw DEAD cells | Leeuwenhoek saw LIVING cells | Virchow MODIFIED (not proposed) cell theory',
fontsize=8.5, color='white', ha='center', va='center', fontweight='bold')
plt.tight_layout()
plt.savefig(OUT + 'D1_Cell_Theory.png', dpi=150, bbox_inches='tight', facecolor='#0d1b2a')
plt.close()
print("D1 done")
# ─────────────────────────────────────────────
# DIAGRAM 2: PROKARYOTE vs EUKARYOTE
# ─────────────────────────────────────────────
fig, ax = plt.subplots(figsize=(16, 9))
ax.set_xlim(0, 16); ax.set_ylim(0, 9); ax.axis('off')
fig.patch.set_facecolor('#0d1b2a'); ax.set_facecolor('#0d1b2a')
ax.text(8, 8.5, 'PROKARYOTE vs EUKARYOTE', fontsize=18, fontweight='bold',
color='#ffd700', ha='center')
# left box (prokaryote)
ax.add_patch(FancyBboxPatch((0.3, 0.3), 7, 7.7, boxstyle="round,pad=0.2",
facecolor='#1a3a4a', edgecolor='#4fc3f7', lw=2))
ax.text(3.8, 7.7, 'PROKARYOTE', fontsize=14, fontweight='bold', color='#4fc3f7', ha='center')
# right box (eukaryote)
ax.add_patch(FancyBboxPatch((8.7, 0.3), 7, 7.7, boxstyle="round,pad=0.2",
facecolor='#1a3a2a', edgecolor='#81c784', lw=2))
ax.text(12.2, 7.7, 'EUKARYOTE', fontsize=14, fontweight='bold', color='#81c784', ha='center')
# VS in middle
ax.add_patch(Circle((8.0, 4.2), 0.55, color='#ffd700', zorder=5))
ax.text(8.0, 4.2, 'VS', fontsize=12, fontweight='bold', color='#0d1b2a', ha='center', va='center')
pro_items = [
('Nucleus', 'ABSENT (nucleoid)', '#ef5350'),
('Size', '1-10 µm', '#4fc3f7'),
('DNA', 'Circular, NAKED', '#4fc3f7'),
('Histones', 'ABSENT', '#ef5350'),
('Membrane organelles', 'ABSENT', '#ef5350'),
('Ribosomes', '70S (50S+30S)', '#ffd700'),
('Cell wall', 'Peptidoglycan', '#4fc3f7'),
('Division', 'Binary fission', '#4fc3f7'),
('Nucleolus', 'ABSENT', '#ef5350'),
('Examples', 'Bacteria, Cyanobacteria\nMycoplasma', '#81c784'),
]
eu_items = [
('Nucleus', 'PRESENT (membrane-bound)', '#81c784'),
('Size', '10-100 µm', '#81c784'),
('DNA', 'Linear, with histones', '#81c784'),
('Histones', 'PRESENT', '#81c784'),
('Membrane organelles', 'PRESENT', '#81c784'),
('Ribosomes', '80S (60S+40S)', '#ffd700'),
('Cell wall', 'Cellulose/Chitin/Absent', '#81c784'),
('Division', 'Mitosis/Meiosis', '#81c784'),
('Nucleolus', 'PRESENT', '#81c784'),
('Examples', 'Plants, Animals\nFungi, Protists', '#81c784'),
]
y_start = 7.0
for i, ((feat, val, col), (_, val2, col2)) in enumerate(zip(pro_items, eu_items)):
y = y_start - i*0.64
ax.text(1.0, y, feat+':', fontsize=8, color='#b0bec5', fontweight='bold')
ax.text(3.0, y, val, fontsize=8.5, color=col, fontweight='bold')
ax.text(8.8, y, feat+':', fontsize=8, color='#b0bec5', fontweight='bold')
ax.text(10.8, y, val2, fontsize=8.5, color=col2, fontweight='bold')
trap_box = FancyBboxPatch((0.3, 0.05), 15.4, 0.6,
boxstyle="round,pad=0.1", facecolor='#b71c1c', edgecolor='#ef9a9a', lw=1.5)
ax.add_patch(trap_box)
ax.text(8, 0.35, '⚠️ Mitochondria & Chloroplasts → 70S ribosomes (inside eukaryote!) | Mycoplasma = smallest, NO cell wall',
fontsize=9, color='white', ha='center', va='center', fontweight='bold')
plt.tight_layout()
plt.savefig(OUT + 'D2_ProVsEu.png', dpi=150, bbox_inches='tight', facecolor='#0d1b2a')
plt.close()
print("D2 done")
# ─────────────────────────────────────────────
# DIAGRAM 3: CELL MEMBRANE (Fluid Mosaic)
# ─────────────────────────────────────────────
fig, ax = plt.subplots(figsize=(16, 9))
ax.set_xlim(0, 16); ax.set_ylim(0, 9); ax.axis('off')
fig.patch.set_facecolor('#0d1b2a'); ax.set_facecolor('#0d1b2a')
ax.text(8, 8.6, 'CELL MEMBRANE — FLUID MOSAIC MODEL (Singer & Nicolson, 1972)', fontsize=15, fontweight='bold',
color='#ffd700', ha='center')
# Draw bilayer
for x in np.arange(0.5, 15.5, 0.6):
# outer heads
ax.add_patch(Circle((x, 6.2), 0.22, color='#4fc3f7', zorder=4))
ax.plot([x, x], [5.95, 5.45], color='#b0bec5', lw=2.5, zorder=3)
ax.plot([x, x+0.1], [5.45, 5.15], color='#b0bec5', lw=2.5, zorder=3)
# inner heads
ax.add_patch(Circle((x, 4.2), 0.22, color='#4fc3f7', zorder=4))
ax.plot([x, x], [4.45, 4.95], color='#b0bec5', lw=2.5, zorder=3)
ax.plot([x, x+0.1], [4.95, 5.25], color='#b0bec5', lw=2.5, zorder=3)
# Integral protein
for px in [3.5, 9.5, 13.5]:
ax.add_patch(FancyBboxPatch((px-0.35, 4.38), 0.7, 1.65,
boxstyle="round,pad=0.1", facecolor='#ce93d8', edgecolor='#9c27b0', lw=1.5, zorder=5, alpha=0.9))
ax.text(px, 5.2, 'Integral\nProtein', fontsize=6.5, color='white', ha='center', va='center', fontweight='bold')
# Peripheral protein
for px in [6.5, 12.0]:
ax.add_patch(FancyBboxPatch((px-0.4, 6.42), 0.8, 0.5,
boxstyle="round,pad=0.08", facecolor='#ffb74d', edgecolor='#ff9800', lw=1.5, zorder=5, alpha=0.9))
ax.text(px, 6.67, 'Peripheral', fontsize=6, color='#0d1b2a', ha='center', va='center', fontweight='bold')
# Glycocalyx
ax.text(1.5, 7.1, 'Glycocalyx\n(carbs on outer\nsurface only)', fontsize=7.5, color='#81c784',
ha='center', bbox=dict(boxstyle='round', facecolor='#1b5e20', edgecolor='#81c784', alpha=0.8))
ax.annotate('', xy=(3.0, 6.5), xytext=(2.3, 6.8),
arrowprops=dict(arrowstyle='->', color='#81c784', lw=1.5))
# Cholesterol
ax.add_patch(FancyBboxPatch((7.0, 4.9), 0.7, 0.65,
boxstyle="round,pad=0.05", facecolor='#ef9a9a', edgecolor='#ef5350', lw=1.5, zorder=5))
ax.text(7.35, 5.22, 'Chol.', fontsize=6.5, color='#b71c1c', ha='center', fontweight='bold')
# Labels
ax.text(15.8, 6.2, 'Outer', fontsize=8, color='#b0bec5', ha='right')
ax.text(15.8, 4.2, 'Inner', fontsize=8, color='#b0bec5', ha='right')
ax.text(15.8, 5.2, 'Hydro-\nphobic\ncore', fontsize=7, color='#78909c', ha='right', va='center')
ax.text(0.1, 6.8, 'OUTSIDE', fontsize=9, color='#4fc3f7', fontweight='bold')
ax.text(0.1, 3.7, 'INSIDE\n(cytoplasm)', fontsize=9, color='#4fc3f7', fontweight='bold')
# Key facts box
facts = [
('🔵 Hydrophilic head (phosphate group)', '#4fc3f7'),
('⬜ Hydrophobic tail (fatty acids) — face inside', '#b0bec5'),
('🟣 Integral protein — embedded in bilayer', '#ce93d8'),
('🟠 Peripheral protein — on surface only', '#ffb74d'),
('🟢 Carbohydrates — OUTER surface ONLY (glycocalyx)', '#81c784'),
('🔴 Cholesterol — ANIMAL cells only', '#ef9a9a'),
]
ax.add_patch(FancyBboxPatch((0.2, 0.6), 8.0, 3.1,
boxstyle="round,pad=0.15", facecolor='#1a237e', edgecolor='#3f51b5', lw=1.5))
ax.text(4.2, 3.55, 'KEY', fontsize=10, fontweight='bold', color='#ffd700', ha='center')
for i, (txt, col) in enumerate(facts):
ax.text(0.5, 3.2 - i*0.46, txt, fontsize=8, color=col)
# Transport table
ax.add_patch(FancyBboxPatch((8.5, 0.6), 7.3, 3.1,
boxstyle="round,pad=0.15", facecolor='#1a3a2a', edgecolor='#388e3c', lw=1.5))
ax.text(12.15, 3.55, 'TRANSPORT', fontsize=10, fontweight='bold', color='#ffd700', ha='center')
transport = [
('Simple diffusion', 'No ATP', 'O₂, CO₂, urea', '#81c784'),
('Osmosis', 'No ATP', 'Water movement', '#81c784'),
('Facilitated diffusion', 'No ATP (needs protein)', 'Glucose, ions', '#ffb74d'),
('Active transport', 'ATP needed!', 'Na⁺/K⁺ pump', '#ef5350'),
]
for i, (t, e, ex, col) in enumerate(transport):
y = 3.15 - i*0.58
ax.text(8.7, y, t, fontsize=8, color=col, fontweight='bold')
ax.text(11.5, y, e, fontsize=7.5, color='#b0bec5')
ax.text(13.5, y, ex, fontsize=7.5, color='#78909c')
trap_box = FancyBboxPatch((0.2, 0.05), 15.6, 0.48,
boxstyle="round,pad=0.05", facecolor='#b71c1c', edgecolor='#ef9a9a', lw=1.5)
ax.add_patch(trap_box)
ax.text(8, 0.29, '⚠️ Cholesterol = animal cells only | Carbohydrates = OUTER surface only | Facilitated diffusion = no energy but needs protein channel',
fontsize=8, color='white', ha='center', va='center', fontweight='bold')
plt.tight_layout()
plt.savefig(OUT + 'D3_CellMembrane.png', dpi=150, bbox_inches='tight', facecolor='#0d1b2a')
plt.close()
print("D3 done")
# ─────────────────────────────────────────────
# DIAGRAM 4: ORGANELLES COMPARISON
# ─────────────────────────────────────────────
fig, ax = plt.subplots(figsize=(16, 10))
ax.set_xlim(0, 16); ax.set_ylim(0, 10); ax.axis('off')
fig.patch.set_facecolor('#0d1b2a'); ax.set_facecolor('#0d1b2a')
ax.text(8, 9.6, 'CELL ORGANELLES — MASTER SUMMARY', fontsize=18, fontweight='bold',
color='#ffd700', ha='center')
organelles = [
# (name, color, x, y, details)
('MITOCHONDRIA\n"Powerhouse"', '#ef5350', 1.5, 8.2, [
'Double membrane','Outer: smooth, porins',
'Inner: CRISTAE → ATP','Matrix: Krebs cycle',
'DNA: circular, naked','Ribosome: 70S',
'Glycolysis: CYTOPLASM!','mtDNA: maternal']),
('CHLOROPLAST\n"Photosynthesis"', '#66bb6a', 5.8, 8.2, [
'Double membrane','Grana = thylakoid stacks',
'Light rxn: THYLAKOID','Dark rxn: STROMA',
'Primary pigment: Chl a','DNA: circular, 70S',
'Only in plants+algae','Proplastid precursor']),
('GOLGI BODY\n"Traffic Police"', '#ab47bc', 10.2, 8.2, [
'Camillo Golgi (1898)','Cisternae (flattened sacs)',
'CIS face → receives ER','TRANS face → sends out',
'Forms: Lysosomes','Forms: Acrosome (sperm)',
'Forms: Cell plate','Glycosylation of proteins']),
('RIBOSOME\n"Protein Factory"', '#ffa726', 14.2, 8.2, [
'George Palade (1953)','NO membrane',
'70S: prokaryotes+mt+chl','80S: eukaryote cytoplasm',
'50S+30S=70S (NOT 80S!)','S values NOT additive',
'rRNA made in nucleolus','Polysomes: many on mRNA']),
('LYSOSOME\n"Suicidal Bag"', '#26c6da', 1.5, 3.8, [
'Formed by Golgi','Hydrolytic enzymes',
'Acidic pH (4.5-5.0)','de Duve coined name',
'Autophagy: old organelles','Autolysis: cell death',
'Enzymes: lipases, proteases','Tadpole tail disappearance']),
('NUCLEUS\n"Control Centre"', '#42a5f5', 5.8, 3.8, [
'Robert Brown (1831)','Double membrane',
'Outer = continuous w/RER','Nuclear pores: RNA+protein',
'Euchromatin = active','Heterochromatin = inactive',
'Nucleosome = DNA+8 histones','H1 = linker (not in octamer)']),
('CENTRIOLE\n"9+0 triplets"', '#ec407a', 10.2, 3.8, [
'Present in animals only','ABSENT in higher plants',
'Structure: 9+0 (triplets)','NO central pair',
'Made of TUBULIN','Organizes spindle',
'Forms basal body','Cilia/flagella = 9+2 (diff!)']),
('VACUOLE\n"Storage"', '#8d6e63', 14.2, 3.8, [
'Membrane = TONOPLAST','Fluid = cell sap',
'Plant: up to 90% volume','Stores anthocyanins',
'Contractile vac: Amoeba','Contractile = osmoregulation',
'Food vacuole: digestion','Part of endomembrane system']),
]
for (name, col, x, y, details) in organelles:
bx, by = x-1.5, y-3.2
ax.add_patch(FancyBboxPatch((bx, by), 3.0, 3.2,
boxstyle="round,pad=0.1", facecolor='#0d1b2a', edgecolor=col, lw=2.5, alpha=0.95))
ax.add_patch(FancyBboxPatch((bx, by+2.5), 3.0, 0.65,
boxstyle="round,pad=0.05", facecolor=col, edgecolor=col, lw=0, alpha=0.85))
ax.text(x, by+2.82, name, fontsize=7.5, fontweight='bold', color='white',
ha='center', va='center', linespacing=1.3)
for i, d in enumerate(details):
ax.text(bx+0.15, by+2.3-i*0.28, '• '+d, fontsize=6.8, color='#e0e0e0')
trap_box = FancyBboxPatch((0.2, 0.05), 15.6, 0.48,
boxstyle="round,pad=0.05", facecolor='#b71c1c', edgecolor='#ef9a9a', lw=1.5)
ax.add_patch(trap_box)
ax.text(8, 0.29,
'⚠️ KEY TRAPS: Golgi→Cis receives/Trans sends | Lysosome pH=acidic 4.5 | H1 NOT in octamer | Centriole=9+0, Cilia=9+2 | Glycolysis=cytoplasm NOT mitochondria',
fontsize=7.8, color='white', ha='center', va='center', fontweight='bold')
plt.tight_layout()
plt.savefig(OUT + 'D4_Organelles.png', dpi=150, bbox_inches='tight', facecolor='#0d1b2a')
plt.close()
print("D4 done")
# ─────────────────────────────────────────────
# DIAGRAM 5: 9+2 vs 9+0 + CYTOSKELETON
# ─────────────────────────────────────────────
fig, ax = plt.subplots(figsize=(16, 9))
ax.set_xlim(0, 16); ax.set_ylim(0, 9); ax.axis('off')
fig.patch.set_facecolor('#0d1b2a'); ax.set_facecolor('#0d1b2a')
ax.text(8, 8.6, 'CILIA, FLAGELLA, CENTRIOLES & CYTOSKELETON', fontsize=16, fontweight='bold',
color='#ffd700', ha='center')
# 9+2 DIAGRAM (left)
ax.add_patch(FancyBboxPatch((0.3, 3.5), 7.0, 4.8,
boxstyle="round,pad=0.2", facecolor='#1a3a4a', edgecolor='#4fc3f7', lw=2))
ax.text(3.8, 8.0, '9+2 ARRANGEMENT (Cilia & Flagella)', fontsize=11, fontweight='bold',
color='#4fc3f7', ha='center')
cx, cy, r = 3.8, 5.9, 1.1
for i in range(9):
angle = i * (2*np.pi/9) - np.pi/2
dx = r * np.cos(angle)
dy = r * np.sin(angle)
ax.add_patch(Ellipse((cx+dx, cy+dy), 0.32, 0.32, color='#4fc3f7', zorder=4))
ax.add_patch(Ellipse((cx+dx+0.17*np.cos(angle+np.pi/2),
cy+dy+0.17*np.sin(angle+np.pi/2)), 0.22, 0.22, color='#0288d1', zorder=5))
ax.add_patch(Circle((cx, cy), 0.18, color='#ffd700', zorder=6))
ax.add_patch(Circle((cx+0.35, cy), 0.18, color='#ffd700', zorder=6))
ax.add_patch(Circle((cx+0.17, cy), 0.38, color='none', edgecolor='#ffd700', lw=1.5, zorder=6))
ax.text(3.8, 4.35, '9 DOUBLETS (A+B) in outer ring\n+ 2 CENTRAL singlets', fontsize=9,
color='white', ha='center', linespacing=1.5)
ax.text(0.6, 3.65, '✓ Cilia (short, many, oar movement)\n✓ Flagella (long, few, whip movement)\n✓ Movement by DYNEIN protein (uses ATP)\n✓ Both have SAME 9+2 structure',
fontsize=8.5, color='#81c784', linespacing=1.7)
# 9+0 DIAGRAM (right)
ax.add_patch(FancyBboxPatch((8.7, 3.5), 7.0, 4.8,
boxstyle="round,pad=0.2", facecolor='#1a2a1a', edgecolor='#ef5350', lw=2))
ax.text(12.2, 8.0, '9+0 ARRANGEMENT (Centriole & Basal Body)', fontsize=11, fontweight='bold',
color='#ef5350', ha='center')
cx2, cy2, r2 = 12.2, 5.9, 1.1
for i in range(9):
angle = i * (2*np.pi/9) - np.pi/2
dx = r2 * np.cos(angle)
dy = r2 * np.sin(angle)
ax.add_patch(Ellipse((cx2+dx, cy2+dy), 0.28, 0.28, color='#ef5350', zorder=4))
ax.add_patch(Ellipse((cx2+dx+0.15*np.cos(angle+np.pi/2),
cy2+dy+0.15*np.sin(angle+np.pi/2)), 0.2, 0.2, color='#c62828', zorder=5))
ax.add_patch(Ellipse((cx2+dx+0.3*np.cos(angle+np.pi/2),
cy2+dy+0.3*np.sin(angle+np.pi/2)), 0.16, 0.16, color='#ff5252', zorder=5))
ax.add_patch(Circle((cx2, cy2), 0.25, color='#0d1b2a', zorder=6))
ax.text(cx2, cy2, '✗', fontsize=14, color='#ef5350', ha='center', va='center', fontweight='bold', zorder=7)
ax.text(12.2, 4.35, '9 TRIPLETS (A+B+C) in outer ring\nNO CENTRAL PAIR', fontsize=9,
color='white', ha='center', linespacing=1.5)
ax.text(8.9, 3.65, '✓ Centrioles (animal cells + lower plants)\n✓ Basal body (base of cilia/flagella)\n✓ Absent in HIGHER PLANTS\n✓ Made of TUBULIN protein',
fontsize=8.5, color='#ef9a9a', linespacing=1.7)
# Cytoskeleton table
ax.add_patch(FancyBboxPatch((0.3, 0.55), 15.4, 2.7,
boxstyle="round,pad=0.15", facecolor='#1a1a3a', edgecolor='#7986cb', lw=2))
ax.text(8, 3.0, 'CYTOSKELETON COMPONENTS', fontsize=11, fontweight='bold', color='#ffd700', ha='center')
cols_data = [
('MICROFILAMENTS', '6 nm\n(thinnest)', 'ACTIN', 'Cell movement\nMuscle contraction\nCytokinesis', '#ff7043'),
('INTERMEDIATE\nFILAMENTS', '10 nm', 'Keratin\nVimentin', 'Mechanical strength\nAnchoring nucleus', '#9ccc65'),
('MICROTUBULES', '25 nm\n(thickest)', 'TUBULIN', 'Spindle fibres\nCilia/Flagella core\nIntracellular transport', '#26c6da'),
]
for i, (name, size, protein, func, col) in enumerate(cols_data):
x0 = 0.5 + i*5.2
ax.add_patch(FancyBboxPatch((x0, 0.65), 4.8, 2.25,
boxstyle="round,pad=0.1", facecolor='#0d1b2a', edgecolor=col, lw=1.5))
ax.text(x0+2.4, 2.65, name, fontsize=9, fontweight='bold', color=col, ha='center')
ax.text(x0+2.4, 2.25, 'Size: '+size, fontsize=8, color='#b0bec5', ha='center')
ax.text(x0+2.4, 1.85, 'Protein: '+protein, fontsize=8.5, color='white', ha='center', fontweight='bold')
ax.text(x0+2.4, 1.35, func, fontsize=7.5, color='#e0e0e0', ha='center', linespacing=1.4)
trap_box = FancyBboxPatch((0.2, 0.05), 15.6, 0.45,
boxstyle="round,pad=0.05", facecolor='#b71c1c', edgecolor='#ef9a9a', lw=1.5)
ax.add_patch(trap_box)
ax.text(8, 0.27, '⚠️ 9+2 = Cilia/Flagella (doublets + central pair) | 9+0 = Centriole/Basal body (triplets, NO centre) | Microvilli = actin, NOT 9+2, NOT motile',
fontsize=8.5, color='white', ha='center', va='center', fontweight='bold')
plt.tight_layout()
plt.savefig(OUT + 'D5_Cilia_Centriole.png', dpi=150, bbox_inches='tight', facecolor='#0d1b2a')
plt.close()
print("D5 done")
# ─────────────────────────────────────────────
# DIAGRAM 6: NUCLEUS & CHROMATIN
# ─────────────────────────────────────────────
fig, ax = plt.subplots(figsize=(16, 9))
ax.set_xlim(0, 16); ax.set_ylim(0, 9); ax.axis('off')
fig.patch.set_facecolor('#0d1b2a'); ax.set_facecolor('#0d1b2a')
ax.text(8, 8.6, 'NUCLEUS — STRUCTURE, CHROMATIN & CHROMOSOMES', fontsize=16, fontweight='bold',
color='#ffd700', ha='center')
# Nucleus diagram
ax.add_patch(Ellipse((4.5, 5.5), 7.5, 5.5, color='none', edgecolor='#42a5f5', lw=3, zorder=3))
ax.add_patch(Ellipse((4.5, 5.5), 6.8, 4.8, color='#0d2a4a', edgecolor='#1565c0', lw=2, zorder=2))
ax.add_patch(Ellipse((4.5, 5.5), 7.5, 5.5, color='none', edgecolor='#42a5f5', lw=3, zorder=3))
# Nuclear pores
for angle in [0, 45, 90, 135, 180, 225, 270, 315]:
rad = np.radians(angle)
px = 4.5 + 3.75*np.cos(rad)
py = 5.5 + 2.75*np.sin(rad)
ax.add_patch(Rectangle((px-0.18, py-0.12), 0.36, 0.24, color='#ffd700', zorder=5))
ax.text(8.5, 7.8, 'Nuclear\nPores', fontsize=8, color='#ffd700',
bbox=dict(boxstyle='round', facecolor='#0d1b2a', edgecolor='#ffd700', alpha=0.9))
ax.annotate('', xy=(7.8, 7.1), xytext=(8.2, 7.6),
arrowprops=dict(arrowstyle='->', color='#ffd700', lw=1.5))
# Nucleolus
ax.add_patch(Ellipse((4.0, 6.2), 1.8, 1.2, color='#ce93d8', alpha=0.8, zorder=4))
ax.text(4.0, 6.2, 'NUCLEOLUS\nrRNA synthesis\n(disappears at prophase)', fontsize=6.5,
color='white', ha='center', va='center', fontweight='bold')
# Chromatin
for i in range(5):
x_start = 3.0 + i*0.3
ax.plot([x_start, x_start+0.8+i*0.1], [4.5+i*0.2, 4.8+i*0.15], color='#81c784', lw=1.5, alpha=0.7, zorder=4)
ax.text(1.5, 4.2, 'Chromatin\n(DNA+Histones)', fontsize=7.5, color='#81c784',
bbox=dict(boxstyle='round', facecolor='#0d1b2a', edgecolor='#81c784', alpha=0.9))
ax.annotate('', xy=(3.0, 4.6), xytext=(2.3, 4.4),
arrowprops=dict(arrowstyle='->', color='#81c784', lw=1.5))
# ER connection
ax.plot([8.25, 9.5], [5.5, 5.5], color='#ffb74d', lw=2, linestyle='--', zorder=3)
ax.text(10.2, 5.5, 'Outer nuclear\nmembrane continuous\nwith RER', fontsize=8, color='#ffb74d', va='center',
bbox=dict(boxstyle='round', facecolor='#0d1b2a', edgecolor='#ffb74d', alpha=0.9))
# Nucleosome diagram (right side)
ax.add_patch(FancyBboxPatch((9.5, 0.6), 6.3, 7.5,
boxstyle="round,pad=0.2", facecolor='#1a1a3a', edgecolor='#7986cb', lw=2))
ax.text(12.65, 7.8, 'NUCLEOSOME', fontsize=12, fontweight='bold', color='#ffd700', ha='center')
# Draw nucleosome
for i in range(8):
angle = i * (2*np.pi/8)
nx = 12.65 + 0.7*np.cos(angle)
ny = 6.3 + 0.5*np.sin(angle)
col = ['#ef5350','#ef5350','#ffb74d','#ffb74d','#81c784','#81c784','#4fc3f7','#4fc3f7'][i]
lbl = ['H2A','H2A','H2B','H2B','H3','H3','H4','H4'][i]
ax.add_patch(Circle((nx, ny), 0.28, color=col, zorder=5))
ax.text(nx, ny, lbl, fontsize=5.5, color='white', ha='center', va='center', fontweight='bold')
theta = np.linspace(-np.pi*1.3, np.pi*1.3, 100)
dna_x = 12.65 + 0.98*np.cos(theta)
dna_y = 6.3 + 0.7*np.sin(theta)
ax.plot(dna_x, dna_y, color='#ffd700', lw=2.5, zorder=6)
ax.text(12.65, 5.2, 'HISTONE OCTAMER\n(8 histones: 2×H2A + 2×H2B\n+ 2×H3 + 2×H4)', fontsize=8.5,
color='white', ha='center', linespacing=1.5,
bbox=dict(boxstyle='round', facecolor='#283593', edgecolor='#5c6bc0', alpha=0.9))
ax.text(12.65, 4.35, '~146 bp DNA wraps around\none nucleosome', fontsize=8.5, color='#ffd700', ha='center')
ax.text(12.65, 3.95, 'H1 = LINKER histone (NOT in octamer)', fontsize=8.5, color='#ef5350',
ha='center', fontweight='bold')
# Chromosome types
ax.text(12.65, 3.55, 'CHROMOSOME TYPES BY CENTROMERE:', fontsize=8, color='#b0bec5', ha='center', fontweight='bold')
chrom_types = [
('Metacentric', 'Middle', 'V-shape', '#81c784'),
('Submetacentric', 'Off-centre', 'L-shape', '#ffb74d'),
('Acrocentric', 'Near end', 'J-shape', '#4fc3f7'),
('Telocentric', 'At tip', 'I-shape (NOT in humans!)', '#ef5350'),
]
for i, (name, pos, shape, col) in enumerate(chrom_types):
y = 3.1 - i*0.58
ax.text(9.8, y, name, fontsize=8, color=col, fontweight='bold')
ax.text(11.6, y, pos, fontsize=8, color='#b0bec5')
ax.text(13.2, y, shape, fontsize=8, color='#78909c')
trap_box = FancyBboxPatch((0.2, 0.05), 15.6, 0.48,
boxstyle="round,pad=0.05", facecolor='#b71c1c', edgecolor='#ef9a9a', lw=1.5)
ax.add_patch(trap_box)
ax.text(8, 0.29,
'⚠️ H1 NOT in octamer (only 8 histones) | Nucleolus = NO membrane, disappears at prophase | Polytene=Drosophila salivary | Lampbrush=amphibian oocytes',
fontsize=8, color='white', ha='center', va='center', fontweight='bold')
plt.tight_layout()
plt.savefig(OUT + 'D6_Nucleus.png', dpi=150, bbox_inches='tight', facecolor='#0d1b2a')
plt.close()
print("D6 done")
# ─────────────────────────────────────────────
# DIAGRAM 7: CELL WALL & ENDOMEMBRANE FLOW
# ─────────────────────────────────────────────
fig, ax = plt.subplots(figsize=(16, 9))
ax.set_xlim(0, 16); ax.set_ylim(0, 9); ax.axis('off')
fig.patch.set_facecolor('#0d1b2a'); ax.set_facecolor('#0d1b2a')
ax.text(8, 8.6, 'CELL WALL COMPOSITION + ENDOMEMBRANE SYSTEM FLOW', fontsize=15, fontweight='bold',
color='#ffd700', ha='center')
# Cell wall section
ax.add_patch(FancyBboxPatch((0.2, 3.8), 7.5, 4.5,
boxstyle="round,pad=0.2", facecolor='#1a3a1a', edgecolor='#66bb6a', lw=2))
ax.text(3.95, 8.0, 'CELL WALL COMPOSITION', fontsize=12, fontweight='bold', color='#66bb6a', ha='center')
cell_wall_data = [
('Plants', 'Cellulose + Hemicellulose + Pectin', '#81c784'),
('Fungi', 'CHITIN', '#ce93d8'),
('Bacteria', 'Peptidoglycan (Murein)', '#4fc3f7'),
('Diatoms', 'SILICA (SiO₂)', '#ffb74d'),
('Archaea', 'Pseudopeptidoglycan', '#ef9a9a'),
('Mycoplasma', 'ABSENT (no cell wall)', '#ef5350'),
('Animals', 'ABSENT', '#ef5350'),
]
for i, (org, comp, col) in enumerate(cell_wall_data):
y = 7.5 - i*0.5
ax.add_patch(FancyBboxPatch((0.4, y-0.18), 1.8, 0.35,
boxstyle="round,pad=0.05", facecolor=col, alpha=0.8, edgecolor='none'))
ax.text(1.3, y, org, fontsize=8.5, color='white', ha='center', va='center', fontweight='bold')
ax.text(2.4, y, comp, fontsize=8.5, color=col, va='center', fontweight='bold')
ax.text(0.4, 4.05, '⚠️ Middle lamella = CALCIUM PECTATE (first formed)\nPlasmodesmata = channels through wall, lined with plasma membrane',
fontsize=8, color='#ef9a9a', linespacing=1.5)
# Plant cell wall layers
ax.add_patch(FancyBboxPatch((5.5, 4.8), 2.0, 3.0,
boxstyle="round,pad=0.1", facecolor='#0d1b2a', edgecolor='#66bb6a', lw=1.5))
ax.text(6.5, 7.6, 'LAYERS', fontsize=9, fontweight='bold', color='#ffd700', ha='center')
layers = [('Middle Lamella', 'Ca-pectate', '#ef9a9a', 7.3),
('Primary Wall', 'Cellulose+Pectin', '#81c784', 6.6),
('Secondary Wall', 'Cellulose+Lignin', '#4fc3f7', 5.9),
('Plasma Membrane', 'Phospholipid', '#ffb74d', 5.2)]
for name, comp, col, y in layers:
ax.add_patch(FancyBboxPatch((5.6, y-0.22), 1.8, 0.4, boxstyle="round,pad=0.05",
facecolor=col, alpha=0.7, edgecolor='none'))
ax.text(6.5, y, name, fontsize=6.5, color='white', ha='center', va='center', fontweight='bold')
# Endomembrane flow (right)
ax.add_patch(FancyBboxPatch((8.0, 0.6), 7.8, 7.9,
boxstyle="round,pad=0.2", facecolor='#1a1a3a', edgecolor='#7986cb', lw=2))
ax.text(11.9, 8.2, 'ENDOMEMBRANE SYSTEM FLOW', fontsize=12, fontweight='bold', color='#ffd700', ha='center')
flow_items = [
(11.9, 7.4, 'NUCLEUS\n(outer membrane → RER)', '#42a5f5', 1.8, 0.7),
(11.9, 6.2, 'ROUGH ER (RER)\nProtein synthesis + secretion', '#4fc3f7', 1.8, 0.7),
(11.9, 5.0, 'SMOOTH ER (SER)\nLipid synthesis, Detox, Ca²⁺ storage', '#29b6f6', 1.8, 0.7),
(11.9, 3.8, 'GOLGI APPARATUS\nCis (receive)→Trans (send out)\nPackaging, Glycosylation', '#ab47bc', 1.8, 0.8),
]
for (x, y, label, col, w, h) in flow_items:
ax.add_patch(FancyBboxPatch((x-w, y-h/2), w*2, h,
boxstyle="round,pad=0.08", facecolor='#0d1b2a', edgecolor=col, lw=2))
ax.text(x, y, label, fontsize=8, color=col, ha='center', va='center', fontweight='bold', linespacing=1.3)
# Arrows between flow items
for y1, y2 in [(7.05, 6.55), (5.9, 5.35), (4.65, 4.2)]:
ax.annotate('', xy=(11.9, y2), xytext=(11.9, y1),
arrowprops=dict(arrowstyle='->', color='#ffd700', lw=2))
# Branches from Golgi
branches = [
(9.5, 2.8, 'LYSOSOMES\nHydrolytic enzymes\npH 4.5 "suicidal bags"', '#ef5350'),
(11.9, 2.5, 'SECRETORY\nVESICLES\n→ Plasma membrane', '#66bb6a'),
(14.3, 2.8, 'VACUOLES\nStorage\nTonoplast membrane', '#ffb74d'),
]
for (x, y, label, col) in branches:
ax.add_patch(FancyBboxPatch((x-1.1, y-0.6), 2.2, 1.1,
boxstyle="round,pad=0.08", facecolor='#0d1b2a', edgecolor=col, lw=1.5))
ax.text(x, y, label, fontsize=7, color=col, ha='center', va='center', fontweight='bold', linespacing=1.3)
ax.annotate('', xy=(x, y+0.5), xytext=(11.9, 3.4),
arrowprops=dict(arrowstyle='->', color=col, lw=1.5, connectionstyle='arc3,rad=0.2'))
ax.text(8.2, 1.8, '✗ NOT endomembrane:\nMitochondria\nChloroplast\nPeroxisomes', fontsize=8,
color='#ef5350', linespacing=1.6,
bbox=dict(boxstyle='round', facecolor='#0d1b2a', edgecolor='#ef5350', alpha=0.9))
trap_box = FancyBboxPatch((0.2, 0.05), 15.6, 0.48,
boxstyle="round,pad=0.05", facecolor='#b71c1c', edgecolor='#ef9a9a', lw=1.5)
ax.add_patch(trap_box)
ax.text(8, 0.29,
'⚠️ Mitochondria/Chloroplast NOT in endomembrane system | Golgi Cis=receives ER, Trans=sends out | Acrosome+Cell plate formed by Golgi | Lysosome pH=4.5 (acidic)',
fontsize=8, color='white', ha='center', va='center', fontweight='bold')
plt.tight_layout()
plt.savefig(OUT + 'D7_CellWall_Endo.png', dpi=150, bbox_inches='tight', facecolor='#0d1b2a')
plt.close()
print("D7 done")
# ─────────────────────────────────────────────
# DIAGRAM 8: CELL CYCLE OVERVIEW
# ─────────────────────────────────────────────
fig, ax = plt.subplots(figsize=(14, 9))
ax.set_xlim(0, 14); ax.set_ylim(0, 9); ax.axis('off')
fig.patch.set_facecolor('#0d1b2a'); ax.set_facecolor('#0d1b2a')
ax.text(7, 8.6, 'CELL CYCLE OVERVIEW', fontsize=18, fontweight='bold', color='#ffd700', ha='center')
# Pie chart style circle
cx, cy, r = 5.5, 4.5, 3.2
phases = [
(0.44, '#4fc3f7', 'G1\n11h'),
(0.33, '#81c784', 'S\n8h'),
(0.17, '#ffb74d', 'G2\n4h'),
(0.06, '#ef5350', 'M\n1h'),
]
start = 90
for frac, col, label in phases:
end = start - frac*360
theta = np.linspace(np.radians(start), np.radians(end), 100)
x_arc = cx + r*np.cos(theta)
y_arc = cy + r*np.sin(theta)
xs = [cx] + list(x_arc) + [cx]
ys = [cy] + list(y_arc) + [cy]
ax.fill(xs, ys, color=col, alpha=0.85, edgecolor='#0d1b2a', lw=2)
mid_angle = np.radians((start + end) / 2)
lx = cx + (r+0.7)*np.cos(mid_angle)
ly = cy + (r+0.7)*np.sin(mid_angle)
ax.text(lx, ly, label, fontsize=11, color=col, ha='center', va='center', fontweight='bold')
start = end
ax.add_patch(Circle((cx, cy), 1.0, color='#0d1b2a', zorder=5))
ax.text(cx, cy+0.15, 'CELL', fontsize=10, color='white', ha='center', fontweight='bold', zorder=6)
ax.text(cx, cy-0.25, 'CYCLE', fontsize=10, color='white', ha='center', fontweight='bold', zorder=6)
# Interphase bracket
ax.text(cx, 1.0, 'INTERPHASE = G1 + S + G2 = ~95% of cell cycle', fontsize=10,
color='#ffd700', ha='center', fontweight='bold')
ax.text(cx, 0.6, 'M PHASE = ~5% of cell cycle', fontsize=9, color='#ef5350', ha='center')
# Details on right
details_box = FancyBboxPatch((9.5, 1.5), 4.3, 6.8,
boxstyle="round,pad=0.2", facecolor='#1a1a3a', edgecolor='#7986cb', lw=2)
ax.add_patch(details_box)
ax.text(11.65, 8.0, 'PHASE DETAILS', fontsize=11, fontweight='bold', color='#ffd700', ha='center')
phase_details = [
('G1 PHASE', '#4fc3f7', ['~11 hours', 'Cell growth', 'Protein synthesis', 'Organelle duplication', 'Prepares for S phase']),
('S PHASE', '#81c784', ['~8 hours', 'DNA replication', 'Histone synthesis', 'Each chromosome duplicated', 'Amount of DNA doubles']),
('G2 PHASE', '#ffb74d', ['~4 hours', 'Cell continues to grow', 'Prepares for division', 'Checks DNA replication', 'Spindle proteins made']),
('M PHASE', '#ef5350', ['~1 hour', 'Karyokinesis (nuclear div)', 'Prophase→Meta→Ana→Telo', 'Cytokinesis follows', 'Two daughter cells formed']),
]
y_pos = 7.5
for phase, col, items in phase_details:
ax.text(9.7, y_pos, phase, fontsize=9, fontweight='bold', color=col)
for item in items:
y_pos -= 0.3
ax.text(9.9, y_pos, '• '+item, fontsize=7.5, color='#e0e0e0')
y_pos -= 0.2
# G0
ax.add_patch(FancyBboxPatch((0.3, 0.55), 4.0, 0.85,
boxstyle="round,pad=0.1", facecolor='#37474f', edgecolor='#78909c', lw=1.5))
ax.text(2.3, 0.97, 'G0 PHASE: Cells that stop dividing', fontsize=8, color='#b0bec5',
ha='center', fontweight='bold')
ax.text(2.3, 0.65, 'Neurons, Cardiac cells (permanent G0) | Liver cells (reversible G0)',
fontsize=7.5, color='#78909c', ha='center')
trap_box = FancyBboxPatch((0.2, 0.05), 13.6, 0.45,
boxstyle="round,pad=0.05", facecolor='#b71c1c', edgecolor='#ef9a9a', lw=1.5)
ax.add_patch(trap_box)
ax.text(7, 0.27, '⚠️ Interphase = 95% of cycle (NOT resting phase - active!) | G0 = metabolically active but NOT dividing | Howard & Pelc (1953)',
fontsize=8, color='white', ha='center', va='center', fontweight='bold')
plt.tight_layout()
plt.savefig(OUT + 'D8_CellCycle.png', dpi=150, bbox_inches='tight', facecolor='#0d1b2a')
plt.close()
print("D8 done")
print("\nAll 8 diagrams created successfully!")
cd /home/daytona/workspace/neet-notes/diagrams && python3 make_diagrams.py
python3 -c " from reportlab.lib.pagesizes import A4, landscape from reportlab.platypus import SimpleDocTemplate, Image, Spacer, Paragraph, PageBreak from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib import colors from reportlab.lib.units import cm from reportlab.lib.enums import TA_CENTER import os OUT = '/home/daytona/workspace/neet-notes/diagrams/' PDF = '/home/daytona/workspace/neet-notes/NEET_Biology_Visual_Diagrams.pdf' doc = SimpleDocTemplate(PDF, pagesize=landscape(A4), rightMargin=1*cm, leftMargin=1*cm, topMargin=1*cm, bottomMargin=1*cm) styles = getSampleStyleSheet() title_style = ParagraphStyle('T', parent=styles['Normal'], fontSize=13, textColor=colors.HexColor('#ffd700'), alignment=TA_CENTER, fontName='Helvetica-Bold', backColor=colors.HexColor('#0d1b2a'), spaceAfter=4, spaceBefore=4) diagrams = [ ('D1_Cell_Theory.png', 'DIAGRAM 1: Cell Theory Timeline'), ('D2_ProVsEu.png', 'DIAGRAM 2: Prokaryote vs Eukaryote'), ('D3_CellMembrane.png', 'DIAGRAM 3: Cell Membrane - Fluid Mosaic Model'), ('D4_Organelles.png', 'DIAGRAM 4: Cell Organelles Master Summary'), ('D5_Cilia_Centriole.png', 'DIAGRAM 5: Cilia, Flagella, Centrioles & Cytoskeleton'), ('D6_Nucleus.png', 'DIAGRAM 6: Nucleus - Structure, Chromatin & Chromosomes'), ('D7_CellWall_Endo.png', 'DIAGRAM 7: Cell Wall + Endomembrane System Flow'), ('D8_CellCycle.png', 'DIAGRAM 8: Cell Cycle Overview'), ] story = [] W = 27*cm H = 17.5*cm for fname, title in diagrams: path = OUT + fname if os.path.exists(path): story.append(Paragraph(title, title_style)) story.append(Image(path, width=W, height=H)) story.append(PageBreak()) doc.build(story) print('PDF created!') print('Size:', os.path.getsize(PDF)//1024, 'KB') "
NEET Biology Visual Diagrams
PDF Document · PDF
D1 Cell Theory
Image · PNG
D2 ProVsEu
Image · PNG
D3 CellMembrane
Image · PNG
D4 Organelles
Image · PNG
D5 Cilia Centriole
Image · PNG
D6 Nucleus
Image · PNG
D7 CellWall Endo
Image · PNG
D8 CellCycle
Image · PNG
| # | Diagram | Key traps highlighted |
|---|---|---|
| D1 | Cell Theory Timeline | Who saw dead vs living cells |
| D2 | Prokaryote vs Eukaryote | 70S in mitochondria+chloroplast |
| D3 | Fluid Mosaic Model + Transport | Cholesterol=animal only |
| D4 | All 8 organelles summarized | Golgi cis/trans, lysosome pH |
| D5 | 9+2 vs 9+0 + Cytoskeleton | Most common NEET trap |
| D6 | Nucleus + Nucleosome | H1 not in octamer |
| D7 | Cell wall + Endomembrane flow | Middle lamella = Ca pectate |
| D8 | Cell Cycle pie chart | Interphase = 95% |
Ok
Cell cycle
| Phase | Chromosome Number | DNA Content |
|---|---|---|
| G1 | 2N | 2C |
| S (during) | 2N | 2C → 4C |
| G2 | 2N | 4C |
| M phase (after) | 2N | 4C (before division) |
| After division | 2N | 2C (each daughter cell) |
INTERPHASE = G1 + S + G2 (~95% of cell cycle)
NOT a resting phase - most active phase
G1 (~11h): Cell growth, protein synthesis, organelle duplication
DNA = 2N, 2C | Most variable phase
G1/S checkpoint → checks cell size + environment
Cells that fail → enter G0 (neurons, cardiac cells)
S (~8h): DNA REPLICATION | DNA doubles (2C → 4C)
Chromosome number stays 2N (same)
Histone synthesis | Centrosome duplication begins
Semi-conservative replication
G2 (~4h): Cell continues growing | Tubulin/spindle proteins made
DNA = 2N, 4C | G2/M checkpoint
Mitochondria divide
KEY: N = chromosome number | C = DNA content
After S phase: 2N chromosomes but 4C DNA
Create visual mitosis stage diagrams
~/neet-notes/diagrams/make_mitosis.py
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
from matplotlib.patches import FancyBboxPatch, Circle, Ellipse, FancyArrowPatch
import numpy as np
from matplotlib.gridspec import GridSpec
OUT = "/home/daytona/workspace/neet-notes/diagrams/"
# ─────────────────────────────────────────────────────────────
# Helper: draw a chromosome (two chromatids joined at centromere)
# ─────────────────────────────────────────────────────────────
def draw_chromosome(ax, cx, cy, angle=0, color='#ef5350', size=0.18, label=None):
"""Draw an X-shaped duplicated chromosome."""
rad = np.radians(angle)
# top arm
ax.plot([cx, cx + size*1.6*np.cos(rad+0.3)],
[cy, cy + size*1.6*np.sin(rad+0.3)], color=color, lw=3, solid_capstyle='round')
ax.plot([cx, cx + size*1.6*np.cos(rad-0.3)],
[cy, cy + size*1.6*np.sin(rad-0.3)], color=color, lw=3, solid_capstyle='round')
# bottom arm
ax.plot([cx, cx - size*1.6*np.cos(rad+0.3)],
[cy, cy - size*1.6*np.sin(rad+0.3)], color=color, lw=3, solid_capstyle='round')
ax.plot([cx, cx - size*1.6*np.cos(rad-0.3)],
[cy, cy - size*1.6*np.sin(rad-0.3)], color=color, lw=3, solid_capstyle='round')
ax.add_patch(Circle((cx, cy), size*0.35, color='#ffd700', zorder=6)) # centromere
def draw_single_chromatid(ax, cx, cy, angle=90, color='#ef5350', size=0.15):
"""Draw a single chromatid (rod shape)."""
rad = np.radians(angle)
ax.plot([cx - size*2*np.cos(rad), cx + size*2*np.cos(rad)],
[cy - size*2*np.sin(rad), cy + size*2*np.sin(rad)],
color=color, lw=4, solid_capstyle='round')
ax.add_patch(Circle((cx, cy), size*0.3, color='#ffd700', zorder=6))
# ─────────────────────────────────────────────────────────────
# MAIN MITOSIS DIAGRAM
# ─────────────────────────────────────────────────────────────
fig = plt.figure(figsize=(20, 24))
fig.patch.set_facecolor('#0d1b2a')
# Title
fig.text(0.5, 0.985, 'MITOSIS — STAGES & KEY EVENTS', fontsize=22, fontweight='bold',
color='#ffd700', ha='center', va='top')
fig.text(0.5, 0.975, 'NEET 2027 | Cell Cycle & Division | Class 11 NCERT',
fontsize=12, color='#90caf9', ha='center', va='top')
# 6 panels: Interphase, Early Prophase, Late Prophase, Metaphase, Anaphase, Telophase+Cytokinesis
gs = GridSpec(3, 2, figure=fig, hspace=0.12, wspace=0.08,
left=0.04, right=0.96, top=0.97, bottom=0.01)
panels = []
for r in range(3):
for c in range(2):
ax = fig.add_subplot(gs[r, c])
ax.set_facecolor('#0d1b2a')
ax.set_xlim(-5, 5)
ax.set_ylim(-5, 5)
ax.axis('off')
panels.append(ax)
# ──────────────────────
# PANEL 0: INTERPHASE
# ──────────────────────
ax = panels[0]
ax.add_patch(FancyBboxPatch((-4.9, -4.9), 9.8, 9.8,
boxstyle="round,pad=0.2", facecolor='#0d1b2a', edgecolor='#546e7a', lw=2))
ax.text(0, 4.5, 'INTERPHASE', fontsize=16, fontweight='bold', color='#4fc3f7', ha='center')
ax.text(0, 4.0, '(G1 + S + G2)', fontsize=11, color='#90caf9', ha='center')
# Cell outline
ax.add_patch(Ellipse((0, 0), 7.5, 7.5, color='none', edgecolor='#4fc3f7', lw=2.5))
# Nuclear envelope
ax.add_patch(Ellipse((0, 0), 4.5, 4.0, color='#0d2a4a', edgecolor='#42a5f5', lw=2.5))
# Diffuse chromatin (wavy lines)
for i in range(6):
theta = np.linspace(0, np.pi*1.5, 30)
r = 0.8 + 0.3*i
x = r * np.cos(theta + i*0.5) + np.random.uniform(-0.1, 0.1, 30)
y = 0.8 * r * np.sin(theta + i*0.5) + np.random.uniform(-0.1, 0.1, 30)
ax.plot(x, y, color='#81c784', lw=1.2, alpha=0.7)
# Nucleolus
ax.add_patch(Circle((0.3, 0.3), 0.6, color='#ce93d8', alpha=0.8))
ax.text(0.3, 0.3, 'Nu', fontsize=8, color='white', ha='center', va='center', fontweight='bold')
# Centrioles
ax.add_patch(Rectangle((-3.8, -0.15), 0.5, 0.3, color='#ffb74d', angle=0))
ax.add_patch(Rectangle((-3.1, -0.15), 0.5, 0.3, color='#ffb74d', angle=0))
# Key events box
ax.add_patch(FancyBboxPatch((-4.8, -4.8), 9.6, 2.2,
boxstyle="round,pad=0.1", facecolor='#1a237e', edgecolor='#3f51b5', lw=1.5))
events = ['G1: Cell growth, protein synthesis | DNA = 2N, 2C',
'S: DNA replication → DNA doubles (2C→4C)',
'G2: Tubulin/spindle proteins made | DNA = 2N, 4C',
'Nuclear envelope INTACT | Chromosomes NOT visible | Nucleolus PRESENT']
for i, e in enumerate(events):
col = ['#4fc3f7','#81c784','#ffb74d','#90caf9'][i]
ax.text(-4.6, -2.7 + i*0.52, e, fontsize=8.5, color=col)
# ──────────────────────
# PANEL 1: EARLY PROPHASE
# ──────────────────────
ax = panels[1]
ax.add_patch(FancyBboxPatch((-4.9, -4.9), 9.8, 9.8,
boxstyle="round,pad=0.2", facecolor='#0d1b2a', edgecolor='#ce93d8', lw=2))
ax.text(0, 4.5, 'PROPHASE', fontsize=16, fontweight='bold', color='#ce93d8', ha='center')
ax.text(0, 4.0, '(First stage of M phase)', fontsize=11, color='#e1bee7', ha='center')
ax.add_patch(Ellipse((0, 0.2), 7.5, 7.5, color='none', edgecolor='#4fc3f7', lw=2.5))
# Nuclear envelope (still present early, fading)
ax.add_patch(Ellipse((0, 0.2), 4.5, 4.0, color='#0d2a4a', edgecolor='#42a5f5', lw=1.5, alpha=0.5, linestyle='--'))
# Condensed chromosomes (visible X shapes)
chrom_positions = [(-1.2, 1.5), (0.5, 1.2), (1.5, 0.5), (-1.5, -0.3),
(0.3, -0.8), (1.2, -1.2), (-0.5, -1.5), (0, 0.2)]
colors_c = ['#ef5350','#ef5350','#42a5f5','#42a5f5','#ef5350','#42a5f5','#ef5350','#42a5f5']
for (cx2, cy2), col in zip(chrom_positions, colors_c):
draw_chromosome(ax, cx2, cy2+0.2, color=col, size=0.2)
# Nucleolus disappearing
ax.add_patch(Circle((0.3, 0.5), 0.35, color='#ce93d8', alpha=0.3))
ax.text(0.3, 0.5, 'Nu\n(fading)', fontsize=6, color='#ce93d8', ha='center', va='center')
# Asters forming
for ang in [0, 60, 120, 180, 240, 300]:
r_ast = np.radians(ang)
ax.plot([0 + 0.2*np.cos(r_ast), 0 + 0.8*np.cos(r_ast)],
[-3.5 + 0.2*np.sin(r_ast), -3.5 + 0.8*np.sin(r_ast)],
color='#ffd700', lw=1, alpha=0.6)
ax.add_patch(Circle((0, -3.5), 0.2, color='#ffb74d'))
ax.text(0, -3.5, 'C', fontsize=7, color='white', ha='center', va='center')
ax.add_patch(FancyBboxPatch((-4.8, -4.8), 9.6, 2.0,
boxstyle="round,pad=0.1", facecolor='#2d1b3d', edgecolor='#7b1fa2', lw=1.5))
events_p = ['• Chromatin CONDENSES → chromosomes become VISIBLE',
'• NUCLEOLUS disappears',
'• Centrosomes move to opposite poles',
'• Spindle fibres begin to form | Nuclear envelope begins to break']
for i, e in enumerate(events_p):
ax.text(-4.6, -2.9 + i*0.52, e, fontsize=8.5, color='#e1bee7')
# ──────────────────────
# PANEL 2: METAPHASE
# ──────────────────────
ax = panels[2]
ax.add_patch(FancyBboxPatch((-4.9, -4.9), 9.8, 9.8,
boxstyle="round,pad=0.2", facecolor='#0d1b2a', edgecolor='#ffd700', lw=2))
ax.text(0, 4.5, 'METAPHASE', fontsize=16, fontweight='bold', color='#ffd700', ha='center')
ax.text(0, 4.0, '(Most clear stage for karyotyping)', fontsize=11, color='#fff9c4', ha='center')
ax.add_patch(Ellipse((0, 0), 7.5, 7.5, color='none', edgecolor='#4fc3f7', lw=2.5))
# No nuclear envelope
# Spindle fibres
for y_pos in [-1.8, -0.8, 0, 0.8, 1.8]:
ax.plot([-3.8, 3.8], [y_pos, y_pos], color='#4fc3f7', lw=1.0, alpha=0.5, linestyle='-')
# Chromosomes at METAPHASE PLATE (equatorial plate)
meta_positions = [(-0.5, 2.0), (0.5, 1.2), (-0.3, 0.4), (0.4, -0.4), (-0.5, -1.2), (0.3, -2.0)]
colors_m = ['#ef5350','#42a5f5','#ef5350','#42a5f5','#ef5350','#42a5f5']
for (cx2, cy2), col in zip(meta_positions, colors_m):
draw_chromosome(ax, cx2, cy2, color=col, size=0.22)
# Equatorial plate line
ax.axvline(x=0, color='#ffd700', lw=2, linestyle='--', alpha=0.8)
ax.text(0.2, 3.4, 'Metaphase\nPlate', fontsize=8, color='#ffd700', fontweight='bold')
# Poles
ax.add_patch(Circle((-4.0, 0), 0.35, color='#ffb74d'))
ax.text(-4.0, 0, 'N\nPole', fontsize=6.5, color='white', ha='center', va='center', fontweight='bold')
ax.add_patch(Circle((4.0, 0), 0.35, color='#ffb74d'))
ax.text(4.0, 0, 'S\nPole', fontsize=6.5, color='white', ha='center', va='center', fontweight='bold')
# Spindle from poles to centromeres
for (cx2, cy2) in meta_positions:
ax.plot([-4.0, cx2], [0, cy2], color='#81c784', lw=0.8, alpha=0.4)
ax.plot([4.0, cx2], [0, cy2], color='#81c784', lw=0.8, alpha=0.4)
ax.add_patch(FancyBboxPatch((-4.8, -4.8), 9.6, 2.0,
boxstyle="round,pad=0.1", facecolor='#1a1a00', edgecolor='#f9a825', lw=1.5))
events_m = ['• Chromosomes MAXIMALLY condensed (SHORTEST, THICKEST)',
'• Chromosomes align at EQUATORIAL PLATE (metaphase plate)',
'• Spindle fibres attach to CENTROMERE (kinetochore)',
'• BEST stage for karyotyping | Nuclear envelope ABSENT']
for i, e in enumerate(events_m):
ax.text(-4.6, -2.9 + i*0.52, e, fontsize=8.5, color='#fff9c4')
# ──────────────────────
# PANEL 3: ANAPHASE
# ──────────────────────
ax = panels[3]
ax.add_patch(FancyBboxPatch((-4.9, -4.9), 9.8, 9.8,
boxstyle="round,pad=0.2", facecolor='#0d1b2a', edgecolor='#ef5350', lw=2))
ax.text(0, 4.5, 'ANAPHASE', fontsize=16, fontweight='bold', color='#ef5350', ha='center')
ax.text(0, 4.0, '(Shortest stage)', fontsize=11, color='#ffcdd2', ha='center')
ax.add_patch(Ellipse((0, 0), 7.5, 7.5, color='none', edgecolor='#4fc3f7', lw=2.5))
# Chromatids moving to poles
top_positions = [(-1.5, 3.0), (-0.5, 3.2), (0.5, 3.0), (1.5, 2.8),
(-1.0, 2.5), (1.0, 2.6)]
bot_positions = [(-1.5, -3.0), (-0.5, -3.2), (0.5, -3.0), (1.5, -2.8),
(-1.0, -2.5), (1.0, -2.6)]
colors_top = ['#ef5350','#42a5f5','#ef5350','#42a5f5','#ef5350','#42a5f5']
for (cx2, cy2), col in zip(top_positions, colors_top):
draw_single_chromatid(ax, cx2, cy2, angle=90, color=col, size=0.18)
for (cx2, cy2), col in zip(bot_positions, colors_top):
draw_single_chromatid(ax, cx2, cy2, angle=90, color=col, size=0.18)
# Arrows showing movement
for (cx2, cy2) in [(-0.8, 1.2), (0.8, 1.2)]:
ax.annotate('', xy=(cx2*1.5, cy2*2.2), xytext=(cx2*0.6, cy2*0.5),
arrowprops=dict(arrowstyle='->', color='#ffd700', lw=1.5))
for (cx2, cy2) in [(-0.8, -1.2), (0.8, -1.2)]:
ax.annotate('', xy=(cx2*1.5, cy2*2.2), xytext=(cx2*0.6, cy2*0.5),
arrowprops=dict(arrowstyle='->', color='#ffd700', lw=1.5))
# Spindle fibres
for y_pos in [-1.5, 0, 1.5]:
ax.plot([-3.5, 3.5], [y_pos*0.2, y_pos*0.2], color='#4fc3f7', lw=0.8, alpha=0.3)
# Cell elongating
ax.add_patch(Ellipse((0, 0), 7.0, 8.5, color='none', edgecolor='#4fc3f7', lw=1.5, linestyle='--', alpha=0.5))
ax.add_patch(FancyBboxPatch((-4.8, -4.8), 9.6, 2.2,
boxstyle="round,pad=0.1", facecolor='#1a0000', edgecolor='#c62828', lw=1.5))
events_a = ['• CENTROMERE SPLITS → sister chromatids separate',
'• Chromatids (now called chromosomes) move to OPPOSITE POLES',
'• Pulled by SPINDLE FIBRES shortening',
'• SHORTEST stage of mitosis | Cell becomes elongated',
'• Each pole now has full chromosome set (2N)']
for i, e in enumerate(events_a):
ax.text(-4.6, -2.55 + i*0.52, e, fontsize=8.5, color='#ffcdd2')
# ──────────────────────
# PANEL 4: TELOPHASE
# ──────────────────────
ax = panels[4]
ax.add_patch(FancyBboxPatch((-4.9, -4.9), 9.8, 9.8,
boxstyle="round,pad=0.2", facecolor='#0d1b2a', edgecolor='#81c784', lw=2))
ax.text(0, 4.5, 'TELOPHASE', fontsize=16, fontweight='bold', color='#81c784', ha='center')
ax.text(0, 4.0, '(Reverse of prophase)', fontsize=11, color='#c8e6c9', ha='center')
ax.add_patch(Ellipse((0, 0), 7.0, 8.8, color='none', edgecolor='#4fc3f7', lw=2.0, linestyle='--'))
# Two groups of chromosomes decondensing at poles
for (cx2, cy2) in [(-1.0, 2.8), (0, 3.0), (1.0, 2.8), (-0.7, 2.2), (0.7, 2.2)]:
draw_chromosome(ax, cx2, cy2, color='#81c784', size=0.14)
for (cx2, cy2) in [(-1.0, -2.8), (0, -3.0), (1.0, -2.8), (-0.7, -2.2), (0.7, -2.2)]:
draw_chromosome(ax, cx2, cy2, color='#81c784', size=0.14)
# Nuclear envelopes reforming
ax.add_patch(Ellipse((0, 2.6), 3.5, 2.5, color='none', edgecolor='#42a5f5', lw=2, linestyle='--', alpha=0.8))
ax.add_patch(Ellipse((0, -2.6), 3.5, 2.5, color='none', edgecolor='#42a5f5', lw=2, linestyle='--', alpha=0.8))
# Nucleolus reappearing
ax.add_patch(Circle((0.2, 2.7), 0.3, color='#ce93d8', alpha=0.7))
ax.text(0.2, 2.7, 'Nu', fontsize=6, color='white', ha='center', va='center')
ax.add_patch(Circle((0.2, -2.7), 0.3, color='#ce93d8', alpha=0.7))
ax.text(0.2, -2.7, 'Nu', fontsize=6, color='white', ha='center', va='center')
# Cleavage furrow forming (animal cell)
ax.plot([-3.5, 3.5], [0, 0], color='#ef5350', lw=2, linestyle='--')
ax.text(3.8, 0.2, 'Cleavage\nFurrow', fontsize=7, color='#ef5350', ha='center')
ax.add_patch(FancyBboxPatch((-4.8, -4.8), 9.6, 2.0,
boxstyle="round,pad=0.1", facecolor='#002200', edgecolor='#388e3c', lw=1.5))
events_t = ['• Chromosomes DECONDENSE back to chromatin',
'• NUCLEAR ENVELOPE reforms around each set',
'• NUCLEOLUS reappears',
'• Spindle fibres disappear | Two nuclei formed']
for i, e in enumerate(events_t):
ax.text(-4.6, -2.9 + i*0.52, e, fontsize=8.5, color='#c8e6c9')
# ──────────────────────
# PANEL 5: CYTOKINESIS + SUMMARY
# ──────────────────────
ax = panels[5]
ax.add_patch(FancyBboxPatch((-4.9, -4.9), 9.8, 9.8,
boxstyle="round,pad=0.2", facecolor='#0d1b2a', edgecolor='#ffb74d', lw=2))
ax.text(0, 4.5, 'CYTOKINESIS + STAGE SUMMARY', fontsize=14, fontweight='bold', color='#ffb74d', ha='center')
# Animal cytokinesis (cleavage furrow)
ax.add_patch(Ellipse((-2.5, 2.5), 3.5, 2.5, color='none', edgecolor='#4fc3f7', lw=2))
ax.add_patch(Circle((-3.2, 2.5), 0.45, color='#0d2a4a', edgecolor='#42a5f5', lw=1.5))
ax.add_patch(Circle((-1.8, 2.5), 0.45, color='#0d2a4a', edgecolor='#42a5f5', lw=1.5))
ax.text(-2.5, 1.05, 'Animal: Cleavage Furrow\n(actin-myosin ring)', fontsize=8, color='#4fc3f7', ha='center')
# Plant cytokinesis (cell plate)
ax.add_patch(FancyBboxPatch((0.3, 1.4), 4.2, 2.7,
boxstyle="round,pad=0.1", color='none', edgecolor='#81c784', lw=2))
ax.add_patch(FancyBboxPatch((0.6, 2.2), 1.6, 1.3, boxstyle="round,pad=0.05",
color='none', edgecolor='#81c784', lw=1.5))
ax.add_patch(FancyBboxPatch((2.4, 2.2), 1.6, 1.3, boxstyle="round,pad=0.05",
color='none', edgecolor='#81c784', lw=1.5))
ax.plot([1.4, 1.4], [2.2, 3.5], color='#ffd700', lw=3)
ax.plot([2.6, 2.6], [2.2, 3.5], color='#ffd700', lw=0.5, linestyle='--')
ax.text(0.8, 2.76, 'Cell 1', fontsize=8, color='#81c784', ha='center')
ax.text(3.2, 2.76, 'Cell 2', fontsize=8, color='#81c784', ha='center')
ax.text(2.4, 1.55, 'Plant: Cell Plate\n(Golgi vesicles→middle lamella)', fontsize=7.5, color='#81c784', ha='center')
# Stage summary table
ax.add_patch(FancyBboxPatch((-4.8, -4.8), 9.6, 6.0,
boxstyle="round,pad=0.15", facecolor='#1a1a2e', edgecolor='#7986cb', lw=2))
ax.text(0, 1.0, 'STAGE-BY-STAGE CHEATSHEET', fontsize=10, fontweight='bold',
color='#ffd700', ha='center')
stages_summary = [
('PROPHASE', '#ce93d8', 'Chromatin condenses | Nucleolus disappears | Spindle forms | NE breaks down'),
('METAPHASE', '#ffd700', 'Chromosomes at equatorial plate | Max condensed | Best for karyotyping'),
('ANAPHASE', '#ef5350', 'Centromere splits | Chromatids → poles | SHORTEST | Cell elongates'),
('TELOPHASE', '#81c784', 'Chromatids decondense | NE reforms | Nucleolus reappears | 2 nuclei'),
('CYTOKINESIS','#ffb74d', 'Animal: cleavage furrow (actin) | Plant: cell plate (Golgi vesicles)'),
]
for i, (stage, col, desc) in enumerate(stages_summary):
y = 0.35 - i*1.0
ax.add_patch(FancyBboxPatch((-4.7, y-0.35), 2.0, 0.65,
boxstyle="round,pad=0.05", facecolor=col, alpha=0.85, edgecolor='none'))
ax.text(-3.7, y, stage, fontsize=9, color='#0d1b2a', ha='center', va='center', fontweight='bold')
ax.text(-0.8, y, desc, fontsize=7.8, color='#e0e0e0', va='center', wrap=True)
# TRAP box at very bottom
ax.add_patch(FancyBboxPatch((-4.8, -4.85), 9.6, 0.75,
boxstyle="round,pad=0.05", facecolor='#b71c1c', edgecolor='#ef9a9a', lw=1.5))
ax.text(0, -4.47,
'⚠️ Metaphase = LONGEST visible stage | Anaphase = SHORTEST | '
'Centromere splits at ANAPHASE | Plant cell = NO cleavage furrow (cell plate instead)',
fontsize=8, color='white', ha='center', va='center', fontweight='bold')
plt.savefig(OUT + 'M1_Mitosis_All_Stages.png', dpi=150, bbox_inches='tight', facecolor='#0d1b2a')
plt.close()
print("Mitosis main diagram done")
# ─────────────────────────────────────────────
# DIAGRAM 2: MITOSIS FLOW + DNA CONTENT GRAPH
# ─────────────────────────────────────────────
fig, axes = plt.subplots(1, 2, figsize=(20, 9))
fig.patch.set_facecolor('#0d1b2a')
# LEFT: Flow diagram
ax = axes[0]
ax.set_facecolor('#0d1b2a')
ax.set_xlim(0, 10); ax.set_ylim(0, 10); ax.axis('off')
ax.text(5, 9.6, 'MITOSIS — COMPLETE FLOW', fontsize=16, fontweight='bold',
color='#ffd700', ha='center')
flow = [
(5, 8.8, 'INTERPHASE\nG1 → S → G2', '#4fc3f7', '#0d2a4a'),
(5, 7.3, 'PROPHASE\nChromatin condenses, NE breaks, spindle forms', '#ce93d8', '#2d1b3d'),
(5, 5.8, 'METAPHASE\nChromosomes align at equatorial plate', '#ffd700', '#1a1a00'),
(5, 4.3, 'ANAPHASE\nCentromere splits, chromatids move to poles', '#ef5350', '#1a0000'),
(5, 2.8, 'TELOPHASE\nDecondense, NE reforms, nucleolus reappears', '#81c784', '#002200'),
(5, 1.3, 'CYTOKINESIS\nAnimal: furrow | Plant: cell plate', '#ffb74d', '#1a1000'),
]
for (x, y, label, col, bg) in flow:
ax.add_patch(FancyBboxPatch((x-4.2, y-0.55), 8.4, 1.0,
boxstyle="round,pad=0.1", facecolor=bg, edgecolor=col, lw=2))
ax.text(x, y, label, fontsize=9.5, color=col, ha='center', va='center',
fontweight='bold', linespacing=1.4)
for i in range(len(flow)-1):
y1 = flow[i][1] - 0.55
y2 = flow[i+1][1] + 0.45
col = flow[i+1][2]
ax.annotate('', xy=(5, y2), xytext=(5, y1),
arrowprops=dict(arrowstyle='->', color=col, lw=2.5))
# RIGHT: DNA content graph
ax2 = axes[1]
ax2.set_facecolor('#0d1b2a')
ax2.spines['bottom'].set_color('#546e7a')
ax2.spines['left'].set_color('#546e7a')
ax2.spines['top'].set_visible(False)
ax2.spines['right'].set_visible(False)
ax2.tick_params(colors='#b0bec5', labelsize=10)
# DNA content over time
x_time = [0, 1, 1, 3, 3, 4, 4.5, 5, 5, 6]
y_dna = [2, 2, 4, 4, 4, 4, 4, 4, 2, 2]
phase_labels = ['G1','S','G2','M']
phase_x = [0.5, 2.0, 3.5, 4.75]
phase_colors = ['#4fc3f7','#81c784','#ffb74d','#ef5350']
ax2.fill_between(x_time, y_dna, alpha=0.15, color='#42a5f5')
ax2.plot(x_time, y_dna, color='#42a5f5', lw=3)
ax2.set_xlim(0, 6.5)
ax2.set_ylim(0, 5.5)
ax2.set_yticks([2, 4])
ax2.set_yticklabels(['2C\n(diploid)', '4C\n(doubled)'], color='#ffd700', fontsize=10)
ax2.set_xticks([])
for px, pl, pc in zip(phase_x, phase_labels, phase_colors):
ax2.text(px, 0.3, pl, fontsize=13, color=pc, ha='center', fontweight='bold')
ax2.axhline(y=2, color='#546e7a', lw=1, linestyle='--', alpha=0.5)
ax2.axhline(y=4, color='#546e7a', lw=1, linestyle='--', alpha=0.5)
# Annotations
ax2.annotate('DNA replication\n(S phase)',
xy=(2.0, 4.05), xytext=(2.5, 4.8),
arrowprops=dict(arrowstyle='->', color='#81c784', lw=1.5),
fontsize=9, color='#81c784', ha='center')
ax2.annotate('Cytokinesis\n(DNA halves)',
xy=(5.0, 3.0), xytext=(5.5, 3.8),
arrowprops=dict(arrowstyle='->', color='#ef5350', lw=1.5),
fontsize=9, color='#ef5350', ha='center')
ax2.set_title('DNA CONTENT THROUGH CELL CYCLE', fontsize=13, color='#ffd700',
fontweight='bold', pad=12)
ax2.set_xlabel('Time →', fontsize=11, color='#b0bec5')
ax2.set_ylabel('DNA Content (C value)', fontsize=11, color='#b0bec5')
ax2.set_facecolor('#0d1b2a')
fig.patch.set_facecolor('#0d1b2a')
# Trap box
fig.text(0.5, 0.01,
'⚠️ S phase = DNA replication (interphase, NOT mitosis) | '
'2N stays same throughout | DNA doubles at S phase | Returns to 2C after cytokinesis',
fontsize=9, color='white', ha='center',
bbox=dict(boxstyle='round', facecolor='#b71c1c', edgecolor='#ef9a9a', alpha=0.9))
plt.tight_layout(rect=[0, 0.04, 1, 1])
plt.savefig(OUT + 'M2_Mitosis_Flow_DNA.png', dpi=150, bbox_inches='tight', facecolor='#0d1b2a')
plt.close()
print("Mitosis flow + DNA diagram done")
# ─────────────────────────────────────────────
# DIAGRAM 3: KEY TRAPS & PYQ SUMMARY
# ─────────────────────────────────────────────
fig, ax = plt.subplots(figsize=(20, 11))
fig.patch.set_facecolor('#0d1b2a')
ax.set_facecolor('#0d1b2a')
ax.set_xlim(0, 20); ax.set_ylim(0, 11); ax.axis('off')
ax.text(10, 10.6, 'CELL CYCLE & MITOSIS — TRAPS, PYQs & QUICK FACTS', fontsize=18,
fontweight='bold', color='#ffd700', ha='center')
# Left: Trap cards
traps = [
('Interphase is NOT "resting phase"',
'It is the most active phase - cell grows,\nreplicates DNA, makes proteins', '#ef5350'),
('After S phase: chromosomes = 2N\nbut DNA = 4C (DOUBLED)',
'N (chromosome no.) stays same\nC (DNA content) doubles', '#ce93d8'),
('DNA replication = S phase\nof INTERPHASE (not mitosis itself)',
'Mitosis just separates the already\nreplicated chromosomes', '#4fc3f7'),
('Centromere splits at ANAPHASE\n(NOT metaphase)',
'Metaphase = chromosomes aligned\nAnaphase = centromere splits', '#ffd700'),
('Plant cell: cell plate (Golgi vesicles)\nAnimal cell: cleavage furrow',
'Plant has rigid cell wall so\ncleavage furrow not possible', '#81c784'),
('Nucleolus disappears at PROPHASE\nReforms at TELOPHASE',
'Always asked as "which stage nucleolus\ndisappears" = PROPHASE', '#ffb74d'),
('Metaphase = LONGEST visible stage\nAnaphase = SHORTEST stage',
'Anaphase is brief - chromosomes\nmove rapidly to poles', '#ef9a9a'),
('G1 = most variable phase duration\nS, G2, M = fixed duration',
'Cells in G0 are permanently stopped\nin G1 (neurons, cardiac cells)', '#90caf9'),
]
for i, (trap_title, trap_desc, col) in enumerate(traps):
row = i // 2
col_pos = i % 2
x0 = 0.3 + col_pos * 9.8
y0 = 9.8 - row * 2.55
ax.add_patch(FancyBboxPatch((x0, y0-1.9), 9.2, 2.1,
boxstyle="round,pad=0.1", facecolor='#0d1b2a', edgecolor=col, lw=2))
ax.add_patch(FancyBboxPatch((x0, y0-0.05), 9.2, 0.55,
boxstyle="round,pad=0.05", facecolor=col, alpha=0.85, edgecolor='none'))
ax.text(x0+4.6, y0+0.23, '⚠️ TRAP: ' + trap_title,
fontsize=8.5, color='#0d1b2a', ha='center', va='center', fontweight='bold')
ax.text(x0+0.2, y0-0.8, trap_desc, fontsize=8.5, color='#e0e0e0', linespacing=1.5)
# Bottom: PYQ strip
ax.add_patch(FancyBboxPatch((0.2, 0.1), 19.6, 2.5,
boxstyle="round,pad=0.15", facecolor='#1b5e20', edgecolor='#4caf50', lw=2))
ax.text(10, 2.4, 'PREVIOUS YEAR QUESTIONS (PYQs)', fontsize=11, fontweight='bold',
color='#ffd700', ha='center')
pyqs = [
('[2024] DNA replication occurs in? → S phase of Interphase',
'[2023] After S phase DNA content? → 4C (doubled, chromosome no. stays 2N)'),
('[2022] Longest phase in cell cycle? → G1 phase (~11 hours)',
'[2021] Interphase is called resting phase - this is? → INCORRECT (it is active)'),
('[2020] Histone synthesis occurs in? → S phase',
'[2019] Cells in permanent G0? → Neurons and cardiac muscle cells'),
('[2018] Centromere splits during? → Anaphase',
'[2017] Plant cell cytokinesis by? → Cell plate formed by Golgi vesicles'),
('[2016] Best stage for karyotyping? → Metaphase (chromosomes most condensed)',
'[2015] Cleavage furrow is seen in? → Animal cells only (NOT plant cells)'),
]
for i, (q1, q2) in enumerate(pyqs):
y_p = 2.0 - i*0.37
ax.text(0.5, y_p, q1, fontsize=7.8, color='#a5d6a7')
ax.text(10.2, y_p, q2, fontsize=7.8, color='#a5d6a7')
plt.tight_layout()
plt.savefig(OUT + 'M3_Mitosis_Traps_PYQ.png', dpi=150, bbox_inches='tight', facecolor='#0d1b2a')
plt.close()
print("Mitosis traps + PYQ diagram done")
print("\nAll mitosis diagrams created!")
cd /home/daytona/workspace/neet-notes/diagrams && python3 make_mitosis.py
~/neet-notes/diagrams/make_mitosis.py
Successfully replaced 1 instance(s) of the string in '/home/daytona/workspace/neet-notes/diagrams/make_mitosis.py'
cd /home/daytona/workspace/neet-notes/diagrams && python3 make_mitosis.py
~/neet-notes/diagrams/make_mitosis.py
Successfully replaced 1 instance(s) of the string in '/home/daytona/workspace/neet-notes/diagrams/make_mitosis.py'
cd /home/daytona/workspace/neet-notes/diagrams && python3 make_mitosis.py 2>/dev/null && echo "All done" && ls -lh M*.png
cd /home/daytona/workspace/neet-notes/diagrams && python3 make_mitosis.py 2>&1 | tail -20
cd /home/daytona/workspace/neet-notes/diagrams && grep -n "arrowprops=dict(arrowstyle" make_mitosis.py
~/neet-notes/diagrams/make_mitosis.py
Successfully replaced 1 instance(s) of the string in '/home/daytona/workspace/neet-notes/diagrams/make_mitosis.py'
cd /home/daytona/workspace/neet-notes/diagrams && python3 make_mitosis.py 2>/dev/null; echo "Exit: $?" && ls -lh M*.png 2>/dev/null
python3 -c " from reportlab.lib.pagesizes import A4, landscape from reportlab.platypus import SimpleDocTemplate, Image, Spacer, Paragraph, PageBreak from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib import colors from reportlab.lib.units import cm from reportlab.lib.enums import TA_CENTER import os OUT = '/home/daytona/workspace/neet-notes/diagrams/' PDF = '/home/daytona/workspace/neet-notes/NEET_Mitosis_Visual_Diagrams.pdf' doc = SimpleDocTemplate(PDF, pagesize=landscape(A4), rightMargin=0.8*cm, leftMargin=0.8*cm, topMargin=0.8*cm, bottomMargin=0.8*cm) styles = getSampleStyleSheet() title_style = ParagraphStyle('T', parent=styles['Normal'], fontSize=13, textColor=colors.HexColor('#ffd700'), alignment=TA_CENTER, fontName='Helvetica-Bold', backColor=colors.HexColor('#0d1b2a'), spaceAfter=4, spaceBefore=4) # M1 is tall (24 inch), use portrait for it from reportlab.lib.pagesizes import A4 as portrait_A4 from reportlab.platypus import FrameBreak diagrams = [ ('M1_Mitosis_All_Stages.png', 'DIAGRAM 1: Mitosis - All Stages (Interphase to Cytokinesis)', landscape(A4), 27.5*cm, 18*cm), ('M2_Mitosis_Flow_DNA.png', 'DIAGRAM 2: Mitosis Flow Chart + DNA Content Graph', landscape(A4), 27.5*cm, 17*cm), ('M3_Mitosis_Traps_PYQ.png', 'DIAGRAM 3: Key Traps, PYQs & Quick Facts', landscape(A4), 27.5*cm, 16*cm), ] story = [] for fname, title, pagesize, w, h in diagrams: path = OUT + fname if os.path.exists(path): story.append(Paragraph(title, title_style)) story.append(Image(path, width=w, height=h)) story.append(PageBreak()) doc.build(story) print('PDF created!') print('Size:', os.path.getsize(PDF)//1024, 'KB') "
NEET Mitosis Visual Diagrams
PDF Document · PDF
M1 Mitosis All Stages
Image · PNG
M2 Mitosis Flow DNA
Image · PNG
M3 Mitosis Traps PYQ
Image · PNG
| Diagram | Content |
|---|---|
| M1 | 6-panel: each stage drawn with chromosomes, spindle, nuclear envelope, events listed + traps |
| M2 | Left: complete flow from Interphase→Cytokinesis |
| M3 | 8 trap cards + 10 PYQs from 2015-2024 |
ok
| Structure | Made of | Function |
|---|---|---|
| Spindle fibres | Microtubules (tubulin) | Pull chromosomes to poles |
| Aster | Microtubules radiating from centrosome | Anchor spindle to cell cortex |
| Kinetochore | Protein complex at centromere | Attachment site for spindle fibres |
| Stage | Key Event | What disappears | What appears |
|---|---|---|---|
| Prophase | Chromatin condenses | Nucleolus + NE | Chromosomes + Spindle + Aster |
| Metaphase | Chromosomes at equatorial plate | - | Max condensed chromosomes |
| Anaphase | Centromere splits | - | Separated chromatids moving |
| Telophase | Chromosomes reach poles | Spindle fibres | NE + Nucleolus |
| Cytokinesis | Cytoplasm divides | - | Two daughter cells |
M PHASE = Karyokinesis (P→M→A→T) + Cytokinesis
PROPHASE: Condense + NE breaks + Nucleolus disappears + Spindle forms
METAPHASE: Equatorial plate + Max condensed + Karyotyping + Longest visible stage
ANAPHASE: Centromere splits + Chromatids→poles + Shortest stage + Cell elongates
TELOPHASE: Decondense + NE reforms + Nucleolus reappears + Spindle disappears
CYTOKINESIS:
Animal → Cleavage furrow (actin + myosin ring)
Plant → Cell plate (Golgi vesicles → middle lamella)
KEY TRAPS:
Nucleolus disappears = PROPHASE
Centromere splits = ANAPHASE
Best for karyotyping = METAPHASE
Shortest = ANAPHASE | Longest = METAPHASE
Genetically IDENTICAL daughter cells
| Topic | Status |
|---|---|
| Cell Cycle Overview | ✅ |
| Interphase (G1, S, G2) | ✅ |
| Mitosis (P, M, A, T) | ✅ |
| Cytokinesis | ✅ |
| Significance of Mitosis | ✅ |
Make a quick revision summary PDF of Cell + Cell Cycle chapters
~/neet-notes/make_quick_revision.py
from reportlab.lib.pagesizes import A4
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import cm
from reportlab.lib import colors
from reportlab.platypus import (SimpleDocTemplate, Paragraph, Spacer, Table,
TableStyle, HRFlowable, PageBreak, KeepTogether)
from reportlab.lib.enums import TA_CENTER, TA_LEFT
PDF = "/home/daytona/workspace/neet-notes/NEET_Quick_Revision_Cell_CellCycle.pdf"
doc = SimpleDocTemplate(PDF, pagesize=A4,
rightMargin=1.2*cm, leftMargin=1.2*cm,
topMargin=1.0*cm, bottomMargin=1.0*cm)
# ── Styles ──────────────────────────────────────
S = getSampleStyleSheet()
def sty(name, parent='Normal', **kw):
return ParagraphStyle(name, parent=S[parent], **kw)
TITLE = sty('TITLE', fontSize=20, fontName='Helvetica-Bold',
textColor=colors.HexColor('#ffd700'),
backColor=colors.HexColor('#0d1b2a'),
alignment=TA_CENTER, spaceAfter=4, spaceBefore=2, leading=26)
SUBTITLE= sty('SUBTITLE',fontSize=10, fontName='Helvetica',
textColor=colors.HexColor('#90caf9'),
backColor=colors.HexColor('#0d1b2a'),
alignment=TA_CENTER, spaceAfter=6)
CH = sty('CH', fontSize=13, fontName='Helvetica-Bold',
textColor=colors.white,
backColor=colors.HexColor('#1a237e'),
spaceAfter=3, spaceBefore=8, leading=18,
leftIndent=6, rightIndent=6)
SEC = sty('SEC', fontSize=10, fontName='Helvetica-Bold',
textColor=colors.HexColor('#ffd700'),
backColor=colors.HexColor('#283593'),
spaceAfter=2, spaceBefore=5, leading=14,
leftIndent=4)
BODY = sty('BODY', fontSize=8.5, fontName='Helvetica',
textColor=colors.HexColor('#212121'),
spaceAfter=2, spaceBefore=1, leading=12, leftIndent=4)
TRAP = sty('TRAP', fontSize=8.5, fontName='Helvetica-Bold',
textColor=colors.HexColor('#b71c1c'),
backColor=colors.HexColor('#ffebee'),
spaceAfter=2, spaceBefore=2, leading=12,
leftIndent=6, rightIndent=4)
PYQ = sty('PYQ', fontSize=8.5, fontName='Helvetica',
textColor=colors.HexColor('#1b5e20'),
backColor=colors.HexColor('#e8f5e9'),
spaceAfter=2, spaceBefore=1, leading=12,
leftIndent=6, rightIndent=4)
SNAP = sty('SNAP', fontSize=8, fontName='Courier',
textColor=colors.HexColor('#1a237e'),
backColor=colors.HexColor('#e8eaf6'),
spaceAfter=1, spaceBefore=1, leading=11,
leftIndent=8, rightIndent=4)
def tbl(headers, rows, widths=None):
if widths is None:
widths = [doc.width/len(headers)]*len(headers)
data = [headers]+rows
t = Table(data, colWidths=widths, repeatRows=1)
t.setStyle(TableStyle([
('BACKGROUND',(0,0),(-1,0),colors.HexColor('#1565c0')),
('TEXTCOLOR',(0,0),(-1,0),colors.white),
('FONTNAME',(0,0),(-1,0),'Helvetica-Bold'),
('FONTSIZE',(0,0),(-1,0),8),
('FONTNAME',(0,1),(-1,-1),'Helvetica'),
('FONTSIZE',(0,1),(-1,-1),8),
('ROWBACKGROUNDS',(0,1),(-1,-1),
[colors.HexColor('#ffffff'),colors.HexColor('#e3f2fd')]),
('GRID',(0,0),(-1,-1),0.4,colors.HexColor('#90caf9')),
('VALIGN',(0,0),(-1,-1),'MIDDLE'),
('TOPPADDING',(0,0),(-1,-1),3),
('BOTTOMPADDING',(0,0),(-1,-1),3),
('LEFTPADDING',(0,0),(-1,-1),4),
]))
return t
def sp(n=0.15): return Spacer(1, n*cm)
def hr(): return HRFlowable(width="100%",thickness=1,
color=colors.HexColor('#3f51b5'),spaceAfter=3)
story = []
# ═══════════════════════════════════════════════
# COVER
# ═══════════════════════════════════════════════
story += [
sp(0.3),
Paragraph("NEET 2027 — QUICK REVISION", TITLE),
Paragraph("Cell: Unit of Life | Cell Cycle & Mitosis", SUBTITLE),
Paragraph("Complete NCERT Summary · All Traps · PYQs · Last-Minute Cheatsheet", SUBTITLE),
HRFlowable(width="100%",thickness=3,color=colors.HexColor('#ffd700')),
sp(0.3),
]
# ═══════════════════════════════════════════════
# CHAPTER 1: CELL - UNIT OF LIFE
# ═══════════════════════════════════════════════
story.append(Paragraph("CHAPTER 1 — CELL: THE UNIT OF LIFE", CH))
# ── 1. Cell Theory ──
story += [sp(0.1), Paragraph("1. CELL THEORY & DISCOVERY", SEC)]
story += [
Paragraph("• <b>Robert Hooke (1665)</b> — dead cork cells → coined 'cell'", BODY),
Paragraph("• <b>Leeuwenhoek</b> — first LIVING cells (bacteria, RBCs)", BODY),
Paragraph("• <b>Robert Brown (1831)</b> — discovered NUCLEUS", BODY),
Paragraph("• <b>Schleiden (1838) + Schwann (1839)</b> — Cell Theory", BODY),
Paragraph("• <b>Virchow (1855)</b> — 'Omnis cellula e cellula' (cells from cells)", BODY),
Paragraph("TRAP: Hooke = DEAD cells. Leeuwenhoek = LIVING cells. Virchow MODIFIED (not proposed) cell theory.", TRAP),
]
# ── 2. Prokaryote vs Eukaryote ──
story += [sp(0.1), Paragraph("2. PROKARYOTE vs EUKARYOTE", SEC)]
story.append(tbl(
['Feature','Prokaryote','Eukaryote'],
[['Nucleus','ABSENT (nucleoid)','PRESENT (membrane-bound)'],
['Size','1-10 µm','10-100 µm'],
['DNA','Circular, NAKED','Linear, with histones'],
['Ribosomes','70S (50S+30S)','80S (60S+40S)'],
['Membrane organelles','ABSENT','PRESENT'],
['Cell division','Binary fission','Mitosis/Meiosis'],
['Examples','Bacteria, Cyanobacteria, Mycoplasma','Plants, Animals, Fungi']],
[4*cm,5*cm,6.5*cm]))
story += [
Paragraph("TRAP: 70S ribosomes also in MITOCHONDRIA + CHLOROPLASTS (inside eukaryote).", TRAP),
Paragraph("TRAP: Mycoplasma = smallest living cell, NO cell wall.", TRAP),
]
# ── 3. Prokaryotic Cell ──
story += [sp(0.1), Paragraph("3. PROKARYOTIC CELL — KEY FACTS", SEC)]
story += [
Paragraph("• Cell envelope (outer→inner): Glycocalyx → Cell wall (peptidoglycan) → Plasma membrane", BODY),
Paragraph("• <b>Gram +ve</b> = purple stain, thick wall | <b>Gram -ve</b> = pink stain, thin wall + outer LPS membrane", BODY),
Paragraph("• <b>Mesosome</b> = infolding of plasma membrane (NOT cell wall); functions in respiration + DNA segregation", BODY),
Paragraph("• <b>Pili</b> = conjugation (DNA transfer) | <b>Fimbriae</b> = attachment", BODY),
Paragraph("• <b>Gas vacuoles</b> = cyanobacteria (buoyancy) | Plasmids = extra-chromosomal circular DNA", BODY),
Paragraph("• Flagella = made of FLAGELLIN protein (not microtubules); structure: Filament→Hook→Basal body", BODY),
Paragraph("TRAP: Pili ≠ Fimbriae. Pili=conjugation, Fimbriae=attachment.", TRAP),
Paragraph("TRAP: Mesosome = infolding of PLASMA MEMBRANE (not cell wall).", TRAP),
]
# ── 4. Cell Membrane ──
story += [sp(0.1), Paragraph("4. CELL MEMBRANE — FLUID MOSAIC MODEL", SEC)]
story += [
Paragraph("• <b>Singer & Nicolson (1972)</b> — Fluid Mosaic Model", BODY),
Paragraph("• Phospholipid bilayer: hydrophilic head (out) + hydrophobic tail (in)", BODY),
Paragraph("• <b>Integral proteins</b> — embedded in bilayer | <b>Peripheral proteins</b> — on surface", BODY),
Paragraph("• Carbohydrates — OUTER surface ONLY → glycocalyx (glycoproteins + glycolipids)", BODY),
Paragraph("• <b>Cholesterol</b> — ANIMAL cells only (regulates fluidity)", BODY),
]
story.append(tbl(
['Transport','Energy','Example'],
[['Simple diffusion','No','O₂, CO₂, urea'],
['Osmosis','No','Water'],
['Facilitated diffusion','No (needs protein)','Glucose, ions'],
['Active transport','YES (ATP)','Na⁺/K⁺ pump']],
[4.5*cm,4*cm,7*cm]))
story += [
Paragraph("TRAP: Cholesterol = animal cells only. Carbohydrates = OUTER face only.", TRAP),
Paragraph("TRAP: Facilitated diffusion = no energy BUT needs protein channel.", TRAP),
Paragraph("Hypertonic→plasmolysis (plant)/crenation (animal) | Hypotonic→turgid (plant)/lysis (animal)", BODY),
]
# ── 5. Cell Wall ──
story += [sp(0.1), Paragraph("5. CELL WALL", SEC)]
story.append(tbl(
['Organism','Cell Wall Composition'],
[['Plants','Cellulose + hemicellulose + pectin'],
['Fungi','CHITIN'],
['Bacteria','Peptidoglycan (murein)'],
['Diatoms','SILICA (SiO₂)'],
['Archaebacteria','Pseudopeptidoglycan'],
['Mycoplasma / Animals','ABSENT']],
[5*cm,10.5*cm]))
story += [
Paragraph("• Middle lamella = <b>CALCIUM PECTATE</b> (first formed at cell plate between two cells)", BODY),
Paragraph("• Primary wall = cellulose+pectin (flexible) | Secondary wall = cellulose+LIGNIN (rigid)", BODY),
Paragraph("• <b>Plasmodesmata</b> = channels through cell wall, lined with plasma membrane, contain desmotubule", BODY),
Paragraph("TRAP: Middle lamella = CALCIUM PECTATE (not cellulose).", TRAP),
Paragraph("TRAP: Cell wall = non-living, fully permeable. Plasma membrane = living, selectively permeable.", TRAP),
]
story.append(PageBreak())
# ── 6. Endomembrane System ──
story.append(Paragraph("6. ENDOMEMBRANE SYSTEM", SEC))
story += [
Paragraph("• Members: ER + Golgi + Lysosomes + Vacuoles | NOT members: Mitochondria, Chloroplast, Peroxisomes", BODY),
Paragraph("• <b>RER</b> = ribosomes present → protein synthesis + secretion + glycosylation", BODY),
Paragraph("• <b>SER</b> = no ribosomes → lipid synthesis, detox (liver), Ca²⁺ storage (muscle/SER=sarcoplasmic reticulum)", BODY),
Paragraph("• <b>Golgi</b> (Camillo Golgi 1898): Cis face = receives from ER | Trans face = sends out | Also called Dictyosome in plants", BODY),
Paragraph("• Golgi forms: Lysosomes + Acrosome (sperm) + Cell plate (during plant division)", BODY),
Paragraph("• <b>Lysosomes</b>: Golgi-derived, hydrolytic enzymes, acidic pH 4.5, 'suicidal bags' (de Duve)", BODY),
Paragraph("• Autophagy = digests old organelles | Autolysis = self-destruction (tadpole tail)", BODY),
Paragraph("• <b>Vacuole</b>: membrane = TONOPLAST | fluid = cell sap | Plant = up to 90% volume", BODY),
Paragraph("• Contractile vacuole (Amoeba) = OSMOREGULATION", BODY),
Paragraph("TRAP: Mitochondria/Chloroplast NOT in endomembrane system.", TRAP),
Paragraph("TRAP: Golgi Cis = RECEIVES (faces ER). Trans = SENDS (faces plasma membrane).", TRAP),
Paragraph("TRAP: Acrosome of sperm = GOLGI. Cell plate = GOLGI vesicles.", TRAP),
]
# ── 7. Mitochondria ──
story += [sp(0.1), Paragraph("7. MITOCHONDRIA", SEC)]
story += [
Paragraph("• <b>Powerhouse of cell</b> | Double membrane | Absent in mature mammalian RBCs", BODY),
Paragraph("• Outer membrane = smooth, freely permeable (porins) | Inner membrane = CRISTAE (folds → ATP synthesis)", BODY),
Paragraph("• F₁ particles (ATP synthase) on inner membrane projecting INTO matrix", BODY),
Paragraph("• Matrix = Krebs cycle + circular naked DNA + 70S ribosomes + enzymes", BODY),
Paragraph("• Semi-autonomous: own circular DNA + 70S ribosomes | mtDNA = MATERNALLY inherited", BODY),
Paragraph("• Endosymbiont Theory (Lynn Margulis) — origin from free-living aerobic bacteria", BODY),
Paragraph("TRAP: Glycolysis = CYTOPLASM (NOT mitochondria). Krebs = matrix. ETS = inner membrane.", TRAP),
Paragraph("TRAP: mtDNA = maternally inherited. Used in evolutionary/forensic studies.", TRAP),
]
# ── 8. Plastids ──
story += [sp(0.1), Paragraph("8. PLASTIDS", SEC)]
story.append(tbl(
['Type','Colour','Function','Key Facts'],
[['Chloroplast','Green','Photosynthesis','Light rxn=thylakoid | Dark rxn=stroma | Chl a=primary pigment'],
['Chromoplast','Yellow/Orange/Red','Attract pollinators','Tomato=lycopene | Carrot=carotene | No photosynthesis'],
['Leucoplast','Colourless','Storage','Amyloplast=starch | Elaioplast=oils | Aleuroplast=proteins']],
[2.5*cm,2.5*cm,3*cm,7.5*cm]))
story += [
Paragraph("• All plastids: double membrane + circular DNA + 70S ribosomes (semi-autonomous)", BODY),
Paragraph("• Proplastid = precursor | Green tomato→red = Chloroplast→Chromoplast (ripening)", BODY),
Paragraph("TRAP: Chlorophyll a = PRIMARY (directly in photochemistry). Others = accessory.", TRAP),
Paragraph("TRAP: Potato starch = AMYLOPLASTS (leucoplasts), NOT chloroplasts.", TRAP),
]
# ── 9. Ribosomes ──
story += [sp(0.1), Paragraph("9. RIBOSOMES", SEC)]
story += [
Paragraph("• George Palade (1953) | NO membrane | Universal (all cells) | Site of protein synthesis", BODY),
Paragraph("• <b>70S</b> (50S+30S) = prokaryotes + mitochondria + chloroplasts", BODY),
Paragraph("• <b>80S</b> (60S+40S) = eukaryotic cytoplasm | S values NOT additive (50+30=70, not 80!)", BODY),
Paragraph("• 16S rRNA = 30S (prokaryote) | 18S rRNA = 40S (eukaryote) | Nucleolus = rRNA synthesis + assembly", BODY),
Paragraph("• Streptomycin→30S | Erythromycin→50S | Cycloheximide→80S (eukaryote)", BODY),
Paragraph("TRAP: S values NOT additive! 50S+30S=70S, NOT 80S.", TRAP),
]
# ── 10. Cytoskeleton/Cilia/Centrioles ──
story += [sp(0.1), Paragraph("10. CYTOSKELETON, CILIA, FLAGELLA & CENTRIOLES", SEC)]
story.append(tbl(
['Structure','Arrangement','Protein','Key Fact'],
[['Cilia','9+2 (doublets+2 central)','Tubulin (dynein moves)','Short, many, oar movement'],
['Flagella','9+2 (doublets+2 central)','Tubulin (dynein moves)','Long, few, whip movement'],
['Centriole','9+0 (triplets, NO centre)','Tubulin','Animal+lower plants ONLY'],
['Basal body','9+0 (triplets, NO centre)','Tubulin','Modified centriole, base of cilia'],
['Microvilli','No 9+2 (actin core)','ACTIN','Absorption only, NOT motile']],
[2.5*cm,4*cm,3.5*cm,5.5*cm]))
story += [
Paragraph("• Microfilaments=actin(6nm) | Intermediate=keratin(10nm) | Microtubules=tubulin(25nm)", BODY),
Paragraph("TRAP: Cilia/Flagella=9+2 | Centriole/Basal body=9+0. Most common NEET trap.", TRAP),
Paragraph("TRAP: Higher plants have NO centrioles yet still divide.", TRAP),
]
# ── 11. Nucleus ──
story += [sp(0.1), Paragraph("11. NUCLEUS", SEC)]
story += [
Paragraph("• Robert Brown (1831) | Double membrane | Outer = continuous with RER", BODY),
Paragraph("• Nuclear pores = regulated channels → RNA (out) + proteins (in)", BODY),
Paragraph("• <b>Euchromatin</b> = loose, transcriptionally ACTIVE | <b>Heterochromatin</b> = tight, INACTIVE", BODY),
Paragraph("• <b>Nucleosome</b> = DNA wound around histone OCTAMER (8 histones: 2×H2A+2×H2B+2×H3+2×H4)", BODY),
Paragraph("• H1 = LINKER histone, NOT part of octamer | ~146 bp DNA per nucleosome", BODY),
Paragraph("• Nucleolus = NO membrane, rRNA synthesis, DISAPPEARS at prophase, reforms at telophase", BODY),
Paragraph("• Anucleate: mature RBCs, sieve tube cells, platelets | Paramecium = macro+micronucleus", BODY),
Paragraph("TRAP: H1 NOT in octamer (only 8 histones in core, H1 is linker).", TRAP),
Paragraph("TRAP: Nucleolus is NOT membrane-bound. Disappears during PROPHASE.", TRAP),
]
story.append(tbl(
['Chromosome Type','Centromere Position','Anaphase Shape'],
[['Metacentric','Middle','V-shape'],
['Submetacentric','Off-centre','L-shape'],
['Acrocentric','Near end','J-shape'],
['Telocentric','At tip','I-shape (NOT in humans)']],
[5*cm,5*cm,5.5*cm]))
story += [
Paragraph("• Polytene chromosomes = Drosophila SALIVARY GLAND | Lampbrush = AMPHIBIAN oocytes", BODY),
Paragraph("TRAP: No telocentric chromosomes in humans. Metacentric+Submetacentric+Acrocentric only.", TRAP),
]
story.append(PageBreak())
# ═══════════════════════════════════════════════
# CHAPTER 2: CELL CYCLE & DIVISION
# ═══════════════════════════════════════════════
story.append(Paragraph("CHAPTER 2 — CELL CYCLE & CELL DIVISION (upto Mitosis)", CH))
# ── 1. Cell Cycle Overview ──
story += [sp(0.1), Paragraph("1. CELL CYCLE OVERVIEW", SEC)]
story += [
Paragraph("• Described by <b>Howard and Pelc (1953)</b>", BODY),
Paragraph("• Two phases: <b>Interphase (~95%)</b> + <b>M phase (~5%)</b>", BODY),
Paragraph("• G0 phase = metabolically active but NOT dividing (neurons, cardiac cells = permanent G0)", BODY),
Paragraph("TRAP: Interphase is NOT 'resting phase' — it is the most active phase.", TRAP),
]
story.append(tbl(
['Phase','Duration (~24h cell)','Key Event','DNA (N/C)'],
[['G1','~11 hours','Cell growth, protein synthesis, organelle duplication','2N, 2C'],
['S','~8 hours','DNA REPLICATION — DNA doubles','2N, 4C'],
['G2','~4 hours','Growth continues, tubulin/spindle proteins made','2N, 4C'],
['M phase','~1 hour','Nuclear + cytoplasmic division','2N→2C']],
[2*cm,3.5*cm,7.5*cm,2.5*cm]))
story += [
Paragraph("TRAP: After S phase — chromosome number stays 2N BUT DNA content doubles to 4C.", TRAP),
Paragraph("TRAP: G1 = most variable phase. S, G2, M = fixed duration.", TRAP),
Paragraph("TRAP: DNA replication = S phase of INTERPHASE (not during mitosis).", TRAP),
Paragraph("TRAP: Histone synthesis = S phase (to package newly replicated DNA).", TRAP),
]
# ── 2. Mitosis ──
story += [sp(0.1), Paragraph("2. MITOSIS — M PHASE (KARYOKINESIS)", SEC)]
story.append(tbl(
['Stage','Key Events','What DISAPPEARS','What APPEARS'],
[['PROPHASE',
'Chromatin condenses → chromosomes visible\nCentrosomes move to poles\nSpindle forms',
'NUCLEOLUS\nNuclear envelope (NE)',
'Condensed chromosomes\nSpindle fibres\nAster'],
['METAPHASE',
'Chromosomes at EQUATORIAL PLATE\nSpindle attaches to kinetochore\nMaximally condensed',
'—',
'Metaphase plate\nMax condensed chromosomes'],
['ANAPHASE',
'CENTROMERE SPLITS\nSister chromatids → opposite poles\nSpindle fibres shorten\nCell elongates',
'—',
'Separated chromatids\nmove to poles'],
['TELOPHASE',
'Chromosomes decondense\nReverse of prophase',
'Spindle fibres',
'NUCLEAR ENVELOPE (NE)\nNUCLEOLUS\n2 nuclei']],
[3*cm,5.5*cm,3*cm,4*cm]))
story += [
Paragraph("TRAP: Nucleolus disappears = PROPHASE | Reappears = TELOPHASE.", TRAP),
Paragraph("TRAP: Centromere splits = ANAPHASE (most asked mitosis fact).", TRAP),
Paragraph("TRAP: Metaphase = LONGEST visible stage, BEST for karyotyping.", TRAP),
Paragraph("TRAP: Anaphase = SHORTEST stage.", TRAP),
Paragraph("TRAP: Nuclear envelope breaks = LATE PROPHASE (prometaphase).", TRAP),
]
# ── 3. Cytokinesis ──
story += [sp(0.1), Paragraph("3. CYTOKINESIS", SEC)]
story.append(tbl(
['Cell Type','Method','Mechanism','Details'],
[['Animal cell','Cleavage furrow','Actin + myosin ring contracts',
'Furrow deepens from outside inward, pinches cell'],
['Plant cell','Cell plate','GOLGI VESICLES fuse',
'Cell plate → middle lamella (Ca-pectate) → new cell walls']],
[2.5*cm,3.5*cm,4*cm,5.5*cm]))
story += [
Paragraph("TRAP: Plant cells = NO cleavage furrow (rigid cell wall). Cell plate formed by GOLGI vesicles.", TRAP),
Paragraph("TRAP: Cell plate eventually becomes MIDDLE LAMELLA (calcium pectate).", TRAP),
Paragraph("• Coenocytic cells = karyokinesis WITHOUT cytokinesis (e.g. coconut endosperm)", BODY),
]
# ── 4. Significance ──
story += [sp(0.1), Paragraph("4. SIGNIFICANCE OF MITOSIS", SEC)]
story += [
Paragraph("1. Growth of organism | 2. Repair & regeneration | 3. Maintains chromosome number (2N)", BODY),
Paragraph("4. Maintains nucleo-cytoplasmic ratio | 5. Asexual reproduction (unicellular organisms)", BODY),
Paragraph("6. Produces genetically IDENTICAL daughter cells | 7. Wound healing", BODY),
Paragraph("TRAP: Mitosis = genetically IDENTICAL daughters (unlike meiosis which creates variation).", TRAP),
]
story.append(PageBreak())
# ═══════════════════════════════════════════════
# MASTER CHEATSHEET PAGE
# ═══════════════════════════════════════════════
story.append(Paragraph("MASTER CHEATSHEET — LAST MINUTE REVISION", CH))
sp(0.2)
# Two-column cheatsheet using a table
col1 = [
"<b>CELL THEORY</b>",
"Hooke=dead cork, Leeuwenhoek=living cells",
"Brown=nucleus, Schleiden+Schwann=theory",
"Virchow='Omnis cellula e cellula'",
"",
"<b>PROKARYOTE KEY FACTS</b>",
"70S ribosome (50S+30S)",
"Circular naked DNA, no histones",
"No membrane-bound organelles",
"Mesosome = infolding of plasma membrane",
"Pili=conjugation, Fimbriae=attachment",
"Gas vacuoles = cyanobacteria",
"Smallest = Mycoplasma (no cell wall)",
"",
"<b>CELL MEMBRANE</b>",
"Singer & Nicolson 1972 = Fluid Mosaic",
"Cholesterol = animal cells ONLY",
"Carbohydrates = outer surface ONLY",
"Na/K pump = 3Na out, 2K in (active)",
"",
"<b>CELL WALL</b>",
"Plants=cellulose, Fungi=chitin",
"Bacteria=peptidoglycan, Diatoms=silica",
"Middle lamella = calcium pectate (FIRST formed)",
"Plasmodesmata = channels through wall",
"",
"<b>ENDOMEMBRANE SYSTEM</b>",
"NOT included: mitochondria, chloroplast",
"RER=protein synthesis, SER=lipid+detox",
"Golgi: Cis=receives ER, Trans=sends out",
"Golgi forms: lysosomes+acrosome+cell plate",
"Lysosome: acidic pH 4.5, de Duve, Golgi-derived",
"Tonoplast=vacuole membrane",
"Contractile vacuole=osmoregulation (Amoeba)",
]
col2 = [
"<b>MITOCHONDRIA</b>",
"Double membrane, cristae=inner folds",
"Matrix=Krebs cycle+circular DNA+70S",
"Inner membrane=ETS+ATP synthase (F1)",
"Glycolysis=CYTOPLASM (not mitochondria!)",
"mtDNA=maternal, semi-autonomous",
"Absent in mature mammalian RBCs",
"",
"<b>PLASTIDS</b>",
"Chloroplast: light rxn=thylakoid, dark=stroma",
"Chlorophyll a = PRIMARY pigment",
"Chromoplast: lycopene(tomato), carotene(carrot)",
"Amyloplast=starch, Elaioplast=oils",
"Green tomato→red = Chl→Chromoplast",
"",
"<b>RIBOSOMES</b>",
"Palade 1953, NO membrane, universal",
"70S: prokaryotes+mitochondria+chloroplasts",
"80S: eukaryotic cytoplasm",
"S values NOT additive (50+30=70, not 80!)",
"Nucleolus=rRNA synthesis+assembly",
"",
"<b>9+2 vs 9+0</b>",
"Cilia/Flagella = 9+2 (doublets+central pair)",
"Centriole/Basal body = 9+0 (triplets, NO centre)",
"Microvilli = actin core, NOT 9+2, NOT motile",
"Higher plants = NO centrioles",
"",
"<b>CELL CYCLE & MITOSIS</b>",
"Interphase=95%, M phase=5%",
"G1(11h)+S(8h)+G2(4h)+M(1h)",
"S phase=DNA replication, DNA doubles 2C→4C",
"Prophase: condense+NE breaks+nucleolus gone",
"Metaphase: equatorial plate+karyotyping+LONGEST",
"Anaphase: centromere splits+SHORTEST",
"Telophase: NE reforms+nucleolus reappears",
"Plant=cell plate(Golgi), Animal=cleavage furrow",
]
max_rows = max(len(col1), len(col2))
while len(col1) < max_rows: col1.append("")
while len(col2) < max_rows: col2.append("")
cheat_data = [[Paragraph(c1, SNAP), Paragraph(c2, SNAP)]
for c1, c2 in zip(col1, col2)]
ct = Table(cheat_data, colWidths=[doc.width/2 - 0.1*cm]*2)
ct.setStyle(TableStyle([
('BACKGROUND',(0,0),(-1,-1),colors.HexColor('#e8eaf6')),
('GRID',(0,0),(-1,-1),0.3,colors.HexColor('#9fa8da')),
('VALIGN',(0,0),(-1,-1),'TOP'),
('TOPPADDING',(0,0),(-1,-1),1),
('BOTTOMPADDING',(0,0),(-1,-1),1),
('LEFTPADDING',(0,0),(-1,-1),3),
]))
story.append(ct)
# ── PYQ Quick Fire ──
story += [sp(0.2), Paragraph("TOP PYQs — QUICK FIRE (Last 10 Years)", SEC)]
pyqs_all = [
("[2024] Krebs cycle in? → MATRIX of mitochondria",
"[2024] Best stage for karyotyping? → METAPHASE"),
("[2023] 'Suicidal bags' coined by? → de Duve (Lysosomes)",
"[2023] Centromere splits at? → ANAPHASE"),
("[2022] NOT in endomembrane system? → Mitochondria",
"[2022] After S phase DNA content? → 4C (doubled)"),
("[2021] Centrioles absent in? → Higher plants",
"[2021] Shortest stage of mitosis? → Anaphase"),
("[2020] Contractile vacuole function? → Osmoregulation",
"[2020] Plant cytokinesis by? → Cell plate (Golgi vesicles)"),
("[2019] Middle lamella made of? → Calcium pectate",
"[2019] Histone synthesis in? → S phase"),
("[2018] Acrosome of sperm from? → Golgi apparatus",
"[2018] Nuclear membrane continuous with? → RER"),
("[2017] Lampbrush chromosomes in? → Amphibian oocytes",
"[2017] Glycolysis occurs in? → Cytoplasm"),
("[2016] 9+2 arrangement found in? → Cilia and Flagella",
"[2016] Nucleolus disappears at? → Prophase"),
("[2015] Polytene chromosomes in? → Drosophila salivary gland",
"[2015] Mitosis produces? → Genetically identical daughter cells"),
]
pyq_data = [[Paragraph(q1, PYQ), Paragraph(q2, PYQ)] for q1,q2 in pyqs_all]
pt = Table(pyq_data, colWidths=[doc.width/2 - 0.1*cm]*2)
pt.setStyle(TableStyle([
('BACKGROUND',(0,0),(-1,-1),colors.HexColor('#e8f5e9')),
('GRID',(0,0),(-1,-1),0.3,colors.HexColor('#a5d6a7')),
('VALIGN',(0,0),(-1,-1),'TOP'),
('TOPPADDING',(0,0),(-1,-1),2),
('BOTTOMPADDING',(0,0),(-1,-1),2),
('LEFTPADDING',(0,0),(-1,-1),3),
]))
story.append(pt)
# ── Footer ──
story += [
sp(0.3),
HRFlowable(width="100%",thickness=2,color=colors.HexColor('#ffd700')),
sp(0.1),
Paragraph(
"NEET 2027 Quick Revision Notes | Cell: Unit of Life + Cell Cycle | Prepared with Orris AI | July 2026",
sty('F', fontSize=7.5, textColor=colors.HexColor('#546e7a'),
alignment=TA_CENTER, fontName='Helvetica')),
]
doc.build(story)
import os
print("PDF created!")
print("Size:", os.path.getsize(PDF)//1024, "KB")
print("Path:", PDF)
cd /home/daytona/workspace/neet-notes && python3 make_quick_revision.py
NEET Quick Revision Cell CellCycle
PDF Document · PDF
| Page | Content |
|---|---|
| Page 1 | Cell Theory + Prokaryote vs Eukaryote + Prokaryotic Cell + Cell Membrane + Cell Wall |
| Page 2 | Endomembrane System + Mitochondria + Plastids + Ribosomes + Cytoskeleton/Cilia/Centrioles + Nucleus |
| Page 3 | Cell Cycle Overview + Interphase (G1/S/G2) + Mitosis stages table + Cytokinesis + Significance |
| Page 4 | Master Cheatsheet (2-column) + Top 20 PYQs (2015-2024) Quick Fire |
| File | Content |
|---|---|
NEET Biology Cell Notes PDF Document · PDF | Detailed notes (full NCERT) |
NEET Biology Visual Diagrams PDF Document · PDF | 8 visual diagrams - Cell chapter |
NEET Mitosis Visual Diagrams PDF Document · PDF | 3 mitosis stage diagrams |
NEET Quick Revision Cell CellCycle PDF Document · PDF | Quick revision (today's file) |
Ready for Breathing & Exchange of Gases chapter
| Animal/Group | Respiratory Organ | Special Feature |
|---|---|---|
| Simple organisms (sponges, hydra) | General body surface | Direct diffusion through moist skin |
| Insects | Tracheal system (tracheae + tracheoles) | Air directly to cells, no blood needed |
| Aquatic arthropods (prawns) | Gills (book gills) | Extract O₂ dissolved in water |
| Fish | Gills | Extract dissolved O₂ from water |
| Amphibians (frog) | Skin + Lungs + Buccal cavity | Cutaneous + pulmonary respiration |
| Reptiles | Lungs | Scales prevent cutaneous respiration |
| Birds | Lungs + Air sacs | 9 air sacs, highly efficient (unidirectional flow) |
| Mammals | Lungs | Most efficient for terrestrial life |
Continue with Topic 2 - Human Respiratory System anatomy
AIR PATH:
External Nostrils → Nasal Passage → Internal Nares → Pharynx →
Larynx → Trachea → Bronchi → Bronchioles →
Terminal Bronchioles → Respiratory Bronchioles →
Alveolar Ducts → Alveolar Sacs → ALVEOLI
| Function | Structure Responsible |
|---|---|
| Filtering dust, particles | Nasal hairs (vibrissae) |
| Warming of air | Rich blood capillary network |
| Humidifying (moistening) | Mucus from goblet cells |
| Smell (olfaction) | Olfactory epithelium in roof |
| Right bronchus | Left bronchus | |
|---|---|---|
| Width | Wider | Narrower |
| Length | Shorter | Longer |
| Angle | More vertical | More horizontal |
| Lobes supplied | 3 (right lung has 3 lobes) | 2 (left lung has 2 lobes) |
Trachea
├── Right primary bronchus → enters right lung
│ → Secondary bronchi (one per lobe = 3)
│ → Tertiary bronchi (segmental)
│ → Bronchioles
│ → Terminal bronchioles
└── Left primary bronchus → enters left lung
→ Secondary bronchi (2)
→ same branching...
| Feature | Bronchi | Bronchioles |
|---|---|---|
| Cartilage | Present | ABSENT |
| Smooth muscle | Present | Present (more prominent) |
| Goblet cells | Present | Fewer |
| Size | Larger | Smaller |
| Cell Type | Name | Function |
|---|---|---|
| Type I pneumocytes | Squamous alveolar cells | Gas exchange (cover 95% of alveolar surface) |
| Type II pneumocytes | Granular cells | Secrete SURFACTANT |
| Alveolar macrophages | Dust cells | Phagocytose dust + bacteria |
| Feature | Right Lung | Left Lung |
|---|---|---|
| Lobes | 3 lobes (superior, middle, inferior) | 2 lobes (superior, inferior) |
| Size | Larger | Smaller |
| Why smaller? | — | Cardiac notch (heart is on left) |
| Fissures | 2 fissures | 1 fissure (oblique) |
EXTERNAL NOSTRILS
↓ (filter, warm, humidify)
NASAL CHAMBER (nasal hairs, mucus, cilia)
↓
NASOPHARYNX → PHARYNX (common food+air passage)
↓
LARYNX (voice box, epiglottis, vocal cords)
↓
TRACHEA (C-shaped cartilage rings, 12 cm)
↓
RIGHT BRONCHUS LEFT BRONCHUS
(wider, shorter) (narrower, longer)
RIGHT LUNG (3 lobes) LEFT LUNG (2 lobes)
↓
SECONDARY BRONCHI → TERTIARY BRONCHI
↓
BRONCHIOLES (NO cartilage)
↓
TERMINAL BRONCHIOLES
↓
RESPIRATORY BRONCHIOLES
↓
ALVEOLAR DUCTS → ALVEOLAR SACS
↓
ALVEOLI (gas exchange, surface area 70 m²)
AIR PATH: Nostrils→Nasal chamber→Pharynx→Larynx→Trachea→Bronchi→Bronchioles→Alveoli
Nasal chamber: Filters(hair)+Warms(capillaries)+Humidifies(mucus)
Epiglottis: prevents food entering LARYNX during swallowing
Trachea: C-shaped cartilage, ciliated epithelium, 12 cm
Right bronchus: wider+shorter+vertical → foreign bodies go here
Bronchioles: NO cartilage (unlike bronchi)
Alveoli: gas exchange, Type I(exchange)+Type II(surfactant)+Macrophages(phagocytosis)
Surfactant: reduces surface tension, prevents collapse
Alveolar surface area: 70 m²
Right lung: 3 lobes | Left lung: 2 lobes (cardiac notch)
Diaphragm: PRIMARY breathing muscle
Pleural fluid: between visceral + parietal pleura
Continue with Topic 3 - Mechanism of Breathing
| Muscle | Action during Inhalation | Effect |
|---|---|---|
| Diaphragm | Contracts → flattens (moves down) | Increases vertical diameter of thorax |
| External intercostal muscles | Contracts → ribs move up + out | Increases AP + lateral diameter of thorax |
Diaphragm CONTRACTS (flattens/moves down)
+
External intercostal muscles CONTRACT (ribs up + out)
↓
Thoracic volume INCREASES
↓
Intrapulmonary pressure DECREASES
(below atmospheric pressure = 760 mmHg)
↓
Air rushes INTO lungs (from high → low pressure)
↓
INHALATION COMPLETE
Diaphragm RELAXES (domes back up)
+
External intercostal muscles RELAX (ribs move down + in)
↓
Thoracic volume DECREASES
↓
Intrapulmonary pressure INCREASES
(above atmospheric pressure)
↓
Air pushed OUT of lungs
↓
EXHALATION COMPLETE
| Muscle | Phase | Action | Effect on Thorax |
|---|---|---|---|
| Diaphragm | Inspiration | Contracts (flattens) | Volume ↑ (vertical) |
| External intercostals | Inspiration | Contracts (ribs up+out) | Volume ↑ (AP + lateral) |
| Diaphragm | Expiration (passive) | Relaxes (domes up) | Volume ↓ |
| External intercostals | Expiration (passive) | Relaxes (ribs down+in) | Volume ↓ |
| Internal intercostals | Forced expiration | Contracts (ribs down+in) | Volume ↓ (forced) |
| Abdominal muscles | Forced expiration | Contracts (pushes diaphragm up) | Volume ↓ (forced) |
| Pressure | Normal Value | During Inspiration | During Expiration |
|---|---|---|---|
| Atmospheric pressure | 760 mmHg | 760 mmHg (unchanged) | 760 mmHg |
| Intrapulmonary pressure | 760 mmHg | 758 mmHg (↓ 2 mmHg) | 762 mmHg (↑ 2 mmHg) |
| Intrapleural pressure | 756 mmHg | 754 mmHg (↓ 2 mmHg) | 756 mmHg |
| Feature | Inhalation | Exhalation (rest) |
|---|---|---|
| Type | ACTIVE | PASSIVE |
| Energy | Required (ATP) | NOT required |
| Diaphragm | Contracts (flattens) | Relaxes (domes) |
| Thoracic volume | Increases | Decreases |
| Intrapulmonary pressure | Decreases | Increases |
| Air movement | INTO lungs | OUT of lungs |
| External intercostals | Contract | Relax |
Boyle's Law: P₁V₁ = P₂V₂ (at constant temperature)
INHALATION:
Thoracic volume ↑ → Lung volume ↑ → Intrapulmonary pressure ↓
→ Pressure < atmospheric → Air flows IN
EXHALATION:
Thoracic volume ↓ → Lung volume ↓ → Intrapulmonary pressure ↑
→ Pressure > atmospheric → Air flows OUT
Breathing based on BOYLE'S LAW (P ∝ 1/V)
Lungs = NO muscles, expand PASSIVELY
INHALATION (ACTIVE):
Diaphragm contracts (flattens) + External intercostals contract (ribs up+out)
→ Thoracic volume ↑ → Intrapulmonary pressure ↓ (758 mmHg) → Air IN
EXHALATION (PASSIVE at rest):
Diaphragm relaxes (domes) + External intercostals relax (ribs down+in)
→ Thoracic volume ↓ → Intrapulmonary pressure ↑ (762 mmHg) → Air OUT
FORCED EXPIRATION (ACTIVE):
Internal intercostals + Abdominal muscles contract
PRESSURE VALUES:
Atmospheric = 760 mmHg
Intrapulmonary = 758 (inhalation) / 762 (exhalation)
Intrapleural = ALWAYS negative (~756 mmHg)
Pneumothorax = intrapleural pressure = atmospheric → lung collapse
Normal breathing rate = 12-16 breaths/min
Continue with Topic 4 - Respiratory Volumes & Capacities (spirometry)
| Volume | Full Name | Value (NCERT) | Meaning |
|---|---|---|---|
| TV | Tidal Volume | 500 mL | Normal quiet breathing |
| IRV | Inspiratory Reserve Volume | 2500 mL | Extra air inhaled after normal inspiration |
| ERV | Expiratory Reserve Volume | 1000 mL | Extra air exhaled after normal expiration |
| RV | Residual Volume | 1100 mL | Air always remaining in lungs |
| Capacity | Formula | Value | Key Point |
|---|---|---|---|
| IC | TV + IRV | 3000 mL | Max air inspired after normal expiration |
| EC | TV + ERV | 1500 mL | Max air expired after normal inspiration |
| FRC | ERV + RV | 2100 mL | Air left after normal expiration |
| VC | IRV + TV + ERV | 4000 mL | Max air in one breath (no RV) |
| TLC | VC + RV | 5100 mL | Total air in lungs (includes RV) |
┌─────────────────────────────────────────────────┐
│ TLC = 5100 mL │
│ ┌───────────────────────────────────────────┐ │
│ │ VC = 4000 mL │ │
│ │ ┌──────────────────────────────────────┐ │ │
│ │ │ IC = 3000 mL │ │ │
│ │ │ IRV = 2500 mL ←extra inhale │ │ │
│ │ │ ─────────────────────────────────── │ │ │
│ │ │ TV = 500 mL ←normal breath │ │ │
│ │ └──────────────────────────────────────┘ │ │
│ │ ERV = 1000 mL ←extra exhale │ │
│ └───────────────────────────────────────────┘ │
│ RV = 1100 mL ←always remains │
│ ────────────────────────────────────────────── │
│ FRC = ERV + RV = 2100 mL │
└─────────────────────────────────────────────────┘
| Disease | Change | Reason |
|---|---|---|
| Asthma | ↑ RV, ↑ FRC | Air trapping due to bronchospasm |
| Emphysema | ↑ RV, ↑ TLC | Alveolar destruction, loss of elasticity |
| Fibrosis | ↓ VC, ↓ TLC | Stiff lungs, reduced expansion |
| Exercise | ↑ TV, ↑ breathing rate | Increased O₂ demand |
VOLUMES (must memorise):
TV = 500 mL (normal breathing)
IRV = 2500 mL (extra IN)
ERV = 1000 mL (extra OUT)
RV = 1100 mL (always remains, NOT measurable by spirometer)
CAPACITIES (= sums of volumes):
IC = TV + IRV = 3000 mL
EC = TV + ERV = 1500 mL
FRC = ERV + RV = 2100 mL
VC = IRV + TV + ERV = 4000 mL (NO RV)
TLC = IRV + TV + ERV + RV= 5100 mL (includes RV)
Dead space = 150 mL (trachea + bronchi)
Of 500 mL TV → only 350 mL reaches alveoli
TRAPS:
RV cannot be spirometer measured
VC does NOT include RV
TLC DOES include RV
FRC = air after NORMAL expiration (NOT forced)
Continue with Topic 5 - Exchange of Gases & partial pressures
Rate of diffusion ∝ (Surface area × Partial pressure difference × Solubility)
────────────────────────────────────────────────────────
Thickness of membrane × √Molecular weight
| Gas | Atmospheric air | Alveolar air |
|---|---|---|
| O₂ | 20.9% (pO₂ = 159 mmHg) | 13.7% (pO₂ = 104 mmHg) |
| CO₂ | 0.04% (pCO₂ = 0.3 mmHg) | 5.2% (pCO₂ = 40 mmHg) |
| N₂ | 79% | 79% |
| H₂O | Variable | Saturated |
| Location | pO₂ (mmHg) | pCO₂ (mmHg) |
|---|---|---|
| Atmospheric air | 159 | 0.3 |
| Alveolar air | 104 | 40 |
| Deoxygenated blood (entering lungs) | 40 | 45 |
| Oxygenated blood (leaving lungs) | 95 | 40 |
| Tissues/cells | 40 | 45 |
ALVEOLAR AIR BLOOD (deoxygenated, entering lungs)
pO₂ = 104 mmHg vs pO₂ = 40 mmHg → O₂ moves INTO blood (104>40)
pCO₂ = 40 mmHg vs pCO₂ = 45 mmHg → CO₂ moves OUT of blood (45>40)
BLOOD (oxygenated, reaching tissues) TISSUES (metabolically active)
pO₂ = 95 mmHg vs pO₂ = 40 mmHg → O₂ moves INTO tissues (95>40)
pCO₂ = 40 mmHg vs pCO₂ = 45 mmHg → CO₂ moves OUT of tissues (45>40)
ALVEOLAR AIR
↓
1. Thin fluid layer (surfactant + water)
↓
2. Alveolar epithelium (Type I pneumocytes — squamous, very thin)
↓
3. Basement membrane of alveolar epithelium
↓
4. Thin interstitial space
↓
5. Basement membrane of capillary endothelium
↓
6. Capillary endothelium (very thin)
↓
BLOOD (plasma + RBCs)
| Property | O₂ | CO₂ |
|---|---|---|
| Molecular weight | 32 | 44 |
| Solubility in water | Low | Very high (20× more than O₂) |
| Diffusion rate | 1× | ~20× faster than O₂ |
| Factor | Effect on Exchange |
|---|---|
| ↑ Surface area (more alveoli) | ↑ Exchange |
| ↓ Membrane thickness | ↑ Exchange |
| ↑ Partial pressure difference | ↑ Exchange |
| ↑ Solubility of gas | ↑ Exchange |
| Pulmonary fibrosis | ↓ Exchange (↑ thickness) |
| Emphysema | ↓ Exchange (↓ surface area) |
| Pulmonary oedema | ↓ Exchange (fluid in alveoli) |
ATMOSPHERE
pO₂=159, pCO₂=0.3
↓ breathing
ALVEOLI
pO₂=104, pCO₂=40
↕ diffusion (0.2 µm membrane)
BLOOD (deoxygenated: pO₂=40, pCO₂=45)
O₂ moves IN (104>40) ✓
CO₂ moves OUT (45>40) ✓
↓ oxygenated blood
BLOOD (oxygenated: pO₂=95, pCO₂=40)
↓ circulation
TISSUES (pO₂=40, pCO₂=45)
O₂ moves IN to tissues (95>40) ✓
CO₂ moves OUT to blood (45>40) ✓
↓ deoxygenated blood (pO₂=40, pCO₂=45)
↓ back to lungs
CYCLE REPEATS
GAS EXCHANGE = Simple diffusion (NO energy)
CO₂ diffuses 20× faster than O₂ (because of SOLUBILITY, not weight)
PARTIAL PRESSURES (memorise all):
Atmospheric: pO₂=159, pCO₂=0.3
Alveolar: pO₂=104, pCO₂=40
Deoxygenated: pO₂=40, pCO₂=45
Oxygenated: pO₂=95, pCO₂=40
Tissues: pO₂=40, pCO₂=45
AT ALVEOLI:
O₂ moves blood (104>40) → INTO blood
CO₂ moves (45>40) → OUT of blood
AT TISSUES:
O₂ moves (95>40) → INTO tissues
CO₂ moves (45>40) → INTO blood
Diffusion membrane = 0.2 µm thick
Surface area = 70 m²
FICK'S LAW: Rate ∝ (SA × ΔP × Solubility) / (thickness × √MW)
Continue with Topic 6 - Transport of Gases in blood
Generate a quick revision PDF for Breathing chapter (like we did for Cell)
Yes
Continue studying the remaining topics (Transport of Gases, Regulation, Disorders) when credits reset
Continue with Topic 6 - Transport of Gases (haemoglobin, O₂ dissociation curve, CO₂ transport)
Ok