DOI: 10.5061/dryad.2280gb5zd
title: ThermoCyte: an inexpensive open-source temperature control system for in vitro live cell imaging

description: Live-cell imaging is a common technique in microscopy to investigate
 dynamic cellular behaviour and permits the accurate and relevant analysis
 of a wide range of cellular and tissue parameters, such as motility, cell
 division, wound healing responses, and calcium (Ca2+) signalling in cell
 lines, primary cell cultures, and ex vivo preparations. Furthermore, this
 can take place under many experimental conditions, making live-cell
 imaging indispensable for biological research. Systems which maintain
 cells at physiological conditions outside of a CO2 incubator are often
 bulky, expensive, and use proprietary components. Here we present an
 inexpensive, open-source temperature control system for in vitro live cell
 imaging. Our system ‘ThermoCyte’, which is constructed from standard
 electronic components, enables precise tuning, control, and logging of a
 temperature ‘set point’ for imaging cells at physiological temperature. We
 achieved stable thermal dynamics, with reliable temperature cycling and a
 standard deviation of 0.42°C over 1 hour. Furthermore, the device is
 modular in nature, and is adaptable to the researcher's specific
 needs. This represents simple, inexpensive, and reliable tool for
 laboratories to carry out custom live-cell imaging protocols, on a
 standard lab bench, at physiological temperature.
description: <strong>3D-printed stage-top</strong>
 (Fig. 1, B) was designed using Autodesk
 TinkerCad, and is made available as STL files.
 <strong>ThermoCyte code </strong>(Fig. 1, C) was
 written in the Arduino
 IDE. All code is included unedited as .ino files.
 <strong>Temperature values</strong> from ThermoCyte
 (Fig. 3, Fig. 9, C) were collected by logging raw temperature readings
 detected by Arduino thermocouples using 'putty', a free
 SSH and Telnet client. Logs are made available as comma-separated values
 file (.csv). <strong>Circularity
 values</strong> (Fig. 5, E) were calculated using ImageJ 'shape descriptors' function. Circularity values are included as a comma-separated values (.csv) <strong>Pixel intensity traces</strong> relating to calcium transients (Fig. 6, Fig. 8) were extracted from raw images. Photobleaching was corrected using napari bleach correct in Napari image viewer, specifically the 'histogram matching' function (python 3). Motion artefact was corrected using moco plugin in FIJI. Cells were segmented as objects using cellpose 2.0 (Python 3). Mean grey intensity values for each cell were extracted using FIJI, and these values for each cell (over time) are provided unedited as a comma-separated values (.csv). <strong>Calcium Peak analysis</strong> (Fig. 7 A-D, Fig 8 C, D) was generated from raw pixel intensity data, provided in (5) above. This was carried out using custom Python code, supplied here as .py files (python 3). <strong>Statistical analysis of calcium peak data</strong> (Fig. 7 A-D, Fig 8 C, D) was carried out using custom python code, supplied here as .py files (python 3).<br> 
description: <strong>3D-printed files </strong> -
 Autodesk
 Tinkercad, Prusa
 Slicer <strong>ThermoCyte code
 </strong>-<strong> </strong>Arduino
 IDE<strong>  </strong> 
 <strong>Temperature values</strong> - Microsoft
 Excel <strong>Circularity
 Values</strong> - Microsoft Excel 
 <strong>Pixel Intensity Traces</strong> - Microsoft Excel,
 python 3,
 Important Python packages: Spyder IDE,
 NumPy, SciPy, Statsmodels,  Matplotlib <strong>Calcium Peak analysis</strong> - Microsoft Excel, python 3, Important Python packages: Spyder IDE, NumPy, SciPy, Statsmodels,  Matplotlib <strong>Statistical analysis of calcium peak data </strong>-<strong>  </strong>Microsoft Excel, python 3, Major Python packages: Spyder IDE, NumPy, SciPy, Statsmodels,  Matplotlib
description: ## ThermoCyte: an inexpensive open-source temperature control system for
 in vitro live cell imaging *** ## All raw data used in the paper has been
 uploaded to the Dryad and Zenodo repositories. The data is organised based
 on order of figures (see below). In brief, data uploaded includes our
 3D-printed stage-top, all Arduino and Python code, all logged raw
 ThermoCyte temperature values, all BV2 cell circularity values, and all
 raw BV2 cell pixel intensity traces. ## Repository file structure detailed
 below: (1) 3D-printed stage-top (Fig. 1, B) was designed using Autodesk
 TinkerCad, and is made available as an STL file. Open the file using
 TinkerCad or Prusa Slicer, or a 3D-printing slicing software of your
 choice that supports STL files (most). (2) ThermoCyte code (Fig. 1, C) was
 written in the Arduino IDE. All code is included unedited as .ino files.
 Open this using Arduino IDE. (3, a-d) Temperature values (degrees Celcius)
 from ThermoCyte (Fig. 3, Fig. 9, C) were collected by logging raw
 temperature readings at 1Hz (1 reading per second) detected by Arduino
 thermocouples using 'putty', a free SSH and Telnet client. Logs
 at are included as comma-separated values files (.csv), containing
 temperature values. Column 'A' in a-c refers to dish
 temperature, and column 'B' refers to waterblock temperature. In
 d, column 'B' refers to dish temperature. Integers in column
 'A' in a-d are seconds, for Excel graphing purposes only, and
 can be discarded if necessary. Open these files with Microsoft Excel or
 Python. (4, a-b) Circularity values (no units) (Fig. 5, E) were calculated
 using FIJI (ImageJ) 'shape descriptors' function. Circularity
 values are included as comma-separated values files (.csv). Open these
 with Microsoft Excel or Python. (5, a-h) Pixel intensity traces (arbitrary
 units) (Fig. 6, Fig. 8) were extracted from raw images. Photobleaching was
 corrected using napari bleach correct in Napari image viewer, specifically
 using the 'histogram matching' function (python 3). Motion
 artefact was corrected using moco plugin in FIJI. Cells were segmented as
 objects using cellpose 2.0 (Python 3). Mean grey intensity values for each
 cell were extracted using FIJI 'multi measure' function, and
 mean grey values for each cell (over time) are included as comma-separated
 values files (.csv). Open these in Microsfot Excel or Python. (6) Calcium
 Peak analysis (Fig. 7 A-D, Fig 8 C, D) was generated from raw pixel
 intensity data, provided in (5 a-h) above. This was carried out using
 custom Python code, supplied here as .py files. Open this using python 3;
 we recommend the 'Anaconda' distribution of Python. (7)
 Statistical analysis of calcium peak data (Fig. 7 A-D, Fig 8 C, D) was
 carried out using custom python code, supplied here as .py files. Open
 this using python 3; we recommend the 'Anaconda' distribution of
 Python. ## Sharing/Access information Data may be accessed from Dryad and
 Zenodo. O'Carroll, Ross et al. (2023), ThermoCyte: an inexpensive
 open-source temperature control system for in vitro live cell imaging,
 Dryad, Dataset, https://doi.org/10.5061/dryad.2280gb5zd Novel unpublished
 data was generated in the Dooely Lab, University College Dublin, Dublin,
 Ireland. ## Code/Software Three scripts are included in the repository: 1
 - ThermoCyte code. This Arduino code ('sketch') should be
 uploaded onto an Arduino Uno rev 3.0, with the Arduino pinout illustrated
 in Fig. 1, C. Alternatively, you can adapt the code to your own Arduino
 pinout. The 'LiquidCrystal I2C' library by Frank de Brabander
 will be required if you are using an I2C LCD. This code is responsible for
 the main PID (proportional, integral, derivateive) algorithm that
 ThermoCyte uses to maintain waterblock temperature. It was adapted from
 code from https://electronoobs.com/eng\_arduino\_tut24.php. 2 - Calcium
 Imaging analysis code. This Python code is responsible for processing raw
 pixel intensity data (5, a-h) from FIJI (imageJ) and performing basic
 analysis described in the manuscript. 3 - Calcium Imaging analysis and
 statistics code. This Python code is responsible for processing raw pixel
 intensity data ((5, a-h)) from FIJI (imageJ), performing basic analysis
 described in the manuscript, as well as statistical analysis of XY scatter
 plots (Fig. 7, A and Fig. 8, C). The Anaconda distribution includes most
 packages needed for our calcium imaging analysis code to run. The package
 list for our environment is detailed below. *** ####### Conda environment
 package list - Python 3.9.16 ######## \_anaconda\_depends 2023.03 py39\_0
 \_ipyw\_jlab\_nb\_ext\_conf 0.1.0 py39haa95532\_0 alabaster 0.7.12
 pyhd3eb1b0\_0 anaconda custom py39\_1 anaconda-client 1.11.1
 py39haa95532\_0 anaconda-navigator 2.3.1 py39haa95532\_0 anyio 3.5.0
 py39haa95532\_0 appdirs 1.4.4 pyhd3eb1b0\_0 argon2-cffi 21.3.0
 pyhd3eb1b0\_0 argon2-cffi-bindings 21.2.0 py39h2bbff1b\_0 arrow 1.2.3
 py39haa95532\_1 astroid 2.14.2 py39haa95532\_0 astropy 5.1 py39h080aedc\_0
 asttokens 2.0.5 pyhd3eb1b0\_0 atomicwrites 1.4.0 py\_0 attrs 22.1.0
 py39haa95532\_0 automat 20.2.0 py\_0 autopep8 1.6.0 pyhd3eb1b0\_1 babel
 2.11.0 py39haa95532\_0 backcall 0.2.0 pyhd3eb1b0\_0 backports 1.1
 pyhd3eb1b0\_0 backports.functools\_lru\_cache 1.6.4 pyhd3eb1b0\_0
 backports.tempfile 1.0 pyhd3eb1b0\_1 backports.weakref 1.0.post1 py\_1
 bcrypt 3.2.0 py39h2bbff1b\_1 beautifulsoup4 4.11.1 py39haa95532\_0
 binaryornot 0.4.4 pyhd3eb1b0\_1 black 22.6.0 py39haa95532\_0 blas 1.0 mkl
 bleach 4.1.0 pyhd3eb1b0\_0 blosc 1.21.3 h6c2663c\_0 bokeh 2.4.3
 py39haa95532\_0 bottleneck 1.3.5 py39h080aedc\_0 brotli 1.0.9 h2bbff1b\_7
 brotli-bin 1.0.9 h2bbff1b\_7 brotlipy 0.7.0 py39h2bbff1b\_1003 bzip2 1.0.8
 he774522\_0 ca-certificates 2023.01.10 haa95532\_0 certifi 2022.12.7
 py39haa95532\_0 cffi 1.15.1 py39h2bbff1b\_3 cfitsio 3.470 h2bbff1b\_7
 chardet 4.0.0 py39haa95532\_1003 charls 2.2.0 h6c2663c\_0
 charset-normalizer 2.0.4 pyhd3eb1b0\_0 click 8.0.4 py39haa95532\_0
 cloudpickle 2.0.0 pyhd3eb1b0\_0 clyent 1.2.2 py39haa95532\_1 colorama
 0.4.6 py39haa95532\_0 colorcet 3.0.1 py39haa95532\_0 comm 0.1.2
 py39haa95532\_0 conda 23.1.0 py39haa95532\_0 conda-build 3.24.0
 py39haa95532\_0 conda-content-trust 0.1.3 py39haa95532\_0 conda-env 2.6.0
 haa95532\_1 conda-package-handling 2.0.2 py39haa95532\_0
 conda-package-streaming 0.7.0 py39haa95532\_0 conda-repo-cli 1.0.27
 py39haa95532\_0 conda-token 0.4.0 pyhd3eb1b0\_0 conda-verify 3.4.2 py\_1
 console\_shortcut 0.1.1 4 constantly 15.1.0 pyh2b92418\_0 contourpy 1.0.5
 py39h59b6b97\_0 cookiecutter 1.7.3 pyhd3eb1b0\_0 cryptography 39.0.1
 py39h21b164f\_0 cssselect 1.1.0 pyhd3eb1b0\_0 curl 7.88.1 h2bbff1b\_0
 cycler 0.11.0 pyhd3eb1b0\_0 cytoolz 0.12.0 py39h2bbff1b\_0 daal4py
 2023.0.2 py39h757b272\_0 dal 2023.0.1 h59b6b97\_26646 dask 2022.2.1
 pyhd3eb1b0\_0 dask-core 2022.2.1 pyhd3eb1b0\_0 datashader 0.14.4
 py39haa95532\_0 datashape 0.5.4 py39haa95532\_1 debugpy 1.5.1
 py39hd77b12b\_0 decorator 5.1.1 pyhd3eb1b0\_0 defusedxml 0.7.1
 pyhd3eb1b0\_0 diff-match-patch 20200713 pyhd3eb1b0\_0 dill 0.3.6
 py39haa95532\_0 distributed 2022.2.1 pyhd3eb1b0\_0 docstring-to-markdown
 0.11 py39haa95532\_0 docutils 0.18.1 py39haa95532\_3 entrypoints 0.4
 py39haa95532\_0 et\_xmlfile 1.1.0 py39haa95532\_0 executing 0.8.3
 pyhd3eb1b0\_0 filelock 3.9.0 py39haa95532\_0 flake8 6.0.0 py39haa95532\_0
 flask 2.2.2 py39haa95532\_0 flit-core 3.8.0 py39haa95532\_0 fonttools
 4.25.0 pyhd3eb1b0\_0 freetype 2.12.1 ha860e81\_0 fsspec 2023.3.0
 py39haa95532\_0 future 0.18.3 py39haa95532\_0 gensim 4.3.0 py39hd77b12b\_0
 giflib 5.2.1 h8cc25b3\_3 git 2.34.1 haa95532\_0 glib 2.69.1 h5dc1a3c\_2
 glob2 0.7 pyhd3eb1b0\_0 greenlet 2.0.1 py39hd77b12b\_0 gst-plugins-base
 1.18.5 h9e645db\_0 gstreamer 1.18.5 hd78058f\_0 h5py 3.7.0 py39h3de5c98\_0
 hdf5 1.10.6 h1756f20\_1 heapdict 1.0.1 pyhd3eb1b0\_0 holoviews 1.15.4
 py39haa95532\_0 huggingface\_hub 0.10.1 py39haa95532\_0 hvplot 0.8.2
 py39haa95532\_0 hyperlink 21.0.0 pyhd3eb1b0\_0 icc\_rt 2022.1.0
 h6049295\_2 icu 58.2 ha925a31\_3 idna 3.4 py39haa95532\_0 imagecodecs
 2021.8.26 py39h319e4f4\_2 imageio 2.26.0 py39haa95532\_0 imagesize 1.4.1
 py39haa95532\_0 imbalanced-learn 0.10.1 py39haa95532\_0 importlib-metadata
 6.0.0 py39haa95532\_0 importlib\_metadata 6.0.0 hd3eb1b0\_0
 importlib\_resources 5.2.0 pyhd3eb1b0\_1 incremental 21.3.0 pyhd3eb1b0\_0
 inflection 0.5.1 py39haa95532\_0 iniconfig 1.1.1 pyhd3eb1b0\_0 intake
 0.6.8 py39haa95532\_0 intel-openmp 2021.4.0 haa95532\_3556 intervaltree
 3.1.0 pyhd3eb1b0\_0 ipykernel 6.19.2 py39hd4e2768\_0 ipython 8.10.0
 py39haa95532\_0 ipython\_genutils 0.2.0 pyhd3eb1b0\_1 ipywidgets 8.0.4
 py39haa95532\_0 isort 5.9.3 pyhd3eb1b0\_0 itemadapter 0.3.0 pyhd3eb1b0\_0
 itemloaders 1.0.4 pyhd3eb1b0\_1 itsdangerous 2.0.1 pyhd3eb1b0\_0
 jaraco.classes 3.2.1 pyhd3eb1b0\_0 jedi 0.18.1 py39haa95532\_1 jellyfish
 0.9.0 py39h2bbff1b\_0 jinja2 3.1.2 py39haa95532\_0 jinja2-time 0.2.0
 pyhd3eb1b0\_3 jmespath 0.10.0 pyhd3eb1b0\_0 joblib 1.1.1 py39haa95532\_0
 jpeg 9e h2bbff1b\_1 jq 1.6 haa95532\_1 json5 0.9.6 pyhd3eb1b0\_0
 jsonschema 4.17.3 py39haa95532\_0 jupyter 1.0.0 py39haa95532\_8
 jupyter\_client 7.4.9 py39haa95532\_0 jupyter\_console 6.6.2
 py39haa95532\_0 jupyter\_core 5.2.0 py39haa95532\_0 jupyter\_server 1.23.4
 py39haa95532\_0 jupyterlab 3.5.3 py39haa95532\_0 jupyterlab\_pygments
 0.1.2 py\_0 jupyterlab\_server 2.19.0 py39haa95532\_0 jupyterlab\_widgets
 3.0.5 py39haa95532\_0 jxrlib 1.1 he774522\_2 keyring 23.13.1
 py39haa95532\_0 kiwisolver 1.4.4 py39hd77b12b\_0 lazy-object-proxy 1.6.0
 py39h2bbff1b\_0 lcms2 2.12 h83e58a3\_0 lerc 3.0 hd77b12b\_0 libaec 1.0.4
 h33f27b4\_1 libarchive 3.6.2 hebabd0d\_0 libbrotlicommon 1.0.9 h2bbff1b\_7
 libbrotlidec 1.0.9 h2bbff1b\_7 libbrotlienc 1.0.9 h2bbff1b\_7 libclang
 12.0.0 default\_h627e005\_2 libcurl 7.88.1 h86230a5\_0 libdeflate 1.17
 h2bbff1b\_0 libffi 3.4.2 hd77b12b\_6 libiconv 1.16 h2bbff1b\_2 liblief
 0.12.3 hd77b12b\_0 libogg 1.3.5 h2bbff1b\_1 libpng 1.6.39 h8cc25b3\_0
 libsodium 1.0.18 h62dcd97\_0 libspatialindex 1.9.3 h6c2663c\_0 libssh2
 1.10.0 hcd4344a\_0 libtiff 4.5.0 h6c2663c\_2 libuv 1.44.2 h2bbff1b\_0
 libvorbis 1.3.7 he774522\_0 libwebp 1.2.4 hbc33d0d\_1 libwebp-base 1.2.4
 h2bbff1b\_1 libxml2 2.9.14 h0ad7f3c\_0 libxslt 1.1.35 h2bbff1b\_0
 libzopfli 1.0.3 ha925a31\_0 llvmlite 0.39.1 py39h23ce68f\_0 locket 1.0.0
 py39haa95532\_0 lxml 4.9.1 py39h1985fb9\_0 lz4-c 1.9.4 h2bbff1b\_0 lzo
 2.10 he774522\_2 m2-msys2-runtime 2.5.0.17080.65c939c 3 m2-patch 2.7.5 2
 m2w64-libwinpthread-git 5.0.0.4634.697f757 2 markdown 3.4.1
 py39haa95532\_0 markupsafe 2.1.1 py39h2bbff1b\_0 matplotlib 3.7.1
 py39haa95532\_1 matplotlib-base 3.7.1 py39hf11a4ad\_1 matplotlib-inline
 0.1.6 py39haa95532\_0 mccabe 0.7.0 pyhd3eb1b0\_0 menuinst 1.4.19
 py39h59b6b97\_0 mistune 0.8.4 py39h2bbff1b\_1000 mkl 2021.4.0
 haa95532\_640 mkl-service 2.4.0 py39h2bbff1b\_0 mkl\_fft 1.3.1
 py39h277e83a\_0 mkl\_random 1.2.2 py39hf11a4ad\_0 mock 4.0.3 pyhd3eb1b0\_0
 more-itertools 8.12.0 pyhd3eb1b0\_0 mpmath 1.2.1 py39haa95532\_0
 msgpack-python 1.0.3 py39h59b6b97\_0 msys2-conda-epoch 20160418 1
 multipledispatch 0.6.0 py39haa95532\_0 munkres 1.1.4 py\_0
 mypy\_extensions 0.4.3 py39haa95532\_1 navigator-updater 0.3.0
 py39haa95532\_0 nbclassic 0.5.2 py39haa95532\_0 nbclient 0.5.13
 py39haa95532\_0 nbconvert 6.5.4 py39haa95532\_0 nbformat 5.7.0
 py39haa95532\_0 nest-asyncio 1.5.6 py39haa95532\_0 networkx 2.8.4
 py39haa95532\_1 ninja 1.10.2 haa95532\_5 ninja-base 1.10.2 h6d14046\_5
 nltk 3.7 pyhd3eb1b0\_0 notebook 6.5.2 py39haa95532\_0 notebook-shim 0.2.2
 py39haa95532\_0 numba 0.56.4 py39hf11a4ad\_0 numexpr 2.8.4 py39h5b0cc5e\_0
 numpy 1.23.5 py39h3b20f71\_0 numpy-base 1.23.5 py39h4da318b\_0 numpydoc
 1.5.0 py39haa95532\_0 openjpeg 2.4.0 h4fc8c34\_0 openpyxl 3.0.10
 py39h2bbff1b\_0 openssl 1.1.1t h2bbff1b\_0 packaging 23.0 py39haa95532\_0
 pandas 1.5.3 py39hf11a4ad\_0 pandocfilters 1.5.0 pyhd3eb1b0\_0 panel
 0.14.3 py39haa95532\_0 param 1.12.3 py39haa95532\_0 paramiko 2.8.1
 pyhd3eb1b0\_0 parsel 1.6.0 py39haa95532\_0 parso 0.8.3 pyhd3eb1b0\_0 partd
 1.2.0 pyhd3eb1b0\_1 pathlib 1.0.1 pyhd3eb1b0\_1 pathspec 0.10.3
 py39haa95532\_0 patsy 0.5.3 py39haa95532\_0 pcre 8.45 hd77b12b\_0 pep8
 1.7.1 py39haa95532\_1 pexpect 4.8.0 pyhd3eb1b0\_3 pickleshare 0.7.5
 pyhd3eb1b0\_1003 pillow 9.4.0 py39hd77b12b\_0 pip 23.0.1 py39haa95532\_0
 pkginfo 1.9.6 py39haa95532\_0 platformdirs 2.5.2 py39haa95532\_0 plotly
 5.9.0 py39haa95532\_0 pluggy 1.0.0 py39haa95532\_1 ply 3.11
 py39haa95532\_0 pooch 1.4.0 pyhd3eb1b0\_0 powershell\_shortcut 0.0.1 3
 poyo 0.5.0 pyhd3eb1b0\_0 prometheus\_client 0.14.1 py39haa95532\_0
 prompt-toolkit 3.0.36 py39haa95532\_0 prompt\_toolkit 3.0.36 hd3eb1b0\_0
 protego 0.1.16 py\_0 psutil 5.9.0 py39h2bbff1b\_0 ptyprocess 0.7.0
 pyhd3eb1b0\_2 pure\_eval 0.2.2 pyhd3eb1b0\_0 py 1.11.0 pyhd3eb1b0\_0
 py-lief 0.12.3 py39hd77b12b\_0 pyasn1 0.4.8 pyhd3eb1b0\_0 pyasn1-modules
 0.2.8 py\_0 pycodestyle 2.10.0 py39haa95532\_0 pycosat 0.6.4
 py39h2bbff1b\_0 pycparser 2.21 pyhd3eb1b0\_0 pyct 0.5.0 py39haa95532\_0
 pycurl 7.45.2 py39hcd4344a\_0 pydispatcher 2.0.5 py39haa95532\_2
 pydocstyle 6.3.0 py39haa95532\_0 pyerfa 2.0.0 py39h2bbff1b\_0 pyflakes
 3.0.1 py39haa95532\_0 pygments 2.11.2 pyhd3eb1b0\_0 pyhamcrest 2.0.2
 pyhd3eb1b0\_2 pyjwt 2.4.0 py39haa95532\_0 pylint 2.16.2 py39haa95532\_0
 pylint-venv 2.3.0 py39haa95532\_0 pyls-spyder 0.4.0 pyhd3eb1b0\_0 pynacl
 1.5.0 py39h8cc25b3\_0 pyodbc 4.0.34 py39hd77b12b\_0 pyopenssl 23.0.0
 py39haa95532\_0 pyparsing 3.0.9 py39haa95532\_0 pyqt 5.15.7
 py39hd77b12b\_0 pyqt5-sip 12.11.0 py39hd77b12b\_0 pyqtwebengine 5.15.7
 py39hd77b12b\_0 pyrsistent 0.18.0 py39h196d8e1\_0 pysocks 1.7.1
 py39haa95532\_0 pytables 3.7.0 py39h388bc9b\_1 pytest 7.1.2
 py39haa95532\_0 python 3.9.16 h6244533\_1 python-dateutil 2.8.2
 pyhd3eb1b0\_0 python-fastjsonschema 2.16.2 py39haa95532\_0
 python-libarchive-c 2.9 pyhd3eb1b0\_1 python-lsp-black 1.2.1
 py39haa95532\_0 python-lsp-jsonrpc 1.0.0 pyhd3eb1b0\_0 python-lsp-server
 1.7.1 py39haa95532\_0 python-slugify 5.0.2 pyhd3eb1b0\_0 python-snappy
 0.6.1 py39hd77b12b\_0 pytoolconfig 1.2.5 py39haa95532\_1 pytorch 1.12.1
 cpu\_py39h5e1f01c\_1 pytz 2022.7 py39haa95532\_0 pyviz\_comms 2.0.2
 pyhd3eb1b0\_0 pywavelets 1.4.1 py39h2bbff1b\_0 pywin32 305 py39h2bbff1b\_0
 pywin32-ctypes 0.2.0 py39haa95532\_1000 pywinpty 2.0.10 py39h5da7b33\_0
 pyyaml 6.0 py39h2bbff1b\_1 pyzmq 23.2.0 py39hd77b12b\_0 qdarkstyle 3.0.2
 pyhd3eb1b0\_0 qstylizer 0.2.2 py39haa95532\_0 qt-main 5.15.2 he8e5bd7\_7
 qt-webengine 5.15.9 hb9a9bb5\_5 qtawesome 1.2.2 py39haa95532\_0 qtconsole
 5.4.0 py39haa95532\_0 qtpy 2.2.0 py39haa95532\_0 qtwebkit 5.212
 h3ad3cdb\_4 queuelib 1.5.0 py39haa95532\_0 regex 2022.7.9 py39h2bbff1b\_0
 requests 2.28.1 py39haa95532\_1 requests-file 1.5.1 pyhd3eb1b0\_0 rope
 1.7.0 py39haa95532\_0 rtree 1.0.1 py39h2eaa2aa\_0 ruamel.yaml 0.17.21
 py39h2bbff1b\_0 ruamel.yaml.clib 0.2.6 py39h2bbff1b\_1 scikit-image 0.19.3
 py39hd77b12b\_1 scikit-learn 1.2.1 py39hd77b12b\_0 scikit-learn-intelex
 2023.0.2 py39haa95532\_0 scipy 1.10.0 py39h321e85e\_1 scrapy 2.8.0
 py39haa95532\_0 seaborn 0.12.2 py39haa95532\_0 send2trash 1.8.0
 pyhd3eb1b0\_1 service\_identity 18.1.0 pyhd3eb1b0\_1 setuptools 65.6.3
 py39haa95532\_0 sip 6.6.2 py39hd77b12b\_0 six 1.16.0 pyhd3eb1b0\_1
 smart\_open 5.2.1 py39haa95532\_0 snappy 1.1.9 h6c2663c\_0 sniffio 1.2.0
 py39haa95532\_1 snowballstemmer 2.2.0 pyhd3eb1b0\_0 sortedcontainers 2.4.0
 pyhd3eb1b0\_0 soupsieve 2.3.2.post1 py39haa95532\_0 sphinx 5.0.2
 py39haa95532\_0 sphinxcontrib-applehelp 1.0.2 pyhd3eb1b0\_0
 sphinxcontrib-devhelp 1.0.2 pyhd3eb1b0\_0 sphinxcontrib-htmlhelp 2.0.0
 pyhd3eb1b0\_0 sphinxcontrib-jsmath 1.0.1 pyhd3eb1b0\_0
 sphinxcontrib-qthelp 1.0.3 pyhd3eb1b0\_0 sphinxcontrib-serializinghtml
 1.1.5 pyhd3eb1b0\_0 spyder 5.4.2 py39haa95532\_0 spyder-kernels 2.4.2
 py39haa95532\_0 sqlalchemy 1.4.39 py39h2bbff1b\_0 sqlite 3.41.1
 h2bbff1b\_0 stack\_data 0.2.0 pyhd3eb1b0\_0 statsmodels 0.13.5
 py39h080aedc\_1 sympy 1.11.1 py39haa95532\_0 tabulate 0.8.10
 py39haa95532\_0 tbb 2021.7.0 h59b6b97\_0 tbb4py 2021.7.0 py39h59b6b97\_0
 tblib 1.7.0 pyhd3eb1b0\_0 tenacity 8.0.1 py39haa95532\_1 terminado 0.17.1
 py39haa95532\_0 text-unidecode 1.3 pyhd3eb1b0\_0 textdistance 4.2.1
 pyhd3eb1b0\_0 threadpoolctl 2.2.0 pyh0d69192\_0 three-merge 0.1.1
 pyhd3eb1b0\_0 tifffile 2021.7.2 pyhd3eb1b0\_2 tinycss2 1.2.1
 py39haa95532\_0 tk 8.6.12 h2bbff1b\_0 tldextract 3.2.0 pyhd3eb1b0\_0
 tokenizers 0.11.4 py39he5181cf\_1 toml 0.10.2 pyhd3eb1b0\_0 tomli 2.0.1
 py39haa95532\_0 tomlkit 0.11.1 py39haa95532\_0 toolz 0.12.0
 py39haa95532\_0 tornado 6.2 py39h2bbff1b\_0 tqdm 4.65.0 py39hd4e2768\_0
 traitlets 5.7.1 py39haa95532\_0 transformers 4.24.0 py39haa95532\_0
 twisted 22.2.0 py39h2bbff1b\_1 twisted-iocpsupport 1.0.2 py39h2bbff1b\_0
 typing-extensions 4.4.0 py39haa95532\_0 typing\_extensions 4.4.0
 py39haa95532\_0 tzdata 2022g h04d1e81\_0 ujson 5.4.0 py39hd77b12b\_0
 unidecode 1.2.0 pyhd3eb1b0\_0 urllib3 1.26.14 py39haa95532\_0 vc 14.2
 h21ff451\_1 vs2015\_runtime 14.27.29016 h5e58377\_2 w3lib 1.21.0
 pyhd3eb1b0\_0 watchdog 2.1.6 py39haa95532\_0 wcwidth 0.2.5 pyhd3eb1b0\_0
 webencodings 0.5.1 py39haa95532\_1 websocket-client 0.58.0 py39haa95532\_4
 werkzeug 2.2.3 py39haa95532\_0 whatthepatch 1.0.2 py39haa95532\_0 wheel
 0.38.4 py39haa95532\_0 widgetsnbextension 4.0.5 py39haa95532\_0
 win\_inet\_pton 1.1.0 py39haa95532\_0 wincertstore 0.2 py39haa95532\_2
 winpty 0.4.3 4 wrapt 1.14.1 py39h2bbff1b\_0 xarray 2022.11.0
 py39haa95532\_0 xlwings 0.29.1 py39haa95532\_0 xz 5.2.10 h8cc25b3\_1 yaml
 0.2.5 he774522\_0 yapf 0.31.0 pyhd3eb1b0\_0 zeromq 4.3.4 hd77b12b\_0 zfp
 0.5.5 hd77b12b\_6 zict 2.1.0 py39haa95532\_0 zipp 3.11.0 py39haa95532\_0
 zlib 1.2.13 h8cc25b3\_0 zope 1.0 py39haa95532\_1 zope.interface 5.4.0
 py39h2bbff1b\_0 zstandard 0.19.0 py39h2bbff1b\_0 zstd 1.5.2 h19a0ad4\_0