Monday, April 20, 2015

Synthetic Biology and Bad MATLAB

Have you ever worked with a student who just can't seem to write good MATLAB code? Bad MATLAB tends to name variables with uninformative labels, and reuses variables for lots of purpose. It's often called "spaghetti code", because whenever you change one thing in the code, it affects things all over the program. Good MATLAB code only uses variables for a single purpose, so that changes can be made without far-reaching consequences. So what does this have to do with synthetic biology?

Let's think about molecular signals as variables. Nature isn't an engineer, so nature didn't really care to name molecules in any sort of logical manner. Neither 'LasR' nor its amino acid sequence reveals anything about its purpose. But we are engineers, so we ought to do better. If we want to really progress the field of synthetic biology, we should find some way to logically choose signal molecules that indicate their own purpose to the engineer.

More pressing however, is the extensive reuse of signals. Again, nature designs life in a highly iterative process, and doesn't care much to use unique signals. Instead, we should ensure that signals are only used for a single purpose. First, this requires building a family of molecules that doesn't affect nature, yet is completely absent in nature. Second, this requires rigorously adhering to a code of unique signal assignment, so that different groups don't use the same signal molecules.

Like in MATLAB, we can significantly ease the engineering process for biological engineers by separating concerns. Unlike MATLAB, we'll never have debugging tools quite as good as just dropping the semicolon...

No comments:

Post a Comment

Thank you for commenting. This is a moderated site and so all posts are reviewed before they are visible. We appreciate your patience while this review is underway.