{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "bf6256ae",
   "metadata": {},
   "source": [
    "## 12/07/2022\n",
    "## Registration with QC metrics\n",
    "### starts after tif conversion"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "c1337f9f",
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import matplotlib.patches as patches\n",
    "from pathlib import Path\n",
    "import numpy as np\n",
    "import os\n",
    "import sys\n",
    "import glob\n",
    "import pandas as pd\n",
    "import xml.etree.ElementTree as et\n",
    "import datetime\n",
    "from skimage.io import imread, imsave\n",
    "from imageio import volread as imread\n",
    "\n",
    "import tifffile\n",
    "import pystackreg\n",
    "from pystackreg import StackReg\n",
    "from skimage.filters import threshold_otsu\n",
    "\n",
    "from pystackreg.util import to_uint16   # make sure version 0.2.5 (not anything below)\n",
    "#from ims_to_tiff import convert_to_tif   "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "dc1d0c16",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "/mnt/disks/store/101222_D10_Coverslip1_Processed\n"
     ]
    }
   ],
   "source": [
    "print(os.getcwd())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "9adc6d6d",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Define input params, directories\n",
    "allfiles = sorted(glob.glob('tif/*'))\n",
    "allCycles = []\n",
    "for x in allfiles:\n",
    "    if x.startswith('tif/Cycle_'):\n",
    "        allCycles.append(x.split('_')[-1])\n",
    "\n",
    "_allFOVs = sorted(glob.glob('tif/Cycle_0/*'))\n",
    "allFOVs = []\n",
    "for x in _allFOVs:\n",
    "    allFOVs.append(x.split('F')[-1][0:3])\n",
    "    \n",
    "    \n",
    "for i in allCycles[1:]:\n",
    "    if i == '0':\n",
    "        continue\n",
    "    try:\n",
    "        os.makedirs(f'tmat_Cyc_{i}')\n",
    "        os.makedirs(f'reg_bin_Cyc_{i}')\n",
    "        os.makedirs(f'reg_Cyc_{i}')   \n",
    "    except: \n",
    "        continue"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "ca78f5af",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "100\n"
     ]
    }
   ],
   "source": [
    "for i in range(len(allFOVs)):\n",
    "    if allFOVs[i] == '100':\n",
    "        print(i)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "71627fe2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['100',\n",
       " '101',\n",
       " '102',\n",
       " '103',\n",
       " '104',\n",
       " '105',\n",
       " '106',\n",
       " '107',\n",
       " '108',\n",
       " '109',\n",
       " '110',\n",
       " '111',\n",
       " '112',\n",
       " '113',\n",
       " '114',\n",
       " '115',\n",
       " '116',\n",
       " '117',\n",
       " '118',\n",
       " '119',\n",
       " '120',\n",
       " '121',\n",
       " '122',\n",
       " '123',\n",
       " '124',\n",
       " '125',\n",
       " '126',\n",
       " '127',\n",
       " '128',\n",
       " '129',\n",
       " '130',\n",
       " '131',\n",
       " '132',\n",
       " '133',\n",
       " '134',\n",
       " '135',\n",
       " '136',\n",
       " '137',\n",
       " '138',\n",
       " '139',\n",
       " '140',\n",
       " '141',\n",
       " '142',\n",
       " '143',\n",
       " '144',\n",
       " '145',\n",
       " '146',\n",
       " '147',\n",
       " '148',\n",
       " '149',\n",
       " '150',\n",
       " '151',\n",
       " '152',\n",
       " '153',\n",
       " '154',\n",
       " '155',\n",
       " '156',\n",
       " '157',\n",
       " '158',\n",
       " '159',\n",
       " '160',\n",
       " '161',\n",
       " '162',\n",
       " '163',\n",
       " '164',\n",
       " '165',\n",
       " '166',\n",
       " '167',\n",
       " '168',\n",
       " '169',\n",
       " '170',\n",
       " '171',\n",
       " '172',\n",
       " '173',\n",
       " '174',\n",
       " '175',\n",
       " '176',\n",
       " '177',\n",
       " '178',\n",
       " '179',\n",
       " '180',\n",
       " '181',\n",
       " '182',\n",
       " '183',\n",
       " '184',\n",
       " '185',\n",
       " '186',\n",
       " '187',\n",
       " '188',\n",
       " '189',\n",
       " '190',\n",
       " '191',\n",
       " '192',\n",
       " '193',\n",
       " '194',\n",
       " '195',\n",
       " '196',\n",
       " '197',\n",
       " '198',\n",
       " '199',\n",
       " '200',\n",
       " '201',\n",
       " '202',\n",
       " '203',\n",
       " '204',\n",
       " '205',\n",
       " '206',\n",
       " '207',\n",
       " '208',\n",
       " '209',\n",
       " '210',\n",
       " '211',\n",
       " '212',\n",
       " '213',\n",
       " '214',\n",
       " '215',\n",
       " '216',\n",
       " '217',\n",
       " '218',\n",
       " '219',\n",
       " '220',\n",
       " '221',\n",
       " '222',\n",
       " '223',\n",
       " '224']"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "allFOVs[100:]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "c037cd77",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['0', '8', '9']"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "allCycles"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f539d4a9",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "cycle 8   FOV 000 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F000_reg.tif\n",
      "cycle 8   FOV 001 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F001_reg.tif\n",
      "cycle 8   FOV 002 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F002_reg.tif\n",
      "cycle 8   FOV 003 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F003_reg.tif\n",
      "cycle 8   FOV 004 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F004_reg.tif\n",
      "cycle 8   FOV 005 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F005_reg.tif\n",
      "cycle 8   FOV 006 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F006_reg.tif\n",
      "cycle 8   FOV 007 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F007_reg.tif\n",
      "cycle 8   FOV 008 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F008_reg.tif\n",
      "cycle 8   FOV 009 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F009_reg.tif\n",
      "cycle 8   FOV 010 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F010_reg.tif\n",
      "cycle 8   FOV 011 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F011_reg.tif\n",
      "cycle 8   FOV 012 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F012_reg.tif\n",
      "cycle 8   FOV 013 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F013_reg.tif\n",
      "cycle 8   FOV 014 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F014_reg.tif\n",
      "cycle 8   FOV 015 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F015_reg.tif\n",
      "cycle 8   FOV 016 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F016_reg.tif\n",
      "cycle 8   FOV 017 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F017_reg.tif\n",
      "cycle 8   FOV 018 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F018_reg.tif\n",
      "cycle 8   FOV 019 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F019_reg.tif\n",
      "cycle 8   FOV 020 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F020_reg.tif\n",
      "cycle 8   FOV 021 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F021_reg.tif\n",
      "cycle 8   FOV 022 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F022_reg.tif\n",
      "cycle 8   FOV 023 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F023_reg.tif\n",
      "cycle 8   FOV 024 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F024_reg.tif\n",
      "cycle 8   FOV 025 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F025_reg.tif\n",
      "cycle 8   FOV 026 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F026_reg.tif\n",
      "cycle 8   FOV 027 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F027_reg.tif\n",
      "cycle 8   FOV 028 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F028_reg.tif\n",
      "cycle 8   FOV 029 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F029_reg.tif\n",
      "cycle 8   FOV 030 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F030_reg.tif\n",
      "cycle 8   FOV 031 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F031_reg.tif\n",
      "cycle 8   FOV 032 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F032_reg.tif\n",
      "cycle 8   FOV 033 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F033_reg.tif\n",
      "cycle 8   FOV 034 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F034_reg.tif\n",
      "cycle 8   FOV 035 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F035_reg.tif\n",
      "cycle 8   FOV 036 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F036_reg.tif\n",
      "cycle 8   FOV 037 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F037_reg.tif\n",
      "cycle 8   FOV 038 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F038_reg.tif\n",
      "cycle 8   FOV 039 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F039_reg.tif\n",
      "cycle 8   FOV 040 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F040_reg.tif\n",
      "cycle 8   FOV 041 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F041_reg.tif\n",
      "cycle 8   FOV 042 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F042_reg.tif\n",
      "cycle 8   FOV 043 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F043_reg.tif\n",
      "cycle 8   FOV 044 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F044_reg.tif\n",
      "cycle 8   FOV 045 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F045_reg.tif\n",
      "cycle 8   FOV 046 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F046_reg.tif\n",
      "cycle 8   FOV 047 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F047_reg.tif\n",
      "cycle 8   FOV 048 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F048_reg.tif\n",
      "cycle 8   FOV 049 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F049_reg.tif\n",
      "cycle 8   FOV 050 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F050_reg.tif\n",
      "cycle 8   FOV 051 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F051_reg.tif\n",
      "cycle 8   FOV 052 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F052_reg.tif\n",
      "cycle 8   FOV 053 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F053_reg.tif\n",
      "cycle 8   FOV 054 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F054_reg.tif\n",
      "cycle 8   FOV 055 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F055_reg.tif\n",
      "cycle 8   FOV 056 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F056_reg.tif\n",
      "cycle 8   FOV 057 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F057_reg.tif\n",
      "cycle 8   FOV 058 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F058_reg.tif\n",
      "cycle 8   FOV 059 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F059_reg.tif\n",
      "cycle 8   FOV 060 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F060_reg.tif\n",
      "cycle 8   FOV 061 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F061_reg.tif\n",
      "cycle 8   FOV 062 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F062_reg.tif\n",
      "cycle 8   FOV 063 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F063_reg.tif\n",
      "cycle 8   FOV 064 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F064_reg.tif\n",
      "cycle 8   FOV 065 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F065_reg.tif\n",
      "cycle 8   FOV 066 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F066_reg.tif\n",
      "cycle 8   FOV 067 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F067_reg.tif\n",
      "cycle 8   FOV 068 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F068_reg.tif\n",
      "cycle 8   FOV 069 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F069_reg.tif\n",
      "cycle 8   FOV 070 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F070_reg.tif\n",
      "cycle 8   FOV 071 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F071_reg.tif\n",
      "cycle 8   FOV 072 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F072_reg.tif\n",
      "cycle 8   FOV 073 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F073_reg.tif\n",
      "cycle 8   FOV 074 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F074_reg.tif\n",
      "cycle 8   FOV 075 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F075_reg.tif\n",
      "cycle 8   FOV 076 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F076_reg.tif\n",
      "cycle 8   FOV 077 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F077_reg.tif\n",
      "cycle 8   FOV 078 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F078_reg.tif\n",
      "cycle 8   FOV 079 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F079_reg.tif\n",
      "cycle 8   FOV 080 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F080_reg.tif\n",
      "cycle 8   FOV 081 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F081_reg.tif\n",
      "cycle 8   FOV 082 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F082_reg.tif\n",
      "cycle 8   FOV 083 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F083_reg.tif\n",
      "cycle 8   FOV 084 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F084_reg.tif\n",
      "cycle 8   FOV 085 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F085_reg.tif\n",
      "cycle 8   FOV 086 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F086_reg.tif\n",
      "cycle 8   FOV 087 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F087_reg.tif\n",
      "cycle 8   FOV 088 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F088_reg.tif\n",
      "cycle 8   FOV 089 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F089_reg.tif\n",
      "cycle 8   FOV 090 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F090_reg.tif\n",
      "cycle 8   FOV 091 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F091_reg.tif\n",
      "cycle 8   FOV 092 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F092_reg.tif\n",
      "cycle 8   FOV 093 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F093_reg.tif\n",
      "cycle 8   FOV 094 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F094_reg.tif\n",
      "cycle 8   FOV 095 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F095_reg.tif\n",
      "cycle 8   FOV 096 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F096_reg.tif\n",
      "cycle 8   FOV 097 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F097_reg.tif\n",
      "cycle 8   FOV 098 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F098_reg.tif\n",
      "cycle 8   FOV 099 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F099_reg.tif\n",
      "cycle 8   FOV 100 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F100_reg.tif\n",
      "cycle 8   FOV 101 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F101_reg.tif\n",
      "cycle 8   FOV 102 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F102_reg.tif\n",
      "cycle 8   FOV 103 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F103_reg.tif\n",
      "cycle 8   FOV 104 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F104_reg.tif\n",
      "cycle 8   FOV 105 \n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F105_reg.tif\n",
      "cycle 8   FOV 106 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F106_reg.tif\n",
      "cycle 8   FOV 107 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F107_reg.tif\n",
      "cycle 8   FOV 108 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F108_reg.tif\n",
      "cycle 8   FOV 109 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F109_reg.tif\n",
      "cycle 8   FOV 110 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F110_reg.tif\n",
      "cycle 8   FOV 111 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F111_reg.tif\n",
      "cycle 8   FOV 112 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F112_reg.tif\n",
      "cycle 8   FOV 113 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F113_reg.tif\n",
      "cycle 8   FOV 114 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F114_reg.tif\n",
      "cycle 8   FOV 115 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F115_reg.tif\n",
      "cycle 8   FOV 116 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F116_reg.tif\n",
      "cycle 8   FOV 117 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F117_reg.tif\n",
      "cycle 8   FOV 118 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F118_reg.tif\n",
      "cycle 8   FOV 119 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F119_reg.tif\n",
      "cycle 8   FOV 120 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F120_reg.tif\n",
      "cycle 8   FOV 121 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F121_reg.tif\n",
      "cycle 8   FOV 122 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F122_reg.tif\n",
      "cycle 8   FOV 123 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F123_reg.tif\n",
      "cycle 8   FOV 124 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F124_reg.tif\n",
      "cycle 8   FOV 125 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F125_reg.tif\n",
      "cycle 8   FOV 126 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F126_reg.tif\n",
      "cycle 8   FOV 127 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F127_reg.tif\n",
      "cycle 8   FOV 128 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F128_reg.tif\n",
      "cycle 8   FOV 129 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F129_reg.tif\n",
      "cycle 8   FOV 130 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F130_reg.tif\n",
      "cycle 8   FOV 131 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F131_reg.tif\n",
      "cycle 8   FOV 132 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F132_reg.tif\n",
      "cycle 8   FOV 133 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F133_reg.tif\n",
      "cycle 8   FOV 134 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F134_reg.tif\n",
      "cycle 8   FOV 135 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F135_reg.tif\n",
      "cycle 8   FOV 136 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F136_reg.tif\n",
      "cycle 8   FOV 137 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F137_reg.tif\n",
      "cycle 8   FOV 138 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F138_reg.tif\n",
      "cycle 8   FOV 139 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F139_reg.tif\n",
      "cycle 8   FOV 140 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F140_reg.tif\n",
      "cycle 8   FOV 141 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F141_reg.tif\n",
      "cycle 8   FOV 142 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F142_reg.tif\n",
      "cycle 8   FOV 143 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F143_reg.tif\n",
      "cycle 8   FOV 144 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F144_reg.tif\n",
      "cycle 8   FOV 145 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F145_reg.tif\n",
      "cycle 8   FOV 146 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F146_reg.tif\n",
      "cycle 8   FOV 147 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F147_reg.tif\n",
      "cycle 8   FOV 148 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F148_reg.tif\n",
      "cycle 8   FOV 149 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F149_reg.tif\n",
      "cycle 8   FOV 150 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F150_reg.tif\n",
      "cycle 8   FOV 151 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F151_reg.tif\n",
      "cycle 8   FOV 152 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F152_reg.tif\n",
      "cycle 8   FOV 153 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F153_reg.tif\n",
      "cycle 8   FOV 154 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F154_reg.tif\n",
      "cycle 8   FOV 155 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F155_reg.tif\n",
      "cycle 8   FOV 156 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F156_reg.tif\n",
      "cycle 8   FOV 157 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F157_reg.tif\n",
      "cycle 8   FOV 158 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F158_reg.tif\n",
      "cycle 8   FOV 159 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F159_reg.tif\n",
      "cycle 8   FOV 160 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F160_reg.tif\n",
      "cycle 8   FOV 161 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F161_reg.tif\n",
      "cycle 8   FOV 162 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F162_reg.tif\n",
      "cycle 8   FOV 163 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F163_reg.tif\n",
      "cycle 8   FOV 164 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F164_reg.tif\n",
      "cycle 8   FOV 165 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F165_reg.tif\n",
      "cycle 8   FOV 166 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F166_reg.tif\n",
      "cycle 8   FOV 167 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F167_reg.tif\n",
      "cycle 8   FOV 168 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F168_reg.tif\n",
      "cycle 8   FOV 169 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F169_reg.tif\n",
      "cycle 8   FOV 170 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F170_reg.tif\n",
      "cycle 8   FOV 171 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F171_reg.tif\n",
      "cycle 8   FOV 172 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F172_reg.tif\n",
      "cycle 8   FOV 173 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F173_reg.tif\n",
      "cycle 8   FOV 174 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F174_reg.tif\n",
      "cycle 8   FOV 175 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F175_reg.tif\n",
      "cycle 8   FOV 176 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F176_reg.tif\n",
      "cycle 8   FOV 177 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F177_reg.tif\n",
      "cycle 8   FOV 178 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F178_reg.tif\n",
      "cycle 8   FOV 179 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F179_reg.tif\n",
      "cycle 8   FOV 180 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F180_reg.tif\n",
      "cycle 8   FOV 181 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F181_reg.tif\n",
      "cycle 8   FOV 182 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F182_reg.tif\n",
      "cycle 8   FOV 183 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F183_reg.tif\n",
      "cycle 8   FOV 184 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F184_reg.tif\n",
      "cycle 8   FOV 185 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F185_reg.tif\n",
      "cycle 8   FOV 186 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F186_reg.tif\n",
      "cycle 8   FOV 187 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F187_reg.tif\n",
      "cycle 8   FOV 188 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F188_reg.tif\n",
      "cycle 8   FOV 189 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F189_reg.tif\n",
      "cycle 8   FOV 190 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F190_reg.tif\n",
      "cycle 8   FOV 191 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F191_reg.tif\n",
      "cycle 8   FOV 192 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F192_reg.tif\n",
      "cycle 8   FOV 193 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F193_reg.tif\n",
      "cycle 8   FOV 194 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F194_reg.tif\n",
      "cycle 8   FOV 195 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F195_reg.tif\n",
      "cycle 8   FOV 196 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F196_reg.tif\n",
      "cycle 8   FOV 197 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F197_reg.tif\n",
      "cycle 8   FOV 198 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F198_reg.tif\n",
      "cycle 8   FOV 199 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F199_reg.tif\n",
      "cycle 8   FOV 200 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F200_reg.tif\n",
      "cycle 8   FOV 201 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F201_reg.tif\n",
      "cycle 8   FOV 202 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F202_reg.tif\n",
      "cycle 8   FOV 203 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F203_reg.tif\n",
      "cycle 8   FOV 204 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F204_reg.tif\n",
      "cycle 8   FOV 205 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F205_reg.tif\n",
      "cycle 8   FOV 206 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F206_reg.tif\n",
      "cycle 8   FOV 207 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F207_reg.tif\n",
      "cycle 8   FOV 208 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F208_reg.tif\n",
      "cycle 8   FOV 209 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F209_reg.tif\n",
      "cycle 8   FOV 210 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F210_reg.tif\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "cycle 8   FOV 211 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F211_reg.tif\n",
      "cycle 8   FOV 212 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F212_reg.tif\n",
      "cycle 8   FOV 213 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F213_reg.tif\n",
      "cycle 8   FOV 214 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F214_reg.tif\n",
      "cycle 8   FOV 215 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F215_reg.tif\n",
      "cycle 8   FOV 216 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F216_reg.tif\n",
      "cycle 8   FOV 217 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F217_reg.tif\n",
      "cycle 8   FOV 218 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F218_reg.tif\n",
      "cycle 8   FOV 219 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F219_reg.tif\n",
      "cycle 8   FOV 220 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F220_reg.tif\n",
      "cycle 8   FOV 221 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F221_reg.tif\n",
      "cycle 8   FOV 222 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F222_reg.tif\n",
      "cycle 8   FOV 223 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F223_reg.tif\n",
      "cycle 8   FOV 224 \n",
      "Saving Registered Images... reg_Cyc_8/Cycle_8_F224_reg.tif\n",
      "cycle 9   FOV 000 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F000_reg.tif\n",
      "cycle 9   FOV 001 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F001_reg.tif\n",
      "cycle 9   FOV 002 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F002_reg.tif\n",
      "cycle 9   FOV 003 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F003_reg.tif\n",
      "cycle 9   FOV 004 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F004_reg.tif\n",
      "cycle 9   FOV 005 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F005_reg.tif\n",
      "cycle 9   FOV 006 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F006_reg.tif\n",
      "cycle 9   FOV 007 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F007_reg.tif\n",
      "cycle 9   FOV 008 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F008_reg.tif\n",
      "cycle 9   FOV 009 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F009_reg.tif\n",
      "cycle 9   FOV 010 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F010_reg.tif\n",
      "cycle 9   FOV 011 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F011_reg.tif\n",
      "cycle 9   FOV 012 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F012_reg.tif\n",
      "cycle 9   FOV 013 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F013_reg.tif\n",
      "cycle 9   FOV 014 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F014_reg.tif\n",
      "cycle 9   FOV 015 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F015_reg.tif\n",
      "cycle 9   FOV 016 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F016_reg.tif\n",
      "cycle 9   FOV 017 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F017_reg.tif\n",
      "cycle 9   FOV 018 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F018_reg.tif\n",
      "cycle 9   FOV 019 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F019_reg.tif\n",
      "cycle 9   FOV 020 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F020_reg.tif\n",
      "cycle 9   FOV 021 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F021_reg.tif\n",
      "cycle 9   FOV 022 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F022_reg.tif\n",
      "cycle 9   FOV 023 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F023_reg.tif\n",
      "cycle 9   FOV 024 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F024_reg.tif\n",
      "cycle 9   FOV 025 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F025_reg.tif\n",
      "cycle 9   FOV 026 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F026_reg.tif\n",
      "cycle 9   FOV 027 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F027_reg.tif\n",
      "cycle 9   FOV 028 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F028_reg.tif\n",
      "cycle 9   FOV 029 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F029_reg.tif\n",
      "cycle 9   FOV 030 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F030_reg.tif\n",
      "cycle 9   FOV 031 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F031_reg.tif\n",
      "cycle 9   FOV 032 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F032_reg.tif\n",
      "cycle 9   FOV 033 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F033_reg.tif\n",
      "cycle 9   FOV 034 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F034_reg.tif\n",
      "cycle 9   FOV 035 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F035_reg.tif\n",
      "cycle 9   FOV 036 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F036_reg.tif\n",
      "cycle 9   FOV 037 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F037_reg.tif\n",
      "cycle 9   FOV 038 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F038_reg.tif\n",
      "cycle 9   FOV 039 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F039_reg.tif\n",
      "cycle 9   FOV 040 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F040_reg.tif\n",
      "cycle 9   FOV 041 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F041_reg.tif\n",
      "cycle 9   FOV 042 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F042_reg.tif\n",
      "cycle 9   FOV 043 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F043_reg.tif\n",
      "cycle 9   FOV 044 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F044_reg.tif\n",
      "cycle 9   FOV 045 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F045_reg.tif\n",
      "cycle 9   FOV 046 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F046_reg.tif\n",
      "cycle 9   FOV 047 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F047_reg.tif\n",
      "cycle 9   FOV 048 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F048_reg.tif\n",
      "cycle 9   FOV 049 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F049_reg.tif\n",
      "cycle 9   FOV 050 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F050_reg.tif\n",
      "cycle 9   FOV 051 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F051_reg.tif\n",
      "cycle 9   FOV 052 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F052_reg.tif\n",
      "cycle 9   FOV 053 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F053_reg.tif\n",
      "cycle 9   FOV 054 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F054_reg.tif\n",
      "cycle 9   FOV 055 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F055_reg.tif\n",
      "cycle 9   FOV 056 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F056_reg.tif\n",
      "cycle 9   FOV 057 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F057_reg.tif\n",
      "cycle 9   FOV 058 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F058_reg.tif\n",
      "cycle 9   FOV 059 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F059_reg.tif\n",
      "cycle 9   FOV 060 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F060_reg.tif\n",
      "cycle 9   FOV 061 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F061_reg.tif\n",
      "cycle 9   FOV 062 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F062_reg.tif\n",
      "cycle 9   FOV 063 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F063_reg.tif\n",
      "cycle 9   FOV 064 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F064_reg.tif\n",
      "cycle 9   FOV 065 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F065_reg.tif\n",
      "cycle 9   FOV 066 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F066_reg.tif\n",
      "cycle 9   FOV 067 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F067_reg.tif\n",
      "cycle 9   FOV 068 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F068_reg.tif\n",
      "cycle 9   FOV 069 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F069_reg.tif\n",
      "cycle 9   FOV 070 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F070_reg.tif\n",
      "cycle 9   FOV 071 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F071_reg.tif\n",
      "cycle 9   FOV 072 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F072_reg.tif\n",
      "cycle 9   FOV 073 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F073_reg.tif\n",
      "cycle 9   FOV 074 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F074_reg.tif\n",
      "cycle 9   FOV 075 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F075_reg.tif\n",
      "cycle 9   FOV 076 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F076_reg.tif\n",
      "cycle 9   FOV 077 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F077_reg.tif\n",
      "cycle 9   FOV 078 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F078_reg.tif\n",
      "cycle 9   FOV 079 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F079_reg.tif\n",
      "cycle 9   FOV 080 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F080_reg.tif\n",
      "cycle 9   FOV 081 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F081_reg.tif\n",
      "cycle 9   FOV 082 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F082_reg.tif\n",
      "cycle 9   FOV 083 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F083_reg.tif\n",
      "cycle 9   FOV 084 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F084_reg.tif\n",
      "cycle 9   FOV 085 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F085_reg.tif\n",
      "cycle 9   FOV 086 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F086_reg.tif\n",
      "cycle 9   FOV 087 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F087_reg.tif\n",
      "cycle 9   FOV 088 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F088_reg.tif\n",
      "cycle 9   FOV 089 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F089_reg.tif\n",
      "cycle 9   FOV 090 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F090_reg.tif\n",
      "cycle 9   FOV 091 \n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F091_reg.tif\n",
      "cycle 9   FOV 092 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F092_reg.tif\n",
      "cycle 9   FOV 093 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F093_reg.tif\n",
      "cycle 9   FOV 094 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F094_reg.tif\n",
      "cycle 9   FOV 095 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F095_reg.tif\n",
      "cycle 9   FOV 096 \n",
      "Saving Registered Images... reg_Cyc_9/Cycle_9_F096_reg.tif\n",
      "cycle 9   FOV 097 \n"
     ]
    }
   ],
   "source": [
    "# # loop through registration\n",
    "for c in allCycles[2:]:    \n",
    "    for fov in allFOVs[100:]: \n",
    "        # read images\n",
    "        ref_name = f'tif/Cycle_0/Cycle_F{fov}.tif' \n",
    "        mov_name = f'tif/Cycle_{c}/Cycle_{c}_F{fov}.tif'\n",
    "        ref = imread(ref_name).astype(np.uint16)\n",
    "        mov = imread(mov_name).astype(np.uint16)\n",
    "        \n",
    "        print(f'cycle {c}   FOV {fov} ')\n",
    "        \n",
    "        ref_max = ref.max(0)\n",
    "        ref_binary = ref_max[0] > threshold_otsu(ref_max[0]) # nuclei\n",
    "        mov_max = mov.max(0)\n",
    "        mov_binary = mov_max[0] > threshold_otsu(mov_max[0]) # nuclei\n",
    "        \n",
    "        sr = StackReg(StackReg.RIGID_BODY) # create instance of stackreg class\n",
    "        tmat = sr.register(ref_binary, mov_binary) # calculate tmat\n",
    "        out = sr.transform(mov_binary)\n",
    "        out = pystackreg.util.to_uint16(out) # make sure to convert later into bool. Save first then convert.\n",
    "        \n",
    "        # save binary images\n",
    "        fname_to_save = f'reg_bin_Cyc_{c}/Cycle_{c}_F{fov}_bin_reg.tif'\n",
    "        tifffile.imwrite(fname_to_save, out, imagej=True, photometric = 'minisblack', metadata={'axes':'YX'})\n",
    "        \n",
    "        # save tmat\n",
    "        np.save(f'tmat_Cyc_{c}/Cycle_{c}_F{fov}_tmat.npy', tmat)\n",
    "        \n",
    "        # REGISTRATION\n",
    "        reg = np.zeros(mov.shape, dtype=np.uint16)\n",
    "        for Z in range(mov.shape[0]):\n",
    "            for ch in range(mov.shape[1]): \n",
    "                reg[Z,ch,...] = sr.transform(mov[Z,ch,...], tmat=tmat)\n",
    "                reg[Z,ch,...] = to_uint16(reg[Z,ch,...])\n",
    "\n",
    "        fname_to_save = f'reg_Cyc_{c}' + f'/Cycle_{c}_F{fov}_reg.tif'\n",
    "        print('Saving Registered Images...', fname_to_save)\n",
    "        \n",
    "        # save registered images\n",
    "        tifffile.imwrite(fname_to_save, reg, imagej=True,\n",
    "                         photometric = 'minisblack',metadata={'axes':'ZCYX'})\n",
    "        "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "1d14a40d",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "9e883b67",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "219a37ed",
   "metadata": {},
   "outputs": [],
   "source": [
    "c='8'; fov = '001'\n",
    "ref = imread(f'tif/Cycle_0/Cycle_F{fov}.tif')\n",
    "mov = imread(f'tif/Cycle_{c}/Cycle_{c}_F{fov}.tif')\n",
    "\n",
    "ref_max = ref.max(0)   # max proj of z for each channel in reference\n",
    "ref_binary = ref_max[0] > threshold_otsu(ref_max[0])  # binarizing for channels - T/F\n",
    "\n",
    "mov_max = mov.max(0)  # max projection by each cycle in for loop (ref above)\n",
    "mov_binary = mov_max[0] > threshold_otsu(mov_max[0]) # binary of moved image\n",
    "\n",
    "out = imread(f'reg_bin_Cyc_{c}/Cycle_{c}_F{fov}_bin_reg.tif')\n",
    "\n",
    "fig, axs = plt.subplots(1,2,figsize = (20,60))\n",
    "axs = axs.ravel()\n",
    "\n",
    "im_reg = np.zeros((2048, 2048,3)) # empty color image\n",
    "im_reg[...,0] = ref_binary\n",
    "im_reg[...,1] = out.astype('bool')\n",
    "    \n",
    "im_orig = np.zeros((2048, 2048,3))\n",
    "im_orig[...,0] = ref_binary\n",
    "im_orig[...,1] = mov_binary\n",
    "    \n",
    "axs[0].imshow(im_orig[:500,:500])   #before reg\n",
    "    \n",
    "axs[1].imshow(im_reg[:500,:500])   #after reg\n",
    "\n",
    "axs[0].title.set_text('Before Registration')\n",
    "axs[1].title.set_text('After Registration')\n",
    "for ax in axs.flat:\n",
    "    ax.set(xlabel='0:1500', ylabel='0:1500')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "cac9fd61",
   "metadata": {},
   "outputs": [],
   "source": [
    "c='9'; fov = '001'\n",
    "ref = imread(f'tif/Cycle_0/Cycle_F{fov}.tif')\n",
    "mov = imread(f'tif/Cycle_{c}/Cycle_{c}_F{fov}.tif')\n",
    "\n",
    "ref_max = ref.max(0)   # max proj of z for each channel in reference\n",
    "ref_binary = ref_max[0] > threshold_otsu(ref_max[0])  # binarizing for channels - T/F\n",
    "\n",
    "mov_max = mov.max(0)  # max projection by each cycle in for loop (ref above)\n",
    "mov_binary = mov_max[0] > threshold_otsu(mov_max[0]) # binary of moved image\n",
    "\n",
    "out = imread(f'reg_bin_Cyc_{c}/Cycle_{c}_F{fov}_bin_reg.tif')\n",
    "\n",
    "fig, axs = plt.subplots(1,2,figsize = (20,60))\n",
    "axs = axs.ravel()\n",
    "\n",
    "im_reg = np.zeros((2048, 2048,3)) # empty color image\n",
    "im_reg[...,0] = ref_binary\n",
    "im_reg[...,1] = out.astype('bool')\n",
    "    \n",
    "im_orig = np.zeros((2048, 2048,3))\n",
    "im_orig[...,0] = ref_binary\n",
    "im_orig[...,1] = mov_binary\n",
    "    \n",
    "axs[0].imshow(im_orig[:500,:500])   #before reg\n",
    "    \n",
    "axs[1].imshow(im_reg[:500,:500])   #after reg\n",
    "\n",
    "axs[0].title.set_text('Before Registration')\n",
    "axs[1].title.set_text('After Registration')\n",
    "for ax in axs.flat:\n",
    "    ax.set(xlabel='0:1500', ylabel='0:1500')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "bbe6c7fc",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
