{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/agalicina/anaconda3/envs/distiller-editable/lib/python3.6/site-packages/h5py/__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.\n", " from ._conv import register_converters as _register_converters\n" ] } ], "source": [ "import numpy as np\n", "import scipy\n", "import pandas as pd\n", "import pickle\n", "\n", "import glob\n", "import cooler\n", "\n", "import seaborn as sns\n", "import matplotlib as mpl\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "sns.set_style('whitegrid')" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "files = glob.glob(\"../DATA/COOL/*.cool\")\n", "labels = ['_'.join(x.split('/')[-1].split('_')[0:-3]) for x in files]\n", "resolution = 5000" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "['nuclear_cycle_13',\n", " 'nuclear_cycle_14_sh_zld',\n", " 'nuclear_cycle_12',\n", " '3-4h',\n", " 'mitotic_nuclear_cycle_1-14',\n", " 'nuclear_cycle_14_water_injected',\n", " 'nuclear_cycle_14',\n", " 'nuclear_cycle_14_alpha-amanitin_injected',\n", " 'nuclear_cycle_14_triptolide_injected']" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "labels" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": true }, "outputs": [], "source": [ "datasets = {x:{} for x in labels}" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT X\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT X\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 2L\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 2L\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 2R\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 2R\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 3L\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 3L\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 3R\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 3R\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 4\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 4\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT X\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT X\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 2L\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 2L\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 2R\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 2R\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 3L\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 3L\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 3R\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 3R\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 4\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 4\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT X\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT X\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 2L\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 2L\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 2R\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 2R\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 3L\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 3L\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 3R\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 3R\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 4\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 4\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT X\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT X\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 2L\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 2L\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 2R\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 2R\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 3L\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 3L\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 3R\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 3R\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 4\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 4\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT X\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT X\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 2L\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 2L\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 2R\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 2R\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 3L\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 3L\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 3R\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 3R\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 4\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 4\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT X\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT X\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 2L\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 2L\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 2R\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 2R\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 3L\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 3L\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 3R\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 3R\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 4\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 4\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT X\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT X\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 2L\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 2L\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 2R\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 2R\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 3L\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 3L\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 3R\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 3R\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 4\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 4\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT X\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT X\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 2L\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 2L\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 2R\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 2R\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 3L\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 3L\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 3R\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 3R\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 4\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 4\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT X\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT X\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 2L\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 2L\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 2R\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 2R\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 3L\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 3L\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 3R\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 3R\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 4\n", "re.compile('\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P[a-zA-z0-9_|]+)|\\\\s*(?P:)|\\\\s*(?P-)')\n", "INT 4\n" ] } ], "source": [ "balance = True\n", "\n", "for label, file in zip(labels, files):\n", " c = cooler.Cooler(file)\n", " for ch in c.chromnames:\n", " mtx = c.matrix(balance=balance).fetch(ch)\n", " datasets[label][ch] = mtx.copy()" ] }, { "cell_type": "code", "execution_count": 646, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 80, "metadata": { "collapsed": true }, "outputs": [], "source": [ "tads_df = pd.read_csv(\"../DATA/tads_new1.csv\", sep=',', quotechar=\"\\\"\")" ] }, { "cell_type": "code", "execution_count": 81, "metadata": { "collapsed": true }, "outputs": [], "source": [ "tads_df_selected = tads_df.query(\"cluster==2\")" ] }, { "cell_type": "code", "execution_count": 82, "metadata": { "collapsed": true }, "outputs": [], "source": [ "chrms = ['X', '2L', '2R', '3L', '3R']" ] }, { "cell_type": "code", "execution_count": 83, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "5000" ] }, "execution_count": 83, "metadata": {}, "output_type": "execute_result" } ], "source": [ "resolution" ] }, { "cell_type": "code", "execution_count": 84, "metadata": { "collapsed": true }, "outputs": [], "source": [ "colors = ['white', 'blue', 'green', 'black', 'yellow', 'brown', 'purple', 'red']" ] }, { "cell_type": "code", "execution_count": 108, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "opt_gamma = 125\n", "\n", "ch = '2R'\n", "df_tmp = tads_df_selected.query(\"seqnames=='chr{}'\".format(ch))\n", "segments = tads_df.query(\"seqnames=='chr{}'\".format(ch))[['start', 'end']].values/resolution\n", "segments_selected = tads_df_selected.query(\"seqnames=='chr{}'\".format(ch))[['start', 'end']].values/resolution\n", "\n", "exp1 = '3-4h'\n", "#exp2 = 'nuclear_cycle_12'\n", "\n", "mtx_cor = datasets[exp1][ch] #- datasets[exp2][ch]\n", "np.fill_diagonal(mtx_cor, 0)\n", "\n", "\n", "bgn = 700\n", "end = bgn+200\n", "\n", "plt.figure(figsize=[20,20])\n", "sns.heatmap(mtx_cor[bgn:end, bgn:end], \n", " cmap=\"Reds\", #\"RdBu_r\", \n", " square=True, \n", " cbar=True)\n", "plt.xticks([])\n", "plt.yticks([])\n", "print('')\n", "\n", "for i, seg in zip(tads_df.query(\"seqnames=='chr{}'\".format(ch)).loc[:, 'cluster'], segments):\n", "#for seg in segments:\n", " if seg[0]bgn:\n", " #print(i, seg)\n", " plt.plot([seg[0]-bgn, seg[1]-bgn], [seg[0]-bgn, seg[0]-bgn], color=colors[i])\n", " plt.plot([seg[1]-bgn, seg[1]-bgn], [seg[0]-bgn, seg[1]-bgn], color=colors[i])\n" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.13" } }, "nbformat": 4, "nbformat_minor": 2 }