diff --git a/Copy_of_Digital_Image_Analysis_2_assignment.ipynb b/Copy_of_Digital_Image_Analysis_2_assignment.ipynb
new file mode 100644
index 0000000..24fd494
--- /dev/null
+++ b/Copy_of_Digital_Image_Analysis_2_assignment.ipynb
@@ -0,0 +1,530 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "view-in-github",
+ "colab_type": "text"
+ },
+ "source": [
+ ""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "6531908e",
+ "metadata": {
+ "id": "6531908e"
+ },
+ "source": [
+ "# Image Processing & Analysis Assignment #2\n",
+ "\n",
+ "## Summary of tasks (repeated within each section)\n",
+ "### You will need to perform the following Tasks: \n",
+ "\n",
+ "----- \n",
+ "\n",
+ "#### Using `image_cell.tif`\n",
+ "**Task 1.** \n",
+ " \n",
+ " From the downloaded image (`img`; file = `image_cell.tif`), make an image `img1` from just the red channel (channel 0) at time point 23 of the tensor [T,Y,X,C] \n",
+ "\n",
+ "**Task 2.** \n",
+ "\n",
+ " Using `img1`, create a new image `img2` where values less than than the mean are set to the background value (calculated as the minimum intensity value in the image). \n",
+ "\n",
+ "**Task 3.** \n",
+ "\n",
+ " - Set `img2[0:20,0:20] = np.amax(img2)` (Make a white box in the image to more easily visualize the transformation) \n",
+ " - Compress `img2` in half, rotate it 30 degrees clockwise, and translate its `(0,0)` to `(dx,dy)=(200,100)` \n",
+ " - Save resulting image as `img3` \n",
+ " - Plot `img3` side-by-side with `img2` \n",
+ "\n",
+ "**Task 4.** **EXTRA CREDIT** \n",
+ "\n",
+ " - Build a slider function to display different frames of an RGB image over time. \n",
+ " - Consider 3 subplots for: 'RED', 'GREEN', 'BLUE' channels\n",
+ " - Make the interactive slider for time: int with range 0 to the number of frames in video.\n",
+ "\n",
+ "----- \n",
+ "#### Using `FISH_example.tif`\n",
+ "**Task 5.** \n",
+ "\n",
+ " - Make a slice of `img_FISH` and save as `img_FISH_slice` using: `Z=10`, `Y=120:350`, `X=50:250` \n",
+ " - Apply a Gaussian filter to `img_FISH_slice` with `sigma=1` and save it as `img_gaussian_filter_simga_1`\n",
+ " - Make difference of Gaussians filter of `img_FISH_slice` using `low_sigma=1` and `high_sigma=5` and `img_diff_gaussians`\n",
+ " - Plot all 3 images side-by-side (in 3 subplots). \n",
+ " \n",
+ "-----"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "8b448ed2-7ca9-4b42-bd44-1ff39a36c994",
+ "metadata": {
+ "id": "8b448ed2-7ca9-4b42-bd44-1ff39a36c994"
+ },
+ "source": [
+ "## Loading libraries"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "c8cf520e",
+ "metadata": {
+ "id": "c8cf520e"
+ },
+ "outputs": [],
+ "source": [
+ "# Load libraries\n",
+ "import matplotlib.pyplot as plt # Library used for plotting\n",
+ "from matplotlib.patches import Rectangle # module to plot a rectangle in the image\n",
+ "import numpy as np # library for array manipulation\n",
+ "import seaborn as sn # plotting library\n",
+ "import pandas as pd # data frames library\n",
+ "import tifffile # library to store numpy arrays in TIFF\n",
+ "import skimage # Library for image manipulation\n",
+ "from skimage.io import imread # sublibrary from skimage\n",
+ "from scipy.ndimage import gaussian_filter\n",
+ "from skimage.filters import difference_of_gaussians\n",
+ "from skimage import transform\n",
+ "import os"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "a9ddaede",
+ "metadata": {
+ "id": "a9ddaede"
+ },
+ "outputs": [],
+ "source": [
+ "import ipywidgets as widgets # Importing library\n",
+ "from ipywidgets import interact, interactive, HBox, Layout, VBox # importing modules and functions."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "c8a8caf9",
+ "metadata": {
+ "id": "c8a8caf9"
+ },
+ "outputs": [],
+ "source": [
+ "\n",
+ "import importlib\n",
+ "\n",
+ "def module_exists(module_name):\n",
+ " try:\n",
+ " importlib.import_module(module_name)\n",
+ " return True\n",
+ " except ImportError:\n",
+ " return False\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "bcab7cb7-9fe7-4ade-bbd4-df56d3faf694",
+ "metadata": {
+ "id": "bcab7cb7-9fe7-4ade-bbd4-df56d3faf694"
+ },
+ "source": [
+ "## Download image files\n",
+ "Do NOT push the image files to your GitHub repository! This notebook with the rendered images is okay. \n",
+ "\n",
+ "The `.gitgnore` file in this repository should ignore the image files if you use git to push your changes to your repository back to GitHub."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "40804778",
+ "metadata": {
+ "id": "40804778",
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "outputId": "925b3875-7f54-4665-c7dc-9c22828bfe4f"
+ },
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "Collecting wget\n",
+ " Downloading wget-3.2.zip (10 kB)\n",
+ " Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
+ "Building wheels for collected packages: wget\n",
+ " Building wheel for wget (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
+ " Created wheel for wget: filename=wget-3.2-py3-none-any.whl size=9656 sha256=de29380a2ccf19b06f29eb6bdaea947ba745b4b05a3560b2ccdcac4c4926354e\n",
+ " Stored in directory: /root/.cache/pip/wheels/8b/f1/7f/5c94f0a7a505ca1c81cd1d9208ae2064675d97582078e6c769\n",
+ "Successfully built wget\n",
+ "Installing collected packages: wget\n",
+ "Successfully installed wget-3.2\n",
+ "Collecting ffmpeg\n",
+ " Downloading ffmpeg-1.4.tar.gz (5.1 kB)\n",
+ " Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
+ "Building wheels for collected packages: ffmpeg\n",
+ " Building wheel for ffmpeg (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
+ " Created wheel for ffmpeg: filename=ffmpeg-1.4-py3-none-any.whl size=6082 sha256=04f07ec107c552ac982021d9da68f3deb1c83c5d538b32f60bfba9fd9bf144e9\n",
+ " Stored in directory: /root/.cache/pip/wheels/8e/7a/69/cd6aeb83b126a7f04cbe7c9d929028dc52a6e7d525ff56003a\n",
+ "Successfully built ffmpeg\n",
+ "Installing collected packages: ffmpeg\n",
+ "Successfully installed ffmpeg-1.4\n"
+ ]
+ }
+ ],
+ "source": [
+ "if not module_exists('wget'):\n",
+ " !pip install wget\n",
+ "if not module_exists('ffmpeg'):\n",
+ " !pip install ffmpeg"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "7433390c-add4-4d48-ac40-89ed3e451188",
+ "metadata": {
+ "id": "7433390c-add4-4d48-ac40-89ed3e451188"
+ },
+ "outputs": [],
+ "source": [
+ "import wget\n",
+ "if not os.path.exists(\"./FISH_example.tif\"):\n",
+ " wget.download(\"https://www.dropbox.com/s/669j6zags6xd7gr/FISH_example.tif?dl=1\", \"FISH_example.tif\")\n",
+ "\n",
+ "if not os.path.exists(\"./image_cell.tif\"):\n",
+ " wget.download(\"https://www.dropbox.com/scl/fi/3y4yzq0qywia4i8oftdir/image_cell.tif?rlkey=c8r31vv7o15kmx1axtvmt53bk&dl=1\",\n",
+ " \"image_cell.tif\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "9a4b5224-fc61-4365-9181-f612e0e30a10",
+ "metadata": {
+ "id": "9a4b5224-fc61-4365-9181-f612e0e30a10",
+ "outputId": "b0f22cdc-0c4b-4f5a-924d-253ae1caadef",
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ }
+ },
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "(35, 512, 512, 3)"
+ ]
+ },
+ "metadata": {},
+ "execution_count": 6
+ }
+ ],
+ "source": [
+ "# reading the image and saving as variable img\n",
+ "img = imread('./image_cell.tif')\n",
+ "img.shape"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "377961d2",
+ "metadata": {
+ "scrolled": true,
+ "id": "377961d2",
+ "outputId": "ef69e500-0052-4a56-ec6f-6b2bf7062875",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 428
+ }
+ },
+ "outputs": [
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ "