Hello,
We have added some new functionalities and features in a new push to octopi-research/master
. For this to not break your existing system, please follow these steps to ensure compatibility:
-
Install dependencies for the image stitching module: In whatever environment you run Squid/Octopi in, run
pip install tifffile
(orpip3 install tifffile
) -
Reformat channel configuration xml: The
ConfigurationManager
class for channel settings now, by default, looks for the channel settings underoctopi-research/software
(wherever the repo lives for you). First of all, If you have a file named*configurations.xml
that contains settings for bunch of acquisition channels (Fluorescence xxx
,BF LED Matrix Full
, etc.), and your main GUI code (undersoftware/control
) explicitly looks for that file, either delete it (if it was autogenerated and you never manually modified it), or, for every entry (every<mode/>
tag), add the following attributes:ZOffset="0.0" PixelFormat="default" _PixelFormat_options="[default]"
. This goes for any configuration xml generated for your focus camera as well (it may besoftware/focus_camera_configurations.xml
if you are usingmain_hcs.py
).
If you want to be able to use the GUI microscope settings editor, you have to migrate your configuration_*.txt
file to a .ini
file. If you have been using one of the pre-existing configuration files under software/configurations
without modification, check if a file with the same name but extension .ini
exists under the directory. If it does, simply replace your current configuration txt file under software
with that file.
If you have a custom configuration file, you may migrate it to a .ini
file as follows (NOTE: this does not support conditionals in your txt file aside from those checked in control/_def.py
. You will have to stick with legacy config or modify control/_def if you want to be able to execute arbitrary code in your config file.):
- In a text editor, open a file under software called
[name of your config file without the extension].ini
. - Make a heading
[GENERAL]
under your config file. - For every class
ClassName
defined in your original config file, create a heading[CLASSNAME]
(in all caps) in your new config file. - For every global variable defined in your config file, copy its definition to be under
[GENERAL]
in your new config file. Variables that are purely strings should have enclosing quotes omitted. Definitions of lists and dictionaries can be copied fully over. - If you have a variable that has a fixed number of options, create a definition called
_[variable name]_options
under your variable definition in your new config file, and make a list, enclosed in brackets, of the possible values for this variable. If the values are strings, do not include enclosing quotes. This will allow you to set values for this config file in a dropdown in the GUI. - Repeat this for every attribute under a class (in its corresponding section)
- If a variable definition in your config txt file uses a reference to a variable also defined in your config txt file, you must replace that with the final value you want your variable to have. The new configuration files are read as key-value pairs where the values are parsed as strings and then cast to booleans, dicts/lists, integers, floats, and then strings (in order of precedence), not as arbitrary code to be executed.
-
Replace the definitions of
X/Y/Z_HOME_SWITCH_POLARITY
, if any, with the following: Define a heading[LIMIT_SWITCH_POLARITY]
, and define 3 variablesx_home
,y_home
, andz_home
under it, which will be used to set the values ofX/Y/Z_HOME_SWITCH_PROBABILITY
. Set each of these variables to be the value ofLIMIT_SWITCH_PROBABILITY.ACTIVE_HIGH/ACTIVE_LOW/DISABLED
(as defined incontrol/_def.py
) as appropriate. So, if your originalconfiguration_*.txt
file setX_HOME_SWITCH_POLARITY=LIMIT_SWITCH_PROBABILITY.ACTIVE_HIGH
, andLIMIT_SWITCH_PROBABILITY.ACTIVE_HIGH
is defined to be1
incontrol/_def.py
, definex_home=1
under the heading[LIMIT_SWITCH_PROBABILITY]
.