Archive for Blog

Escape – Page 13

Night had fallen. The wind rose and it began to rain. What to do? We do not lose hope. If there are Poles in the camp, then some help will be given to us. I took off the uniform. Only in a sweater, without a hat, I went to the barrack. Bolek stayed for backup. I walked into the barrack. Party on the whole. Harmony plays from ear to ear. Nobody paid attention to me. I got to one of the elder men. It turned out he was from my region. He gave me bread and butter. The second portion I took for Bolek. After a long search, my friend came from under the heap. He dit not give me the map. He probably was afraid. I received a card from him to buy 2 kg of bread. None of the persons, however, could tell me exactly where we were. I went out. Bolek was already impatient.

We continued our journey. We walked along the railroad track. In the morning we came to a city. From the distance there were church towers. It was dark yet, and the ranks of people, with something like arms on their shoulders, were hurrying to the trenches. This made the impression of military manoeuvres, all the more when they started shooting with machine guns, and along the track was advancing an infantry. Under the light bulb we managed to escape to the pine grove. These were just military exercises.

It started to brighten up. Machine guns stopped firing. More and closer to us were the sounds of German commands. I reached out to the edge of the forest and saw straight in front of me the copse marching company of the army. Under the grove they stopped. They spread all the instruments for gun training. The soldiers divided into groups and started the training. Our location was tragic. Exiting into the open field would mean they will detect us. It could end up in a chase. Staying at the spot was also dangerous because during the break in the exercises the soldiers could enter the woods and would notice us. We stayed, however.

As we had predicted, there was a break in the exercises and several Germans entered the grove to help themselves with their physiological needs. We were unnoticed. To our joy, it began to rain. The company stopped the firing training and marched back.

Page 1

Page 2

Page 3

Page 4

Page 5

Page 6

Page 7

Page 8

Page 9

Page 10

Page 11

Page 12

ESCAPE – Page 12

With one jump we were back into the forest and until evening we went and ran in unknown direction. In the evening we went out to the edge of the forest. We noticed two men covering a potato mound. Next to the mound stood a horse and an empty carriage. I went unnoticed under the mound. Having heard Polish talking, I went over. There were two of them. I greeted them in Polish. In the course of the conversation I learned that they are on the job. They promised to give us something to eat and even to sleep. I called Bolek, who at the time provided back-up. We got on the car and still during the light of the day we reached the village. They told us to wait. They were supposed to bring some cooked food. We couldn’t have waited; apparently they were too scared to help us out. After an hour, one of them came and ordered us to flee, because there is inspection. We did not have anything else but to actually march of.

We were so tired that we could not move much forward. We went a few miles, picked up potato leftovers in the field and like piglets stuffed them into us. So we hastened to dawn. It was terribly cold. We could not recognise each other in the morning. Dirty, tired, cold, we went further. The villages were still asleep. At times, there was a rooster’s sound or dog barking. We happened to meet some soldier, but without a word we went on without asking him anything.

For us it was all the same now. We walked all day with small stops. We did not bypass the villages; Either we will come or we will die. We only eat carrots. On the way we found a corn field where we rested and ate a little. By evening we reached a village. Our march stopped by the trenches.

They were freshly dug, which intrigued us so much. Is there an Eastern Front already? We were afraid to go on. We landed in the roadside heap. Terrible cold and wind with rain did not give us any rest. We huddled together to warm ourselves up, but it did not help much.

Dawn. At a distance of 300 m from the heap stood a newly built large barrack. In the distance the village, and near the trenches stretched far away.

For long time no one was seen. Strangely calm. Terrible hunger began to sting us. There was no carrots or cabbage to be found in the vicinity. Around 10 o’clock it stopped raining. Underneath our pile came a boy and started to collect potatoes, which after the rain were easily visible. I went to him. I learned that Poles lived in the barrack, and for a period they were taken by Germans to dig trenches. Today is Sunday, so they do not work. He could not tell us where we were. At my request went to call a better-oriented colleague. Around 15:00 hour his colleague came. He also did not know much or did not want to tell us. He went  out to find and bring a map for which we did not waited.

Page 1

Page 2

Page 3

Page 4

Page 5

Page 6

Page 7

Page 8

Page 9

Page 10

Page 11

 

Page 13

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.

setwd("~/Documents/workspace/R-project/Antibiogram")

# libraries
library(plyr)
library(dplyr)
library(tidyr)
library(stringr)
library(xlsx)
library(ggplot2)
library(knitr)
library(reshape2)
library(scales)
library(knitr)

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)
close(con)
head(txtData)
## [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
  }
  return(myList)
}

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(
    matrix(unlist(
      strsplit(
        vec[[1]][d:l], split = ";", fixed = FALSE, perl = FALSE, useBytes = FALSE
      )
    )
    , ncol = 4, byrow = TRUE
    )
  )
  
  return(myDf)
  
}

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
  
  return(myList)
}

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), ]
sum(myco$N)
## [1] 334
write.csv(myco, "myco.csv")
newDF <- newDF[-grep("Mycobacterium tuberculosis complex", newDF$Bacteria), ]
sum(newDF$N)
## [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)
sum(newDF$N)
## [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.

newDF
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)
sum(newDF2$N)
## [1] 15989
sum(newDF2$n)
## [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)
  

sum(newDF3$n)
## [1] 10684
sum(Plot7$n)
## [1] 10684

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

### MAKE PLOT

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) )

Plot7g

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

SELLING MY CAR IN ETHIOPIA

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.