From a543369cec472b33a3e31c45bafb774364a8fe53 Mon Sep 17 00:00:00 2001 From: Eric Jia Date: Mon, 3 Jun 2024 15:40:56 -0700 Subject: [PATCH 1/7] fixed adjustment function so its based on enrichment strength --- docs/tutorials/generate_in_silico_data.ipynb | 134 +- docs/tutorials/hyperparameter_sweep.ipynb | 538 +++- docs/tutorials/lightning_crash_course.ipynb | 333 ++- docs/tutorials/testing_model_metrics.ipynb | 1228 ++++++++- ..._and_testing_data_generation_methods.ipynb | 2327 +++++++++++++++-- experiments/simple_model_synthetic_data.py | 2 +- pyproject.toml | 1 + .../data_loaders/real_data_loader.py | 2 +- .../data_loaders/synthetic_data_loader.py | 48 +- .../probability_models/generate_data.py | 246 +- .../probability_models/test_generate_data.py | 94 +- 11 files changed, 4431 insertions(+), 522 deletions(-) diff --git a/docs/tutorials/generate_in_silico_data.ipynb b/docs/tutorials/generate_in_silico_data.ipynb index 26de65e..14dd53c 100644 --- a/docs/tutorials/generate_in_silico_data.ipynb +++ b/docs/tutorials/generate_in_silico_data.ipynb @@ -11,7 +11,15 @@ "cell_type": "code", "execution_count": 1, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Matplotlib is building the font cache; this may take a moment.\n" + ] + } + ], "source": [ "from yeastdnnexplorer.probability_models.relation_classes import And, Or\n", "from yeastdnnexplorer.probability_models.generate_data import (generate_gene_population, \n", @@ -36,9 +44,9 @@ "\n", "The first step is to generate a gene population, or set of gene populations.\n", "A gene population is simply a class that stores a 1D tensor called `labels`.\n", - "`labels` is a boolean vector where 1 means the gene is part of the signal group\n", + "`labels` is a boolean vector where 1 means the gene is part of the bound group\n", "(a gene which is both bound and responsive to the TF) while 0 means the gene is\n", - "part of the background or noise group. The length of `labels` is the number of\n", + "part of the background or unbound group. The length of `labels` is the number of\n", "genes in the population, and the index should be considered the unique gene\n", "identifier. In other words, the indicies should never change." ] @@ -50,14 +58,14 @@ "outputs": [], "source": [ "n_genes = 1000\n", - "signal = [0.1, 0.15, 0.2, 0.25, 0.3]\n", + "bound = [0.1, 0.15, 0.2, 0.25, 0.3]\n", "n_sample = [1, 1, 2, 2, 4]\n", "\n", "# this will be a list of length 10 with a GenePopulation object in each element\n", "gene_populations_list = []\n", - "for signal_proportion, n_draws in zip(signal, n_sample):\n", + "for bound_proportion, n_draws in zip(bound, n_sample):\n", " for _ in range(n_draws):\n", - " gene_populations_list.append(generate_gene_population(n_genes, signal_proportion))\n" + " gene_populations_list.append(generate_gene_population(n_genes, bound_proportion))\n" ] }, { @@ -121,7 +129,7 @@ "source": [ "### Method 1: Generating perturbation data with no mean adjustment\n", "\n", - "If you don't pass in a value for `max_mean_adjustment` to `generate_perturbation_effects` it will default to zero, meaning the means of the perturbation effects will not be adjusted in any way and will all be equal to `signal_mean` (deault is 3.0) for bound TF-gene pairs and `noise_mean` (default is 0.0) for unbound TF-gene pairs." + "If you don't pass in a value for `max_mean_adjustment` to `generate_perturbation_effects` it will default to zero, meaning the means of the perturbation effects will not be adjusted in any way and will all be equal to `bound_mean` (deault is 3.0) for bound TF-gene pairs and `unbound_mean` (default is 0.0) for unbound TF-gene pairs." ] }, { @@ -150,7 +158,7 @@ "metadata": {}, "outputs": [], "source": [ - "# if you want to modify the default mean for bound genes, you can pass in the 'signal_mean' parameter\n", + "# if you want to modify the default mean for bound genes, you can pass in the 'bound_mean' parameter\n", "perturbation_effects_list_normal_mean_adjustment = generate_perturbation_effects(\n", " binding_data_tensor, \n", " max_mean_adjustment=10.0\n", @@ -260,7 +268,7 @@ "The final step is to assemble the data into a single tensor. Here is one way.\n", "The order of the matrix in the last dimension is:\n", "\n", - "1. signal/noise label\n", + "1. bound/unbound label\n", "1. binding effect\n", "1. binding pvalue\n", "1. perturbation effect\n", @@ -340,7 +348,7 @@ "\n", "Ensure that the generated data matches expectations.\n", "\n", - "### The signal/noise ratios should match exactly the initial signal ratio" + "### The bound/unbound ratios should match exactly the initial bound ratio" ] }, { @@ -352,7 +360,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "signal/nosie ratio is correct: True\n" + "bound/nosie ratio is correct: True\n" ] } ], @@ -360,11 +368,11 @@ "tolerance = 1e-5\n", "are_equal = torch.isclose(\n", " torch.sum(final_data_tensor[:, :, 0] == 1, axis=0),\n", - " torch.tensor([val * n_genes for val, count in zip(signal, n_sample) for _ in range(count)],\n", + " torch.tensor([val * n_genes for val, count in zip(bound, n_sample) for _ in range(count)],\n", " dtype=torch.long),\n", " atol=tolerance)\n", "\n", - "print(f\"signal/nosie ratio is correct: {are_equal.all()}\")" + "print(f\"bound/nosie ratio is correct: {are_equal.all()}\")" ] }, { @@ -385,26 +393,26 @@ "name": "stdout", "output_type": "stream", "text": [ - "The noise binding max is 13.157892227172852 and the min is 0.0\n", - "the noise min is 0.0\n", - "the noise mean is 0.3589712679386139 and the std is 1.1559306383132935\n", - "The signal binding max is 78.94734954833984 and the min is 0.1315789520740509\n", - "the signal min is 0.1315789520740509\n", - "the signal mean is 2.4840002059936523 and the std is 6.374814510345459\n" + "The unbound binding max is 13.157892227172852 and the min is 0.0\n", + "the unbound min is 0.0\n", + "the unbound mean is 0.3589712679386139 and the std is 1.1559306383132935\n", + "The bound binding max is 78.94734954833984 and the min is 0.1315789520740509\n", + "the bound min is 0.1315789520740509\n", + "the bound mean is 2.4840002059936523 and the std is 6.374814510345459\n" ] } ], "source": [ "labels = final_data_tensor[:, :, 0].flatten()\n", - "noise_binding = final_data_tensor[:, :, 1].flatten()[labels == 0]\n", - "signal_binding = final_data_tensor[:, :, 1].flatten()[labels == 1]\n", + "unbound_binding = final_data_tensor[:, :, 1].flatten()[labels == 0]\n", + "bound_binding = final_data_tensor[:, :, 1].flatten()[labels == 1]\n", "\n", - "print(f\"The noise binding max is {noise_binding.max()} and the min is {noise_binding.min()}\")\n", - "print(f\"the noise min is {noise_binding.min()}\")\n", - "print(f\"the noise mean is {noise_binding.mean()} and the std is {noise_binding.std()}\")\n", - "print(f\"The signal binding max is {signal_binding.max()} and the min is {signal_binding.min()}\")\n", - "print(f\"the signal min is {signal_binding.min()}\")\n", - "print(f\"the signal mean is {signal_binding.mean()} and the std is {signal_binding.std()}\")" + "print(f\"The unbound binding max is {unbound_binding.max()} and the min is {unbound_binding.min()}\")\n", + "print(f\"the unbound min is {unbound_binding.min()}\")\n", + "print(f\"the unbound mean is {unbound_binding.mean()} and the std is {unbound_binding.std()}\")\n", + "print(f\"The bound binding max is {bound_binding.max()} and the min is {bound_binding.min()}\")\n", + "print(f\"the bound min is {bound_binding.min()}\")\n", + "print(f\"the bound mean is {bound_binding.mean()} and the std is {bound_binding.std()}\")" ] }, { @@ -414,7 +422,7 @@ "outputs": [ { "data": { - "image/png": "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5X32TCaTZc2aNdb2EydO5Huf5L2vAwICbH5O48ePtzg6OlqSk5MLNF8Adx4uOwRw11myZImio6PzPZo1a/aP+3p5een48eM6efJkoY/72WefydHRUS+88IJN+4svviiLxaItW7ZIun4WR5Kef/55m35jx47927FHjx6dr6106dLWf1+7dk0///yz2rZtK0n6+uuv8/UfOXKk9d+Ojo5q1aqVLBaLgoODre1eXl6qX7++fvrpp7+tRbo+V0kKCwuzaX/xxRclSZs3b77p/n+nUaNGuv/++7VmzRprW3p6uj755BP16tVLZrNZUuHnXhTr169Xu3btVLZsWf3888/WR0BAgHJycrR3715J11+z9PR066WpxeGvP+927drpl19+UWpq6i2NO2LECJt779q1aydJ1p93XFycTp48qUGDBumXX36xzjk9PV2dO3fW3r17811yeTNXr17VE088odKlS2vmzJk37HOjuf75/ffZZ5/JycnJeiZMuv7+vdnn5c9SU1NVpkyZAvX9/PPPlZmZqdDQUJuFeJ555hmZzeYiv6//zp8/k3mfPXd3dz355JPW9vr168vLy+uGn8lRo0bZnOVt166dcnJydPbs2WKtE4BxuOwQwF2ndevWatWqVb72vF+ib+bVV19Vnz59VK9ePTVp0kTdunXT0KFDCxTczp49q8qVK+f7Ra9hw4bW7Xn/6+DgkO8Sojp16vzt2H/tK0m//vqrpk6dqjVr1ujy5cs221JSUvL1r1atms1zT09Pubq65rtHx9PT8x/vncqbw19r9vX1lZeX1y398jd48GBNmDBB+/fv14MPPqiNGzfq6tWr1ksOpcLPvShOnjypb7/9VhUqVLjh9rzjPv/881q3bp26d++u++67T127dtWTTz6pbt26FfnYf/1ZlS1bVpL022+/WQNocY8ryfpHh5td0peSkmLd72ZycnI0YMAAfffdd9qyZYsqV66cr4+rq2u+17ds2bLWeqTr77VKlSrlu4Syfv36/1iDJJnNZpt7zW4m733717GdnZ1Vq1atYg01N5q7p6enqlSpku+yWU9PT5vXJM8//TwB3H0IXwDuKe3bt9ePP/6ojz/+WNu3b9eKFSs0f/58LVu2zOav1Eb785mePE8++aT279+vl156SS1atJCHh4dyc3PVrVu3G56dcHR0LFCbpHwLhPyd4ri36q8GDhyoiRMnavXq1XrwwQe1evVqlS1bVj169LD2KezcC+Kvizzk5uaqS5cumjhx4g3716tXT5JUsWJFxcXFadu2bdqyZYu2bNmiyMhIDRs2TCtXrixSLbf6cynquHmv3Zw5c/72y7D/GoL+zjPPPKNNmzbp/fffV6dOnQpVT3Fq0KCB4uLilJmZ+Y8rbt6Kv/ss/PV9lefv5l6Yn/3tep8AsB/CF4B7jre3t0aMGKERI0YoLS1N7du3V0REhDV8/d0vWdWrV9fnn3+u33//3ebs14kTJ6zb8/43NzdXp0+fVt26da39brTq3N/57bfftGPHDk2dOlWTJ0+2thflcsmiyJvDyZMnrWf2pOtfZJucnHzD7+kqqMqVK6tjx45av369/vOf/yg6OlrDhw+3/uJ8q3MvW7ZsvpXrMjMzdenSJZu22rVrKy0tTQEBAf84prOzs3r37q3evXsrNzdXzz//vJYvX67//Oc/Nz2jWdxuNQzXrl1b0vWzRQWZ99956aWXFBkZqQULFmjgwIG3VFP16tW1Y8cOpaWl2QS/+Pj4Au3fu3dvxcTE6H//+98/1pL3vo2Pj1etWrWs7ZmZmTp9+vRNX5O8s05/fW9xCSCAwuCeLwD3lL9ebufh4aE6derYLJ+e9x1bf/0lq0ePHsrJydHixYtt2ufPny+TyaTu3btLkgIDAyVdX876z958880C15n3F++//oU7bwW+2y3vLNRfjzdv3jxJuunKjQUxePBgXb58Wc8++6yysrJsLjm81bnXrl3ber9WnrfffjvfGYonn3xSMTEx2rZtW74xkpOTlZ2dLSn/e8bBwcF6meqf3zdGcHd3v6XLLv38/FS7dm298cYbSktLy7e9IMuYz5kzR2+88Yb+9a9/FXm1xz/r0aOHsrOztXTpUmtbTk5OgT8vo0ePVqVKlfTiiy/qhx9+yLf98uXLmj59uiQpICBAzs7OWrRokc3765133lFKSspN39fVq1eXo6NjvvfWXz/nAHAznPkCcE9p1KiROnToID8/P3l7e+vw4cP68MMPNWbMGGsfPz8/SdILL7ygwMBAOTo6asCAAerdu7c6duyof//73zpz5oyaN2+u7du36+OPP1ZoaKj1rIKfn5/69++vBQsW6JdffrEuNZ/3i2FBzl6YzWbrEtVZWVm67777tH37dp0+ffo2vCr5NW/eXEFBQXr77beVnJysRx55RAcPHtTKlSvVt29fdezY8ZbG79+/v55//nl9/PHHqlq1qs2y97c695EjR2r06NHq37+/unTpoiNHjmjbtm357n176aWXrAt9DB8+XH5+fkpPT9fRo0f14Ycf6syZMypfvrxGjhypX3/9VZ06dVKVKlV09uxZvfnmm2rRooXNWUEj+Pn5ae3atQoLC9MDDzwgDw8P9e7du8D7Ozg4aMWKFerevbsaN26sESNG6L777tOFCxe0a9cumc1mffrpp3+7/4YNGzRx4kTVrVtXDRs21HvvvWezvUuXLvLx8SnUnHr37q2HHnpIkyZN0pkzZ9SoUSN99NFHBQ6ZZcuW1YYNG9SjRw+1aNFCQ4YMsX6Gv/76a33wwQfy9/eXJFWoUEHh4eGaOnWqunXrpkcffVTx8fF666239MADD2jIkCF/exxPT0898cQTevPNN2UymVS7dm1t2rQp3z2JAHAzhC8A95QXXnhBn3zyibZv366MjAxVr15d06dP10svvWTt069fP40dO1Zr1qzRe++9J4vFogEDBsjBwUGffPKJJk+erLVr1yoyMlI1atTQnDlzrKsA5lm1apV8fX31wQcfaMOGDQoICNDatWtVv359ubq6FqjW1atXa+zYsVqyZIksFou6du36twsb3A4rVqxQrVq1FBUVpQ0bNsjX11fh4eGaMmXKLY9tNpvVu3dvrV+/XgMHDswXSG9l7s8884xOnz6td955R1u3blW7du0UHR2tzp072/Rzc3PTnj179Prrr2v9+vVatWqVzGaz6tWrp6lTp8rT01OSNGTIEL399tt66623lJycLF9fXz311FOKiIiwWTHPCM8//7zi4uIUGRmp+fPnq3r16oUKX9L1L2uOiYnRtGnTtHjxYqWlpcnX11dt2rTRs88+e9N9jxw5Iun6JaBDhw7Nt33Xrl2FDl95n6vQ0FC99957MplMevTRRzV37lzdf//9BRqjTZs2OnbsmObMmaPNmzfrv//9rxwcHNSwYUNNmjTJ5o8rERERqlChghYvXqzx48fL29tbo0aN0uuvv/6P3/H15ptvKisrS8uWLZOLi4uefPJJzZkzR02aNCnUnAHcu0wW7toEAEPExcXp/vvv13vvvWdzmR0AALg3cM8XANwGf/zxR762BQsWyMHBweYSOwAAcO/gskMAuA1mz56t2NhYdezY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g4ODVq9erVWrVunpp5+WyWTSvn371KdPHw0ZMkTNmzdXrVq19MMPP9x0rAoVKticqTp58qSuXr1qfd6yZUudPHlSFStWVJ06dWwenp6e1n7333+/wsPDtX//fjVp0kSrV68u/okDAO5IhC8AQInl4eGhp556SuHh4bp06ZKGDx8uSapbt66io6O1f/9+ff/993r22WeVlJR007E6deqkxYsX65tvvtHhw4c1evRolSpVyrp98ODBKl++vPr06aMvvvhCp0+f1u7du/XCCy/o/PnzOn36tMLDwxUTE6OzZ89q+/btOnnyJPd9AcA9hPAFACjRgoOD9dtvvykwMFCVK1eWJL3yyitq2bKlAgMD1aFDB/n6+qpv3743HWfu3LmqWrWq2rVrp0GDBmnChAlyc3Ozbndzc9PevXtVrVo19evXTw0bNlRwcLCuXbsms9ksNzc3nThxQv3791e9evU0atQohYSE6Nlnn72d0wcA3EFMlr9ewA4AAAAAKHac+QIAAAAAAxC+AAAAAMAAhC8AAAAAMADhCwAAAAAMQPgCAAAAAAMQvgAAAADAAIQvAAAAADAA4QsAAAAADED4AgAAAAADEL4AAAAAwACELwAAAAAwwP8HtGQOPEQNBkIAAAAASUVORK5CYII=", + "image/png": "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5X32TCaTZc2aNdb2EydO5Huf5L2vAwICbH5O48ePtzg6OlqSk5MLNF8Adx4uOwRw11myZImio6PzPZo1a/aP+3p5een48eM6efJkoY/72WefydHRUS+88IJN+4svviiLxaItW7ZIun4WR5Kef/55m35jx47927FHjx6dr6106dLWf1+7dk0///yz2rZtK0n6+uuv8/UfOXKk9d+Ojo5q1aqVLBaLgoODre1eXl6qX7++fvrpp7+tRbo+V0kKCwuzaX/xxRclSZs3b77p/n+nUaNGuv/++7VmzRprW3p6uj755BP16tVLZrNZUuHnXhTr169Xu3btVLZsWf3888/WR0BAgHJycrR3715J11+z9PR066WpxeGvP+927drpl19+UWpq6i2NO2LECJt779q1aydJ1p93XFycTp48qUGDBumXX36xzjk9PV2dO3fW3r17811yeTNXr17VE088odKlS2vmzJk37HOjuf75/ffZZ5/JycnJeiZMuv7+vdnn5c9SU1NVpkyZAvX9/PPPlZmZqdDQUJuFeJ555hmZzeYiv6//zp8/k3mfPXd3dz355JPW9vr168vLy+uGn8lRo0bZnOVt166dcnJydPbs2WKtE4BxuOwQwF2ndevWatWqVb72vF+ib+bVV19Vnz59VK9ePTVp0kTdunXT0KFDCxTczp49q8qVK+f7Ra9hw4bW7Xn/6+DgkO8Sojp16vzt2H/tK0m//vqrpk6dqjVr1ujy5cs221JSUvL1r1atms1zT09Pubq65rtHx9PT8x/vncqbw19r9vX1lZeX1y398jd48GBNmDBB+/fv14MPPqiNGzfq6tWr1ksOpcLPvShOnjypb7/9VhUqVLjh9rzjPv/881q3bp26d++u++67T127dtWTTz6pbt26FfnYf/1ZlS1bVpL022+/WQNocY8ryfpHh5td0peSkmLd72ZycnI0YMAAfffdd9qyZYsqV66cr4+rq2u+17ds2bLWeqTr77VKlSrlu4Syfv36/1iDJJnNZpt7zW4m733717GdnZ1Vq1atYg01N5q7p6enqlSpku+yWU9PT5vXJM8//TwB3H0IXwDuKe3bt9ePP/6ojz/+WNu3b9eKFSs0f/58LVu2zOav1Eb785mePE8++aT279+vl156SS1atJCHh4dyc3PVrVu3G56dcHR0LFCbpHwLhPyd4ri36q8GDhyoiRMnavXq1XrwwQe1evVqlS1bVj169LD2KezcC+Kvizzk5uaqS5cumjhx4g3716tXT5JUsWJFxcXFadu2bdqyZYu2bNmiyMhIDRs2TCtXrixSLbf6cynquHmv3Zw5c/72y7D/GoL+zjPPPKNNmzbp/fffV6dOnQpVT3Fq0KCB4uLilJmZ+Y8rbt6Kv/ss/PV9lefv5l6Yn/3tep8AsB/CF4B7jre3t0aMGKERI0YoLS1N7du3V0REhDV8/d0vWdWrV9fnn3+u33//3ebs14kTJ6zb8/43NzdXp0+fVt26da39brTq3N/57bfftGPHDk2dOlWTJ0+2thflcsmiyJvDyZMnrWf2pOtfZJucnHzD7+kqqMqVK6tjx45av369/vOf/yg6OlrDhw+3/uJ8q3MvW7ZsvpXrMjMzdenSJZu22rVrKy0tTQEBAf84prOzs3r37q3evXsrNzdXzz//vJYvX67//Oc/Nz2jWdxuNQzXrl1b0vWzRQWZ99956aWXFBkZqQULFmjgwIG3VFP16tW1Y8cOpaWl2QS/+Pj4Au3fu3dvxcTE6H//+98/1pL3vo2Pj1etWrWs7ZmZmTp9+vRNX5O8s05/fW9xCSCAwuCeLwD3lL9ebufh4aE6derYLJ+e9x1bf/0lq0ePHsrJydHixYtt2ufPny+TyaTu3btLkgIDAyVdX876z958880C15n3F++//oU7bwW+2y3vLNRfjzdv3jxJuunKjQUxePBgXb58Wc8++6yysrJsLjm81bnXrl3ber9WnrfffjvfGYonn3xSMTEx2rZtW74xkpOTlZ2dLSn/e8bBwcF6meqf3zdGcHd3v6XLLv38/FS7dm298cYbSktLy7e9IMuYz5kzR2+88Yb+9a9/FXm1xz/r0aOHsrOztXTpUmtbTk5OgT8vo0ePVqVKlfTiiy/qhx9+yLf98uXLmj59uiQpICBAzs7OWrRokc3765133lFKSspN39fVq1eXo6NjvvfWXz/nAHAznPkCcE9p1KiROnToID8/P3l7e+vw4cP68MMPNWbMGGsfPz8/SdILL7ygwMBAOTo6asCAAerdu7c6duyof//73zpz5oyaN2+u7du36+OPP1ZoaKj1rIKfn5/69++vBQsW6JdffrEuNZ/3i2FBzl6YzWbrEtVZWVm67777tH37dp0+ffo2vCr5NW/eXEFBQXr77beVnJysRx55RAcPHtTKlSvVt29fdezY8ZbG79+/v55//nl9/PHHqlq1qs2y97c695EjR2r06NHq37+/unTpoiNHjmjbtm357n176aWXrAt9DB8+XH5+fkpPT9fRo0f14Ycf6syZMypfvrxGjhypX3/9VZ06dVKVKlV09uxZvfnmm2rRooXNWUEj+Pn5ae3atQoLC9MDDzwgDw8P9e7du8D7Ozg4aMWKFerevbsaN26sESNG6L777tOFCxe0a9cumc1mffrpp3+7/4YNGzRx4kTVrVtXDRs21HvvvWezvUuXLvLx8SnUnHr37q2HHnpIkyZN0pkzZ9SoUSN99NFHBQ6ZZcuW1YYNG9SjRw+1aNFCQ4YMsX6Gv/76a33wwQfy9/eXJFWoUEHh4eGaOnWqunXrpkcffVTx8fF666239MADD2jIkCF/exxPT0898cQTevPNN2UymVS7dm1t2rQp3z2JAHAzhC8A95QXXnhBn3zyibZv366MjAxVr15d06dP10svvWTt069fP40dO1Zr1qzRe++9J4vFogEDBsjBwUGffPKJJk+erLVr1yoyMlI1atTQnDlzrKsA5lm1apV8fX31wQcfaMOGDQoICNDatWtVv359ubq6FqjW1atXa+zYsVqyZIksFou6du36twsb3A4rVqxQrVq1FBUVpQ0bNsjX11fh4eGaMmXKLY9tNpvVu3dvrV+/XgMHDswXSG9l7s8884xOnz6td955R1u3blW7du0UHR2tzp072/Rzc3PTnj179Prrr2v9+vVatWqVzGaz6tWrp6lTp8rT01OSNGTIEL399tt66623lJycLF9fXz311FOKiIiwWTHPCM8//7zi4uIUGRmp+fPnq3r16oUKX9L1L2uOiYnRtGnTtHjxYqWlpcnX11dt2rTRs88+e9N9jxw5Iun6JaBDhw7Nt33Xrl2FDl95n6vQ0FC99957MplMevTRRzV37lzdf//9BRqjTZs2OnbsmObMmaPNmzfrv//9rxwcHNSwYUNNmjTJ5o8rERERqlChghYvXqzx48fL29tbo0aN0uuvv/6P3/H15ptvKisrS8uWLZOLi4uefPJJzZkzR02aNCnUnAHcu0wW7toEAEPExcXp/vvv13vvvWdzmR0AALg3cM8XANwGf/zxR762BQsWyMHBweYSOwAAcO/gskMAuA1mz56t2NhYdezY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g4ODVq9erVWrVunpp5+WyWTSvn371KdPHw0ZMkTNmzdXrVq19MMPP9x0rAoVKticqTp58qSuXr1qfd6yZUudPHlSFStWVJ06dWwenp6e1n7333+/wsPDtX//fjVp0kSrV68u/okDAO5IhC8AQInl4eGhp556SuHh4bp06ZKGDx8uSapbt66io6O1f/9+ff/993r22WeVlJR007E6deqkxYsX65tvvtHhw4c1evRolSpVyrp98ODBKl++vPr06aMvvvhCp0+f1u7du/XCCy/o/PnzOn36tMLDwxUTE6OzZ89q+/btOnnyJPd9AcA9hPAFACjRgoOD9dtvvykwMFCVK1eWJL3yyitq2bKlAgMD1aFDB/n6+qpv3743HWfu3LmqWrWq2rVrp0GDBmnChAlyc3Ozbndzc9PevXtVrVo19evXTw0bNlRwcLCuXbsms9ksNzc3nThxQv3791e9evU0atQohYSE6Nlnn72d0wcA3EFMlr9ewA4AAAAAKHac+QIAAAAAAxC+AAAAAMAAhC8AAAAAMADhCwAAAAAMQPgCAAAAAAMQvgAAAADAAIQvAAAAADAA4QsAAAAADED4AgAAAAADEL4AAAAAwACELwAAAAAwwP8HtGQOPEQNBkIAAAAASUVORK5CYII=", "text/plain": [ "
" ] @@ -427,8 +435,8 @@ "\n", "# Plotting\n", "plt.figure(figsize=(10, 6))\n", - "plt.hist(noise_binding, bins=30, alpha=0.5, label='Label 0', color='orange')\n", - "plt.hist(signal_binding, bins=30, alpha=0.5, label='Label 1', color='blue')\n", + "plt.hist(unbound_binding, bins=30, alpha=0.5, label='Label 0', color='orange')\n", + "plt.hist(bound_binding, bins=30, alpha=0.5, label='Label 1', color='blue')\n", "plt.xlim(0,5)\n", "plt.title('Histogram of Values in the 2nd Column')\n", "plt.xlabel('Values')\n", @@ -453,25 +461,25 @@ "name": "stdout", "output_type": "stream", "text": [ - "The noise binding max is 3.423511505126953 and the min is -3.506139039993286\n", - "the noise min is -3.506139039993286\n", - "the noise mean is 0.010617653839290142 and the std is 0.988001823425293\n", - "The signal binding max is 6.107701301574707 and the min is -6.406703948974609\n", - "the signal min is -6.406703948974609\n", - "the signal mean is -0.011303802020847797 and the std is 3.136451482772827\n" + "The unbound binding max is 3.423511505126953 and the min is -3.506139039993286\n", + "the unbound min is -3.506139039993286\n", + "the unbound mean is 0.010617653839290142 and the std is 0.988001823425293\n", + "The bound binding max is 6.107701301574707 and the min is -6.406703948974609\n", + "the bound min is -6.406703948974609\n", + "the bound mean is -0.011303802020847797 and the std is 3.136451482772827\n" ] } ], "source": [ - "noise_perturbation = final_data_tensor[:, :, 3].flatten()[labels == 0]\n", - "signal_perturbation = final_data_tensor[:, :, 3].flatten()[labels == 1]\n", + "unbound_perturbation = final_data_tensor[:, :, 3].flatten()[labels == 0]\n", + "bound_perturbation = final_data_tensor[:, :, 3].flatten()[labels == 1]\n", "\n", - "print(f\"The noise binding max is {noise_perturbation.max()} and the min is {noise_perturbation.min()}\")\n", - "print(f\"the noise min is {noise_perturbation.min()}\")\n", - "print(f\"the noise mean is {noise_perturbation.mean()} and the std is {noise_perturbation.std()}\")\n", - "print(f\"The signal binding max is {signal_perturbation.max()} and the min is {signal_perturbation.min()}\")\n", - "print(f\"the signal min is {signal_perturbation.min()}\")\n", - "print(f\"the signal mean is {signal_perturbation.mean()} and the std is {signal_perturbation.std()}\")" + "print(f\"The unbound binding max is {unbound_perturbation.max()} and the min is {unbound_perturbation.min()}\")\n", + "print(f\"the unbound min is {unbound_perturbation.min()}\")\n", + "print(f\"the unbound mean is {unbound_perturbation.mean()} and the std is {unbound_perturbation.std()}\")\n", + "print(f\"The bound binding max is {bound_perturbation.max()} and the min is {bound_perturbation.min()}\")\n", + "print(f\"the bound min is {bound_perturbation.min()}\")\n", + "print(f\"the bound mean is {bound_perturbation.mean()} and the std is {bound_perturbation.std()}\")" ] }, { @@ -481,7 +489,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1IAAAIjCAYAAAAJLyrXAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAABTp0lEQVR4nO3deVhV5f7+8XszCwqICmjirKk540RmOZA4Hk3LzAmNMg1NJTU5leKcmkPOdjLUU6Z5yupYDjibkqampuZUKk6gZYDgkXH//vDH/rbDgYXgBn2/rmtfx/2sZ631efbadLh51mAym81mAQAAAAByzM7WBQAAAABAYUOQAgAAAACDCFIAAAAAYBBBCgAAAAAMIkgBAAAAgEEEKQAAAAAwiCAFAAAAAAYRpAAAAADAIIIUAAAAABhEkAJQaFWoUEH9+vWzdRkPvenTp6tSpUqyt7dXvXr1Hth+ly5dKpPJpLNnzz6wfRphMpkUERGR7/vZtm2bTCaT/vOf/+T7vh6Us2fPymQyaenSpTbZf79+/VShQgWb7BvAw4MgBaBAyPqled++fbdd3qJFC9WqVeu+9/Pdd989kF9+HxYbN27UqFGj1KxZM0VGRmry5MnZ+qSlpalkyZJ66qmn7rgds9ksPz8/NWjQID/LLdRWrFih2bNn22z/58+f17hx49S4cWMVL15cJUuWVIsWLbRp0yab1ZQlLi5OI0aMUPXq1eXq6io3Nzf5+/tr4sSJio+Pt3V5AB5RDrYuAABy68SJE7KzM/b3oO+++07z588nTOXQli1bZGdnpyVLlsjJyem2fRwdHfXCCy9o8eLFOnfunMqXL5+tz44dO3ThwgUNHz48v0t+YP73v//JwSHv/m90xYoVOnLkiIYNG5Zn2zTi66+/1tSpU9WlSxcFBwcrPT1dy5cv17PPPquPP/5Y/fv3t0ldP/74o9q3b6+kpCT17t1b/v7+kqR9+/bpvffe044dO7Rx40ab1Abg0UaQAlBoOTs727oEw5KTk+Xm5mbrMnLsypUrKlKkyB1DVJZevXpp0aJF+uyzzzR69Ohsy1esWCE7Ozv16NEjv0p94FxcXGxdQp5q2bKlYmJiVLJkSUvbwIEDVa9ePY0ZM8YmQSo+Pl7PPfec7O3t9dNPP6l69epWyydNmqR//etfD7wuAJA4tQ9AIfb3a6TS0tI0btw4Va1aVS4uLipRooSeeuopRUVFSbp1XcT8+fMl3bq+JeuVJTk5WW+++ab8/Pzk7Oysxx9/XO+//77MZrPVfv/3v//pjTfeUMmSJVWsWDH94x//0MWLF7NdMxMRESGTyaRjx46pZ8+eKl68uOX0t8OHD6tfv36qVKmSXFxc5Ovrq5dffll//PGH1b6ytnHy5En17t1bHh4eKlWqlN59912ZzWadP39enTt3lru7u3x9fTVjxowcfXbp6emaMGGCKleuLGdnZ1WoUEH//Oc/lZKSYuljMpkUGRmp5ORky2d1p2tamjVrpgoVKmjFihXZlqWlpek///mPWrZsqTJlyuR47Ldzp+uSbne9XHx8vIYNG2Y5nlWqVNHUqVOVmZlp1W/lypXy9/dXsWLF5O7urtq1a+uDDz4wXEvWsTp9+rT69esnT09PeXh4qH///rpx48Zdt9WiRQt9++23OnfunOWz/vs1PJmZmZo0aZLKli0rFxcXtW7dWqdPn862rT179qht27by8PCQq6urnnnmGe3ateue43niiSesQpR0648V7du314ULF3T9+nVLe79+/VS0aFFdvHhRXbp0UdGiRVWqVCmNGDFCGRkZVtuIj49Xv3795OHhIU9PTwUHB+f4dLzFixfr4sWLmjlzZrYQJUk+Pj565513rNoWLFigJ554Qs7OzipTpoxCQ0Pvub+s69C2bdtm1X67a7myxh4TE6OOHTuqaNGieuyxxyz/bfn555/VqlUrubm5qXz58tl+JrJOY961a5fCwsJUqlQpubm56bnnntPVq1dz9LkAKBiYkQJQoCQkJOj333/P1p6WlnbPdSMiIjRlyhS98soraty4sRITE7Vv3z4dOHBAzz77rF577TVdunRJUVFR+ve//221rtls1j/+8Q9t3bpVISEhqlevnjZs2KCRI0fq4sWLmjVrlqVvv3799Pnnn6tPnz5q2rSptm/frg4dOtyxrhdeeEFVq1bV5MmTLaEsKipKv/32m/r37y9fX18dPXpUH374oY4ePaoffvjBKuBJ0osvvqgaNWrovffe07fffquJEyfKy8tLixcvVqtWrTR16lR9+umnGjFihBo1aqSnn376rp/VK6+8omXLlun555/Xm2++qT179mjKlCn65ZdftGbNGknSv//9b3344Yfau3evPvroI0nSk08+edvtmUwm9ezZU5MnT9bRo0f1xBNPWJatX79e165dU69evXI19ty4ceOGnnnmGV28eFGvvfaaypUrp927dys8PFyXL1+2XIsUFRWll156Sa1bt9bUqVMlSb/88ot27dqloUOH5mrf3bt3V8WKFTVlyhQdOHBAH330kby9vS3bv523335bCQkJunDhguW7VrRoUas+7733nuzs7DRixAglJCRo2rRp6tWrl/bs2WPps2XLFrVr107+/v4aO3as7OzsFBkZqVatWmnnzp1q3Lix4fHExsbK1dVVrq6uVu0ZGRkKCgpSkyZN9P7772vTpk2aMWOGKleurEGDBkm69XPVuXNnff/99xo4cKBq1KihNWvWKDg4OEf7/uabb1SkSBE9//zzOeofERGhcePGKTAwUIMGDdKJEye0cOFC/fjjj9q1a5ccHR2NDf4OMjIy1K5dOz399NOaNm2aPv30Uw0ePFhubm56++231atXL3Xt2lWLFi1S3759FRAQoIoVK1ptY8iQISpevLjGjh2rs2fPavbs2Ro8eLBWrVqVJzUCeADMAFAAREZGmiXd9fXEE09YrVO+fHlzcHCw5X3dunXNHTp0uOt+QkNDzbf7T99XX31llmSeOHGiVfvzzz9vNplM5tOnT5vNZrN5//79ZknmYcOGWfXr16+fWZJ57NixlraxY8eaJZlfeumlbPu7ceNGtrbPPvvMLMm8Y8eObNsYMGCApS09Pd1ctmxZs8lkMr/33nuW9j///NNcpEgRq8/kdg4ePGiWZH7llVes2keMGGGWZN6yZYulLTg42Ozm5nbX7WU5evSoWZI5PDzcqr1Hjx5mFxcXc0JCgtlszvnYs74TZ86csbT9/TPO8vfvwoQJE8xubm7mkydPWvUbPXq02d7e3hwTE2M2m83moUOHmt3d3c3p6ek5GuNf3el4v/zyy1b9nnvuOXOJEiXuub0OHTqYy5cvn61969atZknmGjVqmFNSUiztH3zwgVmS+eeffzabzWZzZmamuWrVquagoCBzZmampd+NGzfMFStWND/77LMGR2g2nzp1yuzi4mLu06ePVXtwcLBZknn8+PFW7fXr1zf7+/tb3mf9XE2bNs3Slp6ebm7evLlZkjkyMvKu+y9evLi5bt26Oar1ypUrZicnJ3ObNm3MGRkZlvZ58+aZJZk//vhjq/r/+llnfcZbt2612uaZM2ey1Zk19smTJ1va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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1IAAAIjCAYAAAAJLyrXAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABTp0lEQVR4nO3deVhV5f7+8XszCwqICmjirKk540RmOZA4Hk3LzAmNMg1NJTU5leKcmkPOdjLUU6Z5yupYDjibkqampuZUKk6gZYDgkXH//vDH/rbDgYXgBn2/rmtfx/2sZ631efbadLh51mAym81mAQAAAAByzM7WBQAAAABAYUOQAgAAAACDCFIAAAAAYBBBCgAAAAAMIkgBAAAAgEEEKQAAAAAwiCAFAAAAAAYRpAAAAADAIIIUAAAAABhEkAJQaFWoUEH9+vWzdRkPvenTp6tSpUqyt7dXvXr1Hth+ly5dKpPJpLNnzz6wfRphMpkUERGR7/vZtm2bTCaT/vOf/+T7vh6Us2fPymQyaenSpTbZf79+/VShQgWb7BvAw4MgBaBAyPqled++fbdd3qJFC9WqVeu+9/Pdd989kF9+HxYbN27UqFGj1KxZM0VGRmry5MnZ+qSlpalkyZJ66qmn7rgds9ksPz8/NWjQID/LLdRWrFih2bNn22z/58+f17hx49S4cWMVL15cJUuWVIsWLbRp0yab1ZQlLi5OI0aMUPXq1eXq6io3Nzf5+/tr4sSJio+Pt3V5AB5RDrYuAABy68SJE7KzM/b3oO+++07z588nTOXQli1bZGdnpyVLlsjJyem2fRwdHfXCCy9o8eLFOnfunMqXL5+tz44dO3ThwgUNHz48v0t+YP73v//JwSHv/m90xYoVOnLkiIYNG5Zn2zTi66+/1tSpU9WlSxcFBwcrPT1dy5cv17PPPquPP/5Y/fv3t0ldP/74o9q3b6+kpCT17t1b/v7+kqR9+/bpvffe044dO7Rx40ab1Abg0UaQAlBoOTs727oEw5KTk+Xm5mbrMnLsypUrKlKkyB1DVJZevXpp0aJF+uyzzzR69Ohsy1esWCE7Ozv16NEjv0p94FxcXGxdQp5q2bKlYmJiVLJkSUvbwIEDVa9ePY0ZM8YmQSo+Pl7PPfec7O3t9dNPP6l69epWyydNmqR//etfD7wuAJA4tQ9AIfb3a6TS0tI0btw4Va1aVS4uLipRooSeeuopRUVFSbp1XcT8+fMl3bq+JeuVJTk5WW+++ab8/Pzk7Oysxx9/XO+//77MZrPVfv/3v//pjTfeUMmSJVWsWDH94x//0MWLF7NdMxMRESGTyaRjx46pZ8+eKl68uOX0t8OHD6tfv36qVKmSXFxc5Ovrq5dffll//PGH1b6ytnHy5En17t1bHh4eKlWqlN59912ZzWadP39enTt3lru7u3x9fTVjxowcfXbp6emaMGGCKleuLGdnZ1WoUEH//Oc/lZKSYuljMpkUGRmp5ORky2d1p2tamjVrpgoVKmjFihXZlqWlpek///mPWrZsqTJlyuR47Ldzp+uSbne9XHx8vIYNG2Y5nlWqVNHUqVOVmZlp1W/lypXy9/dXsWLF5O7urtq1a+uDDz4wXEvWsTp9+rT69esnT09PeXh4qH///rpx48Zdt9WiRQt9++23OnfunOWz/vs1PJmZmZo0aZLKli0rFxcXtW7dWqdPn862rT179qht27by8PCQq6urnnnmGe3ateue43niiSesQpR0648V7du314ULF3T9+nVLe79+/VS0aFFdvHhRXbp0UdGiRVWqVCmNGDFCGRkZVtuIj49Xv3795OHhIU9PTwUHB+f4dLzFixfr4sWLmjlzZrYQJUk+Pj565513rNoWLFigJ554Qs7OzipTpoxCQ0Pvub+s69C2bdtm1X67a7myxh4TE6OOHTuqaNGieuyxxyz/bfn555/VqlUrubm5qXz58tl+JrJOY961a5fCwsJUqlQpubm56bnnntPVq1dz9LkAKBiYkQJQoCQkJOj333/P1p6WlnbPdSMiIjRlyhS98soraty4sRITE7Vv3z4dOHBAzz77rF577TVdunRJUVFR+ve//221rtls1j/+8Q9t3bpVISEhqlevnjZs2KCRI0fq4sWLmjVrlqVvv3799Pnnn6tPnz5q2rSptm/frg4dOtyxrhdeeEFVq1bV5MmTLaEsKipKv/32m/r37y9fX18dPXpUH374oY4ePaoffvjBKuBJ0osvvqgaNWrovffe07fffquJEyfKy8tLixcvVqtWrTR16lR9+umnGjFihBo1aqSnn376rp/VK6+8omXLlun555/Xm2++qT179mjKlCn65ZdftGbNGknSv//9b3344Yfau3evPvroI0nSk08+edvtmUwm9ezZU5MnT9bRo0f1xBNPWJatX79e165dU69evXI19ty4ceOGnnnmGV28eFGvvfaaypUrp927dys8PFyXL1+2XIsUFRWll156Sa1bt9bUqVMlSb/88ot27dqloUOH5mrf3bt3V8WKFTVlyhQdOHBAH330kby9vS3bv523335bCQkJunDhguW7VrRoUas+7733nuzs7DRixAglJCRo2rRp6tWrl/bs2WPps2XLFrVr107+/v4aO3as7OzsFBkZqVatWmnnzp1q3Lix4fHExsbK1dVVrq6uVu0ZGRkKCgpSkyZN9P7772vTpk2aMWOGKleurEGDBkm69XPVuXNnff/99xo4cKBq1KihNWvWKDg4OEf7/uabb1SkSBE9//zzOeofERGhcePGKTAwUIMGDdKJEye0cOFC/fjjj9q1a5ccHR2NDf4OMjIy1K5dOz399NOaNm2aPv30Uw0ePFhubm56++231atXL3Xt2lWLFi1S3759FRAQoIoVK1ptY8iQISpevLjGjh2rs2fPavbs2Ro8eLBWrVqVJzUCeADMAFAAREZGmiXd9fXEE09YrVO+fHlzcHCw5X3dunXNHTp0uOt+QkNDzbf7T99XX31llmSeOHGiVfvzzz9vNplM5tOnT5vNZrN5//79ZknmYcOGWfXr16+fWZJ57NixlraxY8eaJZlfeumlbPu7ceNGtrbPPvvMLMm8Y8eObNsYMGCApS09Pd1ctmxZs8lkMr/33nuW9j///NNcpEgRq8/kdg4ePGiWZH7llVes2keMGGGWZN6yZYulLTg42Ozm5nbX7WU5evSoWZI5PDzcqr1Hjx5mFxcXc0JCgtlszvnYs74TZ86csbT9/TPO8vfvwoQJE8xubm7mkydPWvUbPXq02d7e3hwTE2M2m83moUOHmt3d3c3p6ek5GuNf3el4v/zyy1b9nnvuOXOJEiXuub0OHTqYy5cvn61969atZknmGjVqmFNSUiztH3zwgVmS+eeffzabzWZzZmamuWrVquagoCBzZmampd+NGzfMFStWND/77LMGR2g2nzp1yuzi4mLu06ePVXtwcLBZknn8+PFW7fXr1zf7+/tb3mf9XE2bNs3Slp6ebm7evLlZkjkyMvKu+y9evLi5bt26Oar1ypUrZicnJ3ObNm3MGRkZlvZ58+aZJZk//vhjq/r/+llnfcZbt2612uaZM2ey1Zk19smTJ1va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", "text/plain": [ "
" ] @@ -493,8 +501,8 @@ "source": [ "# Plotting\n", "plt.figure(figsize=(10, 6))\n", - "plt.hist(noise_perturbation, bins=30, alpha=0.5, label='Label 0', color='orange')\n", - "plt.hist(signal_perturbation, bins=30, alpha=0.5, label='Label 1', color='blue')\n", + "plt.hist(unbound_perturbation, bins=30, alpha=0.5, label='Label 0', color='orange')\n", + "plt.hist(bound_perturbation, bins=30, alpha=0.5, label='Label 1', color='blue')\n", "plt.title('Histogram of Values in the 2nd Column')\n", "plt.xlabel('Values')\n", "plt.ylabel('Frequency')\n", @@ -516,7 +524,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA04AAAIjCAYAAAA0vUuxAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAADazUlEQVR4nOzdd3hT5RcH8O9N0hYKbdlDRtkgU/beIDKVKRtkKLKHCzcuQAUB8ceWrWxQkL0VRFA2yJS9ymyBQtsk9/fHIW3TJjdJm9Hx/TxPHtqbm3tP05bec9/3PUdRVVUFERERERER2aXzdQBEREREREQpHRMnIiIiIiIiB5g4EREREREROcDEiYiIiIiIyAEmTkRERERERA4wcSIiIiIiInKAiRMREREREZEDTJyIiIiIiIgcYOJERERERETkABMnIvIpRVHw6aefevSY8+bNg6IouHjxolvP4263bt1Chw4dkD17diiKgkmTJgEAzp49ixdffBEhISFQFAVr1qzxaZzkPjt37oSiKFixYoVXzueJ3zd34+8BEaVUTJyIyK0sSUr8R65cudCwYUNs2LDB1+F53aeffpro/Yj/uHnzZuy+I0aMwKZNmzB69GgsXLgQL730EgCgV69eOHbsGL788kssXLgQVapUcWuMkZGR+PTTT7Fz5063HteTevfubfU+BgcHo0KFCpgwYQKioqLcdp7U+N6sX78+xSVH/D0gorTA4OsAiCht+uyzz1C4cGGoqopbt25h3rx5aNGiBdauXYtWrVrF7vfkyRMYDJ79r6hHjx7o3LkzAgICPHoeLdOmTUPmzJkTbc+SJUvsx9u3b8fLL7+Mt956K3bbkydP8Oeff+KDDz7A4MGDPRJbZGQkxowZAwBo0KCBR87hCQEBAZg9ezYA4MGDB1i5ciXeeustHDhwAEuWLHHLOVLje7N+/Xr88MMPNpMnb/y+aeHvARGlZkyciMgjmjdvbnVHuG/fvsidOzd+/vlnq8QpQ4YMHo9Fr9dDr9d7/DxaOnTogBw5cmjuExYWZnUBCQC3b98GgETbCTAYDOjevXvs5wMHDkT16tWxdOlSTJw4Ec8991ySj202mxEdHe2OMG0yGo0wm80eO7493vh908LfAyJKzThVj4i8IkuWLMiYMWOiu90J11xYpvScO3cOvXv3RpYsWRASEoLXXnsNkZGRVq+NiorCiBEjkDNnTgQFBaFNmza4evVqonPbWuNUqFAhtGrVCn/88QeqVauGDBkyoEiRIliwYEGi1x89ehT169dHxowZkT9/fnzxxReYO3eu29ZNWeJTVRU//PBD7PSlTz/9FKGhoQCAt99+G4qioFChQrGvu3btGvr06YPcuXMjICAAZcqUwY8//pjo+E+fPsWnn36KEiVKIEOGDMibNy/atWuH8+fP4+LFi8iZMycAYMyYMVbnBoCbN2/itddeQ/78+REQEIC8efPi5Zdf1vy6v/32WyiKgkuXLiV6bvTo0fD398f9+/cByLqV9u3bI0+ePMiQIQPy58+Pzp07Izw83OX3UafTxY4UWOKLiorCJ598gmLFiiEgIAAFChTAO++8k2g6n6IoGDx4MBYvXowyZcogICAA06dP13xvGjRoYHNkonfv3lbfp4sXL0JRFHz77beYNGkSihYtioCAAJw8eTJ2H5PJhPfffx958uRBpkyZ0KZNG1y5csXquL///js6duyIggULxn4tI0aMwJMnT6zO/cMPP8R+TZZH/K8z4UjUoUOH0Lx5cwQHByNz5sxo3Lgx9u3bZ7WP5Wd0z549GDlyJHLmzIlMmTKhbdu2sUlNcqW13wMiSns44kREHhEeHo47d+5AVVWEhYXh+++/x6NHj6xGCLR06tQJhQsXxtixY3Hw4EHMnj0buXLlwvjx42P36devHxYtWoSuXbuiVq1a2L59O1q2bOl0jOfOnUOHDh3Qt29f9OrVCz/++CN69+6NypUro0yZMgDkoqxhw4ZQFAWjR49GpkyZMHv2bJen/d27dy/RNoPBgCxZsqBevXpYuHAhevTogaZNm6Jnz54AgPLlyyNLliwYMWIEunTpghYtWsROc7p16xZq1KgRe8GfM2dObNiwAX379kVERASGDx8OQC7IW7VqhW3btqFz584YNmwYHj58iC1btuD48eNo0qQJpk2bhjfffBNt27ZFu3btYs8NAO3bt8eJEycwZMgQFCpUCGFhYdiyZQsuX75sdfEaX6dOnfDOO+9g2bJlePvtt62eW7ZsGV588UVkzZoV0dHRaNasGaKiojBkyBDkyZMH165dw7p16/DgwQOEhIS49B4DwPnz5wEA2bNnh9lsRps2bfDHH3/g9ddfx/PPP49jx47hu+++w5kzZxIVF9i+fTuWLVuGwYMHI0eOHKhQoYLm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ppQkJka+HkWRpreGNNvumIiIiIjSO09X1fNp4lS6dGk0a9YMV69exa5du5AvXz4MHDgQ/fv3t7l/VFQUoqKiYj+PiIhAgQIFrN6cx4+BJUviejlVrw707SujL1FRwEsvAbt3W5cttyRZEydKYkVERERERKlLmk6cMmTIAAAYOXIkOnbsiAMHDmDYsGGYPn06evXqlWj/Tz/9FGPGjEm03ZU3JyoK+OYbYOpUaRQLSHL13nvAK68k+UshIiIiIiIfStOJk7+/P6pUqYK9e/fGbhs6dCgOHDiAP//8M9H+zow4OctkAm7flmp8SVhSRUREREREKYinEyefrnrJmzcvSieoxvD8889j5cqVNvcPCAhAQECAW86t1wN58rjlUERERERElMb5tKpe7dq1cfr0aattZ86cQWhoqI8iIiIiIiIiSsynidOIESOwb98+fPXVVzh37hx++uknzJw5E4MGDfJlWERERERERFZ8mjhVrVoVq1evxs8//4yyZcvi888/x6RJk9CtWzdfhkVERERERGTFp8UhksvTC8CIiIiIiCh18HRu4NMRJ3cym4HffgM6dACqVQPatgV++UWq5xERERERESWHT6vqucuTJ0DHjsDmzVItz2QCDh4E1qwB6tWThCpzZl9HSUREREREqVWaGHH64ANg61b52DLCZPl3zx6AtSaIiIiIiCg50sQaJz+/cMTE2J/HqNcDV6+ybxMRERERUVrFNU5OiInRft5kAnbt8k4sRERERESU9qSJxMkZRqOvIyAiIiIiotQq3SRO1av7OgIiIiIiIkqt0kTi1Lq1rGOyRa8HmjUDihXzbkxERERERJR2pInEadIkoHhxQFHkYaHTAaGhwNy5PguNiIiIiIjSgDSROOXIAezfD0yYAJQqBQQHAyVKAOPGST+nvHl9HSEREREREaVmaaIcuadKDhIRERERUerAcuQp2IULwFtvyTTBggWBTp2A3bt9HRUREREREbmbwdcBpFZbtgBt2kgPKZNJtt24ASxfDnz0EfDZZ76Nz5csY5jx15sREREREaVmHHFKgrt3gVdeAaKi4pImIK5X1OefA2vX+iQ0n/rjD+Dll4EMGQCDAahSBVi4MC6RIiIiIiJKrZg4JcG8ecDTp/YTAr1eClWkJz/+CNSrB6xfD0RHA2YzcOgQ0LMn0KcPkyciIiIiSt2YOCXB779r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evWCFWoROaCxj/Lbre713U3TUSUTTqBVauS7jVGu65CIiIiISClXqoYK7r//fg4ePJj7SkxMLH6nzsoQVsX/L/aGE+r+C6p3s38uwAGuitDqP977qdUL6l7u+XxkPLR5wL+YQq3LS77b1Lsi8HGIiIiIiARISBOnGjVq4HQ62bMn/0ave/bsIS4urkD7iIgIoqOj872KpVIzuDwJBq6ChteC43jBBsMJMW0Bw/7ZcJ1IrOIHQI+34bxvIbbPifY55yvUhT4/+d63yDCg50fQ4k4wIvKfi+8PA5ZBZI3i3V+wxF8A8QM9nw+vAWdND148IiIiIiIlzLAsrzWzA65bt2507dqVl16yRy1M06R+/frceuut3HfffV7fm5aWRkxMDAenQXQFLw0rNobImpB9FHBDtW7Q7hGoWCd/u+zDcGwfhFeFsEpweJe9R1H6dvtYgyFQ/cz870ldB7u/AXcmVOtsJz2OwkaivMhMhZRFYGZCtU6lc7NYy4K142Hzc+A+cvygA+pcAj3esz9PEREREZEAyc0NDh4s/gBLIUKeOH3yyScMGzaM119/na5duzJ58mRmzJjB5s2bC6x9OlnBxOn4yE/l5tDpWajZ3R7ZcZWSIgtlgemGQ1vsJLByM332IiIiIhIUgU6cQr5i/+qrr+aff/7hoYceIjk5mQ4dOvDdd9/5TJryueogBODDkVPgcEJM61BHISIiIiJSokI+4lQcgc4qRURERESkdAh0blCqquqJiIiIiIiEghInERERERERH5Q4iYiIiIiI+KDESURERERExAclTiIiIiIiIj4ocRIREREREfFBiZOIiIiIiIgPSpxERERERER8UOIkIiIiIiLigxInERERERERH5Q4iYiIiIiI+KDESURERERExAclTiIiIiIiIj64Qh1AcViWBUBaWlqIIxERERERkVDKyQlycoSSVqoTp3379gFQr169EEciIiIiIiKng3379hETE1Pi/ZbqxKlatWoAJCQkBOTDEcmRlpZGvXr1SExMJDo6OtThSBmmZ02CRc+aBIueNQmWgwcPUr9+/dwcoaSV6sTJ4bCXaMXExOj/iBIU0dHRetYkKPSsSbDoWZNg0bMmwZKTI5R4vwHpVUREREREpAxR4iQiIiIiIuJDqU6cIiIimDBhAhEREaEORco4PWsSLHrWJFj0rEmw6FmTYAn0s2ZYgarXJyIiIiIiUkaU6hEnERERERGRYFDiJCIiIiIi4oMSJxERERERER+UOImIiIiIiPhQqhOnKVOm0LBhQyIjI+nWrRvLli0LdUhSik2aNIkzzzyTypUrU6tWLQYPHsyWLVvytTl69ChjxoyhevXqVKpUiSuuuII9e/aEKGIpK5544gkMw2Ds2LG5x/SsSUnZtWsX1157LdWrVycqKoq2bduyYsWK3POWZfHQQw8RHx9PVFQUffv2Zdu2bSGMWEojt9vN+PHjadSoEVFRUTRp0oT//e9/5K1BpmdNTtWiRYsYNGgQtWvXxjAMZs2ale+8P8/W/v37GTp0KNHR0VSpUoURI0aQnp5epDhKbeL0ySefMG7cOCZMmMCqVato3749/fv3JyUlJdShSSm1cOFCxowZw2+//cbcuXPJysriggsuICMjI7fNnXfeyVdffcXMmTNZuHAhu3fv5vLLLw9h1FLaLV++nNdff5127drlO65nTUrCgQMH6NmzJ2FhYXz77bds3LiRZ599lqpVq+a2eeqpp3jxxRd57bXXWLp0KRUrVqR///4cPXo0hJFLafPkk0/y6quv8vLLL7Np0yaefPJJnnrqKV566aXcNnrW5FRlZGTQvn17pkyZUuh5f56toUOHsmHDBubOncucOXNYtGgRo0aNKlogVinVtWtXa8yYMbm/u91uq3bt2takSZNCGJWUJSkpKRZgLVy40LIsy0pNTbXCwsKsmTNn5rbZtGmTBVhLliwJVZhSih06dMhq1qyZNXfuXOvcc8+17rjjDsuy9KxJybn33nutXr16eTxvmqYVFxdnPf3007nHUlNTrYiICOujjz4KRohSRlx00UXWjTfemO/Y5Zdfbg0dOtSyLD1rUnIA64svvsj93Z9na+PGjRZgLV++PLfNt99+axmGYe3atcvva5fKEafMzExWrlxJ3759c485HA769u3LkiVLQhiZlCUHDx4EoFq1agCsXLmSrKysfM9dy5YtqV+/vp47OSVjxozhoosuyvdMgZ41KTmzZ8+mS5cuXHnlldSqVYuOHTsybdq03PM7duwgOTk537MWExNDt27d9KxJkfTo0YN58+axdetWANasWcPixYsZOHAgoGdNAsefZ2vJkiVUqVKFLl265Lbp27cvDoeDpUuX+n0tV8mFHTx79+7F7XYTGxub73hsbCybN28OUVRSlpimydixY+nZsydnnHEGAMnJyYSHh1OlSpV8bWNjY0lOTg5BlFKaffzxx6xatYrly5cXOKdnTUrKn3/+yauvvsq4ceN44IEHWL58Obfffjvh4eEMGzYs93kq7O9TPWtSFPfddx9paWm0bNkSp9OJ2+3mscceY+jQoQB61iRg/Hm2kpOTqVWrVr7zLpeLatWqFen5K5WJk0igjRkzhvXr17N48eJQhyJlUGJiInfccQdz584lMjIy1OFIGWaaJl26dOHxxx8HoGPHjqxfv57XXnuNYcOGhTg6KUtmzJjBBx98wIcffkibNm1YvXo1Y8eOpXbt2nrWpMwolVP1atSogdPpLFBhas+ePcTFxYUoKikrbr31VubMmcP8+fOpW7du7vG4uDgyMzNJTU3N117PnRTVypUrSUlJoVOnTrhcLlwuFwsXLuTFF1/E5XIRGxurZ01KRHx8PK1bt853rFWrViQkJADkPk/6+1SK6+677+a+++5jyJAhtG3bluuuu44777yTSZMmAXrWJHD8ebbi4uIKFJDLzs5m//79RXr+SmXiFB4eTufOnZk3b17uMdM0mTdvHt27dw9hZFKaWZbFrbfeyhdffMFPP/1Eo0aN8p3v3LkzYWFh+Z67LVu2kJCQoOdOiqRPnz6sW7eO1atX5766dOnC0KFDc3/WsyYloWfPngW2Vdi6dSsNGjQAoFGjRsTFxeV71tLS0li6dKmeNSmSw4cP43Dk/1rpdDoxTRPQsyaB48+z1b17d1JTU1m5cmVum59++gnTNOnWrZv/Fyt2aYsQ+fjjj62IiAjr7bfftjZu3GiNGjXKqlKlipWcnBzq0KSUuvnmm62YmBhrwYIFVlJSUu7r8OHDuW1Gjx5t1a9f3/rpp5+sFStWWN27d7e6d+8ewqilrMhbVc+y9KxJyVi2bJnlcrmsxx57zNq2bZv1wQcfWBUqVLDef//93DZPPPGEVaVKFevLL7+01q5da1166aVWo0aNrCNHjoQwcilthg0bZtWpU8eaM2eOtWPHDuvzzz+3atSoYd1zzz25bfSsyak6dOiQ9fvvv1u///67BVjPPfec9fvvv1s7d+60LMu/Z2vAgAFWx44draVLl1qLFy+2mjVrZl1zzTVFiqPUJk6WZVkvvfSSVb9+fSs8PNzq2rWr9dtvv4U6JCnFgEJf06dPz21z5MgR65ZbbrGqVq1qVahQwbrsssuspKSk0AUtZcbJiZOeNSkpX331lXXGGWdYERERVsuWLa2pU6fmO2+apjV+/HgrNjbWioiIsPr06WNt2bIlRNFKaZWWlmbdcccdVv369a3IyEircePG1oMPPmgdO3Yst42eNTlV8+fPL/Q72rBhwyzL8u/Z2rdvn3XNNddYlSpVsqKjo60bbrjBOnToUJHiMCwrz5bOIiIiIiIiUkCpXOMkIiIiIiISTEqcREREREREfFDiJCIiIiIi4oMSJxERERERER+UOImIiIiIiPigxElERERERMQHJU4iIiIiIiI+KHESERERERHxQYmTiIh49Ndff2EYBqtXry5WPw8//DAdOnTI/X348OEMHjy4WH2WlOTkZPr160fFihWpUqWKx2MiIlK+KXESESmnhg8fjmEYua/q1aszYMAA1q5dm9umXr16JCUlccYZZ5TotV944QXefvvtEu2zMCffY85rwIABuW2ef/55kpKSWL16NVu3bvV4rLgaNmzI5MmTS6QvEREJPiVOIiLl2IABA0hKSiIpKYl58+bhcrm4+OKLc887nU7i4uJwuVwlet2YmJigjeTkvcec10cffZR7fvv27XTu3JlmzZpRq1Ytj8dERKR8U+IkIlKORUREEBcXR1xcHB06dOC+++4jMTGRf/75Byg4VW/BggUYhsG8efPo0qULFSpUoEePHmzZsiVfv0888QSxsbFUrlyZESNGcPTo0XznT56q17t3b26//XbuueceqlWrRlxcHA8//HC+92zevJlevXoRGRlJ69at+fHHHzEMg1mzZvl9jzmvqlWrAvYo0Geffca7776LYRgMHz680GMAqampjBw5kpo1axIdHc3555/PmjVr8l3rq6++4swzzyQyMpIaNWpw2WWX5d7fzp07ufPOO3NHvQB27tzJoEGDqFq1KhUrVqRNmzZ88803Xu9HRERCQ4mTiIgAkJ6ezvvvv0/Tpk2pXr2617YPPvggzz77LCtWrMDlcnHjjTfmnpsxYwYPP/wwjz/+OCtWrCA+Pp5XXnnF5/XfeecdKlasyNKlS3nqqad49NFHmTt3LgBut5vBgwdToUIFli5dytSpU3nwwQeLd8PA8uXLGTBgAFdddRVJSUm88MILhR4DuPLKK0lJSeHbb79l5cqVdOrUiT59+rB//34Avv76ay677DIuvPBCfv/9d+bNm0fXrl0B+Pzzz6lbty6PPvpo7qgXwJgxYzh27BiLFi1i3bp1PPnkk1SqVKnY9yUiIiWvZOdeiIhIqTJnzpzcL+oZGRnEx8czZ84cHA7v/6722GOPce655wJw3333cdFFF3H06FEiIyOZPHkyI0aMYMSIEQBMnDiRH3/8scCo08natWvHhAkTAGjWrBkvv/wy8+bNo1+/fsydO5ft27ezYMEC4uLicmPo169fke4xxwMPPMADDzxAzZo1iYiIICoqKrdfoMCxxYsXs2zZMlJSUoiIiADgmWeeYdasWXz66aeMGjWKxx57jCFDhvDII4/k9tO+fXsAqlWrhtPppHLlyvmuk5CQwBVXXEHbtm0BaNy4sc/7ERGR0NCIk4hIOXbeeeexevVqVq9ezbJly+jfvz8DBw5k586dXt/Xrl273J/j4+MBSElJAWDTpk1069YtX/vu3bv7jCVvnzn95vS5ZcsW6tWrly/pyBnN8SXvPea8Ro8e7dd7c6xZs4b09HSqV69OpUqVcl87duxg+/btAKxevZo+ffoUqd/bb7+diRMn0rNnTyZMmJCvMIeIiJxeNOIkIlKOVaxYkaZNm+b+/sYbbxATE8O0adOYOHGix/eFhYXl/pyzXsc0zWLFkrfPnH6L2ycUvMdTkZ6eTnx8PAsWLChwLqfIRVRUVJH7HTlyJP379+frr7/mhx9+YNKkSTz77LPcdtttxYpXRERKnkacREQkl2EYOBwOjhw5csp9tGrViqVLl+Y79ttvvxUrrhYtWpCYmMiePXtyjy1fvrxYfRZFp06dSE5OxuVy0bRp03yvGjVqAPaI2bx58zz2ER4ejtvtLnC8Xr16jB49ms8//5z//Oc/TJs2LWD3ISIip04jTiIi5dixY8dITk4G4MCBA7z88sukp6czaNCgU+7zjjvuYPjw4XTp0oWePXvywQcfsGHDhmKt3+nXrx9NmjRh2LBhPPXUUxw6dIj//ve/wIkRL0/y3mMOl8uVm/D4o2/fvnTv3p3Bgwfz1FNP0bx5c3bv3p1bEKJLly5MmDCBPn360KRJE4YMGUJ2djbffPMN9957L2BX8Fu0aBFDhgwhIiKCGjVqMHbsWAYOHEjz5s05cOAA8+fPp1WrVkX8dEREJBg04iQiUo599913xMfHEx8fT7du3Vi+fDkzZ86kd+/ep9zn1Vdfzfjx47nnnnvo3LkzO3fu5Oabby5WnE6nk1mzZpGens6ZZ57JyJEjc6vqRUZGen1v3nvMefXq1atI1zcMg2+++YZzzjmHG264gebNmzNkyBB27txJbGwsYJccnzlzJrNnz6ZDhw6cf/75LFu2LLePRx99lL/++osmTZpQs2ZNwK4WOGbMGFq1asWAAQNo3ry5XxUIRUQk+AzLsqxQByEiIlJUv/zyC7169eKPP/6gSZMmoQ5HRETKOCVOIiJSKnzxxRdUqlSJZs2a8ccff3DHHXdQtWpVFi9eHOrQRESkHNAaJxERKRUOHTrEvffeS0JCAjVq1KBv3748++yzoQ5LRETKCY04iYiIiIiI+KDiECIiIiIiIj4ocRIREREREfFBiZOIiIiIiIgPSpxERERERER8UOIkIiIiIiLigxInERERERERH5Q4iYiIiIiI+KDESURERERExIf/B0IdHYpIQ0ubAAAAAElFTkSuQmCC", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA04AAAIjCAYAAAA0vUuxAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAADazUlEQVR4nOzdd3hT5RcH8O9N0hYKbdlDRtkgU/beIDKVKRtkKLKHCzcuQAUB8ceWrWxQkL0VRFA2yJS9ymyBQtsk9/fHIW3TJjdJm9Hx/TxPHtqbm3tP05bec9/3PUdRVVUFERERERER2aXzdQBEREREREQpHRMnIiIiIiIiB5g4EREREREROcDEiYiIiIiIyAEmTkRERERERA4wcSIiIiIiInKAiRMREREREZEDTJyIiIiIiIgcYOJERERERETkABMnIvIpRVHw6aefevSY8+bNg6IouHjxolvP4263bt1Chw4dkD17diiKgkmTJgEAzp49ixdffBEhISFQFAVr1qzxaZzkPjt37oSiKFixYoVXzueJ3zd34+8BEaVUTJyIyK0sSUr8R65cudCwYUNs2LDB1+F53aeffpro/Yj/uHnzZuy+I0aMwKZNmzB69GgsXLgQL730EgCgV69eOHbsGL788kssXLgQVapUcWuMkZGR+PTTT7Fz5063HteTevfubfU+BgcHo0KFCpgwYQKioqLcdp7U+N6sX78+xSVH/D0gorTA4OsAiCht+uyzz1C4cGGoqopbt25h3rx5aNGiBdauXYtWrVrF7vfkyRMYDJ79r6hHjx7o3LkzAgICPHoeLdOmTUPmzJkTbc+SJUvsx9u3b8fLL7+Mt956K3bbkydP8Oeff+KDDz7A4MGDPRJbZGQkxowZAwBo0KCBR87hCQEBAZg9ezYA4MGDB1i5ciXeeustHDhwAEuWLHHLOVLje7N+/Xr88MMPNpMnb/y+aeHvARGlZkyciMgjmjdvbnVHuG/fvsidOzd+/vlnq8QpQ4YMHo9Fr9dDr9d7/DxaOnTogBw5cmjuExYWZnUBCQC3b98GgETbCTAYDOjevXvs5wMHDkT16tWxdOlSTJw4Ec8991ySj202mxEdHe2OMG0yGo0wm80eO7493vh908LfAyJKzThVj4i8IkuWLMiYMWOiu90J11xYpvScO3cOvXv3RpYsWRASEoLXXnsNkZGRVq+NiorCiBEjkDNnTgQFBaFNmza4evVqonPbWuNUqFAhtGrVCn/88QeqVauGDBkyoEiRIliwYEGi1x89ehT169dHxowZkT9/fnzxxReYO3eu29ZNWeJTVRU//PBD7PSlTz/9FKGhoQCAt99+G4qioFChQrGvu3btGvr06YPcuXMjICAAZcqUwY8//pjo+E+fPsWnn36KEiVKIEOGDMibNy/atWuH8+fP4+LFi8iZMycAYMyYMVbnBoCbN2/itddeQ/78+REQEIC8efPi5Zdf1vy6v/32WyiKgkuXLiV6bvTo0fD398f9+/cByLqV9u3bI0+ePMiQIQPy58+Pzp07Izw83OX3UafTxY4UWOKLiorCJ598gmLFiiEgIAAFChTAO++8k2g6n6IoGDx4MBYvXowyZcogICAA06dP13xvGjRoYHNkonfv3lbfp4sXL0JRFHz77beYNGkSihYtioCAAJw8eTJ2H5PJhPfffx958uRBpkyZ0KZNG1y5csXquL///js6duyIggULxn4tI0aMwJMnT6zO/cMPP8R+TZZH/K8z4UjUoUOH0Lx5cwQHByNz5sxo3Lgx9u3bZ7WP5Wd0z549GDlyJHLmzIlMmTKhbdu2sUlNcqW13wMiSns44kREHhEeHo47d+5AVVWEhYXh+++/x6NHj6xGCLR06tQJhQsXxtixY3Hw4EHMnj0buXLlwvjx42P36devHxYtWoSuXbuiVq1a2L59O1q2bOl0jOfOnUOHDh3Qt29f9OrVCz/++CN69+6NypUro0yZMgDkoqxhw4ZQFAWjR49GpkyZMHv2bJen/d27dy/RNoPBgCxZsqBevXpYuHAhevTogaZNm6Jnz54AgPLlyyNLliwYMWIEunTpghYtWsROc7p16xZq1KgRe8GfM2dObNiwAX379kVERASGDx8OQC7IW7VqhW3btqFz584YNmwYHj58iC1btuD48eNo0qQJpk2bhjfffBNt27ZFu3btYs8NAO3bt8eJEycwZMgQFCpUCGFhYdiyZQsuX75sdfEaX6dOnfDOO+9g2bJlePvtt62eW7ZsGV588UVkzZoV0dHRaNasGaKiojBkyBDkyZMH165dw7p16/DgwQOEhIS49B4DwPnz5wEA2bNnh9lsRps2bfDHH3/g9ddfx/PPP49jx47hu+++w5kzZxIVF9i+fTuWLVuGwYMHI0eOHKhQoYLm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ppQkJka+HkWRpreGNNvumIiIiIjSO09X1fNp4lS6dGk0a9YMV69exa5du5AvXz4MHDgQ/fv3t7l/VFQUoqKiYj+PiIhAgQIFrN6cx4+BJUviejlVrw707SujL1FRwEsvAbt3W5cttyRZEydKYkVERERERKlLmk6cMmTIAAAYOXIkOnbsiAMHDmDYsGGYPn06evXqlWj/Tz/9FGPGjEm03ZU3JyoK+OYbYOpUaRQLSHL13nvAK68k+UshIiIiIiIfStOJk7+/P6pUqYK9e/fGbhs6dCgOHDiAP//8M9H+zow4OctkAm7flmp8SVhSRUREREREKYinEyefrnrJmzcvSieoxvD8889j5cqVNvcPCAhAQECAW86t1wN58rjlUERERERElMb5tKpe7dq1cfr0aattZ86cQWhoqI8iIiIiIiIiSsynidOIESOwb98+fPXVVzh37hx++uknzJw5E4MGDfJlWERERERERFZ8mjhVrVoVq1evxs8//4yyZcvi888/x6RJk9CtWzdfhkVERERERGTFp8UhksvTC8CIiIiIiCh18HRu4NMRJ3cym4HffgM6dACqVQPatgV++UWq5xERERERESWHT6vqucuTJ0DHjsDmzVItz2QCDh4E1qwB6tWThCpzZl9HSUREREREqVWaGHH64ANg61b52DLCZPl3zx6AtSaIiIiIiCg50sQaJz+/cMTE2J/HqNcDV6+ybxMRERERUVrFNU5OiInRft5kAnbt8k4sRERERESU9qSJxMkZRqOvIyAiIiIiotQq3SRO1av7OgIiIiIiIkqt0kTi1Lq1rGOyRa8HmjUDihXzbkxERERERJR2pInEadIkoHhxQFHkYaHTAaGhwNy5PguNiIiIiIjSgDSROOXIAezfD0yYAJQqBQQHAyVKAOPGST+nvHl9HSEREREREaVmaaIcuadKDhIRERERUerAcuQp2IULwFtvyTTBggWBTp2A3bt9HRUREREREbmbwdcBpFZbtgBt2kgPKZNJtt24ASxfDnz0EfDZZ76Nz5csY5jx15sREREREaVmHHFKgrt3gVdeAaKi4pImIK5X1OefA2vX+iQ0n/rjD+Dll4EMGQCDAahSBVi4MC6RIiIiIiJKrZg4JcG8ecDTp/YTAr1eClWkJz/+CNSrB6xfD0RHA2YzcOgQ0LMn0KcPkyciIiIiSt2YOCXB779rJwImE7BnT/pJFi5dAl5/Xb5ey6gbIMkTIInmzz/7JDQiIiIiIrdI84mTqgIPH8oIkbsoiuOkKD2t75k1S/t5nQ74/nvvxEJERERE5AlpNnEyGoEpU4BixaSvU8aMQP36wIYNyT92gwaO96lTJ/0kT3//bb3WKyGzWfppERERERGlVmkycTIagQ4dgOHDpWS4xZ49QIsWwNSpyTt+pUqO9ylUKHnnSE0CAhwnif7+3omFiIiIiMgT0mTiNG8e8MsvMp0u/pQ6y6jIkCFA+fJA48bA9OnAo0euHX/5cikAoWX7dteOmZq1aqX9vMEAtG7tnViIiIiIiDwhTSZO338v62q0HDsG7NgBDBwIlCkD/Pef88c/f157ahoAXLmSfopDdO0K5MplP5lUVWDkSO/GRERERETkTmkucbp5U5IiS0U3LZYRqevXgZYtnXsNAGTL5njEKSgo/axxypQJ2LoVyJlTPrckrTod4OcHLF4sPZ2IiIiIiFKrNJU4zZkDFCjg+kiP0QicOgVs2eLc/l26aI84GQxAjx6uxZDalS0rI3E//gi0awe0aQOMGQNcvgy8+qqvoyMiIiIiSh5FVVPvhLKIiAiEhIQgPDwc+/cHo2nTpB/Lzw8YNgz45hvH+5pMQN26wP79iRMovV5GYA4fBgoXTno8RERERETkvPi5QXBwsNuPn2ZGnL76yvG6JkccrVuy0OuB9euBl16Sz3U6GWUCgNBQYOdOJk1ERERERGmJwdcBuMPjx1LoITliYoBatZzfP0sWYN064N9/pTdUdDRQubJU6ktuAkdERERERClLmkicoqKS93qdDsidG3j5Zddf+/zz8iAiIiIiorQrTYyNZMkCZM3q/P4JR4TMZuDOHWma+/vvbg2NiIiIiIjSgDSROOl0MkXOGe++C9SsCfj7y+eWkuExMbJuqX59qQxHRERERERkkSYSp19/BVavdrxfrlzA558DQ4fKmiTAunS50Sif9+8PXLjgmViJiIiIiCj1SROJU58+zjWv/fprKTs+ZYp2A1tFAWbOdF98RERERESUuqWJxMkyUuTI5cvy7z//aJceN5mAAwfcExsREREREaV+aSJxcraF77hxwMOHMuqkRVGAgIDkx0VERERERGlDmkicnBUZCWzcCLRuHdew1p5WrbwTExERERERpXzpKnECgIgIYNQoGaWyVNSLT68HcuQAunf3fmxERERERJQypbvEKV8+4NAhoHlzSZwsPZ0sSVS2bMDWrUBQkO9iJCIiIiKilMXBhLW0JXduaXIbGSlT9RRFCkHkyQNUry7T87p0ATJl8nWkRERERESUkqSbxEmnA8LC5GNVlYa3Frdvy7Z+/XwTGxERERERpWzpaqqeotiuwGcySRPdvHmB0qWBTz4BbtzwfnxERERERJQyKarqbDHvlCciIgIhISEAwgEEu+24ej2QOTOwbRtQubLbDktERERERB5iyQ3Cw8MRHOy+3MAiXY04OctkAh49Alq2BKKifB0NERERERH5GhMnO0wm4NYtYOVKX0eSupjNwPnzwL//Ak+f+joaIiIiIiL3YOKkwWAAdu/2dRSpg6oCs2YBxYrJo3RpqVb47rtSxZCIiIiIKDVj4uSArSa5lNjo0cDrrwMXL8ZtCw8HJkwAXnyRo09ERERElLoxcdJgNAINGvg6ipTv6FFg/Hj5OGGpEZMJ2LsXmDnT+3EREREREblLuk2cOnQAvvvO/vN6vZQnb9vWezGlVrNmybRGLdOmeScWIiIiIiJPSLeJ0+XLwLBhwJAh8nn8C3+dDggJATZsAPz9fRNfanL6tIzO2aOqUjCCiIiIiCi1SreJ04kTsn5p8mRgxw6gXTugRAmgUiXgyy8lGahQwfo10dHA//4HlCkjiVZQEPDaa3Ks9CxLFhmh05I5s1dCASDrqRYuBLp1Azp1Ar75Brhzx3vnJyIiIqK0J902wM2WDbh71/n9o6Olr9O2bfK55V0zGCRpWLsWaNrUpRDSjJUrZeqjPQYDMGAA8P33no/l33/l+3DtmnxfLN8nPz9gyRLglVc8HwMREREReR8b4HqAXq99oW/Lt98C27fLhXj8VNNolKSqY8f0W3a7TRugXDnb65z0eiBDBmDECM/H8fgx0KgRcPOmfG4ySV8psznue3T4sOfjICIiIqK0J10mToCsb3KW2SyjJWaz7edVVUpvL1ninthSGz8/YOtWoHp1+dxgkG0AkDu3PFekiOfj+OknSZpMpsTPWZLdiRM9HwcRERERpT0OaqGlTZ07S4NWZ4WFxY1i2OPnB/z9N9CnT/JiS61y5QL++AM4cABYv15GeKpWBVq1clxxz11+/VXWrdmbfGo0Ar/84p1YiIiIiChtSZeJU7Nmru1vawTDFlbgk2SpalXfnPvpU/tJk0V0tHdiISIiIqK0Jd1N1QsKAtq3d27f+/elXHmJEo73jYmR4hHkO5UqaVf30+mA8uW9Fw8RERERpR3pbsTpf/8DAgMd73f/PlCrFnD2rOMRJ4MBeP55oHFj7f1OnJAy2TdvAvnyAb16OZeUkXPeeEOKeNhjNgNDh3ovHiIiIiJKO3w64vTpp59CURSrR6lSpTxyroAAWd/Svbtz+48d6zhp0j1794oUkXU9OjvvptEI9O0LlC0LTJgALF4MfP01ULKkjGjZKzpBrilSBJg6VT6OP/Jk+b706AF06eL9uIiIiIgo9fP5VL0yZcrgxo0bsY8//vjDI+dRVSmb7QyjEZg50/FIU7lywNKlwLFjQP789vcbPRqYOzfu2JYHIBf6X33lXFzk2JtvSq+tJk3iEqYyZYA5c4B58+wnt0REREREWnw+Vc9gMCBPnjweP09MjCRPiuJ437t3pby4FkWRJrrt22uvq3nwQJIjraIF33wDjBoFZMzoODZyrFEjeVh6OHmrqh8RERERpV0+v/9+9uxZPPfccyhSpAi6deuGy5cv2903KioKERERVg9n+fsDFSpIAYeVK+NGfGzJlMlxgqWqwI4dQLt2kpTZs2WLVHvTEhEB7N6tvQ+5Tqdj0kRERERE7uHTxKl69eqYN28eNm7ciGnTpuHChQuoW7cuHj58aHP/sWPHIiQkJPZRoEABp88VFSVT6jZtAjp0kBGJo0eBy5cTjwZlziwly7VGkizWrpV1S/ZERjoXn7P7ERERERGR9ymq6qjzjfc8ePAAoaGhmDhxIvr27Zvo+aioKERFRcV+HhER8Sx5CgcQnOTzPv888MEHQLducdv27gXq1ZOpXo7eoTx5gKtXbSdaBw8ClSs7juHMGaB4ccf73bsnI1S5c3NqHxERERGRRUREBEJCQhAeHo7g4KTnBvb4fKpefFmyZEGJEiVw7tw5m88HBAQgODjY6uEO//4r1fYqVQIGDQK2bgVq1pQpfX5+jl9/8yZw5Yrt5ypV0u4vpNcDDRo4Tpr++ANo2hTInh0oXFj+HTgQuHXLcXxERERERJQ8KSpxevToEc6fP4+8efP65PyHDkk1vaZNgerVpY/ToEHOTdnT2mf+fJn+l3C9jcEAZM0KzJqlfey1ayW52rEjbtuTJ/K6atUkcSMiIiIiIs/xaeL01ltvYdeuXbh48SL27t2Ltm3bQq/Xo4sPm+1YikYcOgS0aiVrnbTKkisKULSodjnysmWBf/4BevaUflKATLPr10+2Fytm/7VPn0qjXLM5cRxGI3D9upQ7Ty9UFfj9d6B3b6BOHeCVV4Bly7QLdBARERERJZdP1zh17twZu3fvxt27d5EzZ07UqVMHX375JYoWLerU6y3zGJO7xklL4cLAhQva+8yYAbz+unPHi4kBHj4EgoOdq/j200/Wa69s8fcHwsKAkBDnYkitTCZJNufNk/fOaJTKeWYzULGiVDDMnt3XURIRERGRL3h6jZNPizUvWbLEl6d3ysWLtrcriox+DB0K9O/v/PH8/KT/k7NOnZLXaI2oREcDly4B5cs7f9zUaPx4mfYIxI0Mms3y77FjQJcuwObNvomNiIiIiNK2FLXGKSWyNx6nqsDPPwOTJzvXVDepMmeOSw4c7ZeWRUcDEyfa/34YjTLidOKEd+MiIiIiovSBiVMSGQzeuUhv29bxGqty5WRKYVp27Bhw9672PjodR5yIiIiIyDN8OlUvtXNXKfADB4D162VUpUoVoHXruPVPxYvLFLSlS22PPKkqMGaMZ0e9UgLL1DwtiuLcfkRERERErmLiZINerz3KA0jColVJzxm3bwPt20uVOINBLvxjYqSh7qpV0ksKAObMkYRg+XKJTaeTz/38gO+/l1GplEBVpd/Uhg2SBFatKrH5+yf/2KVLAxkySJVBe0wmoEaN5J+LiIiIiCghn1bVSy5PVdWzVGrToijAf/8BhQol7RxGo4wuHT+eOEnT66Vs+eHD1o1xjx+X0tvh4VLCvFs31wpNeNL168DLLwN//22dBObMKUlgnTrJP8fgwcD06baTWr0eKFVKpvSl9dE3IiIiIkrM01X1mDgl0dtvA19/nfTXr1mjPVJkMEjp7WnTkn4Ob4mOBl54ATh7NvFUOZ1ORooSJoFJ8egR0LixTG0E4gpF6PXSSPj33yV5IiIiIqL0x9OJE4tDJMGHH0pp7ORYtkwu+O0xGqWHU2qwZg3w77+21xeZzZJYffdd8s+TOTOwcycwZYpM3cuUSaZLvveejDQxaSIiIiIiT+EapySoW1emg0VGStEGS2GHypVllOi55xwf48EDx+uoHj1yS7get3y59vRGo1FKt//vf8k/V8aMMmVv8ODkH4uIiIiIyFkccUoCf38ZYSlWDOjTR9bw/Por8NlnsuZp8WLHxyhZMq5yni2KAhQp4raQnWY0SjLYpIlMratbV4pTPHli/zUREY7XhD1+7N44iYiIiIi8iYmTi4KDgbJlJbEIC5NtlqTBZJKCCD17Avv2aR+nXz/t0tmKAgwc6J6YnRUZCTRtCnTuDOzYAZw7B+zdK7FWrQrcuWP7daVKOU4Ck7u+iYiIiIjIl5g4uUBRgGHDgLVrpYqcval2Oh0wYYL2scqUAT74wP7rq1UDBgxIXryueustYPdu+diSDFr+PXVKEkJbXn/dcf8kbyeBRERERETuxMTJBd26AR9/DPz2myQ39hiNwLp1zh0vSxbbzw0YIOt5vOXBA+DHH+1PuTOZpD/T2bOJnytTBvjoI/k4YSlwnQ6oXx/o39+t4RIREREReRUTJyf5+UkVvLNnpRCEozU90dFx5bJtiYyU6X4PHyZ+zmyWtVP79ycvZlccOABERTnezzIildCYMcD8+bJ2yyJ7dhlV27DBPU1wKWnu3gW++UZKuderB7z7rvQgIyIiIiLnMXFKICTE9vaYGCn6ULmyNHXVKiWu00lfI61GrEuXak/3UxTH0/3cydluXvb2UxSZynfyJHDlCnD+PHDjhhTMyJDBfXGSa/78U4qMvPcesH279LqaMAEoUUISXSIiIiJyDhOnBObPBzp1sp0YGY0yKrN2rfaIk9ksa6G0OJrKZzIBv/ziOF53qVLFuVGhunW1n1cU6a1UpIiM0pHv3LsHNG8uZe3j/7yaTPJ47TXvjmoSERERpWZMnBIIDZXS4vZGgsxm4PZt2yMvlnVPPXoA3btrn+fqVcexREc73sddsmUDevWyP5JmMEjFvfhT8Ww5dw744QdpePvHH86PZJH7zZsnU0HtJfl6PTBpkjcjIiIiIkq92AA3ngwZZD3I06dJe32FCsDw4ZI0aRWPMJud62ukdQxPmDgROHFCSpBbGtpaphsWLQosXGj/teHhQO/ewJo18hpFkdeXLi0NckuX9sZXQPFt3Kg9Mmo0SvNmIiIiInKMI07xREcDc+cm7bWKIlPreva0n/BcvQoMGSK9oE6ccHxMRwUo3C1zZunftGABULs2UKCATOH74Qfgn3+A3Lltv85kAlq2lCmMgIwyWWI/fVqm91275p2vISW5fh349FN5DytUAN58Ezh+3Hvnd1QiHrA/skpERERE1pg4xWM2AytWAAULuv5aRZGEw57z54FKlYBp05wbbQJkrZC3+fvLVMPdu4HLl2UNzJtvApky2X/Nxo3Anj22L8JNJhmNSm9TwnbulKa/n38uSefRo8Ds2UD58sDUqd6JoWZN7SImej1Qo4Z3YiEiIiJK7Zg4JRAVBTx54vrrzGbg77/tP9+njyzWd/YOv07n/Qa4SbV4sfYFusmUviq43bkDtGolUz7jjxoajTIaN2SIVLfztNdf167saDLJ1FIiIiIicoyJkw23byftdRs3Av/+m3j7qVMyguNs0qTXSxGGwYOtt6uqlPveu1dKfacUd+44/toePPBKKCnCjz9K8m1vqqXBIOvJPC00VBJWnU7OaWFJct95R6ZYEhEREZFjTJzc6OlTKYLw7rvW1eSOHHH+GH5+QLduUpEuODhu+6pVcuwyZWT9Ub58QJs2UsXO1woXtr4wt6VAAe/EkhJs2+a4KMPWrd6JpWtXmW7ZubNUTgwOlka469YB48d7JwYiIiKitICJkwd8/bUkCr/8IgnU4cPOve7zz2Ukaf58uci1mDsXaN9eCi1YqKpURKteHfjvP7eG77J+/bQLEeh0wBtveC8eX3OmqIc3y7RXriwVEe/elfVmmzZxpImIiIjIVUycPOTaNaBtW6BZM2DcOMf7Z8gADB0KZM9uvf3hw7gpewkvtk0mICJC1sy8/76MRhUvLpX9/vrLPV+HM6pWleTJFr1e4ho40Hvx+Frdutql5PV6x42EiYiIiChlYeLkQaoKbNnieD9FkaQp/tQ8i+XLtYtVWHrxjB8v65/OnQN+/lmqpX31VdJjd9WMGcDYsdaJn7+/NNXdvVtKnacX/fvLlEt7hRlYlIGIiIgo9WHilAL07Al8+aXt5y5ccLx+CEhcvQ0APvhAClZ4g04HvPee9C7at0+SpZs3gTlzgCxZvBNDSpE3L7BsmXzf4n/vLB+PGSMjkd5mNEqvMiIiIiJyHRMnH6tfH5g3z35ylC1b0puU6vXAd98lObQk8feXdVd16wJZs3r33ClJmzbAsWNSUj40FHjuOeDll6W/08cfezeWjRuBRo3kexMQAJQrJwmttxssExEREaVmiqp6c5m6e0VERCAkJARAOAAb89ySwc9PLiyTmrQ4Q1FkHdTKlfb3uXpVLryTepHr7y+9qdKa06dlNC5bNqBKFe01RenZlCnAsGGSRFt+lhVFppH27CmFR/jeERERUVpgyQ3Cw8MRbGsNTDLxksmOmBi5KNdqIJpcqgoULKidFOXPL4UVPBlHavLPP0DNmkCpUkDz5jK6VaQIsGSJryOzLzxcKtp5+xbF6dNxa6ni3wCwxLFggayhIyIiIiLHmDhpuHtXptJ50qRJQLFi2lXwvvtORg0MBkmgLNP6AgO1Eyq9HqhXz63h+tShQzIF8MAB6+2XLgFdukjj2ZRk5UqgWjVZ45UjB1CokDS+1Srd7k4zZsQ1u7VFrwemTvVOLERERESpHafquUm2bMC9e3HToDJnBr74QtaUDBok2+1N+9PrZb+//waefz5ue1QUsHSp9HUKC5N1MkWKyNS94sWBWrUk6XryxP5oxvr1MjKTFjRqJEUn7L2PQUFSkCIw0Ltx2TJ2rJSI1+msRxQVRdY/rVypndS4Q4MGwK5d2vtkygQ8euTZOIiIiIi8wdNT9Zg4ucnp08CZM8Dly0DOnNJg1HIBf+4c8OmnwOLF9l9vMACdO0ujUgC4cwdo3Bg4ejTu4tuyTqVFC2DVKkm2tm0DWreWammWhMJgkFGNzz8HPvzQo1+211y+LAmjI4sXA127ej4eLSdPSu8qLXPnAr17ezaO5s2l2a3Wb3i2bDKySkRERJTacY1TKuDvL9OwWrWS9UgdO1qPehQrBuTKpV1W3GiU0aWYGPm8Z0/gxAn52DJiYUmMNm6UUuOAJFf//gu89Zas+ylcGOjUCdi7N+0kTYAUyXDEYJAEy9dmzND+Xut03pki16aN9vMGgxQnISIiIiLHmDi5gcnkeN2KM8UBYmJk2tSZM8CGDfanpJnNwPTpcVOsQkOBceMkgfrvPxl1qVnT9a8jJcuZ0/E+JpNz+3nasWPaPw9ms4xKeVr37kDu3LanBCqKPEaM8HwcRERERGkBEyc3MJlkbY2W7NkdlxQPCgKCg4EdOxxX0Xv8WCrMpRfFiwOVKmm/L/7+QLt23ovJnkyZHJf4zpjR83EEBclUzty55XO9XuJSFDn/6tWOpxQSERERkdCYUESuCAqy/9x//8naJa0RJ70e6NdP/nW2Z1N6a2D60kvAwYP2n69QIWU03W3XDli3zv7zBoNM5/SG0qXl52/FCpniaTRKCfdevVLGe0VERESUWrA4RDLpdFIie+dO+/vUrQvs22d/+paiAAUKSJntXLmkIESFCtrnDQiQUa4sWZIaeeqiqjLqdP68/X10OuDKFak+6EtPnkh1xGvXEn/PdToZGTt8GChZ0ifhEREREaVJLA6RCnz6qf3nTpwA/vhDe82LqgLLlknSBADly0uyZa/AgF4vIwbpJWkC5H3USpoAeR/XrPFKOJoyZgS2b5dCHYB8Hy3fy6Ag4LffmDQRERERpTacqpcElrLgwcHSdLVBA/v7OrsO6cYN689/+kmSp8uX46bkWcqSV60KTJiQpNBTrYcPHe+j1zu3nzcUKSLFOtavl5LgMTHSDLdzZ1kDRURERESpCxMnF+j1QL16QI0aUvq7QwfHzVb9/Z07dsL98ucHDh0C5swB5s2TBrihocAbb0i1tICAJH0JqVaRIombySZkNKaskRy9XnpstW7t60iIiIiIKLm4xskFBgPw7rvAF184/5rbt2XNjdZUvYwZgVu3tAtMkBRd+PVX22XadTogRw7p9+Tn5/3YiIiIiMi3uMYpBTEaZcTJFTlzAn372i9PrSjAkCFMmpzx3XdS1j3h2i9Lme3585k0EREREZFnMHFykqJIVbcmTVx/7aRJQKtW8rHlot/y76uvujaClZ6FhgJ//w1062Y9tbFhQ2D3bilXTkRERETkCS5P1Xvy5AlUVUXgs8U9ly5dwurVq1G6dGm8+OKLHgnSHm9P1du4EWjWLGmvVVWprrdggZQRz5cPeO01KRjgqNktJfbokbyPWbPKKFR8Bw8CEydK9TqjUYppDB8ua434XhMRERGlTZ6equdy4vTiiy+iXbt2GDBgAB48eIBSpUrBz88Pd+7cwcSJE/Hmm2+6PUh7vJk46fXAW28B48Z59DSUTEuWyIiUThe3rsxSBXHYMJnu50zy9OSJlIi3NI2tWlUS3Zw5PRs/ERERESVNilvjdPDgQdStWxcAsGLFCuTOnRuXLl3CggULMGXKFLcHmFKoKnDhgq+jIC1XrwI9e0rlvfjFOCzFJCZPdq7P04kTQNGiQO/ekjytXAmMHi1Nilev9kTkRERERJTSuZw4RUZGIuhZJYPNmzejXbt20Ol0qFGjBi5duuT2AFMKnQ7Ils3XUZCWmTO1y5Xr9ZI8aXn0CGjcWMq/A3I8VZV/o6OBTp2Aw4fdFjIRERERpRIuJ07FihXDmjVrcOXKFWzatCl2XVNYWJhHhsRSCqMR6NrV++e9dAkYPx54+23g+++BO3e8H0Nq8ddftkuVW5hMso+WRYskabJ1HMuk1okTkx4jEREREaVOLidOH3/8Md566y0UKlQI1atXR82aNQHI6FPFihXdHmBKERgIFC7svfOZTMDQoXLODz6QkZLhw6UnFC/cbTMYHK9fSljKPKF167SfNxqBX35xLS4iIiIiSv0cXEYm1qFDB9SpUwc3btxAhQoVYrc3btwY7dq1c2twKUlkJNCiBXDkiHcqs40eDUydKqMcJlPcCIjZDIwaBWTJAvTp4/k4XHXnDrBzp0xrq1IFKFHCe+du1gzYsMH+8wYD0Ly59jGePo0bWbInOtr12IiIiIgodXN5xKlPnz7IlCkTKlasCF28rq5lypTB+PHj3RpcSnPsGLB8uefPc/eujDBpXcB/8on2tDRve/oUePNNGRHr2FEq25UsKeuFrlzxTgy9eklCqdfbft5kAkaM0D5G5cr2Xw/IWrc0PLBKRERERHa4nDjNnz8fT548SbT9yZMnWLBggVuCSsnefz/przUagc2bgYULge3b7Sc+v/3meFTj6lXgn3+SHos7qSrQoYMUZ4iJsX5u926gVi3vrM0KCQE2bQKCg61HBfV6SXh+/BF4NrPUrtdf105YzWZgyBD3xEtEREREqYfTU/UiIiKgqipUVcXDhw+RIUOG2OdMJhPWr1+PXLlyeSTIlOT8eSnYEBrq2ut++gkYORK4dStuW758UvChbVvrfSMi5MLf0ZSxiAjXYvCUnTsl2bPFaARu3JCvc8wYz8dStap8j+bPB9avlwS0Rg3gjTecW6NWtCjwww8yembp/wRI4mU2S4nyzp2dj+fpU2nIazQCZcv6pjLj06fAihWStBuN0nS5Vy9pHkxEREREznG6Aa5Op4OisbhHURSMGTMGH3zwgduCc8SbDXDj27hR1tM4a/FioHv3xNstb+eqVcArr8Rt37IFeFasUNPFi5LARUdLf6ENG+LWFvXqBWTP7nyMydG7t3yN8XsnJZQvn4ySpRY7dgDffisjWCYT8MILUpyjRw9JohwxmYAvv5RCHuHhss3PT34OJk6UKYXecPIk0LQpcP26JIKqKo+MGaVHVcuW3omDiIiIyNM83QDX6cRp165dUFUVjRo1wsqVK5Et3q1zf39/hIaG4rnnnnN7gFp8lTj9+KMkOs7csY+JAfLnj+sLlJCiAIUKAefOxV2Qm82y7epV26NOej3QsKEkWGfPyoXxpUtS/MDSx8jfH/j5Z+uEzFOaNgW2btXex88vdRZVsPRw0lr3ZOs1vXvLlMyE3z+9HihTBti7F8iUya2hJvLwoRTnuH078bRQRZGfl0OHJB4iIiKi1M7TiZPTa5zq16+PBg0a4MKFC3jllVdQv3792EfNmjWTnTSNGzcOiqJg+PDhyTqON/TpA+TKJaMH169r77ttm/2kCZAL6wsXgH374rb98Yc0YrWXNAUHy3SyJ0+k+IJlJMdolIt8sxmIipIiDQcPuv71uSp/fsdlvnPn9nwcnqAoriVNgCRFCxbY/v6ZTFJkZMYM98SnZfFimRpqryeVqgKTJnk+DiIiIqK0wOXiENu3b8eKFSsSbV++fDnmz5+fpCAOHDiAGTNmoHz58kl6vS8YjcDSpbJe5MYN+/vdvOnc8SzHOH5cpgFapncllD07sH+/jCQsWyYV67QujAcNAubNk3U/ntK7t/Y0Pb0e6NfPc+dPaebM0U4kVdU7idOvv2o/bzTKNFEiIiIicszlxGns2LHIkSNHou25cuXCV1995XIAjx49Qrdu3TBr1ixkTWWr1S2FD+rWlapyY8daF38AZG2PMyz7jR0bN3JkS1gYcO2afLx2rfZ6G5NJRrJeew0oXhxo3doz1e3q1ZMpgbZiMRiAAgVSZyW6qCjgr7+APXuABw+cf91//2knkgBw+XKyQnNKZKTjAiNRUZ6Pg4iIiCgtcDlxunz5MgrbKE8WGhqKy0m4Ghw0aBBatmyJJk2aONw3KioKERERVg9fM5tlNGflSuDDDyVJWLo07vmGDYG8ee2/XlGAYsWA6tUl0Vm+XPui22AAliyRj588sZ9gJaSqUjyiUSN5nTspinzNQ4YA8YotQlGkyMWePb6pJpdUZjPw1VfSk6pGDaBOHSBPHqB/f/sjgfHlyuV4ep837hFUqqQ98qXXS9ELIiIiInLM5cQpV65cOHr0aKLtR44cQXYXy7gtWbIEBw8exNixY53af+zYsQgJCYl9FChQwKXzeZrZLElP164ynQ6QC9fJk23vb6mqN2WKfPz0aeI+SLbOYbl4f+EF19bfWNbX/PST869xlr+/rJe5cQP45RdJAM+flzLlXq4ZkiyqKgnShx8C9+7FbY+KAubOBerXBx4/1j5Gt27azYn1ehkF9LQ33tCOw2RKnSOBRERERL7gcuLUpUsXDB06FDt27IDJZILJZML27dsxbNgwdHahwc2VK1cwbNgwLF682KonlJbRo0cjPDw89nHlyhVXw/c4VZUpaxMmxG3r2FH66BQsaL1v4cLAunVA8+byeWAgYGMWpBVFkV5DgFzgO1cTMY5OJwmAp2TJArRpI1MXnemblNLs2ydVE+0Vdjh6FJg+XfsYLVtKo11bSa3BIKNv3khYSpYEvvtOPo4fiyVh79FDfjaJiIiIyDGny5FbREdHo0ePHli+fDkMz+YBmc1m9OzZE9OnT4e/v79Tx1mzZg3atm0LfbwrOpPJBEVRoNPpEBUVZfWcLb4qR+6MDBkST4kzm2Xa2s2bsqapZs24i1iLjz+WaWL2RgoURdbQFCokn0+fnrhZqyNFi0r5c0qsXz9pnmtvuqRlauWZM9rHCQ+Xohlr1shrFEW+/xUqSFGPEiXcHbl9GzcCX38tjYpVVcqPDx8u1SGd6UlFRERElBqkmD5OCZ05cwZHjhxBxowZUa5cOYSGhrr0+ocPH+LSpUtW21577TWUKlUK7777LsqWLevwGCk5cdLp5OJbo2ewTRERklCdPm2dCCmKXPR++SXw/vvWr9m6FRg/XkqfO/pu6vVSzGH7dtfiSi8aNZLmt1oCAmRapTPOnwc2b5YpmNWrSxVGV38m3MVSdMTJextEREREqYqnEycH3XfsK1SoEFRVRdGiRWNHnlwRFBSUKDnKlCkTsmfP7lTSlJLpdED58km7QA4OllGpDz6QKWOWC/SiRYGPPgJ69kz8miZN5GE0Sunx/v3tH99k0n4+uR49Av78U5rdvvCC81UFU4qcOR2P3rlS2KFoURkRTAmS8GtKRERERM+4PFEnMjISffv2RWBgIMqUKRNbSW/IkCEYN26c2wNMjcxmYOjQpL8+SxZpcHv7NnDkiIw+nTljO2mKz2CQfWrVsr2+RqeLK53ubjExwOjR0uj2xReBVq1kTVf79toNgFOarl0dF3bo1cu1Yz55Ajx86Pp6NCIiIiJKOVxOnEaPHo0jR45g586dVkUdmjRpgqXx63Anwc6dOzFp0qRkHcNbunSx/1ybNq5fXMf35AmwYAEwZoyUOX/82PnRK39/YNMmWV/j52e9vV8/KUkef7s7qCrQvTswbpz0DrIwm4HVq6Wktyt9kHypZUuJ11biqdfLaJOzSfHatVLKPDBQRhKLFwemTnV+LRqlfTExwOHDwD//WP/uEBERUcrj8hqn0NBQLF26FDVq1EBQUBCOHDmCIkWK4Ny5c6hUqZJXeyv5ao2TXg+UKgWcOJH4OUWR6WmHDjmukGfLb79JOevwcElwVFWm4L34IvDzzzL69OCBFCgoXlz7WHfvSll0RZG1NZ7qpfTHHzKSpeXDD4HPP/fM+d3twQMZuVu71rqwQ9myUtjh+ecdH+Pbb4G337ae9mdJftu3l15crpSSTy5VlcbJRiOQPz+n7fmaySQ/IxMmyMgyAGTODLz+OvDFF0DGjL6Nj4iIKDVKccUhAgMDcfz4cRQpUsQqcTpy5Ajq1auHcGc6hLpJSi0OodcD770nF0Cu2L8fqF1bLqoSflcURUaNoqLittWtK1P6ypVLfszJ0bq1lFXXEhKSekadLM6ciSvsUK2aTIF0ZuTv1CmgdGntqXkLFkg5cE9TVSk/P358XCXAnDmBwYPlZ5SFIrxPVaWP14IFiX9GdDr5P2DrVn5viIiIXOXpxMnlqXpVqlTBb7/9Fvu58uxKcvbs2ahZs6b7IkvhtMo4m0zA7NmuH/OLL+RCytYFt6paJ00AsHevXMyfPOn6udzp4EHH+3gxn3abEiUkwRgxQi5mnZ0uOWOG9miSTgd8/717YnRk9Gigb1/g7Nm4bbdvyzTQVq0cN1wm99u1S0re2/o9N5uB33+XpIqIrB07Jg3jJ0+WWR1ERN7m8oSdr776Cs2bN8fJkydhNBoxefJknDx5Env37sWuXbs8EWOKZDZrPx8WJhdGzl5sP30q0/QcHTc+k0nWQ40eDfzyi/Ovc0Z0tIwQBQdLTyotLHpg7cgR+32gAPkeHz/u+TgOHZKRJiDx98hsBrZskQv0vn09HwvFmTVLpkra+xnR6YBp02RNIhFJ78POneWmg+WmpdksrTuWLgUKFPBtfESUfrg84lSnTh0cPnwYRqMR5cqVw+bNm5ErVy78+eefqFy5sidiTJEcJUQ5c7pWjjwy0rWkycJkkrU4lnUSyXX1KjBggFT2y51bEqdu3WT6mT2lSzs+bqZM7okvNQgMdPy9d5SMusPMmdprmXQ6mepJ3nX2rOPE+r//vBcPUUoWGQnUry9tOgD5/bD8rTxwQPoSpsYZDUSUOjmVOI0cORKPHz8GAOzevRuhoaGYNWsW9u/fj5MnT2LRokUo5+uFNl6mNcqi17t+Fz8kJOnFG1QVuH49aa+N78IFoHJlYM4cGckCZCrXsmVAlSpS+cuWt95yfOz0NKrRtq32z4fBIAUiPO3kSccX6KdPez4OspY9u/ZUX0BuXJDvqKqMcly/nrQbWuQ+ixbZv9lgNAKXLsk6TiIib3Aqcfr+++/x6NEjAEDDhg1x7949jwaVmhkMMlIzfLhrr9PrZaQnqZXWklLBL6E335RKfAn/QBmNMpWwe3fbCcGLLwINGtg/bvbsMp0wvejSRSrX2eulpdPJuilPCwlxfIGeObPn4yBrXbtqX4zr9Y57tpFnqKqsTy1ZEsibVyqkFioETJzINgK+snCh4324JpCIvMWpxKlQoUKYMmUKdu3aBVVV8eeff2L37t02H+ld7dpStCFXLtdf+847UubcleRJr5dpDPnyuX6++C5elApy9i4OTCaZrrd3b+LndDqpqte9e+IpatWqAX/9BeTJk7z4UpPAQGD7dmkADEgybTDIexMYCPz6q3PTG5OrY0ftC3SDQS7iybs6dpTvv1avsIEDvR8XAcOGAf37A+fOxW27ckVG1bt14+iTL1jWC9ujqu6bqk5E5IhT5cjXrFmDAQMGICwsDIqiwN5LFEWByYu35VJKOXKdTi6KTSbgueekaW2NGkk71oMHwKefynS5Z4N8yJ0buHXL9nl1OlkwW6tWUqMXGzYALVo43m/GDOk1Y8/u3bJPdDTQrJlM0XNlrVdaEhMjSdKmTfJx1aqSXHqgOqZNT58C5cvLFMyEo4h6vfQKOnoUKFzYO/FQnFu3gE6d5PfFkkCZTNIjbNUquYFC3uVMP7rly4EOHbwTD4kWLbRv6ul00mg8HdWmIiINKaqP06NHjxAcHIzTp08jl50hFUlkvCOlJE7x6fWy8P/wYWlSm1RPn0qhhowZZcrI558D48bJdkWRu2wFCgA//gg0aZL8uHfvlpErRxYulIv/hB48kO2//WadSJYsKRcb6WwJXIpx5Yr02TpyJG7UKyZGkvE1a5Ke4JN7HDokPZuMRqkQVr9++r3R4Gvdu0uFNnvrAvV6KUSwfbt340rvVq8G2rXT3mfRIhkRJCJKEYnTyJEj8fnnnyNTpkzYtWsXateuDYNWuS4vSYmJEyAXqP36SUlhdwoPB9avl3+LFQMaNXK8hsVZ0dGSoGktX/Pzk8XSCddTmUxyx+/AgcR3BfV6GWE5coQlY31FVeVu7MaNclFYvTrwyivy/SQiUaGCjMBqyZXL9ug/eY7JBLRpI/9/JZwqqdNJMrt5M/8/IyKRIhInPz8/XL16Fblz54Zer8eNGzfsjjh5U0pNnABJFrxdItXynUzqHeuJE4FRo2w/pyjA0KHApEmJn1u3TkY17NHrpVjGt98mLS4iIk+rW1dKXmv9RSxSBDh/3nsxkYiKAj7+GPjf/+KmsAcGyrTxr76SmRlERIDnEyenho0sxSFefPHF2OIQWbNmtblvvXr13BpgavXokWsNcJNjzx7gm29knZLRCLzwgixy7t7dtRGpESOAO3dkSqBluh0gx+zVS85hy08/SXKkVVhiwQImTkSUcnXqFNcryBa9XipmkvcFBEgz708+kWnwqiojhKwKSkTexuIQHlKokDSx9HTiNH8+8NprkuhY3nqdTqY09Owp/S1cnc538aIc98oVmZrSvbt2FbgXXwS2bNE+pp+fTAckIkqJIiKkOMetW7anHAcFAcePJ7+CKREReU6KmKpnweIQrsmRA3jjDZn+ZmeALlmuXJGKaFq5qr1iDu40YIBUAdRqtlq0qHWJXyKilObsWanidu5c3JqZmBhZ/7l2rTQIJyKilCtFJU4AWBzCRXq9JDd79wI5c7r32B9/LPO7tcq0Vq4M7N/v3vMm9PffUmrbHp1Opv+9/XbSjv/okTTmzZZN7voSEXmKySSFCLZtk5H7OnWAl19m8QEiotTA04mT05O4li1bhujoaNSvXx8GgwFXr16FOV6Jm8jISHz99dduDzC1M5mkj87Ikbafv3ZNEqAKFWSayGuvSXU6Z/zzj/Zok9ks5Y49rUoVGVmzRa+XUuRJaeh59qw0aM2aVaY+Zs0q6xBOnkxWuEREdun1QMuWUixn0iTp28SkiYiIABdGnBJW0wsODsbhw4dRpEgRAMCtW7fw3HPPcY2THQYDcPMmkD173LZdu2RaSFRUXAJkMMiUt7Fjgffe0z5mu3bSi0frO5gxIxAZmezwHTKbgQkTpICEpYt7hgxAjx6yzdUZnMePy53ex4+tpwBa+mTt2uX5aTOqCly6JOcvWBDw9/fs+YiIiIgo6VLMiFPC/MrFGX7pntEI/Ptv3Of370sJ76dPrUeNLEnC6NHApk3ax2zZUjtpMhik/4U36HQyFe/aNRkx27NHEsWZM11PmgApM/voUeJ1UyaTvGevvab9tSeHqsqarRIlZJpl8eJAnjzARx/JuYmIiIgo/XFT+1RyRoYMcR/Pny+JQcKGfhZ6vYzgaOnSRS7o9Xrbz5vN9qcIeoqfn0zdq1UraQkTIFPx/vxTu7z5sWMyVdET3n9fGhjH79dy/76sJ2venNUByT327ZOpp8HBUla5aVPgt998HRURERHZw8TJS/Lkkf5KFjt3au9vMjneJzAQ2LpVSoYDcWXHdTpJYBYtAqpVk20xMVIVavJk6an04IHrX4O3xB+Zc8d+rjh8WApZAIlHtMxmmSI4Z477z0vpy5w5cnNh9Wrg4UOZkrpjB9CqlSTuRERElPK4VBpv06ZNseXGzWYztm3bhuPHjwMAHqTkK/EU4L33ZOqchaq6Z6pZmTIyMrJkCbB+vYyGVKkiIyZ588o+a9fK52FhcT2eAgIkpo8/dr3Pk6c529TQE80PZ82KW2dmz//+B7z5pvvPTenD2bMyFVVVrX/OLCOsY8cC9esDzZr5Jj6S701YmPxfmTt3yvs/koiIfMPp4hA6J/5ysAGubR07AkuXWjfD/fZb4N13tafq1asHbN+evHNv3SoXYPYStQ8/BD7/PHnncLenT2WELjzc/j6BgdKo0t3JU+PGjt/zDBmAJ0/ce15KP0aNkpFfe/9VGgzSVJrT9rzPsr7xm2+AM2dkW8GCwPDhwNCh9qdFExFRypBiikOYzWaHD28mTb6Q1D+aK1dKsYT4XntNLsDt5aMmk3vWJ1kq89lLj8ePB+7cSf55AOD0aWDIECA0VEa72rZNWuKXIQPwwQfa+7z9tmdGnIKDHd9d9sR5Kf3Yu1e7jYDRKGv8yPuGDwf695dRQYvLlyXZ7d7d/o0uIiJKHzgBQYNOJ0UIdu4EjhxJegNbszlxn6Ps2aWUuL+/dUJmmc738cey3iE5zp+XAgpaf+yNRknskmvdOunXNH26XGjcvCnbGjeWanSueustWeuh08n74+cn/yoKMGKEvD+e0KmT9vtlMEhRDqKkcqYnUAroL57u/PEHMGWKfJzwRpOqynToVau8HxeJq1flb0mtWkCNGlJ59uJFX0dFROkNEycN5csDZcvKegPLx0l18qT1XUxAqmidPCmJQLFiMiWkXTtg925gzBjrfW/ckGl1oaFAlixA1arAjz9K0Qd7nBlJ0uuTP+IUFibTEY1G6zUblo+/+EKSKFcoCvDll9JH6YsvJPEcM0aaCU+c6Lk1B+3bSyNiWxeulh5Sw4d75tyUPrRoof3zazAk/6YJuW76dO2EVa+X9Y3kfevWyd/IsWNlNPavv2Q6ZYkSwIoVvo6OiNITp9c4pUSeXuOUsGntli2y9iCpFi8GunZ1/XXHj0vyFh4eN8XHUuShUSNZCxG/1LnF9etA/vyOi1AsXCjTUJJq7FhJ6rTWazVoIOutUoMbN6T/1d9/y8+AokiCmiePjBJWr+7rCCk1u30bKFpUKukl/J1RFPndPnhQbtaQ91SoABw9qr1PrlyytpK858IFoFQp+T844d8yRZG/L8eOyT5ERClmjVN6ZDZL6W6Lpk2BypWTfjytSm323LkjydH9+9brIiwXXDt3Ap99Zvu1zz0niZ7W2qzMmWWUKzl+/117epvJlHiNV0qWNy+wf79M3XnvPVlrtmKFTEFk0kTJlTMnsGGD/O7FLxij10ui/vPPTJp8ITjY+vthC9c3et/06fI3xNYNQMu2qVO9GxMRpV9MnDTodDKVLr6NG5N+UbN3ryRC//4L3Lunva+qytS0vHnlDrW9USOzWaaPREXZfn7CBCBjxsTJk+UC4fvvpUJdcjgzbc7RBUlKoyhA7dpScXDcOJnC58zaFCJn1KwpUz7j/+7pdEDv3pym5yudOmk/r9cDnTt7JxaKs36942IqGzZ4Lx4iSt+SnDhFR0fj6tWruHz5stUjLTGbZdrWuHHAjBmylickJK6prKtmz5apHqVLy13nl19OnJhZvP028Omnzo1ShYcnXj9lUaaMJGx161pvL1oUWL5cLtSSy5m1X8WKJf88RGmBqgJ9+khS/vhx3PaYGCmF3ayZ9GMj7+rVS6bj2hqh1+tltGngQO/Hld45U6w3jRf0JaIUxOXaTWfPnkWfPn2wd+9eq+2qqnq9j5Onmc2yfmjTJvmPedAgoHhx4NSppB0v4VS7334Dtm2TKWEvvBD33OTJMlLkiu3bpQpdVJRM7Rs6VEaaAKl2t2MH8N9/Ml88WzY5n7tGgSIiHO/z8KF7zkWU2u3eDcyfb/s5s1mmvi5YIE2ryXuCg2Xqc4sWUpHUMsIcEyM3utatA/Ll82mI6VL9+nJj0N5NRINBeh4SEXmDy8UhateuDYPBgPfeew958+aFkuDqu0KFCm4NUEtqaYCrRa8HKlWSNTWAJFJNmrh2DEVJPJXPYJCiD96YWtKsGbB5s/Y+fn68i04ESCGWJUvs3yVXFKBiRWklQN5nMsnUr23bJJGtUwd45RVO1fWV48dlerzWlcpffyV9JggRpS2eLg7h8ojT4cOH8c8//6AUS9i4hckEHDggfxzKlpVpgbYSIS229jUapd9QgQKyVseTgoLiqvzZk9x1VERpxenT2lOLVFVGPMg39HpZZ8a1ZilD2bJSIGLAAPneWEaeDAb5eNIkJk1E5D0ur3EqXbo07iS38Y+bZcl419chJNuZMzIlZNs215ImRwYPdt+x7Gnf3nHT2Fdf9XwcRKmBVpVLCzbAJYrz+uvAvn1SwCNnTiBHDqBtW5nmPmyYr6MjovTE5T/P48ePxzvvvIOvvvoK5cqVg1+C+QueGBZz5Mc3+qDdpB1eP687hYTI3TNnk6acOeXi6sYN7f2OHEl+bI60by8jW1eu2N9nxAjPx0H2XbggfbSMRrk7m5yy+r6kqlLa3rLusHp1oGXL1JVoOBNrQIDn4yBKTapVk16IRES+5PLlRpNnC3AaN25std2XxSGyBIZ7/ZzOyJxZmvIdO2a/XDggDXbr1pU59MWKyTQdrQTKz0/WFDVt6jgGb7Q3fvJEu0CE0Shl2NObkyeBKVOAtWvlPahRQ+6ONmrkvRjCw6WC2+rV8rNgmQZapYqssyla1HuxJNe1a1KJ8p9/rBsTFyggjYkrVfJ1hM55+tTxPo8eeT4OIiIico3LidOOHSlvZMdPHw2dYoRZTRm3nfV6uUjetAnIlAn48kvgww/t7//JJ4C/v3w8bJhUxLNHUWTk4IUXpHSuo4TEG3fiFyzQTpwMBqkSWKeO52NJKVavjusLY5mTv3498OuvwEcf2W9a7E4mk1QI++uvuATa8u/hw/L9OHJESuSndE+fAg0bysgZYF1h6/p1SUaPHZMkKqXLnt3xmsCQEO/FQ0RERM5x+bK6fv36nogjWep+vhdJ+FI8xmSS6UTZswNdu0o/pshIYPx4uXDV62UfnU6ei78OacAAWef0yy/yueVCV6+Xj5cvjyu9+t57UqFLizOjUsm1aZP280aj46p7acm1a7KmK2G3e8vF/uefSwPU5s09G8e6ddLDyxajURor//CDNFpO6ZYts9+rzGSSEZrvvwe+/tq7cSVF587avw96vePfayIiIvK+JDXAffDgASZMmIB+/fqhX79++O677xAenjKny/lSVJSUBK9aNW5xa/XqcjFtNstIzNWrQPy+wQYDsGKFNNwtU0aSqwwZgI4dZeSgXbu4fbt2lX3sCQiQprueljBBsLdPejFrlvZ6NZ0O+O47z8excKF2IQKTCfjxR8/H4Q5Llmg/bzIBixZ5J5bk6txZ+sHZGg3W66WfkDeKuhAREZFrXE6c/v77bxQtWhTfffcd7t27h3v37mHixIkoWrQoDh486IkYUzWjEbh7V5pZvvSSlB63jDw8fSqJTaVKUqLYQq8H+veXqUdGo6wh+vlnWZcSn6IABw/KcRM2sy1aFDhxAnjuOefiVFVJ7D75BBg9Gli5UtaPOKNWLUkG7NHrJWFML3bv1k4kzWapBuVpYWGOE9a7qaQgZfybC/bcu+f5ONwhY0ZpSG1peWcwxCVRBQpIE1Znf2+JiIjIe1xugFu3bl0UK1YMs2bNguHZX3uj0Yh+/frhv//+w+7duz0SqC2prQGuZYqere3VqtmfVuWM+/dl/cyTJ7Leo0QJ519765aUdv3zT+tF93nyAKtWybQyLTduAKGh2qMsq1bJOdKDF15wXM3QGw2Be/UCfvrJej1QfIoiPyenTnk2DnewFE3RkiGD/PynFqoqv/OWaoc1a0ozaWfKlRMREVFinm6A63LilDFjRhw6dChRA9yTJ0+iSpUqiIyMdGuAWlJb4uRIkyayAL5vXyB3bu+cMyZGRrz+/dd2UmeZVvbmm3Kxb8/KlTIFCYi7ULckiiNGSHGIhKNiaVX58jJaqCUgwLnqasmxaxfQoIH95xVFvi+poVR8uXLSJFqLN95TIiIiSrk8nTi5PFUvODgYl23Mm7ly5QqCgoLcElR6tXWrVFwrUABYutQ75/z1V7kgtTely2yWSn916gAPHtg/Tvv2Uia6Z0/pMRUSIongunXpK2kCAGd+DbxRJr5ePVkbZ0/JkjIlNDUoXNjxPqmhOiARERGlXi4nTq+++ir69u2LpUuX4sqVK7hy5QqWLFmCfv36oUuXLp6IMV0xm2XEpmtXYP9+z59v2TLnpgb984+MhGkpX17WbB06JI+1a6U5aXpKmgDp3eXoPS1UyCuhICrK9vtvmY6pVRI7JenWTft5nQ7o3dsroRAREVE65XLi9O2336Jdu3bo2bMnChUqhEKFCqF3797o0KEDxo8f74kY0x1VlQvBCRNsP3/sGDBwoKylqVpVyknfuJG0cz144FzFO5NJehNZ+ujYinnhQlmLkj8/UKQIkCMH8PHH6W/6VN++2u+pokjZeU/btk1GFG2NbqmqfC+nT/d8HO7Qtq38vNtKSA0G+VkbNMjrYVEaFRMjI/FHj6a//7+IiMg+l9c4WURGRuL8s9XaRYsWRWBgoFsDc0ZKWeMUv6CChaIkfzpWxozS/wmQC/GNGyVJOnDA+vh6vSyMX78+rseTs4YNA/73P/sFBBKaMwfo0yfx9nfftd9Dp2pVqSJnafKb1qmqJE/z5iX+GdDrZb3Onj2Ap39luneXMt5aSVzRosC5c56Nw13u3pWR2M2b5caCosjXVraslPAvWdLXEVJqZzIB33wDTJwofc4AmXY8cKBUHA0I8G18RESkLcUVh0hJUkri1LgxULmyjARt3Cjb3PGu6vWS0Ny7F1fK3B6dTi7EL16UxrvOOn5cLuSdNXNm4nUxR4/GlVa254svgA8+cP489qiqJGFz5sgFf44ccjHdtq128QpvM5mk4fGECXFlsgMCZA3Yt99Krx5Pq1cP+P137X3iJ+epxcmTkjxZKtHVqpX+poOS+6mq/H4uXpz4/2+dTtZs/vab7f5bRESUMqSIxKldu3aYN28egoOD0S5+B1YbVq1a5bbgHEkpiVPevFJRbtIk9y76L1BA+tc0aSK9XRxNqdPp5GL9rbdcO88HHwBffeXcvseOyR3++F5+WaaEacmeHbhzx7W4EjKZpB/WvHly8WI0ytdsNgMVKwJbtriWNHpDdDRw+LCMRpYpA2TJ4r1zv/qqVDvU+rkJDZVkmyi927oVaNpUe58FC4AePbwTDxERuS5FVNULCQmB8uyWbnBwMEJCQuw+0qMbN4ApU9xfKe3OHbno3rbNuXVIZrPs66ovvpARnMyZ7e9jMMgIRsKkCXCuiIU7Gq2OHw/Mny8fW6YWWoobHD0KpMTaJP7+0qOrdm3vJk2A9HHS+rnR6SQRJSIZTdcaTdLpUs+aQCIi8ow0MVWvYqHtOHSxAYC0N1/niy9kbr0ziRMgd0w3b07aue7fl7Lj//4rn1t+MnQ6Gf364w8p/JBQ7txAWJjj4yfnJy06GnjuOccJ2PHjMrJDklQ2bSqjlQmr5xkMMlJ66FDKG6Uj8gVn+q/lyiUNw4mIKGVKESNO8TVq1AgPbDT0iYiIQKNGjdwRk8t2ftAI/3xRGSXznvLJ+T0pOloSF2fodEDdukk/V9asso7q++9l3VPWrECJEjKN79Ah20kTIBccjiT3Z/fYMcdJk06X9KQxLdLpZApljx6Jq9HVrSsFKpg0EYls2RyvlfP2qDEREaUsLidOO3fuRHR0dKLtT58+xe+OVqJ7ULmCR/HHJ7WRL9tVn8XgLEWRKnjOqFzZulqf1jH9/JLf0DQwUMo6HzkiRQ1On5aKeVmz2n/NZ585Pu4bbyQvLmeq/imK89UB04tMmWRN2NWrsuh9/nwZUdy+XUYRiUh066Y9Kq7TcX0TEVF653R9oKNHj8Z+fPLkSdy8eTP2c5PJhI0bNyJfvnzujc4FfnoTQgLDMbL5RIxaPDHBsypkGp/lX9+qUkXKQC9Zor1f6dJAixZAvnzAzZv2p+spiky9WrYMyJMn6XEdOiRVAaOjJcaXXnKuOW7NmnJBsXCh7eeLFpXphkmlqnKMDBm0e6qYTECNGkk/T1p15AgwebKUq7dUohs61PFCeKL0pFs3aalw4ULi/2v1eqngmdwbQERElLo5vcZJp9PFFoiw9ZKMGTPi+++/Rx9bTX48JHYe4ywg+FlPnHuPsyD76/cT7Vup0N/IEvgA20828Vp89uj1zq1ZOntWGsru2yeV9aKiEo+o+PkBvXsDo0YlvY/NnTtAp07Ajh0Sm2XkpmBBqcpWpYrjY5jNUmb7q6+A8PC42Hr2lJLcSakbcvOmHHP2bDmmn5/EZesnVq8HSpWSKX0sTR1n2TIp1x5/NM7y8/fhh8Dnn/s2PqKUZMMGoE2bxP/PKgowd64UXCEiopQrRZQjB4BLly5BVVUUKVIE+/fvR86cOWOf8/f3R65cuaB3ZnginmnTpmHatGm4+KwecpkyZfDxxx+jefPmTr3eVuIEAEo3MxKOLNUtuQvzB/RCkREXEj2XUu3dK6MDgCRREybIdKtHj4BChYA335RpdZkyJf0cRiNQvbqMSti6yxoYKM8VLuzc8WJipMJddLSMmCW10OLFi9KfJyzMdpKZsAFw1qzSs6hUqaSdLy26ckVG6rSmeq5fDzj560aUpt25I2s6w8MTF1OxTK8+dkx+p4iIKGXydOLk9FS90NBQAIA54V+UZMifPz/GjRuH4sWLQ1VVzJ8/Hy+//DIOHTqEMkksjXb9fl4kToxU5A65hUV7ekCvM8FkTvkdDA0GSZRWrJDPixeXUrjTp0vC4K5RlXXrgIMHbT9nMgFPngDffSfl1p3h5yfrspKrf3/7SZNOJ81kdTpJmHr1AgYPTt40xbRo5szEF4Dx6fXyfWXiRCQtGWwlTYD8nxsdDfzwAzAx4UxwIiJKN5KcQZw8eRKXL19OVCiiTZs2Th+jdevWVp9/+eWXmDZtGvbt25ekxMlo0mPm9tcTbVdgRoWCR3H1Xn7oFDOcrOztU0ajdKm3xZ1T0ZYu1Z46aDQCixY5nzi5w/nz0ozSHrNZEjpbzXgpzp492lNCTSYpMU9EwJo12jcaTCZg1SomTkRE6ZnLidN///2Htm3b4tixY1AUJXa9k2X9k8nZhkMJmEwmLF++HI8fP0ZNy/y0BKKiohAVFRX7eUREROzHMSYDLt0OxeSNwxK8SoVeZ0afBj9ixrY3YFZdLiTokF4vox8xMfKvqrqnGa4z1fSS6949x+utHj70fBzxHTni3H6HDzNx0uLMzFkXZ9cSpVlPnjjeR6s4DRERpX0uZxHDhg1D4cKFERYWhsDAQJw4cQK7d+9GlSpVsHPnTpcDOHbsGDJnzoyAgAAMGDAAq1evRunSpW3uO3bsWISEhMQ+Cjyrp2w067D6QFvUHrMHDyLj182WKno5gm5j7q7X0OKF3zwyTa9GDaBIEZleZza7J2nS6YBKlWw/9/SpVLAbOhQYOVJ6FyV1BmWJEhK3loIFk3bspHK2VLuz+6VXL76o3QPMYACaNfNePEQpWZUq2v8X6vXumYZMRESpl9PFISxy5MiB7du3o3z58ggJCcH+/ftRsmRJbN++HaNGjcKhQ4dcCiA6OhqXL19GeHg4VqxYgdmzZ2PXrl02kydbI04FChRArpDTCAsvoXEWFTrFjJzBt9Gw9DYs/bMLVNdzRrt0Opk+l8TBNrsWLZISufHt3g20bSsjRX5+si0mRhKgfv2AoCC5AHCmEh4gozsvvKC9j04n5cQ/+si5aYKWn6ikTil89AjInRuIjLS/T0AAcOOGdn+p9O7OHWlaHO9XJpE9e6QIB1F6d/Cg48Tot9+kRQQREaVMni4O4XL2YDKZEBQUBECSqOvXrwOQ4hGnT592OQB/f38UK1YMlStXxtixY1GhQgVMnjzZ5r4BAQEIDg62egBAWLijqgAKzKoedx5mx+FLFfFu63Hw0ydu4ptUZnPykqb406UsIwR9+kgZ6fjOnJHeSg8eyOcxMXHT+c6cAd55RyrtVa0qFwBnzjg+d9asQIcO2vuYzZI4jRunvd/vv0sp34AAuXNbuTKwYIHro2GZMwPDh9tPvBRF+qkwadJ2+7Z20gRI9UIikhH+L76Qj239nzx4MAupEBGldy4nTmXLlsWRZ4tQqlevjq+//hp79uzBZ599hiJFiiQ7ILPZbDWq5E4msx9OXS+Nb397CzEmf4+cw1UTJ0riEhgoI0jVqknJ8dmzEycO330niZIzicjhw0Dt2sCzvDaR8+flzmmhQnGV+xz54gv7651+/BGoX1/6oFhiPHxYKt717ev69MUxY+J6phgMcU1+AeDVV6W/E2mbMUN76pFOB0yd6r14iFK6Dz4Afv1VRmEt//9WrCj/J0+Zwh5xRETpncsLfj788EM8fvwYAPDZZ5+hVatWqFu3LrJnz46lS5e6dKzRo0ejefPmKFiwIB4+fIiffvoJO3fuxKZNm1wNyyVGs2+TJssdzKVLZf3QX3/JH2TLH2V7f5yXLk3cmNEesxm4e1cSs4RJxuXLsi7r/n3XEprISOn78+qr1tsvXZLy4apqHZ8lwZs3D2jaNPEImhaDQRpODh0KzJ8PXLsm5cZ79pQRNXLs0CHtnxezWXpuEVGc1q3lYTLJ/2mO1oASEVH64fKfhGbxVpMXK1YMp06dwr1795A1a9bYynrOCgsLQ8+ePXHjxg2EhISgfPny2LRpE5o2bepqWKnKc8/JXc1Tp6TBrU4Xd4G7f78kGNu2AbNmWSdRzlR9ik9VZdQhYeL0yScy3S8p0wst0wTjSxhnQjqd3K11JXGyqFhRHuS6TJmsGwXbwgIbRLax4iQRESWUrHtpV65cAYDY6naumjNnTnJOn2rlyCHFD6pXl7v+8afeWT6eMwdo1Mg62ShZUnoXubJm6NEj688jI4GffnJ+5CohW7Mx//5bOwkzm2X0g7zrlVeAjRvtP28wOF7fRkRERETC5TVORqMRH330EUJCQlCoUCEUKlQIISEh+PDDDxHjjcZDqZxeL5XOZs/WTjZ0OiBhjYxBg5Jedtzizh0gOgl1MRRF4m7UKPFzznzbuTbA+7p2BfLmtX3nXFHkZ2xYwrZnREQpUEyMrMcdPFj+Fi5ZkrS/ZUREyeHyiNOQIUOwatUqfP3117GNav/88098+umnuHv3LqZNm+b2INMSkwno3VvW72glQWYz8M8/1tsaNgRKlZIpfs5KmLBkySIXzK4mYHq9JHu2LsKdmdLCKWHelzkzsH279HO6fFlGmFRVvveBgcDKlcDzz/s6SiIibceOSTGjq1fj2nD8738yc+O339hfi4i8x+U+TiEhIViyZAmaJ6jLun79enTp0gXh4eFuDVCLpVb7n5+WwpOYPFj4Rw/8vLcLnsZk9FoMrgoIkDLRvXsDq1c7Xn/y5IncaXvtNans5CpFSZwkvfIKsG6d82ucFAXYuROoV8/2840bywW6FoPBuZEpcr/oaGDNGmDTJvke1KgBdO8OeKC9gcepKnDggDR9Nhrla3HU6JeIUq+7d+WG4f37if9m6fXSu/DkSRldJyLydB8nl0ecAgICUKhQoUTbCxcuDH9/31SrK53vFDJlOIMGz+/EWy2/QcMvdiIsIrdPYnEkKkru9L/0ErBqlf399Pq4RovdugHLlyftfAEBibeNGSMX0ZbRB0cCA+0nTYCMYjkqQhAY6Pg85Bn+/kCnTvJIzW7cANq3B/78U34/FEWSp8KF5SZEhQq+jpCI3G3OHGn4butvlckkLTJmzAA+/dTroRFROuTyfdrBgwfj888/t+q1FBUVhS+//BKDBw92a3Cu0OvMUBSgeJ5zWDKks8/icESnk5Gjjh2175KbTLJw/7//kp406fVAu3aJt1eoAGzdCoSGOj6GwSAjVFratdNOmgwG+XqJkioqSkY2DxyQz02muAInly/LNNZr13wXHxF5xrJl2jf4TCZp1UFE5A1OjTi1S3D1vXXrVuTPnx8Vnt3iPXLkCKKjo9G4cWP3R+giP70RDUvvRLkCR3HsSnlfh5OIpb/Sr786Hu1ZuFCmyCXHyJG2t9euDZw7JyNPXbsCERGJ47Gsjxo1SvscHToAH38sF7AJq/UpiiRw9uIgcsby5cC//9p+zmSSn9+pU4GxY70bFxF5VsLKsLY8ay1JRORxTiVOISEhVp+3b9/e6vOkliP3FJNZh4ald3g0cbIkFa6tEJPRlxIlgEmTHO+7ebMkOEmhKMDXX2svmtXpgObNpQFv06aS+Oj1cV+Tnx/w88+O+ygFBMgap5deksIVfn5xzXCDgqQSUunSSfs6iAD5OdQqamIyyY0GJk5EaUuFCsD58/ZbaOj1QPmUd4+UiNIopxKnuXPnAgBUVcWVK1eQM2dOZMyYcgswAIBOSWbdbgcyZ5a7XK4mTkYj0L+/c81gTSYge/akxaeqspapQwegYEHtfUuUAM6elTVX69dLMYGqVaWAhbPnDw0FTpyQEaz4x+jSRRqxEiXH/fuOR2gjIrwTCxF5z5tvynQ9e0wmYOBA78VDROmbS8UhVFVFsWLFcOLECRQvXtxTMSXbvUfZsPFoM4+e4+FD11+jKJIwNWokiVdYmOPXDBwoC9+TIiIC+PJLWTjriL8/0LmzPJLKMoKVoOAiUbKVLCnrm+zddVYUoFgx78ZERJ5Xv770bpo61boIkeXjPn34N4eIvMel4hA6nQ7FixfH3bt3PRVPsly9mw+dpixBnoE3ceq6b+eGBQTINDWLHDmAL74A5s+X//BtFW1IqFgxWRBvo4ih0xYsSPpriVKK11+3nzRZDBjgnViIyHsUBZgyRarrlSoVt71YMWDaNGDWLDZYJyLvcbmP09q1a/H1119j2rRpKFu2rKfickpsrfZZwKOovKj60QGEheeC0ezn07gA+Y/84UNZ86PXyxqf+NXa79yR5n1a04+WLpUS0pcvA9WqAbduJS0WV6cTEqVEb74JTJ+eeLtOB9StK2sCfdQRgYi8QFWluJKqys1IJkxElFCK6+PUs2dPREZGokKFCvD390+01unevXtuC84VY1Z9kmKSJkB6G2XKJMUZfv8d6NFDijD4+8soUkiIJWlSnz1k8E+BGeqzjy1rNgoWlMWxixbJXbf79yUR27NH/oikFPfvA/PmyRqnqChpTvrGG0DRor6OjNKCH36QO87ffBNXejwkREaaPvmESRNRWqcokjAREfmKyyNO8+fP13y+V69eyQrIFZas8ub/AlBo2H08jUk5BSvy5JGGnR9/DHz+uYw6Jex6LgmTgqyB95DRPxKKAtQo9ideqz8XU7cMwzVzMxw9av8cZctKQQYtOp2t87rfgQNAs2bAgwdxI1yWCn0zZgD9+nk+Bkr7DhwAJk4EfvtNbjzUqCGl7i3NoomIyHsePZLelLt3S2Jbv76s5WZRKPIVT484uZw4pSSWN+f4+Hwo++5VX4djRaeT9UXduzveV68zIoPfU/zzRWWUfO4MTGYFRpMfqn38N17qXA4ZMwJt2gCVKlm/rlQp4PRp7WMrioz+LFki05zOnweyZZMRsNdfT3rVvvgiIoDChYHwcNtJmqLIqFtSS6sTAfL71Lu3JOSW9U6WGxLvvcdS5ERE3rR3L9Cypfzt1z1bMW82A1mzAuvWATVr+jY+Sp9SXOJ0+fJlzecLOqp97UaWN+fylCCEDn0QO8UtJciQQUZboqKc29+gi0G32osxb8BrAIAYkwGL/uiON+bOje2J1LixNALNmlVeky8fcP2642M3aQJs3WrdB0enk1Gx3buTP5Xuhx+AIUPsr6UyGICXX5Z+TuQ7kZGSZGTOnPrWBvz3n5TN1xo9Xb+e1bWIiLzh2jW5eRsZmXittk4nI06nTwN58/omPkq/PJ04uZxpFCpUCIULF7b78IUYox9KPncKCjzbu8kVRqPzSRMAGM1++GlvV8QYZdmZn96IjtWXIyYm7u76zp1A69ZxCYqzPw9bt8q/8f9zM5ul2ES7dskvHrFxo/bzRiOwYUPyzkFJ98svQK1a8ocsOFgSkB9+8M4UTndxVFJfr5fKW0RE5HnTpwNPntgucGU2S59LZ1qhEKU2LidOhw4dwsGDB2Mff/31F6ZPn44SJUpg+fLlnojRoZJvncbpG6WgQoGsG/I9R6WTbYkx+eNRVObYzzP4PbV63mSSghA7dsjnjRolJ0I53tGjMlo0Y4asyUoKo9Fx8pWaLtLTkq+/Bl55RQqTWJw/L9/zrl0dN5VNKfbu1f4ZMpmAP//0XjxE5H0REcD27cC2bbKelnxn1Srt/5PNZtmHKK1xOXGqUKGC1aNKlSro378/vv32W0zx0S1fo9kfqqoDoDx7pE6ZMzxEcEYppWcyKzh1vVSifQyGuC7qQ4a457z/+5+Uei5QQCqURUe79vqaNeWOvz16vZRTJ+86eRJ49135OH6CpKryWLYM+Pln38TmKj8nimUaXK4RSkSpwZMnwLBh0sKjcWOZfp4nj/y9evzY19GlT0+euGcfotTGbYuCSpYsiQMHDrjrcOmOXmdEvwazodfJFa6iAFO3DE60n6rGlSkvVQr47LPkn9tyIW0yATNnSnW8li2BMmVkVGvBAu1ph/36xS0MtcVkkj965F0zZmgnEzodMHWq9+JJjpde0v4ZMxhYWY8oLTIapTjS1KnA03iTMKKigNmz5e+Vqzf7KPmqVNH++2IwyD5EaY3LiVNERITVIzw8HKdOncKHH36I4sWLeyLGNM+gi0GekJt4r804mFXAZNZh09FmmLOzr839S5SI+/ijj6QUqLt6EauqrKXauFFGLHbtAnr1krLP9lp05coF5M9v/5j+/okrApLnHT6sPWXUbAaOHfNaOMnSt6+s0bKXPJnNwPDhXg2JiLxgzRpZp2trWrFl+vqSJV4PK90bOFD774vRKPsQpTUuJ05ZsmRB1qxZYx/ZsmVD6dKl8eeff2LatGmeiDGNU1GrxB7sG1MDuUPCcP1+PoxeOhZtJvwKoynx/CSzGejTx3pb166yVun6dam05w6WP1KWf48dkwTKlnXrgAsX7B8rJgaYPNk9cZHznKmelyGDd2JJruzZpcBI5szWyZNeL3c2Fyxgck6UFs2erT0VXKcDZs3yXjwkGjQA3n5bPo7/f7Ll4/feA+rW9XpYRB7n8qqAHZbKBM/odDrkzJkTxYoVg4GLDJJAwbFbDZCn7wk0ahqN3X9lh8lkP5/t1g2wVfFdUaTsZ7VqwNq1SStOocVkkgTp/PnE5csXLdJ+raoC8+YBkya5NybS9sor2tUMDQagY0evhZNstWtLWfK5c2VENCZGtr3xBhAa6uvoiMgTLlxwXITg4kWvhUPxjB8v0/EmTowrQFStGjBqFNChg29jI/IUlzMdRVFQq1atREmS0WjE7t27Ua9ePbcFl148egT8/lcIduzV3k+vBwIDtfcZNAhYvVp7H0VJegnynTsTJ07//uv4dZZ1WeQ9XbsCn34q1RJtfb91utS39ix7duCtt+RBRGlf7tzAuXP2K4AqikwXJ+9TFKBTJ3nExMg2Zwr5EKVmLk/Va9iwIe7ZWOwSHh6Ohg0buiWo1KRwznPInCECipL0us4mEzA4cR0ImxyVj27UKG6th63h83fekfUiSR0ctHUB/iTSDMdl4FNGmfj0JFMmoF49+0ly0aJAoUJeDYmIyCW9ejn+u9e7t1dCIQ1+fkyaKH1wOXFSVRWKjYUTd+/eRaZMmdwSVOqg4uO2Y1C+4HE8ic74rBx60pjNUojB0V0zk0lKf2tRFBk2X7QIqFAhbnulSlJ6etw4GYXIkUN73rg9tWsn3pYnaxgclYHXJSOxpKTZt0970fSpU8CcOd6Lh4jIVV27AqVL277ZZzDIDSAmTkTkLU6PO7Rr1w6ATNXr3bs3AgICYp8zmUw4evQoatWq5f4InZDB7zGexgR78YxmrBjWAVUK/43CIy4mK2mKz5m7NXnzOt5HUWQtVLducX0UMmaMez5fPpmPPGwY8OuvcXfzMmWy3wncYJDRi+efT/xc/ef/wL5D7aDazcNVVAg9CqCi4+DTmBs3pGGj0QhUrSoXAN4ye7Z837TWu02fLtM7iYhSoowZZYp4jx7Apk3Wz9WtK1Vlg4J8EhoRpUNOJ04hISEAZMQpKCgIGeNdifv7+6NGjRro37+/+yN0wtOYjJCpYN5pftuy4nq0r7Yam482dSppql1bSqY6cu2a9vOKAvTsKZXFSpaU5n9t2mj3t4mfMMVXsKCshbp5Ezh7Vo5ZpIj0xPjrLzmm2RxXla1QIftFIF5vuRZf/9xWY92UguHNpwCYq/0FpiGRkdJUePFi64XN9eoBCxfaLvDhbmfOaCdNqirFFojI2q1bwB9/yP+B1at75/eV7MuZUwrCnD4tLTJUVZImb96IIiICXEic5s6dC/XZlfH333+PzJkzeywo1ynwVtIEAK/WWAqjSY/AgEin9u/VCzhxAnjwIHnnVVXgzh15XLkid9/atQOWLk36mqU8eeRhsWuXJEgzZwKXL8vC3NdekxLo9u7qFS4bih9eG4I3f/wf9DojTGYJRlFMUFUdutT6Gd1an0lagKmQ2Qy0bi13SROO3u3ZA9SqJT2WcuTwbBzZs8clwPY8ux9CRJBCPYMHyw0Py00HRZEKlTNnev53lrSVLCkPIiJfcWmOmaqqWLx4MW7cuOGpeJLIe0kTAGTNdA8GvQnViu5H9sx3NPc1GOQi+v333RuDZRRj9WpZt+QuAQFSPOKvv2Sa2eHDMqVPcypE0f4Y0GQmtr3fCE3LboFOkeBK5/sXs/r1x6I3u0NXaoj7gkzhNm2S6Xn2GjbevAlMner5OLp00U6a9HoZwSQiSZSaN5cbR/FHalVVpjTXrw88fuy7+IiIyPdcSpx0Oh2KFy+Ou3fveiqeVOH8rWKIMRngb4jB6DZj7e6n08lo0w8/AGMT7OaoMamzVFWay1pKgfpEpgJA9R/RqMxObHivDaIX+CN6vh+Of10B/RrOga54XyD01SQd+v59udP76aeyHic1/OgtXKhdeMNk8k5RhrZtgfLlbY9G6vVAcDAwJP3ks0Sa1qyR6Xm2egaZTNJ2YW76mW1MREQ2uFzVYNy4cXj77bdx/PhxT8STKsze2Q9+erklObLFRLzV8hsAgEEXA73OCINOspi2baVy2VdfSQIQX1L7KNly546sU/KpIj2BpnuAfC9Db/CHnwFA1ipArZ+AajNdzhRVFZgwQYphDBgg7+HAgfL5F1+49/1zt+vXtRs2AvI98zQ/P2DrVqBOHflcr49LogoXlmmZ+fJ5Pg6i1ODHHx1XGp092zuxEBFRyuTyypiePXsiMjISFSpUgL+/v1WRCAA2ezylNcevlMPX697GO62+gQrgm67v4I1GMzB392u4eDsUigJ0ebs9zl3MiBEjUvZFvls9Og9EnATMT+Xzx/8BEacBczSgD9B+bQLTp1s3ObWMqMXEAB99JEUvRo1yU9xuVrCg42p2zz3nnVhy5gR27JApl5s2SUzVq0u/L62iIkTpzdWr2jc8VFVuihARUfqlqKprl/Xz58/XfL5Xr17JCsgVERERz6r93QeQxWvnFSoGNJ6O0W3GomCOKwCAx1GBWHm4Lyr2+hLlKgWhRAnpeJ6cxEmvdzx6kSOH/EHXKmceFiZz98+fB7JlAzp3BsqUSXpciRz9FDg+BrLeLP4XrANy1wcabAT0/k4dKiZGEgutUZngYFkrZK9qoC/t2CGJiT06HfDll8B773kvJiLS1qIFsHmz/f9vFUWmvh4+7NWwiIjIBZbcIDw8HMHB7m9V5HLilJJY3pz+Dcdj9s63oFPM0ClmxJj84K2CEYpiRtkCp9D3tWhUqFMc9RtngqJIsmQwOO54nvzzA599Bnz4of19Jk+W0RuzWRIxVZWRh86dgXnzpCBEsoSfBH7TysIUoOoPQPE3nTrctm1AkyaO9/v1Vym8kdKoKtC+PfDLL4m//waDTJM7cIAV7YhSkuXLgU6d7D+vKMCUKVJ1j4iIUiZPJ05Jmqxz/vx5fPjhh+jSpQvCwsIAABs2bMCJEyfcGpyzvu36Li5OKoRxnd/DgCbT4M0qe6qqw8lrpTFn1Quo1yhT7FIeRQECAz13Xstc/HbttEcufvoJGD5cEiWzWUZzLFPIli0D3njDDcGcmwkoDmZ9nvnB6cMlXA9mT3LLu3uKogBLlgAjRliPiOl00nfrjz+YNBGlNG3bynpAW+uc9Hpp/t27t9fDIiKiFMTlxGnXrl0oV64c/vrrL6xatQqPHj0CABw5cgSffPKJ2wN0VsEcV/BWywkY2Xyi189tMgHHjkkFvdKlgdBQ4OWXpV+Po8XGSREUJI1q16yR5MdeDydVBT7+2H5dBrMZWLAAuHQpmQGF/wuoGgt6oAIPne/jVKyYc/sVLer0Ib3O3x/49ltppLlhg4yOXb4MrFwJ5Mrl6+iIKCGDQX5Xu3e3/j9VUeSGx+7d0iiciIjSL5en6tWsWRMdO3bEyJEjERQUhCNHjqBIkSLYv38/2rVrh6tXr3oq1kRih+NmAcHPRndMZgWGHh6eH+cEy9okRw1Ik3LcTp1kJMmRkycdr2PS6YDvvgOGDk1GUL93BK6sAqDxhfplATo6OZQEoGJF4OhR2++dTifJ1alT7ivrTkRkceuWjAybzVJMpWBBX0dERETOSHFT9Y4dO4a2bdsm2p4rVy7c8UaNZQd0igrNC3gvsSwwNpvdsIYoAWdHZJ4NBmrS6ZzbT1PBDtB8zxUDENrZpUPOmCHvW8IRO0tJ7dmzmTQRkWfkzi3rFDt2ZNJERERxXE6csmTJghs3biTafujQIeRLAU1h9p2rDm+ucXJEUeSPsLuoKtCnj3P75svneKqg0Shz95Mlf1sguJTtdU6KDtD5AaVGuHTIatWAPXukSET8BKl+feD334G6dZMZMxERERGRC1xOnDp37ox3330XN2/ehKIoMJvN2LNnD9566y307NnTEzE6TVWBcb++h5SUOKmqrG0pVix5fXMsycOXXwKFCmnvGx0NfPCBTNPTKmWu08l6m1atkh4XACkz3mgbkKX8s2ANgPKsNrp/NqDhJiC4hMuHrVgR2LgRuHYN+Ocf6bOybZskVURERERE3uTyGqfo6GgMGjQI8+bNg8lkgsFggMlkQteuXTFv3jzoPVENwY6Ea5xUFQjoFYUYk3P9grzp11+lAp7Z7NyaJ0WR0SJLBbySJaXxa7du2q8zmaQwxYYN2ufR6+Ucv/0GvPii81+HJlUFbv8OXF8PmKKB7FWBAu1cbn5LREREROSqFNvH6cqVKzh27BgePXqEihUronjx4u6OzaGEiZPRpIdfT63qbr6RK5c0a/3jD2DUKOnho0Wvlwavf/4piVOGDECRIs6t6XHUi8SiZUupuMfRGyIiSg1UVf6WqiqQJ0/yZnEQUdrk6cTJQfOdOGazGd988w1+/fVXREdHo3Hjxvjkk0+QMX6jGh/T60womfcUTt8oiZQ0XS86Wv6jr1sX2L8fOH0auHFDyoqPHQusWiX7KYqMEpUsCSxdKv+6asYM7Up+Oh3QqBGwbl3Svx5vMplkTdO1a/KHskEDz5R4JyKilElV5W/bt98C58/LttBQYORIaUjMBIqIvMXp/26+/PJLvP/++8icOTPy5cuHyZMnY9CgQZ6MzWWKAgxs+gMUJGkQzQXOHD9unwcPrJu6liwpCUDlysCKFcC5c8DU7034dnw0ft+t4vhxoGzZpEV29qz2FD2zGbhwIWnH9rY1a4DChYGGDaW3SpMmUuFq6VJfR0ZERN6gqsCbb8rjv//itl+6JM3de/eWfYiIvMHpxGnBggX43//+h02bNmHNmjVYu3YtFi9eDLM7mxS5wcAm09D8hfVwLrkROiXx9D69zogaxfaiRJ5TiZ7Ln+2Kw+P7G6Ks9rFbkvzGFhS50BQDs/phxHMBqPOgJJSzPwBmjaoOWud1YnmXM/skh9kctzYrqX75RdaEJWwLdv060LkzsGRJ8o5PREQp3/btMtoEJE6QVBVYuDD1zKAgotTP6cTp8uXLaNGiReznTZo0gaIouH79ukcCSyqD3oQ1I9oiT0jikum2FM11FhULHQIAKDADUKEoZrSvuhK/vd0CiwclrsbQueYSaE0F1OuMeL3RTAAK9HqZomez4/zZ6cCOF4GwHYhNsh6eA/4eAvzRMUnJU6ZMjvcJDHT5sE7Z/usFNK95DH4GE/z8gHJFLmD2N0dhNrl2O9BsljuJgP07iSNGJD85IyKilG36dOndZ49eD0yb5r14iCh9c3qNk9FoRIYMGay2+fn5ISYmxu1BJZefwQiz6sxCGBU/De6KakX/xj8XKuHA+arwM8SgSZmtCM15GQCQLfNBVCx0EIcuVop91U97u0KnGGFWE799Bl0McgTdQVCGhwBkjc7o0TZO/egicODZVEc1foL0LFO4uhq4MA8o2teJryNO/CmB9jx44NIhnTJj7CEMeL8i9Lq49/7ExYLo/44O27cfwqJ1FaHTO7fu7M8/gYsXtfe5eRPYsQNo2jSZgRMRUYp17Jj2TTKTCTh+3HvxEFH65nTipKoqevfujYB4c86ePn2KAQMGIFO8YY5VlkoHXtRv1kxULPQf+jT4Edkz38X2kw0RFuG462xwxnuoVvRvAEDlwgdRufBBm/tVDD1klThdv58PgIIKoYcx/KXv8HLlX+Gnj8Hf/1XBpmMv4uVKa9Bu8lrodMDUqUDz5tbHu3UL2DDjb0RefBM5Mt/C3xeq4Jd/XkF0jD9qFN+HwU2nonbJfcDp711OnJwZTXJmVMoVF/4Nw8APpIeTyRz3I6U+S6B+3lgJzb//Bz2GV3bqeDb6KydrPyIiSp2CghzvY3NGBxGRBzidOPXq1SvRtu7du7s1mKRaub89Vh4IwScrx2Bq70GYteN1p15Xs/g+p/Z7GpMhwRYF7aquxNIhr0KFAj+93A6rU/IPNCi9C7svd8PrQ3OhXz8gf/64V0VFAcOGAXPmAEZjBwDtILMlVVim/l29lx9L/uyCT9t9gk86fGkznosXZc73X3/JFIYWLWSBbJYssi5o/Hj7jW91OqBtW6e+bKfNmnAGilLD7rIvnWLClGmZ0GO4c8d77jn37pfeRUcDq1cDmzbJndtq1YAePYCQEF9HRkSkrXNn4OBB7UqxXbp4NyYiSr+S3McpJbDUagfCAQQj7so9/pQwFfbWIykw45UqqzGh21sonOuizX1iTAbkG3wNtyNyxW7LHXITlyaHwk8fA53OzttX62egUGerTa++KlX0nK2nse6ddmg53noEb/58oO+zQShLcqQokjRt2gTkzQuUKgU8eZL4PDqdjDadOuXepOOlan9j04Eqmvv4G6IQFeNcI1yzGShWTBJEez+defMCV66wNLkjp05Jg+MrVyTJVlV5fwMD5WfxpZd8HSERkX3378vftLt3E98QtPQ8/PdfILfjSSZElA54uo9TGut+oECnxM8W7CdN8qwOvx5sg2of/4VLtwsmet5k1mHOjr5WSRMA9G0wBwa90W7SZDLrcHbdROzdG7ft4EFg2TLnkya9zoiJ2z6z2vbXX8Brr8kfj/h/QFQViIgAmjWTaQ0bNsi/iiLJkk4nHwcHAxs3un+kJoN/DHSKdiGLAEO008fT6YDJk+Vje01/J02ynzSpqjQb/vBD4N13JUFIgUvxPO7RI6BxY6lECMhok8kk709kJPDyy3LBQUSUUmXNCuzcCRQoIJ/7+ckDkBtoO3YwaSIi70ljiRPiFYVwbiDNZPbDg8dZ8f6yL2E06WE2K4gxygzGPWdqIShjOPZ/XhUb3nkJgf6PAKioVnR/ggTNml5nRuGQg6hdW8U778iF6k8/aVcGShyXAb8fKWO1beJE+8mCySRFHxYskCp+V64A338v0/hatgR++EG21arlfAzOat08EmbV/o+SQReDNnX/ce2YraWPU2io9fb8+SUB7dTJ9utu3ACqV5f3YPx44LvvgI4dpf/TPudmZqYZP/0k74etaZuWkSdLgkpElFI9/7z0O/zlF2DQIGDgQLkhduECUKGCr6MjovQkjU3Vs6bADNXJ3NCgj8GW95rgzqOcuB2REwWyXUarSusRYzLAT2+EyaRDv9mzMG/3a1gxrANeqbIGep395Ckqxh8ZekcBkD4TW7YAixfbX3tki5+frE+xCA4GHj60v7+iyNSrdevkgvi77yRZAjzbZT3yQTiKF3mMW+E5YTL7JYjJDL1iwl+bjqFSk0p2jmCf2Qzs2QNcuyZ3F+vUsZ88RkcDL7wgTYATVmHS64EMGYAjR4CiRV0OI1Vq0UJGGLV+w7NnB+7c8V5MRERERJ7CqXoueCH0EMa0/wjfdhuFPvXnIDAg0unXGk1++O1IS2Twe4IedRagZcX1ABBb+EGvN2N853ehQMXmY02hKPavRmNMBmw4IotHdDrg669lxMMVej1Qv36CGB30LVJVSR569wZGjYpLmgDpsj5sGNCvn/u7rAdmCcG2324jJDBhVqdCp5iw6NudSUqaAHn/6taVBcL162uvaVq1Sqae2XqfTCYpzjFpUpLCSJUeP3b8vX761DuxEBEREaV2aSJxypwhAr+93RyHvqqE0S+Pw5AXv8es/v1x44e8aFvF+fLoJ66UQYA+CpkzRNpcW5Mr5A6+7TYKi/d0x52HOWA02b6K1+tMmLhhFAAZMTl2TCrZuTLaZDJJ8hNftWraiYNeD+TIISNc9i6Y586VKWzuXvOzbEsF3HuUDYrVFEkFKgyY9VtTq5EzT1m+XHs0zWgEfv7Z83GkFBUrak8P1emA8uW9Fw8RERFRaubTxGns2LGoWrUqgoKCkCtXLrzyyis4ffq0y8dZ+GYPvFhuCwAZIfI3xECnqMgU8BjLh3VEnZK/a75epxhRo+if+P10XdRwUKJ8ZItJmNm3P9p+twIPIrPAbFZgNkuWZTTpYTLrMGDOdPx+qp7V6woXBt55x/HXYrnQ/eqrxBXPhg3TTr4UBQgLc1xpbvRoWSs0e7bjeJzx77/AJ5/Ix2qCYhxms4Lt24Eff3TPubSEhzsuvvHokefjSCn699cepTSbpdgIERERETnm08Rp165dGDRoEPbt24ctW7YgJiYGL774Ih4/fuzScRqV3gmDPnFGodOpUFUFH7xsux8SIOugFAW49zgL+jWYg6CMjs/dscYK1C/1O4qOOI+hC6Zg87EXseNkfUzcMBIlRp2x6iOlKECJElIufNw4YMIEGRWKr0QJoGRJ+bdrV6meN3p04vO+8ookT4B1cmQwyOjB/PnAf/85N7IVFiYX1lOmON7XkZkzHRe++OGH5J/HkVKltONQFClznl5cu+Z4n9u3PR8H2aeqwL178n1IvatNiYiI0ocUVRzi9u3byJUrF3bt2oV69eo53N+yAOzODD2yZ7afLZhVBSH9wvHoaeIW5Bn8IhHo/wQ1iu3DqhHtEODn3JyyRl9uw46TjZzad8YM4PV4PXljYiQ5evIEKJ3nH+R7MA64/htgjgGyVgRKDgMKdbVZi1tVgV9/leIPBw5IotCyJTBiBFC5MlCuHHD8uFNhAQAyZgRu3pTCE0nVrBmwebP2PgkLXXjC0aPaFZYUBZg6VSoypQddu0oFQq1EukgR4Px578VEQlWBJUvkZsrRo7KtUCFg+HAp4ML+ZL5nKd3vSjVUIiLyrXRVHCI8PBwAkC1bNpvPR0VFISIiwuoBAAYHPYQs0/ZseSH0IBa82RNr32oVmzSFRwbZnfIVY9Lj1PWS2HGyIQrn/A/fdhuF5cPaI1PAI6teRpYLnz59pCBDfH5+Uh2uabHFyHesKnB1DWB6AqhG4N4/wJ/dgX19bN6CVhTpv7N9u1TYu38fWLRIkiZAOqi7UjXv6VMpqpAcQUGOzxkYmLxzOKN8+biRuoQ5p04nxSUSfi/SsqtXHY8+3rjhnVjI2scfS2Ib/ybHpUtyA6RLF+f7vZH7rV0L1KsX1y+oShUp7Z9ybjESEZGvpJjEyWw2Y/jw4ahduzbKli1rc5+xY8ciJCQk9lHgWUc8e01SLR5EhuDuo+yJtusUE34e3A0tK663uvAPCXwIo9kAVZVmthZGkx4PHmdF2+9Wo0nZrTjxdRkMbTYZHaqtwqlvSuHtVl+jWO6zCAmMQOnS0odo9mw7SUXkVWBfbwCqJExx74T8c2EecPEn7S/MhtdfB7Jlc/6OtV7v3JQuLR06aF/oGQwqOndO3jmc9eWXwJw51lPysmYF3n9fGgP7+3snjpTguecc/xywcaT3/fMP8MUX8nH83xtVlcfy5TJSSN731VdAmzbA3r1xidKhQ0C3bsDQoUyeiBI6dgx44w1p81GsGDBggGuzXohSmxSTOA0aNAjHjx/HkiVL7O4zevRohIeHxz6uxK+3bYfRpMfM7a/DaPJL9FyWwLv461x1m38M/fRGKApw+U4B3H+cBRfCCuGrX95HpY+OISwiF1aPeAX+hmj4PVtblT/7NYzr/D7OTiyBB7NCUMjvV6xcqfGH9txsxCZJNumA0653J82RQ7qs58/v3P4mE5Anj8unsdKuHVAyNAwGXeJSfTrFBIMuCiOGRiXvJE5SFBnlO30auHhRejrdvAl8/rn0cUpPevfWHnHS6WSdG3nX9Ona07/0eu+sCSRrBw8CH3wgH8f/vbEkt1OnSl80IhLz5sn0+B9/lPXV58/LjcsKFYAFC3wdHZFnpIjEafDgwVi3bh127NiB/BpX/AEBAQgODrZ6aDGa9DhzowS++uV9m8/3azAbtUvssfmcokjSE5zxIXK/eQtFRlzAJys/Q6VaebD++7kI9H9qtwGu0aTHyOYTsXChNL216d7fgKqVOJmB+wdtPnPxooygNG4s64smTwYePIh7vkwZ+Q/s119l1EFLQADQvr32Po74Pz6KraMqoUz+EwAAP300/PQy7TFrpvvY+M5LKKmfkbyTuEhRpOlvsWLpa5QpvhdfBJo2tT3iaTBIb7E33/R+XOnd0aPa1Q5NJt6x9YX//c9xQjt1qvfiIUrJjh2Tm5Sqav3/mdEYV7H15EnfxUfkKT5NnFRVxeDBg7F69Wps374dhQsXdtuxHz7JjKmbB6P2mD0Ij8yS6HkdjFAVHfJnv253qp+iANmD7qFZ+U2x2woUAKoX/gOKzv6cDYPehNol90CnU+03XNUHAHAwx1BJPEq2YIEkA19/LeucNm+WdRFFigB//x3v8HqgdWuZ9uPnZ38N0pgxUvEvWc7PQv4ct3Doq4rY/n5DDHtpMt5sMg0L3+yOq9/nR/3ndwNn/pfMk5CrdDrgl1+ABg0SP1ekCLBrl0xjJO8KCnI8vdgbawLJ2t9/O05o//nHe/EQpWQ//KA9FVyn440GSpt8Wi9o0KBB+Omnn/DLL78gKCgIN2/eBACEhIQgY8aMSTqmqgLFRp7Ftfv5ERVjf26WGQb46zX+SsaTJ4vEpShSfc5k1mPT4ebYebI+VCioW/J3tKz4m9UIlKoqMJuBw4clpoQXSqZcLWD8b539Kn6KAcjX0mrTX3/J9KuE0/9UFYiIkBGGCxeAkJC452rVkuSqf3/g3Lm47SEhwGefAUOGOPUWaIs4DagytbFhmZ1oWGZn4n0e/+eGE5GrJkyQBFuns15Pc/aslLZfsYIV3LytfXv5ntij1wOvvuq9eEg48ycnvU33JbJn2zbtGw1Go+xDlNb4dMRp2rRpCA8PR4MGDZA3b97Yx9KlS5N13P/CimomTQBg0MUg0N+5flHX7uUDIAlK3rxAqd5z0PKb3zBp43BM3jgML0/8FUVHnMfxK2UAyFS9nf82AKDAz886adq3T/oxBZTpgwy9o1Bk+H/4bsNwRBsTjC6pJuD5t6w2TZxo/yLXZJLperbmFTdoAJw5A/z+u/R6WrtW1v0MHer4zrdT/LMCioOrb0PiUvDkWceOAR99JB8nLN6hqlK8xO5UUvKY7t3l/xFbv8s6nVycu+WGBrnklVe0q4Pq9bKek4icu3Zwy/UFUQrj86l6th69e/dOxjGBuClw9qfTGc1+eLH8Zjx+Ggiz2fZvt1kFwsJzYsvxplAUIFcuqbp08boM6cSY/BFjkgU0V+/lR4MvdiIsPCcMehMm/DYKBgPQqlXc8VasAGrXBn77DTCZ5JwXb4di1OIJaPH1ekmeFJ2MNtVcAOSoYRXPhg3ad3gs+9iiKFICvWdPicmtd05DX5VEzw4VBqBQNzeekJzhqDExp1L4RlCQFHAJDZXP9fq4JCprVmDTJsCNs5bJSX37yki8vYTW3x8YNMj7cRGlRE2aaP99MRhkjS1RWpMiikO4k1nVoV6pHahXageyZroDBbYv6F+uvBrnbxVD20mrYFZ1MCVInswqoFOAYQsnw2jyg14vdyRv3QKMxsSJlslswP3HWTFz++t49+dx2HysGUwm4K1ng0b37wM9eiReSKlCB1XVYcfJRpi8dxpQ5iPg5QtA4e6JzuEoaVJVaa7rbcbcbXA6rDxiTIn/FzWa9Hj0NCOuZBru/cDSOUdFCMxmLt71leLFge++k0IuJpM8ChSQhri1avk6uvQpRw5gyxZp5wBIAqXTyU2nwEBg3TopuUxEchNBqw2JqvJGA6VNiqqm3s4Usd2BZwHB8RZTK93MUKBChQJAgU4xwqzGXdQrMEGFAn9DDGKMfmhcdhum9h6MknnPxO5z+U4BjFo8ASv2d5TXKDIHPjJSKyIVGfyeIsacEYoCzJ0r03IAYNIkYORI7T4g+fMDly/bH95u0AD44w/7Jab1eqm299lnWjG63+rVwBu9w7BiWAfUK/U7jCY9zKoCf4MRV+/lQ4fJq1G9RVVMdr26OiVDq1YyAqn1xy1HDuD2be/FROKbb4B33pHfWcvvs2UdWr9+MlrIaS6+ERkJ/PyzrEMzm2WWQI8e1mtHiQhYtEjWXStK3E06g0GucxYulGbeRN4WmxuEhzusvp0UaS5xiniSGSH9HibYU332iD/AZgaeJVaWfaoV3Y/82a4iLCIX9pypDVV1fUAuQwbgvffk4idfvrjtr70m/5Fo9dUBZB1SnTq2n1u9WnuOvcEgvRSe9QWO9eSJNOKdPj2ueETPnrLGKX6MSdW5s0xDNJmAyoX/RvMKG+BviMaB/6pi/eEWMJkNyJ4duHMn+eci5/34o0w/ssdgkMaFnK7nXceOAeXLa++zerWMcBMRpWT//iul/C2FIJo0AQYOBEqV8m1clH4xcdKQMHFSVeD2wxzI/aazt9BVOCwJHrsfHO6r10tvpU2bEj83YIA0hnM03Q4AqlWTRfvFiiWIQgWGDwemTLG+U20wyJ3RhQuBrl2tX/PokfxH9tdf1tt1OilDvnu3TBdKjhdflCkuWvz8gGg7BQTJMyIjgdKlgatXEyfsljUbR44AJUr4Jr70atAgGVGy93+BXg/Ur8+KVERERK7ydOKUptY4KQqQI/NdaBWFSOKR4UyCZTLJnRZbWrd2LmkCpFdI7drAjRsJolBkyt/q1UDdukCmTDJ61KmTJEYJkyZApu7t3594u9kM3Lsnd7WTmzqXKOG4pDUXu3tfYKBcfBcpIp/7+ckDkLL6GzYwafKFf/5x3C/o0CHvxUNERETOSVOJEwCoUJApwLky486NNjnv/+3dd3wU1frH8c/sbholoSeh9yodQYqKAgIqinpVvKigID8UC3LtXkS9KHaxYAEVewELIlZEiihSpVcRSYSESAkhoSTZmd8fQ0JCsiUku0uS7/v12tdNZs6eeWaZK/twznlOy5bQqlXh5wYMsEd2vFWhyeF2w759FLp5rmHYyc78+fZoUmqqPTrVpUvBtunp9vQ8b4nRH3/YfRXHiBG+pyAWo1CiFEOTJvZUiq++glGj7J3ep0+H3bsL3xhXAs+f/YIiIgIfh4iIiBRNmUucDExm/2cQhuFlRXyJKJiNbN1qJ05TpxZs7XTaU/iaNTsep4+cze2216gUx8aN/lXZK2xqYVF4L5hhO3aseNeQU+d02oUiXn7ZTqSHD/fvy7sExuDB3v//73LZm+SKiIjI6aXMJU4OB5zfZgFLHj6LUee/TsWI9ELbOR3Z2AUiclgn/a8vBduZpv0aPdpeO3SyOnXsEtGzZkHt2vaxutUSee3GUWS8VYFj74Sz5JFuXNPjQ8Bi/34/Q/EgMdG/dps3F+8606f7HkmbPr141wiFPXvg44/tykHF/YxEcgwbBtWre94vyOm0C7eIiIjI6aXMJU45ujZZzqs33sy2Z5vRqk7ezWrshKdhjb84+farV9zLmY2X+jVaZXhJsJxOeOaZgsezs+2kaepUu9Jd7aq7eHboOK4/+10qRBwh3JXFmY1W8OGYobx50wji44u3+Cg+3r92DRrY07luucVO7mrWtNdk/fCDf+9PSPC9fuvk9VqnsyNH7KqIdeva5VSvu84eSTz/fP+TUbCnUb7wAvTvbxcNeeAB+OuvQEUtpUWVKvbas5o17d/z7hcUFQWzZ2vtmcjJtm61iyO1bm3/93jMGO1DJyLBV6aq6hUm2+1kf0ZVbp7+Kpt3tWBbcgvGD36U/816iCx3eG47h+Hm6X/fzZ0Dn+fG19/i7Z+HU5w1UOHh+aenpafDRRfZI1E5FfGcjmzcpoteLX7m23sGUiky/9qszxNf4fJ7bz7lGPbtg1q1vO/jA/YX+qeesn/OuxdDdra918wTT3ifWnTddfa+J97WOcXFlY7kyTThwgvtKoEnf24ul52Mrlpl73/kzfLldsKUmnpijVnOCMP06fZnJuXb0aMwY4b9rGVn2xvfXn+99gsSOdmMGTB0qP1z3r+jTNOe0j5sWOhiE5HTi8qRe+FP4nSyzbtbcN0r77JiR9d8x12OLHa9XIea0f+QnFqLDg+sJSUtttA+HEY2YGBankvJOZ32+qKchMPbPk5ORzZDe3zAOzcPzz3mNh1Y4TVxXZXs131lZMCSJXbJ7w4dTkwF/Pe/7elmnv6Ua9SAQ4fs93lqM2sWXHqp52vPnWuXJPfE6TC59z4Hjz3mz52E1g8/2AmPJ04njB8PEyZ4bpOaaleyS0sr/M/bMOwqiGeeWexwRUTKtG3b7FEmT7MaHA5YvRratg1qWCJymlI58hLWNPYPFo7vTbv6a44fsYcVHr/6AWrF/INhQHzVFNY/2YYezX456d12ZlEpMsNr0uRw2F+Kc5KmlBR7nYynERm36eLDX/9NcuqJRM3pMHFl7/F5P9nZ8OCD9ohOv372qFa9evbi8j174LnnoH79guspcvbxueQSO8HzlDQ5nYVX98urz9mp9G370/GEMj+XI4ualfdw+zVLfN7L6eDdd72XVne77c2EvXnnHTt58vTn7XTafy4iIuLdK694P+9waBNvEQmecpc4uZxuwl2ZPDnkXgDqVtvFmzfdyN0X51+UVDN6H7883IvfH2vPiN7T6Nn8Z/qd8QPntf6JtCPe59KYpj0XO8fixb7XAGWbYSze0ivfMV9DgZZlV0ibNMmeCpj3+l9+ae8FFRFh7+N0yy32vk9g/0VzySX2CFVSkvepfG43/Pqr9zgcO99l1thLuLbX+8eLbpxwZuPlLH64N7H7nvBxN6eHXbt8l1b/x8f+yt99570EfHY2fP110WMTESlvcqayepKd7XsDdhGRkuLHrkJlj8vp5oJ2PzCy9+v878qHiKuS4rFth4ZraVl7Mwn7GrBg43n51kV5Eh2df+qarzVGue2sE3msZYFpOfG2r+xvv9l7OBXG7YYdO+x/iRs/Hl58EZ591l73FB1tb44K9uiHYXj/ou/wlV4n/UDFyMO8M/oGJl39AD+u70tmdjhnNl5O+wZr7TbJRaiqEEL16p1Yg+ZJXJz3PvwpAe8rORMREf82aC+9Cw5EpLQpdyNOORyGxZqEDnR9aDm79tf22nZLUkvmrrvAr6QJ7DVDeacOdOvme98mwzDp1mRpnt99J1y+yoCbZv49pcLC7C/9FfKsB+vXz/s1XC7o29d7Gyw3OeNjtasmcf3Z7zHyvDdPJE0AVqD31SoZw4d7T2ocDrjpJu99nHWW9+l+Tid07er5vIiI2Pr08f73nMtlVzwVEQmGcps4ASSl1ibpQDw3T3/Va7sdKQ2L1K9lweuvn/i9Xj1700tPX6adjiwGdZxN/RoJmJaR+69nhuH9n9ESE31PAdy92/v566+3R6A8jSplZ8N//uO9D2r2xOujZDihRncfnRS0d689WhYfb392sbFw//322q1AOe88uxBGYZ+HywWNGtnTHr256SbvibLbnX8qpxRNUhJ8+KFdbGXr1lBHIyKBdMstvqeT33Zb8OIRkfKtXCZO2W4HCzedw9/765FthjHn94tJ3FfXY/tjWRFFvsbu3fmnD0ydCi1a2F+oc75UG5iAReXIdK7o+infrRnAxC/+S8u7NvHVqgvZvKeD12vExvreeNZX2ewqVeCbb+z1T3mTBZfLjvPFF6F3b+990GQkOFx4LN9uuaHlWB+d5LdrF3TubK/fSk62/+JMSYGnn4aOHQO3H5Jh2KVvb78dIiPzH7/wQvjlF6ha1XsfDRrA22/bn2feP5+cxPmOO+w1ZlI0GRl2ol+vnl2a+Prr7f9P9e1rPy8iUva0bHmiaE/e/57m/B01dapdSVZEJBjKZDnyEyM2Bd/jNh24TQfn/m8Rv/1xYhRkzl0XcVHHbwq9zshp03hzwcgixVa1Kuzfn/9YRoY9ve6NNyBhp5uMQ9lkm64CFfoMw43L4ebF+79j9P88f8OeN8/7NDqnE+6+204+fElJsffD+Oore/+p7t1h9Gho08b3ewFInAWLr7R/to4PgxlOO2lqdQ90fNLPjmwXXWSXBi9sRM3lsve8WbiwSF0W2cGDdmGPrCzo1MmuTlgUK1bA88/bhSCys+3peTlJk6+pm5Kf221P2Vm8uOBUSpfL3qx41SrfSa2IlE4bNsCUKfbfC5Zlzw647TZo3z7UkYnI6UT7OHnhLXGa8/tFnNX0N6pUPEiY88S37z9TGjFi2pss2Hhevr5+vL8Pfc74qcA1st1OOj24knWJRfuv89ln25vdevLhhyc29CuM0+FmyBAH73/g+Ru2ZcGAAfDjj4Vv1lqtGqxZ47uYQYlJ3QBbX4S/Z4OZCTXOgua3Qe0BRermr7/sfZB8PZkbN9o7yEvZN3u2973EHA6YONGeyikiIiLlk/ZxOkWVow6xaVdrDmTEMHPp5exPr0JWthOXM4uzW/xMlQoHcttGRx2ke7OC+wy5TQdXTP6UdYntinz9xYvtEZ+GDeGJJ/KXCwd7U1mHw/PEbbfpZNaX3q9hGPDFF3DddQXXT3XpYk8rC1rSBBAZC5UaQ+WmUKkJVGoKFRsWuZtVq/yrkrRyZdFDlNLpnXe8F9wwTXjzzeDFIyIiIuVPmU2c6lVLJCLsCDUq7eeKM7+gWqVUwlxu6lf/mwmXP8LKxzoTVyUJA5NxA5+jQsSRAn18tuxyZq8ajMe1O15Ylv1lbudOe4Panj3tTVFzZKQdxjTz9mvhMPLPQTp61Hf2UKGCvZ4mMdH+cjltmr2L+pIl0LRpkcM+df8sga+awOoH4J/FsH85bHsFvm4N27wX3zhZuH/FC/1uJ6Xf7t2+S7gHsmiIiIiISJlMnAwDqlXaT9cmKzAMC4cjfwLidJjUq57I1BGjGNH7Tf572cR853NGO16bdzNOw0fZOj+YJqxbZxccyNE2fjlOh5tzWi7kq7suJuvdMNzvu1g7qS0jer+Bw5FFq7rb/b5GfLy9WH7kyBDM+c5MhQUDISsdyDOKZmUDFiy/BVK8zFs8yTnn5C/MUJiwMJWgLU/q1/ddCKW2910FRERERIqlzG6AWykizesC/DBnNhd3nMOgTnMKPW9asHl3S9xWyXxElmWXT/7Xv+ziADf1fZd/dmxj2k2jcJsOXE77n9Nb193AtJE30afNj6QdrQK8ViLXD6gd70JWGjl7ORVguGDTs1DrHL+6i46GW2+1N+wtbMqewwEjRviuGChlxw032NUOPfFnfy0RERGR4iiTI04AYS7f09w8JVaG4SA16iIqR6WVcFRw1VX2tKMmtZOZdtMoDCzCnCfmIDkdFoYB1/T4hJHnv1Pi1w+IpB/wmDSBPfKUPLdIXT7+OFx5vEhfzkhDzv9edBFMnlzkKKUUu+ACuxx8YftrOZ3QrBmMGhX8uERERKT8KLOJU/GYVDOXMbDXnwXWHRVXZqa9DglHGA7D8pi8WRY4wqJK9NoBY2b50aZoUx7DwuDjj+0CFzfcAAMH2lMRFy6EL7+EiKJvrSWlmMMBn39ub4aZ98/e4bCr7S1ebI9UioiIiARKmSxH7i/LOp6gHE8f96dXJTk1lqjwo1SrtJ+jWZG0eWAnB9Iive5cXlSdOsGvE/sRvv9Hr9MJLQyMf5fghQPl56sgcab3NpHxcPnu4MQjZVpqqp1QZ2fb1SPr1Al1RCIiInI6CHQ58jK7xskfFpB+rBK7D9ThwRmPMWvF4OOb0Vo4DJNb+k1h/n/7cOmUxezYYRAWZidahW3KWhS7d0PqnhRqhXlvZ5oGXiownz7ch323yToY+DikXKhSxZ6uKSIiIhJMZTpxsqyC65hM08itsucwIGFvA3o8/CuHM6OOJ00ABqbl5OUfbseyDLbNn8N36wexePGJvZM2by5eXOnpTmKreW9neFs3dDrxa6qeH21EfFi/Hl58Eb7+2i5P3qOHXa2yd+9QRyYiIiJlXZle4+S2HKRmVAbsZOVARgyZ7vzDPKPfeo3DmRVwm4UP/7zy4y3sTfyb7dsymTMHpk6FvXvBME49qalVC/Yfre1zk9cTidxpLqaNXTnPIwOiWwQtHCmbZsyADh1g+nR71HbPHvjqKzjvPJg40efbRURERIqlTCdOLofJmoT2mCbsS6/G3rQaRIZl5p7fsrs5v2zthdv0/KXfspxs+f4jBhnNub7tXcRGrudQ6hEsy9umuJ4zIsOwq4NlVjnXax9u08HGf3p6vb/TRtNRx/ds8qL5mODEImVSQgJce609ypR3qmzOz+PHw48/hiY2ERERKR/KdOIEcG6rxWS6w3nxu9uIrnAo37mtyc396mP469NpPPYv7vnoGbYktcDhZbTJrsLnOSFyuWD0aGh76Q0czY7CbRbe1ukwsVqM8yu+kItpCY2GeT5fqQk0GRG8eKTMef11vBZocTrhhReCF4+IiIiUP2U+cQKIcGXy6JWP8NXKQfmOx0T5V7Dgr38a5f7sNsM4kuW5THjFiAzuvfhx4MS+Qzk/u1zw0UfQsCFE16zBl/s/J8sdTrb7xJS8LLf9prdXPEi7Cy/xK76QO7oXEmbiMWFM/wOSfwpqSFK2/PyzPdrkidttlyQXERERCZRykTgZhr3GqW/bHzmWdWItU/dmS6gVvcfHuy2sAh+T5xGlQ0cr89bCkXx7T3+uvdaiUSNo2tQeZVq/Hq64wm6XlATD7uvPGfdu4MXvb+fPlEb8vb8OX668lN4T53PD8xOZMePU7jfo/nwL3EfxOEXRcMKW54MakpQthW18eyptRERERE5Vma6ql5dhQMOaO0nNiCYizK7wFubKZsIVExgz/TWP74twHaNx7J+kZlQhKbW2P1dif0Y15m3oy/Sv8Jhjvfmm/a/k2/c04T8fPMd/Pngu33mHAyZPhquv9u/+QmrPAsDLPCrLDXsWBisaKYP69bNHnTxN13O57DYiIiIigVLu/o02pkJavt9v7vM6Tw65hzBnJie+/FuAxYUd5nBwWjQbn2rD7il1WDyhJ+e19j3lzG26mL5oRMFa6HksXep9zYZpwooVvu/ntOBtF9/cNoEPQ8qum26CyEjPo0puN9x5Z3BjEhERkfKl3CVOAFnZrtxS4IYB9wx6mlduuJmcj6NKhQP8/ngHZo27jIjwE/sPndXkN+be34/YmCSf19ifXsVrufGwMN/5hrOUVCMn9jy8PkqGE2r1DlY0UgbVqmWXHo+MzP//C5fLTqamToVu3UIXn4iIiJR9ZT5x2neoKjtSGnI0MwKwk5UwVzaXPjuLNxfcmJvcTJs/CsOwh4Beu/Fm2tTdSJgzf4ltp9PEwGJg++/wVnIcIL7KHq+JUf/+3uN2uWDAAO9tThuNbwBnJB4fJ8sNLUtJhUA5bZ1/Pvzxh116vGtX6NQJbrkFNmyAkSNDHZ2IiIiUdWU6cbIs+HLFJTS+cwfV/28ft73zIvsOVQPgSFYUI6e9yb0fP0FWtotl27thWQ6qV9rLFV0/K5A05XA4LG7u+yre5p45Hdn8q+sM7r7LomtX6NEDHnnE3rQzx9ChUL2651EltxvuuutU7zzIIqrDubPBGWGPLuXI2RS3wxMQrwUoUnzx8TBhgj3VdeVKuwR5y5ahjkpERETKA8OyvE0oO72lpaURExPDwWkQXaHwNqYJDcbu5O999XE6smlUcwe/PXIWPR75la1JLQD44b7zueAJe+1S50YrWDHxTK/XPZblou/j81i89WxOTqBcjiyqV9rHP4dqYDhcuSWUHQ6IiIAvvzyxiH31aujbF/bvt3+3LDuRsix76tGI0rb1UUYCbHsNds0GMxNqdIdmY6BG11BHJiIiIiJlXG5ucPAg0dHRJd5/mU+cAHYfiKf+7Qm4TRdORzbX9XqXtxfdCNiJTqdGK1m2vRtg0DR2G9ue874xrmWBaTl45PMJTP52LIeO2n8wDsPN4C5fMOr8qVz2/BccyayY7305ydMff0Dt2jn3AO+9B3PmwLFj9hSkUaOgceNT/lhCz8y2p+c5I0IdiYiIiIiUE0qcvPA3cQIYMfUN3lo4gtZ1NnBz31doWXszqYer8tmyK9i4qxVrE9pjjx5ZrJnUnjZ11+N0+P5oDh+LYsm27mRmh9O+wRpqV03CbTq496MnefabgnPtHA57jcbDD5/SLZ/ekn+EjU9C8jzAguhW0OIOaDISHKWl0oWIiIiIlEZKnLzwN3GyLNi4qxUzll7NI1c8TJbbRZgzG7fbgdNpsnNvfXo8/Cu7D9QB4JLOX/LluMFYVsHKd6Zp4PCRUJkW7EhpTNNx2ws9360b/PZbkW719Lf1FVgxxl7jZB2fn3g8EaX+1dDzQzDK9JI6EREREQmhQCdO5eKbrGFAi/itPHLFwwC5hR+cTruKXt1qfzPnrovJqZQ3e+Wl3PD6WxzOjMK0DDKzw8h2OzEtg+kLb/BaZhzAYUDDmn/hqfJezrqnkrRhAzzzDDz+OPzwg/c9okpc+p+w4jb7ZyvvzR2//4RPYMf7QQxIRERERKRkuUIdQLC4nG7cJjgLSRWdDpOODVfzwS1DMS0HKWm1eG/xdcTdsodrun9E07htXNP9I6pUTGVfRjW/9ntNP1qJwirvOZ1wzjknHcw6BP/8YhdUqNoRKtbz+74OHIBrroHvvz9Roc/tttdIffopdOzod1en7o9pdnbqMaF0wNYXofH1QQhGRERERKTklfnEKe90u8KSpryu7v4xluXAwmDchc/z4a9DePTzhxja8wPqVd8FwD0XP4M9UOd5SCfL7eKDX4Z6jGf06OO/mFmwdjxseQnch48fNKDOIOj6GkTFe43X7YaBA2HFihO/59i5E847z67c17Ch9/sutgO/nzTSdDITUtcFOAgRERERkcAp01P1st1OLAxmrxzkV3unw8LldOdO5bum+8dsero157ZadFJL7/PgLMvguW/H4XKdGIJxuezCENOnQ7Nm2BnUkmGw8ak8SROABbu/hh96wLH9Xq/zzTf2fjaFTf1zuyEjA55/3msXJcMZhbd9rQBwqMKeiIiIiJReZS5xyrv+aP7G87hg0g9c+txsPvhlSJH7MoyCxSH8Ee7K4s2bRnDpJVCjBsTG2hveLl8O1+fMVtv7G+z8iELnt1luOJwIW170ep2PP/a8gS5AdrZd6jzg6lyCl3l69ka4dQcHIRARERERkcAoU4lTTtI09r1niRp+mAuemMu8DX1xGG4mfzsuqHG0qr2Znr0M3ngDEhPh7behU6c8jf6cbicUHjtxw/ZpXq+zf7/vQhNpaX6HfeoaXA1RdeyKegUczzxbBe/zFxEREREpaWUqccoZHXrm3/dQo/Le3OOm5WTFjjNJP1rRwzuLxsJ71TrDgDFvv8Rdd1kMHgzVqsHrr5/U6PDfYGV7v9CRZK+nmzSxpwB606CB9/MlwlUB+syDyLiC54wwOPtTqNohCIGIiIiIiARGmUqc4ETydNN5BUdr3GbJbMJqAJNm32+vocozQ81t2hd/4bvb+HTZlZjHf09PtwtCnH02pKYebxwV533ECSCiutfTI0fa0/E8cTjg5pu9X6LEHE2BzFTyr3VygJUJ6X8FKQgRERERkcAoc4kTgNPhpn2DNbm/G5g0j9tCdFTJzFtzmw6OZkXR4YHVTJs/kr2HqnPwcDTzNvRh0DOzGfveCxRWLGHxYujfH7KygEbX+RhxckCTG73G0aED3HFH4eecTvt8UBKnzAOw4CJwHyH/Wqfjw3KrxsKe+UEIREREREQkMMpk4mSaBkezInN/tzC4c+DzHgs9+NrQtrD2mdnhJO6rx6ZdrdmW3JTtKY3ZvLslm3a3wluFuWXL4IsvgFq9oVJTzxcxHND8Np+xPP88TJ4M8Xkql0dFwf/9H8yfDxVLZnaid3++DdnpeKw2aDhh03NBCEREREREJDDK5D5OTqfF7JWX4HRk4zZdXNfrPUadP9Vj+5yEKmfPp7x7PxXG5TRJ2Fef3VNqUyH8cG7bjg1Wc9sFLzP2ved58fuxhb7X4bALRVx1wSZI/8PzRaxs2DoFOjzu9V4Nwx51uvVW2LABMjOhRQuoXNnr20pW8jy8VtWz3LBnXtDCEREREREpaWVuxMmy4K9/GvDZ8stpW28tM26/krf/bzgOh+9hJcMA0zJykydv3ho1nIoRh/MlWDnlyydfdyf9231X6PtME5KSgFV3+r4ZH+XI83I6oV076NIlyEkTgOV9Xyu7TRGH9URERERETiMhTZwWLVrEoEGDqF27NoZhMGvWrBLpt07Vvzn6dgWWTzyTK7t96lfSlMNh2G29jTiZlkFUeKbXfp67tvDEyOGAunXB+udX38G4M3y3OR3UOhuvj5LhhJq9ghaOiIiIiEhJC2nilJGRQfv27ZkyZUqJ9hvmsjc3cjn8GAk5BQaWt4lpGIa9j1NhTBPmzIHszCMBiS0kmowARzge13ZZbmg5NpgRiYiIiIiUqJCucRo4cCADBw4s0T69jRQF/xomnnJTw2vqVcpE1oKzZ8LPl9tT8nKqBRou++c2/4U6F4U2RhERERGRYihVa5yOHTtGWlpavlegFHdJjmk5cTg8f7yZ2WHFu8Dpps7FMOB3iOsHzorgiITo1nDObGj/v1BHJyIiIiJSLKUqcZo0aRIxMTG5r3r16gXsWt5GlfxJqpzxvUlKgpdfLvx8llnGEqe0bbBwECR9C+YxsLLg4Dr4ZQjsmhPq6EREREREiqVUJU73338/Bw8ezH0lJiaGJA7T8uNjq9qBWrU8V7grU0Xmso/AT30gI8H+3cq21zVhgfswLBwMB9aGMkIRERERkWIpVYlTREQE0dHR+V6h4HSYmL7qTuz8BIDIyMJP51TvKxMSZsDhRMDtoYGpDXBFREREpFQrVYnT6SDb7eRIZgReli/ZjuwGy6JvXwgPL+R0ZoWAxBcSOz/20cCChE+CEoqIiIiISCCENHFKT09n9erVrF69GoAdO3awevVqEhISQhmWR1luF8eyI5i/8Tyy3U7vjV1RYBhUqwajRxdcM7UuoZ3vCxo+rnG6OPSH7zbmscDHISIiIiISICFNnFasWEHHjh3p2LEjAOPGjaNjx4489NBDoQyrUEcyI3n35+vo/OBKnv92HC6np2lpx+WZiffMM3D11fbPLpe9Ce6ny6/2vc4pvmRLtQeMX0lRGZqaKCIiIiLlTkj3cerduzdWKaiScO0r7/DBL9cBBk5HNvvSq2JZPvZzcmfk/hgWBh99BHfdBe++C8nJ0KxpZ9/7QVVuWhLhB4E/+XcQNtgSEREREQmQkCZOpYFlwfdrBwAGDsMeZbr/kicwLXD6ygVMk7yLoTp3tl8ArPoANjuwN8n1YPe30Pn54oQfHK6oUEcgIiIiIhJQ5aY4xKkObBkG3HPxk/Q743ucDjdu00XL+M04/BlA8TakdGAtXpMmgENbixJq6FRs5LuNo5AKGSIiIiIipUS5SJyy3U6Wbu9KysGap/T+uy9+jh/uH8DuKbUZ3edVnL7WNwHg8p44HU3xo49SMr0tpq3vNv4kVyIiIiIip6lyMVXP5XQz6cv7yXSH8+09F51yPzUq7+PVG29h94E4P1q78boQKs8aKM98bRZ1mti/zHebw6HZrFhEREREpCSU6cQpy+0izJnN+JmPMnvVYAD+SG5C07jtxeo3rkqyH618zA10Hy1WDKeV1PW+2/iVKIqIiIiInJ7KZOJkWZBysBbfr7uAV34cw9I/zso9t3hLL5rGbfddFc8Lv9/m7SJh0XBk16kFcLpxHwl1BCIiIiIiAVUmEyfDgHMmLmJrUotCzlmnXCgih4WfyZPDyxKyWudC2ibv74+ML0JUoXT6l5QXERERESmOMlkcYvuexoUnTZic22ohhnHqo012P368v3Jz7+ebj/F9lVZ3FSGqEFLFPBEREREp48pk4tSo1p80qPFXvmNORzaXdv6ShjV3Frv/LHcYo954jVU72ntu1PFZ751UOQMaXuv5fIV60OzmUwsw2CJj/WhUSioEioiIiIgUokwmTqbp5IZzpgPkblrbrt5a3hw1okT6f+jTR3lzwUgum/wl8zf0Ljj1r8PTUPdi751kHoRdc/CYUBxOgL1LSiLcwKvcxHcbV3Tg4xARERERCZAyucbJYZh0b7aElvGbiKuSzA3nTufqsz4hIiyzWP0eyIjh4c8e4cXvb+e81vOZc/fFhDszC07b86f09o73IOsgHtcHGS7Y/CzEnV+smIPi6F7fbbIPBT4OEREREZEAKZuJk8PignZz2fRMa8B7cTtflm/vzOTv7iT1cBXmbejDsaxIqlbcz+z/XEKE6xhORyF7LW19EaqfCY28TMXbMw+vRRWsbEj+8dSCDraMHX40KiV7UomIiIiIFKJMJk4nK04hiE+XXcmMpVeR7Q7LPTb8nLepEH4Yh8NL4rP6Ae+JU2aq74ub2f4HGkoqRy4iIiIiZVyZXONUkrJNJ8ZJI0PntFzk+41HEvFa99zM8t2Hs5RUqzPCfLcRERERESnFlDj50L3pb2S58ycwluXnEJa3xMlw+n6/+6h/1wk1f+5FRERERKQUU+Lkw6Wdv6RSxCHyrkdauPlc/97sbY7gkb/96cC/6wRAUhKsXAkJCX40Li1TCkVERERETpESJx/CXNn89OD5VI48lFva/J1Fw8g4VhG36ePjy5M47dkD998PsbHgdMJ3vzb3OiBl89mgxK1bBwMHQp060KULNGgAvXrB4sVe3lRaphSKiIiIiJwiJU5+OLPJCva+XoMv/3MJreus50hmFHd/9BSmZfiR/MCOHdCxIzz9NKSkgGnC0cwI/6f8BcmaNdC9O8ydm3+W4ZIlcN559vFCVe/iu/PwaiUSo4iIiIhIKChx8lO4K4uLO37D+ifbkvxqTR6+/CHCnG7vFftMuwT3sGF2wuR2nzi1aPM5vmfiOSKKHXdR3HILHD2aP06wb8M0YcSI3FvKr8MTvjtvcUeJxJidDR99BL17Q7160KEDPPccHDxYIt2LiIiIiBRKiVMRGQZUqZBOxYgM340dDjZuhJ9/LpiMzN/Yu0C1vgKqdjz1QItoyxb49deCceYwTUhMhJ9+KuRklbbQ6j7PnVfrCm3uL3aMx47Z0wj//W976uDff8PatXDXXdCuHezcWexLiIiIiIgUSonTKaoY6cfeRabJihWFn7rqrJmYpgPLyj8tLt/Uv6y0YsVYFNu3F7Ndx0nQduJJo2QG1L0cLlgMjuKXLB8//kTilpPg5Xx+u3fDv/7lvZChiIiIiMipUuJ0CiwL/+o2GAbhHuomtK23li1JzbEAM89aJ+t4/+sS20Da5hKI1j9Vq/rXrkoVDyfWT4J1/wXzWJ6DFvz9OfzUt5jRweHD8OqrHqYKYk/hW7ECli0r9qUA+zo//ADjxsHtt8N779nTGEVERESkfFLidIoMw8fohiMSDIPzzweXq+DpjKMVaR6/DQNwOk505DDsvtvW28CaxA4lHbZHXbvalfS8iYqCCy8s5MTBLbD2Ac9vTFkEqx8sVnzr10N6uvc2Doc9LbK4EhKgfXvo3x9efhleew2uvx7q1oVFfux9LCIiIiJljxKnU2AYJ14eVW4GQK1acOON9pf6vA4eicntqzBu00GFcD+mA5YQpxMef9x7mwcfhMqVCznx2zDfF9jy/CnFlcPrZ30K7Tw5ehTOPx82Hx/sy8qyXwAHDsCAAbB1a/GuISIiIiKljxKnQEnflvvjCy/YRQ3gxOhT7aq7cTo8VGIAnA6TRjWC+w39+uthyhR7ZMkwICzM/l+XCx56CB7wNKh0YLXvzt3FSwLPOAOio723MU27bHpxzJxpr+PKLmRPX9O0k6jJk4t3DREREREpfZQ4BYr7WO5cvshI+OorWLAArrvOHrVwhYVjWt4//ix38QsqFNUtt0ByMrzxhj3CNGWKXXjhkUe8jOZYHhYelaCoKLj1Vs8xuFzQowd06lS863z2WcHRwbyys+GTT4p3DREREREpfQpZfSMlwlkh37d8w4Bzz7VfAN//Lw6H4TnhyMp2sXR7d3oHOMzCREfb0wv9FhYNmfsCFk+OCRPstU6zZ9tTC93uEx9xw4YwY0bxr3HokOcCFDkOHy7+dURERESkdNGIU6C4vX+7PrPhzySlxpPldhY4Z5oGDodJuKOUlHGr1NR3G6P4OXp4OHzxBcyaZRduaN4cuneHV16B1at9F7fwR5s2hRfzyOFwQIsWxb+OiIiIiJQuGnEKGMseuvAw76tahX9Y+mcDLMugTrXdZLudOAwTCwO36WTOqou5vOsXQY75FIUVVjHiJCW0v5LDAZdear8CYdQoeOklz+dNE8aMCcy1RUREROT0pcQpkLwtlqnchG7NlpCwty4zfvsXFSMzcBpuDh6JoWmt7XbSZHjYBOp0E90C9swHPBe7oHKToIVTHGecYa/nmjDB/uPLO23P4bBHuoYPD1l4IiLl1urV9lphy4Kzz4YuXUIdkYiUN0qcAsmyPFczaDMeFl5I/Rp/U7/Gp4W3aXBV4GIrSU1vgm1TvLdpdnNwYikBDz0EzZrBpEmwbp19LD4ebrsN7rrLrjYoIiLBkZQEV19t79OX8++RpmnvPzhzJtSvH9r4RKT8MCzL6zaup7W0tDRiYmI4OA2iK4Q6mkIMcXsedbIs+LYjpK4p/LwjAgYnQGStwMVXkn48D1IWFH4urCoMToSwikENqbgsC/butUuQx8baBSlERCR4MjKgY0fYsaPgNhEul722dc0aiIkJTXwicnrJzQ0OHiTa1z42p0DFIQLJ21S9zDRIXef5vHns+PS3UiBtG6Qs9Hw+6wAkfBy8eEqIYUDNmlC7tpImEZFQeP99+OOPwvfWy86GhAR4663gxyUi5ZMSp4Dx8dGuvhfwUfd61V0lFk1AbZ8KeNrkCfvclpeDFY2IiJQR773nu8277wY+DhER0BqnADK9r3FK/Mx3F0f+LtmQAmX/73hPAi04uD5Y0chJUlLsDY2//daedtijB4webZdzFxE5nf3zT+5e8oXKmVItIhIMSpxCJSst1BGUnMwDoY5APFi8GAYOtDftzakQuGIFvPACTJ0KI0aENj4REW+aNoXt2+0NzwvjcECT0lG0VUTKAE3VCyRPo02+zpVJ5e1+Q2/fPrjwwvxJE9hfQEwTbroJfvstdPGJiPgyapTnpAns/5aNGhW8eESkfFPiFEje5heElaESQOHVQh2BFOKtt+yKVKaHWZROJzz/fHBjEhEpikGD4OKLC6+15HBAnz5wVSnZuUNESj8lTiexrBOvYvM2qhTT2o/3l5JSblU7+m4T3SLwcUg+P/zgOWkCuyLV998HLx4RkaJyOOCzz+DeeyFvZeGKFeHOO2HOHLssuYhIMOg/Nycp0Rl0pum5JHn1szzve5SjYoMSDCaAYlr6bhNePfBxSD7eprcUpY2ISCiFh8Pjj8N//wtr19r/sNmunZ08iYgEkxKngDG87+N0YJXvLo7sLrlwAmm7H5to7F8W+Dgkn549YdEiz8mR02m3EREpDSpUgLPOCnUUIlKeaapeoFTt7P38/tW++3AfLZFQAu7QVt9t3EcCH4fkM2qU99zd7YaxY4MWjoiIiEippsQpUOr/y/v57IPBiSMYHGGhjkAKUa8evP++PbKUdw2A8/jSuQcfhAEDQhObiIiISGmjxClQ/vQxfc3MDk4cwVDrHN9tIuMCH4cUcNVVsHIlXHcd1KoF1arZydL338PEiaGOTkRERKT0KPdrnPYeqs57i69jy+4WREelcdVZM+jSeGXxOz601V7B6rHaREmU7TtNtH0Udn7svU2b+4MTixTQvr1dmlxERERETl25Tpym/nQTt779Mm7TidPhxsLg6a/voX+7b5l5+1VUjkov3gW8lugrQxvCRjeDVvfDpkmFn6/aGZqNCW5MIiIiIiIlqNxO1Zu9chD/9+ZUstzhmJaTLHc42W57rc6P6/vx7ykfFP8iXms9l6GP3n0UEj7BYzJ4cB2kbQ5qSCIiIiIiJakMfXsvmkc+n4DDKDyxcZsu5vx+CesT2wQwAi87k5Y2CZ9Cxp94nH5oZsKmp4MakoiIiIhISSqXidOu/bVZ9VdnTMvpsY3TkcXnyy8v3oWcnvsvU/5823ebnZ8EPAwRERERkUApl4lT+tFKPts4DMuvdp75WMPkCC9G36cZf/ZxMo8FPg4RERERkQApl4lTveqJVAjP8Nomyx1Gm7obinEVy66q50mVdr67MErL/kj+PEZlqIqgiIiIiJQ75TJxqhBxhOHnvI3TUfheSgYm0VFpXNltZvEu5K2qXq2zfb8/onrxrh8sMa18t3FWCHwcIiIiIiIBUi4TJ4D/XTmeJrW2F0ienI5sHA6Td0dfT4WII8W7iLcRp91f+37/0T3Fu36wNBnpu02jYYGPQ0REREQkQMpt4lSt0gGWPNKdsQMmEx11ELBHmvqdMZeF/z2XS7vMDmwAGQl+NCol09uqnOG7TaXGgY9DRERERCRAyvUGuNUqHeCZoXcz6er72XuoBpUi04u/6W0uh/epepa3PZ5KGb+q6n0Ire8KeCgiIiIiIoFwWow4TZkyhYYNGxIZGUm3bt1YtmxZUK8f5somvmpyCSZNAKb3qXqnx0dfMpJ+9N3mwJrAxyEiIiIiEiAh//b+ySefMG7cOCZMmMCqVato3749/fv3JyUlJdShFZ+3ESdnaamY54e0TX40KkMb/oqIiIhIuRPyxOm5557jpptu4oYbbqB169a89tprVKhQgbfeeivUoRWftxEnV3H2iDrNuI+GOgIRERERkYAKaeKUmZnJypUr6du3b+4xh8NB3759WbJkSYH2x44dIy0tLd/rtOWs6H3EqWoH//ooDYyQ598iIiIiIgEV0m+8e/fuxe12Exsbm+94bGwsycnJBdpPmjSJmJiY3Fe9evWCFWoROaCxj/Lbre713U3TUSUTTqBVauS7jVGu65CIiIiISClXqoYK7r//fg4ePJj7SkxMLH6nzsoQVsX/L/aGE+r+C6p3s38uwAGuitDqP977qdUL6l7u+XxkPLR5wL+YQq3LS77b1Lsi8HGIiIiIiARISBOnGjVq4HQ62bMn/0ave/bsIS4urkD7iIgIoqOj872KpVIzuDwJBq6ChteC43jBBsMJMW0Bw/7ZcJ1IrOIHQI+34bxvIbbPifY55yvUhT4/+d63yDCg50fQ4k4wIvKfi+8PA5ZBZI3i3V+wxF8A8QM9nw+vAWdND148IiIiIiIlzLAsrzWzA65bt2507dqVl16yRy1M06R+/frceuut3HfffV7fm5aWRkxMDAenQXQFLw0rNobImpB9FHBDtW7Q7hGoWCd/u+zDcGwfhFeFsEpweJe9R1H6dvtYgyFQ/cz870ldB7u/AXcmVOtsJz2OwkaivMhMhZRFYGZCtU6lc7NYy4K142Hzc+A+cvygA+pcAj3esz9PEREREZEAyc0NDh4s/gBLIUKeOH3yyScMGzaM119/na5duzJ58mRmzJjB5s2bC6x9OlnBxOn4yE/l5tDpWajZ3R7ZcZWSIgtlgemGQ1vsJLByM332IiIiIhIUgU6cQr5i/+qrr+aff/7hoYceIjk5mQ4dOvDdd9/5TJryueogBODDkVPgcEJM61BHISIiIiJSokI+4lQcgc4qRURERESkdAh0blCqquqJiIiIiIiEghInERERERERH5Q4iYiIiIiI+KDESURERERExAclTiIiIiIiIj4ocRIREREREfFBiZOIiIiIiIgPSpxERERERER8UOIkIiIiIiLigxInERERERERH5Q4iYiIiIiI+KDESURERERExAclTiIiIiIiIj64Qh1AcViWBUBaWlqIIxERERERkVDKyQlycoSSVqoTp3379gFQr169EEciIiIiIiKng3379hETE1Pi/ZbqxKlatWoAJCQkBOTDEcmRlpZGvXr1SExMJDo6OtThSBmmZ02CRc+aBIueNQmWgwcPUr9+/dwcoaSV6sTJ4bCXaMXExOj/iBIU0dHRetYkKPSsSbDoWZNg0bMmwZKTI5R4vwHpVUREREREpAxR4iQiIiIiIuJDqU6cIiIimDBhAhEREaEORco4PWsSLHrWJFj0rEmw6FmTYAn0s2ZYgarXJyIiIiIiUkaU6hEnERERERGRYFDiJCIiIiIi4oMSJxERERERER+UOImIiIiIiPhQqhOnKVOm0LBhQyIjI+nWrRvLli0LdUhSik2aNIkzzzyTypUrU6tWLQYPHsyWLVvytTl69ChjxoyhevXqVKpUiSuuuII9e/aEKGIpK5544gkMw2Ds2LG5x/SsSUnZtWsX1157LdWrVycqKoq2bduyYsWK3POWZfHQQw8RHx9PVFQUffv2Zdu2bSGMWEojt9vN+PHjadSoEVFRUTRp0oT//e9/5K1BpmdNTtWiRYsYNGgQtWvXxjAMZs2ale+8P8/W/v37GTp0KNHR0VSpUoURI0aQnp5epDhKbeL0ySefMG7cOCZMmMCqVato3749/fv3JyUlJdShSSm1cOFCxowZw2+//cbcuXPJysriggsuICMjI7fNnXfeyVdffcXMmTNZuHAhu3fv5vLLLw9h1FLaLV++nNdff5127drlO65nTUrCgQMH6NmzJ2FhYXz77bds3LiRZ599lqpVq+a2eeqpp3jxxRd57bXXWLp0KRUrVqR///4cPXo0hJFLafPkk0/y6quv8vLLL7Np0yaefPJJnnrqKV566aXcNnrW5FRlZGTQvn17pkyZUuh5f56toUOHsmHDBubOncucOXNYtGgRo0aNKlogVinVtWtXa8yYMbm/u91uq3bt2takSZNCGJWUJSkpKRZgLVy40LIsy0pNTbXCwsKsmTNn5rbZtGmTBVhLliwJVZhSih06dMhq1qyZNXfuXOvcc8+17rjjDsuy9KxJybn33nutXr16eTxvmqYVFxdnPf3007nHUlNTrYiICOujjz4KRohSRlx00UXWjTfemO/Y5Zdfbg0dOtSyLD1rUnIA64svvsj93Z9na+PGjRZgLV++PLfNt99+axmGYe3atcvva5fKEafMzExWrlxJ3759c485HA769u3LkiVLQhiZlCUHDx4EoFq1agCsXLmSrKysfM9dy5YtqV+/vp47OSVjxozhoosuyvdMgZ41KTmzZ8+mS5cuXHnlldSqVYuOHTsybdq03PM7duwgOTk537MWExNDt27d9KxJkfTo0YN58+axdetWANasWcPixYsZOHAgoGdNAsefZ2vJkiVUqVKFLl265Lbp27cvDoeDpUuX+n0tV8mFHTx79+7F7XYTGxub73hsbCybN28OUVRSlpimydixY+nZsydnnHEGAMnJyYSHh1OlSpV8bWNjY0lOTg5BlFKaffzxx6xatYrly5cXOKdnTUrKn3/+yauvvsq4ceN44IEHWL58Obfffjvh4eEMGzYs93kq7O9TPWtSFPfddx9paWm0bNkSp9OJ2+3mscceY+jQoQB61iRg/Hm2kpOTqVWrVr7zLpeLatWqFen5K5WJk0igjRkzhvXr17N48eJQhyJlUGJiInfccQdz584lMjIy1OFIGWaaJl26dOHxxx8HoGPHjqxfv57XXnuNYcOGhTg6KUtmzJjBBx98wIcffkibNm1YvXo1Y8eOpXbt2nrWpMwolVP1atSogdPpLFBhas+ePcTFxYUoKikrbr31VubMmcP8+fOpW7du7vG4uDgyMzNJTU3N117PnRTVypUrSUlJoVOnTrhcLlwuFwsXLuTFF1/E5XIRGxurZ01KRHx8PK1bt853rFWrViQkJADkPk/6+1SK6+677+a+++5jyJAhtG3bluuuu44777yTSZMmAXrWJHD8ebbi4uIKFJDLzs5m//79RXr+SmXiFB4eTufOnZk3b17uMdM0mTdvHt27dw9hZFKaWZbFrbfeyhdffMFPP/1Eo0aN8p3v3LkzYWFh+Z67LVu2kJCQoOdOiqRPnz6sW7eO1atX5766dOnC0KFDc3/WsyYloWfPngW2Vdi6dSsNGjQAoFGjRsTFxeV71tLS0li6dKmeNSmSw4cP43Dk/1rpdDoxTRPQsyaB48+z1b17d1JTU1m5cmVum59++gnTNOnWrZv/Fyt2aYsQ+fjjj62IiAjr7bfftjZu3GiNGjXKqlKlipWcnBzq0KSUuvnmm62YmBhrwYIFVlJSUu7r8OHDuW1Gjx5t1a9f3/rpp5+sFStWWN27d7e6d+8ewqilrMhbVc+y9KxJyVi2bJnlcrmsxx57zNq2bZv1wQcfWBUqVLDef//93DZPPPGEVaVKFevLL7+01q5da1166aVWo0aNrCNHjoQwcilthg0bZtWpU8eaM2eOtWPHDuvzzz+3atSoYd1zzz25bfSsyak6dOiQ9fvvv1u///67BVjPPfec9fvvv1s7d+60LMu/Z2vAgAFWx44draVLl1qLFy+2mjVrZl1zzTVFiqPUJk6WZVkvvfSSVb9+fSs8PNzq2rWr9dtvv4U6JCnFgEJf06dPz21z5MgR65ZbbrGqVq1qVahQwbrsssuspKSk0AUtZcbJiZOeNSkpX331lXXGGWdYERERVsuWLa2pU6fmO2+apjV+/HgrNjbWioiIsPr06WNt2bIlRNFKaZWWlmbdcccdVv369a3IyEircePG1oMPPmgdO3Yst42eNTlV8+fPL/Q72rBhwyzL8u/Z2rdvn3XNNddYlSpVsqKjo60bbrjBOnToUJHiMCwrz5bOIiIiIiIiUkCpXOMkIiIiIiISTEqcREREREREfFDiJCIiIiIi4oMSJxERERERER+UOImIiIiIiPigxElERERERMQHJU4iIiIiIiI+KHESERERERHxQYmTiIh49Ndff2EYBqtXry5WPw8//DAdOnTI/X348OEMHjy4WH2WlOTkZPr160fFihWpUqWKx2MiIlK+KXESESmnhg8fjmEYua/q1aszYMAA1q5dm9umXr16JCUlccYZZ5TotV944QXefvvtEu2zMCffY85rwIABuW2ef/55kpKSWL16NVu3bvV4rLgaNmzI5MmTS6QvEREJPiVOIiLl2IABA0hKSiIpKYl58+bhcrm4+OKLc887nU7i4uJwuVwlet2YmJigjeTkvcec10cffZR7fvv27XTu3JlmzZpRq1Ytj8dERKR8U+IkIlKORUREEBcXR1xcHB06dOC+++4jMTGRf/75Byg4VW/BggUYhsG8efPo0qULFSpUoEePHmzZsiVfv0888QSxsbFUrlyZESNGcPTo0XznT56q17t3b26//XbuueceqlWrRlxcHA8//HC+92zevJlevXoRGRlJ69at+fHHHzEMg1mzZvl9jzmvqlWrAvYo0Geffca7776LYRgMHz680GMAqampjBw5kpo1axIdHc3555/PmjVr8l3rq6++4swzzyQyMpIaNWpw2WWX5d7fzp07ufPOO3NHvQB27tzJoEGDqFq1KhUrVqRNmzZ88803Xu9HRERCQ4mTiIgAkJ6ezvvvv0/Tpk2pXr2617YPPvggzz77LCtWrMDlcnHjjTfmnpsxYwYPP/wwjz/+OCtWrCA+Pp5XXnnF5/XfeecdKlasyNKlS3nqqad49NFHmTt3LgBut5vBgwdToUIFli5dytSpU3nwwQeLd8PA8uXLGTBgAFdddRVJSUm88MILhR4DuPLKK0lJSeHbb79l5cqVdOrUiT59+rB//34Avv76ay677DIuvPBCfv/9d+bNm0fXrl0B+Pzzz6lbty6PPvpo7qgXwJgxYzh27BiLFi1i3bp1PPnkk1SqVKnY9yUiIiWvZOdeiIhIqTJnzpzcL+oZGRnEx8czZ84cHA7v/6722GOPce655wJw3333cdFFF3H06FEiIyOZPHkyI0aMYMSIEQBMnDiRH3/8scCo08natWvHhAkTAGjWrBkvv/wy8+bNo1+/fsydO5ft27ezYMEC4uLicmPo169fke4xxwMPPMADDzxAzZo1iYiIICoqKrdfoMCxxYsXs2zZMlJSUoiIiADgmWeeYdasWXz66aeMGjWKxx57jCFDhvDII4/k9tO+fXsAqlWrhtPppHLlyvmuk5CQwBVXXEHbtm0BaNy4sc/7ERGR0NCIk4hIOXbeeeexevVqVq9ezbJly+jfvz8DBw5k586dXt/Xrl273J/j4+MBSElJAWDTpk1069YtX/vu3bv7jCVvnzn95vS5ZcsW6tWrly/pyBnN8SXvPea8Ro8e7dd7c6xZs4b09HSqV69OpUqVcl87duxg+/btAKxevZo+ffoUqd/bb7+diRMn0rNnTyZMmJCvMIeIiJxeNOIkIlKOVaxYkaZNm+b+/sYbbxATE8O0adOYOHGix/eFhYXl/pyzXsc0zWLFkrfPnH6L2ycUvMdTkZ6eTnx8PAsWLChwLqfIRVRUVJH7HTlyJP379+frr7/mhx9+YNKkSTz77LPcdtttxYpXRERKnkacREQkl2EYOBwOjhw5csp9tGrViqVLl+Y79ttvvxUrrhYtWpCYmMiePXtyjy1fvrxYfRZFp06dSE5OxuVy0bRp03yvGjVqAPaI2bx58zz2ER4ejtvtLnC8Xr16jB49ms8//5z//Oc/TJs2LWD3ISIip04jTiIi5dixY8dITk4G4MCBA7z88sukp6czaNCgU+7zjjvuYPjw4XTp0oWePXvywQcfsGHDhmKt3+nXrx9NmjRh2LBhPPXUUxw6dIj//ve/wIkRL0/y3mMOl8uVm/D4o2/fvnTv3p3Bgwfz1FNP0bx5c3bv3p1bEKJLly5MmDCBPn360KRJE4YMGUJ2djbffPMN9957L2BX8Fu0aBFDhgwhIiKCGjVqMHbsWAYOHEjz5s05cOAA8+fPp1WrVkX8dEREJBg04iQiUo599913xMfHEx8fT7du3Vi+fDkzZ86kd+/ep9zn1Vdfzfjx47nnnnvo3LkzO3fu5Oabby5WnE6nk1mzZpGens6ZZ57JyJEjc6vqRUZGen1v3nvMefXq1atI1zcMg2+++YZzzjmHG264gebNmzNkyBB27txJbGwsYJccnzlzJrNnz6ZDhw6cf/75LFu2LLePRx99lL/++osmTZpQs2ZNwK4WOGbMGFq1asWAAQNo3ry5XxUIRUQk+AzLsqxQByEiIlJUv/zyC7169eKPP/6gSZMmoQ5HRETKOCVOIiJSKnzxxRdUqlSJZs2a8ccff3DHHXdQtWpVFi9eHOrQRESkHNAaJxERKRUOHTrEvffeS0JCAjVq1KBv3748++yzoQ5LRETKCY04iYiIiIiI+KDiECIiIiIiIj4ocRIREREREfFBiZOIiIiIiIgPSpxERERERER8UOIkIiIiIiLigxInERERERERH5Q4iYiIiIiI+KDESURERERExIf/B0IdHYpIQ0ubAAAAAElFTkSuQmCC", "text/plain": [ "
" ] @@ -568,8 +576,8 @@ "perturbation_effects_tf_influenced = generate_perturbation_effects(\n", " binding_data_tensor, \n", " max_mean_adjustment=3.0, # try 0.1, 3.0, and 10.0\n", - " signal_mean=5.0, # try 3.0, 5.0, or 10.0\n", - " noise_mean=0.0, # try adjusting this\n", + " bound_mean=5.0, # try 3.0, 5.0, or 10.0\n", + " unbound_mean=0.0, # try adjusting this\n", ")\n", "perturbation_pvalue_tf_influenced = torch.zeros_like(perturbation_effects_tf_influenced)\n", "for col_idx in range(perturbation_effects_tf_influenced.shape[1]):\n", @@ -592,12 +600,12 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 19, "metadata": {}, "outputs": [ { "data": { - "image/png": "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VapUcfi9cdfMmTNx//599O7dG2FhYciRIwdu3boFABg9ejQURcE777yDK1euYOLEiWjatCn27NmDiIgIAMDixYtx9+5d9OnTBzlz5sSOHTvw9ddf4/z581i8eDEA4LXXXsPFixexevVqzJ0712lMBw8eRP369ZE1a1YMHToUISEh+Pbbb9GoUSNs3LgRtWrVstp+wIAByJ49O0aMGIEzZ85g4sSJ6N+/PxYuXOjS9+BReh8QUQBTiYj8bObMmSqANLewsDB11qxZabYHoI4YMSLp/ogRI1QAavfu3a22e+6559ScOXMm3d+zZ48KQO3bt6/Vdi+99FKafVpiOn36dNJjRYoUUQGof//9d9JjV65cUcPCwtTBgwcnPTZgwABVURR19+7dSY9dv35dzZEjR5p92mL5emzdypQpk+Z70a9fP6vHTp8+rQJQP//8c6vHe/TooebPn1+9du2a1eMdO3ZUo6Ki1Lt376qqqqozZsxQAagTJkxIE5vZbFZVVVWvXr2a5numqqp68+ZNm8d2Re3atdXq1atbPbZjxw4VgDpnzhxVVVV19+7dKgB18eLFbu+/S5cuaubMmdWrV6+qV69eVU+cOKF++umnqqIoauXKlVVVVdW5c+eqOp1O3bRpk9Vrp02bpgJQt2zZkvQYAFWn06kHDx602tbe90ZVVbVhw4Zqw4YNbcZWpEiRpPuWn2HWrFnVK1euWG27fv16FYBasGBBNT4+PunxRYsWqQDUr776Kukxy880pTFjxqiKoqhnz55Neqxfv36qvVOA1F9L27Zt1dDQUPXkyZNJj128eFGNjIxUGzRokPSY5T3UtGnTpN8bVVXVN998U9Xr9eqtW7dsHs/iUX0fEFFg4nQ7ItLMlClTsHr1aqxevRrz5s1D48aN0bNnTyxdutSl17/++utW9+vXr4/r168jPj4egCxOB4CBAwdabWe5cuyK8uXLo379+kn3c+fOjTJlyuDUqVNJj61YsQK1a9dG1apVkx7LkSMHXn75ZZePAwA///xz0vfDcps5c6Zb+7BQVRU///wzWrVqBVVVce3ataRbs2bNEBcXh127diUdN1euXBgwYECa/aSchmVLREQEQkNDsWHDhqTpca7q0KED/vvvv6SRHQBYuHAhwsLC0KZNGwBIGilauXJlmqmUrrhz5w5y586N3Llzo2TJknj33XdRu3Zt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GHXSpEkqAPXy5csOvx+OSh8DUNevX2/1vXC19LGqqmpsbKzar18/NTo6Wg0JCVHz5cunPvnkk+r06dOttrt796763nvvqcWKFUvarn379lZln7du3apWr15dDQ0NTfr+Xbt2Te3Xr59atmxZNXPmzGpUVJRaq1YtddGiRQ6/5pS+++47FYAaGRmp3rt3z+q5U6dOqd27d1dLlCihhoeHqzly5FAbN26srlmzxul+LSXAnXn48KH62WefqRUqVFDDwsLU7Nmzq9WrV1c/+ugjNS4uLmk7W997C1vfG4t58+apxYsXV0NDQ9WqVauqK1eutFsC3NbP0FICfMGCBerw4cPVPHnyqBEREWqLFi2synqrqqoeOnRIbdq0qZolSxY1V65caq9evdS9e/eqANSZM2cmbWc0GtUBAwaouXPnVhVFsSoHnjp+VVXVXbt2qc2aNVOzZMmiZsqUSW3cuLG6detWq20s76GdO3fajD/l77Etj/r7gIgCi6KqAb76mIgoSA0aNAjffvstEhIS7C5mJyIiosDDNUlERF5w7949q/vXr1/H3LlzUa9ePSZIREREQYZrkoiIvKB27dpo1KgRypUrh9jYWPzwww+Ij4/HBx98oHVoRERE5CYmSUREXvDss89iyZIlmD59OhRFwWOPPYYffvgBDRo00Do0IiIichPXJBEREREREaXANUlEREREREQpMEkiIiIiIiJKIcOvSTKbzbh48SIiIyNdbuhIREREREQZj6qquH37NgoUKACdzv54UYZPki5evIjo6GitwyAiIiIiogARExODQoUK2X0+wydJkZGRAOQbkTVrVo2jISIiIiIircTHxyM6OjopR7AnwydJlil2WbNmZZJEREREREROl+GwcAMREREREVEKTJKIiIiIiIhSYJJERERERESUQoZfk0RERERE5C5VVWE0GmEymbQOhdyg1+thMBjS3fqHSRIRERERUQoPHz7EpUuXcPfuXa1DIQ9kypQJ+fPnR2hoqMf7YJJERERERPR/ZrMZp0+fhl6vR4ECBRAaGpruUQnyD1VV8fDhQ1y9ehWnT59GqVKlHDaMdYRJEhERERHR/z18+BBmsxnR0dHIlCmT1uGQmyIiIhASEoKzZ8/i4cOHCA8P92g/LNxARERERJSKpyMQpD1v/Oz40yciIiIi8oHERMf3KXBxuh0RERERkRcZ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O896hMsshMOrweGCxhdZv4yHRgffL+UFWZC9FZxhEN3N/wWaiIiIiIgNdmuDoC+SAJ5//nmeeOIJ0tPT6dmzJ88++yz9+/e39d6gKJJERERERCTgalWRVBUqkkREREREBOzXBkG9JklERERERKS6qUgSEREREREpRUWSiIiIiIhIKSqSRERERERESlGRJCIiIiIiUoqKJBERERERkVJUJImIiIiIiJSiIklERERERKQUFUkiIiIiIiKlqEgSEREREREpRUWSiIiIiIhIKSqSRERERERESlGRJCIiIiIiUoor0An4m2maAGRnZwc4ExERERERCaTimqC4RqhIrS+Sjh07BkDz5s0DnImIiIiIiASDY8eOER0dXeF5w/RWRtVwHo+HAwcOEBUVhWEYAc0lOzub5s2bs2/fPho0aBDQXGor3ePqofvsf7rH/qd77H+6x9VD99n/dI/9r7rusWmaHDt2jKSkJByOilce1fqZJIfDQbNmzQKdRhkNGjTQv2B+pntcPXSf/U/32P90j/1P97h66D77n+6x/1XHPa5sBqmYGjeIiIiIiIiUoiJJRERERESkFBVJ1SgsLIypU6cSFhYW6FRqLd3j6qH77H+6x/6ne+x/usfVQ/fZ/3SP/S/Y7nGtb9wgIiIiIiJyJjSTJCIiIiIiUoqKJBERERERkVJUJImIiIiIiJSiIklERERERKQUFUnV6IUXXqBVq1aEh4fTv39/Vq1aFeiUaqylS5dy5ZVXkpSUhGEYzJ8/v8x50zT529/+RmJiIhEREQwdOpTt27cHJtkaatq0afTt25eoqCiaNGnC1VdfzdatW8vE5OXlkZycTGxsLPXr1+faa6/l4MGDAcq45pk1axbdu3cv2ThvwIABfPbZZyXndX99b/r06RiGwaRJk0qO6T5X3UMPPYRhGGVenTp1Kjmve+wbP//8MzfccAOxsbFERERwzjnnsGbNmpLz+ruvalq1anXa99gwDJKTkwF9j33B7Xbz4IMP0rp1ayIiImjbti1///vfKd1HLli+xyqSqsm7777LXXfdxdSpU1m3bh09evRg+PDhZGRkBDq1Gik3N5cePXrwwgsvlHt+xowZPPvss7z44ousXLmSevXqMXz4cPLy8qo505pryZIlJCcns2LFChYtWkRhYSGXXnopubm5JTGTJ09mwYIFvPfeeyxZsoQDBw4w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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0kAAAIjCAYAAADWYVDIAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAADTgklEQVR4nOzdd3hT5RcH8O9N0gWUsnfZeyMgsocoIlNEAQcblCmKILhABUEURARBVLYgQ8DNHjJkKHtvKKvsljKb5P7+OL+0TZvdJDcp38/z5GmT3Nx7OtLec9/3PUdRVVUFERERERERAQB0WgdAREREREQUSJgkERERERERpcAkiYiIiIiIKAUmSURERERERCkwSSIiIiIiIkqBSRIREREREVEKTJKIiIiIiIhSYJJERERERESUApMkIiIiIiKiFJgkEVHAUxQFI0eO9Ok+Z82aBUVRcObMGa8ex9tiY2PRvn175MyZE4qiYOLEiQCA48eP4+mnn0ZUVBQURcHy5cs1jZO8Z8OGDVAUBUuWLPHL8XzxfvM2vg+IyNeYJBGR31kSkpS3PHnyoHHjxvjrr7+0Ds/vRo4cmeb7kfJ2+fLlpG3ffPNNrFy5EsOHD8fcuXPxzDPPAAC6dOmC/fv3Y/To0Zg7dy5q1Kjh1Rjv3r2LkSNHYsOGDV7dry917drV6vuYNWtWVKlSBePHj8eDBw+8dpxg/N78+eefAZcI8X1ARIHEoHUARPTo+vjjj1GsWDGoqorY2FjMmjULzz77LH777Te0bNkyabt79+7BYPDtn6tXX30VHTt2RFhYmE+P48jUqVORJUuWNI9ny5Yt6fN169ahTZs2ePvtt5Meu3fvHv755x+899576N+/v09iu3v3Lj766CMAQKNGjXxyDF8ICwvD999/DwC4desWfv75Z7z99tvYuXMnfvrpJ68cIxi/N3/++SemTJliM1Hyx/vNEb4PiCgQMEkiIs00b97c6kpvjx49kDdvXixYsMAqSQoPD/d5LHq9Hnq93ufHcaR9+/bIlSuXw22uXLlidbIIAFevXgWANI8TYDAY8MorryTd79u3L2rVqoWFCxdiwoQJKFCggMf7NpvNePjwoTfCtMloNMJsNvts//b44/3mCN8HRBQION2OiAJGtmzZEBERkeYqduo1EpZpOSdOnEDXrl2RLVs2REVFoVu3brh7967Vax88eIA333wTuXPnRmRkJFq3bo3z58+nObatNUlFixZFy5YtsXnzZjz++OMIDw9H8eLFMWfOnDSv37dvHxo2bIiIiAgUKlQIo0aNwsyZM722zskSn6qqmDJlStIUpJEjR6JIkSIAgCFDhkBRFBQtWjTpdRcuXED37t2RN29ehIWFoUKFCpgxY0aa/d+/fx8jR45E6dKlER4ejvz586Ndu3Y4efIkzpw5g9y5cwMAPvroI6tjA8Dly5fRrVs3FCpUCGFhYcifPz/atGnj8Ov+4osvoCgKzp49m+a54cOHIzQ0FDdv3gQg60yef/555MuXD+Hh4ShUqBA6duyIuLg4t7+POp0uaQTAEt+DBw8wYsQIlCxZEmFhYYiOjsbQoUPTTMlTFAX9+/fHjz/+iAoVKiAsLAzTpk1z+L1p1KiRzRGHrl27Wv2czpw5A0VR8MUXX2DixIkoUaIEwsLCcOjQoaRtTCYT3n33XeTLlw+ZM2dG69atERMTY7XfTZs24YUXXkDhwoWTvpY333wT9+7dszr2lClTkr4myy3l15l6hGn37t1o3rw5smbNiixZsuDJJ5/Etm3brLax/I5u2bIFb731FnLnzo3MmTPjueeeS0pg0iujvQ+IKHBxJImINBMXF4dr165BVVVcuXIFX3/9NRISEqyu/Dvy4osvolixYhgzZgx27dqF77//Hnny5MFnn32WtE3Pnj0xb948vPTSS6hTpw7WrVuHFi1auBzjiRMn0L59e/To0QNdunTBjBkz0LVrV1SvXh0VKlQAICdgjRs3hqIoGD58ODJnzozvv//e7al7N27cSPOYwWBAtmzZ0KBBA8ydOxevvvoqnnrqKXTu3BkAULlyZWTLlg1vvvkmOnXqhGeffTZpqlJsbCyeeOKJpJP73Llz46+//kKPHj0QHx+PQYMGAZCT75YtW2Lt2rXo2LEj3njjDdy+fRurV6/GgQMH0LRpU0ydOhV9+vTBc889h3bt2iUdGwCef/55HDx4EAMGDEDRokVx5coVrF69GufOnbM6UU3pxRdfxNChQ7Fo0SIMGTLE6rlFixbh6aefRvbs2fHw4UM0a9YMDx48wIABA5AvXz5cuHABv//+O27duoWoqCi3vscAcPLkSQBAzpw5YTab0bp1a2zevBm9e/dGuXLlsH//fnz55Zc4duxYmoX/69atw6JFi9C/f3/kypULVapUcfi9cdfMmTNx//599O7dG2FhYciRIwdu3boFABg9ejQURcE777yDK1euYOLEiWjatCn27NmDiIgIAMDixYtx9+5d9OnTBzlz5sSOHTvw9ddf4/z581i8eDEA4LXXXsPFixexevVqzJ0712lMBw8eRP369ZE1a1YMHToUISEh+Pbbb9GoUSNs3LgRtWrVstp+wIAByJ49O0aMGIEzZ85g4sSJ6N+/PxYuXOjS9+BReh8QUQBTiYj8bObMmSqANLewsDB11qxZabYHoI4YMSLp/ogRI1QAavfu3a22e+6559ScOXMm3d+zZ48KQO3bt6/Vdi+99FKafVpiOn36dNJjRYoUUQGof//9d9JjV65cUcPCwtTBgwcnPTZgwABVURR19+7dSY9dv35dzZEjR5p92mL5emzdypQpk+Z70a9fP6vHTp8+rQJQP//8c6vHe/TooebPn1+9du2a1eMdO3ZUo6Ki1Lt376qqqqozZsxQAagTJkxIE5vZbFZVVVWvXr2a5numqqp68+ZNm8d2Re3atdXq1atbPbZjxw4VgDpnzhxVVVV19+7dKgB18eLFbu+/S5cuaubMmdWrV6+qV69eVU+cOKF++umnqqIoauXKlVVVVdW5c+eqOp1O3bRpk9Vrp02bpgJQt2zZkvQYAFWn06kHDx602tbe90ZVVbVhw4Zqw4YNbcZWpEiRpPuWn2HWrFnVK1euWG27fv16FYBasGBBNT4+PunxRYsWqQDUr776Kukxy880pTFjxqiKoqhnz55Neqxfv36qvVOA1F9L27Zt1dDQUPXkyZNJj128eFGNjIxUGzRokPSY5T3UtGnTpN8bVVXVN998U9Xr9eqtW7dsHs/iUX0fEFFg4nQ7ItLMlClTsHr1aqxevRrz5s1D48aN0bNnTyxdutSl17/++utW9+vXr4/r168jPj4egCxOB4CBAwdabWe5cuyK8uXLo379+kn3c+fOjTJlyuDUqVNJj61YsQK1a9dG1apVkx7LkSMHXn75ZZePAwA///xz0vfDcps5c6Zb+7BQVRU///wzWrVqBVVVce3ataRbs2bNEBcXh127diUdN1euXBgwYECa/aSchmVLREQEQkNDsWHDhqTpca7q0KED/vvvv6SRHQBYuHAhwsLC0KZNGwBIGilauXJlmqmUrrhz5w5y586N3Llzo2TJknj33XdRu3Zt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GHXSpEkqAPXy5csOvx+OSh8DUNevX2/1vXC19LGqqmpsbKzar18/NTo6Wg0JCVHz5cunPvnkk+r06dOttrt796763nvvqcWKFUvarn379lZln7du3apWr15dDQ0NTfr+Xbt2Te3Xr59atmxZNXPmzGpUVJRaq1YtddGiRQ6/5pS+++47FYAaGRmp3rt3z+q5U6dOqd27d1dLlCihhoeHqzly5FAbN26srlmzxul+LSXAnXn48KH62WefqRUqVFDDwsLU7Nmzq9WrV1c/+ugjNS4uLmk7W997C1vfG4t58+apxYsXV0NDQ9WqVauqK1eutFsC3NbP0FICfMGCBerw4cPVPHnyqBEREWqLFi2synqrqqoeOnRIbdq0qZolSxY1V65caq9evdS9e/eqANSZM2cmbWc0GtUBAwaouXPnVhVFsSoHnjp+VVXVXbt2qc2aNVOzZMmiZsqUSW3cuLG6detWq20s76GdO3fajD/l77Etj/r7gIgCi6KqAb76mIgoSA0aNAjffvstEhIS7C5mJyIiosDDNUlERF5w7949q/vXr1/H3LlzUa9ePSZIREREQYZrkoiIvKB27dpo1KgRypUrh9jYWPzwww+Ij4/HBx98oHVoRERE5CYmSUREXvDss89iyZIlmD59OhRFwWOPPYYffvgBDRo00Do0IiIichPXJBEREREREaXANUlEREREREQpMEkiIiIiIiJKIcOvSTKbzbh48SIiIyNdbuhIREREREQZj6qquH37NgoUKACdzv54UYZPki5evIjo6GitwyAiIiIiogARExODQoUK2X0+wydJkZGRAOQbkTVrVo2jISIiIiIircTHxyM6OjopR7AnwydJlil2WbNmZZJEREREREROl+GwcAMREREREVEKTJKIiIiIiIhSYJJERERERESUQoZfk0RERERE5C5VVWE0GmEymbQOhdyg1+thMBjS3fqHSRIRERERUQoPHz7EpUuXcPfuXa1DIQ9kypQJ+fPnR2hoqMf7YJJERERERPR/ZrMZp0+fhl6vR4ECBRAaGpruUQnyD1VV8fDhQ1y9ehWnT59GqVKlHDaMdYRJEhERERHR/z18+BBmsxnR0dHIlCmT1uGQmyIiIhASEoKzZ8/i4cOHCA8P92g/LNxARERERJSKpyMQpD1v/Oz40yciIiIi8oHERMf3KXBxuh0RERERkRcZ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O896hMsshMOrweGCxhdZv4yHRgffL+UFWZC9FZxhEN3N/wWaiIiIiIgNdmuDoC+SAJ5//nmeeOIJ0tPT6dmzJ88++yz9+/e39d6gKJJERERERCTgalWRVBUqkkREREREBOzXBkG9JklERERERKS6qUgSEREREREpRUWSiIiIiIhIKSqSRERERERESlGRJCIiIiIiUoqKJBERERERkVJUJImIiIiIiJSiIklERERERKQUFUkiIiIiIiKlqEgSEREREREpRUWSiIiIiIhIKSqSRERERERESlGRJCIiIiIiUoor0An4m2maAGRnZwc4ExERERERCaTimqC4RqhIrS+Sjh07BkDz5s0DnImIiIiIiASDY8eOER0dXeF5w/RWRtVwHo+HAwcOEBUVhWEYAc0lOzub5s2bs2/fPho0aBDQXGor3ePqofvsf7rH/qd77H+6x9VD99n/dI/9r7rusWmaHDt2jKSkJByOilce1fqZJIfDQbNmzQKdRhkNGjTQv2B+pntcPXSf/U/32P90j/1P97h66D77n+6x/1XHPa5sBqmYGjeIiIiIiIiUoiJJRERERESkFBVJ1SgsLIypU6cSFhYW6FRqLd3j6qH77H+6x/6ne+x/usfVQ/fZ/3SP/S/Y7nGtb9wgIiIiIiJyJjSTJCIiIiIiUoqKJBERERERkVJUJImIiIiIiJSiIklERERERKQUFUnV6IUXXqBVq1aEh4fTv39/Vq1aFeiUaqylS5dy5ZVXkpSUhGEYzJ8/v8x50zT529/+RmJiIhEREQwdOpTt27cHJtkaatq0afTt25eoqCiaNGnC1VdfzdatW8vE5OXlkZycTGxsLPXr1+faa6/l4MGDAcq45pk1axbdu3cv2ThvwIABfPbZZyXndX99b/r06RiGwaRJk0qO6T5X3UMPPYRhGGVenTp1Kjmve+wbP//8MzfccAOxsbFERERwzjnnsGbNmpLz+ruvalq1anXa99gwDJKTkwF9j33B7Xbz4IMP0rp1ayIiImjbti1///vfKd1HLli+xyqSqsm7777LXXfdxdSpU1m3bh09evRg+PDhZGRkBDq1Gik3N5cePXrwwgsvlHt+xowZPPvss7z44ousXLmSevXqMXz4cPLy8qo505pryZIlJCcns2LFChYtWkRhYSGXXnopubm5JTGTJ09mwYIFvPfeeyxZsoQDBw4w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", "text/plain": [ "
" ] @@ -607,7 +615,7 @@ } ], "source": [ - "# Plotting. Note that the 'noise' group effects are still range from 0 to 3\n", + "# Plotting. Note that the 'unbound' group effects are still range from 0 to 3\n", "\n", "plt.figure(figsize=(10, 6))\n", "plt.scatter(final_data_tensor_tf_influenced[:, :, 1].flatten(), final_data_tensor_tf_influenced[:, :, 3].flatten().abs(), c=['orange' if x == 0 else 'blue' for x in labels])\n", @@ -622,11 +630,25 @@ "\n", "plt.show()" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { "kernelspec": { - "display_name": ".venv", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -640,9 +662,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.5" + "version": "3.11.1" } }, "nbformat": 4, - "nbformat_minor": 2 + "nbformat_minor": 4 } diff --git a/docs/tutorials/hyperparameter_sweep.ipynb b/docs/tutorials/hyperparameter_sweep.ipynb index 36220c1..f62dfc2 100644 --- a/docs/tutorials/hyperparameter_sweep.ipynb +++ b/docs/tutorials/hyperparameter_sweep.ipynb @@ -99,7 +99,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -158,8 +158,8 @@ " data_module = SyntheticDataLoader(\n", " batch_size=batch_size,\n", " num_genes=4000,\n", - " signal_mean=3.0,\n", - " signal=[0.5] * 10,\n", + " bound_mean=3.0,\n", + " bound=[0.5] * 10,\n", " n_sample=[1, 2, 2, 4, 4],\n", " val_size=0.1,\n", " test_size=0.1,\n", @@ -208,9 +208,510 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-05-29 13:18:03,548] A new study created in memory with name: CustomizableModelHyperparameterSweep3\n", + "/Users/ericjia/Library/Caches/pypoetry/virtualenvs/yeastdnnexplorer-iu4_cpc2-py3.11/lib/python3.11/site-packages/optuna/distributions.py:524: UserWarning: Choices for a categorical distribution should be a tuple of None, bool, int, float and str for persistent storage but contains [64] which is of type list.\n", + " warnings.warn(message)\n", + "/Users/ericjia/Library/Caches/pypoetry/virtualenvs/yeastdnnexplorer-iu4_cpc2-py3.11/lib/python3.11/site-packages/optuna/distributions.py:524: UserWarning: Choices for a categorical distribution should be a tuple of None, bool, int, float and str for persistent storage but contains [256] which is of type list.\n", + " warnings.warn(message)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "======================================================================\n", + "About to create model with the following hyperparameters:\n", + "lr: 0.01\n", + "hidden_layer_num: 1\n", + "hidden_layer_sizes: [256]\n", + "activation: Tanh\n", + "optimizer: RMSprop\n", + "L2_regularization_term: 0.1\n", + "dropout_rate: 0.5\n", + "batch_size: 32\n", + "max_epochs: 1\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "GPU available: False, used: False\n", + "TPU available: False, using: 0 TPU cores\n", + "IPU available: False, using: 0 IPUs\n", + "HPU available: False, using: 0 HPUs\n", + "/Users/ericjia/yeastdnnexplorer/yeastdnnexplorer/data_loaders/synthetic_data_loader.py:260: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n", + " X_train, Y_train = torch.tensor(X_train, dtype=torch.float32), torch.tensor(\n", + "/Users/ericjia/yeastdnnexplorer/yeastdnnexplorer/data_loaders/synthetic_data_loader.py:263: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n", + " X_val, Y_val = torch.tensor(X_val, dtype=torch.float32), torch.tensor(\n", + "/Users/ericjia/yeastdnnexplorer/yeastdnnexplorer/data_loaders/synthetic_data_loader.py:266: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n", + " X_test, Y_test = torch.tensor(X_test, dtype=torch.float32), torch.tensor(\n", + "\n", + " | Name | Type | Params\n", + "----------------------------------------------------\n", + "0 | activation | Tanh | 0 \n", + "1 | input_layer | Linear | 3.6 K \n", + "2 | hidden_layers | ModuleList | 0 \n", + "3 | output_layer | Linear | 3.3 K \n", + "4 | dropout | Dropout | 0 \n", + "5 | mae | MeanAbsoluteError | 0 \n", + "6 | SMSE | SMSE | 0 \n", + "----------------------------------------------------\n", + "6.9 K Trainable params\n", + "0 Non-trainable params\n", + "6.9 K Total params\n", + "0.028 Total estimated model params size (MB)\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Sanity Checking: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/ericjia/Library/Caches/pypoetry/virtualenvs/yeastdnnexplorer-iu4_cpc2-py3.11/lib/python3.11/site-packages/torch/utils/data/dataloader.py:558: UserWarning: This DataLoader will create 15 worker processes in total. Our suggested max number of worker in current system is 8 (`cpuset` is not taken into account), which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.\n", + " warnings.warn(_create_warning_msg(\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "9874d59e855a45b09fcd3891e60fc48b", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Training: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "`Trainer.fit` stopped: `max_epochs=1` reached.\n", + "[I 2024-05-29 13:18:26,417] Trial 0 finished with value: 4.489274501800537 and parameters: {'lr': 0.01, 'hidden_layer_num': 1, 'activation': 'Tanh', 'optimizer': 'RMSprop', 'L2_regularization_term': 0.1, 'dropout_rate': 0.5, 'batch_size': 32, 'max_epochs': 1, 'hidden_layer_sizes_1_layers': [256]}. Best is trial 0 with value: 4.489274501800537.\n", + "/Users/ericjia/Library/Caches/pypoetry/virtualenvs/yeastdnnexplorer-iu4_cpc2-py3.11/lib/python3.11/site-packages/optuna/distributions.py:524: UserWarning: Choices for a categorical distribution should be a tuple of None, bool, int, float and str for persistent storage but contains [64] which is of type list.\n", + " warnings.warn(message)\n", + "/Users/ericjia/Library/Caches/pypoetry/virtualenvs/yeastdnnexplorer-iu4_cpc2-py3.11/lib/python3.11/site-packages/optuna/distributions.py:524: UserWarning: Choices for a categorical distribution should be a tuple of None, bool, int, float and str for persistent storage but contains [256] which is of type list.\n", + " warnings.warn(message)\n", + "GPU available: False, used: False\n", + "TPU available: False, using: 0 TPU cores\n", + "IPU available: False, using: 0 IPUs\n", + "HPU available: False, using: 0 HPUs\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "======================================================================\n", + "About to create model with the following hyperparameters:\n", + "lr: 0.01\n", + "hidden_layer_num: 1\n", + "hidden_layer_sizes: [256]\n", + "activation: LeakyReLU\n", + "optimizer: SGD\n", + "L2_regularization_term: 0.1\n", + "dropout_rate: 0.5\n", + "batch_size: 32\n", + "max_epochs: 1\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n", + " | Name | Type | Params\n", + "----------------------------------------------------\n", + "0 | activation | LeakyReLU | 0 \n", + "1 | input_layer | Linear | 3.6 K \n", + "2 | hidden_layers | ModuleList | 0 \n", + "3 | output_layer | Linear | 3.3 K \n", + "4 | dropout | Dropout | 0 \n", + "5 | mae | MeanAbsoluteError | 0 \n", + "6 | SMSE | SMSE | 0 \n", + "----------------------------------------------------\n", + "6.9 K Trainable params\n", + "0 Non-trainable params\n", + "6.9 K Total params\n", + "0.028 Total estimated model params size (MB)\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Sanity Checking: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "a3f7fa1a66da47818f9a97b47763e2c6", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Training: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "`Trainer.fit` stopped: `max_epochs=1` reached.\n", + "[I 2024-05-29 13:18:45,320] Trial 1 finished with value: 6.033911228179932 and parameters: {'lr': 0.01, 'hidden_layer_num': 1, 'activation': 'LeakyReLU', 'optimizer': 'SGD', 'L2_regularization_term': 0.1, 'dropout_rate': 0.5, 'batch_size': 32, 'max_epochs': 1, 'hidden_layer_sizes_1_layers': [256]}. Best is trial 0 with value: 4.489274501800537.\n", + "/Users/ericjia/Library/Caches/pypoetry/virtualenvs/yeastdnnexplorer-iu4_cpc2-py3.11/lib/python3.11/site-packages/optuna/distributions.py:524: UserWarning: Choices for a categorical distribution should be a tuple of None, bool, int, float and str for persistent storage but contains [64, 32] which is of type list.\n", + " warnings.warn(message)\n", + "/Users/ericjia/Library/Caches/pypoetry/virtualenvs/yeastdnnexplorer-iu4_cpc2-py3.11/lib/python3.11/site-packages/optuna/distributions.py:524: UserWarning: Choices for a categorical distribution should be a tuple of None, bool, int, float and str for persistent storage but contains [256, 64] which is of type list.\n", + " warnings.warn(message)\n", + "GPU available: False, used: False\n", + "TPU available: False, using: 0 TPU cores\n", + "IPU available: False, using: 0 IPUs\n", + "HPU available: False, using: 0 HPUs\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "======================================================================\n", + "About to create model with the following hyperparameters:\n", + "lr: 0.01\n", + "hidden_layer_num: 2\n", + "hidden_layer_sizes: [256, 64]\n", + "activation: ReLU\n", + "optimizer: SGD\n", + "L2_regularization_term: 0.0\n", + "dropout_rate: 0.5\n", + "batch_size: 32\n", + "max_epochs: 1\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n", + " | Name | Type | Params\n", + "----------------------------------------------------\n", + "0 | activation | ReLU | 0 \n", + "1 | input_layer | Linear | 3.6 K \n", + "2 | hidden_layers | ModuleList | 16.4 K\n", + "3 | output_layer | Linear | 845 \n", + "4 | dropout | Dropout | 0 \n", + "5 | mae | MeanAbsoluteError | 0 \n", + "6 | SMSE | SMSE | 0 \n", + "----------------------------------------------------\n", + "20.9 K Trainable params\n", + "0 Non-trainable params\n", + "20.9 K Total params\n", + "0.084 Total estimated model params size (MB)\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Sanity Checking: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "2c96e3c7274a460ebbe021e43699d992", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Training: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "`Trainer.fit` stopped: `max_epochs=1` reached.\n", + "[I 2024-05-29 13:19:02,993] Trial 2 finished with value: 6.900921821594238 and parameters: {'lr': 0.01, 'hidden_layer_num': 2, 'activation': 'ReLU', 'optimizer': 'SGD', 'L2_regularization_term': 0.0, 'dropout_rate': 0.5, 'batch_size': 32, 'max_epochs': 1, 'hidden_layer_sizes_2_layers': [256, 64]}. Best is trial 0 with value: 4.489274501800537.\n", + "GPU available: False, used: False\n", + "TPU available: False, using: 0 TPU cores\n", + "IPU available: False, using: 0 IPUs\n", + "HPU available: False, using: 0 HPUs\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "======================================================================\n", + "About to create model with the following hyperparameters:\n", + "lr: 0.01\n", + "hidden_layer_num: 2\n", + "hidden_layer_sizes: [64, 32]\n", + "activation: Tanh\n", + "optimizer: Adam\n", + "L2_regularization_term: 0.1\n", + "dropout_rate: 0.0\n", + "batch_size: 32\n", + "max_epochs: 1\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n", + " | Name | Type | Params\n", + "----------------------------------------------------\n", + "0 | activation | Tanh | 0 \n", + "1 | input_layer | Linear | 896 \n", + "2 | hidden_layers | ModuleList | 2.1 K \n", + "3 | output_layer | Linear | 429 \n", + "4 | dropout | Dropout | 0 \n", + "5 | mae | MeanAbsoluteError | 0 \n", + "6 | SMSE | SMSE | 0 \n", + "----------------------------------------------------\n", + "3.4 K Trainable params\n", + "0 Non-trainable params\n", + "3.4 K Total params\n", + "0.014 Total estimated model params size (MB)\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Sanity Checking: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "a854f1a313d34d8192602b17986182b1", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Training: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "`Trainer.fit` stopped: `max_epochs=1` reached.\n", + "[I 2024-05-29 13:19:19,976] Trial 3 finished with value: 4.5260910987854 and parameters: {'lr': 0.01, 'hidden_layer_num': 2, 'activation': 'Tanh', 'optimizer': 'Adam', 'L2_regularization_term': 0.1, 'dropout_rate': 0.0, 'batch_size': 32, 'max_epochs': 1, 'hidden_layer_sizes_2_layers': [64, 32]}. Best is trial 0 with value: 4.489274501800537.\n", + "/Users/ericjia/Library/Caches/pypoetry/virtualenvs/yeastdnnexplorer-iu4_cpc2-py3.11/lib/python3.11/site-packages/optuna/distributions.py:524: UserWarning: Choices for a categorical distribution should be a tuple of None, bool, int, float and str for persistent storage but contains [512, 256, 128, 64, 32] which is of type list.\n", + " warnings.warn(message)\n", + "GPU available: False, used: False\n", + "TPU available: False, using: 0 TPU cores\n", + "IPU available: False, using: 0 IPUs\n", + "HPU available: False, using: 0 HPUs\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "======================================================================\n", + "About to create model with the following hyperparameters:\n", + "lr: 0.01\n", + "hidden_layer_num: 5\n", + "hidden_layer_sizes: [512, 256, 128, 64, 32]\n", + "activation: Tanh\n", + "optimizer: RMSprop\n", + "L2_regularization_term: 0.1\n", + "dropout_rate: 0.5\n", + "batch_size: 32\n", + "max_epochs: 1\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n", + " | Name | Type | Params\n", + "----------------------------------------------------\n", + "0 | activation | Tanh | 0 \n", + "1 | input_layer | Linear | 7.2 K \n", + "2 | hidden_layers | ModuleList | 174 K \n", + "3 | output_layer | Linear | 429 \n", + "4 | dropout | Dropout | 0 \n", + "5 | mae | MeanAbsoluteError | 0 \n", + "6 | SMSE | SMSE | 0 \n", + "----------------------------------------------------\n", + "182 K Trainable params\n", + "0 Non-trainable params\n", + "182 K Total params\n", + "0.729 Total estimated model params size (MB)\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Sanity Checking: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "5e56902ea3474fcc8f1e106e3fc4f19d", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Training: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "`Trainer.fit` stopped: `max_epochs=1` reached.\n", + "[I 2024-05-29 13:19:37,861] Trial 4 finished with value: 4.612905502319336 and parameters: {'lr': 0.01, 'hidden_layer_num': 5, 'activation': 'Tanh', 'optimizer': 'RMSprop', 'L2_regularization_term': 0.1, 'dropout_rate': 0.5, 'batch_size': 32, 'max_epochs': 1, 'hidden_layer_sizes_5_layers': [512, 256, 128, 64, 32]}. Best is trial 0 with value: 4.489274501800537.\n" + ] + } + ], "source": [ "STUDY_NAME = \"CustomizableModelHyperparameterSweep3\"\n", "NUM_TRIALS = 5 # you will need a lot more than 5 trials if you have many possible combinations of hyperparams\n", @@ -237,9 +738,19 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "RESULTS======================================================================\n", + "Best hyperparameters: {'lr': 0.01, 'hidden_layer_num': 1, 'activation': 'Tanh', 'optimizer': 'RMSprop', 'L2_regularization_term': 0.1, 'dropout_rate': 0.5, 'batch_size': 32, 'max_epochs': 1, 'hidden_layer_sizes_1_layers': [256]}\n", + "Best loss: 4.489274501800537\n" + ] + } + ], "source": [ "print(\"RESULTS\" + (\"=\" * 70))\n", "print(f\"Best hyperparameters: {best_params}\")\n", @@ -252,11 +763,18 @@ "source": [ "And that's it! Now you could take what you found to be the best hyperparameters and train a model with them for many more epochs. The [Optuna Documentation](https://optuna.readthedocs.io/en/stable/) will be a helpful resource if you'd like to add more to this notebook or the hyperparam sweep functions" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { "kernelspec": { - "display_name": ".venv", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -270,9 +788,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.5" + "version": "3.11.1" } }, "nbformat": 4, - "nbformat_minor": 2 + "nbformat_minor": 4 } diff --git a/docs/tutorials/lightning_crash_course.ipynb b/docs/tutorials/lightning_crash_course.ipynb index f51e3a2..5954640 100644 --- a/docs/tutorials/lightning_crash_course.ipynb +++ b/docs/tutorials/lightning_crash_course.ipynb @@ -38,9 +38,249 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "GPU available: False, used: False\n", + "TPU available: False, using: 0 TPU cores\n", + "IPU available: False, using: 0 IPUs\n", + "HPU available: False, using: 0 HPUs\n", + "Missing logger folder: /Users/ericjia/yeastdnnexplorer/docs/tutorials/lightning_logs\n", + "/Users/ericjia/yeastdnnexplorer/yeastdnnexplorer/data_loaders/synthetic_data_loader.py:260: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n", + " X_train, Y_train = torch.tensor(X_train, dtype=torch.float32), torch.tensor(\n", + "/Users/ericjia/yeastdnnexplorer/yeastdnnexplorer/data_loaders/synthetic_data_loader.py:263: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n", + " X_val, Y_val = torch.tensor(X_val, dtype=torch.float32), torch.tensor(\n", + "/Users/ericjia/yeastdnnexplorer/yeastdnnexplorer/data_loaders/synthetic_data_loader.py:266: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n", + " X_test, Y_test = torch.tensor(X_test, dtype=torch.float32), torch.tensor(\n", + "\n", + " | Name | Type | Params\n", + "----------------------------------------------\n", + "0 | mae | MeanAbsoluteError | 0 \n", + "1 | SMSE | SMSE | 0 \n", + "2 | linear1 | Linear | 110 \n", + "----------------------------------------------\n", + "110 Trainable params\n", + "0 Non-trainable params\n", + "110 Total params\n", + "0.000 Total estimated model params size (MB)\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Sanity Checking: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/ericjia/Library/Caches/pypoetry/virtualenvs/yeastdnnexplorer-iu4_cpc2-py3.11/lib/python3.11/site-packages/torch/utils/data/dataloader.py:558: UserWarning: This DataLoader will create 15 worker processes in total. Our suggested max number of worker in current system is 8 (`cpuset` is not taken into account), which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.\n", + " warnings.warn(_create_warning_msg(\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "03961a09a4b64a63b68f3cd670bdc8db", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Training: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "`Trainer.fit` stopped: `max_epochs=10` reached.\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "b68c57cdd4e34f44aac1cc03849ee343", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Testing: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", + " Test metric DataLoader 0\n", + "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", + " test_mae 1.1637259721755981\n", + " test_mse 1.8661913871765137\n", + " test_smse 10.101052284240723\n", + "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", + "[{'test_mse': 1.8661913871765137, 'test_mae': 1.1637259721755981, 'test_smse': 10.101052284240723}]\n" + ] + } + ], "source": [ "# define an instance of our simple linear baseline model\n", "model = SimpleModel(\n", @@ -54,11 +294,11 @@ "data_module = SyntheticDataLoader(\n", " batch_size=32,\n", " num_genes=3000,\n", - " signal=[0.5] * 5,\n", + " bound=[0.5] * 5,\n", " n_sample=[1, 1, 2, 2, 4],\n", " val_size=0.1,\n", " test_size=0.1,\n", - " signal_mean=3.0,\n", + " bound_mean=3.0,\n", ")\n", "\n", "# define a trainer instance\n", @@ -85,9 +325,38 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "GPU available: False, used: False\n", + "TPU available: False, using: 0 TPU cores\n", + "IPU available: False, using: 0 IPUs\n", + "HPU available: False, using: 0 HPUs\n" + ] + }, + { + "ename": "FileNotFoundError", + "evalue": "[Errno 2] No such file or directory: '../../data/init_analysis_data_20240409/binding/brent_nf_cc'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mFileNotFoundError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[3], line 23\u001b[0m\n\u001b[1;32m 16\u001b[0m \u001b[38;5;66;03m# we also have to define a new trainer instance, not really sure why but it seems to be necessary\u001b[39;00m\n\u001b[1;32m 17\u001b[0m trainer \u001b[38;5;241m=\u001b[39m Trainer(\n\u001b[1;32m 18\u001b[0m max_epochs\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m10\u001b[39m,\n\u001b[1;32m 19\u001b[0m deterministic\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m,\n\u001b[1;32m 20\u001b[0m accelerator\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcpu\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;66;03m# change to \"gpu\" if you have access to one\u001b[39;00m\n\u001b[1;32m 21\u001b[0m )\n\u001b[0;32m---> 23\u001b[0m \u001b[43mtrainer\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfit\u001b[49m\u001b[43m(\u001b[49m\u001b[43mnew_model\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mreal_data_module\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 24\u001b[0m test_results \u001b[38;5;241m=\u001b[39m trainer\u001b[38;5;241m.\u001b[39mtest(new_model, real_data_module)\n\u001b[1;32m 25\u001b[0m \u001b[38;5;28mprint\u001b[39m(test_results)\n", + "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/yeastdnnexplorer-iu4_cpc2-py3.11/lib/python3.11/site-packages/pytorch_lightning/trainer/trainer.py:544\u001b[0m, in \u001b[0;36mTrainer.fit\u001b[0;34m(self, model, train_dataloaders, val_dataloaders, datamodule, ckpt_path)\u001b[0m\n\u001b[1;32m 542\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mstate\u001b[38;5;241m.\u001b[39mstatus \u001b[38;5;241m=\u001b[39m TrainerStatus\u001b[38;5;241m.\u001b[39mRUNNING\n\u001b[1;32m 543\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtraining \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mTrue\u001b[39;00m\n\u001b[0;32m--> 544\u001b[0m \u001b[43mcall\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_call_and_handle_interrupt\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 545\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_fit_impl\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmodel\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtrain_dataloaders\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mval_dataloaders\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdatamodule\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mckpt_path\u001b[49m\n\u001b[1;32m 546\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/yeastdnnexplorer-iu4_cpc2-py3.11/lib/python3.11/site-packages/pytorch_lightning/trainer/call.py:44\u001b[0m, in \u001b[0;36m_call_and_handle_interrupt\u001b[0;34m(trainer, trainer_fn, *args, **kwargs)\u001b[0m\n\u001b[1;32m 42\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m trainer\u001b[38;5;241m.\u001b[39mstrategy\u001b[38;5;241m.\u001b[39mlauncher \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 43\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m trainer\u001b[38;5;241m.\u001b[39mstrategy\u001b[38;5;241m.\u001b[39mlauncher\u001b[38;5;241m.\u001b[39mlaunch(trainer_fn, \u001b[38;5;241m*\u001b[39margs, trainer\u001b[38;5;241m=\u001b[39mtrainer, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m---> 44\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mtrainer_fn\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 46\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m _TunerExitException:\n\u001b[1;32m 47\u001b[0m _call_teardown_hook(trainer)\n", + "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/yeastdnnexplorer-iu4_cpc2-py3.11/lib/python3.11/site-packages/pytorch_lightning/trainer/trainer.py:580\u001b[0m, in \u001b[0;36mTrainer._fit_impl\u001b[0;34m(self, model, train_dataloaders, val_dataloaders, datamodule, ckpt_path)\u001b[0m\n\u001b[1;32m 573\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mstate\u001b[38;5;241m.\u001b[39mfn \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 574\u001b[0m ckpt_path \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_checkpoint_connector\u001b[38;5;241m.\u001b[39m_select_ckpt_path(\n\u001b[1;32m 575\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mstate\u001b[38;5;241m.\u001b[39mfn,\n\u001b[1;32m 576\u001b[0m ckpt_path,\n\u001b[1;32m 577\u001b[0m model_provided\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m,\n\u001b[1;32m 578\u001b[0m model_connected\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mlightning_module \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[1;32m 579\u001b[0m )\n\u001b[0;32m--> 580\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_run\u001b[49m\u001b[43m(\u001b[49m\u001b[43mmodel\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mckpt_path\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mckpt_path\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 582\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mstate\u001b[38;5;241m.\u001b[39mstopped\n\u001b[1;32m 583\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtraining \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m\n", + "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/yeastdnnexplorer-iu4_cpc2-py3.11/lib/python3.11/site-packages/pytorch_lightning/trainer/trainer.py:947\u001b[0m, in \u001b[0;36mTrainer._run\u001b[0;34m(self, model, ckpt_path)\u001b[0m\n\u001b[1;32m 944\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m__setup_profiler()\n\u001b[1;32m 946\u001b[0m log\u001b[38;5;241m.\u001b[39mdebug(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__class__\u001b[39m\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__name__\u001b[39m\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m: preparing data\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m--> 947\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_data_connector\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mprepare_data\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 949\u001b[0m call\u001b[38;5;241m.\u001b[39m_call_setup_hook(\u001b[38;5;28mself\u001b[39m) \u001b[38;5;66;03m# allow user to set up LightningModule in accelerator environment\u001b[39;00m\n\u001b[1;32m 950\u001b[0m log\u001b[38;5;241m.\u001b[39mdebug(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__class__\u001b[39m\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__name__\u001b[39m\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m: configuring model\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", + "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/yeastdnnexplorer-iu4_cpc2-py3.11/lib/python3.11/site-packages/pytorch_lightning/trainer/connectors/data_connector.py:94\u001b[0m, in \u001b[0;36m_DataConnector.prepare_data\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 92\u001b[0m dm_prepare_data_per_node \u001b[38;5;241m=\u001b[39m datamodule\u001b[38;5;241m.\u001b[39mprepare_data_per_node\n\u001b[1;32m 93\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m (dm_prepare_data_per_node \u001b[38;5;129;01mand\u001b[39;00m local_rank_zero) \u001b[38;5;129;01mor\u001b[39;00m (\u001b[38;5;129;01mnot\u001b[39;00m dm_prepare_data_per_node \u001b[38;5;129;01mand\u001b[39;00m global_rank_zero):\n\u001b[0;32m---> 94\u001b[0m \u001b[43mcall\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_call_lightning_datamodule_hook\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtrainer\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mprepare_data\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 95\u001b[0m \u001b[38;5;66;03m# handle lightning module prepare data:\u001b[39;00m\n\u001b[1;32m 96\u001b[0m \u001b[38;5;66;03m# check for prepare_data_per_node before calling lightning_module.prepare_data\u001b[39;00m\n\u001b[1;32m 97\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m lightning_module \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n", + "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/yeastdnnexplorer-iu4_cpc2-py3.11/lib/python3.11/site-packages/pytorch_lightning/trainer/call.py:179\u001b[0m, in \u001b[0;36m_call_lightning_datamodule_hook\u001b[0;34m(trainer, hook_name, *args, **kwargs)\u001b[0m\n\u001b[1;32m 177\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mcallable\u001b[39m(fn):\n\u001b[1;32m 178\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m trainer\u001b[38;5;241m.\u001b[39mprofiler\u001b[38;5;241m.\u001b[39mprofile(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m[LightningDataModule]\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mtrainer\u001b[38;5;241m.\u001b[39mdatamodule\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__class__\u001b[39m\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__name__\u001b[39m\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m.\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mhook_name\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m):\n\u001b[0;32m--> 179\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfn\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 180\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n", + "File \u001b[0;32m~/yeastdnnexplorer/yeastdnnexplorer/data_loaders/real_data_loader.py:118\u001b[0m, in \u001b[0;36mRealDataLoader.prepare_data\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 106\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 107\u001b[0m \u001b[38;5;124;03mThis function reads in the binding data and perturbation data from the CSV files\u001b[39;00m\n\u001b[1;32m 108\u001b[0m \u001b[38;5;124;03mthat we have for these datasets.\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 113\u001b[0m \n\u001b[1;32m 114\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 116\u001b[0m brent_cc_path \u001b[38;5;241m=\u001b[39m os\u001b[38;5;241m.\u001b[39mpath\u001b[38;5;241m.\u001b[39mjoin(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdata_dir_path, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mbinding/brent_nf_cc\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 117\u001b[0m brent_nf_csv_files \u001b[38;5;241m=\u001b[39m [\n\u001b[0;32m--> 118\u001b[0m f \u001b[38;5;28;01mfor\u001b[39;00m f \u001b[38;5;129;01min\u001b[39;00m \u001b[43mos\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mlistdir\u001b[49m\u001b[43m(\u001b[49m\u001b[43mbrent_cc_path\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mif\u001b[39;00m f\u001b[38;5;241m.\u001b[39mendswith(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m.csv\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 119\u001b[0m ]\n\u001b[1;32m 120\u001b[0m perturb_dataset_path \u001b[38;5;241m=\u001b[39m os\u001b[38;5;241m.\u001b[39mpath\u001b[38;5;241m.\u001b[39mjoin(\n\u001b[1;32m 121\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdata_dir_path, \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mperturbation/\u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mperturbation_dataset_title\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 122\u001b[0m )\n\u001b[1;32m 123\u001b[0m perturb_dataset_csv_files \u001b[38;5;241m=\u001b[39m [\n\u001b[1;32m 124\u001b[0m f \u001b[38;5;28;01mfor\u001b[39;00m f \u001b[38;5;129;01min\u001b[39;00m os\u001b[38;5;241m.\u001b[39mlistdir(perturb_dataset_path) \u001b[38;5;28;01mif\u001b[39;00m f\u001b[38;5;241m.\u001b[39mendswith(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m.csv\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 125\u001b[0m ]\n", + "\u001b[0;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: '../../data/init_analysis_data_20240409/binding/brent_nf_cc'" + ] + } + ], "source": [ "# we need to redefine a new instance with the same params unless we want it to pick up where it left off\n", "new_model = SimpleModel(\n", @@ -139,9 +408,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "GPU available: False, used: False\n", + "TPU available: False, using: 0 TPU cores\n", + "IPU available: False, using: 0 IPUs\n", + "HPU available: False, using: 0 HPUs\n" + ] + } + ], "source": [ "# this will be used to save the model checkpoint that performs the best on the validation set\n", "best_model_checkpoint = ModelCheckpoint(\n", @@ -186,9 +466,29 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "FileNotFoundError", + "evalue": "[Errno 2] No such file or directory: '/Users/ericjia/yeastdnnexplorer/docs/tutorials/example/path/not/real.ckpt'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mFileNotFoundError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[5], line 6\u001b[0m\n\u001b[1;32m 3\u001b[0m path_to_checkpoint \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mexample/path/not/real.ckpt\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 5\u001b[0m \u001b[38;5;66;03m# note that we need to use the same model class that was used to save the checkpoint\u001b[39;00m\n\u001b[0;32m----> 6\u001b[0m model \u001b[38;5;241m=\u001b[39m \u001b[43mSimpleModel\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mload_from_checkpoint\u001b[49m\u001b[43m(\u001b[49m\u001b[43mpath_to_checkpoint\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 8\u001b[0m \u001b[38;5;66;03m# we can load the model and continue training from where it left off\u001b[39;00m\n\u001b[1;32m 9\u001b[0m trainer\u001b[38;5;241m.\u001b[39mfit(model, data_module)\n", + "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/yeastdnnexplorer-iu4_cpc2-py3.11/lib/python3.11/site-packages/pytorch_lightning/utilities/model_helpers.py:125\u001b[0m, in \u001b[0;36m_restricted_classmethod_impl.__get__..wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 120\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m instance \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m is_scripting:\n\u001b[1;32m 121\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m(\n\u001b[1;32m 122\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mThe classmethod `\u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mcls\u001b[39m\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__name__\u001b[39m\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m.\u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmethod\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__name__\u001b[39m\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m` cannot be called on an instance.\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 123\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m Please call it on the class type and make sure the return value is used.\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 124\u001b[0m )\n\u001b[0;32m--> 125\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmethod\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mcls\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/yeastdnnexplorer-iu4_cpc2-py3.11/lib/python3.11/site-packages/pytorch_lightning/core/module.py:1581\u001b[0m, in \u001b[0;36mLightningModule.load_from_checkpoint\u001b[0;34m(cls, checkpoint_path, map_location, hparams_file, strict, **kwargs)\u001b[0m\n\u001b[1;32m 1492\u001b[0m \u001b[38;5;129m@_restricted_classmethod\u001b[39m\n\u001b[1;32m 1493\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mload_from_checkpoint\u001b[39m(\n\u001b[1;32m 1494\u001b[0m \u001b[38;5;28mcls\u001b[39m,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 1499\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs: Any,\n\u001b[1;32m 1500\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Self:\n\u001b[1;32m 1501\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124mr\u001b[39m\u001b[38;5;124;03m\"\"\"Primary way of loading a model from a checkpoint. When Lightning saves a checkpoint it stores the arguments\u001b[39;00m\n\u001b[1;32m 1502\u001b[0m \u001b[38;5;124;03m passed to ``__init__`` in the checkpoint under ``\"hyper_parameters\"``.\u001b[39;00m\n\u001b[1;32m 1503\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 1579\u001b[0m \n\u001b[1;32m 1580\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[0;32m-> 1581\u001b[0m loaded \u001b[38;5;241m=\u001b[39m \u001b[43m_load_from_checkpoint\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1582\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mcls\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;66;43;03m# type: ignore[arg-type]\u001b[39;49;00m\n\u001b[1;32m 1583\u001b[0m \u001b[43m \u001b[49m\u001b[43mcheckpoint_path\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1584\u001b[0m \u001b[43m \u001b[49m\u001b[43mmap_location\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1585\u001b[0m \u001b[43m \u001b[49m\u001b[43mhparams_file\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1586\u001b[0m \u001b[43m \u001b[49m\u001b[43mstrict\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1587\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1588\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1589\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m cast(Self, loaded)\n", + "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/yeastdnnexplorer-iu4_cpc2-py3.11/lib/python3.11/site-packages/pytorch_lightning/core/saving.py:63\u001b[0m, in \u001b[0;36m_load_from_checkpoint\u001b[0;34m(cls, checkpoint_path, map_location, hparams_file, strict, **kwargs)\u001b[0m\n\u001b[1;32m 61\u001b[0m map_location \u001b[38;5;241m=\u001b[39m map_location \u001b[38;5;129;01mor\u001b[39;00m _default_map_location\n\u001b[1;32m 62\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m pl_legacy_patch():\n\u001b[0;32m---> 63\u001b[0m checkpoint \u001b[38;5;241m=\u001b[39m \u001b[43mpl_load\u001b[49m\u001b[43m(\u001b[49m\u001b[43mcheckpoint_path\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmap_location\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmap_location\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 65\u001b[0m \u001b[38;5;66;03m# convert legacy checkpoints to the new format\u001b[39;00m\n\u001b[1;32m 66\u001b[0m checkpoint \u001b[38;5;241m=\u001b[39m _pl_migrate_checkpoint(\n\u001b[1;32m 67\u001b[0m checkpoint, checkpoint_path\u001b[38;5;241m=\u001b[39m(checkpoint_path \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(checkpoint_path, (\u001b[38;5;28mstr\u001b[39m, Path)) \u001b[38;5;28;01melse\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m)\n\u001b[1;32m 68\u001b[0m )\n", + "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/yeastdnnexplorer-iu4_cpc2-py3.11/lib/python3.11/site-packages/lightning_fabric/utilities/cloud_io.py:56\u001b[0m, in \u001b[0;36m_load\u001b[0;34m(path_or_url, map_location)\u001b[0m\n\u001b[1;32m 51\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m torch\u001b[38;5;241m.\u001b[39mhub\u001b[38;5;241m.\u001b[39mload_state_dict_from_url(\n\u001b[1;32m 52\u001b[0m \u001b[38;5;28mstr\u001b[39m(path_or_url),\n\u001b[1;32m 53\u001b[0m map_location\u001b[38;5;241m=\u001b[39mmap_location, \u001b[38;5;66;03m# type: ignore[arg-type]\u001b[39;00m\n\u001b[1;32m 54\u001b[0m )\n\u001b[1;32m 55\u001b[0m fs \u001b[38;5;241m=\u001b[39m get_filesystem(path_or_url)\n\u001b[0;32m---> 56\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m \u001b[43mfs\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mopen\u001b[49m\u001b[43m(\u001b[49m\u001b[43mpath_or_url\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mrb\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mas\u001b[39;00m f:\n\u001b[1;32m 57\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m torch\u001b[38;5;241m.\u001b[39mload(f, map_location\u001b[38;5;241m=\u001b[39mmap_location)\n", + "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/yeastdnnexplorer-iu4_cpc2-py3.11/lib/python3.11/site-packages/fsspec/spec.py:1298\u001b[0m, in \u001b[0;36mAbstractFileSystem.open\u001b[0;34m(self, path, mode, block_size, cache_options, compression, **kwargs)\u001b[0m\n\u001b[1;32m 1296\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 1297\u001b[0m ac \u001b[38;5;241m=\u001b[39m kwargs\u001b[38;5;241m.\u001b[39mpop(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mautocommit\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_intrans)\n\u001b[0;32m-> 1298\u001b[0m f \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_open\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1299\u001b[0m \u001b[43m \u001b[49m\u001b[43mpath\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1300\u001b[0m \u001b[43m \u001b[49m\u001b[43mmode\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmode\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1301\u001b[0m \u001b[43m \u001b[49m\u001b[43mblock_size\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mblock_size\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1302\u001b[0m \u001b[43m \u001b[49m\u001b[43mautocommit\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mac\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1303\u001b[0m \u001b[43m \u001b[49m\u001b[43mcache_options\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcache_options\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1304\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1305\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1306\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m compression \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 1307\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mfsspec\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mcompression\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m compr\n", + "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/yeastdnnexplorer-iu4_cpc2-py3.11/lib/python3.11/site-packages/fsspec/implementations/local.py:191\u001b[0m, in \u001b[0;36mLocalFileSystem._open\u001b[0;34m(self, path, mode, block_size, **kwargs)\u001b[0m\n\u001b[1;32m 189\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mauto_mkdir \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mw\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01min\u001b[39;00m mode:\n\u001b[1;32m 190\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmakedirs(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_parent(path), exist_ok\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[0;32m--> 191\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mLocalFileOpener\u001b[49m\u001b[43m(\u001b[49m\u001b[43mpath\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmode\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/yeastdnnexplorer-iu4_cpc2-py3.11/lib/python3.11/site-packages/fsspec/implementations/local.py:355\u001b[0m, in \u001b[0;36mLocalFileOpener.__init__\u001b[0;34m(self, path, mode, autocommit, fs, compression, **kwargs)\u001b[0m\n\u001b[1;32m 353\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcompression \u001b[38;5;241m=\u001b[39m get_compression(path, compression)\n\u001b[1;32m 354\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mblocksize \u001b[38;5;241m=\u001b[39m io\u001b[38;5;241m.\u001b[39mDEFAULT_BUFFER_SIZE\n\u001b[0;32m--> 355\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_open\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/yeastdnnexplorer-iu4_cpc2-py3.11/lib/python3.11/site-packages/fsspec/implementations/local.py:360\u001b[0m, in \u001b[0;36mLocalFileOpener._open\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 358\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mf \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mf\u001b[38;5;241m.\u001b[39mclosed:\n\u001b[1;32m 359\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mautocommit \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mw\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmode:\n\u001b[0;32m--> 360\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mf \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mopen\u001b[39m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpath, mode\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmode)\n\u001b[1;32m 361\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcompression:\n\u001b[1;32m 362\u001b[0m compress \u001b[38;5;241m=\u001b[39m compr[\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcompression]\n", + "\u001b[0;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: '/Users/ericjia/yeastdnnexplorer/docs/tutorials/example/path/not/real.ckpt'" + ] + } + ], "source": [ "# Load a model from a checkpoint\n", "# We can load a model from a checkpoint like so:\n", @@ -206,11 +506,18 @@ "# we could also load the model and make predictions\n", "predictions = model(data_module.test_dataloader())" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { "kernelspec": { - "display_name": ".venv", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -224,9 +531,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.5" + "version": "3.11.1" } }, "nbformat": 4, - "nbformat_minor": 2 + "nbformat_minor": 4 } diff --git a/docs/tutorials/testing_model_metrics.ipynb b/docs/tutorials/testing_model_metrics.ipynb index 493715e..8a63f5e 100644 --- a/docs/tutorials/testing_model_metrics.ipynb +++ b/docs/tutorials/testing_model_metrics.ipynb @@ -9,7 +9,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -38,7 +38,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -73,7 +73,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -84,18 +84,18 @@ " using_random_seed: bool,\n", " accelerator: str,\n", " num_genes: int,\n", - " signal_mean: float,\n", + " bound_mean: float,\n", " val_size: float,\n", " test_size: float,\n", - " signal: list[float],\n", + " bound: list[float],\n", " n_sample: list[int],\n", " max_mean_adjustment: float,\n", ") -> LightningModule:\n", " data_module = SyntheticDataLoader(\n", " batch_size=batch_size,\n", " num_genes=num_genes,\n", - " signal_mean=signal_mean,\n", - " signal=signal, # old: [0.1, 0.15, 0.2, 0.25, 0.3],\n", + " bound_mean=bound_mean,\n", + " bound=bound, # old: [0.1, 0.15, 0.2, 0.25, 0.3],\n", " n_sample=n_sample, # sum of this is num of tfs\n", " val_size=val_size,\n", " test_size=test_size,\n", @@ -136,13 +136,1169 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "GPU available: False, used: False\n", + "TPU available: False, using: 0 TPU cores\n", + "IPU available: False, using: 0 IPUs\n", + "HPU available: False, using: 0 HPUs\n", + "\n", + " | Name | Type | Params\n", + "----------------------------------------------\n", + "0 | mae | MeanAbsoluteError | 0 \n", + "1 | SMSE | SMSE | 0 \n", + "2 | linear1 | Linear | 110 \n", + "----------------------------------------------\n", + "110 Trainable params\n", + "0 Non-trainable params\n", + "110 Total params\n", + "0.000 Total estimated model params size (MB)\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Sanity Checking: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "81f0cc52e9c6419ea965fd0eed66b4e1", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Training: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "`Trainer.fit` stopped: `max_epochs=10` reached.\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "6a35ccabcd0e48c28b0fd3725ee0f3a2", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Testing: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", + " Test metric DataLoader 0\n", + "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", + " test_mae 0.5135628581047058\n", + " test_mse 0.416797935962677\n", + " test_smse 10.241324424743652\n", + "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "GPU available: False, used: False\n", + "TPU available: False, using: 0 TPU cores\n", + "IPU available: False, using: 0 IPUs\n", + "HPU available: False, using: 0 HPUs\n", + "\n", + " | Name | Type | Params\n", + "----------------------------------------------\n", + "0 | mae | MeanAbsoluteError | 0 \n", + "1 | SMSE | SMSE | 0 \n", + "2 | linear1 | Linear | 110 \n", + "----------------------------------------------\n", + "110 Trainable params\n", + "0 Non-trainable params\n", + "110 Total params\n", + "0.000 Total estimated model params size (MB)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Printing test results...\n", + "[{'test_mse': 0.416797935962677, 'test_mae': 0.5135628581047058, 'test_smse': 10.241324424743652}]\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Sanity Checking: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "c5eeb9a7b5944d3c85683e0e0b8a31ac", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Training: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "`Trainer.fit` stopped: `max_epochs=10` reached.\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "ea3a981f9c0247aba2551941ebd1127c", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Testing: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", + " Test metric DataLoader 0\n", + "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", + " test_mae 0.5821905136108398\n", + " test_mse 0.5283595323562622\n", + " test_smse 10.348736763000488\n", + "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "GPU available: False, used: False\n", + "TPU available: False, using: 0 TPU cores\n", + "IPU available: False, using: 0 IPUs\n", + "HPU available: False, using: 0 HPUs\n", + "\n", + " | Name | Type | Params\n", + "----------------------------------------------\n", + "0 | mae | MeanAbsoluteError | 0 \n", + "1 | SMSE | SMSE | 0 \n", + "2 | linear1 | Linear | 110 \n", + "----------------------------------------------\n", + "110 Trainable params\n", + "0 Non-trainable params\n", + "110 Total params\n", + "0.000 Total estimated model params size (MB)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Printing test results...\n", + "[{'test_mse': 0.5283595323562622, 'test_mae': 0.5821905136108398, 'test_smse': 10.348736763000488}]\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Sanity Checking: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "a83e317d249c478fa8a8903ed6ffbd52", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Training: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "`Trainer.fit` stopped: `max_epochs=10` reached.\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "b14fcb56940f4300a3b9357a4a075ae4", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Testing: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", + " Test metric DataLoader 0\n", + "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", + " test_mae 0.8307084441184998\n", + " test_mse 1.050934910774231\n", + " test_smse 10.213595390319824\n", + "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "GPU available: False, used: False\n", + "TPU available: False, using: 0 TPU cores\n", + "IPU available: False, using: 0 IPUs\n", + "HPU available: False, using: 0 HPUs\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Printing test results...\n", + "[{'test_mse': 1.050934910774231, 'test_mae': 0.8307084441184998, 'test_smse': 10.213595390319824}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n", + " | Name | Type | Params\n", + "----------------------------------------------\n", + "0 | mae | MeanAbsoluteError | 0 \n", + "1 | SMSE | SMSE | 0 \n", + "2 | linear1 | Linear | 110 \n", + "----------------------------------------------\n", + "110 Trainable params\n", + "0 Non-trainable params\n", + "110 Total params\n", + "0.000 Total estimated model params size (MB)\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Sanity Checking: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "b6177aafea8a40efa7bd3e354a7fdd48", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Training: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "`Trainer.fit` stopped: `max_epochs=10` reached.\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "ad8ed0e588954f07b698c88b7dde3b7c", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Testing: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", + " Test metric DataLoader 0\n", + "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", + " test_mae 1.1858488321304321\n", + " test_mse 2.014770984649658\n", + " test_smse 10.195466995239258\n", + "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "GPU available: False, used: False\n", + "TPU available: False, using: 0 TPU cores\n", + "IPU available: False, using: 0 IPUs\n", + "HPU available: False, using: 0 HPUs\n", + "\n", + " | Name | Type | Params\n", + "----------------------------------------------\n", + "0 | mae | MeanAbsoluteError | 0 \n", + "1 | SMSE | SMSE | 0 \n", + "2 | linear1 | Linear | 110 \n", + "----------------------------------------------\n", + "110 Trainable params\n", + "0 Non-trainable params\n", + "110 Total params\n", + "0.000 Total estimated model params size (MB)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Printing test results...\n", + "[{'test_mse': 2.014770984649658, 'test_mae': 1.1858488321304321, 'test_smse': 10.195466995239258}]\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Sanity Checking: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "a467879ee86d4a5b8d15490b21ffd6ab", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Training: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "`Trainer.fit` stopped: `max_epochs=10` reached.\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "c527988542004759a3cb282abda532a9", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Testing: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", + " Test metric DataLoader 0\n", + "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", + " test_mae 2.091959238052368\n", + " test_mse 6.157958984375\n", + " test_smse 11.987293243408203\n", + "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", + "Printing test results...\n", + "[{'test_mse': 6.157958984375, 'test_mae': 2.091959238052368, 'test_smse': 11.987293243408203}]\n" + ] + } + ], "source": [ - "signal_means = [0.5, 1.0, 2.0, 3.0, 5.0]\n", + "bound_means = [0.5, 1.0, 2.0, 3.0, 5.0]\n", "test_mses = []\n", - "for signal_mean in signal_means:\n", + "for bound_mean in bound_means:\n", " model, test_results = train_simple_model_with_params(\n", " batch_size=32,\n", " lr=0.01,\n", @@ -152,9 +1308,9 @@ " num_genes=1000,\n", " val_size=0.1,\n", " test_size=0.1,\n", - " signal=[0.5] * 5,\n", + " bound=[0.5] * 5,\n", " n_sample=[1, 1, 2, 2, 4], # sum of this is num of tfs\n", - " signal_mean=signal_mean,\n", + " bound_mean=bound_mean,\n", " max_mean_adjustment=0.0\n", " )\n", " test_mses.append(test_results[0][\"test_mse\"])" @@ -169,12 +1325,12 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 7, "metadata": {}, "outputs": [ { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] @@ -184,12 +1340,12 @@ } ], "source": [ - "plt.plot(signal_means, test_mses, marker=\"o\")\n", - "plt.xlabel(\"Signal Mean\")\n", - "plt.xticks(signal_means, rotation=45)\n", + "plt.plot(bound_means, test_mses, marker=\"o\")\n", + "plt.xlabel(\"bound Mean\")\n", + "plt.xticks(bound_means, rotation=45)\n", "plt.yticks(test_mses)\n", "plt.ylabel(\"Test MSE\")\n", - "plt.title(\"Test MSE as a function of Signal Mean\")\n", + "plt.title(\"Test MSE as a function of bound Mean\")\n", "plt.show()" ] }, @@ -199,7 +1355,7 @@ "source": [ "### Experiment 2\n", "\n", - "We can run a similar experiment where we test the effect of the bound / unbound ratio (aka signal / noise ratio) on the model's MSE" + "We can run a similar experiment where we test the effect of the bound / unbound ratio (aka bound / unbound ratio) on the model's MSE" ] }, { @@ -208,10 +1364,10 @@ "metadata": {}, "outputs": [], "source": [ - "signal_noise_ratios = [0.05, 0.1, 0.25, 0.5, 0.75, 0.9]\n", + "bound_unbound_ratios = [0.05, 0.1, 0.25, 0.5, 0.75, 0.9]\n", "test_mses = []\n", "\n", - "for signal_noise_ratio in signal_noise_ratios:\n", + "for bound_unbound_ratio in bound_unbound_ratios:\n", " model, test_results = train_simple_model_with_params(\n", " batch_size=32,\n", " lr=0.01,\n", @@ -221,9 +1377,9 @@ " num_genes=1000,\n", " val_size=0.1,\n", " test_size=0.1,\n", - " signal=[signal_noise_ratio] * 5,\n", + " bound=[bound_unbound_ratio] * 5,\n", " n_sample=[1, 1, 2, 2, 4],\n", - " signal_mean=3.0,\n", + " bound_mean=3.0,\n", " max_mean_adjustment=0.0\n", " )\n", " print(test_results)\n", @@ -247,12 +1403,12 @@ } ], "source": [ - "plt.plot(signal_noise_ratios, test_mses, marker=\"o\")\n", - "plt.xlabel(\"Percentage of Data in Signal Group\")\n", + "plt.plot(bound_unbound_ratios, test_mses, marker=\"o\")\n", + "plt.xlabel(\"Percentage of Data in bound Group\")\n", "plt.ylabel(\"Test MSE\")\n", - "plt.xticks(signal_noise_ratios, rotation=45)\n", + "plt.xticks(bound_unbound_ratios, rotation=45)\n", "plt.yticks(test_mses)\n", - "plt.title(\"Test MSE as a function of signal/noise ratio (signal mean = 3.0)\")\n", + "plt.title(\"Test MSE as a function of bound/unbound ratio (bound mean = 3.0)\")\n", "plt.show()" ] }, @@ -277,31 +1433,31 @@ "num_genes = 3000\n", "val_size = 0.1\n", "test_size = 0.1\n", - "signal = [0.5] * 5\n", + "bound = [0.5] * 5\n", "n_sample = [1, 1, 2, 2, 4]\n", "random_state = 42\n", "\n", "# the first data loader will load a dataset with a small scale and a small bound mean\n", "small_scale_and_mean_dataloader = SyntheticDataLoader(\n", " num_genes=num_genes,\n", - " signal=signal, \n", + " bound=bound, \n", " n_sample=n_sample,\n", " val_size=val_size,\n", " test_size=test_size,\n", " random_state=random_state,\n", - " signal_mean=1.0,\n", + " bound_mean=1.0,\n", " max_mean_adjustment=1.0\n", ")\n", "\n", "# the second data loader will generate a dataset with a large scale and a large bound mean\n", "large_scale_and_mean_dataloader = SyntheticDataLoader(\n", " num_genes=num_genes,\n", - " signal=signal, \n", + " bound=bound, \n", " n_sample=n_sample,\n", " val_size=val_size,\n", " test_size=test_size,\n", " random_state=random_state,\n", - " signal_mean=10.0,\n", + " bound_mean=10.0,\n", " max_mean_adjustment=10.0\n", ")\n", "\n", @@ -331,7 +1487,7 @@ ], "metadata": { "kernelspec": { - "display_name": ".venv", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -345,9 +1501,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.5" + "version": "3.11.1" } }, "nbformat": 4, - "nbformat_minor": 2 + "nbformat_minor": 4 } diff --git a/docs/tutorials/visualizing_and_testing_data_generation_methods.ipynb b/docs/tutorials/visualizing_and_testing_data_generation_methods.ipynb index 6167edc..a0178dc 100644 --- a/docs/tutorials/visualizing_and_testing_data_generation_methods.ipynb +++ b/docs/tutorials/visualizing_and_testing_data_generation_methods.ipynb @@ -65,14 +65,14 @@ "source": [ "n_genes = 3000\n", "\n", - "signal = [0.5, 0.5, 0.5, 0.5, 0.5]\n", + "bound = [0.5, 0.5, 0.5, 0.5, 0.5]\n", "n_sample = [1, 1, 2, 2, 4]\n", "\n", "# this will be a list of length 10 with a GenePopulation object in each element\n", "gene_populations_list = []\n", - "for signal_proportion, n_draws in zip(signal, n_sample):\n", + "for bound_proportion, n_draws in zip(bound, n_sample):\n", " for _ in range(n_draws):\n", - " gene_populations_list.append(generate_gene_population(n_genes, signal_proportion))\n", + " gene_populations_list.append(generate_gene_population(n_genes, bound_proportion))\n", " \n", "# Generate binding data for each gene population\n", "binding_effect_list = [generate_binding_effects(gene_population)\n", @@ -197,7 +197,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -233,21 +233,21 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Bound (signal) TFs for gene 0 are: [3, 4, 5, 6, 7, 9]\n", - "Unbound (noise) TFs for gene 0 are: [0, 1, 2, 8]\n", + "Bound (bound) TFs for gene 0 are: [3, 4, 5, 6, 7, 9]\n", + "Unbound (unbound) TFs for gene 0 are: [0, 1, 2, 8]\n", "tensor([0., 0., 0., 1., 1., 1., 1., 1., 0., 1.])\n" ] }, { "data": { - "image/png": "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2rVrIdaKiIiIiIj+6wo1UHJ0dFR5PXfuXJQpUwaNGzcupBoREREREREVcqCUVVpaGn7++Wd8+eWXkMlkGvOkpqYiNTVVeh0fHw8ASE9PR3p6+jupZ06U6y/seryP2Ha6Ybvphu2mO7adbthuumG76Ybtpju2nW6KUrvpuw4yIYTQa4k62r59O3r16oUHDx7AxcVFY57g4GBMnz5dLX3z5s2wsLAo6CoSEREREVERlZSUhF69eiEuLg42Njb5Lq/IBEr+/v4wMTHBr7/+mmMeTT1Kbm5uePHihV4aIz/S09Nx5MgRtGzZEsbGxoVal/cN2043bDfdsN10x7bTDdtNN2w33bDddMe2001Rarf4+HgUL15cb4FSkRh6d//+fRw9ehShoaG55jM1NYWpqalaurGxcaFvGKWiVJf3DdtON2w33bDddMe20w3bTTdsN92w3XTHttNNUWg3fa+/SDxHaf369ShRogTatWtX2FUhIiIiIiIq/EBJoVBg/fr1CAoKgpFRkejgIiIiIiKi/7hCD5SOHj2KBw8eoH///oVdFSIiIiIiIgBF4B6lVq1aoYjMJ0FERERERASgCPQoERERERERFTUMlIiIiIiIiLJhoERERERERJQNAyUiIiIiIqJsGCgRERERERFlw0CJiIiIiIgoGwZKRERERERE2TBQIiIiIiIiyoaBEhERERERUTYMlIiIiIiIiLJhoERERERERJQNAyUiIiIiIqJsGCgRERERERFlw0CJiIiIiIgoGwZKRERERERE2TBQIiIiIiIiyoaBEhERERERUTYMlIiIiIiIiLJhoERERERERJQNAyUiIiIiIqJsGCgRERERERFlw0CJiIiIiIgoGwZKRERERERE2TBQIiIiIiIiyoaBEhERERERUTYMlIiIiIiIiLJhoERERERERJQNAyUiIiIiIqJsGCgRERERERFlw0CJiIiIiIgoGwZKRERERERE2TBQIiIiIiIiyoaBEhERERERUTYMlIiIiIiIiLJhoERERERERJQNAyUiIiIiIqJsGCgRERERERFlw0CJiIiIiIgoGyNtMtnb20Mmk2lV4KtXr/JVISIiIiIiosKmVaC0dOnSAq4GERERERFR0aFVoBQUFFTQ9SAiIiIiIioy8nWPUkpKCuLj41X+8urRo0f49NNP4eDgAHNzc1SpUgXnz5/PT7WIiIiI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", + "image/png": "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5L+F3MHSf8t1FyvzERFRscVAiYjeagEBgJsbIMvj4r5MBri7K/MRGY17EBCwHbAup55u7aZMdw8qmnoREZHOGCgR0VtNLgeW/HdxP3ewpFpevFiZj8io3IOAD+OAJnuUy032AB/GMkgiInpDMFAiordeUBCwfTtQLtfFfTc3ZXoQz1upsJjIgTL+yv+X8edwOyKiN4hpUVeAiOh1CAoCOnUCjh0DkpKAPXuAxo3Zk0RERETasUeJiN4Zcjng/9/FfX9/BklERESUNwZKREREREREuRRpoOTl5QWZTKbxN3To0KKsFhERERERveOK9B6l06dPQ6FQSMuXL19Gq1at0LVr1yKsFRERERERveuKNFBycnJSW54zZw68vb3RpEkTrfnT09ORnp4uLSclJQEAMjMzkZmZWXgV1YFq+0VdjzcR284wbDfDsN0Mx7YzDNvNMGw3w7DdDMe2M0xxajdj10EmhBBGLdFAGRkZcHV1xRdffIH//e9/WvOEhYVh6tSpGukbN26EtbV1YVeRiIiIiIiKqZSUFPTq1QuJiYmwt7cvcHnFJlDaunUrevXqhTt37sDV1VVrHm09Su7u7vj333+N0hgFkZmZiUOHDqFVq1YwMzMr0rq8adh2hmG7GYbtZji2nWHYboZhuxmG7WY4tp1hilO7JSUloXTp0kYLlIrNc5RWr16Ntm3b5hkkAYCFhQUsLCw00s3MzIp8x6gUp7q8adh2hmG7GYbtZji2nWHYboZhuxmG7WY4tp1hikO7GXv7xSJQun37Ng4fPoyIiIiirgoREREREVHxeI7S2rVrUaZMGbRv376oq0JERERERFT0gVJ2djbWrl2LkJAQmJoWiw4uIiIiIiJ6xxV5oHT48GHcuXMH/fv3L+qqEBERERERASgG9yi1bt0axWTiPSIiIiIiIgDFoEeJiIiIiIiouGGgRERERERElAsDJSIiIiIiolwYKBEREREREeXCQImIiIiIiCgXBkpERERERES5MFAiIiIiIiLKhYESERERERFRLgyUiIiIiIiIcmGgRERERERElAsDJSIiIiIiolwYKBEREREREeXCQImIiIiIiCgXBkpERERERES5MFAiIiIiIiLKhYESERERERFRLgyUiIiIiIiIcmGgRERERERElAsDJSIiIiIiolwYKBEREREREeXCQImIiIiIiCgXBkpERERERES5MFAiIiIiIiLKhYESERERERFRLgyUiIiIiIiIcmGgRERERERElAsDJSIiIiIiolwYKBEREREREeXCQImIiIiIiCgXBkpERERERES5MFAiIiIiIiLKhYESERERERFRLgyUiIiIiIiIcmGgRERERERElAsDJSIiIiIiolxMdcnk6OgImUymU4FPnz4tUIWIiIiIiIiKmk6B0uLFiwu5GkRERERERMWHToFSSEhIYdeDiIiIiIio2NApUMpLWloaMjIy1NLs7e0LVCEiIiIiIqKipvdkDi9fvsSwYcNQpkwZ2NjYwNHRUe2PiIiIiIjoTad3oDRu3DgcOXIEy5cvh4WFBX744QdMnToVrq6u+PHHH/WuwL179/DJJ5+gVKlSsLKyQo0aNXDmzBm9yyEiIiIiIjIWvYfe/frrr/jxxx/RtGlT9OvXDwEBAahYsSI8PT2xYcMGfPzxxzqX9ezZM/j5+aFZs2bYt28fnJyccOPGDfZMERERERFRkdI7UHr69CkqVKgAQHk/kmo6cH9/f3z22Wd6lTV37ly4u7tj7dq1Ulr58uX1rRIREREREZFR6R0oVahQAbGxsfDw8ECVKlWwdetWfPDBB/j1119RokQJvcr65ZdfEBgYiK5du+L3339HuXLl8Pnnn+PTTz/Vmj89PR3p6enSclJSEgAgMzMTmZmZ+r4Vo1Jtv6jr8SZi2xmG7WYYtpvh2HaGYbsZhu1mGLab4dh2hilO7WbsOsiEEEKfFyxatAhyuRwjRozA4cOH0bFjRwghkJmZiYULF2LkyJE6l2VpaQkA+OKLL9C1a1ecPn0aI0eOxPfff691SvKwsDBMnTpVI33jxo2wtrbW520QEREREdFbJCUlBb169UJiYqJRZuLWOVAaM2YMBg4ciCpVqqil3759G2fPnkXFihVRs2ZNvTZubm6O999/H3/88YeUNmLECJw+fRonT57UyK+tR8nd3R3//vtvkU9LnpmZiUOHDqFVq1YwMzMr0rq8adh2hmG7GYbtZji2nWHYboZhuxmG7WY4tp1hilO7JSUloXTp0kYLlHQeevfzzz9j0aJFqF+/PgYOHIju3bvDxsYGnp6e8PT0NGjjLi4uqFq1qlqaj48PduzYoTW/hYUFLCwsNNLNzMyKfMeoFKe6vGnYdoZhuxmG7WY4tp1h2G6GYbsZhu1mOLadYYpDuxl7+zpPD37jxg1ERkaiUqVKGDlyJJydndG/f3+13iB9+fn54dq1a2pp169fNzjwIiIiIiIiMga9nqPUuHFjhIeH48GDB1iyZAlu3LgBf39/+Pj4YP78+Xj48KFeGx81ahT+/PNPzJo1Czdv3sTGjRuxcuVKDB06VK9yiIiIiIiIjEnvB84CgI2NDfr374+oqChcv34dQUFBmD17Njw8PPQqp169eti5cyc2bdqE6tWrY/r06Vi8eLFez2IiIiIiIiIyNr2nB8/p5cuXiIqKwu+//45nz56hcuXKepfRoUMHdOjQoSDVICIiIiIiMiqDepSOHz+O/v37w8XFBSNGjEClSpUQFRWFmJgYY9ePiIiIiIjotdO5RykhIQHr1q1DeHg4rl+/jgYNGmDhwoXo0aMHbG1tC7OOREREREREr5XOgZK7uztKlSqF3r17Y8CAAfDx8SnMehERERERERUZnQOlrVu34sMPP4SpaYFuayIiIiIiIir2dI56goKCCrMeRERERERExYZBkzkQERERERG9zRgoERERERER5cJAiYiIiIiIKBe9A6X+/fvjxYsXGukvX75E//79jVIpIiIiIiKioqR3oLRu3TqkpqZqpKempuLHH380SqWIiIiIiIiKks6z3iUlJUEIASEEXrx4AUtLS2mdQqHA3r17UaZMmUKpJBERERER0eukc6BUokQJyGQyyGQyVKpUSWO9TCbD1KlTjVo5IiIiIiKioqBzoBQZGQkhBJo3b44dO3agZMmS0jpzc3N4enrC1dW1UCpJRERERET0OukcKDVp0gQAEBsbCw8PD8hkskKrFBERERERUVHSezKHI0eOYPv27Rrp27Ztw7p164xSKSIiIiIioqKkc4+SyuzZs7FixQqN9DJlymDQoEEICQkxSsWIiIio4BQKBTIzM4u6GnrLzMyEqakp0tLSoFAoiro6bwy2m+HYdoZ5ne1mZmYGuVxeqNvISe9A6c6dOyhfvrxGuqenJ+7cuWOUShEREVHBCCHw4MEDPH/+vKirYhAhBJydnREfH8/h/npguxmObWeY191uJUqUgLOz82vZlt6BUpkyZXDx4kV4eXmppUdHR6NUqVLGqhcREREVgCpIKlOmDKytrd+4E7/s7GwkJyfD1tYWJiZ63ynwzmK7GY5tZ5jX1W5CCKSkpODRo0cAABcXl0LbloregVLPnj0x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ioiIUGpqqkpLS+0uy68ISn6wdu1aPfTQQ5o/f74++ugjDR8+XNddd52OHj1qd2kBrbq6WsOHD9czzzxjdylBZcuWLcrMzNTWrVtVWFiouro6TZ48WdXV1XaXFtASEhK0dOlSbd++Xdu2bdM111yjadOmadeuXXaXFjRKS0v17LPPatiwYXaXEhSGDBmiysrKho+SkhK7SwoKX3/9ta6++mqFhoZq48aN+sc//qEnn3xSP/rRj+wuLaCVlpY2er0VFhZKkm6++WabKwtsy5Yt08qVK7VixQp9+umnWrZsmX7/+9/r6aeftru0gPerX/1KhYWFevnll1VeXq7Jkyfr2muv1cGDB+0uzW9YHtwPRo8erauuukorVqyQJHk8HiUmJuqBBx7Q3Llzba4uODgcDhUUFOimm26yu5Sg89VXXykmJkZbtmzR+PHj7S4nqHTt2lVPPPGE/uM//sPuUgLeqVOnNGLECP3pT3/SokWL9G//9m9avny53WUFrAULFmjdunUqKyuzu5SgM3fuXL333nsqLi62u5Sglp2drTfffFOff/65HA6H3eUErBtuuEE9e/bUCy+80LDv3//93xUREaG//OUvNlYW2E6fPq2oqCi9/vrrSktLa9g/cuRITZkyRYsWLbKxOv/hjNJFOnv2rLZv365rr722YV9ISIiuvfZaffDBBzZWhvaiqqpKkvdNP3zjdrv1yiuvqLq6WmPGjLG7nKCQmZmptLS0Rj/rcGGff/654uLi1LdvX91+++3av3+/3SUFhTfeeEOjRo3SzTffrJiYGKWkpOi5556zu6ygcvbsWf3lL3/RrFmzCEk/IDU1Ve+8844+++wzSdLHH3+skpISTZkyxebKAtu3334rt9utDh06NNofERFxSZ09v8zuAoLdsWPH5Ha71bNnz0b7e/bsqX/+8582VYX2wuPxKDs7W1dffbWuvPJKu8sJeOXl5RozZozOnDmjyMhIFRQUaPDgwXaXFfBeeeUVffTRR5fc3PPWNHr0aL300ksaMGCAKisrtXDhQo0bN047d+5UVFSU3eUFtH/9619auXKlHnroIf3mN79RaWmpfv3rXyssLEwZGRl2lxcU1q1bp2+++UZ33XWX3aUEvLlz58rlcmngwIFyOp1yu91avHixbr/9drtLC2hRUVEaM2aMfve732nQoEHq2bOn/vrXv+qDDz5Qv3797C7PbwhKQBDLzMzUzp07L6mjN61pwIABKisrU1VVlfLy8pSRkaEtW7YQli6goqJCWVlZKiwsbHLkEOf3/aPRw4YN0+jRo9W7d2+9+uqrTPX8AR6PR6NGjdKSJUskSSkpKdq5c6f++7//m6DkoxdeeEFTpkxRXFyc3aUEvFdffVVr1qxRbm6uhgwZorKyMmVnZysuLo7X2w94+eWXNWvWLMXHx8vpdGrEiBG67bbbtH37drtL8xuC0kXq3r27nE6njhw50mj/kSNH1KtXL5uqQntw//33680331RRUZESEhLsLicohIWFNRzpGjlypEpLS5WTk6Nnn33W5soC1/bt23X06FGNGDGiYZ/b7VZRUZFWrFih2tpaOZ1OGysMDl26dNEVV1yhL774wu5SAl5sbGyTgxeDBg3Sa6+9ZlNFweXLL7/U22+/rfz8fLtLCQqzZ8/W3Llz9ctf/lKSNHToUH355Zd6/PHHCUo/4PLLL9eWLVtUXV0tl8ul2NhY3Xrrrerbt6/dpfkN1yhdpLCwMI0cOVLvvPNOwz6Px6N33nmHax/QKgzD0P3336+CggL97//+r/r06WN3SUHL4/GotrbW7jIC2sSJE1VeXq6ysrKGj1GjRun2229XWVkZIclHp06d0p49exQbG2t3KQHv6quvbnLLg88++0y9e/e2qaLgsnr1asXExDS6wB7nV1NTo5CQxm+HnU6nPB6PTRUFn06dOik2NlZff/21Nm3apGnTptldkt9wRskPHnroIWVkZGjUqFH68Y9/rOXLl6u6ulp333233aUFtFOnTjU6urp3716VlZWpa9euSkpKsrGywJaZmanc3Fy9/vrrioqK0uHDhyVJnTt3VkREhM3VBa558+ZpypQpSkpK0smTJ5Wbm6vNmzdr06ZNdpcW0KKioppc/9apUyd169aN6+Iu4OGHH9bUqVPVu3dvHTp0SPPnz5fT6dRtt91md2kB78EHH1RqaqqWLFmiW265RR9++KFWrVqlVatW2V1awPN4PFq9erUyMjJ02WW8xfPF1KlTtXjxYiUlJWnIkCHasWOH/vjHP2rWrFl2lxbwNm3aJMMwNGDAAH3xxReaPXu2Bg4ceGm9/zXgF08//bSRlJRkhIWFGT/+8Y+NrVu32l1SwHv33XcNSU0+MjIy7C4toDXXM0nG6tWr7S4toM2aNcvo3bu3ERYWZvTo0cOYOHGi8T//8z92lxWUfvrTnxpZWVl2lxHQbr31ViM2NtYICwsz4uPjjVtvvdX44osv7C4raKxfv9648sorjfDwcGPgwIHGqlWr7C4pKGzatMmQZOzevdvuUoKGy+UysrKyjKSkJKNDhw5G3759jd/+9rdGbW2t3aUFvLVr1xp9+/Y1wsLCjF69ehmZmZnGN998Y3dZfsV9lAAAAADAhGuUAAAAAMCEoAQAAAAAJgQlAAAAADAhKAEAAACACUEJAAAAAEwISgAAAABgQlACAAAAABOCEgAAAACYEJQAAO3Gvn375HA4VFZWZncpAIAAR1ACAPiVw+G44MeCBQsaAov544477jjv806YMEHZ2dlt9xcBALRrl9ldAADg0lJZWdnw+dq1a/XYY49p9+7dDfsiIyN17NgxSdLbb7+tIUOGNDwWERHRdoUCAHABnFECAPhVr169Gj46d+4sh8PRaF9kZGTD2G7dujUZ76vk5GQtWbJEs2bNUlRUlJKSkrRq1apGYz788EOlpKSoQ4cOGjVqlHbs2NHkeXbu3KkpU6YoMjJSPXv21J133tkQ5DZv3qywsDAVFxc3jP/973+vmJgYHTlypKWtAQAEEYISACBoPfnkkw0B6L777tO9997bcPbq1KlTuuGGGzR48GBt375dCxYs0MMPP9zo67/55htdc801SklJ0bZt2/TWW2/pyJEjuuWWWyR9N93vzjvvVFVVlXbs2KFHH31Uzz//vHr27Nnmf18AQNth6h0AwDapqakKCfnumF1xcbFSUlJ8/vrrr79e9913nyRpzpw5euqpp/Tuu+9qwIABys3Nlcfj0QsvvKAOHTpoyJAhOnDggO69996Gr1+xYoVSUlK0ZMmShn0vvviiEhMT9dlnn+mKK67QokWLVFhYqP/8z//Uzp07lZGRoRtvvNEPf3sAQCAjKAEAbLN27VoNGjSoYTsxMbFFXz9s2LCGz+un+B09elSS9Omnn2rYsGHq0KFDw5gxY8Y0+vqPP/5Y7777bqPpgPX27NmjK664QmFhYVqzZo2GDRum3r1766mnnmpRjQCA4ERQAgDYJjExUf369bP89aGhoY22HQ6HPB6Pz19/6tQpTZ06VcuWLWvyWGxsbMPn77//viTpxIkTOnHihDp16mSxYgBAsOAaJQDAJWnQoEH65JNPdObMmYZ9W7dubTRmxIgR2rVrl5KTk9WvX79GH/VhaM+ePXrwwQf13HPPafTo0crIyGhRGAMABCeCEgDgkjRjxgw5HA7dc889+sc//qG///3v+sMf/tBoTGZmpk6cOKHbbrtNpaWl2rNnjzZt2qS7775bbrdbbrdbd9xxh6677jrdfffdWr16tT755BM9+eSTNv2tAABthaAEALgkRUZGav369SovL1dKSop++9vfNpliFxcXp/fee09ut1uTJ0/W0KFDlZ2drS5duigkJESLFy/Wl19+qWeffVaSdzreqlWr9Mgjj+jjjz+2468FAGgjDsMwDLuLAAAAAIBAwhklAAAAADAhKAEAAACACUEJAAAAAEwISgAAAABgQlACAAAAABOCEgAAAACYEJQAAAAAwISgBAAAAAAmBCUAAAAAMCEoAQAAAIAJQQkAAAAATP4f1HAO4BmJKS4AAAAASUVORK5CYII=", "text/plain": [ "
" ] @@ -258,8 +258,8 @@ ], "source": [ "x_vals = list(range(sum(n_sample)))\n", - "print(\"Bound (signal) TFs for gene \" + str(GENE_IDX) + \" are: \" + str(binding_data_tensor[GENE_IDX, :, 0].nonzero().flatten().tolist()))\n", - "print(\"Unbound (noise) TFs for gene \" + str(GENE_IDX) + \" are: \" + str((1 - binding_data_tensor[GENE_IDX, :, 0]).nonzero().flatten().tolist()))\n", + "print(\"Bound (bound) TFs for gene \" + str(GENE_IDX) + \" are: \" + str(binding_data_tensor[GENE_IDX, :, 0].nonzero().flatten().tolist()))\n", + "print(\"Unbound (unbound) TFs for gene \" + str(GENE_IDX) + \" are: \" + str((1 - binding_data_tensor[GENE_IDX, :, 0]).nonzero().flatten().tolist()))\n", "print(binding_data_tensor[GENE_IDX, :, 0])\n", "plt.figure(figsize=(10, 6))\n", "\n", @@ -298,7 +298,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -331,7 +331,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -339,8 +339,8 @@ " return SyntheticDataLoader(\n", " batch_size=32,\n", " num_genes=4000,\n", - " signal_mean=3.0,\n", - " signal=[0.5] * 5,\n", + " bound_mean=3.0,\n", + " bound=[0.5] * 5,\n", " n_sample=[1, 1, 2, 2, 4], # sum of this is num of tfs\n", " val_size=0.1,\n", " test_size=0.1,\n", @@ -383,7 +383,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -399,217 +399,2120 @@ "Train models on data generated with no mean adjustment" ] }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "data_module = get_data_module(0.0)\n", - "num_tfs = sum(data_module.n_sample)\n", - "\n", - "# nonlinear model\n", - "model = get_model(num_tfs)\n", - "trainer = get_trainer()\n", - "trainer.fit(model, data_module)\n", - "test_results = trainer.test(model, datamodule=data_module)\n", - "print(\"Printing test results...\")\n", - "print(test_results)\n", - "model_mses.append(test_results[0][\"test_mse\"])\n", - "\n", - "# linear model\n", - "linear_model = get_linear_model(num_tfs)\n", - "trainer = get_trainer()\n", - "trainer.fit(linear_model, data_module)\n", - "test_results = trainer.test(linear_model, datamodule=data_module)\n", - "print(\"Printing linear model test results\")\n", - "print(test_results)\n", - "linear_model_test_mses.append(test_results[0][\"test_mse\"])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Train models on data generated with normal mean adjustments" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "data_module = get_data_module(3.0)\n", - "num_tfs = sum(data_module.n_sample)\n", - "\n", - "# nonlinear model\n", - "model = get_model(num_tfs)\n", - "trainer = get_trainer()\n", - "trainer.fit(model, data_module)\n", - "test_results = trainer.test(model, datamodule=data_module)\n", - "print(\"Printing test results...\")\n", - "print(test_results)\n", - "model_mses.append(test_results[0][\"test_mse\"])\n", - "\n", - "# linear model\n", - "linear_model = get_linear_model(num_tfs)\n", - "trainer = get_trainer()\n", - "trainer.fit(linear_model, data_module)\n", - "test_results = trainer.test(linear_model, datamodule=data_module)\n", - "print(\"Printing linear model test results\")\n", - "print(test_results)\n", - "linear_model_test_mses.append(test_results[0][\"test_mse\"])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Train model on data generated with dependent mean adjustments (method 3)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# define dictionary of relations between TFs (see generate_in_silico_data.ipynb for an explanation of how this dict is defined / used)\n", - "tf_relationships_dict = {\n", - " 0: [1],\n", - " 1: [8],\n", - " 2: [5, 6],\n", - " 3: [4],\n", - " 4: [5],\n", - " 5: [9],\n", - " 6: [4],\n", - " 7: [1, 4],\n", - " 8: [6],\n", - " 9: [4],\n", - "}\n", - "\n", - "data_module = get_data_module(\n", - " 3.0, \n", - " adjustment_function=perturbation_effect_adjustment_function_with_tf_relationships, \n", - " tf_relationships_dict=tf_relationships_dict\n", - ")\n", - "num_tfs = sum(data_module.n_sample)\n", - "\n", - "print(\"Number of TFs: \", num_tfs)\n", - "\n", - "# nonlinear model\n", - "model = get_model(num_tfs)\n", - "trainer = get_trainer()\n", - "trainer.fit(model, data_module)\n", - "test_results = trainer.test(model, datamodule=data_module)\n", - "print(\"Printing test results...\")\n", - "print(test_results)\n", - "model_mses.append(test_results[0][\"test_mse\"])\n", - "\n", - "# linear model\n", - "linear_model = get_linear_model(num_tfs)\n", - "trainer = get_trainer()\n", - "trainer.fit(linear_model, data_module)\n", - "test_results = trainer.test(linear_model, datamodule=data_module)\n", - "print(\"Printing linear model test results\")\n", - "print(test_results)\n", - "linear_model_test_mses.append(test_results[0][\"test_mse\"])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Train models on data generated using the binary relations between TFs (method 4)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "tf_relationships_dict_boolean_logic = {\n", - " 0: [And(3, 4, 8), Or(3, 7), Or(1, 1)],\n", - " 1: [And(5, Or(7, 8))],\n", - " 2: [],\n", - " 3: [Or(7, 9), And(6, 7)],\n", - " 4: [And(1, 2)],\n", - " 5: [Or(0, 1, 2, 8, 9)],\n", - " 6: [And(0, Or(1, 2))],\n", - " 7: [Or(2, And(5, 6, 9))],\n", - " 8: [],\n", - " 9: [And(6, And(3, Or(0, 9)))],\n", - "}\n", - "\n", - "data_module = get_data_module(\n", - " 3.0, \n", - " adjustment_function=perturbation_effect_adjustment_function_with_tf_relationships_boolean_logic, \n", - " tf_relationships_dict=tf_relationships_dict_boolean_logic\n", - ")\n", - "\n", - "# nonlinear model\n", - "model = get_model(num_tfs)\n", - "trainer = get_trainer()\n", - "trainer.fit(model, data_module)\n", - "test_results = trainer.test(model, datamodule=data_module)\n", - "print(\"Printing test results...\")\n", - "print(test_results)\n", - "model_mses.append(test_results[0][\"test_mse\"])\n", - "\n", - "# linear model\n", - "linear_model = get_linear_model(num_tfs)\n", - "trainer = get_trainer()\n", - "trainer.fit(linear_model, data_module)\n", - "test_results = trainer.test(linear_model, datamodule=data_module)\n", - "print(\"Printing linear model test results\")\n", - "print(test_results)\n", - "linear_model_test_mses.append(test_results[0][\"test_mse\"])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now we can plot the results of our experiment. TODO add explantion for plot here? Probably not the right place to put it (I feel like that belongs in the presentation or something, because this notebook could be modified and the explanation wouldn't make sense)" - ] - }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "GPU available: False, used: False\n", + "TPU available: False, using: 0 TPU cores\n", + "IPU available: False, using: 0 IPUs\n", + "HPU available: False, using: 0 HPUs\n", + "/Users/ericjia/yeastdnnexplorer/yeastdnnexplorer/data_loaders/synthetic_data_loader.py:260: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n", + " X_train, Y_train = torch.tensor(X_train, dtype=torch.float32), torch.tensor(\n", + "/Users/ericjia/yeastdnnexplorer/yeastdnnexplorer/data_loaders/synthetic_data_loader.py:263: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n", + " X_val, Y_val = torch.tensor(X_val, dtype=torch.float32), torch.tensor(\n", + "/Users/ericjia/yeastdnnexplorer/yeastdnnexplorer/data_loaders/synthetic_data_loader.py:266: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n", + " X_test, Y_test = torch.tensor(X_test, dtype=torch.float32), torch.tensor(\n", + "\n", + " | Name | Type | Params\n", + "----------------------------------------------------\n", + "0 | activation | LeakyReLU | 0 \n", + "1 | input_layer | Linear | 704 \n", + "2 | hidden_layers | ModuleList | 2.1 K \n", + "3 | output_layer | Linear | 330 \n", + "4 | dropout | Dropout | 0 \n", + "5 | mae | MeanAbsoluteError | 0 \n", + "6 | SMSE | SMSE | 0 \n", + "----------------------------------------------------\n", + "3.1 K Trainable params\n", + "0 Non-trainable params\n", + "3.1 K Total params\n", + "0.012 Total estimated model params size (MB)\n" + ] + }, { "data": { - "image/png": "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UL16dd555x0KFChA3759WbFihfn1nu6BPnToECaTiQsXLgBw8eJFatasSbJkyUiUKBG5c+dm7dq1XLhwgffffx+AZMmSYTKZaNGiBQDBwcF06dKFVKlS4ebmRpkyZdi3b5/5NaJed8OGDRQsWBB3d3cqVKjArVu3WLduHTlz5sTLy4smTZoQFBRk3i76EPGofTz9LyqGs2fPUrt2bXx8fPD09KRo0aJs3rw5xvv34MEDGjduTKJEiUiXLh0TJ0587u/v8uXLNGzYkKRJk5I8eXJq165tfq+i1KxZk/nz5z93PwA1atTgzp077Ny501z2yy+/ULlyZVKlSmVR9/79+zRv3pxkyZLh4eFB1apVOX36tEUdPz8/MmTIgIeHBx999BH//PNPjNdcsWIFhQoVws3NjSxZstC/f3/CwsL+M1ZrUYItIiL/51s38lFcHuksyz3S6xFdImLXli6F+vXhylNzQV69Gln+OpLsu3fvsn79ejp16kSiRIlirI+69zQiIoLatWtz9+5dtm/fzqZNmzh37hwff/yxRf2zZ8+ybt061q9fz7x58/j555+pXr06V65cYfv27QwbNoxvv/2WP/74w2K77777jnr16nH48GE++eQTGjVqxIkTJ2KN+f79+1SoUIGCBQuyf/9+1q9fz82bN2nYsCHw/wSyadOmBAQE8Oeff/Ldd9/x008/4ePjE+s+jxw5QkBAAEWKFDGXHTp0iGPHjvHVV1/F+tzkF7kvt1OnTgQHB/P7779z9OhRhg0bhqenJ76+vixZsgSAv//+m+vXrzN2bOSF6B49erBkyRJ++eUXDh48SNasWalSpQp379612He/fv2YMGECu3btMieuY8aMYe7cuaxZs4aNGzcyfvz4WOMqVaoU169fN//bsmULbm5uvPfeewA8fPiQatWq8dtvv/Hnn3/y4YcfUrNmTS5dumSxnxEjRpA/f37+/PNPevXqRdeuXdm0aVOsrxkaGkqVKlVInDgxO3bsYOfOnXh6evLhhx8SEhJirlesWDGuXLkSI/F+mouLC5988gkzZ840l/n5+dGqVasYdTt27MiBAwdYuXIlu3fvxjAMqlWrZn7M3h9//EHr1q3p3Lkzhw4d4v3332fgwIEW+9ixYwfNmjWja9euHD9+nKlTp+Ln5xfjwtFrZcgrCwgIMAAjICDA1qE8U0hIiLF8+XIj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2LBz506GDx/OqVOnmDhxIosWLaJr166xvuYnn3yCt7c3tWvXZseOHZw/f55t27bRpUsXrkS7T2LHjh2ULVvWPFT8vyRLlozr168/89nt2bJlo1q1arRv3x5/f38OHz7Mp59+Srp06cy/yy5durB+/Xp+/PFHTp8+zYQJE1i/fr3Ffr7//ntmzZpF//79OXbsGCdOnGD+/Pl8++23cYrTGpRgi4iIiIg8h6MjRN36+nSSHbU8ZkxkPWvLkiULBw8e5P333+err74iT548VKpUid9++838HGKTycSKFStIliwZ7733Hh988AFZsmRhwYIFVomhf//+zJ8/n3z58jFr1izmzZv3zJ7atGnTsnPnTsLDw6lcuTJ58+alW7duJE2aFAcHBwYNGsTFixeZOnUqEDlsfNq0aXz77bccPnz4mTG0adMmxrDlYsWKsX//frJmzUrbtm3JmTMntWrV4tixY4wZMwaIHKI9b948Tp48Sb58+Rg2bFiMmafDw8Pp1KkTOXPm5MMPP+Tdd99l0qRJAKRLl47+/fvTq1cvfHx8zBcWhg4dSr169WjatCmFChXizJkzbNiwgWTJkr3Uexwbf39/wsPD+eyzz0iTJo35X1RyPGrUKJIlS0apUqWoWbMmVapUoVChQjH289VXX7F//34KFizIwIEDGTVqFFWqVIn1NT08PPj999/JkCEDdevWJWfOnLRu3ZonT57g5eVlrjd//nzatm37QseTNGnS594KMHHiRAoVKkSNGjUoWbIkhmGwdu1a87D6EiVKMH36dMaOHUv+/PnZuHFjjMS5SpUqrF69mo0bN1K0aFFKlCjB6NGjyZgx4wvF+ipMhjVnCLBTgYGBJEmShICAAIsPXnwSGhrK2rVrqVatWox7P0REYqN2Q0ReRnxsO548ecL58+fJnDnzK92HuXQpdO1qOeGZr29kch3LLZ9vBZPJxLJly6hTp45N43j8+DHZs2dnwYIFMSa2kjdr3bp1fPXVVxw5ciTGZGUvKyIigsDAQLy8vN7YUO7YPK+tiGvOp0nORERERETioG5dqF07crbw69cj77kuW/b19FyLJXd3d2bNmsWdO3dsHYrde/ToETNnzrRacv220bsiIiIiIhJHjo5Qvryto7BP5fXGxwv169e3dQjxmhJsERERERGJle4mFXkxmuRMRERERERExAqUYIuIiIiI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YgVKsEVERERERESsQAm2iIiIiIiIiBUowRYRERERERGxAiXYIiIiIiIiIlagBBu4evUqn376KSlSpMDd3Z28efOyf/9+W4clIiIiIiIiCYiTrQOwtXv37lG6dGnef/991q1bR8qUKTl9+jTJkiWzdWgiIiIiIiKSgNh9gj1s2DB8fX2ZOXOmuSxz5sw2jEhEREREREQSIrtPsFeuXEmVKlVo0KAB27dvJ126dHTs2JG2bds+c5vg4GCCg4PNy4GBgQCEhoYSGhr62mN+GVFxxdf4RCT+UbshIi9DbYeIvKiE0G7ENTaTYRjGa44lXnNzcwPgyy+/pEGDBuzbt4+uXbsyZcoUmjdvHus2/fr1o3///jHK586di4eHx2uNV0RERERERN6soKAgmjRpQkBAAF5eXs+sZ/cJtouLC0WKFGHXrl3msi5durBv3z52794d6zax9WD7+vpy586d577ZthQaGsqmTZuoVKkSzs7Otg5HRBIAtRsi8jLUdojIi0oI7UZgYCDe3t7/mWDb/RDxNGnSkCtXLouynDlzsmTJkmdu4+rqiqura4xyZ2fnePuBiJIQYhSR+EXthoi8DLUdIvKi4nO7Ede47P4xXaVLl+bvv/+2KDt16hQZM2a0UUQiIiIiIiKSENl9gv3FF1+wZ88eBg8ezJkzZ5g7dy7Tpk2jU6dOtg5NREREREREEhC7T7CLFi3KsmXLmDdvHnny5GHAgAGMGTOGTz75xNahiYiIiIiISAJi9/dgA9SoUYMaNWrYOgwRERERERFJwOy+B1tERERERETEGpRgi4iIiIiIiFiBEmwRERERERERK1CCLSIiIiIiImIFSrBFRERERERErEAJtoiIiIiIiIgVKMEWERERERERsQIl2CIiIiIiIiJWoARbRERERERExAqUYIuIiIiIiIhYgRJsEREREREREStQgi0iIiIiIiJiBUqwRURERERERKxACbaIiIiIiIiIFSjBFhEREREREbECJdgiIiIiIiIiVqAEW0RERERERMQKlGCLiIiIiIiIWIESbBERERERERErUIItIiIiIiIiYgVKsEVERERERESsQAm2iIiIiIiIiBUowRYRERERERGxAiXYIiIiIiIiIlagBFtERERERETECpRgi4iIiIiIiFiBEmwRERERERERK1CCLSIiIiIiImIFSrBFRERERERErEAJ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+fPnc/DgQfbt2xen+kOGDKF///4xyjdu3IiHh4e1w7OqTZs22ToEEUlg1G6IyH9zhERzLUo2JZrx/4XDwOG1bzYkEUlw4vM5R1BQUJzqmQzDMF5zLPHa5cuXKVKkCJs2bTLfe12+fHkKFCjAmDFjYt0mth5sX19f7ty5g5eX15sI+4WFhoayadMmKlWqhLOzs63DEZEEQO2GiMTJLf//Dwsnsud6U6IZVHrUCmce/79euTWQqowNAhSR+C4hnHMEBgbi7e1NQEDAc3M+u+/BPnDgALdu3aJQoULmsvDwcH7//XcmTJhAcHAwjo6OFtu4urri6uoaY1/Ozs7x9gMRJSHEKCLxi9oNEXmu0BsQPZH+lzOPLRPs0BugtkREniM+n3PENS67T7ArVqzI0aNHLcpatmxJjhw56NmzZ4zkWkRERESicU9j3XoiIgmY3SfYiRMnJk+ePBZliRIlIkWKFDHKRUREROQpKcuCR3oIugrEduehKXJ9yrJvOjIRkTdOj+kSERERkZfn4AiFx/67YHpq5b/LhcdE1hMRecvZfQ92bLZt22brEEREREQSDt+6UHYxHOgKQf/8v9wjfWRy7VvXZqGJiLxJSrBFRERE5NX51oV0teH677A/MHLW8DTvqedaROyKhoiLiIiIiHU4OP7/UVypyii5FhG7owRbRERERERExAqUYIuIiIiIiIhYgRJsEREREREREStQgi0iIiIiIiJiBUqwRURERERERKxACbaIiIiIiIiIFSjBFhEREREREbECJdgiIiIiIiIiVqAEW0RERERERMQKlGCLiIiIiIiIWIESbBERERERERErUIItIiIiIiIiYgVKsEVERERERESsQAm2PYgIh1v+kT/f8o9cFhEREREREatSgv22u7wUVmaC7dUjl7dXj1y+vNSWUYmIiIiIiLx1lGC/zS4vhR31IeiKZXnQ1chyJdkiIiIiIiJWowT7bRURDge6AkYsK/8tO9BNw8VFRERERESsRAn22+r2jpg91xYMCLocWU9ERERERERemRLst9Xj69atJyIiIiIiIs+lBPtt5Z7GuvVExK6Eh4P/vw8f8PePXBYRERGR51OC/bZKWRY80gOmZ1QwgYdvZD0RkWiWLoVMmaD6vw8fqF49cnmp5kUUEREReS4l2G8rB0coPPbfhaeT7H+XC4+JrCci8q+lS6F+fbjy1BQOV69GlivJFhEREXk2JdhvM9+6UHYxeKSzLPdIH1nuW9c2cYlIvBQeDl27ghHLwweiyrp103BxERERkWdRgv22860LtS5AuTWRy+XWQK3zSq5FJIYdO2L2XEdnGHD5cmQ9EREREYlJCbY9cHCEVGUif05VRsPCRSRW1+P4UIG41hMRERGxN0qwRUQEgDRxfKhAXOuJiIiI2Bsl2CIiAkDZspA+PZie8fABkwl8fSPriYiIiEhMSrCByZMnky9fPry8vPDy8qJkyZKsW7fO1mGJiLxRjo4w9t+HDzydZEctjxkTWU9EREREYlKCDaRPn56hQ4dy4MAB9u/fT4UKFahduzbHjh2zdWgiIm9U3bqweDGke+rhA+nTR5bX1fyIIiIiIs/kZOsA4oOaNWtaLA8aNIjJkyezZ88ecufObaOoRERso25dqF0bfv8dAgNhzRp47z31XIuIiIj8FyXYTwkPD2fRokU8evSIkiVLxlonODiY4OBg83JgYCAAoaGhhIaGvpE4X1RUXPE1PhGJf4oXD2XTpsj/IyIgIsLWEYlIQqBzDhF5UQmh3YhrbCbDMIzXHEuCcPToUUqWLMmTJ0/w9PRk7ty5VKtWLda6/fr1o3///jHK586di4eHx+sOVURERERERN6goKAgmjRpQkBAAF5eXs+spwT7XyEhIVy6dImAgAAWL17MTz/9xPbt28mVK1eMurH1YPv6+nLnzp3nvtm2FBoayqZNm6hUqRLOzs62DkdEEgC1GyLyMtR2iMiLSgjtRmBgIN7e3v+ZYGuI+L9cXFzImjUrAIULF2bfvn2MHTuWqVOnxqjr6uqKq6trjHJnZ+d4+4GIkhBiFJH4Re2GiLwMtR0i8qLic7sR17g0i/gzREREWPRSi4iIiIiIiDyPerCBb775hqpVq5IhQwYePHjA3Llz2bZtGxs2bLB1aCIiIiIiIpJAKMEGbt26RbNmzbh+/TpJkiQhX758bNiwgUqVKtk6NBEREREREUkglGADP//8s61DEBERERERkQRO92CLiIiIiIiIWIESbBERERERERErUIItIiIiIiIiYgVKsEVERERERESsQAm2iIiIiIiIiBUowRYRERERERGxAiXYIiIiIiIiIlagBFtERERERETECpRgi4iIiIiIiFiBEmwRERERERERK1CCLSIiIiIiImIFSrBFRERERERErEAJtoiIiIiIiIgVKMEWERERERERsQIl2CIiIiJiFeHh4O8f+bO/f+SyiIg9UYItIiIiIq9s6VLIlAmqV49crl49cnnpUltGJSLx3dt2YU4JtoiIiIi8kqVLoX59uHLFsvzq1chyJdkiEpu38cKcEmwREREReWnh4dC1KxhGzHVRZd26JfxeKRGxrrf1wpwSbBERERF5aTt2xDxBjs4w4PLlyHoiIvB2X5hTgi0iIiIiL+36devWE5G339t8YU4JtoiIiIi8tDRprFtPRN5+b/OFOSXYIiIiIvLSypaF9OnBZIp9vckEvr6R9URE4O2+MKcEW0RERERemqMjjB0b+fPTSXbU8pgxkfVERODtvjCnBFtEREREXkndurB4MaRLZ1mePn1ked26tolLROKnt/nCnBJsEREREXlldevChQuwZk3k8po1cP68kmsRid3bemFOCbaIiIiIWIWjI5QpE/lzmTIJs/dJRN6ct/HCnBJsERERERERsYm37cKcEmwRERERERERK1CCLSIiIiIiImIFSrCBIUOGULRoURInTkyqVKmoU6cOf//9t63DEhERERERkQRECTawfft2OnXqxJ49e9i0aROhoaFUrlyZR48e2To0ERERERERSSCcbB1AfLB+/XqLZT8/P1KlSsWBAwd47733bBSViIiIiIiIJCTqwY5FQEAAAMmTJ7dxJCIiIiIiIpJQqAf7KREREXTr1o3SpUuTJ0+eWOsEBwcTHBxsXg4MDAQgNDSU0NDQNxLni4qKK77GJyLxj9oNEXkZajtE5EUlhHYjrrGZDMMwXnMsCUqHDh1Yt24d/v7+pE+fPtY6/fr1o3///jHK586di4eHx+sOUURERERERN6goKAgmjRpQkBAAF5eXs+spwQ7ms6dO7NixQp+//13MmfO/Mx6sfVg+/r6cufOnee+2bYUGhrKpk2bqFSpEs7OzrYOR0QSALUbIvIy1HaIyItKCO1GYGAg3t7e/5lga4g4YBgGn3/+OcuWLWPbtm3PTa4BXF1dcXV1jVHu7Owcbz8QURJCjCISv6jdEJGXobZDRF5UfG434hqXEmygU6dOzJ07lxUrVpA4cWJu3LgBQJIkSXB3d7dxdCIiIiIiIpIQaBZxYPLkyQQEBFC+fHnSpElj/rdgwQJbhyYiIiIiIiIJhHqwiRwiLiIiIiIiIvIq1IMtIiIiIiIiYgVKsEVERERERESsQAm2iIiIiIiIiBUowRYRERERERGxAiXYIiIiIiIiIlagBFtERERERETECpRgi4iIiIiIiFiBEmwRERERERERK1CCLSIiIiIiImIFSrBFRERERERErEAJth0IDwd//8if/f0jl0VERERERMS6lGC/5ZYuhUyZoHr1yOXq1SOXly61ZVQiIiIiIiJvHyXYb7GlS6F+fbhyxbL86tXIciXZIiIiIiIi1qME+y0VHg5du4JhxFwXVdatm4aLi4iIiIiIWIsS7LfUjh0xe66jMwy4fDmynoiIiIiIiLw6JdhvqevXrVtPREREREREnk8J9lsqTRrr1hMREREREZHnU4L9lipbFtKnB5Mp9vUmE/j6RtYTERERERGRV6cE+y3l6Ahjx0b+/HSSHbU8ZkxkPREREREREXl1SrDfYnXrwuLFkC6dZXn69JHldevaJi4REREREZG3kZOtA5DXq25dqF0bfv8dAgNhzRp47z31XIuIiIiIiFiberDtgKMjlCkT+XOZMkquRUREREREXgcl2CIiIiIiIiJWoARbRERERERExAqUYIuIiIiIiIhYgRJsEREREREREStQgi0iIiIiIiJiBXpMlxUYhgFAYGCgjSN5ttDQUIKCgggMDMTZ2dnW4YhIAqB2Q0RehtoOEXlRCaHdiMr1onK/Z1GCbQUPHjwAwNfX18aRiIiIiIiIyOvy4MEDkiRJ8sz1JuO/UnD5TxEREVy7do3EiRNjMplsHU6sAgMD8fX15fLly3h5edk6HBFJANRuiMjLUNshIi8qIbQbhmHw4MED0qZNi4PDs++0Vg+2FTg4OJA+fXpbhxEnXl5e8fZDKyLxk9oNEXkZajtE5EXF93bjeT3XUTTJmYiIiIiIiIgVKMEWERERERERsQIl2HbC1dWVvn374urqautQRCSBULshIi9DbYeIvKi3qd3QJGciIiIiIiIiVqAebBERERERERErUIItIiIiIiIiYgVKsEVERERERESsQAl2Aqdb6EVEREREROIHJdgJWEREBCaTydZhiEgCowtzIvKi1G6IyIuy13ZDCXYCtXv3bq5fvw5A9+7dGTt2rI0jEpGEQBfmRORFnThxgqCgIAC+//57tm3bZtuARCTei36+cerUKe7du2fjiN4cJ1sHIC8mIiKCu3fvUrp0aRo1akSiRIlYtGgR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EydSoEABPvjgAw4dOkSFChXw8vLi/fffJyQkxNJNFnkl6Am2iIjIK2jp0qX069eP3r17s3XrVry8vJg7d6654FBGobLp06djMBjo3bs38fHx9O7d28ItFxFLq1u3LjY2NqSlpfHNN98QGRnJvn372LFjB/7+/jx69Ii0tDSaNm3KW2+9xYwZMzQLRuRPMpgy9uYQERGRV8KcOXMYOnQoW7ZsoXnz5ixevJixY8fy6aefMnfuXIAsIRugf//+nDlzhj179lio1SLyMshYRgJw8OBBvL29uX//Prt27aJQoULs27ePDRs20L17d955550s56anp2tauMh/oYAtIiLyitm7dy83btzgk08+AeDhw4esXbsWHx+f/xiyMw+sRcR6Ze4LoqKiGDlyJNevX+fbb7/FycmJxMREcubMqT5D5H+ggC0iIvKKyjz4ffToEWvWrHkmZD+9hY4GzCLW5Y/6gKdD9qhRo7h69Sq7d++mRIkSz9ygE5E/R3M8REREXlGZg7KDgwOffPIJvr6+BAcHM2TIEIBnttBRuBaxHikpKeY+YO/evTx69MjcB2SEbIBatWoxbdo0SpcuTeXKlblz547Ctcj/SAFbREQkm8gcsufOnWt+ii0i1mf79u3UqVMHgGHDhjFkyBCSk5OzvOfpkD1hwgR69OhBgQIFXnh7RbILVREXERHJRhwcHOjQoQOFCxemVatWlm6OiFiAyWTCxsaGxMREypUrR0xMDMeOHaNgwYLPvDfzrJZ69epRr1494NkaDiLy52gNtoiISDb29PpLEbEePXv2JCgoiGrVqnH8+HFAfYLI301TxEVERLIxDaRFrEfGczOTyUR6ejqtWrViyZIl2NjY8MEHH5CcnIydnd0zU8VF5PnRE2wRERERkVdc5j2q4+PjMRgM5MqVC4B///vfDB8+nNy5c/P999+bp36HhobSqFEj8ubNa7F2i2Q3eoItIiIiIvKKywjXkyZNolWrVtSpU4eVK1cC0KhRI/z9/YmPj6dWrVocO3aMxo0b88UXX5AnTx5LNlsk21HAFhERERF5RaWnp5v/29/fnwULFvDhhx/y7rvv0rNnT8aNG0daWhofffQRCxYswGg04uLiQnJyMtu2bctSSVxE/jotzBIREREReUVlPLk+c+YMCQkJBAYG0qxZMwAaNGiAm5sbJpOJ8ePHU7duXSIjI/nx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", + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, "text/plain": [ - "
" + "Sanity Checking: | …" ] }, "metadata": {}, "output_type": "display_data" - } - ], - "source": [ - "data_gen_methods = [\"No Mean Adjustment\", \"Dependent Mean Adjustment\", \"TF Dependent Mean Adjustment\", \"TF Dependent Mean Adjust with Boolean Logic\"]\n", - "plt.figure(figsize=(10, 6))\n", - "plt.scatter(data_gen_methods, model_mses, color='blue')\n", - "plt.scatter(data_gen_methods, linear_model_test_mses, color='orange')\n", - "plt.title('Model MSE Comparison (bound mean = 3.0)')\n", - "plt.xlabel('Model')\n", - "plt.ylabel('MSE')\n", - "plt.grid(True)\n", - "plt.xticks(rotation=45, ha=\"right\")\n", - "plt.legend(['Complex (Customizable) Model', 'Linear Model'])\n", - "plt.tight_layout() # Adjust layout to make room for the rotated x-axis labels\n", - "plt.show()" - ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/ericjia/Library/Caches/pypoetry/virtualenvs/yeastdnnexplorer-iu4_cpc2-py3.11/lib/python3.11/site-packages/torch/utils/data/dataloader.py:558: UserWarning: This DataLoader will create 15 worker processes in total. Our suggested max number of worker in current system is 8 (`cpuset` is not taken into account), which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.\n", + " warnings.warn(_create_warning_msg(\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "d02b096d74cd495494b5fcc85f4ace17", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Training: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "`Trainer.fit` stopped: `max_epochs=10` reached.\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "edd3984a91d948f19aa575e99e0c23e7", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Testing: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", + " Test metric DataLoader 0\n", + "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", + " test_mae 0.9961513876914978\n", + " test_mse 1.5293521881103516\n", + " test_smse 8.054170608520508\n", + "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "GPU available: False, used: False\n", + "TPU available: False, using: 0 TPU cores\n", + "IPU available: False, using: 0 IPUs\n", + "HPU available: False, using: 0 HPUs\n", + "\n", + " | Name | Type | Params\n", + "----------------------------------------------\n", + "0 | mae | MeanAbsoluteError | 0 \n", + "1 | SMSE | SMSE | 0 \n", + "2 | linear1 | Linear | 110 \n", + "----------------------------------------------\n", + "110 Trainable params\n", + "0 Non-trainable params\n", + "110 Total params\n", + "0.000 Total estimated model params size (MB)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Printing test results...\n", + "[{'test_mse': 1.5293521881103516, 'test_mae': 0.9961513876914978, 'test_smse': 8.054170608520508}]\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Sanity Checking: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/ericjia/Library/Caches/pypoetry/virtualenvs/yeastdnnexplorer-iu4_cpc2-py3.11/lib/python3.11/site-packages/pytorch_lightning/loops/fit_loop.py:298: The number of training batches (9) is smaller than the logging interval Trainer(log_every_n_steps=50). Set a lower value for log_every_n_steps if you want to see logs for the training epoch.\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "4aee007cf5864b73a5513a10bae06a30", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Training: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "`Trainer.fit` stopped: `max_epochs=10` reached.\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "121686510d0c4a818c083d308800cc56", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Testing: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", + " Test metric DataLoader 0\n", + "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", + " test_mae 1.3378851413726807\n", + " test_mse 3.5256669521331787\n", + " test_smse 18.614917755126953\n", + "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", + "Printing linear model test results\n", + "[{'test_mse': 3.5256669521331787, 'test_mae': 1.3378851413726807, 'test_smse': 18.614917755126953}]\n" + ] + } + ], + "source": [ + "data_module = get_data_module(0.0)\n", + "num_tfs = sum(data_module.n_sample)\n", + "\n", + "# nonlinear model\n", + "model = get_model(num_tfs)\n", + "trainer = get_trainer()\n", + "trainer.fit(model, data_module)\n", + "test_results = trainer.test(model, datamodule=data_module)\n", + "print(\"Printing test results...\")\n", + "print(test_results)\n", + "model_mses.append(test_results[0][\"test_mse\"])\n", + "\n", + "# linear model\n", + "linear_model = get_linear_model(num_tfs)\n", + "trainer = get_trainer()\n", + "trainer.fit(linear_model, data_module)\n", + "test_results = trainer.test(linear_model, datamodule=data_module)\n", + "print(\"Printing linear model test results\")\n", + "print(test_results)\n", + "linear_model_test_mses.append(test_results[0][\"test_mse\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Train models on data generated with normal mean adjustments" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "GPU available: False, used: False\n", + "TPU available: False, using: 0 TPU cores\n", + "IPU available: False, using: 0 IPUs\n", + "HPU available: False, using: 0 HPUs\n", + "\n", + " | Name | Type | Params\n", + "----------------------------------------------------\n", + "0 | activation | LeakyReLU | 0 \n", + "1 | input_layer | Linear | 704 \n", + "2 | hidden_layers | ModuleList | 2.1 K \n", + "3 | output_layer | Linear | 330 \n", + "4 | dropout | Dropout | 0 \n", + "5 | mae | MeanAbsoluteError | 0 \n", + "6 | SMSE | SMSE | 0 \n", + "----------------------------------------------------\n", + "3.1 K Trainable params\n", + "0 Non-trainable params\n", + "3.1 K Total params\n", + "0.012 Total estimated model params size (MB)\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Sanity Checking: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "72376aa92d0645bf84f29376c378dff0", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Training: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "`Trainer.fit` stopped: `max_epochs=10` reached.\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "d887cf27ea7d48b4ae10ec19eb6c223b", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Testing: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", + " Test metric DataLoader 0\n", + "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", + " test_mae 1.4062790870666504\n", + " test_mse 3.1310036182403564\n", + " test_smse 7.031686305999756\n", + "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "GPU available: False, used: False\n", + "TPU available: False, using: 0 TPU cores\n", + "IPU available: False, using: 0 IPUs\n", + "HPU available: False, using: 0 HPUs\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Printing test results...\n", + "[{'test_mse': 3.1310036182403564, 'test_mae': 1.4062790870666504, 'test_smse': 7.031686305999756}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n", + " | Name | Type | Params\n", + "----------------------------------------------\n", + "0 | mae | MeanAbsoluteError | 0 \n", + "1 | SMSE | SMSE | 0 \n", + "2 | linear1 | Linear | 110 \n", + "----------------------------------------------\n", + "110 Trainable params\n", + "0 Non-trainable params\n", + "110 Total params\n", + "0.000 Total estimated model params size (MB)\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Sanity Checking: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "2c1542f49b1349a2a04b9046d2be5805", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Training: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "`Trainer.fit` stopped: `max_epochs=10` reached.\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "a1a2fa38661a4675837a6d72dbd83029", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Testing: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", + " Test metric DataLoader 0\n", + "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", + " test_mae 2.076347827911377\n", + " test_mse 8.463006973266602\n", + " test_smse 19.093679428100586\n", + "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", + "Printing linear model test results\n", + "[{'test_mse': 8.463006973266602, 'test_mae': 2.076347827911377, 'test_smse': 19.093679428100586}]\n" + ] + } + ], + "source": [ + "data_module = get_data_module(3.0)\n", + "num_tfs = sum(data_module.n_sample)\n", + "\n", + "# nonlinear model\n", + "model = get_model(num_tfs)\n", + "trainer = get_trainer()\n", + "trainer.fit(model, data_module)\n", + "test_results = trainer.test(model, datamodule=data_module)\n", + "print(\"Printing test results...\")\n", + "print(test_results)\n", + "model_mses.append(test_results[0][\"test_mse\"])\n", + "\n", + "# linear model\n", + "linear_model = get_linear_model(num_tfs)\n", + "trainer = get_trainer()\n", + "trainer.fit(linear_model, data_module)\n", + "test_results = trainer.test(linear_model, datamodule=data_module)\n", + "print(\"Printing linear model test results\")\n", + "print(test_results)\n", + "linear_model_test_mses.append(test_results[0][\"test_mse\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Train model on data generated with dependent mean adjustments (method 3)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "GPU available: False, used: False\n", + "TPU available: False, using: 0 TPU cores\n", + "IPU available: False, using: 0 IPUs\n", + "HPU available: False, using: 0 HPUs\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of TFs: 10\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n", + " | Name | Type | Params\n", + "----------------------------------------------------\n", + "0 | activation | LeakyReLU | 0 \n", + "1 | input_layer | Linear | 704 \n", + "2 | hidden_layers | ModuleList | 2.1 K \n", + "3 | output_layer | Linear | 330 \n", + "4 | dropout | Dropout | 0 \n", + "5 | mae | MeanAbsoluteError | 0 \n", + "6 | SMSE | SMSE | 0 \n", + "----------------------------------------------------\n", + "3.1 K Trainable params\n", + "0 Non-trainable params\n", + "3.1 K Total params\n", + "0.012 Total estimated model params size (MB)\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Sanity Checking: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "63b2ea19474e478a8b313f50b35c046a", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Training: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "`Trainer.fit` stopped: `max_epochs=10` reached.\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "fdcf8b63a1284789b141f4e178132fa1", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Testing: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", + " Test metric DataLoader 0\n", + "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", + " test_mae 1.116166114807129\n", + " test_mse 2.3565773963928223\n", + " test_smse 7.7063517570495605\n", + "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "GPU available: False, used: False\n", + "TPU available: False, using: 0 TPU cores\n", + "IPU available: False, using: 0 IPUs\n", + "HPU available: False, using: 0 HPUs\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Printing test results...\n", + "[{'test_mse': 2.3565773963928223, 'test_mae': 1.116166114807129, 'test_smse': 7.7063517570495605}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n", + " | Name | Type | Params\n", + "----------------------------------------------\n", + "0 | mae | MeanAbsoluteError | 0 \n", + "1 | SMSE | SMSE | 0 \n", + "2 | linear1 | Linear | 110 \n", + "----------------------------------------------\n", + "110 Trainable params\n", + "0 Non-trainable params\n", + "110 Total params\n", + "0.000 Total estimated model params size (MB)\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Sanity Checking: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "5391c299f8c04b2e862d2dc8262032de", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Training: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "`Trainer.fit` stopped: `max_epochs=10` reached.\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "7bb86cad87c84481a514913c82e5a306", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Testing: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", + " Test metric DataLoader 0\n", + "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", + " test_mae 1.30489981174469\n", + " test_mse 3.8554797172546387\n", + " test_smse 12.853811264038086\n", + "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", + "Printing linear model test results\n", + "[{'test_mse': 3.8554797172546387, 'test_mae': 1.30489981174469, 'test_smse': 12.853811264038086}]\n" + ] + } + ], + "source": [ + "# define dictionary of relations between TFs (see generate_in_silico_data.ipynb for an explanation of how this dict is defined / used)\n", + "tf_relationships_dict = {\n", + " 0: [1],\n", + " 1: [8],\n", + " 2: [5, 6],\n", + " 3: [4],\n", + " 4: [5],\n", + " 5: [9],\n", + " 6: [4],\n", + " 7: [1, 4],\n", + " 8: [6],\n", + " 9: [4],\n", + "}\n", + "\n", + "data_module = get_data_module(\n", + " 3.0, \n", + " adjustment_function=perturbation_effect_adjustment_function_with_tf_relationships, \n", + " tf_relationships_dict=tf_relationships_dict\n", + ")\n", + "num_tfs = sum(data_module.n_sample)\n", + "\n", + "print(\"Number of TFs: \", num_tfs)\n", + "\n", + "# nonlinear model\n", + "model = get_model(num_tfs)\n", + "trainer = get_trainer()\n", + "trainer.fit(model, data_module)\n", + "test_results = trainer.test(model, datamodule=data_module)\n", + "print(\"Printing test results...\")\n", + "print(test_results)\n", + "model_mses.append(test_results[0][\"test_mse\"])\n", + "\n", + "# linear model\n", + "linear_model = get_linear_model(num_tfs)\n", + "trainer = get_trainer()\n", + "trainer.fit(linear_model, data_module)\n", + "test_results = trainer.test(linear_model, datamodule=data_module)\n", + "print(\"Printing linear model test results\")\n", + "print(test_results)\n", + "linear_model_test_mses.append(test_results[0][\"test_mse\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Train models on data generated using the binary relations between TFs (method 4)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "GPU available: False, used: False\n", + "TPU available: False, using: 0 TPU cores\n", + "IPU available: False, using: 0 IPUs\n", + "HPU available: False, using: 0 HPUs\n", + "\n", + " | Name | Type | Params\n", + "----------------------------------------------------\n", + "0 | activation | LeakyReLU | 0 \n", + "1 | input_layer | Linear | 704 \n", + "2 | hidden_layers | ModuleList | 2.1 K \n", + "3 | output_layer | Linear | 330 \n", + "4 | dropout | Dropout | 0 \n", + "5 | mae | MeanAbsoluteError | 0 \n", + "6 | SMSE | SMSE | 0 \n", + "----------------------------------------------------\n", + "3.1 K Trainable params\n", + "0 Non-trainable params\n", + "3.1 K Total params\n", + "0.012 Total estimated model params size (MB)\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Sanity Checking: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "ea687cff710146bba3befdc793689d2e", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Training: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "`Trainer.fit` stopped: `max_epochs=10` reached.\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "392244bf842049c3a56d74ef6662f7bd", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Testing: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", + " Test metric DataLoader 0\n", + "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", + " test_mae 1.1678574085235596\n", + " test_mse 2.400193452835083\n", + " test_smse 7.260862827301025\n", + "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "GPU available: False, used: False\n", + "TPU available: False, using: 0 TPU cores\n", + "IPU available: False, using: 0 IPUs\n", + "HPU available: False, using: 0 HPUs\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Printing test results...\n", + "[{'test_mse': 2.400193452835083, 'test_mae': 1.1678574085235596, 'test_smse': 7.260862827301025}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n", + " | Name | Type | Params\n", + "----------------------------------------------\n", + "0 | mae | MeanAbsoluteError | 0 \n", + "1 | SMSE | SMSE | 0 \n", + "2 | linear1 | Linear | 110 \n", + "----------------------------------------------\n", + "110 Trainable params\n", + "0 Non-trainable params\n", + "110 Total params\n", + "0.000 Total estimated model params size (MB)\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Sanity Checking: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "ebfccf4bb873401ebb9e252080bc4593", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Training: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Validation: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "`Trainer.fit` stopped: `max_epochs=10` reached.\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "e575e6a693af4040baeb6862fa70c35a", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Testing: | …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", + " Test metric DataLoader 0\n", + "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", + " test_mae 1.3436788320541382\n", + " test_mse 4.040103912353516\n", + " test_smse 12.06108570098877\n", + "────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n", + "Printing linear model test results\n", + "[{'test_mse': 4.040103912353516, 'test_mae': 1.3436788320541382, 'test_smse': 12.06108570098877}]\n" + ] + } + ], + "source": [ + "tf_relationships_dict_boolean_logic = {\n", + " 0: [And(3, 4, 8), Or(3, 7), Or(1, 1)],\n", + " 1: [And(5, Or(7, 8))],\n", + " 2: [],\n", + " 3: [Or(7, 9), And(6, 7)],\n", + " 4: [And(1, 2)],\n", + " 5: [Or(0, 1, 2, 8, 9)],\n", + " 6: [And(0, Or(1, 2))],\n", + " 7: [Or(2, And(5, 6, 9))],\n", + " 8: [],\n", + " 9: [And(6, And(3, Or(0, 9)))],\n", + "}\n", + "\n", + "data_module = get_data_module(\n", + " 3.0, \n", + " adjustment_function=perturbation_effect_adjustment_function_with_tf_relationships_boolean_logic, \n", + " tf_relationships_dict=tf_relationships_dict_boolean_logic\n", + ")\n", + "\n", + "# nonlinear model\n", + "model = get_model(num_tfs)\n", + "trainer = get_trainer()\n", + "trainer.fit(model, data_module)\n", + "test_results = trainer.test(model, datamodule=data_module)\n", + "print(\"Printing test results...\")\n", + "print(test_results)\n", + "model_mses.append(test_results[0][\"test_mse\"])\n", + "\n", + "# linear model\n", + "linear_model = get_linear_model(num_tfs)\n", + "trainer = get_trainer()\n", + "trainer.fit(linear_model, data_module)\n", + "test_results = trainer.test(linear_model, datamodule=data_module)\n", + "print(\"Printing linear model test results\")\n", + "print(test_results)\n", + "linear_model_test_mses.append(test_results[0][\"test_mse\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can plot the results of our experiment. TODO add explantion for plot here? Probably not the right place to put it (I feel like that belongs in the presentation or something, because this notebook could be modified and the explanation wouldn't make sense)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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adOmja1DERERERERkQRIXbX/U7lyZXQ7uoiIiIiIiLwq9WCLiIiIiIiIWIESbBERERERERErUIItIiIiIiIiYgVKsEVERERERESsQAm2iIiIiIiIiBUowRYRERERERGxAiXYIiIiIiIiIlagBFtERERERETECpRgi4iIiIiIiFiBEmwRERERERERK1CCLSIiIiIiImIFSrBFRERERERErEAJtoiIiIiIiIgVKMEWERERERERsQIl2CIiIiIiIiJWoARbRERERERExAqUYIuIiIiIiIhYgRJsEREREREREStQgi0iIiIiIiJiBUqwRURERERERKxACbaIiIiIiIiIFSjBFhEREREREbECJdgiIiIiIiIiVqAEW0RERERERMQKlGCLiIiIiIiIWIESbBERERERERErUIINXLt2jU8//ZQUKVLg7u5O3rx5OXjwoK3DEhERERERkQTEydYB2Nr9+/cpXbo0H374IevXrydlypScPXuWZMmS2To0ERERERERSUDsPsEeOXIkvr6+zJo1y1yWOXNmG0YkIiIiIiIiCZHdJ9irVq2iSpUqNGzYkB07dpAuXTo6d+5M+/btn7tNcHAwwcHB5uXAwEAAQkNDCQ0NfeMxv4qouOJrfCIS/6jdEJFXobZDRF5WQmg34hqbyTAM4w3HEq+5ubkB8OWXX9KwYUMOHDhA9+7dmTp1Ki1btox1m4EDBzJo0KAY5fPmzcPDw+ONxisiIiIiIiJvV1BQEE2bNiUgIAAvL6/n1rP7BNvFxYUiRYqwZ88ec1m3bt04cOAAe/fujXWb2HqwfX19uXPnzgvfbFsKDQ1l8+bNVKpUCWdnZ1uHIyIJgNoNEXkVajtE5GUlhHYjMDAQb2/v/0yw7X6IeJo0aciVK5dFWc6cOVm6dOlzt3F1dcXV1TVGubOzc7z9QkRJCDGKSPyidkNEXoXaDhF5WfG53YhrXHb/mK7SpUvz999/W5SdOXOGjBkz2igiERERERERSYjsPsH+4osv2LdvH8OGDePcuXPMmzeP6dOn06VLF1uHJiIiIiIiIgmI3SfYRYsWZfny5cyfP588efIwePBgxo0bR7NmzWwdmoiIiIiIiCQgdn8PNkCNGjWoUaOGrcMQERERERGRBMzue7BFRERERERErEEJtoiIiIiIiIgVKMEWERERERERsQIl2CIiIiIiIiJWoARb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L0+aNGnMPwsXLrR1aCIiIiIiIpJAqAebyCHiIiIiIiIiIq9DPdgiIiIiIiIiVqAEW0RERERERMQKlGCLiIiIiIiIWIESbBERERERERErUIItIiIiIiIiYgVKsO1AeDj4+0f+7u8fuSwiIiIiIiLWpQT7HbdsGWTKBNWrRy5Xrx65vGyZLaMSERERERF59yjBfoctWwYNGsDVq5bl165FlivJFhERERERsR4l2O+o8HDo3h0MI+a6qLIePTRcXERERERExFqUYL+jdu2K2XMdnWHAlSuR9UREREREROT1KcF+R924Yd16IiIiIiIi8mJKsN9RadJYt56IiIiIiIi8mBLsd1TZspA+PZhMsa83mcDXN7KeiIiIiIiIvD4l2O8oR0cYPz7y92eT7KjlceMi64mIiIiIiMjrU4L9DqtXD5YsgXTpLMvTp48sr1fPNnGJiIiIiIi8i5xsHYC8WfXqQe3asHMnBAbC2rXwwQfquRYREREREbE29WDbAUdHKFMm8vcyZZRci4iIiIiIvAlKsEVERERERESsQAm2iIiIiIiIiBUowRYRERERERGxAiXYIiIiIiIiIlagBFtERERERETECvSYLiswDAOAwMBAG0fyfKGhoQQFBREYGIizs7OtwxGRBEDthoi8CrUdIvKyEkK7EZXrReV+z6ME2woePnwIgK+vr40jERERERERkTfl4cOHJEmS5LnrTcZ/peDynyIiIrh+/TqJEyfGZDLZOpxYBQYG4uvry5UrV/Dy8rJ1OCKSAKjdEJFXobZDRF5WQmg3DMPg4cOHpE2bFgeH599prR5sK3BwcCB9+vS2DiNOvLy84u2XVkTiJ7UbIvIq1HaIyMuK7+3Gi3quo2iSMxERERERERErUIItIiIiIiIiYgVKsO2Eq6srAwYMwNXV1dahiEgCoXZDRF6F2g4ReVnvUruhSc5ERERERERErEA92CIiIiIiIiJWoARbRERERERExAqUYIuIiIiIiIhYgRLsBE630IuIiIiIiMQPSrATsIiICEwmk63DEJEERhfmRORlqd0QkZdlr+2GEuwEau/evdy4cQOAXr16MX78eBtHJCIJgS7MicjLOnXqFEFBQQB89913bN++3bYBiUi8F/1848yZM9y/f9/GEb09TrYOQF5OREQE9+7do3Tp0jRu3JhEiRKxePFi/P39bR2aiMRzO3fu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x45l3rx5ADRu3NjuhmmJSOznHKlSpaJy5cr06NGDatWqWZxzPHjwgF27drFr1y7g/3uwdM4hYj+iJ9dTp06lefPmtG7dmmHDhgEwZ84cMmTIQPHixZk8eTJz5syhTZs23Llzh8GDB5MkSRJWrVply0OwGSXYNhD9C3vq1CmOHj1qXleiRAnCw8MpVqwYZcqUASIf3t68eXOCgoLo3r27TWIWEdt79iTZwcEBR0dHmjRpwqhRo8x/5KJOkh8/fszOnTs5d+6cxXY6SRaxH9HPOW7cuMH169fN60qXLs3ff/9NhQoVaN26NQCBgYG0bdsWR0dHmjVrBmiOFxF7FNVu9OnTh2+//RZPT0+CgoIYNWoU1atXx83Nja1bt/Lxxx8zbdo0hgwZgslkYunSpQCkSJGC999/35aHYDMaIm5Dffr0Yc6cOQQHB5M3b16mTJlCzpw5+e2335g0aRKXL18mderUQOSXfM+ePTg7O2uIlogdin6S/Mcff/Do0SPKlCmDq6sr586d46uvvuLMmTNMnz6d0qVLc+nSJTp16sSdO3fYs2fPO/28SRH5b/369WPlypXcu3eP5s2b891335EoUSL69evH2rVrcXBwIGvWrFy9epXg4GD279+vcw4RO3f48GHq1KmDn58fFSpUsCgrVKgQK1asAODWrVu4uLiQNGlSAL777jtmzZrFjh07yJIli42itx0l2G9R9MdibN26lS5duvDDDz+QKFEivvzySx4+fMi8efMoWrQof/31F0ePHuXKlSu899571KtXD0dHR8LCwnSiLGLHevfujZ+fHyEhIaRPn55hw4ZRq1YtduzYwdixY9myZQupU6cmUaJEJEqUiB07dugkWcTOLVq0iD59+jBgwAACAgLo378/lStXZsaMGSRPnpyNGzeyZcsWwsLCyJQpE127dsXJyUnnHCJ2bsuWLbRo0YJjx47h7e1tzmV27NhBgwYNmDVrFjVq1DB3Apw+fZpRo0axdu1aNmzYQMGCBW19CDahBPsteXaSgCNHjrBhwwb69u1rLitSpAgBAQHMnTuXIkWKxJhUQCfIIvYn+oW5Q4cO0aFDB8aMGUOGDBno3r07586d45tvvqFp06Y8ePCAw4cPc+HCBTJkyECFChV0YU7EDj17zrFp0ybOnTtH586dgchzkDJlylCpUiUmT55MmjRpYuxD5xwicunS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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "data_gen_methods = [\"No Mean Adjustment\", \"Dependent Mean Adjustment\", \"TF Dependent Mean Adjustment\", \"TF Dependent Mean Adjust with Boolean Logic\"]\n", + "plt.figure(figsize=(10, 6))\n", + "plt.scatter(data_gen_methods, model_mses, color='blue')\n", + "plt.scatter(data_gen_methods, linear_model_test_mses, color='orange')\n", + "plt.title('Model MSE Comparison (bound mean = 3.0)')\n", + "plt.xlabel('Model')\n", + "plt.ylabel('MSE')\n", + "plt.grid(True)\n", + "plt.xticks(rotation=45, ha=\"right\")\n", + "plt.legend(['Complex (Customizable) Model', 'Linear Model'])\n", + "plt.tight_layout() # Adjust layout to make room for the rotated x-axis labels\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { "kernelspec": { - "display_name": ".venv", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -623,9 +2526,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.5" + "version": "3.11.1" } }, "nbformat": 4, - "nbformat_minor": 2 + "nbformat_minor": 4 } diff --git a/experiments/simple_model_synthetic_data.py b/experiments/simple_model_synthetic_data.py index 021841d..f0eb4fd 100644 --- a/experiments/simple_model_synthetic_data.py +++ b/experiments/simple_model_synthetic_data.py @@ -61,7 +61,7 @@ def simple_model_synthetic_data_experiment( data_module = SyntheticDataLoader( batch_size=batch_size, num_genes=1000, - signal=[0.1, 0.15, 0.2, 0.25, 0.3], + bound=[0.1, 0.15, 0.2, 0.25, 0.3], n_sample=[1, 1, 2, 2, 4], val_size=0.1, test_size=0.1, diff --git a/pyproject.toml b/pyproject.toml index 2a7d309..f994d36 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -19,6 +19,7 @@ tensorboard = "^2.16.1" torchsummary = "^1.5.1" optuna = "^3.6.0" optuna-dashboard = "^0.15.1" +jupyter = "^1.0.0" [tool.poetry.group.dev.dependencies] jupyter = "^1.0.0" diff --git a/yeastdnnexplorer/data_loaders/real_data_loader.py b/yeastdnnexplorer/data_loaders/real_data_loader.py index 4c914a6..0f51ab1 100644 --- a/yeastdnnexplorer/data_loaders/real_data_loader.py +++ b/yeastdnnexplorer/data_loaders/real_data_loader.py @@ -222,7 +222,7 @@ def prepare_data(self) -> None: perturbation_pvalues.values, dtype=torch.float64 ) - # note that we no longer have a signal / noise tensor + # note that we no longer have a bound / unbound tensor # (like for the synthetic data) self.final_data_tensor = torch.stack( [ diff --git a/yeastdnnexplorer/data_loaders/synthetic_data_loader.py b/yeastdnnexplorer/data_loaders/synthetic_data_loader.py index 8c53670..858cacd 100644 --- a/yeastdnnexplorer/data_loaders/synthetic_data_loader.py +++ b/yeastdnnexplorer/data_loaders/synthetic_data_loader.py @@ -27,8 +27,8 @@ def __init__( self, batch_size: int = 32, num_genes: int = 1000, - signal: list[float] = [0.1, 0.2, 0.2, 0.4, 0.5], - signal_mean: float = 3.0, + bound: list[float] = [0.1, 0.2, 0.2, 0.4, 0.5], + bound_mean: float = 3.0, n_sample: list[int] = [1, 2, 2, 4, 4], val_size: float = 0.1, test_size: float = 0.1, @@ -47,10 +47,10 @@ def __init__( :param num_genes: The number of genes in the synthetic data (this is the number of datapoints in our dataset) :type num_genes: int - :param signal: The proportion of genes in each sample group that are put in the - signal grop (i.e. have a non-zero binding effect and expression response) - :type signal: List[int] - :param n_sample: The number of samples to draw from each signal group + :param bound: The proportion of genes in each sample group that are put in the + bound grop (i.e. have a non-zero binding effect and expression response) + :type bound: List[int] + :param n_sample: The number of samples to draw from each bound group :type n_sample: List[int] :param val_size: The proportion of the dataset to include in the validation split @@ -60,23 +60,23 @@ def __init__( :param random_state: The random seed to use for splitting the data (keep this consistent to ensure reproduceability) :type random_state: int - :param signal_mean: The mean of the signal distribution - :type signal_mean: float + :param bound_mean: The mean of the bound distribution + :type bound_mean: float :param max_mean_adjustment: The maximum mean adjustment to apply to the mean - of the signal (bound) perturbation effects + of the bound (bound) perturbation effects :type max_mean_adjustment: float - :param adjustment_function: A function that adjusts the mean of the signal + :param adjustment_function: A function that adjusts the mean of the bound (bound) perturbation effects :type adjustment_function: Callable[[torch.Tensor, float, float, float, dict[int, list[int]]], torch.Tensor] :raises TypeError: If batch_size is not an positive integer :raises TypeError: If num_genes is not an positive integer - :raises TypeError: If signal is not a list of integers or floats + :raises TypeError: If bound is not a list of integers or floats :raises TypeError: If n_sample is not a list of integers :raises TypeError: If val_size is not a float between 0 and 1 (inclusive) :raises TypeError: If test_size is not a float between 0 and 1 (inclusive) :raises TypeError: If random_state is not an integer - :raises TypeError: If signal_mean is not a float + :raises TypeError: If bound_mean is not a float :raises ValueError: If val_size + test_size is greater than 1 (i.e. the splits are too large) @@ -85,10 +85,10 @@ def __init__( raise TypeError("batch_size must be a positive integer") if not isinstance(num_genes, int) or num_genes < 1: raise TypeError("num_genes must be a positive integer") - if not isinstance(signal, list) or not all( - isinstance(x, (int, float)) for x in signal + if not isinstance(bound, list) or not all( + isinstance(x, (int, float)) for x in bound ): - raise TypeError("signal must be a list of integers or floats") + raise TypeError("bound must be a list of integers or floats") if not isinstance(n_sample, list) or not all( isinstance(x, int) for x in n_sample ): @@ -99,17 +99,17 @@ def __init__( raise TypeError("test_size must be a float between 0 and 1 (inclusive)") if not isinstance(random_state, int): raise TypeError("random_state must be an integer") - if not isinstance(signal_mean, float): - raise TypeError("signal_mean must be a float") + if not isinstance(bound_mean, float): + raise TypeError("bound_mean must be a float") if test_size + val_size > 1: raise ValueError("val_size + test_size must be less than or equal to 1") super().__init__() self.batch_size = batch_size self.num_genes = num_genes - self.signal_mean = signal_mean - self.signal = signal or [0.1, 0.15, 0.2, 0.25, 0.3] - self.n_sample = n_sample or [1 for _ in range(len(self.signal))] + self.bound_mean = bound_mean + self.bound = bound or [0.1, 0.15, 0.2, 0.25, 0.3] + self.n_sample = n_sample or [1 for _ in range(len(self.bound))] self.num_tfs = sum(self.n_sample) # sum of all n_sample is the number of TFs self.val_size = val_size self.test_size = test_size @@ -132,10 +132,10 @@ def prepare_data(self) -> None: performed as that is handled in the functions in generate_data.py.""" # this will be a list of length 10 with a GenePopulation object in each element gene_populations_list = [] - for signal_proportion, n_draws in zip(self.signal, self.n_sample): + for bound_proportion, n_draws in zip(self.bound, self.n_sample): for _ in range(n_draws): gene_populations_list.append( - generate_gene_population(self.num_genes, signal_proportion) + generate_gene_population(self.num_genes, bound_proportion) ) # Generate binding data for each gene population @@ -166,7 +166,7 @@ def prepare_data(self) -> None: if self.max_mean_adjustment > 0: perturbation_effects_list = generate_perturbation_effects( binding_data_tensor, - signal_mean=self.signal_mean, + bound_mean=self.bound_mean, tf_index=0, # unused max_mean_adjustment=self.max_mean_adjustment, adjustment_function=self.adjustment_function, @@ -188,7 +188,7 @@ def prepare_data(self) -> None: perturbation_effects_list = [ generate_perturbation_effects( binding_data_tensor[:, tf_index, :].unsqueeze(1), - signal_mean=self.signal_mean, + bound_mean=self.bound_mean, tf_index=0, # unused ) for tf_index in range(sum(self.n_sample)) diff --git a/yeastdnnexplorer/probability_models/generate_data.py b/yeastdnnexplorer/probability_models/generate_data.py index f6d8d4b..b0d2047 100644 --- a/yeastdnnexplorer/probability_models/generate_data.py +++ b/yeastdnnexplorer/probability_models/generate_data.py @@ -39,39 +39,39 @@ def __repr__(self): def generate_gene_population( - total: int = 1000, signal_group: float = 0.3 + total: int = 1000, bound_group: float = 0.3 ) -> GenePopulation: """ Generate two sets of genes, one of which will be considered genes which show a - signal, and the other which does not. The return is a one dimensional boolean tensor - where a value of '0' means that the gene at that index is part of the noise group - and a '1' means the gene at that index is part of the signal group. The length of - the tensor is the number of genes in this simulated organism. + bound, and the other which does not. The return is a one dimensional boolean tensor + where a value of '0' means that the gene at that index is part of the unbound group + and a '1' means the gene at that index is part of the bound group. The length of the + tensor is the number of genes in this simulated organism. :param total: The total number of genes. defaults to 1000 :type total: int, optional - :param signal_group: The proportion of genes in the signal group. defaults to 0.3 - :type signal_group: float, optional + :param bound_group: The proportion of genes in the bound group. defaults to 0.3 + :type bound_group: float, optional :return: A one dimensional tensor of boolean values where the set of indices with a - value of '1' are the signal group and the set of indices with a value of '0' are - the noise group. + value of '1' are the bound group and the set of indices with a value of '0' are + the unbound group. :rtype: GenePopulation :raises TypeError: if total is not an integer - :raises ValueError: If signal_group is not between 0 and 1 + :raises ValueError: If bound_group is not between 0 and 1 """ if not isinstance(total, int): raise TypeError("total must be an integer") - if not 0 <= signal_group <= 1: - raise ValueError("signal_group must be between 0 and 1") + if not 0 <= bound_group <= 1: + raise ValueError("bound_group must be between 0 and 1") - signal_group_size = int(total * signal_group) - logger.info("Generating %s genes with signal", signal_group_size) + bound_group_size = int(total * bound_group) + logger.info("Generating %s genes with bound", bound_group_size) labels = torch.cat( ( - torch.ones(signal_group_size, dtype=torch.bool), - torch.zeros(total - signal_group_size, dtype=torch.bool), + torch.ones(bound_group_size, dtype=torch.bool), + torch.zeros(total - bound_group_size, dtype=torch.bool), ) )[torch.randperm(total)] @@ -81,15 +81,15 @@ def generate_gene_population( def generate_binding_effects( gene_population: GenePopulation, background_hops_range: tuple[int, int] = (1, 100), - noise_experiment_hops_range: tuple[int, int] = (0, 1), - signal_experiment_hops_range: tuple[int, int] = (1, 6), + unbound_experiment_hops_range: tuple[int, int] = (0, 1), + bound_experiment_hops_range: tuple[int, int] = (1, 6), total_background_hops: int = 1000, total_experiment_hops: int = 76, pseudocount: float = 1e-10, ) -> torch.Tensor: """ Generate enrichment effects for genes using vectorized operations, based on their - signal designation, with separate experiment hops ranges for noise and signal genes. + bound designation, with separate experiment hops ranges for unbound and bound genes. Note that the default values are a scaled down version of actual data. See also https://github.com/cmatKhan/callingCardsTools/blob/main/callingcardstools/PeakCalling/yeast/enrichment.py @@ -99,12 +99,12 @@ def generate_binding_effects( :param background_hops_range: The range of hops for background genes. Defaults to (1, 100) :type background_hops_range: Tuple[int, int], optional - :param noise_experiment_hops_range: The range of hops for noise genes. Defaults to - (0, 1) - :type noise_experiment_hops_range: Tuple[int, int], optional - :param signal_experiment_hops_range: The range of hops for signal genes. Defaults to + :param unbound_experiment_hops_range: The range of hops for unbound genes. Defaults + to (0, 1) + :type unbound_experiment_hops_range: Tuple[int, int], optional + :param bound_experiment_hops_range: The range of hops for bound genes. Defaults to (1, 6) - :type signal_experiment_hops_range: Tuple[int, int], optional + :type bound_experiment_hops_range: Tuple[int, int], optional :param total_background_hops: The total number of background hops. Defaults to 1000 :type total_background_hops: int, optional :param total_experiment_hops: The total number of experiment hops. Defaults to 76 @@ -118,11 +118,11 @@ def generate_binding_effects( :raises TypeError: If total_experiment_hops is not an integer :raises TypeError: If pseudocount is not a float :raises TypeError: If background_hops_range is not a tuple - :raises TypeError: If noise_experiment_hops_range is not a tuple - :raises TypeError: If signal_experiment_hops_range is not a tuple + :raises TypeError: If unbound_experiment_hops_range is not a tuple + :raises TypeError: If bound_experiment_hops_range is not a tuple :raises ValueError: If background_hops_range is not a tuple of length 2 - :raises ValueError: If noise_experiment_hops_range is not a tuple of length 2 - :raises ValueError: If signal_experiment_hops_range is not a tuple of length 2 + :raises ValueError: If unbound_experiment_hops_range is not a tuple of length 2 + :raises ValueError: If bound_experiment_hops_range is not a tuple of length 2 """ # NOTE: torch intervals are half open on the right, so we add 1 to the @@ -139,8 +139,8 @@ def generate_binding_effects( raise TypeError("pseudocount must be a float") for arg, tup in { "background_hops_range": background_hops_range, - "noise_experiment_hops_range": noise_experiment_hops_range, - "signal_experiment_hops_range": signal_experiment_hops_range, + "unbound_experiment_hops_range": unbound_experiment_hops_range, + "bound_experiment_hops_range": bound_experiment_hops_range, }.items(): if not isinstance(tup, tuple): raise TypeError(f"{arg} must be a tuple") @@ -156,22 +156,22 @@ def generate_binding_effects( size=(gene_population.labels.shape[0],), ) - # Generate experiment hops noise genes - noise_experiment_hops = torch.randint( - low=noise_experiment_hops_range[0], - high=noise_experiment_hops_range[1] + 1, + # Generate experiment hops unbound genes + unbound_experiment_hops = torch.randint( + low=unbound_experiment_hops_range[0], + high=unbound_experiment_hops_range[1] + 1, size=(gene_population.labels.shape[0],), ) - # Generate experiment hops signal genes - signal_experiment_hops = torch.randint( - low=signal_experiment_hops_range[0], - high=signal_experiment_hops_range[1] + 1, + # Generate experiment hops bound genes + bound_experiment_hops = torch.randint( + low=bound_experiment_hops_range[0], + high=bound_experiment_hops_range[1] + 1, size=(gene_population.labels.shape[0],), ) - # Use signal designation to select appropriate experiment hops + # Use bound designation to select appropriate experiment hops experiment_hops = torch.where( - gene_population.labels == 1, signal_experiment_hops, noise_experiment_hops + gene_population.labels == 1, bound_experiment_hops, unbound_experiment_hops ) # Calculate enrichment for all genes @@ -230,8 +230,8 @@ def generate_pvalues( def default_perturbation_effect_adjustment_function( binding_enrichment_data: torch.Tensor, - signal_mean: float, - noise_mean: float, + bound_mean: float, + unbound_mean: float, max_adjustment: float, **kwargs, ) -> torch.Tensor: @@ -246,10 +246,10 @@ def default_perturbation_effect_adjustment_function( dimensions [n_genes, n_tfs, 3] where the entries in the third dimension are a matrix with columns [label, enrichment, pvalue]. :type binding_enrichment_data: torch.Tensor - :param signal_mean: The mean for signal genes. - :type signal_mean: float - :param noise_mean: The mean for noise genes. - :type noise_mean: float + :param bound_mean: The mean for bound genes. + :type bound_mean: float + :param unbound_mean: The mean for unbound genes. + :type unbound_mean: float :param max_adjustment: The maximum adjustment to the base mean based on enrichment. :type max_adjustment: float :param tf_relationships: Unused in this function. It is only here to match the @@ -259,37 +259,39 @@ def default_perturbation_effect_adjustment_function( :rtype: torch.Tensor """ - # Extract signal/noise labels and enrichment scores - signal_labels = binding_enrichment_data[:, :, 0] + # Extract bound/unbound labels and enrichment scores + bound_labels = binding_enrichment_data[:, :, 0] enrichment_scores = binding_enrichment_data[:, :, 1] adjusted_mean_matrix = torch.where( - signal_labels == 1, enrichment_scores, torch.zeros_like(enrichment_scores) + bound_labels == 1, enrichment_scores, torch.zeros_like(enrichment_scores) ) - for gene_idx in range(signal_labels.shape[0]): - for tf_index in range(signal_labels.shape[1]): - if signal_labels[gene_idx, tf_index] == 1: - # draw a random value between 0 and 1 to use to control - # magnitude of adjustment - adjustment_multiplier = torch.rand(1) + for gene_idx in range(bound_labels.shape[0]): + for tf_index in range(bound_labels.shape[1]): + if bound_labels[gene_idx, tf_index] == 1: + # divide its enrichment score by the maximum magnitude possible to + # create an adjustment multipler that scales with increasing enrichment + adjustment_multiplier = enrichment_scores[gene_idx, tf_index] / abs( + enrichment_scores.max() + ) # randomly adjust the gene by some portion of the max adjustment - adjusted_mean_matrix[gene_idx, tf_index] = signal_mean + ( + adjusted_mean_matrix[gene_idx, tf_index] = bound_mean + ( adjustment_multiplier * max_adjustment ) else: # related tfs are not all bound, so set the enrichment - # score to noise mean - adjusted_mean_matrix[gene_idx, tf_index] = noise_mean + # score to unbound mean + adjusted_mean_matrix[gene_idx, tf_index] = unbound_mean return adjusted_mean_matrix def perturbation_effect_adjustment_function_with_tf_relationships_boolean_logic( binding_enrichment_data: torch.Tensor, - signal_mean: float, - noise_mean: float, + bound_mean: float, + unbound_mean: float, max_adjustment: float, tf_relationships: dict[int, list[Relation]], ) -> torch.Tensor: @@ -307,10 +309,10 @@ def perturbation_effect_adjustment_function_with_tf_relationships_boolean_logic( dimensions [n_genes, n_tfs, 3] where the entries in the third dimension are a matrix with columns [label, enrichment, pvalue]. :type binding_enrichment_data: torch.Tensor - :param signal_mean: The mean for signal genes. - :type signal_mean: float - :param noise_mean: The mean for noise genes. - :type noise_mean: float + :param bound_mean: The mean for bound genes. + :type bound_mean: float + :param unbound_mean: The mean for unbound genes. + :type unbound_mean: float :param max_adjustment: The maximum adjustment to the base mean based on enrichment. :type max_adjustment: float :param tf_relationships: A dictionary where the keys are TF indices and the values @@ -354,22 +356,22 @@ def perturbation_effect_adjustment_function_with_tf_relationships_boolean_logic( the binding_data tensor passed into the function" ) - # Extract signal/noise labels and enrichment scores - signal_labels = binding_enrichment_data[:, :, 0] # shape: (num_genes, num_tfs) + # Extract bound/unbound labels and enrichment scores + bound_labels = binding_enrichment_data[:, :, 0] # shape: (num_genes, num_tfs) enrichment_scores = binding_enrichment_data[:, :, 1] # shape: (num_genes, num_tfs) # we set all unbound scores to 0, then we will go through and also set any - # bound scores to noise_mean if the related boolean statements are not satisfied + # bound scores to unbound_mean if the related boolean statements are not satisfied adjusted_mean_matrix = torch.where( - signal_labels == 1, enrichment_scores, torch.zeros_like(enrichment_scores) + bound_labels == 1, enrichment_scores, torch.zeros_like(enrichment_scores) ) # shape: (num_genes, num_tfs) - for gene_idx in range(signal_labels.shape[0]): + for gene_idx in range(bound_labels.shape[0]): for tf_index, relations in tf_relationships.items(): # check if all relations (boolean relationships) # associated with TFs are satisfied - if signal_labels[gene_idx, tf_index] == 1 and all( - relation.evaluate(signal_labels[gene_idx].tolist()) + if bound_labels[gene_idx, tf_index] == 1 and all( + relation.evaluate(bound_labels[gene_idx].tolist()) for relation in relations ): # draw a random value between 0 and 1 to use to @@ -377,20 +379,21 @@ def perturbation_effect_adjustment_function_with_tf_relationships_boolean_logic( adjustment_multiplier = torch.rand(1) # randomly adjust the gene by some portion of the max adjustment - adjusted_mean_matrix[gene_idx, tf_index] = signal_mean + ( + adjusted_mean_matrix[gene_idx, tf_index] = bound_mean + ( adjustment_multiplier * max_adjustment ) else: - # related tfs are not all bound, set the enrichment score to noise mean - adjusted_mean_matrix[gene_idx, tf_index] = noise_mean + # related tfs are not all bound, set the enrichment score to unbound + # mean + adjusted_mean_matrix[gene_idx, tf_index] = unbound_mean return adjusted_mean_matrix # shape (num_genes, num_tfs) def perturbation_effect_adjustment_function_with_tf_relationships( binding_enrichment_data: torch.Tensor, - signal_mean: float, - noise_mean: float, + bound_mean: float, + unbound_mean: float, max_adjustment: float, tf_relationships: dict[int, list[int]], ) -> torch.Tensor: @@ -405,10 +408,10 @@ def perturbation_effect_adjustment_function_with_tf_relationships( dimensions [n_genes, n_tfs, 3] where the entries in the third dimension are a matrix with columns [label, enrichment, pvalue]. :type binding_enrichment_data: torch.Tensor - :param signal_mean: The mean for signal genes. - :type signal_mean: float - :param noise_mean: The mean for noise genes. - :type noise_mean: float + :param bound_mean: The mean for bound genes. + :type bound_mean: float + :param unbound_mean: The mean for unbound genes. + :type unbound_mean: float :param max_adjustment: The maximum adjustment to the base mean based on enrichment. :type max_adjustment: float :param tf_relationships: A dictionary where the keys are the indices of the TFs and @@ -451,32 +454,33 @@ def perturbation_effect_adjustment_function_with_tf_relationships( binding_data tensor passed into the function" ) - # Extract signal/noise labels and enrichment scores - signal_labels = binding_enrichment_data[:, :, 0] # shape: (num_genes, num_tfs) + # Extract bound/unbound labels and enrichment scores + bound_labels = binding_enrichment_data[:, :, 0] # shape: (num_genes, num_tfs) enrichment_scores = binding_enrichment_data[:, :, 1] # shape: (num_genes, num_tfs) # we set all unbound scores to 0, then we will go through and also - # set any bound scores to noise_mean if the related tfs are not also bound + # set any bound scores to unbound_mean if the related tfs are not also bound adjusted_mean_matrix = torch.where( - signal_labels == 1, enrichment_scores, torch.zeros_like(enrichment_scores) + bound_labels == 1, enrichment_scores, torch.zeros_like(enrichment_scores) ) # shape: (num_genes, num_tfs) - for gene_idx in range(signal_labels.shape[0]): + for gene_idx in range(bound_labels.shape[0]): for tf_index, related_tfs in tf_relationships.items(): - if signal_labels[gene_idx, tf_index] == 1 and torch.all( - signal_labels[gene_idx, related_tfs] == 1 + if bound_labels[gene_idx, tf_index] == 1 and torch.all( + bound_labels[gene_idx, related_tfs] == 1 ): # draw a random value between 0 and 1 to use to # control magnitude of adjustment adjustment_multiplier = torch.rand(1) # randomly adjust the gene by some portion of the max adjustment - adjusted_mean_matrix[gene_idx, tf_index] = signal_mean + ( + adjusted_mean_matrix[gene_idx, tf_index] = bound_mean + ( adjustment_multiplier * max_adjustment ) else: - # related tfs are not all bound, set the enrichment score to noise mean - adjusted_mean_matrix[gene_idx, tf_index] = noise_mean + # related tfs are not all bound, set the enrichment score to unbound + # mean + adjusted_mean_matrix[gene_idx, tf_index] = unbound_mean return adjusted_mean_matrix # shape (num_genes, num_tfs) @@ -484,10 +488,10 @@ def perturbation_effect_adjustment_function_with_tf_relationships( def generate_perturbation_effects( binding_data: torch.Tensor, tf_index: int | None = None, - noise_mean: float = 0.0, - noise_std: float = 1.0, - signal_mean: float = 3.0, - signal_std: float = 1.0, + unbound_mean: float = 0.0, + unbound_std: float = 1.0, + bound_mean: float = 3.0, + bound_std: float = 1.0, max_mean_adjustment: float = 0.0, adjustment_function: Callable[ [torch.Tensor, float, float, float], torch.Tensor @@ -512,14 +516,14 @@ def generate_perturbation_effects( are adjusting the means (ie only used if max_mean_adjustment == 0). Defaults to None :type tf_index: int - :param noise_mean: The mean for noise genes. Defaults to 0.0 - :type noise_mean: float, optional - :param noise_std: The standard deviation for noise genes. Defaults to 1.0 - :type noise_std: float, optional - :param signal_mean: The mean for signal genes. Defaults to 3.0 - :type signal_mean: float, optional - :param signal_std: The standard deviation for signal genes. Defaults to 1.0 - :type signal_std: float, optional + :param unbound_mean: The mean for unbound genes. Defaults to 0.0 + :type unbound_mean: float, optional + :param unbound_std: The standard deviation for unbound genes. Defaults to 1.0 + :type unbound_std: float, optional + :param bound_mean: The mean for bound genes. Defaults to 3.0 + :type bound_mean: float, optional + :param bound_std: The standard deviation for bound genes. Defaults to 1.0 + :type bound_std: float, optional :param max_mean_adjustment: The maximum adjustment to the base mean based on enrichment. Defaults to 0.0 :type max_mean_adjustment: float, optional @@ -529,7 +533,7 @@ def generate_perturbation_effects( :raises ValueError: If binding_data is not a 3D tensor with the third dimension having a length of 3 - :raises ValueError: If noise_mean, noise_std, signal_mean, signal_std, + :raises ValueError: If unbound_mean, unbound_std, bound_mean, bound_std, or max_mean_adjustment are not floats """ @@ -545,10 +549,10 @@ def generate_perturbation_effects( # check the rest of the inputs if not all( isinstance(i, float) - for i in (noise_mean, noise_std, signal_mean, signal_std, max_mean_adjustment) + for i in (unbound_mean, unbound_std, bound_mean, bound_std, max_mean_adjustment) ): raise ValueError( - "noise_mean, noise_std, signal_mean, signal_std, " + "unbound_mean, unbound_std, bound_mean, bound_std, " "and max_mean_adjustment must be floats" ) # check the Callable signature @@ -556,14 +560,14 @@ def generate_perturbation_effects( i in inspect.signature(adjustment_function).parameters for i in ( "binding_enrichment_data", - "signal_mean", - "noise_mean", + "bound_mean", + "unbound_mean", "max_adjustment", ) ): raise ValueError( "adjustment_function must have the signature " - "(binding_enrichment_data, signal_mean, noise_mean, max_adjustment)" + "(binding_enrichment_data, bound_mean, unbound_mean, max_adjustment)" ) # Initialize an effects tensor for all genes @@ -578,16 +582,16 @@ def generate_perturbation_effects( device=binding_data.device) * 2 - 1 # fmt: on - # Apply adjustments to the base mean for the signal genes, if necessary + # Apply adjustments to the base mean for the bound genes, if necessary if max_mean_adjustment > 0 and adjustment_function is not None: # Assuming adjustment_function returns a vector of means for each gene. - # Signal genes that meet the criteria for adjustment will be affected by + # bound genes that meet the criteria for adjustment will be affected by # the status of the TFs. What TFs affect a given gene must be specified by # the adjustment_function() adjusted_means = adjustment_function( binding_data, - signal_mean, - noise_mean, + bound_mean, + unbound_mean, max_mean_adjustment, **kwargs, ) @@ -595,27 +599,25 @@ def generate_perturbation_effects( # add adjustments, ensuring they respect the original sign if adjusted_means.ndim == 1: effects = signs * torch.abs( - torch.normal(mean=adjusted_means, std=signal_std) + torch.normal(mean=adjusted_means, std=bound_std) ) else: effects = torch.zeros_like(adjusted_means) for col_idx in range(effects.size(1)): effects[:, col_idx] = signs * torch.abs( - torch.normal(mean=adjusted_means[:, col_idx], std=signal_std) + torch.normal(mean=adjusted_means[:, col_idx], std=bound_std) ) else: - signal_mask = binding_data[:, tf_index, 0] == 1 + bound_mask = binding_data[:, tf_index, 0] == 1 - # Generate effects based on the noise and signal means, applying the sign - effects[~signal_mask] = signs[~signal_mask] * torch.abs( + # Generate effects based on the unbound and bound means, applying the sign + effects[~bound_mask] = signs[~bound_mask] * torch.abs( torch.normal( - mean=noise_mean, std=noise_std, size=(torch.sum(~signal_mask),) + mean=unbound_mean, std=unbound_std, size=(torch.sum(~bound_mask),) ) ) - effects[signal_mask] = signs[signal_mask] * torch.abs( - torch.normal( - mean=signal_mean, std=signal_std, size=(torch.sum(signal_mask),) - ) + effects[bound_mask] = signs[bound_mask] * torch.abs( + torch.normal(mean=bound_mean, std=bound_std, size=(torch.sum(bound_mask),)) ) return effects diff --git a/yeastdnnexplorer/tests/probability_models/test_generate_data.py b/yeastdnnexplorer/tests/probability_models/test_generate_data.py index 00f4d4f..81195c2 100644 --- a/yeastdnnexplorer/tests/probability_models/test_generate_data.py +++ b/yeastdnnexplorer/tests/probability_models/test_generate_data.py @@ -13,10 +13,10 @@ def test_generate_gene_population(): total_genes = 1000 - signal_ratio = 0.3 - signal_group_size = int(total_genes * signal_ratio) + bound_ratio = 0.3 + bound_group_size = int(total_genes * bound_ratio) - gene_population = generate_gene_population(total_genes, signal_ratio) + gene_population = generate_gene_population(total_genes, bound_ratio) # Check if the output is a 1D tensor assert gene_population.labels.ndim == 1 @@ -24,10 +24,10 @@ def test_generate_gene_population(): # Check if the output has the correct shape assert gene_population.labels.shape == torch.Size([total_genes]) - # Check if the second column contains the correct number of signal - # and non-signal genes - assert torch.sum(gene_population.labels) == signal_group_size - assert torch.sum(gene_population.labels == 0) == total_genes - signal_group_size + # Check if the second column contains the correct number of bound + # and non-bound genes + assert torch.sum(gene_population.labels) == bound_group_size + assert torch.sum(gene_population.labels == 0) == total_genes - bound_group_size # Additional tests could include checking the datatype of the tensor elements assert gene_population.labels.dtype == torch.bool @@ -37,7 +37,7 @@ def test_generate_binding_effects_success(): # set torch seed torch.manual_seed(42) # Create a mock GenePopulation with some genes - # labeled as signal and others as noise + # labeled as bound and others as unbound gene_population = GenePopulation(torch.tensor([1, 0, 1, 0], dtype=torch.bool)) # Call generate_binding_effects with valid arguments enrichment = generate_binding_effects(gene_population) @@ -84,7 +84,7 @@ def test_generate_pvalues_invalid_input(): def test_generate_perturbation_effects_with_and_without_adjustment(): torch.manual_seed(42) # Create mock binding data with the first - # column indicating signal (1) or noise (0), + # column indicating bound (1) or unbound (0), # the second column indicates the enrichment, and the third the p-value. # Add an extra dimension for TFs -- the function requires a 3D tensor. binding_data = torch.tensor( @@ -99,77 +99,77 @@ def test_generate_perturbation_effects_with_and_without_adjustment(): ) # Add TF dimension # Specify means and standard deviations - noise_mean = 0.0 - noise_std = 1.0 - signal_mean = 4.0 - signal_std = 1.0 + unbound_mean = 0.0 + unbound_std = 1.0 + bound_mean = 4.0 + bound_std = 1.0 # First, test without mean adjustment effects_without_adjustment = generate_perturbation_effects( binding_data=binding_data, tf_index=0, - noise_mean=noise_mean, - noise_std=noise_std, - signal_mean=signal_mean, - signal_std=signal_std, + unbound_mean=unbound_mean, + unbound_std=unbound_std, + bound_mean=bound_mean, + bound_std=bound_std, max_mean_adjustment=0.0, # No adjustment ) - # Extract masks for signal and noise genes based on labels - signal_mask = binding_data[:, :, 0].squeeze() == 1 - noise_mask = binding_data[:, :, 0].squeeze() == 0 + # Extract masks for bound and unbound genes based on labels + bound_mask = binding_data[:, :, 0].squeeze() == 1 + unbound_mask = binding_data[:, :, 0].squeeze() == 0 # Assert the effects tensor is of the correct shape assert effects_without_adjustment.shape[0] == binding_data.shape[0] assert torch.isclose( - torch.abs(effects_without_adjustment[signal_mask]).mean(), - torch.tensor(signal_mean), - atol=signal_std, + torch.abs(effects_without_adjustment[bound_mask]).mean(), + torch.tensor(bound_mean), + atol=bound_std, ) assert torch.isclose( - torch.abs(effects_without_adjustment[~signal_mask]).mean(), - torch.tensor(noise_mean), - atol=noise_std, + torch.abs(effects_without_adjustment[~bound_mask]).mean(), + torch.tensor(unbound_mean), + atol=unbound_std, ) assert torch.isclose( - torch.abs(effects_without_adjustment[signal_mask]).std(), - torch.tensor(signal_std), - atol=signal_std, + torch.abs(effects_without_adjustment[bound_mask]).std(), + torch.tensor(bound_std), + atol=bound_std, ) assert torch.isclose( - torch.abs(effects_without_adjustment[~signal_mask]).std(), - torch.tensor(noise_std), - atol=noise_std, + torch.abs(effects_without_adjustment[~bound_mask]).std(), + torch.tensor(unbound_std), + atol=unbound_std, ) # Test with mean adjustment effects_with_adjustment = generate_perturbation_effects( binding_data=binding_data, tf_index=0, - noise_mean=noise_mean, - noise_std=noise_std, - signal_mean=signal_mean, - signal_std=signal_std, + unbound_mean=unbound_mean, + unbound_std=unbound_std, + bound_mean=bound_mean, + bound_std=bound_std, max_mean_adjustment=4.0, # Applying adjustment ) - # Assert that signal genes with adjustments have a mean effect greater than + # Assert that bound genes with adjustments have a mean effect greater than # the base mean assert ( - torch.abs(effects_with_adjustment[signal_mask]).mean() - > torch.abs(effects_without_adjustment[signal_mask]).mean() + torch.abs(effects_with_adjustment[bound_mask]).mean() + > torch.abs(effects_without_adjustment[bound_mask]).mean() ) - # Assert that the mean effect for noise genes remains close to the noise mean + # Assert that the mean effect for unbound genes remains close to the unbound mean assert torch.isclose( - torch.abs(effects_with_adjustment[noise_mask]).mean(), - torch.tensor(noise_mean), - atol=noise_std, + torch.abs(effects_with_adjustment[unbound_mask]).mean(), + torch.tensor(unbound_mean), + atol=unbound_std, ) - # and that the noise standard deviation remains close to the noise std + # and that the unbound standard deviation remains close to the unbound std assert torch.isclose( - torch.abs(effects_with_adjustment[noise_mask]).std(), - torch.tensor(noise_std), - atol=noise_std, + torch.abs(effects_with_adjustment[unbound_mask]).std(), + torch.tensor(unbound_std), + atol=unbound_std, ) From 53ecf9f89688566254b280a908dc852fa86ea1f9 Mon Sep 17 00:00:00 2001 From: ejiawustl Date: Fri, 7 Jun 2024 14:26:19 -0700 Subject: [PATCH 2/7] added new file util.py and new test suite and updated notebook --- docs/tutorials/generate_in_silico_data.ipynb | 38 +- ..._and_testing_data_generation_methods.ipynb | 3140 ++++++++++++++--- .../probability_models/generate_data.py | 20 +- 3 files changed, 2717 insertions(+), 481 deletions(-) diff --git a/docs/tutorials/generate_in_silico_data.ipynb b/docs/tutorials/generate_in_silico_data.ipynb index 14dd53c..8e739f6 100644 --- a/docs/tutorials/generate_in_silico_data.ipynb +++ b/docs/tutorials/generate_in_silico_data.ipynb @@ -11,15 +11,7 @@ "cell_type": "code", "execution_count": 1, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Matplotlib is building the font cache; this may take a moment.\n" - ] - } - ], + "outputs": [], "source": [ "from yeastdnnexplorer.probability_models.relation_classes import And, Or\n", "from yeastdnnexplorer.probability_models.generate_data import (generate_gene_population, \n", @@ -360,7 +352,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "bound/nosie ratio is correct: True\n" + "bound/noise ratio is correct: True\n" ] } ], @@ -372,7 +364,7 @@ " dtype=torch.long),\n", " atol=tolerance)\n", "\n", - "print(f\"bound/nosie ratio is correct: {are_equal.all()}\")" + "print(f\"bound/noise ratio is correct: {are_equal.all()}\")" ] }, { @@ -412,7 +404,15 @@ "print(f\"the unbound mean is {unbound_binding.mean()} and the std is {unbound_binding.std()}\")\n", "print(f\"The bound binding max is {bound_binding.max()} and the min is {bound_binding.min()}\")\n", "print(f\"the bound min is {bound_binding.min()}\")\n", - "print(f\"the bound mean is {bound_binding.mean()} and the std is {bound_binding.std()}\")" + "print(f\"the bound mean is {bound_binding.mean()} and the std is {bound_binding.std()}\")\n", + "\n", + "#this is the output before EJ change to adjustment mean\n", + "# The unbound binding max is 13.157892227172852 and the min is 0.0\n", + "# the unbound min is 0.0\n", + "# the unbound mean is 0.3589712679386139 and the std is 1.1559306383132935\n", + "# The bound binding max is 78.94734954833984 and the min is 0.1315789520740509\n", + "# the bound min is 0.1315789520740509\n", + "# the bound mean is 2.4840002059936523 and the std is 6.374814510345459" ] }, { @@ -479,7 +479,15 @@ "print(f\"the unbound mean is {unbound_perturbation.mean()} and the std is {unbound_perturbation.std()}\")\n", "print(f\"The bound binding max is {bound_perturbation.max()} and the min is {bound_perturbation.min()}\")\n", "print(f\"the bound min is {bound_perturbation.min()}\")\n", - "print(f\"the bound mean is {bound_perturbation.mean()} and the std is {bound_perturbation.std()}\")" + "print(f\"the bound mean is {bound_perturbation.mean()} and the std is {bound_perturbation.std()}\")\n", + "\n", + "#pre change data\n", + "# The unbound binding max is 3.423511505126953 and the min is -3.506139039993286\n", + "# the unbound min is -3.506139039993286\n", + "# the unbound mean is 0.010617653839290142 and the std is 0.988001823425293\n", + "# The bound binding max is 6.107701301574707 and the min is -6.406703948974609\n", + "# the bound min is -6.406703948974609\n", + "# the bound mean is -0.011303802020847797 and the std is 3.136451482772827" ] }, { @@ -600,12 +608,12 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 17, "metadata": {}, "outputs": [ { "data": { - "image/png": "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VapUcfi9cdfMmTNx//599O7dG2FhYciRIwdu3boFABg9ejQURcE777yDK1euYOLEiWjatCn27NmDiIgIAMDixYtx9+5d9OnTBzlz5sSOHTvw9ddf4/z581i8eDEA4LXXXsPFixexevVqzJ0712lMBw8eRP369ZE1a1YMHToUISEh+Pbbb9GoUSNs3LgRtWrVstp+wIAByJ49O0aMGIEzZ85g4sSJ6N+/PxYuXOjS9+BReh8QUQBTiYj8bObMmSqANLewsDB11qxZabYHoI4YMSLp/ogRI1QAavfu3a22e+6559ScOXMm3d+zZ48KQO3bt6/Vdi+99FKafVpiOn36dNJjRYoUUQGof//9d9JjV65cUcPCwtTBgwcnPTZgwABVURR19+7dSY9dv35dzZEjR5p92mL5emzdypQpk+Z70a9fP6vHTp8+rQJQP//8c6vHe/TooebPn1+9du2a1eMdO3ZUo6Ki1Lt376qqqqozZsxQAagTJkxIE5vZbFZVVVWvXr2a5numqqp68+ZNm8d2Re3atdXq1atbPbZjxw4VgDpnzhxVVVV19+7dKgB18eLFbu+/S5cuaubMmdWrV6+qV69eVU+cOKF++umnqqIoauXKlVVVVdW5c+eqOp1O3bRpk9Vrp02bpgJQt2zZkvQYAFWn06kHDx602tbe90ZVVbVhw4Zqw4YNbcZWpEiRpPuWn2HWrFnVK1euWG27fv16FYBasGBBNT4+PunxRYsWqQDUr776Kukxy880pTFjxqiKoqhnz55Neqxfv36qvVOA1F9L27Zt1dDQUPXkyZNJj128eFGNjIxUGzRokPSY5T3UtGnTpN8bVVXVN998U9Xr9eqtW7dsHs/iUX0fEFFg4nQ7ItLMlClTsHr1aqxevRrz5s1D48aN0bNnTyxdutSl17/++utW9+vXr4/r168jPj4egCxOB4CBAwdabWe5cuyK8uXLo379+kn3c+fOjTJlyuDUqVNJj61YsQK1a9dG1apVkx7LkSMHXn75ZZePAwA///xz0vfDcps5c6Zb+7BQVRU///wzWrVqBVVVce3ataRbs2bNEBcXh127diUdN1euXBgwYECa/aSchmVLREQEQkNDsWHDhqTpca7q0KED/vvvv6SRHQBYuHAhwsLC0KZNGwBIGilauXJlmqmUrrhz5w5y586N3Llzo2TJknj33XdRu3Zt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GHXSpEkqAPXy5csOvx+OSh8DUNevX2/1vXC19LGqqmpsbKzar18/NTo6Wg0JCVHz5cunPvnkk+r06dOttrt796763nvvqcWKFUvarn379lZln7du3apWr15dDQ0NTfr+Xbt2Te3Xr59atmxZNXPmzGpUVJRaq1YtddGiRQ6/5pS+++47FYAaGRmp3rt3z+q5U6dOqd27d1dLlCihhoeHqzly5FAbN26srlmzxul+LSXAnXn48KH62WefqRUqVFDDwsLU7Nmzq9WrV1c/+ugjNS4uLmk7W997C1vfG4t58+apxYsXV0NDQ9WqVauqK1eutFsC3NbP0FICfMGCBerw4cPVPHnyqBEREWqLFi2synqrqqoeOnRIbdq0qZolSxY1V65caq9evdS9e/eqANSZM2cmbWc0GtUBAwaouXPnVhVFsSoHnjp+VVXVXbt2qc2aNVOzZMmiZsqUSW3cuLG6detWq20s76GdO3fajD/l77Etj/r7gIgCi6KqAb76mIgoSA0aNAjffvstEhIS7C5mJyIiosDDNUlERF5w7949q/vXr1/H3LlzUa9ePSZIREREQYZrkoiIvKB27dpo1KgRypUrh9jYWPzwww+Ij4/HBx98oHVoRERE5CYmSUREXvDss89iyZIlmD59OhRFwWOPPYYffvgBDRo00Do0IiIichPXJBEREREREaXANUlEREREREQpMEkiIiIiIiJKIcOvSTKbzbh48SIiIyNdbuhIREREREQZj6qquH37NgoUKACdzv54UYZPki5evIjo6GitwyAiIiIiogARExODQoUK2X0+wydJkZGRAOQbkTVrVo2jISIiIiIircTHxyM6OjopR7AnwydJlil2WbNmZZJEREREREROl+GwcAMREREREVEKTJKIiIiIiIhSYJJERERERESUQoZfk0RERERE5C5VVWE0GmEymbQOhdyg1+thMBjS3fqHSRIRERERUQoPHz7EpUuXcPfuXa1DIQ9kypQJ+fPnR2hoqMf7YJJERERERPR/ZrMZp0+fhl6vR4ECBRAaGpruUQnyD1VV8fDhQ1y9ehWnT59GqVKlHDaMdYRJEhERERHR/z18+BBmsxnR0dHIlCmT1uGQmyIiIhASEoKzZ8/i4cOHCA8P92g/LNxARERERJSKpyMQpD1v/Oz40yciIiIi8oHERMf3KXBxuh0RERERkRcZ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O896hMsshMOrweGCxhdZv4yHRgffL+UFWZC9FZxhEN3N/wWaiIiIiIgNdmuDoC+SAJ5//nmeeOIJ0tPT6dmzJ88++yz9+/e39d6gKJJERERERCTgalWRVBUqkkREREREBOzXBkG9JklERERERKS6qUgSEREREREpRUWSiIiIiIhIKSqSRERERERESlGRJCIiIiIiUoqKJBERERERkVJUJImIiIiIiJSiIklERERERKQUFUkiIiIiIiKlqEgSEREREREpRUWSiIiIiIhIKSqSRERERERESlGRJCIiIiIiUoor0An4m2maAGRnZwc4ExERERERCaTimqC4RqhIrS+Sjh07BkDz5s0DnImIiIiIiASDY8eOER0dXeF5w/RWRtVwHo+HAwcOEBUVhWEYAc0lOzub5s2bs2/fPho0aBDQXGor3ePqofvsf7rH/qd77H+6x9VD99n/dI/9r7rusWmaHDt2jKSkJByOilce1fqZJIfDQbNmzQKdRhkNGjTQv2B+pntcPXSf/U/32P90j/1P97h66D77n+6x/1XHPa5sBqmYGjeIiIiIiIiUoiJJRERERESkFBVJ1SgsLIypU6cSFhYW6FRqLd3j6qH77H+6x/6ne+x/usfVQ/fZ/3SP/S/Y7nGtb9wgIiIiIiJyJjSTJCIiIiIiUoqKJBERERERkVJUJImIiIiIiJSiIklERERERKQUFUnV6IUXXqBVq1aEh4fTv39/Vq1aFeiUaqylS5dy5ZVXkpSUhGEYzJ8/v8x50zT529/+RmJiIhEREQwdOpTt27cHJtkaatq0afTt25eoqCiaNGnC1VdfzdatW8vE5OXlkZycTGxsLPXr1+faa6/l4MGDAcq45pk1axbdu3cv2ThvwIABfPbZZyXndX99b/r06RiGwaRJk0qO6T5X3UMPPYRhGGVenTp1Kjmve+wbP//8MzfccAOxsbFERERwzjnnsGbNmpLz+ruvalq1anXa99gwDJKTkwF9j33B7Xbz4IMP0rp1ayIiImjbti1///vfKd1HLli+xyqSqsm7777LXXfdxdSpU1m3bh09evRg+PDhZGRkBDq1Gik3N5cePXrwwgsvlHt+xowZPPvss7z44ousXLmSevXqMXz4cPLy8qo505pryZIlJCcns2LFChYtWkRhYSGXXnopubm5JTGTJ09mwYIFvPfeeyxZsoQDBw4w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", + "image/png": "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73//e6666ipmzpwJRNdnWUVQHSUmJjJw4EAWLFhQ9Zzf72fBggUMHTo0gpnFp44dO5KdnV1tvouKili8eLHmuxZs22bSpEnMnj2b//znP3Ts2LHa8YEDB5KQkFBtnteuXcvWrVs1z3Xg9/spKyvT/IbI8OHD+frrr1m1alXVY9CgQVx88cVVX2ueQ6+4uJiNGzeSk5Ojz3KIDBs27LBtCtatW0f79u0B/ewLpaeeeoqsrCzGjBlT9Zw+x6Gzb98+XK7q5YXb7cbv9wNR9lmu1zYMceqll16yk5KS7Kefftr+9ttv7T/+8Y92kyZN7Pz8/EinFpP27t1rr1y50l65cqUN2P/85z/tlStX2lu2bLFt27ZnzZplN2nSxH7zzTftr776yj7nnHPsjh072vv3749w5rHjT3/6k52RkWEvXLjQzsvLq3rs27evKmbixIl2u3bt7P/85z/2smXL7KFDh9pDhw6NYNaxZdq0afaiRYvsTZs22V999ZU9bdo027Is+4MPPrBtW/MbLod2h7NtzXMoXH311fbChQvtTZs22Z9++qk9YsQIu3nz5nZBQYFt25rjUFiyZInt8XjsGTNm2OvXr7eff/55OzU11X7uueeqYvSzr+58Pp/drl07+7rrrjvsmD7HoTF+/Hi7devW9ty5c+1NmzbZb7zxht28eXP72muvrYqJls+yiqAQue++++x27drZiYmJ9nHHHWd/8cUXkU4pZn300Uc2cNhj/Pjxtm077RX/+te/2i1btrSTkpLs4cOH22vXro1s0jHmSPML2E899VRVzP79++0///nPdmZmpp2ammqPGzfOzsvLi1zSMebSSy+127dvbycmJtotWrSwhw8fXlUA2bbmN1x+WQRpnuvuwgsvtHNycuzExES7devW9oUXXmhv2LCh6rjmODTefvttu3fv3nZSUpLdvXt3+9FHH612XD/76u7999+3gSPOmz7HoVFUVGRPnjzZbteunZ2cnGx36tTJvvHGG+2ysrKqmGj5LFu2fcgWriIiIiIiInFO9wSJiIiIiEiDoiJIREREREQaFBVBIiIiIiLSoKgIEhERERGRBkVFkIiIiIiINCgqgkREREREpEFRESQiIiIiIg2KiiAREREREWlQVASJiEiNNm/ejGVZrFq1qk7j3HLLLfTv37/q+wkTJjB27Ng6jRkq+fn5nH766aSl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", "text/plain": [ "
" ] diff --git a/docs/tutorials/visualizing_and_testing_data_generation_methods.ipynb b/docs/tutorials/visualizing_and_testing_data_generation_methods.ipynb index a0178dc..88347bb 100644 --- a/docs/tutorials/visualizing_and_testing_data_generation_methods.ipynb +++ b/docs/tutorials/visualizing_and_testing_data_generation_methods.ipynb @@ -17,7 +17,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 38, "metadata": {}, "outputs": [], "source": [ @@ -59,7 +59,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 39, "metadata": {}, "outputs": [], "source": [ @@ -100,7 +100,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 40, "metadata": {}, "outputs": [], "source": [ @@ -197,7 +197,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 41, "metadata": {}, "outputs": [ { @@ -233,7 +233,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 42, "metadata": {}, "outputs": [ { @@ -247,7 +247,7 @@ }, { "data": { - "image/png": "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5L+F3MHSf8t1FyvzERFRscVAiYjeagEBgJsbIMvj4r5MBri7K/MRGY17EBCwHbAup55u7aZMdw8qmnoREZHOGCgR0VtNLgeW/HdxP3ewpFpevFiZj8io3IOAD+OAJnuUy032AB/GMkgiInpDMFAiordeUBCwfTtQLtfFfTc3ZXoQz1upsJjIgTL+yv+X8edwOyKiN4hpUVeAiOh1CAoCOnUCjh0DkpKAPXuAxo3Zk0RERETasUeJiN4Zcjng/9/FfX9/BklERESUNwZKREREREREuRRpoOTl5QWZTKbxN3To0KKsFhERERERveOK9B6l06dPQ6FQSMuXL19Gq1at0LVr1yKsFRERERERveuKNFBycnJSW54zZw68vb3RpEkTrfnT09ORnp4uLSclJQEAMjMzkZmZWXgV1YFq+0VdjzcR284wbDfDsN0Mx7YzDNvNMGw3w7DdDMe2M0xxajdj10EmhBBGLdFAGRkZcHV1xRdffIH//e9/WvOEhYVh6tSpGukbN26EtbV1YVeRiIiIiIiKqZSUFPTq1QuJiYmwt7cvcHnFJlDaunUrevXqhTt37sDV1VVrHm09Su7u7vj333+N0hgFkZmZiUOHDqFVq1YwMzMr0rq8adh2hmG7GYbtZji2nWHYboZhuxmG7WY4tp1hilO7JSUloXTp0kYLlIrNc5RWr16Ntm3b5hkkAYCFhQUsLCw00s3MzIp8x6gUp7q8adh2hmG7GYbtZji2nWHYboZhuxmG7WY4tp1hikO7GXv7xSJQun37Ng4fPoyIiIiirgoREREREVHxeI7S2rVrUaZMGbRv376oq0JERERERFT0gVJ2djbWrl2LkJAQmJoWiw4uIiIiIiJ6xxV5oHT48GHcuXMH/fv3L+qqEBERERERASgG9yi1bt0axWTiPSIiIiIiIgDFoEeJiIiIiIiouGGgRERERERElAsDJSIiIiIiolwYKBEREREREeXCQImIiIiIiCgXBkpERERERES5MFAiIiIiIiLKhYESERERERFRLgyUiIiIiIiIcmGgRERERERElAsDJSIiIiIiolwYKBEREREREeXCQImIiIiIiCgXBkpERERERES5MFAiIiIiIiLKhYESERERERFRLgyUiIiIiIiIcmGgRERERERElAsDJSIiIiIiolwYKBEREREREeXCQImIiIiIiCgXBkpERERERES5MFAiIiIiIiLKhYESERERERFRLgyUiIiIiIiIcmGgRERERERElAsDJSIiIiIiolwYKBEREREREeXCQImIiIiIiCgXBkpERERERES5MFAiIiIiIiLKhYESERERERFRLgyUiIiIiIiIcmGgRERERERElAsDJSIiIiIiolxMdcnk6OgImUymU4FPnz4tUIWIiIiIiIiKmk6B0uLFiwu5GkRERERERMWHToFSSEhIYdeDiIiIiIio2NApUMpLWloaMjIy1NLs7e0LVCEiIiIiIqKipvdkDi9fvsSwYcNQpkwZ2NjYwNHRUe2PiIiIiIjoTad3oDRu3DgcOXIEy5cvh4WFBX744QdMnToVrq6u+PHHH/WuwL179/DJJ5+gVKlSsLKyQo0aNXDmzBm9yyEiIiIiIjIWvYfe/frrr/jxxx/RtGlT9OvXDwEBAahYsSI8PT2xYcMGfPzxxzqX9ezZM/j5+aFZs2bYt28fnJyccOPGDfZMERERERFRkdI7UHr69CkqVKgAQHk/kmo6cH9/f3z22Wd6lTV37ly4u7tj7dq1Ulr58uX1rRIREREREZFR6R0oVahQAbGxsfDw8ECVKlWwdetWfPDBB/j1119RokQJvcr65ZdfEBgYiK5du+L3339HuXLl8Pnnn+PTTz/Vmj89PR3p6enSclJSEgAgMzMTmZmZ+r4Vo1Jtv6jr8SZi2xmG7WYYtpvh2HaGYbsZhu1mGLab4dh2hilO7WbsOsiEEEKfFyxatAhyuRwjRozA4cOH0bFjRwghkJmZiYULF2LkyJE6l2VpaQkA+OKLL9C1a1ecPn0aI0eOxPfff691SvKwsDBMnTpVI33jxo2wtrbW520QEREREdFbJCUlBb169UJiYqJRZuLWOVAaM2YMBg4ciCpVqqil3759G2fPnkXFihVRs2ZNvTZubm6O999/H3/88YeUNmLECJw+fRonT57UyK+tR8nd3R3//vtvkU9LnpmZiUOHDqFVq1YwMzMr0rq8adh2hmG7GYbtZji2nWHYboZhuxmG7WY4tp1hilO7JSUloXTp0kYLlHQeevfzzz9j0aJFqF+/PgYOHIju3bvDxsYGnp6e8PT0NGjjLi4uqFq1qlqaj48PduzYoTW/hYUFLCwsNNLNzMyKfMeoFKe6vGnYdoZhuxmG7WY4tp1h2G6GYbsZhu1mOLadYYpDuxl7+zpPD37jxg1ERkaiUqVKGDlyJJydndG/f3+13iB9+fn54dq1a2pp169fNzjwIiIiIiIiMga9nqPUuHFjhIeH48GDB1iyZAlu3LgBf39/+Pj4YP78+Xj48KFeGx81ahT+/PNPzJo1Czdv3sTGjRuxcuVKDB06VK9yiIiIiIiIjEnvB84CgI2NDfr374+oqChcv34dQUFBmD17Njw8PPQqp169eti5cyc2bdqE6tWrY/r06Vi8eLFez2IiIiIiIiIyNr2nB8/p5cuXiIqKwu+//45nz56hcuXKepfRoUMHdOjQoSDVICIiIiIiMiqDepSOHz+O/v37w8XFBSNGjEClSpUQFRWFmJgYY9ePiIiIiIjotdO5RykhIQHr1q1DeHg4rl+/jgYNGmDhwoXo0aMHbG1tC7OOREREREREr5XOgZK7uztKlSqF3r17Y8CAAfDx8SnMehERERERERUZnQOlrVu34sMPP4SpaYFuayIiIiIiIir2dI56goKCCrMeRERERERExYZBkzkQERERERG9zRgoERERERER5cJAiYiIiIiIKBe9A6X+/fvjxYsXGukvX75E//79jVIpIiIiIiKioqR3oLRu3TqkpqZqpKempuLHH380SqWIiIiIiIiKks6z3iUlJUEIASEEXrx4AUtLS2mdQqHA3r17UaZMmUKpJBERERER0eukc6BUokQJyGQyyGQyVKpUSWO9TCbD1KlTjVo5IiIiIiKioqBzoBQZGQkhBJo3b44dO3agZMmS0jpzc3N4enrC1dW1UCpJRERERET0OukcKDVp0gQAEBsbCw8PD8hkskKrFBERERERUVHSezKHI0eOYPv27Rrp27Ztw7p164xSKSIiIiIioqKkc4+SyuzZs7FixQqN9DJlymDQoEEICQkxSsWIiIio4BQKBTIzM4u6GnrLzMyEqakp0tLSoFAoiro6bwy2m+HYdoZ5ne1mZmYGuVxeqNvISe9A6c6dOyhfvrxGuqenJ+7cuWOUShEREVHBCCHw4MEDPH/+vKirYhAhBJydnREfH8/h/npguxmObWeY191uJUqUgLOz82vZlt6BUpkyZXDx4kV4eXmppUdHR6NUqVLGqhcREREVgCpIKlOmDKytrd+4E7/s7GwkJyfD1tYWJiZ63ynwzmK7GY5tZ5jX1W5CCKSkpODRo0cAABcXl0LbloregVLPnj0x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ioiIUGpqqkpLS+0uy68ISn6wdu1aPfTQQ5o/f74++ugjDR8+XNddd52OHj1qd2kBrbq6WsOHD9czzzxjdylBZcuWLcrMzNTWrVtVWFiouro6TZ48WdXV1XaXFtASEhK0dOlSbd++Xdu2bdM111yjadOmadeuXXaXFjRKS0v17LPPatiwYXaXEhSGDBmiysrKho+SkhK7SwoKX3/9ta6++mqFhoZq48aN+sc//qEnn3xSP/rRj+wuLaCVlpY2er0VFhZKkm6++WabKwtsy5Yt08qVK7VixQp9+umnWrZsmX7/+9/r6aeftru0gPerX/1KhYWFevnll1VeXq7Jkyfr2muv1cGDB+0uzW9YHtwPRo8erauuukorVqyQJHk8HiUmJuqBBx7Q3Llzba4uODgcDhUUFOimm26yu5Sg89VXXykmJkZbtmzR+PHj7S4nqHTt2lVPPPGE/uM//sPuUgLeqVOnNGLECP3pT3/SokWL9G//9m9avny53WUFrAULFmjdunUqKyuzu5SgM3fuXL333nsqLi62u5Sglp2drTfffFOff/65HA6H3eUErBtuuEE9e/bUCy+80LDv3//93xUREaG//OUvNlYW2E6fPq2oqCi9/vrrSktLa9g/cuRITZkyRYsWLbKxOv/hjNJFOnv2rLZv365rr722YV9ISIiuvfZaffDBBzZWhvaiqqpKkvdNP3zjdrv1yiuvqLq6WmPGjLG7nKCQmZmptLS0Rj/rcGGff/654uLi1LdvX91+++3av3+/3SUFhTfeeEOjRo3SzTffrJiYGKWkpOi5556zu6ygcvbsWf3lL3/RrFmzCEk/IDU1Ve+8844+++wzSdLHH3+skpISTZkyxebKAtu3334rt9utDh06NNofERFxSZ09v8zuAoLdsWPH5Ha71bNnz0b7e/bsqX/+8582VYX2wuPxKDs7W1dffbWuvPJKu8sJeOXl5RozZozOnDmjyMhIFRQUaPDgwXaXFfBeeeUVffTRR5fc3PPWNHr0aL300ksaMGCAKisrtXDhQo0bN047d+5UVFSU3eUFtH/9619auXKlHnroIf3mN79RaWmpfv3rXyssLEwZGRl2lxcU1q1bp2+++UZ33XWX3aUEvLlz58rlcmngwIFyOp1yu91avHixbr/9drtLC2hRUVEaM2aMfve732nQoEHq2bOn/vrXv+qDDz5Qv3797C7PbwhKQBDLzMzUzp07L6mjN61pwIABKisrU1VVlfLy8pSRkaEtW7YQli6goqJCWVlZKiwsbHLkEOf3/aPRw4YN0+jRo9W7d2+9+uqrTPX8AR6PR6NGjdKSJUskSSkpKdq5c6f++7//m6DkoxdeeEFTpkxRXFyc3aUEvFdffVVr1qxRbm6uhgwZorKyMmVnZysuLo7X2w94+eWXNWvWLMXHx8vpdGrEiBG67bbbtH37drtL8xuC0kXq3r27nE6njhw50mj/kSNH1KtXL5uqQntw//33680331RRUZESEhLsLicohIWFNRzpGjlypEpLS5WTk6Nnn33W5soC1/bt23X06FGNGDGiYZ/b7VZRUZFWrFih2tpaOZ1OGysMDl26dNEVV1yhL774wu5SAl5sbGyTgxeDBg3Sa6+9ZlNFweXLL7/U22+/rfz8fLtLCQqzZ8/W3Llz9ctf/lKSNHToUH355Zd6/PHHCUo/4PLLL9eWLVtUXV0tl8ul2NhY3Xrrrerbt6/dpfkN1yhdpLCwMI0cOVLvvPNOwz6Px6N33nmHax/QKgzD0P3336+CggL97//+r/r06WN3SUHL4/GotrbW7jIC2sSJE1VeXq6ysrKGj1GjRun2229XWVkZIclHp06d0p49exQbG2t3KQHv6quvbnLLg88++0y9e/e2qaLgsnr1asXExDS6wB7nV1NTo5CQxm+HnU6nPB6PTRUFn06dOik2NlZff/21Nm3apGnTptldkt9wRskPHnroIWVkZGjUqFH68Y9/rOXLl6u6ulp333233aUFtFOnTjU6urp3716VlZWpa9euSkpKsrGywJaZmanc3Fy9/vrrioqK0uHDhyVJnTt3VkREhM3VBa558+ZpypQpSkpK0smTJ5Wbm6vNmzdr06ZNdpcW0KKioppc/9apUyd169aN6+Iu4OGHH9bUqVPVu3dvHTp0SPPnz5fT6dRtt91md2kB78EHH1RqaqqWLFmiW265RR9++KFWrVqlVatW2V1awPN4PFq9erUyMjJ02WW8xfPF1KlTtXjxYiUlJWnIkCHasWOH/vjHP2rWrFl2lxbwNm3aJMMwNGDAAH3xxReaPXu2Bg4ceGm9/zXgF08//bSRlJRkhIWFGT/+8Y+NrVu32l1SwHv33XcNSU0+MjIy7C4toDXXM0nG6tWr7S4toM2aNcvo3bu3ERYWZvTo0cOYOHGi8T//8z92lxWUfvrTnxpZWVl2lxHQbr31ViM2NtYICwsz4uPjjVtvvdX44osv7C4raKxfv9648sorjfDwcGPgwIHGqlWr7C4pKGzatMmQZOzevdvuUoKGy+UysrKyjKSkJKNDhw5G3759jd/+9rdGbW2t3aUFvLVr1xp9+/Y1wsLCjF69ehmZmZnGN998Y3dZfsV9lAAAAADAhGuUAAAAAMCEoAQAAAAAJgQlAAAAADAhKAEAAACACUEJAAAAAEwISgAAAABgQlACAAAAABOCEgAAAACYEJQAAO3Gvn375HA4VFZWZncpAIAAR1ACAPiVw+G44MeCBQsaAov544477jjv806YMEHZ2dlt9xcBALRrl9ldAADg0lJZWdnw+dq1a/XYY49p9+7dDfsiIyN17NgxSdLbb7+tIUOGNDwWERHRdoUCAHABnFECAPhVr169Gj46d+4sh8PRaF9kZGTD2G7dujUZ76vk5GQtWbJEs2bNUlRUlJKSkrRq1apGYz788EOlpKSoQ4cOGjVqlHbs2NHkeXbu3KkpU6YoMjJSPXv21J133tkQ5DZv3qywsDAVFxc3jP/973+vmJgYHTlypKWtAQAEEYISACBoPfnkkw0B6L777tO9997bcPbq1KlTuuGGGzR48GBt375dCxYs0MMPP9zo67/55htdc801SklJ0bZt2/TWW2/pyJEjuuWWWyR9N93vzjvvVFVVlXbs2KFHH31Uzz//vHr27Nnmf18AQNth6h0AwDapqakKCfnumF1xcbFSUlJ8/vrrr79e9913nyRpzpw5euqpp/Tuu+9qwIABys3Nlcfj0QsvvKAOHTpoyJAhOnDggO69996Gr1+xYoVSUlK0ZMmShn0vvviiEhMT9dlnn+mKK67QokWLVFhYqP/8z//Uzp07lZGRoRtvvNEPf3sAQCAjKAEAbLN27VoNGjSoYTsxMbFFXz9s2LCGz+un+B09elSS9Omnn2rYsGHq0KFDw5gxY8Y0+vqPP/5Y7777bqPpgPX27NmjK664QmFhYVqzZo2GDRum3r1766mnnmpRjQCA4ERQAgDYJjExUf369bP89aGhoY22HQ6HPB6Pz19/6tQpTZ06VcuWLWvyWGxsbMPn77//viTpxIkTOnHihDp16mSxYgBAsOAaJQDAJWnQoEH65JNPdObMmYZ9W7dubTRmxIgR2rVrl5KTk9WvX79GH/VhaM+ePXrwwQf13HPPafTo0crIyGhRGAMABCeCEgDgkjRjxgw5HA7dc889+sc//qG///3v+sMf/tBoTGZmpk6cOKHbbrtNpaWl2rNnjzZt2qS7775bbrdbbrdbd9xxh6677jrdfffdWr16tT755BM9+eSTNv2tAABthaAEALgkRUZGav369SovL1dKSop++9vfNpliFxcXp/fee09ut1uTJ0/W0KFDlZ2drS5duigkJESLFy/Wl19+qWeffVaSdzreqlWr9Mgjj+jjjz+2468FAGgjDsMwDLuLAAAAAIBAwhklAAAAADAhKAEAAACACUEJAAAAAEwISgAAAABgQlACAAAAABOCEgAAAACYEJQAAAAAwISgBAAAAAAmBCUAAAAAMCEoAQAAAIAJQQkAAAAATP4f1HAO4BmJKS4AAAAASUVORK5CYII=", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0oAAAIjCAYAAAA9VuvLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAACyKUlEQVR4nOzdd1gUV9sG8HvpvYgooDSxYRd772KNit1EsWtijz1Ggxp7j4kmGgVDjB01sTeMWGKs2IiiASs2UBDpy/n+4Nt5WXbB3WURNPfvurh0Z2bPPPvs7Ow8e2bOyIQQAkRERERERCQxKOwAiIiIiIiIihoWSkRERERERDmwUCIiIiIiIsqBhRIREREREVEOLJSIiIiIiIhyYKFERERERESUAwslIiIiIiKiHFgoERERERER5cBCiYiIiIiIKAcWSnrm4eGBTp06vZd1DRw4EB4eHu9lXfmxZMkSlClTBoaGhqhRowYAICMjA1OmTIGrqysMDAzQtWvXQo1RU8+ePUOPHj3g4OAAmUyGlStXFnZIpEZAQABkMplWy758+bKAo/qf5s2bo3nz5krTctu2IiMj0bZtW9ja2kImk2HPnj3vLc6iLjo6GjKZDEFBQdI0bd57+vCp2waKmsTERJQoUQKbN28u7FA+OB/KcQ5pz8PDAwMHDtT6ebp+5uvXr48pU6Zovb4iXygFBQVBJpNJf2ZmZihfvjxGjx6NZ8+e6XVda9asKXI72ydPniAgIABXr14t7FAkio00t7+FCxdKyx45cgRTpkxBo0aNEBgYiPnz5wMANm7ciCVLlqBHjx7YtGkTJkyYoPc4f/vtN70XMhMmTMDhw4cxffp0BAcHo127dnptX53U1FSsXr0ajRs3hr29PUxMTODi4oJPPvkEW7ZsgVwuL/AY8uvs2bNo3LgxLCws4OTkhLFjxyIxMfG9xjB//vwCKTIGDhyotP1bWVmhTJky6NGjB3bt2oXMzEyN2slt2/L398f169cxb948BAcHo3bt2np/Dfqia44jIiKk/fvr16/1Hpc+FcR+paBo+/2R8/s2+9+0adMKNth3+JDyntOqVatgbW2NPn36FHYo9BFYu3YtevbsCTc3N8hksjyLjdevX2P48OFwdHSEpaUlWrRogcuXL6td9vfff4ePjw/MzMzg5uaGb775BhkZGe+M59atWwgICEB0dLSOr+j9mDp1Kn744Qc8ffpUuyeKIi4wMFAAEHPmzBHBwcFi/fr1wt/fXxgYGAhPT0/x9u1bva2rcuXKolmzZvlqw93dXXTs2FE/AQkhLly4IACIwMBAlXlpaWkiJSVFb+vSVFRUlAAg+vbtK4KDg1X+bty4IS07depUYWBgIFJTU5Xa6N27tyhVqlSBxtmxY0fh7u6u1zZLliwpPv30U722mZfnz5+LWrVqCQDC19dXLF26VGzcuFHMnz9ftGzZUvpsFGVXrlwRZmZmombNmmLt2rVixowZwtTUVLRr167A1pmeni6Sk5OVpllaWgp/f3+VZb/55hsBQLx48UKndfn7+wtTU1Np+1+3bp2YMWOGqFatmgAgmjdvLuLj45Wek5qaqvKZULdtJSUlCQBixowZOsX2vuWW43f56quvhJOTkzA1NRXr16/X+HmKfVH2/aO6916fCmK/UlDy+v5QJ+f3bfa/K1euFGis75Jb3jMzM0VycrLIyMh4/0FpIC0tTTg6Oor58+cXdigfJH9//w/m8/a+uLu7i2LFiol27doJIyOjXPe5crlcNGzYUFhaWoqAgADx/fffi0qVKglra2tx584dpWUPHDggZDKZaNGihVi3bp0YM2aMMDAwECNHjnxnPDt27BAARGhoqFavIyUlRaSlpWn1HCHU7/c1IZfLhZOTk5g5c6ZWzzPSW6lWwNq3by/9kjp06FA4ODhg+fLl2Lt3L/r27ZuvtpOSkmBhYaGPMN8rY2PjQl2/j48PPvvsszyXef78OczNzWFiYqIy3c7OrgCjKxj6jjslJQUmJiYwMFDfudu/f39cuXIFu3btgp+fn9K86dOn4+LFi7h9+7be4ikIX331Fezt7XHy5EnY2NgAyOpyHzZsGI4cOYK2bdvqfZ1GRkYwMnp/uzcjIyOVz8K3336LhQsXYvr06Rg2bBi2bdsmzcv5eQDUb1svXrwAgPe6zb1vQgj89ttv6NevH6KiorB582YMHTpU5/be93v/Mcr+fVvUKXoii6p9+/bhxYsX6NWrV2GHkqu3b9/C0tKysMMo0opSjv7880+pN8nKyirX5Xbu3ImzZ89ix44d6NGjBwCgV69eKF++PL755hv89ttv0rKTJk1CtWrVcOTIEWn/aWNjg/nz52PcuHGoWLGiXmIXQiAlJQXm5uYwNTXVS5uaMjAwQI8ePfDLL79g9uzZmp+irVVZVQgUv3BduHBBafq+ffsEADFv3jxpWnBwsPDx8RFmZmbC3t5e9O7dWzx48EDpec2aNROVK1cWFy9eFE2aNBHm5uZi3Lhxwt3dXQBQ+lP0Lil+cc4ttqioKGmaokfp8OHDonr16sLU1FR4e3uLXbt2KT03NjZWTJw4UVSpUkVYWloKa2tr0a5dO3H16lVpmdDQUJWYkK2KVvdLS2Jiovjyyy9F6dKlhYmJiShfvrxYsmSJyMzMVFoOgBg1apTYvXu3qFy5sjAxMRGVKlUSBw8ezPP9EOJ/1fySJUvyXC632NVNV/wSIZfLxYoVK0SlSpWEqampKFGihBg+fLiIi4tTaf/AgQOiadOmwsrKSlhbW4vatWuLzZs3CyGy3uec68ieq++++05UqlRJmJubCzs7O1GrVi3puerkFrfCvXv3RI8ePYS9vb0wNzcX9erVE/v27VNqQ/F+btmyRcyYMUO4uLgImUwmXr16pXadZ8+eFQA0+kUnu5SUFDFr1izh5eUlTExMROnSpcXkyZNVeh+12QYePXokBg0aJEqUKCEtt2HDhnfGEh8fL4yMjMTkyZOVpqempgorKysxZMiQXJ+bmZkpHBwcxIQJE6Rpcrlc2NraCgMDA6W8LVy4UBgaGoo3b94IIVQ/s+reO8WvcIplIyMjhb+/v7C1tRU2NjZi4MCBGvVY+/v7C0tLy1znt23bVshkMnH79m1pWrNmzaT9S27bliKu3LZhTd6Td21zf/31l/D19RU2NjbC3NxcNG3aVJw+fVqpDU3zk1eO8xIWFiYAiL///lts27ZNGBgYiIcPH6os9+rVK+Hv7y9sbGyEra2tGDBggLhy5YrKL4s53/u8fn1U5FkhISFB+j4wMTERjo6OonXr1uLSpUtCiLz3K4pcb9u2TQQEBAgXFxdhZWUlunfvLl6/fi1SUlLEuHHjhKOjo7C0tBQDBw5Ue0aANt9jN2/eFM2bNxfm5ubCxcVFLFq0SFrmXd8f6uT2fZtXzhTc3d2V3m9FW6dPnxYTJkwQxYsXFxYWFqJr167i+fPnKs/XdX+e2/t7/Phx0bhxY2FhYSFsbW3FJ598Im7duqW0jDaf/SNHjohGjRoJW1tbYWlpKcqXLy+mT5+ea54UBgwYIDw8PFSmh4eHC39/f+Hp6SlMTU1FyZIlxaBBg8TLly+lZRS/1J88eVLl+T/++KMAIK5fvy5Ni4iIEN27dxf29vbC1NRU1KpVS+zdu1fpeYr35eTJk+Lzzz8Xjo6Ows7OTgghRHR0tPj8889F+fLlhZmZmShWrJjo0aOH0jFO9vibNm0qzMzMRKlSpcTcuXPFxo0bVY6JhMh6bxXvhZWVlejQoYPSmScKiu8iU1NTUblyZRESEqJxj9KePXtEhw4dhLOzszAxMRFlypQRc+bMUdvT+Ndff4n27dsLOzs7YWFhIapWrSpWrlwpzVfs0+/evSvat28vrKysRJcuXYQQmh9jabK9aHscok5evfg9e/YUJUuWFHK5XGn68OHDhYWFhbT/uXnzpgAgfvjhB6XlHj9+LACIuXPn5rr+dx3TKY6JDx06JGrVqiVMTU3FihUrpHnZY9fkuFgI9Z/5mJgYMXDgQFGqVClhYmIinJycxCeffKKyLe7du1cAEJcvX871NeX0wf7sdu/ePQCAg4MDAGDevHmYOXMmevXqhaFDh+LFixdYvXo1mjZtiitXrij9IhsbG4v27dujT58++Oyzz1CyZEk0b94cY8aMgZWVFWbMmAEAKFmypE6xRUZGonfv3hg5ciT8/f0RGBiInj174tChQ2jTpg0A4N9//8WePXvQs2dPeHp64tmzZ/jpp5/QrFkz3Lp1Cy4uLvD29sacOXMwa9YsDB8+HE2aNAEANGzYUO16hRD45JNPEBoaiiFDhqBGjRo4fPgwJk+ejMePH2PFihVKy58+fRohISH44osvYG1tje+++w7du3fHgwcPpLzmJSkpSe0F8HZ2djAyMkJwcDDWrVuHv//+Gz///DMAoGbNmggODsa8efOQmJiIBQsWAAC8vb0BACNGjEBQUBAGDRqEsWPHIioqCt9//z2uXLmCM2fOSL1oQUFBGDx4MCpXrozp06fDzs4OV65cwaFDh9CvXz/MmDED8fHxePTokfS6Fb+8rF+/HmPHjkWPHj0wbtw4pKSk4Nq1azh//jz69eun9rU2bdoUwcHB6N+/P9q0aYMBAwZI8549e4aGDRsiKSkJY8eOhYODAzZt2oRPPvkEO3fuRLdu3ZTamjt3LkxMTDBp0iSkpqaq7V0AgD/++AMA3tlrl11mZiY++eQTnD59GsOHD4e3tzeuX7+OFStW4M6dOyrXj2iyDTx79gz169eHTCbD6NGj4ejoiIMHD2LIkCFISEjA+PHjc43n+vXryMjIUPl12sTEBDVq1MCVK1dyfa5MJkOjRo1w6tQpadq1a9cQHx8PAwMDnDlzBh07dgQAhIWFoWbNmrn+uhYcHIyhQ4eibt26GD58OADAy8tLaZlevXrB09MTCxYswOXLl/Hzzz+jRIkSWLRoUa4xaqJ///44cuQIjh49ivLly6vMz23bqlatGuzs7DBhwgT07dsXHTp0kF6ftu+Jum3uxIkTaN++PWrVqoVvvvkGBgYGCAwMRMuWLREWFoa6detqlR9NcqzO5s2b4eXlhTp16qBKlSqwsLDAli1bMHnyZGkZIQS6dOmC06dPY+TIkfD29sbu3bvh7++v+RuhgZEjR2Lnzp0YPXo0KlWqhNjYWJw+fRoRERHw8fHJc7+isGDBApibm2PatGm4e/cuVq9eDWNjYxgYGODVq1cICAjAX3/9haCgIHh6emLWrFnSc7X5Hnv16hXatWsHPz8/9OrVCzt37sTUqVNRtWpVtG/fXuvvj+zi4+NV9u3FixfXKadjxoyBvb09vvnmG0RHR2PlypUYPXq0Ug9rfvbn6hw7dgzt27dHmTJlEBAQgOTkZKxevRqNGjXC5cuXVQYHeNe2ffPmTXTq1AnVqlXDnDlzYGpqirt37+LMmTPvfP1nz56Fj4+PyvSjR4/i33//xaBBg+Dk5ISbN29i3bp1uHnzJv766y/IZDJ07NgRVlZW2L59O5o1a6b0/G3btqFy5cqoUqWKFGOjRo1QqlQpTJs2DZaWlti+fTu6du2KXbt2qXwPffHFF3B0dMSsWbPw9u1bAMCFCxdw9uxZ9OnTB6VLl0Z0dDTWrl2L5s2b49atW9KZN48fP0aLFi0gk8kwffp0WFpa4ueff1bbQxAcHAx/f3/4+vpi0aJFSEpKwtq1a9G4cWNcuXJFei+OHDmC7t27o1KlSliwYAFiY2MxaNAglC5d+p05BrK2ISsrK3z55ZewsrLCiRMnMGvWLCQkJGDJkiVKee/UqROcnZ0xbtw4ODk5ISIiAvv27cO4ceOk5TIyMuDr64vGjRtj6dKlsLCw0PgYS5PtRZfjEG1duXIFPj4+KmcP1K1bF+vWrcOdO3dQtWpV6Xs45/e0i4sLSpcunef3dNOmTTF27Fh89913+Oqrr6RjOcW/AHD79m307dsXI0aMwLBhw1ChQgW1bWlyXJyb7t274+bNmxgzZgw8PDzw/PlzHD16FA8ePFD6vNeqVQsAcObMGdSsWTPX9pRoXFIVEkW1euzYMfHixQvx8OFDsXXrVuHg4CDMzc3Fo0ePRHR0tDA0NFTqXRJCiOvXrwsjIyOl6Ypfpn788UeVdeV2jZK2PUoAlHqQ4uPjhbOzs6hZs6Y0LSUlRaXKj4qKEqampkrXnOR1jnnOX1r27NkjAIhvv/1WabkePXoImUwm7t69K00DIExMTJSmhYeHCwBi9erVKuvKGSfU/IKg+Dt37pxSjOp+bVf8Ipqd4pflnL+oHDp0SGn669evhbW1tahXr57KtQjZf9XJ7Zz2Ll26qKxbU/j/Xpjsxo8fLwCIsLAwadqbN2+Ep6en8PDwkN5nxS+8ZcqUEUlJSe9cV7du3QQA8fr1a6XpycnJ4sWLF9Jf9p6V4OBgYWBgoBSLEP/79fHMmTNKr0WTbWDIkCHC2dlZ6ZdOIYTo06ePsLW1zfO1KH4RPXXqlMq8nj17CicnpzxzsGTJEmFoaCgSEhKEEFm/wLm7u4u6deuKqVOnCiGyepns7OyUep7UfWbfdY3S4MGDlaZ369ZNODg45BmfEO/uUVL0emSPL3uPkoK6bSu33ltN35PctrnMzExRrlw54evrq/SZSUpKEp6enqJNmzbSNG3yo+01SmlpacLBwUHpGqx+/fqJ6tWrKy2n2LctXrxYmpaRkSGaNGmi1x4lW1tblfcgp9z2K4pcV6lSRem8+759+wqZTCbat2+vtHyDBg2U2tHle+yXX36RpqWmpgonJyfRvXt3aZqu1yip+1PImTOF3HqUWrdurbSNTZgwQRgaGkr7tfzuz9W9vzVq1BAlSpQQsbGx0rTw8HBhYGAgBgwYIE3TdNtesWKFALS/jjE9PV3IZDIxceJElXnq9ptbtmxR2V/27dtXlChRQqlnJCYmRhgYGCgdK7Rq1UpUrVpVqZcyMzNTNGzYUJQrV06apnhfGjdurNLboi6mc+fOqWxrY8aMETKZTOm6tdjYWFGsWDGlY6I3b94IOzs7MWzYMKU2nz59KmxtbZWm16hRQzg7Oyt93x05ckSlJz036mIfMWKEUs9JRkaG8PT0FO7u7ipncmTf1vz9/QUAMW3aNKVlND3G0mR7yc9xSHZ57XMtLS1Vtm0hhNi/f78AIA4dOiSEyPqeBaDScy2EEHXq1BH169fPM4a8rlFSHBMr1pVzXvbYNT0uzvmZf/XqldrvydyYmJiIzz//XKNlhRCiaJykroHWrVvD0dERrq6u6NOnD6ysrLB7926UKlUKISEhyMzMRK9evfDy5Uvpz8nJCeXKlUNoaKhSW6amphg0aFCBxeri4qL0642NjQ0GDBiAK1euSKNtmJqaSlW+XC5HbGwsrKysUKFChVxHJHmXAwcOwNDQEGPHjlWaPnHiRAghcPDgQaXprVu3VvrFt1q1arCxscG///6r0fqGDx+Oo0ePqvxVqlRJp/h37NgBW1tbtGnTRul9rFWrFqysrKT38ejRo3jz5g2mTZumcm66Juec2tnZ4dGjR7hw4YJOceZ04MAB1K1bF40bN5amWVlZYfjw4YiOjsatW7eUlvf394e5ufk7201ISJDayu7HH3+Eo6Oj9Jd9vTt27IC3tzcqVqyolMOWLVsCgMpn4V3bgBACu3btQufOnSGEUGrT19cX8fHxeW6vycnJAKD2l0YzMzNpfm6aNGkCuVyOs2fPAsjqOWrSpAmaNGmCsLAwAMCNGzfw+vVr6RdzXY0cOVJl3bGxsdL7oCvF+/fmzZt8taOgy3uSc5u7evUqIiMj0a9fP8TGxkrPf/v2LVq1aoVTp06pjNZXEPk5ePAgYmNjla4z7du3L8LDw3Hz5k1p2oEDB2BkZITPP/9cmmZoaIgxY8bovG517OzscP78eTx58kTnNgYMGKB0/Wi9evUghMDgwYOVlqtXrx4ePnwojSql7feYlZWVUm+ziYkJ6tatq/H+Oy8//PCDyn5dV8OHD1faLys+0/fv3weQ//15TjExMbh69SoGDhyIYsWKSdOrVauGNm3a4MCBAyrPede2rejJ27t3r8ajWAJAXFwchBCwt7dXmZf985iSkoKXL1+ifv36AKD0+e3duzeeP3+OkydPStN27tyJzMxM9O7dW1rPiRMn0KtXL7x580badmJjY+Hr64vIyEg8fvxYaf3Dhg2DoaFhrjGlp6cjNjYWZcuWhZ2dnVJMhw4dQoMGDaTbfQBAsWLF8Omnnyq1d/ToUbx+/Rp9+/ZV2qYNDQ1Rr149aZtWvGf+/v6wtbWVnt+mTRuNjyeyx67IQZMmTZCUlIR//vkHQFYPS1RUFMaPH69y3ae6bS37/gbQ/BhLk+1F38ch6iQnJ+f63auYn/1fXb+n38XT0xO+vr7vXE7X42LFdfAnT57Eq1ev3rkee3t7rW4H8sGcevfDDz+gfPnyMDIyQsmSJVGhQgUpoZGRkRBCoFy5cmqfm3PQg1KlSuV6upM+lC1bVuVDpzjlJjo6Gk5OTsjMzMSqVauwZs0aREVFKQ3xrMlpb+rcv38fLi4usLa2Vpqu6AJVfDEpuLm5qbRhb2+v0YYGAOXKlUPr1q11ilWdyMhIxMfHo0SJEmrnP3/+HMD/TrtUnHKgralTp+LYsWOoW7cuypYti7Zt26Jfv35o1KiRTu3dv38f9erVU5mePe/ZY/X09NSoXcX7mJiYqPTl0b17d6m9iRMnKm07kZGRiIiIgKOjo9o2FTlUeNc28OLFC7x+/Rrr1q3DunXrNGozO8WXV2pqqso8xQWdefHx8YGFhQXCwsLg6+uLsLAwzJ49G05OTli9ejVSUlKkgil7waiLnLlQHNy8evVKGoRCF4ph0HN+LnWly3uSc5uLjIwEgDxPXYuPj1c6wCuI/Pz666/w9PSUTk0Bsk7Xs7CwwObNm6XbCdy/fx/Ozs4qPxrkdgqHrhYvXgx/f3+4urqiVq1a6NChAwYMGIAyZcpo3EbOPCk+u66urirTMzMzER8fDwcHB62/x0qXLq3yPWNvb49r165pHGtu6tatq7fBHPLaboD8789zUnzPqds2vL29cfjwYZUL89+1bffu3Rs///wzhg4dimnTpqFVq1bw8/NDjx49NBoURQihMi0uLg6zZ8/G1q1bVT6v8fHx0v/btWsHW1tbbNu2Da1atQKQddpdjRo1pOOKu3fvQgiBmTNnYubMmWpjeP78OUqVKiU9Vvc9lJycjAULFiAwMBCPHz9Wijt7TPfv30eDBg1Unl+2bFmlx4r9jOKHupwU+w3Fe6Zu29f0x+ObN2/i66+/xokTJ1R+vFHErs22ZmRkpHLan6bHWJpsL/o+DlHH3Nw81+9exfzs/+r6Pf0umh7z6HpcbGpqikWLFmHixIkoWbIk6tevj06dOmHAgAFwcnJSWV4IodWPMB9MoZTXjjszMxMymQwHDx5U+YUEUP1FXts3PbeE5uf+NfPnz8fMmTMxePBgzJ07F8WKFYOBgQHGjx+v1S9W+aEuV4D6nfr7kJmZmedN+XI7+NeWt7c3bt++jX379uHQoUPYtWsX1qxZg1mzZmH27Nl6WUdeNN3+FKPM3LhxQ2nn6erqKh105fxlJDMzE1WrVsXy5cvVtpnzYO1d24BiW/zss89yPaiuVq1arq/B2dkZQNYvhjnFxMTkec4xkHVwWK9ePZw6dQp3797F06dP0aRJE5QsWRLp6ek4f/48wsLCULFixXxvHwX1ebhx4wYA1YMIXenynuTc5hRtLFmyROlX4exy7jf1nZ+EhAT88ccfSElJUXuA9Ntvv2HevHn5vnmsNvvvXr16oUmTJti9ezeOHDmCJUuWYNGiRQgJCUH79u01Wl9uedLks6bN91hR23/n9n1Y1OJU510xmpub49SpUwgNDcX+/ftx6NAhbNu2DS1btsSRI0dyfX6xYsUgk8nU/vjYq1cvnD17FpMnT0aNGjVgZWWFzMxMtGvXTukYwNTUFF27dsXu3buxZs0aPHv2DGfOnJF+RAD+93meNGlSrr/c59z/qPseGjNmDAIDAzF+/Hg0aNBAusl1nz59dDouUTwnODhY7QGrvkanfP36NZo1awYbGxvMmTMHXl5eMDMzw+XLlzF16lSdYs/eu6EtTbaX93Ec4uzsnOt3LwDp+zf793TOY4SYmBiV61W1pekxT36Oi8ePH4/OnTtjz549OHz4MGbOnIkFCxbgxIkTKtcivX79WqtrLj+YQikvXl5eEELA09NT7cXSmsrtC1Xx69Lr16+Vumtz9tAoKH7dyd7enTt3AEC6qGznzp1o0aIFNmzYoPTcnG+gNgcJ7u7uOHbsGN68eaP0i4ei29nd3V3jtgqDl5cXjh07hkaNGuX5wVKcKnbjxo08Dz7zyp2lpSV69+6N3r17Iy0tDX5+fpg3bx6mT5+u9VCz7u7uaofozm/eO3XqhIULF2Lz5s0a/8rk5eWF8PBwtGrVKt8HmEBWcWptbQ25XK5T72GVKlVgZGSEixcvKg2Pm5aWhqtXr2o0ZG6TJk2waNEiHDt2DMWLF0fFihUhk8lQuXJlhIWFISwsDJ06dXpnO/rIhy6Cg4Mhk8mkgVzyK7/vCfC/z5CNjY1ee4W1yXFISAhSUlKwdu1alS+t27dv4+uvv8aZM2fQuHFjuLu74/jx40hMTFQqGDQZGj/7/ju73Pbfzs7O+OKLL/DFF1/g+fPn8PHxwbx586RCqaC2I319j2VXELHa29ur5DItLU3tAZkm9LE/z06xv81tn1y8eHGdhnk2MDBAq1at0KpVKyxfvhzz58/HjBkzEBoamutnyMjICF5eXoiKilKa/urVKxw/fhyzZ89WGsxD0QOTU+/evbFp0yYcP34cEREREEJIp90BkHo8jY2N8/V53rlzJ/z9/bFs2TJpWkpKisr77e7uLvUAZ5dzmuK9LVGiRJ5xKd4zda9fk8/4yZMnERsbi5CQEDRt2lSanjPv2bc1XfKkzTGWJtuLPo9D1KlRowbCwsKQmZmpVPSdP38eFhYW0n5G8WPZxYsXlYqiJ0+e4NGjR9LgPLnR135G0+Pi3Hh5eWHixImYOHEiIiMjUaNGDSxbtgy//vqrtMzjx4+RlpamNNjEu3ww1yjlxc/PD4aGhpg9e7bKr1RCCMTGxmrUjqWlpdq7wis+XNlH33r79i02bdqktp0nT55g9+7d0uOEhAT88ssvqFGjhvSriqGhoUqsO3bsUDmPWLFD1+Ru9R06dIBcLsf333+vNH3FihWQyWQa/yJaWHr16gW5XI65c+eqzMvIyJBy0LZtW1hbW2PBggVSF7JC9pxaWloqnS6gkHN7MDExQaVKlSCEQHp6utZxd+jQAX///TfOnTsnTXv79i3WrVsHDw8Pna/ZatSoEdq0aYN169Zh7969apfJuQ316tULjx8/xvr161WWTU5OlkY30pShoSG6d++OXbt2ST0j2Snu85MbW1tbtG7dGr/++qvSNTrBwcFITExEz5493xlDkyZNkJqaipUrV6Jx48bSTrlJkyYIDg7GkydPNLo+KbfPd0FauHAhjhw5gt69e+d6SpW28vueAFkj/3h5eWHp0qXSqYHatqGONjn+9ddfUaZMGYwcORI9evRQ+ps0aRKsrKyk3uUOHTogIyMDa9eulZ4vl8uxevXqd67HxsYGxYsXV9p/A8CaNWuUHsvlcpX9RYkSJeDi4qJ0Skpu+5X80tf3WHbafH9oysvLSyWX69at0/kMi/zuz3NydnZGjRo1sGnTJqXXfePGDRw5cgQdOnTQOsa4uDiVaYqDS3WnK2XXoEEDXLx4UWmaogcq5/u8cuVKtW20bt0axYoVw7Zt27Bt2zbUrVtX6XSmEiVKoHnz5vjpp5/UFqyafp7VHZesXr1a5b319fXFuXPncPXqVWlaXFycytkgvr6+0r141H23KuLK/p5lf4+PHj2qco1vbnEDyvlMS0tT+Yz7+PjA09MTK1euVPlMaNLDqekxlibbi76PQ9Tp0aMHnj17hpCQEGnay5cvsWPHDnTu3Fm6Jqly5cqoWLGiyud47dq1kMlk0j2YcqOv/Yymx8U5JSUlqew7vLy8YG1trfL5vHTpEgDNRv9U+Gh6lL799ltMnz4d0dHR6Nq1K6ytrREVFYXdu3dj+PDhmDRp0jvbqVWrFtauXYtvv/0WZcuWRYkSJdCyZUu0bdsWbm5uGDJkCCZPngxDQ0Ns3LgRjo6OePDggUo75cuXx5AhQ3DhwgWULFkSGzduxLNnzxAYGCgt06lTJ8yZMweDBg1Cw4YNcf36dWzevFnlXHgvLy/Y2dnhxx9/hLW1NSwtLVGvXj2153x27twZLVq0wIwZMxAdHY3q1avjyJEj2Lt3L8aPH6/RUL3auHz5slKlnj1mdecvv0uzZs0wYsQILFiwAFevXkXbtm1hbGyMyMhI7NixA6tWrUKPHj1gY2ODFStWYOjQoahTpw769esHe3t7hIeHIykpSSpga9WqhW3btuHLL79EnTp1YGVlhc6dO6Nt27ZwcnJCo0aNULJkSUREROD7779Hx44ddbqOZNq0adiyZQvat2+PsWPHolixYti0aROioqKwa9eufN3Y89dff0W7du3QtWtXtG/fHq1bt4a9vT2ePn2KY8eO4dSpU0oFcP/+/bF9+3aMHDkSoaGhaNSoEeRyOf755x9s374dhw8f1vrag4ULFyI0NBT16tXDsGHDUKlSJcTFxeHy5cs4duyY2i+F7ObNm4eGDRuiWbNmGD58OB49eoRly5ahbdu2aNeu3TvX36BBAxgZGeH27dtKv2w1bdpUOnDWpFCqVasWjh07huXLl8PFxQWenp5qry3TRUZGhvRZSElJwf379/H777/j2rVraNGiRa7XEukqv++JgYEBfv75Z7Rv3x6VK1fGoEGDUKpUKTx+/BihoaGwsbGRhqfXhqY5fvLkCUJDQ1UuilYwNTWFr68vduzYge+++w6dO3dGo0aNMG3aNERHR6NSpUoICQnRuGAZOnQoFi5ciKFDh6J27do4deqU1Muv8ObNG5QuXRo9evRA9erVYWVlhWPHjuHChQtKv7Dntl/JL319j+VsU9PvD00NHToUI0eORPfu3dGmTRuEh4fj8OHDOg8fnt/9uTpLlixB+/bt0aBBAwwZMkQaHtzW1hYBAQFaxzhnzhycOnUKHTt2hLu7O54/f441a9agdOnS77w2skuXLggODsadO3ekX/BtbGzQtGlTLF68GOnp6ShVqhSOHDmi0gOiYGxsDD8/P2zduhVv377F0qVLVZb54Ycf0LhxY1StWhXDhg1DmTJl8OzZM5w7dw6PHj1CeHj4O19np06dEBwcDFtbW1SqVAnnzp3DsWPHVK4PmTJlCn799Ve0adMGY8aMkYYHd3NzQ1xcnPRjlo2NDdauXYv+/fvDx8cHffr0kY6b9u/fj0aNGklFx4IFC9CxY0c0btwYgwcPRlxcHFavXo3KlSur/TEnu4YNG8Le3h7+/v4YO3YsZDIZgoODVQ66DQwMsHbtWnTu3Bk1atTAoEGD4OzsjH/++Qc3b97E4cOH81yPpsdYmmwv+TkO+eOPP6T3Mz09HdeuXcO3334LAPjkk0+kU6979OiB+vXrY9CgQbh16xaKFy+ONWvWQC6Xq5zet2TJEnzyySdo27Yt+vTpgxs3buD777/H0KFD39n7UqNGDRgaGmLRokWIj4+HqakpWrZsmev15rnR9Lg4pzt37qBVq1bo1asXKlWqBCMjI+zevRvPnj1Dnz59lJY9evQo3NzcNB8aHPhwhgfP6wZ4Crt27RKNGzcWlpaWwtLSUlSsWFGMGjVK5UaPuQ3J+PTpU9GxY0dhbW0tACgN33vp0iVRr149YWJiItzc3MTy5cvfecPZatWqCVNTU1GxYkWxY8cOpXWlpKSIiRMnCmdnZ2Fubi4aNWokzp07p3bY4L1794pKlSoJIyMjpSER1d2I7c2bN2LChAnCxcVFGBsbi3LlyuV5w9mccg7XqM67hgfP/nxthgdXWLdunahVq5YwNzcX1tbWomrVqmLKlCniyZMnSsv9/vvvomHDhsLc3FzY2NiIunXrii1btkjzExMTRb9+/YSdnZ3SEKM//fSTaNq0qXBwcBCmpqbCy8tLTJ48WcTHx+f5uoXIPW+KG87a2dkJMzMzUbdu3VxvOJtzW3iX5ORksXLlStGgQQNhY2MjjIyMhJOTk+jUqZPYvHmzyhCvaWlpYtGiRdKN++zt7UWtWrXE7NmzlV6jNtvAs2fPxKhRo4Srq6swNjYWTk5OolWrVmLdunUavYawsDDRsGFDYWZmJhwdHcWoUaOkIb81UadOHQFAnD9/Xpr26NEjAUC4urqqLK9uePB//vlHNG3aVJibmyttp4plcw7lqu7zrY5iKFnFn4WFhfDw8BDdu3cXO3fuVBnuVIj8Dw8uhGbvybu2uStXrgg/Pz/ps+Du7i569eoljh8/Li2jTX5yy3FOy5YtEwCU1pNTUFCQACDdMDM2Nlb0799fuuFs//79NbrhrBBZQwcPGTJE2NraCmtra9GrVy/x/PlzpaGuU1NTxeTJk0X16tWFtbW1sLS0FNWrVxdr1qxRaiu3/Upuuc7tOyy3vObne0zdd0Ju3x/qaPJ9K5fLxdSpU6UbyPr6+oq7d+/mOjx4zrYUeco5lLCu+/Pchn8/duyYaNSokdRe586dc73h7Lu27ePHj4suXboIFxcXYWJiIlxcXETfvn3FnTt3cs2TQmpqqihevLjKTTsfPXokunXrJuzs7IStra3o2bOnePLkSa7Drx89elQAEDKZTO0NmYXI+h4aMGCAcHJyEsbGxqJUqVKiU6dOYufOnSqvTd17/OrVKzFo0CBRvHhxYWVlJXx9fcU///yj9jvhypUrokmTJsLU1FSULl1aLFiwQHz33XcCgHj69KnSsqGhocLX11fY2toKMzMz4eXlJQYOHCguXryotNyuXbuEt7e3MDU1FZUqVdLqhrNnzpwR9evXl26+PGXKFHH48GG129rp06dFmzZtpM95tWrVlG6JkdctHzQ5xtJke8nPcUjO75zsfzk/B3FxcWLIkCHCwcFBWFhYiGbNmuX6+d69e7eoUaOG9J5+/fXXSrc6yMv69etFmTJlhKGhoVLOFcfE6qgbHlyT4+Kcn/mXL1+KUaNGiYoVKwpLS0tha2sr6tWrJ7Zv3660PrlcLpydncXXX3+t0WtSkAlRhK6oJCIiygfFRbyKYbeJCtvcuXMRGBiIyMjIXAd++BiMHz8eP/30ExITEz/q10kfpj179qBfv364d++eNICFJj6Ka5SIiIiArFGadD0NjKggTJgwAYmJidi6dWthh6I3Oe+tExsbi+DgYDRu3JhFEhVJixYtwujRo7UqkoCP5BolIiL6b/v333+xe/du7NixQ6NREIneFysrqzzvN/chatCgAZo3bw5vb288e/YMGzZsQEJCQq73cSIqbNkH3NIGCyUiIvrgnTp1CrNnz0bz5s1zvY8YEelHhw4dsHPnTqxbtw4ymQw+Pj7YsGGD0vDcRB+DQr1G6c2bN5g5cyZ2796N58+fo2bNmli1ahXq1KlTWCEREREREREV7jVKQ4cOxdGjRxEcHIzr16+jbdu2aN269TvHTCciIiIiIipIhdajlJycDGtra+zduxcdO3aUpteqVQvt27eXxoQnIiIiIiJ63wrtGqWMjAzI5XKYmZkpTTc3N8fp06fVPic1NVXpLruZmZmIi4uDg4ODdIMzIiIiIiL67xFC4M2bN3BxcYGBQf5PnCu0Qsna2hoNGjTA3Llz4e3tjZIlS2LLli04d+4cypYtq/Y5CxYsULmbMBERERERkcLDhw9RunTpfLdTqIM53Lt3D4MHD8apU6dgaGgIHx8flC9fHpcuXUJERITK8jl7lOLj4+Hm5oaoqChYW1u/z9BVpKenIzQ0FC1atICxsXGhxvKhYe50w7zphnnTHXOnG+ZNN8ybbpg33TF3uilKeXvz5g08PT3x+vVr2Nra5ru9Qh0e3MvLC3/++Sfevn2LhIQEODs7o3fv3ihTpoza5U1NTWFqaqoyvVixYrCxsSnocPOUnp4OCwsLODg4FPpG8qFh7nTDvOmGedMdc6cb5k03zJtumDfdMXe6KUp5U6xfX5fkFOqodwqWlpZwdnbGq1evcPjwYXTp0qWwQyIiIiIiov+wQu1ROnz4MIQQqFChAu7evYvJkyejYsWKGDRoUGGGRURERERE/3GF2qMUHx+PUaNGoWLFihgwYAAaN26Mw4cPF3q3HRERERER/bcVao9Sr1690KtXr8IMgYiI6KMlhJBux/GhSU9Ph5GREVJSUj7I+AsL86Y75k437zNvhoaGMDIyem+3BSrUQomIiIgKRlpaGmJiYpCUlFTYoehECAEnJyc8fPiQ90rUAvOmO+ZON+87bxYWFnB2doaJiUmBr4uFEhER0UcmMzMTUVFRMDQ0hIuLC0xMTD64A7/MzEwkJibCyspKLzeO/K9g3nTH3OnmfeVNCIG0tDS8ePECUVFRKFeuXIG/TyyUiIiIPjJpaWnIzMyEq6srLCwsCjscnWRmZiItLQ1mZmY8aNUC86Y75k437zNv5ubmMDY2xv3796V1FiRuBURERB8pHuwR0cfmfe7XuAclIiIiIiLKgYUSERERERFRDiyUiIiIiD4ShoaG2L9/v/RYJpNhz549hRcQ0QeMhRIREREVGQMHDoRMJsOiRYuUpu/ZsyffI/cFBQVBJpPB29tbZd6OHTsgk8ng4eGRr3Xom6+vLwwNDXHhwgWdnh8TE4P27dvrJZaTJ09CJpPh9evXemlPH1gIUkFioURERES5k8uBkyeBLVuy/n0PN+I0MzPD4sWLC+SA3NLSEs+fP8e5c+eUpm/YsAFubm56X19+PHjwAGfPnsXo0aOxceNGndpwcnKCqampniMj+m9goURERETqhYQAHh5AixZAv35Z/3p4ZE0vQK1bt4aTkxOWL1+e53K7du1C5cqVYWpqCg8PDyxbtuydbRsZGaFfv35KhcejR49w8uRJ9OvXT2X5vXv3wsfHB2ZmZihTpgxmz56NjIwMaf7y5ctRtWpVWFpawtXVFV988QUSExOl+UFBQbCzs8Phw4fh7e0NKysrtGvXDjExMe+MNTAwEJ06dcLnn3+OLVu2IDk5WWl+ZGQkmjZtCjMzM1SqVAlHjx5VaSN7j4u6HqGrV69CJpMhOjoaAHD//n107twZ9vb2sLS0ROXKlXHgwAFER0ejRYsWAAB7e3vIZDIMHDgQANC8eXOMGTMG48ePh729PUqWLIn169fj7du3GDRoEKytrVG2bFkcPHhQKbYbN26gffv2sLKyQsmSJdG/f3+8fPlSmt+8eXOMHTsWU6ZMQbFixeDk5ISAgABpvqL3r1u3bkWyN5A+fCyUiIiISFVICNCjB/DokfL0x4+zphdgsWRoaIhvv/0W69evx6Oc6/9/ly5dQq9evdCnTx9cv34dAQEBmDlzJoKCgt7Z/uDBg7F9+3YkJSUByCpm2rVrh5IlSyotFxYWhgEDBmDcuHG4desWfvrpJwQFBWHevHnSMgYGBvjuu+9w8+ZNbNq0CSdOnMCUKVOU2klKSsLSpUsRHByMU6dO4cGDB5g0aVKeMQohEBgYiM8++wwVK1ZE2bJlsXPnTml+ZmYm/Pz8YGJigvPnz+PHH3/E1KlT3/na32XUqFFITU3FqVOncP36dSxatAhWVlZwdXXFrl27AAC3b99GTEwMVq1aJT1v06ZNKF68OP7++2+MGTMGn3/+OXr27ImGDRvi8uXLaNu2Lfr37y/l/PXr12jZsiVq1qyJixcv4tChQ3j27Bl69eqlFM+mTZtgaWmJ8+fPY/HixZgzZ45UECpORwwMDERMTIzOpycS5Up8wOLj4wUAER8fX9ihiLS0NLFnzx6RlpZW2KF8cJg73TBvumHedMfc6aYw8pacnCxu3bolkpOTdWsgI0OI0qWFANT/yWRCuLpmLadn/v7+okuXLkIul4s6deqIQYMGCSGE2L17t8h+2NKvXz/Rpk0bpedOnjxZVKpUKde2AwMDha2trRBCiBo1aohNmzaJzMxM4eXlJfbu3StWrFgh3N3dpeVbtWol5s+fr9RGcHCwcHZ2znUdO3bsEA4ODkrrBCDu3r0rTfvhhx9EyZIlc0+CEOLIkSPC0dFRpKenCyGEWLFihWjWrJk0//Dhw8LIyEg8fvxYmnbw4EEBQPz6669CLpcLIYQAIHbv3i2EECI0NFQAEK9evZKec+XKFQFAREVFCSGEqFq1qggICFAbk7rnCyFEs2bNROPGjaXHGRkZwtLSUvTv31+aFhMTIwCIc+fOCSGEmDt3rmjbtq1SOw8fPhQAxO3bt9W2K4QQderUEVOnTpUeZ399+SWXy8WrV6+k3JFm3nfe8tq/6bs2YI8SERERKQsLU+1Jyk4I4OHDrOUK0DfffINffvkFERERKvMiIiLQqFEjpWmNGjVCZGQk5BpcRzV48GAEBgbizz//xNu3b9GhQweVZcLDwzFnzhxYWVlJf8OGDUNMTIzUM3Ls2DG0atUKpUqVgrW1Nfr374/Y2FhpPgBYWFjAy8tLeuzs7Iznz5/nGd/GjRvRu3dvGBkZAQD69u2LM2fO4N69e9Lrd3V1hYuLi/ScBg0avPN1v8vYsWPx7bffolGjRvjmm29w7do1jZ5XrVo16f+GhoZwcHBA1apVpWmK3jrF6w4PD0doaKhSbitWrAgA0mvM2S6gWe6I9IWFEhERESnT4PoZrZbTUaNGjdC2bVtMnz5d721/+umn+OuvvxAQEID+/ftLBUl2iYmJmD17Nq5evSr9Xb9+HZGRkTAzM0N0dDQ6deqEatWqYdeuXbh06RJ++OEHAEBaWprUjrGxsVK7MpkMQohcY4uLi8Pu3buxZs0aGBkZwcjICKVKlUJGRobOgzoAWacJAlBad3p6utIyQ4cOxb///ov+/fvj+vXrqF27NlavXv3OttW9xuzTFCMWZmZmAsjKbefOnZVye/XqVem6q7zaVbRBVNBU9wpERET03+bsrN/l8mHBggXw8fFBhQoVlKZ7e3vjzJkzStPOnDmD8uXLw9DQ8J3tFitWDJ988gm2b9+OH3/8Ue0yPj4+uH37NsqWLat2/qVLl5CZmYlly5ZJRcj27ds1eVl52rx5M0qXLq0y7PWRI0ewbNkyzJkzB97e3nj48CFiYmLg/P/vw19//ZVnu46OjgCyhgy3t7cHkDWYQ06urq4YOXIkRo4cienTp2P9+vUYM2YMTExMAECjHrt38fHxwa5du+Dh4aG2SNWUsbGxXuIhUoc9SkRERKSsSROgdGkgt/sWyWSAq2vWcgWsatWq+PTTT/Hdd98pTZ84cSKOHz+OuXPn4s6dO9i0aRO+//77dw6SkF1QUBBevnwpnfKV06xZs/DLL79g9uzZuHnzJiIiIrB161Z8/fXXAICyZcsiPT0dq1evxr///ovg4OBciy5tbNiwAT169ECVKlWU/oYMGYKXL1/i0KFDaN26NcqXLw9/f3+Eh4cjLCwMM2bMyLPdsmXLwtXVFQEBAYiMjMT+/ftVRgocP348Dh8+jKioKFy+fBmhoaHSfafc3d0hk8mwb98+vHjxQml0P22NGjUKcXFx6Nu3Ly5cuIB79+7h8OHDGDRokFaFj4eHB44fP46nT5/i1atXOsdDpA4LJSIiIlJmaAgoRjTLWSwpHq9cmbXcezBnzhyV0618fHywfft2bN26FVWqVMGsWbMwZ84cachqTZibm8PBwSHX+b6+vti3bx+OHDmCOnXqoH79+lixYgXc3d0BANWrV8fy5cuxaNEiVKlSBZs3b8aCBQt0eo0Kly5dQnh4OLp3764yz9bWFq1atcKGDRtgYGCA3bt3Izk5GXXr1sXQoUOVRuNTx9jYGFu2bME///yDatWqYdGiRfj222+VlpHL5Rg1ahS8vb3Rrl07lC9fHmvWrAEAlCpVCrNnz8a0adNQsmRJjB49WufX6eLigjNnzkAul6Nt27aoWrUqxo8fDzs7O6l3ThPLli3D0aNH4erqipo1a+ocD5E6MpHXSbJFXEJCAmxtbREfHw8bG5tCjSU9PR0HDhxAhw4dVM6npbwxd7ph3nTDvOmOudNNYeQtJSUFUVFR8PT0hJmZme4NhYQA48YpD+zg6ppVJPn55TvOvGRmZiIhIQE2NjZaHTj/12XPW3p6OszMzHD06FG0bt26sEMr8rjN6eZ95y2v/Zu+awNeo0RERETq+fkBXbpkjW4XE5N1TVKTJu+tJ4l0l5CQgD179sDAwCDXUwuJKG8slIiIiCh3hoZA8+aFHQVpKSAgAFu2bMGiRYtQunTpwg6H6IPEQomIiIjoI7N8+XKsXLmysMMg+qDxBEwiIiIiIqIcWCgRERERERHlwEKJiIiIiIgoBxZKREREREREObBQIiIiIiIiyoGFEhERERERUQ4slIiIiIjy6eTJk5DJZHj9+nWeyx0/fhze3t6Qy+XvJzAtDRw4EF27di3sMDQSHR0NmUyGq1evFvi6fvzxR3Tu3LnA11PU5dzOT548CUNDQ8THxxduYAWEhRIREREVGQMHDoRMJsOiRYuUpu/ZswcymayQotKfKVOm4Ouvv4ahoWFhh0K5MDQ0xJ49e5SmDR48GJcvX0ZYWFiez1VsvyNHjlSZN2rUKMhkMgwcOFCP0eZPcnIyihUrhuLFiyM1NVXr5zds2BCPHz+GjY2NXuIJCAhAjRo19NKWPrBQIiIiolzJM+U4GX0SW65vwcnok5BnFnxPiJmZGRYvXvzO3hltpaWl6bU9bZ0+fRr37t1D9+7dCzUO0p6JiQn69euH77777p3Lurq6YuvWrUhOTpampaSk4LfffoObm1tBhqm1Xbt2oXLlyqhYsaJKcagJExMTODk5fRQ/YqjDQomIiIjUCokIgccqD7TY1AL9QvqhxaYW8FjlgZCIkAJdb+vWreHk5ITly5fnuZziIM/U1BQeHh5YtmyZ0nwPDw/MnTsXAwYMgI2NDYYPH46goCDY2dlh3759qFChAiwsLNCjRw8kJSVh06ZN8PDwgL29PcaOHat0elxwcDBq164Na2trODk5oV+/fnj+/LlWr2vr1q1o06YNzMzMpGmKX9CDg4Ph4eEBW1tb9OnTB2/evJGWSU1NxdixY1GiRAmYmZmhcePGuHDhgjRfcTrU8ePHUbduXbi4uKBx48a4fft2nvHI5XJ8+eWXsLOzg4ODA6ZMmQIhhNIymZmZWLBgATw9PWFubo7q1atj586dKuvev38/qlWrBjMzM9SvXx83btxQauf06dNo0qQJzM3N4erqirFjx+Lt27fSfA8PD8yfPx+DBw+GtbU13NzcsG7dOqU2/v77b9SsWRNmZmaoXbs2rly5ovKabty4gfbt28PKygolS5ZE//798fLlS2l+8+bNMXbsWEyZMgXFihWDk5MTAgICpPnVqlUDAHTr1g0ymQweHh7SvM6dO+P3339XKoDU8fHxgaurK0JC/vc5CQkJgZubG2rWrKlVfuVyOYYMGSLNr1ChAlatWqXUhuJ0yaVLl8LZ2RkODg4YNWoU0tPT84wTADZs2IDPPvsMn332GTZs2KAy/8CBAyhfvjzMzc3RokULREdHK83Peeqduh6hlStXKuXx5MmTqFu3LiwtLWFnZ4dGjRrh/v37CAoKwuzZsxEeHg6ZTAaZTIagoKB3voaCxEKJiIiIVIREhKDH9h54lPBIafrjhMfosb1HgRZLhoaG+Pbbb7F+/Xo8evRI7TKXLl1Cr1690KdPH1y/fh0BAQGYOXOmyoHV0qVLUb16dVy5cgUzZ84EACQlJeG7777D1q1bcejQIZw8eRLdunXDgQMHcODAAQQHB+Onn35SOmBNT0/H3LlzER4ejj179iA6OlrrU6jCwsJQu3Ztlen37t3Dnj17sG/fPuzbtw9//vknFi5cKM2fMmUKdu3ahU2bNuHy5csoW7YsfH19ERcXp9TOjBkzsGTJEpw4cQJGRkYYPHhwnvEsW7YMQUFB2LhxI06fPo24uDjs3r1baZkFCxbgl19+wY8//oibN29iwoQJ+Oyzz/Dnn38qLTd58mQsW7YMFy5cgKOjIzp37iwdqN+7dw/t2rVD9+7dce3aNWzbtg2nT5/G6NGjVeJRFEBffPEFPv/8c6nYS0xMRKdOnVCpUiVcunQJAQEBmDRpktLzX79+jZYtW6JmzZq4ePEiDh06hGfPnqFXr15Ky23atAmWlpY4f/48Fi9ejDlz5uDo0aMAgBMnTgAAAgMDERMTo1SQ1q5dGxkZGTh//nyeeQWyTtULDAyUHm/cuBGDBg1SWe5d+c3MzETp0qWxY8cO3Lp1C7NmzcJXX32F7du3K7UTGhqKe/fuITQ0FJs2bUJQUNA7i4x79+7h3Llz6NWrF3r16oWwsDDcv39fmv/w4UP4+fmhc+fOuHr1KoYOHYpp06a987XnJSMjA127dkWzZs1w7do1nDt3DsOHD4dMJkPv3r0xceJEVK5cGTExMYiJiUHv3r3ztb58Ex+w+Ph4AUDEx8cXdigiLS1N7NmzR6SlpRV2KB8c5k43zJtumDfdMXe6KYy8JScni1u3bonk5GSdnp8hzxCll5cWCIDaP1mATLgudxUZ8gw9Ry6Ev7+/6NKli5DL5aJOnTpi0KBBQgghdu/eLbIftvTr10+0adNG6bmTJ08WlSpVkh67u7uLrl27Ki0TGBgoAIi7d+9K00aMGCEsLCzEmzdvpGm+vr5ixIgRucZ54cIFAUB6TmhoqAAgXr16letzbG1txS+//KI07ZtvvhEWFhYiISFB6XXUq1dPCCFEYmKiMDY2Fps3b5bmp6WlCRcXF7F48WKldR87dkzI5XLx6tUr8ccffwgAeW4Dzs7OUhtCCJGeni5Kly4tunTpIoQQIiUlRVhYWIizZ88qPW/IkCGib9++SuveunWrND82NlaYm5uLbdu2ScsPHz5cqY2wsDBhYGAgxefu7i4+++wzaX5mZqYoUaKEWLt2rRBCiJ9++kk4ODgovZ61a9cKAOLKlStCCCHmzp0r2rZtq7Sehw8fCgDi9u3bQgghmjVrJho3bqy0TJ06dcTUqVOl3AEQu3fvVpsze3t7ERQUpHaeEP/bfp8/fy5MTU1FdHS0iI6OFmZmZuLFixeiS5cuwt/fXwihWX7VGTVqlOjevbvSOt3d3UVGxv8+jz179hS9e/fOtQ0hhPjqq6+UPh9dunQR33zzjfR4+vTpSp8nIYSYOnWq0naueP+jo6OFXC4X33zzjahevbrSc1asWCHc3d2FEFnbBgBx8uRJtTGpe35Oee3f9F0bsEeJiIiIlIQ9CFPpScpOQOBhwkOEPcj7wvb8+uabb/DLL78gIiJCZV5ERAQaNWqkNK1Ro0aIjIxUOmVOXQ+OhYUFvLy8pMclS5aEh4cHrKyslKZlP7Xu0qVL6Ny5M9zc3GBtbY1mzZoBAB48eKDx60lOTlY67U7Bw8MD1tbW0mNnZ2dp3ffu3UN6errSazU2NkbdunVV8qI4bUzRBgA8f/4cDx48gJWVlfQ3f/58xMfHIyYmBvXq1ZOeY2RkpJSvu3fvIikpCW3atFF6/i+//IJ79+4prbtBgwbS/4sVK4YKFSpI8YWHhyMoKEipDV9fX2RmZiIqKkpt/DKZDE5OTlIeIiIipFP71K1TsZ7Q0FCl9VSsWFHKo7r15Mz3u5ibmyMpKemdyzk6OqJjx44ICgpCYGAgOnbsiOLFiysto2l+f/jhB9SqVQuOjo6wsrLCunXrVLa7ypUrKw0Q8q7XJJfLsWnTJnz22WfStM8++wxBQUHIzMwEkJXz7NsHoJpzbRUrVgwDBw6Er68vOnfujFWrViEmJiZfbRYko8IOgIiIiIqWmDeaHbhoupyuGjVqhLZt22L69Ok6jxRmaWmpMs3Y2FjpsUwmUztNccD49u1b+Pr6wtfXF5s3b4ajoyMePHgAX19frQaIKF68OF69eqVRPIp1ayN7O4qL6xWnbmUfQrtYsWIatZeYmAgA2L9/P0qVKqU0z9TUVOO4EhMTMWLECIwdO1ZlXvbBDfKbh8TERHTu3FllxETgf4VjftcTFxcHR0dHjZYdPHiwdHrhDz/8oDZeIO/8bt26FZMmTcKyZcvQoEEDWFtbY8mSJSqn/2n7mg4fPozHjx+rnNoml8tx/PhxtGnTRqPXmJOBgYHKdW45r5UKDAzE2LFjcejQIWzbtg1ff/01jh49ivr16+u0zoLEQomIiIiUOFs7v3shLZbLjwULFsDHxwcVKlRQmu7t7Y0zZ84oTTtz5gzKly+v96G3//nnH8TGxmLhwoVwdXUFAFy8eFHrdmrWrIlbt25p9RwvLy+YmJjgzJkzcHd3B5B14HnhwgWMHz9eozaMjIxQtmxZlenOzs44f/48mjZtCiDr+pFLly7Bx8cHAFCpUiWYmpriwYMHUg9abv766y+p6Hn16hXu3LkDb29vAFmDG9y6dUttDJry9vZGcHAwUlJSpF6lv/76S2kZHx8f7Nq1Cx4eHjAy0v0Q19jYWO19ru7du4eUlBSVARly065dO6SlpUEmk8HX11dlvib5PXPmDBo2bIgvvvhCKY782rBhA/r06YMZM2YoTZ83bx42bNiANm3awNvbG7///rvS/Jw5z8nR0RFPnz6FEEIq1tXd56pmzZqoWbMmpk+fjgYNGuC3335D/fr1YWJiUqTuMcZT74iIiEhJE7cmKG1TGjKoH/JXBhlcbVzRxK1JgcdStWpVfPrppyrDMk+cOBHHjx/H3LlzcefOHWzatAnff/+9ygX++uDm5gYTExOsXr0a//77L37//XfMnTtX63Z8fX1x+vRprZ5jaWmJzz//HJMnT8ahQ4dw69YtDBs2DElJSRgyZIjWMWQ3btw4LFy4EHv27ME///yDL774QmlIdmtra0yaNAkTJkzApk2bcO/ePVy+fBmrV6/Gpk2blNqaM2cOjh8/jhs3bmDgwIEoXry4dOPaqVOn4uzZsxg9ejSuXr2KyMhI7N27V2Uwh7z069cPMpkMw4YNw61bt3DgwAEsXbpUaZlRo0YhLi4Offv2xYULF3Dv3j0cPnwYgwYN0urg28PDA8ePH8fTp0+VegDDwsJQpkwZpdM282JoaIiIiAjcunVLbfGuSX7LlSuHixcv4vDhw7hz5w5mzpypNMCELl68eIE//vgD/v7+qFKlitLfgAEDsGfPHsTFxWHkyJGIjIzE5MmTcfv2bfz222/vHCCiefPmePHiBRYvXox79+7hhx9+wMGDB6X5UVFRmD59Os6dO4f79+/jyJEjiIyMlIpqDw8PREVF4erVq3j58qVO93bSJxZKREREpMTQwBCr2mUNQZyzWFI8XtluJQwN3s9NU+fMmaNyGpGPjw+2b9+OrVu3okqVKpg1axbmzJlTIDfzdHR0RFBQEHbs2IFKlSph4cKFKgfpmvj0009x8+bNdw7bndPChQvRvXt39O/fHz4+Prh79y4OHz4Me3t7rWPIbuLEiejfvz/8/f2l07q6deumtMzcuXMxc+ZMLFiwAN7e3mjXrh32798PT09PlRjHjRuHWrVq4enTp/jjjz9gYmICIOuaoD///BN37txBkyZNULNmTcyaNQsuLi4ax2plZYU//vgD169fR82aNTFjxgyVU+xcXFxw5swZyOVytG3bFlWrVsX48eNhZ2cHAwPND3mXLFmCo0ePwtXVVan3aMuWLRg2bJjG7QCAjY1NnjdjfVd+R4wYAT8/P/Tu3Rv16tVDbGysUu+SLn755RdYWlqiVatWKvNatWoFc3Nz/Prrr3Bzc8OuXbuwZ88eVK9eHT/++CPmz5+fZ9ve3t5Ys2YNfvjhB1SvXh1///230o8XFhYW+Oeff9C9e3eUL18ew4cPx6hRozBixAgAQPfu3dGuXTu0aNECjo6O2LJlS75ea37JRM4TCT8gCQkJsLW1RXx8vN7uCKyr9PR0HDhwAB06dFA5T5TyxtzphnnTDfOmO+ZON4WRt5SUFERFRcHT01Pt4AGaCokIwbhD45QGdnC1ccXKdivh5+2nj1BzlZmZiYSEBNjY2Gh1kFvUTZ48GQkJCfjpp58KpP33nbeTJ0+iRYsWePXqFezs7Ap8fQUpr9zdvHkTLVu2xJ07d2Bra1tIERY9hw8fRvv27fH06VMUL178vWxzee3f9F0b8BolIiIiUsvP2w9dKnRB2IMwxLyJgbO1M5q4NXlvPUkfoxkzZmDNmjXIzMz8qArAj11MTAx++eUXFknZPHv2DHv37kW5cuWk3sOPTaEWSnK5HAEBAfj111/x9OlTuLi4YODAgfj666+lC8CIiIio8BgaGKK5R/PCDuOjYWdnh6+++qqwwyAttW7durBDKHI6dOiAN2/e4Pvvvy/sUApMoRZKixYtwtq1a7Fp0yZUrlwZFy9exKBBg2Bra6t2CEkiIiIiKjqaN2+uMhw0/TdcunQJwP9OWfwYFWqhdPbsWXTp0gUdO3YEkDXSxZYtW/D3338XZlhERERERPQfV6iFUsOGDbFu3TrcuXMH5cuXR3h4OE6fPo3ly5erXT41NVVpmEBF9Zqenq5yM6v3TbH+wo7jQ8Tc6YZ50w3zpjvmTjeFkbf09HQIIZCZmanTjUuLAkUvheJ1kGaYN90xd7p533nLzMyEEALp6ekqw67rez9bqKPeZWZm4quvvsLixYthaGgIuVyOefPmYfr06WqXDwgIwOzZs1Wm//bbb7CwsCjocImIiD4IRkZGcHJygqur60d7kTUR/TelpaXh4cOHePr0KTIyMpTmJSUloV+/fnob9a5QC6WtW7di8uTJWLJkCSpXroyrV69i/PjxWL58Ofz9/VWWV9ej5OrqipcvXxaJ4cGPHj2KNm3acNhcLTF3umHedMO86Y65001h5C0lJQUPHz6Eh4dHvoYHL0xCCLx58wbW1tYc4EkLzJvumDvdvO+8paSkIDo6Gq6urmqHBy9evPjHMTz45MmTMW3aNPTp0wdA1t2379+/jwULFqgtlExNTWFqaqoy3djYuMh8aRelWD40zJ1umDfdMG+6Y+508z7zJpfLIZPJYGBg8MEOQa04hUfxOkgzzJvumDvdvO+8GRgYQCaTqd2n6nsfW6hbQVJSkkpCDQ0NeV4oEREREREVqkItlDp37ox58+Zh//79iI6Oxu7du7F8+XJ069atMMMiIiIiypegoCDY2dkVdhgfLQ8PD6xcuTLXx0T6UKiF0urVq9GjRw988cUX8Pb2xqRJkzBixAjMnTu3MMMiIiKi/yeXAydPAlu2ZP0rlxfs+gYOHAiZTAZDQ0M4OjrC2dkZbdq0wcaNG//zZ5ycPHkSMpkMr1+/znO506dPw9DQEPb29khJSVGad+HCBchksiJ3Dc6IESNgaGiIHTt26PT8CxcuYPjw4XqJJTo6GjKZDFevXtVLe/rAQrBwFGqhZG1tjZUrV+L+/ftITk7GvXv38O2333KEHiIioiIgJATw8ABatAD69cv618Mja3pBateuHR4/fozw8HDs378fLVq0wLhx49CpUyeVUa4od9bW1ti9e7fStA0bNsDNza2QIlIvKSkJW7duxZQpU7Bx40ad2nB0dOQIyKR3vFKNiIiIVISEAD16AI8eKU9//DhrekEWS6ampnBycoKLiwt8fHzw1VdfYe/evTh48CCCgoKk5V6/fo2hQ4fC0dERNjY2aNmyJcLDw6X5AQEBqFGjBn766Se4urrCwsICvXr1Qnx8vNL6fv75Z3h7e8PMzAwVK1bEmjVrpHmK3oWQkBC0aNECFhYWqF69Os6dO6fURlBQENzc3GBhYYFu3bohNjZW5XXt3bsXPj4+MDMzQ5kyZTB79mylwk8mk+Hnn39Gt27dYGFhgXLlyuH333+X4mjRogUAwN7eHjKZDAMHDswzj/7+/kqFR3JyMrZu3ap2wKzTp0+jSZMmMDc3h6urK8aOHYu3b99K84ODg1G7dm1YW1vDyckJ/fr1w/Pnz6X5it6u48ePo3bt2rCwsEDDhg1x+/btPGMEgB07dqBSpUqYNm0aTp06hYcPHyrNf/78OTp37gxzc3N4enpi8+bNKm1k73FR1yP0+vVryGQynDx5EgDw6tUrfPrpp3B0dIS5uTnKlSuHwMBAAICXlxcAoGbNmpDJZGjevDmArN7Orl27Yv78+ShZsiTs7OwwZ84cZGRkYPLkyShWrBhKly4ttaPw8OFD9OrVC3Z2dihWrBi6dOmC6Ohoab6i3aVLl8LZ2RkODg4YNWqUdE+g5s2b4/79+5gwYUKR7A38mLFQIiIiIiVyOTBuHKDuBiKKaePHF/xpeNm1bNkS1atXR0i2Cq1nz554/vw5Dh48iEuXLsHHxwetWrVCXFyctMzdu3exfft2/PHHHzh06BCuXLmCL774Qpq/efNmzJo1C/PmzUNERATmz5+PmTNnYtOmTUrrnzFjBiZNmoSrV6+ifPny6Nu3r1TknD9/HkOGDMHo0aNx9epVtGjRAt9++63S88PCwjBgwACMGzcOt27dwk8//YSgoCDMmzdPabnZs2ejV69euHbtGjp06IBPP/0UcXFxcHV1xa5duwAAt2/fRkxMDFatWpVnzvr374+wsDA8ePAAALBr1y54eHjAx8dHabl79+6hXbt26N69O65du4Zt27bh9OnTGD16tLRMeno65s6di/DwcOzZswfR0dFqC7UZM2Zg2bJluHjxIoyMjDB48OA8YwSyerk+++wz2Nraon379krFMJBVSDx8+BChoaHYuXMn1qxZo1Sk6WLmzJm4desWDh48iIiICKxduxbFixcHAPz1118AgGPHjiEmJkZpmztx4gSePHmCU6dOYfny5fjmm2/QqVMn2Nvb4/z58xg5ciRGjBiBR///C0N6ejp8fX1hbW2NsLAwnDlzBlZWVmjXrh3S0tKkdkNDQ3Hv3j2EhoZi06ZNCAoKkvIQEhKC0qVLY86cOYiJiUFMTEy+XjtpQXzA4uPjBQARHx9f2KGItLQ0sWfPHpGWllbYoXxwmDvdMG+6Yd50x9zppjDylpycLG7duiWSk5N1en5oqBBZJVHef6Gheg1bCCGEv7+/6NKli5DL5eLVq1dCLpdL83r37i28vb2FEEKEhYUJGxsbkZKSovR8Ly8v8dNPPwkhhPjmm2+EoaGhePTokTT/4MGDwsDAQMTExEjL//bbb0ptzJ07VzRo0EAIIURUVJQAIH7++Wdp/s2bNwUAERERIYQQom/fvqJDhw5KbfTu3VvY2tpKj1u1aiXmz5+vtExwcLBwdnaWHgMQX3/9tfQ4MTFRABAHDx4UQggRGhoqAIhXr17llj4hl8vFH3/8IS3XtWtXMXv2bCGEEC1atBCrVq0Su3fvFtkPAYcMGSKGDx+u1E5YWJgwMDDIdRu6cOGCACDevHmjFNuxY8ekZfbv3y8A5Lkd3rlzRxgbG4sXL14IIYTYvXu38PT0FJmZmUIIIW7fvi0AiL///lt6TkREhAAgVqxYIU1zd3eXHivesytXrkjzX716JQCI0P/faDt37iwGDRqkkrtXr16Je/fuqTxfiKxt093dXWmbrFChgmjSpIn0OCMjQ1haWootW7YIIbLe4woVKkivRwghUlNThbm5uTh8+LBSuxkZGdIyPXv2FL1791b7+ooadZ/VgpTX/k3ftQF7lIiIiEiJpj9Yv+8ftoUQ0mlH4eHhSExMhIODA6ysrKS/qKgo3Lt3T3qOm5sbSpUqJT1u0KABMjMzcfv2bbx9+xb37t3DkCFDlNr49ttvldoAgGrVqkn/d3Z2BgCpVyMiIgL16tVTWr5BgwZKj8PDwzFnzhyl9QwbNgwxMTFISkpSux5LS0vY2Njkq/dk8ODBCAoKwr///otz587h008/VVkmPDwcQUFBSrH5+voiMzMTUVFRAIBLly6hc+fOcHNzg7W1NZo1awYAUm+Vuvhz5kmdjRs3wtfXV+rN6dChA+Lj43HixAkAWbk1MjJCrVq1pOdUrFgx3yMKfv7559i6dStq1KiBKVOm4OzZsxo9r3Llykq3tilZsiSqVq0qPTY0NISDg4P0msPDw3H37l1YW1tLuS1WrBhSUlKUtrHKlSvD0NBQeuzs7JzvXjPKv0K94SwREREVPf9/fKu35fQlIiICnp6eAIDExEQ4OztL15xkp+lBdGJiIgBg/fr1KoVO9oNWQPlGlopiTZtR+BITEzF79mz4+fmpzDMzM1O7HsW68jPaX/v27TF8+HAMGTIEnTt3hoODg9rYRowYgbFjx6rMc3Nzw9u3b+Hr6wtfX19s3rwZjo6OePDgAXx9fZVOH8sZ/7vyJJfLsWnTJjx9+hRGRkZK0zdu3IhWrVrp9JoVhYzIdu6o4nofhfbt2+P+/fs4cOAAjh49ilatWuGLL77AzJkz82xb3fuT13uWmJiIWrVqqb2uytHRMc92/+ujPBYFLJSIiIhISZMmQOnSWQM3qLtOSSbLmt+kyfuL6cSJE7h+/TomTJgAAPDx8ZEOsD08PHJ93oMHD/DkyRO4uLgAyLr+xMDAABUqVEDJkiXh4uKCf//9V21Pi6a8vb1x/vx5pWmK61wUfHx8cPv2bZQtW1bn9ShGBZZrcXGYkZERBgwYgMWLF+PgwYNql/Hx8cGtW7dyje369euIjY3FwoUL4erqCgC4ePGiltGrOnDgAN68eYMrV64oFaY3btzAoEGD8Pr1a1SsWBEZGRm4dOkS6tSpAyDrGq28hkhXFCAxMTGoWbMmAKgd6tvR0RH+/v7w9/dHkyZNMHnyZMycOVOnPOfGx8cH27ZtQ4kSJWBjY6NzOyYmJnqJh7TDU++IiIhIiaEhoBgnIOcAW4rHK1dmLVcQUlNT8fTpUzx58gSXL1/G/Pnz0aVLF3Tq1AkDBgwAALRu3RoNGjRA165dceTIEURHR+Ps2bOYMWOG0kG8mZkZ/P39ER4ejrCwMIwdOxa9evWCk5MTgKzBExYsWIDvvvsOd+7cwfXr1xEYGIjly5drHO/YsWNx6NAhLF26FJGRkfj+++9x6NAhpWVmzZqFX375BbNnz8bNmzcRERGBrVu34uuvv9Z4Pe7u7pDJZNi3bx9evHgh9Yi9y9y5c/HixQv4+vqqnT916lScPXtWGowiMjISe/fulQZzcHNzg4mJCVavXo1///0Xv//+u17ueblhwwZ07NgR1atXR5UqVaQ/xQhxmzdvRoUKFdCuXTuMGDEC58+fx6VLlzB06FCYm5vn2q65uTnq16+PhQsXIiIiAn/++adKnmfNmoW9e/fi7t27uHnzJvbt2wdvb28AQIkSJWBubo5Dhw7h2bNnKqMkauPTTz9F8eLF0aVLF4SFhSEqKgonT57E2LFjpQEfNOHh4YFTp07h8ePHePnypc7xkHZYKBEREZEKPz9g504g2+U9ALJ6knbuzJpfUA4dOoRSpUqhevXq6NChA0JDQ/Hdd99h7969Us+DTCbDgQMH0LRpUwwaNAjly5dHnz59cP/+fZQsWVJqq2zZsvDz80OHDh3Qtm1bVKtWTWn476FDh+Lnn39GYGAgqlatimbNmiEoKEg6xU8T9evXx/r167Fq1SpUr14dR44cUTkw9/X1xb59+3DkyBHUqVMH9evXx4oVK+Du7q7xekqVKoXZs2dj2rRpKFmypNKodHkxMTFB8eLFcx1Wulq1avjzzz9x584dNGnSBDVr1sSsWbOkXjhHR0cEBQVJw3gvXLgQS5cu1ThudZ49e4b9+/eje/fuKvMMDAzQrVs3bNiwAQAQGBgIFxcXNGvWDH5+fhg+fDhKlCiRZ/sbN25ERkYGatWqhfHjx6uMQmhiYoLp06ejWrVqaNq0KQwNDfHbb78ByOqF++677/DTTz/BxcUFXbp00fl1WlhY4NSpU3Bzc4Ofnx+8vb0xZMgQpKSkaNXDNGfOHERHR8PLy0vplD0qWDIh1HWqfxgSEhJga2uL+Pj4fHVn6kN6ejoOHDiADh06qJxnSnlj7nTDvOmGedMdc6ebwshbSkoKoqKi4OnpqXT9iy7kciAsLGvgBmfnrNPtCqonKbvMzEwkJCTAxsZG6eJ5bQQEBGDPnj1qT7v6WOkjbx8iZ2dnzJ07F0OHDtW5jf9q7vLrfectr/2bvmsDXqNEREREuTI0BP7/fptERU5SUhLOnDmDZ8+eoXLlyoUdDn1kWC4TERER0Qdp3bp16NOnD8aPH68yJDtRfrFQIiIioo9SQEDAf+q0u/+i8ePHIzY2VqvBN4g0xUKJiIiIiIgoBxZKREREREREObBQIiIiIiIiyoGFEhERERERUQ4slIiIiIiIiHJgoURERERERJQDCyUiIiL6z4mOjoZMJvtPDB9emK9VJpNhz549uT4mKspYKBEREVHuMuXAs5NA9JasfzPlBbq6gQMHQiaTwdDQEPb29nB0dES7du1w7dq1Al1vYfLw8MDKlSsLrH1XV1fExMSgSpUq+W7L19cXhoaGuHDhgk7Pj4mJQfv27fMdBwCcPHkSMpkMr1+/1kt7+sBC8OPCQomIiIjUexgC/O4BHG8BnO2X9e/vHlnTC1C7du3w+PFj/PPPPzh69CiMjIzQqVOnAl3nx8zQ0BBOTk4wMjLKVzsPHjzA2bNnMXr0aGzcuFGnNpycnGBqapqvOIjeFxZKREREpOphCBDWA0h6pDw96XHW9AIslkxNTeHk5ISSJUuiRo0amDZtGh4+fIgXL15Iy1y/fh0tW7aEubk5HBwcMHz4cCQmJkrzMzMzMWfOHJQuXRqmpqaoUaMGDh06lOd6b9y4gfbt28PKygolS5ZE//798fLlS2n+oUOH0LhxY9jZ2cHBwQGdOnXCvXv3pPmKU9xCQkLQokULWFhYoHr16jh37ly+8rF27Vp4eXnBxMQEFSpUQHBwsNL8f/75B40bN4aZmRmqVKmCkydPwtDQUOrZUHfq3c2bN9GpUyfY2NjA2toaTZo0UXot6gQGBqJTp074/PPPsWXLFiQnJyvNj4yMRNOmTWFmZoZKlSrh6NGjKm1k73FR1yN09epVyGQyREdHAwDu37+Pzp07w97eHpaWlqhcuTIOHDiA6OhotGjRAgBgb28PmUyGgQMHAgCaN2+OMWPGYPz48bC3t0fJkiWxfv16vH37FoMGDYK1tTXKli2LgwcPKsV248YN9OjRAzY2Nmrf/+bNm2Ps2LGYMmUKihUrBicnJwQEBEjzPTw8AADdunWDTCaTHtOHi4USERERKcuUA5fGARBqZv7/tEvjC/w0PABITEzEr7/+irJly8LBwQEA8PbtW/j6+sLe3h4XLlzAjh07cOzYMYwePVp63qpVq7Bs2TIsXboU165dg6+vLz755BNERkaqXc/r16/RsmVL1KxZExcvXsShQ4fw7Nkz9OrVS1rm7du3+PLLL3Hx4kUcP34cBgYG6NatGzIzM5XamjFjBiZNmoSrV6+ifPny6Nu3LzIyMnR6/bt378a4ceMwceJE3LhxAyNGjMCgQYMQGhoKAJDL5ejatSssLCxw/vx5/Pjjj/j222/zbPPx48do2rQpTE1NceLECVy6dAmDBw/OM0YhBAIDA/HZZ5+hYsWKKFu2LHbu3CnNz8zMhJ+fH0xMTKQ4pk6dqtNrzm7UqFFITU3FqVOncP36dSxatAhWVlZwdXXFrl27AAC3b99GTEwMVq1aJT1v06ZNKF68OP7++2+MGTMGn3/+OXr27ImGDRvi8uXLaNu2Lfr374+kpCQAWe9/69atUa1aNfz9999q339Fu5aWljh//jwWL16MOXPmSAWh4nTEwMBAxMTE6Hx6IhUh4gMWHx8vAIj4+PjCDkWkpaWJPXv2iLS0tMIO5YPD3OmGedMN86Y75k43hZG35ORkcevWLZGcnKxbA09DhdiMd/89DdVn2EIIIfz9/YWhoaGwtLQUlpaWAoBwdnYWly5dkpZZt26dsLe3F4mJidK0/fv3CwMDA/H06VMhhBAuLi5i3rx5Sm3XqVNHfPHFF0IIIaKiogQAceXKFSGEEHPnzhVt27ZVWv7hw4cCgLh9+7baWF+8eCEAiOvXryu1+fPPP0vL3Lx5UwAQERERub5md3d3sWLFCrXzGjZsKIYNG6Y0rWfPnqJDhw5CCCEOHjwojIyMRExMjBBCCLlcLnbv3i0AiN27d6t9rdOnTxeenp5abZNHjhwRjo6OIj09XQghxIoVK0SzZs2k+YcPHxZGRkbi8ePH0rSDBw8qxSGEUHocGhoqAIhXr15J869cuSIAiKioKCGEEFWrVhUBAQFqY1L3fCGEaNasmWjcuLH0OCMjQ1haWor+/ftL02JiYgQAce7cOSFE1vvfpk0b8erVKyGXy4UQqu9/znaFyNqmpk6dqvb1/VfI5XKlvBW0vPZv+q4N2KNEREREypJj9Lucllq0aIHLly/j1KlT+Ouvv+Dr64v27dvj/v37AICIiAhUr14dlpaW0nMaNWqEzMxM3L59GwkJCXjy5AkaNWqk1G6jRo0QERGhdp3h4eEIDQ2FlZWV9FexYkUAkE5Ji4yMRN++fVGmTBnY2NhIp1Y9ePBAqa1q1apJ/3d2dgYAPH/+XKdcRERE5Pk6bt++DVdXVzg5OUnzfXx88mzz6tWraNKkCYyNjTWOY+PGjejdu7d0nVPfvn1x5swZKTcRERFwdXWFi4uL9JwGDRpo3H5uxo4di2+//RaNGjXCN998o/GgHtnfA0NDQzg4OKBq1arStJIlSwL43/sSHh6OkydPonTp0rCxsVH7/udsF8h6f3V9b6noY6FEREREysyd9bucliwtLVG2bFmUKVMGderUwc8//4y3b99i/fr1BbI+IOsUv86dO+Pq1atKf4rrbgCgc+fOiIuLw/r163H+/HmcP38eAJCWlqbUVvYCRCaTAYDK6XmFydzcXKvl4+LisHv3bqxZswZGRkYwMjJCqVKlkJGRofOgDgBgYJB1GCrE/07xTE9PV1pm6NCh+Pfff9G/f39cv34dtWvXxurVq9/Zds4iUCaT5fm+JCYmolOnTjh16hQuX76s9v3Prd2i9N6SfrFQIiIiImWOTQCL0gBkuSwgAyxcs5Z7D2QyGQwMDKTBA7y9vREeHo63b99Ky5w5cwYGBgaoUKECbGxs4OLigjNnzii1c+bMGVSqVEntOnx8fHDz5k14eHigbNmySn+WlpaIjY3F7du38fXXX6NVq1bw9vbGq1evCu5F/z9vb+88X0eFChXw8OFDPHv2TJp/5cqVPNusVq0awsLCVIqS3GzevBmlS5dGeHi4UhG5bNkyBAUFQS6Xw9vbGw8fPkRMzP96Gf/6668823V0dAQApeeou9eTq6srRo4ciZCQEEycOFEqmE1MTABkXaeVXz4+Prh16xbc3NzUvv+aMjY21ks8VDSwUCIiIiJlBoZALcWF8TmLpf9/XGtl1nIFIDU1FU+fPsWzZ88QERGBMWPGSD0+APDpp5/CzMwM/v7+uHHjBkJDQzFmzBj0799fOqVq8uTJWLRoEbZt24bbt29j2rRpuHr1KsaNG6d2naNGjUJcXBz69u2LCxcu4N69ezh8+DAGDRoEuVwOe3t7ODg4YN26dbh79y5OnDiBL7/8Um+v+fHjxyq9Wa9evcLkyZMRFBSEtWvXIjIyEsuXL0dISAgmTZoEAGjTpg28vLzg7++Pa9eu4cyZM5g3bx6A//Wa5DR69GgkJCSgT58+uHjxIiIjIxEcHIzbt2+rXX7Dhg3o0aMHqlSpovQ3ZMgQvHz5EocOHULr1q1Rvnx5+Pv7Izw8HGFhYZgxY0aer7ls2bJwdXVFQEAAIiMjsX//fixbtkxpmfHjx+Pw4cOIiorC5cuXERoaCm9vbwCAu7s7ZDIZ9u3bhxcvXiiNeqgtxfs/dOhQte+/pjw8PHD8+HE8ffr0vRTSVLBYKBEREZEqVz+gyU7AopTydIvSWdNd/Qps1YcOHUKpUqVQsWJFNGjQQBrZrnnz5lkhWFjg8OHDiIuLQ506ddCjRw+0atUK33//vdTG2LFj8eWXX2LixImoWrUqDh06hN9//x3lypVTu05FD5RcLkfbtm1RtWpVjB8/HnZ2djAwMICBgQG2bt2KS5cuoUqVKpgwYQKWLFmit9e8dOlS1KxZU+lv//796Nq1K1atWoWlS5eicuXK+OmnnxAYGCjlQjEMeGJiIurUqYPhw4dLBZyZmZnadTk4OODEiRNITExEs2bNUKtWLaxfv17tNUuXLl1CeHg4unfvrjLP1tYWrVq1woYNG2BgYIDdu3cjOTkZdevWxdChQ6WCLTfGxsbYsmUL/vnnH1SrVg2LFi1SGbFPLpdj1KhR8Pb2Rrt27VC+fHmsWbMGAFCqVCnMnj0b06ZNQ8mSJZVGPdSWi4sLwsLCIJfL0a5dO5X3X1PLli3D0aNH4erqipo1a+ocDxUNMpH9xNAPTEJCAmxtbREfHw8bG5tCjSU9PR0HDhxAhw4dtLo4kpg7XTFvumHedMfc6aYw8paSkoKoqCh4enrmerCssUw58CIsa+AGc+es0+0KqCdJabWZmUhISICNjY1WB6r/dZmZmThy5Ajat2+Pu3fvwsvLq7BDkqSmpsLMzAxHjx5F69atCzscFdzmdPO+85bX/k3ftUH+btFMREREHzcDQ6Bk88KOgvKwe/duWFlZoVy5crhz5w4mTJiARo0aFakiKSEhASEhITAwMJBGkyMq6lgoEREREX3A3rx5g6lTp+LBgwcoXrw4mjZtqnTz1aLgm2++wW+//YZFixahdOnShR0OkUZYKBERERF9wAYMGIABAwYAUD4NqihZsWIFVqxYUdhhEGmFJ2ASERERERHlwEKJiIjoI/UBj9dERKTW+9yvsVAiIiL6yChG10tKSirkSIiI9EuxX3sfo4jyGiUiIqKPjKGhIezs7PD8+XMAWfcdyu3mo0VVZmYm0tLSkJKSwqGatcC86Y650837ypsQAklJSXj+/Dns7OxgaFjwtylgoURERPQRcnJyAgCpWPrQCCGQnJwMc3PzD67IK0zMm+6YO92877zZ2dlJ+7eCxkKJiIjoIySTyeDs7IwSJUogPT29sMPRWnp6Ok6dOoWmTZvyBsdaYN50x9zp5n3mzdjY+L30JCmwUCIiIvqIGRoavtcDC30xNDRERkYGzMzMeNCqBeZNd8ydbj7mvBXqCZgeHh6QyWQqf6NGjSrMsIiIiIiI6D+uUHuULly4ALlcLj2+ceMG2rRpg549exZiVERERERE9F9XqIWSo6Oj0uOFCxfCy8sLzZo1K6SIiIiIiIiIitA1Smlpafj111/x5Zdf5jpiRmpqKlJTU6XHCQkJALIuIivsC1UV6y/sOD5EzJ1umDfdMG+6Y+50w7zphnnTDfOmO+ZON0Upb/qOQSaKyG27t2/fjn79+uHBgwdwcXFRu0xAQABmz56tMv23336DhYVFQYdIRERERERFVFJSEvr164f4+HjY2Njku70iUyj5+vrCxMQEf/zxR67LqOtRcnV1xcuXL/WSjPxIT0/H0aNH0aZNm49uxI+CxtzphnnTDfOmO+ZON8ybbpg33TBvumPudFOU8paQkIDixYvrrVAqEqfe3b9/H8eOHUNISEiey5mamsLU1FRlurGxcaG/MQpFKZYPDXOnG+ZNN8yb7pg73TBvumHedMO86Y65001RyJu+11+ow4MrBAYGokSJEujYsWNhh0JERERERFT4hVJmZiYCAwPh7+8PI6Mi0cFFRERERET/cYVeKB07dgwPHjzA4MGDCzsUIiIiIiIiAEXgGqW2bduiiIwnQUREREREBKAI9CgREREREREVNSyUiIiIiIiIcmChRERERERElAMLJSIiIiIiohxYKBEREREREeXAQomIiIiIiCgHFkpEREREREQ5sFAiIiIiIiLKgYUSERERERFRDiyUiIiIiIiIcmChRERERERElAMLJSIiIiIiohxYKBEREREREeXAQomIiIiIiCgHFkpEREREREQ5sFAiIiIiIiLKgYUSERERERFRDiyUiIiIiIiIcmChRERERERElAMLJSIiIiIiohxYKBEREREREeXAQomIiIiIiCgHFkpEREREREQ5sFAiIiIiIiLKgYUSERERERFRDiyUiIiIiIiIcmChRERERERElAMLJSIiIiIiohxYKBEREREREeXAQomIiIiIiCgHFkpEREREREQ5sFAiIiIiIiLKgYUSERERERFRDiyUiIiIiIiIcmChRERERERElAMLJSIiIiIiohxYKBEREREREeXAQomIiIiIiCgHFkpEREREREQ5sFAiIiIiIiLKgYUSERERERFRDoVeKD1+/BifffYZHBwcYG5ujqpVq+LixYuFHRYREREREf2HGRXmyl+9eoVGjRqhRYsWOHjwIBwdHREZGQl7e/vCDIuIiIiIiP7j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Iq7BqOJEREREREQfJI0LJSIiIiIiov8KFkpEREREREQ5aDV03eHDh2FrawsAyMzMxPHjx3Hjxg0AULp+iYiIiIiI6EOmVaHk7++v9HjEiBFKj2UyWf4jIiIiIiIiKmQaF0rZhwInIiIiIiL6mPEaJSIiIiIiohxYKBEREREREeXAQomIiIiIiCgHFkpEREREREQ5sFAiIiIiIiLKQavhwbNLS0vD8+fPVUbDc3Nzy3dQREREREREhUnrQikyMhKDBw/G2bNnlaYLISCTySCXy/UWHBERERERUWHQulAaOHAgjIyMsG/fPjg7O/Mms0RERERE9NHRulC6evUqLl26hIoVKxZEPERERERERIVO68EcKlWqhJcvXxZELEREREREREWC1oXSokWLMGXKFJw8eRKxsbFISEhQ+iMiIiIiIvrQaX3qXevWrQEArVq1UprOwRyIiIiIiOhjoXWhFBoaWhBxEBERERERFRlaF0rNmjUriDiIiIiIiIiKDJ1uOPv69Wts2LABERERAIDKlStj8ODBsLW11WtwREREREREhUHrwRwuXrwILy8vrFixAnFxcYiLi8Py5cvh5eWFy5cvF0SMRERERERE75XWPUoTJkzAJ598gvXr18PIKOvpGRkZGDp0KMaPH49Tp07pPUgiIiIiIqL3SetC6eLFi0pFEgAYGRlhypQpqF27tl6DIyIiIiIiKgxan3pnY2ODBw8eqEx/+PAhrK2t9RIUERERERFRYdK6UOrduzeGDBmCbdu24eHDh3j48CG2bt2KoUOHom/fvgURIxERERER0Xul9al3S5cuhUwmw4ABA5CRkQEAMDY2xueff46FCxfqPUAiIiIiIqL3TetCycTEBKtWrcKCBQtw7949AICXlxcsLCz0HhwREREREVFh0Ok+SgBgYWGBqlWr6jMWIiIiIiKiIkGjQsnPzw9BQUGwsbGBn59fnsuGhIToJTAiIiIiIqLColGhZGtrC5lMBiBr1DvF/4mIiIiIiD5GGhVKgYGB0v+DgoIKKhYiIiIiIqIiQevhwVu2bInXr1+rTE9ISEDLli31ERMREREREVGh0rpQOnnyJNLS0lSmp6SkICwsTC9BERERERERFSaNR727du2a9P9bt27h6dOn0mO5XI5Dhw6hVKlS+o2OiIiIiIioEGhcKNWoUQMymQwymUztKXbm5uZYvXq1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Hz++aSwkJETjx4/X22+/7WBl6CyqqqokeU/60TZut1t//vOfVVNTozFjxjhdTlDIzMxUWlqaz791OLt//etfio2N1WWXXaZ77rlH+/fvd7qkoPC3v/1NI0eO1J133qno6GglJyfrueeec7qsoHLq1Cm99NJLmjFjBiHpHMaOHav169fr448/liS99957Ki0t1cSJEx2uLLB9/fXXcrvd6tKli894REREh7p6fonTBQS7I0eOyO12q2/fvj7jffv21UcffeRQVegsPB6PsrOzde211+pb3/qW0+UEvJ07d2rMmDE6efKkunfvrtWrV2vIkCFOlxXw/vznP+vdd9/tcGvPL6TRo0frhRde0MCBA1VZWan58+crNTVVu3btUmRkpNPlBbR///vfWrZsmWbOnKlf/OIX2rp1q372s58pLCxM06ZNc7q8oLBmzRp99dVX+uEPf+h0KQFv9uzZqq6u1qBBg+RyueR2u7VgwQLdc889TpcW0CIjIzVmzBj95je/0eDBg9W3b1/96U9/0ttvv60rrrjC6fL8hqAEBLHMzEzt2rWrQ716cyENHDhQZWVlqqqqUn5+vqZNm6aNGzcSls6ivLxcWVlZKioqavbKIVp35qvRw4cP1+jRo9W/f3+98sorLPU8B4/Ho5EjR2rhwoWSpOTkZO3atUu///3vCUpt9Pzzz2vixImKjY11upSA98orr+jll19WXl6ehg4dqrKyMmVnZys2Npbvt3N48cUXNWPGDMXFxcnlcunqq6/W3Xffre3btztdmt8QlM5Tnz595HK5dOjQIZ/xQ4cOqV+/fg5Vhc7gwQcf1Guvvabi4mLFx8c7XU5QCAsLa3qla8SIEdq6datyc3P17LPPOlxZ4Nq+fbsOHz6sq6++umnM7XaruLhYS5YsUV1dnVwul4MVBoeePXvqyiuv1CeffOJ0KQEvJiam2YsXgwcP1l//+leHKgoun376qf7xj3+ooKDA6VKCwqxZszR79mx9//vflyQNGzZMn376qRYtWkRQOofLL79cGzduVE1NjaqrqxUTE6O77rpLl112mdOl+Q17lM5TWFiYRowYofXr1zeNeTwerV+/nr0PuCBM09SDDz6o1atX6//+7/80YMAAp0sKWh6PR3V1dU6XEdBuvPFG7dy5U2VlZU1vI0eO1D333KOysjJCUhsdP35ce/bsUUxMjNOlBLxrr7222SMPPv74Y/Xv39+hioLLypUrFR0d7bPBHq2rra1VSIjv6bDL5ZLH43GoouDTrVs3xcTE6Msvv9S6des0efJkp0vyG64o+cHMmTM1bdo0jRw5Utdcc41ycnJUU1Oj6dOnO11aQDt+/LjPq6t79+5VWVmZevXqpcTERAcrC2yZmZnKy8vTq6++qsjISB08eFCS1KNHD0VERDhcXeCaM2eOJk6cqMTERB07dkx5eXnasGGD1q1b53RpAS0yMrLZ/rdu3bqpd+/e7Is7i4ceekiTJk1S//799dlnn2nu3LlyuVy6++67nS4t4P385z/X2LFjtXDhQk2ZMkVbtmzR8uXLtXz5cqdLC3gej0crV67UtGnTdMklnOK1xaRJk7RgwQIlJiZq6NCh2rFjh5566inNmDHD6dIC3rp162SapgYOHKhPPvlEs2bN0qBBgzrW+a8Jv3j66afNxMREMywszLzmmmvMzZs3O11SwHvzzTdNSc3epk2b5nRpAa2lnkkyV65c6XRpAW3GjBlm//79zbCwMPPSSy81b7zxRvN///d/nS4rKF133XVmVlaW02UEtLvuusuMiYkxw8LCzLi4OPOuu+4yP/nkE6fLChpr1641v/Wtb5nh4eHmoEGDzOXLlztdUlBYt26dKcncvXu306UEjerqajMrK8tMTEw0u3TpYl522WXmL3/5S7Ours7p0gLeqlWrzMsuu8wMCwsz+/XrZ2ZmZppfffWV02X5Fc9RAgAAAAAL9igBAAAAgAVBCQAAAAAsCEoAAAAAYEFQAgAAAAALghIAAAAAWBCUAAAAAMCCoAQAAAAAFgQlAAAAALAgKAEAOo19+/bJMAyVlZU5XQoAIMARlAAAfmUYxlnf5s2b1xRYrG/33ntvq5/3+uuvV3Z29sX7gwAAOrVLnC4AANCxVFZWNv1+1apVeuSRR7R79+6mse7du+vIkSOSpH/84x8aOnRo0/siIiIuXqEAAJwFV5QAAH7Vr1+/prcePXrIMAyfse7duzfN7d27d7P5bZWUlKSFCxdqxowZioyMVGJiopYvX+4zZ8uWLUpOTlaXLl00cuRI7dixo9nn2bVrlyZOnKju3burb9++uu+++5qC3IYNGxQWFqaSkpKm+Y8//riio6N16NCh9rYGABBECEoAgKD15JNPNgWgBx54QPfff3/T1avjx4/ru9/9roYMGaLt27dr3rx5euihh3w+/quvvtINN9yg5ORkbdu2TW+88YYOHTqkKVOmSDq93O++++5TVVWVduzYoV//+tf6wx/+oL59+170Py8A4OJh6R0AwDFjx45VSMjp1+xKSkqUnJzc5o+/9dZb9cADD0iSHn74Yf3ud7/Tm2++qYEDByovL08ej0fPP/+8unTpoqFDh+rAgQO6//77mz5+yZIlSk5O1sKFC5vGVqxYoYSEBH388ce68sor9eijj6qoqEg/+clPtGvXLk2bNk233XabH/70AIBARlACADhm1apVGjx4cNNxQkJCuz5++PDhTb9vXOJ3+PBhSdKHH36o4cOHq0uXLk1zxowZ4/Px7733nt58802f5YCN9uzZoyuvvFJhYWF6+eWXNXz4cPXv31+/+93v2lUjACA4EZQAAI5JSEjQFVdcYfvjQ0NDfY4Nw5DH42nzxx8/flyTJk3S4sWLm70vJiam6febNm2SJB09elRHjx5Vt27dbFYMAAgW7FECAHRIgwcP1vvvv6+TJ082jW3evNlnztVXX60PPvhASUlJuuKKK3zeGsPQnj179POf/1zPPfecRo8erWnTprUrjAEAghNBCQDQIU2dOlWGYejHP/6x/vnPf+rvf/+7fvvb3/rMyczM1NGjR3X33Xdr69at2rNnj9atW6fp06fL7XbL7Xbr3nvv1c0336zp06dr5cqVev/99/Xkk0869KcCAFwsBCUAQIfUvXt3rV27Vjt37lRycrJ++ctfNltiFxsbq7feektut1s33XSThg0bpuzsbPXs2VMhISFasGCBPv30Uz377LOSvMvxli9frl/96ld67733nPhjAQAuEsM0TdPpIgAAAAAgkHBFCQAAAAAsCEoAAAAAYEFQAgAAAAALghIAAAAAWBCUAAAAAMCCoAQAAAAAFgQlAAAAALAgKAEAAACABUEJAAAAACwISgAAAABgQVACAAAAAIv/D3vK1RYgI1YTAAAAAElFTkSuQmCC", "text/plain": [ "
" ] @@ -271,6 +271,11 @@ "plt.title('Pertubation Effects for Gene ' + str(GENE_IDX) + ' with Different Adjustment Functions (averaged across 100 trials)')\n", "plt.xlabel('TF Index')\n", "plt.ylabel('Perturbation Effect Val')\n", + "\n", + "#added to compare this to previous graph, REMOVE LATER\n", + "plt.ylim(0,9)\n", + "\n", + "\n", "plt.xticks(x_vals)\n", "plt.grid(True)\n", "plt.legend(['No Mean Adjustment', 'Normal (non-dependent) Mean Adjust', 'Dependent Mean Adjustment', 'Boolean Logic Adjustment'])\n", @@ -304,7 +309,7 @@ "source": [ "# define checkpoints and loggers\n", "best_model_checkpoint = ModelCheckpoint(\n", - " monitor=\"val_mse\",\n", + " monitor=\"val_explained_variance\",\n", " mode=\"min\",\n", " filename=\"best-model-{epoch:02d}-{val_loss:.2f}\",\n", " save_top_k=1,\n", @@ -388,20 +393,84 @@ "outputs": [], "source": [ "# These lists will store the test results for different models and data generation methods\n", - "model_mses = []\n", - "linear_model_test_mses = []" + "model_ves = []\n", + "linear_model_test_ves = []" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [], + "source": [ + "import torch\n", + "from sklearn.metrics import explained_variance_score\n", + "\n", + "data_module = get_data_module(0.0)\n", + "num_tfs = sum(data_module.n_sample)\n", + "model_ves = [] # List to store explained variance for the non-linear model\n", + "linear_model_test_ves = [] # List to store explained variance for the linear model\n", + "\n", + "def calculate_explained_variance(test_results, data_module, model):\n", + " predictions = []\n", + " targets = []\n", + "\n", + " model.eval() # Set the model to evaluation mode\n", + "\n", + " with torch.no_grad(): # Disable gradient calculation\n", + " for batch in data_module.test_dataloader():\n", + " # Assuming your data is in the format (x, y)\n", + " x, y = batch\n", + " outputs = model(x)\n", + " predictions.append(outputs)\n", + " targets.append(y)\n", + " mse = torch.nn.functional.mse_loss(torch.tensor(predictions), torch.tensor(targets)).item()\n", + " var_y = torch.var(torch.tensor(targets)).item() \n", + " explained_variance = 1 - (mse / var_y)\n", + " return explained_variance \n", + "\n", + "# # Function to calculate explained variance from test results\n", + "# def calculate_explained_variance(test_results, data_module, model):\n", + "# \"\"\"\n", + "# Calculates the explained variance score using PyTorch and scikit-learn.\n", + "\n", + "# Args:\n", + "# test_results: The results dictionary from the trainer.test() function.\n", + "# data_module: The data module containing the test dataloader.\n", + "# model: The trained PyTorch model.\n", + "\n", + "# Returns:\n", + "# float: The explained variance score.\n", + "# \"\"\"\n", + "# predictions = []\n", + "# targets = []\n", + "\n", + "# model.eval() # Set the model to evaluation mode\n", + "\n", + "# with torch.no_grad(): # Disable gradient calculation\n", + "# for batch in data_module.test_dataloader():\n", + "# # Assuming your data is in the format (x, y)\n", + "# x, y = batch\n", + "# outputs = model(x)\n", + "# predictions.append(outputs)\n", + "# targets.append(y)\n", + "\n", + "# predictions = torch.cat(predictions, dim=0).numpy() # Concatenate predictions\n", + "# targets = torch.cat(targets, dim=0).numpy() # Concatenate targets\n", + "\n", + "# return explained_variance_score(targets, predictions)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "Train models on data generated with no mean adjustment" + "# **Train models on data generated with no mean adjustment**" ] }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 31, "metadata": {}, "outputs": [ { @@ -412,12 +481,6 @@ "TPU available: False, using: 0 TPU cores\n", "IPU available: False, using: 0 IPUs\n", "HPU available: False, using: 0 HPUs\n", - "/Users/ericjia/yeastdnnexplorer/yeastdnnexplorer/data_loaders/synthetic_data_loader.py:260: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n", - " X_train, Y_train = torch.tensor(X_train, dtype=torch.float32), torch.tensor(\n", - "/Users/ericjia/yeastdnnexplorer/yeastdnnexplorer/data_loaders/synthetic_data_loader.py:263: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n", - " X_val, Y_val = torch.tensor(X_val, dtype=torch.float32), torch.tensor(\n", - "/Users/ericjia/yeastdnnexplorer/yeastdnnexplorer/data_loaders/synthetic_data_loader.py:266: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n", - " X_test, Y_test = torch.tensor(X_test, dtype=torch.float32), torch.tensor(\n", "\n", " | Name | Type | Params\n", "----------------------------------------------------\n", @@ -443,29 +506,21 @@ "version_minor": 0 }, "text/plain": [ - "Sanity Checking: | …" + "Sanity Checking: | | 0/? [00:00 6\u001b[0m explained_variance \u001b[38;5;241m=\u001b[39m \u001b[43mcalculate_explained_variance\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtest_results\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdata_module\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmodel\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 7\u001b[0m model_ves\u001b[38;5;241m.\u001b[39mappend(explained_variance) \u001b[38;5;66;03m# Append explained variance to the list\u001b[39;00m\n\u001b[1;32m 8\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mPrinting test results...\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", + "Cell \u001b[0;32mIn[30], line 23\u001b[0m, in \u001b[0;36mcalculate_explained_variance\u001b[0;34m(test_results, data_module, model)\u001b[0m\n\u001b[1;32m 21\u001b[0m predictions\u001b[38;5;241m.\u001b[39mappend(outputs)\n\u001b[1;32m 22\u001b[0m targets\u001b[38;5;241m.\u001b[39mappend(y)\n\u001b[0;32m---> 23\u001b[0m mse \u001b[38;5;241m=\u001b[39m torch\u001b[38;5;241m.\u001b[39mnn\u001b[38;5;241m.\u001b[39mfunctional\u001b[38;5;241m.\u001b[39mmse_loss(\u001b[43mtorch\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtensor\u001b[49m\u001b[43m(\u001b[49m\u001b[43mpredictions\u001b[49m\u001b[43m)\u001b[49m, torch\u001b[38;5;241m.\u001b[39mtensor(targets))\u001b[38;5;241m.\u001b[39mitem()\n\u001b[1;32m 24\u001b[0m var_y \u001b[38;5;241m=\u001b[39m torch\u001b[38;5;241m.\u001b[39mvar(torch\u001b[38;5;241m.\u001b[39mtensor(targets))\u001b[38;5;241m.\u001b[39mitem() \n\u001b[1;32m 25\u001b[0m explained_variance \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1\u001b[39m \u001b[38;5;241m-\u001b[39m (mse \u001b[38;5;241m/\u001b[39m var_y)\n", + "\u001b[0;31mValueError\u001b[0m: only one element tensors can be converted to Python scalars" + ] + } + ], + "source": [ + "# --- Nonlinear Model ---\n", + "model = get_model(num_tfs)\n", + "trainer = get_trainer()\n", + "trainer.fit(model, data_module)\n", + "test_results = trainer.test(model, datamodule=data_module)\n", + "explained_variance = calculate_explained_variance(test_results, data_module, model)\n", + "model_ves.append(explained_variance) # Append explained variance to the list\n", + "print(\"Printing test results...\")\n", + "print(test_results)\n", + "print(\"Printing explained variance\")\n", + "print(explained_variance)\n", + "\n", + "\n", + "# --- Linear Model ---\n", + "linear_model = get_linear_model(num_tfs)\n", + "trainer = get_trainer()\n", + "trainer.fit(linear_model, data_module)\n", + "test_results = trainer.test(linear_model, datamodule=data_module)\n", + "explained_variance = calculate_explained_variance(test_results, data_module, linear_model)\n", + "linear_model_test_ves.append(explained_variance) # Append explained variance to the list\n", + "print(\"Printing linear model test results\")\n", + "print(test_results)\n", + "print(\"Printing linear model explained variance\")\n", + "print(explained_variance)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "#NOTE: replaced this kernel with the two above to implement the explained variance\n", + "\n", + "\n", + "# data_module = get_data_module(0.0)\n", + "# num_tfs = sum(data_module.n_sample)\n", + "\n", + "# # nonlinear model\n", + "# model = get_model(num_tfs)\n", + "# trainer = get_trainer()\n", + "# trainer.fit(model, data_module)\n", + "# test_results = trainer.test(model, datamodule=data_module)\n", + "# print(\"Printing test results...\")\n", + "# print(test_results)\n", + "# model_ves.append(test_results[0][\"test_ve\"])\n", + "\n", + "# # linear model\n", + "# linear_model = get_linear_model(num_tfs)\n", + "# trainer = get_trainer()\n", + "# trainer.fit(linear_model, data_module)\n", + "# test_results = trainer.test(linear_model, datamodule=data_module)\n", + "# print(\"Printing linear model test results\")\n", + "# print(test_results)\n", + "# linear_model_test_ves.append(test_results[0][\"test_ve\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# **Train models on data generated with normal mean adjustments**" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ { "name": "stderr", "output_type": "stream", @@ -654,24 +792,20 @@ "IPU available: False, using: 0 IPUs\n", "HPU available: False, using: 0 HPUs\n", "\n", - " | Name | Type | Params\n", - "----------------------------------------------\n", - "0 | mae | MeanAbsoluteError | 0 \n", - "1 | SMSE | SMSE | 0 \n", - "2 | linear1 | Linear | 110 \n", - "----------------------------------------------\n", - "110 Trainable params\n", + " | Name | Type | Params\n", + "----------------------------------------------------\n", + "0 | activation | LeakyReLU | 0 \n", + "1 | input_layer | Linear | 704 \n", + "2 | hidden_layers | ModuleList | 2.1 K \n", + "3 | output_layer | Linear | 330 \n", + "4 | dropout | Dropout | 0 \n", + "5 | mae | MeanAbsoluteError | 0 \n", + "6 | SMSE | SMSE | 0 \n", + "----------------------------------------------------\n", + "3.1 K Trainable params\n", "0 Non-trainable params\n", - "110 Total params\n", - "0.000 Total estimated model params size (MB)\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Printing test results...\n", - "[{'test_mse': 1.5293521881103516, 'test_mae': 0.9961513876914978, 'test_smse': 8.054170608520508}]\n" + "3.1 K Total params\n", + "0.012 Total estimated model params size (MB)\n" ] }, { @@ -682,28 +816,21 @@ "version_minor": 0 }, "text/plain": [ - "Sanity Checking: | …" + "Sanity Checking: | | 0/? [00:00" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "data_gen_methods = [\"No Mean Adjustment\", \"Dependent Mean Adjustment\", \"TF Dependent Mean Adjustment\", \"TF Dependent Mean Adjust with Boolean Logic\"]\n", + "plt.figure(figsize=(10, 6))\n", + "plt.scatter(data_gen_methods, model_ves, color='blue')\n", + "plt.scatter(data_gen_methods, linear_model_test_ves, color='orange')\n", + "plt.title('Model VE Comparison (bound mean = 3.0)')\n", + "plt.xlabel('Model')\n", + "plt.ylabel('VE')\n", + "plt.grid(True)\n", + "plt.xticks(rotation=45, ha=\"right\")\n", + "plt.legend(['Complex (Customizable) Model', 'Linear Model'])\n", + "plt.tight_layout() # Adjust layout to make room for the rotated x-axis labels\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Seed set to 42\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Bound (1) and Unbound (0) Labels for gene 0:\n", + "tensor([0., 0., 0., 1., 1., 1., 1., 1., 0., 1.])\n", + "iteration 5 completed\n", + "iteration 10 completed\n", + "iteration 15 completed\n", + "iteration 20 completed\n", + "iteration 25 completed\n", + "iteration 30 completed\n", + "iteration 35 completed\n", + "iteration 40 completed\n", + "iteration 45 completed\n", + "iteration 50 completed\n" + ] + } + ], + "source": [ + "# imports\n", + "from yeastdnnexplorer.probability_models.generate_data import (\n", + " generate_gene_population, \n", + " generate_binding_effects, \n", + " generate_pvalues, \n", + " generate_perturbation_effects\n", + ")\n", + "\n", + "from yeastdnnexplorer.probability_models.util import (\n", + " calculate_explained_variance\n", + ")\n", + "\n", + "import torch\n", + "import matplotlib.pyplot as plt\n", + "\n", + "from yeastdnnexplorer.probability_models.relation_classes import Relation, And, Or\n", + "from yeastdnnexplorer.probability_models.generate_data import (\n", + " default_perturbation_effect_adjustment_function,\n", + " perturbation_effect_adjustment_function_with_tf_relationships,\n", + " perturbation_effect_adjustment_function_with_tf_relationships_boolean_logic\n", + ")\n", + "\n", + "from pytorch_lightning import Trainer, seed_everything\n", + "from torch.utils.data import DataLoader, TensorDataset\n", + "from sklearn.metrics import explained_variance_score\n", + "\n", + "from yeastdnnexplorer.data_loaders.synthetic_data_loader import SyntheticDataLoader\n", + "from yeastdnnexplorer.ml_models.simple_model import SimpleModel\n", + "from yeastdnnexplorer.ml_models.customizable_model import CustomizableModel\n", + "\n", + "seed_everything(42)\n", + "\n", + "n_genes = 3000\n", + "bound = [0.5, 0.5, 0.5, 0.5, 0.5]\n", + "n_sample = [1, 1, 2, 2, 4]\n", + "\n", + "# Generate gene populations\n", + "gene_populations_list = []\n", + "for bound_proportion, n_draws in zip(bound, n_sample):\n", + " for _ in range(n_draws):\n", + " gene_populations_list.append(generate_gene_population(n_genes, bound_proportion))\n", + " \n", + "# Generate binding data for each gene population\n", + "binding_effect_list = [generate_binding_effects(gene_population) for gene_population in gene_populations_list]\n", + "\n", + "# Calculate p-values for binding data\n", + "binding_pvalue_list = [generate_pvalues(binding_data) for binding_data in binding_effect_list]\n", + "\n", + "# Combine binding data into a tensor\n", + "binding_data_combined = [torch.stack((gene_population.labels, binding_effect, binding_pval), dim=1)\n", + " for gene_population, binding_effect, binding_pval in zip(gene_populations_list, binding_effect_list, binding_pvalue_list)]\n", + "binding_data_tensor = torch.stack(binding_data_combined, dim=1)\n", + "\n", + "# TF relationships\n", + "tf_relationships = {\n", + " 0: [1],\n", + " 1: [8],\n", + " 2: [5, 6],\n", + " 3: [4],\n", + " 4: [5],\n", + " 5: [9],\n", + " 6: [4],\n", + " 7: [1, 4],\n", + " 8: [6],\n", + " 9: [4],\n", + "}\n", + "\n", + "tf_relationships_dict_boolean_logic = {\n", + " 0: [And(3, 4, 8), Or(3, 7), Or(1, 1)],\n", + " 1: [And(5, Or(7, 8))],\n", + " 2: [],\n", + " 3: [Or(7, 9), And(6, 7)],\n", + " 4: [And(1, 2)],\n", + " 5: [Or(0, 1, 2, 8, 9)],\n", + " 6: [And(0, Or(1, 2))],\n", + " 7: [Or(2, And(5, 6, 9))],\n", + " 8: [],\n", + " 9: [And(6, And(3, Or(0, 9)))],\n", + "}\n", + "\n", + "def experiment(n_iterations=10, GENE_IDX=0):\n", + " print(\"Bound (1) and Unbound (0) Labels for gene \" + str(GENE_IDX) + \":\")\n", + " print(binding_data_tensor[GENE_IDX, :, 0])\n", + "\n", + " num_tfs = sum(n_sample)\n", + " \n", + " no_mean_adjustment_scores = torch.zeros(num_tfs)\n", + " normal_mean_adjustment_scores = torch.zeros(num_tfs)\n", + " dep_mean_adjustment_scores = torch.zeros(num_tfs)\n", + " boolean_logic_scores = torch.zeros(num_tfs)\n", + "\n", + " for i in range(n_iterations):\n", + " # Method 1: Generate perturbation effects without mean adjustment\n", + " perturbation_effects_list_no_mean_adjustment = [generate_perturbation_effects(binding_data_tensor[:, tf_index, :].unsqueeze(1), tf_index=0) \n", + " for tf_index in range(num_tfs)]\n", + " perturbation_effects_list_no_mean_adjustment = torch.stack(perturbation_effects_list_no_mean_adjustment, dim=1)\n", + "\n", + " # Method 2: Generate perturbation effects with normal mean adjustment\n", + " perturbation_effects_list_normal_mean_adjustment = generate_perturbation_effects(\n", + " binding_data_tensor, \n", + " max_mean_adjustment=10.0\n", + " )\n", + "\n", + " # Method 3: Generate perturbation effects with dependent mean adjustment\n", + " perturbation_effects_list_dep_mean_adjustment = generate_perturbation_effects(\n", + " binding_data_tensor, \n", + " tf_relationships=tf_relationships,\n", + " adjustment_function=perturbation_effect_adjustment_function_with_tf_relationships,\n", + " max_mean_adjustment=10.0,\n", + " )\n", + " \n", + " # Method 4: Generate perturbation effects with binary relations between the TFs\n", + " perturbation_effects_list_boolean_logic = generate_perturbation_effects(\n", + " binding_data_tensor, \n", + " adjustment_function=perturbation_effect_adjustment_function_with_tf_relationships_boolean_logic,\n", + " tf_relationships=tf_relationships_dict_boolean_logic,\n", + " max_mean_adjustment=10.0,\n", + " )\n", + "\n", + " no_mean_adjustment_scores += abs(perturbation_effects_list_no_mean_adjustment[GENE_IDX, :])\n", + " normal_mean_adjustment_scores += abs(perturbation_effects_list_normal_mean_adjustment[GENE_IDX, :])\n", + " dep_mean_adjustment_scores += abs(perturbation_effects_list_dep_mean_adjustment[GENE_IDX, :])\n", + " boolean_logic_scores += abs(perturbation_effects_list_boolean_logic[GENE_IDX, :])\n", + "\n", + " if (i + 1) % 5 == 0:\n", + " print(f\"iteration {i+1} completed\")\n", + " \n", + " no_mean_adjustment_scores /= n_iterations\n", + " normal_mean_adjustment_scores /= n_iterations\n", + " dep_mean_adjustment_scores /= n_iterations\n", + " boolean_logic_scores /= n_iterations\n", + " \n", + " return no_mean_adjustment_scores, normal_mean_adjustment_scores, dep_mean_adjustment_scores, boolean_logic_scores\n", + "\n", + "GENE_IDX = 0\n", + "experiment_results = experiment(n_iterations=50, GENE_IDX=GENE_IDX)\n", + "\n", + "def get_data_module(max_mean_adjustment, adjustment_function=default_perturbation_effect_adjustment_function, tf_relationships_dict={}):\n", + " return SyntheticDataLoader(\n", + " batch_size=32,\n", + " num_genes=4000,\n", + " bound_mean=3.0,\n", + " bound=[0.5] * 5,\n", + " n_sample=[1, 1, 2, 2, 4],\n", + " val_size=0.1,\n", + " test_size=0.1,\n", + " random_state=42,\n", + " max_mean_adjustment=max_mean_adjustment,\n", + " adjustment_function=adjustment_function,\n", + " tf_relationships=tf_relationships_dict,\n", + " )\n", + "\n", + "def get_model(num_tfs):\n", + " return CustomizableModel(\n", + " input_dim=num_tfs,\n", + " output_dim=num_tfs,\n", + " lr=0.01,\n", + " hidden_layer_num=2,\n", + " hidden_layer_sizes=[64, 32],\n", + " activation=\"LeakyReLU\",\n", + " optimizer=\"RMSprop\",\n", + " L2_regularization_term=0.0,\n", + " dropout_rate=0.0,\n", + " )\n", + "\n", + "def get_linear_model(num_tfs):\n", + " return SimpleModel(\n", + " input_dim=num_tfs,\n", + " output_dim=num_tfs,\n", + " lr=0.01\n", + " )\n", + "\n", + "def get_trainer():\n", + " return Trainer(\n", + " max_epochs=10,\n", + " deterministic=True,\n", + " accelerator=\"cpu\",\n", + " )\n", + "\n", + "model_ves = []\n", + "linear_model_test_ves = []" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "GPU available: False, used: False\n", + "TPU available: False, using: 0 TPU cores\n", + "IPU available: False, using: 0 IPUs\n", + "HPU available: False, using: 0 HPUs\n", + "/Users/ericjia/yeastdnnexplorer/yeastdnnexplorer/data_loaders/synthetic_data_loader.py:260: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n", + " X_train, Y_train = torch.tensor(X_train, dtype=torch.float32), torch.tensor(\n", + "/Users/ericjia/yeastdnnexplorer/yeastdnnexplorer/data_loaders/synthetic_data_loader.py:263: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n", + " X_val, Y_val = torch.tensor(X_val, dtype=torch.float32), torch.tensor(\n", + "/Users/ericjia/yeastdnnexplorer/yeastdnnexplorer/data_loaders/synthetic_data_loader.py:266: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n", + " X_test, Y_test = torch.tensor(X_test, dtype=torch.float32), torch.tensor(\n", + "\n", + " | Name | Type | Params\n", + "----------------------------------------------------\n", + "0 | activation | LeakyReLU | 0 \n", + "1 | input_layer | Linear | 704 \n", + "2 | hidden_layers | ModuleList | 2.1 K \n", + "3 | output_layer | Linear | 330 \n", + "4 | dropout | Dropout | 0 \n", + "5 | mae | MeanAbsoluteError | 0 \n", + "6 | SMSE | SMSE | 0 \n", + "----------------------------------------------------\n", + "3.1 K Trainable params\n", + "0 Non-trainable params\n", + "3.1 K Total params\n", + "0.012 Total estimated model params size (MB)\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Sanity Checking: | | 0/? [00:00" ] @@ -2490,15 +4712,15 @@ "source": [ "data_gen_methods = [\"No Mean Adjustment\", \"Dependent Mean Adjustment\", \"TF Dependent Mean Adjustment\", \"TF Dependent Mean Adjust with Boolean Logic\"]\n", "plt.figure(figsize=(10, 6))\n", - "plt.scatter(data_gen_methods, model_mses, color='blue')\n", - "plt.scatter(data_gen_methods, linear_model_test_mses, color='orange')\n", - "plt.title('Model MSE Comparison (bound mean = 3.0)')\n", + "plt.scatter(data_gen_methods, model_ves, color='blue')\n", + "plt.scatter(data_gen_methods, linear_model_test_ves, color='orange')\n", + "plt.title('Model VE Comparison (bound mean = 3.0)')\n", "plt.xlabel('Model')\n", - "plt.ylabel('MSE')\n", + "plt.ylabel('Variance Explained')\n", "plt.grid(True)\n", "plt.xticks(rotation=45, ha=\"right\")\n", "plt.legend(['Complex (Customizable) Model', 'Linear Model'])\n", - "plt.tight_layout() # Adjust layout to make room for the rotated x-axis labels\n", + "plt.tight_layout()\n", "plt.show()" ] }, diff --git a/yeastdnnexplorer/probability_models/generate_data.py b/yeastdnnexplorer/probability_models/generate_data.py index b0d2047..6f00e90 100644 --- a/yeastdnnexplorer/probability_models/generate_data.py +++ b/yeastdnnexplorer/probability_models/generate_data.py @@ -273,7 +273,7 @@ def default_perturbation_effect_adjustment_function( # divide its enrichment score by the maximum magnitude possible to # create an adjustment multipler that scales with increasing enrichment adjustment_multiplier = enrichment_scores[gene_idx, tf_index] / abs( - enrichment_scores.max() + enrichment_scores.max() * 10 ) # randomly adjust the gene by some portion of the max adjustment @@ -374,9 +374,12 @@ def perturbation_effect_adjustment_function_with_tf_relationships_boolean_logic( relation.evaluate(bound_labels[gene_idx].tolist()) for relation in relations ): - # draw a random value between 0 and 1 to use to - # control magnitude of adjustment - adjustment_multiplier = torch.rand(1) + # OLD: adjustment_multiplier = torch.rand(1) + # divide its enrichment score by the maximum magnitude possible to + # create an adjustment multipler that scales with increasing enrichment + adjustment_multiplier = enrichment_scores[gene_idx, tf_index] / abs( + enrichment_scores.max() * 10 + ) # randomly adjust the gene by some portion of the max adjustment adjusted_mean_matrix[gene_idx, tf_index] = bound_mean + ( @@ -469,9 +472,12 @@ def perturbation_effect_adjustment_function_with_tf_relationships( if bound_labels[gene_idx, tf_index] == 1 and torch.all( bound_labels[gene_idx, related_tfs] == 1 ): - # draw a random value between 0 and 1 to use to - # control magnitude of adjustment - adjustment_multiplier = torch.rand(1) + # OLD: adjustment_multiplier = torch.rand(1) + # divide its enrichment score by the maximum magnitude possible to + # create an adjustment multipler that scales with increasing enrichment + adjustment_multiplier = enrichment_scores[gene_idx, tf_index] / abs( + enrichment_scores.max() * 10 + ) # randomly adjust the gene by some portion of the max adjustment adjusted_mean_matrix[gene_idx, tf_index] = bound_mean + ( From e133afa5e2e2b07e03e1bb4058417e065e7f843e Mon Sep 17 00:00:00 2001 From: Chase Mateusiak Date: Mon, 10 Jun 2024 17:54:50 -0500 Subject: [PATCH 3/7] Update pyproject.toml This is already in the dev dependencies. I forgot to go over that. To add 'production' depdencies with python, you add to the default dependencies section with just: ``` poetry add ``` You can also add dependencies to a group, eg: ``` poetry add --group dev ``` See https://python-poetry.org/docs/cli/#options-4 That way, you can control what dependencies get installed. For a typical user, I don't think we'll want to install jupyter in the environment. They should have jupyter in their environment, and then install yeastdnnexplorer into it. --- pyproject.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index f994d36..2a7d309 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -19,7 +19,6 @@ tensorboard = "^2.16.1" torchsummary = "^1.5.1" optuna = "^3.6.0" optuna-dashboard = "^0.15.1" -jupyter = "^1.0.0" [tool.poetry.group.dev.dependencies] jupyter = "^1.0.0" From 84fa6eb646dbd1d6782c26be16164c362c2baff8 Mon Sep 17 00:00:00 2001 From: ejiawustl Date: Mon, 22 Jul 2024 14:58:24 -0700 Subject: [PATCH 4/7] parameterizing the max_adjustment value and adding the calculate_variance_explained function and test suite --- .../probability_models/generate_data.py | 4 +- yeastdnnexplorer/probability_models/util.py | 50 +++++++++++ .../tests/probability_models/test_util.py | 89 +++++++++++++++++++ 3 files changed, 141 insertions(+), 2 deletions(-) create mode 100644 yeastdnnexplorer/probability_models/util.py create mode 100644 yeastdnnexplorer/tests/probability_models/test_util.py diff --git a/yeastdnnexplorer/probability_models/generate_data.py b/yeastdnnexplorer/probability_models/generate_data.py index 6f00e90..a0b6b40 100644 --- a/yeastdnnexplorer/probability_models/generate_data.py +++ b/yeastdnnexplorer/probability_models/generate_data.py @@ -378,7 +378,7 @@ def perturbation_effect_adjustment_function_with_tf_relationships_boolean_logic( # divide its enrichment score by the maximum magnitude possible to # create an adjustment multipler that scales with increasing enrichment adjustment_multiplier = enrichment_scores[gene_idx, tf_index] / abs( - enrichment_scores.max() * 10 + enrichment_scores.max() ) # randomly adjust the gene by some portion of the max adjustment @@ -476,7 +476,7 @@ def perturbation_effect_adjustment_function_with_tf_relationships( # divide its enrichment score by the maximum magnitude possible to # create an adjustment multipler that scales with increasing enrichment adjustment_multiplier = enrichment_scores[gene_idx, tf_index] / abs( - enrichment_scores.max() * 10 + enrichment_scores.max() ) # randomly adjust the gene by some portion of the max adjustment diff --git a/yeastdnnexplorer/probability_models/util.py b/yeastdnnexplorer/probability_models/util.py new file mode 100644 index 0000000..8bf32c9 --- /dev/null +++ b/yeastdnnexplorer/probability_models/util.py @@ -0,0 +1,50 @@ +import logging +from collections.abc import Callable + +import torch + +from yeastdnnexplorer.probability_models.relation_classes import Relation + +logger = logging.getLogger(__name__) + +from sklearn.metrics import explained_variance_score + + +def calculate_explained_variance(model, data_module): + """ + Calculates the explained variance score of the model's predictions on the test + dataset + + Parameters: + - model: The trained model to predict with + - data_module: The data module for the test data loader + + Returns: + - explained_variance: should be a float between 0 and 1 (but could be negative) + """ + + predictions = [] + targets = [] + + # Set the model to evaluation mode to disable dropout, + # batch normalization, etc. + model.eval() + + # Disable gradient calculation to save memory and computation + # Iterate over the test data batches, get the input features (x) and true targets + # (y) from the batch, make predictions using the model, add everything to both lists + + with torch.no_grad(): + for batch in data_module.test_dataloader(): + x, y = batch + outputs = model(x) + predictions.append(outputs) + targets.append(y) + + # Concatenate all batch predictions and targets into single tensors + # They should be numpy arrays in order for explained_variance_score to work properly + predictions = torch.cat(predictions, dim=0).cpu().numpy() + targets = torch.cat(targets, dim=0).cpu().numpy() + + # Calculate and return the explained variance score + return explained_variance_score(targets, predictions) diff --git a/yeastdnnexplorer/tests/probability_models/test_util.py b/yeastdnnexplorer/tests/probability_models/test_util.py new file mode 100644 index 0000000..9c1a1be --- /dev/null +++ b/yeastdnnexplorer/tests/probability_models/test_util.py @@ -0,0 +1,89 @@ +import pytest +import torch +from sklearn.metrics import explained_variance_score +from yeastdnnexplorer.probability_models.util import calculate_explained_variance e + + +# Create a test model directly +def create_test_model(): + model = torch.nn.Linear(10, 1) + return model + + +# Create a specific model with known weights for testing +def create_specific_model(): + model = torch.nn.Linear(1, 1) + with torch.no_grad(): + model.weight.fill_(2.0) + model.bias.fill_(1.0) + return model + + +# Create test data directly +def create_test_data(): + x = torch.randn(100, 10) + y = torch.randn(100, 1) + dataset = torch.utils.data.TensorDataset(x, y) + dataloader = torch.utils.data.DataLoader(dataset, batch_size=10) + return dataloader + + +# Create specific test data for testing +# This data uses the linear relationship: y = 2x + 1 +# You can modify this if needed to make new tests in the future +def create_specific_data(): + x = torch.arange(0, 10, dtype=torch.float32).unsqueeze(1) + y = 2 * x + 1 + dataset = torch.utils.data.TensorDataset(x, y) + dataloader = torch.utils.data.DataLoader(dataset, batch_size=10) + return dataloader + +class DataModule: + def test_dataloader(self): + return dataloader + +def test_calculate_explained_variance(): + # Create test data + dataloader = create_test_data() + + # Create a test model and set it to evaluation mode to prevent model from udpating + model = create_test_model() + model.eval() + + # Create a mock data module structure + data_module = DataModule() + + # Calculate explained variance using the function + explained_variance = calculate_explained_variance(model, data_module) + + # Assert that the explained variance is a float and between 0-1 (it could be neg) + assert isinstance(explained_variance, float) + assert 0 <= explained_variance <= 1 + + +def test_specific_model_explained_variance(): + # Create specific test data based on the functions at the top + dataloader = create_specific_data() + + # Create a specific model with known weights and set it to evaluation mode + model = create_specific_model() + model.eval() + + # Create a mock data module structure + data_module = DataModule() + + # Calculate explained variance using the function + explained_variance = calculate_explained_variance(model, data_module) + + # Expected explained variance is 1 since the model should perfectly fit the line + expected_explained_variance = 1.0 + + # Asset that the calculated explained variance is a float and equal to 1.0 + assert isinstance(explained_variance, float), "Explained variance should be a float" + assert ( + explained_variance == expected_explained_variance + ), f"Explained variance should be {expected_explained_variance}" + + +if __name__ == "__main__": + pytest.main([__file__]) From be595137555678d7eb45e6b8649e5075b3260c3f Mon Sep 17 00:00:00 2001 From: ejiawustl Date: Tue, 23 Jul 2024 10:22:10 -0700 Subject: [PATCH 5/7] removing the function and test suite for calculating the variance explained and adding the function to the visualizing_and_testing_data_generation_methods notebook --- ..._and_testing_data_generation_methods.ipynb | 431 ++++++++++++++---- yeastdnnexplorer/probability_models/util.py | 50 -- .../tests/probability_models/test_util.py | 89 ---- 3 files changed, 333 insertions(+), 237 deletions(-) delete mode 100644 yeastdnnexplorer/probability_models/util.py delete mode 100644 yeastdnnexplorer/tests/probability_models/test_util.py diff --git a/docs/tutorials/visualizing_and_testing_data_generation_methods.ipynb b/docs/tutorials/visualizing_and_testing_data_generation_methods.ipynb index 88347bb..1a320ad 100644 --- a/docs/tutorials/visualizing_and_testing_data_generation_methods.ipynb +++ b/docs/tutorials/visualizing_and_testing_data_generation_methods.ipynb @@ -17,7 +17,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -29,6 +29,8 @@ "\n", "import torch\n", "import matplotlib.pyplot as plt\n", + "from sklearn.metrics import explained_variance_score\n", + "from typing import Dict, Any\n", "\n", "from yeastdnnexplorer.probability_models.relation_classes import Relation, And, Or\n", "from yeastdnnexplorer.probability_models.generate_data import (\n", @@ -303,7 +305,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -336,7 +338,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -383,12 +385,42 @@ " accelerator=\"cpu\",\n", " # callbacks=[best_model_checkpoint, periodic_checkpoint],\n", " # logger=[tb_logger, csv_logger],\n", - " )" + " )\n", + "\n", + "def calculate_explained_variance(test_results: Dict[str, Any], data_module: Any, model: torch.nn.Module):\n", + " \"\"\"\n", + " Calculates the explained variance score using PyTorch and scikit-learn.\n", + "\n", + " Params:\n", + " test_results (Dict[str, Any]): The results dictionary from the trainer.test() function.\n", + " data_module (Any): The data module containing the test dataloader.\n", + " model (torch.nn.Module): The trained PyTorch neural network model.\n", + "\n", + " Returns:\n", + " float: The explained variance score.\n", + " \"\"\"\n", + " predictions = []\n", + " targets = []\n", + "\n", + " model.eval() # Set the model to evaluation mode\n", + "\n", + " with torch.no_grad(): # Disable gradient calculation\n", + " for batch in data_module.test_dataloader():\n", + " # Assuming your data is in the format (x, y)\n", + " x, y = batch\n", + " outputs = model(x)\n", + " predictions.append(outputs)\n", + " targets.append(y)\n", + "\n", + " predictions = torch.cat(predictions, dim=0).numpy() # Concatenate predictions\n", + " targets = torch.cat(targets, dim=0).numpy() # Concatenate targets\n", + "\n", + " return explained_variance_score(targets, predictions)" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -399,66 +431,14 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ - "import torch\n", - "from sklearn.metrics import explained_variance_score\n", - "\n", "data_module = get_data_module(0.0)\n", "num_tfs = sum(data_module.n_sample)\n", "model_ves = [] # List to store explained variance for the non-linear model\n", - "linear_model_test_ves = [] # List to store explained variance for the linear model\n", - "\n", - "def calculate_explained_variance(test_results, data_module, model):\n", - " predictions = []\n", - " targets = []\n", - "\n", - " model.eval() # Set the model to evaluation mode\n", - "\n", - " with torch.no_grad(): # Disable gradient calculation\n", - " for batch in data_module.test_dataloader():\n", - " # Assuming your data is in the format (x, y)\n", - " x, y = batch\n", - " outputs = model(x)\n", - " predictions.append(outputs)\n", - " targets.append(y)\n", - " mse = torch.nn.functional.mse_loss(torch.tensor(predictions), torch.tensor(targets)).item()\n", - " var_y = torch.var(torch.tensor(targets)).item() \n", - " explained_variance = 1 - (mse / var_y)\n", - " return explained_variance \n", - "\n", - "# # Function to calculate explained variance from test results\n", - "# def calculate_explained_variance(test_results, data_module, model):\n", - "# \"\"\"\n", - "# Calculates the explained variance score using PyTorch and scikit-learn.\n", - "\n", - "# Args:\n", - "# test_results: The results dictionary from the trainer.test() function.\n", - "# data_module: The data module containing the test dataloader.\n", - "# model: The trained PyTorch model.\n", - "\n", - "# Returns:\n", - "# float: The explained variance score.\n", - "# \"\"\"\n", - "# predictions = []\n", - "# targets = []\n", - "\n", - "# model.eval() # Set the model to evaluation mode\n", - "\n", - "# with torch.no_grad(): # Disable gradient calculation\n", - "# for batch in data_module.test_dataloader():\n", - "# # Assuming your data is in the format (x, y)\n", - "# x, y = batch\n", - "# outputs = model(x)\n", - "# predictions.append(outputs)\n", - "# targets.append(y)\n", - "\n", - "# predictions = torch.cat(predictions, dim=0).numpy() # Concatenate predictions\n", - "# targets = torch.cat(targets, dim=0).numpy() # Concatenate targets\n", - "\n", - "# return explained_variance_score(targets, predictions)" + "linear_model_test_ves = [] # List to store explained variance for the linear model" ] }, { @@ -470,7 +450,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 7, "metadata": {}, "outputs": [ { @@ -481,6 +461,13 @@ "TPU available: False, using: 0 TPU cores\n", "IPU available: False, using: 0 IPUs\n", "HPU available: False, using: 0 HPUs\n", + "Missing logger folder: /Users/ericjia/yeastdnnexplorer/docs/tutorials/lightning_logs\n", + "/Users/ericjia/yeastdnnexplorer/yeastdnnexplorer/data_loaders/synthetic_data_loader.py:260: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n", + " X_train, Y_train = torch.tensor(X_train, dtype=torch.float32), torch.tensor(\n", + "/Users/ericjia/yeastdnnexplorer/yeastdnnexplorer/data_loaders/synthetic_data_loader.py:263: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n", + " X_val, Y_val = torch.tensor(X_val, dtype=torch.float32), torch.tensor(\n", + "/Users/ericjia/yeastdnnexplorer/yeastdnnexplorer/data_loaders/synthetic_data_loader.py:266: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n", + " X_test, Y_test = torch.tensor(X_test, dtype=torch.float32), torch.tensor(\n", "\n", " | Name | Type | Params\n", "----------------------------------------------------\n", @@ -501,26 +488,34 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "", + "model_id": "d1244d8d5c6342d9b9070d36b4cf635b", "version_major": 2, "version_minor": 0 }, "text/plain": [ - "Sanity Checking: | | 0/? [00:00 6\u001b[0m explained_variance \u001b[38;5;241m=\u001b[39m \u001b[43mcalculate_explained_variance\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtest_results\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdata_module\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmodel\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 7\u001b[0m model_ves\u001b[38;5;241m.\u001b[39mappend(explained_variance) \u001b[38;5;66;03m# Append explained variance to the list\u001b[39;00m\n\u001b[1;32m 8\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mPrinting test results...\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", - "Cell \u001b[0;32mIn[30], line 23\u001b[0m, in \u001b[0;36mcalculate_explained_variance\u001b[0;34m(test_results, data_module, model)\u001b[0m\n\u001b[1;32m 21\u001b[0m predictions\u001b[38;5;241m.\u001b[39mappend(outputs)\n\u001b[1;32m 22\u001b[0m targets\u001b[38;5;241m.\u001b[39mappend(y)\n\u001b[0;32m---> 23\u001b[0m mse \u001b[38;5;241m=\u001b[39m torch\u001b[38;5;241m.\u001b[39mnn\u001b[38;5;241m.\u001b[39mfunctional\u001b[38;5;241m.\u001b[39mmse_loss(\u001b[43mtorch\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtensor\u001b[49m\u001b[43m(\u001b[49m\u001b[43mpredictions\u001b[49m\u001b[43m)\u001b[49m, torch\u001b[38;5;241m.\u001b[39mtensor(targets))\u001b[38;5;241m.\u001b[39mitem()\n\u001b[1;32m 24\u001b[0m var_y \u001b[38;5;241m=\u001b[39m torch\u001b[38;5;241m.\u001b[39mvar(torch\u001b[38;5;241m.\u001b[39mtensor(targets))\u001b[38;5;241m.\u001b[39mitem() \n\u001b[1;32m 25\u001b[0m explained_variance \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1\u001b[39m \u001b[38;5;241m-\u001b[39m (mse \u001b[38;5;241m/\u001b[39m var_y)\n", - "\u001b[0;31mValueError\u001b[0m: only one element tensors can be converted to Python scalars" + "name": "stderr", + "output_type": "stream", + "text": [ + "GPU available: False, used: False\n", + "TPU available: False, using: 0 TPU cores\n", + "IPU available: False, using: 0 IPUs\n", + "HPU available: False, using: 0 HPUs\n", + "/Users/ericjia/yeastdnnexplorer/yeastdnnexplorer/data_loaders/synthetic_data_loader.py:260: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n", + " X_train, Y_train = torch.tensor(X_train, dtype=torch.float32), torch.tensor(\n", + "/Users/ericjia/yeastdnnexplorer/yeastdnnexplorer/data_loaders/synthetic_data_loader.py:263: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n", + " X_val, Y_val = torch.tensor(X_val, dtype=torch.float32), torch.tensor(\n", + "/Users/ericjia/yeastdnnexplorer/yeastdnnexplorer/data_loaders/synthetic_data_loader.py:266: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n", + " X_test, Y_test = torch.tensor(X_test, dtype=torch.float32), torch.tensor(\n", + "\n", + " | Name | Type | Params\n", + "----------------------------------------------\n", + "0 | mae | MeanAbsoluteError | 0 \n", + "1 | SMSE | SMSE | 0 \n", + "2 | linear1 | Linear | 110 \n", + "----------------------------------------------\n", + "110 Trainable params\n", + "0 Non-trainable params\n", + "110 Total params\n", + "0.000 Total estimated model params size (MB)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Printing test results...\n", + "[{'test_mse': 1.4547666311264038, 'test_mae': 0.9667437672615051, 'test_smse': 7.648471832275391}]\n", + "Printing explained variance\n", + "0.24665151238441468\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "f08e2062f52b4c13a1f4c021f481018c", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Sanity Checking: | | 0/? [00:00 Date: Mon, 5 Aug 2024 13:03:31 -0700 Subject: [PATCH 6/7] Added docstrings and typehinting, removed unnecessary work and added exposition to graphs and methods --- ..._and_testing_data_generation_methods.ipynb | 2891 ++--------------- 1 file changed, 278 insertions(+), 2613 deletions(-) diff --git a/docs/tutorials/visualizing_and_testing_data_generation_methods.ipynb b/docs/tutorials/visualizing_and_testing_data_generation_methods.ipynb index 88347bb..fee8e14 100644 --- a/docs/tutorials/visualizing_and_testing_data_generation_methods.ipynb +++ b/docs/tutorials/visualizing_and_testing_data_generation_methods.ipynb @@ -17,2589 +17,7 @@ }, { "cell_type": "code", - "execution_count": 38, - "metadata": {}, - "outputs": [], - "source": [ - "# imports\n", - "from yeastdnnexplorer.probability_models.generate_data import (generate_gene_population, \n", - " generate_binding_effects,\n", - " generate_pvalues,\n", - " generate_perturbation_effects)\n", - "\n", - "import torch\n", - "import matplotlib.pyplot as plt\n", - "\n", - "from yeastdnnexplorer.probability_models.relation_classes import Relation, And, Or\n", - "from yeastdnnexplorer.probability_models.generate_data import (\n", - " default_perturbation_effect_adjustment_function,\n", - " perturbation_effect_adjustment_function_with_tf_relationships,\n", - " perturbation_effect_adjustment_function_with_tf_relationships_boolean_logic\n", - ")\n", - "\n", - "from pytorch_lightning import Trainer, LightningModule, seed_everything\n", - "from pytorch_lightning.callbacks import ModelCheckpoint\n", - "from pytorch_lightning.loggers import CSVLogger, TensorBoardLogger\n", - "from torchsummary import summary\n", - "\n", - "from yeastdnnexplorer.data_loaders.synthetic_data_loader import SyntheticDataLoader\n", - "from yeastdnnexplorer.ml_models.simple_model import SimpleModel\n", - "from yeastdnnexplorer.ml_models.customizable_model import CustomizableModel\n", - "\n", - "torch.manual_seed(42) # For CPU\n", - "torch.cuda.manual_seed_all(42) # For all CUDA devices" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Generating the binding data will be the same as always, see `generate_in_silico_data.ipynb`" - ] - }, - { - "cell_type": "code", - "execution_count": 39, - "metadata": {}, - "outputs": [], - "source": [ - "n_genes = 3000\n", - "\n", - "bound = [0.5, 0.5, 0.5, 0.5, 0.5]\n", - "n_sample = [1, 1, 2, 2, 4]\n", - "\n", - "# this will be a list of length 10 with a GenePopulation object in each element\n", - "gene_populations_list = []\n", - "for bound_proportion, n_draws in zip(bound, n_sample):\n", - " for _ in range(n_draws):\n", - " gene_populations_list.append(generate_gene_population(n_genes, bound_proportion))\n", - " \n", - "# Generate binding data for each gene population\n", - "binding_effect_list = [generate_binding_effects(gene_population)\n", - " for gene_population in gene_populations_list]\n", - "\n", - "# Calculate p-values for binding data\n", - "binding_pvalue_list = [generate_pvalues(binding_data) for binding_data in binding_effect_list]\n", - "\n", - "binding_data_combined = [torch.stack((gene_population.labels, binding_effect, binding_pval), dim=1)\n", - " for gene_population, binding_effect, binding_pval\n", - " in zip (gene_populations_list, binding_effect_list, binding_pvalue_list)]\n", - "\n", - "# Stack along a new dimension (dim=1) to create a tensor of shape [num_genes, num_TFs, 3]\n", - "binding_data_tensor = torch.stack(binding_data_combined, dim=1)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now we define our experiment, this function will return the average perturbation effects (across n_iterations iterations) for each TF for a specific gene for each of the 4 data generation method we have at our disposal. Due to the randomness in the generated data, we need to find the averages over a number of iterations to get the true common values.\n", - "\n", - "We also need to define dictionaries of TF relationships for our third and fourth methods of generating perturbation data, see `generate_in_silico_data.ipynb` for an explanation of what these represent and how they are used / structured. The documentation in `generate_data.py` may be helpful as well." - ] - }, - { - "cell_type": "code", - "execution_count": 40, - "metadata": {}, - "outputs": [], - "source": [ - "tf_relationships = {\n", - " 0: [1],\n", - " 1: [8],\n", - " 2: [5, 6],\n", - " 3: [4],\n", - " 4: [5],\n", - " 5: [9],\n", - " 6: [4],\n", - " 7: [1, 4],\n", - " 8: [6],\n", - " 9: [4],\n", - "}\n", - "\n", - "tf_relationships_dict_boolean_logic = {\n", - " 0: [And(3, 4, 8), Or(3, 7), Or(1, 1)],\n", - " 1: [And(5, Or(7, 8))],\n", - " 2: [],\n", - " 3: [Or(7, 9), And(6, 7)],\n", - " 4: [And(1, 2)],\n", - " 5: [Or(0, 1, 2, 8, 9)],\n", - " 6: [And(0, Or(1, 2))],\n", - " 7: [Or(2, And(5, 6, 9))],\n", - " 8: [],\n", - " 9: [And(6, And(3, Or(0, 9)))],\n", - "}\n", - "\n", - "def experiment(n_iterations = 10, GENE_IDX = 0):\n", - " print(\"Bound (1) and Unbound (0) Labels for gene \" + str(GENE_IDX) + \":\")\n", - " print(binding_data_tensor[GENE_IDX, :, 0])\n", - "\n", - " num_tfs = sum(n_sample)\n", - " \n", - " no_mean_adjustment_scores = torch.zeros(num_tfs)\n", - " normal_mean_adjustment_scores = torch.zeros(num_tfs)\n", - " dep_mean_adjustment_scores = torch.zeros(num_tfs)\n", - " boolean_logic_scores = torch.zeros(num_tfs)\n", - "\n", - " # we generate perturbation effects for each TF on each iteration and then add them to the running totals\n", - " for i in range(n_iterations):\n", - " # Method 1: Generate perturbation effects without mean adjustment\n", - " perturbation_effects_list_no_mean_adjustment = [generate_perturbation_effects(binding_data_tensor[:, tf_index, :].unsqueeze(1), tf_index=0) \n", - " for tf_index in range(sum(n_sample))]\n", - " perturbation_effects_list_no_mean_adjustment = torch.stack(perturbation_effects_list_no_mean_adjustment, dim=1)\n", - "\n", - " # Method 2: Generate perturbation effects with normal mean adjustment\n", - " perturbation_effects_list_normal_mean_adjustment = generate_perturbation_effects(\n", - " binding_data_tensor, \n", - " max_mean_adjustment=10.0\n", - " )\n", - "\n", - " # Method 3: Generate perturbation effects with dependent mean adjustment\n", - " perturbation_effects_list_dep_mean_adjustment = generate_perturbation_effects(\n", - " binding_data_tensor, \n", - " tf_relationships=tf_relationships,\n", - " adjustment_function=perturbation_effect_adjustment_function_with_tf_relationships,\n", - " max_mean_adjustment=10.0,\n", - " )\n", - " \n", - " # Method 4: Generate perturbation effects with binary relations between the TFs\n", - " perturbation_effects_list_boolean_logic = generate_perturbation_effects(\n", - " binding_data_tensor, \n", - " adjustment_function=perturbation_effect_adjustment_function_with_tf_relationships_boolean_logic,\n", - " tf_relationships=tf_relationships_dict_boolean_logic,\n", - " max_mean_adjustment=10.0,\n", - " )\n", - "\n", - " # take absolute values since we only care about the magnitude of the effects\n", - " no_mean_adjustment_scores += abs(perturbation_effects_list_no_mean_adjustment[GENE_IDX, :])\n", - " normal_mean_adjustment_scores += abs(perturbation_effects_list_normal_mean_adjustment[GENE_IDX, :])\n", - " dep_mean_adjustment_scores += abs(perturbation_effects_list_dep_mean_adjustment[GENE_IDX, :])\n", - " boolean_logic_scores += abs(perturbation_effects_list_boolean_logic[GENE_IDX, :])\n", - "\n", - " if (i + 1) % 5 == 0:\n", - " print(f\"iteration {i+1} completed\")\n", - " \n", - " # divide by the number of iterations to get the averages\n", - " no_mean_adjustment_scores /= n_iterations\n", - " normal_mean_adjustment_scores /= n_iterations\n", - " dep_mean_adjustment_scores /= n_iterations\n", - " boolean_logic_scores /= n_iterations\n", - " \n", - " return no_mean_adjustment_scores, normal_mean_adjustment_scores, dep_mean_adjustment_scores, boolean_logic_scores" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now we can run the experiment for n_iterations, I find that you should iterate at least 30 times, but closer to 100 is most ideal. This could take 1-5 minutes depending on your computer." - ] - }, - { - "cell_type": "code", - "execution_count": 41, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Bound (1) and Unbound (0) Labels for gene 0:\n", - "tensor([0., 0., 0., 1., 1., 1., 1., 1., 0., 1.])\n", - "iteration 5 completed\n", - "iteration 10 completed\n", - "iteration 15 completed\n", - "iteration 20 completed\n", - "iteration 25 completed\n", - "iteration 30 completed\n", - "iteration 35 completed\n", - "iteration 40 completed\n", - "iteration 45 completed\n", - "iteration 50 completed\n" - ] - } - ], - "source": [ - "GENE_IDX = 0\n", - "experiment_results = experiment(n_iterations=50, GENE_IDX=GENE_IDX)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We now plot our results." - ] - }, - { - "cell_type": "code", - "execution_count": 42, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Bound (bound) TFs for gene 0 are: [3, 4, 5, 6, 7, 9]\n", - "Unbound (unbound) TFs for gene 0 are: [0, 1, 2, 8]\n", - "tensor([0., 0., 0., 1., 1., 1., 1., 1., 0., 1.])\n" - ] - }, - { - "data": { - "image/png": "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ALlcLj2+ceMG2rRpg549exZiVERERERE9F9XqIWSo6Oj0uOFCxfCy8sLzZo1K6SIiIiIiIiIitA1Smlpafj111/x5Zdf5jpiRmpqKlJTU6XHCQkJALIuIivsC1UV6y/sOD5EzJ1umDfdMG+6Y+50w7zphnnTDfOmO+ZON0Upb/qOQSaKyG27t2/fjn79+uHBgwdwcXFRu0xAQABmz56tMv23336DhYVFQYdIRERERERFVFJSEvr164f4+HjY2Njku70iUyj5+vrCxMQEf/zxR67LqOtRcnV1xcuXL/WSjPxIT0/H0aNH0aZNm49uxI+CxtzphnnTDfOmO+ZON8ybbpg33TBvumPudFOU8paQkIDixYvrrVAqEqfe3b9/H8eOHUNISEiey5mamsLU1FRlurGxcaG/MQpFKZYPDXOnG+ZNN8yb7pg73TBvumHedMO86Y65001RyJu+11+ow4MrBAYGokSJEujYsWNhh0JERERERFT4hVJmZiYCAwPh7+8PI6Mi0cFFRERERET/cYVeKB07dgwPHjzA4MGDCzsUIiIiIiIiAEXgGqW2bduiiIwnQUREREREBKAI9CgREREREREVNSyUiIiIiIiIcmChRERERERElAMLJSIiIiIiohxYKBEREREREeXAQomIiIiIiCgHFkpEREREREQ5sFAiIiIiIiLKgYUSERERERFRDiyUiIiIiIiIcmChRERERERElAMLJSIiIiIiohxYKBEREREREeXAQomIiIiIiCgHFkpEREREREQ5sFAiIiIiIiLKgYUSERERERFRDiyUiIiIiIiIcmChRERERERElAMLJSIiIiIiohxYKBEREREREeXAQomIiIiIiCgHFkpEREREREQ5sFAiIiIiIiLKgYUSERERERFRDiyUiIiIiIiIcmChRERERERElAMLJSIiIiIiohxYKBEREREREeXAQomIiIiIiCgHFkpEREREREQ5sFAiIiIiIiLKgYUSERERERFRDiyUiIiIiIiIcmChRERERERElAMLJSIiIiIiohxYKBEREREREeXAQomIiIiIiCgHFkpEREREREQ5sFAiIiIiIiLKgYUSERERERFRDoVeKD1+/BifffYZHBwcYG5ujqpVq+LixYuFHRYREREREf2HGRXmyl+9eoVGjRqhRYsWOHjwIBwdHREZGQl7e/vCDIuIiIiIiP7j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Iq7BqOJEREREREQfJI0LJSIiIiIiov8KFkpEREREREQ5aDV03eHDh2FrawsAyMzMxPHjx3Hjxg0AULp+iYiIiIiI6EOmVaHk7++v9HjEiBFKj2UyWf4jIiIiIiIiKmQaF0rZhwInIiIiIiL6mPEaJSIiIiIiohxYKBEREREREeXAQomIiIiIiCgHFkpEREREREQ5sFAiIiIiIiLKQavhwbNLS0vD8+fPVUbDc3Nzy3dQREREREREhUnrQikyMhKDBw/G2bNnlaYLISCTySCXy/UWHBERERERUWHQulAaOHAgjIyMsG/fPjg7O/Mms0RERERE9NHRulC6evUqLl26hIoVKxZEPERERERERIVO68EcKlWqhJcvXxZELEREREREREWC1oXSokWLMGXKFJw8eRKxsbFISEhQ+iMiIiIiIvrQaX3qXevWrQEArVq1UprOwRyIiIiIiOhjoXWhFBoaWhBxEBERERERFRlaF0rNmjUriDiIiIiIiIiKDJ1uOPv69Wts2LABERERAIDKlStj8ODBsLW11WtwREREREREhUHrwRwuXrwILy8vrFixAnFxcYiLi8Py5cvh5eWFy5cvF0SMRERERERE75XWPUoTJkzAJ598gvXr18PIKOvpGRkZGDp0KMaPH49Tp07pPUgiIiIiIqL3SetC6eLFi0pFEgAYGRlhypQpqF27tl6DIyIiIiIiKgxan3pnY2ODBw8eqEx/+PAhrK2t9RIUERERERFRYdK6UOrduzeGDBmCbdu24eHDh3j48CG2bt2KoUOHom/fvgURIxERERER0Xul9al3S5cuhUwmw4ABA5CRkQEAMDY2xueff46FCxfqPUAiIiIiIqL3TetCycTEBKtWrcKCBQtw7949AICXlxcsLCz0HhwREREREVFh0Ok+SgBgYWGBqlWr6jMWIiIiIiKiIkGjQsnPzw9BQUGwsbGBn59fnsuGhIToJTAiIiIiIqLColGhZGtrC5lMBiBr1DvF/4mIiIiIiD5GGhVKgYGB0v+DgoIKKhYiIiIiIqIiQevhwVu2bInXr1+rTE9ISEDLli31ERMREREREVGh0rpQOnnyJNLS0lSmp6SkICwsTC9BERERERERFSaNR727du2a9P9bt27h6dOn0mO5XI5Dhw6hVKlS+o2OiIiIiIioEGhcKNWoUQMymQwymUztKXbm5uZYvXq1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Hz++aSwkJETjx4/X22+/7WBl6CyqqqokeU/60TZut1t//vOfVVNTozFjxjhdTlDIzMxUWlqaz791OLt//etfio2N1WWXXaZ77rlH+/fvd7qkoPC3v/1NI0eO1J133qno6GglJyfrueeec7qsoHLq1Cm99NJLmjFjBiHpHMaOHav169fr448/liS99957Ki0t1cSJEx2uLLB9/fXXcrvd6tKli894REREh7p6fonTBQS7I0eOyO12q2/fvj7jffv21UcffeRQVegsPB6PsrOzde211+pb3/qW0+UEvJ07d2rMmDE6efKkunfvrtWrV2vIkCFOlxXw/vznP+vdd9/tcGvPL6TRo0frhRde0MCBA1VZWan58+crNTVVu3btUmRkpNPlBbR///vfWrZsmWbOnKlf/OIX2rp1q372s58pLCxM06ZNc7q8oLBmzRp99dVX+uEPf+h0KQFv9uzZqq6u1qBBg+RyueR2u7VgwQLdc889TpcW0CIjIzVmzBj95je/0eDBg9W3b1/96U9/0ttvv60rrrjC6fL8hqAEBLHMzEzt2rWrQ716cyENHDhQZWVlqqqqUn5+vqZNm6aNGzcSls6ivLxcWVlZKioqavbKIVp35qvRw4cP1+jRo9W/f3+98sorLPU8B4/Ho5EjR2rhwoWSpOTkZO3atUu///3vCUpt9Pzzz2vixImKjY11upSA98orr+jll19WXl6ehg4dqrKyMmVnZys2Npbvt3N48cUXNWPGDMXFxcnlcunqq6/W3Xffre3btztdmt8QlM5Tnz595HK5dOjQIZ/xQ4cOqV+/fg5Vhc7gwQcf1Guvvabi4mLFx8c7XU5QCAsLa3qla8SIEdq6datyc3P17LPPOlxZ4Nq+fbsOHz6sq6++umnM7XaruLhYS5YsUV1dnVwul4MVBoeePXvqyiuv1CeffOJ0KQEvJiam2YsXgwcP1l//+leHKgoun376qf7xj3+ooKDA6VKCwqxZszR79mx9//vflyQNGzZMn376qRYtWkRQOofLL79cGzduVE1NjaqrqxUTE6O77rpLl112mdOl+Q17lM5TWFiYRowYofXr1zeNeTwerV+/nr0PuCBM09SDDz6o1atX6//+7/80YMAAp0sKWh6PR3V1dU6XEdBuvPFG7dy5U2VlZU1vI0eO1D333KOysjJCUhsdP35ce/bsUUxMjNOlBLxrr7222SMPPv74Y/Xv39+hioLLypUrFR0d7bPBHq2rra1VSIjv6bDL5ZLH43GoouDTrVs3xcTE6Msvv9S6des0efJkp0vyG64o+cHMmTM1bdo0jRw5Utdcc41ycnJUU1Oj6dOnO11aQDt+/LjPq6t79+5VWVmZevXqpcTERAcrC2yZmZnKy8vTq6++qsjISB08eFCS1KNHD0VERDhcXeCaM2eOJk6cqMTERB07dkx5eXnasGGD1q1b53RpAS0yMrLZ/rdu3bqpd+/e7Is7i4ceekiTJk1S//799dlnn2nu3LlyuVy6++67nS4t4P385z/X2LFjtXDhQk2ZMkVbtmzR8uXLtXz5cqdLC3gej0crV67UtGnTdMklnOK1xaRJk7RgwQIlJiZq6NCh2rFjh5566inNmDHD6dIC3rp162SapgYOHKhPPvlEs2bN0qBBgzrW+a8Jv3j66afNxMREMywszLzmmmvMzZs3O11SwHvzzTdNSc3epk2b5nRpAa2lnkkyV65c6XRpAW3GjBlm//79zbCwMPPSSy81b7zxRvN///d/nS4rKF133XVmVlaW02UEtLvuusuMiYkxw8LCzLi4OPOuu+4yP/nkE6fLChpr1641v/Wtb5nh4eHmoEGDzOXLlztdUlBYt26dKcncvXu306UEjerqajMrK8tMTEw0u3TpYl522WXmL3/5S7Ours7p0gLeqlWrzMsuu8wMCwsz+/XrZ2ZmZppfffWV02X5Fc9RAgAAAAAL9igBAAAAgAVBCQAAAAAsCEoAAAAAYEFQAgAAAAALghIAAAAAWBCUAAAAAMCCoAQAAAAAFgQlAAAAALAgKAEAOo19+/bJMAyVlZU5XQoAIMARlAAAfmUYxlnf5s2b1xRYrG/33ntvq5/3+uuvV3Z29sX7gwAAOrVLnC4AANCxVFZWNv1+1apVeuSRR7R79+6mse7du+vIkSOSpH/84x8aOnRo0/siIiIuXqEAAJwFV5QAAH7Vr1+/prcePXrIMAyfse7duzfN7d27d7P5bZWUlKSFCxdqxowZioyMVGJiopYvX+4zZ8uWLUpOTlaXLl00cuRI7dixo9nn2bVrlyZOnKju3burb9++uu+++5qC3IYNGxQWFqaSkpKm+Y8//riio6N16NCh9rYGABBECEoAgKD15JNPNgWgBx54QPfff3/T1avjx4/ru9/9roYMGaLt27dr3rx5euihh3w+/quvvtINN9yg5ORkbdu2TW+88YYOHTqkKVOmSDq93O++++5TVVWVduzYoV//+tf6wx/+oL59+170Py8A4OJh6R0AwDFjx45VSMjp1+xKSkqUnJzc5o+/9dZb9cADD0iSHn74Yf3ud7/Tm2++qYEDByovL08ej0fPP/+8unTpoqFDh+rAgQO6//77mz5+yZIlSk5O1sKFC5vGVqxYoYSEBH388ce68sor9eijj6qoqEg/+clPtGvXLk2bNk233XabH/70AIBARlACADhm1apVGjx4cNNxQkJCuz5++PDhTb9vXOJ3+PBhSdKHH36o4cOHq0uXLk1zxowZ4/Px7733nt58802f5YCN9uzZoyuvvFJhYWF6+eWXNXz4cPXv31+/+93v2lUjACA4EZQAAI5JSEjQFVdcYfvjQ0NDfY4Nw5DH42nzxx8/flyTJk3S4sWLm70vJiam6febNm2SJB09elRHjx5Vt27dbFYMAAgW7FECAHRIgwcP1vvvv6+TJ082jW3evNlnztVXX60PPvhASUlJuuKKK3zeGsPQnj179POf/1zPPfecRo8erWnTprUrjAEAghNBCQDQIU2dOlWGYejHP/6x/vnPf+rvf/+7fvvb3/rMyczM1NGjR3X33Xdr69at2rNnj9atW6fp06fL7XbL7Xbr3nvv1c0336zp06dr5cqVev/99/Xkk0869KcCAFwsBCUAQIfUvXt3rV27Vjt37lRycrJ++ctfNltiFxsbq7feektut1s33XSThg0bpuzsbPXs2VMhISFasGCBPv30Uz377LOSvMvxli9frl/96ld67733nPhjAQAuEsM0TdPpIgAAAAAgkHBFCQAAAAAsCEoAAAAAYEFQAgAAAAALghIAAAAAWBCUAAAAAMCCoAQAAAAAFgQlAAAAALAgKAEAAACABUEJAAAAACwISgAAAABgQVACAAAAAIv/D3vK1RYgI1YTAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "x_vals = list(range(sum(n_sample)))\n", - "print(\"Bound (bound) TFs for gene \" + str(GENE_IDX) + \" are: \" + str(binding_data_tensor[GENE_IDX, :, 0].nonzero().flatten().tolist()))\n", - "print(\"Unbound (unbound) TFs for gene \" + str(GENE_IDX) + \" are: \" + str((1 - binding_data_tensor[GENE_IDX, :, 0]).nonzero().flatten().tolist()))\n", - "print(binding_data_tensor[GENE_IDX, :, 0])\n", - "plt.figure(figsize=(10, 6))\n", - "\n", - "# Plot each set of experiment results with a different color\n", - "colors = ['red', 'green', 'blue', 'orange']\n", - "for index, results in enumerate(experiment_results):\n", - " plt.scatter(x_vals, results, color=colors[index])\n", - "\n", - "plt.title('Pertubation Effects for Gene ' + str(GENE_IDX) + ' with Different Adjustment Functions (averaged across 100 trials)')\n", - "plt.xlabel('TF Index')\n", - "plt.ylabel('Perturbation Effect Val')\n", - "\n", - "#added to compare this to previous graph, REMOVE LATER\n", - "plt.ylim(0,9)\n", - "\n", - "\n", - "plt.xticks(x_vals)\n", - "plt.grid(True)\n", - "plt.legend(['No Mean Adjustment', 'Normal (non-dependent) Mean Adjust', 'Dependent Mean Adjustment', 'Boolean Logic Adjustment'])\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Recall that for the dependent mean adjustment, the TF in question must be bound and all of the TFs in its dependency array (in the tf_relationships dictionary) must be bound as well. This is why we do not adjust the mean for TF 7 despite it being bound, it depends on TF 1 and TF 4 both being bound, and TF1 is not bound.\n", - "\n", - "Similarly, for the boolean logic adjustment, we do not adjust the mean for 6 despite it being bound because it depends on (TF0 && (TF1 || TF2)) being bound, and none of those 3 TFs are bound to the gene we are studying.\n", - "\n", - "Note that if you change GENE_IDX, the random seed, or any of the relationship dictionaris that this explanation will no longer apply to the data you are seeing in the plot." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Training models on data generated from the 4 different methods\n", - "In the next experiment, we will be training the exact same model on data generated from each of these 4 methods. We will also train a simple linear model on all four methods to use as a baseline to compare to. Other than the method used to generate the data, everything else will be held the same." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "# define checkpoints and loggers\n", - "best_model_checkpoint = ModelCheckpoint(\n", - " monitor=\"val_explained_variance\",\n", - " mode=\"min\",\n", - " filename=\"best-model-{epoch:02d}-{val_loss:.2f}\",\n", - " save_top_k=1,\n", - ")\n", - "\n", - "# Callback to save checkpoints every 5 epochs, regardless of performance\n", - "periodic_checkpoint = ModelCheckpoint(\n", - " filename=\"periodic-{epoch:02d}\",\n", - " every_n_epochs=2,\n", - " save_top_k=-1, # Setting -1 saves all checkpoints\n", - ")\n", - "\n", - "# define loggers for the model\n", - "tb_logger = TensorBoardLogger(\"logs/tensorboard_logs\")\n", - "csv_logger = CSVLogger(\"logs/csv_logs\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We define a few helper functions to run our experiment. We make helper functions for things that will mostly be the same across each training loop so that we don't have to keep redefining them." - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "def get_data_module(max_mean_adjustment, adjustment_function = default_perturbation_effect_adjustment_function, tf_relationships_dict = {}):\n", - " return SyntheticDataLoader(\n", - " batch_size=32,\n", - " num_genes=4000,\n", - " bound_mean=3.0,\n", - " bound=[0.5] * 5,\n", - " n_sample=[1, 1, 2, 2, 4], # sum of this is num of tfs\n", - " val_size=0.1,\n", - " test_size=0.1,\n", - " random_state=42,\n", - " max_mean_adjustment=max_mean_adjustment,\n", - " adjustment_function=adjustment_function,\n", - " tf_relationships=tf_relationships_dict,\n", - " )\n", - "\n", - "def get_model(num_tfs):\n", - " return CustomizableModel(\n", - " input_dim=num_tfs,\n", - " output_dim=num_tfs,\n", - " lr=0.01,\n", - " hidden_layer_num=2,\n", - " hidden_layer_sizes=[64, 32],\n", - " activation=\"LeakyReLU\",\n", - " optimizer=\"RMSprop\",\n", - " L2_regularization_term=0.0,\n", - " dropout_rate=0.0,\n", - " )\n", - "\n", - "def get_linear_model(num_tfs):\n", - " return SimpleModel(\n", - " input_dim=num_tfs,\n", - " output_dim=num_tfs,\n", - " lr=0.01\n", - " )\n", - "\n", - "def get_trainer():\n", - " # uncomment callbacks or logggers if you would like checkpoints / logs\n", - " return Trainer(\n", - " max_epochs=10,\n", - " deterministic=True,\n", - " accelerator=\"cpu\",\n", - " # callbacks=[best_model_checkpoint, periodic_checkpoint],\n", - " # logger=[tb_logger, csv_logger],\n", - " )" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "# These lists will store the test results for different models and data generation methods\n", - "model_ves = []\n", - "linear_model_test_ves = []" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "metadata": {}, - "outputs": [], - "source": [ - "import torch\n", - "from sklearn.metrics import explained_variance_score\n", - "\n", - "data_module = get_data_module(0.0)\n", - "num_tfs = sum(data_module.n_sample)\n", - "model_ves = [] # List to store explained variance for the non-linear model\n", - "linear_model_test_ves = [] # List to store explained variance for the linear model\n", - "\n", - "def calculate_explained_variance(test_results, data_module, model):\n", - " predictions = []\n", - " targets = []\n", - "\n", - " model.eval() # Set the model to evaluation mode\n", - "\n", - " with torch.no_grad(): # Disable gradient calculation\n", - " for batch in data_module.test_dataloader():\n", - " # Assuming your data is in the format (x, y)\n", - " x, y = batch\n", - " outputs = model(x)\n", - " predictions.append(outputs)\n", - " targets.append(y)\n", - " mse = torch.nn.functional.mse_loss(torch.tensor(predictions), torch.tensor(targets)).item()\n", - " var_y = torch.var(torch.tensor(targets)).item() \n", - " explained_variance = 1 - (mse / var_y)\n", - " return explained_variance \n", - "\n", - "# # Function to calculate explained variance from test results\n", - "# def calculate_explained_variance(test_results, data_module, model):\n", - "# \"\"\"\n", - "# Calculates the explained variance score using PyTorch and scikit-learn.\n", - "\n", - "# Args:\n", - "# test_results: The results dictionary from the trainer.test() function.\n", - "# data_module: The data module containing the test dataloader.\n", - "# model: The trained PyTorch model.\n", - "\n", - "# Returns:\n", - "# float: The explained variance score.\n", - "# \"\"\"\n", - "# predictions = []\n", - "# targets = []\n", - "\n", - "# model.eval() # Set the model to evaluation mode\n", - "\n", - "# with torch.no_grad(): # Disable gradient calculation\n", - "# for batch in data_module.test_dataloader():\n", - "# # Assuming your data is in the format (x, y)\n", - "# x, y = batch\n", - "# outputs = model(x)\n", - "# predictions.append(outputs)\n", - "# targets.append(y)\n", - "\n", - "# predictions = torch.cat(predictions, dim=0).numpy() # Concatenate predictions\n", - "# targets = torch.cat(targets, dim=0).numpy() # Concatenate targets\n", - "\n", - "# return explained_variance_score(targets, predictions)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# **Train models on data generated with no mean adjustment**" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "GPU available: False, used: False\n", - "TPU available: False, using: 0 TPU cores\n", - "IPU available: False, using: 0 IPUs\n", - "HPU available: False, using: 0 HPUs\n", - "\n", - " | Name | Type | Params\n", - "----------------------------------------------------\n", - "0 | activation | LeakyReLU | 0 \n", - "1 | input_layer | Linear | 704 \n", - "2 | hidden_layers | ModuleList | 2.1 K \n", - "3 | output_layer | Linear | 330 \n", - "4 | dropout | Dropout | 0 \n", - "5 | mae | MeanAbsoluteError | 0 \n", - "6 | SMSE | SMSE | 0 \n", - "----------------------------------------------------\n", - "3.1 K Trainable params\n", - "0 Non-trainable params\n", - "3.1 K Total params\n", - "0.012 Total estimated model params size (MB)\n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Sanity Checking: | | 0/? [00:00 6\u001b[0m explained_variance \u001b[38;5;241m=\u001b[39m \u001b[43mcalculate_explained_variance\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtest_results\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdata_module\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmodel\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 7\u001b[0m model_ves\u001b[38;5;241m.\u001b[39mappend(explained_variance) \u001b[38;5;66;03m# Append explained variance to the list\u001b[39;00m\n\u001b[1;32m 8\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mPrinting test results...\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", - "Cell \u001b[0;32mIn[30], line 23\u001b[0m, in \u001b[0;36mcalculate_explained_variance\u001b[0;34m(test_results, data_module, model)\u001b[0m\n\u001b[1;32m 21\u001b[0m predictions\u001b[38;5;241m.\u001b[39mappend(outputs)\n\u001b[1;32m 22\u001b[0m targets\u001b[38;5;241m.\u001b[39mappend(y)\n\u001b[0;32m---> 23\u001b[0m mse \u001b[38;5;241m=\u001b[39m torch\u001b[38;5;241m.\u001b[39mnn\u001b[38;5;241m.\u001b[39mfunctional\u001b[38;5;241m.\u001b[39mmse_loss(\u001b[43mtorch\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtensor\u001b[49m\u001b[43m(\u001b[49m\u001b[43mpredictions\u001b[49m\u001b[43m)\u001b[49m, torch\u001b[38;5;241m.\u001b[39mtensor(targets))\u001b[38;5;241m.\u001b[39mitem()\n\u001b[1;32m 24\u001b[0m var_y \u001b[38;5;241m=\u001b[39m torch\u001b[38;5;241m.\u001b[39mvar(torch\u001b[38;5;241m.\u001b[39mtensor(targets))\u001b[38;5;241m.\u001b[39mitem() \n\u001b[1;32m 25\u001b[0m explained_variance \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1\u001b[39m \u001b[38;5;241m-\u001b[39m (mse \u001b[38;5;241m/\u001b[39m var_y)\n", - "\u001b[0;31mValueError\u001b[0m: only one element tensors can be converted to Python scalars" - ] - } - ], - "source": [ - "# --- Nonlinear Model ---\n", - "model = get_model(num_tfs)\n", - "trainer = get_trainer()\n", - "trainer.fit(model, data_module)\n", - "test_results = trainer.test(model, datamodule=data_module)\n", - "explained_variance = calculate_explained_variance(test_results, data_module, model)\n", - "model_ves.append(explained_variance) # Append explained variance to the list\n", - "print(\"Printing test results...\")\n", - "print(test_results)\n", - "print(\"Printing explained variance\")\n", - "print(explained_variance)\n", - "\n", - "\n", - "# --- Linear Model ---\n", - "linear_model = get_linear_model(num_tfs)\n", - "trainer = get_trainer()\n", - "trainer.fit(linear_model, data_module)\n", - "test_results = trainer.test(linear_model, datamodule=data_module)\n", - "explained_variance = calculate_explained_variance(test_results, data_module, linear_model)\n", - "linear_model_test_ves.append(explained_variance) # Append explained variance to the list\n", - "print(\"Printing linear model test results\")\n", - "print(test_results)\n", - "print(\"Printing linear model explained variance\")\n", - "print(explained_variance)" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [], - "source": [ - "#NOTE: replaced this kernel with the two above to implement the explained variance\n", - "\n", - "\n", - "# data_module = get_data_module(0.0)\n", - "# num_tfs = sum(data_module.n_sample)\n", - "\n", - "# # nonlinear model\n", - "# model = get_model(num_tfs)\n", - "# trainer = get_trainer()\n", - "# trainer.fit(model, data_module)\n", - "# test_results = trainer.test(model, datamodule=data_module)\n", - "# print(\"Printing test results...\")\n", - "# print(test_results)\n", - "# model_ves.append(test_results[0][\"test_ve\"])\n", - "\n", - "# # linear model\n", - "# linear_model = get_linear_model(num_tfs)\n", - "# trainer = get_trainer()\n", - "# trainer.fit(linear_model, data_module)\n", - "# test_results = trainer.test(linear_model, datamodule=data_module)\n", - "# print(\"Printing linear model test results\")\n", - "# print(test_results)\n", - "# linear_model_test_ves.append(test_results[0][\"test_ve\"])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# **Train models on data generated with normal mean adjustments**" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "GPU available: False, used: False\n", - "TPU available: False, using: 0 TPU cores\n", - "IPU available: False, using: 0 IPUs\n", - "HPU available: False, using: 0 HPUs\n", - "\n", - " | Name | Type | Params\n", - "----------------------------------------------------\n", - "0 | activation | LeakyReLU | 0 \n", - "1 | input_layer | Linear | 704 \n", - "2 | hidden_layers | ModuleList | 2.1 K \n", - "3 | output_layer | Linear | 330 \n", - "4 | dropout | Dropout | 0 \n", - "5 | mae | MeanAbsoluteError | 0 \n", - "6 | SMSE | SMSE | 0 \n", - "----------------------------------------------------\n", - "3.1 K Trainable params\n", - "0 Non-trainable params\n", - "3.1 K Total params\n", - "0.012 Total estimated model params size (MB)\n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Sanity Checking: | | 0/? [00:00" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "data_gen_methods = [\"No Mean Adjustment\", \"Dependent Mean Adjustment\", \"TF Dependent Mean Adjustment\", \"TF Dependent Mean Adjust with Boolean Logic\"]\n", - "plt.figure(figsize=(10, 6))\n", - "plt.scatter(data_gen_methods, model_ves, color='blue')\n", - "plt.scatter(data_gen_methods, linear_model_test_ves, color='orange')\n", - "plt.title('Model VE Comparison (bound mean = 3.0)')\n", - "plt.xlabel('Model')\n", - "plt.ylabel('VE')\n", - "plt.grid(True)\n", - "plt.xticks(rotation=45, ha=\"right\")\n", - "plt.legend(['Complex (Customizable) Model', 'Linear Model'])\n", - "plt.tight_layout() # Adjust layout to make room for the rotated x-axis labels\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 37, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 38, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -2610,22 +28,14 @@ ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "Bound (1) and Unbound (0) Labels for gene 0:\n", - "tensor([0., 0., 0., 1., 1., 1., 1., 1., 0., 1.])\n", - "iteration 5 completed\n", - "iteration 10 completed\n", - "iteration 15 completed\n", - "iteration 20 completed\n", - "iteration 25 completed\n", - "iteration 30 completed\n", - "iteration 35 completed\n", - "iteration 40 completed\n", - "iteration 45 completed\n", - "iteration 50 completed\n" - ] + "data": { + "text/plain": [ + "42" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ @@ -2658,9 +68,24 @@ "from yeastdnnexplorer.data_loaders.synthetic_data_loader import SyntheticDataLoader\n", "from yeastdnnexplorer.ml_models.simple_model import SimpleModel\n", "from yeastdnnexplorer.ml_models.customizable_model import CustomizableModel\n", + "from typing import Tuple, List, Dict, Union\n", "\n", - "seed_everything(42)\n", - "\n", + "seed_everything(42)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Generating the binding data will be the same as always, see `generate_in_silico_data.ipynb`" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ "n_genes = 3000\n", "bound = [0.5, 0.5, 0.5, 0.5, 0.5]\n", "n_sample = [1, 1, 2, 2, 4]\n", @@ -2680,8 +105,24 @@ "# Combine binding data into a tensor\n", "binding_data_combined = [torch.stack((gene_population.labels, binding_effect, binding_pval), dim=1)\n", " for gene_population, binding_effect, binding_pval in zip(gene_populations_list, binding_effect_list, binding_pvalue_list)]\n", - "binding_data_tensor = torch.stack(binding_data_combined, dim=1)\n", + "binding_data_tensor = torch.stack(binding_data_combined, dim=1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we define our experiment, this function will return the average perturbation effects (across n_iterations iterations) for each TF for a specific gene for each of the 4 data generation method we have at our disposal. Due to the randomness in the generated data, we need to find the averages over a number of iterations to get the true common values.\n", "\n", + "We also need to define dictionaries of TF relationships for our third and fourth methods of generating perturbation data, see generate_in_silico_data.ipynb for an explanation of what these represent and how they are used / structured. The documentation in generate_data.py may be helpful as well." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ "# TF relationships\n", "tf_relationships = {\n", " 0: [1],\n", @@ -2709,7 +150,18 @@ " 9: [And(6, And(3, Or(0, 9)))],\n", "}\n", "\n", - "def experiment(n_iterations=10, GENE_IDX=0):\n", + "def experiment(n_iterations: int = 10, GENE_IDX: int = 0) -> Tuple[torch.Tensor, torch.Tensor, torch.Tensor, torch.Tensor]:\n", + " \"\"\"\n", + " Conducts an experiment by generating perturbation effects for a specific gene over multiple iterations\n", + " using different methods and averaging the results.\n", + "\n", + " Params:\n", + " n_iterations (int): Number of iterations to perform.\n", + " GENE_IDX (int): Index of the gene to analyze.\n", + "\n", + " Returns:\n", + " Tuple[torch.Tensor, torch.Tensor, torch.Tensor, torch.Tensor]: Averaged perturbation effects scores for each method.\n", + " \"\"\"\n", " print(\"Bound (1) and Unbound (0) Labels for gene \" + str(GENE_IDX) + \":\")\n", " print(binding_data_tensor[GENE_IDX, :, 0])\n", "\n", @@ -2761,12 +213,128 @@ " dep_mean_adjustment_scores /= n_iterations\n", " boolean_logic_scores /= n_iterations\n", " \n", - " return no_mean_adjustment_scores, normal_mean_adjustment_scores, dep_mean_adjustment_scores, boolean_logic_scores\n", - "\n", + " return no_mean_adjustment_scores, normal_mean_adjustment_scores, dep_mean_adjustment_scores, boolean_logic_scores\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Bound (1) and Unbound (0) Labels for gene 0:\n", + "tensor([0., 0., 0., 1., 1., 1., 1., 1., 0., 1.])\n", + "iteration 5 completed\n", + "iteration 10 completed\n", + "iteration 15 completed\n", + "iteration 20 completed\n", + "iteration 25 completed\n", + "iteration 30 completed\n", + "iteration 35 completed\n", + "iteration 40 completed\n", + "iteration 45 completed\n", + "iteration 50 completed\n" + ] + } + ], + "source": [ "GENE_IDX = 0\n", - "experiment_results = experiment(n_iterations=50, GENE_IDX=GENE_IDX)\n", + "experiment_results = experiment(n_iterations=50, GENE_IDX=GENE_IDX)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we plot our results." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Bound (bound) TFs for gene 0 are: [3, 4, 5, 6, 7, 9]\n", + "Unbound (unbound) TFs for gene 0 are: [0, 1, 2, 8]\n", + "tensor([0., 0., 0., 1., 1., 1., 1., 1., 0., 1.])\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0oAAAIjCAYAAAA9VuvLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAACplklEQVR4nOzdd1gUx/8H8PcB0quIAoKAHbvYReyKNSpiTRRb1ERjibHF2HvXmGiiUTHErmgSe8OIJcaKjdgCiopdQQQEjvn9wff2xxXw7jik+H49D4/e7Nzs3Oze3n52ZmdlQggBIiIiIiIikhjldQWIiIiIiIjyGwZKREREREREKhgoERERERERqWCgREREREREpIKBEhERERERkQoGSkRERERERCoYKBEREREREalgoERERERERKSCgRIREREREZEKBkoG5unpiQ4dOnyQdfXr1w+enp4fZF05sXDhQpQuXRrGxsaoUaMGACAtLQ3jxo2Du7s7jIyM0Llz5zyto7aePHmCwMBAODo6QiaTYdmyZXldJdJg2rRpkMlkOuV9/vx5Ltfq/zVt2hRNmzZVSstq37p9+zZat24NOzs7yGQy7N69+4PVM7+Ljo6GTCZDcHCwlKbLtqeCT9M+kN8kJCSgePHi2LhxY15XpcApKOc5pDtPT0/069dP5/fp+52vX78+xo0bp/P68n2gFBwcDJlMJv2Zm5ujfPnyGD58OJ48eWLQda1cuTLfHWwfPXqEadOm4fLly3ldFYliJ83qb968eVLeQ4cOYdy4cfD19cX69esxZ84cAMC6deuwcOFCBAYGYsOGDRg9erTB67lp0yaDBzKjR4/GwYMHMXHiRISEhKBNmzYGLV+Td+/eYcWKFWjUqBEcHBxgamoKV1dXfPLJJ9i8eTPkcnmu1yGnTp8+jUaNGsHS0hLOzs4YMWIEEhISPmgd5syZkytBRr9+/ZT2f2tra5QuXRqBgYHYuXMn0tPTtSonq30rKCgIV69exezZsxESEoLatWsb/DMYir5tHBkZKR3fX79+bfB6GVJuHFdyi66/H6q/t5n/JkyYkLuVfY+C1O6qli9fDhsbG/Ts2TOvq0KFwKpVq9CtWzeUKlUKMpks22Dj9evXGDx4MJycnGBlZYVmzZrh4sWLGvP+8ccf8PHxgbm5OUqVKoWpU6ciLS3tvfW5ceMGpk2bhujoaD0/0Ycxfvx4/Pjjj3j8+LFubxT53Pr16wUAMWPGDBESEiLWrFkjgoKChJGRkfDy8hJv37412LoqV64smjRpkqMyPDw8RPv27Q1TISHEuXPnBACxfv16tWUpKSkiOTnZYOvSVlRUlAAgevXqJUJCQtT+rl27JuUdP368MDIyEu/evVMqo0ePHqJkyZK5Ws/27dsLDw8Pg5ZZokQJ8emnnxq0zOw8ffpU1KpVSwAQ/v7+YtGiRWLdunVizpw5onnz5tJ3Iz+7dOmSMDc3FzVr1hSrVq0SkyZNEmZmZqJNmza5ts7U1FSRlJSklGZlZSWCgoLU8k6dOlUAEM+ePdNrXUFBQcLMzEza/1evXi0mTZokqlWrJgCIpk2biri4OKX3vHv3Tu07oWnfSkxMFADEpEmT9Krbh5ZVG7/Pt99+K5ydnYWZmZlYs2aN1u9THIsyHx81bXtDyo3jSm7J7vdDE9Xf28x/ly5dytW6vk9W7Z6eni6SkpJEWlrah6+UFlJSUoSTk5OYM2dOXlelQAoKCiow37cPxcPDQxQtWlS0adNGmJiYZHnMlcvlomHDhsLKykpMmzZN/PDDD6JSpUrCxsZG3Lp1Synvvn37hEwmE82aNROrV68WX331lTAyMhJDhw59b322b98uAIiwsDCdPkdycrJISUnR6T1CaD7ua0MulwtnZ2cxefJknd5nYrBQLZe1bdtWupI6aNAgODo6YsmSJfj999/Rq1evHJWdmJgIS0tLQ1TzgypSpEiert/HxwefffZZtnmePn0KCwsLmJqaqqXb29vnYu1yh6HrnZycDFNTUxgZae7c7dOnDy5duoSdO3ciICBAadnEiRNx/vx53Lx502D1yQ3ffvstHBwccPz4cdja2gLI6HL//PPPcejQIbRu3drg6zQxMYGJyYc7vJmYmKh9F2bNmoV58+Zh4sSJ+Pzzz7F161Zpmer3AdC8bz179gwAPug+96EJIbBp0yb07t0bUVFR2LhxIwYNGqR3eR962xdGmX9v8ztFT2R+tWfPHjx79gzdu3fP66pk6e3bt7CyssrrauRr+amN/vrrL6k3ydraOst8O3bswOnTp7F9+3YEBgYCALp3747y5ctj6tSp2LRpk5T3m2++QbVq1XDo0CHp+Glra4s5c+Zg5MiRqFixokHqLoRAcnIyLCwsYGZmZpAytWVkZITAwED8+uuvmD59uvZDtHUKq/KA4grXuXPnlNL37NkjAIjZs2dLaSEhIcLHx0eYm5sLBwcH0aNHD3H//n2l9zVp0kRUrlxZnD9/Xvj5+QkLCwsxcuRI4eHhIQAo/Sl6lxRXnLOqW1RUlJSm6FE6ePCgqF69ujAzMxPe3t5i586dSu998eKFGDNmjKhSpYqwsrISNjY2ok2bNuLy5ctSnrCwMLU6IVMUrelKS0JCgvj666+Fm5ubMDU1FeXLlxcLFy4U6enpSvkAiGHDholdu3aJypUrC1NTU1GpUiWxf//+bLeHEP8fzS9cuDDbfFnVXVO64kqEXC4XS5cuFZUqVRJmZmaiePHiYvDgweLly5dq5e/bt080btxYWFtbCxsbG1G7dm2xceNGIUTGdlZdR+a2+v7770WlSpWEhYWFsLe3F7Vq1ZLeq0lW9Va4e/euCAwMFA4ODsLCwkLUq1dP7NmzR6kMxfbcvHmzmDRpknB1dRUymUy8evVK4zpPnz4tAGh1RSez5ORkMWXKFFGmTBlhamoq3NzcxNixY9V6H3XZBx48eCD69+8vihcvLuVbu3bte+sSFxcnTExMxNixY5XS3717J6ytrcXAgQOzfG96erpwdHQUo0ePltLkcrmws7MTRkZGSu02b948YWxsLN68eSOEUP/Oatp2iqtwiry3b98WQUFBws7OTtja2op+/fpp1WMdFBQkrKysslzeunVrIZPJxM2bN6W0Jk2aSMeXrPYtRb2y2oe12Sbv2+f+/vtv4e/vL2xtbYWFhYVo3LixOHnypFIZ2rZPdm2cnfDwcAFA/PPPP2Lr1q3CyMhIxMTEqOV79eqVCAoKEra2tsLOzk707dtXXLp0Se3Kouq2z+7qo6KdFeLj46XfA1NTU+Hk5CRatmwpLly4IITI/riiaOutW7eKadOmCVdXV2FtbS26du0qXr9+LZKTk8XIkSOFk5OTsLKyEv369dM4IkCX37Hr16+Lpk2bCgsLC+Hq6irmz58v5Xnf74cmWf3eZtdmCh4eHkrbW1HWyZMnxejRo0WxYsWEpaWl6Ny5s3j69Kna+/U9nme1fY8ePSoaNWokLC0thZ2dnfjkk0/EjRs3lPLo8t0/dOiQ8PX1FXZ2dsLKykqUL19eTJw4Mct2Uujbt6/w9PRUS4+IiBBBQUHCy8tLmJmZiRIlSoj+/fuL58+fS3kUV+qPHz+u9v6ffvpJABBXr16V0iIjI0XXrl2Fg4ODMDMzE7Vq1RK///670vsU2+X48ePiiy++EE5OTsLe3l4IIUR0dLT44osvRPny5YW5ubkoWrSoCAwMVDrHyVz/xo0bC3Nzc1GyZEkxc+ZMsW7dOrVzIiEytq1iW1hbW4t27dopjTxRUPwWmZmZicqVK4vQ0FCte5R2794t2rVrJ1xcXISpqakoXbq0mDFjhsaexr///lu0bdtW2NvbC0tLS1G1alWxbNkyabnimH7nzh3Rtm1bYW1tLTp16iSE0P4cS5v9RdfzEE2y68Xv1q2bKFGihJDL5UrpgwcPFpaWltLx5/r16wKA+PHHH5XyPXz4UAAQM2fOzHL97zunU5wTHzhwQNSqVUuYmZmJpUuXSssy112b82IhNH/nY2NjRb9+/UTJkiWFqampcHZ2Fp988onavvj7778LAOLixYtZfiZVBfay2927dwEAjo6OAIDZs2dj8uTJ6N69OwYNGoRnz55hxYoVaNy4MS5duqR0RfbFixdo27Ytevbsic8++wwlSpRA06ZN8dVXX8Ha2hqTJk0CAJQoUUKvut2+fRs9evTA0KFDERQUhPXr16Nbt244cOAAWrVqBQD477//sHv3bnTr1g1eXl548uQJfv75ZzRp0gQ3btyAq6srvL29MWPGDEyZMgWDBw+Gn58fAKBhw4Ya1yuEwCeffIKwsDAMHDgQNWrUwMGDBzF27Fg8fPgQS5cuVcp/8uRJhIaG4ssvv4SNjQ2+//57dO3aFffv35faNTuJiYkab4C3t7eHiYkJQkJCsHr1avzzzz/45ZdfAAA1a9ZESEgIZs+ejYSEBMydOxcA4O3tDQAYMmQIgoOD0b9/f4wYMQJRUVH44YcfcOnSJZw6dUrqRQsODsaAAQNQuXJlTJw4Efb29rh06RIOHDiA3r17Y9KkSYiLi8ODBw+kz6248rJmzRqMGDECgYGBGDlyJJKTk3HlyhWcPXsWvXv31vhZGzdujJCQEPTp0wetWrVC3759pWVPnjxBw4YNkZiYiBEjRsDR0REbNmzAJ598gh07dqBLly5KZc2cOROmpqb45ptv8O7dO429CwDw559/AsB7e+0yS09PxyeffIKTJ09i8ODB8Pb2xtWrV7F06VLcunVL7f4RbfaBJ0+eoH79+pDJZBg+fDicnJywf/9+DBw4EPHx8Rg1alSW9bl69SrS0tLUrk6bmpqiRo0auHTpUpbvlclk8PX1xYkTJ6S0K1euIC4uDkZGRjh16hTat28PAAgPD0fNmjWzvLoWEhKCQYMGoW7duhg8eDAAoEyZMkp5unfvDi8vL8ydOxcXL17EL7/8guLFi2P+/PlZ1lEbffr0waFDh3D48GGUL19ebXlW+1a1atVgb2+P0aNHo1evXmjXrp30+XTdJpr2uWPHjqFt27aoVasWpk6dCiMjI6xfvx7NmzdHeHg46tatq1P7aNPGmmzcuBFlypRBnTp1UKVKFVhaWmLz5s0YO3aslEcIgU6dOuHkyZMYOnQovL29sWvXLgQFBWm/IbQwdOhQ7NixA8OHD0elSpXw4sULnDx5EpGRkfDx8cn2uKIwd+5cWFhYYMKECbhz5w5WrFiBIkWKwMjICK9evcK0adPw999/Izg4GF5eXpgyZYr0Xl1+x169eoU2bdogICAA3bt3x44dOzB+/HhUrVoVbdu21fn3I7O4uDi1Y3uxYsX0atOvvvoKDg4OmDp1KqKjo7Fs2TIMHz5cqYc1J8dzTY4cOYK2bduidOnSmDZtGpKSkrBixQr4+vri4sWLapMDvG/fvn79Ojp06IBq1aphxowZMDMzw507d3Dq1Kn3fv7Tp0/Dx8dHLf3w4cP477//0L9/fzg7O+P69etYvXo1rl+/jr///hsymQzt27eHtbU1tm3bhiZNmii9f+vWrahcuTKqVKki1dHX1xclS5bEhAkTYGVlhW3btqFz587YuXOn2u/Ql19+CScnJ0yZMgVv374FAJw7dw6nT59Gz5494ebmhujoaKxatQpNmzbFjRs3pJE3Dx8+RLNmzSCTyTBx4kRYWVnhl19+0dhDEBISgqCgIPj7+2P+/PlITEzEqlWr0KhRI1y6dEnaFocOHULXrl1RqVIlzJ07Fy9evED//v3h5ub23jYGMvYha2trfP3117C2tsaxY8cwZcoUxMfHY+HChUrt3qFDB7i4uGDkyJFwdnZGZGQk9uzZg5EjR0r50tLS4O/vj0aNGmHRokWwtLTU+hxLm/1Fn/MQXV26dAk+Pj5qowfq1q2L1atX49atW6hatar0O6z6O+3q6go3N7dsf6cbN26MESNG4Pvvv8e3334rncsp/gWAmzdvolevXhgyZAg+//xzVKhQQWNZ2pwXZ6Vr1664fv06vvrqK3h6euLp06c4fPgw7t+/r/R9r1WrFgDg1KlTqFmzZpblKdE6pMojimj1yJEj4tmzZyImJkZs2bJFODo6CgsLC/HgwQMRHR0tjI2NlXqXhBDi6tWrwsTERCldcWXqp59+UltXVvco6dqjBECpBykuLk64uLiImjVrSmnJyclqUX5UVJQwMzNTuuckuzHmqldadu/eLQCIWbNmKeULDAwUMplM3LlzR0oDIExNTZXSIiIiBACxYsUKtXWp1hMariAo/s6cOaNUR01X2xVXRDNTXFlWvaJy4MABpfTXr18LGxsbUa9ePbV7ETJf1clqTHunTp3U1q0t/K8XJrNRo0YJACI8PFxKe/PmjfDy8hKenp7SdlZc4S1durRITEx877q6dOkiAIjXr18rpSclJYlnz55Jf5l7VkJCQoSRkZFSXYT4/6uPp06dUvos2uwDAwcOFC4uLkpXOoUQomfPnsLOzi7bz6K4InrixAm1Zd26dRPOzs7ZtsHChQuFsbGxiI+PF0JkXIHz8PAQdevWFePHjxdCZPQy2dvbK/U8afrOvu8epQEDBiild+nSRTg6OmZbPyHe36Ok6PXIXL/MPUoKmvatrHpvtd0mWe1z6enpoly5csLf31/pO5OYmCi8vLxEq1atpDRd2kfXe5RSUlKEo6Oj0j1YvXv3FtWrV1fKpzi2LViwQEpLS0sTfn5+Bu1RsrOzU9sGqrI6rijaukqVKkrj7nv16iVkMplo27atUv4GDRoolaPP79ivv/4qpb179044OzuLrl27Smn63qOk6U9Btc0UsupRatmypdI+Nnr0aGFsbCwd13J6PNe0fWvUqCGKFy8uXrx4IaVFREQIIyMj0bdvXylN23176dKlAtD9PsbU1FQhk8nEmDFj1JZpOm5u3rxZ7XjZq1cvUbx4caWekdjYWGFkZKR0rtCiRQtRtWpVpV7K9PR00bBhQ1GuXDkpTbFdGjVqpNbboqlOZ86cUdvXvvrqKyGTyZTuW3vx4oUoWrSo0jnRmzdvhL29vfj888+Vynz8+LGws7NTSq9Ro4ZwcXFR+r07dOiQWk96VjTVfciQIUo9J2lpacLLy0t4eHiojeTIvK8FBQUJAGLChAlKebQ9x9Jmf8nJeUhm2R1zrays1PZtIYTYu3evACAOHDgghMj4nQWg1nMthBB16tQR9evXz7YO2d2jpDgnVqxLdVnmumt7Xqz6nX/16pXG38msmJqaii+++EKrvEIIkT8GqWuhZcuWcHJygru7O3r27Alra2vs2rULJUuWRGhoKNLT09G9e3c8f/5c+nN2dka5cuUQFhamVJaZmRn69++fa3V1dXVVunpja2uLvn374tKlS9JsG2ZmZlKUL5fL8eLFC1hbW6NChQpZzkjyPvv27YOxsTFGjBihlD5mzBgIIbB//36l9JYtWypd8a1WrRpsbW3x33//abW+wYMH4/Dhw2p/lSpV0qv+27dvh52dHVq1aqW0HWvVqgVra2tpOx4+fBhv3rzBhAkT1MamazPm1N7eHg8ePMC5c+f0qqeqffv2oW7dumjUqJGUZm1tjcGDByM6Oho3btxQyh8UFAQLC4v3lhsfHy+VldlPP/0EJycn6S/zerdv3w5vb29UrFhRqQ2bN28OAGrfhfftA0II7Ny5Ex07doQQQqlMf39/xMXFZbu/JiUlAYDGK43m5ubS8qz4+flBLpfj9OnTADJ6jvz8/ODn54fw8HAAwLVr1/D69Wvpirm+hg4dqrbuFy9eSNtBX4rt9+bNmxyVo6DPNlHd5y5fvozbt2+jd+/eePHihfT+t2/fokWLFjhx4oTabH250T779+/HixcvlO4z7dWrFyIiInD9+nUpbd++fTAxMcEXX3whpRkbG+Orr77Se92a2Nvb4+zZs3j06JHeZfTt21fp/tF69epBCIEBAwYo5atXrx5iYmKkWaV0/R2ztrZW6m02NTVF3bp1tT5+Z+fHH39UO67ra/DgwUrHZcV3+t69ewByfjxXFRsbi8uXL6Nfv34oWrSolF6tWjW0atUK+/btU3vP+/ZtRU/e77//rvUslgDw8uVLCCHg4OCgtizz9zE5ORnPnz9H/fr1AUDp+9ujRw88ffoUx48fl9J27NiB9PR09OjRQ1rPsWPH0L17d7x580bad168eAF/f3/cvn0bDx8+VFr/559/DmNj4yzrlJqaihcvXqBs2bKwt7dXqtOBAwfQoEED6XEfAFC0aFF8+umnSuUdPnwYr1+/Rq9evZT2aWNjY9SrV0/apxXbLCgoCHZ2dtL7W7VqpfX5ROa6K9rAz88PiYmJ+PfffwFk9LBERUVh1KhRavd9atrXMh9vAO3PsbTZXwx9HqJJUlJSlr+9iuWZ/9X3d/p9vLy84O/v/958+p4XK+6DP378OF69evXe9Tg4OOj0OJACM/Tuxx9/RPny5WFiYoISJUqgQoUKUoPevn0bQgiUK1dO43tVJz0oWbJklsOdDKFs2bJqXzrFkJvo6Gg4OzsjPT0dy5cvx8qVKxEVFaU0xbM2w940uXfvHlxdXWFjY6OUrugCVfwwKZQqVUqtDAcHB612NAAoV64cWrZsqVddNbl9+zbi4uJQvHhxjcufPn0K4P+HXSqGHOhq/PjxOHLkCOrWrYuyZcuidevW6N27N3x9ffUq7969e6hXr55aeuZ2z1xXLy8vrcpVbMeEhASlH4+uXbtK5Y0ZM0Zp37l9+zYiIyPh5OSksUxFGyq8bx949uwZXr9+jdWrV2P16tValZmZ4sfr3bt3assUN3Rmx8fHB5aWlggPD4e/vz/Cw8Mxffp0ODs7Y8WKFUhOTpYCpswBoz5U20JxcvPq1StpEgp9KKZBV/1e6kufbaK6z92+fRsAsh26FhcXp3SClxvt89tvv8HLy0samgJkDNeztLTExo0bpccJ3Lt3Dy4uLmoXDbIawqGvBQsWICgoCO7u7qhVqxbatWuHvn37onTp0lqXodpOiu+uu7u7Wnp6ejri4uLg6Oio8++Ym5ub2u+Mg4MDrly5onVds1K3bl2DTeaQ3X4D5Px4rkrxO6dp3/D29sbBgwfVbsx/377do0cP/PLLLxg0aBAmTJiAFi1aICAgAIGBgVpNiiKEUEt7+fIlpk+fji1btqh9X+Pi4qT/t2nTBnZ2dti6dStatGgBIGPYXY0aNaTzijt37kAIgcmTJ2Py5Mka6/D06VOULFlSeq3pdygpKQlz587F+vXr8fDhQ6V6Z67TvXv30KBBA7X3ly1bVum14jijuFCnSnHcUGwzTfu+thePr1+/ju+++w7Hjh1Tu3ijqLsu+5qJiYnasD9tz7G02V8MfR6iiYWFRZa/vYrlmf/V93f6fbQ959H3vNjMzAzz58/HmDFjUKJECdSvXx8dOnRA37594ezsrJZfCKHTRZgCEyhld+BOT0+HTCbD/v371a6QAOpX5HXd6Fk1aE6eXzNnzhxMnjwZAwYMwMyZM1G0aFEYGRlh1KhROl2xyglNbQVoPqh/COnp6dk+lC+rk39deXt74+bNm9izZw8OHDiAnTt3YuXKlZgyZQqmT59ukHVkR9v9TzHLzLVr15QOnu7u7tJJl+qVkfT0dFStWhVLlizRWKbqydr79gHFvvjZZ59leVJdrVq1LD+Di4sLgIwrhqpiY2OzHXMMZJwc1qtXDydOnMCdO3fw+PFj+Pn5oUSJEkhNTcXZs2cRHh6OihUr5nj/yK3vw7Vr1wCon0ToS59torrPKcpYuHCh0lXhzFSPm4Zun/j4ePz5559ITk7WeIK0adMmzJ49O8cPj9Xl+N29e3f4+flh165dOHToEBYuXIj58+cjNDQUbdu21Wp9WbWTNt81XX7H8tvxO6vfw/xWT03eV0cLCwucOHECYWFh2Lt3Lw4cOICtW7eiefPmOHToUJbvL1q0KGQymcaLj927d8fp06cxduxY1KhRA9bW1khPT0ebNm2UzgHMzMzQuXNn7Nq1CytXrsSTJ09w6tQp6SIC8P/f52+++SbLK/eqxx9Nv0NfffUV1q9fj1GjRqFBgwbSQ6579uyp13mJ4j0hISEaT1gNNTvl69ev0aRJE9ja2mLGjBkoU6YMzM3NcfHiRYwfP16vumfu3dCVNvvLhzgPcXFxyfK3F4D0+5v5d1r1HCE2NlbtflVdaXvOk5Pz4lGjRqFjx47YvXs3Dh48iMmTJ2Pu3Lk4duyY2r1Ir1+/1umeywITKGWnTJkyEELAy8tL483S2srqB1Vxden169dK3bWqPTQKiqs7mcu7desWAEg3le3YsQPNmjXD2rVrld6rugF1OUnw8PDAkSNH8ObNG6UrHopuZw8PD63LygtlypTBkSNH4Ovrm+0XSzFU7Nq1a9mefGbXdlZWVujRowd69OiBlJQUBAQEYPbs2Zg4caLOU816eHhonKI7p+3eoUMHzJs3Dxs3btT6KlOZMmUQERGBFi1a5PgEE8gITm1sbCCXy/XqPaxSpQpMTExw/vx5pelxU1JScPnyZa2mzPXz88P8+fNx5MgRFCtWDBUrVoRMJkPlypURHh6O8PBwdOjQ4b3lGKI99BESEgKZTCZN5JJTOd0mwP9/h2xtbQ3aK6xLG4eGhiI5ORmrVq1S+9G6efMmvvvuO5w6dQqNGjWCh4cHjh49ioSEBKWAQZup8TMfvzPL6vjt4uKCL7/8El9++SWePn0KHx8fzJ49WwqUcms/MtTvWGa5UVcHBwe1tkxJSdF4QqYNQxzPM1Mcb7M6JhcrVkyvaZ6NjIzQokULtGjRAkuWLMGcOXMwadIkhIWFZfkdMjExQZkyZRAVFaWU/urVKxw9ehTTp09XmsxD0QOjqkePHtiwYQOOHj2KyMhICCGkYXcApB7PIkWK5Oj7vGPHDgQFBWHx4sVSWnJystr29vDwkHqAM1NNU2zb4sWLZ1svxTbT9Pm1+Y4fP34cL168QGhoKBo3biylq7Z75n1Nn3bS5RxLm/3FkOchmtSoUQPh4eFIT09XCvrOnj0LS0tL6TijuFh2/vx5paDo0aNHePDggTQ5T1YMdZzR9rw4K2XKlMGYMWMwZswY3L59GzVq1MDixYvx22+/SXkePnyIlJQUpckm3qfA3KOUnYCAABgbG2P69OlqV6mEEHjx4oVW5VhZWWl8Krziy5V59q23b99iw4YNGst59OgRdu3aJb2Oj4/Hr7/+iho1akhXVYyNjdXqun37drVxxIoDujZPq2/Xrh3kcjl++OEHpfSlS5dCJpNpfUU0r3Tv3h1yuRwzZ85UW5aWlia1QevWrWFjY4O5c+dKXcgKmdvUyspKabiAgur+YGpqikqVKkEIgdTUVJ3r3a5dO/zzzz84c+aMlPb27VusXr0anp6eet+z5evri1atWmH16tX4/fffNeZR3Ye6d++Ohw8fYs2aNWp5k5KSpNmNtGVsbIyuXbti586dUs9IZorn/GTFzs4OLVu2xG+//aZ0j05ISAgSEhLQrVu399bBz88P7969w7Jly9CoUSPpoOzn54eQkBA8evRIq/uTsvp+56Z58+bh0KFD6NGjR5ZDqnSV020CZMz8U6ZMGSxatEgaGqhrGZro0sa//fYbSpcujaFDhyIwMFDp75tvvoG1tbXUu9yuXTukpaVh1apV0vvlcjlWrFjx3vXY2tqiWLFiSsdvAFi5cqXSa7lcrna8KF68OFxdXZWGpGR1XMkpQ/2OZabL74e2ypQpo9aWq1ev1nuERU6P56pcXFxQo0YNbNiwQelzX7t2DYcOHUK7du10ruPLly/V0hQnl5qGK2XWoEEDnD9/XilN0QOlup2XLVumsYyWLVuiaNGi2Lp1K7Zu3Yq6desqDWcqXrw4mjZtip9//lljwKrt91nTecmKFSvUtq2/vz/OnDmDy5cvS2kvX75UGw3i7+8vPYtH02+rol6Zt1nmbXz48GG1e3yzqjeg3J4pKSlq33EfHx94eXlh2bJlat8JbXo4tT3H0mZ/MfR5iCaBgYF48uQJQkNDpbTnz59j+/bt6Nixo3RPUuXKlVGxYkW17/GqVasgk8mkZzBlxVDHGW3Pi1UlJiaqHTvKlCkDGxsbte/nhQsXAGg3+6dCoelRmjVrFiZOnIjo6Gh07twZNjY2iIqKwq5duzB48GB888037y2nVq1aWLVqFWbNmoWyZcuiePHiaN68OVq3bo1SpUph4MCBGDt2LIyNjbFu3To4OTnh/v37auWUL18eAwcOxLlz51CiRAmsW7cOT548wfr166U8HTp0wIwZM9C/f380bNgQV69excaNG9XGwpcpUwb29vb46aefYGNjAysrK9SrV0/jmM+OHTuiWbNmmDRpEqKjo1G9enUcOnQIv//+O0aNGqXVVL26uHjxolKknrnOmsYvv0+TJk0wZMgQzJ07F5cvX0br1q1RpEgR3L59G9u3b8fy5csRGBgIW1tbLF26FIMGDUKdOnXQu3dvODg4ICIiAomJiVIAW6tWLWzduhVff/016tSpA2tra3Ts2BGtW7eGs7MzfH19UaJECURGRuKHH35A+/bt9bqPZMKECdi8eTPatm2LESNGoGjRotiwYQOioqKwc+fOHD3Y87fffkObNm3QuXNntG3bFi1btoSDgwMeP36MI0eO4MSJE0oBcJ8+fbBt2zYMHToUYWFh8PX1hVwux7///ott27bh4MGDOt97MG/ePISFhaFevXr4/PPPUalSJbx8+RIXL17EkSNHNP4oZDZ79mw0bNgQTZo0weDBg/HgwQMsXrwYrVu3Rps2bd67/gYNGsDExAQ3b95UurLVuHFj6cRZm0CpVq1aOHLkCJYsWQJXV1d4eXlpvLdMH2lpadJ3ITk5Gffu3cMff/yBK1euoFmzZlneS6SvnG4TIyMj/PLLL2jbti0qV66M/v37o2TJknj48CHCwsJga2srTU+vC23b+NGjRwgLC1O7KVrBzMwM/v7+2L59O77//nt07NgRvr6+mDBhAqKjo1GpUiWEhoZqHbAMGjQI8+bNw6BBg1C7dm2cOHFC6uVXePPmDdzc3BAYGIjq1avD2toaR44cwblz55SusGd1XMkpQ/2OqZap7e+HtgYNGoShQ4eia9euaNWqFSIiInDw4EG9pw/P6fFck4ULF6Jt27Zo0KABBg4cKE0Pbmdnh2nTpulcxxkzZuDEiRNo3749PDw88PTpU6xcuRJubm7vvTeyU6dOCAkJwa1bt6Qr+La2tmjcuDEWLFiA1NRUlCxZEocOHVLrAVEoUqQIAgICsGXLFrx9+xaLFi1Sy/Pjjz+iUaNGqFq1Kj7//HOULl0aT548wZkzZ/DgwQNERES893N26NABISEhsLOzQ6VKlXDmzBkcOXJE7f6QcePG4bfffkOrVq3w1VdfSdODlypVCi9fvpQuZtna2mLVqlXo06cPfHx80LNnT+m8ae/evfD19ZWCjrlz56J9+/Zo1KgRBgwYgJcvX2LFihWoXLmyxos5mTVs2BAODg4ICgrCiBEjIJPJEBISonbSbWRkhFWrVqFjx46oUaMG+vfvDxcXF/z777+4fv06Dh48mO16tD3H0mZ/ycl5yJ9//iltz9TUVFy5cgWzZs0CAHzyySfS0OvAwEDUr18f/fv3x40bN1CsWDGsXLkScrlcbXjfwoUL8cknn6B169bo2bMnrl27hh9++AGDBg16b+9LjRo1YGxsjPnz5yMuLg5mZmZo3rx5lvebZ0Xb82JVt27dQosWLdC9e3dUqlQJJiYm2LVrF548eYKePXsq5T18+DBKlSql/dTgQMGZHjy7B+Ap7Ny5UzRq1EhYWVkJKysrUbFiRTFs2DC1Bz1mNSXj48ePRfv27YWNjY0AoDR974ULF0S9evWEqampKFWqlFiyZMl7HzhbrVo1YWZmJipWrCi2b9+utK7k5GQxZswY4eLiIiwsLISvr684c+aMxmmDf//9d1GpUiVhYmKiNCWipgexvXnzRowePVq4urqKIkWKiHLlymX7wFlVqtM1avK+6cEzv1+X6cEVVq9eLWrVqiUsLCyEjY2NqFq1qhg3bpx49OiRUr4//vhDNGzYUFhYWAhbW1tRt25dsXnzZml5QkKC6N27t7C3t1eaYvTnn38WjRs3Fo6OjsLMzEyUKVNGjB07VsTFxWX7uYXIut0UD5y1t7cX5ubmom7dulk+cFZ1X3ifpKQksWzZMtGgQQNha2srTExMhLOzs+jQoYPYuHGj2hSvKSkpYv78+dKD+xwcHEStWrXE9OnTlT6jLvvAkydPxLBhw4S7u7soUqSIcHZ2Fi1atBCrV6/W6jOEh4eLhg0bCnNzc+Hk5CSGDRsmTfmtjTp16ggA4uzZs1LagwcPBADh7u6ull/T9OD//vuvaNy4sbCwsFDaTxV5Vady1fT91kQxlaziz9LSUnh6eoquXbuKHTt2qE13KkTOpwcXQrtt8r597tKlSyIgIED6Lnh4eIju3buLo0ePSnl0aZ+s2ljV4sWLBQCl9agKDg4WAKQHZr548UL06dNHeuBsnz59tHrgrBAZUwcPHDhQ2NnZCRsbG9G9e3fx9OlTpamu3717J8aOHSuqV68ubGxshJWVlahevbpYuXKlUllZHVeyauusfsOyatec/I5p+k3I6vdDE21+b+VyuRg/frz0AFl/f39x586dLKcHVy1L0U6qUwnrezzPavr3I0eOCF9fX6m8jh07ZvnA2fft20ePHhWdOnUSrq6uwtTUVLi6uopevXqJW7duZdlOCu/evRPFihVTe2jngwcPRJcuXYS9vb2ws7MT3bp1E48ePcpy+vXDhw8LAEImk2l8ILMQGb9Dffv2Fc7OzqJIkSKiZMmSokOHDmLHjh1qn03TNn716pXo37+/KFasmLC2thb+/v7i33//1fibcOnSJeHn5yfMzMyEm5ubmDt3rvj+++8FAPH48WOlvGFhYcLf31/Y2dkJc3NzUaZMGdGvXz9x/vx5pXw7d+4U3t7ewszMTFSqVEmnB86eOnVK1K9fX3r48rhx48TBgwc17msnT54UrVq1kr7n1apVU3okRnaPfNDmHEub/SUn5yGqvzmZ/1S/By9fvhQDBw4Ujo6OwtLSUjRp0iTL7/euXbtEjRo1pG363XffKT3qIDtr1qwRpUuXFsbGxkptrjgn1kTT9ODanBerfuefP38uhg0bJipWrCisrKyEnZ2dqFevnti2bZvS+uRyuXBxcRHfffedVp9JQSZEPrqjkoiIKAcUN/Eqpt0mymszZ87E+vXrcfv27SwnfigMRo0ahZ9//hkJCQmF+nNSwbR792707t0bd+/elSaw0EahuEeJiIgIyJilSd9hYES5YfTo0UhISMCWLVvyuioGo/psnRcvXiAkJASNGjVikET50vz58zF8+HCdgiSgkNyjREREH7f//vsPu3btwvbt27WaBZHoQ7G2ts72eXMFUYMGDdC0aVN4e3vjyZMnWLt2LeLj47N8jhNRXss84ZYuGCgREVGBd+LECUyfPh1NmzbN8jliRGQY7dq1w44dO7B69WrIZDL4+Phg7dq1StNzExUGvEeJiIiIiIhIBe9RIiIiIiIiUsFAiYiIiIiISEWBvkcpPT0djx49go2NjfSAMyIiIiIi+vgIIfDmzRu4urrCyCjn/UEFOlB69OgR3N3d87oaRERERESUT8TExMDNzS3H5RToQMnGxgZARmPY2trmaV1SU1Nx6NAhtG7dGkWKFMnTuhQ0bDv9sN30w3bTH9tOP2w3/bDd9MN20x/bTj/5qd3i4+Ph7u4uxQg5VaADJcVwO1tb23wRKFlaWsLW1jbPd5KChm2nH7abfthu+mPb6Yftph+2m37Ybvpj2+knP7aboW7J4WQOREREREREKhgoERERERERqWCgREREREREpIKBEhERERERkQoGSkRERERERCoYKBEREREREalgoERERERERKSCgRIREREREZEKBkpEREREREQqGCgRERERERGpYKBERERERESkgoESERERERGRCgZKREREREREKhgoEdHHI10OPD2Z8f+nJzNeExEREWnAQImIPg4xocAfnsBf7TNe/9U+43VMaF7WioiIiPIpBkpEVPjFhALhgUDiA+X0xIcZ6QyWiIiISAUDJSIq3NLlwIWRAISGhf9LuzCKw/CIiIhICQMlIircnoWr9yQpEUBiTEY+IiIiov9hoEREhVtSrGHzERER0UeBgRIRFW4WLobNR0RERB8FBkpEVLg5+QGWbgBkWWSQAZbuGfmIDI1T0hMRFVgMlIiocDMyBmot/98L1WDpf69rLcvIR2RInJKeiKhAY6BERIWfewDgtwOwLKmcbumWke4ekDf1osKLU9ITERV4JnldASKiD8I9ACjZCYg9AZyPB5rsBVwasyeJDO+9U9LLMqakL9mJ+x8RUT7GHiUi+ngYGQPFG2X8v3gjnqRS7uCU9EREhQIDJSIiIkPilPRERIUCAyUiIiJD4pT0RESFAgMlIiIiQ+KU9EREhQIDJSIiIkPilPRERIUCAyUiIiJD45T0REQFHqcHJyIiyg2ckp6IqEBjjxIREVFu4ZT0REQFFgMlIiIiIiIiFQyUiIiIiIiIVDBQIiIiIiIiUsFAiYiIiIiISAUDJSIiIiIiIhUMlIiIiIiIiFQwUCIioveSy4GTJzP+f/JkxmsiIqLCjIESERFlKzQU8PQE2rfPeN2+fcbr0NC8rBUREVHuYqBERERZCg0FAgOBBw+U0x8+zEhnsERERIUVAyUiItJILgdGjgSEUF+mSBs1isPwiIiocGKgREREGoWHq/ckZSYEEBOTkY+IiKiwYaBEREQaxcYaNh8R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WB67YZLXFSAiIiIiooIlIADo1Ak4cQKIj8947EbjxoWjJ0mBPUpERERERKSzwv7YDQZKREREREREKhgoERERERERqWCgREREREREpIKBEhERERERkQoGSkRERERERCoYKBEREREREalgoERERERERKSCgRIREREREZEKBkpEREREREQqGCgRERERERGpYKBERERERESkgoESERERERGRCgZKREREREREKhgoERERERERqWCgREREREREpIKBEhERERERkQoGSkRERERERCoYKBEREREREalgoERERERERKSCgRIREREREZEKBkpEREREREQqGCgRERERERGpYKBERERERESkgoESERERERGRCgZKREREREREKhgoERERERERqWCgREREREREpIKBEhERERERkQoGSkRERERERCoYKBEREREREalgoERERERERKSCgRIREREREZEKBkpEREREREQqGCgRERERERGpYKBERERERESkgoESERERERGRCgZKREREREREKhgoERERERERqWCgREREREREpIKBEhERERERkQoGSkRERERERCoYKBEREREREalgoERERERERKSCgRIREREREZEKBkpEREREREQqGCgRERERERGpYKBERERERESkgoESERERERGRCgZKREREREREKhgoERERERERqWCgREREREREpIKBEhERERERkQoGSkRERERERCoYKBEREREREalgoERERERERKSCgRIREREREZEKBkpEREREREQqGCgRERERERGpYKBERERERESkgoESERERERGRCgZKREREREREKhgoERERERERqWCgREREREREpIKBEhERERERkQoTbTI5ODhAJpNpVeDLly9zVCEiIiIiIqK8plWgtGzZslyuBhERERERUf6hVaAUFBSU2/UgIiIiIiLKN7QKlLKSnJyMlJQUpTRbW9scVYiIiIiIiCiv6TyZw9u3bzF8+HAUL14cVlZWcHBwUPojIiIiIiIq6HQOlMaNG4djx45h1apVMDMzwy+//ILp06fD1dUVv/76a27UkYiIiIiI6IPSeejdn3/+iV9//RVNmzZF//794efnh7Jly8LDwwMbN27Ep59+mhv1JCIiIiIi+mB07lF6+fIlSpcuDSDjfiTFdOCNGjXCiRMnDFs7IiIiIiKiPKBzoFS6dGlERUUBACpWrIht27YByOhpsre317kCDx8+xGeffQZHR0dYWFigatWqOH/+vM7lEBERERERGYrOQ+/69++PiIgINGnSBBMmTEDHjh3xww8/IDU1FUuWLNGprFevXsHX1xfNmjXD/v374eTkhNu3b3NSCCIiIiIiylNaB0rffPMNBg0ahNGjR0tpLVu2xL///osLFy6gbNmyqFatmk4rnz9/Ptzd3bF+/XopzcvLS6cyiIiIiIiIDE3rQOn333/H0qVLUa9ePQwaNAg9evSAlZUVPDw84OHhodfK//jjD/j7+6Nbt27466+/ULJkSXz55Zf4/PPPNeZ/9+4d3r17J72Oj48HAKSmpiI1NVWvOhiKYv15XY+CiG2nH7abfthu+mPb6Yftph+2m37Ybvpj2+knP7WboesgE0IIbTOfOHEC69atw86dOwEA3bp1w6BBg9CwYUO9Vm5ubg4A+Prrr9GtWzecO3cOI0eOxE8//YSgoCC1/NOmTcP06dPV0jdt2gRLS0u96kBERERERAVfYmIievfujbi4ONja2ua4PJ0CJYW3b99i69atWL9+PU6dOoUKFSpg4MCB6NOnD0qUKKF1OaampqhduzZOnz4tpY0YMQLnzp3DmTNn1PJr6lFyd3fH8+fPDdIYOZGamorDhw+jVatWKFKkSJ7WpaBh2+mH7aYftpv+2Hb6Ybvph+2mH7ab/th2+slP7RYfH49ixYoZLFDSeTIHALCyssKAAQMwYMAA3LlzB+vXr8fcuXMxadIkpUDmfVxcXFCpUiWlNG9vb6nHSpWZmRnMzMzU0osUKZLnG0YhP9WloGHb6Yftph+2m/7Ydvphu+mH7aYftpv+2Hb6yQ/tZuj16zw9eGZv375FeHg4/vrrL7x69Up6vpK2fH19cfPmTaW0W7du6X3PExERERERkSHoFSidPHkSAwYMgIuLC0aMGIHy5csjPDwckZGROpUzevRo/P3335gzZw7u3LmDTZs2YfXq1Rg2bJg+1SIiIiIiIjIIrYfexcbGYsOGDQgODsatW7dQv359LFmyBD179oS1tbVeK69Tpw527dqFiRMnYsaMGfDy8sKyZcvw6aef6lUeERERERGRIWgdKLm7u8PR0RF9+vTBwIED4e3tbZAKdOjQAR06dDBIWURERERERIagdaC0bds2fPLJJzAx0Wv+ByIiIiIiogJD66gnICAgN+tBRERERESUb+Ro1jsiIiIiIqLCiIESERERERGRCgZKREREREREKnQOlAYMGIA3b96opb99+xYDBgwwSKWIiIiIiIjyks6B0oYNG5CUlKSWnpSUhF9//dUglSIiIiIiIspLWs96Fx8fDyEEhBB48+YNzM3NpWVyuRz79u1D8eLFc6WSREREREREH5LWgZK9vT1kMhlkMhnKly+vtlwmk2H69OkGrRwREREREVFe0DpQCgsLgxACzZs3x86dO1G0aFFpmampKTw8PODq6porlSQiIiIiIvqQtA6UmjRpAgCIiopCqVKlIJPJcq1SREREREREeUnnyRyOHTuGHTt2qKVv374dGzZsMEiliIiIiIiI8pLWPUoKc+fOxc8//6yWXrx4cQwePBhBQUEGqRgRERHlnFwuR2pqal5XQ2epqakwMTFBcnIy5HJ5XlenwGC76Y9tp58P2W5FihSBsbFxrq4jM50Dpfv378PLy0st3cPDA/fv3zdIpYiIiChnhBB4/PgxXr9+nddV0YsQAs7OzoiJieFwfx2w3fTHttPPh243e3t7ODs7f5B16RwoFS9eHFeuXIGnp6dSekREBBwdHQ1VLyIiIsoBRZBUvHhxWFpaFrgTv/T0dCQkJMDa2hpGRjrfKfDRYrvpj22nnw/VbkIIJCYm4unTpwAAFxeXXFuXgs6BUq9evTBixAjY2NigcePGAIC//voLI0eORM+ePQ1eQSIiItKNXC6XgqSCehEzPT0dKSkpMDc350mrDthu+mPb6edDtpuFhQUA4OnTpyhevHiuD8PTOVCaOXMmoqOj0aJFC5iYZLw9PT0dffv2xZw5cwxeQSIiItKN4p4kS0vLPK4JEZFhKY5rqamp+S9QMjU1xdatWzFz5kxERETAwsICVatWhYeHR27Uj4iIiPRU0IbbERG9z4c8rukcKCl4enpCCIEyZcpIPUtERERERESFgc4DCRMTEzFw4EBYWlqicuXK0kx3X331FebNm2fwChIRERGRdoyNjbF3717ptUwmw+7du/OuQkQFmM6B0sSJExEREYHjx4/D3NxcSm/ZsiW2bt1q0MoRERHRx6Vfv36QyWSYP3++Uvru3btzPOQmODgYMpkM3t7easu2b98OmUymNqtvXvP394exsTHOnTun1/tjY2PRtm1bg9Tl+PHjkMlk+WrKeQaClJt0DpR2796NH374AY0a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ysvLU1pamuLj4zV27Fht2LDB7bLCiqAUBkuWLNHMmTN1991365133tEFF1ygK664Qvv373e7tIhWU1OjCy64QI8//rjbpUSVNWvWKCcnR+vWrdOqVatUV1en8ePHq6amxu3SIprX69UDDzygTZs2aePGjbr00ks1adIkffDBB26XFjU2bNigJ598UkOHDnW7lKgwePBgVVVVNb7KysrcLikqfPnll7rooosUGxurV199VR9++KEefvhhfe9733O7tIi2YcOGkN+3VatWSZKuvvpqlyuLbA8++KAWLlyoBQsWaNu2bXrwwQc1f/58PfbYY26XFvF+/vOfa9WqVXr22We1ZcsWjR8/XpdffrkqKyvdLi1s2B48DEaPHq1Ro0ZpwYIFkqRgMCifz6dbb71Vs2fPdrm66GAYhpYtW6bJkye7XUrU+fzzz5WYmKg1a9Zo3LhxbpcTVXr16qWHHnpIP/vZz9wuJeIdOXJEw4cP1xNPPKH77rtP3//+95Wfn+92WRFrzpw5evHFF7V582a3S4k6s2fP1ptvvqnS0lK3S4lqeXl5euWVV/TJJ5/IMAy3y4lYV155pfr06aOnn366se0nP/mJ4uPj9dxzz7lYWWT76quvlJCQoOXLlysrK6uxfcSIEZowYYLuu+8+F6sLH+4otdGxY8e0adMmXX755Y1tMTExuvzyy/X222+7WBk6ikOHDkmyTvrROoFAQC+88IJqamo0ZswYt8uJCjk5OcrKygr5W4fj++STT5ScnKz+/fvrhhtu0O7du90uKSq89NJLGjlypK6++molJiZq2LBheuqpp9wuK6ocO3ZMzz33nKZPn05IOoGxY8fq9ddf18cffyxJeu+991RWVqYJEya4XFlk++abbxQIBNSlS5eQ9vj4+HZ197yT2wVEuy+++EKBQEB9+vQJae/Tp48++ugjl6pCRxEMBpWXl6eLLrpI559/vtvlRLwtW7ZozJgx+vrrr9W9e3ctW7ZM5513nttlRbwXXnhB77zzTrube34qjR49Ws8884wGDBigqqoq3XPPPcrMzNTWrVuVkJDgdnkR7T//+Y8WLlyomTNn6ne/+502bNigX//614qLi1N2drbb5UWFF198UQcPHtRNN93kdikRb/bs2aqurtbAgQPl8XgUCAR0//3364YbbnC7tIiWkJCgMWPG6N5779WgQYPUp08f/e1vf9Pbb7+tc845x+3ywoagBESxnJwcbd26tV1dvTmVBgwYoM2bN+vQoUMqKipSdna21qxZQ1g6joqKCuXm5mrVqlVNrhyiZd+9Gj106FCNHj1aaWlpWrp0KVM9TyAYDGrkyJGaO3euJGnYsGHaunWr/vSnPxGUWunpp5/WhAkTlJyc7HYpEW/p0qV6/vnnVVhYqMGDB2vz5s3Ky8tTcnIyv28n8Oyzz2r69OlKSUmRx+PR8OHDdd1112nTpk1ulxY2BKU2Ouuss+TxeLRv376Q9n379qlv374uVYWO4JZbbtErr7yitWvXyuv1ul1OVIiLi2u80jVixAht2LBBBQUFevLJJ12uLHJt2rRJ+/fv1/DhwxvbAoGA1q5dqwULFujo0aPyeDwuVhgdzjjjDJ177rn69NNP3S4l4iUlJTW5eDFo0CD9/e9/d6mi6LJr1y699tprKi4udruUqDBr1izNnj1bP/3pTyVJQ4YM0a5duzRv3jyC0gmcffbZWrNmjWpqalRdXa2kpCRde+216t+/v9ulhQ1rlNooLi5OI0aM0Ouvv97YFgwG9frrr7P2AaeEaZq65ZZbtGzZMv3rX/9Sv3793C4pagWDQR09etTtMiLaZZddpi1btmjz5s2Nr5EjR+qGG27Q5s2bCUmtdOTIEe3YsUNJSUlulxLxLrrooiaPPPj444+VlpbmUkXRZfHixUpMTAxZYI+W1dbWKiYm9HTY4/EoGAy6VFH06datm5KSkvTll19q5cqVmjRpktslhQ13lMJg5syZys7O1siRI3XhhRcqPz9fNTU1mjZtmtulRbQjR46EXF3duXOnNm/erF69eik1NdXFyiJbTk6OCgsLtXz5ciUkJOizzz6TJPXs2VPx8fEuVxe5fvvb32rChAlKTU3V4cOHVVhYqNWrV2vlypVulxbREhISmqx/69atm84880zWxR3H7bffrokTJyotLU179+7V3XffLY/Ho+uuu87t0iLebbfdprFjx2ru3Lm65pprtH79ei1atEiLFi1yu7SIFwwGtXjxYmVnZ6tTJ07xWmPixIm6//77lZqaqsGDB+vdd9/VI488ounTp7tdWsRbuXKlTNPUgAED9Omnn2rWrFkaOHBg+zr/NREWjz32mJmammrGxcWZF154oblu3Tq3S4p4b7zxhimpySs7O9vt0iJac2MmyVy8eLHbpUW06dOnm2lpaWZcXJzZu3dv87LLLjP/+c9/ul1WVLr44ovN3Nxct8uIaNdee62ZlJRkxsXFmSkpKea1115rfvrpp26XFTVefvll8/zzzzc7d+5sDhw40Fy0aJHbJUWFlStXmpLM7du3u11K1KiurjZzc3PN1NRUs0uXLmb//v3NO++80zx69KjbpUW8JUuWmP379zfj4uLMvn37mjk5OebBgwfdLiuseI4SAAAAANiwRgkAAAAAbAhKAAAAAGBDUAIAAAAAG4ISAAAAANgQlAAAAADAhqAEAAAAADYEJQAAAACwISgBAAAAgA1BCQDQYZSXl8swDG3evNntUgAAEY6gBAAIK8MwjvuaM2dOY2Cxv6ZOndri973kkkuUl5d3+n4QAECH1sntAgAA7UtVVVXj+yVLlugPf/iDtm/f3tjWvXt3ffHFF5Kk1157TYMHD278LD4+/vQVCgDAcXBHCQAQVn379m189ezZU4ZhhLR17969se+ZZ57ZpH9rpaena+7cuZo+fboSEhKUmpqqRYsWhfRZv369hg0bpi5dumjkyJF69913m3yfrVu3asKECerevbv69OmjG2+8sTHIrV69WnFxcSotLW3sP3/+fCUmJmrfvn0nOzQAgChCUAIARK2HH364MQDNmDFDN998c+PdqyNHjujKK6/Ueeedp02bNmnOnDm6/fbbQ77+4MGDuvTSSzVs2DBt3LhRK1as0L59+3TNNddI+na634033qhDhw7p3Xff1V133aU///nP6tOnz2n/eQEApw9T7wAArhk7dqxiYr69ZldaWqphw4a1+ut/9KMfacaMGZKk3/zmN3r00Uf1xhtvaMCAASosLFQwGNTTTz+tLl26aPDgwdqzZ49uvvnmxq9fsGCBhg0bprlz5za2/eUvf5HP59PHH3+sc889V/fdd59WrVqlX/7yl9q6dauys7N11VVXheGnBwBEMoISAMA1S5Ys0aBBgxqPfT7fSX390KFDG983TPHbv3+/JGnbtm0aOnSounTp0thnzJgxIV//3nvv6Y033giZDthgx44dOvfccxUXF6fnn39eQ4cOVVpamh599NGTqhEAEJ0ISgAA1/h8Pp1zzjmOvz42Njbk2DAMBYPBVn/9kSNHNHHiRD344INNPktKSmp8/9Zbb0mSDhw4oAMHDqhbt24OKwYARAvWKAEA2qVBgwbp/fff19dff93Ytm7dupA+w4cP1wcffKD09HSdc845Ia+GMLRjxw7ddttteuqppzR69GhlZ2efVBgDAEQnghIAoF26/vrrZRiGfvGLX+jDDz/UP/7xD/3xj38M6ZOTk6MDBw7ouuuu04YNG7Rjxw6tXLlS06ZNUyAQUCAQ0NSpU3XFFVdo2rRpWrx4sd5//309/PDDLv1UAIDThaAEAGiXunfvrpdffllbtmzRsGHDdOeddzaZYpecnKw333xTgUBA48eP15AhQ5SXl6czzjhDMTExuv/++7Vr1y49+eSTkqzpeIsWLdLvf/97vffee278WACA08QwTdN0uwgAAAAAiCTcUQIAAAAAG4ISAAAAANgQlAAAAADAhqAEAAAAADYEJQAAAACwISgBAAAAgA1BCQAAAABsCEoAAAAAYENQAgAAAAAbghIAAAAA2BCUAAAAAMDm/wGsb7bQBJI5AQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "x_vals = list(range(sum(n_sample)))\n", + "print(\"Bound (bound) TFs for gene \" + str(GENE_IDX) + \" are: \" + str(binding_data_tensor[GENE_IDX, :, 0].nonzero().flatten().tolist()))\n", + "print(\"Unbound (unbound) TFs for gene \" + str(GENE_IDX) + \" are: \" + str((1 - binding_data_tensor[GENE_IDX, :, 0]).nonzero().flatten().tolist()))\n", + "print(binding_data_tensor[GENE_IDX, :, 0])\n", + "plt.figure(figsize=(10, 6))\n", + "\n", + "# Plot each set of experiment results with a different color\n", + "colors = ['red', 'green', 'blue', 'orange']\n", + "for index, results in enumerate(experiment_results):\n", + " plt.scatter(x_vals, results, color=colors[index])\n", + "\n", + "plt.title('Pertubation Effects for Gene ' + str(GENE_IDX) + ' with Different Adjustment Functions (averaged across 100 trials)')\n", + "plt.xlabel('TF Index')\n", + "plt.ylabel('Perturbation Effect Val')\n", + "plt.xticks(x_vals)\n", + "plt.grid(True)\n", + "plt.legend(['No Mean Adjustment', 'Normal (non-dependent) Mean Adjust', 'Dependent Mean Adjustment', 'Boolean Logic Adjustment'])\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Recall that for the dependent mean adjustment, the TF in question must be bound and all of the TFs in its dependency array (in the tf_relationships dictionary) must be bound as well. This is why we do not adjust the mean for TF 7 despite it being bound, it depends on TF 1 and TF 4 both being bound, and TF1 is not bound.\n", "\n", - "def get_data_module(max_mean_adjustment, adjustment_function=default_perturbation_effect_adjustment_function, tf_relationships_dict={}):\n", + "Similarly, for the boolean logic adjustment, we do not adjust the mean for 6 despite it being bound because it depends on (TF0 && (TF1 || TF2)) being bound, and none of those 3 TFs are bound to the gene we are studying.\n", + "\n", + "Note that if you change GENE_IDX, the random seed, or any of the relationship dictionaris that this explanation will no longer apply to the data you are seeing in the plot." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Training models on data generated from the 4 different methods\n", + "In the next experiment, we will be training the exact same model on data generated from each of these 4 methods. We will also train a simple linear model on all four methods to use as a baseline to compare to. Other than the method used to generate the data, everything else will be held the same. We define a few helper functions to run our experiment. We make helper functions for things that will mostly be the same across each training loop so that we don't have to keep redefining them." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def get_data_module(max_mean_adjustment: float, adjustment_function=default_perturbation_effect_adjustment_function, tf_relationships_dict: Dict[str, Union[List[int], float]] = {}) -> SyntheticDataLoader:\n", + " \"\"\"\n", + " Creates a data loader module for synthetic data.\n", + "\n", + " Params:\n", + " max_mean_adjustment (float): Maximum mean adjustment value.\n", + " adjustment_function (callable): Function to adjust perturbation effects.\n", + " tf_relationships_dict (Dict[str, Union[List[int], float]]): Dictionary of transcription factor relationships.\n", + "\n", + " Returns:\n", + " SyntheticDataLoader: Configured data loader for synthetic data.\n", + " \"\"\"\n", " return SyntheticDataLoader(\n", " batch_size=32,\n", " num_genes=4000,\n", @@ -2781,7 +349,16 @@ " tf_relationships=tf_relationships_dict,\n", " )\n", "\n", - "def get_model(num_tfs):\n", + "def get_model(num_tfs: int) -> CustomizableModel:\n", + " \"\"\"\n", + " Creates a customizable model.\n", + "\n", + " Params:\n", + " num_tfs (int): Number of transcription factors.\n", + "\n", + " Returns:\n", + " CustomizableModel: Configured model.\n", + " \"\"\"\n", " return CustomizableModel(\n", " input_dim=num_tfs,\n", " output_dim=num_tfs,\n", @@ -2794,24 +371,48 @@ " dropout_rate=0.0,\n", " )\n", "\n", - "def get_linear_model(num_tfs):\n", + "def get_linear_model(num_tfs: int) -> SimpleModel:\n", + " \"\"\"\n", + " Creates a simple linear model.\n", + "\n", + " Params:\n", + " num_tfs (int): Number of transcription factors.\n", + "\n", + " Returns:\n", + " SimpleModel: Configured linear model.\n", + " \"\"\"\n", " return SimpleModel(\n", " input_dim=num_tfs,\n", " output_dim=num_tfs,\n", " lr=0.01\n", " )\n", "\n", - "def get_trainer():\n", + "def get_trainer() -> Trainer:\n", + " \"\"\"\n", + " Creates a trainer for model training.\n", + "\n", + " Returns:\n", + " Trainer: Configured trainer.\n", + " \"\"\"\n", " return Trainer(\n", " max_epochs=10,\n", " deterministic=True,\n", " accelerator=\"cpu\",\n", " )\n", "\n", + "# These lists will store the test results for different models and data generation methods\n", "model_ves = []\n", "linear_model_test_ves = []" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# **Train models on data generated with no mean adjustment**\n", + "We will first compare the models performances on data generated without any mean adjustments. This is the most simple dataset we will generate, and serves as a good starting point for the models." + ] + }, { "cell_type": "code", "execution_count": 18, @@ -3273,6 +874,21 @@ "print(\"Linear Model Explained Variance:\", explained_variance_linear)" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The explained variance for the linear model is quite small compared to the complex, customizable model which yielded a significantly larger positive explained variance. This suggests that the customizable model is able to better fit to the generated data in this condition. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# **Train models on data generated with normal mean adjustments**\n", + "Now, let us perform the same comparison but using this condition, with a normal mean adjustment of 3." + ] + }, { "cell_type": "code", "execution_count": 19, @@ -3738,6 +1354,21 @@ "print(\"Linear Model Explained Variance (Method 2):\", explained_variance_linear)\n" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Once again, a similar explained variance metric was obtained using both models, suggesting that the customizable model performs substantially better than the simple linear model based on the generated data. We will continue to explore whether this relationship holds across all 4 conditions." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# **Train model on data generated with dependent mean adjustments (method 3)**\n", + "Now we are implementing a dataset that contains dependent mean adjustments as shown below, with a mean adjustment of 3 if the TF meets the criteria defined by the dictionary." + ] + }, { "cell_type": "code", "execution_count": 20, @@ -4221,6 +1852,21 @@ "#Linear Model Explained Variance (Method 3): -0.0013749837875366212\n" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The simple linear model's explained variance is the lowest it has been out of the three conditions so far, and it appears once again that the customizable model obtains a better, larger explained variance compared to the simple linear model even when implementing dependencies among TFs. This would make sense as the added layer of complexity makes it more difficult for the simple linear model to make an accurate prediction. Lastly, it would be interesting to consider how the models will perform on data including more complex dependencies that involve binary relations." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# **Train models on data generated using the binary relations between TFs (method 4)**\n", + "Similar to the previous condition, we are implementing dependencies between TFs. However, the following dictionary contains simple logic that makes these dependencies far more complex. For example, in order for transcription factor 4 to be perturbed based on the dictionary below, both TFs 1 and 2 need to be considered perturbed in order for this TF to be perturbed as well. Adding this additional layer of complexity will be an interesting challenge: let us see how the two models perform here." + ] + }, { "cell_type": "code", "execution_count": 21, @@ -4693,6 +2339,20 @@ "#Linear Model Explained Variance (Method 4): -0.013428604602813721" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Once again, our customizable model outperforms the simple linear model in terms of obtaining a higher explained variance. What is interesting across all of these conditions explored so far is that the simple linear model has obtained a negative explained variance in each condition. This may be of further interest and could use more research to better determine exactly why this is occurring based on the generated data." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can plot the results across each of the 4 conditions tested above to visualize how the simple linear model and the complex, customizable model perform compared to one another." + ] + }, { "cell_type": "code", "execution_count": 24, @@ -4725,10 +2385,15 @@ ] }, { - "cell_type": "code", - "execution_count": null, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, we can clearly see that across the 4 conditions, the customizable model acheives a significantly higher positive explained variance compared to the simple linear model, which is good for us because it helps to confirm that the customizable model we are using is able to better utilize the data to produce accurate predictions, resulting in a higher explained variance compared to the simple linear model. " + ] + }, + { + "cell_type": "markdown", "metadata": {}, - "outputs": [], "source": [] } ], From 5d7ffa499d70ee657e0768206bd649f5dd11fce8 Mon Sep 17 00:00:00 2001 From: ejiawustl Date: Thu, 8 Aug 2024 10:00:03 -0700 Subject: [PATCH 7/7] updated notebook to use sphinx docstrings, added headings and subheadings and improved exposition --- ..._and_testing_data_generation_methods.ipynb | 4490 +---------------- 1 file changed, 280 insertions(+), 4210 deletions(-) diff --git a/docs/tutorials/visualizing_and_testing_data_generation_methods.ipynb b/docs/tutorials/visualizing_and_testing_data_generation_methods.ipynb index d277732..b54cfb7 100644 --- a/docs/tutorials/visualizing_and_testing_data_generation_methods.ipynb +++ b/docs/tutorials/visualizing_and_testing_data_generation_methods.ipynb @@ -4,6 +4,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ + "# **Visualizing and Testing Data Generation Methods**\n", "In this notebook, we will run an experiment to display the average perturbation effect values that we generate with the 4 different methods we have for perturbation effect generation (other than the method for generating the perturbation effect values, we will be holding everything else the same). \n", "\n", "Recall that we have 4 methods for generating perturbation effect data (see `generate_in_silico_data.ipynb` for more information on these):\n", @@ -17,15 +18,35 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 1, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Seed set to 42\n" + ] + }, + { + "data": { + "text/plain": [ + "42" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# imports\n", - "from yeastdnnexplorer.probability_models.generate_data import (generate_gene_population, \n", - " generate_binding_effects,\n", - " generate_pvalues,\n", - " generate_perturbation_effects)\n", + "from yeastdnnexplorer.probability_models.generate_data import (\n", + " generate_gene_population, \n", + " generate_binding_effects, \n", + " generate_pvalues, \n", + " generate_perturbation_effects\n", + ")\n", "\n", "import torch\n", "import matplotlib.pyplot as plt\n", @@ -50,6 +71,13 @@ "torch.cuda.manual_seed_all(42) # For all CUDA devices" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## **Generating the Data**" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -59,7 +87,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -100,11 +128,12 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ - "tf_relationships = {\n", + "# TF relationships\n", + "tf_relationships_dict = {\n", " 0: [1],\n", " 1: [8],\n", " 2: [5, 6],\n", @@ -117,6 +146,8 @@ " 9: [4],\n", "}\n", "\n", + "# TF relationships that incorporate boolean logic; this is more complex than\n", + "# the simple relationships above as it implements \"and\" and \"or\" operations\n", "tf_relationships_dict_boolean_logic = {\n", " 0: [And(3, 4, 8), Or(3, 7), Or(1, 1)],\n", " 1: [And(5, Or(7, 8))],\n", @@ -134,13 +165,14 @@ " \"\"\"\n", " Conducts an experiment by generating perturbation effects for a specific gene over multiple iterations\n", " using different methods and averaging the results.\n", + " \n", + " :param n_iterations: Number of iterations to perform.\n", + " :type n_iterations: int\n", + " :param GENE_IDX: Index of the gene to analyze.\n", + " :type GENE_IDX: int\n", "\n", - " Params:\n", - " n_iterations (int): Number of iterations to perform.\n", - " GENE_IDX (int): Index of the gene to analyze.\n", - "\n", - " Returns:\n", - " Tuple[torch.Tensor, torch.Tensor, torch.Tensor, torch.Tensor]: Averaged perturbation effects scores for each method.\n", + " :returns: A tuple containing averaged perturbation effects scores for each method.\n", + " :rtype: Tuple[torch.Tensor, torch.Tensor, torch.Tensor, torch.Tensor]\n", " \"\"\"\n", " print(\"Bound (1) and Unbound (0) Labels for gene \" + str(GENE_IDX) + \":\")\n", " print(binding_data_tensor[GENE_IDX, :, 0])\n", @@ -199,16 +231,9 @@ " return no_mean_adjustment_scores, normal_mean_adjustment_scores, dep_mean_adjustment_scores, boolean_logic_scores" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now we can run the experiment for n_iterations, I find that you should iterate at least 30 times, but closer to 100 is most ideal. This could take 1-5 minutes depending on your computer." - ] - }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -239,12 +264,19 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "We now plot our results." + "## **Visualizing the Results**" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we plot our results." ] }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -297,6 +329,8 @@ "cell_type": "markdown", "metadata": {}, "source": [ + "The x-axis labels represent the corresponding TFs whose perturbation effect values are being plotted on the y-axis. The color of each plotted point indicates which of the four data generation methods it was derived from. For example, based on the legend included in the graph, a red point was generated using no mean adjustment. This graph allows us to visualize the perturbation effects for the same TF under a variety of conditions.\n", + "\n", "Recall that for the dependent mean adjustment, the TF in question must be bound and all of the TFs in its dependency array (in the tf_relationships dictionary) must be bound as well. This is why we do not adjust the mean for TF 7 despite it being bound, it depends on TF 1 and TF 4 both being bound, and TF1 is not bound.\n", "\n", "Similarly, for the boolean logic adjustment, we do not adjust the mean for 6 despite it being bound because it depends on (TF0 && (TF1 || TF2)) being bound, and none of those 3 TFs are bound to the gene we are studying.\n", @@ -308,8 +342,8 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Training models on data generated from the 4 different methods\n", - "In the next experiment, we will be training the exact same model on data generated from each of these 4 methods. We will also train a simple linear model on all four methods to use as a baseline to compare to. Other than the method used to generate the data, everything else will be held the same." + "## **Training models on data generated from the 4 different methods**\n", + "In the next experiment, we will be training the exact same model on data generated from each of these 4 methods. We will also train a simple linear model on all four methods to use as a baseline to compare to. Other than the method used to generate the data, everything else will be held the same. We define a few helper functions to run our experiment. We make helper functions for things that will mostly be the same across each training loop so that we don't have to keep redefining them." ] }, { @@ -326,13 +360,15 @@ " save_top_k=1,\n", ")\n", "\n", - " Params:\n", - " max_mean_adjustment (float): Maximum mean adjustment value.\n", - " adjustment_function (callable): Function to adjust perturbation effects.\n", - " tf_relationships_dict (Dict[str, Union[List[int], float]]): Dictionary of transcription factor relationships.\n", + " :param max_mean_adjustment: Maximum mean adjustment value.\n", + " :type max_mean_adjustment: float\n", + " :param adjustment_function: Function to adjust perturbation effects.\n", + " :type adjustment_function: callable\n", + " :param tf_relationships_dict: Dictionary of transcription factor relationships.\n", + " :type tf_relationships_dict: Dict[str, Union[List[int], float]]\n", "\n", - " Returns:\n", - " SyntheticDataLoader: Configured data loader for synthetic data.\n", + " :returns: Configured data loader for synthetic data.\n", + " :rtype: SyntheticDataLoader\n", " \"\"\"\n", " return SyntheticDataLoader(\n", " batch_size=32,\n", @@ -352,11 +388,11 @@ " \"\"\"\n", " Creates a customizable model.\n", "\n", - " Params:\n", - " num_tfs (int): Number of transcription factors.\n", + " :param num_tfs: Number of transcription factors.\n", + " :type num_tfs: int\n", "\n", - " Returns:\n", - " CustomizableModel: Configured model.\n", + " :returns: Configured model.\n", + " :rtype: CustomizableModel\n", " \"\"\"\n", " return CustomizableModel(\n", " input_dim=num_tfs,\n", @@ -374,11 +410,11 @@ " \"\"\"\n", " Creates a simple linear model.\n", "\n", - " Params:\n", - " num_tfs (int): Number of transcription factors.\n", + " :param num_tfs: Number of transcription factors.\n", + " :type num_tfs: int\n", "\n", - " Returns:\n", - " SimpleModel: Configured linear model.\n", + " :returns: Configured linear model.\n", + " :rtype: SimpleModel\n", " \"\"\"\n", " return SimpleModel(\n", " input_dim=num_tfs,\n", @@ -390,24 +426,56 @@ " \"\"\"\n", " Creates a trainer for model training.\n", "\n", - " Returns:\n", - " Trainer: Configured trainer.\n", + " :returns: Configured trainer.\n", + " :rtype: Trainer\n", " \"\"\"\n", " return Trainer(\n", " max_epochs=10,\n", " deterministic=True,\n", " accelerator=\"cpu\",\n", - " # callbacks=[best_model_checkpoint, periodic_checkpoint],\n", - " # logger=[tb_logger, csv_logger],\n", - " )" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ + " # The following are turned false to reduce the output in the training cells below. You can toggle them to true to see\n", + " # a model summary and training progress if desired \n", + " logger=False, \n", + " enable_progress_bar=False, \n", + " enable_model_summary=False, \n", + " enable_checkpointing=False \n", + " )\n", + "\n", + "def calculate_explained_variance( \n", + " model: torch.nn.Module, data_module: DataLoader\n", + ") -> float:\n", + " \"\"\"\n", + " Calculates the explained variance of a model's predictions on a test dataset.\n", + "\n", + " :param test_results: List of test results containing the expected outcomes.\n", + " :type test_results: List[Union[float, int]]\n", + " :param data_module: Data loader for the test dataset.\n", + " :type data_module: DataLoader\n", + " :param model: The model to evaluate.\n", + " :type model: torch.nn.Module\n", + "\n", + " :returns: The explained variance of the model's predictions.\n", + " :rtype: float\n", + " \"\"\"\n", + " predictions = []\n", + " targets = []\n", + "\n", + " model.eval() # Set the model to evaluation mode\n", + " \n", + " with torch.no_grad(): # Disable gradient calculation\n", + " for batch in data_module.test_dataloader():\n", + " x, y = batch\n", + " outputs = model(x).cpu().numpy()\n", + " predictions.extend(outputs)\n", + " targets.extend(y.cpu().numpy())\n", + " \n", + " # Use scikit-learn to calculate explained variance\n", + " if len(targets) > 0:\n", + " explained_variance = explained_variance_score(targets, predictions)\n", + " return explained_variance\n", + " else:\n", + " return None\n", + "\n", "# These lists will store the test results for different models and data generation methods\n", "model_ves = []\n", "linear_model_test_ves = []" @@ -481,4213 +549,196 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# **Train models on data generated with no mean adjustment**" + "### **1) Train models on data generated with no mean adjustment**\n", + "We will first compare the models performances on data generated without any mean adjustments. This is the most simple dataset we will generate, and serves as a good starting point for the models." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "import warnings\n", + "import logging\n", + "\n", + "# Suppress specific warnings\n", + "warnings.filterwarnings(\"ignore\", category=UserWarning, message=\".*torch.tensor.*\")\n", + "warnings.filterwarnings(\"ignore\", category=UserWarning, message=\".*DataLoader.*\")\n", + "logging.getLogger(\"pytorch_lightning\").setLevel(logging.ERROR)" ] }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 8, "metadata": {}, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "GPU available: False, used: False\n", - "TPU available: False, using: 0 TPU cores\n", - "IPU available: False, using: 0 IPUs\n", - "HPU available: False, using: 0 HPUs\n", - "\n", - " | Name | Type | Params\n", - "----------------------------------------------------\n", - "0 | activation | LeakyReLU | 0 \n", - "1 | input_layer | Linear | 704 \n", - "2 | hidden_layers | ModuleList | 2.1 K \n", - "3 | output_layer | Linear | 330 \n", - "4 | dropout | Dropout | 0 \n", - "5 | mae | MeanAbsoluteError | 0 \n", - "6 | SMSE | SMSE | 0 \n", - "----------------------------------------------------\n", - "3.1 K Trainable params\n", - "0 Non-trainable params\n", - "3.1 K Total params\n", - "0.012 Total estimated model params size (MB)\n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Sanity Checking: | | 0/? [00:00 6\u001b[0m explained_variance \u001b[38;5;241m=\u001b[39m \u001b[43mcalculate_explained_variance\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtest_results\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdata_module\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmodel\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 7\u001b[0m model_ves\u001b[38;5;241m.\u001b[39mappend(explained_variance) \u001b[38;5;66;03m# Append explained variance to the list\u001b[39;00m\n\u001b[1;32m 8\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mPrinting test results...\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", - "Cell \u001b[0;32mIn[30], line 23\u001b[0m, in \u001b[0;36mcalculate_explained_variance\u001b[0;34m(test_results, data_module, model)\u001b[0m\n\u001b[1;32m 21\u001b[0m predictions\u001b[38;5;241m.\u001b[39mappend(outputs)\n\u001b[1;32m 22\u001b[0m targets\u001b[38;5;241m.\u001b[39mappend(y)\n\u001b[0;32m---> 23\u001b[0m mse \u001b[38;5;241m=\u001b[39m torch\u001b[38;5;241m.\u001b[39mnn\u001b[38;5;241m.\u001b[39mfunctional\u001b[38;5;241m.\u001b[39mmse_loss(\u001b[43mtorch\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtensor\u001b[49m\u001b[43m(\u001b[49m\u001b[43mpredictions\u001b[49m\u001b[43m)\u001b[49m, torch\u001b[38;5;241m.\u001b[39mtensor(targets))\u001b[38;5;241m.\u001b[39mitem()\n\u001b[1;32m 24\u001b[0m var_y \u001b[38;5;241m=\u001b[39m torch\u001b[38;5;241m.\u001b[39mvar(torch\u001b[38;5;241m.\u001b[39mtensor(targets))\u001b[38;5;241m.\u001b[39mitem() \n\u001b[1;32m 25\u001b[0m explained_variance \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1\u001b[39m \u001b[38;5;241m-\u001b[39m (mse \u001b[38;5;241m/\u001b[39m var_y)\n", - "\u001b[0;31mValueError\u001b[0m: only one element tensors can be converted to Python scalars" + "Nonlinear Model Explained Variance: 0.24550879001617432\n", + "Linear Model Explained Variance: -0.00506981611251831\n" ] } ], "source": [ + "# Initialize data module\n", + "data_module = get_data_module(0.0)\n", + "num_tfs = sum(data_module.n_sample)\n", + "\n", "# --- Nonlinear Model ---\n", "model = get_model(num_tfs)\n", "trainer = get_trainer()\n", "trainer.fit(model, data_module)\n", - "test_results = trainer.test(model, datamodule=data_module)\n", - "explained_variance = calculate_explained_variance(test_results, data_module, model)\n", - "model_ves.append(explained_variance) # Append explained variance to the list\n", - "print(\"Printing test results...\")\n", - "print(test_results)\n", - "print(\"Printing explained variance\")\n", - "print(explained_variance)\n", - "\n", + "explained_variance = calculate_explained_variance(model, data_module)\n", + "model_ves.append(explained_variance)\n", + "print(\"Nonlinear Model Explained Variance:\", explained_variance)\n", "\n", "# --- Linear Model ---\n", "linear_model = get_linear_model(num_tfs)\n", "trainer = get_trainer()\n", "trainer.fit(linear_model, data_module)\n", - "test_results = trainer.test(linear_model, datamodule=data_module)\n", - "explained_variance = calculate_explained_variance(test_results, data_module, linear_model)\n", - "linear_model_test_ves.append(explained_variance) # Append explained variance to the list\n", - "print(\"Printing linear model test results\")\n", - "print(test_results)\n", - "print(\"Printing linear model explained variance\")\n", - "print(explained_variance)" + "explained_variance_linear = calculate_explained_variance(linear_model, data_module)\n", + "linear_model_test_ves.append(explained_variance_linear)\n", + "\n", + "print(\"Linear Model Explained Variance:\", explained_variance_linear)" ] }, { - "cell_type": "code", - "execution_count": 17, + "cell_type": "markdown", "metadata": {}, - "outputs": [], "source": [ - "#NOTE: replaced this kernel with the two above to implement the explained variance\n", - "\n", - "\n", - "# data_module = get_data_module(0.0)\n", - "# num_tfs = sum(data_module.n_sample)\n", - "\n", - "# # nonlinear model\n", - "# model = get_model(num_tfs)\n", - "# trainer = get_trainer()\n", - "# trainer.fit(model, data_module)\n", - "# test_results = trainer.test(model, datamodule=data_module)\n", - "# print(\"Printing test results...\")\n", - "# print(test_results)\n", - "# model_ves.append(test_results[0][\"test_ve\"])\n", - "\n", - "# # linear model\n", - "# linear_model = get_linear_model(num_tfs)\n", - "# trainer = get_trainer()\n", - "# trainer.fit(linear_model, data_module)\n", - "# test_results = trainer.test(linear_model, datamodule=data_module)\n", - "# print(\"Printing linear model test results\")\n", - "# print(test_results)\n", - "# linear_model_test_ves.append(test_results[0][\"test_ve\"])" + "The explained variance for the linear model is surprisingly sightly negative in contrast to the nonlinear, customizable model which yielded a significantly larger positive explained variance. This suggests that the customizable model is able to better account for the distribution of the generated data with no mean adjustments, yielding a significantly higher explained variance. It is interesting to consider whether the same relationship will be observed in the next few conditions as the data generation methods becoome increasingly more complex. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "# **Train models on data generated with normal mean adjustments**" + "### **2) Train models on data generated with normal mean adjustments**\n", + "Now, let us perform the same comparison but using this condition, with a normal mean adjustment of 3." ] }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 9, "metadata": {}, "outputs": [ { - "name": "stderr", + "name": "stdout", "output_type": "stream", "text": [ - "GPU available: False, used: False\n", - "TPU available: False, using: 0 TPU cores\n", - "IPU available: False, using: 0 IPUs\n", - "HPU available: False, using: 0 HPUs\n", - "\n", - " | Name | Type | Params\n", - "----------------------------------------------------\n", - "0 | activation | LeakyReLU | 0 \n", - "1 | input_layer | Linear | 704 \n", - "2 | hidden_layers | ModuleList | 2.1 K \n", - "3 | output_layer | Linear | 330 \n", - "4 | dropout | Dropout | 0 \n", - "5 | mae | MeanAbsoluteError | 0 \n", - "6 | SMSE | SMSE | 0 \n", - "----------------------------------------------------\n", - "3.1 K Trainable params\n", - "0 Non-trainable params\n", - "3.1 K Total params\n", - "0.012 Total estimated model params size (MB)\n" + "Nonlinear Model Explained Variance (Method 2): 0.2549255728721619\n", + "Linear Model Explained Variance (Method 2): 0.07210595607757568\n" ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Sanity Checking: | | 0/? [00:00" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "data_gen_methods = [\"No Mean Adjustment\", \"Dependent Mean Adjustment\", \"TF Dependent Mean Adjustment\", \"TF Dependent Mean Adjust with Boolean Logic\"]\n", - "plt.figure(figsize=(10, 6))\n", - "plt.scatter(data_gen_methods, model_ves, color='blue')\n", - "plt.scatter(data_gen_methods, linear_model_test_ves, color='orange')\n", - "plt.title('Model VE Comparison (bound mean = 3.0)')\n", - "plt.xlabel('Model')\n", - "plt.ylabel('VE')\n", - "plt.grid(True)\n", - "plt.xticks(rotation=45, ha=\"right\")\n", - "plt.legend(['Complex (Customizable) Model', 'Linear Model'])\n", - "plt.tight_layout() # Adjust layout to make room for the rotated x-axis labels\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 37, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 38, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Seed set to 42\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Bound (1) and Unbound (0) Labels for gene 0:\n", - "tensor([0., 0., 0., 1., 1., 1., 1., 1., 0., 1.])\n", - "iteration 5 completed\n", - "iteration 10 completed\n", - "iteration 15 completed\n", - "iteration 20 completed\n", - "iteration 25 completed\n", - "iteration 30 completed\n", - "iteration 35 completed\n", - "iteration 40 completed\n", - "iteration 45 completed\n", - "iteration 50 completed\n" - ] - } - ], - "source": [ - "# imports\n", - "from yeastdnnexplorer.probability_models.generate_data import (\n", - " generate_gene_population, \n", - " generate_binding_effects, \n", - " generate_pvalues, \n", - " generate_perturbation_effects\n", - ")\n", - "\n", - "from yeastdnnexplorer.probability_models.util import (\n", - " calculate_explained_variance\n", - ")\n", - "\n", - "import torch\n", - "import matplotlib.pyplot as plt\n", - "\n", - "from yeastdnnexplorer.probability_models.relation_classes import Relation, And, Or\n", - "from yeastdnnexplorer.probability_models.generate_data import (\n", - " default_perturbation_effect_adjustment_function,\n", - " perturbation_effect_adjustment_function_with_tf_relationships,\n", - " perturbation_effect_adjustment_function_with_tf_relationships_boolean_logic\n", - ")\n", - "\n", - "from pytorch_lightning import Trainer, seed_everything\n", - "from torch.utils.data import DataLoader, TensorDataset\n", - "from sklearn.metrics import explained_variance_score\n", - "\n", - "from yeastdnnexplorer.data_loaders.synthetic_data_loader import SyntheticDataLoader\n", - "from yeastdnnexplorer.ml_models.simple_model import SimpleModel\n", - "from yeastdnnexplorer.ml_models.customizable_model import CustomizableModel\n", - "\n", - "seed_everything(42)\n", - "\n", - "n_genes = 3000\n", - "bound = [0.5, 0.5, 0.5, 0.5, 0.5]\n", - "n_sample = [1, 1, 2, 2, 4]\n", - "\n", - "# Generate gene populations\n", - "gene_populations_list = []\n", - "for bound_proportion, n_draws in zip(bound, n_sample):\n", - " for _ in range(n_draws):\n", - " gene_populations_list.append(generate_gene_population(n_genes, bound_proportion))\n", - " \n", - "# Generate binding data for each gene population\n", - "binding_effect_list = [generate_binding_effects(gene_population) for gene_population in gene_populations_list]\n", - "\n", - "# Calculate p-values for binding data\n", - "binding_pvalue_list = [generate_pvalues(binding_data) for binding_data in binding_effect_list]\n", - "\n", - "# Combine binding data into a tensor\n", - "binding_data_combined = [torch.stack((gene_population.labels, binding_effect, binding_pval), dim=1)\n", - " for gene_population, binding_effect, binding_pval in zip(gene_populations_list, binding_effect_list, binding_pvalue_list)]\n", - "binding_data_tensor = torch.stack(binding_data_combined, dim=1)\n", - "\n", - "# TF relationships\n", - "tf_relationships = {\n", - " 0: [1],\n", - " 1: [8],\n", - " 2: [5, 6],\n", - " 3: [4],\n", - " 4: [5],\n", - " 5: [9],\n", - " 6: [4],\n", - " 7: [1, 4],\n", - " 8: [6],\n", - " 9: [4],\n", - "}\n", - "\n", - "tf_relationships_dict_boolean_logic = {\n", - " 0: [And(3, 4, 8), Or(3, 7), Or(1, 1)],\n", - " 1: [And(5, Or(7, 8))],\n", - " 2: [],\n", - " 3: [Or(7, 9), And(6, 7)],\n", - " 4: [And(1, 2)],\n", - " 5: [Or(0, 1, 2, 8, 9)],\n", - " 6: [And(0, Or(1, 2))],\n", - " 7: [Or(2, And(5, 6, 9))],\n", - " 8: [],\n", - " 9: [And(6, And(3, Or(0, 9)))],\n", - "}\n", - "\n", - "def experiment(n_iterations=10, GENE_IDX=0):\n", - " print(\"Bound (1) and Unbound (0) Labels for gene \" + str(GENE_IDX) + \":\")\n", - " print(binding_data_tensor[GENE_IDX, :, 0])\n", - "\n", - " num_tfs = sum(n_sample)\n", - " \n", - " no_mean_adjustment_scores = torch.zeros(num_tfs)\n", - " normal_mean_adjustment_scores = torch.zeros(num_tfs)\n", - " dep_mean_adjustment_scores = torch.zeros(num_tfs)\n", - " boolean_logic_scores = torch.zeros(num_tfs)\n", - "\n", - " for i in range(n_iterations):\n", - " # Method 1: Generate perturbation effects without mean adjustment\n", - " perturbation_effects_list_no_mean_adjustment = [generate_perturbation_effects(binding_data_tensor[:, tf_index, :].unsqueeze(1), tf_index=0) \n", - " for tf_index in range(num_tfs)]\n", - " perturbation_effects_list_no_mean_adjustment = torch.stack(perturbation_effects_list_no_mean_adjustment, dim=1)\n", - "\n", - " # Method 2: Generate perturbation effects with normal mean adjustment\n", - " perturbation_effects_list_normal_mean_adjustment = generate_perturbation_effects(\n", - " binding_data_tensor, \n", - " max_mean_adjustment=10.0\n", - " )\n", - "\n", - " # Method 3: Generate perturbation effects with dependent mean adjustment\n", - " perturbation_effects_list_dep_mean_adjustment = generate_perturbation_effects(\n", - " binding_data_tensor, \n", - " tf_relationships=tf_relationships,\n", - " adjustment_function=perturbation_effect_adjustment_function_with_tf_relationships,\n", - " max_mean_adjustment=10.0,\n", - " )\n", - " \n", - " # Method 4: Generate perturbation effects with binary relations between the TFs\n", - " perturbation_effects_list_boolean_logic = generate_perturbation_effects(\n", - " binding_data_tensor, \n", - " adjustment_function=perturbation_effect_adjustment_function_with_tf_relationships_boolean_logic,\n", - " tf_relationships=tf_relationships_dict_boolean_logic,\n", - " max_mean_adjustment=10.0,\n", - " )\n", - "\n", - " no_mean_adjustment_scores += abs(perturbation_effects_list_no_mean_adjustment[GENE_IDX, :])\n", - " normal_mean_adjustment_scores += abs(perturbation_effects_list_normal_mean_adjustment[GENE_IDX, :])\n", - " dep_mean_adjustment_scores += abs(perturbation_effects_list_dep_mean_adjustment[GENE_IDX, :])\n", - " boolean_logic_scores += abs(perturbation_effects_list_boolean_logic[GENE_IDX, :])\n", - "\n", - " if (i + 1) % 5 == 0:\n", - " print(f\"iteration {i+1} completed\")\n", - " \n", - " no_mean_adjustment_scores /= n_iterations\n", - " normal_mean_adjustment_scores /= n_iterations\n", - " dep_mean_adjustment_scores /= n_iterations\n", - " boolean_logic_scores /= n_iterations\n", - " \n", - " return no_mean_adjustment_scores, normal_mean_adjustment_scores, dep_mean_adjustment_scores, boolean_logic_scores\n", - "\n", - "GENE_IDX = 0\n", - "experiment_results = experiment(n_iterations=50, GENE_IDX=GENE_IDX)\n", - "\n", - "def get_data_module(max_mean_adjustment, adjustment_function=default_perturbation_effect_adjustment_function, tf_relationships_dict={}):\n", - " return SyntheticDataLoader(\n", - " batch_size=32,\n", - " num_genes=4000,\n", - " bound_mean=3.0,\n", - " bound=[0.5] * 5,\n", - " n_sample=[1, 1, 2, 2, 4],\n", - " val_size=0.1,\n", - " test_size=0.1,\n", - " random_state=42,\n", - " max_mean_adjustment=max_mean_adjustment,\n", - " adjustment_function=adjustment_function,\n", - " tf_relationships=tf_relationships_dict,\n", - " )\n", - "\n", - "def get_model(num_tfs):\n", - " return CustomizableModel(\n", - " input_dim=num_tfs,\n", - " output_dim=num_tfs,\n", - " lr=0.01,\n", - " hidden_layer_num=2,\n", - " hidden_layer_sizes=[64, 32],\n", - " activation=\"LeakyReLU\",\n", - " optimizer=\"RMSprop\",\n", - " L2_regularization_term=0.0,\n", - " dropout_rate=0.0,\n", - " )\n", - "\n", - "def get_linear_model(num_tfs):\n", - " return SimpleModel(\n", - " input_dim=num_tfs,\n", - " output_dim=num_tfs,\n", - " lr=0.01\n", - " )\n", - "\n", - "def get_trainer():\n", - " return Trainer(\n", - " max_epochs=10,\n", - " deterministic=True,\n", - " accelerator=\"cpu\",\n", - " )\n", - "\n", - "model_ves = []\n", - "linear_model_test_ves = []" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "GPU available: False, used: False\n", - "TPU available: False, using: 0 TPU cores\n", - "IPU available: False, using: 0 IPUs\n", - "HPU available: False, using: 0 HPUs\n", - "/Users/ericjia/yeastdnnexplorer/yeastdnnexplorer/data_loaders/synthetic_data_loader.py:260: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n", - " X_train, Y_train = torch.tensor(X_train, dtype=torch.float32), torch.tensor(\n", - "/Users/ericjia/yeastdnnexplorer/yeastdnnexplorer/data_loaders/synthetic_data_loader.py:263: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n", - " X_val, Y_val = torch.tensor(X_val, dtype=torch.float32), torch.tensor(\n", - "/Users/ericjia/yeastdnnexplorer/yeastdnnexplorer/data_loaders/synthetic_data_loader.py:266: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n", - " X_test, Y_test = torch.tensor(X_test, dtype=torch.float32), torch.tensor(\n", - "\n", - " | Name | Type | Params\n", - "----------------------------------------------------\n", - "0 | activation | LeakyReLU | 0 \n", - "1 | input_layer | Linear | 704 \n", - "2 | hidden_layers | ModuleList | 2.1 K \n", - "3 | output_layer | Linear | 330 \n", - "4 | dropout | Dropout | 0 \n", - "5 | mae | MeanAbsoluteError | 0 \n", - "6 | SMSE | SMSE | 0 \n", - "----------------------------------------------------\n", - "3.1 K Trainable params\n", - "0 Non-trainable params\n", - "3.1 K Total params\n", - "0.012 Total estimated model params size (MB)\n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Sanity Checking: | | 0/? [00:00" ] @@ -4741,11 +811,11 @@ ] }, { - "cell_type": "code", - "execution_count": null, + "cell_type": "markdown", "metadata": {}, - "outputs": [], - "source": [] + "source": [ + "The x-axis labels the method in which the data was generated according to the 4 options above. The y-axis represents the corresponding variance explained attained by these models. Each point represents the variance explained achieved after generating the data based on the x-axis, and the color of the point represents which model architecture was trained on the data resulting in the specificed explained variance. Now, we can clearly see that across the 4 conditions, the nonlinear, customizable model acheives a significantly higher positive explained variance compared to the simple linear model, which is good because it helps to confirm that the nonlinear model we are using is able to train on the data and better account for the distribution of the data, resulting in a higher explained variance compared to the simple linear model. " + ] } ], "metadata": {