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
ConfigurationManagerclass 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.xmlthat 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.xmlif 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
ClassNamedefined 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]_optionsunder 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_homeunder 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_*.txtfile setX_HOME_SWITCH_POLARITY=LIMIT_SWITCH_PROBABILITY.ACTIVE_HIGH, andLIMIT_SWITCH_PROBABILITY.ACTIVE_HIGHis defined to be1incontrol/_def.py, definex_home=1under the heading[LIMIT_SWITCH_PROBABILITY].