Please make a ppt of microbiology regarding the topic identification of colonies by conventional methods and how to identify colonies by indole citrate mannitol motility tsi and also mention vitek
Enterobacterales AND biochemical identification
bioMérieux VITEK 2 identification system GN card official
microbiology biochemical test tubes indole citrate mannitol motility TSI culture media
~/
~/
mkdir -p "/tmp/workspace/microbiology-colony-identification/src" "/tmp/workspace/microbiology-colony-identification/output" && python - <<'PY' from pptx import Presentation from pptx.util import Inches, Pt from pptx.dml.color import RGBColor from pptx.enum.shapes import MSO_SHAPE, MSO_CONNECTOR from pptx.enum.text import PP_ALIGN, MSO_ANCHOR from pptx.enum.dml import MSO_THEME_COLOR from pptx.enum.text import MSO_AUTO_SIZE from pptx.oxml.xmlchemy import OxmlElement OUT='/tmp/workspace/microbiology-colony-identification/output/Conventional_Colony_Identification_and_VITEK.pptx' prs=Presentation(); prs.slide_width=Inches(13.333); prs.slide_height=Inches(7.5) blank=prs.slide_layouts[6] NAVY=RGBColor(15,38,58); TEAL=RGBColor(1,121,133); AQUA=RGBColor(91,203,198); GOLD=RGBColor(245,180,49); INK=RGBColor(30,43,54); MUTED=RGBColor(87,105,115); PALE=RGBColor(238,247,247); WHITE=RGBColor(255,255,255); RED=RGBColor(205,65,75); GREEN=RGBColor(37,145,103); YELLOW=RGBColor(245,213,83); BLACK=RGBColor(34,34,34) def rect(slide,x,y,w,h,fill, line=None, radius=False): s=slide.shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE if radius else MSO_SHAPE.RECTANGLE, Inches(x),Inches(y),Inches(w),Inches(h)) s.fill.solid(); s.fill.fore_color.rgb=fill s.line.color.rgb=line or fill return s def txt(slide,text,x,y,w,h,size=18,color=INK,bold=False,align=PP_ALIGN.LEFT, font='Aptos', valign=MSO_ANCHOR.TOP): b=slide.shapes.add_textbox(Inches(x),Inches(y),Inches(w),Inches(h)); tf=b.text_frame; tf.clear(); tf.word_wrap=True tf.margin_left=tf.margin_right=tf.margin_top=tf.margin_bottom=0 tf.vertical_anchor=valign p=tf.paragraphs[0]; p.alignment=align r=p.add_run(); r.text=text; r.font.name=font; r.font.size=Pt(size); r.font.bold=bold; r.font.color.rgb=color return b def title(slide, heading, kicker=None): rect(slide,0,0,13.333,.16,TEAL) if kicker: txt(slide,kicker.upper(),.6,.38,8,.25,11,TEAL,True) txt(slide,heading,.6,.68,12.1,.55,28,NAVY,True) rect(slide,.6,1.36,1.0,.05,GOLD) def footer(slide,num): txt(slide,'Microbiology laboratory identification',.6,7.12,5.5,.18,8,MUTED) txt(slide,str(num),12.35,7.08,.35,.2,9,TEAL,True,PP_ALIGN.RIGHT) def bullet_list(slide,items,x,y,w,h,size=16,accent=TEAL): # text with manual bullet avoided: use colored mini circles and separate text dy=h/max(len(items),1) for i,item in enumerate(items): slide.shapes.add_shape(MSO_SHAPE.OVAL, Inches(x), Inches(y+i*dy+.1), Inches(.10), Inches(.10)).fill.solid() dot=slide.shapes[-1]; dot.fill.fore_color.rgb=accent; dot.line.color.rgb=accent txt(slide,item,x+.22,y+i*dy,w-.22,dy-.03,size,INK) def tube(slide,x,y,label,top_color,bottom_color, note='', h=2.45): # tube exterior and fill, slant upper triangular-ish block rect(slide,x,y,.86,h,WHITE,RGBColor(150,170,180),True) rect(slide,x+.11,y+.13,.64,h-.26,bottom_color,bottom_color,True) # slant represented as parallelogram p=slide.shapes.add_shape(MSO_SHAPE.PARALLELOGRAM,Inches(x+.12),Inches(y+.18),Inches(.61),Inches(.60)) p.fill.solid();p.fill.fore_color.rgb=top_color;p.line.color.rgb=top_color txt(slide,label,x-.2,y+h+.1,1.25,.34,11,NAVY,True,PP_ALIGN.CENTER) if note: txt(slide,note,x-.34,y+h+.42,1.55,.52,9,MUTED,False,PP_ALIGN.CENTER) def pill(slide,text,x,y,w,color): rect(slide,x,y,w,.34,color,color,True); txt(slide,text,x,y+.04,w,.2,10,WHITE,True,PP_ALIGN.CENTER) # 1 s=prs.slides.add_slide(blank); rect(s,0,0,13.333,7.5,NAVY); rect(s,0,0,13.333,.16,AQUA) # petri dishes decorative for x,y,c in [(9.75,1.15,TEAL),(10.7,2.05,GOLD),(9.1,2.7,AQUA)]: sh=s.shapes.add_shape(MSO_SHAPE.OVAL, Inches(x),Inches(y), Inches(2.25),Inches(2.25)); sh.fill.solid();sh.fill.fore_color.rgb=c;sh.line.color.rgb=WHITE for dx,dy in [(0.45,.45),(1.2,.65),(.8,1.4),(1.55,1.35)]: q=s.shapes.add_shape(MSO_SHAPE.OVAL,Inches(x+dx),Inches(y+dy),Inches(.21),Inches(.21));q.fill.solid();q.fill.fore_color.rgb=WHITE;q.line.color.rgb=WHITE pill(s,'MICROBIOLOGY PRACTICAL',.7,.8,2.35,TEAL) txt(s,'Identification of bacterial\ncolonies by conventional\nmethods and VITEK® 2',.7,1.45,7.6,2.15,30,WHITE,True) txt(s,'A workflow from colony morphology to biochemical profiles, presumptive identification, and automated confirmation.',.75,4.1,6.8,.75,16,RGBColor(211,231,235)) rect(s,.75,5.3,5.5,.7,RGBColor(23,65,82),RGBColor(23,65,82),True); txt(s,'Indole • Citrate • Mannitol • Motility • TSI',1.0,5.51,5,.25,16,AQUA,True) txt(s,'For teaching use: interpret results with local SOPs and QC.',.75,6.55,6,.25,10,RGBColor(173,205,210)) #2 s=prs.slides.add_slide(blank); title(s,'Learning objectives','By the end of the session'); footer(s,2) for i,(h,b,c) in enumerate([('Observe','Describe colony morphology and basic plate reactions.',TEAL),('Test','Perform and interpret five conventional biochemical tests.',GOLD),('Integrate','Use a reaction pattern for a presumptive identification.',AQUA),('Confirm','Explain where VITEK® 2 fits and its limitations.',GREEN)]): x=.75+(i%2)*6.15;y=1.75+(i//2)*2.15 rect(s,x,y,5.65,1.65,PALE,PALE,True); rect(s,x,y,.12,1.65,c,c,True); txt(s,h,x+.35,y+.28,4.8,.28,20,NAVY,True);txt(s,b,x+.35,y+.74,4.8,.55,14,MUTED) #3 s=prs.slides.add_slide(blank); title(s,'The identification workflow','Start with a pure, viable isolate'); footer(s,3) steps=[('1','Specimen & primary culture','Appropriate media, incubation and biosafety.'),('2','Colony screen','Size, color, hemolysis, lactose reaction, odor, texture.'),('3','Purity & Gram stain','One morphotype, then Gram reaction and cell morphology.'),('4','Conventional tests','Indole, citrate, mannitol, motility and TSI pattern.'),('5','Report / confirm','Use identification system or reference method when needed.')] for i,(n,h,b) in enumerate(steps): x=.6+i*2.52 s.shapes.add_shape(MSO_SHAPE.OVAL,Inches(x+.76),Inches(1.75),Inches(.72),Inches(.72)).fill.solid(); o=s.shapes[-1];o.fill.fore_color.rgb=TEAL;o.line.color.rgb=TEAL txt(s,n,x+.76,1.93,.72,.2,15,WHITE,True,PP_ALIGN.CENTER) if i<4: ln=s.shapes.add_connector(MSO_CONNECTOR.STRAIGHT,Inches(x+1.48),Inches(2.11),Inches(x+2.52),Inches(2.11)); ln.line.color.rgb=AQUA;ln.line.width=Pt(2) rect(s,x,2.75,2.2,2.35,PALE,PALE,True);txt(s,h,x+.16,3.02,1.88,.56,15,NAVY,True,PP_ALIGN.CENTER);txt(s,b,x+.16,3.75,1.88,.9,11,MUTED,False,PP_ALIGN.CENTER) rect(s,.8,5.85,11.7,.68,RGBColor(255,248,225),RGBColor(255,248,225),True); txt(s,'Key principle: a single test rarely identifies an organism. Interpret the profile alongside the organism source, Gram stain, colony appearance and quality controls.',1.05,6.05,11.2,.28,14,INK,False,PP_ALIGN.CENTER) #4 s=prs.slides.add_slide(blank); title(s,'Colony morphology: the first conventional clues','Before biochemical testing'); footer(s,4) # plate s.shapes.add_shape(MSO_SHAPE.OVAL,Inches(.8),Inches(1.75),Inches(4.2),Inches(4.2)).fill.solid(); plate=s.shapes[-1];plate.fill.fore_color.rgb=RGBColor(244,206,188);plate.line.color.rgb=RGBColor(210,165,145);plate.line.width=Pt(2) for x,y,sz,col in [(1.4,2.5,.22,WHITE),(2.3,2.3,.12,RGBColor(254,247,210)),(3.4,3.05,.32,WHITE),(2.0,4.2,.17,RGBColor(255,245,232)),(3.2,4.65,.10,WHITE),(1.35,4.9,.28,RGBColor(242,246,235))]: q=s.shapes.add_shape(MSO_SHAPE.OVAL,Inches(x),Inches(y),Inches(sz),Inches(sz));q.fill.solid();q.fill.fore_color.rgb=col;q.line.color.rgb=col items=['Amount and purity: isolated colony versus mixed morphotypes','Form, elevation, margin, surface, consistency and pigmentation','Hemolysis on blood agar when applicable','Lactose reaction on MacConkey: pink lactose fermenter versus colorless non-fermenter','Odor or swarming can be helpful but is not definitive'] bullet_list(s,items,5.55,1.65,6.9,4.4,16) rect(s,5.55,6.05,6.9,.5,PALE,PALE,True);txt(s,'Always subculture a well-isolated colony before biochemical workup.',5.8,6.19,6.4,.2,13,TEAL,True,PP_ALIGN.CENTER) #5 indole citrate s=prs.slides.add_slide(blank); title(s,'Test 1 and 2: indole and citrate','Two high-yield discrimination tests'); footer(s,5) for x,h,sub,body,good,bad in [(0.65,'INDOLE','Tryptophan → indole','Detects tryptophanase activity. Add Kovac’s/Ehrlich reagent after incubation.','Positive: cherry-red surface ring','Negative: no red ring'),(6.95,'SIMMONS CITRATE','Citrate as sole carbon source','Growth with alkaline reaction indicates citrate utilization. Bromothymol blue is the indicator.','Positive: growth with blue color','Negative: no growth; green remains')]: rect(s,x,1.65,5.72,4.95,PALE,PALE,True);pill(s,h,x+.3,1.96,1.46,TEAL if h=='INDOLE' else GOLD);txt(s,sub,x+.3,2.42,4.8,.25,15,NAVY,True);txt(s,body,x+.3,2.9,4.85,.73,14,INK) # outcomes rect(s,x+.32,4.12,4.98,.55,RGBColor(224,244,235),RGBColor(224,244,235),True);txt(s,good,x+.55,4.28,4.5,.2,13,GREEN,True) rect(s,x+.32,4.9,4.98,.55,RGBColor(255,235,235),RGBColor(255,235,235),True);txt(s,bad,x+.55,5.06,4.5,.2,13,RED,True) #6 Mannitol s=prs.slides.add_slide(blank); title(s,'Test 3: mannitol fermentation','Read the indicator, then confirm the reaction'); footer(s,6) rect(s,.65,1.65,4.0,4.9,PALE,PALE,True) txt(s,'Principle',.95,1.98,3,.25,20,NAVY,True);txt(s,'Fermentation of mannitol produces acid. A pH indicator shows the acid reaction.',.95,2.48,3.2,.7,15,INK) # tubes broth for x,c,lbl,note in [(1.15,YELLOW,'Positive','Yellow: acid'),(2.72,RED,'Negative','Red/pink: no acid')]: rect(s,x,3.55,.95,1.82,WHITE,RGBColor(150,170,180),True);rect(s,x+.12,4.25,.71,.95,c,c,True);rect(s,x+.42,3.8,.1,1.25,RGBColor(235,235,235),RGBColor(235,235,235),True);txt(s,lbl,x-.18,5.62,1.32,.22,12,NAVY,True,PP_ALIGN.CENTER);txt(s,note,x-.25,5.91,1.48,.2,10,MUTED,False,PP_ALIGN.CENTER) rect(s,5.15,1.65,7.45,4.9,WHITE,RGBColor(212,226,227),True);txt(s,'How to use it in colony identification',5.5,2.0,5.8,.3,20,NAVY,True) bullet_list(s,['Use the medium specified in your laboratory SOP, for example phenol-red mannitol broth or a differential agar.','A yellow acid reaction is not species-specific: interpret it as one feature of the biochemical profile.','Read within the validated incubation window. Reversion or heavy inoculum can mislead interpretation.','Do not confuse mannitol fermentation with the separate mannitol salt agar screening purpose for staphylococci.'],5.5,2.58,6.45,3.25,15) #7 motility s=prs.slides.add_slide(blank); title(s,'Test 4: motility','Semisolid medium distinguishes diffuse from line-only growth'); footer(s,7) rect(s,.7,1.65,5.55,4.95,PALE,PALE,True);txt(s,'Method',1.0,2.0,2,.25,20,NAVY,True);bullet_list(s,['Use a straight inoculating needle.','Stab once along the central line of semisolid medium.','Incubate under the laboratory’s validated conditions.','Interpret growth away from the stab line.'],1.0,2.5,4.7,2.3,15) # tube drawings for x,diff,label,note in [(7.3,False,'Nonmotile','Growth restricted to stab'),(10.1,True,'Motile','Diffuse / hazy growth')]: rect(s,x,1.75,1.35,3.55,WHITE,RGBColor(150,170,180),True);rect(s,x+.16,2.0,1.03,3.0,RGBColor(239,239,205),RGBColor(239,239,205),True) if diff: for dx,dy,w in [(.25,.8,.8),(.22,1.4,.86),(.28,2.05,.74)]: rect(s,x+dx,2.0+dy,w,.22,RGBColor(171,186,139),RGBColor(171,186,139),True) else: rect(s,x+.63,2.2,.10,2.55,RGBColor(93,89,67),RGBColor(93,89,67),True) txt(s,label,x-.2,5.58,1.75,.24,14,NAVY,True,PP_ALIGN.CENTER);txt(s,note,x-.36,5.92,2.1,.4,11,MUTED,False,PP_ALIGN.CENTER) #8 TSI s=prs.slides.add_slide(blank); title(s,'Test 5: triple sugar iron (TSI) agar','One tube, multiple metabolic clues'); footer(s,8) rect(s,.65,1.65,4.0,4.95,PALE,PALE,True);txt(s,'What TSI assesses',.95,1.98,3,.28,20,NAVY,True) bullet_list(s,['Glucose, lactose and sucrose fermentation','Acid / alkaline reaction in slant and butt','Gas production: cracks, bubbles or lifted agar','Hydrogen sulfide: black precipitate'],.95,2.5,3.2,2.45,15) rect(s,.95,5.45,3.25,.55,RGBColor(255,248,225),RGBColor(255,248,225),True);txt(s,'Inoculate: stab butt, then streak slant.',1.12,5.62,2.9,.18,12,INK,True,PP_ALIGN.CENTER) # tsi patterns patterns=[('A/A','Acid slant / acid butt','Lactose and/or sucrose fermentation',YELLOW,YELLOW),('K/A','Alkaline slant / acid butt','Glucose only',RED,YELLOW),('K/A + H₂S','Blackened butt','H₂S obscures butt color',RED,BLACK)] for i,(a,b,c,top,bot) in enumerate(patterns): x=5.05+i*2.55; tube(s,x,1.85,a,top,bot,c,h=2.7) rect(s,5.05,5.55,7.2,.62,WHITE,RGBColor(212,226,227),True);txt(s,'Interpret blackening as H₂S positive. The underlying butt is acid even if yellow is not visible.',5.33,5.74,6.65,.2,13,INK,True,PP_ALIGN.CENTER) #9 s=prs.slides.add_slide(blank); title(s,'Putting the profile together','Use patterns for a presumptive identification'); footer(s,9) # table cols=[.7,3.2,4.65,6.1,7.6,9.0,10.35]; widths=[2.45,1.4,1.35,1.3,1.4,1.35,2.2] headers=['Organism','Indole','Citrate','Mannitol','Motility','TSI','Interpretation'] for x,w,h in zip(cols,widths,headers): rect(s,x,1.7,w,.58,NAVY,NAVY,False);txt(s,h,x+.05,1.89,w-.1,.18,11,WHITE,True,PP_ALIGN.CENTER) rows=[('Escherichia coli','+','−','+','+','A/A, gas; H₂S−','Typical LF enteric profile'),('Klebsiella pneumoniae','−','+','+','−','A/A, gas; H₂S−','Mucoid, nonmotile profile'),('Proteus mirabilis','−','+','−','+','K/A, H₂S+','Swarming may support clue'),('Salmonella spp.*','−','often +','usually +','+','K/A, H₂S+','Confirm with full panel / serology')] for r,row in enumerate(rows): y=2.28+r*.83; fill=PALE if r%2==0 else WHITE for x,w,val in zip(cols,widths,row): rect(s,x,y,w,.83,fill,RGBColor(220,231,232),False);txt(s,val,x+.08,y+.24,w-.16,.30,11,INK, val in ['+','−'],PP_ALIGN.CENTER if x>cols[0] else PP_ALIGN.LEFT) txt(s,'*Species and serovar variation exists. This table is instructional, not a stand-alone reporting algorithm.',.75,5.92,11.7,.28,11,RED,False) rect(s,.75,6.34,11.75,.42,RGBColor(255,248,225),RGBColor(255,248,225),True);txt(s,'A biochemical profile is presumptive. Confirm unexpected, clinically significant, or discordant isolates by an approved identification pathway.',1.0,6.47,11.2,.18,11,INK,True,PP_ALIGN.CENTER) #10 s=prs.slides.add_slide(blank); title(s,'Worked example: from plate to profile','Reasoning, not pattern memorization'); footer(s,10) rect(s,.7,1.7,3.1,4.65,PALE,PALE,True);txt(s,'Observed isolate',1.0,2.0,2.4,.28,20,NAVY,True);bullet_list(s,['Large, gray, mucoid lactose-fermenting colonies on MacConkey','Gram-negative bacilli','Oxidase negative'],1.0,2.57,2.35,2.2,14) rect(s,4.3,1.7,4.3,4.65,WHITE,RGBColor(212,226,227),True);txt(s,'Conventional results',4.62,2.0,3.2,.28,20,NAVY,True) for i,(a,b) in enumerate([('Indole','−'),('Citrate','+'),('Mannitol','+'),('Motility','−'),('TSI','A/A, gas; H₂S−')]): y=2.56+i*.58;txt(s,a,4.65,y,1.8,.2,14,INK,True);rect(s,6.5,y-.04,1.68,.34,PALE,PALE,True);txt(s,b,6.55,y+.035,1.55,.18,12,TEAL,True,PP_ALIGN.CENTER) rect(s,9.1,1.7,3.45,4.65,RGBColor(229,246,241),RGBColor(229,246,241),True);txt(s,'Interpretation',9.42,2.0,2.6,.28,20,NAVY,True);txt(s,'Pattern supports\nKlebsiella pneumoniae\ncomplex.',9.42,2.62,2.55,.8,18,GREEN,True,PP_ALIGN.CENTER);txt(s,'Report only after identification is confirmed by the laboratory’s validated method and quality checks.',9.42,4.1,2.55,.85,13,INK,False,PP_ALIGN.CENTER) #11 s=prs.slides.add_slide(blank); title(s,'VITEK® 2: where automation fits','Automated identification and antimicrobial susceptibility testing'); footer(s,11) rect(s,.7,1.65,4.1,4.95,NAVY,NAVY,True);txt(s,'What it is',1.05,2.0,3.2,.35,22,WHITE,True);txt(s,'VITEK® 2 is an automated system that reads reaction cards and compares the biochemical pattern with its identification database.',1.05,2.65,3.2,1.05,15,RGBColor(220,239,241)) rect(s,1.05,4.35,3.3,1.08,RGBColor(26,71,88),RGBColor(26,71,88),True);txt(s,'ID cards and AST cards\nare selected by organism group.',1.26,4.61,2.9,.46,14,AQUA,True,PP_ALIGN.CENTER) for i,(h,b,c) in enumerate([('Prepare','Pure isolate, standardized suspension and the appropriate ID card.',TEAL),('Load & incubate','Instrument reads multiple biochemical reactions automatically.',GOLD),('Review','Assess confidence, purity, phenotype consistency and AST plausibility.',GREEN)]): y=1.72+i*1.58;rect(s,5.3,y,6.85,1.2,PALE,PALE,True);s.shapes.add_shape(MSO_SHAPE.OVAL, Inches(5.62),Inches(y+.32), Inches(.5), Inches(.5)).fill.solid();o=s.shapes[-1];o.fill.fore_color.rgb=c;o.line.color.rgb=c;txt(s,str(i+1),5.62,y+.46,.5,.12,11,WHITE,True,PP_ALIGN.CENTER);txt(s,h,6.35,y+.25,2.4,.22,16,NAVY,True);txt(s,b,6.35,y+.57,5.3,.4,13,INK) #12 s=prs.slides.add_slide(blank); title(s,'VITEK® 2 does not replace good microbiology','Quality checks and limitations'); footer(s,12) for x,h,items,c in [(0.7,'Before loading',['Pure culture and correct colony selection','Appropriate card and inoculum standardization','Follow local SOP, QC and biosafety requirements'],TEAL),(4.65,'When results are unexpected',['Check Gram stain and colony morphology','Repeat from a pure subculture if mixed / atypical','Use a confirmatory method per laboratory policy'],GOLD),(8.6,'Clinical reporting',['Correlate with specimen and clinical context','Do not overrule implausible phenotype blindly','Escalate unusual organisms or resistance patterns'],GREEN)]: rect(s,x,1.72,3.45,4.72,PALE,PALE,True);pill(s,h,x+.32,2.05,2.35,c);bullet_list(s,items,x+.35,2.75,2.75,2.5,14,c) #13 s=prs.slides.add_slide(blank); title(s,'Key takeaways','A reliable result is a disciplined sequence'); footer(s,13) for i,(n,h,b,c) in enumerate([('01','Start clean','A pure, well-isolated colony and Gram stain prevent many errors.',TEAL),('02','Read patterns','Indole, citrate, mannitol, motility and TSI are interpreted together.',GOLD),('03','Confirm wisely','Automated identification supports workflow but still needs review.',GREEN)]): x=.75+i*4.15;rect(s,x,1.75,3.6,3.65,PALE,PALE,True);txt(s,n,x+.3,2.05,.6,.25,16,c,True);txt(s,h,x+.3,2.6,2.9,.3,21,NAVY,True);txt(s,b,x+.3,3.25,2.9,.8,15,INK) rect(s,.9,5.95,11.45,.55,NAVY,NAVY,True);txt(s,'Ask: “Does the biochemical profile make sense for this colony, specimen and patient?”',1.15,6.12,10.9,.2,14,WHITE,True,PP_ALIGN.CENTER) #14 refs s=prs.slides.add_slide(blank); title(s,'References and further reading','Use local laboratory procedures for final methods and reporting'); footer(s,14) refs=[ 'Jawetz, Melnick & Adelberg’s Medical Microbiology, 28th ed. Chapter 3, Table 3-2: common biochemical tests.', 'Sherris & Ryan’s Medical Microbiology, 8th ed. “Common Biochemical Tests for Microbial Identification.”', 'Clinical and Laboratory Standards Institute (CLSI). M100: Performance Standards for Antimicrobial Susceptibility Testing. Current local edition.', 'bioMérieux. VITEK® 2 System and ID/AST Cards product information, accessed October 2026.', 'Your laboratory’s standard operating procedures, quality-control program and biosafety manual.' ] bullet_list(s,refs,.85,1.72,11.5,3.9,14) rect(s,.85,5.92,11.5,.58,RGBColor(255,248,225),RGBColor(255,248,225),True);txt(s,'Educational note: biochemical reactions and organism profiles may vary by strain, media formulation and incubation conditions.',1.1,6.10,11,.2,12,INK,True,PP_ALIGN.CENTER) # set core props prs.core_properties.title='Identification of Colonies by Conventional Methods and VITEK 2' prs.core_properties.subject='Microbiology practical presentation' prs.core_properties.author='Orris' prs.save(OUT) print(OUT) PY python - <<'PY' from pptx import Presentation p='/tmp/workspace/microbiology-colony-identification/output/Conventional_Colony_Identification_and_VITEK.pptx' prs=Presentation(p) print('slides',len(prs.slides)) for i,s in enumerate(prs.slides,1): t=' '.join(sh.text[:40] for sh in s.shapes if getattr(sh,'has_text_frame',False) and sh.text.strip()) print(i,t[:90]) PY
python - <<'PY' from pptx import Presentation from pptx.util import Inches p='/tmp/workspace/microbiology-colony-identification/output/Conventional_Colony_Identification_and_VITEK.pptx' prs=Presentation(p) W,H=prs.slide_width,prs.slide_height errors=[] for si,slide in enumerate(prs.slides,1): for sh in slide.shapes: if sh.left < 0 or sh.top < 0 or sh.left+sh.width > W or sh.top+sh.height > H: errors.append((si,sh.shape_type,round(sh.left/914400,2),round(sh.top/914400,2),round(sh.width/914400,2),round(sh.height/914400,2))) print('slides=',len(prs.slides),'out_of_bounds=',errors) print('file_bytes=',__import__('os').path.getsize(p)) PY ls -lh "/tmp/workspace/microbiology-colony-identification/output/Conventional_Colony_Identification_and_VITEK.pptx"
i’m not able to open the ppt
~/
PowerPoint cannot open file .pptx troubleshooting package validation
~/microbiology-colony-identification
python - <<'PY' import zipfile, os src='/tmp/workspace/microbiology-colony-identification/output/Conventional_Colony_Identification_and_VITEK.pptx' out='/tmp/workspace/Colony_Identification_Conventional_Methods_VITEK.pptx' with zipfile.ZipFile(src) as z: bad=z.testzip() print('zip entries',len(z.namelist()),'bad',bad) # Copy package bytes exactly to a short, download-friendly filename with open(src,'rb') as f, open(out,'wb') as g: g.write(f.read()) print(out, os.path.getsize(out)) PY python - <<'PY' from pptx import Presentation p='/tmp/workspace/Colony_Identification_Conventional_Methods_VITEK.pptx' prs=Presentation(p) print('Validated with python-pptx:', len(prs.slides), 'slides') PY ls -lh "/tmp/workspace/Colony_Identification_Conventional_Methods_VITEK.pptx"
Colony Identification Conventional Methods VITEK
Presentation · PPTX
explain in detail about insole, citrate, mannitol fermentation, motility, triple sugar iron test with regards to uti and how each test is done
urinary tract infection AND Enterobacterales identification
urine culture biochemical identification indole citrate TSI motility laboratory manual
https://pmc.ncbi.nlm.nih.gov/articles/PMC7602787
| Result | Appearance | Meaning |
|---|---|---|
| Positive | Bright red or cherry-red ring at the top | Indole produced |
| Negative | Yellow or no red ring | Indole not detected |
| Result | Appearance | Meaning |
|---|---|---|
| Positive | Growth with blue color | Citrate utilized |
| Negative | No growth and medium stays green | Citrate not utilized |
| Result | Appearance | Meaning |
|---|---|---|
| Mannitol positive | Yellow broth | Acid produced from mannitol fermentation |
| Mannitol negative | Red or orange broth | No acid from mannitol fermentation |
| Gas positive | Bubble in Durham tube | Fermentation with gas production |
| Result | Appearance |
|---|---|
| Motility positive | Diffuse, hazy growth spreading away from stab line |
| Motility negative | Growth confined to the sharp stab line |
| TSI reaction | Slant / butt appearance | Interpretation |
|---|---|---|
| A/A | Yellow slant / yellow butt | Glucose plus lactose and/or sucrose fermented |
| K/A | Red slant / yellow butt | Glucose fermented only |
| K/K or K/NC | Red slant / red or unchanged butt | No carbohydrate fermentation |
| H₂S positive | Black precipitate in butt | Hydrogen sulfide produced |
| Gas positive | Splits, cracks, bubbles, lifted agar | Gas formed during fermentation |
| UTI organism | Common TSI pattern | Other useful clues |
|---|---|---|
| E. coli | A/A, often gas, H₂S negative | Indole positive, citrate negative, motile |
| K. pneumoniae | A/A, often gas, H₂S negative | Mucoid, nonmotile, citrate positive |
| P. mirabilis | K/A, H₂S positive, often gas | Urease positive, motile, often indole negative |
| P. vulgaris | K/A, often H₂S positive | Urease positive, motile, often indole positive |
| Salmonella spp. | K/A, usually H₂S positive | Usually not a routine uncomplicated UTI isolate, but may occur in special settings |