{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Problem 4.4: XOR gates\n", "\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We worked out regulatory functions for regulation of a single gene Z by two effectors X and Y based on AND or OR logic. We found that when we considered the concentration of effectors as \"inputs\" and the resulting concentration of Z as an \"output\" we could think of the regulatory architecture as a logic gate.\n", "\n", "\n", "**a)** We used a formalism to where we wrote down the states of the promoter region (unbound, bound with X, bound with Y, bound with both X and Y) and the respective weights of each state. We then came up with a regulatory function by summing the weights for which the promoter may bind and dividing by the sum of the weights. Now, we'll work backwards. Write down an expression for a dimensionless regulatory function $f(x,y)$ that would correspond to an XOR gate. The truth table for an XOR gate is below.\n", "\n", "X | Y | Z\n", ":---:|:---:|:----------:\n", "0 | 0 | 0\n", "0 | 1 | 1\n", "1 | 0 | 1\n", "1 | 1 | 0\n", "\n", "Based on this expression what would have to be true of the promoter architecture in terms of how the effectors may bind? Do you think this scenario would be well-modeled by the regulatory function you wrote?\n", "\n", "**b)** Sketch a genetic circuit that can function as an XOR gate where two effectors may only work on a single gene with truth tables represented in the chapter (only AND and OR logic with activators and repressors, not the XOR logic above). That is, X and Y are inputs and the output is the concentration of a single gene product Z. You will likely need to have more than just X, Y, and Z in your circuit. Clearly explain the thinking behind the circuit you chose. Are there feedforward loops in your circuit? How about feedback loops?\n", "\n", "**c)** Demonstrate that your proposed circuit works by modeling its dynamics with a system of ODEs. Specifically, plot the response of the circuit to:\n", "\n", "- A step from $x = y = 0$ to $x = y = \\text{high}$\n", "- A step from $x = y = \\text{high}$ to $x = y = 0$\n", "- A step from $x = y = 0$ to $x = \\text{high}$, $y = 0$\n", "- A step from $x = y = 0$ to $x = 0$, $y = \\text{high}$\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
" ] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.10" } }, "nbformat": 4, "nbformat_minor": 4 }