From 5ba788a7a08c9ec30a3bef4ea2ab0a55a27784c4 Mon Sep 17 00:00:00 2001 From: nicolas-zimmermann Date: Wed, 9 Oct 2019 17:05:00 +0200 Subject: [PATCH] initial commit --- ._deepdrug3d_voxel_data | Bin 0 -> 176 bytes .ipynb_checkpoints/DeepDrug-checkpoint.ipynb | 101 + .../secondary_struct-checkpoint.ipynb | 387 ++++ DeepDrug.ipynb | 112 + config.yml | 120 + control.list | 1946 +++++++++++++++++ heme.list | 596 +++++ nucleotide.list | 1553 +++++++++++++ secondary_struct.ipynb | 387 ++++ steroid.list | 69 + 10 files changed, 5271 insertions(+) create mode 100755 ._deepdrug3d_voxel_data create mode 100644 .ipynb_checkpoints/DeepDrug-checkpoint.ipynb create mode 100644 .ipynb_checkpoints/secondary_struct-checkpoint.ipynb create mode 100644 DeepDrug.ipynb create mode 100644 config.yml create mode 100644 control.list create mode 100644 heme.list create mode 100644 nucleotide.list create mode 100644 secondary_struct.ipynb create mode 100644 steroid.list diff --git a/._deepdrug3d_voxel_data b/._deepdrug3d_voxel_data new file mode 100755 index 0000000000000000000000000000000000000000..a4f25125d2d9b5aa4268712ca86506c4820d11db GIT binary patch literal 176 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aUBqY_#1$j2;dkJ5(HHS(lG;wCD61n zBE&_L^Kydi!!Yl09d9L AlmGw# literal 0 HcmV?d00001 diff --git a/.ipynb_checkpoints/DeepDrug-checkpoint.ipynb b/.ipynb_checkpoints/DeepDrug-checkpoint.ipynb new file mode 100644 index 0000000..06b0766 --- /dev/null +++ b/.ipynb_checkpoints/DeepDrug-checkpoint.ipynb @@ -0,0 +1,101 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# DeepDrug3D" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Create pocket lists\n", + "4 pockets are created :\n", + " + control\n", + " + steroid\n", + " + heme\n", + " + nucleotide" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "with open(\"control.list\", \"r\") as filin:\n", + " control = filin.read()\n", + "control = control.split(\"\\n\")\n", + "control.pop()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "with open(\"steroid.list\", \"r\") as filin:\n", + " steroid = filin.read()\n", + "steroid = steroid.split(\"\\n\")\n", + "steroid.pop()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "with open(\"heme.list\", \"r\") as filin:\n", + " heme = filin.read()\n", + "heme = heme.split(\"\\n\")\n", + "heme.pop()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "with open(\"nucleotide.list\", \"r\") as filin:\n", + " nucleotide = filin.read()\n", + "nucleotide = nucleotide.split(\"\\n\")\n", + "nucleotide.pop()" + ] + } + ], + "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": 4 +} diff --git a/.ipynb_checkpoints/secondary_struct-checkpoint.ipynb b/.ipynb_checkpoints/secondary_struct-checkpoint.ipynb new file mode 100644 index 0000000..c0dfaec --- /dev/null +++ b/.ipynb_checkpoints/secondary_struct-checkpoint.ipynb @@ -0,0 +1,387 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "import keras\n", + "import numpy as np\n", + "import pandas as pd\n", + "\n", + "from sklearn.preprocessing import LabelEncoder\n", + "from keras.models import Sequential\n", + "from keras.layers import Dense, Flatten, TimeDistributed\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 Conv1D, AveragePooling1D" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "def file_to_dataframe(filename):\n", + " \"\"\"\n", + " Returns a pandas dataframe ncol = len(longest_sequence),\n", + " nrow = number of sequences\n", + " \n", + " Arguments :\n", + " - filename : str\n", + " path to file\n", + " Takes a path to a files containing any sequences, must be 1 sequence\n", + " per line.\n", + " \n", + " Sequences shorter than longest_sequence are completed with '0' char.\n", + " \"\"\"\n", + " filin = open(filename)\n", + " fastas0 = filin.read()\n", + " fastas0 = fastas0.split('\\n')\n", + " nmax = len(max(fastas0, key=len))\n", + " fastas = []\n", + " for fasta in fastas0:\n", + " fastas.append(fasta + (nmax - len(fasta)) * '0')\n", + " \n", + " seqs = pd.DataFrame(index=range(len(fastas)), columns=range(nmax))\n", + " \n", + " for i, fasta in enumerate(fastas):\n", + " seqs.loc[i] = pd.Series(list(fasta))\n", + " \n", + " return seqs" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "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=(759,21)) # 759 aa, 21 car onehot\n", + " conv_1 = Conv1D(25, (5), padding=\"same\", activation=\"relu\",\n", + " kernel_initializer=\"he_normal\")(inputs)\n", + " conv_2 = Conv1D(35, (5), padding=\"same\", activation=\"relu\",\n", + " kernel_initializer=\"he_normal\")(conv_1)\n", + " output = TimeDistributed(Dense(4, activation='softmax'))(conv_2)\n", + " model = Model(inputs=inputs, outputs=output)\n", + " print(model.summary)\n", + " model.compile(optimizer=\"adam\", loss=\"categorical_crossentropy\",\n", + " metrics=[\"accuracy\"])\n", + " return model" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "def char_to_onehot(df, ncol=0):\n", + " \"\"\"\n", + " Returns the given str-encoded dataframe into a onehot encoded dataframe as an array object\n", + " \n", + " * Arguments:\n", + " - df : pandas.DataFrame, the dataframe containing the sequences, cell \n", + " containing strings.\n", + " - ncol : int, Optionnal. the number of col used to build the LabelEncoder\n", + " which will transform the df cells into int(categorical).\n", + " \"\"\"\n", + " classes = LabelEncoder()\n", + " classes.fit(df[ncol])\n", + " df_categorical = df.apply(func=classes.transform, axis=0)\n", + " df_onehot = keras.utils.to_categorical(df_categorical)\n", + " return df_onehot" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "def true_accuracy(predictions, onehot_Y_test):\n", + " \"\"\"\n", + " Computes the accuracy ignoring the \"0\" of the DataFrame.\n", + " \n", + " * Arguments :\n", + " - predictions : numpy.array, output of the model, onehot encoded.\n", + " - onehot_Y_test : numpy.array, the true values, onehot encoded.\n", + " \n", + " * Returns :\n", + " - acc_coor : int, accuracy corrected, not considering '0' predictions\n", + " \"\"\"\n", + " tp = 0\n", + " tn = 0\n", + " fn = 0\n", + " fp = 0\n", + " tot = 0\n", + "\n", + " for i in range(len(predictions)):\n", + " for j in range(len(predictions[i])):\n", + " if onehot_Y_test[i, j, 3] != 0.:\n", + " predmax = -1\n", + " predict_class = -1\n", + " true_class = -1\n", + " for k in range(len(predictions[i, j])):\n", + " if predmax < predictions[i, j, k]:\n", + " predmax = predictions[i, j, k]\n", + " predict_class = k\n", + " if onehot_Y_test[i, j, k] == 1.:\n", + " true_class = k\n", + " if predict_class == true_class:\n", + " tp = tp+1\n", + " tot = tot + 1\n", + " acc_corr = tp/tot*100\n", + " return acc_corr" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "# Create dataframe from files\n", + "fasta = file_to_dataframe(\"data/train.fasta\")\n", + "fasta = fasta.replace(\"X\", \"A\") # 'X' in fasta sequences are replace with 'A'\n", + "dssp = file_to_dataframe(\"data/train.dssp\")" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "# Writes Dataframes to csv files\n", + "fasta.to_csv(path_or_buf=\"data/train_fasta.csv\")\n", + "dssp.to_csv(path_or_buf=\"data/train_dssp.csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "# To onehot\n", + "fasta_onehot = char_to_onehot(fasta, 0)\n", + "dssp_onehot = char_to_onehot(dssp, 2)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "# Divides the dataset in train and test subsets\n", + "fasta_train = fasta_onehot[0:1000,]\n", + "dssp_train = dssp_onehot[0:1000,]\n", + "fasta_test = fasta_onehot[1000:,]\n", + "dssp_test = dssp_onehot[1000:]" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + ">\n", + "Epoch 1/30\n", + "1000/1000 [==============================] - 2s 2ms/step - loss: 0.7467 - acc: 0.7447\n", + "Epoch 2/30\n", + "1000/1000 [==============================] - 1s 974us/step - loss: 0.2610 - acc: 0.8944\n", + "Epoch 3/30\n", + "1000/1000 [==============================] - 1s 964us/step - loss: 0.2053 - acc: 0.9086\n", + "Epoch 4/30\n", + "1000/1000 [==============================] - 1s 994us/step - loss: 0.1899 - acc: 0.9154\n", + "Epoch 5/30\n", + "1000/1000 [==============================] - 1s 986us/step - loss: 0.1817 - acc: 0.9193\n", + "Epoch 6/30\n", + "1000/1000 [==============================] - 1s 1ms/step - loss: 0.1790 - acc: 0.9201\n", + "Epoch 7/30\n", + "1000/1000 [==============================] - 1s 1ms/step - loss: 0.1759 - acc: 0.9217\n", + "Epoch 8/30\n", + "1000/1000 [==============================] - 1s 960us/step - loss: 0.1743 - acc: 0.9222\n", + "Epoch 9/30\n", + "1000/1000 [==============================] - 1s 977us/step - loss: 0.1735 - acc: 0.9226\n", + "Epoch 10/30\n", + "1000/1000 [==============================] - 1s 963us/step - loss: 0.1727 - acc: 0.9228\n", + "Epoch 11/30\n", + "1000/1000 [==============================] - 1s 999us/step - loss: 0.1712 - acc: 0.9239\n", + "Epoch 12/30\n", + "1000/1000 [==============================] - 1s 963us/step - loss: 0.1702 - acc: 0.9243\n", + "Epoch 13/30\n", + "1000/1000 [==============================] - 1s 1ms/step - loss: 0.1695 - acc: 0.9249\n", + "Epoch 14/30\n", + "1000/1000 [==============================] - 1s 978us/step - loss: 0.1687 - acc: 0.9252\n", + "Epoch 15/30\n", + "1000/1000 [==============================] - 1s 981us/step - loss: 0.1678 - acc: 0.9257\n", + "Epoch 16/30\n", + "1000/1000 [==============================] - 1s 985us/step - loss: 0.1669 - acc: 0.9260\n", + "Epoch 17/30\n", + "1000/1000 [==============================] - 1s 1ms/step - loss: 0.1661 - acc: 0.9267\n", + "Epoch 18/30\n", + "1000/1000 [==============================] - 1s 1000us/step - loss: 0.1656 - acc: 0.9269\n", + "Epoch 19/30\n", + "1000/1000 [==============================] - 1s 1ms/step - loss: 0.1650 - acc: 0.9273\n", + "Epoch 20/30\n", + "1000/1000 [==============================] - 1s 1ms/step - loss: 0.1640 - acc: 0.9277\n", + "Epoch 21/30\n", + "1000/1000 [==============================] - 1s 1ms/step - loss: 0.1637 - acc: 0.9281\n", + "Epoch 22/30\n", + "1000/1000 [==============================] - 1s 1ms/step - loss: 0.1630 - acc: 0.9285\n", + "Epoch 23/30\n", + "1000/1000 [==============================] - 1s 1ms/step - loss: 0.1621 - acc: 0.9289\n", + "Epoch 24/30\n", + "1000/1000 [==============================] - 1s 992us/step - loss: 0.1619 - acc: 0.9289\n", + "Epoch 25/30\n", + "1000/1000 [==============================] - 1s 1ms/step - loss: 0.1616 - acc: 0.9291\n", + "Epoch 26/30\n", + "1000/1000 [==============================] - 1s 1ms/step - loss: 0.1616 - acc: 0.9291\n", + "Epoch 27/30\n", + "1000/1000 [==============================] - 1s 1ms/step - loss: 0.1608 - acc: 0.9296\n", + "Epoch 28/30\n", + "1000/1000 [==============================] - 1s 1ms/step - loss: 0.1604 - acc: 0.9297\n", + "Epoch 29/30\n", + "1000/1000 [==============================] - 1s 1ms/step - loss: 0.1601 - acc: 0.9298\n", + "Epoch 30/30\n", + "1000/1000 [==============================] - 1s 1ms/step - loss: 0.1597 - acc: 0.9300\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model = model_sequential()\n", + "model.fit(fasta_train, dssp_train, epochs=30, batch_size=30)" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [], + "source": [ + "predictions = model.predict(fasta_test, batch_size=30)" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "accuracy : 68.06409539780138\n" + ] + } + ], + "source": [ + "print(\"accuracy : {}\".format(true_accuracy(predictions, dssp_test)))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "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": 4 +} diff --git a/DeepDrug.ipynb b/DeepDrug.ipynb new file mode 100644 index 0000000..b81eda5 --- /dev/null +++ b/DeepDrug.ipynb @@ -0,0 +1,112 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# DeepDrug3D" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Create pocket lists\n", + "4 pockets are created :\n", + " + control\n", + " + steroid\n", + " + heme\n", + " + nucleotide" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "''" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "with open(\"control.list\", \"r\") as filin:\n", + " control = filin.read()\n", + "control = control.split(\"\\n\")\n", + "control.pop()\n", + "\n", + "with open(\"steroid.list\", \"r\") as filin:\n", + " steroid = filin.read()\n", + "steroid = steroid.split(\"\\n\")\n", + "steroid.pop()\n", + "\n", + "with open(\"heme.list\", \"r\") as filin:\n", + " heme = filin.read()\n", + "heme = heme.split(\"\\n\")\n", + "heme.pop()\n", + "\n", + "with open(\"nucleotide.list\", \"r\") as filin:\n", + " nucleotide = filin.read()\n", + "nucleotide = nucleotide.split(\"\\n\")\n", + "nucleotide.pop()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "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": 4 +} diff --git a/config.yml b/config.yml new file mode 100644 index 0000000..fabd6c2 --- /dev/null +++ b/config.yml @@ -0,0 +1,120 @@ +name: projet-dl +channels: + - defaults +dependencies: + - _libgcc_mutex=0.1=main + - attrs=19.1.0=py37_1 + - backcall=0.1.0=py37_0 + - blas=1.0=mkl + - bleach=3.1.0=py37_0 + - ca-certificates=2019.5.15=1 + - certifi=2019.6.16=py37_1 + - dbus=1.13.6=h746ee38_0 + - decorator=4.4.0=py37_1 + - defusedxml=0.6.0=py_0 + - entrypoints=0.3=py37_0 + - expat=2.2.6=he6710b0_0 + - fontconfig=2.13.0=h9420a91_0 + - freetype=2.9.1=h8a8886c_1 + - glib=2.56.2=hd408876_0 + - gmp=6.1.2=h6c8ec71_1 + - gst-plugins-base=1.14.0=hbbd80ab_1 + - gstreamer=1.14.0=hb453b48_1 + - icu=58.2=h9c2bf20_1 + - intel-openmp=2019.4=243 + - ipykernel=5.1.2=py37h39e3cac_0 + - ipython=7.8.0=py37h39e3cac_0 + - ipython_genutils=0.2.0=py37_0 + - ipywidgets=7.5.1=py_0 + - jedi=0.15.1=py37_0 + - jinja2=2.10.1=py37_0 + - jpeg=9b=h024ee3a_2 + - json5=0.8.5=py_0 + - jsonschema=3.0.2=py37_0 + - jupyter=1.0.0=py37_7 + - jupyter_client=5.3.1=py_0 + - jupyter_console=6.0.0=py37_0 + - jupyter_core=4.5.0=py_0 + - jupyterlab=1.1.3=pyhf63ae98_0 + - jupyterlab_server=1.0.0=py_1 + - libedit=3.1.20181209=hc058e9b_0 + - libffi=3.2.1=hd88cf55_4 + - libgcc-ng=9.1.0=hdf63c60_0 + - libgfortran-ng=7.3.0=hdf63c60_0 + - libpng=1.6.37=hbc83047_0 + - libsodium=1.0.16=h1bed415_0 + - libstdcxx-ng=9.1.0=hdf63c60_0 + - libuuid=1.0.3=h1bed415_2 + - libxcb=1.13=h1bed415_1 + - libxml2=2.9.9=hea5a465_1 + - markupsafe=1.1.1=py37h7b6447c_0 + - mistune=0.8.4=py37h7b6447c_0 + - mkl=2019.4=243 + - mkl-service=2.3.0=py37he904b0f_0 + - mkl_fft=1.0.14=py37ha843d7b_0 + - mkl_random=1.0.2=py37hd81dba3_0 + - nbconvert=5.5.0=py_0 + - nbformat=4.4.0=py37_0 + - ncurses=6.1=he6710b0_1 + - notebook=6.0.1=py37_0 + - numpy=1.16.5=py37h7e9f1db_0 + - numpy-base=1.16.5=py37hde5b4d6_0 + - openssl=1.1.1d=h7b6447c_1 + - pandas=0.25.1=py37he6710b0_0 + - pandoc=2.2.3.2=0 + - pandocfilters=1.4.2=py37_1 + - parso=0.5.1=py_0 + - pcre=8.43=he6710b0_0 + - pexpect=4.7.0=py37_0 + - pickleshare=0.7.5=py37_0 + - pip=19.2.2=py37_0 + - prometheus_client=0.7.1=py_0 + - prompt_toolkit=2.0.9=py37_0 + - ptyprocess=0.6.0=py37_0 + - pygments=2.4.2=py_0 + - pyqt=5.9.2=py37h05f1152_2 + - pyrsistent=0.14.11=py37h7b6447c_0 + - python=3.7.4=h265db76_1 + - python-dateutil=2.8.0=py37_0 + - pytz=2019.2=py_0 + - pyzmq=18.1.0=py37he6710b0_0 + - qt=5.9.7=h5867ecd_1 + - qtconsole=4.5.5=py_0 + - readline=7.0=h7b6447c_5 + - scipy=1.3.1=py37h7c811a0_0 + - send2trash=1.5.0=py37_0 + - setuptools=41.0.1=py37_0 + - sip=4.19.8=py37hf484d3e_0 + - six=1.12.0=py37_0 + - sqlite=3.29.0=h7b6447c_0 + - terminado=0.8.2=py37_0 + - testpath=0.4.2=py37_0 + - tk=8.6.8=hbc83047_0 + - tornado=6.0.3=py37h7b6447c_0 + - traitlets=4.3.2=py37_0 + - wcwidth=0.1.7=py37_0 + - webencodings=0.5.1=py37_1 + - wheel=0.33.4=py37_0 + - widgetsnbextension=3.5.1=py37_0 + - xz=5.2.4=h14c3975_4 + - zeromq=4.3.1=he6710b0_3 + - zlib=1.2.11=h7b6447c_3 + - pip: + - biopython==1.74 + - cycler==0.10.0 + - griddataformats==0.5.0 + - gsd==1.8.1 + - joblib==0.13.2 + - kiwisolver==1.1.0 + - matplotlib==3.1.1 + - mdanalysis==0.20.1 + - mmtf-python==1.1.2 + - mock==3.0.5 + - msgpack==0.6.1 + - networkx==2.3 + - pbxplore==1.3.8 + - pillow==6.1.0 + - pyclustering==0.9.1 + - pyparsing==2.4.2 + - keras + - sklearn diff --git a/control.list b/control.list new file mode 100644 index 0000000..03d35f4 --- /dev/null +++ b/control.list @@ -0,0 +1,1946 @@ +154lA00 +1a3gB00 +1a4iB00 +1a5iA00 +1a8tA00 +1af7A00 +1aimA00 +1alwB00 +1apuA00 +1aqcC00 +1avpA00 +1awbA00 +1aymA00 +1ayxA00 +1b25C00 +1b2iA00 +1b4uB00 +1b5jA00 +1b8hB00 +1bagA00 +1bckA00 +1bdaA00 +1be9A00 +1bevA00 +1bh6A00 +1bkcA00 +1bobA00 +1booA00 +1bqsA00 +1c21A00 +1c3sA00 +1c3xA00 +1c5fA00 +1c7sA00 +1cebA00 +1cguA00 +1chmB00 +1cm0A00 +1covA00 +1ctuA00 +1cvrA00 +1cy6A00 +1cynA00 +1cziA00 +1d00D00 +1d6uB00 +1d9uA00 +1ddlC00 +1dl5A00 +1dp2A00 +1dppC00 +1dqeA00 +1ds1A00 +1dtdA00 +1dtpA00 +1e4nB00 +1e5iA00 +1e6aB00 +1ecqD00 +1ef9A00 +1ei6D00 +1ejeA00 +1ek2A00 +1emjC00 +1eobB00 +1eseA00 +1ev1A00 +1f0xB00 +1f1vA00 +1f2pA00 +1f3lA00 +1f4cB00 +1f8iC00 +1fayH00 +1fbdA00 +1fboA00 +1ffvC00 +1fnzA00 +1fo0A00 +1fo2A00 +1fpnA00 +1fpqA00 +1furB00 +1fvgA00 +1fw9A00 +1fy7A00 +1g0hB00 +1g1rC00 +1g60B00 +1gecA00 +1gffA00 +1gklA00 +1gkmA00 +1gnyA00 +1gq2K00 +1gt6A00 +1gxbC00 +1h2cA00 +1h41B00 +1h4hC00 +1h6eA00 +1h6hA00 +1h6wA00 +1h8gB00 +1h8pA00 +1hcnB00 +1ho3B00 +1horB00 +1hpcA00 +1hriA00 +1hshA00 +1hyiA00 +1i0rA00 +1i19B00 +1i1qA00 +1i2kA00 +1i3sB00 +1i7sC00 +1ia7A00 +1ib1G00 +1iktA00 +1iooA00 +1issB00 +1it7A00 +1j0kA00 +1j0nA00 +1j12C00 +1j1wB00 +1j2qL00 +1j36B00 +1j71A00 +1jdxA00 +1jgiA00 +1jibB00 +1jmuB00 +1js4A00 +1jslB00 +1jxnD00 +1jxzC00 +1k0eB00 +1k0gA00 +1k1wA00 +1k1yA00 +1k39C00 +1k9fA00 +1k9iH00 +1kapA00 +1kdzA00 +1kecB00 +1kkrB00 +1knfA00 +1kq0A00 +1kxhA00 +1kyfA00 +1l1yE00 +1la3A00 +1lbzA00 +1lf9A00 +1lmpA00 +1lopA00 +1lqyA00 +1lryA00 +1ltmA00 +1lu2B00 +1lv8B00 +1lvoC00 +1lwuB00 +1lwwC00 +1lxkA00 +1lxmA00 +1ly2A00 +1lzyA00 +1m01A00 +1m0sB00 +1m21A00 +1m2xA00 +1m4uA00 +1m6dA00 +1m72A00 +1m7eA00 +1maaC00 +1mc0A00 +1mhcA00 +1mskA00 +1n1yA00 +1n24A00 +1n2xA00 +1n3qB00 +1n47A00 +1n61C00 +1n6cA00 +1n71B00 +1n73F00 +1nh6A00 +1njuC00 +1nltA00 +1nopD00 +1npzA00 +1ns8B00 +1nw7A00 +1nx8A00 +1o5wA00 +1o70A00 +1o72A00 +1o8bB00 +1o8sA00 +1oa3A00 +1oc1A00 +1oclA00 +1ocuA00 +1of4A00 +1ofiD00 +1ogoA00 +1oijC00 +1oipA00 +1olmB00 +1onxA00 +1oopA00 +1otjB00 +1ox5A00 +1p0yC00 +1p42B00 +1p5rB00 +1p6eA00 +1p7wA00 +1padA00 +1pcmA00 +1pegA00 +1pgoA00 +1pnfA00 +1ppiA00 +1pq7A00 +1pqpA00 +1psoA00 +1pubA00 +1pz2A00 +1pz4A00 +1q33A00 +1q51G00 +1q6iB00 +1q8aB00 +1qapB00 +1qd1A00 +1qdqA00 +1qf1A00 +1qltA00 +1qngA00 +1qooD00 +1qpqA00 +1qs0A00 +1qs8A00 +1qsrA00 +1qu2B00 +1qxwA00 +1qzzA00 +1r17A00 +1r1aA00 +1r3nH00 +1r4wB00 +1rakA00 +1re0B00 +1redB00 +1remA00 +1rm6E00 +1rq5A00 +1rr2A00 +1rs0A00 +1rtvA00 +1rwcA00 +1rxuF00 +1rxzA00 +1rz0F00 +1s0iA00 +1s4vB00 +1s7lA00 +1sbfA00 +1sfqD00 +1sftB00 +1sfyC00 +1sg4B00 +1sioC00 +1siqA00 +1smrC00 +1so0A00 +1sojB00 +1sqcA00 +1sqfA00 +1srqC00 +1szoE00 +1szzA00 +1t2wA00 +1t3qF00 +1t47B00 +1t7oA00 +1tg6A00 +1ti1A00 +1tj4A00 +1tk2A00 +1tl9A00 +1tveB00 +1twiC00 +1tywA00 +1u1xA00 +1u2zB00 +1u4gA00 +1u5bA00 +1ucaA00 +1uefA00 +1ugyC00 +1uhvD00 +1ukmB00 +1umbA00 +1uqsA00 +1uscB00 +1uu5A00 +1uwsB00 +1uy2A00 +1uz0A00 +1v2bB00 +1v30A00 +1v3hA00 +1v3lB00 +1v6jC00 +1v9nA00 +1v9tB00 +1vbpA00 +1vd3A00 +1vdnA00 +1vfhA00 +1vmkA00 +1vrlC00 +1vsgA00 +1vz5B00 +1vzbA00 +1w1pB00 +1w27B00 +1w2tD00 +1w61A00 +1w6fA00 +1w7vC00 +1w88A00 +1w9oB00 +1w9wA00 +1w9xA00 +1wcqA00 +1wdaA00 +1wdiA00 +1weiA00 +1wkmA00 +1wmzC00 +1wnzA00 +1wogA00 +1ws1A00 +1wtaA00 +1wu5A00 +1wvmA00 +1wzuA00 +1x1dA00 +1x2hA00 +1x7pA00 +1x7wA00 +1x9iB00 +1xa8B00 +1xdhB00 +1xocA00 +1xpyD00 +1xq7A00 +1xrmA00 +1xskA00 +1xtbA00 +1xu3B00 +1xvuA00 +1xwqA00 +1xxrD00 +1y0gD00 +1y0yA00 +1y1aB00 +1y9qA00 +1yatA00 +1yg6H00 +1yk3G00 +1ynhC00 +1yquB00 +1yreB00 +1ywhA00 +1yy5B00 +1z7sA00 +1z8gA00 +1zapA00 +1zb7A00 +1zg9C00 +1zhfA00 +1zsqA00 +1zt4A00 +1zy1B00 +1zz1D00 +2a1xA00 +2a9gA00 +2aa9A00 +2aacA00 +2afxB00 +2agwA00 +2ahgB00 +2ahvA00 +2ai7A00 +2aijA00 +2ajhA00 +2aphA00 +2au9A00 +2b13B00 +2b2wA00 +2b4kA00 +2b5uC00 +2b7pC00 +2bdzB00 +2bfgF00 +2bgcA00 +2bh2B00 +2bj0A00 +2bkvB00 +2bnnA00 +2bqyA00 +2braA00 +2bu3A00 +2bvfA00 +2bwaB00 +2c2lA00 +2c4mC00 +2c53A00 +2c8nB00 +2c9kA00 +2cdpA00 +2cfeA00 +2cftA00 +2cfwA00 +2cgnA00 +2cicA00 +2cirA00 +2cmeC00 +2cntB00 +2cwwB00 +2cy2A00 +2d0hA00 +2d0qB00 +2d29A00 +2d5nB00 +2d5wA00 +2dd4F00 +2dd8C00 +2df8A00 +2dg5D00 +2djhA00 +2dkdA00 +2e1tA00 +2e2xA00 +2e4gA00 +2e4vA00 +2e50B00 +2e8zA00 +2eacB00 +2egwA00 +2ek9A00 +2eo7A00 +2erpB00 +2eugA00 +2ew5A00 +2eweA00 +2exkC00 +2exrA00 +2exuA00 +2f5tA00 +2f8gA00 +2fapA00 +2fcvB00 +2fg6A00 +2fgeA00 +2fh8A00 +2fiwA00 +2fmbA00 +2fn1A00 +2fo5B00 +2fp2B00 +2fr0A00 +2ft0A00 +2fugI00 +2fvkD00 +2fy5A00 +2fzmA00 +2g0bA00 +2g3nA00 +2g9uA00 +2gamB00 +2gbbD00 +2gd2D00 +2gduA00 +2gfjB00 +2gh4A00 +2gkeA00 +2gmjB00 +2gqtA00 +2h1tA00 +2h3qA00 +2h42A00 +2h5zB00 +2h6tA00 +2h8gA00 +2hbmA00 +2hbuA00 +2hd0B00 +2hfkB00 +2hgxA00 +2hmaA00 +2hnuA00 +2hu7B00 +2hxuA00 +2i4gA00 +2i54C00 +2i9uB00 +2ichA00 +2igqA00 +2igwA00 +2imlD00 +2iuwA00 +2ix9A00 +2ixcA00 +2iyoA00 +2j1vA00 +2j5sA00 +2j61A00 +2j66A00 +2j7qA00 +2j83A00 +2j9pB00 +2jf4A00 +2jfkB00 +2jgrA00 +2jigA00 +2jihB00 +2jjqA00 +2jk0G00 +2jkpA00 +2kr2A00 +2m0vA00 +2mnzA00 +2mtzA00 +2nqlB00 +2nr4A00 +2nspB00 +2nv4A00 +2nv9B00 +2nx5P00 +2o0vA00 +2o0zA00 +2o12A00 +2o1oB00 +2o1xA00 +2o1xC00 +2o2dC00 +2o74B00 +2o7bG00 +2o7iA00 +2o7pB00 +2o7vA00 +2o8jB00 +2oa6D00 +2og7A00 +2ogzA00 +2ojuB00 +2okcA00 +2opzA00 +2os3A00 +2otcA00 +2ou2A00 +2ou3A00 +2owxA00 +2p0rB00 +2p0wA00 +2p18A00 +2p34D00 +2p3dB00 +2p3vD00 +2p6eC00 +2pcuA00 +2pfrA00 +2pgzA00 +2phlA00 +2pi8C00 +2pk4A00 +2plmA00 +2poyB00 +2pp3B00 +2preA00 +2ps8B00 +2puwB00 +2puzB00 +2pv3A00 +2pyhB00 +2q09A00 +2q0jA00 +2q1aA00 +2q37A00 +2q5yA00 +2q6gB00 +2q7bA00 +2q7tB00 +2qa1A00 +2qa2A00 +2qbwA00 +2qbxA00 +2qdsA00 +2qeoB00 +2qguA00 +2qiaA00 +2qicA00 +2qikA00 +2qjnA00 +2qm2B00 +2qmcB00 +2qmxB00 +2qo3A00 +2qqoA00 +2qs8B00 +2qt5A00 +2qtlA00 +2qxfA00 +2qyqA00 +2qzxA00 +2r05A00 +2r2iA00 +2r4pA00 +2r58A00 +2r5vA00 +2r6sA00 +2r8qB00 +2r9eA00 +2ra5A00 +2rakA00 +2ramC00 +2rc4A00 +2rcuB00 +2rdbB00 +2rdeB00 +2rdqA00 +2rfyA00 +2rghA00 +2rgoA00 +2rjpB00 +2rkgA00 +2rl1A00 +2rmcE00 +2shpB00 +2sn3A00 +2uvfA00 +2uw1A00 +2uzfA00 +2uzjA00 +2v0gC00 +2v10B00 +2v4vA00 +2v64C00 +2v74A00 +2v89B00 +2v8kA00 +2v9gC00 +2vaxK00 +2vcdA00 +2vf5A00 +2vfcA00 +2vfrA00 +2vkhC00 +2vl4A00 +2vnfC00 +2vngA00 +2vpeA00 +2vr3A00 +2vraA00 +2vrqB00 +2vssB00 +2vu9A00 +2vurB00 +2vvlH00 +2vxjE00 +2vy0B00 +2vyaB00 +2vytA00 +2vzsB00 +2vzzA00 +2w2iC00 +2w39A00 +2w3yB00 +2w47A00 +2w48A00 +2w55E00 +2w90A00 +2wabA00 +2walA00 +2wbqA00 +2wcoA00 +2wcuA00 +2wcvB00 +2wdwB00 +2weuB00 +2wfjA00 +2witC00 +2wl9B00 +2wmgA00 +2wnuF00 +2wpxA00 +2wr8A00 +2wv4A00 +2wvtA00 +2ww0H00 +2ww2B00 +2wzgA00 +2x1eA00 +2x1nD00 +2x34B00 +2x4yI00 +2x5iA00 +2x6yA00 +2x7kA00 +2x8tB00 +2xe4A00 +2xfyA00 +2xhkB00 +2xlcF00 +2xm1A00 +2xm7A00 +2xn1A00 +2xonA00 +2xq0A00 +2xryA00 +2xt9A00 +2xu4A00 +2xvkA00 +2y08B00 +2y0mA00 +2y1fB00 +2y2lA00 +2y55C00 +2y5yB00 +2y6gA00 +2y7hB00 +2y7lA00 +2y9xA00 +2yb0D00 +2yb9A00 +2yd8A00 +2yepC00 +2yfoA00 +2yftA00 +2yhgA00 +2ylzA00 +2ynbB00 +2yoeC00 +2yr4B00 +2ytzB00 +2yvwA00 +2yx1B00 +2yyiA00 +2yzoB00 +2z23A00 +2z4eF00 +2z52A00 +2z5sA00 +2z6vA00 +2z70B00 +2z71B00 +2zblB00 +2zecC00 +2zfnA00 +2zi8B00 +2zicA00 +2zifB00 +2zj3A00 +2zjdC00 +2zjfA00 +2zjlA00 +2zl4G00 +2zmlD00 +2zneB00 +2zofB00 +2zokE00 +2zpaB00 +2zpyA00 +2zsiA00 +2zu2A00 +2zuwB00 +2zvwD00 +2zw5B00 +2zw9B00 +2zxdB00 +2zyaA00 +2zyiB00 +2zzgA00 +2zznA00 +3a06B00 +3a1iA00 +3a35A00 +3a3iB00 +3a4aA00 +3a6jE00 +3a75D00 +3a8iA00 +3ac0C00 +3afjA00 +3aflA00 +3ageA00 +3agoA00 +3ah1B00 +3ahrA00 +3ahyA00 +3aiqA00 +3al6B00 +3aluD00 +3amqD00 +3ankA00 +3aosB00 +3au8A00 +3awiB00 +3axtA00 +3b00D00 +3b07B00 +3b3wA00 +3b5iA00 +3b7qA00 +3b8yB00 +3b9aA00 +3b9oA00 +3bbhA00 +3be7G00 +3bg3B00 +3bk2A00 +3bksA00 +3bkvA00 +3blqB00 +3bo5A00 +3bo7B00 +3bpfC00 +3bpmA00 +3breB00 +3bsfB00 +3bu0A00 +3buaD00 +3bxdA00 +3bxhB00 +3c0oA00 +3c0zB00 +3c1hA00 +3c2rB00 +3c2uB00 +3c49A00 +3c7fA00 +3c8wB00 +3cdgA00 +3ckbB00 +3claA00 +3cnvC00 +3co8A00 +3cpaA00 +3ct5A00 +3cvuC00 +3czkA00 +3d1rA00 +3d2sH00 +3d2zA00 +3d3hA00 +3d3xA00 +3d44A00 +3d46D00 +3d6nA00 +3d75A00 +3dddA00 +3dktC00 +3dmfA00 +3doiB00 +3dowA00 +3dr8B00 +3dy9A00 +3e0mB00 +3e4pA00 +3e4vA00 +3e6bB00 +3e78A00 +3e7jB00 +3e8wA00 +3e9sA00 +3eb9A00 +3ebhA00 +3ecnB00 +3edjA00 +3ekgB00 +3ekmA00 +3emwA00 +3emyA00 +3engA00 +3envA00 +3eonC00 +3eovB00 +3ephA00 +3eq9A00 +3eryB00 +3es7A00 +3etrE00 +3euvB00 +3exhC00 +3exhE00 +3f70A00 +3f7tA00 +3f9cB00 +3fbuA00 +3fg4B00 +3fhvA00 +3fmqA00 +3fmwA00 +3fnuA00 +3fr8B00 +3fssA00 +3fv3G00 +3fvlB00 +3fxlA00 +3fxrA00 +3fz5A00 +3g3uB00 +3g5kA00 +3g68B00 +3g6nA00 +3gd9A00 +3gf3A00 +3gguB00 +3gh5A00 +3ghgE00 +3gjbB00 +3gm5A00 +3gmvA00 +3goyA00 +3gyhA00 +3gyqB00 +3h0mJ00 +3h3lB00 +3h5zA00 +3h62A00 +3h7jB00 +3h8gC00 +3h9kD00 +3hhiB00 +3hhwC00 +3hi0B00 +3hk9E00 +3hklB00 +3hkvA00 +3hmzA00 +3hpeA00 +3hpyB00 +3hrdC00 +3ht5A00 +3htxD00 +3hw4D00 +3hwkE00 +3hwoB00 +3hxfB00 +3i0uA00 +3i3aB00 +3i3lA00 +3i45A00 +3i53A00 +3i5aA00 +3i6mA00 +3i98A00 +3i99A00 +3ie1B00 +3ifzB00 +3ihzA00 +3iiiA00 +3ikbB00 +3ilfA00 +3ioqA00 +3it3A00 +3it6A00 +3it7B00 +3itcA00 +3iuqA00 +3iylR00 +3jbeA00 +3jtkB00 +3jucA00 +3jyjA00 +3k3oA00 +3k4dB00 +3k6lA00 +3k7vB00 +3k87B00 +3k8gB00 +3kb4C00 +3kdzB00 +3kgyA00 +3khsD00 +3ki6A00 +3kjrB00 +3kqiA00 +3kt7A00 +3kvaA00 +3kvnB00 +3kw0A00 +3kw5A00 +3kxaD00 +3kyqA00 +3kz7A00 +3l11A00 +3l4kA00 +3l4lA00 +3l95C00 +3la7A00 +3lbaA00 +3ld4A00 +3ldbA00 +3ldfA00 +3ldrA00 +3legA00 +3lhlA00 +3liaA00 +3livA00 +3lkbA00 +3llrC00 +3lm1A00 +3lmkB00 +3lqiA00 +3lstA00 +3luyA00 +3lyiA00 +3m34A00 +3m4fC00 +3m5cA00 +3m5hE00 +3m5pA00 +3m6rA00 +3m6sC00 +3m6vA00 +3m8tA00 +3maxA00 +3meaA00 +3mi0C00 +3mi5A00 +3mjeA00 +3mosA00 +3mpbB00 +3msuA00 +3mvyA00 +3mwsB00 +3mx6A00 +3n0sA00 +3n0tB00 +3n10B00 +3n2cF00 +3nbqD00 +3nf4A00 +3nfzA00 +3nhiA00 +3nihA00 +3njqA00 +3njzA00 +3nk7A00 +3nnbA00 +3nnlA00 +3npkB00 +3nsnA00 +3nzpB00 +3o14A00 +3o3nC00 +3o7qA00 +3o9mA00 +3o9pA00 +3ob6A00 +3obxA00 +3obzA00 +3ocxA00 +3odmE00 +3ognB00 +3oijB00 +3okxB00 +3olrD00 +3omgA00 +3ooiA00 +3optA00 +3otpD00 +3owcB00 +3oxoG00 +3ozbE00 +3ozmF00 +3p0fA00 +3p0jA00 +3p0wC00 +3p0xA00 +3p37C00 +3p73A00 +3p87G00 +3p8eA00 +3p8hA00 +3pb9A00 +3pboA00 +3pcnF00 +3pcsB00 +3pf7B00 +3pfpB00 +3pfrC00 +3pg6C00 +3phcD00 +3phdB00 +3pijB00 +3pkdA00 +3pkoA00 +3pkxA00 +3pmiD00 +3pmpB00 +3pocA00 +3popB00 +3pp9C00 +3pr3B00 +3pt1A00 +3pt9A00 +3ptkB00 +3pu3B00 +3puqB00 +3pvcA00 +3pvrA00 +3pwvD00 +3pxpC00 +3q0gF00 +3q34A00 +3q35A00 +3q3mE00 +3q4kA00 +3q5rA00 +3q7jA00 +3q9cE00 +3qazZ00 +3qb8A00 +3qd9B00 +3qk8C00 +3qkjD00 +3qmkA00 +3qoxA00 +3qq3A00 +3qryB00 +3qs1C00 +3qw8A00 +3qxqC00 +3qxyA00 +3qzyA00 +3r0qA00 +3r52A00 +3r75A00 +3r95A00 +3r97A00 +3r9tB00 +3rceA00 +3rh7D00 +3ribB00 +3rpnB00 +3rq4A00 +3rsjC00 +3rt3A00 +3rv8B00 +3rx6A00 +3rybA00 +3rywC00 +3rznA00 +3s1sA00 +3s3nA00 +3s6fA00 +3s6yC00 +3s99A00 +3s9zA00 +3sbcC00 +3sbfD00 +3sczB00 +3sf6A00 +3sieA00 +3sl0A00 +3sm2B00 +3smaA00 +3sn4A00 +3so6A00 +3souA00 +3sqmA00 +3sraB00 +3srzA00 +3ssoC00 +3su9A00 +3sw5D00 +3sxnD00 +3symA00 +3sz5A00 +3t1uA00 +3t3cB00 +3t4jB00 +3t58A00 +3t89F00 +3tavA00 +3tb5B00 +3tbeF00 +3td7A00 +3te4A00 +3tegA00 +3tehB00 +3thtB00 +3tlbA00 +3topA00 +3tt7B00 +3ttyF00 +3ty2B00 +3u04A00 +3u1tA00 +3u2sC00 +3u41C00 +3u7mA00 +3u86A00 +3u9wA00 +3ua3B00 +3ubmC00 +3ucbA00 +3udiB00 +3uerA00 +3uesA00 +3ufmA00 +3ujhB00 +3ul2D00 +3umvB00 +3unbH00 +3unfH00 +3unfK00 +3unfN00 +3unvB00 +3uoaB00 +3uoxB00 +3upoB00 +3uqiA00 +3uriA00 +3usoB00 +3usuG00 +3uthD00 +3uwbA00 +3uyyB00 +3v17C00 +3v1kA00 +3v3wA00 +3v56B00 +3v68A00 +3v77F00 +3v8hC00 +3v99A00 +3valA00 +3vbhA00 +3veuA00 +3vgdA00 +3vikA00 +3vivA00 +3vj6A00 +3vjcE00 +3vl9A00 +3vmpA00 +3vmtA00 +3vmwA00 +3vnzA00 +3vseA00 +3vslB00 +3vsuC00 +3vt0A00 +3vwdA00 +3vx1A00 +3vywA00 +3vzbA00 +3vzoA00 +3w21A00 +3w54C00 +3w6dC00 +3w7xA00 +3wbaA00 +3wdyA00 +3we0A00 +3we7B00 +3wevA00 +3wh1A00 +3wiqA00 +3wj1A00 +3wkgA00 +3wl6B00 +3woqA00 +3wpmB00 +3wqzA00 +3wrgA00 +3wsgA00 +3ww1A00 +3wwjF00 +3wy4A00 +3x0dA00 +3x0yB00 +3x3eA00 +3zdaA00 +3zg8B00 +3zgeA00 +3zgjA00 +3zgpA00 +3zj0A00 +3zjxD00 +3zkgA00 +3zmbB00 +3zseA00 +3zt5C00 +3zupB00 +3zvxA00 +3zwbB00 +3zxlA00 +3zzmA00 +4a0tA00 +4a39A00 +4a3rD00 +4a4aA00 +4a6dA00 +4a6kC00 +4ac7C00 +4ac8A00 +4ag7B00 +4am8E00 +4aoxA00 +4aq0A00 +4aqlA00 +4atfC00 +4autA00 +4aw7A00 +4awhB00 +4ayoA00 +4b10C00 +4b17A00 +4b21A00 +4b4fA00 +4b8pA00 +4b95C00 +4b9wB00 +4bb9A00 +4bcaA00 +4be3A00 +4beuA00 +4bj6E00 +4bosA00 +4bp9F00 +4bpsA00 +4bpzB00 +4bq3C00 +4bq6D00 +4bqoB00 +4bt3A00 +4btvB00 +4bu0A00 +4bu2A00 +4bupA00 +4bvsA00 +4bvvA00 +4bvwB00 +4bw5A00 +4bxrA00 +4bxwA00 +4bz6A00 +4c03B00 +4c0pD00 +4c1eB00 +4c1hA00 +4c2gA00 +4c5rA00 +4c6lA00 +4c8dA00 +4ce5A00 +4cevA00 +4cfoA00 +4chiA00 +4ci2B00 +4cj6A00 +4cp0A00 +4cp8A00 +4cpkB00 +4cq6B00 +4cqbB00 +4ctsA00 +4cubB00 +4cxtA00 +4cy8D00 +4czzA00 +4d0dJ00 +4d1aA00 +4d1jD00 +4d6eA00 +4daaB00 +4ddqF00 +4dlcA00 +4dmgB00 +4dolA00 +4dpdB00 +4dr9B00 +4driA00 +4drjA00 +4dunA00 +4dx9K00 +4dz2B00 +4e0fA00 +4e0vB00 +4e2sO00 +4e4vB00 +4e6tB00 +4e70B00 +4e8cA00 +4ehiA00 +4eiqB00 +4eoyA00 +4etzA00 +4ev5F00 +4ev6E00 +4evrA00 +4evsA00 +4eyfB00 +4ezhB00 +4f07G00 +4f0wA00 +4f13B00 +4f27A00 +4f35C00 +4f3zC00 +4f5zA00 +4f66B00 +4fchA00 +4fe7A00 +4fh1A00 +4fivA00 +4flnC00 +4fnbA00 +4fnsA00 +4fo8A00 +4foaA00 +4fp9A00 +4fsxB00 +4ft2A00 +4fw7C00 +4fwjB00 +4g32A00 +4g4jA00 +4g56C00 +4g67A00 +4g8cA00 +4g8jF00 +4gaoA00 +4gbaB00 +4gbdB00 +4gc9A00 +4ggmA00 +4gikB00 +4gjzA00 +4gl8A00 +4gmeB00 +4gn1B00 +4go8A00 +4gplB00 +4gpsA00 +4gsuA00 +4gsvB00 +4gu5B00 +4gvqB00 +4gx7B00 +4gz6B00 +4h04A00 +4h0uA00 +4h12A00 +4h3yA00 +4h69F00 +4h6bK00 +4h6uA00 +4hbmB00 +4hdmA00 +4hevA00 +4hgdC00 +4hh0A00 +4hhzA00 +4hjhA00 +4hmeA00 +4hotA00 +4hp5A00 +4hrcH00 +4hsrB00 +4hxgL00 +4hxyA00 +4hy7A00 +4hzeA00 +4i1rA00 +4i52D00 +4i6gA00 +4i75A00 +4ialA00 +4iavA00 +4icsA00 +4icyA00 +4iczA00 +4ie5A00 +4ig6A00 +4ig7A00 +4igqA00 +4ij8A00 +4iknA00 +4il0H00 +4impC00 +4inqA00 +4inwA00 +4io0A00 +4issA00 +4it1C00 +4iu0A00 +4iuwA00 +4izdB00 +4j0jB00 +4j25C00 +4j25F00 +4j3tA00 +4j4vC00 +4j5dA00 +4j5hA00 +4j9xA00 +4jbwG00 +4jd6C00 +4jgxB00 +4jmgA00 +4jmxA00 +4jn7A00 +4josB00 +4jpxA00 +4jreD00 +4juuB00 +4jvtA00 +4jwlA00 +4jwtA00 +4jyxB00 +4k2sB00 +4k2xB00 +4k30A00 +4k6nA00 +4k6xB00 +4kc8A00 +4kf6B00 +4kn0A00 +4koxA00 +4kpsA00 +4kqqB00 +4krhB00 +4ksiA00 +4kwwF00 +4l0mA00 +4l1uB00 +4l4tA00 +4l4xA00 +4l51A00 +4l5cD00 +4l82B00 +4lb0B00 +4lc9A00 +4lfdA00 +4lhkA00 +4lhnA00 +4livA00 +4lksB00 +4lo3C00 +4lq4A00 +4lvdA00 +4lxrB00 +4lzcA00 +4lzjD00 +4m0rB00 +4m1cA00 +4m26B00 +4m2cC00 +4m38A00 +4m7fB00 +4m8dE00 +4m8jA00 +4m8uA00 +4mc3A00 +4mdkB00 +4mdtD00 +4mfkA00 +4mfzA00 +4mgkA00 +4ml8C00 +4mloA00 +4mrfA00 +4mrtB00 +4ms4A00 +4mxeA00 +4mymA00 +4mzvA00 +4n03A00 +4n0iA00 +4n5fB00 +4n76B00 +4n8iA00 +4nf1C00 +4nf9B00 +4nftC00 +4nhyC00 +4nidA00 +4nkbB00 +4nmlA00 +4nnbA00 +4nndC00 +4nnrB00 +4nq3B00 +4ns1A00 +4nt8A00 +4nv5B00 +4nv7A00 +4nx0B00 +4nymC00 +4nz3A00 +4nz6B00 +4o48B00 +4o61A00 +4o7uD00 +4odoA00 +4odrA00 +4oesA00 +4ojvA00 +4ojzA00 +4okmB00 +4omcD00 +4omfC00 +4omgB00 +4onjA00 +4ontC00 +4oo6A00 +4oqqB00 +4ovaC00 +4oxdA00 +4oz9A00 +4ozvA00 +4p04B00 +4p1wC00 +4p56C00 +4p5hJ00 +4p6rA00 +4pahA00 +4pehG00 +4pfuB00 +4pfyB00 +4pghC00 +4pgnB00 +4ph7B00 +4pinB00 +4piqA00 +4pj5A00 +4pq9B00 +4pqaA00 +4pr3B00 +4prhA00 +4pv6K00 +4pvrA00 +4pw4A00 +4pwcA00 +4px7A00 +4pxbB00 +4pxdB00 +4pyhA00 +4pytA00 +4q2bE00 +4q2gA00 +4q42B00 +4q4iA00 +4q60A00 +4q72A00 +4q7gA00 +4q9oA00 +4qa4A00 +4qafA00 +4qbbA00 +4qenA00 +4qfhA00 +4qflA00 +4qicA00 +4qjkA00 +4qkdB00 +4qt9B00 +4qu2A00 +4qwiL00 +4qwiN00 +4qwmA00 +4r29D00 +4r4nQ00 +4r4yA00 +4r67L00 +4r67V00 +4r6iA00 +4r84A00 +4r88A00 +4ra0A00 +4reoA00 +4rg2B00 +4ri1A00 +4rl6B00 +4rm0A00 +4rnhA00 +4rp8A00 +4rqxA00 +4rs2B00 +4rtbA00 +4rubE00 +4rvdA00 +4rxdB00 +4ryfJ00 +4rzbA00 +4rzmB00 +4s0gA00 +4s13A00 +4s2tB00 +4s3rA00 +4tglA00 +4tkgA00 +4tkxA00 +4tlgB00 +4tnvP00 +4tsnC00 +4tsrA00 +4tszQ00 +4tvmA00 +4tvuC00 +4txjB00 +4tyvB00 +4u0vA00 +4u33D00 +4u62B00 +4u6jA00 +4u9vA00 +4ua3B00 +4uamC00 +4ucbB00 +4ufcA00 +4uuqA00 +4uybA00 +4uzlA00 +4v08B00 +4v1cI00 +4w50B00 +4wclA00 +4wcxB00 +4wdaA00 +4wgxC00 +4wkrA00 +4wlkA00 +4wm8A00 +4wrcA00 +4wriA00 +4ws0A00 +4wswF00 +4wv8A00 +4wxlB00 +4wymE00 +4wyuA00 +4x1dA00 +4x2tF00 +4x3qD00 +4x6cC00 +4x6jA00 +4x84A00 +4x8eB00 +4xb5A00 +4xboB00 +4xcaD00 +4xg0A00 +4xhcA00 +4xl8C00 +4xlyA00 +4xmaA00 +4xmrA00 +4xnwA00 +4xruC00 +4xsdA00 +4xwtA00 +4y33B00 +4y5sB00 +4y6kC00 +4y6qA00 +4yfaC00 +4yicB00 +4yjkB00 +4ylhI00 +4ylqB00 +4ymwC00 +4yn2A00 +4ynnA00 +4yoyC00 +4yp1A00 +4ypaB00 +4yutB00 +4yvgA00 +4yx6A00 +4yx9A00 +4yz3B00 +4z2tB00 +4z44A00 +4z4pA00 +4z73L00 +4z7fB00 +4za4A00 +4zacB00 +4zadA00 +4zbgA00 +4zc6B00 +4ze9A00 +4zevA00 +4zfkB00 +4zl4A00 +4zlaD00 +4zlfA00 +4zm6A00 +4zo3B00 +4zocB00 +4zowA00 +4zraA00 +4zrtA00 +4zwbA00 +4zxaF00 +4zzxA00 +5a01B00 +5a0jA00 +5a2cA00 +5a3kA00 +5a60A00 +5a63B00 +5a65B00 +5a66A00 +5aa5L00 +5abaB00 +5ac5A00 +5afpA00 +5agdB00 +5ai9A00 +5apaA00 +5aprA00 +5axrA00 +5b8iC00 +5bntC00 +5boaE00 +5bp0J00 +5bq2D00 +5bqyF00 +5btxA00 +5bugD00 +5bx2A00 +5by6B00 +5c11A00 +5c17A00 +5c3pC00 +5c3pD00 +5c5tA00 +5c6vC00 +5c8tB00 +5c90G00 +5c9aA00 +5ce8A00 +5cedA00 +5cfyB00 +5cg0B00 +5cg5A00 +5cg9A00 +5cimB00 +5cltC00 +5cniB00 +5cr2B00 +5crwA00 +5ct2A00 +5ctoA00 +5cuyD00 +5cvvB00 +5czyA00 +5d2kA00 +5d9yA00 +5dapA00 +5dgrA00 +5dj4E00 +5dk6A00 +5dkiY00 +5dkxA00 +5dlbA00 +5dqrD00 +5dstG00 +5duaA00 +5dulA00 +5dulC00 +5dw5B00 +5dw8A00 +5dwfD00 +5dwnC00 +5dz2A00 +5dzkC00 +5dzkS00 +5e3aA00 +5e4wD00 +5e6oB00 +5ec5F00 +5eegB00 +5elhB00 +5ep9B00 +5epaF00 +5eq9B00 +5eqiA00 +5er8A00 +5ermB00 +5eroC00 +5exdL00 +5eyhA00 +5ezsA00 +5f2tB00 +5f4zC00 +5f6uA00 +5fc3B00 +5fd8B00 +5fgfW00 +5fiaA00 +5fjwF00 +5fmgI00 +5fobA00 +5fqhA00 +5fusB00 +5fy7A00 +5fy8A00 +5fyzA00 +5h8jJ00 +5hguA00 +5hh7A00 +5hkpA00 +5hq8A00 +5hr4A00 +5hv4A00 +5hyoA00 +5i2bA00 +5i70A00 +5i91A00 +5ij7A00 +5im2A00 +5iwsA00 +5jd4E00 +5jjuA00 +5jp4A00 +7acnA00 diff --git a/heme.list b/heme.list new file mode 100644 index 0000000..24f6674 --- /dev/null +++ b/heme.list @@ -0,0 +1,596 @@ +101mA00 +1a2sA00 +1a4eD00 +1a4fA00 +1a4fB00 +1a56A00 +1a7vA00 +1a9wB00 +1akkA00 +1allA00 +1aqeA00 +1ashA00 +1b7vA00 +1b82A00 +1b8dA01 +1bbhA00 +1bbpA00 +1bccD01 +1be3C00 +1binA00 +1bvbA03 +1bz1A00 +1c2nA00 +1c52A00 +1c6oA00 +1c6sA00 +1c7dA00 +1cc5A00 +1cchA00 +1ccrA00 +1cg5A00 +1cg5B00 +1ci3A00 +1cl6A00 +1cnoG00 +1co6A00 +1cpcA00 +1cpcB00 +1cpqA00 +1ctmA00 +1cxaA00 +1cxyA00 +1cyfA00 +1cyjA00 +1d06A00 +1d1vA00 +1d4cA02 +1d7cA01 +1d8uA00 +1dlwA00 +1dm1A00 +1drmA00 +1dvhA00 +1dvvA00 +1dw0A00 +1dxtB00 +1e29A00 +1ebtA00 +1ecaA00 +1egyA00 +1etpA01 +1euoA00 +1ew6A00 +1ezvC00 +1f1cA00 +1f4uA00 +1f5oA00 +1f99A00 +1f99B00 +1fcbA00 +1fcdD01 +1fdhB00 +1fftE01 +1fhfA00 +1fj0A00 +1fs7A01 +1ft9A00 +1gcvA00 +1gcvB00 +1gdiA00 +1gdvA00 +1gjqA00 +1gksA00 +1gm4A02 +1gqaA00 +1gu2A00 +1gu6B01 +1gwsA14 +1gyoA03 +1h1oB02 +1h21A01 +1h31A01 +1h31B00 +1h97A00 +1hbgA00 +1hbhA00 +1hbhB00 +1hbrA00 +1hdsD00 +1he2A01 +1hlbA00 +1hlmA00 +1hroA00 +1i7yA00 +1iqcB01 +1it2A00 +1ithA00 +1iw1A01 +1ix3A00 +1izoA00 +1j0pA00 +1j77A00 +1jdlA00 +1jebA00 +1jjuA01 +1jmxA01 +1jniA01 +1jrxA02 +1kibA00 +1kn1B00 +1kqgC00 +1kr7A00 +1kwjA00 +1kx2A00 +1lhsA00 +1liaB00 +1ls9A00 +1ly8B03 +1m1pA01 +1m56A01 +1m7sA00 +1mg2D00 +1mhlB04 +1mj4A00 +1mjtA01 +1mqfA00 +1mwbA00 +1mytA00 +1n5uA05 +1ngkB00 +1nr6A00 +1ntfA00 +1oagA00 +1oahB02 +1ofwA09 +1ogyB01 +1oj6B00 +1or4A00 +1os6A02 +1outA00 +1outB00 +1prhA00 +1q90A00 +1qdbC04 +1qgwA00 +1qgwD02 +1qjsA00 +1qksA00 +1qn1A01 +1qn2A00 +1qwlA00 +1r3qA00 +1rz6A00 +1s56B00 +1s5lP00 +1s66A00 +1schB00 +1si8A00 +1sk7A00 +1soxA01 +1sp3A07 +1spgA00 +1spgB00 +1suoA00 +1sy7B00 +1t88A00 +1tguC00 +1tu9A00 +1u17A00 +1uvxA00 +1ux8A00 +1v4uA00 +1v4wB00 +1v75A00 +1w2lA00 +1w5cB14 +1w7oA03 +1we1A00 +1wmuB00 +1woxB00 +1wveB00 +1x3kA00 +1x3xA00 +1x9fA00 +1x9fB00 +1x9fD00 +1x9fG00 +1xbnA00 +1xf6B01 +1xq5A00 +1xq5B00 +1yeaA00 +1yhuA00 +1yhuB00 +1yhuC00 +1yiqA01 +1yq4D00 +1z1nA16 +1z24A00 +1zrtB00 +1zzhB01 +2a3mA03 +2amoB00 +2bh4A00 +2bk9A00 +2bkmA00 +2blfB00 +2bq4B03 +2bz9A00 +2c0kA00 +2c1dA00 +2c1dB00 +2c1vA01 +2c2cA00 +2c7jA00 +2c7jB01 +2c8sA00 +2ccyA00 +2civA01 +2czsA00 +2d09A00 +2d0sA00 +2d0wA00 +2d1eA00 +2d2mA00 +2d2mB00 +2d2mD00 +2dc3A00 +2dgeA00 +2e74A01 +2e84A14 +2eimA03 +2flqB01 +2fmyA00 +2fw5A01 +2fynA01 +2fynB00 +2hpdB00 +2hreA00 +2i89A00 +2i96A00 +2ibjA00 +2ig3A00 +2iufA00 +2ivfC00 +2j0pA00 +2j8wA00 +2je2A00 +2jxmB00 +2k2nA00 +2k3vA03 +2k78A00 +2l4dA00 +2noxB00 +2nwbA00 +2nzaA00 +2olpA00 +2oolA00 +2oyyA00 +2ozyA04 +2pbjD00 +2q2oA00 +2q7aA01 +2q8qA00 +2qppB00 +2r1hA00 +2r1hB00 +2r4zB00 +2r79A00 +2rfbA00 +2ri4D00 +2uulA00 +2uulB00 +2uydA00 +2v7iA00 +2vgrC00 +2vhdA00 +2vjhA01 +2vjhB00 +2vjrA00 +2vjrB01 +2vjtB00 +2vr0A06 +2vr0F03 +2vywA00 +2vzwB00 +2w31A00 +2wh8B00 +2wtgA00 +2wy4A00 +2x9oA00 +2xkrA00 +2xleA00 +2xq1O00 +2xtsB00 +2xykB00 +2y4eB01 +2y8hA00 +2ybqA01 +2yevB02 +2yiuB00 +2yk3A00 +2ynmC00 +2yp1C01 +2zboA00 +2zdoD00 +2zdpA00 +2zfoC00 +2zonD00 +2zooA00 +2zt9C01 +2zzsA00 +3a15B00 +3a4hA00 +3a9fA00 +3ae3D00 +3aeqA00 +3aq5A00 +3at5A00 +3at5B00 +3awmA00 +3ayfA01 +3b42A00 +3bcqA00 +3bcqB00 +3bk9A01 +3bxuB02 +3caoA03 +3cp5A00 +3cslB00 +3cwbC03 +3cx5D00 +3czhA01 +3dbmA00 +3dmiA00 +3dp5A00 +3dr0A00 +3dsjA00 +3e4wA00 +3e65B00 +3egwC00 +3ej6B03 +3ejeH01 +3ellA00 +3emmA00 +3fjwA00 +3gasA00 +3gm6A04 +3gw9A00 +3h4nB00 +3h8tA00 +3hf4A00 +3hq8A01 +3hx9A00 +3hyuA00 +3hyuB00 +3ia8A00 +3jbbI00 +3lf5A00 +3lxiB00 +3m5qA02 +3m97A00 +3mgxA00 +3mk7A01 +3mk7B01 +3mk7C01 +3mkbB00 +3ml1B01 +3mvcA00 +3nerB00 +3nn2B00 +3notA00 +3nu1A01 +3o0rC00 +3o0rD00 +3o5cA00 +3oa8B00 +3ocdA00 +3ov0A02 +3p3zA00 +3pc3A00 +3ph2A00 +3pmqA04 +3pt7B00 +3q08A00 +3qjtA00 +3qnsA00 +3qpiB00 +3qqrB00 +3qugA00 +3qzpB00 +3r9cA00 +3rivA00 +3rtlB01 +3rwlA00 +3s1iA00 +3sikB00 +3swjA01 +3t3zB00 +3t6dA01 +3tf8B00 +3tktA00 +3tm9A00 +3u8pB00 +3ubrA01 +3ucpA02 +3ut2A00 +3vliA00 +3vlmA00 +3volA00 +3vp5A00 +3vreB00 +3w2zA00 +3wctA00 +3wctB00 +3wctC00 +3wcuD00 +3wfxA00 +3wmmA00 +3x15A00 +3zbyB00 +3zhwA00 +3ziyA00 +3zjhB00 +4aamA00 +4atjB00 +4b2nA01 +4b2yA00 +4b4yA00 +4b7fA01 +4b8nB00 +4bf4D00 +4bjaA00 +4bwiA01 +4c0nA00 +4cabA00 +4cdpA00 +4cx9A00 +4czoA00 +4d1nC01 +4e04B00 +4e37B00 +4egnB00 +4eieA00 +4ejgE00 +4f0tB01 +4fa4B00 +4fofA00 +4g1bA00 +4g1xA00 +4gd3I00 +4gl5A00 +4gu7A00 +4gydA00 +4h0mA01 +4h2lB00 +4h8qA00 +4hkaA00 +4hrrA00 +4hrrB00 +4i3bA00 +4i8vC00 +4i91A00 +4j20A00 +4j6dB00 +4jetA00 +4jj0A01 +4jouA00 +4kmgA00 +4l0dA01 +4l2mA00 +4l6gA00 +4l6vS19 +4ljiA00 +4lm6A00 +4lm6B01 +4lm8A04 +4lmhD09 +4lmsA00 +4lmsC01 +4lmxC01 +4n4jA07 +4n4oA00 +4n73A00 +4nk2A00 +4o1wA00 +4o4sG00 +4o7gB00 +4oqrA00 +4ourB01 +4pwaD01 +4pwvA00 +4qi3A00 +4qi7A00 +4qoqA00 +4r1zA00 +4rknA08 +4rlrA00 +4rm4A00 +4tx3A00 +4u72A00 +4u8uA00 +4u8uB00 +4u8uC00 +4u8uD00 +4u99A00 +4ubsA06 +4uc1A05 +4uiiA00 +4uiqA00 +4uurA00 +4uylB00 +4uzvA00 +4v2kA00 +4w7jC00 +4wnuB00 +4x8yA00 +4xdiA00 +4xe3A00 +4xkbA00 +4xmhA01 +4xtqA00 +4xxiA00 +4xxlA00 +4xydB00 +4y7sA00 +4ympB00 +4yt3A00 +4zgxJ00 +4zvbA00 +5a13B00 +5akpA00 +5aqdA01 +5aqdM03 +5aurA00 +5b3iA00 +5b3vB01 +5b50A00 +5b6qA00 +5bv2B00 +5bv5A00 +5c2vC01 +5cx7E00 +5d1vA00 +5de0C00 +5dfxA00 +5f1aA01 +5f6zA00 +5ff1B05 +5foiA00 +5fujA00 +5fygA00 +5gj3A00 +5gweA00 +5hh3B00 +5irvC00 +5jggA00 +5jnzB00 +5k8zB01 +5kyoA00 +5kzlA00 +5l8rE04 +5l91A00 +5llyC00 +5lo9A02 +5loqC01 +5lthA00 +5mapB00 +5mg1A00 +5o0tA01 +5o1lB00 +5oheF00 +5t2kB00 +5ti9C00 +5tiaD00 +5v3uA00 +5vbuA00 +5vcgA00 +5x24A00 +5xnlC16 +5xnlD16 +5xnlV04 +5xnlW16 +5xnmA18 +5y1iA00 +5y8aA00 diff --git a/nucleotide.list b/nucleotide.list new file mode 100644 index 0000000..5e655c0 --- /dev/null +++ b/nucleotide.list @@ -0,0 +1,1553 @@ +13pkA00 +1a0iA00 +1a49C00 +1a6eA00 +1a6eB00 +1a82A01 +1a8rC01 +1agrB01 +1aszC00 +1b0uA00 +1b4sA00 +1b62A00 +1b6sB00 +1b76A00 +1b8aB00 +1bcpE00 +1bi9D00 +1bofA00 +1br1A00 +1br2A00 +1byuB00 +1c4kA01 +1ckmA00 +1clqC00 +1cm8A00 +1cnfA01 +1cozA00 +1csnA00 +1cz7D00 +1d2eA00 +1d5cA00 +1dawA00 +1dflA00 +1dj2A00 +1dj3B00 +1djnB01 +1dv2B00 +1dy3A00 +1e0jA00 +1e19A00 +1e22A01 +1e2fA01 +1e8xA00 +1e94F00 +1ei1B00 +1ej1B00 +1esqC00 +1excA01 +1eyzA00 +1f1hA00 +1f6bB00 +1f7qA00 +1f9aA00 +1finA00 +1fnnA00 +1fp6A00 +1frwA00 +1fwkA00 +1g2vA01 +1g3iV00 +1g3qA00 +1g41A00 +1g4aA00 +1g6oB00 +1gc5A00 +1gkzA00 +1gl7B00 +1glfA00 +1gn8A00 +1gq9A00 +1gqyB00 +1grnA00 +1gs5A01 +1gsaA00 +1gzfC01 +1h3eA00 +1h4qA00 +1h65B00 +1h79A01 +1h7uA00 +1hi5A00 +1honA00 +1hp1A00 +1htwA00 +1hurA00 +1huxA00 +1hwkD00 +1i52A00 +1i7lB00 +1ia9B01 +1id0A00 +1ii0B00 +1in5A00 +1iowA00 +1iqpA00 +1isgA01 +1ixsB00 +1j09A01 +1j1bB00 +1j1zB00 +1j7lA00 +1jcgA00 +1jedB00 +1ji0A00 +1jjvA00 +1jlrB00 +1jqhA00 +1ju9A00 +1jwaA00 +1jwhA00 +1k3cA00 +1kaoA00 +1kf0A01 +1kfdA00 +1kk3A00 +1kmnB01 +1kmnC01 +1ko5A00 +1kp2A00 +1ksfA04 +1kv3F00 +1kvkA00 +1kyqA00 +1l0oA00 +1lkxC00 +1looA00 +1m74A00 +1m7gB00 +1m83A00 +1mabB01 +1miyA00 +1mjhB00 +1mkjA00 +1mozB00 +1mx0C00 +1n06B00 +1n6lA00 +1nb6A00 +1nksF01 +1nktB00 +1nlkA00 +1nm5B00 +1nneC00 +1nqtC00 +1nrjB00 +1nueA00 +1nvfC00 +1ny5B00 +1nyrA00 +1nzxA00 +1o0hA00 +1o51A00 +1o6bA00 +1oe0B00 +1ojlE00 +1osnC00 +1oxuA00 +1p16B00 +1p39A01 +1p50A00 +1p72B00 +1p7lA00 +1pfkA01 +1phpA00 +1pk8D00 +1pkgA00 +1pvoI01 +1q1kA00 +1q3sB00 +1q99A00 +1q9sA00 +1qhgA00 +1qhyA00 +1ql6A00 +1qpcA00 +1qpgA00 +1qssC00 +1qvrA00 +1qzrA01 +1r0zA00 +1r5nA00 +1ra7A00 +1raaB00 +1rf8A03 +1rfuD01 +1ri1A01 +1rk2B01 +1rluA00 +1ryaA00 +1rzuA00 +1s16A00 +1s4eF01 +1s4oA01 +1s59A00 +1s5gA00 +1s8fB00 +1sazA00 +1sdmA00 +1skqA00 +1smcB00 +1svlA00 +1svwA00 +1sx3A00 +1sxjA00 +1sxjB01 +1sxjC00 +1sxjD01 +1sxjE00 +1sylA00 +1t5cA00 +1t6xB00 +1t7pC00 +1t8eC00 +1tc0B00 +1tuiA00 +1tuuA00 +1ty8A00 +1tz6B00 +1u0hC00 +1u0jA00 +1u3gA00 +1u54A00 +1u5rA00 +1u6rA00 +1u7wC00 +1ua2A00 +1uf9C00 +1uj2A01 +1ukvB00 +1ukyA01 +1un9A00 +1v1aA01 +1v25B00 +1v34A00 +1v3sA00 +1v8kA00 +1v9pA00 +1vc8A00 +1vfvA00 +1vfzA00 +1vj7A00 +1vpaA00 +1vtkA00 +1w1wD01 +1w2cA00 +1w4rA00 +1w5aB00 +1w5tB00 +1w78A01 +1w7iA00 +1wbpA00 +1wc6C00 +1wdtA00 +1wkkA00 +1wnlA00 +1wpgB00 +1wurA00 +1wuuC01 +1wvcA00 +1x3mA00 +1xdnA00 +1xexA00 +1xfvA00 +1xjeA00 +1xjqA01 +1xmiD01 +1xmmD00 +1xmsA00 +1xp8A00 +1xr1A00 +1xs1A00 +1xscA00 +1xtsA00 +1xu4A00 +1xx6A00 +1y56A01 +1y8qD00 +1yfrA00 +1yhnA00 +1yp3C00 +1yrbA00 +1ytmA00 +1yunB00 +1z0fA00 +1z0iA00 +1z0jA00 +1z22A00 +1z2nA00 +1z6yA00 +1z7eB00 +1z84A00 +1zaoA00 +1zauA00 +1zfnA00 +1zmcE01 +1znyA00 +1zp9B00 +1zs6A00 +1zxnC00 +1zy5A00 +2a00A00 +2a19B00 +2a19C00 +2a5jA00 +2a8sA00 +2a9zA02 +2acxA00 +2akoA00 +2an9A00 +2aqxA00 +2atvA00 +2awnA00 +2b51A00 +2b92B00 +2b9iA00 +2be9B00 +2bejA00 +2bfrA00 +2biyA00 +2bjaB00 +2bm1A00 +2bmdA00 +2bnfA00 +2bovA00 +2bq1B01 +2briA00 +2btqA00 +2bufC00 +2bvcA01 +2c03B00 +2c39D00 +2c49A01 +2c98A00 +2c9oA00 +2cdnA01 +2cduB01 +2ce7C00 +2ch4A00 +2ch6A00 +2chqA00 +2cjaB00 +2cjwA00 +2ckpA00 +2clsA00 +2cn5A00 +2cnqA00 +2cnwD01 +2cxxA00 +2d0oC00 +2d32A02 +2d3aA01 +2db3E00 +2dcnA01 +2dejA01 +2dhrA00 +2dr3E01 +2dvoA00 +2dwcB00 +2dyaB00 +2dykB00 +2e21C00 +2e2pA00 +2e5yB00 +2e87A00 +2e9rC00 +2efcB00 +2eg2A00 +2eryB00 +2f02A00 +2fahA00 +2faqA00 +2fb3A01 +2ff7A00 +2fh5B00 +2fn4A00 +2fnaA00 +2fp4B00 +2fsnB00 +2g2fA01 +2g5iB00 +2g77B00 +2g88A01 +2ga9B00 +2gekA00 +2gf0B00 +2gjaA00 +2gjkA00 +2gksB00 +2gm1A01 +2grjA00 +2gryA00 +2gvzB01 +2gxaG01 +2h1fA00 +2h57B00 +2h5eA00 +2hcbD00 +2hf9A00 +2hixA00 +2hldK00 +2hryA00 +2hs4A00 +2hupA00 +2hv7B00 +2hvwA00 +2hw1A01 +2hyiE00 +2i4oA00 +2i5bA00 +2icxB00 +2idvA00 +2if8A00 +2ijmB00 +2imwC00 +2iopA00 +2iryA00 +2is6C00 +2itxA00 +2iutA00 +2ivpA00 +2ixfB01 +2iyvA00 +2j0vB01 +2j0wA01 +2j1lA00 +2j3eA00 +2j3mB00 +2j4eB00 +2j4lF00 +2j4lH00 +2j87D00 +2j9eB00 +2j9lC00 +2ja1A00 +2jasC00 +2jfgA01 +2jg1A00 +2jgbA00 +2jibA01 +2jjxB01 +2jkiB00 +2jlgC01 +2jlxB00 +2kmxA00 +2ksqA02 +2lkdA00 +2mjpA00 +2mscC09 +2nmvB01 +2no0A00 +2npfB01 +2ns1B00 +2nt8A00 +2nunA00 +2nzjC00 +2o08B00 +2o8cD00 +2oapB00 +2obmA00 +2ocpA00 +2ogiB00 +2oidB00 +2oilA00 +2ojwC00 +2ooyF01 +2owmC00 +2oxcA00 +2ozeA00 +2p09A00 +2p5sB00 +2p9kA00 +2pbzA00 +2pc9B00 +2peyB00 +2phnB00 +2pknA00 +2pmdA00 +2pmlA00 +2po0A00 +2pulA01 +2pyjH00 +2pywA01 +2q0eA00 +2q16A00 +2q28A01 +2q2rA01 +2q2tD00 +2q3hA00 +2qbyC00 +2qbyD00 +2qenA00 +2qg4E00 +2qkmB00 +2qo7A00 +2qq0A01 +2qsyA00 +2qthA00 +2qu8A00 +2qxxA00 +2qz4A00 +2r65A00 +2r6fA00 +2r6gB00 +2r6rA00 +2r7kA00 +2r86A00 +2r8fA00 +2r9vA00 +2rd5D00 +2rhlB00 +2rsfA00 +2shkB00 +2srcA00 +2uz3B00 +2v1uA00 +2v2zB01 +2v55C00 +2v55D00 +2v7yA00 +2varA01 +2vawA00 +2vb6A00 +2vedA00 +2vf7C00 +2vhqC00 +2vpqB00 +2vt3B00 +2vugA00 +2vvgB00 +2vwbA00 +2vwiA00 +2w41B00 +2w4kA00 +2w58A00 +2w6dB01 +2wbeC00 +2we3A00 +2we5A00 +2wepA00 +2wjgA00 +2wkpA00 +2wmcA00 +2wojD01 +2wpdF01 +2wqeA02 +2wqnA00 +2wssA00 +2wtkC00 +2wtuA00 +2ww4A00 +2wwfC01 +2wwwD01 +2x2eA00 +2x60B00 +2x6tB01 +2xd4A00 +2xelA00 +2xj9A00 +2xjaA00 +2xkaF00 +2xs0A00 +2xszC00 +2xszF00 +2xtiB00 +2xtoA00 +2xwlB00 +2xwnB00 +2xzlA00 +2xzwC00 +2y4kA00 +2y65D00 +2y6pC00 +2y83E00 +2y9qA00 +2yaaA00 +2yhyA05 +2ynmA03 +2yw2B00 +2ywvB00 +2ywwA01 +2z02A00 +2z09A00 +2z1mA01 +2z4rA00 +2z7qA00 +2zanA00 +2zdgC00 +2zejB01 +2zetA00 +2zs8A00 +2ztsA00 +2zu9B00 +3a0tA00 +3a1eB00 +3a37A00 +3a4lB00 +3a5cA00 +3a7hB00 +3ab3A00 +3ab8A01 +3acaA00 +3ajeA01 +3akkA00 +3alnA00 +3alnC00 +3aloA01 +3amtA00 +3auyA00 +3ax6B00 +3b0xA00 +3b6vA00 +3bf1A00 +3bfkB00 +3bh7A00 +3bjuA01 +3brbB00 +3bsnA00 +3bwdA00 +3c23B00 +3c3eA01 +3c41A00 +3c4wB00 +3c5cB00 +3c5eA00 +3c7nA00 +3c7nB00 +3c9uB00 +3cb2A00 +3cisG01 +3clvA00 +3cnnA00 +3cokA00 +3cphB00 +3cr3A00 +3crcB00 +3crlA00 +3cwqA00 +3cwzA00 +3d2rB00 +3d5wA00 +3d8bB00 +3dcbA00 +3dinA00 +3dkcA00 +3dkpA00 +3dlsA00 +3dm5A00 +3doeA00 +3drbB00 +3dsrA00 +3dt7A00 +3dwlG00 +3dz8A00 +3dzdA00 +3dzhA00 +3dzvA00 +3e70A00 +3ea0B00 +3eanD01 +3eccA00 +3efsA00 +3egiB00 +3eihA00 +3ejmA00 +3emdA01 +3epsA01 +3eujA00 +3ewsA00 +3ez2B03 +3f2dC00 +3f8pD00 +3fceA00 +3fd6B01 +3fdxA00 +3fe2A00 +3ffuA00 +3fpiA00 +3fvqB01 +3fwrB00 +3fwyA00 +3fzpA00 +3g2fA00 +3g59A00 +3gbjA00 +3ge1B00 +3glfG00 +3gniB00 +3go6B00 +3gonA01 +3gplA00 +3gqcA00 +3gqkA00 +3gucA00 +3gviB00 +3gx9A01 +3h0lB00 +3h3aB00 +3h4lB00 +3h4mA00 +3h5nA00 +3hfwA00 +3hgmA00 +3hj1B00 +3hjnA00 +3hkoA00 +3hmnA00 +3hqdA00 +3hqoD00 +3hwsA00 +3hx4A00 +3hxxA00 +3hyoA00 +3hz6A00 +3hziA00 +3i0oA00 +3i12D00 +3i4lA00 +3i5xA00 +3i7vA00 +3i8xA00 +3iayC00 +3ibgB00 +3ie7A00 +3iedA00 +3iewA01 +3ig8A01 +3ih0A00 +3ihlA00 +3ikhA00 +3in1A00 +3innD00 +3io3A00 +3iq0A00 +3iqxA00 +3is5F00 +3iwjA00 +3j15B00 +3j5vA00 +3j94A00 +3j9lG00 +3jbzA00 +3jq3A00 +3jqmI00 +3ju6A01 +3jvvA00 +3k09F02 +3k1jA00 +3k30A01 +3k58A00 +3k5iA01 +3k60A00 +3k8dA01 +3kalA00 +3karA00 +3kb1A00 +3ke5B00 +3kexA00 +3kfeH00 +3kgdD00 +3kh5A03 +3kjgA00 +3kkqA00 +3kmwA00 +3kn5B00 +3ko4D00 +3kvgB00 +3kx2A00 +3l2pA00 +3l86A00 +3l8kA00 +3la6B00 +3lduA00 +3lf0B01 +3lgxC00 +3lj0A00 +3lkiB00 +3lkkB00 +3ll3A00 +3ll9B00 +3llmB00 +3lltA00 +3lq3A01 +3lreB00 +3lrpA00 +3lssB01 +3lv8A00 +3lvqA00 +3lxxA00 +3lzzA00 +3m6aA00 +3m93A00 +3mbiA00 +3meyB00 +3mfsA00 +3mhyB00 +3miaA00 +3mleB01 +3mufA00 +3mwyA00 +3n6mA00 +3n8dB00 +3nbfC02 +3ncrC01 +3nd6A00 +3ng0A00 +3nhbA00 +3nieA00 +3nizA00 +3nl6A01 +3o3pB00 +3o6xA01 +3o8dA00 +3o8lA00 +3o98A01 +3oaaD00 +3oaaI00 +3ocmA00 +3ohaA00 +3ohrA00 +3okaA00 +3opyD00 +3orkA00 +3otbA00 +3ouuA00 +3ozxB01 +3p23C00 +3peyA00 +3pfiA00 +3pfqA00 +3pkpA00 +3plsA00 +3pnlB00 +3pqcA00 +3px0A00 +3px6B00 +3pyfA00 +3pyzA00 +3pzpB00 +3q4pA00 +3q53A00 +3q5iA00 +3q86A00 +3q9lA00 +3qf7B01 +3qfuA00 +3qktA00 +3qktD01 +3qo7A00 +3qpwA00 +3qttB01 +3qvfA00 +3qx9C00 +3r03A00 +3r5xA00 +3refA00 +3reuA00 +3rfxA00 +3rq6A01 +3rs9A02 +3rsbB00 +3ruqC00 +3rwoA00 +3ryfB00 +3s3tA00 +3s6aA00 +3s8cA00 +3se7D00 +3sfvA00 +3siwA00 +3sl2A00 +3ss8A00 +3synA00 +3t1oA00 +3t35A00 +3t4nC00 +3t5dA00 +3t99A00 +3ta1D01 +3tdwA00 +3thzA00 +3tifB01 +3tiiB00 +3tk1A00 +3tk1B00 +3tr5B00 +3ttcA01 +3tuiC00 +3ty5A00 +3tzlB00 +3u06B00 +3u5zA00 +3u67A00 +3uboB01 +3ubtB00 +3uc5A00 +3uf6A00 +3ufgA00 +3ufxB00 +3ug6B01 +3uieB01 +3uimA00 +3uk6G00 +3uk6L00 +3ukdA00 +3umoA00 +3ungA00 +3uq8A01 +3v00B00 +3v2uC01 +3v4sA00 +3veyA01 +3vmmA00 +3vn9A00 +3votA00 +3vpbC00 +3vqtA00 +3vr6B00 +3vx4B01 +3vzuA00 +3w0sA01 +3w1gA01 +3w6nB00 +3w8qA00 +3wbzE00 +3wfrE00 +3whkA00 +3wjpA00 +3wqtB00 +3wryB00 +3wryC01 +3wt0C00 +3wv9A00 +3wwmA00 +3wxmA00 +3x03A00 +3x1kD00 +3zbqA00 +3zc7A00 +3zecB00 +3zf8A00 +3zfdA00 +3zidA00 +3zkdC00 +3zlbA00 +3zm7A00 +3zq6B01 +3zq6D01 +3zvmA01 +3zy3A00 +3zznA00 +4a36A00 +4a5aD00 +4a5lA00 +4a6jA00 +4a9xA00 +4ag5A00 +4am7B00 +4anjA00 +4arzA00 +4arzB00 +4atbA00 +4auiA00 +4ax8A01 +4axeA00 +4b45A00 +4b46A00 +4b47A00 +4b6uA00 +4b8wB01 +4bebA00 +4bfmA00 +4bg4A00 +4bgaC02 +4bivA00 +4bjrA00 +4bloL01 +4bqlB00 +4br5A00 +4brdA00 +4btjB00 +4bwpA00 +4byfA00 +4bzqB01 +4c0sB00 +4c2wA00 +4c30A00 +4c5kB00 +4c7oC00 +4c7oD02 +4cdgA00 +4cf7B01 +4cidA00 +4ciuA00 +4cojB02 +4cqmC00 +4cr8D00 +4crsA00 +4ctaB00 +4cvnA00 +4cxaA00 +4cyjB00 +4czlA00 +4czyB00 +4d05A00 +4d2iA00 +4d79C00 +4d82B00 +4d86A01 +4dbqA00 +4dcaA00 +4deeA00 +4djtB00 +4dpuA01 +4dqwA00 +4dtfA00 +4dx2A00 +4dxaA00 +4dxlA01 +4dz6A00 +4e80C00 +4e84A00 +4ebuA00 +4edgA02 +4edhA01 +4ehtA00 +4ei9A00 +4ej7A00 +4ekkA01 +4eqmA00 +4erpD00 +4esvE00 +4f1mA00 +4f6tA00 +4f7wA00 +4f96A00 +4f9aC00 +4fe2B01 +4feyA00 +4ffbA00 +4ffbB00 +4fflA02 +4fg9B00 +4fidA00 +4fkyA00 +4fl2A00 +4frzA00 +4fs1C00 +4fu0B00 +4fvqA00 +4fydA00 +4g5yA00 +4gczA01 +4gkrB00 +4gl2A00 +4gnkA00 +4gqtA00 +4gt8A00 +4gvjA00 +4gx1A00 +4gx1B00 +4gxqB00 +4h1gA01 +4h2uB00 +4h4kB00 +4hdgA00 +4hluC00 +4hndA00 +4ho9A01 +4hqjD00 +4hr2A00 +4hseA00 +4hutA00 +4hvcB00 +4i1vA00 +4i2iA00 +4i3vA00 +4i4tA00 +4i81E00 +4i94B00 +4i9bA00 +4ic7A00 +4idoB00 +4ieeA00 +4ienA01 +4ifcB00 +4ig8A00 +4ii3A00 +4ileA00 +4irkA00 +4iszA00 +4itmA00 +4iw3B00 +4ix4B00 +4iy0A00 +4iynB00 +4j5sA00 +4j7cB00 +4j95D00 +4j96B00 +4j9vA01 +4javA00 +4jd2B00 +4jdcA00 +4jkiA02 +4jn4A00 +4jyzA00 +4jz7A00 +4jz7C00 +4jztA00 +4k2rA00 +4k4hI01 +4k9aA01 +4kgmA00 +4klzA00 +4kp4A00 +4kqbA02 +4kr7A00 +4krcA00 +4ku4A00 +4kvaB01 +4kxfB00 +4kxfH00 +4kyuA00 +4l16A00 +4l1kA00 +4l2iB02 +4lc1A00 +4lgdA00 +4lhyA00 +4lniA01 +4lpsA00 +4lrjA00 +4lrlC02 +4lt6A00 +4lv5B00 +4lv8A00 +4m15A01 +4m69A00 +4m7xA00 +4m8iA00 +4m9xC01 +4mb2B00 +4mdeA00 +4mitC00 +4mo4C00 +4mobA01 +4mwdB01 +4mwhA00 +4mz7B01 +4n57B00 +4n67A00 +4nahB00 +4ncfB00 +4ncnB00 +4ndoB00 +4ng4B00 +4nh0B00 +4nl0A00 +4nl4A00 +4nlgA00 +4nmjB00 +4nxuC00 +4o1pC00 +4o4eA01 +4o4jF00 +4o7lA00 +4oauA01 +4oe4B00 +4oh4A00 +4ohxA00 +4oi4B00 +4orkB00 +4otpA00 +4oznA00 +4p33A00 +4p4tA00 +4p7aA00 +4p9dA00 +4pdsA00 +4pfkA01 +4phgA00 +4phtF00 +4pj1B00 +4pl9A00 +4pxaA00 +4q5hA00 +4qclA00 +4qdiA00 +4qhtC00 +4qjiB00 +4qnyB00 +4qqxC00 +4qreA01 +4qzbA00 +4r2iA00 +4r2lA00 +4r39A00 +4r3aB00 +4r7yB01 +4r7zA00 +4r8qA00 +4r9uD01 +4rf8A00 +4rkzA00 +4rqeA01 +4rv7C00 +4rvoB00 +4rx6B01 +4rz3A00 +4rzqA01 +4s0fB01 +4s1hA00 +4s35A00 +4ts7A00 +4u0mA00 +4u0uA01 +4u40A00 +4u98A00 +4uczA00 +4ueuA00 +4uofA00 +4uqoB00 +4usjA01 +4usjC00 +4utgA00 +4uxjC00 +4uxxC00 +4uyaA00 +4v02A00 +4v0lA00 +4v1tB00 +4v4oY00 +4v81A00 +4v81X00 +4v8rL00 +4v94A00 +4v94C00 +4v94E00 +4v94F00 +4v94H00 +4w7sB01 +4wb7B00 +4wbdA00 +4wc0B00 +4wgjA00 +4wh3A00 +4wjmA00 +4wnrA00 +4woeA00 +4wopA00 +4wpuA00 +4wtiC02 +4wvyA00 +4ww0B00 +4ww4B00 +4ww9A00 +4x2dA00 +4x3vB01 +4x4oC00 +4xbrA00 +4xcdA00 +4xckB00 +4xcqA00 +4xd8A00 +4xf6B01 +4xgxB00 +4xhgA00 +4xhoA00 +4xivB00 +4xj3A00 +4xjcA00 +4xlvA00 +4xruB01 +4xruD00 +4xsvA01 +4xulA00 +4xyjA00 +4y0vA00 +4y0xA00 +4y8vC00 +4y8vD00 +4y9dA00 +4yacA00 +4yb7A00 +4ydqA00 +4ydsA00 +4yduB00 +4yduC00 +4yhjA00 +4yj1A00 +4ymuA00 +4yplB00 +4z1iD00 +4z54A00 +4z87A02 +4z9mD00 +4zclA00 +4zdjA01 +4zdqA00 +4zg4B00 +4zgnA00 +4zirB01 +4zkeA00 +4znlB00 +4zqxA00 +4zs4B00 +4zukA01 +4zvfA00 +5a07A00 +5a2wA01 +5a8aA01 +5afuP00 +5aupD01 +5awmA00 +5axlA00 +5b0oB00 +5bk4A00 +5bn3A00 +5bo7A05 +5bpfC00 +5bq5B00 +5bu2B01 +5burA00 +5c03A00 +5c1tA00 +5c2kA00 +5c3vA00 +5c41A00 +5c46B00 +5c93A00 +5ca9A00 +5cb6A01 +5ce3B00 +5ck3B00 +5ck3D00 +5ck3F00 +5cm7A00 +5cmsE00 +5cyoA00 +5d0eB01 +5d0uA00 +5d1oA00 +5d3mA00 +5d4oA00 +5d4wA01 +5d6jA00 +5d9hB00 +5dacA00 +5db4A00 +5dgkB00 +5dgxA00 +5dm3C01 +5dn6F00 +5dn6G01 +5dn8A00 +5dqwA00 +5dtuA00 +5dzcA00 +5e26B02 +5e3iB00 +5e84B00 +5e92A00 +5ec0A00 +5eckD02 +5efaA00 +5ekdB01 +5eomB01 +5ep4A00 +5epvA00 +5eq6A00 +5eqtA00 +5errA00 +5exsA00 +5ey1B01 +5f0zA01 +5f1cB00 +5f1fA00 +5f1gA00 +5f9zB00 +5fbsA00 +5fg3A00 +5fg8A00 +5fhhA00 +5fmqA00 +5foeB00 +5fsxA00 +5ftbA00 +5ftnA00 +5fv0A00 +5fwmA00 +5g3yA01 +5g5xA01 +5gg6B00 +5ghiA00 +5gmdA01 +5goeA00 +5gomA00 +5grbB00 +5grfB01 +5gufA00 +5gyzA01 +5gz9A00 +5gzaA00 +5h3tD00 +5h67A00 +5h68A00 +5h70A00 +5hkkK00 +5hnvA00 +5hrfA00 +5hs2A00 +5htvA00 +5huxA00 +5hvkA00 +5hzhA00 +5i0iB01 +5i0nA01 +5i9eA00 +5i9wA00 +5idjA00 +5idoA00 +5if9A00 +5ifwB01 +5ih0A00 +5ik2E00 +5im3B02 +5in4B04 +5irnA00 +5irrB01 +5it5A00 +5iunE00 +5ix2B01 +5iz4A00 +5j1jA00 +5j1sA00 +5j2mA00 +5j5cA00 +5j5pB00 +5j7iA00 +5jb2A00 +5jbqA01 +5jc3A00 +5ji3E00 +5jioA00 +5jqwA00 +5jrjA00 +5jwqA00 +5jzjA00 +5jzvA00 +5k1pA00 +5k2mB00 +5k5zD01 +5k7xE00 +5kg6A00 +5khwA00 +5kk8B00 +5kq5C02 +5ksdA00 +5ku1A00 +5kutA00 +5kwaB00 +5kwkB00 +5kwvA00 +5kxqC01 +5ky2A01 +5l22B01 +5l2xA00 +5l3wA00 +5l9nA00 +5l9qA00 +5lb5B00 +5ld1D00 +5ldkB00 +5li9A00 +5ljwA00 +5lrtA00 +5lxtF00 +5m04A00 +5m06B00 +5m7gF00 +5m7nA00 +5mb9B00 +5mcpE00 +5mcpH02 +5me6A00 +5mioC00 +5mlzA00 +5mtvA00 +5mvrA00 +5mwlA00 +5mznA09 +5n9xA01 +5ng0B00 +5o8iB00 +5oeaB00 +5ofoA01 +5ofrB01 +5oopA00 +5ovoA00 +5supB00 +5svmA03 +5t48A00 +5tb8A00 +5tefA00 +5tgcD00 +5tjrA00 +5tk7A00 +5tkyA00 +5trdB00 +5tsgA00 +5tthA00 +5tvkB00 +5txxA01 +5u03A00 +5u1gB00 +5u3cA01 +5ub8A00 +5udbI01 +5udsA00 +5uivA01 +5uj7A00 +5uj7B01 +5uj7C00 +5ulsA00 +5uv4A00 +5uxcA00 +5uyxD00 +5v2lA00 +5vcuA00 +5ve7A00 +5vgrA00 +5vk4B01 +5vqaA00 +5vy9A01 +5vy9D02 +5vytD01 +5w2iA00 +5wdeA00 +5wdsA00 +5we8B00 +5wm1C01 +5wu3B00 +5x17A00 +5x40A00 +5x9hA00 +5x9uD00 +5xc3A00 +5xdrA00 +5xhcF00 +5xoxA00 +5xvuA00 +5xzvA00 +5y4zA00 diff --git a/secondary_struct.ipynb b/secondary_struct.ipynb new file mode 100644 index 0000000..c0dfaec --- /dev/null +++ b/secondary_struct.ipynb @@ -0,0 +1,387 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "import keras\n", + "import numpy as np\n", + "import pandas as pd\n", + "\n", + "from sklearn.preprocessing import LabelEncoder\n", + "from keras.models import Sequential\n", + "from keras.layers import Dense, Flatten, TimeDistributed\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 Conv1D, AveragePooling1D" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "def file_to_dataframe(filename):\n", + " \"\"\"\n", + " Returns a pandas dataframe ncol = len(longest_sequence),\n", + " nrow = number of sequences\n", + " \n", + " Arguments :\n", + " - filename : str\n", + " path to file\n", + " Takes a path to a files containing any sequences, must be 1 sequence\n", + " per line.\n", + " \n", + " Sequences shorter than longest_sequence are completed with '0' char.\n", + " \"\"\"\n", + " filin = open(filename)\n", + " fastas0 = filin.read()\n", + " fastas0 = fastas0.split('\\n')\n", + " nmax = len(max(fastas0, key=len))\n", + " fastas = []\n", + " for fasta in fastas0:\n", + " fastas.append(fasta + (nmax - len(fasta)) * '0')\n", + " \n", + " seqs = pd.DataFrame(index=range(len(fastas)), columns=range(nmax))\n", + " \n", + " for i, fasta in enumerate(fastas):\n", + " seqs.loc[i] = pd.Series(list(fasta))\n", + " \n", + " return seqs" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "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=(759,21)) # 759 aa, 21 car onehot\n", + " conv_1 = Conv1D(25, (5), padding=\"same\", activation=\"relu\",\n", + " kernel_initializer=\"he_normal\")(inputs)\n", + " conv_2 = Conv1D(35, (5), padding=\"same\", activation=\"relu\",\n", + " kernel_initializer=\"he_normal\")(conv_1)\n", + " output = TimeDistributed(Dense(4, activation='softmax'))(conv_2)\n", + " model = Model(inputs=inputs, outputs=output)\n", + " print(model.summary)\n", + " model.compile(optimizer=\"adam\", loss=\"categorical_crossentropy\",\n", + " metrics=[\"accuracy\"])\n", + " return model" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "def char_to_onehot(df, ncol=0):\n", + " \"\"\"\n", + " Returns the given str-encoded dataframe into a onehot encoded dataframe as an array object\n", + " \n", + " * Arguments:\n", + " - df : pandas.DataFrame, the dataframe containing the sequences, cell \n", + " containing strings.\n", + " - ncol : int, Optionnal. the number of col used to build the LabelEncoder\n", + " which will transform the df cells into int(categorical).\n", + " \"\"\"\n", + " classes = LabelEncoder()\n", + " classes.fit(df[ncol])\n", + " df_categorical = df.apply(func=classes.transform, axis=0)\n", + " df_onehot = keras.utils.to_categorical(df_categorical)\n", + " return df_onehot" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "def true_accuracy(predictions, onehot_Y_test):\n", + " \"\"\"\n", + " Computes the accuracy ignoring the \"0\" of the DataFrame.\n", + " \n", + " * Arguments :\n", + " - predictions : numpy.array, output of the model, onehot encoded.\n", + " - onehot_Y_test : numpy.array, the true values, onehot encoded.\n", + " \n", + " * Returns :\n", + " - acc_coor : int, accuracy corrected, not considering '0' predictions\n", + " \"\"\"\n", + " tp = 0\n", + " tn = 0\n", + " fn = 0\n", + " fp = 0\n", + " tot = 0\n", + "\n", + " for i in range(len(predictions)):\n", + " for j in range(len(predictions[i])):\n", + " if onehot_Y_test[i, j, 3] != 0.:\n", + " predmax = -1\n", + " predict_class = -1\n", + " true_class = -1\n", + " for k in range(len(predictions[i, j])):\n", + " if predmax < predictions[i, j, k]:\n", + " predmax = predictions[i, j, k]\n", + " predict_class = k\n", + " if onehot_Y_test[i, j, k] == 1.:\n", + " true_class = k\n", + " if predict_class == true_class:\n", + " tp = tp+1\n", + " tot = tot + 1\n", + " acc_corr = tp/tot*100\n", + " return acc_corr" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "# Create dataframe from files\n", + "fasta = file_to_dataframe(\"data/train.fasta\")\n", + "fasta = fasta.replace(\"X\", \"A\") # 'X' in fasta sequences are replace with 'A'\n", + "dssp = file_to_dataframe(\"data/train.dssp\")" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "# Writes Dataframes to csv files\n", + "fasta.to_csv(path_or_buf=\"data/train_fasta.csv\")\n", + "dssp.to_csv(path_or_buf=\"data/train_dssp.csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "# To onehot\n", + "fasta_onehot = char_to_onehot(fasta, 0)\n", + "dssp_onehot = char_to_onehot(dssp, 2)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "# Divides the dataset in train and test subsets\n", + "fasta_train = fasta_onehot[0:1000,]\n", + "dssp_train = dssp_onehot[0:1000,]\n", + "fasta_test = fasta_onehot[1000:,]\n", + "dssp_test = dssp_onehot[1000:]" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + ">\n", + "Epoch 1/30\n", + "1000/1000 [==============================] - 2s 2ms/step - loss: 0.7467 - acc: 0.7447\n", + "Epoch 2/30\n", + "1000/1000 [==============================] - 1s 974us/step - loss: 0.2610 - acc: 0.8944\n", + "Epoch 3/30\n", + "1000/1000 [==============================] - 1s 964us/step - loss: 0.2053 - acc: 0.9086\n", + "Epoch 4/30\n", + "1000/1000 [==============================] - 1s 994us/step - loss: 0.1899 - acc: 0.9154\n", + "Epoch 5/30\n", + "1000/1000 [==============================] - 1s 986us/step - loss: 0.1817 - acc: 0.9193\n", + "Epoch 6/30\n", + "1000/1000 [==============================] - 1s 1ms/step - loss: 0.1790 - acc: 0.9201\n", + "Epoch 7/30\n", + "1000/1000 [==============================] - 1s 1ms/step - loss: 0.1759 - acc: 0.9217\n", + "Epoch 8/30\n", + "1000/1000 [==============================] - 1s 960us/step - loss: 0.1743 - acc: 0.9222\n", + "Epoch 9/30\n", + "1000/1000 [==============================] - 1s 977us/step - loss: 0.1735 - acc: 0.9226\n", + "Epoch 10/30\n", + "1000/1000 [==============================] - 1s 963us/step - loss: 0.1727 - acc: 0.9228\n", + "Epoch 11/30\n", + "1000/1000 [==============================] - 1s 999us/step - loss: 0.1712 - acc: 0.9239\n", + "Epoch 12/30\n", + "1000/1000 [==============================] - 1s 963us/step - loss: 0.1702 - acc: 0.9243\n", + "Epoch 13/30\n", + "1000/1000 [==============================] - 1s 1ms/step - loss: 0.1695 - acc: 0.9249\n", + "Epoch 14/30\n", + "1000/1000 [==============================] - 1s 978us/step - loss: 0.1687 - acc: 0.9252\n", + "Epoch 15/30\n", + "1000/1000 [==============================] - 1s 981us/step - loss: 0.1678 - acc: 0.9257\n", + "Epoch 16/30\n", + "1000/1000 [==============================] - 1s 985us/step - loss: 0.1669 - acc: 0.9260\n", + "Epoch 17/30\n", + "1000/1000 [==============================] - 1s 1ms/step - loss: 0.1661 - acc: 0.9267\n", + "Epoch 18/30\n", + "1000/1000 [==============================] - 1s 1000us/step - loss: 0.1656 - acc: 0.9269\n", + "Epoch 19/30\n", + "1000/1000 [==============================] - 1s 1ms/step - loss: 0.1650 - acc: 0.9273\n", + "Epoch 20/30\n", + "1000/1000 [==============================] - 1s 1ms/step - loss: 0.1640 - acc: 0.9277\n", + "Epoch 21/30\n", + "1000/1000 [==============================] - 1s 1ms/step - loss: 0.1637 - acc: 0.9281\n", + "Epoch 22/30\n", + "1000/1000 [==============================] - 1s 1ms/step - loss: 0.1630 - acc: 0.9285\n", + "Epoch 23/30\n", + "1000/1000 [==============================] - 1s 1ms/step - loss: 0.1621 - acc: 0.9289\n", + "Epoch 24/30\n", + "1000/1000 [==============================] - 1s 992us/step - loss: 0.1619 - acc: 0.9289\n", + "Epoch 25/30\n", + "1000/1000 [==============================] - 1s 1ms/step - loss: 0.1616 - acc: 0.9291\n", + "Epoch 26/30\n", + "1000/1000 [==============================] - 1s 1ms/step - loss: 0.1616 - acc: 0.9291\n", + "Epoch 27/30\n", + "1000/1000 [==============================] - 1s 1ms/step - loss: 0.1608 - acc: 0.9296\n", + "Epoch 28/30\n", + "1000/1000 [==============================] - 1s 1ms/step - loss: 0.1604 - acc: 0.9297\n", + "Epoch 29/30\n", + "1000/1000 [==============================] - 1s 1ms/step - loss: 0.1601 - acc: 0.9298\n", + "Epoch 30/30\n", + "1000/1000 [==============================] - 1s 1ms/step - loss: 0.1597 - acc: 0.9300\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model = model_sequential()\n", + "model.fit(fasta_train, dssp_train, epochs=30, batch_size=30)" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [], + "source": [ + "predictions = model.predict(fasta_test, batch_size=30)" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "accuracy : 68.06409539780138\n" + ] + } + ], + "source": [ + "print(\"accuracy : {}\".format(true_accuracy(predictions, dssp_test)))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "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": 4 +} diff --git a/steroid.list b/steroid.list new file mode 100644 index 0000000..fdc9b2f --- /dev/null +++ b/steroid.list @@ -0,0 +1,69 @@ +1a28A00 +1afsA01 +1aquA01 +1coyA00 +1dbbB00 +1dbjA00 +1eupA02 +1fdtA00 +1h60A01 +1hv5E01 +1i7gA01 +1jnhB00 +1kdkA00 +1nfqA01 +1ogzA00 +1oh0B00 +1q13A01 +1q20A01 +1vpoB00 +1x8jA01 +1xj7A01 +1xnxA00 +1xv9B00 +1y5rA01 +1yb1A00 +2aaxA00 +2d06A01 +2hzqA00 +2ipgA01 +2o5yB00 +2qp4A00 +2v95A00 +2vctA00 +3burA01 +3eauA02 +3gn8A01 +3kdmB00 +3mnpA01 +3oikA00 +3ollA00 +3q95B00 +3rukD01 +3s79A01 +3wo2C02 +4c3yH02 +4c49A00 +4dvqA01 +4j6cA00 +4jvlA01 +4l1wA01 +4ltwA00 +4pleA02 +4qckA00 +4qdcA00 +4qdfB00 +4qf7A00 +4r1zA01 +4r21B01 +4ubtA01 +4x1gA00 +4y8wC01 +5a1pA01 +5hgcA00 +5hs6A01 +5if6A00 +5l91A04 +5lurA00 +5vb2D05 +6f88A01