Caution to reader: this blog post is 3 months or older. Blog posts older than three months may contain details about the Hack Reactor program that are no longer accurate. Please refer to other pages on our website to confirm current information and email us with questions.
The recent news regarding Ebola highlighted the difficulty we have in tracking the spread of infectious diseases and retroactively identifying people at risk, once a patient has been diagnosed. Epidemiologist at Harvard School of Public Health Eric Feigl-Ding, PhD, and Hack Reactor staff member Ryan Stellar have been developing a different, more effective system that combines epidemiology and technology. Stellar worked with a team of five Hack Reactor students to build an app that could, one day, save lives.
The idea behind Germ Theory, built by Hack Reactor students Supriya Bhat, Kevin Meurer, Jose Merino, Jameson Gamble and Ryo Osawa, and Bronwen Marshall-Bass, a UI Designer at Storm8, is to gather location data from users’ phones to identify high-risk areas and compute the likelihood that a given user has been infected.
"What makes Germ Theory unique is that it integrates special epidemiology risk algorithms for infection and contagiousness," Dr. Feigl-Ding explains.
The app also generates a heat map of areas at high risk for infection, so that users can take precautions. The app is careful not to publicize the identity of specific infected users. There is both a browser-based app and a mobile version.
"Outbreak and epidemics are inherently tied to social network and geographic networks, whether locally or globally," says Dr. Feigl-Ding, who was previously involved as whistle blower for Vioxx drug risks, and led big data projects on obesity and mortality in Major League Baseball, and social networks and health contagion. "As modern viruses can now propagate and travel thousands of miles by plane, train, or car -- we need modern tools for epidemiology and public health. This is the challenge that Germ Theory is set to solve."
The app could be an effective tool in fighting a wide range of infectious diseases, such as influenza, pertussis (whooping cough), or measles, and could even be used to locate the source of food poisonings.
“The problem is that there is no app in place to help track and prevent the spread of disease in real time,” notes Gamble. “Say there’s an area of high risk, we wouldn’t be able to identify those areas.”
There are a number of technical challenges involved in this, first and foremost that the number of data points in play grows quite rapidly. Hundreds of users will produce millions of data points before long.
“We had to cross-reference every single one of those millions of data points to see if they had crossed an infected user,” Meurer describes.
“This becomes a computational job really fast,” says Stellar.
The team used the Python language, which they were not previously familiar with, but all quickly became proficient using self-study methods learned at Hack Reactor. Python is known for its computational power. The team set up a distributed computing framework using Apache Spark, which allows them to scale efficiently.
“We’d be able to, with further funding, put more machines on the job,” Meurer explains. “Supriya was able to optimize it to cut our initial algorithm’s computational expense by 95%. We tried to optimize for scalable architecture and high precision.”
Despite the incredible amount of data already in play, the team added the capability to find implied data points.
“If we want to find where someone was at 4:05 p.m. and we know where they were at 4:00 p.m. and 4:10 p.m.,” Meurer writes in a blog post, “it will return a tuple of the indexes of 4:00 p.m. and 4:10 p.m. from the array of locations.” Meurer also wrote a post on indexing risk data for individual users.
The app includes a back-end dashboard, perhaps for use by the Center for Disease Control, in which infected users can be tagged.
The app provides a functioning proof-of-concept for the ambitious project, which Feigl-Ding and Stellar will continue to work on in concert with various teams involved in the project.
Germ Theory is being run as a public benefit company. If you are interested in the project, contact Feigl-Ding at firstname.lastname@example.org.
Want to learn to build important apps with cutting edge technologies? Apply to our program, online or onsite today!