505 lines (504 with data), 95.4 kB
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Predicting JunD binding"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In this use case we compare different models using different input features to predict the binding of the JunD transcription factor."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"#!pip install rpy2\n",
"#!pip install tzlocal\n",
"#!conda install --yes -c bioconda bedtools samtools\n",
"#!conda install --yes r-ggplot2"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"%load_ext rpy2.ipython\n",
"\n",
"from IPython.display import Image"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"datadir = '../data'\n",
"outputdir = '../jund_results'"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array(['ggplot2', 'tools', 'stats', 'graphics', 'grDevices', 'utils',\n",
" 'datasets', 'methods', 'base'], dtype='<U9')"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%R library(ggplot2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Run a grid search for a DNA only model.\n",
"(Since the following parts are rather time consuming, they will be reran only if you remove the hashtags)."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"#!python dna_only.py -inputpath {datadir} -path {outputdir}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Run a grid search on a DNase only model"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"#!python dnase_only.py -inputpath {datadir} -path {outputdir}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Fit models that use DNA and DNase as input simultaneously"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"#!python dnase_dna_model.py -inputpath {datadir} -path {outputdir}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Finally, the following script produces a few sample plots using the plotGenomeTrack functionality."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"#!python plot_dnase_dna.py -inputpath {datadir} -path {outputdir}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Illustration of an example genomic locus. The figure shows the concordance between the ground truth JunD bound region and the predicted binding site. Underneath, the DNase coverage is shown for thtwo samples."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAyAAAAGQCAYAAABWJQQ0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3Xl4FGW69/Ffk4SQHQOEsImRTRjlgBugIsFRYVzQg4oLiugIokZkUUYQjqAIuGA46FE8qKhnHHAB3kFHUUYMCgICGkB2MCJgAGVJAoQEknr/KNLpDkl3J3RXdbq/n+uqi671uavTdNddz1IOwzAMAQAAAIAF6tgdAAAAAIDwQQICAAAAwDIkIAAAAAAsQwICAAAAwDIkIAAAAAAsQwICAAAAwDIkIAAAAAAsQwICAAAAwDIkIAAAAAAsQwICAAAAwDIkIAAAAAAsQwICAAAAwDIkIAAAAAAsQwICAAAAwDIkIAAAAAAsQwICAAAAwDIkIAAAAAAsQwICAAAAwDIkIAAAAAAsQwICAAAAwDIkIAAAAAAsQwICAAAAwDIkIAAAAAAsQwICAAAAwDIkIAAAAAAsQwICAAAAwDIkIAAAAAAsQwICAKi13nnnHTkcDq1evfqMjvPUU0+pc+fOSk5OVr169XTuuedq8ODB2rlzp58iBQCUibQ7AAAA7Hb48GHdeeedat++vRISErRx40ZNnDhRCxYs0IYNG9SgQQO7QwSAkEECAgAIW4WFhYqJidH//M//uC1PT09XWlqarrvuOv3zn//U/fffb1OEABB6aIIFAAhqmzdv1p133qnGjRsrOjpaZ599tgYMGKCioiLnNgUFBXrooYfUsGFDNWjQQH379tVvv/3mdpxzzjlHN9xwg+bNm6fOnTurXr16mjBhQpXlNmrUSJIUGcm9OgDwJ75VAQBBa+3atbriiivUsGFDPfPMM2rTpo1yc3O1YMECFRcXO7d74IEHdP311+sf//iHdu3apSeeeEJ33323Fi9e7Ha8H374QZs2bdLYsWOVlpamuLg4t/UnT57UiRMntHnzZg0bNkxt27ZV3759LTlXAAgXJCAAgKA1YsQIRUZG6vvvv3fWSEhS//793bbr3bu3pk+f7pw/ePCgRo0apb179yo1NdW5fP/+/dq4caPatm17Wll79+5VkyZNnPNdunTR119/rfj4eH+eEgCEPZpgAQCC0rFjx7RkyRL169fPLfmoTJ8+fdzmO3bsKEmnjWLVsWPHSpMPSWrYsKFWrVqlpUuXaubMmTp48KB69uyp3NzcMzgLAEBFJCAAgKB06NAhlZSUqHnz5l63rThKVXR0tCSzk7kr1xqOiiIjI3XxxRfr8ssv1wMPPKDFixfr559/1pQpU2oQPQCgKiQgAICglJycrIiICO3evdtvx3Q4HD5v27x5czVt2lRbt271W/kAABIQAECQiomJUY8ePfTRRx/pjz/+sLz87du3a/fu3WrdurXlZQNAKKMTOgAgaL388su64oor1KVLFz355JNq3bq19u3bpwULFuiNN97wSxnr1q3T8OHDdeutt+rcc89VnTp1tH79emVmZqpBgwZ6/PHH/VIOAMBEAgIACFr/8R//oe+//15PP/20Ro8erYKCAqWmpuqqq65S3bp1/VJG48aN1bRpU02dOlW5ubk6efKkmjdvrhtuuEFjxoxRixYt/FIOAMDkMAzDsDsIAAAAAOGBPiAAAAAALEMCAgAAAMAyJCAAAAAALEMCAgAAAMAyJCAAAAAALEMCAgAAAMAyJCAAAAAALEMCAgAAAMAyJCAAAAAALEMCAgAAAMAyJCAAAAAALEMCAgAAAMAyJCAAAAAALEMCAgAAAMAyJCAAAAAALEMCAgAAAMAyJCAAAAAALEMCAgAAAMAyJCAAAAAALEMCAgAAAMAyJCAAAAAALBNpdwBAGcMwVFBQYHcYAAAAXiUkJMjhcNgdRq1EAoKg8ccffyglJcXuMAAAALzav3+/GjVqZHcYtRIJCIJG3bp1JUm7du1SYmKizdEAAACcLj8/Xy1atHBet6D6SEAQNMqqMRMTE0lAAABAUKP5Vc3RCR0AAACAZUhAAAAAAFiGBARBIzo6Wk8//bSio6PtDgUAAKBSXK+cOYdhGIbdQQAAAAAID9SAAAAAALAMCQgAAAAAy5CAAAAAALAMCQgAAAAAy5CAoFKTJ0/WJZdcooSEBKWkpOjmm2/Wli1b3LZ58MEH1apVK8XExKhRo0a66aabtHnzZrdtHA7HadOMGTOc67ds2aKePXuqcePGqlevns4991yNHTtWJ06ccDvO3Llz1aFDB0VHR6tDhw6aP3++23rDMDR+/Hg1bdpUMTExSk9P14YNG9y2OXTokO655x4lJSUpKSlJ99xzjw4fPuyPtwsAANjAquuV8ePHV7pNXFyc23G4XvENCQgqtWTJEj3yyCNasWKFFi1apJMnT+raa6/V0aNHndtcdNFFmjVrljZt2qQvvvhChmHo2muvVUlJiduxZs2apdzcXOd07733OtdFRUVpwIAB+vLLL7VlyxZNmzZNM2fO1NNPP+3cZvny5br99tt1zz33aO3atbrnnnvUr18/rVy50rnNCy+8oJdfflmvvvqqVq1apdTUVF1zzTUqKChwbnPXXXcpOztbCxcu1MKFC5Wdna177rknEG8fAACwgFXXK48//rjbutzcXHXo0EG33XabcxuuV6rBAHywf/9+Q5KxZMmSKrdZu3atIcnYvn27c5kkY/78+dUqa/jw4cYVV1zhnO/Xr5/Ru3dvt2169epl3HHHHYZhGEZpaamRmppqTJkyxbn++PHjRlJSkjFjxgzDMAxj48aNhiRjxYoVzm2WL19uSDI2b95crfgAAEBwsup6JTs725BkfPPNN85lXK/4jhoQ+CQvL0+SlJycXOn6o0ePatasWUpLS1OLFi3c1mVkZKhhw4a65JJLNGPGDJWWllZZzvbt27Vw4UL16NHDuWz58uW69tpr3bbr1auXvvvuO0lSTk6O9u7d67ZNdHS0evTo4dxm+fLlSkpKUpcuXZzbdO3aVUlJSc5tAABA7WbV9cqbb76ptm3bqnv37s5lXK/4jgQEXhmGoREjRuiKK67Q+eef77butddeU3x8vOLj47Vw4UItWrRIdevWda5/9tln9dFHH+nf//637rjjDo0cOVKTJk06rYzLLrtM9erVU5s2bdS9e3c988wzznV79+5V48aN3bZv3Lix9u7d61xftszTNikpKaeVm5KS4twGAADUXlZcr0hSUVGR3n//ff31r391W871iu8i7Q4AwS8jI0Pr1q3T0qVLT1vXv39/XXPNNcrNzdVLL72kfv36admyZapXr54kaezYsc5tO3XqJEl65pln3JZL0gcffKCCggKtXbtWTzzxhF566SWNGjXKud7hcLhtbxjGacu8bVNxfVXHAQAAtY8V1yuSNG/ePBUUFGjAgAGnreN6xTckIPDo0Ucf1YIFC/TNN9+oefPmp60vG6GhTZs26tq1q8466yzNnz9fd955Z6XH69q1q/Lz87Vv3z63OwBl1aAdOnRQSUmJBg8erJEjRyoiIkKpqamnZf379+937p+amirJvGvQpEmTKrfZt2/fafH8/vvvp92JAAAAtYtV1yuS2fzqhhtucF5/lOF6xXc0wUKlDMNQRkaG5s2bp8WLFystLc3n/YqKiqpc/+OPP6pevXqqX7++x2OcOHFChmFIkrp166ZFixa5bfPll1/qsssukySlpaUpNTXVbZvi4mItWbLEuU23bt2Ul5en77//3rnNypUrlZeX59wGAADULlZfr+Tk5Ojrr78+rfmVxPVKtdjR8x3B76GHHjKSkpKMrKwsIzc31zkdO3bMMAzD2LFjhzFp0iRj9erVxs6dO43vvvvOuOmmm4zk5GRj3759hmEYxoIFC4z//d//NdavX29s377dmDlzppGYmGgMHTrUWc7f//5344MPPjA2btxo7Nixw/jwww+NZs2aGf3793dus2zZMiMiIsKYMmWKsWnTJmPKlClGZGSk2wgRU6ZMMZKSkox58+YZ69evN+68806jSZMmRn5+vnOb3r17Gx07djSWL19uLF++3LjggguMG264IdBvJQAACBCrrlfKjB071mjatKlx8uTJ09ZxveI7EhBUSlKl06xZswzDMIw9e/YYf/nLX4yUlBQjKirKaN68uXHXXXe5DRH3+eefG506dTLi4+ON2NhY4/zzzzemTZtmnDhxwrnNnDlzjAsvvNCIj4834uLijA4dOhiTJk0yCgsL3eL56KOPjHbt2hlRUVHGeeedZ8ydO9dtfWlpqfH0008bqampRnR0tHHllVca69evd9vmwIEDRv/+/Y2EhAQjISHB6N+/v3Ho0CE/v3MAAMAqVl2vGIZhlJSUGM2bNzfGjBlTZTxcr/jGYRin2rkAAAAAQIDRBwQAAACAZUhAgohhGMrPz1e4VkqF+/kDAACEAxKQIFJQUKCkpCQVFBTYHYotwv38AQAAwgHPAQEAWKLUMPTg1q366tAhy8qsI6lfSoomnXuuZWUCADwjAQEAWGJ5fr7ezM21vNzJv/6qQydPqnVMTMDLiqlTR30bNlRqdHTAywKA2ooEBABgicMnTzpfx9apo/iIiICWt//ECefrGb/9FtCyXD2ybZuM9HTLygOA2oYEBABgudFnn62x55wT0DIWHzqkP69dG9AyKhPtcFheJgDUJiQgAABLWD3C3VVnnaX1F1+szceOWVLeEz//rF+OHxfj+AGAZyQg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HiBs0AQLAIISCQgqtW7dOp+37dixYwAj8SA11fdtK9aAHD4s1a9f8xqQahgyZIj69evnnO/fv79uueUW9e3b17msWbNm1TomAB/4moAAACxFAoJKderUSQ6HQ4ZhuD2Nu+zp567LSsou7K1W02ZQP/wgXXSR9NVX0oUX+jemSiQnJys5Odk5HxMTo5SUFLVu3TrgZQNhjSZYABCUGAULlcrJydHPP/+snJwczZ07V2lpaXrttdeUnZ2t7Oxsvfbaa2rVqpXmzp1rd6gAUDmaYAFAUKIGBJVq2bKl8/Vtt92m6dOn67rrrnMu69ixo1q0aKFx48bp5ptvtiPEmmvSRHr6afNfAKGLBAQAghIJCLxav3690tLSTluelpamjRs32hDRGWrSxHwQoU2ysrJsKxvAKfQBAQDb0AQLXrVv314TJ07U8ePHncuKioo0ceJEtW/f3sbIAMAD+oAAQFCiBgRezZgxQzfeeKNatGih//iP/5AkrV27Vg6HQ59++qnN0QFAFWiCBQBBiQQEXl166aXKycnR3//+d23evFmGYej222/XXXfdpbi4OLvDA4DKkYAAQFAiAYFPYmNjNXjwYLvDAADf8RwQAAhKJCDwyY4dOzRt2jRt2rRJDodD7du312OPPaZWrVrZHRoAVI4+IAAQlOiEDq+++OILdejQQd9//706duyo888/XytXrtSf/vQnLVq0yO7wAKByNMECgKBEDQi8evLJJzV8+HBNmTLltOV/+9vfdM0119gUGQDUEAkIANiGGhB4tWnTJv31r389bfn9999fO58DAiA8+NoECwBgKRIQeNWoUSNlZ2eftjw7O1spKSk2RAQAPqAJFiqaM0eqW9f8+1c2JSVJNC0GAo4mWPBq0KBBGjx4sH7++WdddtllcjgcWrp0qZ5//nmNHDnS7vAAoHIkIKjom2+kEyeqXp+fL61cKdG0GAgoEhB4NW7cOCUkJGjq1KkaPXq0JKlp06YaP368hg4danN0AGqVr76Svv666vVXXilde61/ymIYXrgyDCknx+4oAIgEBD5wOBwaPny4hg8froKCAklSQkKCzVEBqHW2b5euvtrzNs89V/nymBipY0fp2Wd9vzvNMLyQzGZXzz8vbdwoFRd7337cOHP7zp3N19SGAH5HHxB4lZOTo23btkkyE4+y5GPbtm365ZdfbIwMQK2yZUvN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8zRs2DBdffXVdocGAACAWsTGcQj9Z8eOHSouLla3bt2cy5KTk9WuXTu37Tq6PInU4XAoNTVV+13Gov/44491xRVXKDU1VfHx8Ro3bpx+/fVX5/oRI0bogQce0NVXX60pU6Zox44dznVr1qzRO++8o/j4eOfUq1cvlZaWKqeKp2tPnjxZSUlJzqlFixZn/F4EwquvvqrevXsrISFBjz32mIYOHarExERdd911evXVV+0ODwAAALVISCQgvlbilDWXKuNwOFR6qrPiihUrdMcdd+gvf/mLPv30U/3444966qmnVFxc7Nx+/Pjx2rBhg66//notXrxYHTp00Pz58yVJpaWlevDBB5Wdne2c1q5dq23btqlVq1aVxjN69Gjl5eU5p11B+lyKyZMnKzMzU7Nnz9bQoUM1dOhQ/eMf/1BmZqYmTZrkt3IMw1B+fn5QPPAQAAAAgRESfUBat26tqKgorVixQmeffbYk6dChQ9q6dat69Ojh0zGWLVumli1b6qmnnnIu27lz52nbtW3bVm3bttXw4cN15513atasWfrP//xPXXjhhdqwYYNaV3zargfR0dHOIW6DWX5+vnr37n3a8muvvVZ/+9vf/FZOQUGBT89BKSkp0YkTJ/xWbrCKiopShK9PhwZC3cMPS6+/7nmb8ePdH4InmQ9SiwyJnzoACBkh8a0cHx+vv/71r3riiSfUoEEDNW7cWE899ZTqVONJt61bt9avv/6qOXPm6JJLLtG//vUvZ+2GJBUWFuqJJ57QrbfeqrS0NO3evVurVq3SLbfcIkn629/+pq5du+qRRx7RoEGDFBcXp02bNmnRokV65ZVX/H7OVurTp4/mz5+vJ554wm35P//5T914442WxWEYhvbu3avDhw9bVqbd6tevr9TUVDrlIzzNmWM+KX7TJsmX5w6NH29OvnA4pLg4qVs36YUX3J+gDgAIqJBIQCSzw/iRI0fUp08fJSQkaOTIkcrLy/N5/5tuuknDhw9XRkaGioqKdP3112vcuHEaf+rHLCIiQgcOHNCAAQO0b98+NWzYUH379tWECRMkmf1LlixZoqeeekrdu3eXYRhq1aqVs1N8bda+fXs999xzysrKcvazWbFihZYtW6aRI0dq+vTpzm2HDh0asDjKko+UlBTFxsaG9EW5YRg6duyYs49SkyZNbI4IsMGQIVI1vserxTCkI0ekRYukYcOkrKzAlAMAOE1IjIIVKvLz831qgmS1tLQ0n7ZzOBz6+eefa1yOp/MvKSnR1q1blZKSogYNGtS4jNrmwIED2r9/v9q2bUtzLISfshqQn36STp7077GpAQEA24RMDQgCp6pRvKxU1ucjNjbW5kisVXa+J06cIAFB+LnjDnOaOVMaPNj79lddJX31Vfn8Aw9Ib71lvl6/Xjr//MDECQColpAYBQvhI5SbXVUm3M4XqJSvFfUVt3P9/0NlPwAEDWpA4JPdu3drwYIF+vXXX92GJpakl19+2aaoAIQFX5OHZs3c510HIiEBAYCgQQICr7766iv16dNHaWlp2rJli84//3z98ssvMgxDF154od3hAQh1rsnDrFnSwIHl81dfXd7sqmJ/NWpAACAo0QQLXo0ePVojR47UTz/9pHr16mnu3LnatWuXevToodtuu83u8ACEOtfkwVOzRE9NsE49dBYAYD8SEHi1adMm3XvvvZKkyMhIFRYWKj4+Xs8884yef/55m6Orgdxc81kBubm2FJ+enq533nnHlrKBWslTAuKploMaEAAISiQg8CouLk5Fpx4C1rRpU+3YscO57o8//rArrJrLzZUmTLAtAQFQTTVNQOgDAgBBiT4g8Kpr165atmyZOnTooOuvv14jR47U+vXrNW/ePHXt2tXu8ACEOmpAACCkkIDAq5dffllHjhyRJI0fP15HjhzRBx98oNatWyszM9O+wC6+WNq717dtS0rMSZJOPVNEf/6zFBVlvo6IMCdfpKZKq1dXL1YgnCxaJPXtaz5pvDJ160rvvms+48MXviYgkyebU2U2bza/MwAAtiMBgVfnnnuu83VsbKxee+01G6NxsXevtGdPzfc/fNh/sXgwadIkTZo0yTlfWFioFStWKCMjw7ns888/V/fu3S2JBwi4lSurTj4kqbhY+uYb/ycgnrg0HQUA2IsEBNVy5MgRlVYYTSYxMdGeYFJTfd+2Yg3I4cNS/fo1rwGphiFDhqhfv37O+f79++uWW25R3759ncuaVXx+AYBy/khAAABBgwQEXuXk5CgjI0NZWVk6fvy4c7lhGHI4HCopu7C3Wk2bQf3wg3TRReazAyx4jklycrKSk5Od8zExMUpJSVHr1q0DXjZgmUWLpGefldaskY4d8779669L77wjnXeeNGqU59qQyhKQOXOkiROlDRt8i2/8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\n",
"text/plain": [
"<IPython.core.display.Image object>"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Image(os.path.join(outputdir, 'jund_input_outout_line.png'))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Illustration of input feature importance discovered by integrated gradients. The site in the center which is highlighted as being important closely resembles as JunD binding motif."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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xNS4D28ZgwhYDjDGaNy4cfr444+1YsWK04YZz8eVlpbWun39+vUKCQlx34rh+++/14YNG9xfzz33nCIiIrRhwwYNGTLE8tiQkBCdf/75qqio0OLFizVo0KBa+yktLVV2drYSEhIkSSkpKYqPj9fy5cvdbcrKyrRq1SpdddVV9To2AEDjaKwxqLY2J8cOSbryyistY4ckLVu2TL1791ZgYGCN+/CaMcixuTMf9tBDD5moqCizcuVKk5+f7/46evSoMcaYvLw8k5aWZtatW2d27NhhVq9ebQYNGmRatmxp9u7da4wxZsmSJeaNN94wGzduNLm5uWb+/PkmMjLSjB8/vtZ+azpFuGbNGrN48WKTl5dn/vWvf5nrrrvOpKSkmIMHD7rbTJo0yaxcudJs3brVrFmzxgwcONBERESY7du3u9tMnz7dREVFmY8//ths3LjRDB8+3CQkJJiioiI7nzoAwDlqrDEoIyPDvP/++yYrK8vk5OSYl156yQQGBppZs2a522zdutWEhYWZRx991GRlZZkFCxaYwMBAs2jRIncbbx2DCFgOkFTjV3p6ujHGmN27d5ubb77ZxMXFmcDAQJOUlGTuvvtuk5OT497HP//5T9OjRw8THh5uwsLCTNeuXc1f//pXU15eXmu/NQWslStXmi5dupjg4GATExNj7rnnHrN7925Lm7vuusskJCSYwMBAk5iYaIYOHWp+/vlnS5uqqiozZcoUEx8fb4KDg80111xjNm7ceI7PFADAbo01BmVkZJguXbqYsLAwExERYXr16mXefffdavWsXLnS9OzZ0wQFBZm2bdua1157zbLdW8cglzHGODN3BgAA0DxxDRYAAIDNCFgAAAA2I2ABAADYjIAFAABgMwIWAACAzQhYAAAANiNgAQAA2IyABQAAYDMCFgAAgM0IWAAAADYjYAEAANgswOkCAABoziorK1VeXu50GQ0qMDBQ/v7+TpfRpBCwAABoAMYYFRQU6NChQ06X0iiio6MVHx8vl8vldClNAgELAIAGcDJcxcXFKSwsrNkGD2OMjh49qsLCQklSQkKCwxU1DQQsAABsVllZ6Q5XMTExTpfT4EJDQyVJhYWFiouL43ShuMgdAADbnbzmKiwszOFKGs/JY23u15vVFwELAIAG0lxPC9bEl461PjhFWE/GGBUXFysiIsIrX0RVVVXas2eP19YPAN6krKxMVVVVqqysVGVlpdPlNIrKykpVVVXpyJEjKisrs2w7OYYmJibKz8835nYIWPVUXFysqKgoHT58WJGRkU6Xc8b27Nmj5ORkp8sAAJ/Qpk0bzZs3T8eOHXO6lEa1b98+3XrrrdqxY0eN23fu3KmkpKRGrsoZBCwfERERIenEi9sbAyKah3l5f3B//2D7dOU9+Nty+3npTpQENIiysjLt3btXbdu2VUhIiGXbtvtHNGotKQveP6vHrV69Wv369VP//v315Zdf1tn++PHj2r59u9atW6egoCDLtqKiIiUnJ7vHIl9AwPIRJ08LRkZGErDgmJCIQPf3kZGRigiyLgPNxfHjx/Xrr7/K39/f8XfUnW3/b7/9th555BG9+eab2r17ty644II6+/Hz81N4eHi1UHmSL12i4hsnQgEAQL2VlJToww8/1EMPPaSBAwcqIyPD6ZK8DgELAABYfPDBB+rcubM6d+6skSNHKj09XcYYp8vyKgQsAABgsWDBAo0cOVKSdNNNN+nIkSP6+uuvHa7KuxCwAACA26ZNm7R27VqlpqZKkgICAnTXXXfprbfecrgy78JF7gAAwG3BggWqqKjQ+eef715njFFgYKAOHjyo8847z8HqvAczWAAAQJJUUVGhd955RzNnztSGDRvcXz/99JPatGmj998/u1s++CJmsADU6J3UXPf39y7s4GAlABrL559/roMHD+r+++9XVFSUZdsdd9yhBQsWaNy4cQ5V512YwQIAAJJOnB7s379/tXAlScOGDdOGDRv0448/OlCZ92EGCwCARtQhY6HTJdTqH//4R63bLrnkEm7VcAaYwQIAALAZAQsAAMBmBCwAAACbEbAAAABsRsACAACwGQELAADAZgQsAAAAm3EfLAC2Sf3fb3d/X9iVu78D8F3MYAEAANiMgAUAAGAzThECANCIZuemNmp/4zuc3UfzFBQU6MUXX9QXX3yh3bt3Ky4uTj169NCECRN0/fXX21xl80PAAgAAFtu3b1efPn0UHR2tGTNm6OKLL1Z5ebmWLl2qhx9+WDk5OU6X2OQRsAAAgMXYsWPlcrm0du1atWjRwr3+oosu0ujRox2szHtwDRYAAHA7cOCAMjMz9fDDD1vC1UnR0dEOVOV9CFgAAMAtNzdXxhhdeOGFTpfi1QhYAADAzRgjSXK5XA5X4t0IWAAknbhJ6MkvAL6rY8eOcrlcys7OdroUr0bAAgAAbi1bttSAAQP0yiuvqKSkpNr2Q4cOOVCV9yFgAQAAi1dffVWVlZW67LLLtHjxYm3ZskXZ2dmaPXu2rrzySqfL8wrcpgEAAFikpKToxx9/1IsvvqhJkyYpPz9fsbGx6tWrl1577TWny/MKBCwAABrR2d5ZvbElJCRo7ty5mjt3rtOleCVOEQIAANiMgAUAAGAzAhYAAIDNCFgAAAA2I2ABAADYjIAFAABgM68MWBkZGXyaNwAAaLLOOWBt375dLpdLGzZssKwfNWqUBg8efK67BwAA8DqOz2CVl5c7XQIAAICt6hWwMjMz1bdvX0VHRysmJkYDBw5UXl6epBO305eknj17yuVyqV+/fpo6darefvttffbZZ3K5XHK5XFq5cqV7tuvDDz9Uv379FBISovfee6/O/jMyMnTBBRcoLCxMQ4YM0f79+y3bp06dqh49eujdd99V27ZtFRUVpdTUVBUXF9frGAAAAOxUr4/KKSkp0cSJE9WtWzeVlJTomWee0ZAhQ7RhwwatXbtWl112mb766itddNFFCgoKUlBQkLKzs1VUVKT09HRJJz6de8+ePZKkJ554QjNnzlR6erqCg4NP2/e///1vjR49WmlpaRo6dKgyMzM1ZcqUau3y8vL06aef6vPPP9fBgwd15513avr06XrxxRfrPAY/v+o5s7S0VKWlpe7loqKi+jxVgM/IHZVqWe6Q4R0f/wE4LfV/uY3a38KuHc7qcQUFBZo2bZq++OIL7dq1S1FRUerYsaNGjhype++9V2FhYTZX2rzUK2ANGzbMsrxgwQLFxcUpKytLsbGxkqSYmBjFx8e724SGhqq0tNSy7qQJEyZo6NCh9Srwb3/7mwYMGKAnn3xSktSpUyetXr1amZmZlnZVVVXKyMhQRESEJOmee+7R119/7Q5YpzuGrl27Vut32rRpevbZZ+tVIwAAzcnWrVvVp08fRUdHKy0tTd26dVNFRYU2b96st956S4mJibr99tudLrNJq9cpwry8PN19991q166dIiMj3acFf/nll7PqtHfv3vVum52drSuvvNKyznNZktq2besOV9KJD6ksLCx0L5/pMTz11FM6fPiw+2vnzp31rhkAAG82duxYBQQEaN26dbrzzjvVpUsXdevWTcOGDdMXX3yh2267zekSm7x6zWDddttt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\n",
"text/plain": [
"<IPython.core.display.Image object>"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Image(os.path.join(outputdir, 'jund_input_attribution_dna.png'))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The overall performances using only the DNA sequence as input shows that the use of higher order features improves the prediction quality."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"results = os.path.join(outputdir, 'dna_gridsearch_5.tsv')"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n"
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%%R -i results\n",
"\n",
"dna = read.table(results)\n",
"#print(aggregate(dna[,2], list(dna[,3], dna[,4]), median))\n",
"\n",
"g1 = ggplot(subset(dna, dropout==0.0), aes(x=as.factor(order), y=auprc_val)) + geom_boxplot() + xlab(\"Order of sequence features\") + ylab(\"auPRC\") + theme_bw() +labs(tag=\"A\")\n",
"print(g1)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"figure = os.path.join(outputdir, 'dna_gridsearch.png')\n",
"\n",
"%R -i figure ggsave(figure, height=4, width=3)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Furthermore, by using a dropout at the initial layer a slight performance improvement is obtained from tri-nucleotide based sequence encoding."
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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UdAAICkKGgAkRUEDgKQoaACQFNfiQKfy2ysH2i0Ws1MAHYOCRqcSbbOZHQHoMBziAABJUdAAICkKGgAkRUEDgKQoaACQFAUNAJKioAFAUhQ0AEiKggYASVHQACApChoAJEVBA4CkKGgAkBQFDQCSoqABQFIUNABIioIGAElR0AAgKV1ueRUIBNavX19XV5eamrpgwYLmPzpw4MC77767YsWKC4wBAAid9qD37NmTnJy8evXqU6dOnTx5sml5Q0PD5s2bNU27wBgAQJAuBV1aWup2u4UQbre7tLS0afmmTZumT59+4TEAgCBdDnE0NDT07NlTCJGQkFBXVxdcuHfv3l69eqWmpl5gzNatW/fs2SOE6NatW21trR7ZDKCqqqIo4ZvfdIFAQFEUv99vdpBwpWlafX292SnaL/gmG0Kngna5XFVVVW63u6qqKikpKbhw69atTqfzwIEDJ06cePPNN9sc079/f1VVhRBHjx51OBx6ZDNAIBDQNC1885tOURSbzcYL2G4+n89ut1ssFrODtFP4Ju9wuhR0Wlra8ePHs7KyysrKsrOzgwsfe+wxIcSZM2eKioomTJjwwQcftB6TmZmZmZkphCgsLHQ6nXpkM4DX61VVNXzzm87v9zscDl7Adquvr4+MjLRaOUcr7OnyJxw9enR5efnjjz+elJSUkpJSUlKybt26C4/RIwYAhDVd9qDtdvvy5cubng4cOHDIkCHBx0lJSffff3/rMQCAFox4E+T1enNycgyYCAA6E132oFtwuVwGzAIAnQwfIwCApChoAJAUBQ0AkqKgAUBSFDQASIqCBgBJUdAAICkKGgAkRUEDgKQoaACQFAUNAJKioAFAUhQ0AEiKggYASVHQACApChoAJEVBA4CkKGgAkBQFDQCSoqABhD2v12uxWK644orevXv36dNn8eLFdXV1Os1VVVU1ZMgQ/cY3R0ED6CROnTp1+vTpo0ePRkZGLliwoGm5oihnz57Ve3Y9ZqGgAXQqUVFRa9euff/998vLy3ft2jVr1qyMjIxnnnlGCLFmzZpBgwalpaU9+uijQoinn376vvvumzFjxvjx4++66y6fz9d6zPbt2xcuXBjc8sKFC7dv33733XeXlZUtXbq0acbms2iadu+99/bp02fo0KHLly/XNK35+F//+tdutzs9PX3NmjWX8rvYO/i1AQCzRUZGXnXV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\n"
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%%R\n",
"g1 = ggplot(dna, aes(x=as.factor(order), y=auprc_val, color=as.factor(dropout))) + \n",
" geom_boxplot() + xlab(\"Order of sequence features\") + \n",
" ylab(\"auPRC\") + guides(color=guide_legend(title=\"Dropout rate\")) + \n",
" theme_bw() + labs(tag=\"A\")\n",
"print(g1)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"figure = os.path.join(outputdir, 'dna_gridsearch_drop.png')\n",
"%R -i figure ggsave(figure, height=4, width=3)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Next, we explore the JunD predictions when only DNase-seq coverage is used as input. In particular, we investigate the effect of data normalization and augmentation."
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [],
"source": [
"dnaseresults = os.path.join(outputdir, \"dnase_gridsearch_7.tsv\")"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [],
"source": [
"%%R -i dnaseresults\n",
"\n",
"dnase = read.table(dnaseresults, stringsAsFactors = F)\n",
"dnase$augment[dnase$augment==\"orient\"] = \"Flip orientation\"\n",
"dnase$augment[dnase$augment==\"none\"] = \"None\"\n",
"dnase$normalize[dnase$normalize==\"tpm\"] = \"TPM\"\n",
"dnase$normalize[dnase$normalize==\"none\"] = \"None\"\n",
"dnase$normalize[dnase$normalize==\"zscorelog\"] = \"Z-score of log-counts\"\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Data normalization using transcripts-per-million (TPM) or Z-Score after log-transformation of the counts both improve the prediction accuracy considerably compared to not using normalization.\n",
"Furthermore, data augmentation by flipping 5' to 3' orientations of the coverage tracks further improves the results."
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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UVFDhgxxTUxJSfH39xdChIeHjxgxQggRExNTUlLi+lWRnp4uhMjLy9u1a1fXrl1TUlJCQkKEEBaLxa3Rt2zZMmXKFLPZLISYNGnSli1bbr/99kv1dins4gDgHbW1tYcOHerevfv27dtTU1MPHz48ZsyYxMTE+m2u7CUhRGFhoRDC4XDodL+mnNFodD3Q6/V1zeo/NpvNv/3tbzdt2rRp06b9+/e/+uqrQojQ0NBGi296dCGEqqqKorgeK4riOo32Ur1dCgENwAtqa2uffvrpQYMGde7cOSsr64477pgzZ05kZOThw4dtNpsQwm63CyEafcnl4pdMJtOBAwecTmdhYeGWLVuEEEOHDl2xYoXD4Th37ty3337bdEkjRoxYtWpVeXm5zWa79dZbP//880abNVGY6yWXoUOHrly5sqamprq6euXKlampqVewlNwLaKfTmZ+f73r85ZdfXuoQGQC4lOjo6C5dulgslvLy8uXLlwshJk6cuGfPnptuuunJJ5+cMWPGggULgoODg4ODp02bdvFLdf1c/NLNN9/cvXv3hISERx555IknnggMDLz//vu7dOly3XXX3X///ePHjw8ODm60JJ1OZzAYkpKSpkyZkpSUFBcX17dv3/Hjx1/cponC6l5ytb/99ttTU1N79+7du3fv0aNHu3Z/N+jt8gtLbbajR4927959/vz5rqfDhw+Pjo7eu3dv83tovoyMjKvvpPaDd+3bv7v6fppg/ePLjuNHz507t7+svNO2HzUd69NzRUP27NN0CO2UlZVVV1d7uwqp1dTUlJaWersKNwwbNiwnJ8fbVVzGd9999+6776qqarfbU1NTjx8/7u2K3OPGFvRjjz02e/bs559/3vV08+bNr7766pNPPtn8HgDAk3r16vXJJ58kJSUlJyenpaXFxsZ6uyL3uHEUx08//fTJJ5/Un3LPPffMmTOnpUsCgJYREhLyxRdfeLuKK+fGFnTHjh3rvg91qa6u5gKSAKARNwL6tttue+6555xOp+upqqrz5s0bOXKkNoUBQFvnxi6OhQsX3nPPPT169Bg0aJBer9++fXtYWNhXX32lXXEA0Ja5EdAmk+mLL7746aeffvrpp9ra2kmTJg0dOlS7ygCgjXPvVO+ampouXbrcdNNNrqcOh+P7778npgFAC27sg165cmVwcPC1117bv3//7du3JyQkmEym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BQU98cQTmzdvPnnypNFoLCwsfOqpp2pra5csWWKz2cLCwh577DEORRJC6HQ6p9MphBgwYMCOHTt69ep14sSJuLi44uJib5fWuNOnT2dlZS1evLhuyrFjxz7++GOHw3HTTTelpKQsW7ZMCBEbG5uWltZgZfj5559NJtODDz548Wpw8Zpz4sSJwYMH12V0gwalpaUZGRlGo7Gmpuauu+7q16+fq1lpaemlCli3bt0111zTr1+/1atX9+nTJzc3t/7KmZWVlZ+fHx4e/sMPP7jey2233ebphYvm0S9YsMDbNfiAnJwcm82WkpKycePGG264YdeuXWfPnr3hhhsmT568f/9+p9NptVqrqqqmTZuWm5srhNi+fXtCQsKUKVNOnz5dVFTUtWtXb78Dj9q6dWtSUpLZbD5//vzatWv37Nnz5Zdf1tbWTpw4MS8vz9/f/8iRI6mpqRs2bOjbt292dnbdrz15OBwO198BkZGRdRM3bNjQp0+f++67Lz8//4cffhg4cOB99923e/fuQ4cOJSYm1l8ZqqurZ8yY8dlnn128Gnz88cf115wePXro9fqbb75ZCHH8+HF/f/8ff/yxfoNvv/122LBh6enpW7du7d69e1RUlKuYVatWXaqAysrKdu3aRUVFHThwoFOnTmVlZfVXTovFEhgYWFxcXPde2tr66UPYsnNDv379ioqKTpw4IYTIz8/v3r27EOK6667Lz88XQlgsFiFEQECAw+E4c+bMtm3bli1bVlBQEBgY6N2yvatv374LFix47bXXXnjhBT8/P9fEbt26nTp16uTJk926dfNueZfywQcf9OvXz/URZ2VlLV26dOfOnaNGjdq5c+eCBQuMRmNeXl5cXJwQYtq0acXFxQ1WBtfTRleDi9ecBho0qBvI9f+6YpouwMX1J4v495XTNaX+e9Fg+aFlENDumT59+ooVK4QQkZGRx48fF0JkZ2d36tRJCFH/tNeoqKibbrrpscce69u3b90mD+okJyd//vnnkZGRcp4rfPjw4f37999zzz2upyNHjpw5c+aAAQMOHDgwefLkefPm/fWvf42MjDx58qQQYvny5YGBgQ1WBoPBIC6xGly85jTQoEFkZKRrm8A1XF0xTRSg0+kqKiqEEEeOHHH12WA5q6pa/720+AJES2EftHs6d+7ct2/f/Pz8O++8MyMj4/vvvw8ICOjfv//mzZtdDYxGo9lsTktLe/XVV3fu3NmxY0e+lL9YfHz8H/7wh9mzZ3u7kMatWrWqpqbmxRdfdD2dPXt2hw4dhBDt27d/6623TCZT//79b7311jfffPOrr76Kjo6eOHFioytDo6tBgzXn6NGjDUZv0CA2NjYzMzMrK0tRlPrnQ40bN+5SBZw/f37JkiU//PBDx44d628gu1bOdu3avf/++0OHDq17L9otSVwlTlQBpLZnzx6HwxEbG7t06dK6XxVoIwhoQGpWq3XTpk15eXkDBgzo06ePt8uBRxHQACApviQEAEkR0AAgKQIaACRFQEMIIQ4ePKgoyjfffFM3pVu3boWFhS04xObNm++77741a9YkJSU1p31xcXHPnj2FEM2fBWhlCGj8Kjg4+OGHH66urm5OY4fDcf78+SsYJS0t7aOPPtJ6FqB1IKDxq7i4uFtuueX5559vMH3BggVxcXHx8fEvvPCCEGLbtm3p6em9e/f+85//vG3btrFjx06fPn3w4MFPP/303Llzx44dm5aWZrVaVVV9/PHHO3fu3KtXr1mzZtUdLLRv376nnnpq1apViYmJiYmJFoulR48eQoiL2z/66KM5OTkzZsxwzdJoJZMmTZo7d+64cePS09MrKys9urwAD1ABVT1w4EC/fv0uXLjQtWvXPXv2qKratWvXgoKCdevWJScnV1ZWVlZW9u/ff+PGjd9//32HDh1OnDihqur3338fHh5eU1NTWVlpMpnWr1+vquq4cePWrVu3f//+UaNG1dbW1tbWxsfHHzlyJCsr69577/3+++8nTJjgGtRutw8bNmzt2rWqql7cvqioqEePHq5RJkyY0GglAQEB58+fV1X1zjvv/Oyzz7y19ACNsAWN/9O+ffulS5c++OCDdZfU2bJly5QpU8xms9lsnjRpkusy9gMHDnRdfEcIkZKS4u/vbzabw8PDXddQjomJKSkpSUhIeP/99zdt2vTSSy8VFBTU1NRcPNzcuXP79u179913CyEu277RSlJSUlyXk7ZYLI0OAfg0Ahr/5s4774yNjf3jH//oeqqqat11dhRFcQV3/evz6fX6Rh9v3749NTX18OHDY8aMSUxMvHigNWvW/PTTTy+//HIz2zdaSWho6FW8V0B2BDQaysjIWLJkies7wKFDh65cubKmpqa6unrlypWpqanN7CQrK+uOO+6YM2dOZGTk4cOHbTZb/VcPHDgwf/78NWvWuK76dqn2dru9bpYrrgTwXQQ0GoqMjHzxxRfLysqEELfffntqamrv3r179+49evTotLS0y86u0+kMBsPEiRP37Nlz0003PfnkkzNmzGhwX4jf//735eXlt99+e1JSUlJSksPhuLh9cHBwcHDwtGnTXLM0XYlr0BZbBIAcuBYHAEiKLWgAkBQBDQCSIqABQFIENABIioAGAEkR0AAgKQIaACT1/wGksbL1XmthuwAAAABJRU5ErkJggg==\n"
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%%R\n",
"g2=ggplot(subset(dnase, normalize!=\"zscore\"), aes(x=normalize, y=auprc_test, color=augment)) + \n",
" geom_boxplot() + xlab(\"Normalization\") + \n",
" ylab(\"auPRC\") + \n",
" guides(color=guide_legend(title=\"Data augmentation\")) + theme_bw() + labs(tag=\"B\")\n",
"print(g2)"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [],
"source": [
"figure = os.path.join(outputdir, \"dnase_gridsearch.png\")\n",
"%R -i figure ggsave(figure, height=4, width=6)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Finally, we use a model that takes DNA and DNase-seq as input for the prediction of JunD. This model obtains superior performance compared to using either input separately for the prediction."
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [],
"source": [
"randres = os.path.join(outputdir, \"dnase_dna_use_randominit_submodels.tsv\")"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>auprc_val</th>\n",
" <th>auprc_test</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0.693194</td>\n",
" <td>0.675581</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.709087</td>\n",
" <td>0.702321</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0.693212</td>\n",
" <td>0.672333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0.681510</td>\n",
" <td>0.672720</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0.703246</td>\n",
" <td>0.693258</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" auprc_val auprc_test\n",
"0 0.693194 0.675581\n",
"1 0.709087 0.702321\n",
"2 0.693212 0.672333\n",
"3 0.681510 0.672720\n",
"4 0.703246 0.693258"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%R -i randres df = read.table(randres, stringsAsFactors = F)"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAeAAAAHgCAMAAABKCk6nAAACkVBMVEUAAAACAgIEBAQHBwcICAgJCQkNDQ0PDw8RERESEhITExMUFBQVFRUWFhYXFxcYGBgZGRkcHBwdHR0eHh4fHx8hISEiIiIjIyMkJCQlJSUmJiYnJycoKCgpKSkqKiorKyswMDAzMzM0NDQ1NTU2NjY3Nzc4ODg7Ozs8PDw9PT0+Pj5BQUFCQkJDQ0NERERFRUVGRkZHR0dISEhJSUlKSkpMTExNTU1OTk5PT09QUFBRUVFSUlJTU1NUVFRVVVVWVlZYWFhaWlpbW1tgYGBhYWFiYmJkZGRlZWVmZmZnZ2doaGhpaWlqampra2tsbGxtbW1ubm5vb29wcHBxcXFycnJzc3N0dHR1dXV2dnZ3d3d4eHh5eXl6enp8fHx9fX1+fn5/f3+AgICBgYGCgoKDg4OEhISFhYWGhoaHh4eIiIiJiYmKioqLi4uMjIyNjY2Ojo6Pj4+QkJCRkZGSkpKTk5OUlJSVlZWWlpaXl5eYmJiZmZmampqbm5udnZ2enp6fn5+goKChoaGjo6OkpKSlpaWmpqanp6eoqKipqamqqqqrq6usrKytra2urq6vr6+wsLCxsbGysrKzs7O0tLS1tbW2tra3t7e4uLi5ubm6urq7u7u8vLy9vb2+vr6/v7/AwMDBwcHCwsLDw8PExMTFxcXGxsbHx8fIyMjJycnKysrLy8vMzMzNzc3Ozs7Q0NDR0dHS0tLT09PV1dXW1tbX19fY2NjZ2dna2trb29vc3Nzd3d3e3t7g4ODh4eHi4uLj4+Pk5OTl5eXm5ubn5+fo6Ojp6enq6urr6+vt7e3u7u7v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn6+vr7+/v8/Pz9/f3+/v7////AhdfAAAALzklEQVR4nO3djXMV1R2HcaqlVm1tgVZFqhQL1SrVqghq6yvUWq0CEoMg8mpBSIUEpArWEKU1gEYbReVFsUBfjG9oralaxVIIVZtASExucv6a7r2byM+Ms2aYPbv3fH0+M7m7c2ZP5sw+s5u7NzPJEAdpQ/JeAPwisDgCiyOwOAKLI7C4/sD/uGr4iRNez3Up8KEv8N9OmP3anhtO3pfvYpC+vsDnzCq+jl2Q51LgQxz4n0P2Fzd73851LfAgDrz56zkvA77EgRu+mfMy4Esc+PUhHxc3f/xVrmuBB3HgwqhFxc3FP891LfCg7130M0PnvtE8e+hb+S4G6ev/oKNpwiknXdiU61LgAx9VijuWwA+vklNdk/cKPPjkWAOvOoY5Za61M+8VpK5nzKHihsAlBLYIHAICWwS2CBwCAlsEtggcAgJbBLYIHAICWwS2CBwCAlsEtggcAgJbBLYIHAICWwS2CBwCAlsEtgQDHziU9wpSR2Br6uN5ryB1BLYIbBE4BAS2CGwROAQEtghsETgEBLYIbBE4BAS2CGwROAQEtghsETgEBLYIbBE4BAS2CGwROAQEtghsETgEBLYIbBE4BAS2CGwROAQEtghsETgEBLa+rIG7ly9cF202VVbeWNu37wgchkEF3vWIW/JBaW/1/qP7BA7BoALXvujqny/uvP/g0X0CB2FQgVe/67Y1FneWt/Xv71i1aslhObdszHsFqWsb1BXcFF+1h3/96T6BAzGowLs2uqq90fZPjUf3uUWHYXDvoqur6lxzjbtnb99+CYFDMPjn4MKWAQMEDsHgA7d3DBggcAj4JMsisEXgEBDYIrBF4BAQ2CKwReAQENgisEXgEBDYIrBF4BAQ2CKwReAQENgisEXgEBDYIrBF4BAQ2CKwReAQENgisEXgEBDYIrBF4BAQ2CKwReAQENgisEXgEBDYIrBF4BAQ2CKwReAQENgisEXgEBDYIrBF4BAQ2CKwReAQENgisEXgEBDYIrBF4BAQ2CKwReAQENgisEXgEBDYIrBF4BAQ2CKwReAQENgisEXgEBDYIrBF4BAQ2CKwReAQENgisEXgEBDYIrBF4BAQ2CKwtSLvf42bvi/r/w/+fFzBIeAWbRHYInAICGwR2CJwCAhsEdgicAgIbBHYInAICGwR2CJwCAhsEdgicAgIbBHYInAICGwR2CJwCAhsEdgicAgIbBHYInAIyifw+2/mb8p9ea8g8lGqp7VsAveOnTgJkQvuSPW8lk/gMa2pfr9gNcxM9dsRuNwQWByBxRFYHIHFEVgcgcURWByBxRFYHIHFEVgcgcURWByBxRFYHIHFEVgcgcURWByBxRFYHIHFEVgcgcURWByBxRFYHIHFEVgcgcURWByBxRFYHIHFEVgcgcXlEbh7+cJ10aZ37V0re9vm3f5gPEpgL/IIvOsRt+QD55rWu537/7DVLXuvNEpgL/IIXPuiq3/eubqHVm5xK95xDdtKowT2Io/Aq9912xqjzbKWRa8+/sCB255w7u4xY+b+N00HCRxrmJbqeW0Z1BXcVLqC173idmzqrq+pec65jtbWlb1p6iFwrGFmque1MKifwRtd1d5os8HV7vz7m27pf0qj3KK9yOVddHVVnWuu6V56R1Wh/e4lm+JRAnuR23NwYcuAAQJ7kVvg9o4BAwT2gk+yxBFYHIHFEVgcgcURWByBxRFYHIHFEVgcgcURWFxGgXv2Odd4KHEqgb3IJnDzGfOcGz98T9JUAnuRTeAL7y++bvhx0lQCe5FN4BPju/OwpKkE9iKbwKPai69HTk+aSmAvsgl86/Se6JzfdmPSVAJ7kU3gjokjp1w/+ry2pKkE9iKr5+CX1977QvJUAnuRUeCOA9FLITExgb3IJvDDxx//g7+MPm540lQCe5FN4BFbC2u+srkncSqBvcgm8DeiZ6STvmAqgb3IJvC3+r6SENiLbAKf0tnZWfxKmkpgL7IJfFyfpKkE9oLfB4vLJvD+m8bP+PgLphLYi4x+XTip7vxrv2Aqgb3IJvAJ/3P/SvyUwxHYEx6TxGX0mFQoFIpfSVMJ7EU2gYf0SZpKYC94TBKXVeCninYkTSWwF1kFnjx58iVDZyVNJbAXWd6iD1yRNJXAXmQZuOespKkE9iLDW/TksxM/zCKwF1m+ydo+8G+ffQaBvcgqcO9br7320qVJUwnsRVaBp4/82nknL0iaSmAvsgp8Zte8l96/Mmkqgb3IKvC3u55a7sYkTSWwF1kFvvmig2fNuihpKoG9yOxN1hvuz4veSZpKYC/4ZYM4AosjsDgCiyOwOAKLI7A4AosjsDgCiyOwOAKLK5/AKw6n6RCBYw0zUj2vbVzBZaZ8rmACe0FgcQQWR2BxBBZHYHEEFkdgcQQWR2BxBBZHYHEEFkdgcQQWR2BxBBZHYHEEFkdgcQQWR2BxBBZHYHEEFkdgcQQWR2BxBBZHYHEEFkdgcQQWR2BxBBZHYHEEFkdgcQQWR2BxBBZHYHEEFkdgcQQWR2BxBBZHYHEEFkdgcQQWR2BxBBZHYHEEFkdgcQQWR2BxBBZHYHF5BO5evnBdtOlde9fK3va5c6p7S6ME9iKPwLsecUs+cK5pvdu5/9nH3Irm0iiBvcgjcO2Lrv555+oeWrnFvVL90ZwW5/5aV7f0SJraCRxrqEj1vB4eTODV77ptjdFmWcuiV1unzp7X5dwzixcvPpSmNgLHGmakel5bB3UFN5Wu4HWvuB2bfveSe2xraZRbtBe5/Aze6Kr2RpsNrnbnfU1u09OlUQJ7kcu76OqqOtdc0730jqpCy5y5iztLowT2Irfn4MKWAQME9iK3wO0dAwYI7AWfZIkjsDgCiyOwOAKLI7A4AosjsDgCiyOwOAKLI7A4AosjsDgCiyOwOAKLI7A4AosjsDgCiyOwOAKLI7A4AosjsDgCiyOwOAKLI7A4AosjsDgCiyOwOAKLI7A4AosjsDgCiyOwOAKLI7A4AosjsDgCiyOwOAKLI7A4AosjsDjdwL+4CZGfTUv1vJZRYMRuTvW8llHg3z+GyJ0VqZ7XMgrMz+AS3Z/BBC4hsDgCiyOwuPIJXN2RpiMEjjVUpHpe24898MpCmroJHGuoTPW8dnGLLjPlc4smsBcEFkdgcQQWR2BxBBZHYHEEFkdgcQQWR2BxBBZHYHEEFkdgcQQWR2BxBBZHYHEEFkdgcQQWR2BxBBZHYHEEFqcb+K1/I1IrGthNPD9/55yX9woiv0n1tJZP4HIw9fG8V5A6AlsEtggcAgJbBLYEA29/O+8VpI7AVmtn3itIHYEtAlsEDgGBLQJbBA4BgS0CWwQOAYEtAlsEDgGBLQJbBA4BgS0CWwQOAYEtAlsEDgGBLQJbBA4BgS0CW7+cJWdqRd4rSN3tYw4fa+Ctef8bx/RdsyDvFaRvizvWwIJmPJn3CnwhcMmGPXmvwBcCiyOwOAKLI7A4AosjsDgCiyOwOAKLI7A4AosjsDgCiyOwOAKLUw/cWfG9E3/SPHB0zYLia/3ZA8eX1nz+d+kf335NmmvLhHrgSdPa2347qmfAaBy47b2BRxM4NC+PLLadt8/NP+30hW73ZVPOrZx52SWda647d8Tkjt1X7r5u5hVXH3b3fHfUfNd143fGXlsM+elR8aS+8dIxBC43a6fE280/bG8f++zukzvbv/q0++nmNcMOdk1YEQUe+pGb9MRzZ3/Ydsn6+y/+pGVEKXD/UfGkeDw+hsDl5t7r4+3M+51bNXv3ROeGfeJuXb9mWtT88ijweOdurZ972gUXnDn9mkbnKkuB+4+KJ8Xj8TEELjcvjO6NXsc3Vq6JYs/cfXmUrlAMPN25p66KAl9ZDHx3lXOF7mufdG5WKXD/UfGkeDw+hsBl50e3dbiNww49eW7HkXGbjwYefrD70gf6Azd9v61r/KNrL+3+8LTPBI4nxePxMQQuO603nDps/B7n7jxj5Pz+dBX19XPGnXpLdxy44lFXPWpEZfRm6tRxCx5y7uhR8aS+8dIxBEa5IbA4AosjsDgCiyOwOAKLI7C4/wO0YIL9grmjJgAAAABJRU5ErkJggg==\n"
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%%R\n",
"\n",
"df$init = \"\"\n",
"\n",
"g3 <- ggplot(df, aes(x=init, y=auprc_test)) + geom_boxplot() + xlab(\"Combined model\") + ylab(\"auPRC\") + theme_bw() + labs(tag=\"C\")\n",
"\n",
"print(g3)"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [],
"source": [
"figure = os.path.join(outputdir, \"dna_dnase_joint.png\")\n",
"%R -i figure ggsave(figure, height=4, width=2)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"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.7.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}