Skip to content
Permalink
master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
{
"cells": [
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import plotly.graph_objects as go"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"filename = \"/home/annaldas/projects/nanopore-transcriptome-analysis/Results/Quantification/all_counts.txt\"\n",
"df = pd.read_csv(filename)"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" gene_name transcript_id ref_transcript day0_mean day2_mean \\\n",
"45283 FUS TCONS_00022528 ENST00000254108.11 10.891607 11.354667 \n",
"53160 FUS TCONS_00022529 ENST00000566605.5 15.654159 11.541459 \n",
"68181 FUS TCONS_00022530 ENST00000254108.11 97.572148 87.546613 \n",
"55151 FUS TCONS_00022531 ENST00000254108.11 63.516391 55.527179 \n",
"58630 FUS TCONS_00022532 ENST00000487509.6 57.942667 51.928751 \n",
"64460 FUS TCONS_00022533 ENST00000254108.11 8.871710 6.454700 \n",
"47855 FUS TCONS_00022534 ENST00000487045.6 4.070888 3.308153 \n",
"84426 FUS TCONS_00022535 ENST00000487509.6 12.894761 10.788811 \n",
"36211 FUS TCONS_00022536 ENST00000254108.11 11.188364 10.819943 \n",
"35581 FUS TCONS_00023974 ENST00000254108.11 0.725150 0.432175 \n",
"9268 FUS TCONS_00023975 ENST00000254108.11 0.287190 0.282928 \n",
"\n",
" day4_mean day0_sd day2_sd day4_sd \n",
"45283 10.211911 3.999048 3.868530 0.867681 \n",
"53160 9.675058 2.156231 7.263666 0.777810 \n",
"68181 90.676303 33.815979 55.730532 24.316433 \n",
"55151 54.889085 29.915167 27.454167 1.516111 \n",
"58630 61.626372 3.663766 10.755000 2.199469 \n",
"64460 6.258935 4.851050 3.246356 0.551266 \n",
"47855 5.001417 2.060558 1.169257 1.041997 \n",
"84426 14.019228 1.119973 3.837398 0.082071 \n",
"36211 10.531886 4.870185 4.403254 2.138256 \n",
"35581 0.904308 0.150770 0.164813 0.270801 \n",
"9268 0.810876 0.287190 0.015566 0.139385 \n"
]
}
],
"source": [
"group = df.groupby([\"gene_name\"])\n",
"df_new = pd.DataFrame(columns=[\"gene_name\",\"transcript_id\",\"ref_transcript\",0,1,2,3,4,5])\n",
"\n",
"for key,item in group:\n",
" if (\"FUS\" == key):\n",
" item = item.sort_values(\"transcript_id\")\n",
" \n",
" info = item[[\"gene_name\",\"transcript_id\",\"ref_transcript\"]]\n",
" \n",
" mean0 = np.mean(item[[\"OJ32\",\"OJ40\"]],axis = 1)\n",
" std0 = np.std(item[[\"OJ32\",\"OJ40\"]],axis = 1)\n",
" \n",
" mean2 = np.mean(item[[\"OJ33\",\"OJ41\"]],axis = 1)\n",
" std2 = np.std(item[[\"OJ33\",\"OJ41\"]],axis = 1)\n",
" \n",
" mean4 = np.mean(item[[\"OJ34\",\"OJ42\"]],axis = 1)\n",
" std4 = np.std(item[[\"OJ34\",\"OJ42\"]],axis = 1)\n",
" \n",
" calculate = pd.concat([info,mean0,mean2,mean4,std0,std2,std4], axis = 1)\n",
" \n",
" df_new = pd.concat([df_new,calculate])\n",
"\n",
"df_new = df_new.rename(columns = {0:\"day0_mean\",1:\"day2_mean\",2:\"day4_mean\",3:\"day0_sd\",4:\"day2_sd\",5:\"day4_sd\"})\n",
"\n",
"df_new.to_csv(\"/home/annaldas/projects/nanopore-transcriptome-analysis/Results/Quantification/transcript_stats.csv\", index = None)"
]
},
{
"cell_type": "code",
"execution_count": 161,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7fb420fe4650>"
]
},
"execution_count": 161,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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IiIiIp0xkBERERHpjIGMiIiISGcMZEREREQ6YyAjIiIi0hkDGREREZHOGMiIiIiIdMZARkRERKQzBjIiIiIinekWyJRSRqXU50qp/+3bTlFK/Vkp9Y1S6o9KqRC92kZEREQ0nPTsIVsP4EKP7a0Afi0i0wHYAfxcl1YRERERDTNdAplSKhHAgwB+59tWABYB+HffKfsA/EiPthERERENN716yLYBKAbg8W1PBNAoIi7fdiWAhP5eqJR6Qil1Wil1ura2duhbSkRERDTEhj2QKaUeAlAjImdu5/Ui8oaI5IhITlxc3CC3joiIiGj4mXR4z/sALFNKLQVgBTABwP8EEKWUMvl6yRIBXNOhbURERETDbth7yETkORFJFJFpAFYAOCYijwL4EMCPfaetAlAy3G0jIiIi0sNIqkP2zwB+oZT6Bt45Zbt1bg8RERHRsNBjyFIjIscBHPc9LwcwX8/2EBEREelhJPWQEREREY1LDGREREREOmMgIyIiItIZAxkRERGRzhjIiIiIiHTGQEZERESkMwYyIiIiIp0xkBERERHpjIGMiIiISGcMZEREREQ6YyAjIiIi0hkDGREREZHOGMiIiIiIdMZARkRERKQzBjIiIiIinTGQEREREemMgYyIiIhIZwxkRERERDpjICMiIiLSGQMZERERkc4YyIiIiIh0xkBGREREpDMGMiIiIiKdMZARERER6YyBjIiIiEhnDGREREREOmMgIyIiItIZAxkRERGRzhjIiIiIiHTGQEZERESkMwYyIiIiIp0xkBERERHpjIGMiIiISGcMZEREREQ6YyAjIiIi0hkDGREREZHOGMiIiIiIdMZARkRERKQzBjIiIiIinTGQEREREemMgYyIiIhIZwxkRERERDpjICMiIiLSGQMZERERkc4YyIiIiIh0xkBGREREpDMGMiIiIiKdMZARERER6YyBjIiIiEhnDGREREREOmMgIyIiItIZAxkRERGRzhjIiIiIiHTGQEZERESkMwYyIiIiIp0xkBERERHpjIGMiIiISGcMZEREREQ6YyAjIiIi0hkDGREREZHOGMiIiIiIdMZARkRERKQzBjIiIiIinTGQEREREemMgYyIiIhIZwxkRERERDpjICMiIiLSGQMZERERkc4YyIiIiIh0xkBGREREpDMGMiIiIiKdMZARERER6YyBjIiIiEhnDGRE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\n",
"text/plain": [
"<Figure size 720x720 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"import argparse\n",
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pylab as plt\n",
"from matplotlib.backends.backend_pdf import PdfPages\n",
"import plotly.express as px\n",
"\n",
"fn='/home/annaldas/projects/nanopore-transcriptome-analysis/Results/Quantification/transcript_stats.csv'\n",
"df=pd.read_csv(fn)\n",
"prot=[\"ABI2\",\"BRD4\",\"FUS\"]\n",
"prot.sort()\n",
"df=df[df[\"gene_name\"].isin(prot)]\n",
"c=[\"#25224c\",\"#c7890f\",\"#b4242f\",\"#444036\"]\n",
"\n",
"data=df[df['gene_name']==\"FUS\"]\n",
"\n",
"means=data.iloc[:,3:6]\n",
"stds=data.iloc[:,6:9]\n",
"labels=data.iloc[:,1]\n",
"\n",
"fig, ax = plt.subplots(figsize=(10,10)) \n",
"cur_axes = plt.gca()\n",
"ax.spines['top'].set_visible(False)\n",
"ax.spines['right'].set_visible(False)\n",
"z=data.shape[0]\n",
"\n",
"for j in range(z):\n",
" plt.plot([0,2,4],means.iloc[j,:],label = labels.iloc[j])\n",
" \n",
" #plt.errorbar([0,2,4],stds.iloc[j,:])\n",
" #plt.errorbar(j,means.iloc[j,:],yerr=stds.iloc[j,:],color=c[j],linewidth=2)\n",
" #plt.errorbar(np.arange(0,5),means.iloc[j,:],label=labels.iloc[j])\n",
"plt.xticks(np.arange(0,5,1),['0','1','2','3','4'])\n",
"plt.xlabel('Day')\n",
"plt.ylabel('TPM')\n",
"plt.title(data['gene_name'].iloc[0])\n",
"\n",
"\n",
"ax.legend(loc = \"upper right\",bbox_to_anchor=(2, 2))\n",
"a=plt.axis()\n",
"yl=plt.yticks()\n",
"\n",
"yl=plt.yticks()\n",
"\n",
"plt.legend()\n",
"#plt.tight_layout()\n"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.plotly.v1+json": {
"config": {
"plotlyServerURL": "https://plot.ly"
},
"data": [],
"layout": {
"template": {
"data": {
"bar": [
{
"error_x": {
"color": "#2a3f5f"
},
"error_y": {
"color": "#2a3f5f"
},
"marker": {
"line": {
"color": "#E5ECF6",
"width": 0.5
}
},
"type": "bar"
}
],
"barpolar": [
{
"marker": {
"line": {
"color": "#E5ECF6",
"width": 0.5
}
},
"type": "barpolar"
}
],
"carpet": [
{
"aaxis": {
"endlinecolor": "#2a3f5f",
"gridcolor": "white",
"linecolor": "white",
"minorgridcolor": "white",
"startlinecolor": "#2a3f5f"
},
"baxis": {
"endlinecolor": "#2a3f5f",
"gridcolor": "white",
"linecolor": "white",
"minorgridcolor": "white",
"startlinecolor": "#2a3f5f"
},
"type": "carpet"
}
],
"choropleth": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "choropleth"
}
],
"contour": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "contour"
}
],
"contourcarpet": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "contourcarpet"
}
],
"heatmap": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "heatmap"
}
],
"heatmapgl": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "heatmapgl"
}
],
"histogram": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "histogram"
}
],
"histogram2d": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "histogram2d"
}
],
"histogram2dcontour": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "histogram2dcontour"
}
],
"mesh3d": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "mesh3d"
}
],
"parcoords": [
{
"line": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "parcoords"
}
],
"scatter": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatter"
}
],
"scatter3d": [
{
"line": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatter3d"
}
],
"scattercarpet": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattercarpet"
}
],
"scattergeo": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattergeo"
}
],
"scattergl": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattergl"
}
],
"scattermapbox": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattermapbox"
}
],
"scatterpolar": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterpolar"
}
],
"scatterpolargl": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterpolargl"
}
],
"scatterternary": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterternary"
}
],
"surface": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "surface"
}
],
"table": [
{
"cells": {
"fill": {
"color": "#EBF0F8"
},
"line": {
"color": "white"
}
},
"header": {
"fill": {
"color": "#C8D4E3"
},
"line": {
"color": "white"
}
},
"type": "table"
}
]
},
"layout": {
"annotationdefaults": {
"arrowcolor": "#2a3f5f",
"arrowhead": 0,
"arrowwidth": 1
},
"colorscale": {
"diverging": [
[
0,
"#8e0152"
],
[
0.1,
"#c51b7d"
],
[
0.2,
"#de77ae"
],
[
0.3,
"#f1b6da"
],
[
0.4,
"#fde0ef"
],
[
0.5,
"#f7f7f7"
],
[
0.6,
"#e6f5d0"
],
[
0.7,
"#b8e186"
],
[
0.8,
"#7fbc41"
],
[
0.9,
"#4d9221"
],
[
1,
"#276419"
]
],
"sequential": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"sequentialminus": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
]
},
"colorway": [
"#636efa",
"#EF553B",
"#00cc96",
"#ab63fa",
"#FFA15A",
"#19d3f3",
"#FF6692",
"#B6E880",
"#FF97FF",
"#FECB52"
],
"font": {
"color": "#2a3f5f"
},
"geo": {
"bgcolor": "white",
"lakecolor": "white",
"landcolor": "#E5ECF6",
"showlakes": true,
"showland": true,
"subunitcolor": "white"
},
"hoverlabel": {
"align": "left"
},
"hovermode": "closest",
"mapbox": {
"style": "light"
},
"paper_bgcolor": "white",
"plot_bgcolor": "#E5ECF6",
"polar": {
"angularaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"bgcolor": "#E5ECF6",
"radialaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
}
},
"scene": {
"xaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
},
"yaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
},
"zaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
}
},
"shapedefaults": {
"line": {
"color": "#2a3f5f"
}
},
"ternary": {
"aaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"baxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"bgcolor": "#E5ECF6",
"caxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
}
},
"title": {
"x": 0.05
},
"xaxis": {
"automargin": true,
"gridcolor": "white",
"linecolor": "white",
"ticks": "",
"zerolinecolor": "white",
"zerolinewidth": 2
},
"yaxis": {
"automargin": true,
"gridcolor": "white",
"linecolor": "white",
"ticks": "",
"zerolinecolor": "white",
"zerolinewidth": 2
}
}
}
}
},
"text/html": [
"<div>\n",
" \n",
" \n",
" <div id=\"f7034bcd-329f-4310-bc9b-6106fe8c318b\" class=\"plotly-graph-div\" style=\"height:525px; width:100%;\"></div>\n",
" <script type=\"text/javascript\">\n",
" require([\"plotly\"], function(Plotly) {\n",
" window.PLOTLYENV=window.PLOTLYENV || {};\n",
" \n",
" if (document.getElementById(\"f7034bcd-329f-4310-bc9b-6106fe8c318b\")) {\n",
" Plotly.newPlot(\n",
" 'f7034bcd-329f-4310-bc9b-6106fe8c318b',\n",
" [],\n",
" {\"template\": {\"data\": {\"bar\": [{\"error_x\": {\"color\": \"#2a3f5f\"}, \"error_y\": {\"color\": \"#2a3f5f\"}, \"marker\": {\"line\": {\"color\": \"#E5ECF6\", \"width\": 0.5}}, \"type\": \"bar\"}], \"barpolar\": [{\"marker\": {\"line\": {\"color\": \"#E5ECF6\", \"width\": 0.5}}, \"type\": \"barpolar\"}], \"carpet\": [{\"aaxis\": {\"endlinecolor\": \"#2a3f5f\", \"gridcolor\": \"white\", \"linecolor\": \"white\", \"minorgridcolor\": \"white\", \"startlinecolor\": \"#2a3f5f\"}, \"baxis\": {\"endlinecolor\": \"#2a3f5f\", \"gridcolor\": \"white\", \"linecolor\": \"white\", \"minorgridcolor\": \"white\", \"startlinecolor\": \"#2a3f5f\"}, \"type\": \"carpet\"}], \"choropleth\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"choropleth\"}], \"contour\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"contour\"}], \"contourcarpet\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"contourcarpet\"}], \"heatmap\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"heatmap\"}], \"heatmapgl\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"heatmapgl\"}], \"histogram\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"histogram\"}], \"histogram2d\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"histogram2d\"}], \"histogram2dcontour\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"histogram2dcontour\"}], \"mesh3d\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"mesh3d\"}], \"parcoords\": [{\"line\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"parcoords\"}], \"scatter\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatter\"}], \"scatter3d\": [{\"line\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatter3d\"}], \"scattercarpet\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattercarpet\"}], \"scattergeo\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattergeo\"}], \"scattergl\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattergl\"}], \"scattermapbox\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattermapbox\"}], \"scatterpolar\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterpolar\"}], \"scatterpolargl\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterpolargl\"}], \"scatterternary\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterternary\"}], \"surface\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"surface\"}], \"table\": [{\"cells\": {\"fill\": {\"color\": \"#EBF0F8\"}, \"line\": {\"color\": \"white\"}}, \"header\": {\"fill\": {\"color\": \"#C8D4E3\"}, \"line\": {\"color\": \"white\"}}, \"type\": \"table\"}]}, \"layout\": {\"annotationdefaults\": {\"arrowcolor\": \"#2a3f5f\", \"arrowhead\": 0, \"arrowwidth\": 1}, \"colorscale\": {\"diverging\": [[0, \"#8e0152\"], [0.1, \"#c51b7d\"], [0.2, \"#de77ae\"], [0.3, \"#f1b6da\"], [0.4, \"#fde0ef\"], [0.5, \"#f7f7f7\"], [0.6, \"#e6f5d0\"], [0.7, \"#b8e186\"], [0.8, \"#7fbc41\"], [0.9, \"#4d9221\"], [1, \"#276419\"]], \"sequential\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"sequentialminus\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]]}, \"colorway\": [\"#636efa\", \"#EF553B\", \"#00cc96\", \"#ab63fa\", \"#FFA15A\", \"#19d3f3\", \"#FF6692\", \"#B6E880\", \"#FF97FF\", \"#FECB52\"], \"font\": {\"color\": \"#2a3f5f\"}, \"geo\": {\"bgcolor\": \"white\", \"lakecolor\": \"white\", \"landcolor\": \"#E5ECF6\", \"showlakes\": true, \"showland\": true, \"subunitcolor\": \"white\"}, \"hoverlabel\": {\"align\": \"left\"}, \"hovermode\": \"closest\", \"mapbox\": {\"style\": \"light\"}, \"paper_bgcolor\": \"white\", \"plot_bgcolor\": \"#E5ECF6\", \"polar\": {\"angularaxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}, \"bgcolor\": \"#E5ECF6\", \"radialaxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}}, \"scene\": {\"xaxis\": {\"backgroundcolor\": \"#E5ECF6\", \"gridcolor\": \"white\", \"gridwidth\": 2, \"linecolor\": \"white\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"white\"}, \"yaxis\": {\"backgroundcolor\": \"#E5ECF6\", \"gridcolor\": \"white\", \"gridwidth\": 2, \"linecolor\": \"white\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"white\"}, \"zaxis\": {\"backgroundcolor\": \"#E5ECF6\", \"gridcolor\": \"white\", \"gridwidth\": 2, \"linecolor\": \"white\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"white\"}}, \"shapedefaults\": {\"line\": {\"color\": \"#2a3f5f\"}}, \"ternary\": {\"aaxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}, \"baxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}, \"bgcolor\": \"#E5ECF6\", \"caxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}}, \"title\": {\"x\": 0.05}, \"xaxis\": {\"automargin\": true, \"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\", \"zerolinecolor\": \"white\", \"zerolinewidth\": 2}, \"yaxis\": {\"automargin\": true, \"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\", \"zerolinecolor\": \"white\", \"zerolinewidth\": 2}}}},\n",
" {\"responsive\": true}\n",
" ).then(function(){\n",
" \n",
"var gd = document.getElementById('f7034bcd-329f-4310-bc9b-6106fe8c318b');\n",
"var x = new MutationObserver(function (mutations, observer) {{\n",
" var display = window.getComputedStyle(gd).display;\n",
" if (!display || display === 'none') {{\n",
" console.log([gd, 'removed!']);\n",
" Plotly.purge(gd);\n",
" observer.disconnect();\n",
" }}\n",
"}});\n",
"\n",
"// Listen for the removal of the full notebook cells\n",
"var notebookContainer = gd.closest('#notebook-container');\n",
"if (notebookContainer) {{\n",
" x.observe(notebookContainer, {childList: true});\n",
"}}\n",
"\n",
"// Listen for the clearing of the current output cell\n",
"var outputEl = gd.closest('.output');\n",
"if (outputEl) {{\n",
" x.observe(outputEl, {childList: true});\n",
"}}\n",
"\n",
" })\n",
" };\n",
" });\n",
" </script>\n",
" </div>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"\n",
"\n",
"fn='/home/annaldas/projects/nanopore-transcriptome-analysis/Results/Quantification/transcript_stats.csv'\n",
"df=pd.read_csv(fn)\n",
"prot=[\"ABI2\",\"BRD4\",\"COX20\",\"PUF51\"]\n",
"prot.sort()\n",
"df=df[df[\"gene_name\"].isin(prot)]\n",
"c=[\"#25224c\",\"#c7890f\",\"#b4242f\",\"#444036\"]\n",
"\n",
"data=df[df['gene_name']==\"PUF51\"]\n",
"\n",
"means=data.iloc[:,3:6]\n",
"stds=data.iloc[:,6:9]\n",
"labels=data.iloc[:,1]\n",
"\n",
"z=data.shape[0]\n",
"\n",
"fig = go.Figure()\n",
"\n",
"for j in range(z): \n",
" a = [[0,data.iloc[j][\"day0_mean\"],data.iloc[j][\"day0_sd\"]],[2,data.iloc[j][\"day2_mean\"],data.iloc[j][\"day2_sd\"]],[4,data.iloc[j][\"day4_mean\"],data.iloc[j][\"day4_sd\"]]] \n",
" d = pd.DataFrame(a, columns = ['Day', 'TPM', 'SD']) \n",
" fig.add_trace(go.Scatter(x=d[\"Day\"],y=d[\"TPM\"],name = data.iloc[j][\"transcript_id\"],\n",
" error_y=dict(type='data', array=d[\"SD\"], visible=True)))\n",
"\n",
"fig.show() "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"\n",
"fn='/home/annaldas/projects/nanopore-transcriptome-analysis/Results/Quantification/transcript_stats.csv'\n",
"df=pd.read_csv(fn)\n",
"prot=[\"ABI2\",\"BRD4\"]\n",
"prot.sort()\n",
"df=df[df[\"gene_name\"].isin(prot)]\n",
"c=[\"#25224c\",\"#c7890f\",\"#b4242f\",\"#444036\"]\n",
"with PdfPages('/home/gajos/Presentation/test.pdf') as pdf:\n",
" for i in range(len(prot)):\n",
" data=df[df['gene_name']==prot[i]]\n",
" if not data.shape[0]:\n",
" continue\n",
" #data=data[data[\"type\"]=='protein_coding']\n",
" data['maximum']=data.iloc[:,1:6].max(axis=1)\n",
" data=data.sort_values('maximum',ascending=False)\n",
" means=data.iloc[:,1:6]\n",
" stds=data.iloc[:,6:11]/np.sqrt(7)\n",
" labels=data.iloc[:,0]+'\\n('+data.iloc[:,13]+')'\n",
" labels=[labels.iloc[j].replace('_',' ') for j in range(labels.shape[0])]\n",
" fig, ax = plt.subplots(figsize=(6,4)) \n",
" cur_axes = plt.gca()\n",
" ax.spines['top'].set_visible(False)\n",
" ax.spines['right'].set_visible(False)\n",
" z=min(data.shape[0],2)\n",
" for j in range(z):\n",
" plt.errorbar(np.arange(0,5)+np.random.normal(0, 0.03, 5),means.iloc[j,:],yerr=stds.iloc[j,:],label=labels[j],color=c[j],linewidth=2)\n",
" #plt.errorbar(np.arange(0,5),means.iloc[j,:],label=labels.iloc[j])\n",
" plt.xticks(np.arange(0,5,1),['0','1','2','3','4'])\n",
" plt.xlabel('Day')\n",
" plt.ylabel('TPM')\n",
" plt.title(data['gene_name'].iloc[0])\n",
" \n",
" box = ax.get_position()\n",
" ax.set_position([box.x0, box.y0, box.width * 0.98, box.height])\n",
" ax.legend(loc='center left', bbox_to_anchor=(0.95, 0.5),frameon=False)\n",
" a=plt.axis()\n",
" yl=plt.yticks()\n",
" plt.xlim([-0.3,4.3])\n",
" plt.ylim([max(-5,-0.01*a[3]),a[3]]) \n",
" yl=plt.yticks()\n",
" ax.spines['left'].set_bounds(max(-5,-0.01*a[3]),yl[0][yl[0]<a[3]][-1])\n",
" ax.spines['bottom'].set_bounds(-0.3,4)\n",
" #plt.legend()\n",
" plt.tight_layout()\n",
" pdf.savefig()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"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
}