Commit 80aaa174 by Maureen MUSCAT

Initial commit

parents
This source diff could not be displayed because it is too large. You can view the blob instead.
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# this is a demonstration to show how FilterDCA is working\n",
"\n",
"- take plmDCA results and transform them into a matrix\n",
" - option: plot dca matrix\n",
"- apply the filters on the dca matrix: create Pattern score matrix\n",
" - option: plot Pattern score matrix\n",
"\n",
"### prediction\n",
"- use DCA score and Pattern score to determine the probability of contact for each (i,j)\n",
" - option: plot probability matrix\n",
" \n"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas\n",
"import numpy as np\n",
"import sys\n",
"import scipy.stats\n",
"import matplotlib.pyplot as plt\n",
"import pickle\n",
"import sklearn"
]
},
{
"cell_type": "code",
"execution_count": 104,
"metadata": {},
"outputs": [],
"source": [
"def create_dca_matrix(name,len_d1,len_d2,option=True):\n",
" df=pandas.read_csv(name,sep='\\t',header=None )\n",
" df=df.sort_values([0,1])\n",
" df=df[df[0]<len_d1+1]\n",
" df=df[df[1]>len_d1]\n",
" matrix=np.array(df[2]).reshape(len_d1,len_d2)\n",
" if option ==True :\n",
" plt.imshow(m)\n",
" return matrix\n",
"\n",
"def compute_matrix_result_for_one_filter(matrice_dca,mat_f):\n",
" \"\"\"\n",
" Giving the dca matrix and a filter\n",
" compute the correlation matrix\n",
" \"\"\"\n",
" v=len(mat_f)\n",
" v=v//2\n",
" (len_domain1,len_domain2)=matrice_dca.shape\n",
" matrix_result=matrice_dca.copy()\n",
" matrix_best_f=np.zeros((len_domain1,len_domain2))\n",
" for indice_1 in range(0,len_domain1):\n",
" for indice_2 in range(0,len_domain2):\n",
" correlation=0.0\n",
" i_centre,j_centre= min( indice_1,v) ,min(indice_2,v)\n",
" sous_matrix=matrice_dca[max(0,indice_1-v):indice_1+v+1,max(0,indice_2-v):indice_2+v+1]\n",
" mat_f[len(mat_f)//2,len(mat_f)//2]=np.nan\n",
" m_f=mat_f[ max(v-indice_1,0):min(v*2+1,len_domain1-indice_1+v) ,max(v-indice_2,0):min(v*2+1,len_domain2+v-indice_2)]\n",
" indic_flatt=m_f.shape[1]*i_centre+j_centre\n",
" if matrice_dca[indice_1,indice_2]!=sous_matrix.flatten()[indic_flatt] :\n",
" print('Problem')\n",
" ## remove the central value \n",
" m_f=np.delete(m_f.flatten(),indic_flatt)\n",
" sous_matrix=np.delete(sous_matrix.flatten(),indic_flatt)\n",
" # print scipy.stats.pearsonr(sous_matrix,m_f)[0]\n",
" if np.sum(sous_matrix[0]==sous_matrix )!=len(sous_matrix):\n",
" correlation=scipy.stats.pearsonr(sous_matrix,m_f)[0]\n",
" matrix_result[indice_1,indice_2]=correlation\n",
" return matrix_result\n",
"\n",
"def pattern_computation(dca_matrix,liste_mat_filtre):\n",
" shape = dca_matrix.shape\n",
" index = pandas.MultiIndex.from_product([range(s)for s in shape], names=list('ij'))\n",
" df = pandas.DataFrame({'dca': dca_matrix.flatten()}, index=index).reset_index()\n",
" for num_mat,filter in enumerate(liste_mat_filtre) :\n",
" A=compute_matrix_result_for_one_filter(dca_matrix,filter)\n",
" df['resul_{}_{}'.format(v,num_mat)]=A.flatten() ## matrix result\n",
" df['best_corr {}'.format(v)]=df[['resul_{}_{}'.format(v,num_mat) for num_mat in range(len(liste_mat_filtre))]].max(axis=1)\n",
" df['best_f {}'.format(v)]=df[['resul_{}_{}'.format(v,num_mat) for num_mat in range(len(liste_mat_filtre))]].idxmax(axis=1)\n",
" return df\n"
]
},
{
"cell_type": "code",
"execution_count": 105,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# name='combined_MSA_ddi_1_PF10417_PF00578_result'\n",
"name='combined_MSA_ddi_3_PF10417_PF00085_result'\n",
"lend1,lend2=40,104\n",
"dca_matrix=create_dca_matrix(name,lend1,lend2,option=True)"
]
},
{
"cell_type": "code",
"execution_count": 109,
"metadata": {},
"outputs": [],
"source": [
"## load the 6 filters of the selected size\n",
"v=69\n",
"liste_mat_filtre=list(np.load('maps/{}/list_mat.npy'.format(v)))"
]
},
{
"cell_type": "code",
"execution_count": 110,
"metadata": {},
"outputs": [],
"source": [
"## Apply each of the 6 filters on the dca matrix\n",
"df=pattern_computation(dca_matrix,liste_mat_filtre)"
]
},
{
"cell_type": "code",
"execution_count": 111,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.colorbar.Colorbar at 0x7f195f957a58>"
]
},
"execution_count": 111,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"correlation_matrix=np.array(df['best_corr {}'.format(v)]).reshape((shape))\n",
"plt.imshow(correlation_matrix)\n",
"plt.title('Pattern score')\n",
"plt.colorbar()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Compute the prediction"
]
},
{
"cell_type": "code",
"execution_count": 112,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"# Load the classifiar and the min and max values for the pattern score \n",
"size_meff='big'\n",
"clf = pickle.load(open('{}-{}-linear-clf.sav'.format(v,size_meff) , \"rb\"),encoding='latin1') \n",
"\n",
"min_c,max_c=np.loadtxt('min_max_{}_{}'.format(v,size_meff))"
]
},
{
"cell_type": "code",
"execution_count": 113,
"metadata": {},
"outputs": [],
"source": [
"# We normalize the 'best corr' variable\n",
"df['corr {}'.format(v)]=(df['best_corr {}'.format(v)] - min_c) / (max_c - min_c)"
]
},
{
"cell_type": "code",
"execution_count": 114,
"metadata": {},
"outputs": [],
"source": [
"column=['dca','corr {}'.format(v)]\n",
"X=np.array(df[column])\n",
"probability= clf.predict_proba(X)[:,1]\n",
"df['proba contact']=probability"
]
},
{
"cell_type": "code",
"execution_count": 115,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.colorbar.Colorbar at 0x7f195f8f1e80>"
]
},
"execution_count": 115,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.imshow(probability.reshape(shape))\n",
"plt.title('Probability of being a contact')\n",
"plt.colorbar()"
]
},
{
"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.6.9"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
This source diff could not be displayed because it is too large. You can view the blob instead.
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# this is a demonstration to show how FilterDCA is working\n",
"\n",
"- take plmDCA results and transform them into a matrix\n",
" - option: plot dca matrix\n",
"- apply the filters on the dca matrix: create Pattern score matrix\n",
" - option: plot Pattern score matrix\n",
"\n",
"\n",
"### Prediction\n",
"- use DCA score and Pattern score to determine the probability of contact for each (i,j)\n",
" - option: plot probability matrix\n",
" \n"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas\n",
"import numpy as np\n",
"import sys\n",
"import scipy.stats\n",
"import matplotlib.pyplot as plt\n",
"import pickle\n",
"import sklearn"
]
},
{
"cell_type": "code",
"execution_count": 104,
"metadata": {},
"outputs": [],
"source": [
"def create_dca_matrix(name,len_d1,len_d2,option=True):\n",
" df=pandas.read_csv(name,sep='\\t',header=None )\n",
" df=df.sort_values([0,1])\n",
" df=df[df[0]<len_d1+1]\n",
" df=df[df[1]>len_d1]\n",
" matrix=np.array(df[2]).reshape(len_d1,len_d2)\n",
" if option ==True :\n",
" plt.imshow(m)\n",
" return matrix\n",
"\n",
"def compute_matrix_result_for_one_filter(matrice_dca,mat_f):\n",
" \"\"\"\n",
" Giving the dca matrix and a filter\n",
" compute the correlation matrix\n",
" \"\"\"\n",
" v=len(mat_f)\n",
" v=v//2\n",
" (len_domain1,len_domain2)=matrice_dca.shape\n",
" matrix_result=matrice_dca.copy()\n",
" matrix_best_f=np.zeros((len_domain1,len_domain2))\n",
" for indice_1 in range(0,len_domain1):\n",
" for indice_2 in range(0,len_domain2):\n",
" correlation=0.0\n",
" i_centre,j_centre= min( indice_1,v) ,min(indice_2,v)\n",
" sous_matrix=matrice_dca[max(0,indice_1-v):indice_1+v+1,max(0,indice_2-v):indice_2+v+1]\n",
" mat_f[len(mat_f)//2,len(mat_f)//2]=np.nan\n",
" m_f=mat_f[ max(v-indice_1,0):min(v*2+1,len_domain1-indice_1+v) ,max(v-indice_2,0):min(v*2+1,len_domain2+v-indice_2)]\n",
" indic_flatt=m_f.shape[1]*i_centre+j_centre\n",
" if matrice_dca[indice_1,indice_2]!=sous_matrix.flatten()[indic_flatt] :\n",
" print('Problem')\n",
" ## remove the central value \n",
" m_f=np.delete(m_f.flatten(),indic_flatt)\n",
" sous_matrix=np.delete(sous_matrix.flatten(),indic_flatt)\n",
" # print scipy.stats.pearsonr(sous_matrix,m_f)[0]\n",
" if np.sum(sous_matrix[0]==sous_matrix )!=len(sous_matrix):\n",
" correlation=scipy.stats.pearsonr(sous_matrix,m_f)[0]\n",
" matrix_result[indice_1,indice_2]=correlation\n",
" return matrix_result\n",
"\n",
"def pattern_computation(dca_matrix,liste_mat_filtre):\n",
" shape = dca_matrix.shape\n",
" index = pandas.MultiIndex.from_product([range(s)for s in shape], names=list('ij'))\n",
" df = pandas.DataFrame({'dca': dca_matrix.flatten()}, index=index).reset_index()\n",
" for num_mat,filter in enumerate(liste_mat_filtre) :\n",
" A=compute_matrix_result_for_one_filter(dca_matrix,filter)\n",
" df['resul_{}_{}'.format(v,num_mat)]=A.flatten() ## matrix result\n",
" df['best_corr {}'.format(v)]=df[['resul_{}_{}'.format(v,num_mat) for num_mat in range(len(liste_mat_filtre))]].max(axis=1)\n",
" df['best_f {}'.format(v)]=df[['resul_{}_{}'.format(v,num_mat) for num_mat in range(len(liste_mat_filtre))]].idxmax(axis=1)\n",
" return df\n"
]
},
{
"cell_type": "code",
"execution_count": 105,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# name='combined_MSA_ddi_1_PF10417_PF00578_result'\n",
"name='combined_MSA_ddi_3_PF10417_PF00085_result'\n",
"lend1,lend2=40,104\n",
"dca_matrix=create_dca_matrix(name,lend1,lend2,option=True)"
]
},
{
"cell_type": "code",
"execution_count": 109,
"metadata": {},
"outputs": [],
"source": [
"## load the 6 filters of the selected size\n",
"v=69\n",
"liste_mat_filtre=list(np.load('maps/{}/list_mat.npy'.format(v)))"
]
},
{
"cell_type": "code",
"execution_count": 110,
"metadata": {},
"outputs": [],
"source": [
"## Apply each of the 6 filters on the dca matrix\n",
"df=pattern_computation(dca_matrix,liste_mat_filtre)"
]
},
{
"cell_type": "code",
"execution_count": 111,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.colorbar.Colorbar at 0x7f195f957a58>"
]
},
"execution_count": 111,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"correlation_matrix=np.array(df['best_corr {}'.format(v)]).reshape((shape))\n",
"plt.imshow(correlation_matrix)\n",
"plt.title('Pattern score')\n",
"plt.colorbar()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Compute the prediction"
]
},
{
"cell_type": "code",
"execution_count": 118,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"# Load the classifiar and the min and max values for the pattern score \n",
"size_meff='big'\n",
"clf = pickle.load(open('classifier/{}-{}-linear-clf.sav'.format(v,size_meff) , \"rb\"),encoding='latin1') \n",
"min_c,max_c=np.loadtxt('classifier/min_max_{}_{}'.format(v,size_meff))"
]
},
{
"cell_type": "code",
"execution_count": 119,
"metadata": {},
"outputs": [],
"source": [
"# We normalize the 'best corr' variable\n",
"df['corr {}'.format(v)]=(df['best_corr {}'.format(v)] - min_c) / (max_c - min_c)"
]
},
{
"cell_type": "code",
"execution_count": 120,
"metadata": {},
"outputs": [],
"source": [
"column=['dca','corr {}'.format(v)]\n",
"X=np.array(df[column])\n",
"probability= clf.predict_proba(X)[:,1]\n",
"df['proba contact']=probability"
]
},
{
"cell_type": "code",
"execution_count": 121,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.colorbar.Colorbar at 0x7f195f81afd0>"
]
},
"execution_count": 121,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.imshow(probability.reshape(shape))\n",
"plt.title('Probability of being a contact')\n",
"plt.colorbar()"
]
},
{
"cell_type": "code",
"execution_count": 123,
"metadata": {},
"outputs": [],
"source": [
"## to save results\n",
"df.to_csv('results.dat',index=False)"
]
},
{
"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.6.9"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
-4.010483459171353404e-01
7.825634755773058782e-01
-3.759843528053350981e-01
8.264014692533045991e-01
-4.012460380940290894e-01
6.488730601242911344e-01
-4.175121788172077020e-01
6.904931054214537012e-01
-3.326373899444660109e-01
5.373880625476994410e-01
-4.018842375837882730e-01
4.650520340802660746e-01
-3.174377284243473096e-01
5.077344094600587665e-01
-3.922241277218289635e-01
4.336011531401690045e-01
-4.625147179322995905e-01
9.703186257036275908e-01
-4.693611358049615268e-01
9.953177775747592548e-01
-2.754038646346417263e-01
4.509698385374252272e-01
-2.684479839683360791e-01
3.784358432246485715e-01
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
1.000000000000000082e-05 3.605416809275292789e-02
1.756550000000000056e+00 1.000000000000000000e+00
1.000000000000000082e-05 2.174055683056233881e-02
7.347199999999999287e-01 1.000000000000000000e+00
1.000000000000000082e-05 6.271292968447918226e-02
1.756550000000000056e+00 1.000000000000000000e+00
1.000000000000000082e-05 1.296203301490494453e-01
7.347199999999999287e-01 1.000000000000000000e+00
1.000000000000000082e-05 2.915140459985346086e-02
1.756550000000000056e+00 1.000000000000000000e+00
1.000000000000000082e-05 1.540262739663355585e-01
7.347199999999999287e-01 1.000000000000000000e+00
1.000000000000000082e-05 5.364688763667208732e-02
1.756550000000000056e+00 9.955251021454306626e-01
1.000000000000000082e-05 2.130173627113278734e-01
7.347199999999999287e-01 1.000000000000000000e+00
1.000000000000000082e-05 2.866478717426299352e-02
1.756550000000000056e+00 1.000000000000000000e+00
1.000000000000000082e-05 2.525419402015761927e-02
7.347199999999999287e-01 9.916568044332151333e-01
1.000000000000000082e-05 7.682087927343837774e-02
1.756550000000000056e+00 1.000000000000000000e+00
1.000000000000000082e-05 1.606767771369917719e-01
7.347199999999999287e-01 1.000000000000000000e+00
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment