Explore Seattle

(Python, Javascript, HTML, CSS) (Github)

Screen Shot 2015-08-06 at 7.56.14 AM

I created an interactive visualization of restaurants in Seattle using D3, Flask, and Bootstrap. Using the Yelp API and a python web scraper I gathered restaurant reviews and information on every yelp-reviewed restaurant in Seattle and stored the data in MongoDB on an Amazon EC2 instance. I used Apache-Spark to create yelp review summaries, and used the python package textstat to analyze the reading level of reviews. The review summaries, restaurant categorization, rating, and reading level are visualized on a map of Seattle.

Twitter Bot Using NLP to find Gifs


This project creates a Twitter bot that responds to a bot-directed tweet with a gif that expressed the text of the tweet. The bot uses an unnecessarily complicated method to respond to a user’s tweet. It fits the user tweet to a Natural Language Processing topic discovery model called Latent Dirichlet Allocation which has been previously trained on a large bank of random tweets downloaded from twitter. This fit returns a list of topics under which the tweet falls under and then chooses three random topics from the list and searches giphy.com for the tweets. This search returns a gif that is then tweeted back to the user.

KineticRain / Equanemone

(Processing) (Github)
Screen Shot 2015-08-24 at 1.03.36 PM
Equanemone is a three-dimensional LED display. This is a Processing project to control it. It uses PixelPusher to drive the LEDs. I wrote two plug-ins for the display. The plug-in Kinetic Rain takes advantage of embedded motion sensors to allow users to create waves and wave interference by touching the display.

Frisbee Team Maker


A program to sort a CSV file containing stats of Ultimate Frisbee players (player number, rating, height, gender) for a Hat tournament. It will sort the list of players into teams of 5-6 players that are evenly matched.

Base J Modification in Leishmania

(Senior Thesis)

Research conducted independently under the mentorship of Loren Baugh at Seattle Biomedical Research Institute.

Leishmania, a kinetoplastid parasite, causes a wide range of diseases with asymptomatic to lethal pathologies accompanied by widespread human and animal disease, death, and economic loss. Current drugs targeting Leishmania are inadequate due to high levels of toxicity and increasing resistance; there is also no vaccine. Leishmania exhibits an unusual DNA modification – a glucose is added to certain thymine nucleotides – mainly in the telomeric repeat regions of the genomic DNA, but also in strand switch regions (SSRs) and internal transcription termination sites (iTTSs) between polycistronic transcription units (PTUs), where transcription initiation and termination occur. This DNA modification replaces about 1% of thymine (T) in the nuclear DNA with β-glucosylhydroxymethyluracil (base J) through two steps: 1) hydroxylation of thymine to form hydroxymethyluracil, and 2) glucosylation to yield J. Previous studies show that J plays an important role in transcription termination: loss of J causes transcription readthrough at termination sites by RNA pol II and transcription initiation false starts. Extreme loss of J causes Leishmania to die. Using plasmids containing SSR sequences grown episomally in Leishmania cells, it has also been shown that the primary DNA sequence is sufficient to direct J insertion and that an enzyme called JBP2 is required. The focus of my project was to determine the mechanism of J insertion in Leishmania by using Single Molecule Real Time (SMRT) sequencing to identify the positions of J in SSR and telomeric sequences inserted into plasmids grown episomally in Leishmania. The resulting data was used to search for a DNA sequence motif common to J sites that may be the insertion signal for recruiting the enzymes that modify T to J. We found that J modifications in both SSR and telomeric repeat sequences occur with a consistent 12 base pair spacing of a T on opposite strands, with GC-rich sequence in between. Additional experiments will further define the J insertion motif using additional SSR sequences and mutated telomeric repeats sequences, and will address what protein(s) the insertion sequence recruits. Despite the wide reaching impact of Leishmania on global health, little is known about the biological function of base J and the mechanism of transcription termination. Furthering our understanding of the role of J in Leishmania transcription may provide new targets for disease therapies and help explain the origins of transcription regulation in other eukaryotes.