Algorithms for Organic Chemistry
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Algorithms for Organic Chemistry

September 28, 2018 was when I was first realized the sheer beauty of organic chemistry. Rather than approaching the synthesis and electron pushing on different hydrocarbon compounds and belaboring over this notion of "chemical properties" (which up to this class has really just been a black box with all such musings over s orbitals, sp3 orbitals and the like), I realized the process of organic chemistry reactions (more applicably, drug design and human enzymatic reactions) could all be boiled down to a few rules that could be completed using hard-and-fast algorithms.

Organic chemistry was another data structures and algorithms class.

Moreover, as I started thinking about this some more as I was drawing these hundreds of chemical reactions in my organic chemistry class to the point I started getting bored of it all, I realized I could come up with these algorithms on my own. Gone are the days where chemists teared away their hairs in frustration while staring at complicated black board drawings obfuscated by illegible C's,H's, and O's and all those imperfectly dotted, jagged lines. They could run a computer program and let the computer program spit out all possible configurations of intermediates, transition states, and products from a single reactant structure. Voila! We have infinitely more chemical compounds and more drugs, y'all. This was the new era of chemistry (and life for that matter)!

Of course, after this day of epiphany, I then perused existing research and realized much work has already been done on this subject (a recurring motif for me, and one of my major doubts of going into academia -- don't you hate it when you feel like you've created a single, original thought that nobody in the history of humanity has thought about only then to realize you're late to the game?). However, despite the research that buzzes around me, I'm going to explore these ideas further and infuse it with my own experience. I write these programs first as pseudocode, then transcribed into Python script as a way of documenting the progression of learned organic chemistry rules through the perspective of an algorithmist and the perspective of a second-year undergraduate student "with aspirations of attending medical school." I quote the last part rather humorously because while I do have unabashed dreams of becoming a rock-star neurosurgeon, I take organic chemistry ultimately for the sake of completing what I set out for myself years ago during sophomore year of high school, when I experienced the sheer intellectual pleasure of drawing chemical compounds as both an art and a science for the very first time (under the tutelage of the ever-philanthropic Ms. Debbie Nipar). Much has changed since then, but I still hope to maintain some continuity and narrative in my life's journey.

As the reactions become more complex throughout the course of this semester, I will update the code to reflect this learned complexity (while simultaneously reducing runtime complexity of course), and in this sense, we can get a better appreciation for the evolution and history of organic chemistry discoveries by looking through the code. From this appreciation of the history of past organic chemistry discoveries, we could then gain intuition for which areas look the most promising for future organic chemistry discoveries and devote ourselves accordingly.