Automagic epi curve plotting: part I

As of 24 May 2018, the underlying data schema of the Github repo from which the epi curve plotter draws its data has changed. Therefore, a lot of the code had to be adjusted. The current code can be found here on Github. This also plots a classical epi curve.

One of the best resources during the 2013-16 West African Ebola outbreak was Caitlin RiversGithub repo, which was probably one of the best ways to stay up to date on the numbers. For the current outbreak, she has also set up a Github repo, with really frequent updates straight from the WHO’s DON data and the information from DRC Ministry of Public Health (MdlS) mailing list.1 Using R, I have set up a simple script that I only have to run every time I want a pre-defined visualisation of the current situation. I am usually doing this on a remote RStudio server, which makes matters quite easy for me to quickly generate data on the fly from RStudio.

Obtaining the most recent data

Using the following little script, I grab the latest from the ebola-drc Github repo:

# Fetch most recent DRC data.

current_drc_data <- Sys.time() %>%
  format("%d%H%M%S%b%Y") %>%
  paste("raw_data/drc/", "drc-", ., ".csv", sep = "") %T>%
  curl_fetch_disk("", .) %>%

This uses curl (the R implementation) to fetch the most recent data and save it as a timestamped2 file in the data folder I set up just for that purpose.3 Simply sourcing this script (source("fetch_drc_data.R")) should then load the current DRC dataset into the environment.4

Data munging

We need to do a little data munging. First, we melt down the data frame using reshape2‘s melt function. Melting takes ‘wide’ data and converumnts it into ‘long’ data – for example, in our case, the original data had a row for each daily report for each health zone, and a column for the various combinations of confirmed/probable/suspected over cases/deaths. Melting the data frame down creates a variable type column (say, confirmed_deaths and a value column (giving the value, e.g. 3). Using lubridate,5 the dates are parsed, and the values are stored in a numeric format.


current_drc_data %<>% melt(value_name = "value", measure.vars = c("confirmed_cases", "confirmed_deaths", "probable_cases", "probable_deaths", "suspect_cases", "suspect_deaths", "ruled_out"))
current_drc_data$event_date <- lubridate::ymd(current_drc_data$event_date)
current_drc_data$report_date <- lubridate::ymd(current_drc_data$report_date)
current_drc_data$value <- as.numeric(current_drc_data$value)

Next, we drop ruled_out cases, as they play no significant role for the current visualisation.

current_drc_data <- current_drc_data[current_drc_data$variable != "ruled_out",]

We also need to split the type labels into two different columns, so as to allow plotting them as a matrix. Currently, data type labels (the variable column) has both the certainty status (confirmed, suspected or probable) and the type of indicator (cases vs deaths) in a single variable, separated by an underscore. We’ll use stringr‘s str_split_fixed to split the variable names by underscore, and join them into two separate columns, suspicion and mm, the latter denoting mortality/morbidity status.

current_drc_data %<>% cbind(., str_split_fixed(use_series(., variable), "_", 2)) %>% 
                 subset(select = -c(variable)) %>% 
                 set_colnames(c("event_date", "report_date", "health_zone", "value", "suspicion", "mm"))

Let’s filter out the health zones that are being observed but have no relevant data for us yet:

relevant_health_zones <- current_drc_data %>% 
                         subset(select = c("health_zone", "value")) %>% 
                         group_by(health_zone) %>% 
                         summarise(totals = sum(value, na.rm=TRUE)) %>% 
                         dplyr::filter(totals > 0) %>% 

This gives us a vector of all health zones that are currently reporting cases. We can filter our DRC data for that:

current_drc_data %<>% dplyr::filter(health_zone %in% relevant_health_zones)

This whittles down our table by a few rows. Finally, we might want to create a fake health zone that summarises all other health zones’ respective data:

totals <- current_drc_data %>% group_by(event_date, report_date, suspicion, mm) 
                           %>% summarise(value = sum(value), health_zone=as.factor("DRC total"))

# Reorder totals to match the core dataset
totals <- totals[,c(1,2,6,5,3,4)]

Finally, we bind these together to a single data frame:

current_drc_data %<>%

Visualising it!

Of course, all this was in pursuance of cranking out a nice visualisation. For this, we need to do a couple of things, including first ensuring that “DRC total” is treated separately and comes last:

regions <- current_drc_data %>% use_series(health_zone) %>% unique()
regions[!regions == "DRC total"]
regions %<>% c("DRC total")

current_drc_data$health_zone_f <- factor(current_drc_data$health_zone, levels = regions)

I normally start out by declaring the colour scheme I will be using. In general, I tend to use the same few colour schemes, which I keep in a few gists. For simple plots, I prefer to use no more than five colours:

colour_scheme <- c(white = rgb(238, 238, 238, maxColorValue = 255),
                   light_primary = rgb(236, 231, 216, maxColorValue = 255),
                   dark_primary = rgb(127, 112, 114, maxColorValue = 255),
                   accent_red = rgb(240, 97, 114, maxColorValue = 255),
                   accent_blue = rgb(69, 82, 98, maxColorValue = 255))

With that sorted, I can invoke the ggplot method, storing the plot in an object, p. This is so as to facilitate later retrieval by the ggsave method.

p <- ggplot(current_drc_data, aes(x=event_date, y=value)) +

  # Title and subtitle
  ggtitle(paste("Daily EBOV status", "DRC", Sys.Date(), sep=" - ")) +
  labs(subtitle = "(c) Chris von Csefalvay/CBRD ( - @chrisvcsefalvay") +
  # This facets the plot based on the factor vector we created ear 
  facet_grid(health_zone_f ~ suspicion) +
  geom_path(aes(group = mm, colour = mm, alpha = mm), na.rm = TRUE) +
  geom_point(aes(colour = mm, alpha = mm)) +

  # Axis labels
  ylab("Cases") +
  xlab("Date") +

  # The x-axis is between the first notified case and the last
  xlim(c("2018-05-08", Sys.Date())) +
  scale_x_date(date_breaks = "7 days", date_labels = "%m/%d") +

  # Because often there's an overlap and cases that die on the day of registration
  # tend to count here as well, some opacity is useful.
  scale_alpha_manual(values = c("cases" = 0.5, "deaths" = 0.8)) +
  scale_colour_manual(values = c("cases" = colour_scheme[["accent_blue"]], "deaths" = colour_scheme[["accent_red"]])) +

  # Ordinarily, I have these derive from a theme package, but they're very good
  # defaults and starting poinnnnnntsssssts
  theme(panel.spacing.y = unit(0.6, "lines"), 
        panel.spacing.x = unit(1, "lines"),
        plot.title = element_text(colour = colour_scheme[["accent_blue"]]),
        plot.subtitle = element_text(colour = colour_scheme[["accent_blue"]]),
        axis.line = element_line(colour = colour_scheme[["dark_primary"]]),
        panel.background = element_rect(fill = colour_scheme[["white"]]),
        panel.grid.major = element_line(colour = colour_scheme[["light_primary"]]),
        panel.grid.minor = element_line(colour = colour_scheme[["light_primary"]]),
        strip.background = element_rect(fill = colour_scheme[["accent_blue"]]),
        strip.text = element_text(colour = colour_scheme[["light_primary"]])
DRC EBOV outbreak, 22 May 2018. The data has some significant gaps, owing to monitoring and recording issues, but some clear trends already emerge from this simple illustration.

The end result is a fairly appealing plot, although if the epidemic goes on, one might want to consider getting rid of the point markers. All that remains is to insert an automatic call to the ggsave function to save the image:

Sys.time() %>%
  format("%d%H%M%S%b%Y") %>%
  paste("DRC-EBOV-", ., ".png", sep="") %>%
  ggsave(plot = p, device="png", path="visualisations/drc/", width = 8, height = 6)


The cronR package has a built-in cron scheduler add-in for RStudio, allowing you to manage all your code scheduling needs.

Of course, being a lazy epidemiologist, this is the kind of stuff that just has to be automated! Since I run my entire RStudio instance on a remote machine, it would make perfect sense to regularly run this script. cronR package comes with a nice widget, which will allow you to simply schedule any task. Old-school command line users can, of course, always resort to ye olde command line based scheduling and execution. One important caveat: the context of cron execution will not necessarily be the same as of your R project or indeed of the R user. Therefore, when you source a file or refer to paths, you may want to refer to fully qualified paths, i.e. /home/my_user/my_R_stuff/script.R rather than merely script.R. cronR is very good at logging when things go awry, so if the plots do not start to magically accumulate at the requisite rate, do give the log a check.

The next step is, of course, to automate uploads to Twitter. But that’s for another day.

References   [ + ]

1. Disclaimer: Dr Rivers is a friend, former collaborator and someone I hold in very high esteem. I’m also from time to time trying to contribute to these repos.
2. My convention for timestamps is the military DTG convention of DDHHMMSSMONYEAR, so e.g. 7.15AM on 21 May 2018 would be 21071500MAY2018.
3. It is, technically, bad form to put the path in the file name for the curl::curl_fetch_disk() function, given that curl::curl_fetch_disk() offers the path parameter just for that. However, due to the intricacies of piping data forward, this is arguably the best way to do it so as to allow the filename to be reused for the read_csv() function, too.
4. If for whatever reason you would prefer to keep only one copy of the data around and overwrite it every time, quite simply provide a fixed filename into curl_fetch_disk().
5. As an informal convention of mine, when using the simple conversion functions of lubridate such as ymd, I tend to note the source package, hence lubridate::ymd over simply ymd.

Ebola: a primer.

After this post was published, a lot of people have asked me to do a Reddit AMA, where I could answer some questions from a wide audience. The AMA has concluded by now, but you can read the questions and answers here.


As I’m writing this, the beginnings of what could well be a major outbreak are raging in Bikoro territory, Equateur province, in the northeast of the Democratic Republic of the Congo (DRC). Recent news indicate that Mbandaka, the capital of Equateur and home to a busy port and a million people, has now reported cases as of 17 May. The death toll has reached 25 as of the time of writing, and it’s anyone’s guess how bad it’ll get – having learned from the unexpectedly extensive devastation of the West African Zaire ebolavirus outbreak (2013-16), everybody is preparing for the worst case scenario. Me and ebolaviruses have a long relationship, going back over a decade – I sometimes tend to wistfully remark that I know more about virion protein (VP) 24 of the Zaire ebolavirus (EBOV) than I know about some of my own family members. The reverse of the medal is that reading some of the nonsense in the press is borderline physically painful. I’ve assembled these resources for interested laypeople – especially journalists intending to comment on the Bikoro outbreak, in hopes that it will somewhat reduce misunderstandings.

Some taxonomy pedantry for starters

To start with, a point of pedantry: there are multiple ebolaviruses, so technically, ‘Ebola virus’ is a misnomer. Viral taxonomy is a complex thing, governed largely by the International Committee on the Taxonomy of Viruses (ICTV). The latter has preliminarily determined the taxonomy of filoviruses to look as follows:1

  • Family Filoviridae
  • Genus Ebolavirus
    • Species Bundibugyo ebolavirus (BDBV)
    • Species Reston ebolavirus (RESV or RESTV)
    • Species Sudan ebolavirus (SUDV)
    • Species Taï Forest ebolavirus, formerly Côte d’Ivoire ebolavirus (TAFV)
    • Species Zaire ebolavirus (EBOV or ZEBOV)
  • Genus Marburgvirus
    • Species Marburg marburgvirus (MARV)

By far the most important of these are EBOV and SUDV. These have been responsible for almost all major outbreaks – TAFV had only one single human case (CFR:2 1/0, 0%), RESV killed a lot of monkeys3 but a number of humans, despite seroconverting,4 did not fall ill. SUDV is generally regarded as somewhat more benign than EBOV, with a CFR around 50% (range 41-65%, discounting the 2011 Luweero case, where the single patient died). EBOV is the type species of ebolavirus, and it commonly has mortalities up to 93%. It is almost definite that the current outbreak in the DRC is an EBOV outbreak.

Viral species are further subdivided into strains. This is important for ebolaviruses, EBOV in particular, because there seems to be an emerging divergence. Typically, ebolavirus outbreaks claim up to 3-400 lives at most, tend to be over in 3-4 months and are fairly localised. Because non-RESV ebolaviruses, at least in humans, need contact with bodily fluids, long chains of transmission are rare. The 2013-16 West African outbreak, however, seems to have upended this hypothesis. That outbreak lasted almost twelve times the average for all known outbreaks until then, and claimed more lives than all known ebolavirus outbreaks (since the index outbreak in Yambuku, DRC, in 1976) put together. Why this was the case is a bit of a mystery, but there is now an understanding that EBOV strains that are more similar to the Mayinga (EBOV/May) strain isolated in 1976 are different from strains more similar to the Makona strain (EBOV/Mak), which was the prevalent strain in the West African outbreak.

Background and history

Courtesy of SIB/ViralZone.

Ebolaviruses belong to the family of filoviridae, so named for their threadlike appearance – they are among some of the longest viruses, reaching a length of up to 14,000nm and a width of approximately 80nm. The genome of ebolaviruses is relatively simple, approximately 19,000 base pairs long, and stored as a single-strand negative sense RNA, making ebolaviruses, and all other filoviridae, (–)ssRNA or Baltimore V viruses. This is significant as negative-sense single-strand RNA viruses need to be translated into positive-sense RNA by RNA polymerase, and therefore aren’t directly infectious.

Ebolaviruses, and other filoviruses, are probably pretty old – in fact, the study by Taylor et al. (2014) has found genetic fossils5 of EBOV-like VP35 in the same location of several cricetid rodents’ (voles and hamsters) genomes, suggesting that ebolaviruses have diverged from marburgviruses around the time the common ancestor of hamsters and voles lived, sometime around the miocene (16-23 million years ago).6

The Yambuku mission hospital’s record for Mr Mabalo, a school teacher, who was the first recorded human case of Ebola Virus Disease, dated 26 August 1976. Mr Mabalo would eventually succumb to EVD on 06 September.
Photo courtesy of Guido van der Groen/ITM Antwerp.

We also know that EBOV only relatively recently diverged from other ebolaviruses (sometime in the last century), but the first acknowledged outbreak of an ebolavirus took place in 1976 in Yambuku, in what was then Zaïre and is today the DR Congo. The story of this outbreak is extensively told in a retrospective article by Joel Breman and a number of others who have been present at the initial outbreak, written four decades later. Arguably, we saw the emergence of a physiologically and epidemiologically different strain of EBOV during the West African EBOV epidemic, too – at least in the wild, EBOV/Mak behaved very differently from EBOV/May: characterised by long chains of transmission, a somewhat lower CFR7 and a much longer epidemic duration with a significantly larger number of cases – indeed, the 2013-16 outbreak claimed more lives than every single known filoviral outbreak since the first recorded filoviral epidemic, the 1967 Marburg outbreak, put together. Recent evidence seems to suggest that infection with EBOV/Mak does seem to exhibit some significant differences from the previously known strains that are clinically different to the point that they might explain the difference between the 2013-2016 West African outbreak and previous epidemics, which typically were regionally limited, originated in central Africa (Sudan and Zaire) rather than the coastal states of the Gulf of Guinea and lasted a few months with no more than 3-400 cases.8

Worth reading:

  • Two of the protagonists of the 1976 Yambuku outbreaks have written amazing autobiographies that are worth reading. No Time to Lose, by Peter Piot, is a fascinating book, although most of it – like Peter Piot’s career – is devoted to STDs, especially the fight against AIDS. His colleague and countryman, Guido van der Groen, has also written an engaging and well-written memoir, On the Trail of Ebola.
  • Murphy, F.A. (2016): Historical perspective: what constitutes discovery (of a new virus)? In: Kielian, M. et al. (eds)., Advances in Virus Research95:197-220. – What’s it like to discover a virus? Fred Murphy, whose transfer electron micrograph graces the header of this blog  post and has become inextricably associated with ebolaviruses, was working as CDC’s chief viropathologist in 1976, and if not a father of EBOV’s discovery, he is at the very least its godfather. His experiences with Ebola specifically are summarised in section 5.8 of the chapter.
  • Tropical medicine professor and ID physician David Brett-Major‘s book, A Year of Ebola, is an up-close-and-personal account of a year of the 2013-2016 West African outbreak, and the challenges that rendering assistance in the chaos of such an outbreak. For those unfamiliar with what a major, multi-party public health intervention involves, this book is a must-read.
  • A good and somewhat lighthearted starter is my interview with Devon from the Bugs, Blood and Bones podcast: part 1 | part 2. This discusses many of the principal points you should know about ebolaviruses, especially the reason we can’t simply eliminate ebolaviruses as easily as, say, smallpox.

The (proteomic) nature of the beast

In its octameric ‘ring’ or ‘crown’ configuration, VP40 is a regulator of RNA viral transcription. Author’s figure.

Ebolaviruses are remarkably simple for all the destruction they’re capable of. To understand the issues that curing ebolavirus infections raises, it’s important to understand how the virus itself is constructed and how it operates on a molecular level. The ebolavirus genome encodes seven proteins: a nucleoprotein (NP), a RNA polymerase (L), the glycoprotein GP, and four viral proteins (VPs): VP24, VP30, VP35 and VP40 (sometimes referred to as the matrix protein). For this reason, some of Ebola’s viral proteins ‘moonlight’ – that is, they fulfill multiple functions, depending on their polymerisation state.

  • The overall structure of the virion is given by the ebola matrix protein or VP40. As a hexamer looking a bit like the S-shaped Tetris piece,9 it’s responsible for the structure of the virion, while as a crown-shaped octamer wrapped around the RNA, it regulates RNA transcription. The matrix protein’s main purpose, other than serving as a physical outer shell, is to connect the nucleocapsid with the target cell’s membrane, allowing penetration. VP40 also gives ebolaviruses the characteristic structure. For this reason, and the fact that it also coordinates some aspects of the viral lifecycle – in particular virion assembly and ‘budding’, that is, egress from infected cells –, it’s being considered as a therapeutic target.10
    As a hexamer, VP40 is the primary matrix protein of filoviral virions.
  • The RNA is surrounded by a dynamic nucleocapsid, made up of VP35, VP30 and VP24. The purpose of this is to store and, at the necessary time, deliver, the genetic payload. The nucleoprotein NP is wrapped around the RNA genome.
  • VP24 is also used to disrupt the innate immune system, specifically the STAT1 signalling pathway. Normally, in response to viral infections, interferons phosphorylate the STAT1 protein, which then binds to karyopherin alpha (KPNA). Karyopherin alpha is an ‘importin’, a shuttle protein. Once STAT1 is bound to KPNA, it is ferried to the nucleus, and stimulates gene transcription. VP24 selectively tricks this: it binds competitively to KPNA, so that STAT1 cannot bind to it. In a sense, VP24 is hijacking the cell’s internal shuttle system, preventing an adequate immune response but maintaining the ability to use the system for its own purposes.
  • L, or RNA-dependent RNA polymerase, is required because ebolaviruses are negative-sense single strand RNA viruses, and thus a complementary, positive sense strand needs to be generated for transcription.
  • GP, the ebolavirus glycoprotein, is perhaps the most essential part of the internal machinery of an ebolavirus. GP is responsible for infecting new cells, and for a cytopathogenic effect on endothelial cells – in other words, GP damages the cells that line blood vessels in particular and has been observed to cause endothelial cell loss. This in turn results in the haemorrhagic symptoms that characterise EVD’s haemorrhagic stage.11

Ebola virus disease (EVD) and pathophysiology

Human and primate ebolavirus infection (regardless of species or strain) causes Ebola Virus Disease (EVD), sometimes referred to as Ebola haemorrhagic fever (EHF). EVD is more accurate as the well-known haemorrhagic manifestations are far from ubiquitous (about half the cases at best).12

Illustration courtesy of T.W. Geisbert and H. Feldmann.

EVD begins with nonspecific signs – like a bad flu: after an incubation time of about 4 days to two weeks, fatigue, fever, loss of appetite and muscle aches set in, along with vomiting, diarrhoea and more vomiting. Despite its apparent simplicity, ebolaviruses carry out a complex and multifactorial propgramme of destruction:

  1. Prodromic stage: In the early, prodromic stage, the viral protein VP24 inhibits interferon type I and II signalling, effectively cutting the communication lines of the immune system and allowing the virus to proliferate in peace. During this time, the patient may be asymptomatic or have nonspecific symptoms like headaches, fatigue and a mild
  2. Early disseminating stage: Ebolaviruses preferentially attack certain white blood cells that allow it to spread through the lymphatic system, in particular dendritic cells, macrophages and monocytes, and later on spread prolifically through liver cells and the adrenal gland, causing liver damage (leading to clotting issues and the diagnostically significant elevated transaminase levels). The death of the infected monocytes (called a cytopathic or cytopathogenic effect) causes immunosuppression through low lymphocyte counts and releases pro-inflammatory molecules, in particular TFN-alpha, and the interleukins IL-6 and IL-8, creating a state somewhat reminiscent of sepsis. GP also assists in inhibiting neutrophils, white blood cells crucial for immune reactions, from activating.
  3. Vascular endothelial damage: Glycoprotein (GP) in vascular endothelial cells (the cells lining the walls of blood vessels) destroys the integrity of blood vessels around three to four days after infection, leading to bleeding.
  4. Liver injury and DIC: GP, when expressed in the liver, causes liver damage, and also suppresses the production of integrins. Integrins are transmembrane proteins that allow cells to attach to the various molecules outside the cell, which is crucial for clotting. Together, these lead to a paradoxical state called disseminated intravascular coagulation (DIC): small blood clots form in the capillaries all over the body, leading to ischemia (lack of blood supply) and organ failure, while at the same time using up all the clotting factors and platelets. This is responsible for the later haemorrhagic manifestations.
  5. At this stage, patients that do not recover succumb to the combined effects of multi-organ failure, volume loss from diarrhoea and massive haemorrhage.

Together, these have a damaging effect on vascular endothelial cells, the cells lining the walls of blood vessels, leading to internal bleeding and the haemorrhagic manifestations.

Eventually, the haemorrhagic (bleeding) symptoms – bleeding under the skin, uncontrollable bleeding from blood draws, bleeding into the sclerae (the whites of the eyes), blood in vomit and faeces – may begin, largely because damage to the liver and depletion of clotting factors.

Death usually occurs 8-14 days from onset of symptoms. Contrary to popular perception, death is actually not caused by bleeding out – the blood loss is quite simply not enough to be fatal, even in the haemorrhagic cases. Rather, ebolaviruses turn the body’s own inflammatory cascades on overdrive, causing a state that’s somewhat similar to septic shock. Survivors begin to feel better around 10-14 days after first symptoms, but recovery is slow and can take months.

Worth reading:

  • Geisbert, T.W. and Feldmann, H. (2011): Ebola haemorrhagic fever. Lancet 377:849-62. – a great summary, while intended for professional audiences, it is probably the most comprehensive article on what we know about ebolaviruses. Nb. that it was written before the 2013-16 West African outbreak.
  • Munoz-Fontela, C. and McElroy, A.K. (2017): Ebola virus disease in humans: pathophysiology and immunity. In: Mühlberger E. et al. (eds.), Marburg- and Ebolaviruses. Springer, 2017. – This is a rather pricey book, and aimed at public health experts, but is probably the best summary of post-West African outbreak scholarship on all things ebola- and marburgviruses. For those writing for a professional audience or desiring a more comprehensive understanding of the underlying biology, it’s a must-have. Disclaimer: many of the chapter authors and editors are friends and/or valued colleagues.

Ecology and reservoir hosts

Finding the reservoir host of ebolaviruses and Marburg marburgvirus has consumed an incredible amount of scientific effort during the 1980s and 1990s, with relatively little to show for it. It was clear from the very beginning that ebolaviruses are zoonotic – that is, there’s a reservoir host, an animal in which the virus can persist and multiply without causing disease. This explains why it sometimes appears as if ebolaviruses (and Marburg) came out of nothing, wreaked havoc, then disappeared as fast as they appeared. Using RT-PCR and qRT-PCR, it’s now clear that that the reservoir hosts are bats, and a number of species, in particular certain fruit bats. Bats have a complex interferon (IFN) system, much more complex than the human or NHP13 IFN system. This seems to give them an ability to manage the infection in their bodies (see the Kühl and Pöhlmann paper below).There’s a global increase of bat-borne pathogens causing outbreak – these are almost all viral (the related henipaviruses Hendra virus in Australia and Nipah virus in Malaysia/Bangladesh, the coronaviruses MERS-CoV and SARS-CoV, rabies, etc.). As humanity, in need of arable land across the world to feed the exploding population and mineral resources like diamonds and coltan, encroaches upon traditional habitats of Chiropteran species, especially the caves and jungles where they roost, interactions between bats and humans will become more and more frequent, raising the risk of infections. Clearly a strategy to manage ebolaviruses must also be able to manage the ecological problem of habitat loss.

Worth reading:

  • Kühl, A. and Pöhlmann, S. (2012): How Ebola Virus Counters the Interferon System. Zoon Pub Health 59:116-131. – great paper, but tough to digest for non-technical audiences. For those who prefer a slightly more relaxed version, see the next link.
  • Fagre, A. (2016): Why don’t bats get Ebola? Scientific American Guest Blog, July 18, 2016. – same topic as above, just for more popular audiences.
  • On ecology, the chapter Ecology of Filoviruses in Mühlberger et al. (eds.), op cit, is worth reading.
  • For understanding zoonotic diseases, Spillover by David Quammen (2013) is an excellent read. Ebola: The Natural and Human History of a Deadly Virus, written in 2014, updates his chapter on ebolaviruses – largely EBOV – for an audience hungry for information after the 2013 West African outbreak. – Quammen has a great style and writes well, without Preston’s sensationalism. If this is your first foray into writing about, or trying to understand, filoviral zoonoses, both books are very much worth reading. The added value of whatever was added to the Ebola chapter in Spillover in Ebola: The Natural and Human History is, to me at least, dubious. It is, however, a much shorter read for those pressed for time.

Treatment and prophylaxis

So far, no particular agent has proved to be conclusively effective against EBOV infection after symptoms have emerged, and treatment is mainly symptomatic. It is haunting that the state of the art in treating filoviral haemorrhagic fever 2018 is not much different from the approach Margaretha Isaäcson and her team used on the three Marburg cases – Cases 1 and 2, Australian hitchhikers, and Case 3, a nurse who took care of both Cases 1 and 2 – in 1975:

At this stage, it became clear that there would be no specific treatment that could be relied upon to attack and kill the virus responsible for this infection. The girls’ only chance of survival would, therefore, depend on meticulous, ongoing monitoring of various organ functions and managing clinical problems in anticipation or as they presented themselves. This approach required a large team in support of the core formed by the clinicians responsible for the daily evaluation, treatment and general management of the patients.
– from the notes of Margaretha Isaäcson, 26 February 1975

A model Ebola Treatment Centre. The three wards each segregate low-likelihood, high-likelihood and confirmed cases. The orange building in the lower right corner is a field morgue. Double fencing allows patients’ families to communicate with their loved ones from a safe distance, without needing to breach isolation. Illustration courtesy of MSF.

Treatment is focused on volume and electrolyte replacement (intravenously or using oral rehydration salts aka ORSs), pain management and blood transfusions to combat blood loss. To manage disseminated intravascular coagulation and the ensuing coagulopathy, heparin and clotting factors have both been used, with mixed success. Intensive care can greatly increase survival chances, but in low resource settings this remains a challenge. The West African outbreak has demonstrated the utility and sustainability of three-segment (four, if you count the morgue) Ebola Treatment Centres (ETCs, see image) as an easy and inexpensive way to reduce nosocomial spread (spread within a healthcare facility). The model ETC design, which separates confirmed, low-probability and high-probability cases, reduces the risk to lower probability cases by separating them from higher-probability or confirmed cases. One of the painful lessons of the 1976 Yambuku outbreak was that reuse of medical equipment, in particular of hypodermic needles and syringes, can greatly contribute to the spread of ebolaviruses, and this makes overcoming the logistic challenges of dealing with an ebolavirus outbreak in an isolated and ill-accessible location all the more acute.

There are no specific treatment options for EVD that have stood the test of time and rigorous trials. A few of the most often discussed specific treatment options are outlined below:

  • Convalescent plasma has for a long time been the best hope against filoviral infections, but is not always accessible and has its own risks, such as residual viral loads. It also doesn’t keep too well (like liquid plasma, it must be kept between +2ºC and +6ºC). It is taken from survivors of the infection using plasmapheresis, a process quite similar to haemodialysis except in this case, the dialysate is retained. This contains antibodies that the patient developed following his infection. Convalescent plasma also contains a range of other antibodies, and these can cause various immune reactions – importantly, convalescent plasma must come from healthy individuals (‘donor qualified’, i.e. adequate haemoglobin levels and free from bloodborne pathogens) that are compatible with the recipient’s blood type. In regions where ebolaviruses are endemic, this is one of the easiest treatment options to implement, but the efficacy of convalescent plasma may be hampered by epitopic dissimilarity (that is, if the strain the donor recovered from and the strain the recipient is suffering from are too dissimilar, the antibodies won’t work). The WHO has worked out a detailed guideline on using convalescent plasma, which also highlights one of its greatest drawbacks: it works best for patients with early stage disease.
  • ZMapp is a biological drug, specifically a monoclonal antibody. Monoclonal antibodies are artificially created equivalents of the antibodies in convalescent plasma. The great benefit of ZMapp over convalescent plasma is that it only contains antibodies specifically against EBOV, and as such the risk of immune reactions is negligible. ZMapp’s efficacy is quite controversial, as due to the scarcity and cost of the drug, the number of patients treated was too low to really be able to draw conclusions from.
  • Brincidofovir is a broad spectrum antiviral against DNA viruses, such as cytomegalovirus, smallpox and herpes simplex. For some reason, its lipid moiety appears to have shown some efficacy against EBOV, even though EBOV is not a DNA virus but a (-)ssRNA (negative single sense RNA, Baltimore Group V) virus. However, a very small (n=4) Phase II trial in Liberia was prematurely cancelled, and all enrolled subjects died of EVD, after the manufacturer decided to stop pursuing EVD as a target for brincidofovir.
  • Favipiravir is also a broad spectrum antiviral, with specific activity against RNA viruses, initially developed against influenzaviruses. The JIKI trial was conducted in Gueckedou, the ground zero of the 2013-2016 outbreak, in September 2014, and has indicated some efficacy for patients with less severe disease (low to medium viral loads). Controversially, because the criteria weren’t met for a proper randomised clinical trial in late 2014, the JIKI trial was historically controlled, and this has drawn extensive professional criticism.

There are a range of ebolavirus vaccines, most specifically targeting EBOV. The two currently available vaccines are rVSV-ZEBOV and the cAd3-ZEBOV vaccine (colloquially referred to as the NIAID vaccine).

  • rVSV-ZEBOV is a somewhat quirky viral vaccine. It is intended to create antibodies to GP, the virion glycoprotein of EBOV. Normally, vaccines contain an adjuvant and an antigen, such as a viral protein (e.g. the HPV vaccine contains the protein shell, called the L1 major capsid protein, of various HPV strains). The immune system then recognises this as foreign and generates antibodies against them. rVSV-ZEBOV works a little different – it actually contains a live virus, VSV (vesicular stomatitis virus or Indiana vesiculovirus, a distant relative of rabies), which is harmless in humans but causes a disease very similar to foot and mouth disease in cattle and horses. This recombinant (hence r) VSV expresses small amounts of GP, to which the body then generates antibodies. In a ring vaccination trial called Ebola ça Suffit-GRV Trial, 7,284 participants were recruited in Guinea and a parallel trial with the rVSV-ZEBOV vaccine was carried out in Sierra Leone by the CDC (the STRIVE VSV-EBOV trial). The trial faced complex ethical dilemmas. Placebo control would clearly not be ethically (or politically) acceptable, so instead the trial participants were randomised into two cohorts, some of whom received the vaccine after a three week delay. However, due to encouraging early results, the control arm was effectively dispensed with and everybody was vaccinated. The National Academies of Sciences, Engineering and Medicine published an report in which they assessed the trials, and found that much like in the case of favipiravir, it’s hard to do assess a life-saving treatment in the middle of a lethal epidemic. The WHO has announced that it will use the rVSV-ZEBOV vaccine to ring vaccinate contacts of known, laboratory confirmed cases, from 21 May onwards, and has a stock of 7,000 doses of the vaccine in cold storage in Kinshasa. Ring vaccination has been used successfully in the eradication of smallpox, and there is ample evidence to its efficacy and the ability to control further spread, provided contact tracing is successful.
  • cAd3-ZEBOV aka the NIAID/GSK vaccine is a similarly structured vaccine, but derived from a chimpanzee adenovirus, ChAd3. Like the rVSV-ZEBOV vaccine, the cAd3-ZEBOV vaccine expresses glycoproteins from EBOV and, depending on configuration, SUDV.14 This vaccine is considered less ‘ready for use’, and while it’s been found safe, it is not clear what efficacy it will ultimately have.

Worth reading:

  • On Ebola treatment centres, Chowell, G. and Viboud, C. (2015): Controlling Ebola: key role of Ebola treatment centres. Lancet Inf Dis 15(2):139-141. – a good outline of the cheap yet surprisingly effective three-stage treatment centre model.
  • Medecins Sans Frontieres, who have pioneered the three-stage treatment centre structure, have a great interactive guide to a treatment centre that reflects the idea of segregation by infection probability quite well.
  • David Kroll’s article in Forbes asks the question on everyone’s mind: how will we know if the Ebola drugs used during the West African outbreak have indeed worked?Most patients received multiple different treatments, and the sample size was quite small – most of the patients in Africa have only received the usual symptomatic treatment. Clearly, there’s a huge ethical issue, and one of health equity, involved here: many drugs, high costs, many patients, and a willingness to give patients every possible chance at survival. The moral imperatives and the practicalities of the situation make it hard for researchers to gauge efficacy of individual treatments.
  • Adebamowo, C. et al. (2014). Randomised controlled trials for Ebola: practical and ethical issues. Lancet 384:1423-1424. – when it comes to clinical trials for diseases with high mortality, complex ethical issues arise. This makes research and the traditional methods of evaluating treatments difficult. Randomised controlled trials, the gold standard when it comes to assessing the efficacy of medical interventions, are difficult to conduct in the middle of a devastating epidemic, and raises complex ethical issues.
  • National Academies of Sciences, Engineering and Medicine (2017). Integrating Clinical Research into Epidemic Response: The Ebola Experience. The National Academies Press, Washington, DC. – this is probably the best overview of the current state of the art when it comes to vaccines for EBOV after the West African outbreak. Chapter 4 is a must-read for vaccines, and chapter 3 for clinical treatments. Furthermore, Chapter 2 is a great in-depth exploration of the Scylla and Charybdis of doing high-quality, evidence-based clinical research in the middle of an epidemic with a high-mortality viral disease.

Keeping up to date & other stuff to read

The situation is currently quite rapidly evolving, and information flow is often quite restricted due to unreliable communication links. Perhaps the best source of information about what’s going on at the time is ProMED-mail, run by ISID. I also tweet pretty prolifically about the emerging crisis and other public health issues (you can find me at @chrisvcsefalvay), and of course you can find all my blog posts and public appearances that involve filoviruses on this page. I’m also always happy to answer questions, here in the comments thread or using the contact form (if you’re writing for a publication, please use the contact form).

I hope this primer to ebolaviruses was helpful, and if you intend to write about the subject, you now feel better informed. Please feel free to raise any questions that you think remain open in the comment thread below!

References   [ + ]

1. See ICTV page on filoviral taxonomy.
2. Case-fatality rate, i.e. the number of cases versus the number of deaths. Typically given as case/fatality, percentage – e.g. 10/3 (30%) means 10 cases, 3 died, 30% CFR.
3. This is the outbreak dramatised in Preston’s Hot Zone.
4. Seroconversion refers to developing antibodies against a pathogen. It does not mean actually becoming sick as well, just that the body has encountered the pathogen and has responded to it.
5. A fossil gene is what happens when a virus does not infect or kill the host, but rather incorporates bits and pieces of the viral genome into its own.
6. Taylor, D.J. et al. (2014). Evidence that ebolaviruses and cuevaviruses have been diverging from marburgviruses since the MiocenePeerJ 2 Sep 2014, 2:e556.
7. Case-fatality ratio or case-fatality rate, which is a misnomer, since it’s neither a rate nor a ratio in the epidemiological sense. Normally given as a percentage, it is defined as \frac{C_d}{\Sigma C}, where C_d describes all deceased cases and \Sigma C is defined as the total of all cases that meet the inclusion criteria.
8. Versteeg, K. and Geisbert, T.W. (2017). Infection with the Makona variant results in a delayed and distinct host immune response compared to previous Ebola virus variantsScientific Reports 7:9730.
9. Officially, a ‘mirrored Z free tetromino‘. Except, of course, it’s a hexomino.
10. Madara, J.J., Harty, R.N. et al. (2015). The multifunctional Ebola virus VP40 matrix protein is a promising therapeutic targetFuture Virol (10)5: 537-546.
11. Yang, Z.Y., Nabel, G.J. et al. (2000). Identification of the Ebola virus glycoprotein as the main viral determinant of vascular cell cytotoxicity and injury. Nature Med 6(8):886-9.
12. The descriptions of ebolaviruses or even Marburg turning patients into bags of goo or exploding with blood, largely inspired by Preston’s Hot Zone, are wildly inaccurate. Still, it’s one nasty disease.
13. Non-human primate.
14. The vaccine is intended to express glycoproteins from both when in production use. The current Phase II UK trials, conducted by Oxford University’s Jenner Institute, are done with a variant expressing only EBOV GP.