random shuffle of sample
parent
5ba788a7a0
commit
cc992f7f2d
121
DeepDrug.ipynb
121
DeepDrug.ipynb
|
|
@ -9,11 +9,28 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 2,
|
"execution_count": 1,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [],
|
"outputs": [
|
||||||
|
{
|
||||||
|
"name": "stderr",
|
||||||
|
"output_type": "stream",
|
||||||
|
"text": [
|
||||||
|
"Using TensorFlow backend.\n"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
"source": [
|
"source": [
|
||||||
"import numpy as np"
|
"import numpy as np\n",
|
||||||
|
"\n",
|
||||||
|
"from sklearn.preprocessing import LabelEncoder\n",
|
||||||
|
"from keras.models import Sequential\n",
|
||||||
|
"from keras import optimizers\n",
|
||||||
|
"from keras.layers import Dense, Flatten, TimeDistributedn, Dropout\n",
|
||||||
|
"from keras import Input, Model\n",
|
||||||
|
"from keras.layers import add, Activation\n",
|
||||||
|
"#from keras.utils import plot_model # Needs pydot.\n",
|
||||||
|
"from keras.layers import Conv3D, MaxPooling3D"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
@ -30,7 +47,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 3,
|
"execution_count": 2,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
|
|
@ -39,7 +56,7 @@
|
||||||
"''"
|
"''"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 3,
|
"execution_count": 2,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"output_type": "execute_result"
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
|
|
@ -67,18 +84,100 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "markdown",
|
||||||
"execution_count": 6,
|
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [],
|
"source": [
|
||||||
"source": []
|
"### Creating input and ouputs"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": null,
|
"execution_count": 3,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
"source": []
|
"source": [
|
||||||
|
"data_onehot = np.ndarray(shape=(2219, 14, 32, 32, 32)) # initializing empty array\n",
|
||||||
|
"indices = np.random.permutation(2219)\n",
|
||||||
|
"output = np.ndarray(shape=(2219, 3)) # softmax 3, {steroid=1, heme=1, nucleotide=1}\n",
|
||||||
|
"lmin = len(steroid)\n",
|
||||||
|
"lmid = len(heme)\n",
|
||||||
|
"lmax = len(nucleotide)"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 4,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"n = -1\n",
|
||||||
|
"for i in indices:\n",
|
||||||
|
" n += 1\n",
|
||||||
|
" if i < lmin:\n",
|
||||||
|
" data_onehot[n,] = np.load(\"deepdrug3d_voxel_data/\"+steroid[i]+\".npy\")\n",
|
||||||
|
" output[n,] = [1,0,0]\n",
|
||||||
|
" elif i > lmin and i < (lmin + lmid):\n",
|
||||||
|
" data_onehot[n,] = np.load(\"deepdrug3d_voxel_data/\"+heme[i - lmin]+\".npy\")\n",
|
||||||
|
" output[n,] = [0,1,0]\n",
|
||||||
|
" else:\n",
|
||||||
|
" data_onehot[n,] = np.load(\"deepdrug3d_voxel_data/\"+nucleotide[i - (lmin+lmid) - 1]+\".npy\")\n",
|
||||||
|
" output[n,] = [0,0,1]"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 5,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"X_train = data_onehot[0:1664,]\n",
|
||||||
|
"Y_train = output[0:1664,]\n",
|
||||||
|
"X_test = data_onehot[1664:,]\n",
|
||||||
|
"Y_test = output[1664:,]"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 14,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"data": {
|
||||||
|
"text/plain": [
|
||||||
|
"(1, 14, 32, 32, 32)"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"execution_count": 14,
|
||||||
|
"metadata": {},
|
||||||
|
"output_type": "execute_result"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"source": [
|
||||||
|
"def model_sequential(): # créer un objet modèle\n",
|
||||||
|
" \"\"\"\n",
|
||||||
|
" Return a simple sequentiel model\n",
|
||||||
|
" \n",
|
||||||
|
" Returns :\n",
|
||||||
|
" - model : keras.Model\n",
|
||||||
|
" \"\"\"\n",
|
||||||
|
" inputs = Input(shape=(32,32,32,14)) # 759 aa, 21 car onehot\n",
|
||||||
|
" conv_1 = Conv3D(64, (28, 28, 28), padding=\"same\", activation=\"LeakyReLU\",\n",
|
||||||
|
" kernel_initializer=\"he_normal\")(inputs)\n",
|
||||||
|
" conv_2 = Conv3D(64, (26, 26, 26), padding=\"same\", activation=\"LeakyReLU\",\n",
|
||||||
|
" kernel_initializer=\"he_normal\")(conv_1)\n",
|
||||||
|
" drop_1 = Dropout(0.2)(conv_2)\n",
|
||||||
|
" maxpool = MaxPooling3D()(drop_1)\n",
|
||||||
|
" drop_2 = Dropout(0.4)(maxpool)\n",
|
||||||
|
" dense = Dense(512)(drop_2)\n",
|
||||||
|
" drop_3 = Dropout(0.4)(dense)\n",
|
||||||
|
" output = TimeDistributed(Dense(3, activation='softmax'))(drop_3)\n",
|
||||||
|
" model = Model(inputs=inputs, outputs=output)\n",
|
||||||
|
" my_opt = optimizers.Adam(learning_rate=0.000001, beta_1=0.9, beta_2=0.999, amsgrad=False)\n",
|
||||||
|
" print(model.summary)\n",
|
||||||
|
" model.compile(optimizer=my_opt, loss=\"categorical_crossentropy\",\n",
|
||||||
|
" metrics=[\"accuracy\"])\n",
|
||||||
|
" return model"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue