20.109(S07): Genome engineering essay

Assignment
You are asked to write a thoughtful, researched essay exploring how a foundational engineering concept (e.g. abstraction, modularity, insulation, standardization, decoupling) can be applied as a design tool for biological engineering. Your lab work with M13 will provide the context for your argument.

Abstract
'''This has been written for you to clarify the assignment. You can include this abstract as your own. '''

To engineer novel biological systems, we need to change the genetic code of existing biological materials, not by making a few changes as current methods allow us to do but rather by making lots and lots of changes in a fast, cheap and reliable way. Just as “plug-ins” provide new or improved functions to existing computer programs, the current tools of molecular biology allow for piecemeal modification to genetic programs, adding functionality but often complexity and clumsiness as well. In this essay I will describe two approaches to biological programming, ad hoc adjustment and complete refactoring, as applied to the simple genome of the bacteriophage M13. With both approaches, I will show how the application of a foundational engineering concept, namely (abstraction, insulation, standardization, decoupling, modularity...choose one), enables more reliable and elegant genetic programming and can give rise to a platform with more flexibility and fewer restrictions.

Introduction
'''From your introduction, your readers expect to find out why your topic is important and why they should be interested in it. To do that, you need to describe the larger context for the work, the ways it’s important, and the specific areas your paper will address. There's no need to hide your main point or approach. At the end of the introduction, the reader should want to learn how the foundational idea you’ve chosen (abstraction, modularity, insulation, standardization or decoupling) serves a useful purpose and affords great opportunity if incorporated among “best practices” for biological engineers, expecting M13 to be the test case they'll follow.''' Launch this section using one of the following quotes, or a personal favorite. Explicitly describe what problem or issue the quote you’ve chosen highlights and how the point applies to genetic programming as well. Next...well, it's really up to you. You could
 * Today, most software exists, not to solve a problem, but to interface with other software. (I. O. Angell)
 * Programming languages should be designed not by piling feature on top of feature, but by removing the weaknesses and restrictions that make additional features appear necessary. (Anonymous, Revised Report on the Algorithmic Language Scheme)
 * Programs for sale: Fast, Reliable, Cheap: choose two. (Anonymous)
 * Think (design) globally; act (code) locally. (Anonymous)
 * Think twice, code once. (Anonymous)
 * Weeks of programming can save you hours of planning. (Anonymous)
 * Any fool can write code that a computer can understand. Good programmers write code that humans can understand. (M. Fowler, "Refactoring: Improving the Design of Existing Code")
 * A program like Microsoft's Windows 98 is tens of millions of lines of code. Nobody can keep that much complexity in their head or hope to manage it effectively. So you need an architecture that says to everyone, "Here's how this thing works, and to do your part, you need to understand only these five things, and don't you dare touch anything else." (C. Ferguson “High Stakes, No Prisoners; Times Business Press”)
 * allow one of the more familiar software disasters to illustrate comparable design problems that can be encountered when making biological materials
 * describe some (but not all) current practices in genetic programming and their limitations
 * introduce M13 as the example you’ve chosen to hack and debug
 * Some ideas you may want to introduce are listed but this list is neither exhaustive nor mandatory.
 * complexity
 * managing complexity
 * simplicity
 * refactoring
 * features of good/bad computer programs
 * features of good/bad genetic programs
 * methods for testing and debugging
 * engineering
 * science
 * understanding
 * standardization
 * dynamics
 * decoupling
 * abstraction
 * evolution
 * usefulness
 * discovery

Body: Parts 1-3
'''In these sections you will build off of your introduction to present M13 as an example of the issues you’ve highlighted. Your readers expect to learn something from what you present; thus, you’ll need to supply ample description as well as an analysis of your lab results. Remember your goal is to make a persuasive argument for the concept of abstraction (or modularity, insulation, standardization, decoupling...) with evidence from your laboratory experience.'''

Part 1
How it’s built: M13 as a test case At the conclusion of this section, the reader should have a good understanding of End this part by highlighting how “engineerable” the natural example seems, and how (abstraction, modularity, insulation, standardization or decoupling) are the key to reliably and predictably accomplishing this.
 * the prevalence and diversity of bacteriophage
 * the M13 life cycle (include a figure if you like)
 * the size and organization of the genome
 * the proteins encoded by the genome structure (include a figure or table if you like)
 * any natural variations to the genome

Part 2
 Build to learn: M13 and piecemeal fixes At the conclusion of this section, the reader should have a good understanding of End this part by commenting on how fast, cheap and reliable this approach proved to be. On the scale of other engineering feats, how ambitious was it? How much expertise was required? How can you imagine making it an easier and more robust engineering task?
 * the application of M13 for phage display, cite at least one successful application of this technique
 * the limitations/variations of phage display
 * the modification to the genome that you performed in lab and what useful purpose it could serve
 * your plaque assay and Western data, be it positive or negative (include a figure and table)

Part 3
 Learn to build: Refactored M13 At the conclusion of this section, the reader should have a good understanding of End this part by commenting on how refactoring compares to ad hoc tweaking and how much or how little promise it holds for building fast, cheap, and reliable biological systems.
 * what refactoring is
 * what the rough draft of refactored M13 tried to do
 * which gene (gII, gIX, gVIII, gIII, or gXI) you carefully refactored and how you approached then solved the specifics of that problem
 * your plaque assay and Western data (when it is available), be it positive or negative (include a figure and table)

Conclusions or Summary
'''In this section, your readers expect you to tie up the concepts you raised in your introduction with the specific examples you’ve described in terms of M13. Most important, you need to supply some “future thinking” about the implications of what you’ve presented, whether for future experimental work or the larger field.'''