{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "e07ab359",
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "import tifffile\n",
    "import skimage\n",
    "import numpy as np\n",
    "import shutil"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "c32a4dd3",
   "metadata": {},
   "outputs": [],
   "source": [
    "forder_name=\"20240909_754606_slide19\"\n",
    "cycle_name='bcseq03'\n",
    "linux_server='imagestorage@10.128.30.152'\n",
    "if \"hyb\" in cycle_name:\n",
    "    channel_list=[\"C\", \"G\", \"TxRed\",\"Cy5\", \"DAPI\", \"DIC\"]\n",
    "elif \"bcseq01\" in cycle_name:\n",
    "    channel_list = [\"G\", \"T\", \"A\", \"C\", \"DAPI\"]\n",
    "else:\n",
    "    channel_list = [\"G\", \"T\", \"A\", \"C\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "2c0610d9",
   "metadata": {},
   "outputs": [],
   "source": [
    "work_path=os.getcwd()\n",
    "work_path\n",
    "pos_list=os.listdir(os.path.join(cycle_name))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "c0dacaa7",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Pos1_000_000_1\n",
      "Pos1_000_001_1\n",
      "Pos1_000_002_1\n",
      "Pos1_000_003_1\n",
      "Pos1_000_004_1\n",
      "Pos1_000_005_1\n",
      "Pos1_000_006_1\n",
      "Pos1_000_007_1\n",
      "Pos1_001_000_1\n",
      "Pos1_001_001_1\n",
      "Pos1_001_002_1\n",
      "Pos1_001_003_1\n",
      "Pos1_001_004_1\n",
      "Pos1_001_005_1\n",
      "Pos1_001_006_1\n",
      "Pos1_001_007_1\n",
      "Pos1_002_000_1\n",
      "Pos1_002_001_1\n",
      "Pos1_002_002_1\n",
      "Pos1_002_003_1\n",
      "Pos1_002_004_1\n",
      "Pos1_002_005_1\n",
      "Pos1_002_006_1\n",
      "Pos1_002_007_1\n",
      "Pos1_003_000_1\n",
      "Pos1_003_001_1\n",
      "Pos1_003_002_1\n",
      "Pos1_003_003_1\n",
      "Pos1_003_004_1\n",
      "Pos1_003_005_1\n",
      "Pos1_003_006_1\n",
      "Pos1_003_007_1\n",
      "Pos1_004_000_1\n",
      "Pos1_004_001_1\n",
      "Pos1_004_002_1\n",
      "Pos1_004_003_1\n",
      "Pos1_004_004_1\n",
      "Pos1_004_005_1\n",
      "Pos1_004_006_1\n",
      "Pos1_004_007_1\n",
      "Pos1_005_000_1\n",
      "Pos1_005_001_1\n",
      "Pos1_005_002_1\n",
      "Pos1_005_003_1\n",
      "Pos1_005_004_1\n",
      "Pos1_005_005_1\n",
      "Pos1_005_006_1\n",
      "Pos1_005_007_1\n",
      "Pos1_006_000_1\n",
      "Pos1_006_001_1\n",
      "Pos1_006_002_1\n",
      "Pos1_006_003_1\n",
      "Pos1_006_004_1\n",
      "Pos1_006_005_1\n",
      "Pos1_006_006_1\n",
      "Pos1_006_007_1\n",
      "Pos1_007_000_1\n",
      "Pos1_007_001_1\n",
      "Pos1_007_002_1\n",
      "Pos1_007_003_1\n",
      "Pos1_007_004_1\n",
      "Pos1_007_005_1\n",
      "Pos1_007_006_1\n",
      "Pos1_007_007_1\n",
      "Pos1_008_000_1\n",
      "Pos1_008_001_1\n",
      "Pos1_008_002_1\n",
      "Pos1_008_003_1\n",
      "Pos1_008_004_1\n",
      "Pos1_008_005_1\n",
      "Pos1_008_006_1\n",
      "Pos1_008_007_1\n",
      "Pos1_009_000_1\n",
      "Pos1_009_001_1\n",
      "Pos1_009_002_1\n",
      "Pos1_009_003_1\n",
      "Pos1_009_004_1\n",
      "Pos1_009_005_1\n",
      "Pos1_009_006_1\n",
      "Pos1_009_007_1\n",
      "Pos1_010_000_1\n",
      "Pos1_010_001_1\n",
      "Pos1_010_002_1\n",
      "Pos1_010_003_1\n",
      "Pos1_010_004_1\n",
      "Pos1_010_005_1\n",
      "Pos1_010_006_1\n",
      "Pos1_010_007_1\n",
      "Pos1_011_000_1\n",
      "Pos1_011_001_1\n",
      "Pos1_011_002_1\n",
      "Pos1_011_003_1\n",
      "Pos1_011_004_1\n",
      "Pos1_011_005_1\n",
      "Pos1_011_006_1\n",
      "Pos1_011_007_1\n",
      "Pos2_000_000_1\n",
      "Pos2_000_001_1\n",
      "Pos2_000_002_1\n",
      "Pos2_000_003_1\n",
      "Pos2_000_004_1\n",
      "Pos2_000_005_1\n",
      "Pos2_000_006_1\n",
      "Pos2_000_007_1\n",
      "Pos2_001_000_1\n",
      "Pos2_001_001_1\n",
      "Pos2_001_002_1\n",
      "Pos2_001_003_1\n",
      "Pos2_001_004_1\n",
      "Pos2_001_005_1\n",
      "Pos2_001_006_1\n",
      "Pos2_001_007_1\n",
      "Pos2_002_000_1\n",
      "Pos2_002_001_1\n",
      "Pos2_002_002_1\n",
      "Pos2_002_003_1\n",
      "Pos2_002_004_1\n",
      "Pos2_002_005_1\n",
      "Pos2_002_006_1\n",
      "Pos2_002_007_1\n",
      "Pos2_003_000_1\n",
      "Pos2_003_001_1\n",
      "Pos2_003_002_1\n",
      "Pos2_003_003_1\n",
      "Pos2_003_004_1\n",
      "Pos2_003_005_1\n",
      "Pos2_003_006_1\n",
      "Pos2_003_007_1\n",
      "Pos2_004_000_1\n",
      "Pos2_004_001_1\n",
      "Pos2_004_002_1\n",
      "Pos2_004_003_1\n",
      "Pos2_004_004_1\n",
      "Pos2_004_005_1\n",
      "Pos2_004_006_1\n",
      "Pos2_004_007_1\n",
      "Pos2_005_000_1\n",
      "Pos2_005_001_1\n",
      "Pos2_005_002_1\n",
      "Pos2_005_003_1\n",
      "Pos2_005_004_1\n",
      "Pos2_005_005_1\n",
      "Pos2_005_006_1\n",
      "Pos2_005_007_1\n",
      "Pos2_006_000_1\n",
      "Pos2_006_001_1\n",
      "Pos2_006_002_1\n",
      "Pos2_006_003_1\n",
      "Pos2_006_004_1\n",
      "Pos2_006_005_1\n",
      "Pos2_006_006_1\n",
      "Pos2_006_007_1\n",
      "Pos2_007_000_1\n",
      "Pos2_007_001_1\n",
      "Pos2_007_002_1\n",
      "Pos2_007_003_1\n",
      "Pos2_007_004_1\n",
      "Pos2_007_005_1\n",
      "Pos2_007_006_1\n",
      "Pos2_007_007_1\n",
      "Pos2_008_000_1\n",
      "Pos2_008_001_1\n",
      "Pos2_008_002_1\n",
      "Pos2_008_003_1\n",
      "Pos2_008_004_1\n",
      "Pos2_008_005_1\n",
      "Pos2_008_006_1\n",
      "Pos2_008_007_1\n",
      "Pos2_009_000_1\n",
      "Pos2_009_001_1\n",
      "Pos2_009_002_1\n",
      "Pos2_009_003_1\n",
      "Pos2_009_004_1\n",
      "Pos2_009_005_1\n",
      "Pos2_009_006_1\n",
      "Pos2_009_007_1\n",
      "Pos2_010_000_1\n",
      "Pos2_010_001_1\n",
      "Pos2_010_002_1\n",
      "Pos2_010_003_1\n",
      "Pos2_010_004_1\n",
      "Pos2_010_005_1\n",
      "Pos2_010_006_1\n",
      "Pos2_010_007_1\n",
      "Pos3_000_000_1\n",
      "Pos3_000_001_1\n",
      "Pos3_000_002_1\n",
      "Pos3_000_003_1\n",
      "Pos3_000_004_1\n",
      "Pos3_000_005_1\n",
      "Pos3_000_006_1\n",
      "Pos3_000_007_1\n",
      "Pos3_001_000_1\n",
      "Pos3_001_001_1\n",
      "Pos3_001_002_1\n",
      "Pos3_001_003_1\n",
      "Pos3_001_004_1\n",
      "Pos3_001_005_1\n",
      "Pos3_001_006_1\n",
      "Pos3_001_007_1\n",
      "Pos3_002_000_1\n",
      "Pos3_002_001_1\n",
      "Pos3_002_002_1\n",
      "Pos3_002_003_1\n",
      "Pos3_002_004_1\n",
      "Pos3_002_005_1\n",
      "Pos3_002_006_1\n",
      "Pos3_002_007_1\n",
      "Pos3_003_000_1\n",
      "Pos3_003_001_1\n",
      "Pos3_003_002_1\n",
      "Pos3_003_003_1\n",
      "Pos3_003_004_1\n",
      "Pos3_003_005_1\n",
      "Pos3_003_006_1\n",
      "Pos3_003_007_1\n",
      "Pos3_004_000_1\n",
      "Pos3_004_001_1\n",
      "Pos3_004_002_1\n",
      "Pos3_004_003_1\n",
      "Pos3_004_004_1\n",
      "Pos3_004_005_1\n",
      "Pos3_004_006_1\n",
      "Pos3_004_007_1\n",
      "Pos3_005_000_1\n",
      "Pos3_005_001_1\n",
      "Pos3_005_002_1\n",
      "Pos3_005_003_1\n",
      "Pos3_005_004_1\n",
      "Pos3_005_005_1\n",
      "Pos3_005_006_1\n",
      "Pos3_005_007_1\n",
      "Pos3_006_000_1\n",
      "Pos3_006_001_1\n",
      "Pos3_006_002_1\n",
      "Pos3_006_003_1\n",
      "Pos3_006_004_1\n",
      "Pos3_006_005_1\n",
      "Pos3_006_006_1\n",
      "Pos3_006_007_1\n",
      "Pos3_007_000_1\n",
      "Pos3_007_001_1\n",
      "Pos3_007_002_1\n",
      "Pos3_007_003_1\n",
      "Pos3_007_004_1\n",
      "Pos3_007_005_1\n",
      "Pos3_007_006_1\n",
      "Pos3_007_007_1\n",
      "Pos3_008_000_1\n",
      "Pos3_008_001_1\n",
      "Pos3_008_002_1\n",
      "Pos3_008_003_1\n",
      "Pos3_008_004_1\n",
      "Pos3_008_005_1\n",
      "Pos3_008_006_1\n",
      "Pos3_008_007_1\n",
      "Pos3_009_000_1\n",
      "Pos3_009_001_1\n",
      "Pos3_009_002_1\n",
      "Pos3_009_003_1\n",
      "Pos3_009_004_1\n",
      "Pos3_009_005_1\n",
      "Pos3_009_006_1\n",
      "Pos3_009_007_1\n",
      "Pos3_010_000_1\n",
      "Pos3_010_001_1\n",
      "Pos3_010_002_1\n",
      "Pos3_010_003_1\n",
      "Pos3_010_004_1\n",
      "Pos3_010_005_1\n",
      "Pos3_010_006_1\n",
      "Pos3_010_007_1\n",
      "Pos4_000_000_1\n",
      "Pos4_000_001_1\n",
      "Pos4_000_002_1\n",
      "Pos4_000_003_1\n",
      "Pos4_000_004_1\n",
      "Pos4_000_005_1\n",
      "Pos4_000_006_1\n",
      "Pos4_000_007_1\n",
      "Pos4_001_000_1\n",
      "Pos4_001_001_1\n",
      "Pos4_001_002_1\n",
      "Pos4_001_003_1\n",
      "Pos4_001_004_1\n",
      "Pos4_001_005_1\n",
      "Pos4_001_006_1\n",
      "Pos4_001_007_1\n",
      "Pos4_002_000_1\n",
      "Pos4_002_001_1\n",
      "Pos4_002_002_1\n",
      "Pos4_002_003_1\n",
      "Pos4_002_004_1\n",
      "Pos4_002_005_1\n",
      "Pos4_002_006_1\n",
      "Pos4_002_007_1\n",
      "Pos4_003_000_1\n",
      "Pos4_003_001_1\n",
      "Pos4_003_002_1\n",
      "Pos4_003_003_1\n",
      "Pos4_003_004_1\n",
      "Pos4_003_005_1\n",
      "Pos4_003_006_1\n",
      "Pos4_003_007_1\n",
      "Pos4_004_000_1\n",
      "Pos4_004_001_1\n",
      "Pos4_004_002_1\n",
      "Pos4_004_003_1\n",
      "Pos4_004_004_1\n",
      "Pos4_004_005_1\n",
      "Pos4_004_006_1\n",
      "Pos4_004_007_1\n",
      "Pos4_005_000_1\n",
      "Pos4_005_001_1\n",
      "Pos4_005_002_1\n",
      "Pos4_005_003_1\n",
      "Pos4_005_004_1\n",
      "Pos4_005_005_1\n",
      "Pos4_005_006_1\n",
      "Pos4_005_007_1\n",
      "Pos4_006_000_1\n",
      "Pos4_006_001_1\n",
      "Pos4_006_002_1\n",
      "Pos4_006_003_1\n",
      "Pos4_006_004_1\n",
      "Pos4_006_005_1\n",
      "Pos4_006_006_1\n",
      "Pos4_006_007_1\n",
      "Pos4_007_000_1\n",
      "Pos4_007_001_1\n",
      "Pos4_007_002_1\n",
      "Pos4_007_003_1\n",
      "Pos4_007_004_1\n",
      "Pos4_007_005_1\n",
      "Pos4_007_006_1\n",
      "Pos4_007_007_1\n",
      "Pos4_008_000_1\n",
      "Pos4_008_001_1\n",
      "Pos4_008_002_1\n",
      "Pos4_008_003_1\n",
      "Pos4_008_004_1\n",
      "Pos4_008_005_1\n",
      "Pos4_008_006_1\n",
      "Pos4_008_007_1\n",
      "Pos4_009_000_1\n",
      "Pos4_009_001_1\n",
      "Pos4_009_002_1\n",
      "Pos4_009_003_1\n",
      "Pos4_009_004_1\n",
      "Pos4_009_005_1\n",
      "Pos4_009_006_1\n",
      "Pos4_009_007_1\n",
      "Pos4_010_000_1\n",
      "Pos4_010_001_1\n",
      "Pos4_010_002_1\n",
      "Pos4_010_003_1\n",
      "Pos4_010_004_1\n",
      "Pos4_010_005_1\n",
      "Pos4_010_006_1\n",
      "Pos4_010_007_1\n"
     ]
    }
   ],
   "source": [
    "for pos in pos_list:\n",
    "    print(pos)\n",
    "    pos_name=pos[0:-2]\n",
    "    tif_name=pos_name+\"_NDTiffStack.tif\"\n",
    "    img=skimage.io.imread(os.path.join(cycle_name,pos,tif_name))\n",
    "    img=np.reshape(img,(len(channel_list),20,3200,3200))\n",
    "    img_max = []\n",
    "    for i in range(len(channel_list)):\n",
    "            if channel_list[i]!='DIC':\n",
    "                img_max.append(np.max(img[i, :], axis=(0)))\n",
    "            else:\n",
    "                img_max.append(img[i, 9,:,:])\n",
    "    tifffile.imwrite(os.path.join(cycle_name,pos,cycle_name+\".tif\"),np.array(img_max), photometric='minisblack')\n",
    "#     max_name = 'MAX_' + pos_name\n",
    "#     server_name=cycle_name+'.tif'\n",
    "#     image_local_path=os.path.join(work_path,cycle_name,pos,server_name)\n",
    "#     server_path='/mnt/imagestorage/'+forder_name+\"/\"+\"MAX_\" +pos\n",
    "#     cmd2=\"scp \"+image_local_path+\" \"+linux_server+\":\"+server_path+\"/\"+server_name\n",
    "#     os.system(cmd2)\n",
    "# shutil.rmtree(cycle_name)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "2277b794",
   "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.8.18"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
