Archive for Blog

ESCAPE – page 10

After some rest, we went out to the edge of town. It was already around eight o’clock. Two more hours of walking and we found ourselves in front of a yellow sign reading “Berlin-West.” A few light beams of the sun came through. In the bushes we dried our clothes. We shaved, and with a piece of our ragged prisoner clothes we had under the SS uniforms, we cleaned our shoes and improving our looks somewhat, we moved over South of Berlin to the east. On the way we saw many destructions and ruins. A military unit marched through the street. The commander gave us the honour, which of course we responded to, and without the slightest hassle we went further.

On the way we passed some factories, fenced with wires. Some of them – newly built. In front of one of the factories we noticed ‘stamped’ people walking around unrestrained. The first of a kind we met with a “P” and the “U” sign. We assumed that “P” is a Pole. We went up to one man with the stamp “P”. I first asked in German what this stamp means. He replied. Then in Polish I asked where he came from and what he was doing here. He replied that he was from Lódz. He was taken to work. To work in a factory. I told him who we were and we ask for help. He gave us 10 mark and showed us the way to the tram. Today, I wish I could thank him again , because neither his name nor his place of residence is known to me.

From the bridge over the river Spree, we took the tram to Berlin-East station. On the way, however, we changed plans. We were afraid of check-ups at the station by the military police. We went further, to the main highway in the direction of Frankfurt and Kostrzyn. We got off there. We wanted to take the road to reach some small station where there would be no checks for on getting on and buying a ticket.

The map we had ended after Berlin. The road we set off did not lead to the train station. Guided by our senses, we headed east. The entire route was filled with driving cars, which forced us to go of the road. We entered a military area and moved along the line, leaving Berlin behind us. On the way we picked potatoes from the mounds. We fried them in the woods. Back on strengths, we went on the main road. We stopped a truck. Two workers and a chauffeur were sitting in it. We asked them to take us to Kostrin because we were in a hurry. We needed to present ourselves for the army. We were going to the battlefront. They were surprised. They talked to each other until they finally demanded documents.

As our only document, we showed the gun. I sat down with the chauffeur and Bolek with the workers, and ordered them to move. They drove without a word. I do not know whether they were afraid or whether they were foreigners, because we encountered marching troops on the way, we were passing a town and the car did not stop for a moment.



Page 1

Page 2

Page 3

Page 4

Page 5

Page 6

Page 7

Page 8

Page 9


Profiling of Antibiotic Resistance of Bacterial Species Recovered from Routine Clinical Isolates in Ethiopia.

Melaku Tesfaye1
Witold Frederik ten Hove2
Mesfin Nigussie1
1. International Clinical Laboratories, Addis Ababa, Ethiopia
2. HAN University of Applied Sciences, Nijmegen, the Netherlands

This is a guide to explain the aggregation and visualisation of raw data extracted from the Polytech Laboratory Information Management System, at International Clinical Laboratories, Addis Ababa, Ethiopia. The guide starts with a piece of R-code, followed by an explanation.


# libraries

The working directory need to be set and, I like to put all libraries together.

# Read text file (file should be in the same working directory as this script)
con <- file("antibiogram_raw.txt")
txtData <- readLines(con, warn = FALSE, skipNul = TRUE)
## [1] "Page 1/176\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t"                            
## [2] "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t"                                      
## [3] "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t"                                      
## [4] "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t"                                      
## [5] "Sensitive/Resistant/Intermediate Count\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t"
## [6] "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t"

The raw data was exported by a query from LIMS. It resulted in 176 PDF pages. With Copy-Paste, the data was then saved as a simple .txt file. This text file is read into R. First as a file(con) and then as a string (txtData).

# Clean up
txtData <- gsub("\t{1,}", ";", txtData)
txtData <- gsub("^Page", NA, txtData)
txtData <- gsub("Site:", "", txtData)
txtData <- gsub("^;$", NA, txtData)
txtData <- gsub("^Sensitive.*", "New", txtData)
txtData <- gsub("^;", "", txtData)
txtData <- gsub(";$", "", txtData)
txtData <- gsub("S;R;I", "Data", txtData)
txtData <- na.omit(txtData)

With the gsub command, specific texts can be replaced (also by ‘nothing’:“”). The function na.omit(txtData) returns the object txtData with listwise deletion of missing values.

# Rename Antibiotics
txtData <- gsub("^Ampic[a-z]{1,}", "AMP10", txtData)        
txtData <- gsub("^Amox/K Clav'ate", "AMC30", txtData)   
txtData <- gsub("^Chloramp[a-z]{1,}", "C30", txtData) 
txtData <- gsub("^Ceftriax[a-z]{1,}", "CRO30", txtData) 
txtData <- gsub("^Cephaloph[a-z]{1,}", "CF30", txtData) #Cephalophin doesn't exist
txtData <- gsub("^Cephaloth[a-z]{1,}", "CF30", txtData) 
txtData <- gsub("^Ciproflo[a-z]{1,}", "CIP5", txtData) 
txtData <- gsub("^Clindam[a-z]{1,}", "CC2", txtData) 
txtData <- gsub("^Cefotax[a-z]{1,}", "CTX30", txtData) 
txtData <- gsub("^Cefurox[a-z]{1,}", "CXM30", txtData) 
txtData <- gsub("^Cefoxit[a-z]{1,}", "FOX30", txtData) 
txtData <- gsub("^Erythrom[a-z]{1,}", "E15", txtData) 
txtData <- gsub("^Gentam[a-z]{1,}", "GM10", txtData) 
txtData <- gsub("^Metroni[a-z]{1,}", "METR", txtData)
txtData <- gsub("^Nalidixic Acid", "NA30", txtData) 
txtData <- gsub("^Norfloxa[a-z]{1,}", "NOR10", txtData) 
txtData <- gsub("^Nitrofur[a-z]{1,}", "FM300", txtData) 
txtData <- gsub("^Oxac[a-z]{1,}", "OX1", txtData) 
txtData <- gsub("^Penic[a-z]{1,}", "P10", txtData) 
txtData <- gsub("^Pyrazinamide{1,}", "PYR", txtData)
txtData <- gsub("^Sulfameth[a-z]{1,}", "SXT25", txtData) 
txtData <- gsub("^Tetrac[a-z]{1,}", "TE30", txtData) 
txtData <- gsub("^Vancom[a-z]{1,}", "VA30", txtData) 
txtData <- gsub("^Imip[a-z]{1,}", "IMP", txtData) 
txtData <- gsub("^Rifamp[a-z]{1,}", "RIF", txtData)  
txtData <- gsub("^Ethamb[a-z]{1,}", "ETB", txtData) 
txtData <- gsub("^Streptom[a-z]{1,}", "STREP", txtData) 

Antibiotics are renamed into easy to use abbreviations. Also, often the antibiotics are mispelled, e.a. Ampicilline / Ampiciline / Ampicyline…

# Function to split vector into list
VectorToList <- function(vec, ind) {
  n = 1
  splitIndex <- which(vec == ind)
  myList <- NULL
  for (i in splitIndex[-length(splitIndex)]) {
    myList[[n]] <- vec[(i+1):(splitIndex[n+1]-1)]
    n <- n+1

Prepare a function which will split the vector (txtData) into a list (myList).

# Function to split vector into data frame
VectorToDF <- function(vec, ind){
  d <- which(vec[[1]] == ind)+1
  l <- length(vec[[1]])
  myDf <- data.frame(
        vec[[1]][d:l], split = ";", fixed = FALSE, perl = FALSE, useBytes = FALSE
    , ncol = 4, byrow = TRUE

The next function is to split the vector and make a dataframe (myDF) from it.

SelectListItem <- function(lst, elnt = 1, lkp) {
  itemVec <- sapply(lst, function(x) x[[elnt]][[1]]) # Create vector with all items from selected list element
  myList <- lst[which(itemVec == lkp)] # Use which function on vector to create vector of indexnumbers and select items from original list

Function to select elements from list.

# Create list of separate vectors
txtList <- VectorToList(txtData, "New") 

‘txtList’ is created with comprehensable chunks of data (lists).

# Create list of lists with results in data frame
newList <- NULL
for (m in 1:length(txtList)) {
  testresDf <- VectorToDF(txtList[m], "Data")
  colnames(testresDf) <- c("Antibiotics", "S", "R", "I")
  newList[[m]] <- list(bacteria = txtList[[m]][1], source = txtList[[m]][2], result = testresDf)

The function VectorToDF aggregates txtList into Dataframe

# Create data frame from list
newDF <- NULL
for (s in 1:length(newList)) {
  cntRows <- length(newList[[s]]$result[,1])
  bact <- rep_len(newList[[s]]$bacteria,cntRows)
  srce <-  rep_len(newList[[s]]$source,cntRows)
  tmpDF <- cbind(Bacteria = bact, Source = srce, newList[[s]]$result)
  newDF <- rbind(newDF, tmpDF)
newDF$Bacteria <- gsub("(^|[[:space:]])([[:alpha:]])", "\\1\\U\\2", newDF$Bacteria, perl=TRUE) # Change all first letters of bacteria names to upper case

Now to make a workable database.

# Correct Bacteria species
newDF$Bacteria <- gsub("?Species", "species", newDF$Bacteria) 
newDF$Bacteria <- gsub("Actinomyces Viscosus", "Actinomyces viscosus", newDF$Bacteria) 
newDF$Bacteria <- gsub("?Fragilis", "fragilis", newDF$Bacteria) 
newDF$Bacteria <- gsub("?Braakii", "braakii", newDF$Bacteria) 
newDF$Bacteria <- gsub("?Farmeri", "farmeri", newDF$Bacteria) 
newDF$Bacteria <- gsub("?Freundii", "freundii", newDF$Bacteria) 
newDF$Bacteria <- gsub("?Koseri", "koseri", newDF$Bacteria) 
newDF$Bacteria <- gsub("?Cloacae", "cloacae", newDF$Bacteria) 
newDF$Bacteria <- gsub("?Faecalis", "faecalis", newDF$Bacteria) 
newDF$Bacteria <- gsub("?Coli", "coli", newDF$Bacteria) 
newDF$Bacteria <- gsub("?Influenzae", "influenzae", newDF$Bacteria) 
newDF$Bacteria <- gsub("?Biotype", "biotype", newDF$Bacteria) 
newDF$Bacteria <- gsub("HEMOPHILUS INFLUENZA", "Haemophilus influenzae", newDF$Bacteria) 
newDF$Bacteria <- gsub("?Ornithinolytica", "ornithinolytica", newDF$Bacteria) 
newDF$Bacteria <- gsub("?Oxytoca", "oxytoca", newDF$Bacteria) 
newDF$Bacteria <- gsub("?Pneumoniae", "pneumoniae", newDF$Bacteria) 
newDF$Bacteria <- gsub("?Terrigena", "terrigena", newDF$Bacteria) 
newDF$Bacteria <- gsub("?Lacunata", "lacunata", newDF$Bacteria) 
newDF$Bacteria <- gsub("?Morganii", "morganii", newDF$Bacteria) 
newDF$Bacteria <- gsub("Mycobacteria Tuberculosis Conplex", "Mycobacterium tuberculosis complex", newDF$Bacteria)
newDF$Bacteria <- gsub("Mycobacterium Tuberculosis Complex", "Mycobacterium tuberculosis complex",newDF$Bacteria)
newDF$Bacteria <- gsub("?Mirabilis", "mirabilis", newDF$Bacteria) 
newDF$Bacteria <- gsub("?Penneri", "penneri", newDF$Bacteria) 
newDF$Bacteria <- gsub("?Vulgaris", "vulgaris", newDF$Bacteria) 
newDF$Bacteria <- gsub("?Aeruginosa", "aeruginosa", newDF$Bacteria) 
newDF$Bacteria <- gsub("SALMONELLA GROUP.*", "Salmonella group", newDF$Bacteria) 
newDF$Bacteria <- gsub("?Paratyphi", "paratyphi", newDF$Bacteria) 
newDF$Bacteria <- gsub("?SALMONELLA PARATYPHI", "Salmonella paratyphi", newDF$Bacteria) 
newDF$Bacteria <- gsub("Boydii", "boydii", newDF$Bacteria)
newDF$Bacteria <- gsub("Dysenteriae", "dysenteriae", newDF$Bacteria) 
newDF$Bacteria <- gsub("SHIGELLA GROUP", "Shigella group", newDF$Bacteria) 
newDF$Bacteria <- gsub("Sonnei", "sonnei", newDF$Bacteria)
newDF$Bacteria <- gsub("Aureus", "aureus", newDF$Bacteria) 
newDF$Bacteria <- gsub("Lugdunensis", "lugdunensis", newDF$Bacteria) 
newDF$Bacteria <- gsub("Saprophyticus", "saprophyticus", newDF$Bacteria)
newDF$Bacteria <- gsub("Agalactiae", "agalactiae", newDF$Bacteria) 
newDF$Bacteria <- gsub("Streptococcus Anginosus/milleri", "Streptococcus anginosus/milleri", newDF$Bacteria)
newDF$Bacteria <- gsub("Pyogenes", "pyogenes", newDF$Bacteria)
newDF$Bacteria <- gsub("4\\(\\ Erwina species)", "4 (Erwina species)", newDF$Bacteria) 
newDF$Bacteria <- gsub("Viridans Streptococcus", "Viridans streptococci", newDF$Bacteria)
newDF$Bacteria <- gsub("Coagulase-negative Staphylococcus species", "CNS", newDF$Bacteria)

The bacteria species names contain many mistakes. They need to be corrected one by one.

## change factors into numeric
newDF$S <- as.numeric(newDF$S)
newDF$I <- as.numeric(newDF$I)
newDF$R <- as.numeric(newDF$R)
## summ all cultures (Sensitive + Intermediate + Resitant)
newDF$N <- newDF$S + newDF$I + newDF$R

The numbers under S, I & R are stored as ‘factors’. They can be changed into numeric with command ‘as.numeric’. ‘N’ is the sum off antibiograms.

###  Tuberculosis and its drugs
myco <- newDF[grep("Mycobacterium tuberculosis complex", newDF$Bacteria), ]
## [1] 334
write.csv(myco, "myco.csv")
newDF <- newDF[-grep("Mycobacterium tuberculosis complex", newDF$Bacteria), ]
## [1] 15989

First make a seperate dataframe for Mycobacteria species. Next is to remove Mycobacterium from the dataframe by using the command ‘-grep’. The commands ‘sum’ show that 334 Mycobacterium antibiograms were removed, leaving 15989 remaining antibiograms.

# Cleaning up Source
## Rename 'W' and 'WOUND' as 'Wound' 
newDF$Source <- gsub("WOUND", "AIAIAI", fixed = TRUE, newDF$Source) 
newDF$Source <- gsub("W", "Wound", fixed = TRUE, newDF$Source) 
newDF$Source <- gsub("AIAIAI", "Wound", fixed = TRUE, newDF$Source) 

newDF$Source <- gsub("BODY FLUID", "Body fluid", fixed = TRUE, newDF$Source)
newDF$Source <- gsub("BLOOD-PEADITRIC", "Blood-pediatric", fixed = TRUE, newDF$Source)
newDF$Source <- gsub("BLOOD-AEROBIC", "Blood-aerobic", fixed = TRUE, newDF$Source)
newDF$Source <- gsub("BLOOD-ANAEROBIC", "Blood-anaerobic", fixed = TRUE, newDF$Source)
newDF$Source <- gsub("EAR CULTURE", "Ear culture", fixed = TRUE, newDF$Source)
newDF$Source <- gsub("NASAL DISCHARGE", "Nasal discharge", fixed = TRUE, newDF$Source)
newDF$Source <- gsub("PUS", "Pus", fixed = TRUE, newDF$Source)
newDF$Source <- gsub("ROUTINE", "Routine", fixed = TRUE, newDF$Source)
newDF$Source <- gsub("SPUTUM", "Sputum", fixed = TRUE, newDF$Source)
newDF$Source <- gsub("STOOL", "Stool", fixed = TRUE, newDF$Source)
newDF$Source <- gsub("Thorat culture", "Throat culture", fixed = TRUE, newDF$Source)
newDF$Source <- gsub("EYE CULTURE", "Eye culture", fixed = TRUE, newDF$Source)

Correct the ‘SOURCE’ and change to lower case

### Merge Blood-anaerobic with Blood-aerobic to simply 'Blood' 
newDF$Source <- gsub("Blood-aerobic", "Blood", fixed = TRUE, newDF$Source)
newDF$Source <- gsub("Blood-anaerobic", "Blood", fixed = TRUE, newDF$Source)

### Merge "Throat culture" with "Throat swab" to simply "Throat"
newDF$Source <- gsub("Throat swab", "Throat", fixed = TRUE, newDF$Source)
newDF$Source <- gsub("Throat culture", "Throat", fixed = TRUE, newDF$Source)

Merging the ‘Blood-aerobic’ and ‘Blood-anaerobic into simply ’Blood’ The same for ‘Throat swab’ and ‘Throat culture’.

### Aggregate double sources and antibiotics.
newDF <- aggregate(cbind(S,I,R,N)~Bacteria+Source+Antibiotics, data=newDF, sum, na.rm=TRUE)
## [1] 15989

Many lines now contain the same Bacterium species with same source Source. These are grouped together with the R, S and I’s summed up.

## Export data
write.csv(newDF, "newDF.csv")

An intermediate raw-data file is made.

Bacteria Source Antibiotics S I R N
CNS Blood AMC30 11 3 6 20
Citrobacter braakii Blood AMC30 4 2 2 8
Enterobacter cloacae Blood AMC30 1 1 3 5
Escherichia coli Blood AMC30 7 14 21 42
Group C Streptococcus Blood AMC30 1 1 3 5
Klebsiella pneumoniae Blood AMC30 2 2 5 9
Pseudomonas species Blood AMC30 1 3 3 7
Staphylococcus aureus Blood AMC30 10 4 2 16
Staphylococcus lugdunensis Blood AMC30 4 2 6 12
Streptococcus pyogenes (Group A) Blood AMC30 4 2 2 8
Actinomyces viscosus Blood-pediatric AMC30 2 1 1 4
Bacteroides fragilis Blood-pediatric AMC30 2 1 1 4
CNS Blood-pediatric AMC30 8 1 1 10
Escherichia coli Blood-pediatric AMC30 3 2 3 8
Group A Streptococcus Blood-pediatric AMC30 2 1 1 4
Klebsiella oxytoca Blood-pediatric AMC30 2 2 6 10
Pseudomonas species Blood-pediatric AMC30 2 2 6 10
The dataframe (first 17 rows).
newDF2 <- read.csv("newDF.csv", sep = ",")
newDF2 <- subset(newDF, select=c(Bacteria, Source, Antibiotics, S, I, R, N))

To start with a fresh new Dataset

### Aggregate on Species.
DFspecies <- aggregate(cbind(N)~Bacteria, data=newDF2, sum, na.rm=TRUE)
Bacteria species with number of antibiograms
Bacteria N
Acinetobacter species 54
Actinomyces viscosus 37
Bacteroides fragilis 8
Beta Hemolytic Non-group A 30
CNS 2585
Citrobacter braakii 64
Citrobacter farmeri 33
Citrobacter freundii 39
Citrobacter koseri 40
Enterobacter cloacae 140
Enterobacter species 68
Enterococcus faecalis 619
Enterococcus species 50
Escherichia coli 2931
Group A Streptococcus 128
Group B Streptococcus 224
Group C Streptococcus 113
Group F Streptococcus 38
Group G Streptococcus 42
Haemophilus influenzae 47
To give an overview on the nu mber of antibiograms per Bacteria species (only first 20 rows).
##### Group species together
##### \\ = space    [a-z] = any character   {,1} = repeat previous 1 or more time
# put together Citrobacter species (C. braakii, farmeri, freundii & koseri)
newDF2$Bacteria <- gsub("Citrobacter\\s[a-z]{1,}", "Citrobacter spp.", newDF2$Bacteria) 
# put together Enterobacter cloacae & species
newDF2$Bacteria <- gsub("Enterobacter\\s[a-z]{1,}", "Enterobacter spp.", newDF2$Bacteria) 
# put together Enterococcus faecalis & species
newDF2$Bacteria <- gsub("Enterococcus\\s[a-z]{1,}", "Enterococcus spp.", newDF2$Bacteria) 
# put together Klebsiella ornithinolytica, oxytoca, pneumoniae, terrigena & species
newDF2$Bacteria <- gsub("Klebsiella\\s[a-z]{1,}", "Klebsiella spp.", newDF2$Bacteria) 
# put together Proteus mirabilis, penneri, vulgaris & species
newDF2$Bacteria <- gsub("Proteus\\s[a-z]{1,}", "Proteus spp.", newDF2$Bacteria) 
# put together Pseudomonas auruginosa & species
newDF2$Bacteria <- gsub("Pseudomonas\\s[a-z]{1,}", "Pseudomonas spp.", newDF2$Bacteria) 
# put together Salmonella group, paratyphi A & B & species
newDF2$Bacteria <- gsub("Salmonella\\s[a-z]{1,}", "Salmonella spp.", newDF2$Bacteria) 
newDF2$Bacteria <- gsub("Salmonella spp.\\s[AB]", "Salmonella spp.", newDF2$Bacteria) 
# put together Shigella boydii, dysenteriae, group A1, sonnei & species
newDF2$Bacteria <- gsub("Shigella\\s[a-z]{1,}", "Shigella spp.", newDF2$Bacteria) 
newDF2$Bacteria <- gsub("Shigella spp.\\sA1", "Shigella spp.", newDF2$Bacteria)
# put together Staphylococcus lugdunensis & saprophyticus as CNS (keep S. aureus seperate)
newDF2$Bacteria <- gsub("Staphylococcus lugdunensis", "CNS", newDF2$Bacteria) 
newDF2$Bacteria <- gsub("Staphylococcus saprophyticus", "CNS", newDF2$Bacteria)
# Rename Group [A-Z] Streptococcus as 'Streptococcus Group [A-Z]'
newDF2$Bacteria <- gsub("Group\\sA\\sStreptococcus", "Streptococcus Group A", newDF2$Bacteria) 
newDF2$Bacteria <- gsub("Group\\sB\\sStreptococcus", "Streptococcus Group B", newDF2$Bacteria) 
newDF2$Bacteria <- gsub("Group\\sC\\sStreptococcus", "Streptococcus Group C", newDF2$Bacteria) 
newDF2$Bacteria <- gsub("Group\\sF\\sStreptococcus", "Streptococcus Group F", newDF2$Bacteria) 
newDF2$Bacteria <- gsub("Group\\sG\\sStreptococcus", "Streptococcus Group G", newDF2$Bacteria) 
newDF2$Bacteria <- gsub("Streptococcus\\sagalactiae\\s[:(:]Group\\sB[:):]", "Streptococcus Group B", newDF2$Bacteria) 
newDF2$Bacteria <- gsub("Streptococcus\\sanginosus[:/:]milleri", "Streptococcus Group F", newDF2$Bacteria) 
newDF2$Bacteria <- gsub("Streptococcus\\spyogenes\\s[:(:]Group\\sA[:):]", "Streptococcus Group A", newDF2$Bacteria)
# Put together Streptococcus species & Viridans
newDF2$Bacteria <- gsub("Streptococcus\\sspecies", "Streptococcus spp.", newDF2$Bacteria) 
newDF2$Bacteria <- gsub("Viridans\\sstreptococci", "Streptococcus spp.", newDF2$Bacteria) 
# In case needed, put all Streptococcus Group [A-Z] together as Beta-hemolytic Streptococci
newDF2$Bacteria <- gsub("Streptococcus\\sGroup\\s[A-Z]", "Beta-hemolytic Streptococci", newDF2$Bacteria) 

Instead of having small groups of Bacteria species, they are merged together into bacteria genus.

# aggregate new groups.
newDF2 <- aggregate(newDF2[,c("S","I","R", "N")], by=list(newDF2$Bacteria, newDF2$Source, newDF2$Antibiotics), "sum")
names(newDF2)[names(newDF2)=="Group.1"] <- "Bacteria"
names(newDF2)[names(newDF2)=="Group.2"] <- "Source"
names(newDF2)[names(newDF2)=="Group.3"] <- "Antibiotics"

The same Bacteria genus rows are merged together with aggregate comment. New names are put in the header.

newDF2$n <- (newDF2$S + newDF2$R)

The sum is calculated for sensitive plus resistant antibiograms.

# When calculating %resistance, leave out the intermediates. 
newDF2$Resis <- ((newDF2$R/(newDF2$S + newDF2$R))*100)
newDF2$Resis <- formatC(newDF2$Resis, digits=3)
newDF2$Resis <- as.numeric(newDF2$Resis)
#sumDF$n <- (sumDF$S + sumDF$R)
## [1] 15989
## [1] 13073

For this study, the resistance rate is calculated from the sum of sensitive plus resistant cultures, leaving the intermediate out.

newDF3 <- newDF2[newDF2$n > 6,]

After keeping out the intermediates, also groups are left out that contain only 6 or less cultures. Setting the threshold on 6 is on one hand ambiguous. However, after checking all the group-size, it was observed that a particular large proportion of ‘small groups’ was removed when setting the threshold on 7 or more cultures per group.

### new dataset without SOURCE, aggregated again ####
Plot7 <- aggregate(newDF3[,c("S","R","n")], by=list(newDF3$Bacteria, newDF3$Antibiotics), "sum")
names(Plot7)[names(Plot7)=="Group.1"] <- "Bacteria"
names(Plot7)[names(Plot7)=="Group.2"] <- "Antibiotics"

Plot7$Resis <- ((Plot7$R/Plot7$n)*100)

Plot7$Resis <- formatC(Plot7$Resis, digits=3)
Plot7$Resis <- as.numeric(Plot7$Resis)

## [1] 10684
## [1] 10684

Now, the dataset is aggregated with antibiotics on the Y-axis and bacteria genus on the x-axis.


Plot7g <- ggplot(Plot7) + geom_point(aes(x = Bacteria, y = Antibiotics, colour = Resis, size = n)) +
  scale_colour_gradient(name = '% resistance', high = "red", low = "green") +
  scale_size(name = 'sample size', range = c(2,9)) +
  xlab('Bacteria groups') + ylab('Antibiotic') +
  theme(text = element_text(size = 12), axis.text.x = element_text(angle=60, hjust=1, size=12) )


And plotting the aggregated dataset.

ESCAPE – page 9

On the second day, after traveling about 30 km, we lie under a haystack. Suddenly we hear the barking of dogs. Straight at us group goes hunting. Germans in hunting attire with dogs. They came to the railroad tracks. Apparently they did not want to go over the tracks, they turned into the drive. Meanwhile, we slipped out of the entanglement. Only the people who working on the field digging potatoes and beet, started to insult us and called out: “Deserters!”. It was in the evening. Quickly we went through the fields and entered in a meadow, where, in the bushes next to a brook, we waited for the night.

We came to the conclusion that this way we won’t get far. More and more surprises on the way. You can fall in one without even knowing when. We decided to try to ride the train. We had 5 marks and this encouraged us. The railway line Halle-Berlin is connected to the narrow-gauge railway line, encircling Berlin from the South. It was almost to the eastern border of Berlin. We decided to take this route and get outside Berlin, where the former Polish-German border seemed close to us. We arrived at the small railway station on the Elbe. We purchased tickets to the next station to the other side of the river. We expected that these 5 marks for this purpose would be used up. It turned out that tickets were much cheaper. We still have 2 mark, for which we bought a beer, and the rest for bread rolls. After an hour, the train came. We set off in the direction of Berlin. On the train was mandatory blackout. It was very beneficial for us. There wasn’t any control on the train. We drove to our station for which we bought the tickets. Had to get off, but inside the train, so warm, pleasant. We stayed sitting and made the kilometres while outside the wind and rain whistled. We did not get off.

The closer we got to Berlin, the more travellers got on the train. Mostly military. An officer asked me about something. I pretended to be asleep. He did not ask me anything more. We eventually got to Potsdam. Almost everyone got out. We also headed to the station, but the view controllers and the military startled us on time. Discreetly we retreated to the other side of the train. Rails, jump over the fence and we ended up on the street. It was about 23 hours. We wanted to get out of town, but in no way could not find the right way. We went astray for about four hours. In the end, we rested in a park with tall trees. A light rain fell.

At dawn, we looked at each other with pity. We looked like two paupers. Enough for anyone seeing us, at once to be recognised as fugitives.

We moved on further exploring a way out of the city. The city began getting more traffic. Right at the checkpoint we saw gendarmes. We sat on a bench and thought about what to do next. Two gendarmes clearly glared at us, but did not hooked on. Skulls on our caps and collars deterred everyone.

Page 1

Page 2

Page 3

Page 4

Page 5

Page 6

Page 7

Page 8

ESCAPE – page 8

We decided to go for it. In the beginning we went off-roads. Crossing fields and through the forests. We avoided villages and people. In the morning we arrived at stacks of grain in the clearing. Further march was impossible. We hid in a pile of straw. A little sleep, meditating on our fate. Hunger began to tease us. We strengthen ourselves on raw carrot and cabbage and waited for the night. We could not go by roads. Our compass were the stars. We had bad luck, because for the whole three-week trip the weather was bad. Rain or cloudy nights did not allow us to get a good sense of direction. After three days of walking we decided to figure out where exactly we were going. We went to a village to read signposts for direction and place names. We had assumed that these three nights we walked for 100 km. It turned out that we are only 20 km from the place of escape and were walking back in the direction of the camp.

On the edge of the forest we entered the fenced area, were we could not get out. A large German shepherd ran to us, sniffed and walked away. He saw a German uniform, but did not sense who it got in it. There was a flash light. We saw the mast, and the Nazi flag. Nearby stood a police station. Despite the lack of strength with incredible speed we were outside the fence – to get as far as possible.

Sometimes we lied through the whole day in haystacks. In the fields we saw farmers plowing. Soggy patches, mud and rains forced us to take risks. We decided to march along roads, on which cars were moving. The direction of our march led to Berlin. Food we gained in different ways.

In different ways we struggled through Germany. Only a novelist could describe our journey, strewn with thousands of surprises.

One evening we reached some village. In one of the houses the light was on. We approached, of course, weapons in hand. A large family was speaking Ukrainian. We called the host. We told him to bring a loaf of bread and 5 Mark. He brought it. We gave him a pack of cigarettes. Both sides were happy.

Mostly we walked between the hours of 20 pm to 4 am, because then the Landwache descended from their posts. We got a long way. We reached Halle. Bypassing the city from the North, we encountered some dugout. We went to one of them and to our surprise we noticed the gun in the stands and the bunks full of soldiers, both sides completely full. One soldier apparently doing night duty gave salute and wanted to report something. We asked only for the way, of course in a opposite direction, and we left. I think they were an outposts anti-aircraft artillery.

Page 1

Page 2

Page 3

Page 4

Page 5

Page 6

Page 7

ESCAPE – page 7

On 7 October 1944, our Kommandoführer celebrated his birthday. It was a Saturday. From early morning people congratulated him. There was no share from our part in it. For this occasion, Bolek devoted all cookies from the packages from his fiancee.

In the afternoon, our guards went to the owner of the buildings, a young German woman, for ‘a treat’. Her husband was in the army, so she consoled herself when she could, with our Kommandoführer.

In the evening the whole company, already ‘tipsy’, went in the direction of the village, leaving only two guards, also being tipsy, to guard the prisoners. One guard was checking the building going around from the top and the other went by the lower side. We were still not locked up in the cell – apparently because of the birthday celebration. So we were able to walk around the ground floor of the warehouse. The Prisoner from Netherlands, ‘Pibel’ (nicknamed because of his small posture) they made sandals. Others wrote letters. Kap Martin went out to the backyard to a German woman he fancied.

A crazy opportunity. We went on the ramp. The guard walked and growled something to himself. Probably he wanted to go to sleep, and there he had to guard. Without wasting time I winked to Bolek. From the ramp he jumped on Fritz’ his head and with one blow he felled him. We shoved him under the ramp and stripped him to the shirt. Bolek quickly put his uniform on and took the gun. We moved towards the second guard. He did not stop us as he thought that his colleague was approaching. We managed to overpower also this guard with one blow. Now we were the new the owners of the uniforms. The rifle we did not take, only the handgun, which later provided us many big favours.

As quick as lighting we jumped into the fields and meadows, in the direction of the forest, away from the warehouse. The first moment in freedom was crazy. After a short time it turned out that we lacked strength. Somehow we jumped over a ditch and stopped for a moment. We saw a herd of grazing cows. It looked like an army ready for a raid. It is hard to imagine how frightened we were. Already we thought it was a manhunt for us. Luckily it was only an illusion. Bolek and I kissed each other for good fortune to our journey… to Poland.

What happened in the camp after we fled, was described to me by mate Molik after the war. The germans alerted all the nearby villages. They occupied the buildings that we renovated. For defence they called the local Landwache. They put around machine guns and they waited. They thought we would come back with reinforcement, to rescue the other prisoners.

Escaping was easily. But what next? From one we knew, back to the camp is impossible. Either we reach homeland or we die. In no case we should fall into their claws alive. It would for sure mean death in wildest agony….

Page 1

Page 2

Page 3

Page 4

Page 5

Page 6

ESCAPE – page 6

The repairs continued over time . No one was in no hurry. Neither the Kommandoführer was in a hurry to leave this secluded place away from the bombing, nor the SS, nor the gendarmes assigned for protection. After a few days the Kornmandoführer got acquainted with the owner of the buildings, a young German women. He began an affair with her, and we, in the best of our ability, we tried with our work to extend their romance.

In the afternoons and on Sundays we were taken to harvest. We put sheaves in the field. Occasionally, we were allowed to bathe in the stream. We could not complain. Bolek received parcels, which he shared with everyone. Next to us lived French prisoners of war. There were fifteen of them. Every morning, they went to work dressed in their military uniform. They returned late in the afternoon or evening. Often we envied their “freedom”.

After renovating the floors and repairing the roof, we went down to the basement. Because of the raids, it was decided to put the bulk storage as low as possible. We started digging at in the rocky bottom where the crane would be stored. It was like working in the mine under electric light. We could not dig too deep, because of constant flooding from groundwater, which we had to remove by using a hand pump. We worked in shifts, day and night. The only entertainment at pouring water all-night, was listening to the radio brought by an SS man. This was the period of the Warsaw Uprising. Every day the fighting in Warsaw, every day of the massacre carried out in the heart of Polish. It stirred in us a passion for revenge. Our hearts breaking for our fighting countryman. Our hands tightened to fist ready to kill the animals personified in the SS. There were moments that I had to withstand the urge to kill an SS with his own weapon. I deliberated, however, and waited for a better opportunity.

I became restless, taciturn and only looking for sedation at workg. Sunday came. It was the end of September 1944. Three of us gathered: Bolek Maciaszek, Molik and me. We started a long discussion. The main topic of our discussion was, escape, as soon as possible. Certainly the Warsaw Uprising will trigger reprisals against the Poles. For sure we will be driven to the camp. Faith already known. One way or the other, it ends in death. Molik was of the opinion that we needed to arrange civilian clothes. Apparently, he already made efforts with the French soldiers. Stubbornly he stuck to that plan. But that would only bring us in trouble, because it is difficult to trust people you do not know. How would it be organised? We did not know the French who would provide us the clothes. Our lives would be hanging on a hair. We could not find a solution, the more that Molik was not fully determined. We decided to flee, together with Bolek. The deadline was not agreed. We only waited for an opportunity. And an opportunity came.

Page 1

Page 2

Page 3

Page 4

Page 5


ESCAPE – page 5

For the next transport we got called up again. I knew that I won’t be able to avoid the transport every time.

Therefor, I looked for a transport myself. That opportunity arose. A small commando were departing to Braunschweig. To complete the group, they needed a bricklayer. I thought to myself that I can be as well a bricklayer. After all, these big blocks in the camp were also not build by experts. So I volunteered as a mason at Kapo Martin. Also I covered for Bolek Maciaszek and we got accepted and included for the drive out.

I left the camp in Neuengamme on May 3, year 1944. I did not assumed to go back there ever again. Fortunately. Because before the end of the war, the camp was liquidated: the prisoners were taken to ships which then got bombed. Only a handful were saved.

So to the camp at Braunschweigiem I came. There were Spaniards and French. A prison car took us to work. In the middle of the town we built a barrack. During our stay the town was bombed very often. People got buried under rubble. Even bunkers proved little protection against the bombs.

We were not afraid to die from bombs. Each bombing elicited great joy from us. For us, what was bombing compared to be killed by the wheelbarrow, get a boot on the neck and suffocate or to drown in the muddy trench, or, at best, be shot like a dog.

Construction proceeded quickly and efficiently and soon I finished the construction. After a few days we were placed at a small village near Helmstedt. Here we fix the warehouses of the SS that were crumbling from the bombing.

Me as ‘bricklayer’, was told to fix the chimney. At first I thought that this wouldn’t be a too difficult job. I was wrong. I pretended to be an expert, but could not use a trowel. Soon I had to go through the exam. I got exposed. I was not sent to the camp, what I feared most. Instead, I was changed in function: I became an assistant in construction, and masons were brought from the village. They were two old Germany civilians. Together with Molik,we brought the bricks, stirring the lime and carried “miszung” up. The job was not the worst; it was far from the camp were we were constantly being routed up “Los … los …” Sometimes only Kapo Martin hunted us, but when we “bought” him some products from parcels, he calmed down.

Page 1

Page 2

Page 3

Page 4


A month ago, during an interview for a new position at the European Commission, I was asked if I could deal with the infamous bureaucracy. I looked at them… and laughed… and laughed. Guys, I work in Ethiopia!

So now, I sold my car and the ownership needs to be transferred. A two minute procedure in most countries. In Ethiopia, day two and I’m still stuck in bureaucratic madness. I feel like I’m in Franz Kafka’s wet dream.

Step one.

Drive to the road authorities where the car is registered. Luckily, it’s in Addis Ababa and not in Axum or something. At the entrance, together with the new owner and three witnesses, I need to fill in this selling-agreement document. Later, the tax is calculated over the selling price. The selling price is below a certain threshold, therefor, the authorities fixed a selling price for us.

The witnesses can be arranged on the spot for a small compensation. If I want to bypass the lines at the road authorities, a witness said, he could arrange it for 1000,- etb. Not negotiable because many people then need to be paid. I refused as I came prepared with a very thick novel.

After a couple of hours in line, I was summoned to a window. A minute later I was told to come back tomorrow. Closing time…

Step two

The selling of the car needs to be authenticated by the court at a notary’s office, or something. I am married and therefore I’m fucked. Literally and figuratively.

Step … oh fuck it…

  • My wife has to be at the notary in person. Check.
  • I need to present a marriage certificate. Check
  • The certificate needs to be in English. Check
  • The certificate needs to be stamped and signed by the Netherlands ministry of foreign affairs in the Hague. Check
  • The certificate needs to be stamped and signed by the Ethiopian embassy in Brussel. Check
  • The certificate needs to be stamped by the Ethiopian ministry of foreign affairs. Check
  • The Ethiopian stamp was older then 6 months, so i needed to get a new stamp. oookaaaay
  • The certificate was just over 2 years old SO THEY REFUSED TO STAMP IT…

…aaaand the usual YOU GO AWAY! Yes, I am trying. I am trying.

to be continued.

ESCAPE – page 4

New victories on the fronts inclined to the side of opponents of the Third Reich. Planes constantly bombed Germany. In July of the same year, raids bombed Hamburg terribly. More frequent alarms wreaked panic among the Germans. Prisoners helped sorting out Hamburg after the raids. They brought all sorts of information about the damage done by the phosphorous bombs, etc. The smoke of the burning city obscured our camp.

At the same time course in the camp had eased a little. Although Lagerführer Mayer got replaced by Lagerführer Thumann from Majdanek, he tightened discipline, but did not managed to turn the camp into an abattoir of people. We went to work normally, but all of us felt that the end of the criminals-reign is imminent.

Beside the brick factory, we set dozens of poles in such a way that it brought cover and rest all day over excavated pits while waiting for the end of the war. One person was standing watch and to alert us if necessary. Then we worked with redoubled energy. It worked successfully for a long time. But the pitcher goes as far until the ear doesn’t tear off. Once, before the end of the work we went in a group and we started to talk about our experiences. Suddenly, unexpectedly arrived the Lagerführer. He wrote the name of the commando and my number as the guardian of the group. Knocked on the whole. It has not helped explaining that we were only gathering for ending the shift and such. It was in April 1944.

On the evening roll, my name was call out and I had to present myself for the whole camp. I was told to bow my head, which got tied to the stool together with my hands. Two of the strongest camp prisoners whipped me more than 25 times over my behind. I saw all the stars in the sky, but gave not even a whimper. The Sturmführerowi did not enjoyed it and therefor ordered to repeat the portion. Of course, he ordered to lash faster and with more force. This time, I not even felt the pain. My-continued silence brought the Sturmführer into a frenzy of rage. Apparently he did not want to loose face – the called to end the appeal, and I had to be escort the shed next to the kitchen. There, he only changed the executioners. Again, I received my portion. After that, they released be to the block hut.

Please try to imagine, how I moved myself to my hut. Józio Ślaski and Bolek Maciaszek took me under the arms and brought me to the bunk. There they washed off my blood and put compresses on me. For three weeks I could not sit, and I could only sleep on my stomach.

So our commando got the attention of the Sturmführer and the next transport has been designated to go to ‘Dritte’. They herded us to the bathhouse, where a medical examination was scheduled. I got out accidentally by being in the dispensary and avoided transportation. Also, most of my friends managed to escape from the bathhouse.


Go to

Page 1

Page 2

Page 3

ESCAPE page 3

Page 3

After a so called quarantine period, during which it was forbidden to lay contact with the old inmates of the camp, we got separated under different commandos. I was assigned to Zaunbaukommando. Our kapo was Johann Schmidt, an elderly man, a communist. I got a manageable job in the construction of the fence. We put high poles, similar to Auschwitz. Another group pulled wires and set barbed wires. Several times plans for the fence changed, so that we were also moving poles. The work was prolonged. It was an advantage, since good work was to be respected.

After some time, the political branch began checking our personal data. Letters we sent to all the places of birth and residence, requesting to carefully check the personal data. It turned out that many of us have foreign names. Back came the replies that this or that had long since been dead. They began to call us to the political department. Many persons taken did not return to us. My friend, with whom I worked, gave the name of Dobija. It turned out that his name was Kazimierczak and was a lieutenant in the Polish Army during the interwar period. Not uncovered in Auschwitz until the poor man came here. Leaving Auschwitz he thought of escape, this time he stood at the precipice. What finally happened to him, I do not know, because in the meantime I left the camp.

Autumn of 1943, our working commando was next to a brick factory. Here I met several colleagues from the Messap commando. Mostly they were Poznanians, for example. Miecio Krauze from Wrzesnia, near Poznan. Spychała under Miedzychód and many others places.

At the brickyard there was the Klinkerwerkkommando. It was one of the toughest commandos in the camp. Every day we watched as they were herded, beaten and kicked. Even worse than this Elba commando. Work in this commando finished off mass of prisoners, as they continuously worked in the water.

On Sunday, we also worked at the excavation for the new building. The work was hard everywhere, and hide from it was not possible. The camp at Neuengamme, however, differed substantially from Auschwitz. People here did not die en masse. Occasionally there were hanging, shooting, but not wholesale slaughter. Kapo’s, Vorarbeiters, were recruited mainly from the Communists. The SS may even been worse than Auschwitz, but they had no helpers in finishing off people. Many prisoners went on wires and perished from electrocution.

The commando for the construction of the fence continued through the year with varying degrees of luck. From time to time I received beating with the whip or fist, but not experienced it as bad as in the previous camp.

Go to page 1
Go to page 2
Go to page 4