Eric J. Ma


I use code to solve big biological data problems. tools: deep learning, network analysis, non-parametric and Bayesian statistics. domain expertise in life sciences: molecular biology, microbiology, genetics and genomics, and a bit of ecology.

Education Highlights


peer reviewed papers


thousand dollars won in research grants


data science workshops taught


I graduated in 2010 from UBC Vancouver in the Integrated Sciences program with Distinction. Areas of concentration were Microbiology & Biochemistry. Founding member of the UBC iGEM Team.

I will defend my doctoral thesis in the Department of Biological Engineering at MIT in April 2017. Areas of work: network science, ecology & evolution, deep learning and biochemistry. Served as a peer reviewer for PLOS Computational Biology.

Research Interests

Network Statistics

I developed a network-based algorithm for finding “reassortant” (mixed lineage) influenza viruses, and used it to show that gene shuffling is over-represented in influenza host switches, leading to a 1st author publication in PNAS.

Deep Learning

I am currently applying graph convolutional neural networks on protein structures to learn drug resistance from structure. Future work include learning evolutionary embeddings on which virus sequences evolve, to map and predict viral evolutionary trajectories.

Open Source Contributions

I released nxviz, a rational network visualization library based on matplotlib.

I contributed documentation fixes to the matplotlib plotting library.

I contributed the VBar and HBar glyphs to the bokeh plotting library.


Network Analysis Made Simple

I have taught network analysis fundamentals workshops at PyCon, SciPy, and PyData. Topics covered include the use of the NetworkX API, basic graph characterization, visualization, and graph traversal algorithms.

Data Testing

I will teach data testing practices at PyCon 2017. Topics include using property-based testing, visual diagnostics for data completeness, detection of outliers, and automated testing frameworks.

Skills Snapshot

skill beginner intermediate advanced
python 4
scipy stack 4
data viz 3
network science 4
machine learning 2
deep learning 1
bayesian statistics 2
probabilistic programming 2
javascript 1
html/css 1
Skill level indicated ordinally as "beginner", "intermediate" and "advanced". Number of years of experience rounded off to the nearest integer in years.


Language Proficiency
English Native
Mandarin Proficient
Korean Beginner