https://youtu.be/iMx3Ypv6KhU?si=ts2HBh5Plg0aXNne. Make a ppt of this youtube video for presentation for m pharm
https://youtu.be/iMx3Ypv6KhU?si=ts2HBh5Plg0aXNne
youtube iMx3Ypv6KhU pharmacy video topic
mkdir -p /tmp/workspace/cryopreservation-ppt && ls /tmp/workspace/
~/cryopreservation-ppt/create_ppt.py
from pptx import Presentation
from pptx.util import Inches, Pt, Emu
from pptx.dml.color import RGBColor
from pptx.enum.text import PP_ALIGN, MSO_ANCHOR
from pptx.util import Inches, Pt
from io import BytesIO
# ── Color Palette ──────────────────────────────────────────────
DARK_BLUE = RGBColor(0x0D, 0x2B, 0x55) # slide background header blocks
MED_BLUE = RGBColor(0x15, 0x4E, 0x8E) # accent bars
LIGHT_BLUE = RGBColor(0xD6, 0xE8, 0xF7) # content area background
TEAL = RGBColor(0x00, 0x89, 0x9E) # bullet accent / section color
WHITE = RGBColor(0xFF, 0xFF, 0xFF)
DARK_GRAY = RGBColor(0x1A, 0x1A, 0x2E)
YELLOW_ACC = RGBColor(0xFF, 0xC1, 0x07) # highlight
MID_GRAY = RGBColor(0x55, 0x55, 0x55)
prs = Presentation()
prs.slide_width = Inches(13.333)
prs.slide_height = Inches(7.5)
blank = prs.slide_layouts[6] # blank layout
# ── Helper functions ─────────────────────────────────────────────
def add_rect(slide, x, y, w, h, fill_color, transparency=0):
shape = slide.shapes.add_shape(
1, # MSO_SHAPE_TYPE.RECTANGLE
Inches(x), Inches(y), Inches(w), Inches(h)
)
shape.fill.solid()
shape.fill.fore_color.rgb = fill_color
shape.line.fill.background()
if transparency:
shape.fill.fore_color.theme_color
return shape
def add_text(slide, text, x, y, w, h, font_size=18, bold=False,
color=WHITE, align=PP_ALIGN.LEFT, italic=False, word_wrap=True):
tb = slide.shapes.add_textbox(Inches(x), Inches(y), Inches(w), Inches(h))
tf = tb.text_frame
tf.word_wrap = word_wrap
tf.margin_left = Pt(4)
tf.margin_right = Pt(4)
tf.margin_top = Pt(2)
tf.margin_bottom= Pt(2)
p = tf.paragraphs[0]
p.alignment = align
run = p.add_run()
run.text = text
run.font.size = Pt(font_size)
run.font.bold = bold
run.font.italic = italic
run.font.color.rgb = color
run.font.name = "Calibri"
return tb
def add_bullets(slide, items, x, y, w, h, font_size=15, title_color=TEAL,
text_color=DARK_GRAY, indent_items=None):
"""items = list of strings; indent_items = set of indices that are sub-bullets"""
tb = slide.shapes.add_textbox(Inches(x), Inches(y), Inches(w), Inches(h))
tf = tb.text_frame
tf.word_wrap = True
tf.margin_left = Pt(6)
tf.margin_right = Pt(4)
tf.margin_top = Pt(2)
tf.margin_bottom = Pt(2)
first = True
for i, item in enumerate(items):
p = tf.paragraphs[0] if first else tf.add_paragraph()
first = False
indent = indent_items and i in indent_items
p.level = 1 if indent else 0
run = p.add_run()
bullet_prefix = " ▸ " if indent else "▪ "
run.text = bullet_prefix + item
run.font.size = Pt(font_size - 1 if indent else font_size)
run.font.bold = False
run.font.color.rgb = MID_GRAY if indent else text_color
run.font.name = "Calibri"
return tb
def add_slide_bg(slide):
"""White background for all content slides"""
add_rect(slide, 0, 0, 13.333, 7.5, WHITE)
def add_header_bar(slide, title, subtitle=None):
"""Dark blue header bar at top"""
add_rect(slide, 0, 0, 13.333, 1.3, DARK_BLUE)
add_rect(slide, 0, 1.3, 13.333, 0.06, TEAL) # thin accent line
add_text(slide, title, 0.4, 0.1, 12, 0.8, font_size=28, bold=True,
color=WHITE, align=PP_ALIGN.LEFT)
if subtitle:
add_text(slide, subtitle, 0.4, 0.85, 12, 0.4, font_size=13,
bold=False, color=YELLOW_ACC, align=PP_ALIGN.LEFT)
def section_box(slide, label, x, y, w, h=0.42):
add_rect(slide, x, y, w, h, MED_BLUE)
add_text(slide, label, x+0.08, y+0.04, w-0.1, h-0.05,
font_size=13, bold=True, color=WHITE)
# ════════════════════════════════════════════════════════════════
# SLIDE 1 – TITLE SLIDE
# ════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
add_rect(slide, 0, 0, 13.333, 7.5, DARK_BLUE)
# diagonal accent
add_rect(slide, 0, 5.8, 13.333, 0.08, TEAL)
add_rect(slide, 0, 5.88, 13.333, 1.62, RGBColor(0x0A, 0x1F, 0x40))
# Cryo icon-like circle
add_rect(slide, 5.8, 1.0, 1.7, 1.7, TEAL) # bg square replaced by text
add_text(slide, "❄", 5.9, 0.85, 1.5, 1.7, font_size=60, bold=False,
color=WHITE, align=PP_ALIGN.CENTER)
add_text(slide, "CRYOPRESERVATION", 1.0, 2.0, 11.3, 1.1,
font_size=40, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
add_rect(slide, 3.5, 3.15, 6.3, 0.07, YELLOW_ACC)
add_text(slide, "Process | Cryoprotective Agents | Benefits | Plant Cell Applications",
1.0, 3.25, 11.3, 0.65, font_size=16, bold=False,
color=LIGHT_BLUE, align=PP_ALIGN.CENTER)
add_text(slide, "M.Pharm Presentation | Concept Classes – YouTube", 1.0, 4.1, 11.3, 0.5,
font_size=13, italic=True, color=RGBColor(0xAA, 0xCC, 0xEE),
align=PP_ALIGN.CENTER)
add_text(slide, "Pharmaceutical Biotechnology", 1.0, 6.0, 11.3, 0.5,
font_size=14, bold=True, color=YELLOW_ACC, align=PP_ALIGN.CENTER)
# ════════════════════════════════════════════════════════════════
# SLIDE 2 – TABLE OF CONTENTS
# ════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
add_slide_bg(slide)
add_header_bar(slide, "Contents at a Glance")
topics = [
("01", "Introduction & Definition of Cryopreservation"),
("02", "Principle & Scientific Basis"),
("03", "Cryoprotective Agents (CPAs)"),
("04", "Step-by-Step Process of Cryopreservation"),
("05", "Freezing & Storage Media (LN₂, Dry Ice, Deep Freezers)"),
("06", "Cryopreservation of Plant Cells & Germplasm"),
("07", "Benefits & Advantages"),
("08", "Applications in Pharmacy & Life Sciences"),
("09", "Limitations & Challenges"),
("10", "Summary & Key Takeaways"),
]
col1 = topics[:5]
col2 = topics[5:]
for i, (num, title) in enumerate(col1):
yp = 1.6 + i * 0.96
add_rect(slide, 0.5, yp, 0.55, 0.62, TEAL)
add_text(slide, num, 0.5, yp+0.1, 0.55, 0.45, font_size=16,
bold=True, color=WHITE, align=PP_ALIGN.CENTER)
add_text(slide, title, 1.15, yp+0.1, 5.5, 0.55, font_size=13,
color=DARK_GRAY)
for i, (num, title) in enumerate(col2):
yp = 1.6 + i * 0.96
add_rect(slide, 7.0, yp, 0.55, 0.62, MED_BLUE)
add_text(slide, num, 7.0, yp+0.1, 0.55, 0.45, font_size=16,
bold=True, color=WHITE, align=PP_ALIGN.CENTER)
add_text(slide, title, 7.65, yp+0.1, 5.5, 0.55, font_size=13,
color=DARK_GRAY)
# ════════════════════════════════════════════════════════════════
# SLIDE 3 – INTRODUCTION & DEFINITION
# ════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
add_slide_bg(slide)
add_header_bar(slide, "Introduction & Definition",
subtitle="What is Cryopreservation?")
add_rect(slide, 0.4, 1.55, 12.53, 2.1, LIGHT_BLUE)
add_text(slide,
'"Cryopreservation is the process of preserving living cells, tissues, '
'organs, or biological constructs by cooling them to sub-zero temperatures '
'(typically −196°C using liquid nitrogen), at which all biochemical activity '
'is halted, allowing indefinite storage without loss of viability."',
0.6, 1.6, 12.1, 2.0, font_size=16, italic=True, color=DARK_BLUE,
align=PP_ALIGN.LEFT)
section_box(slide, "Key Terms", 0.4, 3.8)
bullets = [
"Cryo (Greek: kryos) = Cold / Frost",
"Preservation = maintaining viability over time",
"Cryobiosis = state of suspended animation at ultra-low temperatures",
"Vitrification = glass-like solidification without ice crystal formation",
"Devitrification = undesired re-crystallization during thawing",
]
add_bullets(slide, bullets, 0.4, 4.25, 12.5, 3.0, font_size=14)
# ════════════════════════════════════════════════════════════════
# SLIDE 4 – PRINCIPLE & SCIENTIFIC BASIS
# ════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
add_slide_bg(slide)
add_header_bar(slide, "Principle & Scientific Basis",
subtitle="How does Cryopreservation work at the cellular level?")
boxes = [
("Metabolic Arrest", "At sub-zero temperatures, all enzymatic reactions\nand metabolic processes come to a complete halt,\npreserving cellular integrity."),
("Ice Crystal Damage", "Slow freezing leads to intracellular ice crystal\nformation → cell membrane rupture → cell death.\nControlled rate freezing and CPAs prevent this."),
("Osmotic Stress", "During freezing, extracellular ice formation draws\nwater out of cells causing shrinkage (solution effect).\nCPAs balance osmotic pressure."),
("Two-Factor Hypothesis", "Balance between chilling injury (too fast) and\nsolution effect damage (too slow) — optimal cooling\nrate minimizes both. ~1°C/min is standard."),
]
for i, (title, body) in enumerate(boxes):
col = i % 2
row = i // 2
x = 0.4 + col * 6.5
y = 1.55 + row * 2.8
add_rect(slide, x, y, 6.2, 2.6, DARK_BLUE if row==0 else MED_BLUE)
add_text(slide, title, x+0.15, y+0.1, 5.9, 0.5, font_size=15,
bold=True, color=YELLOW_ACC)
add_text(slide, body, x+0.15, y+0.55, 5.9, 1.9, font_size=13,
color=WHITE)
# ════════════════════════════════════════════════════════════════
# SLIDE 5 – CRYOPROTECTIVE AGENTS
# ════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
add_slide_bg(slide)
add_header_bar(slide, "Cryoprotective Agents (CPAs)",
subtitle="Chemical protection against freeze-thaw damage")
section_box(slide, "Definition", 0.4, 1.55)
add_text(slide,
"Cryoprotective agents (CPAs) are chemical compounds added to biological samples "
"before freezing to minimize damage caused by ice crystal formation and osmotic stress.",
0.4, 1.97, 12.5, 0.65, font_size=14, color=DARK_GRAY)
# Two columns
section_box(slide, "Intracellular (Penetrating) CPAs", 0.4, 2.75)
penetrating = [
"Glycerol – most widely used, low toxicity",
"DMSO (Dimethyl Sulfoxide) – fast penetration",
"Ethylene Glycol – used in vitrification",
"Propylene Glycol – less toxic alternative",
"Methanol – used in plant cryopreservation",
]
add_bullets(slide, penetrating, 0.4, 3.18, 6.1, 2.5, font_size=13)
section_box(slide, "Extracellular (Non-Penetrating) CPAs", 6.8, 2.75)
non_penetrating = [
"Sucrose – osmotic stabilizer",
"Trehalose – stabilizes membrane lipids",
"Dextran – high molecular weight polymer",
"Polyvinylpyrrolidone (PVP) – cryoprotection in plant tissues",
"Hydroxyethyl Starch (HES) – blood cell preservation",
]
add_bullets(slide, non_penetrating, 6.8, 3.18, 6.1, 2.5, font_size=13)
section_box(slide, "Mechanism of CPA Action", 0.4, 5.78)
add_text(slide,
"CPAs lower freezing point | Reduce ice crystal size | Stabilize cell membranes | Prevent protein denaturation",
0.4, 6.2, 12.5, 0.5, font_size=13, color=DARK_GRAY)
# ════════════════════════════════════════════════════════════════
# SLIDE 6 – STEP-BY-STEP PROCESS
# ════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
add_slide_bg(slide)
add_header_bar(slide, "Step-by-Step Process of Cryopreservation",
subtitle="Standard Protocol in Pharmaceutical Biotechnology")
steps = [
("01", "Sample Preparation", "Harvest healthy, actively growing cells/tissues.\nAssess viability using trypan blue exclusion (>90% viability preferred)."),
("02", "CPA Addition", "Add CPA (e.g., 10% DMSO or glycerol) to suspension.\nMix gently to ensure uniform distribution. Allow equilibration 15–30 min at 4°C."),
("03", "Loading into Cryovials", "Transfer sample into labeled cryovials (1–2 mL).\nEnsure air-tight sealing to prevent contamination."),
("04", "Controlled-Rate Freezing", "Use programmable freezer (Mr. Frosty or controlled-rate freezer).\nCool at ~1°C/minute to −80°C to minimize ice crystal damage."),
("05", "Transfer to LN₂", "Move cryovials to liquid nitrogen (−196°C) for long-term storage.\nSamples can be stored indefinitely in vapor or liquid phase."),
("06", "Thawing / Recovery", "Rapidly thaw at 37°C water bath (~1–2 min).\nDilute CPA slowly; rehydrate and assess post-thaw viability."),
]
for i, (num, title, body) in enumerate(steps):
col = i % 2
row = i // 2
x = 0.35 + col * 6.55
y = 1.52 + row * 1.95
add_rect(slide, x, y, 0.6, 1.75, TEAL if i % 2 == 0 else MED_BLUE)
add_text(slide, num, x, y+0.55, 0.6, 0.65, font_size=18,
bold=True, color=WHITE, align=PP_ALIGN.CENTER)
add_rect(slide, x+0.6, y, 5.7, 1.75, LIGHT_BLUE)
add_text(slide, title, x+0.7, y+0.05, 5.5, 0.45, font_size=14,
bold=True, color=DARK_BLUE)
add_text(slide, body, x+0.7, y+0.48, 5.5, 1.2, font_size=11,
color=DARK_GRAY)
# ════════════════════════════════════════════════════════════════
# SLIDE 7 – FREEZING & STORAGE MEDIA
# ════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
add_slide_bg(slide)
add_header_bar(slide, "Freezing & Storage Media",
subtitle="Liquid Nitrogen | Dry Ice | Vapour Phase Nitrogen | Deep Freezers")
media = [
("❄ Liquid Nitrogen (LN₂)", "−196°C",
"• Gold standard for long-term storage\n• Maintains samples in vapour or liquid phase\n• Indefinite storage if properly maintained\n• Used in gene banks, cell culture labs",
DARK_BLUE),
("🧊 Solid CO₂ (Dry Ice)", "−78.5°C",
"• Short-term storage & transport\n• Easily available and cost-effective\n• Used for shipping biological samples\n• Not suitable for indefinite preservation",
MED_BLUE),
("🌫 Vapour Phase N₂", "−140 to −180°C",
"• Reduces risk of cross-contamination vs. liquid phase\n• Safer for DMSO-containing samples\n• Preferred for human clinical-grade materials\n• Modern biobanks use vapour-phase LN₂",
TEAL),
("🔲 Ultra-Low Deep Freezer", "−80°C",
"• Routine storage for DNA, RNA, proteins\n• Not ideal for cells (ice crystal damage over time)\n• Useful for short-medium term (months)\n• Common in pharmaceutical QC labs",
RGBColor(0x1A, 0x5C, 0x3E)),
]
for i, (title, temp, body, color) in enumerate(media):
col = i % 2
row = i // 2
x = 0.35 + col * 6.55
y = 1.52 + row * 2.8
add_rect(slide, x, y, 6.3, 2.6, color)
add_text(slide, title, x+0.15, y+0.08, 5.0, 0.5, font_size=15,
bold=True, color=WHITE)
add_rect(slide, x+5.1, y+0.05, 1.0, 0.5, YELLOW_ACC)
add_text(slide, temp, x+5.1, y+0.1, 1.0, 0.42, font_size=13,
bold=True, color=DARK_GRAY, align=PP_ALIGN.CENTER)
add_text(slide, body, x+0.15, y+0.65, 6.0, 1.85, font_size=12,
color=WHITE)
# ════════════════════════════════════════════════════════════════
# SLIDE 8 – PLANT CELL CRYOPRESERVATION
# ════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
add_slide_bg(slide)
add_header_bar(slide, "Cryopreservation of Plant Cells & Germplasm",
subtitle="Conservation of Plant Genetic Resources")
section_box(slide, "Why Cryopreserve Plant Material?", 0.4, 1.55)
add_text(slide,
"Plants contain valuable secondary metabolites, unique genetic diversity, and endangered species germplasm. "
"Cryopreservation ensures long-term ex-situ conservation beyond field gene banks (which are susceptible to disease/climate).",
0.4, 1.97, 12.5, 0.7, font_size=13, color=DARK_GRAY)
section_box(slide, "Material Used", 0.4, 2.78)
mat_items = [
"Shoot tips (meristems) – genetically stable, disease-free",
"Embryonic axes – seed germplasm conservation",
"Cell suspensions – secondary metabolite-producing cell lines",
"Pollen – reproductive germplasm",
"Somatic embryos – mass propagation conservation",
]
add_bullets(slide, mat_items, 0.4, 3.2, 5.9, 2.5, font_size=13)
section_box(slide, "Specialized Plant Cryopreservation Techniques", 6.7, 2.78)
tech_items = [
"Classical / Two-step Freezing – slow cooling + LN₂ plunge",
"Vitrification – high CPA conc. + ultra-rapid cooling",
"Encapsulation-Dehydration – alginate beads + desiccation",
"Encapsulation-Vitrification – combined approach",
"Droplet Vitrification – small volumes on metal foil",
"PVS2 Solution – Plant Vitrification Solution (glycerol + DMSO + ethylene glycol + sucrose)",
]
add_bullets(slide, tech_items, 6.7, 3.2, 6.2, 2.5, font_size=12)
section_box(slide, "Key Example", 0.4, 5.8)
add_text(slide,
"Indian gene banks (NBPGR, New Delhi) use cryopreservation to conserve germplasm of rice, wheat, sugarcane, banana & medicinal plants.",
0.4, 6.22, 12.5, 0.55, font_size=13, italic=True, color=DARK_BLUE)
# ════════════════════════════════════════════════════════════════
# SLIDE 9 – BENEFITS & ADVANTAGES
# ════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
add_slide_bg(slide)
add_header_bar(slide, "Benefits & Advantages of Cryopreservation",
subtitle="Why is Cryopreservation the preferred long-term storage method?")
benefits = [
("Long-term Viability", "Cells remain viable for decades (theoretically indefinitely)\nat −196°C with minimal degradation."),
("Genetic Stability", "Preserves original genetic makeup — no mutations,\nno chromosomal rearrangements over storage time."),
("Reduced Contamination Risk", "Sealed cryovials in LN₂ prevent microbial contamination\ncompared to continuous sub-culture."),
("Cost-Effective Long Term", "One-time cost of establishment vs. ongoing media\nand labor costs of repeated sub-culturing."),
("Biodiversity Conservation", "Irreplaceable genetic resources of endangered species\npreserved for future research and restoration."),
("Regulatory Compliance", "ICH guidelines recommend cryopreserved master cell banks\nfor biopharmaceutical manufacturing (e.g., mAb production)."),
]
for i, (title, body) in enumerate(benefits):
col = i % 3
row = i // 3
x = 0.35 + col * 4.35
y = 1.55 + row * 2.7
add_rect(slide, x, y, 4.1, 2.5, LIGHT_BLUE)
add_rect(slide, x, y, 4.1, 0.5, TEAL if row == 0 else MED_BLUE)
add_text(slide, title, x+0.1, y+0.05, 3.9, 0.42, font_size=13,
bold=True, color=WHITE)
add_text(slide, body, x+0.1, y+0.6, 3.9, 1.8, font_size=12,
color=DARK_GRAY)
# ════════════════════════════════════════════════════════════════
# SLIDE 10 – APPLICATIONS
# ════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
add_slide_bg(slide)
add_header_bar(slide, "Applications in Pharmacy & Life Sciences",
subtitle="Broad impact across medicine, agriculture, and research")
apps = [
("🏥 Pharmaceutical Biomanufacturing",
"• Master Cell Banks (MCB) for mAb & vaccine production\n• ICH Q5D guidelines mandate cryopreserved cell banks\n• Ensures batch-to-batch consistency (e.g., CHO cells)"),
("🔬 Stem Cell Therapy",
"• Hematopoietic stem cells for bone marrow transplant\n• iPSC banking for personalized medicine\n• Cord blood cryopreservation (−196°C)"),
("🌱 Plant Biotechnology",
"• Gene bank conservation (CGIAR, NBPGR)\n• Secondary metabolite-producing cell lines\n• Endangered species preservation"),
("🧬 Reproductive Medicine",
"• Sperm, oocyte, embryo cryopreservation\n• Fertility preservation for cancer patients\n• IVF clinics: embryo storage programs"),
("💊 Drug Development",
"• Long-term storage of test organisms (zebrafish, C. elegans)\n• Reference cell lines for toxicity screening\n• Biobank samples for drug target discovery"),
("🦠 Microbiology & Vaccines",
"• Working cell banks of viral vaccine strains\n• Preservation of fastidious microorganisms\n• International culture collections (ATCC, NCIM)"),
]
for i, (title, body) in enumerate(apps):
col = i % 2
row = i // 3
x = 0.35 + col * 6.55
y = 1.52 + (i // 2) * 1.92
add_rect(slide, x, y, 6.3, 1.78, DARK_BLUE if i % 2 == 0 else MED_BLUE)
add_text(slide, title, x+0.12, y+0.05, 6.0, 0.45, font_size=13,
bold=True, color=YELLOW_ACC)
add_text(slide, body, x+0.12, y+0.5, 6.0, 1.2, font_size=11,
color=WHITE)
# ════════════════════════════════════════════════════════════════
# SLIDE 11 – LIMITATIONS & CHALLENGES
# ════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
add_slide_bg(slide)
add_header_bar(slide, "Limitations & Challenges",
subtitle="Challenges that need to be addressed in cryopreservation")
add_rect(slide, 0.35, 1.52, 12.6, 5.5, LIGHT_BLUE)
limits = [
("CPA Toxicity",
"High concentrations of DMSO are toxic to cells above 0°C. Requires careful titration and rapid cooling. Risk of post-thaw cellular damage."),
("Ice Crystal Formation",
"Inadequate cooling rate → intracellular ice → membrane disruption. Requires precise controlled-rate freezing equipment."),
("Chilling Injury",
"Cold-sensitive species (tropical plants, some cell types) may suffer injury even before ice forms. Acclimatization steps needed."),
("Post-thaw Viability Loss",
"Not all cell types survive equally. Sensitive cells may show <50% post-thaw viability. Protocol optimization per cell type is essential."),
("Infrastructure Cost",
"LN₂ supply maintenance, cryogenic storage vessels, and controlled-rate freezers require significant investment and trained personnel."),
("Scalability",
"Large-scale cryopreservation of solid tissues and organs remains technically challenging. Organ cryopreservation is still in experimental stages."),
]
for i, (title, body) in enumerate(limits):
col = i % 2
row = i // 2
x = 0.5 + col * 6.35
y = 1.65 + row * 1.75
add_rect(slide, x, y, 0.08, 1.45, TEAL)
add_text(slide, title, x+0.2, y+0.05, 5.8, 0.42, font_size=13,
bold=True, color=MED_BLUE)
add_text(slide, body, x+0.2, y+0.48, 5.8, 1.0, font_size=12,
color=DARK_GRAY)
# ════════════════════════════════════════════════════════════════
# SLIDE 12 – SUMMARY & KEY TAKEAWAYS
# ════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
add_slide_bg(slide)
add_header_bar(slide, "Summary & Key Takeaways",
subtitle="Everything you need to remember about Cryopreservation")
takeaways = [
"Cryopreservation uses ultra-low temperatures (−196°C, LN₂) to halt metabolic activity and preserve cells indefinitely.",
"Cryoprotective agents (DMSO, glycerol, trehalose) are essential to prevent ice crystal damage and osmotic stress.",
"Controlled-rate freezing (~1°C/min) to −80°C before LN₂ plunge minimizes both chilling injury and solution effect.",
"Two main types of CPAs: penetrating (intracellular) vs. non-penetrating (extracellular) — often used in combination.",
"Plant cryopreservation employs vitrification, encapsulation-dehydration, and PVS2 for germplasm conservation.",
"Pharmaceutical applications include MCB/WCB for biopharmaceuticals, vaccine production, and stem cell therapy.",
"Post-thaw rapid rewarming at 37°C minimizes the re-crystallization and maximizes cell recovery.",
"Limitations include CPA toxicity, cold-sensitivity, infrastructure cost, and difficulty with whole organ preservation.",
]
for i, pt in enumerate(takeaways):
yp = 1.55 + i * 0.71
add_rect(slide, 0.4, yp, 0.45, 0.55, TEAL if i % 2 == 0 else MED_BLUE)
add_text(slide, str(i+1), 0.4, yp+0.08, 0.45, 0.4, font_size=14,
bold=True, color=WHITE, align=PP_ALIGN.CENTER)
add_text(slide, pt, 0.95, yp+0.05, 12.0, 0.55, font_size=13,
color=DARK_GRAY)
# ════════════════════════════════════════════════════════════════
# SLIDE 13 – THANK YOU
# ════════════════════════════════════════════════════════════════
slide = prs.slides.add_slide(blank)
add_rect(slide, 0, 0, 13.333, 7.5, DARK_BLUE)
add_rect(slide, 0, 3.0, 13.333, 0.08, TEAL)
add_rect(slide, 0, 3.08, 13.333, 0.08, YELLOW_ACC)
add_text(slide, "❄", 5.85, 0.4, 1.6, 1.6, font_size=60, bold=False,
color=TEAL, align=PP_ALIGN.CENTER)
add_text(slide, "THANK YOU", 1.0, 2.0, 11.3, 1.1,
font_size=44, bold=True, color=WHITE, align=PP_ALIGN.CENTER)
add_text(slide, "Questions & Discussion", 1.0, 3.3, 11.3, 0.6,
font_size=20, italic=True, color=YELLOW_ACC, align=PP_ALIGN.CENTER)
add_text(slide, "Reference: \"Cryopreservation | Process | Benefits | Plant Cell | Applications\"",
1.0, 4.2, 11.3, 0.5, font_size=13, color=LIGHT_BLUE,
align=PP_ALIGN.CENTER)
add_text(slide, "Concept Classes — YouTube Channel | M.Pharm Pharmaceutical Biotechnology",
1.0, 4.7, 11.3, 0.5, font_size=13, italic=True,
color=RGBColor(0xAA, 0xCC, 0xEE), align=PP_ALIGN.CENTER)
# ── Save ──────────────────────────────────────────────────────
out_path = "/tmp/workspace/cryopreservation-ppt/Cryopreservation_MPharm.pptx"
buf = BytesIO()
prs.save(buf)
with open(out_path, "wb") as f:
f.write(buf.getvalue())
print(f"Saved: {out_path}")
cd /tmp/workspace/cryopreservation-ppt && python create_ppt.py
~/cryopreservation-ppt/create_ppt.py
Successfully replaced 1 instance(s) of the string in '/tmp/workspace/cryopreservation-ppt/create_ppt.py'
"section_box(" in ~/cryopreservation-ppt
~/cryopreservation-ppt/create_ppt.py
Successfully replaced 1 instance(s) of the string in '/tmp/workspace/cryopreservation-ppt/create_ppt.py'
~/cryopreservation-ppt/create_ppt.py
Successfully replaced 1 instance(s) of the string in '/tmp/workspace/cryopreservation-ppt/create_ppt.py'
~/cryopreservation-ppt/create_ppt.py
Successfully replaced 1 instance(s) of the string in '/tmp/workspace/cryopreservation-ppt/create_ppt.py'
~/cryopreservation-ppt/create_ppt.py
Successfully replaced 1 instance(s) of the string in '/tmp/workspace/cryopreservation-ppt/create_ppt.py'
~/cryopreservation-ppt/create_ppt.py
Successfully replaced 1 instance(s) of the string in '/tmp/workspace/cryopreservation-ppt/create_ppt.py'
~/cryopreservation-ppt/create_ppt.py
Successfully replaced 1 instance(s) of the string in '/tmp/workspace/cryopreservation-ppt/create_ppt.py'
~/cryopreservation-ppt/create_ppt.py
Successfully replaced 1 instance(s) of the string in '/tmp/workspace/cryopreservation-ppt/create_ppt.py'
cd /tmp/workspace/cryopreservation-ppt && python create_ppt.py 2>&1
Cryopreservation MPharm
Presentation · PPTX
| Slide | Title |
|---|---|
| 1 | Title Slide - Cryopreservation |
| 2 | Contents at a Glance (numbered index) |
| 3 | Introduction & Definition (with key terms: vitrification, devitrification, cryobiosis) |
| 4 | Principle & Scientific Basis (Metabolic Arrest, Ice Crystal Damage, Osmotic Stress, Two-Factor Hypothesis) |
| 5 | Cryoprotective Agents - Penetrating (DMSO, glycerol, ethylene glycol) vs Non-Penetrating (sucrose, trehalose, HES) |
| 6 | Step-by-Step Process (6 numbered steps: sample prep → CPA addition → loading → controlled-rate freezing → LN₂ transfer → thawing) |
| 7 | Freezing & Storage Media (LN₂ at -196°C, Dry Ice at -78.5°C, Vapour Phase N₂, Ultra-Low Deep Freezer at -80°C) |
| 8 | Plant Cell Cryopreservation (techniques: vitrification, encapsulation-dehydration, PVS2 solution, NBPGR example) |
| 9 | Benefits & Advantages (6 benefit cards: long-term viability, genetic stability, reduced contamination, cost, biodiversity, regulatory compliance) |
| 10 | Applications (6 domains: biomanufacturing, stem cell therapy, plant biotech, reproductive medicine, drug development, microbiology/vaccines) |
| 11 | Limitations & Challenges (CPA toxicity, ice crystals, chilling injury, post-thaw viability, cost, scalability) |
| 12 | Summary & 8 Key Takeaways |
| 13 | Thank You / Questions slide |