bacterial classification

Reading File
Finding Sources
Finding Sources
Reading File
Reading File
Reading File
Reading File
Reading File
Reading File
Reading File
Loading Image
Finding Sources
Reading File
Loading Image
Finding Sources
Finding Sources
Finding Sources
Reading File
Reading File
Now I have comprehensive information from two authoritative textbooks. Let me compile a thorough answer.

Bacterial Classification

Bacteria are classified using a hierarchy of increasingly specific criteria - from gross appearance to molecular genetics. Here is a complete overview sourced from Medical Microbiology 9e and Jawetz, Melnick & Adelberg's Medical Microbiology (28e).

1. Taxonomic Hierarchy (Linnaean System)

Bacterial taxonomy follows formal ranks from broad to specific:
RankExample
KingdomProkaryotae
DivisionGracilicutes
ClassScotobacteria
OrderEubacteriales
FamilyEnterobacteriaceae
GenusEscherichia
Speciescoli
SubtypeE. coli O157:H7
In clinical practice, family, genus, and species are the most useful ranks. - Jawetz, Melnick & Adelberg's Medical Microbiology 28e, p. 49

2. Prokaryotes vs. Eukaryotes

Before classifying bacteria, it helps to understand what makes them distinct from eukaryotes:
CharacteristicEukaryoteProkaryote (Bacteria)
Size>5 µm0.5-3.0 µm
NucleusMembrane-boundNo nuclear membrane
ChromosomesDiploid, multipleSingle, circular, haploid
Ribosomes80S (60S+40S)70S (50S+30S) - antibiotic target
MitochondriaPresentAbsent
Cytoplasmic membraneContains sterolsNo sterols (except Mycoplasma)
Cell wallAbsent (except fungi)Peptidoglycan-based
ReproductionSexual and asexualAsexual (binary fission only)
  • Medical Microbiology 9e, p. 139 (Table 12.1)

3. Classification by Morphology (Macroscopic & Microscopic)

Shape (Morphology)

Bacterial morphology shapes and Gram stain steps
Fig. 12.3 - Gram-stain steps (A) and bacterial morphology shapes (B) - Medical Microbiology 9e
ShapeDescriptionExample
CoccusSphericalStaphylococcus, Streptococcus
BacillusRod-shapedE. coli, Bacillus spp.
CoccobacillusShort rodHaemophilus influenzae
VibrioComma-shaped curveVibrio cholerae
SpirillumRigid spiralCampylobacter
SpirocheteFlexible coiledTreponema, Borrelia
Fusiform bacillusSpindle-shapedFusobacterium
FilamentousBranching hyphae-likeNocardia, Actinomyces

Aggregation Patterns

  • Clusters (grapelike): Staphylococcus aureus
  • Chains: Streptococcus pyogenes
  • Diplococci (pairs): S. pneumoniae, Neisseria spp.

Colony Morphology

On culture media, colonies differ in color, size, shape, smell, and their ability to ferment sugars, lyse erythrocytes (hemolysis), or produce enzymes. - Medical Microbiology 9e, p. 139

4. Classification by Gram Stain

The Gram stain is the single most important initial classification tool:
FeatureGram-PositiveGram-Negative
Color resultPurple (crystal violet retained)Red/Pink (safranin counterstain)
Peptidoglycan layerThickThin
Outer membraneAbsentPresent
Lipopolysaccharide (LPS/Endotoxin)AbsentPresent
Teichoic acidOften presentAbsent
SporulationSome bacteria (e.g., Clostridium, Bacillus)None
Penicillin susceptibilityMore susceptibleMore resistant
Lysozyme sensitivitySensitiveResistant
Mnemonic: "P-PURPLE-POSITIVE"

Gram-Stain Procedure (4 Steps)

  1. Apply crystal violet (primary stain)
  2. Add Gram's iodine (mordant - precipitates stain)
  3. Wash with acetone/alcohol decolorizer
  4. Apply safranin (red counterstain)
Gram staining cannot be applied to mycobacteria (waxy outer shell - use acid-fast stain) or mycoplasmas (no peptidoglycan at all). - Medical Microbiology 9e, p. 140

5. Classification by Metabolic/Oxygen Requirements

CategoryDescriptionExamples
Obligate aerobeRequire O2 as terminal electron acceptorMycobacterium tuberculosis, Bacillus spp.
Obligate anaerobeCannot survive in O2Clostridium, Bacteroides
Facultative anaerobeGrow with or without O2E. coli, most Enterobacteriaceae
MicroaerophileRequire low O2Campylobacter, Helicobacter
Aerotolerant anaerobeTolerate O2 but do not use itLactobacillus
  • Jawetz, Melnick & Adelberg's Medical Microbiology 28e (Glossary)

6. Classification by Biochemical Tests

Biochemical tests form the backbone of routine clinical identification:
TestWhat it DetectsExample Use
CatalaseH2O2-splitting enzymeStaphylococci (+) vs Streptococci (-)
CoagulaseFibrin-clotting enzymeS. aureus (+) vs S. epidermidis (-)
OxidaseCytochrome C oxidasePseudomonas (+) vs E. coli (-)
UreaseUrea hydrolysis → NH3Proteus (strongly +)
Nitrate reductionNO3- → NO2- + N2Used in urinalysis for Gram-neg rods
Lactose fermentationAcid production from lactoseE. coli (pink) vs Salmonella (white) on MacConkey
Voges-ProskauerAcetoin productionDifferentiates enteric rods
Algorithm for differentiating Gram-positive cocci using catalase and coagulase tests
Algorithm for differentiating Gram-positive cocci - Jawetz, Melnick & Adelberg's Medical Microbiology 28e, p. 50

7. Classification by Culture Media

Media TypePurposeExample
Non-selective (complex)Supports most bacteriaBlood agar, Chocolate agar
SelectiveInhibits unwanted organismsMacConkey (Gram-neg rods), CNA agar (Gram-pos cocci)
DifferentialDistinguishes by metabolic reactionMacConkey (lactose fermentation)
Key selective agents:
  • Sodium azide - selects Gram-positives over Gram-negatives
  • Bile salts - selects Gram-negative enteric bacteria
  • Colistin + nalidixic acid - selects Gram-positive cocci

8. Classification by Immunologic Properties (Serotyping)

Antibodies against surface antigens - O-antigen (LPS), H-antigen (flagella), and K-antigen (capsule) - are used to define:
  • Serotypes / Serovars / Serogroups: identify specific strains within a species (e.g., E. coli O157:H7)
  • Especially useful in outbreak epidemiology to trace clonal spread

9. Classification by Genotype (Modern Molecular Methods)

The most accurate classification is now molecular:
MethodPrincipleUse
16S rRNA sequencingConserved ribosomal RNA gene sequenceGold standard for species identification
Whole genome sequencingFull genomic comparisonStrain-level identification, outbreak tracing
DNA-DNA hybridization% genetic similaritySpecies definition (>70% = same species)
MLST (multi-locus sequence typing)7 housekeeping gene allelesEpidemiologic typing
DNA sequencing is particularly valuable for organisms that are difficult to culture or whose traits are encoded on mobile genetic elements (plasmids, bacteriophages). - Jawetz 28e, p. 51

10. Special Staining Categories

Bacteria that cannot be classified by Gram stain require special approaches:
CategoryStainExample Organisms
Acid-fastZiehl-Neelsen / AuramineMycobacterium tuberculosis, M. leprae
No cell wallNo Gram stain possibleMycoplasma spp.
Intracellular obligatesGiemsa, immunofluorescenceChlamydia, Rickettsia
Endospore-formersSchaeffer-FultonBacillus, Clostridium

Summary: Classification Criteria at a Glance

Bacteria
├── By Gram stain:   Gram-positive | Gram-negative | Acid-fast | No wall
├── By shape:        Cocci | Bacilli | Spirochetes | Filamentous
├── By O2 need:      Aerobe | Anaerobe | Facultative | Microaerophile
├── By metabolism:   Fermentative | Oxidative | Photosynthetic
├── By structure:    Capsule / Flagella / Pili / Spores
├── By serology:     O, H, K antigens (serotypes)
└── By genetics:     16S rRNA / Whole genome / DNA hybridization
Sources: Medical Microbiology 9e (Murray et al.), pp. 139-141; Jawetz, Melnick & Adelberg's Medical Microbiology 28e, pp. 49-52

Flowchart with example of bacteria species with explaination

Asking for Preferences
Generating Image

A detailed educational flowchart for bacterial classification with example species. The flowchart starts at the top with "BACTERIA" and branches step by step: Step 1 - Gram Stain splits into two branches: - LEFT branch: "GRAM-POSITIVE (Purple)" with label "Thick peptidoglycan, no outer membrane" - RIGHT branch: "GRAM-NEGATIVE (Red/Pink)" with label "Thin peptidoglycan, has outer membrane & LPS" Step 2 - Each branch splits by Shape: GRAM-POSITIVE left side: - "Cocci (spherical)" → further splits by Catalase: - Catalase POSITIVE → "Staphylococcus" → splits by Coagulase: - Coagulase + → "S. aureus" (causes skin infections, pneumonia, toxic shock) - Coagulase − → "S. epidermidis" (causes catheter infections) - Catalase NEGATIVE → "Streptococcus" → splits by Hemolysis: - Beta-hemolysis → "S. pyogenes" (strep throat, rheumatic fever) - Alpha-hemolysis → "S. pneumoniae" (pneumonia, meningitis) - Gamma (no hemolysis) → "Enterococcus faecalis" (UTI, endocarditis) - "Bacilli (rods)" → splits by Spores: - Spore-forming → "Bacillus anthracis" (anthrax), "Clostridium tetani" (tetanus) - Non-spore-forming → "Listeria monocytogenes" (listeriosis), "Corynebacterium diphtheriae" (diphtheria) GRAM-NEGATIVE right side: - "Cocci (spherical)" → "Neisseria meningitidis" (meningitis), "N. gonorrhoeae" (gonorrhea) - "Bacilli (rods)" → splits by Oxygen requirement: - Aerobic/Facultative → "Enterobacteriaceae": "E. coli" (UTI, diarrhea), "Salmonella typhi" (typhoid), "Klebsiella pneumoniae" (pneumonia) - Anaerobic → "Bacteroides fragilis" (intra-abdominal infections) - "Spirochetes (spiral)" → "Treponema pallidum" (syphilis), "Borrelia burgdorferi" (Lyme disease) At the bottom, a separate box: "GRAM-STAIN EXCEPTIONS: Acid-fast stain → Mycobacterium tuberculosis (TB), M. leprae (leprosy). No cell wall → Mycoplasma pneumoniae (atypical pneumonia). Obligate intracellular → Chlamydia trachomatis, Rickettsia rickettsii" Use a clean white background, blue and red color coding for gram positive/negative branches, green for organism names, small italic text for disease examples. Use clear arrows and boxes. Professional medical education style, highly readable, organized layout.

Bacterial Classification Flowchart
Here's a full walkthrough of the flowchart:

How to Read the Flowchart

Step 1 - Gram Stain (First Branch Point)

The very first test done on any unknown bacterium. It divides all bacteria into two fundamental groups based on cell wall structure.

GRAM-POSITIVE Bacteria (Purple)

Thick peptidoglycan layer traps crystal violet dye

Gram-Positive Cocci

TestResultOrganismDiseases
Catalase+Staphylococcus-
Coagulase (from Staph)+S. aureusSkin abscesses, pneumonia, toxic shock syndrome, food poisoning
Coagulase (from Staph)-S. epidermidisCatheter/prosthetic device infections
Catalase-Streptococcus-
Beta-hemolysis (from Strep)S. pyogenes (Group A)Strep throat, scarlet fever, rheumatic fever
Alpha-hemolysis (from Strep)S. pneumoniaePneumonia, meningitis, otitis media
No hemolysisEnterococcus faecalisUTI, endocarditis

Gram-Positive Bacilli (Rods)

FeatureOrganismDiseases
Spore-forming, aerobicBacillus anthracisAnthrax
Spore-forming, anaerobicClostridium tetaniTetanus
Spore-forming, anaerobicC. difficilePseudomembranous colitis (antibiotic-associated diarrhea)
Non-spore-formingListeria monocytogenesListeriosis (dangerous in pregnancy)
Non-spore-formingCorynebacterium diphtheriaeDiphtheria
Acid-fast positive (special)Mycobacterium tuberculosisTuberculosis

GRAM-NEGATIVE Bacteria (Red/Pink)

Thin peptidoglycan + outer membrane with LPS (endotoxin)

Gram-Negative Cocci

OrganismDiseases
Neisseria meningitidisBacterial meningitis, septicemia
N. gonorrhoeaeGonorrhea, neonatal conjunctivitis

Gram-Negative Rods (Bacilli)

Classified further by oxygen requirement:
Facultative Anaerobes (Enterobacteriaceae family):
OrganismKey FeatureDiseases
E. coliOxidase-neg, lactose fermenterUTI, neonatal meningitis, diarrhea
Salmonella typhiNon-lactose fermenterTyphoid fever
Klebsiella pneumoniaeMucoid capsulePneumonia (especially alcoholics), UTI
Shigella dysenteriaeNon-motileBloody dysentery
Aerobic only:
OrganismKey FeatureDiseases
Pseudomonas aeruginosaOxidase-positive, blue-green pigmentBurn/wound infections, CF pneumonia
Helicobacter pyloriMicroaerophile, urease+Peptic ulcer, gastric cancer
Obligate Anaerobes:
OrganismDiseases
Bacteroides fragilisIntra-abdominal infections, abscesses

Gram-Negative Spirochetes (Spiral)

OrganismDiseases
Treponema pallidumSyphilis
Borrelia burgdorferiLyme disease
Leptospira interrogansLeptospirosis

Gram-Stain Exceptions (Special Groups)

CategoryReasonOrganismDisease
Acid-fastWaxy mycolic acid wallM. tuberculosis, M. lepraeTB, Leprosy
No cell wallCannot retain any stainMycoplasma pneumoniaeAtypical ("walking") pneumonia
Obligate intracellularToo small, no independent metabolismChlamydia trachomatisSTI, trachoma
Obligate intracellularRickettsia rickettsiiRocky Mountain Spotted Fever

Key clinical rule: Gram stain + shape + one or two biochemical tests (catalase, coagulase, oxidase) gets you to the correct genus/species in most clinical scenarios within minutes.

gpc, gnb , Kingdom Division Class Order Family Genus Species c Subtype

Generating Image

A detailed professional educational taxonomy table/diagram showing full Linnaean classification for Gram-Positive Cocci (GPC) and Gram-Negative Bacilli (GNB) bacteria. Layout: Two large side-by-side columns, left column is blue-themed for GPC, right column is red-themed for GNB. Each column shows a vertical taxonomy ladder with 8 rows for the ranks: Kingdom, Division, Class, Order, Family, Genus, Species, Subtype. LEFT COLUMN - GRAM-POSITIVE COCCI (GPC) - Blue theme: Title: "GPC - Gram-Positive Cocci" Show TWO example organisms side by side within the column: Example 1: Staphylococcus aureus Kingdom: Bacteria Division: Firmicutes Class: Bacilli Order: Bacillales Family: Staphylococcaceae Genus: Staphylococcus Species: S. aureus Subtype: MRSA (Methicillin-Resistant S. aureus) Disease note: Skin infections, pneumonia, toxic shock Example 2: Streptococcus pyogenes Kingdom: Bacteria Division: Firmicutes Class: Bacilli Order: Lactobacillales Family: Streptococcaceae Genus: Streptococcus Species: S. pyogenes Subtype: Group A Streptococcus (GAS) Disease note: Strep throat, rheumatic fever RIGHT COLUMN - GRAM-NEGATIVE BACILLI (GNB) - Red/orange theme: Title: "GNB - Gram-Negative Bacilli" Show TWO example organisms side by side within the column: Example 1: Escherichia coli Kingdom: Bacteria Division: Proteobacteria Class: Gammaproteobacteria Order: Enterobacterales Family: Enterobacteriaceae Genus: Escherichia Species: E. coli Subtype: E. coli O157:H7 Disease note: UTI, diarrhea, neonatal meningitis Example 2: Klebsiella pneumoniae Kingdom: Bacteria Division: Proteobacteria Class: Gammaproteobacteria Order: Enterobacterales Family: Enterobacteriaceae Genus: Klebsiella Species: K. pneumoniae Subtype: CRKP (Carbapenem-Resistant K. pneumoniae) Disease note: Hospital pneumonia, UTI At the very top center, a title box: "Full Linnaean Taxonomy: GPC vs GNB" At the bottom, a legend box: "GPC = Gram-Positive Cocci (purple on Gram stain, thick peptidoglycan, NO outer membrane) | GNB = Gram-Negative Bacilli (pink/red on Gram stain, thin peptidoglycan, HAS outer membrane + LPS endotoxin)" Use clean white background, clear bold rank labels on left side, connecting arrows between ranks, color-coded boxes per organism, professional medical textbook style, large readable font.

Full Linnaean Taxonomy: GPC vs GNB
Here is the complete written breakdown for study reference:

GRAM-POSITIVE COCCI (GPC)

Example 1 - Staphylococcus aureus

RankClassificationNotes
KingdomBacteriaProkaryote, no nucleus
Division (Phylum)FirmicutesLow G+C content, thick peptidoglycan
ClassBacilliDespite name, includes cocci too
OrderBacillales
FamilyStaphylococcaceaeCatalase-positive cocci
GenusStaphylococcus40+ species
SpeciesS. aureusCoagulase-positive
SubtypeMRSAMethicillin-Resistant S. aureus - major hospital pathogen
Key diseases: Skin/soft tissue infections, bacteremia, endocarditis, toxic shock syndrome, food poisoning

Example 2 - Streptococcus pyogenes

RankClassificationNotes
KingdomBacteria
Division (Phylum)Firmicutes
ClassBacilli
OrderLactobacillales
FamilyStreptococcaceaeCatalase-negative cocci
GenusStreptococcus
SpeciesS. pyogenesBeta-hemolytic
SubtypeGroup A Streptococcus (GAS)Lancefield group A antigen
Key diseases: Strep throat, scarlet fever, rheumatic fever, necrotizing fasciitis, glomerulonephritis

Example 3 - Streptococcus pneumoniae

RankClassificationNotes
KingdomBacteria
Division (Phylum)Firmicutes
ClassBacilli
OrderLactobacillales
FamilyStreptococcaceae
GenusStreptococcus
SpeciesS. pneumoniaeAlpha-hemolytic, bile-soluble
Subtype>90 serotypesClassified by polysaccharide capsule type
Key diseases: Pneumonia, bacterial meningitis, otitis media, sinusitis

GRAM-NEGATIVE BACILLI (GNB)

Example 1 - Escherichia coli

RankClassificationNotes
KingdomBacteria
Division (Phylum)ProteobacteriaLargest phylum of Gram-negatives
ClassGammaproteobacteria
OrderEnterobacterales
FamilyEnterobacteriaceae"Enterics" - gut flora
GenusEscherichia
SpeciesE. coliOxidase-negative, lactose fermenter
SubtypeE. coli O157:H7O = somatic antigen, H = flagellar antigen
Key diseases: UTI (most common cause), neonatal meningitis, traveler's diarrhea, hemolytic uremic syndrome (HUS - O157:H7)

Example 2 - Klebsiella pneumoniae

RankClassificationNotes
KingdomBacteria
Division (Phylum)Proteobacteria
ClassGammaproteobacteria
OrderEnterobacterales
FamilyEnterobacteriaceae
GenusKlebsiella
SpeciesK. pneumoniaeLarge mucoid capsule, non-motile
SubtypeCRKPCarbapenem-Resistant K. pneumoniae - WHO priority pathogen
Key diseases: Hospital-acquired pneumonia (especially in alcoholics), UTI, liver abscess, septicemia

Example 3 - Pseudomonas aeruginosa

RankClassificationNotes
KingdomBacteria
Division (Phylum)Proteobacteria
ClassGammaproteobacteria
OrderPseudomonadales
FamilyPseudomonadaceae
GenusPseudomonas
SpeciesP. aeruginosaOxidase-positive, blue-green pyocyanin pigment
SubtypeMucoid strainsFound in cystic fibrosis patients
Key diseases: Burn/wound infections, ventilator-associated pneumonia, cystic fibrosis lung disease, hot tub folliculitis

Quick Comparison Summary

FeatureGPCGNB
Gram stainPurplePink/Red
PhylumFirmicutesProteobacteria
PeptidoglycanThickThin
Outer membraneAbsentPresent
LPS (Endotoxin)NoYes - causes septic shock
Typical antibioticsPenicillin, VancomycinCephalosporins, Fluoroquinolones, Carbapenems
Key virulenceExotoxins, Coagulase, Protein AEndotoxin, Pili, Type III secretion

add all gpc species and gnb

Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Reading File
Finding Sources
Excellent - I now have all the data needed from authoritative textbooks. Let me compile the comprehensive tables.

Complete Taxonomy: ALL Clinically Relevant GPC & GNB Species


GRAM-POSITIVE COCCI (GPC) - Complete

GENUS 1: Staphylococcus (Phylum: Firmicutes)

RankAll Species
KingdomBacteria
Division/PhylumFirmicutes
ClassBacilli
OrderBacillales
FamilyStaphylococcaceae
GenusStaphylococcus

Species - Coagulase Positive:

SpeciesSubtypeKey DiseaseNotes
S. aureusMRSA (methicillin-resistant)Skin/soft tissue infections, bacteremia, pneumonia, endocarditis, toxic shock syndrome, food poisoningMost virulent; coagulase+, catalase+
MSSA (methicillin-sensitive)Same as aboveAntibiotic-sensitive strain
VRSA (vancomycin-resistant)Last-resort treatment failuresRare but critical

Species - Coagulase Negative (CoNS):

SpeciesSubtype/ResistanceKey DiseaseDistinguishing Feature
S. epidermidisSlime-producing strainsCatheter/prosthetic device infections, neonatal sepsis, endocarditisMost common CoNS; biofilm producer
S. saprophyticus-UTI in young sexually active womenNovobiocin-resistant
S. haemolyticusVancomycin-reduced susceptibilityUTI in hospitalized patients, wound infections2nd most common CoNS clinically
S. lugdunensis-Aggressive endocarditis, skin infectionsBehaves like S. aureus in virulence
S. schleiferi-Wound infections, otitisLess common
S. warneri-Bacteremia in immunocompromisedRare pathogen
S. capitis-Neonatal sepsis, endocarditisFound on scalp/face
S. hominis-Bacteremia, catheter infectionsNormal skin flora
  • Red Book 2021, p. 2421: "There are more than 40 named coagulase-negative Staphylococcus species; S. epidermidis, S. haemolyticus, S. saprophyticus, S. schleiferi, and S. lugdunensis most often associated with human infections."

GENUS 2: Streptococcus (Phylum: Firmicutes)

RankClassification
KingdomBacteria
Division/PhylumFirmicutes
ClassBacilli
OrderLactobacillales
FamilyStreptococcaceae
GenusStreptococcus
SpeciesLancefield GroupHemolysisSubtypeKey Disease
S. pyogenesGroup A (GAS)BetaM-protein types (1, 3, 5, 12, 28...)Strep throat, scarlet fever, rheumatic fever, necrotizing fasciitis, glomerulonephritis
S. agalactiaeGroup B (GBS)BetaSerotypes Ia, Ib, II-IXNeonatal meningitis & bacteremia, maternal peripartum infections
S. dysgalactiaeGroup C/GBeta-Pharyngitis, cellulitis, bacteremia
S. pneumoniaeNo Lancefield groupAlpha>90 capsular serotypesPneumonia, bacterial meningitis, otitis media, sinusitis
S. viridans groupNo Lancefield groupAlpha-Subacute bacterial endocarditis, dental caries
- S. mutans-Alpha/None-Dental caries
- S. mitis-Alpha-Endocarditis
- S. sanguinis-Alpha-Endocarditis
- S. salivarius-Alpha-Opportunistic infections
- S. milleri group (S. anginosus, S. constellatus, S. intermedius)-Variable-Brain/liver/lung abscesses
S. bovis / S. gallolyticusGroup DNone (gamma)-Endocarditis, bacteremia - associated with colon cancer

GENUS 3: Enterococcus (Phylum: Firmicutes)

RankClassification
KingdomBacteria
Division/PhylumFirmicutes
ClassBacilli
OrderLactobacillales
FamilyEnterococcaceae
GenusEnterococcus
SpeciesSubtype/ResistanceKey DiseaseNotes
E. faecalisVSE (vancomycin-sensitive)UTI, endocarditis, bacteremia80-90% of enterococcal infections
E. faeciumVRE (vancomycin-resistant)Nosocomial UTI, bacteremiaMore resistant than E. faecalis; hospital pathogen
E. gallinarumIntrinsic low-level vancomycin resistanceRare infections
E. casseliflavusIntrinsic low-level vancomycin resistanceRare infections
  • Henry's Clinical Diagnosis: "E. faecalis and E. faecium are the most common causes of nosocomial UTI and bacteremia."

GRAM-NEGATIVE BACILLI (GNB) - Complete

FAMILY 1: Enterobacteriaceae / Enterobacterales (Phylum: Proteobacteria)

RankClassification
KingdomBacteria
Division/PhylumProteobacteria
ClassGammaproteobacteria
OrderEnterobacterales
FamilyEnterobacteriaceae
GenusSpeciesSubtypeKey DiseaseKey Feature
EscherichiaE. coliO157:H7 (EHEC)UTI, neonatal meningitis, HUS, traveler's diarrheaMost common GNB; lactose fermenter, oxidase-
ETECTraveler's diarrheaHeat-labile & heat-stable toxins
EPECInfant diarrhea
UPECUTIUropathogenic
KlebsiellaK. pneumoniaeCRKP, ESBL+Hospital pneumonia, UTI, liver abscessMucoid capsule; "currant jelly" sputum
K. oxytocaESBL+UTI, bacteremia
ProteusP. mirabilis-UTI, kidney stones, wound infectionsUrease+, swarming motility, staghorn calculi
P. vulgaris-UTI, wound infections
SalmonellaS. typhi-Typhoid feverNon-lactose fermenter; H2S+
S. paratyphiA, B, CParatyphoid fever
S. enteritidis / typhimuriumMany serovarsFood poisoning, gastroenteritis
ShigellaS. dysenteriaeSerotype 1Bloody dysentery (most severe)Shiga toxin; non-motile
S. flexneri15 serotypesBacillary dysenteryMost common in developing countries
S. sonnei-Mild diarrheaMost common in developed countries
S. boydii-Diarrhea
EnterobacterE. cloacaeAmpC beta-lactamaseNosocomial pneumonia, UTI, bacteremiaInducible AmpC resistance
E. aerogenes (now Klebsiella aerogenes)Hospital infections
SerratiaS. marcescens-Hospital pneumonia, UTI, bacteremiaRed pigment (prodigiosin); IV drug users
CitrobacterC. freundii-UTI, neonatal meningitis, brain abscess
C. koseri-Neonatal brain abscess
ProvidenciaP. stuartii-UTI in catheterized patients
MorganellaM. morganii-UTI, wound infections
YersiniaY. pestisBiovar Orientalis, Antiqua, MedievalisPlague (bubonic, pneumonic, septicemic)Bioterrorism agent
Y. enterocolitica-Enterocolitis, mesenteric adenitisMimics appendicitis
Y. pseudotuberculosis-Mesenteric adenitis

FAMILY 2: Non-Fermentative GNB (Phylum: Proteobacteria)

GenusSpeciesOrder/FamilySubtypeKey DiseaseKey Feature
PseudomonasP. aeruginosaPseudomonadales / PseudomonadaceaeMucoid strains (CF)Burn infections, VAP, cystic fibrosis, hot tub folliculitisOxidase+, blue-green pyocyanin pigment, grape odor
AcinetobacterA. baumanniiPseudomonadales / MoraxellaceaeCRAB (carbapenem-resistant)VAP, wound infections, bacteremia in ICU"ESKAPE" pathogen; survives on surfaces
StenotrophomonasS. maltophiliaXanthomonadales-Pneumonia in immunocompromised, CFIntrinsically resistant to carbapenems
BurkholderiaB. cepacia complexBurkholderialesMultiple genomovarsLung infections in CF patients
B. pseudomallei-MelioidosisEndemic in SE Asia

FAMILY 3: Fastidious GNB (special growth requirements)

GenusSpeciesPhylum/ClassKey DiseaseSpecial Feature
HaemophilusH. influenzaeProteobacteria / PasteurellalesMeningitis (type b), pneumonia, otitisRequires X and V factors; type b has polysaccharide capsule
H. ducreyiChancroid (painful genital ulcer)
LegionellaL. pneumophilaLegionellalesLegionnaire's disease (severe pneumonia), Pontiac feverIntracellular; grows in air conditioning/water systems
BordetellaB. pertussisBurkholderialesWhooping cough (pertussis)Pertussis toxin; "whoop" inspiratory sound
B. parapertussisMilder pertussis
BrucellaB. melitensisRhizobialesBrucellosis (undulant fever)Zoonosis (goats)
B. abortusBrucellosisZoonosis (cattle)
FrancisellaF. tularensisThiotrichalesTularemia ("rabbit fever")Bioterrorism agent; extremely infectious
PasteurellaP. multocidaPasteurellalesWound infections after animal bitesCat/dog bites
BartonellaB. henselaeRhizobialesCat scratch disease, bacillary angiomatosis

FAMILY 4: Curved / Microaerophilic GNB

GenusSpeciesOrder/FamilyKey DiseaseSpecial Feature
CampylobacterC. jejuniCampylobacteralesMost common bacterial diarrhea worldwide; Guillain-Barré syndromeMicroaerophile; comma/S-shaped rods
C. fetusBacteremia in immunocompromised
HelicobacterH. pyloriCampylobacteralesPeptic ulcer disease, gastric cancer, MALT lymphomaUrease+; spiral rods; lives in gastric mucosa
VibrioV. choleraeVibrionalesCholera ("rice water" diarrhea)O1 and O139 serovars cause epidemics
V. parahaemolyticusSeafood-associated gastroenteritisHalophile
V. vulnificusWound infections, septicemiaRaw oysters; fatal in liver disease patients

FAMILY 5: Gram-Negative Cocci & Coccobacilli (related group)

GenusSpeciesKey Disease
NeisseriaN. meningitidisBacterial meningitis, Waterhouse-Friderichsen syndrome
N. gonorrhoeaeGonorrhea, PID, neonatal ophthalmia
MoraxellaM. catarrhalisOtitis media, sinusitis, COPD exacerbations

Master Summary Table

GroupPhylumClassOrderFamilyExample
GPC - StaphylococciFirmicutesBacilliBacillalesStaphylococcaceaeS. aureus, S. epidermidis
GPC - StreptococciFirmicutesBacilliLactobacillalesStreptococcaceaeS. pyogenes, S. pneumoniae
GPC - EnterococciFirmicutesBacilliLactobacillalesEnterococcaceaeE. faecalis, E. faecium
GNB - EnterobacteralesProteobacteriaGammaproteobacteriaEnterobacteralesEnterobacteriaceaeE. coli, Klebsiella, Salmonella
GNB - Non-fermentersProteobacteriaGammaproteobacteriaPseudomonadalesPseudomonadaceae / MoraxellaceaeP. aeruginosa, A. baumannii
GNB - FastidiousProteobacteriaVariousVariousVariousH. influenzae, Legionella
GNB - CurvedProteobacteriaEpsilonproteobacteriaCampylobacteralesCampylobacteraceaeCampylobacter, H. pylori
Sources: Henry's Clinical Diagnosis and Management by Laboratory Methods, p. 63-71; Red Book 2021, p. 2421; Medical Microbiology 9e; Jawetz, Melnick & Adelberg's Medical Microbiology 28e

Create a comparative PDF chart of GPC vs GNB antibiotic susceptibility

Reading File
Finding Sources
Running Command

mkdir -p /home/daytona/workspace/gpc-gnb-chart && ls /home/daytona/workspace/gpc…

Writing File

~/gpc-gnb-chart/generate_chart.py

from reportlab.lib.pagesizes import A3, landscape
from reportlab.lib import colors
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import cm, mm
from reportlab.platypus import (
    SimpleDocTemplate, Table, TableStyle, Paragraph,
    Spacer, HRFlowable, KeepTogether
)
from reportlab.lib.enums import TA_CENTER, TA_LEFT
from reportlab.platypus import PageBreak

OUTPUT = "/home/daytona/workspace/gpc-gnb-chart/GPC_vs_GNB_Antibiotic_Susceptibility.pdf"

# ── Colours ──────────────────────────────────────────────────────────────────
DARK_BLUE   = colors.HexColor("#1a3a5c")
MID_BLUE    = colors.HexColor("#2e6da4")
LIGHT_BLUE  = colors.HexColor("#d0e4f7")
PALE_BLUE   = colors.HexColor("#eaf3fb")

DARK_RED    = colors.HexColor("#8b1a1a")
MID_RED     = colors.HexColor("#c0392b")
LIGHT_RED   = colors.HexColor("#fdd5d0")
PALE_RED    = colors.HexColor("#fff0ee")

DARK_GREEN  = colors.HexColor("#1a5c2e")
LIGHT_GREEN = colors.HexColor("#d4edda")

DARK_ORANGE = colors.HexColor("#7d4e00")
LIGHT_ORANGE= colors.HexColor("#fff3cd")

GREY_HEADER = colors.HexColor("#2c3e50")
LIGHT_GREY  = colors.HexColor("#f2f4f6")
WHITE       = colors.white
BLACK       = colors.black

# Susceptibility cell colours
S_COLOR  = colors.HexColor("#27ae60")   # Susceptible  - green
R_COLOR  = colors.HexColor("#e74c3c")   # Resistant    - red
V_COLOR  = colors.HexColor("#f39c12")   # Variable     - amber
I_COLOR  = colors.HexColor("#8e44ad")   # Intermediate - purple
NA_COLOR = colors.HexColor("#95a5a6")   # N/A          - grey

doc = SimpleDocTemplate(
    OUTPUT,
    pagesize=landscape(A3),
    leftMargin=1.2*cm, rightMargin=1.2*cm,
    topMargin=1.5*cm,  bottomMargin=1.5*cm,
    title="GPC vs GNB Antibiotic Susceptibility Chart",
    author="Orris Medical Reference"
)

styles = getSampleStyleSheet()

def style(name, **kw):
    s = ParagraphStyle(name, parent=styles["Normal"], **kw)
    return s

title_style = style("Title2", fontSize=20, fontName="Helvetica-Bold",
                    textColor=WHITE, alignment=TA_CENTER, spaceAfter=4)
subtitle_style = style("Sub", fontSize=11, fontName="Helvetica",
                       textColor=colors.HexColor("#ccddee"), alignment=TA_CENTER)
section_style = style("Sec", fontSize=13, fontName="Helvetica-Bold",
                      textColor=WHITE, alignment=TA_CENTER)
cell_hdr = style("CH", fontSize=8.5, fontName="Helvetica-Bold",
                 textColor=WHITE, alignment=TA_CENTER, leading=10)
cell_body = style("CB", fontSize=7.5, fontName="Helvetica",
                  textColor=BLACK, alignment=TA_LEFT, leading=9)
cell_center = style("CC", fontSize=7.5, fontName="Helvetica",
                    textColor=BLACK, alignment=TA_CENTER, leading=9)
legend_style = style("Leg", fontSize=8, fontName="Helvetica",
                     textColor=BLACK, alignment=TA_LEFT)
note_style = style("Note", fontSize=7.5, fontName="Helvetica-Oblique",
                   textColor=colors.HexColor("#555555"), alignment=TA_CENTER)

# ── Helper: coloured susceptibility cell ─────────────────────────────────────
def sc(text, bg=None):
    """Return a (Paragraph, bg_color) tuple for susceptibility cells."""
    mapping = {
        "S":  (S_COLOR,  WHITE, "S"),
        "R":  (R_COLOR,  WHITE, "R"),
        "V":  (V_COLOR,  WHITE, "V"),
        "I":  (I_COLOR,  WHITE, "I"),
        "S*": (colors.HexColor("#1e8449"), WHITE, "S*"),
        "R*": (colors.HexColor("#b03a2e"), WHITE, "R*"),
        "V*": (colors.HexColor("#d68910"), WHITE, "V*"),
        "-":  (NA_COLOR, WHITE, "-"),
    }
    if text in mapping:
        bg_col, fg_col, label = mapping[text]
        p = Paragraph(f"<b>{label}</b>",
                      style("SC", fontSize=8, fontName="Helvetica-Bold",
                            textColor=fg_col, alignment=TA_CENTER, leading=10))
        return p, bg_col
    p = Paragraph(text, cell_center)
    return p, (bg if bg else WHITE)

# ── Data definition ──────────────────────────────────────────────────────────
# Columns: Antibiotic | Class | S.aureus(MSSA) | S.aureus(MRSA) | S.pyogenes |
#          S.pneumoniae | E.faecalis | E.faecium(VRE) ||
#          E.coli | Klebsiella | Pseudomonas | Acinetobacter | Salmonella | H.influenzae

# Key: S=Susceptible, R=Resistant, V=Variable, I=Intermediate, -=Not applicable / not used
# S* / V* / R* = with caveats (footnote)

ABX_DATA = [
    # [Antibiotic, Drug Class,
    #   MSSA, MRSA, S.pyo, S.pneu, E.fae, E.fae(VRE),
    #   E.coli, Klebsiella, Pseudomonas, Acinetobacter, Salmonella, H.influenzae]
    # ── Beta-lactams ──────────────────────────────────────────────
    ["Penicillin G", "Natural Penicillin",
     "S","R","S","V*","S","-",
     "R","R","R","R","R","R"],
    ["Amoxicillin", "Aminopenicillin",
     "S","R","S","S","S","-",
     "V","R","R","R","V","V"],
    ["Amoxicillin-Clavulanate", "Beta-lactam + Inhibitor",
     "S","R","S","S","S","-",
     "S","S","R","V","V","S"],
    ["Nafcillin / Oxacillin", "Antistaphylococcal PCN",
     "S","R","S","S","R","R",
     "R","R","R","R","R","R"],
    ["Piperacillin-Tazobactam", "Extended PCN + Inhibitor",
     "S","R","S","S","S","-",
     "S","S","V","V","S","S"],
    ["Cefazolin (1st gen)", "1st-Gen Cephalosporin",
     "S","R","S","S","R","R",
     "S","S","R","R","V","V"],
    ["Ceftriaxone (3rd gen)", "3rd-Gen Cephalosporin",
     "S","R","S","S","R","R",
     "S","S","R","R","S","S"],
    ["Ceftazidime (3rd gen)", "3rd-Gen Cephalosporin (anti-Pseudo)",
     "R","R","R","R","R","R",
     "S","S","S","V","S","S"],
    ["Cefepime (4th gen)", "4th-Gen Cephalosporin",
     "S","R","S","S","R","R",
     "S","S","S","V","S","S"],
    ["Ceftaroline (5th gen)", "5th-Gen Cephalosporin (anti-MRSA)",
     "S","S","S","S","R","R",
     "S","S","R","R","S","S"],
    ["Imipenem/Meropenem", "Carbapenem",
     "S","R","S","S","S","R",
     "S","S","V","V","S","S"],
    ["Ertapenem", "Carbapenem (no Pseudo)",
     "S","R","S","S","S","R",
     "S","S","R","V","S","S"],
    ["Aztreonam", "Monobactam",
     "R","R","R","R","R","R",
     "S","S","S","V","S","S"],
    # ── Glycopeptides ──────────────────────────────────────────────
    ["Vancomycin", "Glycopeptide",
     "S","S","S","S","S","R",
     "R","R","R","R","R","R"],
    ["Teicoplanin", "Glycopeptide",
     "S","S","S","S","S","R",
     "R","R","R","R","R","R"],
    # ── Lipopeptide ────────────────────────────────────────────────
    ["Daptomycin", "Lipopeptide",
     "S","S","S","S","S","V",
     "R","R","R","R","R","R"],
    # ── Oxazolidinones ─────────────────────────────────────────────
    ["Linezolid", "Oxazolidinone",
     "S","S","S","S","S","S",
     "R","R","R","R","R","R"],
    ["Tedizolid", "Oxazolidinone (2nd gen)",
     "S","S","S","S","S","S",
     "R","R","R","R","R","R"],
    # ── Aminoglycosides ────────────────────────────────────────────
    ["Gentamicin", "Aminoglycoside",
     "S","V","V","R","V*","V*",
     "S","S","S","V","V","V"],
    ["Amikacin", "Aminoglycoside",
     "S","V","V","R","V*","V*",
     "S","S","S","V","V","S"],
    # ── Fluoroquinolones ───────────────────────────────────────────
    ["Ciprofloxacin", "Fluoroquinolone",
     "S","R","V","R","V","V",
     "S","S","S","V","V","S"],
    ["Levofloxacin", "Respiratory FQ",
     "S","R","S","S","S","V",
     "S","S","S","V","S","S"],
    ["Moxifloxacin", "Respiratory FQ",
     "S","R","S","S","S","V",
     "S","S","R","V","S","S"],
    # ── Macrolides ─────────────────────────────────────────────────
    ["Azithromycin", "Macrolide",
     "V","R","S","V","R","R",
     "R","R","R","R","V","S"],
    ["Erythromycin", "Macrolide",
     "V","R","S","V","R","R",
     "R","R","R","R","R","R"],
    # ── Tetracyclines ──────────────────────────────────────────────
    ["Doxycycline", "Tetracycline",
     "S","V","S","S","V","V",
     "V","V","R","V","V","R"],
    ["Tigecycline", "Glycylcycline",
     "S","S","S","S","S","S",
     "S","S","R","S","S","S"],
    # ── Folate Inhibitors ──────────────────────────────────────────
    ["TMP-SMX", "Sulfonamide Combo",
     "S","V","V","V","R","R",
     "V","V","R","V","V","V"],
    # ── Other ──────────────────────────────────────────────────────
    ["Clindamycin", "Lincosamide",
     "S","V","S","S","R","R",
     "R","R","R","R","R","R"],
    ["Metronidazole", "Nitroimidazole",
     "R","R","R","R","R","R",
     "R","R","R","R","R","R"],
    ["Rifampicin", "Rifamycin",
     "S","S","S","S","V","V",
     "R","R","R","R","R","R"],
    ["Colistin / Polymyxin B", "Polymyxin",
     "R","R","R","R","R","R",
     "S","S","S","S","S","R"],
    ["Nitrofurantoin", "Nitrofuran",
     "S","S","S","V","S","R",
     "S","V","R","R","R","R"],
    ["Fosfomycin", "Phosphonic acid",
     "S","S","V","V","S","V",
     "S","V","V","R","V","V"],
]

# Column widths (landscape A3 = 420 x 297mm, usable ~397mm)
# Antibiotic(90), Class(80), then 12 organism cols each 19mm => 228mm => total 398mm
COL_W = [90, 80] + [19]*12
page_w = sum(COL_W)

# ── Build table rows ─────────────────────────────────────────────────────────
def hdr(txt, bg, fg=WHITE, size=8):
    return Paragraph(f"<b>{txt}</b>",
                     style("H", fontSize=size, fontName="Helvetica-Bold",
                           textColor=fg, alignment=TA_CENTER, leading=9))

# Row 0: mega header
R0 = [
    hdr("ANTIBIOTIC", GREY_HEADER, size=9),
    hdr("DRUG CLASS", GREY_HEADER, size=9),
    hdr("GRAM-POSITIVE COCCI (GPC)", MID_BLUE, size=10),
    Paragraph(""), Paragraph(""), Paragraph(""), Paragraph(""), Paragraph(""),
    hdr("GRAM-NEGATIVE BACILLI (GNB)", MID_RED, size=10),
    Paragraph(""), Paragraph(""), Paragraph(""), Paragraph(""), Paragraph(""),
]

# Row 1: organism names
org_names_gpc = ["S. aureus\n(MSSA)", "S. aureus\n(MRSA)", "S. pyogenes\n(GAS)",
                 "S. pneumoniae", "E. faecalis", "E. faecium\n(VRE)"]
org_names_gnb = ["E. coli", "Klebsiella\npneumoniae", "Pseudomonas\naeruginosa",
                 "Acinetobacter\nbaumannii", "Salmonella\nspp.", "H. influenzae"]

R1 = [hdr("ANTIBIOTIC", DARK_BLUE, size=8),
      hdr("CLASS", DARK_BLUE, size=8)]
for n in org_names_gpc:
    R1.append(hdr(n, MID_BLUE, size=7.5))
for n in org_names_gnb:
    R1.append(hdr(n, MID_RED, size=7.5))

# Data rows
data_rows = []
style_commands = []
row_idx = 2  # rows 0,1 are headers

for i, row in enumerate(ABX_DATA):
    abx, cls = row[0], row[1]
    sus_vals = row[2:]  # 12 values

    tr = [
        Paragraph(f"<b>{abx}</b>",
                  style("A", fontSize=8, fontName="Helvetica-Bold",
                        textColor=DARK_BLUE, alignment=TA_LEFT, leading=10)),
        Paragraph(cls,
                  style("C", fontSize=7.5, fontName="Helvetica-Oblique",
                        textColor=colors.HexColor("#333333"), alignment=TA_LEFT, leading=9)),
    ]
    for j, val in enumerate(sus_vals):
        p, bg = sc(val)
        tr.append(p)
        col = 2 + j
        bg_key = f"bg_{row_idx}_{col}"
        style_commands.append(("BACKGROUND", (col, row_idx), (col, row_idx), bg))

    row_bg = PALE_BLUE if i % 2 == 0 else WHITE
    style_commands.append(("BACKGROUND", (0, row_idx), (1, row_idx), row_bg))
    data_rows.append(tr)
    row_idx += 1

all_rows = [R0, R1] + data_rows

# ── Table style ──────────────────────────────────────────────────────────────
base_style = [
    # Spanning
    ("SPAN", (2, 0), (7, 0)),    # GPC header spans cols 2-7
    ("SPAN", (8, 0), (13, 0)),   # GNB header spans cols 8-13
    ("SPAN", (0, 0), (0, 1)),    # Antibiotic header spans rows 0-1
    ("SPAN", (1, 0), (1, 1)),    # Class header spans rows 0-1

    # Fonts / alignment
    ("VALIGN", (0, 0), (-1, -1), "MIDDLE"),
    ("ALIGN",  (0, 0), (-1, -1), "CENTER"),
    ("ALIGN",  (0, 2), (1, -1),  "LEFT"),

    # Grid
    ("GRID",      (0, 0), (-1, -1), 0.4, colors.HexColor("#aaaaaa")),
    ("LINEBELOW", (0, 1), (-1, 1),  1.2, DARK_BLUE),

    # Row 0 backgrounds
    ("BACKGROUND", (0, 0), (1, 1),   GREY_HEADER),
    ("BACKGROUND", (2, 0), (7, 0),   MID_BLUE),
    ("BACKGROUND", (2, 1), (7, 1),   DARK_BLUE),
    ("BACKGROUND", (8, 0), (13, 0),  MID_RED),
    ("BACKGROUND", (8, 1), (13, 1),  DARK_RED),

    # Vertical separator between GPC and GNB
    ("LINEAFTER", (7, 0), (7, -1), 2, GREY_HEADER),

    # Row heights
    ("ROWBACKGROUNDS", (0, 2), (-1, -1), [PALE_BLUE, WHITE]),

    # Padding
    ("TOPPADDING",    (0, 0), (-1, -1), 4),
    ("BOTTOMPADDING", (0, 0), (-1, -1), 4),
    ("LEFTPADDING",   (0, 0), (-1, -1), 3),
    ("RIGHTPADDING",  (0, 0), (-1, -1), 3),
]

ts = TableStyle(base_style + style_commands)

t = Table(all_rows, colWidths=COL_W, repeatRows=2)
t.setStyle(ts)

# ── Legend ────────────────────────────────────────────────────────────────────
legend_items = [
    (S_COLOR,  "S  = Susceptible (typically effective)"),
    (R_COLOR,  "R  = Resistant (not effective)"),
    (V_COLOR,  "V  = Variable (depends on strain/resistance pattern)"),
    (I_COLOR,  "I   = Intermediate / reduced susceptibility"),
    (NA_COLOR, "-   = Not applicable / not used clinically"),
]

def legend_row(col, label):
    box = Table([[""]], colWidths=[12], rowHeights=[12])
    box.setStyle(TableStyle([("BACKGROUND",(0,0),(0,0),col),
                              ("GRID",(0,0),(0,0),0.5,colors.grey)]))
    return [box, Paragraph(f"  {label}", legend_style)]

leg_data = [legend_row(c, l) for c, l in legend_items]
# Build as a single-row horizontal legend
leg_cells = []
for c, l in legend_items:
    box = Table([[""]], colWidths=[10], rowHeights=[10])
    box.setStyle(TableStyle([("BACKGROUND",(0,0),(0,0),c),
                              ("GRID",(0,0),(0,0),0.5,colors.grey)]))
    leg_cells.append(box)
    leg_cells.append(Paragraph(f" {l}   ", legend_style))

leg_table = Table([leg_cells], colWidths=([12,120]*5))
leg_table.setStyle(TableStyle([
    ("VALIGN",(0,0),(-1,-1),"MIDDLE"),
    ("ALIGN", (0,0),(-1,-1),"LEFT"),
    ("TOPPADDING",(0,0),(-1,-1),3),
    ("BOTTOMPADDING",(0,0),(-1,-1),3),
]))

notes = [
    "* V for penicillin against S. pneumoniae: susceptibility varies by site (meningitis requires higher MIC breakpoints).",
    "* Gentamicin/Amikacin used synergistically with beta-lactams for enterococcal endocarditis (not monotherapy).",
    "* MRSA = Methicillin-Resistant S. aureus; VRE = Vancomycin-Resistant Enterococcus; ESBL/CRKP strains may show further resistance.",
    "* Pseudomonas aeruginosa is intrinsically resistant to many antibiotics; always verify local antibiogram.",
    "* This chart reflects general/typical susceptibility patterns. Always consult local antibiogram and culture/sensitivity results.",
]

# ── Assemble document ─────────────────────────────────────────────────────────
elements = []

# Page title banner
title_table = Table(
    [[Paragraph("GPC vs GNB", title_style)],
     [Paragraph("Comparative Antibiotic Susceptibility Reference Chart", subtitle_style)],
     [Paragraph("Gram-Positive Cocci (GPC)  |  Gram-Negative Bacilli (GNB)  •  Orris Medical Reference 2026", subtitle_style)]],
    colWidths=[page_w]
)
title_table.setStyle(TableStyle([
    ("BACKGROUND", (0,0),(0,2), DARK_BLUE),
    ("TOPPADDING", (0,0),(0,2), 6),
    ("BOTTOMPADDING",(0,0),(0,2), 6),
    ("LEFTPADDING", (0,0),(0,2), 8),
    ("RIGHTPADDING",(0,0),(0,2), 8),
]))

elements.append(title_table)
elements.append(Spacer(1, 6))
elements.append(t)
elements.append(Spacer(1, 6))

# Legend box
leg_outer = Table(
    [[Paragraph("<b>LEGEND:</b>", style("LT", fontSize=8.5, fontName="Helvetica-Bold",
                                        textColor=GREY_HEADER, alignment=TA_LEFT)),
      leg_table]],
    colWidths=[55, page_w - 55]
)
leg_outer.setStyle(TableStyle([
    ("BACKGROUND",(0,0),(-1,-1), LIGHT_GREY),
    ("BOX",(0,0),(-1,-1), 0.8, colors.HexColor("#aaaaaa")),
    ("VALIGN",(0,0),(-1,-1),"MIDDLE"),
    ("TOPPADDING",(0,0),(-1,-1),5),
    ("BOTTOMPADDING",(0,0),(-1,-1),5),
    ("LEFTPADDING",(0,0),(-1,-1),6),
]))
elements.append(leg_outer)
elements.append(Spacer(1, 5))

for note in notes:
    elements.append(Paragraph(f"<i>{note}</i>", note_style))
    elements.append(Spacer(1, 2))

doc.build(elements)
print(f"PDF created: {OUTPUT}")
Running Command

cd /home/daytona/workspace/gpc-gnb-chart && python generate_chart.py 2>&1

Running Command

ls -lh /home/daytona/workspace/gpc-gnb-chart/

Your PDF is ready:

GPC vs GNB Antibiotic Susceptibility

PDF Document · PDF


What's Inside the Chart

Format: Landscape A3, single-page reference chart
Organisms covered (12 total):
GPC (6)GNB (6)
S. aureus MSSAE. coli
S. aureus MRSAKlebsiella pneumoniae
S. pyogenes (GAS)Pseudomonas aeruginosa
S. pneumoniaeAcinetobacter baumannii
E. faecalisSalmonella spp.
E. faecium (VRE)H. influenzae
Antibiotics covered (34 drugs across 12 classes):
  • Beta-lactams (Penicillins, Cephalosporins 1st-5th gen, Carbapenems, Monobactam)
  • Glycopeptides (Vancomycin, Teicoplanin)
  • Lipopeptides (Daptomycin)
  • Oxazolidinones (Linezolid, Tedizolid)
  • Aminoglycosides
  • Fluoroquinolones
  • Macrolides
  • Tetracyclines / Glycylcyclines
  • Folate inhibitors (TMP-SMX)
  • Lincosamides, Rifamycins, Polymyxins, Nitrofurans, Fosfomycin
Color coding:
  • 🟢 S = Susceptible
  • 🔴 R = Resistant
  • 🟡 V = Variable
  • 🟣 I = Intermediate
  • - = Not applicable
Clinical footnotes at the bottom cover MRSA, VRE, ESBL caveats, and the reminder to always verify with local antibiogram.

gnb Genus Species Phylum/Class Special Feature Key Disease

Finding Sources
Finding Sources
Reading File
Finding Sources
Generating Image

A detailed professional medical reference table for Gram-Negative Bacilli (GNB). The table should show 40+ clinically relevant species organized by category. Table with 5 columns: - Column 1: GENUS (bold, left-aligned) - Column 2: SPECIES (italicized, left-aligned) - Column 3: PHYLUM/CLASS (smaller text, center) - Column 4: SPECIAL FEATURE (concise, left-aligned) - Column 5: KEY DISEASE (left-aligned) Organize into sections with color-coded category headers: SECTION 1 - ENTEROBACTERIACEAE (FAMILY ENTEROBACTERALES, PHYLUM PROTEOBACTERIA, CLASS GAMMAPROTEOBACTERIA) - Blue header - Escherichia | E. coli | Gamma | Oxidase-, lactose ferment | UTI, neonatal meningitis, diarrhea, HUS - Escherichia | E. coli O157:H7 | Gamma | Shiga toxin producer | Hemolytic uremic syndrome - Klebsiella | K. pneumoniae | Gamma | Mucoid capsule, non-motile | Hospital pneumonia, UTI, liver abscess - Klebsiella | K. oxytoca | Gamma | ESBL producer | UTI, bacteremia - Proteus | P. mirabilis | Gamma | Urease+, swarming | Staghorn calculi, UTI - Proteus | P. vulgaris | Gamma | Urease+, indole+ | UTI, wound infections - Morganella | M. morganii | Gamma | Urease+, indole+ | UTI, wound infection - Salmonella | S. typhi | Gamma | Non-lactose ferment, H2S+ | Typhoid fever (systemic) - Salmonella | S. paratyphi | Gamma | Non-lactose ferment | Paratyphoid fever - Salmonella | S. enteritidis | Gamma | Food pathogen | Foodborne gastroenteritis - Salmonella | S. typhimurium | Gamma | Multiple serovars | Foodborne gastroenteritis - Shigella | S. dysenteriae | Gamma | Non-motile, Shiga toxin | Severe bloody dysentery - Shigella | S. flexneri | Gamma | 15 serotypes | Bacillary dysentery - Shigella | S. sonnei | Gamma | Non-motile | Mild diarrhea - Shigella | S. boydii | Gamma | Non-motile | Diarrhea - Yersinia | Y. pestis | Gamma | Biofilm | PLAGUE (bubonic/pneumonic/septicemic) - Yersinia | Y. enterocolitica | Gamma | Psychrophilic | Enterocolitis, mesenteric adenitis - Yersinia | Y. pseudotuberculosis | Gamma | Cold-loving | Mesenteric adenitis, mimics appendicitis - Enterobacter | E. cloacae | Gamma | AmpC beta-lactamase | Nosocomial infections - Enterobacter | E. aerogenes | Gamma | AmpC producer | Hospital-acquired infections - Serratia | S. marcescens | Gamma | Red pigment | Hospital infections, IV drug users - Citrobacter | C. freundii | Gamma | ESBL producer | UTI, neonatal meningitis - Citrobacter | C. koseri | Gamma | Meningitis risk | Neonatal brain abscess - Providencia | P. stuartii | Gamma | Urease+ | UTI in catheterized patients - Hafnia | H. alvei | Gamma | Lactose delayed | Rarely pathogenic SECTION 2 - NON-FERMENTATIVE GRAM-NEGATIVE BACILLI - Red header - Pseudomonas | P. aeruginosa | Gamma | Oxidase+, blue-green pigment, mucoid | Burn/wound infections, VAP, CF lung disease - Pseudomonas | P. fluorescens | Gamma | Oxidase+, fluorescence | Environmental contaminant - Pseudomonas | P. putida | Gamma | Oxidase+ | Environmental - Acinetobacter | A. baumannii | Gamma | Oxidase-, CRAB strains | Hospital VAP, wound infections - Acinetobacter | A. lwoffii | Gamma | Oxidase- | Opportunistic - Stenotrophomonas | S. maltophilia | Xanthomonas (class) | Oxidase-, carbapenem-resistant | CF pneumonia, VAP in ICU - Burkholderia | B. cepacia | Burkholderiales | Multiple genomovars | CF lung colonization - Burkholderia | B. pseudomallei | Burkholderiales | Bipolar staining | Melioidosis (endemic SE Asia) SECTION 3 - FASTIDIOUS GRAM-NEGATIVE BACILLI - Orange header - Haemophilus | H. influenzae | Pasteurellales | Requires X & V factors, type b has capsule | Meningitis, pneumonia, epiglottitis - Haemophilus | H. ducreyi | Pasteurellales | Gram-negative bacillus | Chancroid (STI) - Legionella | L. pneumophila | Legionellales | Intracellular, water systems | Legionnaire's disease, Pontiac fever - Bordetella | B. pertussis | Burkholderiales | Pertussis toxin producer | Whooping cough (pertussis) - Bordetella | B. parapertussis | Burkholderiales | Mild toxin | Parapertussis (milder) - Brucella | B. melitensis | Rhizobiales | Zoonosis (goats) | Brucellosis (undulant fever) - Brucella | B. abortus | Rhizobiales | Zoonosis (cattle) | Brucellosis - Francisella | F. tularensis | Thiotrichales | Bioterror agent, highly infectious | Tularemia (rabbit fever) - Pasteurella | P. multocida | Pasteurellales | Animal bite wound pathogen | Cat/dog bite infections - Bartonella | B. henselae | Rhizobiales | Cat flea vector | Cat scratch disease, bacillary angiomatosis SECTION 4 - CURVED/SPIRAL GRAM-NEGATIVE BACILLI - Purple header - Campylobacter | C. jejuni | Epsilonproteobacteria | Microaerophile, comma-shaped | Most common bacterial diarrhea - Campylobacter | C. fetus | Epsilonproteobacteria | Microaerophile, S-shaped | Bacteremia in elderly/immunocompromised - Helicobacter | H. pylori | Epsilonproteobacteria | Urease+, spiral, lives in stomach | Peptic ulcer, gastric cancer, MALT lymphoma - Vibrio | V. cholerae | Vibrionales | O1 & O139 epidemic strains | Cholera (rice-water diarrhea) - Vibrio | V. parahaemolyticus | Vibrionales | Halophile (salt-loving) | Seafood-associated gastroenteritis - Vibrio | V. vulnificus | Vibrionales | Highly virulent | Raw oyster infections, septicemia SECTION 5 - GRAM-NEGATIVE COCCI / COCCOBACILLI - Green header - Neisseria | N. meningitidis | Gammaproteobacteria | Gram-negative diplococcus | Bacterial meningitis, septicemia - Neisseria | N. gonorrhoeae | Gammaproteobacteria | Gram-negative diplococcus | Gonorrhea, PID, neonatal ophthalmia - Moraxella | M. catarrhalis | Gammaproteobacteria | Gram-negative diplococcus | Otitis media, sinusitis, COPD exacerbation Use white background. Section headers bold, full-width color bands. Alternate row shading (very light grey/white) for readability. Professional, high-contrast layout. Include a footer: "Data source: Henry's Clinical Diagnosis & Laboratory Methods, Red Book 2021, Medical Microbiology 9e. *Phylum = Proteobacteria unless noted; Class = Gammaproteobacteria unless noted."

!

400, message: Got more than 4194304 bytes when reading: b'data: {"candidates": [{"content": {"role": "model","parts": [{"inlineData": {"mimeType": "image/png"...'.

We encountered an error while processing your request. Please try again or reach out to us for help.

This is a shared conversation. Sign in to Orris to start your own chat.