{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Tutorial 5: Biophsyical modeling of the *E. coli lac* promoter using Sort-seq MPRA data" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "ExecuteTime": { "end_time": "2021-12-29T17:18:00.644139Z", "start_time": "2021-12-29T17:17:58.975268Z" }, "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "# Standard imports\n", "import numpy as np\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "\n", "# Special imports\n", "import mavenn" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The sort-seq MPRA data of Kinney et al., 2010. The authors in Ref. [1] used fluorescence-activated cell sorting, \n", "followed by deep sequencing, to assay gene expression levels from variant lac promoters in E. coli.\n", "The data is available in MAVE-nn `load_example_dataset` function and it is called `'sortseq'`. " ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "ExecuteTime": { "end_time": "2021-12-29T17:18:00.714827Z", "start_time": "2021-12-29T17:18:00.645223Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Loading dataset 'sortseq' \n", "Sequence length: 75 amino acids\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
setct_0ct_1ct_2ct_3ct_4ct_5ct_6ct_7ct_8ct_9x
0training0100000000AAAAAAAGTGAGTTAGCCAACTAATTAGGCACCGTACGCTTTATAG...
1test0000000010AAAAAATCTGAGTTAGCTTACTCATTAGGCACCCCAGGCTTGACAC...
2test0000001000AAAAAATCTGAGTTTGCTCACTCTATCGGCACCCCAGTCTTTACAC...
3training0000000001AAAAAATGAGAGTTAGTTCACTCATTCGGCACCACAGGCTTTACAA...
4training0000000001AAAAAATGGGTGTTAGCTCTATCATTAGGCACCCCCGGCTTTACAC...
.......................................
50513validation0001000000TTTTGCAGAGTGTCAGCCCACTCATTACGCACCGCAGCCGTTACAC...
50514test0000000010TTTTTATGTGAGTTAGCTCACTCATTCGGCACCCTAGGCTTTACAC...
50515training0001000000TTTTTATGTGAGTTTGCTCACTCATGTGGCACCTAAGGCTTTACGC...
50516training1000000000TTTTTATGTGGGTTAGGTCGCGCATTAGGCACCGCAGGCTTTACCC...
50517training1000000000TTTTTATGTGTGTTTACTCTCTCATTAGGCACTCCACGCTTTACAC...
\n", "

50518 rows × 12 columns

\n", "
" ], "text/plain": [ " set ct_0 ct_1 ct_2 ct_3 ct_4 ct_5 ct_6 ct_7 ct_8 ct_9 \\\n", "0 training 0 1 0 0 0 0 0 0 0 0 \n", "1 test 0 0 0 0 0 0 0 0 1 0 \n", "2 test 0 0 0 0 0 0 1 0 0 0 \n", "3 training 0 0 0 0 0 0 0 0 0 1 \n", "4 training 0 0 0 0 0 0 0 0 0 1 \n", "... ... ... ... ... ... ... ... ... ... ... ... \n", "50513 validation 0 0 0 1 0 0 0 0 0 0 \n", "50514 test 0 0 0 0 0 0 0 0 1 0 \n", "50515 training 0 0 0 1 0 0 0 0 0 0 \n", "50516 training 1 0 0 0 0 0 0 0 0 0 \n", "50517 training 1 0 0 0 0 0 0 0 0 0 \n", "\n", " x \n", "0 AAAAAAAGTGAGTTAGCCAACTAATTAGGCACCGTACGCTTTATAG... \n", "1 AAAAAATCTGAGTTAGCTTACTCATTAGGCACCCCAGGCTTGACAC... \n", "2 AAAAAATCTGAGTTTGCTCACTCTATCGGCACCCCAGTCTTTACAC... \n", "3 AAAAAATGAGAGTTAGTTCACTCATTCGGCACCACAGGCTTTACAA... \n", "4 AAAAAATGGGTGTTAGCTCTATCATTAGGCACCCCCGGCTTTACAC... \n", "... ... \n", "50513 TTTTGCAGAGTGTCAGCCCACTCATTACGCACCGCAGCCGTTACAC... \n", "50514 TTTTTATGTGAGTTAGCTCACTCATTCGGCACCCTAGGCTTTACAC... \n", "50515 TTTTTATGTGAGTTTGCTCACTCATGTGGCACCTAAGGCTTTACGC... \n", "50516 TTTTTATGTGGGTTAGGTCGCGCATTAGGCACCGCAGGCTTTACCC... \n", "50517 TTTTTATGTGTGTTTACTCTCTCATTAGGCACTCCACGCTTTACAC... \n", "\n", "[50518 rows x 12 columns]" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Choose dataset\n", "data_name = 'sortseq'\n", "\n", "print(f\"Loading dataset '{data_name}' \")\n", "\n", "# Load datset\n", "data_df = mavenn.load_example_dataset(data_name)\n", "\n", "# Get and report sequence length\n", "L = len(data_df.loc[0, 'x'])\n", "print(f'Sequence length: {L:d} amino acids')\n", "\n", "# Preview dataset\n", "data_df" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "ExecuteTime": { "end_time": "2021-12-29T17:18:00.735494Z", "start_time": "2021-12-29T17:18:00.715769Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Training set : 30,516 observations ( 60.41%)\n", "Validation set : 10,067 observations ( 19.93%)\n", "Test set : 9,935 observations ( 19.67%)\n", "-------------------------------------------------\n", "Total dataset : 50,518 observations ( 100.00%)\n", "\n", "Train + val set size : 40,583 observations\n", "Test set size : 9,935 observations\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
validationct_0ct_1ct_2ct_3ct_4ct_5ct_6ct_7ct_8ct_9x
0False0100000000AAAAAAAGTGAGTTAGCCAACTAATTAGGCACCGTACGCTTTATAG...
1False0000000001AAAAAATGAGAGTTAGTTCACTCATTCGGCACCACAGGCTTTACAA...
2False0000000001AAAAAATGGGTGTTAGCTCTATCATTAGGCACCCCCGGCTTTACAC...
3False0100000000AAAAAATGTCAGTTAGCTGACTCATTAGGCACCCCTGGCTTTACGT...
4True0000001000AAAAAATGTGAGAAAGCTCACTCCTTTGGCACCGCAGGCTTTACAC...
.......................................
40578True0100000000TTTTGATGTGGGTTTGCTCTCTCTTCAGGCACCCCACGCTTTACGC...
40579True0001000000TTTTGCAGAGTGTCAGCCCACTCATTACGCACCGCAGCCGTTACAC...
40580False0001000000TTTTTATGTGAGTTTGCTCACTCATGTGGCACCTAAGGCTTTACGC...
40581False1000000000TTTTTATGTGGGTTAGGTCGCGCATTAGGCACCGCAGGCTTTACCC...
40582False1000000000TTTTTATGTGTGTTTACTCTCTCATTAGGCACTCCACGCTTTACAC...
\n", "

40583 rows × 12 columns

\n", "
" ], "text/plain": [ " validation ct_0 ct_1 ct_2 ct_3 ct_4 ct_5 ct_6 ct_7 ct_8 ct_9 \\\n", "0 False 0 1 0 0 0 0 0 0 0 0 \n", "1 False 0 0 0 0 0 0 0 0 0 1 \n", "2 False 0 0 0 0 0 0 0 0 0 1 \n", "3 False 0 1 0 0 0 0 0 0 0 0 \n", "4 True 0 0 0 0 0 0 1 0 0 0 \n", "... ... ... ... ... ... ... ... ... ... ... ... \n", "40578 True 0 1 0 0 0 0 0 0 0 0 \n", "40579 True 0 0 0 1 0 0 0 0 0 0 \n", "40580 False 0 0 0 1 0 0 0 0 0 0 \n", "40581 False 1 0 0 0 0 0 0 0 0 0 \n", "40582 False 1 0 0 0 0 0 0 0 0 0 \n", "\n", " x \n", "0 AAAAAAAGTGAGTTAGCCAACTAATTAGGCACCGTACGCTTTATAG... \n", "1 AAAAAATGAGAGTTAGTTCACTCATTCGGCACCACAGGCTTTACAA... \n", "2 AAAAAATGGGTGTTAGCTCTATCATTAGGCACCCCCGGCTTTACAC... \n", "3 AAAAAATGTCAGTTAGCTGACTCATTAGGCACCCCTGGCTTTACGT... \n", "4 AAAAAATGTGAGAAAGCTCACTCCTTTGGCACCGCAGGCTTTACAC... \n", "... ... \n", "40578 TTTTGATGTGGGTTTGCTCTCTCTTCAGGCACCCCACGCTTTACGC... \n", "40579 TTTTGCAGAGTGTCAGCCCACTCATTACGCACCGCAGCCGTTACAC... \n", "40580 TTTTTATGTGAGTTTGCTCACTCATGTGGCACCTAAGGCTTTACGC... \n", "40581 TTTTTATGTGGGTTAGGTCGCGCATTAGGCACCGCAGGCTTTACCC... \n", "40582 TTTTTATGTGTGTTTACTCTCTCATTAGGCACTCCACGCTTTACAC... \n", "\n", "[40583 rows x 12 columns]" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Split dataset\n", "trainval_df, test_df = mavenn.split_dataset(data_df)\n", "\n", "# Show dataset sizes\n", "print(f'Train + val set size : {len(trainval_df):6,d} observations')\n", "print(f'Test set size : {len(test_df):6,d} observations')\n", "\n", "# Preview trainval_df\n", "trainval_df" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Training data are the count columns (10 columns) of the above dataset." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "ExecuteTime": { "end_time": "2021-12-29T17:18:00.738206Z", "start_time": "2021-12-29T17:18:00.736190Z" } }, "outputs": [], "source": [ "# Get the length of the sequence\n", "L = len(data_df['x'][0])\n", "# Get the column index for the counts\n", "y_cols = trainval_df.columns[1:-1]\n", "# Get the number of count columns\n", "len_y_cols = len(y_cols)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Training\n", "\n", "A four-state thermodynamic model for transcriptional activation at *E. coli lac* promoter which proposed in Ref. [1] is trained here using MAVE-NN. \n", "Here, $\\Delta G_R$ and $\\Delta G_C$ are RNAP-DNA and CRP-DNA binding Gibbs free energies and CRP-RNAP interaction energy is represented by a scalar $\\Delta G_I$.\n", "The four-state thermodynamic model is summarized below:\n", "\n", "| microstates | Gibbs free energies | activity |\n", "|:----------------------------------------------|:--------------------------------------|:---------|\n", "| free DNA | 0 | 0 |\n", "| CRP-DNA binding | $\\Delta G_C$ | 0 |\n", "| RNAP-DNA binding | $\\Delta G_R$ | 1 |\n", "| CRP and RNAP both bounded to DNA and interact | $\\Delta G_C+ \\Delta G_R + \\Delta G_I$ | 1 |\n", "\n", "The rate of transcription `tr_rate` has the following form:\n", "$$\n", "tr_{\\text{rate}} = t_{sat} \\frac {\\exp(\\frac{-\\Delta G_R}{kT})+ \\exp(\\frac{-\\Delta G_C-\\Delta G_R-\\Delta G_I}{kT})}{1+\\exp(\\frac{-\\Delta G_C}{kT})+ \\exp(\\frac{-\\Delta G_R}{kT})+ \\exp(\\frac{-\\Delta G_C- \\Delta G_R- \\Delta G_I}{kT})} \n", "$$ \n", "\n", "in which $t_{sat}$ is the transcription rate resulting from full RNAP occupancy. \n", "\n", "Here, the $\\Delta G_C$ and $\\Delta G_R$ are trainable matrices (weights of the neural network) and $\\Delta G_I$ and $t_{sat}$ are trainable scalars.\n", "\n", "To fit the above thermodynamic models, we used the **Custom G-P maps** layer implemented in `'mavenn.src.layers.gpmap'`.\n", "For the detailed discussion on how to use the MAVE-NN custom G-P maps layer, checkout the thermodynamic model for IgG binding by GB1 tutorial." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "ExecuteTime": { "end_time": "2021-12-29T17:18:00.745900Z", "start_time": "2021-12-29T17:18:00.739098Z" } }, "outputs": [], "source": [ "from mavenn.src.layers.gpmap import GPMapLayer\n", "\n", "# Tensorflow imports\n", "import tensorflow as tf\n", "import tensorflow.keras.backend as K\n", "from tensorflow.keras.initializers import Constant\n", "\n", "class ThermodynamicLayer(GPMapLayer):\n", " \"\"\"\n", " Represents a four-stage thermodynamic model\n", " containing the states:\n", " 1. free DNA \n", " 2. CPR-DNA binding\n", " 3. RNAP-DNA binding\n", " 4. CPR and RNAP both bounded to DNA and interact\n", " \"\"\"\n", "\n", " def __init__(self,\n", " tf_start,\n", " tf_end,\n", " rnap_start,\n", " rnap_end,\n", " *args, **kwargs):\n", " \"\"\"Construct layer instance.\"\"\"\n", "\n", " # Call superclass\n", " super().__init__(*args, **kwargs)\n", " \n", " # set attributes\n", " self.tf_start = tf_start # transcription factor starting position\n", " self.tf_end = tf_end # transcription factor ending position\n", " self.L_tf = tf_end - tf_start # length of transcription factor\n", " self.rnap_start = rnap_start # RNAP starting position\n", " self.rnap_end = rnap_end # RNAP ending position\n", " self.L_rnap = rnap_end - rnap_start # length of RNAP\n", "\n", " # define bias/chemical potential weight for TF/CRP energy\n", " self.theta_tf_0 = self.add_weight(name='theta_tf_0',\n", " shape=(1,),\n", " initializer=Constant(1.),\n", " trainable=True,\n", " regularizer=self.regularizer)\n", "\n", " # define bias/chemical potential weight for rnap energy\n", " self.theta_rnap_0 = self.add_weight(name='theta_rnap_0',\n", " shape=(1,),\n", " initializer=Constant(1.),\n", " trainable=True,\n", " regularizer=self.regularizer)\n", "\n", " # initialize the theta_tf\n", " theta_tf_shape = (1, self.L_tf, self.C)\n", " theta_tf_init = np.random.randn(*theta_tf_shape)/np.sqrt(self.L_tf)\n", " \n", " # define the weights of the layer corresponds to theta_tf\n", " self.theta_tf = self.add_weight(name='theta_tf',\n", " shape=theta_tf_shape,\n", " initializer=Constant(theta_tf_init),\n", " trainable=True,\n", " regularizer=self.regularizer)\n", "\n", " # define theta_rnap parameters\n", " theta_rnap_shape = (1, self.L_rnap, self.C)\n", " theta_rnap_init = np.random.randn(*theta_rnap_shape)/np.sqrt(self.L_rnap)\n", " \n", " # define the weights of the layer corresponds to theta_rnap\n", " self.theta_rnap = self.add_weight(name='theta_rnap',\n", " shape=theta_rnap_shape,\n", " initializer=Constant(theta_rnap_init),\n", " trainable=True,\n", " regularizer=self.regularizer)\n", "\n", " # define trainable real number G_I, representing interaction Gibbs energy\n", " self.theta_dG_I = self.add_weight(name='theta_dG_I',\n", " shape=(1,),\n", " initializer=Constant(-4),\n", " trainable=True,\n", " regularizer=self.regularizer)\n", "\n", "\n", " def call(self, x):\n", " \"\"\"Process layer input and return output.\n", "\n", " x: (tensor)\n", " Input tensor that represents one-hot encoded \n", " sequence values. \n", " \"\"\"\n", " \n", " # 1kT = 0.616 kcal/mol at body temperature\n", " kT = 0.616\n", "\n", " # extract locations of binding sites from entire lac-promoter sequence.\n", " # for transcription factor and rnap\n", " x_tf = x[:, self.C * self.tf_start:self.C * self.tf_end]\n", " x_rnap = x[:, self.C * self.rnap_start: self.C * self.rnap_end]\n", "\n", " # reshape according to tf and rnap lengths.\n", " x_tf = tf.reshape(x_tf, [-1, self.L_tf, self.C])\n", " x_rnap = tf.reshape(x_rnap, [-1, self.L_rnap, self.C])\n", "\n", " # compute delta G for crp binding\n", " G_C = self.theta_tf_0 + \\\n", " tf.reshape(K.sum(self.theta_tf * x_tf, axis=[1, 2]),\n", " shape=[-1, 1])\n", "\n", " # compute delta G for rnap binding\n", " G_R = self.theta_rnap_0 + \\\n", " tf.reshape(K.sum(self.theta_rnap * x_rnap, axis=[1, 2]),\n", " shape=[-1, 1])\n", " \n", " G_I = self.theta_dG_I\n", "\n", " # compute phi\n", " numerator_of_rate = K.exp(-G_R/kT) + K.exp(-(G_C+G_R+G_I)/kT)\n", " denom_of_rate = 1.0 + K.exp(-G_C/kT) + K.exp(-G_R/kT) + K.exp(-(G_C+G_R+G_I)/kT)\n", " phi = numerator_of_rate/denom_of_rate\n", "\n", " return phi" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Training the Model\n", "Here we train the model with MAVEN. Note that we initialize the Gibbs energies with random negative values to help the convergence of the training." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "ExecuteTime": { "end_time": "2021-12-29T17:19:13.174626Z", "start_time": "2021-12-29T17:18:00.746634Z" }, "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "name": "#%%\n" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "N = 40,583 observations set as training data.\n", "Using 24.8% for validation.\n", "Data shuffled.\n", "Time to set data: 0.622 sec.\n", "Training time: 357.7 seconds\n", "Model saved to these files:\n", "\tsortseq_thermodynamic_mpa.pickle\n", "\tsortseq_thermodynamic_mpa.h5\n" ] } ], "source": [ "# define custom gp_map parameters dictionary\n", "gpmap_kwargs = {'tf_start': 1, # starting position of the CRP\n", " 'tf_end': 27, # ending position of the CRP\n", " 'rnap_start': 34, # starting position of the RNAP\n", " 'rnap_end': 75, # ending position of the RNAP\n", " 'L': L,\n", " 'C': 4,\n", " 'theta_regularization': 0.1} \n", "\n", "# Set to True to train the model, false to use saved model\n", "if True:\n", "\n", " # Create model\n", " model = mavenn.Model(L=L,\n", " Y=len_y_cols,\n", " alphabet='dna',\n", " regression_type='MPA',\n", " gpmap_type='custom',\n", " gpmap_kwargs=gpmap_kwargs,\n", " custom_gpmap=ThermodynamicLayer);\n", "\n", " # Set training data\n", " model.set_data(x=trainval_df['x'],\n", " y=trainval_df[y_cols],\n", " validation_flags=trainval_df['validation'],\n", " shuffle=True);\n", "\n", " # Fit model to data\n", " model.fit(learning_rate=5e-4,\n", " epochs=2000,\n", " batch_size=100,\n", " early_stopping=True,\n", " early_stopping_patience=25,\n", " linear_initialization=False,\n", " verbose=False);\n", "\n", " # Save model to file\n", " model.save('sortseq_thermodynamic_mpa')" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model loaded from these files:\n", "\tsortseq_thermodynamic_mpa.pickle\n", "\tsortseq_thermodynamic_mpa.h5\n" ] } ], "source": [ "# Load model from file\n", "model_name = f'sortseq_thermodynamic_mpa'\n", "model = mavenn.load(model_name)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "ExecuteTime": { "end_time": "2021-12-29T17:19:13.588121Z", "start_time": "2021-12-29T17:19:13.188483Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "test_I_pred: 0.703 +- 0.012 bits\n" ] } ], "source": [ "# Compute predictive information on test data\n", "I_pred, dI_pred = model.I_predictive(x=test_df['x'], y=test_df[y_cols])\n", "print(f'test_I_pred: {I_pred:.3f} +- {dI_pred:.3f} bits')" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "ExecuteTime": { "end_time": "2021-12-29T17:19:13.670191Z", "start_time": "2021-12-29T17:19:13.588807Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Create figure and axes for plotting\n", "fig, ax = plt.subplots(1, 1, figsize=[5, 5])\n", "\n", "# Plot I_var_train, the variational information on training data as a function of epoch\n", "ax.plot(model.history['I_var'], label=r'I_var_train')\n", "\n", "# Plot I_var_val, the variational information on validation data as a function of epoch\n", "ax.plot(model.history['val_I_var'], label=r'val_I_var')\n", "\n", "# Show I_pred_test, the predictive information of the final model on test data\n", "ax.axhline(I_pred, color='C3', linestyle=':', label=r'test_I_pred')\n", "\n", "# Style plot\n", "ax.set_xlabel('epochs')\n", "ax.set_ylabel('bits')\n", "ax.set_title('Training history: variational information')\n", "ax.legend()\n", "\n", "plt.tight_layout()" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "ExecuteTime": { "end_time": "2021-12-29T17:19:13.673705Z", "start_time": "2021-12-29T17:19:13.671014Z" } }, "outputs": [ { "data": { "text/plain": [ "dict_keys(['theta_tf_0', 'theta_rnap_0', 'theta_tf', 'theta_rnap', 'theta_dG_I'])" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Get the trained model parameters\n", "# Retrieve G-P map parameter dict and view dict keys\n", "param_dict = model.layer_gpmap.get_params()\n", "param_dict.keys()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Authors in Ref. [1], reported they inferred CRP-RNAP interaction energy to be $\\Delta G_I = −3.26$ kcal∕mol.\n", "The MAVE-NN prediction is very similar to the reported value, while it is several order of magnitude faster \n", "than the method used in Ref. [1]." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "ExecuteTime": { "end_time": "2021-12-29T17:19:13.676154Z", "start_time": "2021-12-29T17:19:13.674540Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CRP-RNAP interaction energy = -2.786 k_cal/mol\n" ] } ], "source": [ "delta_G_I = param_dict['theta_dG_I'] # Gibbs energy of Interaction (scalar)\n", "print(f'CRP-RNAP interaction energy = {delta_G_I:.3f} k_cal/mol')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In addition, we can represent the CRP-DNA $\\Delta G_C$ and RNAP-DNA $\\Delta G_R$ binding energies in\n", "the weight matrix form. The weight matrices can be represented by sequence logos. To do that, we used the \n", "a Python package `Logomaker` which is also developed in our research group and is \n", "freely available [here](https://logomaker.readthedocs.io/en/latest/).\n", "To represent the weight matrices in logo\n", "\n", "(a) we get the trained `crp_weights` and `rnap_weights` values, \n", "(b) we convert them to the `pandas.DataFrame` with column names being the nucleotide strings. \n", "\n", "The `pandas.DataFrame` can easily imported in `Logomaker`. \n", "See the [documentation](https://logomaker.readthedocs.io/en/latest/) \n", "of `Logomaker` for detailed description of the parameters one can pass to make logos." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "ExecuteTime": { "end_time": "2021-12-29T17:19:15.104168Z", "start_time": "2021-12-29T17:19:13.677125Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import logomaker\n", "\n", "# Get the \\Delta G_C trained values (theta_tf)\n", "crp_weights = param_dict['theta_tf']\n", "\n", "# Get the \\Delta G_R trained values (theta_rnap)\n", "rnap_weights = param_dict['theta_rnap']\n", "\n", "# Convert them to pandas dataframe\n", "crp_df = pd.DataFrame(crp_weights, columns=model.alphabet).astype(float)\n", "rnap_df = pd.DataFrame(rnap_weights, columns=model.alphabet).astype(float)\n", "\n", "# Plot logos\n", "fig, axs = plt.subplots(1, 2, figsize=[12, 3])\n", "\n", "# Sequence logo for the CRP-DNA binding energy matrix\n", "logo = logomaker.Logo(crp_df, ax=axs[0], center_values=True)\n", "axs[0].set_title(r'CRP-DNA ($\\Delta G_C$)')\n", "logo.style_spines(visible=False)\n", "\n", "\n", "# sequence logo for the RNAP-DNA binding energy matrix\n", "logo = logomaker.Logo(rnap_df, ax=axs[1], center_values=True)\n", "axs[1].set_title(r'RNAP-DNA ($\\Delta G_R$)')\n", "logo.style_spines(visible=False)\n", "\n", "plt.tight_layout()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## References\n", "\n", "1. Kinney J, Murugan A, Callan C, Cox E (2010). Using deep sequencing to characterize the biophysical mechanism of a transcriptional regulatory sequence. [Proc Natl Acad Sci USA. 107(20):9158-9163](https://doi.org/10.1073/pnas.1004290107)." ] } ], "metadata": { "kernelspec": { "display_name": "mavenn_kernel", "language": "python", "name": "mavenn_kernel_name" }, "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.7.13" }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false } }, "nbformat": 4, "nbformat_minor": 4 }