{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "TL5y5fY9Jy_x"
},
"source": [
"# Code to generate TensorFlow models for predicting mean MFE and stdev based on nucleotide content.\n",
"\n",
"\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "bMr7MPVmoiHf"
},
"source": [
"## Use the right version of TensorFlow\n",
"\n",
"The following hidden code cell ensures that the Colab will run on TensorFlow 2.X, which is the most recent version of TensorFlow:"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"id": "Z1pOWL7eevO8",
"outputId": "3021d2be-8362-4579-9360-e2f92a57545d",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Colab only includes TensorFlow 2.x; %tensorflow_version has no effect.\n"
]
}
],
"source": [
"#@title Run this Colab on TensorFlow 2.x\n",
"%tensorflow_version 2.x\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "xchnxAsaKKqO"
},
"source": [
"## Import relevant modules\n",
"\n",
"The following cell imports the packages that the program requires:"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"id": "9n9_cTveKmse"
},
"outputs": [],
"source": [
"import io\n",
"import sys\n",
"import pandas as pd\n",
"import numpy as np\n",
"import tensorflow as tf\n",
"import tensorflow_probability as tfp\n",
"from tensorflow.python.keras.metrics import Metric\n",
"from matplotlib import pyplot as plt\n",
"from tensorflow import keras\n",
"from tensorflow.keras import layers\n",
"from tensorflow.keras.layers.experimental import preprocessing\n",
"\n",
"%matplotlib inline\n",
"pd.options.display.float_format = \"{:.1f}\".format\n"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "ViHIlMwLMypg",
"outputId": "23409807-e93a-4707-a559-a779201a5e97"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"2.8.2\n"
]
}
],
"source": [
"print(tf.__version__)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "SIpsyJITPcbG"
},
"source": [
"## Define functions that build and train a model\n",
"\n",
"The following code defines two functions:\n",
"\n",
" * `build_model(my_learning_rate)`, which builds an empty model.\n",
" * `train_model(model, feature, label, epochs)`, which trains the model from the examples (feature and label) you pass. \n"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"id": "5S5unXRJ1rMb"
},
"outputs": [],
"source": [
"def normalizer(shape): \n",
" preprocessing.Normalization(input_shape=shape)\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"id": "xvO_beKVP1Ke"
},
"outputs": [],
"source": [
"#@title Define custom functions\n",
"def build_model(my_learning_rate, units, shape):\n",
" \"\"\"Create and compile a simple linear regression model.\"\"\"\n",
" # Most simple tf.keras models are sequential. \n",
" # A sequential model contains one or more layers.\n",
" model = tf.keras.models.Sequential()\n",
" \n",
" # Add normalization layer\n",
" model.add(preprocessing.Normalization(input_shape=shape))\n",
"\n",
" # Add hidden non-linear layers\n",
" model.add(tf.keras.layers.Dense(units=64, input_shape=shape, activation=\"relu\"))\n",
" model.add(tf.keras.layers.Dense(units=64, input_shape=shape, activation=\"sigmoid\")) \n",
" \n",
" # Describe the topography of the model.\n",
" # The topography of a simple linear regression model\n",
" # is a single node in a single layer. \n",
" model.add(tf.keras.layers.Dense(units=units, \n",
" input_shape=shape))\n",
" \n",
" # Compile the model topography into code that \n",
" # TensorFlow can efficiently execute. Configure \n",
" # training to minimize the model's mean squared error. \n",
" model.compile(optimizer=tf.keras.optimizers.RMSprop(learning_rate=my_learning_rate),\n",
" loss=\"mean_squared_error\",\n",
" metrics=[tf.keras.metrics.RootMeanSquaredError()])\n",
"\n",
" return model \n",
"\n",
"\n",
"def train_model(model, feature, label, epochs, batch_size):\n",
" \"\"\"Train the model by feeding it data.\"\"\"\n",
"\n",
" # Feed the feature values and the label values to the \n",
" # model. The model will train for the specified number \n",
" # of epochs, gradually learning how the feature values\n",
" # relate to the label values. \n",
" history = model.fit(x=feature,\n",
" y=label,\n",
" batch_size=batch_size,\n",
" epochs=epochs)\n",
"\n",
" # Gather the trained model's weight and bias.\n",
" trained_weight = model.get_weights()[0]\n",
" trained_bias = model.get_weights()[1]\n",
"\n",
" # The list of epochs is stored separately from the \n",
" # rest of history.\n",
" epochs = history.epoch\n",
" \n",
" # Gather the history (a snapshot) of each epoch.\n",
" hist = pd.DataFrame(history.history)\n",
"\n",
" # Specifically gather the model's root mean \n",
" #squared error at each epoch. \n",
" rmse = hist[\"root_mean_squared_error\"]\n",
"\n",
" return trained_weight, trained_bias, epochs, rmse\n",
"\n",
"\n",
"\n",
"def get_gc_content(frag):\n",
" ###Ensure frag is string\n",
" frag = str(frag)\n",
" if 'C' and 'G' in frag:\n",
" A_count = frag.count(\"A\")+frag.count(\"a\")\n",
" G_count = frag.count(\"G\")+frag.count(\"g\")\n",
" C_count = frag.count(\"C\")+frag.count(\"c\")\n",
" T_count = frag.count(\"T\")+frag.count(\"t\")+frag.count(\"U\")+frag.count(\"u\")\n",
" gc_content = round(float(G_count+C_count)/float(A_count+T_count+G_count+C_count),5)\n",
" else:\n",
" gc_content = 0\n",
" \n",
" return gc_content\n",
"\n",
"def get_cg_ratio(frag):\n",
" frag = str(frag)\n",
" if 'C' and 'G' in frag:\n",
" A_count = frag.count(\"A\")+frag.count(\"a\")\n",
" G_count = frag.count(\"G\")+frag.count(\"g\")\n",
" C_count = frag.count(\"C\")+frag.count(\"c\")\n",
" T_count = frag.count(\"T\")+frag.count(\"t\")+frag.count(\"U\")+frag.count(\"u\")\n",
" cg_ratio = C_count/(C_count+G_count)\n",
" else:\n",
" cg_ratio = 0\n",
"\n",
" return cg_ratio\n",
"\n",
"def get_au_ratio(frag):\n",
" frag = str(frag)\n",
" if 'A' and 'U' in frag:\n",
" A_count = frag.count(\"A\")+frag.count(\"a\")\n",
" G_count = frag.count(\"G\")+frag.count(\"g\")\n",
" C_count = frag.count(\"C\")+frag.count(\"c\")\n",
" T_count = frag.count(\"T\")+frag.count(\"t\")+frag.count(\"U\")+frag.count(\"u\")\n",
" au_ratio = A_count/(A_count+T_count)\n",
" else:\n",
" au_ratio = 0\n",
"\n",
" return au_ratio\n",
"\n",
"\n",
"def get_di_freqs(frag):\n",
" ### code taken from https://pythonforbiologists.com/dictionaries\n",
" frag = str(frag)\n",
" frag_list = [frag[i:i+2] for i in range(0, len(frag))]\n",
" dinucleotides = ['AA','AU','AG','AC',\n",
" 'UA','UU','UG','UC',\n",
" 'GA','GU','GG','GC',\n",
" 'CA','CU','CG','CC']\n",
" all_counts = []\n",
" for dinucleotide in dinucleotides:\n",
" count = frag_list.count(dinucleotide)\n",
" #print(\"count is \" + str(count) + \" for \" + dinucleotide)\n",
" all_counts.append(count/(len(frag)-1))\n",
"\n",
" return(all_counts)\n",
"\n",
"def get_dinucleotide_counts(frag):\n",
" ### code taken from https://pythonforbiologists.com/dictionaries\n",
" frag = str(frag)\n",
" frag_list = [frag[i:i+2] for i in range(0, len(frag))]\n",
" print(frag_list)\n",
" dinucleotides = ['AA','AU','AG','AC',\n",
" 'UA','UU','UG','UC',\n",
" 'GA','GU','GG','GC',\n",
" 'CA','CU','CG','CC']\n",
" all_counts = []\n",
" for dinucleotide in dinucleotides:\n",
" count = frag_list.count(dinucleotide)\n",
" #print(\"count is \" + str(count) + \" for \" + dinucleotide)\n",
" all_counts.append(count)\n",
"\n",
" return(all_counts)\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "Ak_TMAzGOIFq"
},
"source": [
"## Define plotting functions\n",
"\n",
"We're using a popular Python library called [Matplotlib](https://developers.google.com/machine-learning/glossary/#matplotlib) to create the following two plots:\n",
"\n",
"* a plot of the feature values vs. the label values, and a line showing the output of the trained model.\n",
"* a [loss curve](https://developers.google.com/machine-learning/glossary/#loss_curve)."
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "QF0BFRXTOeR3",
"outputId": "25f6c25b-dc46-4bb7-91e8-63884734a213"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Defined the plot_the_model and plot_the_loss_curve functions.\n"
]
}
],
"source": [
"#@title Define the plotting functions\n",
"def plot_the_model(trained_weight, trained_bias, feature, label):\n",
" \"\"\"Plot the trained model against the training feature and label.\"\"\"\n",
"\n",
" # Label the axes.\n",
" plt.xlabel(\"feature\")\n",
" plt.ylabel(\"label\")\n",
"\n",
" # Plot the feature values vs. label values.\n",
" plt.scatter(feature, label)\n",
"\n",
" # Create a red line representing the model. The red line starts\n",
" # at coordinates (x0, y0) and ends at coordinates (x1, y1).\n",
" x0 = 0\n",
" y0 = trained_bias\n",
" x1 = my_feature[-1]\n",
" y1 = trained_bias + (trained_weight * x1)\n",
" plt.plot([x0, x1], [y0, y1], c='r')\n",
"\n",
" # Render the scatter plot and the red line.\n",
" plt.show()\n",
"\n",
"def plot_the_loss_curve(epochs, rmse):\n",
" \"\"\"Plot the loss curve, which shows loss vs. epoch.\"\"\"\n",
"\n",
" plt.figure()\n",
" plt.xlabel(\"Epoch\")\n",
" plt.ylabel(\"Root Mean Squared Error\")\n",
"\n",
" plt.plot(epochs, rmse, label=\"Loss\")\n",
" plt.legend()\n",
" plt.ylim([rmse.min()*0.97, rmse.max()])\n",
" plt.show()\n",
"\n",
"print(\"Defined the plot_the_model and plot_the_loss_curve functions.\")"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "LVSDPusELEZ5"
},
"source": [
"## Load the dataset\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "2qrBFb50bVTW"
},
"source": [
"Import the full training data set (as a pandas dataframe). Direct links to the datasets used are provided, but your own data can be uploaded via google drive, github, or local filesystem. "
]
},
{
"cell_type": "code",
"source": [
"# If needed, this cell allows upload of local files for training/testing\n",
"# Uncomment (remove the hashtags) from the following two lines then run cell\n",
"# from google.colab import files\n",
"# uploaded = files.upload()"
],
"metadata": {
"id": "95fhk6O9tVZm"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"id": "ruBbYkc7a6rM"
},
"outputs": [],
"source": [
"# Load training set from RNAStructuromeDB\n",
"training_df = pd.read_csv('https://structurome.bb.iastate.edu/files/download/trainingset.txt.gz')\n"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"id": "xJB4L0bCI819"
},
"outputs": [],
"source": [
"# Load test set from RNAStructuromeDB\n",
"test_df = pd.read_csv('https://structurome.bb.iastate.edu/files/download/testset.rnacentral.20-200.all_.svm_data.csv__0.gz')\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "klSyq_vhoO5J"
},
"source": [
"Check the data structure using \"dataframe.describe\""
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 330
},
"id": "HEA1x_iX3yHS",
"outputId": "937802e2-3b57-4c01-b7d2-d237934a2bbc"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" length GC% CGratio AUratio MFE AA AU \\\n",
"count 5729593.0 5729593.0 5729593.0 5729593.0 5729593.0 5729593.0 5729593.0 \n",
"mean 85.1 0.5 0.5 0.5 -26.7 0.1 0.1 \n",
"std 40.6 0.1 0.1 0.1 17.7 0.0 0.0 \n",
"min 20.0 0.0 0.0 0.0 -221.1 0.0 0.0 \n",
"25% 66.0 0.4 0.4 0.4 -35.4 0.0 0.0 \n",
"50% 74.0 0.5 0.5 0.5 -25.7 0.1 0.1 \n",
"75% 107.0 0.6 0.5 0.5 -14.1 0.1 0.1 \n",
"max 200.0 1.0 1.0 1.0 0.0 1.0 0.5 \n",
"\n",
" AG AC UA ... GG GC CA \\\n",
"count 5729593.0 5729592.0 5729592.0 ... 5729592.0 5729592.0 5729592.0 \n",
"mean 0.1 0.0 0.0 ... 0.1 0.1 0.1 \n",
"std 0.0 0.0 0.0 ... 0.0 0.0 0.0 \n",
"min 0.0 0.0 0.0 ... 0.0 0.0 0.0 \n",
"25% 0.1 0.0 0.0 ... 0.0 0.0 0.0 \n",
"50% 0.1 0.0 0.0 ... 0.1 0.1 0.1 \n",
"75% 0.1 0.1 0.0 ... 0.1 0.1 0.1 \n",
"max 0.5 0.5 0.0 ... 1.0 0.4 0.5 \n",
"\n",
" CU CG CC MonoMFE mono_z DiMFE di_z \n",
"count 5729592.0 5729592.0 5729592.0 5729592.0 5729592.0 5729592.0 5729592.0 \n",
"mean 0.1 0.0 0.1 -20.8 -0.0 -21.5 -0.0 \n",
"std 0.0 0.0 0.0 13.3 1.0 13.6 1.0 \n",
"min 0.0 0.0 0.0 -118.5 -10.0 -140.0 -10.0 \n",
"25% 0.0 0.0 0.0 -27.1 -0.6 -27.9 -0.6 \n",
"50% 0.1 0.0 0.1 -20.0 0.1 -21.0 0.1 \n",
"75% 0.1 0.1 0.1 -10.9 0.7 -11.5 0.7 \n",
"max 0.5 0.3 1.0 0.0 4.4 0.0 4.0 \n",
"\n",
"[8 rows x 25 columns]"
],
"text/html": [
"\n",
"
\n",
"
\n",
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" length | \n",
" GC% | \n",
" CGratio | \n",
" AUratio | \n",
" MFE | \n",
" AA | \n",
" AU | \n",
" AG | \n",
" AC | \n",
" UA | \n",
" ... | \n",
" GG | \n",
" GC | \n",
" CA | \n",
" CU | \n",
" CG | \n",
" CC | \n",
" MonoMFE | \n",
" mono_z | \n",
" DiMFE | \n",
" di_z | \n",
"
\n",
" \n",
" \n",
" \n",
" count | \n",
" 5729593.0 | \n",
" 5729593.0 | \n",
" 5729593.0 | \n",
" 5729593.0 | \n",
" 5729593.0 | \n",
" 5729593.0 | \n",
" 5729593.0 | \n",
" 5729593.0 | \n",
" 5729592.0 | \n",
" 5729592.0 | \n",
" ... | \n",
" 5729592.0 | \n",
" 5729592.0 | \n",
" 5729592.0 | \n",
" 5729592.0 | \n",
" 5729592.0 | \n",
" 5729592.0 | \n",
" 5729592.0 | \n",
" 5729592.0 | \n",
" 5729592.0 | \n",
" 5729592.0 | \n",
"
\n",
" \n",
" mean | \n",
" 85.1 | \n",
" 0.5 | \n",
" 0.5 | \n",
" 0.5 | \n",
" -26.7 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" ... | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.1 | \n",
" -20.8 | \n",
" -0.0 | \n",
" -21.5 | \n",
" -0.0 | \n",
"
\n",
" \n",
" std | \n",
" 40.6 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 17.7 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" ... | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 13.3 | \n",
" 1.0 | \n",
" 13.6 | \n",
" 1.0 | \n",
"
\n",
" \n",
" min | \n",
" 20.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" -221.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" ... | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" -118.5 | \n",
" -10.0 | \n",
" -140.0 | \n",
" -10.0 | \n",
"
\n",
" \n",
" 25% | \n",
" 66.0 | \n",
" 0.4 | \n",
" 0.4 | \n",
" 0.4 | \n",
" -35.4 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" ... | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" -27.1 | \n",
" -0.6 | \n",
" -27.9 | \n",
" -0.6 | \n",
"
\n",
" \n",
" 50% | \n",
" 74.0 | \n",
" 0.5 | \n",
" 0.5 | \n",
" 0.5 | \n",
" -25.7 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" ... | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.1 | \n",
" -20.0 | \n",
" 0.1 | \n",
" -21.0 | \n",
" 0.1 | \n",
"
\n",
" \n",
" 75% | \n",
" 107.0 | \n",
" 0.6 | \n",
" 0.5 | \n",
" 0.5 | \n",
" -14.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.0 | \n",
" ... | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" -10.9 | \n",
" 0.7 | \n",
" -11.5 | \n",
" 0.7 | \n",
"
\n",
" \n",
" max | \n",
" 200.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
" 0.0 | \n",
" 1.0 | \n",
" 0.5 | \n",
" 0.5 | \n",
" 0.5 | \n",
" 0.0 | \n",
" ... | \n",
" 1.0 | \n",
" 0.4 | \n",
" 0.5 | \n",
" 0.5 | \n",
" 0.3 | \n",
" 1.0 | \n",
" 0.0 | \n",
" 4.4 | \n",
" 0.0 | \n",
" 4.0 | \n",
"
\n",
" \n",
"
\n",
"
8 rows × 25 columns
\n",
"
\n",
"
\n",
" \n",
" \n",
"\n",
" \n",
"
\n",
"
\n",
" "
]
},
"metadata": {},
"execution_count": 23
}
],
"source": [
"test_df.describe()"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "rQYn0ny3oT1I"
},
"source": [
"Rename columns (to ensure compatibility with later functions)"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"id": "0Lo7hJ3D36MR"
},
"outputs": [],
"source": [
"test_df.columns =[\"Length\", \"GCpercent\",\"CGratio\", \"AUratio\", \"MFE\", \"AA\",\"AU\",\"AG\",\"AC\",\"UA\",\"UU\",\"UG\",\"UC\",\"GA\",\"GU\",\"GG\",\"GC\",\"CA\",\"CU\",\"CG\", \"CC\", \"MonoMFE\", \"mono_z\", \"DiMFE\", \"di_z\"]"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "NwyfPkkbobdr"
},
"source": [
"Ensure values are numeric"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 424
},
"id": "Uan8bWjMt5Ss",
"outputId": "280bf5df-181b-45eb-8167-2d14d4ef15d3"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" Length GCpercent CGratio AUratio MFE AA AU AG AC UA ... \\\n",
"0 200 0.6 0.4 0.6 -59.2 0.1 0.0 0.1 0.1 0.0 ... \n",
"1 72 0.2 0.4 0.5 -11.9 0.1 0.2 0.0 0.0 0.0 ... \n",
"2 104 0.5 0.4 0.5 -31.3 0.0 0.0 0.1 0.1 0.0 ... \n",
"3 24 0.4 0.7 0.5 -0.2 0.1 0.1 0.0 0.1 0.0 ... \n",
"4 28 0.5 0.7 0.5 -1.1 0.0 0.0 0.1 0.0 0.0 ... \n",
"... ... ... ... ... ... .. .. .. .. .. ... \n",
"5729588 73 0.6 0.4 0.4 -25.8 0.0 0.0 0.1 0.0 0.0 ... \n",
"5729589 117 0.6 0.4 0.5 -38.6 0.0 0.1 0.1 0.0 0.0 ... \n",
"5729590 85 0.6 0.4 0.5 -37.3 0.0 0.0 0.1 0.0 0.0 ... \n",
"5729591 113 0.4 0.5 0.5 -22.2 0.1 0.1 0.1 0.1 0.0 ... \n",
"5729592 84 0.6 0.5 0.5 -34.4 0.1 0.0 0.0 0.0 0.0 ... \n",
"\n",
" GG GC CA CU CG CC MonoMFE mono_z DiMFE di_z \n",
"0 0.1 0.1 0.0 0.1 0.1 0.0 -64.8 0.4 -64.9 -2.0 \n",
"1 0.1 0.0 0.0 0.0 0.0 0.0 -7.4 0.3 -10.3 0.6 \n",
"2 0.1 0.0 0.1 0.0 0.1 0.1 -30.0 0.1 -29.6 -0.6 \n",
"3 0.0 0.0 0.1 0.1 0.0 0.1 -0.7 0.1 -0.2 0.3 \n",
"4 0.0 0.1 0.1 0.0 0.1 0.1 -1.6 -1.0 -1.0 -0.1 \n",
"... .. .. .. .. .. .. ... ... ... ... \n",
"5729588 0.1 0.1 0.0 0.1 0.1 0.1 -23.4 -0.2 -20.9 1.2 \n",
"5729589 0.1 0.1 0.1 0.0 0.1 0.1 -35.9 -2.2 -35.0 1.0 \n",
"5729590 0.1 0.1 0.1 0.1 0.1 0.1 -29.2 -0.6 -30.1 1.9 \n",
"5729591 0.0 0.0 0.1 0.0 0.0 0.0 -21.4 0.1 -22.9 1.4 \n",
"5729592 0.1 0.1 0.0 0.0 0.1 0.1 -28.0 0.3 -29.8 -0.9 \n",
"\n",
"[5729593 rows x 25 columns]"
],
"text/html": [
"\n",
" \n",
"
\n",
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Length | \n",
" GCpercent | \n",
" CGratio | \n",
" AUratio | \n",
" MFE | \n",
" AA | \n",
" AU | \n",
" AG | \n",
" AC | \n",
" UA | \n",
" ... | \n",
" GG | \n",
" GC | \n",
" CA | \n",
" CU | \n",
" CG | \n",
" CC | \n",
" MonoMFE | \n",
" mono_z | \n",
" DiMFE | \n",
" di_z | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 200 | \n",
" 0.6 | \n",
" 0.4 | \n",
" 0.6 | \n",
" -59.2 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.0 | \n",
" ... | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.0 | \n",
" -64.8 | \n",
" 0.4 | \n",
" -64.9 | \n",
" -2.0 | \n",
"
\n",
" \n",
" 1 | \n",
" 72 | \n",
" 0.2 | \n",
" 0.4 | \n",
" 0.5 | \n",
" -11.9 | \n",
" 0.1 | \n",
" 0.2 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" ... | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" -7.4 | \n",
" 0.3 | \n",
" -10.3 | \n",
" 0.6 | \n",
"
\n",
" \n",
" 2 | \n",
" 104 | \n",
" 0.5 | \n",
" 0.4 | \n",
" 0.5 | \n",
" -31.3 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.0 | \n",
" ... | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.1 | \n",
" -30.0 | \n",
" 0.1 | \n",
" -29.6 | \n",
" -0.6 | \n",
"
\n",
" \n",
" 3 | \n",
" 24 | \n",
" 0.4 | \n",
" 0.7 | \n",
" 0.5 | \n",
" -0.2 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.0 | \n",
" ... | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.1 | \n",
" -0.7 | \n",
" 0.1 | \n",
" -0.2 | \n",
" 0.3 | \n",
"
\n",
" \n",
" 4 | \n",
" 28 | \n",
" 0.5 | \n",
" 0.7 | \n",
" 0.5 | \n",
" -1.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" ... | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.1 | \n",
" -1.6 | \n",
" -1.0 | \n",
" -1.0 | \n",
" -0.1 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 5729588 | \n",
" 73 | \n",
" 0.6 | \n",
" 0.4 | \n",
" 0.4 | \n",
" -25.8 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" ... | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" -23.4 | \n",
" -0.2 | \n",
" -20.9 | \n",
" 1.2 | \n",
"
\n",
" \n",
" 5729589 | \n",
" 117 | \n",
" 0.6 | \n",
" 0.4 | \n",
" 0.5 | \n",
" -38.6 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" ... | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.1 | \n",
" -35.9 | \n",
" -2.2 | \n",
" -35.0 | \n",
" 1.0 | \n",
"
\n",
" \n",
" 5729590 | \n",
" 85 | \n",
" 0.6 | \n",
" 0.4 | \n",
" 0.5 | \n",
" -37.3 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" ... | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" -29.2 | \n",
" -0.6 | \n",
" -30.1 | \n",
" 1.9 | \n",
"
\n",
" \n",
" 5729591 | \n",
" 113 | \n",
" 0.4 | \n",
" 0.5 | \n",
" 0.5 | \n",
" -22.2 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.0 | \n",
" ... | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" -21.4 | \n",
" 0.1 | \n",
" -22.9 | \n",
" 1.4 | \n",
"
\n",
" \n",
" 5729592 | \n",
" 84 | \n",
" 0.6 | \n",
" 0.5 | \n",
" 0.5 | \n",
" -34.4 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" ... | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.1 | \n",
" -28.0 | \n",
" 0.3 | \n",
" -29.8 | \n",
" -0.9 | \n",
"
\n",
" \n",
"
\n",
"
5729593 rows × 25 columns
\n",
"
\n",
"
\n",
" \n",
" \n",
"\n",
" \n",
"
\n",
"
\n",
" "
]
},
"metadata": {},
"execution_count": 25
}
],
"source": [
"test_df.apply(pd.to_numeric)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "BIjDxRR-oe0c"
},
"source": [
"Check structure again. Ensure all counts are the same!"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 330
},
"id": "VxB8bEG3uSLU",
"outputId": "c8cdd837-8106-4444-95f2-23d1290b41e8"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" Length GCpercent CGratio AUratio MFE AA AU \\\n",
"count 5729593.0 5729593.0 5729593.0 5729593.0 5729593.0 5729593.0 5729593.0 \n",
"mean 85.1 0.5 0.5 0.5 -26.7 0.1 0.1 \n",
"std 40.6 0.1 0.1 0.1 17.7 0.0 0.0 \n",
"min 20.0 0.0 0.0 0.0 -221.1 0.0 0.0 \n",
"25% 66.0 0.4 0.4 0.4 -35.4 0.0 0.0 \n",
"50% 74.0 0.5 0.5 0.5 -25.7 0.1 0.1 \n",
"75% 107.0 0.6 0.5 0.5 -14.1 0.1 0.1 \n",
"max 200.0 1.0 1.0 1.0 0.0 1.0 0.5 \n",
"\n",
" AG AC UA ... GG GC CA \\\n",
"count 5729593.0 5729592.0 5729592.0 ... 5729592.0 5729592.0 5729592.0 \n",
"mean 0.1 0.0 0.0 ... 0.1 0.1 0.1 \n",
"std 0.0 0.0 0.0 ... 0.0 0.0 0.0 \n",
"min 0.0 0.0 0.0 ... 0.0 0.0 0.0 \n",
"25% 0.1 0.0 0.0 ... 0.0 0.0 0.0 \n",
"50% 0.1 0.0 0.0 ... 0.1 0.1 0.1 \n",
"75% 0.1 0.1 0.0 ... 0.1 0.1 0.1 \n",
"max 0.5 0.5 0.0 ... 1.0 0.4 0.5 \n",
"\n",
" CU CG CC MonoMFE mono_z DiMFE di_z \n",
"count 5729592.0 5729592.0 5729592.0 5729592.0 5729592.0 5729592.0 5729592.0 \n",
"mean 0.1 0.0 0.1 -20.8 -0.0 -21.5 -0.0 \n",
"std 0.0 0.0 0.0 13.3 1.0 13.6 1.0 \n",
"min 0.0 0.0 0.0 -118.5 -10.0 -140.0 -10.0 \n",
"25% 0.0 0.0 0.0 -27.1 -0.6 -27.9 -0.6 \n",
"50% 0.1 0.0 0.1 -20.0 0.1 -21.0 0.1 \n",
"75% 0.1 0.1 0.1 -10.9 0.7 -11.5 0.7 \n",
"max 0.5 0.3 1.0 0.0 4.4 0.0 4.0 \n",
"\n",
"[8 rows x 25 columns]"
],
"text/html": [
"\n",
" \n",
"
\n",
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Length | \n",
" GCpercent | \n",
" CGratio | \n",
" AUratio | \n",
" MFE | \n",
" AA | \n",
" AU | \n",
" AG | \n",
" AC | \n",
" UA | \n",
" ... | \n",
" GG | \n",
" GC | \n",
" CA | \n",
" CU | \n",
" CG | \n",
" CC | \n",
" MonoMFE | \n",
" mono_z | \n",
" DiMFE | \n",
" di_z | \n",
"
\n",
" \n",
" \n",
" \n",
" count | \n",
" 5729593.0 | \n",
" 5729593.0 | \n",
" 5729593.0 | \n",
" 5729593.0 | \n",
" 5729593.0 | \n",
" 5729593.0 | \n",
" 5729593.0 | \n",
" 5729593.0 | \n",
" 5729592.0 | \n",
" 5729592.0 | \n",
" ... | \n",
" 5729592.0 | \n",
" 5729592.0 | \n",
" 5729592.0 | \n",
" 5729592.0 | \n",
" 5729592.0 | \n",
" 5729592.0 | \n",
" 5729592.0 | \n",
" 5729592.0 | \n",
" 5729592.0 | \n",
" 5729592.0 | \n",
"
\n",
" \n",
" mean | \n",
" 85.1 | \n",
" 0.5 | \n",
" 0.5 | \n",
" 0.5 | \n",
" -26.7 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" ... | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.1 | \n",
" -20.8 | \n",
" -0.0 | \n",
" -21.5 | \n",
" -0.0 | \n",
"
\n",
" \n",
" std | \n",
" 40.6 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 17.7 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" ... | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 13.3 | \n",
" 1.0 | \n",
" 13.6 | \n",
" 1.0 | \n",
"
\n",
" \n",
" min | \n",
" 20.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" -221.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" ... | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" -118.5 | \n",
" -10.0 | \n",
" -140.0 | \n",
" -10.0 | \n",
"
\n",
" \n",
" 25% | \n",
" 66.0 | \n",
" 0.4 | \n",
" 0.4 | \n",
" 0.4 | \n",
" -35.4 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" ... | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" -27.1 | \n",
" -0.6 | \n",
" -27.9 | \n",
" -0.6 | \n",
"
\n",
" \n",
" 50% | \n",
" 74.0 | \n",
" 0.5 | \n",
" 0.5 | \n",
" 0.5 | \n",
" -25.7 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" ... | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.1 | \n",
" -20.0 | \n",
" 0.1 | \n",
" -21.0 | \n",
" 0.1 | \n",
"
\n",
" \n",
" 75% | \n",
" 107.0 | \n",
" 0.6 | \n",
" 0.5 | \n",
" 0.5 | \n",
" -14.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.0 | \n",
" ... | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" -10.9 | \n",
" 0.7 | \n",
" -11.5 | \n",
" 0.7 | \n",
"
\n",
" \n",
" max | \n",
" 200.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
" 0.0 | \n",
" 1.0 | \n",
" 0.5 | \n",
" 0.5 | \n",
" 0.5 | \n",
" 0.0 | \n",
" ... | \n",
" 1.0 | \n",
" 0.4 | \n",
" 0.5 | \n",
" 0.5 | \n",
" 0.3 | \n",
" 1.0 | \n",
" 0.0 | \n",
" 4.4 | \n",
" 0.0 | \n",
" 4.0 | \n",
"
\n",
" \n",
"
\n",
"
8 rows × 25 columns
\n",
"
\n",
"
\n",
" \n",
" \n",
"\n",
" \n",
"
\n",
"
\n",
" "
]
},
"metadata": {},
"execution_count": 26
}
],
"source": [
"test_df.describe()"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "2L0crcGabr8B"
},
"source": [
"### Training data\n",
"Set the column names for training data (if not already set)"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"id": "AFqCzv6HbSt5"
},
"outputs": [],
"source": [
"training_df.columns = [\"Length\", \"GCpercent\",\"CGratio\", \"AUratio\", \"MFE\", \"MonoMFE\", \"MonoStd\", \"DiMFE\", \"DiStd\", \"AA\",\"AU\",\"AG\",\"AC\",\"UA\",\"UU\",\"UG\",\"UC\",\"GA\",\"GU\",\"GG\",\"GC\",\"CA\",\"CU\",\"CG\", \"CC\"]"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"id": "LXZL5h3s5KGH",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 330
},
"outputId": "bf109352-b8b3-416f-e613-12348f83c6f4"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" Length GCpercent CGratio AUratio MFE MonoMFE MonoStd \\\n",
"count 836376.0 836376.0 836376.0 836376.0 836376.0 836376.0 836376.0 \n",
"mean 152.4 0.5 0.5 0.5 -34.4 -34.5 3.7 \n",
"std 37.1 0.1 0.2 0.1 18.9 18.4 0.6 \n",
"min 60.0 0.1 0.1 0.1 -140.7 -125.9 0.4 \n",
"25% 120.0 0.5 0.4 0.4 -45.4 -45.0 3.3 \n",
"50% 160.0 0.5 0.5 0.5 -32.0 -31.9 3.8 \n",
"75% 180.0 0.6 0.6 0.6 -20.6 -21.0 4.2 \n",
"max 200.0 0.8 0.9 0.9 0.0 -0.1 6.4 \n",
"\n",
" DiMFE DiStd AA ... UG UC GA GU \\\n",
"count 836376.0 836376.0 836376.0 ... 836376.0 836376.0 836376.0 836376.0 \n",
"mean -34.4 3.4 0.1 ... 0.1 0.1 0.1 0.1 \n",
"std 18.6 0.6 0.1 ... 0.0 0.0 0.0 0.0 \n",
"min -128.7 0.0 0.0 ... 0.0 0.0 0.0 0.0 \n",
"25% -45.1 3.0 0.0 ... 0.0 0.0 0.0 0.0 \n",
"50% -31.9 3.4 0.1 ... 0.1 0.1 0.1 0.1 \n",
"75% -20.8 3.9 0.1 ... 0.1 0.1 0.1 0.1 \n",
"max -0.0 6.0 0.5 ... 0.2 0.2 0.2 0.2 \n",
"\n",
" GG GC CA CU CG CC \n",
"count 836376.0 836376.0 836376.0 836376.0 836376.0 836376.0 \n",
"mean 0.1 0.1 0.1 0.1 0.1 0.1 \n",
"std 0.1 0.0 0.0 0.0 0.0 0.1 \n",
"min 0.0 0.0 0.0 0.0 0.0 0.0 \n",
"25% 0.0 0.0 0.0 0.0 0.0 0.0 \n",
"50% 0.1 0.1 0.1 0.1 0.1 0.1 \n",
"75% 0.1 0.1 0.1 0.1 0.1 0.1 \n",
"max 0.4 0.2 0.2 0.2 0.2 0.4 \n",
"\n",
"[8 rows x 25 columns]"
],
"text/html": [
"\n",
" \n",
"
\n",
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Length | \n",
" GCpercent | \n",
" CGratio | \n",
" AUratio | \n",
" MFE | \n",
" MonoMFE | \n",
" MonoStd | \n",
" DiMFE | \n",
" DiStd | \n",
" AA | \n",
" ... | \n",
" UG | \n",
" UC | \n",
" GA | \n",
" GU | \n",
" GG | \n",
" GC | \n",
" CA | \n",
" CU | \n",
" CG | \n",
" CC | \n",
"
\n",
" \n",
" \n",
" \n",
" count | \n",
" 836376.0 | \n",
" 836376.0 | \n",
" 836376.0 | \n",
" 836376.0 | \n",
" 836376.0 | \n",
" 836376.0 | \n",
" 836376.0 | \n",
" 836376.0 | \n",
" 836376.0 | \n",
" 836376.0 | \n",
" ... | \n",
" 836376.0 | \n",
" 836376.0 | \n",
" 836376.0 | \n",
" 836376.0 | \n",
" 836376.0 | \n",
" 836376.0 | \n",
" 836376.0 | \n",
" 836376.0 | \n",
" 836376.0 | \n",
" 836376.0 | \n",
"
\n",
" \n",
" mean | \n",
" 152.4 | \n",
" 0.5 | \n",
" 0.5 | \n",
" 0.5 | \n",
" -34.4 | \n",
" -34.5 | \n",
" 3.7 | \n",
" -34.4 | \n",
" 3.4 | \n",
" 0.1 | \n",
" ... | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
"
\n",
" \n",
" std | \n",
" 37.1 | \n",
" 0.1 | \n",
" 0.2 | \n",
" 0.1 | \n",
" 18.9 | \n",
" 18.4 | \n",
" 0.6 | \n",
" 18.6 | \n",
" 0.6 | \n",
" 0.1 | \n",
" ... | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.1 | \n",
"
\n",
" \n",
" min | \n",
" 60.0 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" -140.7 | \n",
" -125.9 | \n",
" 0.4 | \n",
" -128.7 | \n",
" 0.0 | \n",
" 0.0 | \n",
" ... | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
"
\n",
" \n",
" 25% | \n",
" 120.0 | \n",
" 0.5 | \n",
" 0.4 | \n",
" 0.4 | \n",
" -45.4 | \n",
" -45.0 | \n",
" 3.3 | \n",
" -45.1 | \n",
" 3.0 | \n",
" 0.0 | \n",
" ... | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
"
\n",
" \n",
" 50% | \n",
" 160.0 | \n",
" 0.5 | \n",
" 0.5 | \n",
" 0.5 | \n",
" -32.0 | \n",
" -31.9 | \n",
" 3.8 | \n",
" -31.9 | \n",
" 3.4 | \n",
" 0.1 | \n",
" ... | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
"
\n",
" \n",
" 75% | \n",
" 180.0 | \n",
" 0.6 | \n",
" 0.6 | \n",
" 0.6 | \n",
" -20.6 | \n",
" -21.0 | \n",
" 4.2 | \n",
" -20.8 | \n",
" 3.9 | \n",
" 0.1 | \n",
" ... | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
"
\n",
" \n",
" max | \n",
" 200.0 | \n",
" 0.8 | \n",
" 0.9 | \n",
" 0.9 | \n",
" 0.0 | \n",
" -0.1 | \n",
" 6.4 | \n",
" -0.0 | \n",
" 6.0 | \n",
" 0.5 | \n",
" ... | \n",
" 0.2 | \n",
" 0.2 | \n",
" 0.2 | \n",
" 0.2 | \n",
" 0.4 | \n",
" 0.2 | \n",
" 0.2 | \n",
" 0.2 | \n",
" 0.2 | \n",
" 0.4 | \n",
"
\n",
" \n",
"
\n",
"
8 rows × 25 columns
\n",
"
\n",
"
\n",
" \n",
" \n",
"\n",
" \n",
"
\n",
"
\n",
" "
]
},
"metadata": {},
"execution_count": 31
}
],
"source": [
"training_df.describe()"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "xK6aXDgybz2h"
},
"source": [
"Round values if needed (to save on memory)"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"id": "2uFReSLjs-Qh"
},
"outputs": [],
"source": [
"training_df = training_df.round(2)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "pzC07m0Io3OQ"
},
"source": [
"Now we can remove the MFE column while simultaneoulsy setting it as our feature (using the \".pop\" function). Our LABEL is what we are trying to predict."
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"id": "sM0jCxzUVDpO"
},
"outputs": [],
"source": [
"# Train for Mononucleotide shuffling:\n",
"my_label = training_df.pop('MonoMFE')\n",
"\n",
"# OR #\n",
"\n",
"# Train for Dinucleotide shuffling: \n",
"#my_label = training_df.pop('DiStd')"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "JLSY5on4pEGC"
},
"source": [
"Our feature is what we use to PREDICT our label. Here we drop the values we don't want to use. "
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"id": "mjBM_1HhcDBM"
},
"outputs": [],
"source": [
"### Full features for MFE (Comment out and select lines as needed:)\n",
"# Mononucleotide features:\n",
"# Mono MFE:\n",
"my_feature = training_df.drop(columns=[\"DiMFE\", \"DiStd\", 'MonoStd', 'MFE'])\n",
"# Mono Std:\n",
"#my_feature = training_df.drop(columns=[\"DiMFE\", \"DiStd\", 'MonoMFE', 'MFE'])\n",
"\n",
"# Dinucleotide features:\n",
"# Di MFE\n",
"# my_feature = training_df.drop(columns=[\"MonoMFE\", \"DiStd\", 'MonoStd', 'MFE'])\n",
"# Di Std:\n",
"#my_feature = training_df.drop(columns=[\"DiMFE\", \"MonoMFE\", 'MonoStd', 'MFE'])"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "9P41e9jWpXhE"
},
"source": [
"Using the descibe function, we can now see how many features will be used to predict our label."
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"id": "S8wnsylucIEh",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 300
},
"outputId": "8f2ea1af-6a5c-4cd1-aa6b-210966648dc1"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" Length GCpercent CGratio AUratio AA AU AG \\\n",
"count 836376.0 836376.0 836376.0 836376.0 836376.0 836376.0 836376.0 \n",
"mean 152.4 0.5 0.5 0.5 0.1 0.1 0.1 \n",
"std 37.1 0.1 0.2 0.1 0.1 0.0 0.0 \n",
"min 60.0 0.1 0.1 0.1 0.0 0.0 0.0 \n",
"25% 120.0 0.5 0.4 0.4 0.0 0.0 0.0 \n",
"50% 160.0 0.5 0.5 0.5 0.1 0.1 0.1 \n",
"75% 180.0 0.6 0.6 0.6 0.1 0.1 0.1 \n",
"max 200.0 0.8 0.9 0.9 0.5 0.2 0.2 \n",
"\n",
" AC UA UU UG UC GA GU GG \\\n",
"count 836376.0 836376.0 836376.0 836376.0 836376.0 836376.0 836376.0 836376.0 \n",
"mean 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
"std 0.0 0.0 0.1 0.0 0.0 0.0 0.0 0.1 \n",
"min 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
"25% 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n",
"50% 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
"75% 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
"max 0.2 0.2 0.4 0.2 0.2 0.2 0.2 0.4 \n",
"\n",
" GC CA CU CG CC \n",
"count 836376.0 836376.0 836376.0 836376.0 836376.0 \n",
"mean 0.1 0.1 0.1 0.1 0.1 \n",
"std 0.0 0.0 0.0 0.0 0.1 \n",
"min 0.0 0.0 0.0 0.0 0.0 \n",
"25% 0.0 0.0 0.0 0.0 0.0 \n",
"50% 0.1 0.1 0.1 0.1 0.1 \n",
"75% 0.1 0.1 0.1 0.1 0.1 \n",
"max 0.2 0.2 0.2 0.2 0.4 "
],
"text/html": [
"\n",
" \n",
"
\n",
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Length | \n",
" GCpercent | \n",
" CGratio | \n",
" AUratio | \n",
" AA | \n",
" AU | \n",
" AG | \n",
" AC | \n",
" UA | \n",
" UU | \n",
" UG | \n",
" UC | \n",
" GA | \n",
" GU | \n",
" GG | \n",
" GC | \n",
" CA | \n",
" CU | \n",
" CG | \n",
" CC | \n",
"
\n",
" \n",
" \n",
" \n",
" count | \n",
" 836376.0 | \n",
" 836376.0 | \n",
" 836376.0 | \n",
" 836376.0 | \n",
" 836376.0 | \n",
" 836376.0 | \n",
" 836376.0 | \n",
" 836376.0 | \n",
" 836376.0 | \n",
" 836376.0 | \n",
" 836376.0 | \n",
" 836376.0 | \n",
" 836376.0 | \n",
" 836376.0 | \n",
" 836376.0 | \n",
" 836376.0 | \n",
" 836376.0 | \n",
" 836376.0 | \n",
" 836376.0 | \n",
" 836376.0 | \n",
"
\n",
" \n",
" mean | \n",
" 152.4 | \n",
" 0.5 | \n",
" 0.5 | \n",
" 0.5 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
"
\n",
" \n",
" std | \n",
" 37.1 | \n",
" 0.1 | \n",
" 0.2 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.1 | \n",
"
\n",
" \n",
" min | \n",
" 60.0 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
"
\n",
" \n",
" 25% | \n",
" 120.0 | \n",
" 0.5 | \n",
" 0.4 | \n",
" 0.4 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
"
\n",
" \n",
" 50% | \n",
" 160.0 | \n",
" 0.5 | \n",
" 0.5 | \n",
" 0.5 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
"
\n",
" \n",
" 75% | \n",
" 180.0 | \n",
" 0.6 | \n",
" 0.6 | \n",
" 0.6 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
"
\n",
" \n",
" max | \n",
" 200.0 | \n",
" 0.8 | \n",
" 0.9 | \n",
" 0.9 | \n",
" 0.5 | \n",
" 0.2 | \n",
" 0.2 | \n",
" 0.2 | \n",
" 0.2 | \n",
" 0.4 | \n",
" 0.2 | \n",
" 0.2 | \n",
" 0.2 | \n",
" 0.2 | \n",
" 0.4 | \n",
" 0.2 | \n",
" 0.2 | \n",
" 0.2 | \n",
" 0.2 | \n",
" 0.4 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
"\n",
" \n",
"
\n",
"
\n",
" "
]
},
"metadata": {},
"execution_count": 35
}
],
"source": [
"my_feature.describe()"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "K00WeBUZpfan"
},
"source": [
"Just another describe to ensure our label is the one we want before model building. Check that counts are the same between label and features. Ensure values look reasonable."
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {
"id": "rFlDsxaOcK3F",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "e2cf34f1-d720-47e3-b0ce-844f4a14d2a1"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"count 836376.0\n",
"mean -34.5\n",
"std 18.4\n",
"min -125.9\n",
"25% -45.0\n",
"50% -31.9\n",
"75% -21.0\n",
"max -0.1\n",
"Name: MonoMFE, dtype: float64"
]
},
"metadata": {},
"execution_count": 36
}
],
"source": [
"my_label.describe()"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "8RbxM0tNo0wV"
},
"source": [
"Make sure all fields are set to be numeric"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {
"id": "PZKzpaI-oXOU",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 424
},
"outputId": "c9a9dc97-0235-4da7-97c7-b8a9d7e9e647"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" Length GCpercent CGratio AUratio AA AU AG AC UA UU UG UC \\\n",
"0 100 0.8 0.7 0.2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.1 \n",
"1 100 0.8 0.7 0.2 0.0 0.0 0.0 0.0 0.0 0.1 0.1 0.1 \n",
"2 100 0.8 0.7 0.2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.1 \n",
"3 100 0.8 0.7 0.2 0.0 0.0 0.0 0.0 0.0 0.1 0.0 0.1 \n",
"4 100 0.8 0.7 0.2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.1 \n",
"... ... ... ... ... .. .. .. .. .. .. .. .. \n",
"836371 80 0.8 0.4 0.5 0.0 0.0 0.1 0.0 0.0 0.0 0.1 0.0 \n",
"836372 80 0.8 0.4 0.5 0.0 0.0 0.1 0.0 0.0 0.0 0.1 0.0 \n",
"836373 80 0.8 0.4 0.5 0.0 0.0 0.1 0.0 0.0 0.0 0.1 0.0 \n",
"836374 80 0.8 0.4 0.5 0.0 0.0 0.1 0.0 0.0 0.0 0.1 0.0 \n",
"836375 80 0.8 0.4 0.5 0.0 0.0 0.1 0.0 0.0 0.0 0.1 0.0 \n",
"\n",
" GA GU GG GC CA CU CG CC \n",
"0 0.0 0.0 0.0 0.1 0.0 0.1 0.1 0.2 \n",
"1 0.0 0.1 0.0 0.1 0.0 0.1 0.1 0.3 \n",
"2 0.0 0.0 0.0 0.1 0.0 0.1 0.1 0.2 \n",
"3 0.0 0.1 0.0 0.1 0.0 0.1 0.1 0.3 \n",
"4 0.0 0.0 0.0 0.1 0.0 0.1 0.1 0.3 \n",
"... .. .. .. .. .. .. .. .. \n",
"836371 0.0 0.1 0.2 0.2 0.0 0.0 0.2 0.1 \n",
"836372 0.1 0.1 0.2 0.1 0.0 0.0 0.1 0.1 \n",
"836373 0.1 0.0 0.2 0.2 0.0 0.0 0.1 0.1 \n",
"836374 0.1 0.1 0.2 0.2 0.0 0.0 0.2 0.1 \n",
"836375 0.1 0.1 0.2 0.1 0.0 0.0 0.1 0.1 \n",
"\n",
"[836376 rows x 20 columns]"
],
"text/html": [
"\n",
" \n",
"
\n",
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Length | \n",
" GCpercent | \n",
" CGratio | \n",
" AUratio | \n",
" AA | \n",
" AU | \n",
" AG | \n",
" AC | \n",
" UA | \n",
" UU | \n",
" UG | \n",
" UC | \n",
" GA | \n",
" GU | \n",
" GG | \n",
" GC | \n",
" CA | \n",
" CU | \n",
" CG | \n",
" CC | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 100 | \n",
" 0.8 | \n",
" 0.7 | \n",
" 0.2 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.2 | \n",
"
\n",
" \n",
" 1 | \n",
" 100 | \n",
" 0.8 | \n",
" 0.7 | \n",
" 0.2 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.3 | \n",
"
\n",
" \n",
" 2 | \n",
" 100 | \n",
" 0.8 | \n",
" 0.7 | \n",
" 0.2 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.2 | \n",
"
\n",
" \n",
" 3 | \n",
" 100 | \n",
" 0.8 | \n",
" 0.7 | \n",
" 0.2 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.3 | \n",
"
\n",
" \n",
" 4 | \n",
" 100 | \n",
" 0.8 | \n",
" 0.7 | \n",
" 0.2 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.3 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 836371 | \n",
" 80 | \n",
" 0.8 | \n",
" 0.4 | \n",
" 0.5 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.2 | \n",
" 0.2 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.2 | \n",
" 0.1 | \n",
"
\n",
" \n",
" 836372 | \n",
" 80 | \n",
" 0.8 | \n",
" 0.4 | \n",
" 0.5 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.2 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.1 | \n",
"
\n",
" \n",
" 836373 | \n",
" 80 | \n",
" 0.8 | \n",
" 0.4 | \n",
" 0.5 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.2 | \n",
" 0.2 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.1 | \n",
"
\n",
" \n",
" 836374 | \n",
" 80 | \n",
" 0.8 | \n",
" 0.4 | \n",
" 0.5 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.2 | \n",
" 0.2 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.2 | \n",
" 0.1 | \n",
"
\n",
" \n",
" 836375 | \n",
" 80 | \n",
" 0.8 | \n",
" 0.4 | \n",
" 0.5 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.2 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.1 | \n",
"
\n",
" \n",
"
\n",
"
836376 rows × 20 columns
\n",
"
\n",
"
\n",
" \n",
" \n",
"\n",
" \n",
"
\n",
"
\n",
" "
]
},
"metadata": {},
"execution_count": 37
}
],
"source": [
"my_feature.apply(pd.to_numeric)\n"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {
"id": "xcyw0QljtPSO",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "5cbfac4c-855f-4039-e258-72f46343b809"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"0 -19.5\n",
"1 -19.3\n",
"2 -19.8\n",
"3 -18.9\n",
"4 -19.0\n",
" ... \n",
"836371 -40.2\n",
"836372 -40.3\n",
"836373 -40.0\n",
"836374 -40.6\n",
"836375 -40.2\n",
"Name: MonoMFE, Length: 836376, dtype: float64"
]
},
"metadata": {},
"execution_count": 38
}
],
"source": [
"my_label.apply(pd.to_numeric)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "K24afla-4s2x"
},
"source": [
"## Training the model\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "NRd8ncTmq435"
},
"source": [
"Here you can modify the parameters (learning rate, epochs, and batch size). You must also ensure that your \"shape\" is correct. The format for defining the shape is (X,) where x is number of columns in feature dataframe followed by just a comma."
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {
"id": "Ye730h13CQ97",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "9a90d314-7bd0-49aa-c2cf-970b25c35825"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Epoch 1/150\n",
"697/697 [==============================] - 4s 5ms/step - loss: 639.3092 - root_mean_squared_error: 25.2846\n",
"Epoch 2/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 196.3606 - root_mean_squared_error: 14.0129\n",
"Epoch 3/150\n",
"697/697 [==============================] - 5s 7ms/step - loss: 119.9975 - root_mean_squared_error: 10.9543\n",
"Epoch 4/150\n",
"697/697 [==============================] - 4s 6ms/step - loss: 100.1245 - root_mean_squared_error: 10.0062\n",
"Epoch 5/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 87.9115 - root_mean_squared_error: 9.3761\n",
"Epoch 6/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 78.1567 - root_mean_squared_error: 8.8406\n",
"Epoch 7/150\n",
"697/697 [==============================] - 3s 4ms/step - loss: 69.5773 - root_mean_squared_error: 8.3413\n",
"Epoch 8/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 62.4277 - root_mean_squared_error: 7.9011\n",
"Epoch 9/150\n",
"697/697 [==============================] - 4s 6ms/step - loss: 55.9522 - root_mean_squared_error: 7.4801\n",
"Epoch 10/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 50.1049 - root_mean_squared_error: 7.0785\n",
"Epoch 11/150\n",
"697/697 [==============================] - 3s 4ms/step - loss: 44.6236 - root_mean_squared_error: 6.6801\n",
"Epoch 12/150\n",
"697/697 [==============================] - 3s 4ms/step - loss: 39.0956 - root_mean_squared_error: 6.2526\n",
"Epoch 13/150\n",
"697/697 [==============================] - 3s 4ms/step - loss: 33.9663 - root_mean_squared_error: 5.8281\n",
"Epoch 14/150\n",
"697/697 [==============================] - 3s 4ms/step - loss: 29.6879 - root_mean_squared_error: 5.4487\n",
"Epoch 15/150\n",
"697/697 [==============================] - 3s 4ms/step - loss: 26.2835 - root_mean_squared_error: 5.1267\n",
"Epoch 16/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 23.4873 - root_mean_squared_error: 4.8464\n",
"Epoch 17/150\n",
"697/697 [==============================] - 3s 4ms/step - loss: 21.0786 - root_mean_squared_error: 4.5911\n",
"Epoch 18/150\n",
"697/697 [==============================] - 3s 4ms/step - loss: 18.9600 - root_mean_squared_error: 4.3543\n",
"Epoch 19/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 17.3737 - root_mean_squared_error: 4.1682\n",
"Epoch 20/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 16.0618 - root_mean_squared_error: 4.0077\n",
"Epoch 21/150\n",
"697/697 [==============================] - 3s 4ms/step - loss: 14.9524 - root_mean_squared_error: 3.8668\n",
"Epoch 22/150\n",
"697/697 [==============================] - 3s 4ms/step - loss: 14.0327 - root_mean_squared_error: 3.7460\n",
"Epoch 23/150\n",
"697/697 [==============================] - 3s 4ms/step - loss: 13.2590 - root_mean_squared_error: 3.6413\n",
"Epoch 24/150\n",
"697/697 [==============================] - 3s 4ms/step - loss: 12.4937 - root_mean_squared_error: 3.5346\n",
"Epoch 25/150\n",
"697/697 [==============================] - 3s 4ms/step - loss: 11.8049 - root_mean_squared_error: 3.4358\n",
"Epoch 26/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 11.1505 - root_mean_squared_error: 3.3392\n",
"Epoch 27/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 10.5037 - root_mean_squared_error: 3.2409\n",
"Epoch 28/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 9.9116 - root_mean_squared_error: 3.1483\n",
"Epoch 29/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 9.3931 - root_mean_squared_error: 3.0648\n",
"Epoch 30/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 8.8643 - root_mean_squared_error: 2.9773\n",
"Epoch 31/150\n",
"697/697 [==============================] - 3s 4ms/step - loss: 8.4094 - root_mean_squared_error: 2.8999\n",
"Epoch 32/150\n",
"697/697 [==============================] - 3s 4ms/step - loss: 7.9888 - root_mean_squared_error: 2.8264\n",
"Epoch 33/150\n",
"697/697 [==============================] - 3s 4ms/step - loss: 7.6322 - root_mean_squared_error: 2.7626\n",
"Epoch 34/150\n",
"697/697 [==============================] - 3s 4ms/step - loss: 7.2829 - root_mean_squared_error: 2.6987\n",
"Epoch 35/150\n",
"697/697 [==============================] - 4s 5ms/step - loss: 6.9896 - root_mean_squared_error: 2.6438\n",
"Epoch 36/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 6.7021 - root_mean_squared_error: 2.5888\n",
"Epoch 37/150\n",
"697/697 [==============================] - 4s 5ms/step - loss: 6.4707 - root_mean_squared_error: 2.5438\n",
"Epoch 38/150\n",
"697/697 [==============================] - 4s 6ms/step - loss: 6.2299 - root_mean_squared_error: 2.4960\n",
"Epoch 39/150\n",
"697/697 [==============================] - 5s 7ms/step - loss: 6.0281 - root_mean_squared_error: 2.4552\n",
"Epoch 40/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 5.8690 - root_mean_squared_error: 2.4226\n",
"Epoch 41/150\n",
"697/697 [==============================] - 4s 6ms/step - loss: 5.7094 - root_mean_squared_error: 2.3894\n",
"Epoch 42/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 5.5660 - root_mean_squared_error: 2.3592\n",
"Epoch 43/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 5.4271 - root_mean_squared_error: 2.3296\n",
"Epoch 44/150\n",
"697/697 [==============================] - 4s 6ms/step - loss: 5.2882 - root_mean_squared_error: 2.2996\n",
"Epoch 45/150\n",
"697/697 [==============================] - 4s 6ms/step - loss: 5.1793 - root_mean_squared_error: 2.2758\n",
"Epoch 46/150\n",
"697/697 [==============================] - 4s 6ms/step - loss: 5.0446 - root_mean_squared_error: 2.2460\n",
"Epoch 47/150\n",
"697/697 [==============================] - 4s 6ms/step - loss: 4.9433 - root_mean_squared_error: 2.2234\n",
"Epoch 48/150\n",
"697/697 [==============================] - 4s 6ms/step - loss: 4.8393 - root_mean_squared_error: 2.1998\n",
"Epoch 49/150\n",
"697/697 [==============================] - 4s 6ms/step - loss: 4.7356 - root_mean_squared_error: 2.1761\n",
"Epoch 50/150\n",
"697/697 [==============================] - 4s 6ms/step - loss: 4.6524 - root_mean_squared_error: 2.1569\n",
"Epoch 51/150\n",
"697/697 [==============================] - 4s 5ms/step - loss: 4.5616 - root_mean_squared_error: 2.1358\n",
"Epoch 52/150\n",
"697/697 [==============================] - 4s 6ms/step - loss: 4.4696 - root_mean_squared_error: 2.1142\n",
"Epoch 53/150\n",
"697/697 [==============================] - 3s 4ms/step - loss: 4.3922 - root_mean_squared_error: 2.0958\n",
"Epoch 54/150\n",
"697/697 [==============================] - 3s 4ms/step - loss: 4.2855 - root_mean_squared_error: 2.0702\n",
"Epoch 55/150\n",
"697/697 [==============================] - 3s 4ms/step - loss: 4.1919 - root_mean_squared_error: 2.0474\n",
"Epoch 56/150\n",
"697/697 [==============================] - 3s 4ms/step - loss: 4.1037 - root_mean_squared_error: 2.0258\n",
"Epoch 57/150\n",
"697/697 [==============================] - 3s 4ms/step - loss: 4.0537 - root_mean_squared_error: 2.0134\n",
"Epoch 58/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 3.9709 - root_mean_squared_error: 1.9927\n",
"Epoch 59/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 3.9214 - root_mean_squared_error: 1.9803\n",
"Epoch 60/150\n",
"697/697 [==============================] - 3s 4ms/step - loss: 3.8481 - root_mean_squared_error: 1.9616\n",
"Epoch 61/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 3.7683 - root_mean_squared_error: 1.9412\n",
"Epoch 62/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 3.7508 - root_mean_squared_error: 1.9367\n",
"Epoch 63/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 3.6959 - root_mean_squared_error: 1.9225\n",
"Epoch 64/150\n",
"697/697 [==============================] - 3s 4ms/step - loss: 3.6279 - root_mean_squared_error: 1.9047\n",
"Epoch 65/150\n",
"697/697 [==============================] - 3s 4ms/step - loss: 3.6046 - root_mean_squared_error: 1.8986\n",
"Epoch 66/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 3.5579 - root_mean_squared_error: 1.8862\n",
"Epoch 67/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 3.5166 - root_mean_squared_error: 1.8753\n",
"Epoch 68/150\n",
"697/697 [==============================] - 3s 4ms/step - loss: 3.4637 - root_mean_squared_error: 1.8611\n",
"Epoch 69/150\n",
"697/697 [==============================] - 3s 4ms/step - loss: 3.4250 - root_mean_squared_error: 1.8507\n",
"Epoch 70/150\n",
"697/697 [==============================] - 3s 4ms/step - loss: 3.3870 - root_mean_squared_error: 1.8404\n",
"Epoch 71/150\n",
"697/697 [==============================] - 3s 4ms/step - loss: 3.3457 - root_mean_squared_error: 1.8291\n",
"Epoch 72/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 3.3152 - root_mean_squared_error: 1.8208\n",
"Epoch 73/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 3.2870 - root_mean_squared_error: 1.8130\n",
"Epoch 74/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 3.2640 - root_mean_squared_error: 1.8067\n",
"Epoch 75/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 3.2135 - root_mean_squared_error: 1.7926\n",
"Epoch 76/150\n",
"697/697 [==============================] - 3s 4ms/step - loss: 3.1894 - root_mean_squared_error: 1.7859\n",
"Epoch 77/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 3.1377 - root_mean_squared_error: 1.7714\n",
"Epoch 78/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 3.1348 - root_mean_squared_error: 1.7706\n",
"Epoch 79/150\n",
"697/697 [==============================] - 3s 4ms/step - loss: 3.0821 - root_mean_squared_error: 1.7556\n",
"Epoch 80/150\n",
"697/697 [==============================] - 4s 6ms/step - loss: 3.0684 - root_mean_squared_error: 1.7517\n",
"Epoch 81/150\n",
"697/697 [==============================] - 3s 4ms/step - loss: 3.0142 - root_mean_squared_error: 1.7361\n",
"Epoch 82/150\n",
"697/697 [==============================] - 3s 4ms/step - loss: 3.0253 - root_mean_squared_error: 1.7393\n",
"Epoch 83/150\n",
"697/697 [==============================] - 3s 4ms/step - loss: 2.9675 - root_mean_squared_error: 1.7226\n",
"Epoch 84/150\n",
"697/697 [==============================] - 3s 4ms/step - loss: 2.9496 - root_mean_squared_error: 1.7174\n",
"Epoch 85/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.9379 - root_mean_squared_error: 1.7140\n",
"Epoch 86/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.9133 - root_mean_squared_error: 1.7068\n",
"Epoch 87/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.8791 - root_mean_squared_error: 1.6968\n",
"Epoch 88/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.8440 - root_mean_squared_error: 1.6864\n",
"Epoch 89/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.8425 - root_mean_squared_error: 1.6860\n",
"Epoch 90/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.8090 - root_mean_squared_error: 1.6760\n",
"Epoch 91/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.7931 - root_mean_squared_error: 1.6712\n",
"Epoch 92/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.7692 - root_mean_squared_error: 1.6641\n",
"Epoch 93/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.7449 - root_mean_squared_error: 1.6568\n",
"Epoch 94/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.7310 - root_mean_squared_error: 1.6526\n",
"Epoch 95/150\n",
"697/697 [==============================] - 3s 4ms/step - loss: 2.7023 - root_mean_squared_error: 1.6439\n",
"Epoch 96/150\n",
"697/697 [==============================] - 3s 4ms/step - loss: 2.6988 - root_mean_squared_error: 1.6428\n",
"Epoch 97/150\n",
"697/697 [==============================] - 3s 4ms/step - loss: 2.6747 - root_mean_squared_error: 1.6354\n",
"Epoch 98/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.6442 - root_mean_squared_error: 1.6261\n",
"Epoch 99/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.6269 - root_mean_squared_error: 1.6208\n",
"Epoch 100/150\n",
"697/697 [==============================] - 3s 4ms/step - loss: 2.6086 - root_mean_squared_error: 1.6151\n",
"Epoch 101/150\n",
"697/697 [==============================] - 4s 6ms/step - loss: 2.6048 - root_mean_squared_error: 1.6139\n",
"Epoch 102/150\n",
"697/697 [==============================] - 3s 4ms/step - loss: 2.5726 - root_mean_squared_error: 1.6039\n",
"Epoch 103/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.5583 - root_mean_squared_error: 1.5995\n",
"Epoch 104/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.5532 - root_mean_squared_error: 1.5979\n",
"Epoch 105/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.5289 - root_mean_squared_error: 1.5902\n",
"Epoch 106/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.5091 - root_mean_squared_error: 1.5840\n",
"Epoch 107/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.4945 - root_mean_squared_error: 1.5794\n",
"Epoch 108/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.4690 - root_mean_squared_error: 1.5713\n",
"Epoch 109/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.4674 - root_mean_squared_error: 1.5708\n",
"Epoch 110/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.4404 - root_mean_squared_error: 1.5622\n",
"Epoch 111/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.4199 - root_mean_squared_error: 1.5556\n",
"Epoch 112/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.4150 - root_mean_squared_error: 1.5540\n",
"Epoch 113/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.4044 - root_mean_squared_error: 1.5506\n",
"Epoch 114/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.3866 - root_mean_squared_error: 1.5449\n",
"Epoch 115/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.3740 - root_mean_squared_error: 1.5408\n",
"Epoch 116/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.3702 - root_mean_squared_error: 1.5396\n",
"Epoch 117/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.3487 - root_mean_squared_error: 1.5325\n",
"Epoch 118/150\n",
"697/697 [==============================] - 3s 4ms/step - loss: 2.3343 - root_mean_squared_error: 1.5278\n",
"Epoch 119/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.3184 - root_mean_squared_error: 1.5226\n",
"Epoch 120/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.3074 - root_mean_squared_error: 1.5190\n",
"Epoch 121/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.3060 - root_mean_squared_error: 1.5186\n",
"Epoch 122/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.2809 - root_mean_squared_error: 1.5103\n",
"Epoch 123/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.2650 - root_mean_squared_error: 1.5050\n",
"Epoch 124/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.2582 - root_mean_squared_error: 1.5027\n",
"Epoch 125/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.2474 - root_mean_squared_error: 1.4991\n",
"Epoch 126/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.2309 - root_mean_squared_error: 1.4936\n",
"Epoch 127/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.2103 - root_mean_squared_error: 1.4867\n",
"Epoch 128/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.2059 - root_mean_squared_error: 1.4852\n",
"Epoch 129/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.1836 - root_mean_squared_error: 1.4777\n",
"Epoch 130/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.1748 - root_mean_squared_error: 1.4747\n",
"Epoch 131/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.1834 - root_mean_squared_error: 1.4776\n",
"Epoch 132/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.1560 - root_mean_squared_error: 1.4683\n",
"Epoch 133/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.1513 - root_mean_squared_error: 1.4667\n",
"Epoch 134/150\n",
"697/697 [==============================] - 4s 6ms/step - loss: 2.1361 - root_mean_squared_error: 1.4615\n",
"Epoch 135/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.1392 - root_mean_squared_error: 1.4626\n",
"Epoch 136/150\n",
"697/697 [==============================] - 3s 4ms/step - loss: 2.1258 - root_mean_squared_error: 1.4580\n",
"Epoch 137/150\n",
"697/697 [==============================] - 3s 4ms/step - loss: 2.1026 - root_mean_squared_error: 1.4501\n",
"Epoch 138/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.0969 - root_mean_squared_error: 1.4481\n",
"Epoch 139/150\n",
"697/697 [==============================] - 6s 9ms/step - loss: 2.0778 - root_mean_squared_error: 1.4415\n",
"Epoch 140/150\n",
"697/697 [==============================] - 5s 7ms/step - loss: 2.0872 - root_mean_squared_error: 1.4447\n",
"Epoch 141/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.0562 - root_mean_squared_error: 1.4340\n",
"Epoch 142/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.0496 - root_mean_squared_error: 1.4316\n",
"Epoch 143/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.0537 - root_mean_squared_error: 1.4331\n",
"Epoch 144/150\n",
"697/697 [==============================] - 3s 4ms/step - loss: 2.0342 - root_mean_squared_error: 1.4263\n",
"Epoch 145/150\n",
"697/697 [==============================] - 3s 4ms/step - loss: 2.0359 - root_mean_squared_error: 1.4269\n",
"Epoch 146/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.0162 - root_mean_squared_error: 1.4199\n",
"Epoch 147/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 2.0137 - root_mean_squared_error: 1.4191\n",
"Epoch 148/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 1.9911 - root_mean_squared_error: 1.4111\n",
"Epoch 149/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 1.9885 - root_mean_squared_error: 1.4102\n",
"Epoch 150/150\n",
"697/697 [==============================] - 3s 5ms/step - loss: 1.9712 - root_mean_squared_error: 1.4040\n"
]
}
],
"source": [
"learning_rate=0.001\n",
"epochs=150\n",
"my_batch_size=1200\n",
"units = 1\n",
"shape = (20,)\n",
"\n",
"my_model = build_model(learning_rate, units, shape)\n",
"trained_weight, trained_bias, epochs, rmse = train_model(my_model, my_feature, \n",
" my_label, epochs,\n",
" my_batch_size)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "YViVZelvlp1Z"
},
"source": [
"Now we can save the model. "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "I_hFLYbDlpZx",
"outputId": "470a1218-6b73-4dab-e1c6-325ea261d728",
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"INFO:tensorflow:Assets written to: /content/drive/My Drive/DiStd/assets\n"
]
}
],
"source": [
"folder_name = \"set/path/of/model/folder\"\n",
"tf.keras.models.save_model(my_model, folder_name)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "_JAG5JYytnTr"
},
"source": [
"## The following code can be used to troubleshoot the model building steps IF the training function is failing"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "HH4eRnesmGg4"
},
"outputs": [],
"source": [
"my_model.add(tf.keras.layers.Dense(units=20, input_shape=(1, )))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 324
},
"collapsed": true,
"id": "AWvJ0HaDloDX",
"outputId": "b161c90a-315a-47f7-fda9-53593889f546"
},
"outputs": [
{
"ename": "TypeError",
"evalue": "ignored",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mhistory\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmy_model\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmy_feature\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmy_label\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmy_batch_size\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mepochs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;32m/usr/local/lib/python3.7/dist-packages/keras/engine/training.py\u001b[0m in \u001b[0;36mfit\u001b[0;34m(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, validation_batch_size, validation_freq, max_queue_size, workers, use_multiprocessing)\u001b[0m\n\u001b[1;32m 1146\u001b[0m \u001b[0muse_multiprocessing\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0muse_multiprocessing\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1147\u001b[0m \u001b[0mmodel\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1148\u001b[0;31m steps_per_execution=self._steps_per_execution)\n\u001b[0m\u001b[1;32m 1149\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1150\u001b[0m \u001b[0;31m# Container that configures and calls `tf.keras.Callback`s.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/usr/local/lib/python3.7/dist-packages/keras/engine/data_adapter.py\u001b[0m in \u001b[0;36mget_data_handler\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 1381\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mgetattr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"model\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"_cluster_coordinator\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1382\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0m_ClusterCoordinatorDataHandler\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1383\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mDataHandler\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1384\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1385\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/usr/local/lib/python3.7/dist-packages/keras/engine/data_adapter.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, x, y, sample_weight, batch_size, steps_per_epoch, initial_epoch, epochs, shuffle, class_weight, max_queue_size, workers, use_multiprocessing, model, steps_per_execution, distribute)\u001b[0m\n\u001b[1;32m 1141\u001b[0m \u001b[0mbatch_size\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mbatch_size\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1142\u001b[0m \u001b[0msteps\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0msteps_per_epoch\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1143\u001b[0;31m \u001b[0mepochs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mepochs\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0minitial_epoch\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1144\u001b[0m \u001b[0msample_weights\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0msample_weight\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1145\u001b[0m \u001b[0mshuffle\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mshuffle\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mTypeError\u001b[0m: unsupported operand type(s) for -: 'list' and 'int'"
]
}
],
"source": [
"history = my_model.fit(my_feature, my_label, my_batch_size, epochs)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "YJzOduxVl2GJ"
},
"outputs": [],
"source": [
"epochs = history.epoch\n",
"hist = pd.DataFrame(history.history)\n",
"rmse = hist[\"root_mean_squared_error\"]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "scrzhO48pcRj"
},
"outputs": [],
"source": [
"trained_weight = my_model.get_weights()[0]\n",
"trained_bias = my_model.get_weights()[1]\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "Mxwc_RAupwP_"
},
"outputs": [],
"source": [
"print(trained_weight)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "vStvuHK_t1hs"
},
"source": [
"## If you can get the weights and bias, you can now plot the results!"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "M694Qnq1rmaG"
},
"source": [
"The loss curve should approach zero (but will likely never reach it). Poor MFE models tend to plateau down to > 5. Try to adjust model and parameters until values reach closer to 2. For standard deviation models the loss and RMSE should be much lower (0.7)"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 281
},
"id": "eH1ur8epqzru",
"outputId": "0008ffc3-1f0d-4fb7-d870-01c204aa633e"
},
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
""
],
"image/png": "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\n"
},
"metadata": {
"needs_background": "light"
}
}
],
"source": [
"plot_the_loss_curve(epochs, rmse)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "jYSpvaglNsDp"
},
"source": [
"[\"Length\", \"GCpercent\",\"CGratio\", \"AUratio\", \"MFE\", \"AA\",\"AU\",\"AG\",\"AC\",\"UA\",\"UU\",\"UG\",\"UC\",\"GA\",\"GU\",\"GG\",\"GC\",\"CA\",\"CU\",\"CG\", \"CC\"]"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "okgNzjrgB4-R"
},
"source": [
"Plot Results for Mean MFE prediction. \n",
"#### *These cells will need to be changed depending on the model you are building.*\n",
"Are you building a dinucleotide or mononucleotide model? Change names accordingly"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {
"id": "pUYcXkVqCOr3"
},
"outputs": [],
"source": [
"meanMFE_result = my_model.predict(training_df[[\"Length\", \"GCpercent\",\"CGratio\", \"AUratio\", 'AA', 'AU', 'AG',\n",
" 'AC', 'UA', 'UU', 'UG', 'UC', 'GA', 'GU', 'GG', 'GC', 'CA', 'CU', 'CG', 'CC']])"
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {
"id": "BMBf-xVmEejC",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 296
},
"outputId": "4177914c-ec6c-49f0-f439-a7593a88a7a1"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
""
]
},
"metadata": {},
"execution_count": 60
},
{
"output_type": "display_data",
"data": {
"text/plain": [
""
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAY0AAAEGCAYAAACZ0MnKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3de3ycdZn//9d1zyRp6RHbcmjTAKVUtqlQbaAgB5GDIkJRYQHhK8Iu9rsuIChQD8hJHu5vOaz8FPyhqOzXfmWXU11aTqIsqAtSsGBSmsohtAJJOYbSNj1Mkpnr98fcEybJJDNNZjIzmffz8ZhH577vyczFTZIrn9P1MXdHREQkF0GxAxARkfKhpCEiIjlT0hARkZwpaYiISM6UNEREJGfRYgdQaFOnTvW999672GGIiJSNZ5999l13n5bp2qhPGnvvvTerVq0qdhgiImXDzF4d6Jq6p0REJGdKGiIikjMlDRERyZmShoiI5ExJQ0REcqakISIyyrR3xGh6/X3aO2J5f+9RP+VWRGS0au+I0bpxO7W7jmXK+BoA7lj5KlfetwYMDPjB6fNZNH9G3j5TSUNEpAwtb2zjm8tWUxUEdCUSXH/KAWzZ0c3l961JviDc9eJrdzZy2OypPUlluJQ0RETKTHtHjG8uW82OrgQ7SADw9bubiCcy74/06+da+cqR++blszWmISJSZlo3bqcq6P3re6CEAdC8YXPePltJQ0SkzNTuOpauRCLn1zfUTc7bZ5dd0jCz483sRTNrMbNvFTseEZGRNmV8DdefcgCW4+v/45kBS0nttLJKGmYWAX4MfAaYC3zRzOYWNyoRkeHb2WmyP/+fVxi4Q6q3tW9uHXpgfZTbQPjBQIu7rwMwszuBk4G1RY1KRGQYMs2EWjR/Bu0dMZo3bOLFN7fwavs2Nm/rZO2bm3l78w42x3LvnsqncksaM4DX045bgYV9X2Rmi4HFAHV1dSMTmYjIEGSaCXXJPU2saGzjsRfeoTipYWBl1T2VK3e/zd0b3L1h2rSM+4iIiJSE5g2bCKz36ERX3Hm0BBMGlF9Low2YmXZcG54TESk7d6x8latWrKG7FLPDAMotafwZ2M/M9iGZLM4AzixuSCIiO6e9I8bP/2cdt/5hXbFD2WlllTTcvdvMLgAeASLA7e7eXOSwREQGlV4j6jdr3uTq+5vpiuc696m0lFXSAHD3h4CHih2HiEgmfYsILm9sY8m9TRjGjnLqhxpA2SUNEZFS1N4R446nX+PHj7cQDYyueIKvfmJfbn68hWSFj/JsWfSlpCEiMkzLG9u49O5GusKGRGp53g8faylaTIWipCEiMgztHTG+flcjg9QLHFWUNEREBtF3jCK5Snsz4NRPn8TN//1yxSQMUNIQEemRaRA7vbzHaQ21/Oqp10py0d1IUdIQEaF//acrTpzLtQ+s7VXeY+lTrxU5yqGpzrUcbg6UNESk4mWq/3TVimaqR0mhpSkT8rPVKyhpiIjQvGETffc06o473fHixJNvx/7d7nl7r1GSR0VEhmZ5Yxvn/XIVnfHRO1JxXH3+koZaGiJSsVatb+eSe5roLtOSHrmIBkb99En5e7+8vZOISInoOwsq0/Wv39XIH19+twjRjaxrTq7PeA+GSklDREaV9FlQnfEEF3xyNmcurOv5xXnHylf57n1rRklRj8Gd8/G9OGvhXnl9TyUNERk1Ms2C+rffvcQtj7/MDaceyJYd3Vx+35oiRzlyjt4/f2MZKUoaIjJqtG7cTlUQ9CSMlFi3c9m9TRW1cjswqJ8+Mf/vm/d3FBEpgvaOGJu2dw04CyrAiI/iAe++gjwu6EunloaIlL30cYx4IkFVxPptcrR9FOxlsTPGVkVp3bg9r4PgoJaGiJSx9o4Yf3zpHZbcmxzH2BLrpjuR/Cv7q5+YRU3UGFcdKXaYRdGVSFC769i8v69aGiJSllKtiwAj1q8VYew7bTzXfeEjXLG8cga+AXapipDAuf6UA/LeygAlDREpI6n1F+OqIz2zpDKJdSe49N7VIxxd8dVEA37ypQXUT59YkIQBShoiUibSxy1i3XGCQo30lqnqSMANpx7AkXOmFfRzlDREpORlWn9BBc2EymbenhP45T8uLFjrIp0GwkWkpLV3xHj8hbeJmFoWmYytivD9LxRm/CKTkmtpmNkNwElAJ/AKcK67vx9e+zbwj0Ac+Jq7P1K0QEWk4FJdUhEztnaOkjrleeZ4QWZJDaQUWxq/A+a5+wHAS8C3AcxsLnAGUA8cD/x/ZlaZc+lEKkB6l5QSxgcO3nsy1RFjQk2UMVVBwWZJDaTkWhru/tu0w5XAqeHzk4E73T0GrDezFuBg4KkRDlFERkDrxu1ENdjdyzkf34urF83LWsW3kEouafTxD8Bd4fMZJJNISmt4rh8zWwwsBqirqytkfCJSILW7jmX7AFNqK9WFR+8HwJTxNSOeLFKKkjTM7FFgjwyXLnf35eFrLge6gTt29v3d/TbgNoCGhgZNsRApM+0dMZo3bMZdP74plxw3p2iJIl1Rkoa7HzvYdTM7BzgROMY/+K5pA2amvaw2PCciZSa9ewWgecNmwOnqTvCLJ9azct17RAIqqirtYGqixpkLS6PXpOS6p8zseGAJ8Al335Z2aQXwH2b2A2A6sB/wTBFCFJFhSF+kt6M7TnfcM26IlFDPFOOqI8S9cCVBhqLkkgZwC1AD/M6S87JXuvs/uXuzmd0NrCXZbXW+u2tKhUgZaXlrC5fdu5rO7kS/PS/kA1UR4+pF9cybPqkog92DKbmk4e6zB7n2feD7IxiOiOTJ8sY2LruniU6t5B5UVcR4+GtHMHv3CcUOJaOSSxoiMjr0Hbf45rLVShg5uHpRfckmDFDSEJECSB+36EokOPfje6MVF4MLDK49eR5nLdyr2KEMSklDRHKWy6KyTMUFb/3DupEMs6wEwP/+xCzOO2JWSY1dDERJQ0Ry0rf1cP0pB7Bofv/1ta0btydnRmmgO6uIGY9cXLrjF5mUYu0pESkx6a2HLbFudnQluOzeJto7YrR3xGh6/X3aO2JAaiV3d5EjLg9xdzZs2l7sMHaKWhoiklWm1kOs27nivjU89uLbvVof0yeNod/uqzKI8hrtUdIQkaxqdx1LZ7z/sqiH1rwJ0JNMLrqzMeNCPcksGkD99InFDmOnqHtKRLKaMr6GCz65X9bXKWHkpiYSUBM1fnDa/LIY/E6nloaI5OTMhXXc8ngLMfU9DUvE4GdfXkD99ElllzAgx5aGmf29mU0In3/XzH5tZh8rbGgiUkrWv9PBUXOmUR0xdqmOUB0x5u1ZPrN+iq0mmmxd3HT6fI6cs1tZJgzIvaVxhbvfY2aHA8cCNwC3AgsLFpmIlIz/9fOVPNHS3nOcGt9Y88aWYoVUVmqixs/OLt/WRbpcxzRSI2CfBW5z9weB6sKEJCKlor0jxp1Pv9orYUjuogGMqQq44dQDy7p1kS7Xlkabmf0UOA64zsxq0CC6yKiWWsyX0KYWQxINjNvPOYj66RNHRbJIyTVpnAYcD9zo7u+b2Z7AZYULS0SKob0jxlOvvMur7dv44X+/rAKDQ1QTDbjh1AM4cs60YoeSd4MmDTM72t0fc/dtZvYXd18P4O5vmNmhIxOiiIyE5Y1tfP2uRu2WN0yXHDeHMxfWjarWRbpsLY0bgdQsqWVpzwG+C/y6EEGJyMhq74hx2T1NShhDNGVclGsWzePQfaeO2mSRki1p2ADPMx2LSJlq3bhdP9BDsM+UsXz3s3M5Zu4exQ5lxGRLGj7A80zHIlLiBiptPq46QreaGTk7/6hZfP6jtWVVnTZfsiWNWWa2gmSrIvWc8HifgkYmInk1UGnznllSyhk5ueS4OVx4TPaSKqNVtqRxctrzG/tc63ssIiUk03ar6RsjLVm2mrl7TmTJvU3EupUxclETDThzYV2xwyiqbEljvbu/NiKRiEjeLG9sY8m9TQQY3Z7gvMNn9SttHmDc+odXlDCyCIBxNdGe1tloH+jOJlvSuI9wxpSZLXP3UwofkogMR3tHjEvubgz3tEgmhEzbrW7rirPsubaRDa4MRSKw+MhZo3oa7c7Itqo7fULFrEIG0u+DzS4xMzezqeGxmdmPzKzFzFarYKJIZk+98q42Qcqjrjj8+PctxQ6jZGRLGoPNnioYM5sJfApI7xr7DLBf+FhMsmCiiKRZ3tjG1+9uLHYYo44nnNaN5bUta6FkSxoHmtlmM9sCHBA+32xmW8xscwHjuglYQu9EdTKw1JNWApPDciYiwgf7eHf132BPhikWd8ZVR4odRkkYdEzD3Uf8LpnZyUCbuzeZ9VpuNAN4Pe24NTz3Rob3WEyyNUJdXWXPdJDRLzVLatP2rn6D3TI0EYP0sltjqgK2diobQ/baUx8a7Lq7vzeUDzWzR4FMSygvB75DsmtqyNz9NuA2gIaGBk0NkVHrjpWvcs0Da6kKjK54grgWWwxbAEQjAfE+A0OpqcuVLtvsqXdJ/kXfHR6n/+nvDHFw3N2PzXTezD5CctFgqpVRCzxnZgcDbcDMtJfXhudEKtIdK1/l8vvWANBZ5FhGi8Dg/z19PpBcx5K+EFIzp5KyJY0fAZ8EngT+E3jC3Qv2p4y7Pw/sljo2s78BDe7+brga/QIzu5PkjoGb3L1f15RIJWjviHHN/c3FDmNUOaOhlsuO378nORw2e2rGkiuVLtuYxsWW/JP/KOBLwM1m9lvg1lSZ9BH0EHAC0AJsA84d4c8XKRlPvaKd9PJhTFVAwuGqk+Zy1sK9el2bMr5GySKDrJswhS2Lx83sL8AZwLXAy8DPChwb7r53nzjOL/RnipSS5KZI7bzbsYPDZ09j9u4TuPK+51m6UoUahqsmGnDblxpG3c56hZZtIHwcyamupwPTSO6fsUClRUQKb3ljGxff2Zg27/yvfLp+Nx5pfruIUZWvSGDgzi7VH5QEGY076xVatpbG2yRbFXeG/zrQYGYNAO6uTZhECiC5KVJjvxW1ShhDEw3o2a9b4xTDky1p3EMyUXw4fKRztHOfSEEkN0UKQGsu8iIw6+mGUrIYnmwD4eeMUBwikqZ217G4EkbeXHj0fkoWeZKtjAgAZjbJzH5gZqvCx7+Z2aRCBydSyS48ek6xQxgVaqJW8Xtg5FPW2VOh24E1wGnh8ZeAfwe+UIigRCpZaic9GbrAYEw0oDvhXHlivVoZeZRr0ti3z14a15iZSmmKDFP67nobt3byRMu7/D8Pv0BMtc2HrCYa8I3j5vBvv3uJ6mjAtQ+uZcKYKIvmzyh2aKNCrklju5kd7u5PAJjZYYDqBItkkZ4U+v61m7673nYliWGrjhhBYFzx2blc++BaOrsTdIYFkJYsW81hs6eqxZEHuSaNfwKWhuMYBrwHnFOooERGg1Q3U3r9otRfu5l215Ohu+iY2Ry9/+7U7jqW1o3b+1X7rQoCWjduV9LIg5yShrs3kdxbY2J4XMi9NETKXmpvix1diZ5fXpfd28TkXaqYPmksT7Rod718+c4J+7P4yH17netKJPodq0ptfuSUNMysBjgF2BuIpva5cPfvFSwykTLV3hHj8RfeJtJ7Pxhi3c55v1xFZ9yxAb5Wchcx+N7n5mWsGXX9KQeoSm2B5No9tRzYBDwLxAoXjkh5S3VJRcwybtrTGe7sow6p4btr8SE07DMl47VF82eoSm2B5Jo0at39+IJGIlLG2jtiNG/YzJJ7V2vm0wgYUxVQFR18Y1Gt/i6MXJPGn8zsI+F+FyKSJtW6CDAljAIxerfO3F1jFEWS04pw4HDgWTN70cxWm9nzZqbVR1Lx0ge8t3VpD+lCiUaMSNpAUMLhyZZ3ixdQBcu1pfGZgkYhUqZaN2q50kiojgR0kSAejgl1xV1rL4okp5aGu78KTAZOCh+Tw3MiFW1cdYQdXeqSKrSueILqaO9fV6m1FzKyci1YeBFwB8n9u3cDfmVmFxYyMJFysLUzTnWunbyS1ckH7smNpx7Adz6zP2OqAibURBlTFXDVSfV0J3rPOdPai+LItXvqH4GF7r4VwMyuA54Cbi5UYCLlYE3bJjrV0MiLX5y9gGPm7tFzfMqC2l5TZieMiWrtRQnINWkYkD7KFw/PiVSs9o4Y1z64tthhjApjqgKmThjT61zfKbNae1Eack0a/w48bWb/FR5/DvhFYUISKa7BigymvybTqm8Zuly6mrT2ovhyrT31AzP7PcmptwDnuvtfChaVSJEMVmSw5a0tNL7+Pu1bO7np0ZeIBplXfcvOqYkG6moqI4MmDTP7UNrh38JHzzV3f68QQYWD7OeT7AZ70N2XhOe/TXJ8JQ58zd0fKcTnS2XKVGTw0nuamLvnRJY+9TeWrnytuAGOQrtURfjJlxZw5JxpxQ5FcpStpfEu0AqEVel7jWM4MCvfAZnZJ4GTgQPdPWZmu4Xn5wJnAPXAdOBRM5vj7vpTT/IiU0ntzrhz/A//qIq0eRJAr53PEzj10ycWKxwZgmxJ40fAJ4Engf8EnnD3Qtda+yrwr+4eA3D3t8PzJwN3hufXm1kLcDDJWVwiw1a769h+JbUBJYxhqgoMM+OqRXOZUKMZUOVu0KTh7hdbsg76UST3Bb/ZzH4L3Oru6wsU0xzgCDP7PrADuNTd/wzMAFamva41PNePmS0GFgPU1WlDeclNqqT2pfc09VSjlaELDL51/P4snDWl16QCzYAqb1kHwsOWxeNm9heS3UPXAi8DPxvqh5rZo8AeGS5dHsb0IeAQ4CDgbjPbqW4wd78NuA2goaFBP/2Ss8NmT+XMg2fyf57S+MVwGPDbi49k9u4T+l3TDKjylm0gfBzJbqHTgWnAr4EF7j6snyh3P3aQz/wq8OswWT1jZglgKtAGzEx7aW14TiQvUnt2x7r1d8ZwfeO4ORkThpS/bC2Nt0m2Ku4M/3WgwcwaANz91wWI6T6S4yiPm9kcoJrkgPwK4D/M7AckB8L3A54pwOdLBWp5awuXqVsqL6oixpkL1S08WmVLGveQTBQfDh/pnGTLI99uB243szVAJ/DlsNXRbGZ3A2tJzuY6XzOnJB+WN7Zx2b2rlTDy5OqT6tX9NIpZ4SdDFVdDQ4OvWrWq2GFIiei72ru9I8bH//W/1SWVB1UR4+pF9f327JbyY2bPuntDpmvZxjS+Mdh1d//BcAITGUmZVnuvfWOzEsYQBAaRwBgTjdAZT3DBJ2dz5sI6tTAqQLbuqdRI1odJzmRaER6fhMYTpIxkWu19yT1NdKlLaqfd8sWPcui+UwA0dbYCZVuncQ2Amf0R+Ji7bwmPrwYeLHh0InmSabW3EsbOiQA3nTGfEw+c3nNOyaLy5FrldneSg9IpneE5kZLUd+xioNXekptLjpuj7icBck8aS0mumUgvjf7LwoQkMjzJ9RariQRGPOHccGqyUu0VJ87lmhVriQTJVkbfneAks76bI0lly7U0+vfN7GHgiPCUSqNLSWrviHFpn7GKS+5pYsuObq5asSZZR0oTtXfKxm1dxQ5BSsjO7G68C7DZ3X8ItJrZPgWKSSRn7R0xml5/n/aOGADNGzb1G6voijtXLl+jwoNDNH/m5GKHICUkp5aGmV0FNJCcRfXvQBXwK+CwwoUmMrhMU2gn71Kd8bUa8x6asw+tUzkQ6SXXMY3PAx8FngNw9w1mpu8kGVHpg9tAvym0S5at5oELDicaqJz5cATABUfPZtGB05UwpJ9ck0anu7uZOfQUMhQZMX1bFecfNTvj6zZs2s5Fx8zh5sdexgwt3BuEARGDvreouirgyx/fWzOlJKNck8bdZvZTYLKZfQX4B+DnhQtL5IOWxbjqSL9Wxc2PvUTf7bl3dCU475d/piYaJZ5wRnmFnGG7+YsfZeaHduHp9e3c+MiLVEUC4u7aGEkGlevsqRvN7DhgM8lxjSvd/XcFjUwqWnrLItYdJwis1/VoEME9TlefbqjOOHTGu5HBRQwO3XcKU8bXcODMyZzysVqt7pac5DoQfp27fxP4XYZzInmVqeRH35Hsznhc4xZDFDG46fT5vZKDNkaSXOU65fa4DOc+k89ARFJSJT/S1USM6mjAhJooNdFAXU9DUBMNuPqkuTxz+bEsmp9xp2SRrAZNGmb2VTN7HtjfzFanPdYDz49MiFJpMpX8sMB46MLD+cqRs0gkEppCOwRmcNKB09WikGHJ1tL4D5IVbZeH/6YeC9z9rALHJhVqyvgarj/lAMZUJVsWY6oCrj/lAHYdV83Nj73cbxxDsquOBhrglrzIVuV2E7DJzH4IvJdW5XaimS1096dHIkipPIvmz+Cw2VN7rcu4v6lNlWmHIBLAQxcerjUXkhe5Trm9FfhY2nFHhnMieZX6q/iOp1/jx4+/TGCW5Sskk++dPE8JQ/Im16RhnrYvrLsnzCzXrxXJSd9y5qlqtbGeaVJqZeysqogxoUY/qpI/uX43rTOzr5FsXQD8M7CuMCFJJeq74vuKz87l2gfXpiUMGYquuLNk2WoOmz1V4xmSF7lOuf0n4ONAG9AKLAQWFyooqSzp6zK2xLrZ0ZXgmvubiQbqjsqHqiCgdeP2Yocho0SuK8LfBs4ocCxSoTJtxRoNTK2MAUQt2VHnDmOqIj0r5sdEI3TGE8QTiV4LH7sSiZ7JBCLDNWjSMLMl7n69md1Mhg5ld/9avgMys/nAT4AxQDfwz+7+jJkZ8EPgBGAbcI67P5fvz5eRV7vrWLZ39S79sa0rQdXO7PZSIb5zwv4s3GdKTxJIn12Wev5ky7ss6VMyXl1Tki/ZWhp/Df9dVehA0lwPXOPuD5vZCeHxUSRXoO8XPhaSHF9ZOIJxSR71LXOeidZjfKAmGvCzsxdw5Jzdep3vWwoE+k9XVsKQfMq2TuP+8N+R3A/cgYnh80nAhvD5ycDScBbXSjObbGZ7uvsbIxib5EHfPbwX1E1WHakszKB++qScX69aUlIo2bqn7meQeY7uvijvEcHFwCNmdiPJgfqPh+dnAK+nva41PKekUUYy7eH9p3XvFTGi0hYxqNJqbikh2bqnbgz//QKwB8ktXgG+CLw11A81s0fD9+vrcuAY4OvuvszMTgN+ARy7k++/mHB2V11d3VDDlALItIe3DCwIjBtPPZBD951S7FBEgOSivewvMlvl7g3ZzuUlILNNwORwp0ADNrn7xHATqN+7+3+Gr3sROCpb91RDQ4OvWjWSQzIymD++9A5n3/5MscMoK7tURUiQ3BxJ1WllJJjZswP9fs91fso4M5uV9ob7AIXa8nUD8Inw+dHAy+HzFcDZlnQIyWSirqkS1d4Ro+n192nviPU6P33SmCJFVL62dcXZ0ZVgybLV/e6nyEjLdUX414Hfm9k6klsL7wX87wLF9BXgh2GZkh18sIjwIZLTbVtITrk9t0CfL8PUd3V3+l/IWzvjVAVGV0JdVOkiBhcdMxuzgFsebyESGNv67GebWqSnsQ0pplwX9/3GzPYD9g9PveDuBfmTx92fABZkOO/A+YX4TMmf9o5YT72o1GK99DIWj/31LSWMDKqiAWcdsjdTxtdw5sI6mjds4itLVxHr/uBeaZGelIJct3vdBfgGsJe7f8XM9jOzD7v7A4UNT8pFat3Fw2ve6LeSO2JG84bN/PJP6/nvF94pUoSlqSZqmFmv2VFTxtdw5JzduOHUA7VIT0pOrgPhdwHPAme7+7wwifzJ3ecXOsDh0kB44aW6o6KB0RGLZ3xNxPpt812xvrRwJqc21DGuOsLWzvigC/D6Vv4VGQmDDYTnOqaxr7ufbmZfBHD3beHMJqlw6cUGB6OE8YG7VrVy8XEfzikJaJGelJpcZ091mtlYwoV+ZrYvoGkcQvOGTdocaSdVRVR1VspXri2Nq4DfADPN7A7gMOCcQgUl5SFZDqSp12CtZBd314C2lK2sScPMAmBXkqvCDyE55fYid3+3wLFJCUt1Sylh7JyaqGlAW8pa1qQRbu26xN3vBh4cgZikBGQbgG3duJ2IuqV2ylkH1/GNT81RwpCylmv31KNmdilwF7A1ddLdVWluFLpj5atc88BaqoLkdqFXnVTPWYfs1XO9vSPGb9a8wdbOzDOlpL+qiClhyKiQa9I4neQg+D/3OT8rw2ulzKS3Kn6z5k0uv28NAJ3h9cvvW8PWzm4WH7mvxjGGKJep7SLlINekMZdkwjicZPL4H5K760mZSy/50RmP0z3Aau1/eegFcPjBoy8pYQxil6qAbRmmH4+tiqoEiIwKuU65/SXwd8CPgJtJJpGR3JhJCiB9jcWWWDexbic+yHKLG377Ys7fMJXotIZaBrp9KgEio0WuLY157j437fhxM1tbiIBk5LRu3E5VEPTUiMomYkbnYFmlQu2/+zhuOXMBs3efwOGzp7Jk2Wo84cTizphwo3PNmJLRItek8ZyZHeLuKwHMbCEju2+47IRcS0/U7jqWrkTvJBANwD3zCu4d3Qnm7jmetW905DvkslUVwHWnzmf27hOA3vtz51ImRKTc5Jo0FgB/MrPXwuM64EUze55kAdoDChKd7LTBypL3NWV8DdefcgCX3dtExALinuDKE+v53gNriQ+wabcSRm+RSNCv20mlP2Q0yzVpHF/QKCQv0scoMpUlz8QJWxY47vDe1k6qI0G/SrWSFAkAh12qo6o8KxUp1/00Xi10IDJ8mcYoBtu4p70jxiV3N5LMD8n+qJt+9xKRiBbtAYyJwI60pSi7VEX4yZcWUD99oirPSsXKtaUhZSDTGMVgs3aaN2ymb4MiASRUkhboP66TwKmfPlHdT1LRNINyFEmNUYypCphQE2VMVcAVJ86ldeP2AfaWVnIYzHlHzOp1L9UVJaKWxqiTPntnTdsmrn1g7YCD4vXTJ1EVMbrUsuinKmKcd8QszjtilrqiRNKopTEKTRlfQ+2uY7n2wbU9C/d2dCVYsmx1rxbHlPE1fPGgmUWMtHR97ej9erqhDpw5WQlDJKSWxig12KB46vq46gh3rWotVoglqyZqnLmwrthhiJQkJY1RKtOgeGc8zm/WvMHtT66nOhJhW1f3oGVDKs0uVRESuMYuRAahpDGKnX/UbG55vIXqSMD2MEHc+od1AMS6u4scXWmpiQY902mVMEQGVpQxDTP7ezNrNrOEmTX0ua8uqKYAAA8aSURBVPZtM2sxsxfN7NNp548Pz7WY2bdGPurysbyxjcOue4zb/rgOcP7XIXWY2YAVbCvNZ+ftwXc+sz/V0YBxNRHGVAXccOoBHDlnmhKGSBbFammsIbl97E/TT5rZXOAMoB6YTnLzpznh5R8DxwGtwJ/NbIW7q2hiHy1vbeHSu5voSnjPeMbPn1hHl/ZLImJw1+JDaNhnCgCnLKjVzCiRnVSUpOHufwWw/tuFngzc6e4xYL2ZtQAHh9da3H1d+HV3hq9V0kizvLGNi+5s7Hc+agFdOVayHc2+97l5PQkDVCNKZChKbcrtDOD1tOPW8NxA5zMys8VmtsrMVr3zzjsFCbTUtLy1hYszJAyAzgquIzWuOkJ1xPj+5+Zx1sK9sn+BiAyqYC0NM3sU2CPDpcvdfXmhPhfA3W8DbgNoaGgY9R35yxvbuOye1QOu767Enqmowe3nHsyksVXqfhLJo4IlDXc/dghf1gakrzarDc8xyPmKlqpsq82Reut2mD5pTM8+FyKSH6XWPbUCOMPMasxsH2A/4Bngz8B+ZraPmVWTHCxfUcQ4S0brxu1E+o8NVbwxVQFbOyuxjSVSWEUZCDezz5Pca3wa8KCZNbr7p9292czuJjnA3Q2c7+7x8GsuAB4BIsDt7t5cjNhLzZq2TfrlOADtyS2Sf+Y+urv8GxoafNWq0bUzbWo7167uOGf87GmtvwBOa6hlRdOGnHYsFJHBmdmz7t6Q6ZpWhJeZ1HauADu6KnscoyoACwKuOmkuZy3ci28ev7/WXYgUmJJGGUnfzrXSRAwigWFAwuGyT3+YhbOm9EoQWnchUnilNhAug0hVrq00VRHj0H2n0Bl3YnGnK+G0vr9NJctFiqDyfgOVsa7uONu7K2vQOxIYPznrYzzR0t7r/NKnXqPlrS1FikqkcilplKj2jhhNr7/fs2nSknubOPWnK+musF32Lj5mPzZu68p4rfH190c4GhHRmMYIS818yjRYm7q2pm0T33ugmYgFxD3BUXOm8cjat4sUcfGkNkPauLUz4/X5MyePcEQioqQxglIznzJNC13e2MaSe5sIzNjeM9Cd7IqqlIRxxH5TeGb9e1RHIj33JzW4ffahdSx96rWe1559aJ1We4sUgdZpjJD2jhiHXfdYr5lPY6oCnvzm0QAs/JdHqdS6gtUR46pF9Zy1cK9BW2Itb22h8fX3mT9zshKGSAFpnUYJGGzP7k3buyoyYUSAMw6u49zD9u5JAoNNm529+wQlC5Ei00D4CMm0Z3dXIhGWuhjdrb2BRKMBK5o2cOItT7CiUfUnRcqBksYImTK+hutPOYAxVQETaqKMqQp6+uynT6rMGkmx7gRbYt3s6EqwZNnqnpliIlK61D01ghbNn8Fhs6f267PfsGl7kSMrvlRXnRbriZQ2JY0Rlvql2Lpxe8/x5u3dxQypJHzQVScipUxJo8D6zgbqO+32tAW13LWqtdhhjpiaiIEZpx9Uy92rWntNP1YrQ6T0KWkUUN8EccVn53Ltg2vZ0ZXomUW1dOVrWd5ldKiJGleeWM+8GZN6EuhFx8xRVVqRMqOkUSDpFWlTCeLq+5sJRvkue1UR44SP7MFDz79JJDASCefCo/fjzIV1/RKDqtKKlB8ljQLJtC6jK+7kOr324L0nUz99Ev/+p1cLFGH+VUXgF18+iCPnTOPKEwdepCci5UtJo0Bqdx1LZ3zoK/ae+dv7PPO38irIFwkC6qdPBNSKEBmtlDTypO+A95TxNVzwydn82+9eKnZoQ3Z8/e58Ys40PlW/Bxu3dvaU8Nh1XDXNGzbz2AtvccfKV6mORoi7azBbpAKo9lQeDFSIsOWtLRx70x8L+tmFtPQfDqJ++qRBu5kGqxUlIuVJtacKKNOA95Jlqzls9lS2dsYZUxWU5fasVRHj9fe2s/j/PpuxKm+KuqFEKovKiAxTpi1YU6uby3mx2nmH79MzPVilPkQkpShJw8z+3syazSxhZg1p548zs2fN7Pnw36PTri0Iz7eY2Y/MSmPu6mCFCPvWm6qOlETIWQVA/fRJAyZDEalcxWpprAG+APTt8H8XOMndPwJ8Gfi/adduBb4C7Bc+jh+BOAeV6s//xrFzqI4G7FIdoTpinPvxvXtes2j+DJ785tF85chZeIbpthFLPkZKdSTgsFlTGOwjoxHjknsa2dFnP3KV+hCRooxpuPtfAfo2Ftz9L2mHzcBYM6sBPgRMdPeV4dctBT4HPFyoGAca4E3fkvXaB9fiCScWdyIGnWEJqVv/sI6f/mEd3/rM/hy9/2480vwmP3z0JTJt7z2SW34bEE8kaGx9n2gAe03ZhZZ3tvV7XWcYVDSAmmhAdUSlPkQkqZQHwk8BnnP3mJnNANILNLUCMzJ/GZjZYmAxQF1d3U5/8ECzoVLnI2Zs7ez9V3jfX/4J4F8efoF/efiFnf78QnGScaZib3lnG1UBJBJwyKwP0dj6Pls7P+hqG1sV5cdnfYxJY6s0O0pEgAImDTN7FNgjw6XL3X15lq+tB64DPjWUz3b324DbIDnldme+dqDZUHP3nNhzfjRJ/eesem0j9Om06kokqJ8+UclCRHoULGm4+7FD+TozqwX+Czjb3V8JT7cBtWkvqw3P5d1A27I2vv4+0aA8BrKHojoSYfGRs/jx71tUeVZEBlRS3VNmNhl4EPiWuz+ZOu/ub5jZZjM7BHgaOBu4uRAxDDQbav7MyT19/aNRVyLBmQvrOHNhnRbriciAijXl9vNm1gocCjxoZo+Ely4AZgNXmllj+NgtvPbPwM+BFuAVCjQIPtC2rLN3n8BVJ80txEcWXU30g61np4yv4cCZk5UwRCQjlREZwECzp+5Y+SrX3N9MNGJs6yzf8Y2IQSSAC4+ek7FsuYhULpURGYKBymOcdcheHD9vj17TblNjAIsOnM6vn0tO8kok4PDZU1m5vh3c6U7A3lPHsu7d4i+Oq44YP//yQRrkFpGdppbGMPVtkeRy3LxhE20bt/Pe1k72mjKOPSbWsGbDZrriCd54fzvvbImxOdbFky3t4NDtUL/HeP5u+kR2qYryyNo3eWtLZ08MJ8/fkzm7TeDltzt4Z8sOxlQFvL05RsQCzjlsL7Z2Jrjm/maqIkFPNdq+NaRERFIGa2koaZSwwSrItry1padU+ezdJwzrvURE0ql7qkwNVkF29u4TckoWubyXiEiuVOVWRERypqQhIiI5U9IQEZGcKWmIiEjOlDRERCRno37KrZm9A7w6jLeYSnJzqHJRTvEq1sIop1ihvOKtlFj3cvdpmS6M+qQxXGa2aqD5yqWonOJVrIVRTrFCecWrWNU9JSIiO0FJQ0REcqakkd1txQ5gJ5VTvIq1MMopViiveCs+Vo1piIhIztTSEBGRnClpiIhIzpQ00pjZ35tZs5klzKzfVDUzqzOzDjO7NO3c8Wb2opm1mNm3ih2rmR1nZs+a2fPhv0enXVsQnm8xsx+ZmRUz1vDat8N4XjSzT6edL8p97cvM5pvZynDr4VVmdnB43sJ72GJmq83sY8WKMZ2ZXWhmL4T3+/q08xnvc7GZ2SVm5mY2NTwu1ft6Q3hfV5vZf5nZ5LRrJXdvC/rz4+56hA/g74APA78HGjJcvxe4B7g0PI6Q3K98FlANNAFzixkr8FFgevh8HtCWdu0Z4BDASO6x/pkixzo3vGc1wD7hvYwU875miP23qfsEnAD8Pu35w+G9PAR4ugS+fz8JPArUhMe7DXafSyDemcAjJBffTi3V+xrG9SkgGj6/DriuVO9toX9+1NJI4+5/dfcXM10zs88B64HmtNMHAy3uvs7dO4E7gZMLH+nAsbr7X9x9Q3jYDIw1sxoz2xOY6O4rPfmdtRT4XDFjJXmv7nT3mLuvB1pI3tOi3dcMHJgYPp8EpO7tycBST1oJTA7vcTF9FfhXd48BuPvb4fmB7nOx3QQsIXmPU0rxvuLuv3X37vBwJVAbPi/Fe1vQnx8ljRyY2Xjgm8A1fS7NAF5PO24Nz5WKU4Dnwl8iM0jGl1IKsQ50/0rpvl4M3GBmrwM3At8Oz5dSjClzgCPM7Gkz+4OZHRSeL7lYzexkkq3gpj6XSi7WDP6BZGsISjPegsZUcTv3mdmjwB4ZLl3u7ssH+LKrgZvcvWOEhgGAIcea+tp6ks3oTxUitgyfN+RYi22w2IFjgK+7+zIzOw34BXDsSMaXLkusUeBDJLt1DgLuNrNZIxheL1li/Q4j9L2Zq1y+h83scqAbuGMkYyslFZc03H0oP/ALgVPDgcXJQMLMdgDPkuyXTakF2oYfZdIQY8XMaoH/As5291fC02180KSG0oi1jYHvX8Hua1+DxW5mS4GLwsN7gJ+HzweLvWCyxPpV4Ndh9+MzZpYgWbSupGI1s4+Q7P9vCv8IqwWeCycZFCVWyP49bGbnACcCx4T3GIoY7yAKG1MxB2xK9cEAA+Hhtav5YCA8Cqwj+QOQGnCqL2asJJNaE/CFDK/tOxB+QpFjraf3IOI6koN4Rb+vaTH+FTgqfH4M8Gz4/LP0HrB9phjx9Yn1n4Dvhc/nkOyisIHuc7HjTYv7b3wwEF5y9zWM63hgLTCtz/mSu7eF/vkp+v+MUnoAnyfZ/xcD3gIeyfCanqQRHp8AvERytsLlxY4V+C6wFWhMe6Rm0TQAa8JYbyGsCFDM+0qyq+IV4EXSZnMV675miP1wki3KJuBpYEF43oAfh/E9zwB/ZIxwrNXAr8L/x88BR2e7z6Xw6JM0Su6+hnG1hEk49TP1k1K+t4X8+VEZERERyZlmT4mISM6UNEREJGdKGiIikjMlDRERyZmShoiI5ExJQ6QAwsqtv0o7jprZO2b2QHh8TnjcGD6Whuf/j5mtTzv/p2L9N4hkUnErwkVGyFZgnpmNdfftwHH0X5V7l7tfkOFrL3P3ewseocgQqKUhUjgPkVzhDPBF4D+LGItIXihpiBTOncAZZjYGOIDkivJ0p6d1Q52bdv6GtPMVWxhPSpO6p0QKxN1Xm9neJFsZD2V4ibqnpOwoaYgU1gqS+3AcBUwpbigiw6ekIVJYtwPvu/vzZnZUsYMRGS6NaYgUkLu3uvuPdvLL0sc0Gs2suiDBiQyBqtyKiEjO1NIQEZGcKWmIiEjOlDRERCRnShoiIpIzJQ0REcmZkoaIiORMSUNERHL2/wP530fOdF0kLQAAAABJRU5ErkJggg==\n"
},
"metadata": {
"needs_background": "light"
}
}
],
"source": [
"#meanMFE_result = my_model.predict(training_df[[\"Length\", \"GCpercent\",\"CGratio\", \"AUratio\", 'MFE']])\n",
"#meanMFE_result = my_model.predict(training_df[[\"Length\", \"GCpercent\", \"MFE\"]])\n",
"predicted_mfes = pd.DataFrame(meanMFE_result)\n",
"predicted_mfes.describe()\n",
"\n",
"predicted_mfes.columns = [\"predictedMonoMFEs\"]\n",
"predicted_mfes = predicted_mfes.rename(columns={0:\"PredictedMonoMFE\"})\n",
"predicted_mfes[\"MonoMFE\"] = my_label\n",
"#predicted_mfes[\"DiMFE\"] = my_label\n",
"#predicted_mfes[\"predictedMonoMFEs\"] = predicted_mfes\n",
"# predicted_mfes[\"DiMFE\"] = predicted_mfes\n",
"predicted_mfes[\"MFE\"] = training_df['MFE'].to_list()\n",
"# predicted_mfes[\"RealDiMFE\"] = loaded_df['DiMFE'].to_list()\n",
"predicted_mfes.plot.scatter(x=\"MFE\", y=\"predictedMonoMFEs\")\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "fezSTvZMB-PC"
},
"source": [
"-OR- Plot results for standard deviation prediction"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "BY8pj_ICEobh"
},
"outputs": [],
"source": [
"\n",
"DiStd_result = my_model.predict(training_df[[\"Length\", \"GCpercent\",\"CGratio\", \"AUratio\", 'AA', 'AU', 'AG',\n",
" 'AC', 'UA', 'UU', 'UG', 'UC', 'GA', 'GU', 'GG', 'GC', 'CA', 'CU', 'CG', 'CC']])\n",
"predicted_std = pd.DataFrame(DiStd_result)\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 364
},
"collapsed": true,
"id": "D5mYNK9p5aRR",
"outputId": "011e56c1-0bc6-4996-e1c5-8dbb1ff58c8a"
},
"outputs": [
{
"ename": "ValueError",
"evalue": "ignored",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mpredicted_std\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcolumns\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m\"predictedDiStd\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0mpredicted_std\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"DiStd\"\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mloaded_df\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'DiStd'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mto_list\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;31m# predicted_std[\"RealDiMFE\"] = loaded_df['DiMFE'].to_list()\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mpredicted_std\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mscatter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"DiStd\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"predictedDiStd\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/usr/local/lib/python3.7/dist-packages/pandas/core/generic.py\u001b[0m in \u001b[0;36m__setattr__\u001b[0;34m(self, name, value)\u001b[0m\n\u001b[1;32m 5498\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5499\u001b[0m \u001b[0mobject\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__getattribute__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 5500\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mobject\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__setattr__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 5501\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mAttributeError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5502\u001b[0m \u001b[0;32mpass\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/usr/local/lib/python3.7/dist-packages/pandas/_libs/properties.pyx\u001b[0m in \u001b[0;36mpandas._libs.properties.AxisProperty.__set__\u001b[0;34m()\u001b[0m\n",
"\u001b[0;32m/usr/local/lib/python3.7/dist-packages/pandas/core/generic.py\u001b[0m in \u001b[0;36m_set_axis\u001b[0;34m(self, axis, labels)\u001b[0m\n\u001b[1;32m 764\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_set_axis\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mint\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlabels\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mIndex\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m->\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 765\u001b[0m \u001b[0mlabels\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mensure_index\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlabels\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 766\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_mgr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_axis\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0maxis\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlabels\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 767\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_clear_item_cache\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 768\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/usr/local/lib/python3.7/dist-packages/pandas/core/internals/managers.py\u001b[0m in \u001b[0;36mset_axis\u001b[0;34m(self, axis, new_labels)\u001b[0m\n\u001b[1;32m 214\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mset_axis\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mint\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnew_labels\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mIndex\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m->\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 215\u001b[0m \u001b[0;31m# Caller is responsible for ensuring we have an Index object.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 216\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_validate_set_axis\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0maxis\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnew_labels\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 217\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0maxes\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0maxis\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnew_labels\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 218\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/usr/local/lib/python3.7/dist-packages/pandas/core/internals/base.py\u001b[0m in \u001b[0;36m_validate_set_axis\u001b[0;34m(self, axis, new_labels)\u001b[0m\n\u001b[1;32m 56\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mnew_len\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0mold_len\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 57\u001b[0m raise ValueError(\n\u001b[0;32m---> 58\u001b[0;31m \u001b[0;34mf\"Length mismatch: Expected axis has {old_len} elements, new \"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 59\u001b[0m \u001b[0;34mf\"values have {new_len} elements\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 60\u001b[0m )\n",
"\u001b[0;31mValueError\u001b[0m: Length mismatch: Expected axis has 2 elements, new values have 1 elements"
]
}
],
"source": [
"predicted_std.columns = [\"predictedDiStd\"]\n",
"predicted_std[\"DiStd\"] = loaded_df['DiStd'].to_list()\n",
"# predicted_std[\"RealDiMFE\"] = loaded_df['DiMFE'].to_list()\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 300
},
"id": "gJRCMvD83qcv",
"outputId": "13fe4372-2219-446f-c792-652dd6118978"
},
"outputs": [
{
"data": {
"text/html": [
"\n",
" \n",
"
\n",
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" predictedDiStd | \n",
" DiStd | \n",
"
\n",
" \n",
" \n",
" \n",
" count | \n",
" 836376.0 | \n",
" 836376.0 | \n",
"
\n",
" \n",
" mean | \n",
" 3.3 | \n",
" 3.4 | \n",
"
\n",
" \n",
" std | \n",
" 0.6 | \n",
" 0.6 | \n",
"
\n",
" \n",
" min | \n",
" 0.1 | \n",
" 0.0 | \n",
"
\n",
" \n",
" 25% | \n",
" 3.0 | \n",
" 3.0 | \n",
"
\n",
" \n",
" 50% | \n",
" 3.4 | \n",
" 3.4 | \n",
"
\n",
" \n",
" 75% | \n",
" 3.8 | \n",
" 3.9 | \n",
"
\n",
" \n",
" max | \n",
" 4.7 | \n",
" 6.0 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
"\n",
" \n",
"
\n",
"
\n",
" "
],
"text/plain": [
" predictedDiStd DiStd\n",
"count 836376.0 836376.0\n",
"mean 3.3 3.4\n",
"std 0.6 0.6\n",
"min 0.1 0.0\n",
"25% 3.0 3.0\n",
"50% 3.4 3.4\n",
"75% 3.8 3.9\n",
"max 4.7 6.0"
]
},
"execution_count": 98,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"predicted_std.describe()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 296
},
"id": "izi94b-cEtC7",
"outputId": "f8e78bff-9147-46f4-f2a9-cef08043343a"
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 100,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"predicted_std.plot.scatter(x=\"DiStd\", y=\"predictedDiStd\")\n"
]
},
{
"cell_type": "code",
"execution_count": 61,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 296
},
"collapsed": true,
"id": "oRJGGR4gyzjH",
"outputId": "2abaddaf-3c9b-49ec-c30b-a88a427e127e"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
""
]
},
"metadata": {},
"execution_count": 61
},
{
"output_type": "display_data",
"data": {
"text/plain": [
""
],
"image/png": "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\n"
},
"metadata": {
"needs_background": "light"
}
}
],
"source": [
"predicted_mfes.plot.scatter(x=\"predictedMonoMFEs\", y='MFE')"
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "GhfuCYjfCHGJ",
"outputId": "f6687c38-f784-4dac-c91d-dec38a89cb95"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Model: \"sequential\"\n",
"_________________________________________________________________\n",
" Layer (type) Output Shape Param # \n",
"=================================================================\n",
" normalization (Normalizatio (None, 20) 41 \n",
" n) \n",
" \n",
" dense (Dense) (None, 64) 1344 \n",
" \n",
" dense_1 (Dense) (None, 64) 4160 \n",
" \n",
" dense_2 (Dense) (None, 1) 65 \n",
" \n",
"=================================================================\n",
"Total params: 5,610\n",
"Trainable params: 5,569\n",
"Non-trainable params: 41\n",
"_________________________________________________________________\n"
]
}
],
"source": [
"my_model.summary()"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "NixZHwDBGPid"
},
"source": [
"# Testing model on RNAcentral data"
]
},
{
"cell_type": "code",
"execution_count": 64,
"metadata": {
"id": "4vQCqeRC8Kbc",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 394
},
"outputId": "b64f57f9-7cf7-4a7e-b4e6-17dc88781b93"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" Length GCpercent CGratio AUratio MFE AA AU \\\n",
"count 5729593.0 5729593.0 5729593.0 5729593.0 5729593.0 5729593.0 5729593.0 \n",
"mean 85.1 0.5 0.5 0.5 -26.7 0.1 0.1 \n",
"std 40.6 0.1 0.1 0.1 17.7 0.0 0.0 \n",
"min 20.0 0.0 0.0 0.0 -221.1 0.0 0.0 \n",
"25% 66.0 0.4 0.4 0.4 -35.4 0.0 0.0 \n",
"50% 74.0 0.5 0.5 0.5 -25.7 0.1 0.1 \n",
"75% 107.0 0.6 0.5 0.5 -14.1 0.1 0.1 \n",
"max 200.0 1.0 1.0 1.0 0.0 1.0 0.5 \n",
"\n",
" AG AC UA ... GG GC CA \\\n",
"count 5729593.0 5729592.0 5729592.0 ... 5729592.0 5729592.0 5729592.0 \n",
"mean 0.1 0.0 0.0 ... 0.1 0.1 0.1 \n",
"std 0.0 0.0 0.0 ... 0.0 0.0 0.0 \n",
"min 0.0 0.0 0.0 ... 0.0 0.0 0.0 \n",
"25% 0.1 0.0 0.0 ... 0.0 0.0 0.0 \n",
"50% 0.1 0.0 0.0 ... 0.1 0.1 0.1 \n",
"75% 0.1 0.1 0.0 ... 0.1 0.1 0.1 \n",
"max 0.5 0.5 0.0 ... 1.0 0.4 0.5 \n",
"\n",
" CU CG CC MonoMFE mono_z DiMFE di_z \n",
"count 5729592.0 5729592.0 5729592.0 5729592.0 5729592.0 5729592.0 5729592.0 \n",
"mean 0.1 0.0 0.1 -20.8 -0.0 -21.5 -0.0 \n",
"std 0.0 0.0 0.0 13.3 1.0 13.6 1.0 \n",
"min 0.0 0.0 0.0 -118.5 -10.0 -140.0 -10.0 \n",
"25% 0.0 0.0 0.0 -27.1 -0.6 -27.9 -0.6 \n",
"50% 0.1 0.0 0.1 -20.0 0.1 -21.0 0.1 \n",
"75% 0.1 0.1 0.1 -10.9 0.7 -11.5 0.7 \n",
"max 0.5 0.3 1.0 0.0 4.4 0.0 4.0 \n",
"\n",
"[8 rows x 25 columns]"
],
"text/html": [
"\n",
" \n",
"
\n",
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Length | \n",
" GCpercent | \n",
" CGratio | \n",
" AUratio | \n",
" MFE | \n",
" AA | \n",
" AU | \n",
" AG | \n",
" AC | \n",
" UA | \n",
" ... | \n",
" GG | \n",
" GC | \n",
" CA | \n",
" CU | \n",
" CG | \n",
" CC | \n",
" MonoMFE | \n",
" mono_z | \n",
" DiMFE | \n",
" di_z | \n",
"
\n",
" \n",
" \n",
" \n",
" count | \n",
" 5729593.0 | \n",
" 5729593.0 | \n",
" 5729593.0 | \n",
" 5729593.0 | \n",
" 5729593.0 | \n",
" 5729593.0 | \n",
" 5729593.0 | \n",
" 5729593.0 | \n",
" 5729592.0 | \n",
" 5729592.0 | \n",
" ... | \n",
" 5729592.0 | \n",
" 5729592.0 | \n",
" 5729592.0 | \n",
" 5729592.0 | \n",
" 5729592.0 | \n",
" 5729592.0 | \n",
" 5729592.0 | \n",
" 5729592.0 | \n",
" 5729592.0 | \n",
" 5729592.0 | \n",
"
\n",
" \n",
" mean | \n",
" 85.1 | \n",
" 0.5 | \n",
" 0.5 | \n",
" 0.5 | \n",
" -26.7 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" ... | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.1 | \n",
" -20.8 | \n",
" -0.0 | \n",
" -21.5 | \n",
" -0.0 | \n",
"
\n",
" \n",
" std | \n",
" 40.6 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 17.7 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" ... | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 13.3 | \n",
" 1.0 | \n",
" 13.6 | \n",
" 1.0 | \n",
"
\n",
" \n",
" min | \n",
" 20.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" -221.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" ... | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" -118.5 | \n",
" -10.0 | \n",
" -140.0 | \n",
" -10.0 | \n",
"
\n",
" \n",
" 25% | \n",
" 66.0 | \n",
" 0.4 | \n",
" 0.4 | \n",
" 0.4 | \n",
" -35.4 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" ... | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" -27.1 | \n",
" -0.6 | \n",
" -27.9 | \n",
" -0.6 | \n",
"
\n",
" \n",
" 50% | \n",
" 74.0 | \n",
" 0.5 | \n",
" 0.5 | \n",
" 0.5 | \n",
" -25.7 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" ... | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.1 | \n",
" -20.0 | \n",
" 0.1 | \n",
" -21.0 | \n",
" 0.1 | \n",
"
\n",
" \n",
" 75% | \n",
" 107.0 | \n",
" 0.6 | \n",
" 0.5 | \n",
" 0.5 | \n",
" -14.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.0 | \n",
" ... | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" -10.9 | \n",
" 0.7 | \n",
" -11.5 | \n",
" 0.7 | \n",
"
\n",
" \n",
" max | \n",
" 200.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
" 0.0 | \n",
" 1.0 | \n",
" 0.5 | \n",
" 0.5 | \n",
" 0.5 | \n",
" 0.0 | \n",
" ... | \n",
" 1.0 | \n",
" 0.4 | \n",
" 0.5 | \n",
" 0.5 | \n",
" 0.3 | \n",
" 1.0 | \n",
" 0.0 | \n",
" 4.4 | \n",
" 0.0 | \n",
" 4.0 | \n",
"
\n",
" \n",
"
\n",
"
8 rows × 25 columns
\n",
"
\n",
"
\n",
" \n",
" \n",
"\n",
" \n",
"
\n",
"
\n",
" "
]
},
"metadata": {},
"execution_count": 64
}
],
"source": [
"test_df.describe()"
]
},
{
"cell_type": "code",
"execution_count": 65,
"metadata": {
"id": "ZfjI4WyLKsE4"
},
"outputs": [],
"source": [
"test_over_60 = test_df[test_df['Length'] >= 60]"
]
},
{
"cell_type": "code",
"execution_count": 66,
"metadata": {
"id": "pNgw2Whgp7MK",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 488
},
"outputId": "38e10ff8-d8e7-4e8e-ba5b-2f130b64ce21"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" Length GCpercent CGratio AUratio MFE AA AU AG AC UA ... \\\n",
"0 200 0.6 0.4 0.6 -59.2 0.1 0.0 0.1 0.1 0.0 ... \n",
"1 72 0.2 0.4 0.5 -11.9 0.1 0.2 0.0 0.0 0.0 ... \n",
"2 104 0.5 0.4 0.5 -31.3 0.0 0.0 0.1 0.1 0.0 ... \n",
"5 69 0.4 0.3 0.5 -17.9 0.1 0.1 0.1 0.0 0.0 ... \n",
"6 70 0.4 0.6 0.5 -13.9 0.1 0.0 0.1 0.1 0.0 ... \n",
"... ... ... ... ... ... .. .. .. .. .. ... \n",
"5729588 73 0.6 0.4 0.4 -25.8 0.0 0.0 0.1 0.0 0.0 ... \n",
"5729589 117 0.6 0.4 0.5 -38.6 0.0 0.1 0.1 0.0 0.0 ... \n",
"5729590 85 0.6 0.4 0.5 -37.3 0.0 0.0 0.1 0.0 0.0 ... \n",
"5729591 113 0.4 0.5 0.5 -22.2 0.1 0.1 0.1 0.1 0.0 ... \n",
"5729592 84 0.6 0.5 0.5 -34.4 0.1 0.0 0.0 0.0 0.0 ... \n",
"\n",
" GG GC CA CU CG CC MonoMFE mono_z DiMFE di_z \n",
"0 0.1 0.1 0.0 0.1 0.1 0.0 -64.8 0.4 -64.9 -2.0 \n",
"1 0.1 0.0 0.0 0.0 0.0 0.0 -7.4 0.3 -10.3 0.6 \n",
"2 0.1 0.0 0.1 0.0 0.1 0.1 -30.0 0.1 -29.6 -0.6 \n",
"5 0.1 0.1 0.0 0.1 0.0 0.0 -13.0 0.8 -16.1 -0.8 \n",
"6 0.0 0.0 0.1 0.1 0.0 0.1 -7.3 -0.7 -10.8 0.1 \n",
"... .. .. .. .. .. .. ... ... ... ... \n",
"5729588 0.1 0.1 0.0 0.1 0.1 0.1 -23.4 -0.2 -20.9 1.2 \n",
"5729589 0.1 0.1 0.1 0.0 0.1 0.1 -35.9 -2.2 -35.0 1.0 \n",
"5729590 0.1 0.1 0.1 0.1 0.1 0.1 -29.2 -0.6 -30.1 1.9 \n",
"5729591 0.0 0.0 0.1 0.0 0.0 0.0 -21.4 0.1 -22.9 1.4 \n",
"5729592 0.1 0.1 0.0 0.0 0.1 0.1 -28.0 0.3 -29.8 -0.9 \n",
"\n",
"[4591323 rows x 25 columns]"
],
"text/html": [
"\n",
" \n",
"
\n",
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Length | \n",
" GCpercent | \n",
" CGratio | \n",
" AUratio | \n",
" MFE | \n",
" AA | \n",
" AU | \n",
" AG | \n",
" AC | \n",
" UA | \n",
" ... | \n",
" GG | \n",
" GC | \n",
" CA | \n",
" CU | \n",
" CG | \n",
" CC | \n",
" MonoMFE | \n",
" mono_z | \n",
" DiMFE | \n",
" di_z | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 200 | \n",
" 0.6 | \n",
" 0.4 | \n",
" 0.6 | \n",
" -59.2 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.0 | \n",
" ... | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.0 | \n",
" -64.8 | \n",
" 0.4 | \n",
" -64.9 | \n",
" -2.0 | \n",
"
\n",
" \n",
" 1 | \n",
" 72 | \n",
" 0.2 | \n",
" 0.4 | \n",
" 0.5 | \n",
" -11.9 | \n",
" 0.1 | \n",
" 0.2 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" ... | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" -7.4 | \n",
" 0.3 | \n",
" -10.3 | \n",
" 0.6 | \n",
"
\n",
" \n",
" 2 | \n",
" 104 | \n",
" 0.5 | \n",
" 0.4 | \n",
" 0.5 | \n",
" -31.3 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.0 | \n",
" ... | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.1 | \n",
" -30.0 | \n",
" 0.1 | \n",
" -29.6 | \n",
" -0.6 | \n",
"
\n",
" \n",
" 5 | \n",
" 69 | \n",
" 0.4 | \n",
" 0.3 | \n",
" 0.5 | \n",
" -17.9 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" ... | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" -13.0 | \n",
" 0.8 | \n",
" -16.1 | \n",
" -0.8 | \n",
"
\n",
" \n",
" 6 | \n",
" 70 | \n",
" 0.4 | \n",
" 0.6 | \n",
" 0.5 | \n",
" -13.9 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.0 | \n",
" ... | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.1 | \n",
" -7.3 | \n",
" -0.7 | \n",
" -10.8 | \n",
" 0.1 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 5729588 | \n",
" 73 | \n",
" 0.6 | \n",
" 0.4 | \n",
" 0.4 | \n",
" -25.8 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" ... | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" -23.4 | \n",
" -0.2 | \n",
" -20.9 | \n",
" 1.2 | \n",
"
\n",
" \n",
" 5729589 | \n",
" 117 | \n",
" 0.6 | \n",
" 0.4 | \n",
" 0.5 | \n",
" -38.6 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" ... | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.1 | \n",
" -35.9 | \n",
" -2.2 | \n",
" -35.0 | \n",
" 1.0 | \n",
"
\n",
" \n",
" 5729590 | \n",
" 85 | \n",
" 0.6 | \n",
" 0.4 | \n",
" 0.5 | \n",
" -37.3 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" ... | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" -29.2 | \n",
" -0.6 | \n",
" -30.1 | \n",
" 1.9 | \n",
"
\n",
" \n",
" 5729591 | \n",
" 113 | \n",
" 0.4 | \n",
" 0.5 | \n",
" 0.5 | \n",
" -22.2 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.0 | \n",
" ... | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" -21.4 | \n",
" 0.1 | \n",
" -22.9 | \n",
" 1.4 | \n",
"
\n",
" \n",
" 5729592 | \n",
" 84 | \n",
" 0.6 | \n",
" 0.5 | \n",
" 0.5 | \n",
" -34.4 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" ... | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.1 | \n",
" -28.0 | \n",
" 0.3 | \n",
" -29.8 | \n",
" -0.9 | \n",
"
\n",
" \n",
"
\n",
"
4591323 rows × 25 columns
\n",
"
\n",
"
\n",
" \n",
" \n",
"\n",
" \n",
"
\n",
"
\n",
" "
]
},
"metadata": {},
"execution_count": 66
}
],
"source": [
"test_over_60.apply(pd.to_numeric)\n"
]
},
{
"cell_type": "code",
"execution_count": 67,
"metadata": {
"id": "mHv2WLDfkuOR",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 394
},
"outputId": "1811ba3c-f18b-4cb7-83dc-60eb65858bdb"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" Length GCpercent CGratio AUratio MFE AA AU \\\n",
"count 4591323.0 4591323.0 4591323.0 4591323.0 4591323.0 4591323.0 4591323.0 \n",
"mean 97.7 0.5 0.5 0.5 -31.9 0.1 0.1 \n",
"std 34.9 0.1 0.1 0.1 15.6 0.0 0.0 \n",
"min 60.0 0.0 0.0 0.0 -221.1 0.0 0.0 \n",
"25% 72.0 0.4 0.4 0.4 -38.7 0.0 0.0 \n",
"50% 82.0 0.5 0.5 0.5 -29.0 0.1 0.0 \n",
"75% 117.0 0.6 0.5 0.5 -21.8 0.1 0.1 \n",
"max 200.0 1.0 1.0 1.0 0.0 0.9 0.5 \n",
"\n",
" AG AC UA ... GG GC CA \\\n",
"count 4591323.0 4591322.0 4591322.0 ... 4591322.0 4591322.0 4591322.0 \n",
"mean 0.1 0.0 0.0 ... 0.1 0.1 0.1 \n",
"std 0.0 0.0 0.0 ... 0.0 0.0 0.0 \n",
"min 0.0 0.0 0.0 ... 0.0 0.0 0.0 \n",
"25% 0.1 0.0 0.0 ... 0.1 0.0 0.0 \n",
"50% 0.1 0.0 0.0 ... 0.1 0.1 0.1 \n",
"75% 0.1 0.1 0.0 ... 0.1 0.1 0.1 \n",
"max 0.5 0.5 0.0 ... 0.4 0.3 0.5 \n",
"\n",
" CU CG CC MonoMFE mono_z DiMFE di_z \n",
"count 4591322.0 4591322.0 4591322.0 4591322.0 4591322.0 4591322.0 4591322.0 \n",
"mean 0.1 0.0 0.1 -24.8 -0.0 -25.7 -0.0 \n",
"std 0.0 0.0 0.0 11.7 1.0 11.8 1.0 \n",
"min 0.0 0.0 0.0 -118.5 -10.0 -140.0 -10.0 \n",
"25% 0.0 0.0 0.0 -29.8 -0.6 -30.7 -0.6 \n",
"50% 0.1 0.0 0.1 -22.3 0.1 -23.1 0.1 \n",
"75% 0.1 0.1 0.1 -17.7 0.7 -18.6 0.7 \n",
"max 0.5 0.3 0.4 0.0 4.4 0.0 4.0 \n",
"\n",
"[8 rows x 25 columns]"
],
"text/html": [
"\n",
" \n",
"
\n",
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Length | \n",
" GCpercent | \n",
" CGratio | \n",
" AUratio | \n",
" MFE | \n",
" AA | \n",
" AU | \n",
" AG | \n",
" AC | \n",
" UA | \n",
" ... | \n",
" GG | \n",
" GC | \n",
" CA | \n",
" CU | \n",
" CG | \n",
" CC | \n",
" MonoMFE | \n",
" mono_z | \n",
" DiMFE | \n",
" di_z | \n",
"
\n",
" \n",
" \n",
" \n",
" count | \n",
" 4591323.0 | \n",
" 4591323.0 | \n",
" 4591323.0 | \n",
" 4591323.0 | \n",
" 4591323.0 | \n",
" 4591323.0 | \n",
" 4591323.0 | \n",
" 4591323.0 | \n",
" 4591322.0 | \n",
" 4591322.0 | \n",
" ... | \n",
" 4591322.0 | \n",
" 4591322.0 | \n",
" 4591322.0 | \n",
" 4591322.0 | \n",
" 4591322.0 | \n",
" 4591322.0 | \n",
" 4591322.0 | \n",
" 4591322.0 | \n",
" 4591322.0 | \n",
" 4591322.0 | \n",
"
\n",
" \n",
" mean | \n",
" 97.7 | \n",
" 0.5 | \n",
" 0.5 | \n",
" 0.5 | \n",
" -31.9 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" ... | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.1 | \n",
" -24.8 | \n",
" -0.0 | \n",
" -25.7 | \n",
" -0.0 | \n",
"
\n",
" \n",
" std | \n",
" 34.9 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 15.6 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" ... | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 11.7 | \n",
" 1.0 | \n",
" 11.8 | \n",
" 1.0 | \n",
"
\n",
" \n",
" min | \n",
" 60.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" -221.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" ... | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" -118.5 | \n",
" -10.0 | \n",
" -140.0 | \n",
" -10.0 | \n",
"
\n",
" \n",
" 25% | \n",
" 72.0 | \n",
" 0.4 | \n",
" 0.4 | \n",
" 0.4 | \n",
" -38.7 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" ... | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" -29.8 | \n",
" -0.6 | \n",
" -30.7 | \n",
" -0.6 | \n",
"
\n",
" \n",
" 50% | \n",
" 82.0 | \n",
" 0.5 | \n",
" 0.5 | \n",
" 0.5 | \n",
" -29.0 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" ... | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.0 | \n",
" 0.1 | \n",
" -22.3 | \n",
" 0.1 | \n",
" -23.1 | \n",
" 0.1 | \n",
"
\n",
" \n",
" 75% | \n",
" 117.0 | \n",
" 0.6 | \n",
" 0.5 | \n",
" 0.5 | \n",
" -21.8 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.0 | \n",
" ... | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" 0.1 | \n",
" -17.7 | \n",
" 0.7 | \n",
" -18.6 | \n",
" 0.7 | \n",
"
\n",
" \n",
" max | \n",
" 200.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
" 1.0 | \n",
" 0.0 | \n",
" 0.9 | \n",
" 0.5 | \n",
" 0.5 | \n",
" 0.5 | \n",
" 0.0 | \n",
" ... | \n",
" 0.4 | \n",
" 0.3 | \n",
" 0.5 | \n",
" 0.5 | \n",
" 0.3 | \n",
" 0.4 | \n",
" 0.0 | \n",
" 4.4 | \n",
" 0.0 | \n",
" 4.0 | \n",
"
\n",
" \n",
"
\n",
"
8 rows × 25 columns
\n",
"
\n",
"
\n",
" \n",
" \n",
"\n",
" \n",
"
\n",
"
\n",
" "
]
},
"metadata": {},
"execution_count": 67
}
],
"source": [
"test_over_60.describe()"
]
},
{
"cell_type": "code",
"execution_count": 68,
"metadata": {
"id": "udfgrCE1f9To",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "264c7917-662e-48a2-eb3e-3b529d056cd5"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"Index(['Length', 'GCpercent', 'CGratio', 'AUratio', 'AA', 'AU', 'AG', 'AC',\n",
" 'UA', 'UU', 'UG', 'UC', 'GA', 'GU', 'GG', 'GC', 'CA', 'CU', 'CG', 'CC'],\n",
" dtype='object')"
]
},
"metadata": {},
"execution_count": 68
}
],
"source": [
"my_feature.columns"
]
},
{
"cell_type": "markdown",
"source": [
"The following cell shows an example of how you can predict MFEs for a large dataset. Here we are analyzing all sequences between 60-200 nt from the RNACentral database."
],
"metadata": {
"id": "lcWNuJXC4ep_"
}
},
{
"cell_type": "code",
"execution_count": 71,
"metadata": {
"id": "iz39Jue9KirH"
},
"outputs": [],
"source": [
"### Predicting with all 21 features:\n",
"rna_central_MonoMFE_result = my_model.predict(test_over_60[[\"Length\", \"GCpercent\",\"CGratio\", \"AUratio\", 'AA', 'AU', 'AG',\n",
" 'AC', 'UA', 'UU', 'UG', 'UC', 'GA', 'GU', 'GG', 'GC', 'CA', 'CU', 'CG',\n",
" 'CC']])\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "jp0jV5fUijwv"
},
"outputs": [],
"source": [
"rna_central_predicted_mfes = []\n",
"#rna_central_predicted_stds = pd.DataFrame(rna_central_MonoStd_result)\n",
"rna_central_predicted_mfes = pd.DataFrame(rna_central_MonoMFE_result)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "WybQRGJGUNs1"
},
"outputs": [],
"source": [
"#rna_central_predicted_stds = pd.DataFrame(rna_central_MonoStd_result)\n",
"#rna_central_predicted_mfes.columns = [\"predictedMonoStds\"]\n",
"rna_central_predicted_mfes[\"predictedMonoStds\"] = rna_central_MonoStd_result\n",
"rna_central_predicted_mfes[\"predictedMonoMFEs\"] = rna_central_MonoMFE_result"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "brYLobmbtqWA"
},
"outputs": [],
"source": [
"len(test_over_60['MFE'])"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "M0EU8wJ6OXrL"
},
"outputs": [],
"source": [
"rna_central_predicted_mfes[\"MFE\"] = test_over_60['MFE'].to_list()\n",
"rna_central_predicted_mfes[\"Length\"] = test_over_60['Length'].to_list()\n",
"rna_central_predicted_mfes[\"MonoMFE\"] = test_over_60['MonoMFE'].to_list()\n",
"rna_central_predicted_mfes[\"DiMFE\"] = test_over_60['DiMFE'].to_list()\n",
"\n",
"#predicted_mfes[\"DiMFE\"] = di_mfe\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "WtXiprh1_W-u"
},
"outputs": [],
"source": [
"rna_central_predicted_mfes.describe()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "dJx4eR5c-dUs"
},
"outputs": [],
"source": [
"my_label.describe()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "gpks0PDPSeYa"
},
"outputs": [],
"source": [
"rna_central_predicted_mfes.plot.scatter(x=\"predictedMonoMFEs\", y='MonoMFE')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "ruoUK3wkpVyZ"
},
"outputs": [],
"source": [
"rna_central_predicted_mfes.plot.scatter(x=\"predictedMonoMFEs\", y='MonoMFE')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "92q1yXeJpXYJ"
},
"outputs": [],
"source": [
"rna_central_predicted_mfes.plot.scatter(x=\"predictedMonoMFEs\", y='MFE')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "2P-nvPkTTXdF"
},
"outputs": [],
"source": [
"rna_central_predicted_mfes.plot.scatter(x=\"predictedMonoMFEs\", y='MFE')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "b0cSNTOQo8ZG"
},
"outputs": [],
"source": [
"rna_central_predicted_mfes.plot.scatter(x=\"MonoMFE\", y='MFE')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "tgImj2Ajp4Fu"
},
"outputs": [],
"source": [
"rna_central_predicted_mfes.plot.scatter(x=\"DiMFE\", y='MFE')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "KtU4uiEip68c"
},
"outputs": [],
"source": [
"rna_central_predicted_mfes.plot.scatter(x=\"MonoMFE\", y='DiMFE')"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "Yy_R7lIuVf9P"
},
"source": [
"Calculating z-scores"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "aejMMcHoViBv"
},
"outputs": [],
"source": [
"### Create MFE list\n",
"mfe_list = test_over_60['MFE'].tolist()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "P_7W-UJCU46Z"
},
"outputs": [],
"source": [
"zscore_list = []\n",
"for i in range(0, len(mfe_list)):\n",
" mfe = (mfe_list[i])\n",
" print(mfe)\n",
" mean_mfe = rna_central_meanMFE_result[i][0]\n",
" print(mean_mfe)\n",
" std = rna_central_MonoStd_result[i][0]\n",
" print(std)\n",
" if mean_mfe > 0:\n",
" #print(mean_mfe)\n",
" mean_mfe = 0\n",
" zscore = round(float((mfe-mean_mfe)/std), 2)\n",
" zscore_list.append(zscore)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "TQRIJSetay-m"
},
"outputs": [],
"source": [
"len(zscore_list)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "EPubCKBsV2LY"
},
"outputs": [],
"source": [
"rna_central_predicted_mfes['predicted_Z-scores'] = zscore_list"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "srYVRcOaWF91"
},
"outputs": [],
"source": [
"rna_central_predicted_mfes['Mono_Z-scores'] = test_over_60['mono_z'].to_list()\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "A-qVx0CmXUJb"
},
"outputs": [],
"source": [
"rna_central_predicted_mfes['Di_Z-scores'] = test_over_60['di_z'].to_list()\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "VWKQg1FaWD6K"
},
"outputs": [],
"source": [
"#rna_central_predicted_mfes.plot.scatter(x=\"predicted_Z-scores\", y='Mono_Z-scores', xlim=[-10, 10], ylim=[-10,10])\n",
"rna_central_predicted_mfes.plot.scatter(x=\"predicted_Z-scores\", y='Mono_Z-scores')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "U4fXpJUYXXCq"
},
"outputs": [],
"source": [
"rna_central_predicted_mfes.plot.scatter(x=\"predicted_Z-scores\", y='Di_Z-scores', xlim=[-20, 10])"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "nA7yh96S05Lo"
},
"source": [
"Violin Plot"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "TG6c2FF0049_"
},
"outputs": [],
"source": [
"fig, axes = plt.subplots()\n",
"\n",
"axes.violinplot(dataset = test_df[test_df['MonoMFE'].values])\n",
"\n",
"axes.set_title('Predicted Mono MFEs')\n",
"axes.set_xlabel('Predicted Mono MFE')\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"source": [
"### Questions or suggestions?\n",
"E-mail:\n",
"\n",
"Ryan J. Andrews ryan.j.rna@gmail.com\n",
"Walter N. Moss wmoss@iastate.edu\n",
"Warren B. Rouse wbrouse@iastate.edu\n",
"\n"
],
"metadata": {
"id": "_fCqd4qLzMyn"
}
},
{
"cell_type": "markdown",
"metadata": {
"id": "l7OX4RQzd3dR"
},
"source": [
"# Making Predictions with model\n",
"Once you have both a standard deviation and mean MFE model built and loaded, you can calculate z"
]
},
{
"cell_type": "markdown",
"source": [
"Now we are going to clone the ScanFold 2.0 github repo so we can easily access the models stored there."
],
"metadata": {
"id": "-bxTUcqH86Ql"
}
},
{
"cell_type": "code",
"source": [
"! git clone https://github.com/moss-lab/ScanFold2.0"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "n2-9L12k_53b",
"outputId": "8ea3072a-1651-47c4-b3f5-05e131579fd5"
},
"execution_count": 79,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Cloning into 'ScanFold2.0'...\n",
"remote: Enumerating objects: 192, done.\u001b[K\n",
"remote: Counting objects: 100% (33/33), done.\u001b[K\n",
"remote: Compressing objects: 100% (5/5), done.\u001b[K\n",
"remote: Total 192 (delta 29), reused 28 (delta 28), pack-reused 159\u001b[K\n",
"Receiving objects: 100% (192/192), 319.09 KiB | 3.80 MiB/s, done.\n",
"Resolving deltas: 100% (108/108), done.\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"mean_mfe_model = tf.keras.models.load_model('/content/ScanFold2.0/MeanMFE')\n",
"std_dev_model = tf.keras.models.load_model('/content/ScanFold2.0/StdDev')\n",
"di_mean_mfe_model = tf.keras.models.load_model('/content/ScanFold2.0/DiMFE')\n",
"di_std_dev_model = tf.keras.models.load_model('/content/ScanFold2.0/DiStd')"
],
"metadata": {
"id": "m-nUGrot8Gb_"
},
"execution_count": 100,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "q03hC506k96D"
},
"source": [
"### Installing ViennaRNA\n",
"First we will install RNAfold (from ViennaRNA)"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {
"id": "Y9nOW6sbgMBf",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "8974ef95-22a2-4d4d-e5d6-34fb01c04e7a"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"PREFIX=/usr/local\n",
"installing: python-3.6.5-hc3d631a_2 ...\n",
"installing: ca-certificates-2018.03.07-0 ...\n",
"installing: conda-env-2.6.0-h36134e3_1 ...\n",
"installing: libgcc-ng-7.2.0-hdf63c60_3 ...\n",
"installing: libstdcxx-ng-7.2.0-hdf63c60_3 ...\n",
"installing: libffi-3.2.1-hd88cf55_4 ...\n",
"installing: ncurses-6.1-hf484d3e_0 ...\n",
"installing: openssl-1.0.2o-h20670df_0 ...\n",
"installing: tk-8.6.7-hc745277_3 ...\n",
"installing: xz-5.2.4-h14c3975_4 ...\n",
"installing: yaml-0.1.7-had09818_2 ...\n",
"installing: zlib-1.2.11-ha838bed_2 ...\n",
"installing: libedit-3.1.20170329-h6b74fdf_2 ...\n",
"installing: readline-7.0-ha6073c6_4 ...\n",
"installing: sqlite-3.23.1-he433501_0 ...\n",
"installing: asn1crypto-0.24.0-py36_0 ...\n",
"installing: certifi-2018.4.16-py36_0 ...\n",
"installing: chardet-3.0.4-py36h0f667ec_1 ...\n",
"installing: idna-2.6-py36h82fb2a8_1 ...\n",
"installing: pycosat-0.6.3-py36h0a5515d_0 ...\n",
"installing: pycparser-2.18-py36hf9f622e_1 ...\n",
"installing: pysocks-1.6.8-py36_0 ...\n",
"installing: ruamel_yaml-0.15.37-py36h14c3975_2 ...\n",
"installing: six-1.11.0-py36h372c433_1 ...\n",
"installing: cffi-1.11.5-py36h9745a5d_0 ...\n",
"installing: setuptools-39.2.0-py36_0 ...\n",
"installing: cryptography-2.2.2-py36h14c3975_0 ...\n",
"installing: wheel-0.31.1-py36_0 ...\n",
"installing: pip-10.0.1-py36_0 ...\n",
"installing: pyopenssl-18.0.0-py36_0 ...\n",
"installing: urllib3-1.22-py36hbe7ace6_0 ...\n",
"installing: requests-2.18.4-py36he2e5f8d_1 ...\n",
"installing: conda-4.5.4-py36_0 ...\n",
"installation finished.\n",
"WARNING:\n",
" You currently have a PYTHONPATH environment variable set. This may cause\n",
" unexpected behavior when running the Python interpreter in Miniconda3.\n",
" For best results, please verify that your PYTHONPATH only points to\n",
" directories of packages that are compatible with the Python interpreter\n",
" in Miniconda3: /usr/local\n"
]
},
{
"output_type": "stream",
"name": "stderr",
"text": [
"--2022-09-16 19:45:22-- https://repo.continuum.io/miniconda/Miniconda3-4.5.4-Linux-x86_64.sh\n",
"Resolving repo.continuum.io (repo.continuum.io)... 104.18.201.79, 104.18.200.79, 2606:4700::6812:c94f, ...\n",
"Connecting to repo.continuum.io (repo.continuum.io)|104.18.201.79|:443... connected.\n",
"HTTP request sent, awaiting response... 301 Moved Permanently\n",
"Location: https://repo.anaconda.com/miniconda/Miniconda3-4.5.4-Linux-x86_64.sh [following]\n",
"--2022-09-16 19:45:22-- https://repo.anaconda.com/miniconda/Miniconda3-4.5.4-Linux-x86_64.sh\n",
"Resolving repo.anaconda.com (repo.anaconda.com)... 104.16.130.3, 104.16.131.3, 2606:4700::6810:8203, ...\n",
"Connecting to repo.anaconda.com (repo.anaconda.com)|104.16.130.3|:443... connected.\n",
"HTTP request sent, awaiting response... 200 OK\n",
"Length: 58468498 (56M) [application/x-sh]\n",
"Saving to: ‘Miniconda3-4.5.4-Linux-x86_64.sh’\n",
"\n",
" 0K .......... .......... .......... .......... .......... 0% 45.6M 1s\n",
" 50K .......... .......... .......... .......... .......... 0% 4.23M 7s\n",
" 100K .......... .......... .......... .......... .......... 0% 5.33M 8s\n",
" 150K .......... .......... .......... .......... .......... 0% 27.2M 7s\n",
" 200K .......... .......... .......... .......... .......... 0% 67.4M 6s\n",
" 250K .......... .......... .......... .......... .......... 0% 70.8M 5s\n",
" 300K .......... .......... .......... .......... .......... 0% 6.09M 5s\n",
" 350K .......... .......... .......... .......... .......... 0% 61.5M 5s\n",
" 400K .......... .......... .......... .......... .......... 0% 79.9M 4s\n",
" 450K .......... .......... .......... .......... .......... 0% 79.0M 4s\n",
" 500K .......... .......... .......... .......... .......... 0% 151M 4s\n",
" 550K .......... .......... .......... .......... .......... 1% 92.4M 3s\n",
" 600K .......... .......... .......... .......... .......... 1% 83.5M 3s\n",
" 650K .......... .......... .......... .......... .......... 1% 188M 3s\n",
" 700K .......... .......... .......... .......... .......... 1% 84.9M 3s\n",
" 750K .......... .......... .......... .......... .......... 1% 56.1M 3s\n",
" 800K .......... .......... .......... .......... .......... 1% 68.9M 3s\n",
" 850K .......... .......... .......... .......... .......... 1% 9.15M 3s\n",
" 900K .......... .......... .......... .......... .......... 1% 64.3M 3s\n",
" 950K .......... .......... .......... .......... .......... 1% 57.9M 3s\n",
" 1000K .......... .......... .......... .......... .......... 1% 78.5M 2s\n",
" 1050K .......... .......... .......... .......... .......... 1% 65.5M 2s\n",
" 1100K .......... .......... .......... .......... .......... 2% 166M 2s\n",
" 1150K .......... .......... .......... .......... .......... 2% 67.1M 2s\n",
" 1200K .......... .......... .......... .......... .......... 2% 126M 2s\n",
" 1250K .......... .......... .......... .......... .......... 2% 342M 2s\n",
" 1300K .......... .......... .......... .......... .......... 2% 356M 2s\n",
" 1350K .......... .......... .......... .......... .......... 2% 224M 2s\n",
" 1400K .......... .......... .......... .......... .......... 2% 117M 2s\n",
" 1450K .......... .......... .......... .......... .......... 2% 50.6M 2s\n",
" 1500K .......... .......... .......... .......... .......... 2% 132M 2s\n",
" 1550K .......... .......... .......... .......... .......... 2% 174M 2s\n",
" 1600K .......... .......... .......... .......... .......... 2% 172M 2s\n",
" 1650K .......... .......... .......... .......... .......... 2% 172M 2s\n",
" 1700K .......... .......... .......... .......... .......... 3% 73.6M 2s\n",
" 1750K .......... .......... .......... .......... .......... 3% 95.2M 2s\n",
" 1800K .......... .......... .......... .......... .......... 3% 121M 2s\n",
" 1850K .......... .......... .......... .......... .......... 3% 142M 2s\n",
" 1900K .......... .......... .......... .......... .......... 3% 25.8M 2s\n",
" 1950K .......... .......... .......... .......... .......... 3% 58.3M 2s\n",
" 2000K .......... .......... .......... .......... .......... 3% 191M 2s\n",
" 2050K .......... .......... .......... .......... .......... 3% 306M 1s\n",
" 2100K .......... .......... .......... .......... .......... 3% 277M 1s\n",
" 2150K .......... .......... .......... .......... .......... 3% 217M 1s\n",
" 2200K .......... .......... .......... .......... .......... 3% 341M 1s\n",
" 2250K .......... .......... .......... .......... .......... 4% 79.6M 1s\n",
" 2300K .......... .......... .......... .......... .......... 4% 63.0M 1s\n",
" 2350K .......... .......... .......... .......... .......... 4% 54.3M 1s\n",
" 2400K .......... .......... .......... .......... .......... 4% 58.9M 1s\n",
" 2450K .......... .......... .......... .......... .......... 4% 111M 1s\n",
" 2500K .......... .......... .......... .......... .......... 4% 331M 1s\n",
" 2550K .......... .......... .......... .......... .......... 4% 225M 1s\n",
" 2600K .......... .......... .......... .......... .......... 4% 347M 1s\n",
" 2650K .......... .......... .......... .......... .......... 4% 256M 1s\n",
" 2700K .......... .......... .......... .......... .......... 4% 306M 1s\n",
" 2750K .......... .......... .......... .......... .......... 4% 329M 1s\n",
" 2800K .......... .......... .......... .......... .......... 4% 282M 1s\n",
" 2850K .......... .......... .......... .......... .......... 5% 340M 1s\n",
" 2900K .......... .......... .......... .......... .......... 5% 275M 1s\n",
" 2950K .......... .......... .......... .......... .......... 5% 182M 1s\n",
" 3000K .......... .......... .......... .......... .......... 5% 299M 1s\n",
" 3050K .......... .......... .......... .......... .......... 5% 363M 1s\n",
" 3100K .......... .......... .......... .......... .......... 5% 293M 1s\n",
" 3150K .......... .......... .......... .......... .......... 5% 236M 1s\n",
" 3200K .......... .......... .......... .......... .......... 5% 150M 1s\n",
" 3250K .......... .......... .......... .......... .......... 5% 256M 1s\n",
" 3300K .......... .......... .......... .......... .......... 5% 345M 1s\n",
" 3350K .......... .......... .......... .......... .......... 5% 247M 1s\n",
" 3400K .......... .......... .......... .......... .......... 6% 39.8M 1s\n",
" 3450K .......... .......... .......... .......... .......... 6% 52.7M 1s\n",
" 3500K .......... .......... .......... .......... .......... 6% 61.3M 1s\n",
" 3550K .......... .......... .......... .......... .......... 6% 69.8M 1s\n",
" 3600K .......... .......... .......... .......... .......... 6% 177M 1s\n",
" 3650K .......... .......... .......... .......... .......... 6% 175M 1s\n",
" 3700K .......... .......... .......... .......... .......... 6% 191M 1s\n",
" 3750K .......... .......... .......... .......... .......... 6% 140M 1s\n",
" 3800K .......... .......... .......... .......... .......... 6% 102M 1s\n",
" 3850K .......... .......... .......... .......... .......... 6% 135M 1s\n",
" 3900K .......... .......... .......... .......... .......... 6% 186M 1s\n",
" 3950K .......... .......... .......... .......... .......... 7% 182M 1s\n",
" 4000K .......... .......... .......... .......... .......... 7% 186M 1s\n",
" 4050K .......... .......... .......... .......... .......... 7% 189M 1s\n",
" 4100K .......... .......... .......... .......... .......... 7% 207M 1s\n",
" 4150K .......... .......... .......... .......... .......... 7% 166M 1s\n",
" 4200K .......... .......... .......... .......... .......... 7% 228M 1s\n",
" 4250K .......... .......... .......... .......... .......... 7% 380M 1s\n",
" 4300K .......... .......... .......... .......... .......... 7% 339M 1s\n",
" 4350K .......... .......... .......... .......... .......... 7% 173M 1s\n",
" 4400K .......... .......... .......... .......... .......... 7% 297M 1s\n",
" 4450K .......... .......... .......... .......... .......... 7% 184M 1s\n",
" 4500K .......... .......... .......... .......... .......... 7% 282M 1s\n",
" 4550K .......... .......... .......... .......... .......... 8% 290M 1s\n",
" 4600K .......... .......... .......... .......... .......... 8% 366M 1s\n",
" 4650K .......... .......... .......... .......... .......... 8% 355M 1s\n",
" 4700K .......... .......... .......... .......... .......... 8% 371M 1s\n",
" 4750K .......... .......... .......... .......... .......... 8% 208M 1s\n",
" 4800K .......... .......... .......... .......... .......... 8% 355M 1s\n",
" 4850K .......... .......... .......... .......... .......... 8% 333M 1s\n",
" 4900K .......... .......... .......... .......... .......... 8% 327M 1s\n",
" 4950K .......... .......... .......... .......... .......... 8% 273M 1s\n",
" 5000K .......... .......... .......... .......... .......... 8% 380M 1s\n",
" 5050K .......... .......... .......... .......... .......... 8% 301M 1s\n",
" 5100K .......... .......... .......... .......... .......... 9% 367M 1s\n",
" 5150K .......... .......... .......... .......... .......... 9% 337M 1s\n",
" 5200K .......... .......... .......... .......... .......... 9% 364M 1s\n",
" 5250K .......... .......... .......... .......... .......... 9% 376M 1s\n",
" 5300K .......... .......... .......... .......... .......... 9% 20.0M 1s\n",
" 5350K .......... .......... .......... .......... .......... 9% 141M 1s\n",
" 5400K .......... .......... .......... .......... .......... 9% 284M 1s\n",
" 5450K .......... .......... .......... .......... .......... 9% 357M 1s\n",
" 5500K .......... .......... .......... .......... .......... 9% 362M 1s\n",
" 5550K .......... .......... .......... .......... .......... 9% 215M 1s\n",
" 5600K .......... .......... .......... .......... .......... 9% 238M 1s\n",
" 5650K .......... .......... .......... .......... .......... 9% 225M 1s\n",
" 5700K .......... .......... .......... .......... .......... 10% 278M 1s\n",
" 5750K .......... .......... .......... .......... .......... 10% 229M 1s\n",
" 5800K .......... .......... .......... .......... .......... 10% 164M 1s\n",
" 5850K .......... .......... .......... .......... .......... 10% 266M 1s\n",
" 5900K .......... .......... .......... .......... .......... 10% 290M 1s\n",
" 5950K .......... .......... .......... .......... .......... 10% 338M 1s\n",
" 6000K .......... .......... .......... .......... .......... 10% 370M 1s\n",
" 6050K .......... .......... .......... .......... .......... 10% 373M 1s\n",
" 6100K .......... .......... .......... .......... .......... 10% 224M 1s\n",
" 6150K .......... .......... .......... .......... .......... 10% 292M 1s\n",
" 6200K .......... .......... .......... .......... .......... 10% 380M 1s\n",
" 6250K .......... .......... .......... .......... .......... 11% 369M 1s\n",
" 6300K .......... .......... .......... .......... .......... 11% 372M 1s\n",
" 6350K .......... .......... .......... .......... .......... 11% 101M 1s\n",
" 6400K .......... .......... .......... .......... .......... 11% 55.7M 1s\n",
" 6450K .......... .......... .......... .......... .......... 11% 50.8M 1s\n",
" 6500K .......... .......... .......... .......... .......... 11% 58.5M 1s\n",
" 6550K .......... .......... .......... .......... .......... 11% 69.4M 1s\n",
" 6600K .......... .......... .......... .......... .......... 11% 360M 1s\n",
" 6650K .......... .......... .......... .......... .......... 11% 333M 1s\n",
" 6700K .......... .......... .......... .......... .......... 11% 315M 1s\n",
" 6750K .......... .......... .......... .......... .......... 11% 306M 1s\n",
" 6800K .......... .......... .......... .......... .......... 11% 338M 1s\n",
" 6850K .......... .......... .......... .......... .......... 12% 359M 1s\n",
" 6900K .......... .......... .......... .......... .......... 12% 345M 1s\n",
" 6950K .......... .......... .......... .......... .......... 12% 299M 1s\n",
" 7000K .......... .......... .......... .......... .......... 12% 364M 1s\n",
" 7050K .......... .......... .......... .......... .......... 12% 297M 1s\n",
" 7100K .......... .......... .......... .......... .......... 12% 359M 1s\n",
" 7150K .......... .......... .......... .......... .......... 12% 311M 1s\n",
" 7200K .......... .......... .......... .......... .......... 12% 373M 1s\n",
" 7250K .......... .......... .......... .......... .......... 12% 370M 1s\n",
" 7300K .......... .......... .......... .......... .......... 12% 370M 1s\n",
" 7350K .......... .......... .......... .......... .......... 12% 322M 1s\n",
" 7400K .......... .......... .......... .......... .......... 13% 293M 1s\n",
" 7450K .......... .......... .......... .......... .......... 13% 256M 1s\n",
" 7500K .......... .......... .......... .......... .......... 13% 370M 1s\n",
" 7550K .......... .......... .......... .......... .......... 13% 325M 1s\n",
" 7600K .......... .......... .......... .......... .......... 13% 374M 1s\n",
" 7650K .......... .......... .......... .......... .......... 13% 237M 1s\n",
" 7700K .......... .......... .......... .......... .......... 13% 286M 1s\n",
" 7750K .......... .......... .......... .......... .......... 13% 312M 1s\n",
" 7800K .......... .......... .......... .......... .......... 13% 333M 1s\n",
" 7850K .......... .......... .......... .......... .......... 13% 377M 1s\n",
" 7900K .......... .......... .......... .......... .......... 13% 268M 1s\n",
" 7950K .......... .......... .......... .......... .......... 14% 216M 1s\n",
" 8000K .......... .......... .......... .......... .......... 14% 128M 1s\n",
" 8050K .......... .......... .......... .......... .......... 14% 249M 1s\n",
" 8100K .......... .......... .......... .......... .......... 14% 294M 1s\n",
" 8150K .......... .......... .......... .......... .......... 14% 205M 1s\n",
" 8200K .......... .......... .......... .......... .......... 14% 224M 1s\n",
" 8250K .......... .......... .......... .......... .......... 14% 165M 1s\n",
" 8300K .......... .......... .......... .......... .......... 14% 13.9M 1s\n",
" 8350K .......... .......... .......... .......... .......... 14% 63.6M 1s\n",
" 8400K .......... .......... .......... .......... .......... 14% 85.0M 1s\n",
" 8450K .......... .......... .......... .......... .......... 14% 70.7M 1s\n",
" 8500K .......... .......... .......... .......... .......... 14% 146M 1s\n",
" 8550K .......... .......... .......... .......... .......... 15% 138M 1s\n",
" 8600K .......... .......... .......... .......... .......... 15% 166M 1s\n",
" 8650K .......... .......... .......... .......... .......... 15% 169M 1s\n",
" 8700K .......... .......... .......... .......... .......... 15% 185M 1s\n",
" 8750K .......... .......... .......... .......... .......... 15% 162M 1s\n",
" 8800K .......... .......... .......... .......... .......... 15% 158M 1s\n",
" 8850K .......... .......... .......... .......... .......... 15% 163M 1s\n",
" 8900K .......... .......... .......... .......... .......... 15% 205M 1s\n",
" 8950K .......... .......... .......... .......... .......... 15% 176M 1s\n",
" 9000K .......... .......... .......... .......... .......... 15% 118M 1s\n",
" 9050K .......... .......... .......... .......... .......... 15% 206M 1s\n",
" 9100K .......... .......... .......... .......... .......... 16% 166M 1s\n",
" 9150K .......... .......... .......... .......... .......... 16% 171M 1s\n",
" 9200K .......... .......... .......... .......... .......... 16% 181M 1s\n",
" 9250K .......... .......... .......... .......... .......... 16% 161M 1s\n",
" 9300K .......... .......... .......... .......... .......... 16% 197M 1s\n",
" 9350K .......... .......... .......... .......... .......... 16% 167M 1s\n",
" 9400K .......... .......... .......... .......... .......... 16% 205M 1s\n",
" 9450K .......... .......... .......... .......... .......... 16% 195M 1s\n",
" 9500K .......... .......... .......... .......... .......... 16% 152M 1s\n",
" 9550K .......... .......... .......... .......... .......... 16% 157M 1s\n",
" 9600K .......... .......... .......... .......... .......... 16% 190M 1s\n",
" 9650K .......... .......... .......... .......... .......... 16% 168M 1s\n",
" 9700K .......... .......... .......... .......... .......... 17% 168M 1s\n",
" 9750K .......... .......... .......... .......... .......... 17% 130M 1s\n",
" 9800K .......... .......... .......... .......... .......... 17% 167M 1s\n",
" 9850K .......... .......... .......... .......... .......... 17% 174M 0s\n",
" 9900K .......... .......... .......... .......... .......... 17% 172M 0s\n",
" 9950K .......... .......... .......... .......... .......... 17% 136M 0s\n",
" 10000K .......... .......... .......... .......... .......... 17% 163M 0s\n",
" 10050K .......... .......... .......... .......... .......... 17% 170M 0s\n",
" 10100K .......... .......... .......... .......... .......... 17% 162M 0s\n",
" 10150K .......... .......... .......... .......... .......... 17% 141M 0s\n",
" 10200K .......... .......... .......... .......... .......... 17% 195M 0s\n",
" 10250K .......... .......... .......... .......... .......... 18% 217M 0s\n",
" 10300K .......... .......... .......... .......... .......... 18% 193M 0s\n",
" 10350K .......... .......... .......... .......... .......... 18% 180M 0s\n",
" 10400K .......... .......... .......... .......... .......... 18% 198M 0s\n",
" 10450K .......... .......... .......... .......... .......... 18% 184M 0s\n",
" 10500K .......... .......... .......... .......... .......... 18% 178M 0s\n",
" 10550K .......... .......... .......... .......... .......... 18% 144M 0s\n",
" 10600K .......... .......... .......... .......... .......... 18% 188M 0s\n",
" 10650K .......... .......... .......... .......... .......... 18% 207M 0s\n",
" 10700K .......... .......... .......... .......... .......... 18% 151M 0s\n",
" 10750K .......... .......... .......... .......... .......... 18% 155M 0s\n",
" 10800K .......... .......... .......... .......... .......... 19% 212M 0s\n",
" 10850K .......... .......... .......... .......... .......... 19% 200M 0s\n",
" 10900K .......... .......... .......... .......... .......... 19% 206M 0s\n",
" 10950K .......... .......... .......... .......... .......... 19% 177M 0s\n",
" 11000K .......... .......... .......... .......... .......... 19% 199M 0s\n",
" 11050K .......... .......... .......... .......... .......... 19% 218M 0s\n",
" 11100K .......... .......... .......... .......... .......... 19% 224M 0s\n",
" 11150K .......... .......... .......... .......... .......... 19% 169M 0s\n",
" 11200K .......... .......... .......... .......... .......... 19% 205M 0s\n",
" 11250K .......... .......... .......... .......... .......... 19% 175M 0s\n",
" 11300K .......... .......... .......... .......... .......... 19% 204M 0s\n",
" 11350K .......... .......... .......... .......... .......... 19% 166M 0s\n",
" 11400K .......... .......... .......... .......... .......... 20% 190M 0s\n",
" 11450K .......... .......... .......... .......... .......... 20% 183M 0s\n",
" 11500K .......... .......... .......... .......... .......... 20% 204M 0s\n",
" 11550K .......... .......... .......... .......... .......... 20% 191M 0s\n",
" 11600K .......... .......... .......... .......... .......... 20% 212M 0s\n",
" 11650K .......... .......... .......... .......... .......... 20% 209M 0s\n",
" 11700K .......... .......... .......... .......... .......... 20% 193M 0s\n",
" 11750K .......... .......... .......... .......... .......... 20% 181M 0s\n",
" 11800K .......... .......... .......... .......... .......... 20% 214M 0s\n",
" 11850K .......... .......... .......... .......... .......... 20% 205M 0s\n",
" 11900K .......... .......... .......... .......... .......... 20% 180M 0s\n",
" 11950K .......... .......... .......... .......... .......... 21% 94.3M 0s\n",
" 12000K .......... .......... .......... .......... .......... 21% 145M 0s\n",
" 12050K .......... .......... .......... .......... .......... 21% 163M 0s\n",
" 12100K .......... .......... .......... .......... .......... 21% 163M 0s\n",
" 12150K .......... .......... .......... .......... .......... 21% 130M 0s\n",
" 12200K .......... .......... .......... .......... .......... 21% 146M 0s\n",
" 12250K .......... .......... .......... .......... .......... 21% 198M 0s\n",
" 12300K .......... .......... .......... .......... .......... 21% 205M 0s\n",
" 12350K .......... .......... .......... .......... .......... 21% 187M 0s\n",
" 12400K .......... .......... .......... .......... .......... 21% 168M 0s\n",
" 12450K .......... .......... .......... .......... .......... 21% 205M 0s\n",
" 12500K .......... .......... .......... .......... .......... 21% 186M 0s\n",
" 12550K .......... .......... .......... .......... .......... 22% 163M 0s\n",
" 12600K .......... .......... .......... .......... .......... 22% 213M 0s\n",
" 12650K .......... .......... .......... .......... .......... 22% 226M 0s\n",
" 12700K .......... .......... .......... .......... .......... 22% 168M 0s\n",
" 12750K .......... .......... .......... .......... .......... 22% 167M 0s\n",
" 12800K .......... .......... .......... .......... .......... 22% 209M 0s\n",
" 12850K .......... .......... .......... .......... .......... 22% 217M 0s\n",
" 12900K .......... .......... .......... .......... .......... 22% 192M 0s\n",
" 12950K .......... .......... .......... .......... .......... 22% 170M 0s\n",
" 13000K .......... .......... .......... .......... .......... 22% 206M 0s\n",
" 13050K .......... .......... .......... .......... .......... 22% 211M 0s\n",
" 13100K .......... .......... .......... .......... .......... 23% 202M 0s\n",
" 13150K .......... .......... .......... .......... .......... 23% 184M 0s\n",
" 13200K .......... .......... .......... .......... .......... 23% 200M 0s\n",
" 13250K .......... .......... .......... .......... .......... 23% 193M 0s\n",
" 13300K .......... .......... .......... .......... .......... 23% 172M 0s\n",
" 13350K .......... .......... .......... .......... .......... 23% 171M 0s\n",
" 13400K .......... .......... .......... .......... .......... 23% 188M 0s\n",
" 13450K .......... .......... .......... .......... .......... 23% 163M 0s\n",
" 13500K .......... .......... .......... .......... .......... 23% 172M 0s\n",
" 13550K .......... .......... .......... .......... .......... 23% 180M 0s\n",
" 13600K .......... .......... .......... .......... .......... 23% 215M 0s\n",
" 13650K .......... .......... .......... .......... .......... 23% 214M 0s\n",
" 13700K .......... .......... .......... .......... .......... 24% 206M 0s\n",
" 13750K .......... .......... .......... .......... .......... 24% 169M 0s\n",
" 13800K .......... .......... .......... .......... .......... 24% 187M 0s\n",
" 13850K .......... .......... .......... .......... .......... 24% 159M 0s\n",
" 13900K .......... .......... .......... .......... .......... 24% 163M 0s\n",
" 13950K .......... .......... .......... .......... .......... 24% 78.2M 0s\n",
" 14000K .......... .......... .......... .......... .......... 24% 154M 0s\n",
" 14050K .......... .......... .......... .......... .......... 24% 165M 0s\n",
" 14100K .......... .......... .......... .......... .......... 24% 167M 0s\n",
" 14150K .......... .......... .......... .......... .......... 24% 144M 0s\n",
" 14200K .......... .......... .......... .......... .......... 24% 163M 0s\n",
" 14250K .......... .......... .......... .......... .......... 25% 190M 0s\n",
" 14300K .......... .......... .......... .......... .......... 25% 190M 0s\n",
" 14350K .......... .......... .......... .......... .......... 25% 331M 0s\n",
" 14400K .......... .......... .......... .......... .......... 25% 289M 0s\n",
" 14450K .......... .......... .......... .......... .......... 25% 168M 0s\n",
" 14500K .......... .......... .......... .......... .......... 25% 282M 0s\n",
" 14550K .......... .......... .......... .......... .......... 25% 230M 0s\n",
" 14600K .......... .......... .......... .......... .......... 25% 356M 0s\n",
" 14650K .......... .......... .......... .......... .......... 25% 258M 0s\n",
" 14700K .......... .......... .......... .......... .......... 25% 231M 0s\n",
" 14750K .......... .......... .......... .......... .......... 25% 266M 0s\n",
" 14800K .......... .......... .......... .......... .......... 26% 268M 0s\n",
" 14850K .......... .......... .......... .......... .......... 26% 280M 0s\n",
" 14900K .......... .......... .......... .......... .......... 26% 365M 0s\n",
" 14950K .......... .......... .......... .......... .......... 26% 248M 0s\n",
" 15000K .......... .......... .......... .......... .......... 26% 376M 0s\n",
" 15050K .......... .......... .......... .......... .......... 26% 326M 0s\n",
" 15100K .......... .......... .......... .......... .......... 26% 267M 0s\n",
" 15150K .......... .......... .......... .......... .......... 26% 210M 0s\n",
" 15200K .......... .......... .......... .......... .......... 26% 299M 0s\n",
" 15250K .......... .......... .......... .......... .......... 26% 343M 0s\n",
" 15300K .......... .......... .......... .......... .......... 26% 359M 0s\n",
" 15350K .......... .......... .......... .......... .......... 26% 305M 0s\n",
" 15400K .......... .......... .......... .......... .......... 27% 368M 0s\n",
" 15450K .......... .......... .......... .......... .......... 27% 342M 0s\n",
" 15500K .......... .......... .......... .......... .......... 27% 366M 0s\n",
" 15550K .......... .......... .......... .......... .......... 27% 130M 0s\n",
" 15600K .......... .......... .......... .......... .......... 27% 96.6M 0s\n",
" 15650K .......... .......... .......... .......... .......... 27% 97.1M 0s\n",
" 15700K .......... .......... .......... .......... .......... 27% 98.4M 0s\n",
" 15750K .......... .......... .......... .......... .......... 27% 107M 0s\n",
" 15800K .......... .......... .......... .......... .......... 27% 89.7M 0s\n",
" 15850K .......... .......... .......... .......... .......... 27% 71.4M 0s\n",
" 15900K .......... .......... .......... .......... .......... 27% 74.2M 0s\n",
" 15950K .......... .......... .......... .......... .......... 28% 70.9M 0s\n",
" 16000K .......... .......... .......... .......... .......... 28% 157M 0s\n",
" 16050K .......... .......... .......... .......... .......... 28% 175M 0s\n",
" 16100K .......... .......... .......... .......... .......... 28% 186M 0s\n",
" 16150K .......... .......... .......... .......... .......... 28% 141M 0s\n",
" 16200K .......... .......... .......... .......... .......... 28% 150M 0s\n",
" 16250K .......... .......... .......... .......... .......... 28% 173M 0s\n",
" 16300K .......... .......... .......... .......... .......... 28% 188M 0s\n",
" 16350K .......... .......... .......... .......... .......... 28% 169M 0s\n",
" 16400K .......... .......... .......... .......... .......... 28% 197M 0s\n",
" 16450K .......... .......... .......... .......... .......... 28% 176M 0s\n",
" 16500K .......... .......... .......... .......... .......... 28% 190M 0s\n",
" 16550K .......... .......... .......... .......... .......... 29% 152M 0s\n",
" 16600K .......... .......... .......... .......... .......... 29% 161M 0s\n",
" 16650K .......... .......... .......... .......... .......... 29% 196M 0s\n",
" 16700K .......... .......... .......... .......... .......... 29% 197M 0s\n",
" 16750K .......... .......... .......... .......... .......... 29% 194M 0s\n",
" 16800K .......... .......... .......... .......... .......... 29% 165M 0s\n",
" 16850K .......... .......... .......... .......... .......... 29% 146M 0s\n",
" 16900K .......... .......... .......... .......... .......... 29% 171M 0s\n",
" 16950K .......... .......... .......... .......... .......... 29% 167M 0s\n",
" 17000K .......... .......... .......... .......... .......... 29% 208M 0s\n",
" 17050K .......... .......... .......... .......... .......... 29% 218M 0s\n",
" 17100K .......... .......... .......... .......... .......... 30% 205M 0s\n",
" 17150K .......... .......... .......... .......... .......... 30% 193M 0s\n",
" 17200K .......... .......... .......... .......... .......... 30% 206M 0s\n",
" 17250K .......... .......... .......... .......... .......... 30% 211M 0s\n",
" 17300K .......... .......... .......... .......... .......... 30% 192M 0s\n",
" 17350K .......... .......... .......... .......... .......... 30% 159M 0s\n",
" 17400K .......... .......... .......... .......... .......... 30% 199M 0s\n",
" 17450K .......... .......... .......... .......... .......... 30% 153M 0s\n",
" 17500K .......... .......... .......... .......... .......... 30% 175M 0s\n",
" 17550K .......... .......... .......... .......... .......... 30% 184M 0s\n",
" 17600K .......... .......... .......... .......... .......... 30% 205M 0s\n",
" 17650K .......... .......... .......... .......... .......... 30% 190M 0s\n",
" 17700K .......... .......... .......... .......... .......... 31% 199M 0s\n",
" 17750K .......... .......... .......... .......... .......... 31% 161M 0s\n",
" 17800K .......... .......... .......... .......... .......... 31% 212M 0s\n",
" 17850K .......... .......... .......... .......... .......... 31% 205M 0s\n",
" 17900K .......... .......... .......... .......... .......... 31% 205M 0s\n",
" 17950K .......... .......... .......... .......... .......... 31% 209M 0s\n",
" 18000K .......... .......... .......... .......... .......... 31% 200M 0s\n",
" 18050K .......... .......... .......... .......... .......... 31% 181M 0s\n",
" 18100K .......... .......... .......... .......... .......... 31% 214M 0s\n",
" 18150K .......... .......... .......... .......... .......... 31% 234M 0s\n",
" 18200K .......... .......... .......... .......... .......... 31% 367M 0s\n",
" 18250K .......... .......... .......... .......... .......... 32% 222M 0s\n",
" 18300K .......... .......... .......... .......... .......... 32% 300M 0s\n",
" 18350K .......... .......... .......... .......... .......... 32% 325M 0s\n",
" 18400K .......... .......... .......... .......... .......... 32% 327M 0s\n",
" 18450K .......... .......... .......... .......... .......... 32% 216M 0s\n",
" 18500K .......... .......... .......... .......... .......... 32% 192M 0s\n",
" 18550K .......... .......... .......... .......... .......... 32% 226M 0s\n",
" 18600K .......... .......... .......... .......... .......... 32% 194M 0s\n",
" 18650K .......... .......... .......... .......... .......... 32% 210M 0s\n",
" 18700K .......... .......... .......... .......... .......... 32% 207M 0s\n",
" 18750K .......... .......... .......... .......... .......... 32% 178M 0s\n",
" 18800K .......... .......... .......... .......... .......... 33% 200M 0s\n",
" 18850K .......... .......... .......... .......... .......... 33% 184M 0s\n",
" 18900K .......... .......... .......... .......... .......... 33% 210M 0s\n",
" 18950K .......... .......... .......... .......... .......... 33% 176M 0s\n",
" 19000K .......... .......... .......... .......... .......... 33% 198M 0s\n",
" 19050K .......... .......... .......... .......... .......... 33% 203M 0s\n",
" 19100K .......... .......... .......... .......... .......... 33% 157M 0s\n",
" 19150K .......... .......... .......... .......... .......... 33% 148M 0s\n",
" 19200K .......... .......... .......... .......... .......... 33% 215M 0s\n",
" 19250K .......... .......... .......... .......... .......... 33% 206M 0s\n",
" 19300K .......... .......... .......... .......... .......... 33% 208M 0s\n",
" 19350K .......... .......... .......... .......... .......... 33% 177M 0s\n",
" 19400K .......... .......... .......... .......... .......... 34% 201M 0s\n",
" 19450K .......... .......... .......... .......... .......... 34% 186M 0s\n",
" 19500K .......... .......... .......... .......... .......... 34% 186M 0s\n",
" 19550K .......... .......... .......... .......... .......... 34% 159M 0s\n",
" 19600K .......... .......... .......... .......... .......... 34% 167M 0s\n",
" 19650K .......... .......... .......... .......... .......... 34% 182M 0s\n",
" 19700K .......... .......... .......... .......... .......... 34% 172M 0s\n",
" 19750K .......... .......... .......... .......... .......... 34% 173M 0s\n",
" 19800K .......... .......... .......... .......... .......... 34% 228M 0s\n",
" 19850K .......... .......... .......... .......... .......... 34% 219M 0s\n",
" 19900K .......... .......... .......... .......... .......... 34% 199M 0s\n",
" 19950K .......... .......... .......... .......... .......... 35% 278M 0s\n",
" 20000K .......... .......... .......... .......... .......... 35% 364M 0s\n",
" 20050K .......... .......... .......... .......... .......... 35% 393M 0s\n",
" 20100K .......... .......... .......... .......... .......... 35% 370M 0s\n",
" 20150K .......... .......... .......... .......... .......... 35% 307M 0s\n",
" 20200K .......... .......... .......... .......... .......... 35% 388M 0s\n",
" 20250K .......... .......... .......... .......... .......... 35% 315M 0s\n",
" 20300K .......... .......... .......... .......... .......... 35% 206M 0s\n",
" 20350K .......... .......... .......... .......... .......... 35% 225M 0s\n",
" 20400K .......... .......... .......... .......... .......... 35% 273M 0s\n",
" 20450K .......... .......... .......... .......... .......... 35% 218M 0s\n",
" 20500K .......... .......... .......... .......... .......... 35% 235M 0s\n",
" 20550K .......... .......... .......... .......... .......... 36% 219M 0s\n",
" 20600K .......... .......... .......... .......... .......... 36% 257M 0s\n",
" 20650K .......... .......... .......... .......... .......... 36% 246M 0s\n",
" 20700K .......... .......... .......... .......... .......... 36% 235M 0s\n",
" 20750K .......... .......... .......... .......... .......... 36% 207M 0s\n",
" 20800K .......... .......... .......... .......... .......... 36% 204M 0s\n",
" 20850K .......... .......... .......... .......... .......... 36% 264M 0s\n",
" 20900K .......... .......... .......... .......... .......... 36% 229M 0s\n",
" 20950K .......... .......... .......... .......... .......... 36% 163M 0s\n",
" 21000K .......... .......... .......... .......... .......... 36% 256M 0s\n",
" 21050K .......... .......... .......... .......... .......... 36% 310M 0s\n",
" 21100K .......... .......... .......... .......... .......... 37% 363M 0s\n",
" 21150K .......... .......... .......... .......... .......... 37% 313M 0s\n",
" 21200K .......... .......... .......... .......... .......... 37% 340M 0s\n",
" 21250K .......... .......... .......... .......... .......... 37% 223M 0s\n",
" 21300K .......... .......... .......... .......... .......... 37% 159M 0s\n",
" 21350K .......... .......... .......... .......... .......... 37% 205M 0s\n",
" 21400K .......... .......... .......... .......... .......... 37% 202M 0s\n",
" 21450K .......... .......... .......... .......... .......... 37% 188M 0s\n",
" 21500K .......... .......... .......... .......... .......... 37% 195M 0s\n",
" 21550K .......... .......... .......... .......... .......... 37% 176M 0s\n",
" 21600K .......... .......... .......... .......... .......... 37% 225M 0s\n",
" 21650K .......... .......... .......... .......... .......... 38% 208M 0s\n",
" 21700K .......... .......... .......... .......... .......... 38% 213M 0s\n",
" 21750K .......... .......... .......... .......... .......... 38% 211M 0s\n",
" 21800K .......... .......... .......... .......... .......... 38% 239M 0s\n",
" 21850K .......... .......... .......... .......... .......... 38% 212M 0s\n",
" 21900K .......... .......... .......... .......... .......... 38% 226M 0s\n",
" 21950K .......... .......... .......... .......... .......... 38% 221M 0s\n",
" 22000K .......... .......... .......... .......... .......... 38% 242M 0s\n",
" 22050K .......... .......... .......... .......... .......... 38% 251M 0s\n",
" 22100K .......... .......... .......... .......... .......... 38% 218M 0s\n",
" 22150K .......... .......... .......... .......... .......... 38% 151M 0s\n",
" 22200K .......... .......... .......... .......... .......... 38% 149M 0s\n",
" 22250K .......... .......... .......... .......... .......... 39% 107M 0s\n",
" 22300K .......... .......... .......... .......... .......... 39% 130M 0s\n",
" 22350K .......... .......... .......... .......... .......... 39% 112M 0s\n",
" 22400K .......... .......... .......... .......... .......... 39% 179M 0s\n",
" 22450K .......... .......... .......... .......... .......... 39% 196M 0s\n",
" 22500K .......... .......... .......... .......... .......... 39% 256M 0s\n",
" 22550K .......... .......... .......... .......... .......... 39% 200M 0s\n",
" 22600K .......... .......... .......... .......... .......... 39% 33.6M 0s\n",
" 22650K .......... .......... .......... .......... .......... 39% 46.1M 0s\n",
" 22700K .......... .......... .......... .......... .......... 39% 43.1M 0s\n",
" 22750K .......... .......... .......... .......... .......... 39% 31.4M 0s\n",
" 22800K .......... .......... .......... .......... .......... 40% 30.2M 0s\n",
" 22850K .......... .......... .......... .......... .......... 40% 43.1M 0s\n",
" 22900K .......... .......... .......... .......... .......... 40% 128M 0s\n",
" 22950K .......... .......... .......... .......... .......... 40% 137M 0s\n",
" 23000K .......... .......... .......... .......... .......... 40% 235M 0s\n",
" 23050K .......... .......... .......... .......... .......... 40% 67.5M 0s\n",
" 23100K .......... .......... .......... .......... .......... 40% 41.6M 0s\n",
" 23150K .......... .......... .......... .......... .......... 40% 49.3M 0s\n",
" 23200K .......... .......... .......... .......... .......... 40% 71.5M 0s\n",
" 23250K .......... .......... .......... .......... .......... 40% 226M 0s\n",
" 23300K .......... .......... .......... .......... .......... 40% 341M 0s\n",
" 23350K .......... .......... .......... .......... .......... 40% 307M 0s\n",
" 23400K .......... .......... .......... .......... .......... 41% 245M 0s\n",
" 23450K .......... .......... .......... .......... .......... 41% 333M 0s\n",
" 23500K .......... .......... .......... .......... .......... 41% 382M 0s\n",
" 23550K .......... .......... .......... .......... .......... 41% 320M 0s\n",
" 23600K .......... .......... .......... .......... .......... 41% 258M 0s\n",
" 23650K .......... .......... .......... .......... .......... 41% 237M 0s\n",
" 23700K .......... .......... .......... .......... .......... 41% 211M 0s\n",
" 23750K .......... .......... .......... .......... .......... 41% 234M 0s\n",
" 23800K .......... .......... .......... .......... .......... 41% 237M 0s\n",
" 23850K .......... .......... .......... .......... .......... 41% 223M 0s\n",
" 23900K .......... .......... .......... .......... .......... 41% 120M 0s\n",
" 23950K .......... .......... .......... .......... .......... 42% 226M 0s\n",
" 24000K .......... .......... .......... .......... .......... 42% 281M 0s\n",
" 24050K .......... .......... .......... .......... .......... 42% 239M 0s\n",
" 24100K .......... .......... .......... .......... .......... 42% 379M 0s\n",
" 24150K .......... .......... .......... .......... .......... 42% 204M 0s\n",
" 24200K .......... .......... .......... .......... .......... 42% 351M 0s\n",
" 24250K .......... .......... .......... .......... .......... 42% 266M 0s\n",
" 24300K .......... .......... .......... .......... .......... 42% 270M 0s\n",
" 24350K .......... .......... .......... .......... .......... 42% 282M 0s\n",
" 24400K .......... .......... .......... .......... .......... 42% 261M 0s\n",
" 24450K .......... .......... .......... .......... .......... 42% 291M 0s\n",
" 24500K .......... .......... .......... .......... .......... 42% 305M 0s\n",
" 24550K .......... .......... .......... .......... .......... 43% 272M 0s\n",
" 24600K .......... .......... .......... .......... .......... 43% 347M 0s\n",
" 24650K .......... .......... .......... .......... .......... 43% 371M 0s\n",
" 24700K .......... .......... .......... .......... .......... 43% 388M 0s\n",
" 24750K .......... .......... .......... .......... .......... 43% 210M 0s\n",
" 24800K .......... .......... .......... .......... .......... 43% 268M 0s\n",
" 24850K .......... .......... .......... .......... .......... 43% 368M 0s\n",
" 24900K .......... .......... .......... .......... .......... 43% 376M 0s\n",
" 24950K .......... .......... .......... .......... .......... 43% 314M 0s\n",
" 25000K .......... .......... .......... .......... .......... 43% 369M 0s\n",
" 25050K .......... .......... .......... .......... .......... 43% 301M 0s\n",
" 25100K .......... .......... .......... .......... .......... 44% 353M 0s\n",
" 25150K .......... .......... .......... .......... .......... 44% 237M 0s\n",
" 25200K .......... .......... .......... .......... .......... 44% 235M 0s\n",
" 25250K .......... .......... .......... .......... .......... 44% 377M 0s\n",
" 25300K .......... .......... .......... .......... .......... 44% 370M 0s\n",
" 25350K .......... .......... .......... .......... .......... 44% 228M 0s\n",
" 25400K .......... .......... .......... .......... .......... 44% 337M 0s\n",
" 25450K .......... .......... .......... .......... .......... 44% 366M 0s\n",
" 25500K .......... .......... .......... .......... .......... 44% 372M 0s\n",
" 25550K .......... .......... .......... .......... .......... 44% 323M 0s\n",
" 25600K .......... .......... .......... .......... .......... 44% 360M 0s\n",
" 25650K .......... .......... .......... .......... .......... 45% 355M 0s\n",
" 25700K .......... .......... .......... .......... .......... 45% 236M 0s\n",
" 25750K .......... .......... .......... .......... .......... 45% 292M 0s\n",
" 25800K .......... .......... .......... .......... .......... 45% 281M 0s\n",
" 25850K .......... .......... .......... .......... .......... 45% 318M 0s\n",
" 25900K .......... .......... .......... .......... .......... 45% 371M 0s\n",
" 25950K .......... .......... .......... .......... .......... 45% 343M 0s\n",
" 26000K .......... .......... .......... .......... .......... 45% 168M 0s\n",
" 26050K .......... .......... .......... .......... .......... 45% 207M 0s\n",
" 26100K .......... .......... .......... .......... .......... 45% 213M 0s\n",
" 26150K .......... .......... .......... .......... .......... 45% 92.4M 0s\n",
" 26200K .......... .......... .......... .......... .......... 45% 217M 0s\n",
" 26250K .......... .......... .......... .......... .......... 46% 350M 0s\n",
" 26300K .......... .......... .......... .......... .......... 46% 278M 0s\n",
" 26350K .......... .......... .......... .......... .......... 46% 305M 0s\n",
" 26400K .......... .......... .......... .......... .......... 46% 255M 0s\n",
" 26450K .......... .......... .......... .......... .......... 46% 307M 0s\n",
" 26500K .......... .......... .......... .......... .......... 46% 342M 0s\n",
" 26550K .......... .......... .......... .......... .......... 46% 306M 0s\n",
" 26600K .......... .......... .......... .......... .......... 46% 361M 0s\n",
" 26650K .......... .......... .......... .......... .......... 46% 295M 0s\n",
" 26700K .......... .......... .......... .......... .......... 46% 166M 0s\n",
" 26750K .......... .......... .......... .......... .......... 46% 265M 0s\n",
" 26800K .......... .......... .......... .......... .......... 47% 293M 0s\n",
" 26850K .......... .......... .......... .......... .......... 47% 316M 0s\n",
" 26900K .......... .......... .......... .......... .......... 47% 350M 0s\n",
" 26950K .......... .......... .......... .......... .......... 47% 205M 0s\n",
" 27000K .......... .......... .......... .......... .......... 47% 179M 0s\n",
" 27050K .......... .......... .......... .......... .......... 47% 185M 0s\n",
" 27100K .......... .......... .......... .......... .......... 47% 196M 0s\n",
" 27150K .......... .......... .......... .......... .......... 47% 251M 0s\n",
" 27200K .......... .......... .......... .......... .......... 47% 279M 0s\n",
" 27250K .......... .......... .......... .......... .......... 47% 347M 0s\n",
" 27300K .......... .......... .......... .......... .......... 47% 360M 0s\n",
" 27350K .......... .......... .......... .......... .......... 47% 308M 0s\n",
" 27400K .......... .......... .......... .......... .......... 48% 360M 0s\n",
" 27450K .......... .......... .......... .......... .......... 48% 362M 0s\n",
" 27500K .......... .......... .......... .......... .......... 48% 248M 0s\n",
" 27550K .......... .......... .......... .......... .......... 48% 287M 0s\n",
" 27600K .......... .......... .......... .......... .......... 48% 347M 0s\n",
" 27650K .......... .......... .......... .......... .......... 48% 342M 0s\n",
" 27700K .......... .......... .......... .......... .......... 48% 365M 0s\n",
" 27750K .......... .......... .......... .......... .......... 48% 296M 0s\n",
" 27800K .......... .......... .......... .......... .......... 48% 233M 0s\n",
" 27850K .......... .......... .......... .......... .......... 48% 328M 0s\n",
" 27900K .......... .......... .......... .......... .......... 48% 127M 0s\n",
" 27950K .......... .......... .......... .......... .......... 49% 256M 0s\n",
" 28000K .......... .......... .......... .......... .......... 49% 133M 0s\n",
" 28050K .......... .......... .......... .......... .......... 49% 245M 0s\n",
" 28100K .......... .......... .......... .......... .......... 49% 370M 0s\n",
" 28150K .......... .......... .......... .......... .......... 49% 309M 0s\n",
" 28200K .......... .......... .......... .......... .......... 49% 366M 0s\n",
" 28250K .......... .......... .......... .......... .......... 49% 334M 0s\n",
" 28300K .......... .......... .......... .......... .......... 49% 284M 0s\n",
" 28350K .......... .......... .......... .......... .......... 49% 44.0M 0s\n",
" 28400K .......... .......... .......... .......... .......... 49% 49.2M 0s\n",
" 28450K .......... .......... .......... .......... .......... 49% 60.0M 0s\n",
" 28500K .......... .......... .......... .......... .......... 50% 61.0M 0s\n",
" 28550K .......... .......... .......... .......... .......... 50% 146M 0s\n",
" 28600K .......... .......... .......... .......... .......... 50% 277M 0s\n",
" 28650K .......... .......... .......... .......... .......... 50% 257M 0s\n",
" 28700K .......... .......... .......... .......... .......... 50% 288M 0s\n",
" 28750K .......... .......... .......... .......... .......... 50% 281M 0s\n",
" 28800K .......... .......... .......... .......... .......... 50% 303M 0s\n",
" 28850K .......... .......... .......... .......... .......... 50% 372M 0s\n",
" 28900K .......... .......... .......... .......... .......... 50% 356M 0s\n",
" 28950K .......... .......... .......... .......... .......... 50% 301M 0s\n",
" 29000K .......... .......... .......... .......... .......... 50% 369M 0s\n",
" 29050K .......... .......... .......... .......... .......... 50% 359M 0s\n",
" 29100K .......... .......... .......... .......... .......... 51% 239M 0s\n",
" 29150K .......... .......... .......... .......... .......... 51% 124M 0s\n",
" 29200K .......... .......... .......... .......... .......... 51% 262M 0s\n",
" 29250K .......... .......... .......... .......... .......... 51% 237M 0s\n",
" 29300K .......... .......... .......... .......... .......... 51% 231M 0s\n",
" 29350K .......... .......... .......... .......... .......... 51% 175M 0s\n",
" 29400K .......... .......... .......... .......... .......... 51% 294M 0s\n",
" 29450K .......... .......... .......... .......... .......... 51% 260M 0s\n",
" 29500K .......... .......... .......... .......... .......... 51% 282M 0s\n",
" 29550K .......... .......... .......... .......... .......... 51% 287M 0s\n",
" 29600K .......... .......... .......... .......... .......... 51% 256M 0s\n",
" 29650K .......... .......... .......... .......... .......... 52% 295M 0s\n",
" 29700K .......... .......... .......... .......... .......... 52% 327M 0s\n",
" 29750K .......... .......... .......... .......... .......... 52% 244M 0s\n",
" 29800K .......... .......... .......... .......... .......... 52% 351M 0s\n",
" 29850K .......... .......... .......... .......... .......... 52% 348M 0s\n",
" 29900K .......... .......... .......... .......... .......... 52% 285M 0s\n",
" 29950K .......... .......... .......... .......... .......... 52% 309M 0s\n",
" 30000K .......... .......... .......... .......... .......... 52% 374M 0s\n",
" 30050K .......... .......... .......... .......... .......... 52% 370M 0s\n",
" 30100K .......... .......... .......... .......... .......... 52% 235M 0s\n",
" 30150K .......... .......... .......... .......... .......... 52% 174M 0s\n",
" 30200K .......... .......... .......... .......... .......... 52% 127M 0s\n",
" 30250K .......... .......... .......... .......... .......... 53% 218M 0s\n",
" 30300K .......... .......... .......... .......... .......... 53% 304M 0s\n",
" 30350K .......... .......... .......... .......... .......... 53% 327M 0s\n",
" 30400K .......... .......... .......... .......... .......... 53% 260M 0s\n",
" 30450K .......... .......... .......... .......... .......... 53% 189M 0s\n",
" 30500K .......... .......... .......... .......... .......... 53% 339M 0s\n",
" 30550K .......... .......... .......... .......... .......... 53% 312M 0s\n",
" 30600K .......... .......... .......... .......... .......... 53% 374M 0s\n",
" 30650K .......... .......... .......... .......... .......... 53% 377M 0s\n",
" 30700K .......... .......... .......... .......... .......... 53% 231M 0s\n",
" 30750K .......... .......... .......... .......... .......... 53% 209M 0s\n",
" 30800K .......... .......... .......... .......... .......... 54% 241M 0s\n",
" 30850K .......... .......... .......... .......... .......... 54% 227M 0s\n",
" 30900K .......... .......... .......... .......... .......... 54% 334M 0s\n",
" 30950K .......... .......... .......... .......... .......... 54% 225M 0s\n",
" 31000K .......... .......... .......... .......... .......... 54% 350M 0s\n",
" 31050K .......... .......... .......... .......... .......... 54% 339M 0s\n",
" 31100K .......... .......... .......... .......... .......... 54% 364M 0s\n",
" 31150K .......... .......... .......... .......... .......... 54% 327M 0s\n",
" 31200K .......... .......... .......... .......... .......... 54% 371M 0s\n",
" 31250K .......... .......... .......... .......... .......... 54% 322M 0s\n",
" 31300K .......... .......... .......... .......... .......... 54% 293M 0s\n",
" 31350K .......... .......... .......... .......... .......... 54% 299M 0s\n",
" 31400K .......... .......... .......... .......... .......... 55% 301M 0s\n",
" 31450K .......... .......... .......... .......... .......... 55% 77.8M 0s\n",
" 31500K .......... .......... .......... .......... .......... 55% 253M 0s\n",
" 31550K .......... .......... .......... .......... .......... 55% 221M 0s\n",
" 31600K .......... .......... .......... .......... .......... 55% 257M 0s\n",
" 31650K .......... .......... .......... .......... .......... 55% 185M 0s\n",
" 31700K .......... .......... .......... .......... .......... 55% 155M 0s\n",
" 31750K .......... .......... .......... .......... .......... 55% 257M 0s\n",
" 31800K .......... .......... .......... .......... .......... 55% 297M 0s\n",
" 31850K .......... .......... .......... .......... .......... 55% 277M 0s\n",
" 31900K .......... .......... .......... .......... .......... 55% 341M 0s\n",
" 31950K .......... .......... .......... .......... .......... 56% 271M 0s\n",
" 32000K .......... .......... .......... .......... .......... 56% 272M 0s\n",
" 32050K .......... .......... .......... .......... .......... 56% 360M 0s\n",
" 32100K .......... .......... .......... .......... .......... 56% 357M 0s\n",
" 32150K .......... .......... .......... .......... .......... 56% 310M 0s\n",
" 32200K .......... .......... .......... .......... .......... 56% 156M 0s\n",
" 32250K .......... .......... .......... .......... .......... 56% 121M 0s\n",
" 32300K .......... .......... .......... .......... .......... 56% 271M 0s\n",
" 32350K .......... .......... .......... .......... .......... 56% 288M 0s\n",
" 32400K .......... .......... .......... .......... .......... 56% 347M 0s\n",
" 32450K .......... .......... .......... .......... .......... 56% 296M 0s\n",
" 32500K .......... .......... .......... .......... .......... 57% 297M 0s\n",
" 32550K .......... .......... .......... .......... .......... 57% 276M 0s\n",
" 32600K .......... .......... .......... .......... .......... 57% 362M 0s\n",
" 32650K .......... .......... .......... .......... .......... 57% 376M 0s\n",
" 32700K .......... .......... .......... .......... .......... 57% 348M 0s\n",
" 32750K .......... .......... .......... .......... .......... 57% 23.1M 0s\n",
" 32800K .......... .......... .......... .......... .......... 57% 102M 0s\n",
" 32850K .......... .......... .......... .......... .......... 57% 84.1M 0s\n",
" 32900K .......... .......... .......... .......... .......... 57% 142M 0s\n",
" 32950K .......... .......... .......... .......... .......... 57% 132M 0s\n",
" 33000K .......... .......... .......... .......... .......... 57% 149M 0s\n",
" 33050K .......... .......... .......... .......... .......... 57% 175M 0s\n",
" 33100K .......... .......... .......... .......... .......... 58% 161M 0s\n",
" 33150K .......... .......... .......... .......... .......... 58% 157M 0s\n",
" 33200K .......... .......... .......... .......... .......... 58% 166M 0s\n",
" 33250K .......... .......... .......... .......... .......... 58% 169M 0s\n",
" 33300K .......... .......... .......... .......... .......... 58% 216M 0s\n",
" 33350K .......... .......... .......... .......... .......... 58% 141M 0s\n",
" 33400K .......... .......... .......... .......... .......... 58% 158M 0s\n",
" 33450K .......... .......... .......... .......... .......... 58% 188M 0s\n",
" 33500K .......... .......... .......... .......... .......... 58% 184M 0s\n",
" 33550K .......... .......... .......... .......... .......... 58% 180M 0s\n",
" 33600K .......... .......... .......... .......... .......... 58% 204M 0s\n",
" 33650K .......... .......... .......... .......... .......... 59% 215M 0s\n",
" 33700K .......... .......... .......... .......... .......... 59% 174M 0s\n",
" 33750K .......... .......... .......... .......... .......... 59% 136M 0s\n",
" 33800K .......... .......... .......... .......... .......... 59% 209M 0s\n",
" 33850K .......... .......... .......... .......... .......... 59% 210M 0s\n",
" 33900K .......... .......... .......... .......... .......... 59% 197M 0s\n",
" 33950K .......... .......... .......... .......... .......... 59% 185M 0s\n",
" 34000K .......... .......... .......... .......... .......... 59% 205M 0s\n",
" 34050K .......... .......... .......... .......... .......... 59% 212M 0s\n",
" 34100K .......... .......... .......... .......... .......... 59% 183M 0s\n",
" 34150K .......... .......... .......... .......... .......... 59% 176M 0s\n",
" 34200K .......... .......... .......... .......... .......... 59% 218M 0s\n",
" 34250K .......... .......... .......... .......... .......... 60% 219M 0s\n",
" 34300K .......... .......... .......... .......... .......... 60% 187M 0s\n",
" 34350K .......... .......... .......... .......... .......... 60% 161M 0s\n",
" 34400K .......... .......... .......... .......... .......... 60% 173M 0s\n",
" 34450K .......... .......... .......... .......... .......... 60% 173M 0s\n",
" 34500K .......... .......... .......... .......... .......... 60% 169M 0s\n",
" 34550K .......... .......... .......... .......... .......... 60% 142M 0s\n",
" 34600K .......... .......... .......... .......... .......... 60% 183M 0s\n",
" 34650K .......... .......... .......... .......... .......... 60% 160M 0s\n",
" 34700K .......... .......... .......... .......... .......... 60% 192M 0s\n",
" 34750K .......... .......... .......... .......... .......... 60% 187M 0s\n",
" 34800K .......... .......... .......... .......... .......... 61% 213M 0s\n",
" 34850K .......... .......... .......... .......... .......... 61% 203M 0s\n",
" 34900K .......... .......... .......... .......... .......... 61% 205M 0s\n",
" 34950K .......... .......... .......... .......... .......... 61% 142M 0s\n",
" 35000K .......... .......... .......... .......... .......... 61% 215M 0s\n",
" 35050K .......... .......... .......... .......... .......... 61% 204M 0s\n",
" 35100K .......... .......... .......... .......... .......... 61% 181M 0s\n",
" 35150K .......... .......... .......... .......... .......... 61% 152M 0s\n",
" 35200K .......... .......... .......... .......... .......... 61% 202M 0s\n",
" 35250K .......... .......... .......... .......... .......... 61% 170M 0s\n",
" 35300K .......... .......... .......... .......... .......... 61% 163M 0s\n",
" 35350K .......... .......... .......... .......... .......... 61% 164M 0s\n",
" 35400K .......... .......... .......... .......... .......... 62% 108M 0s\n",
" 35450K .......... .......... .......... .......... .......... 62% 177M 0s\n",
" 35500K .......... .......... .......... .......... .......... 62% 176M 0s\n",
" 35550K .......... .......... .......... .......... .......... 62% 178M 0s\n",
" 35600K .......... .......... .......... .......... .......... 62% 179M 0s\n",
" 35650K .......... .......... .......... .......... .......... 62% 211M 0s\n",
" 35700K .......... .......... .......... .......... .......... 62% 257M 0s\n",
" 35750K .......... .......... .......... .......... .......... 62% 258M 0s\n",
" 35800K .......... .......... .......... .......... .......... 62% 192M 0s\n",
" 35850K .......... .......... .......... .......... .......... 62% 297M 0s\n",
" 35900K .......... .......... .......... .......... .......... 62% 365M 0s\n",
" 35950K .......... .......... .......... .......... .......... 63% 330M 0s\n",
" 36000K .......... .......... .......... .......... .......... 63% 369M 0s\n",
" 36050K .......... .......... .......... .......... .......... 63% 322M 0s\n",
" 36100K .......... .......... .......... .......... .......... 63% 311M 0s\n",
" 36150K .......... .......... .......... .......... .......... 63% 267M 0s\n",
" 36200K .......... .......... .......... .......... .......... 63% 283M 0s\n",
" 36250K .......... .......... .......... .......... .......... 63% 267M 0s\n",
" 36300K .......... .......... .......... .......... .......... 63% 276M 0s\n",
" 36350K .......... .......... .......... .......... .......... 63% 174M 0s\n",
" 36400K .......... .......... .......... .......... .......... 63% 283M 0s\n",
" 36450K .......... .......... .......... .......... .......... 63% 362M 0s\n",
" 36500K .......... .......... .......... .......... .......... 64% 287M 0s\n",
" 36550K .......... .......... .......... .......... .......... 64% 291M 0s\n",
" 36600K .......... .......... .......... .......... .......... 64% 363M 0s\n",
" 36650K .......... .......... .......... .......... .......... 64% 216M 0s\n",
" 36700K .......... .......... .......... .......... .......... 64% 280M 0s\n",
" 36750K .......... .......... .......... .......... .......... 64% 330M 0s\n",
" 36800K .......... .......... .......... .......... .......... 64% 368M 0s\n",
" 36850K .......... .......... .......... .......... .......... 64% 345M 0s\n",
" 36900K .......... .......... .......... .......... .......... 64% 368M 0s\n",
" 36950K .......... .......... .......... .......... .......... 64% 235M 0s\n",
" 37000K .......... .......... .......... .......... .......... 64% 313M 0s\n",
" 37050K .......... .......... .......... .......... .......... 64% 363M 0s\n",
" 37100K .......... .......... .......... .......... .......... 65% 366M 0s\n",
" 37150K .......... .......... .......... .......... .......... 65% 314M 0s\n",
" 37200K .......... .......... .......... .......... .......... 65% 358M 0s\n",
" 37250K .......... .......... .......... .......... .......... 65% 367M 0s\n",
" 37300K .......... .......... .......... .......... .......... 65% 298M 0s\n",
" 37350K .......... .......... .......... .......... .......... 65% 283M 0s\n",
" 37400K .......... .......... .......... .......... .......... 65% 59.0M 0s\n",
" 37450K .......... .......... .......... .......... .......... 65% 185M 0s\n",
" 37500K .......... .......... .......... .......... .......... 65% 274M 0s\n",
" 37550K .......... .......... .......... .......... .......... 65% 313M 0s\n",
" 37600K .......... .......... .......... .......... .......... 65% 333M 0s\n",
" 37650K .......... .......... .......... .......... .......... 66% 9.55M 0s\n",
" 37700K .......... .......... .......... .......... .......... 66% 56.6M 0s\n",
" 37750K .......... .......... .......... .......... .......... 66% 119M 0s\n",
" 37800K .......... .......... .......... .......... .......... 66% 194M 0s\n",
" 37850K .......... .......... .......... .......... .......... 66% 212M 0s\n",
" 37900K .......... .......... .......... .......... .......... 66% 203M 0s\n",
" 37950K .......... .......... .......... .......... .......... 66% 183M 0s\n",
" 38000K .......... .......... .......... .......... .......... 66% 211M 0s\n",
" 38050K .......... .......... .......... .......... .......... 66% 20.8M 0s\n",
" 38100K .......... .......... .......... .......... .......... 66% 242M 0s\n",
" 38150K .......... .......... .......... .......... .......... 66% 194M 0s\n",
" 38200K .......... .......... .......... .......... .......... 66% 251M 0s\n",
" 38250K .......... .......... .......... .......... .......... 67% 236M 0s\n",
" 38300K .......... .......... .......... .......... .......... 67% 230M 0s\n",
" 38350K .......... .......... .......... .......... .......... 67% 177M 0s\n",
" 38400K .......... .......... .......... .......... .......... 67% 310M 0s\n",
" 38450K .......... .......... .......... .......... .......... 67% 246M 0s\n",
" 38500K .......... .......... .......... .......... .......... 67% 243M 0s\n",
" 38550K .......... .......... .......... .......... .......... 67% 194M 0s\n",
" 38600K .......... .......... .......... .......... .......... 67% 199M 0s\n",
" 38650K .......... .......... .......... .......... .......... 67% 236M 0s\n",
" 38700K .......... .......... .......... .......... .......... 67% 278M 0s\n",
" 38750K .......... .......... .......... .......... .......... 67% 186M 0s\n",
" 38800K .......... .......... .......... .......... .......... 68% 222M 0s\n",
" 38850K .......... .......... .......... .......... .......... 68% 254M 0s\n",
" 38900K .......... .......... .......... .......... .......... 68% 217M 0s\n",
" 38950K .......... .......... .......... .......... .......... 68% 299M 0s\n",
" 39000K .......... .......... .......... .......... .......... 68% 349M 0s\n",
" 39050K .......... .......... .......... .......... .......... 68% 360M 0s\n",
" 39100K .......... .......... .......... .......... .......... 68% 246M 0s\n",
" 39150K .......... .......... .......... .......... .......... 68% 137M 0s\n",
" 39200K .......... .......... .......... .......... .......... 68% 277M 0s\n",
" 39250K .......... .......... .......... .......... .......... 68% 298M 0s\n",
" 39300K .......... .......... .......... .......... .......... 68% 211M 0s\n",
" 39350K .......... .......... .......... .......... .......... 69% 165M 0s\n",
" 39400K .......... .......... .......... .......... .......... 69% 244M 0s\n",
" 39450K .......... .......... .......... .......... .......... 69% 270M 0s\n",
" 39500K .......... .......... .......... .......... .......... 69% 214M 0s\n",
" 39550K .......... .......... .......... .......... .......... 69% 108M 0s\n",
" 39600K .......... .......... .......... .......... .......... 69% 201M 0s\n",
" 39650K .......... .......... .......... .......... .......... 69% 212M 0s\n",
" 39700K .......... .......... .......... .......... .......... 69% 186M 0s\n",
" 39750K .......... .......... .......... .......... .......... 69% 152M 0s\n",
" 39800K .......... .......... .......... .......... .......... 69% 214M 0s\n",
" 39850K .......... .......... .......... .......... .......... 69% 215M 0s\n",
" 39900K .......... .......... .......... .......... .......... 69% 143M 0s\n",
" 39950K .......... .......... .......... .......... .......... 70% 308M 0s\n",
" 40000K .......... .......... .......... .......... .......... 70% 342M 0s\n",
" 40050K .......... .......... .......... .......... .......... 70% 344M 0s\n",
" 40100K .......... .......... .......... .......... .......... 70% 277M 0s\n",
" 40150K .......... .......... .......... .......... .......... 70% 211M 0s\n",
" 40200K .......... .......... .......... .......... .......... 70% 206M 0s\n",
" 40250K .......... .......... .......... .......... .......... 70% 356M 0s\n",
" 40300K .......... .......... .......... .......... .......... 70% 371M 0s\n",
" 40350K .......... .......... .......... .......... .......... 70% 298M 0s\n",
" 40400K .......... .......... .......... .......... .......... 70% 367M 0s\n",
" 40450K .......... .......... .......... .......... .......... 70% 307M 0s\n",
" 40500K .......... .......... .......... .......... .......... 71% 343M 0s\n",
" 40550K .......... .......... .......... .......... .......... 71% 292M 0s\n",
" 40600K .......... .......... .......... .......... .......... 71% 362M 0s\n",
" 40650K .......... .......... .......... .......... .......... 71% 236M 0s\n",
" 40700K .......... .......... .......... .......... .......... 71% 230M 0s\n",
" 40750K .......... .......... .......... .......... .......... 71% 157M 0s\n",
" 40800K .......... .......... .......... .......... .......... 71% 175M 0s\n",
" 40850K .......... .......... .......... .......... .......... 71% 194M 0s\n",
" 40900K .......... .......... .......... .......... .......... 71% 176M 0s\n",
" 40950K .......... .......... .......... .......... .......... 71% 170M 0s\n",
" 41000K .......... .......... .......... .......... .......... 71% 210M 0s\n",
" 41050K .......... .......... .......... .......... .......... 71% 198M 0s\n",
" 41100K .......... .......... .......... .......... .......... 72% 197M 0s\n",
" 41150K .......... .......... .......... .......... .......... 72% 186M 0s\n",
" 41200K .......... .......... .......... .......... .......... 72% 165M 0s\n",
" 41250K .......... .......... .......... .......... .......... 72% 169M 0s\n",
" 41300K .......... .......... .......... .......... .......... 72% 197M 0s\n",
" 41350K .......... .......... .......... .......... .......... 72% 172M 0s\n",
" 41400K .......... .......... .......... .......... .......... 72% 200M 0s\n",
" 41450K .......... .......... .......... .......... .......... 72% 205M 0s\n",
" 41500K .......... .......... .......... .......... .......... 72% 204M 0s\n",
" 41550K .......... .......... .......... .......... .......... 72% 171M 0s\n",
" 41600K .......... .......... .......... .......... .......... 72% 198M 0s\n",
" 41650K .......... .......... .......... .......... .......... 73% 43.5M 0s\n",
" 41700K .......... .......... .......... .......... .......... 73% 287M 0s\n",
" 41750K .......... .......... .......... .......... .......... 73% 193M 0s\n",
" 41800K .......... .......... .......... .......... .......... 73% 16.8M 0s\n",
" 41850K .......... .......... .......... .......... .......... 73% 279M 0s\n",
" 41900K .......... .......... .......... .......... .......... 73% 359M 0s\n",
" 41950K .......... .......... .......... .......... .......... 73% 317M 0s\n",
" 42000K .......... .......... .......... .......... .......... 73% 13.9M 0s\n",
" 42050K .......... .......... .......... .......... .......... 73% 185M 0s\n",
" 42100K .......... .......... .......... .......... .......... 73% 206M 0s\n",
" 42150K .......... .......... .......... .......... .......... 73% 152M 0s\n",
" 42200K .......... .......... .......... .......... .......... 73% 166M 0s\n",
" 42250K .......... .......... .......... .......... .......... 74% 254M 0s\n",
" 42300K .......... .......... .......... .......... .......... 74% 228M 0s\n",
" 42350K .......... .......... .......... .......... .......... 74% 175M 0s\n",
" 42400K .......... .......... .......... .......... .......... 74% 184M 0s\n",
" 42450K .......... .......... .......... .......... .......... 74% 177M 0s\n",
" 42500K .......... .......... .......... .......... .......... 74% 165M 0s\n",
" 42550K .......... .......... .......... .......... .......... 74% 127M 0s\n",
" 42600K .......... .......... .......... .......... .......... 74% 168M 0s\n",
" 42650K .......... .......... .......... .......... .......... 74% 182M 0s\n",
" 42700K .......... .......... .......... .......... .......... 74% 143M 0s\n",
" 42750K .......... .......... .......... .......... .......... 74% 166M 0s\n",
" 42800K .......... .......... .......... .......... .......... 75% 201M 0s\n",
" 42850K .......... .......... .......... .......... .......... 75% 204M 0s\n",
" 42900K .......... .......... .......... .......... .......... 75% 353M 0s\n",
" 42950K .......... .......... .......... .......... .......... 75% 104M 0s\n",
" 43000K .......... .......... .......... .......... .......... 75% 289M 0s\n",
" 43050K .......... .......... .......... .......... .......... 75% 285M 0s\n",
" 43100K .......... .......... .......... .......... .......... 75% 303M 0s\n",
" 43150K .......... .......... .......... .......... .......... 75% 227M 0s\n",
" 43200K .......... .......... .......... .......... .......... 75% 198M 0s\n",
" 43250K .......... .......... .......... .......... .......... 75% 197M 0s\n",
" 43300K .......... .......... .......... .......... .......... 75% 256M 0s\n",
" 43350K .......... .......... .......... .......... .......... 76% 141M 0s\n",
" 43400K .......... .......... .......... .......... .......... 76% 162M 0s\n",
" 43450K .......... .......... .......... .......... .......... 76% 203M 0s\n",
" 43500K .......... .......... .......... .......... .......... 76% 307M 0s\n",
" 43550K .......... .......... .......... .......... .......... 76% 179M 0s\n",
" 43600K .......... .......... .......... .......... .......... 76% 173M 0s\n",
" 43650K .......... .......... .......... .......... .......... 76% 198M 0s\n",
" 43700K .......... .......... .......... .......... .......... 76% 182M 0s\n",
" 43750K .......... .......... .......... .......... .......... 76% 169M 0s\n",
" 43800K .......... .......... .......... .......... .......... 76% 301M 0s\n",
" 43850K .......... .......... .......... .......... .......... 76% 292M 0s\n",
" 43900K .......... .......... .......... .......... .......... 76% 297M 0s\n",
" 43950K .......... .......... .......... .......... .......... 77% 273M 0s\n",
" 44000K .......... .......... .......... .......... .......... 77% 226M 0s\n",
" 44050K .......... .......... .......... .......... .......... 77% 292M 0s\n",
" 44100K .......... .......... .......... .......... .......... 77% 314M 0s\n",
" 44150K .......... .......... .......... .......... .......... 77% 248M 0s\n",
" 44200K .......... .......... .......... .......... .......... 77% 238M 0s\n",
" 44250K .......... .......... .......... .......... .......... 77% 179M 0s\n",
" 44300K .......... .......... .......... .......... .......... 77% 210M 0s\n",
" 44350K .......... .......... .......... .......... .......... 77% 224M 0s\n",
" 44400K .......... .......... .......... .......... .......... 77% 268M 0s\n",
" 44450K .......... .......... .......... .......... .......... 77% 150M 0s\n",
" 44500K .......... .......... .......... .......... .......... 78% 237M 0s\n",
" 44550K .......... .......... .......... .......... .......... 78% 228M 0s\n",
" 44600K .......... .......... .......... .......... .......... 78% 253M 0s\n",
" 44650K .......... .......... .......... .......... .......... 78% 216M 0s\n",
" 44700K .......... .......... .......... .......... .......... 78% 137M 0s\n",
" 44750K .......... .......... .......... .......... .......... 78% 162M 0s\n",
" 44800K .......... .......... .......... .......... .......... 78% 229M 0s\n",
" 44850K .......... .......... .......... .......... .......... 78% 360M 0s\n",
" 44900K .......... .......... .......... .......... .......... 78% 194M 0s\n",
" 44950K .......... .......... .......... .......... .......... 78% 276M 0s\n",
" 45000K .......... .......... .......... .......... .......... 78% 315M 0s\n",
" 45050K .......... .......... .......... .......... .......... 78% 342M 0s\n",
" 45100K .......... .......... .......... .......... .......... 79% 371M 0s\n",
" 45150K .......... .......... .......... .......... .......... 79% 301M 0s\n",
" 45200K .......... .......... .......... .......... .......... 79% 232M 0s\n",
" 45250K .......... .......... .......... .......... .......... 79% 345M 0s\n",
" 45300K .......... .......... .......... .......... .......... 79% 344M 0s\n",
" 45350K .......... .......... .......... .......... .......... 79% 182M 0s\n",
" 45400K .......... .......... .......... .......... .......... 79% 195M 0s\n",
" 45450K .......... .......... .......... .......... .......... 79% 190M 0s\n",
" 45500K .......... .......... .......... .......... .......... 79% 278M 0s\n",
" 45550K .......... .......... .......... .......... .......... 79% 254M 0s\n",
" 45600K .......... .......... .......... .......... .......... 79% 369M 0s\n",
" 45650K .......... .......... .......... .......... .......... 80% 363M 0s\n",
" 45700K .......... .......... .......... .......... .......... 80% 305M 0s\n",
" 45750K .......... .......... .......... .......... .......... 80% 266M 0s\n",
" 45800K .......... .......... .......... .......... .......... 80% 221M 0s\n",
" 45850K .......... .......... .......... .......... .......... 80% 200M 0s\n",
" 45900K .......... .......... .......... .......... .......... 80% 225M 0s\n",
" 45950K .......... .......... .......... .......... .......... 80% 134M 0s\n",
" 46000K .......... .......... .......... .......... .......... 80% 270M 0s\n",
" 46050K .......... .......... .......... .......... .......... 80% 344M 0s\n",
" 46100K .......... .......... .......... .......... .......... 80% 246M 0s\n",
" 46150K .......... .......... .......... .......... .......... 80% 304M 0s\n",
" 46200K .......... .......... .......... .......... .......... 81% 197M 0s\n",
" 46250K .......... .......... .......... .......... .......... 81% 336M 0s\n",
" 46300K .......... .......... .......... .......... .......... 81% 355M 0s\n",
" 46350K .......... .......... .......... .......... .......... 81% 289M 0s\n",
" 46400K .......... .......... .......... .......... .......... 81% 329M 0s\n",
" 46450K .......... .......... .......... .......... .......... 81% 331M 0s\n",
" 46500K .......... .......... .......... .......... .......... 81% 291M 0s\n",
" 46550K .......... .......... .......... .......... .......... 81% 324M 0s\n",
" 46600K .......... .......... .......... .......... .......... 81% 356M 0s\n",
" 46650K .......... .......... .......... .......... .......... 81% 377M 0s\n",
" 46700K .......... .......... .......... .......... .......... 81% 371M 0s\n",
" 46750K .......... .......... .......... .......... .......... 81% 235M 0s\n",
" 46800K .......... .......... .......... .......... .......... 82% 42.1M 0s\n",
" 46850K .......... .......... .......... .......... .......... 82% 148M 0s\n",
" 46900K .......... .......... .......... .......... .......... 82% 325M 0s\n",
" 46950K .......... .......... .......... .......... .......... 82% 312M 0s\n",
" 47000K .......... .......... .......... .......... .......... 82% 355M 0s\n",
" 47050K .......... .......... .......... .......... .......... 82% 97.9M 0s\n",
" 47100K .......... .......... .......... .......... .......... 82% 217M 0s\n",
" 47150K .......... .......... .......... .......... .......... 82% 160M 0s\n",
" 47200K .......... .......... .......... .......... .......... 82% 135M 0s\n",
" 47250K .......... .......... .......... .......... .......... 82% 205M 0s\n",
" 47300K .......... .......... .......... .......... .......... 82% 228M 0s\n",
" 47350K .......... .......... .......... .......... .......... 83% 213M 0s\n",
" 47400K .......... .......... .......... .......... .......... 83% 183M 0s\n",
" 47450K .......... .......... .......... .......... .......... 83% 332M 0s\n",
" 47500K .......... .......... .......... .......... .......... 83% 373M 0s\n",
" 47550K .......... .......... .......... .......... .......... 83% 320M 0s\n",
" 47600K .......... .......... .......... .......... .......... 83% 290M 0s\n",
" 47650K .......... .......... .......... .......... .......... 83% 341M 0s\n",
" 47700K .......... .......... .......... .......... .......... 83% 221M 0s\n",
" 47750K .......... .......... .......... .......... .......... 83% 190M 0s\n",
" 47800K .......... .......... .......... .......... .......... 83% 314M 0s\n",
" 47850K .......... .......... .......... .......... .......... 83% 360M 0s\n",
" 47900K .......... .......... .......... .......... .......... 83% 376M 0s\n",
" 47950K .......... .......... .......... .......... .......... 84% 323M 0s\n",
" 48000K .......... .......... .......... .......... .......... 84% 20.6M 0s\n",
" 48050K .......... .......... .......... .......... .......... 84% 232M 0s\n",
" 48100K .......... .......... .......... .......... .......... 84% 297M 0s\n",
" 48150K .......... .......... .......... .......... .......... 84% 264M 0s\n",
" 48200K .......... .......... .......... .......... .......... 84% 294M 0s\n",
" 48250K .......... .......... .......... .......... .......... 84% 39.5M 0s\n",
" 48300K .......... .......... .......... .......... .......... 84% 211M 0s\n",
" 48350K .......... .......... .......... .......... .......... 84% 149M 0s\n",
" 48400K .......... .......... .......... .......... .......... 84% 154M 0s\n",
" 48450K .......... .......... .......... .......... .......... 84% 237M 0s\n",
" 48500K .......... .......... .......... .......... .......... 85% 243M 0s\n",
" 48550K .......... .......... .......... .......... .......... 85% 216M 0s\n",
" 48600K .......... .......... .......... .......... .......... 85% 264M 0s\n",
" 48650K .......... .......... .......... .......... .......... 85% 188M 0s\n",
" 48700K .......... .......... .......... .......... .......... 85% 244M 0s\n",
" 48750K .......... .......... .......... .......... .......... 85% 219M 0s\n",
" 48800K .......... .......... .......... .......... .......... 85% 212M 0s\n",
" 48850K .......... .......... .......... .......... .......... 85% 176M 0s\n",
" 48900K .......... .......... .......... .......... .......... 85% 306M 0s\n",
" 48950K .......... .......... .......... .......... .......... 85% 221M 0s\n",
" 49000K .......... .......... .......... .......... .......... 85% 204M 0s\n",
" 49050K .......... .......... .......... .......... .......... 85% 271M 0s\n",
" 49100K .......... .......... .......... .......... .......... 86% 187M 0s\n",
" 49150K .......... .......... .......... .......... .......... 86% 207M 0s\n",
" 49200K .......... .......... .......... .......... .......... 86% 247M 0s\n",
" 49250K .......... .......... .......... .......... .......... 86% 294M 0s\n",
" 49300K .......... .......... .......... .......... .......... 86% 226M 0s\n",
" 49350K .......... .......... .......... .......... .......... 86% 188M 0s\n",
" 49400K .......... .......... .......... .......... .......... 86% 300M 0s\n",
" 49450K .......... .......... .......... .......... .......... 86% 340M 0s\n",
" 49500K .......... .......... .......... .......... .......... 86% 358M 0s\n",
" 49550K .......... .......... .......... .......... .......... 86% 287M 0s\n",
" 49600K .......... .......... .......... .......... .......... 86% 206M 0s\n",
" 49650K .......... .......... .......... .......... .......... 87% 341M 0s\n",
" 49700K .......... .......... .......... .......... .......... 87% 350M 0s\n",
" 49750K .......... .......... .......... .......... .......... 87% 329M 0s\n",
" 49800K .......... .......... .......... .......... .......... 87% 319M 0s\n",
" 49850K .......... .......... .......... .......... .......... 87% 273M 0s\n",
" 49900K .......... .......... .......... .......... .......... 87% 286M 0s\n",
" 49950K .......... .......... .......... .......... .......... 87% 244M 0s\n",
" 50000K .......... .......... .......... .......... .......... 87% 354M 0s\n",
" 50050K .......... .......... .......... .......... .......... 87% 345M 0s\n",
" 50100K .......... .......... .......... .......... .......... 87% 373M 0s\n",
" 50150K .......... .......... .......... .......... .......... 87% 326M 0s\n",
" 50200K .......... .......... .......... .......... .......... 88% 372M 0s\n",
" 50250K .......... .......... .......... .......... .......... 88% 305M 0s\n",
" 50300K .......... .......... .......... .......... .......... 88% 369M 0s\n",
" 50350K .......... .......... .......... .......... .......... 88% 317M 0s\n",
" 50400K .......... .......... .......... .......... .......... 88% 375M 0s\n",
" 50450K .......... .......... .......... .......... .......... 88% 319M 0s\n",
" 50500K .......... .......... .......... .......... .......... 88% 335M 0s\n",
" 50550K .......... .......... .......... .......... .......... 88% 331M 0s\n",
" 50600K .......... .......... .......... .......... .......... 88% 260M 0s\n",
" 50650K .......... .......... .......... .......... .......... 88% 265M 0s\n",
" 50700K .......... .......... .......... .......... .......... 88% 148M 0s\n",
" 50750K .......... .......... .......... .......... .......... 88% 142M 0s\n",
" 50800K .......... .......... .......... .......... .......... 89% 325M 0s\n",
" 50850K .......... .......... .......... .......... .......... 89% 351M 0s\n",
" 50900K .......... .......... .......... .......... .......... 89% 338M 0s\n",
" 50950K .......... .......... .......... .......... .......... 89% 320M 0s\n",
" 51000K .......... .......... .......... .......... .......... 89% 342M 0s\n",
" 51050K .......... .......... .......... .......... .......... 89% 368M 0s\n",
" 51100K .......... .......... .......... .......... .......... 89% 27.0M 0s\n",
" 51150K .......... .......... .......... .......... .......... 89% 182M 0s\n",
" 51200K .......... .......... .......... .......... .......... 89% 159M 0s\n",
" 51250K .......... .......... .......... .......... .......... 89% 325M 0s\n",
" 51300K .......... .......... .......... .......... .......... 89% 334M 0s\n",
" 51350K .......... .......... .......... .......... .......... 90% 319M 0s\n",
" 51400K .......... .......... .......... .......... .......... 90% 338M 0s\n",
" 51450K .......... .......... .......... .......... .......... 90% 100M 0s\n",
" 51500K .......... .......... .......... .......... .......... 90% 215M 0s\n",
" 51550K .......... .......... .......... .......... .......... 90% 126M 0s\n",
" 51600K .......... .......... .......... .......... .......... 90% 208M 0s\n",
" 51650K .......... .......... .......... .......... .......... 90% 43.7M 0s\n",
" 51700K .......... .......... .......... .......... .......... 90% 154M 0s\n",
" 51750K .......... .......... .......... .......... .......... 90% 145M 0s\n",
" 51800K .......... .......... .......... .......... .......... 90% 217M 0s\n",
" 51850K .......... .......... .......... .......... .......... 90% 200M 0s\n",
" 51900K .......... .......... .......... .......... .......... 90% 221M 0s\n",
" 51950K .......... .......... .......... .......... .......... 91% 115M 0s\n",
" 52000K .......... .......... .......... .......... .......... 91% 159M 0s\n",
" 52050K .......... .......... .......... .......... .......... 91% 159M 0s\n",
" 52100K .......... .......... .......... .......... .......... 91% 235M 0s\n",
" 52150K .......... .......... .......... .......... .......... 91% 223M 0s\n",
" 52200K .......... .......... .......... .......... .......... 91% 304M 0s\n",
" 52250K .......... .......... .......... .......... .......... 91% 299M 0s\n",
" 52300K .......... .......... .......... .......... .......... 91% 307M 0s\n",
" 52350K .......... .......... .......... .......... .......... 91% 229M 0s\n",
" 52400K .......... .......... .......... .......... .......... 91% 296M 0s\n",
" 52450K .......... .......... .......... .......... .......... 91% 185M 0s\n",
" 52500K .......... .......... .......... .......... .......... 92% 169M 0s\n",
" 52550K .......... .......... .......... .......... .......... 92% 183M 0s\n",
" 52600K .......... .......... .......... .......... .......... 92% 149M 0s\n",
" 52650K .......... .......... .......... .......... .......... 92% 239M 0s\n",
" 52700K .......... .......... .......... .......... .......... 92% 248M 0s\n",
" 52750K .......... .......... .......... .......... .......... 92% 237M 0s\n",
" 52800K .......... .......... .......... .......... .......... 92% 298M 0s\n",
" 52850K .......... .......... .......... .......... .......... 92% 229M 0s\n",
" 52900K .......... .......... .......... .......... .......... 92% 233M 0s\n",
" 52950K .......... .......... .......... .......... .......... 92% 169M 0s\n",
" 53000K .......... .......... .......... .......... .......... 92% 88.6M 0s\n",
" 53050K .......... .......... .......... .......... .......... 92% 53.7M 0s\n",
" 53100K .......... .......... .......... .......... .......... 93% 139M 0s\n",
" 53150K .......... .......... .......... .......... .......... 93% 217M 0s\n",
" 53200K .......... .......... .......... .......... .......... 93% 287M 0s\n",
" 53250K .......... .......... .......... .......... .......... 93% 209M 0s\n",
" 53300K .......... .......... .......... .......... .......... 93% 195M 0s\n",
" 53350K .......... .......... .......... .......... .......... 93% 269M 0s\n",
" 53400K .......... .......... .......... .......... .......... 93% 313M 0s\n",
" 53450K .......... .......... .......... .......... .......... 93% 267M 0s\n",
" 53500K .......... .......... .......... .......... .......... 93% 260M 0s\n",
" 53550K .......... .......... .......... .......... .......... 93% 157M 0s\n",
" 53600K .......... .......... .......... .......... .......... 93% 267M 0s\n",
" 53650K .......... .......... .......... .......... .......... 94% 301M 0s\n",
" 53700K .......... .......... .......... .......... .......... 94% 281M 0s\n",
" 53750K .......... .......... .......... .......... .......... 94% 144M 0s\n",
" 53800K .......... .......... .......... .......... .......... 94% 212M 0s\n",
" 53850K .......... .......... .......... .......... .......... 94% 310M 0s\n",
" 53900K .......... .......... .......... .......... .......... 94% 299M 0s\n",
" 53950K .......... .......... .......... .......... .......... 94% 261M 0s\n",
" 54000K .......... .......... .......... .......... .......... 94% 219M 0s\n",
" 54050K .......... .......... .......... .......... .......... 94% 310M 0s\n",
" 54100K .......... .......... .......... .......... .......... 94% 310M 0s\n",
" 54150K .......... .......... .......... .......... .......... 94% 279M 0s\n",
" 54200K .......... .......... .......... .......... .......... 95% 281M 0s\n",
" 54250K .......... .......... .......... .......... .......... 95% 309M 0s\n",
" 54300K .......... .......... .......... .......... .......... 95% 250M 0s\n",
" 54350K .......... .......... .......... .......... .......... 95% 254M 0s\n",
" 54400K .......... .......... .......... .......... .......... 95% 318M 0s\n",
" 54450K .......... .......... .......... .......... .......... 95% 248M 0s\n",
" 54500K .......... .......... .......... .......... .......... 95% 245M 0s\n",
" 54550K .......... .......... .......... .......... .......... 95% 158M 0s\n",
" 54600K .......... .......... .......... .......... .......... 95% 297M 0s\n",
" 54650K .......... .......... .......... .......... .......... 95% 307M 0s\n",
" 54700K .......... .......... .......... .......... .......... 95% 292M 0s\n",
" 54750K .......... .......... .......... .......... .......... 95% 40.0M 0s\n",
" 54800K .......... .......... .......... .......... .......... 96% 135M 0s\n",
" 54850K .......... .......... .......... .......... .......... 96% 217M 0s\n",
" 54900K .......... .......... .......... .......... .......... 96% 261M 0s\n",
" 54950K .......... .......... .......... .......... .......... 96% 127M 0s\n",
" 55000K .......... .......... .......... .......... .......... 96% 196M 0s\n",
" 55050K .......... .......... .......... .......... .......... 96% 343M 0s\n",
" 55100K .......... .......... .......... .......... .......... 96% 363M 0s\n",
" 55150K .......... .......... .......... .......... .......... 96% 245M 0s\n",
" 55200K .......... .......... .......... .......... .......... 96% 312M 0s\n",
" 55250K .......... .......... .......... .......... .......... 96% 118M 0s\n",
" 55300K .......... .......... .......... .......... .......... 96% 237M 0s\n",
" 55350K .......... .......... .......... .......... .......... 97% 281M 0s\n",
" 55400K .......... .......... .......... .......... .......... 97% 313M 0s\n",
" 55450K .......... .......... .......... .......... .......... 97% 270M 0s\n",
" 55500K .......... .......... .......... .......... .......... 97% 359M 0s\n",
" 55550K .......... .......... .......... .......... .......... 97% 285M 0s\n",
" 55600K .......... .......... .......... .......... .......... 97% 357M 0s\n",
" 55650K .......... .......... .......... .......... .......... 97% 360M 0s\n",
" 55700K .......... .......... .......... .......... .......... 97% 347M 0s\n",
" 55750K .......... .......... .......... .......... .......... 97% 8.13M 0s\n",
" 55800K .......... .......... .......... .......... .......... 97% 42.2M 0s\n",
" 55850K .......... .......... .......... .......... .......... 97% 53.0M 0s\n",
" 55900K .......... .......... .......... .......... .......... 97% 152M 0s\n",
" 55950K .......... .......... .......... .......... .......... 98% 245M 0s\n",
" 56000K .......... .......... .......... .......... .......... 98% 330M 0s\n",
" 56050K .......... .......... .......... .......... .......... 98% 338M 0s\n",
" 56100K .......... .......... .......... .......... .......... 98% 362M 0s\n",
" 56150K .......... .......... .......... .......... .......... 98% 276M 0s\n",
" 56200K .......... .......... .......... .......... .......... 98% 320M 0s\n",
" 56250K .......... .......... .......... .......... .......... 98% 274M 0s\n",
" 56300K .......... .......... .......... .......... .......... 98% 333M 0s\n",
" 56350K .......... .......... .......... .......... .......... 98% 285M 0s\n",
" 56400K .......... .......... .......... .......... .......... 98% 343M 0s\n",
" 56450K .......... .......... .......... .......... .......... 98% 364M 0s\n",
" 56500K .......... .......... .......... .......... .......... 99% 239M 0s\n",
" 56550K .......... .......... .......... .......... .......... 99% 285M 0s\n",
" 56600K .......... .......... .......... .......... .......... 99% 329M 0s\n",
" 56650K .......... .......... .......... .......... .......... 99% 282M 0s\n",
" 56700K .......... .......... .......... .......... .......... 99% 324M 0s\n",
" 56750K .......... .......... .......... .......... .......... 99% 307M 0s\n",
" 56800K .......... .......... .......... .......... .......... 99% 267M 0s\n",
" 56850K .......... .......... .......... .......... .......... 99% 290M 0s\n",
" 56900K .......... .......... .......... .......... .......... 99% 370M 0s\n",
" 56950K .......... .......... .......... .......... .......... 99% 287M 0s\n",
" 57000K .......... .......... .......... .......... .......... 99% 342M 0s\n",
" 57050K .......... .......... .......... .......... ........ 100% 342M=0.4s\n",
"\n",
"2022-09-16 19:45:23 (155 MB/s) - ‘Miniconda3-4.5.4-Linux-x86_64.sh’ saved [58468498/58468498]\n",
"\n",
"Python 3.6.5 :: Anaconda, Inc.\n"
]
}
],
"source": [
"%%bash\n",
"MINICONDA_INSTALLER_SCRIPT=Miniconda3-4.5.4-Linux-x86_64.sh\n",
"MINICONDA_PREFIX=/usr/local\n",
"wget https://repo.continuum.io/miniconda/$MINICONDA_INSTALLER_SCRIPT\n",
"chmod +x $MINICONDA_INSTALLER_SCRIPT\n",
"./$MINICONDA_INSTALLER_SCRIPT -b -f -p $MINICONDA_PREFIX"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "g-8IlDZAd7Jx",
"outputId": "d90d7c98-994a-427d-f597-71eb5d4aef88"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Solving environment: - \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\bdone\n",
"\n",
"\n",
"==> WARNING: A newer version of conda exists. <==\n",
" current version: 4.5.4\n",
" latest version: 4.14.0\n",
"\n",
"Please update conda by running\n",
"\n",
" $ conda update -n base conda\n",
"\n",
"\n",
"\n",
"## Package Plan ##\n",
"\n",
" environment location: /usr/local\n",
"\n",
" added / updated specs: \n",
" - viennarna\n",
"\n",
"\n",
"The following packages will be downloaded:\n",
"\n",
" package | build\n",
" ---------------------------|-----------------\n",
" sqlite-3.39.2 | h5082296_0 1.5 MB\n",
" wheel-0.37.1 | pyhd3eb1b0_0 31 KB\n",
" xz-5.2.5 | h7f8727e_1 389 KB\n",
" libgcc-ng-11.2.0 | h1234567_1 8.5 MB\n",
" python-3.7.13 | h12debd9_0 53.5 MB\n",
" ncurses-6.3 | h5eee18b_3 1.1 MB\n",
" pip-22.1.2 | py37h06a4308_0 2.9 MB\n",
" viennarna-2.4.14 | py37h8b12597_0 14.1 MB bioconda\n",
" libffi-3.3 | he6710b0_2 54 KB\n",
" ld_impl_linux-64-2.38 | h1181459_1 732 KB\n",
" setuptools-63.4.1 | py37h06a4308_0 1.4 MB\n",
" readline-8.1.2 | h7f8727e_1 423 KB\n",
" zlib-1.2.12 | h5eee18b_3 124 KB\n",
" tk-8.6.12 | h1ccaba5_0 3.3 MB\n",
" ca-certificates-2022.07.19 | h06a4308_0 131 KB\n",
" certifi-2022.6.15 | py37h06a4308_0 156 KB\n",
" libstdcxx-ng-11.2.0 | h1234567_1 6.1 MB\n",
" openssl-1.1.1q | h7f8727e_0 3.8 MB\n",
" ------------------------------------------------------------\n",
" Total: 98.1 MB\n",
"\n",
"The following NEW packages will be INSTALLED:\n",
"\n",
" ld_impl_linux-64: 2.38-h1181459_1 \n",
" viennarna: 2.4.14-py37h8b12597_0 bioconda\n",
"\n",
"The following packages will be UPDATED:\n",
"\n",
" ca-certificates: 2018.03.07-0 --> 2022.07.19-h06a4308_0 \n",
" certifi: 2018.4.16-py36_0 --> 2022.6.15-py37h06a4308_0\n",
" libffi: 3.2.1-hd88cf55_4 --> 3.3-he6710b0_2 \n",
" libgcc-ng: 7.2.0-hdf63c60_3 --> 11.2.0-h1234567_1 \n",
" libstdcxx-ng: 7.2.0-hdf63c60_3 --> 11.2.0-h1234567_1 \n",
" ncurses: 6.1-hf484d3e_0 --> 6.3-h5eee18b_3 \n",
" openssl: 1.0.2o-h20670df_0 --> 1.1.1q-h7f8727e_0 \n",
" pip: 10.0.1-py36_0 --> 22.1.2-py37h06a4308_0 \n",
" python: 3.6.5-hc3d631a_2 --> 3.7.13-h12debd9_0 \n",
" readline: 7.0-ha6073c6_4 --> 8.1.2-h7f8727e_1 \n",
" setuptools: 39.2.0-py36_0 --> 63.4.1-py37h06a4308_0 \n",
" sqlite: 3.23.1-he433501_0 --> 3.39.2-h5082296_0 \n",
" tk: 8.6.7-hc745277_3 --> 8.6.12-h1ccaba5_0 \n",
" wheel: 0.31.1-py36_0 --> 0.37.1-pyhd3eb1b0_0 \n",
" xz: 5.2.4-h14c3975_4 --> 5.2.5-h7f8727e_1 \n",
" zlib: 1.2.11-ha838bed_2 --> 1.2.12-h5eee18b_3 \n",
"\n",
"\n",
"Downloading and Extracting Packages\n",
"sqlite-3.39.2 | 1.5 MB | : 100% 1.0/1 [00:00<00:00, 2.94it/s] \n",
"wheel-0.37.1 | 31 KB | : 100% 1.0/1 [00:00<00:00, 20.12it/s]\n",
"xz-5.2.5 | 389 KB | : 100% 1.0/1 [00:00<00:00, 5.52it/s] \n",
"libgcc-ng-11.2.0 | 8.5 MB | : 100% 1.0/1 [00:01<00:00, 1.59s/it] \n",
"python-3.7.13 | 53.5 MB | : 100% 1.0/1 [00:10<00:00, 10.24s/it] \n",
"ncurses-6.3 | 1.1 MB | : 100% 1.0/1 [00:01<00:00, 1.07s/it] \n",
"pip-22.1.2 | 2.9 MB | : 100% 1.0/1 [00:01<00:00, 1.26s/it] \n",
"viennarna-2.4.14 | 14.1 MB | : 100% 1.0/1 [00:03<00:00, 3.84s/it] \n",
"libffi-3.3 | 54 KB | : 100% 1.0/1 [00:00<00:00, 18.44it/s]\n",
"ld_impl_linux-64-2.3 | 732 KB | : 100% 1.0/1 [00:00<00:00, 5.07it/s] \n",
"setuptools-63.4.1 | 1.4 MB | : 100% 1.0/1 [00:00<00:00, 1.53it/s] \n",
"readline-8.1.2 | 423 KB | : 100% 1.0/1 [00:00<00:00, 5.77it/s] \n",
"zlib-1.2.12 | 124 KB | : 100% 1.0/1 [00:00<00:00, 14.88it/s]\n",
"tk-8.6.12 | 3.3 MB | : 100% 1.0/1 [00:00<00:00, 1.11it/s] \n",
"ca-certificates-2022 | 131 KB | : 100% 1.0/1 [00:00<00:00, 17.71it/s]\n",
"certifi-2022.6.15 | 156 KB | : 100% 1.0/1 [00:00<00:00, 16.72it/s]\n",
"libstdcxx-ng-11.2.0 | 6.1 MB | : 100% 1.0/1 [00:01<00:00, 1.26s/it] \n",
"openssl-1.1.1q | 3.8 MB | : 100% 1.0/1 [00:00<00:00, 1.16it/s] \n",
"Preparing transaction: | \b\b/ \b\b- \b\b\\ \b\b| \b\bdone\n",
"Verifying transaction: - \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\bdone\n",
"Executing transaction: \\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\b\\ \b\b| \b\b/ \b\b- \b\bdone\n"
]
}
],
"source": [
"!conda install -c bioconda -y viennarna"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {
"id": "9PIMhlfJgp4M"
},
"outputs": [],
"source": [
"#import RNA"
]
},
{
"cell_type": "markdown",
"source": [
"#### Now we can build functions for making calculations"
],
"metadata": {
"id": "zebI95yk77lH"
}
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {
"id": "wSDcrIwJh6en"
},
"outputs": [],
"source": [
"import subprocess\n",
"def rna_fold_rnafold(frag, temperature):\n",
" args = [\"RNAfold\", \"-p\", \"-T\", str(temperature)]\n",
" fc = subprocess.run(args, input=str(frag), check=True, text=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)\n",
" out = str(fc.stdout)\n",
" test = out.splitlines()\n",
" structure = test[1].split()[0]\n",
" centroid = test[3].split()[0]\n",
" MFE = test[1].split(\" \", 1)[1]\n",
" try:\n",
" MFE = float(re.sub('[()]', '', MFE))\n",
" except:\n",
" print(\"Error parsing MFE values\", test)\n",
" ED = float(test[4].split()[-1])\n",
"\n",
" return (structure, centroid, MFE, ED)"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {
"id": "N7d2GiWVYoXg"
},
"outputs": [],
"source": [
"def make_input_fn(data_df, label_df, num_epochs=10, shuffle=True, batch_size=32):\n",
" def input_function(): # inner function, this will be returned\n",
" ds = tf.data.Dataset.from_tensor_slices((dict(data_df), label_df)) # create tf.data.Dataset object with data and its label\n",
" if shuffle:\n",
" ds = ds.shuffle(1000) # randomize order of data\n",
" ds = ds.batch(batch_size).repeat(num_epochs) # split dataset into batches of 32 and repeat process for number of epochs\n",
" return ds # return a batch of the dataset\n",
" return input_function # return a function object for use\n",
"\n"
]
},
{
"cell_type": "markdown",
"source": [
"### Making a single prediction using model. You can input any sequence you want after \"frag\""
],
"metadata": {
"id": "oPLejdZq4sjg"
}
},
{
"cell_type": "code",
"source": [
"#vegfa frag: \n",
"frag = \"GACTCTGCGCAGAGCACTTTGGGTCCGGAGGGCGAGACTCCGGCGGAAGCATTCCCGGGCGGGTGACCCAGCACGGTCCCTCTTGGAATTGGATTCGCCATTTTATTTTTCTTGCTGCTAAATCACCGAGCCCGGAAGATTAGAGAGTTTTATTTCTGGGATTCCTGTAGACACACCCACCCACATACATACATTTATATATATATATATTATATATATATAAAAATAAATATCTCTATTTTATATATATAAAATATATATATTCTTTTTTTAAATTAACAGTGCTAATGTTATTGGTGTCTTCACTGGATGTATTTGACTGCTGTGGACTTGAGTTGGGAGGGGAATGTTC\"\n",
"#rag = input('Input sequence for testing:')\n",
"frag = frag.replace(\"T\", \"U\")\n",
"\n",
"\n",
"# Calculate frag features\n",
"GCpercent = get_gc_content(frag)\n",
"CGratio = get_cg_ratio(frag)\n",
"AUratio = get_au_ratio(frag)\n",
"di_freqs = get_di_freqs(frag)\n",
"\n",
"# use function (rna_fold_rnafold) to get MFE (can use python binding method if available)\n",
"structure, centroid, MFE, ED = rna_fold_rnafold(frag, 37)\n",
"MFE = MFE.replace(\")\", \"\")\n",
"MFE = float(MFE.replace(\"(\", \"\"))\n",
"MFE = float(MFE)\n",
"\n",
"# put features in a list\n",
"full_features = [float(len(frag)), float(GCpercent), float(CGratio), float(AUratio)]\n",
"\n",
"# Append the dinucleotide frequencies\n",
"for freq in di_freqs:\n",
" full_features.append(freq)\n",
"\n",
"# convert feature list to pandas dataframe AND TRANSPOSE to give correct shape (1,20)\n",
"full_predict = pd.DataFrame(full_features).transpose()\n",
"full_predict.columns = [\"Length\", \"GCpercent\",\"CGratio\", \"AUratio\", \"AA\",\"AU\",\"AG\",\"AC\",\"UA\",\"UU\",\"UG\",\"UC\",\"GA\",\"GU\",\"GG\",\"GC\",\"CA\",\"CU\",\"CG\", \"CC\"]\n",
"\n",
"# Predict mean MFE and standard deviation based on features\n",
"meanMFE_result = mean_mfe_model.predict(full_predict)\n",
"stddev_result = std_dev_model.predict(full_predict)\n",
"\n",
"# Extract values and calculate z-score\n",
"meanMFE = meanMFE_result[0][0]\n",
"stddev = stddev_result[0][0]\n",
"zscore = round((MFE-meanMFE)/(stddev), 2)\n",
"print(f'\\n\\n\\nSequence analyzed:\\n{frag}\\n\\nSequence Length: {str(len(frag))} nt\\nMeanMFE prediction: {round(float(meanMFE), 2)}\\nPredicted MFE Standard Deviation: {round(float(stddev), 2)}\\nRNAfold MFE: {round(float(MFE), 2)}\\n\\nCalculated z-score: {round(zscore, 2)}')"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "LuD-58X74ukh",
"outputId": "c2b9f3c4-9e06-44ee-9053-f84b07da4abe"
},
"execution_count": 104,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Error parsing MFE values ['GACUCUGCGCAGAGCACUUUGGGUCCGGAGGGCGAGACUCCGGCGGAAGCAUUCCCGGGCGGGUGACCCAGCACGGUCCCUCUUGGAAUUGGAUUCGCCAUUUUAUUUUUCUUGCUGCUAAAUCACCGAGCCCGGAAGAUUAGAGAGUUUUAUUUCUGGGAUUCCUGUAGACACACCCACCCACAUACAUACAUUUAUAUAUAUAUAUAUUAUAUAUAUAUAAAAAUAAAUAUCUCUAUUUUAUAUAUAUAAAAUAUAUAUAUUCUUUUUUUAAAUUAACAGUGCUAAUGUUAUUGGUGUCUUCACUGGAUGUAUUUGACUGCUGUGGACUUGAGUUGGGAGGGGAAUGUUC', '((((((((.....)))....)))))(((((.......))))).....(((((((((((((.(((((..(((((.((.......((((((.((.....))))))))....)).))))).....)))))..))))((((..(((((((......)))))))..))))(((....)))((((((((((..((..((..((((((((((((((((.(((((((((((((.((........))))))))))))))).))))))))))).............(((((.......)))))..((((....))))..)))))..))..)).)))))......).))))..))))))))). (-95.00)', ',,(((({(..,,,)}}.,,,}||}((((((.......)))))},.||{((((((((((((.(((((..{((((.((.......{{(((.{((.....)))})))}.....}.))})),,...)))))..))))((((..(((((((......)))))))..)))),{,....}},(((({(((((,,,({{(({{({,,,(((((((((((.(((((((((((({{((........))))))))))))))).))))))))))).............{{(((,,.....})))),}|(((....)))))))))))}.))..,,.)))))......),}))).,))))))))}. [-103.06]', '.........................(((((.......)))))......((((((((((((.(((((..(((((..........(((((.(((.....)))))))).......))))).....)))))..))))((((..(((((((......)))))))..))))..........(((..(((((...............(((((((((((.(((((((((((..(((........))).))))))))))).))))))))))).............(((((.......)))))...(((....))).................))))).........)))..)))))))).. {-77.30 d=65.02}', ' frequency of mfe structure in ensemble 2.1041e-06; ensemble diversity 98.73 ']\n",
"\n",
"\n",
"\n",
"Sequence analyzed:\n",
"GACUCUGCGCAGAGCACUUUGGGUCCGGAGGGCGAGACUCCGGCGGAAGCAUUCCCGGGCGGGUGACCCAGCACGGUCCCUCUUGGAAUUGGAUUCGCCAUUUUAUUUUUCUUGCUGCUAAAUCACCGAGCCCGGAAGAUUAGAGAGUUUUAUUUCUGGGAUUCCUGUAGACACACCCACCCACAUACAUACAUUUAUAUAUAUAUAUAUUAUAUAUAUAUAAAAAUAAAUAUCUCUAUUUUAUAUAUAUAAAAUAUAUAUAUUCUUUUUUUAAAUUAACAGUGCUAAUGUUAUUGGUGUCUUCACUGGAUGUAUUUGACUGCUGUGGACUUGAGUUGGGAGGGGAAUGUUC\n",
"\n",
"Sequence Length: 352 nt\n",
"MeanMFE prediction: -63.41\n",
"Predicted MFE Standard Deviation: 5.09\n",
"RNAfold MFE: -95.0\n",
"\n",
"Calculated z-score: -6.2\n"
]
}
]
},
{
"cell_type": "markdown",
"source": [
"##Questions or suggestions?\n",
"\n",
"Email:\n",
"Ryan J. Andrews ryan.j.rna@gmail.com\n",
"Warren B. Rouse wbrouse@iastate.edu\n",
"Walter N. Moss wmoss@iastate.edu\n"
],
"metadata": {
"id": "YlcioH8vBF8y"
}
}
],
"metadata": {
"accelerator": "TPU",
"colab": {
"collapsed_sections": [
"bMr7MPVmoiHf",
"xchnxAsaKKqO",
"SIpsyJITPcbG",
"Ak_TMAzGOIFq",
"_JAG5JYytnTr",
"vStvuHK_t1hs",
"NixZHwDBGPid",
"q03hC506k96D"
],
"machine_shape": "hm",
"provenance": []
},
"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.8.13"
}
},
"nbformat": 4,
"nbformat_minor": 0
}