{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Using TensorFlow backend.\n"
     ]
    }
   ],
   "source": [
    "from __future__ import print_function\n",
    "import keras\n",
    "from keras.models import Sequential, Model, load_model\n",
    "import keras.backend as K\n",
    "\n",
    "import tensorflow as tf\n",
    "\n",
    "import pandas as pd\n",
    "\n",
    "import os\n",
    "import pickle\n",
    "import numpy as np\n",
    "\n",
    "import scipy.sparse as sp\n",
    "import scipy.io as spio\n",
    "\n",
    "import isolearn.io as isoio\n",
    "\n",
    "from scipy.stats import pearsonr\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "import matplotlib.cm as cm\n",
    "import matplotlib.colors as colors\n",
    "\n",
    "import matplotlib as mpl\n",
    "from matplotlib.text import TextPath\n",
    "from matplotlib.patches import PathPatch, Rectangle\n",
    "from matplotlib.font_manager import FontProperties\n",
    "from matplotlib import gridspec\n",
    "from matplotlib.ticker import FormatStrFormatter\n",
    "\n",
    "from aparent.data.aparent_data_plasmid_legacy import load_data\n",
    "\n",
    "from analyze_aparent_conv_layers_helpers import *\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/johli/anaconda3/envs/aparent/lib/python3.6/site-packages/numpy/core/fromnumeric.py:56: FutureWarning: Series.nonzero() is deprecated and will be removed in a future version.Use Series.to_numpy().nonzero() instead\n",
      "  return getattr(obj, method)(*args, **kwds)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Training set size = 541450\n",
      "Validation set size = 1000\n",
      "Test set size = 60000\n"
     ]
    }
   ],
   "source": [
    "#Load random MPRA data\n",
    "\n",
    "file_path = '../data/random_mpra_legacy/combined_library/processed_data_lifted/'\n",
    "plasmid_gens = load_data(batch_size=32, valid_set_size=1000, test_set_size=60000, kept_libraries=[20], file_path=file_path)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "#Re-shuffle test set index\n",
    "\n",
    "plasmid_index = np.arange(len(plasmid_gens['all'].sources['df']), dtype=np.int)\n",
    "np.random.shuffle(plasmid_index)\n",
    "\n",
    "plasmid_gens['test'].data_ids = plasmid_index[:60000]\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From /home/johli/anaconda3/envs/aparent/lib/python3.6/site-packages/tensorflow/python/framework/op_def_library.py:263: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Colocations handled automatically by placer.\n",
      "WARNING:tensorflow:From /home/johli/anaconda3/envs/aparent/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py:3445: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`.\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/johli/anaconda3/envs/aparent/lib/python3.6/site-packages/keras/engine/saving.py:292: UserWarning: No training configuration found in save file: the model was *not* compiled. Compile it manually.\n",
      "  warnings.warn('No training configuration found in save file: '\n"
     ]
    }
   ],
   "source": [
    "#Load legacy APARENT model (lifted from theano)\n",
    "\n",
    "model_name = 'aparent_theano_legacy_30_31_34'#_pasaligned\n",
    "\n",
    "save_dir = os.path.join(os.getcwd(), '../saved_models/legacy_models')\n",
    "model_path = os.path.join(save_dir, model_name + '.h5')\n",
    "\n",
    "aparent_model = load_model(model_path)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [],
   "source": [
    "#Create a new model that outputs the conv layer activation maps together with the isoform proportion\n",
    "conv_layer_iso_model = Model(\n",
    "    inputs = aparent_model.inputs,\n",
    "    outputs = [\n",
    "        aparent_model.get_layer('iso_conv_layer_1').output,\n",
    "        aparent_model.get_layer('iso_out_layer_1').output\n",
    "    ]\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [],
   "source": [
    "#Predict from test data generator\n",
    "iso_conv_1_out, iso_pred = conv_layer_iso_model.predict_generator(plasmid_gens['test'], workers=4, use_multiprocessing=True)\n",
    "\n",
    "iso_conv_1_out = np.reshape(iso_conv_1_out, (iso_conv_1_out.shape[0], iso_conv_1_out.shape[1], iso_conv_1_out.shape[2]))\n",
    "\n",
    "iso_pred = np.ravel(iso_pred[:, 1])\n",
    "\n",
    "#Retrieve one-hot input sequences\n",
    "onehot_seqs = np.concatenate([plasmid_gens['test'][i][0][0][:, 0, :, :] for i in range(len(plasmid_gens['test']))], axis=0)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [],
   "source": [
    "#Mask for doubledope library (Alien1)\n",
    "mask_seq = ('X' * (25 - 1 - 7)) + ('N' * (71 + 7)) + ('X' * (14 - 7)) + ('N' * (71 + 7 - 2))\n",
    "\n",
    "for j in range(len(mask_seq)) :\n",
    "    if mask_seq[j] == 'X' :\n",
    "        iso_conv_1_out[:, :, j] = 0\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [],
   "source": [
    "#Layer 1: Compute Scaled Activation PWMs\n",
    "filter_width = 8\n",
    "pseudo_count = 1.0\n",
    "\n",
    "pwms = np.zeros((iso_conv_1_out.shape[1], filter_width, 4))\n",
    "\n",
    "for k in range(iso_conv_1_out.shape[1]) :\n",
    "    \n",
    "    for i in range(iso_conv_1_out.shape[0]) :\n",
    "        max_j = np.argmax(iso_conv_1_out[i, k, :])\n",
    "        if iso_conv_1_out[i, k, max_j] > 0 :\n",
    "            pwms[k, :, :] += onehot_seqs[i, max_j: max_j+filter_width, :] * iso_conv_1_out[i, k, max_j]#np.exp(iso_conv_1_out[i, k, max_j])\n",
    "    \n",
    "    pwms[k, :, :] += pseudo_count\n",
    "    pwms[k, :, :] /= np.expand_dims(np.sum(pwms[k, :, :], axis=-1), axis=-1)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 288x576 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#Plot Scaled Activation PWM of CSE Hexamer filter (Filter 6, as identified in the Max Activation PWM script)\n",
    "\n",
    "plot_pwm_logo(pwms[6], figsize=(6, 4))\n",
    "\n",
    "plot_pwm_logprob_motifs(pwms[6], n=10, seq_start=1, seq_end=7, figsize=(4, 8))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python [conda env:aparent]",
   "language": "python",
   "name": "conda-env-aparent-py"
  },
  "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.6.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}