Model of physicochemical odor sampling by animal olfactory systems
- Clone the repository
- At the top folder structure (there should be a folder named
odorsamplingwith a file namedlayers.pyin it.), run the following command:
python -m odorsampling -hThis should print out a list of commands and arguments that can be configured.
- Remember to run
sudo apt update && sudo apt upgradeandsudo apt-get update && sudo apt-get upgrade - You must install tkinter to display the graphs (if it isn't already installed). It will still run without it- however the only way to view the graphs would be through the generated PDFs.
- Run
sudo apt-get install python-tkif you see an error that says something like "Unable to load matplotlib backend [mpl_backend_name]. Please ensure any required packages are installed to use this backend."
For convenience, a Makefile is provided with the following commands.
make clean- This deletes all
.pdf,.csv, and.logfiles. Useful for cleaning up between trials.
- This deletes all
This (make) requires Makefile to be installed.
- On Windows, it is recommended to install
MSYS2to getmakefor Windows. - On Linux/Debian systems, this can be installed with the
aptcommand,sudo apt install make. Many linux distributions come with it preinstalled. - For Mac (untested), use
xcode-select --install. Also consider this answer on the page if you are having issues withxcode-select, something about needing to install it through the XCode GUI. Or, if you use Homebrew,brew install make, however some PATH setup may be required if using Homebrew.
Checkout branches using git checkout [branch_name]
py3- Python3 upgrade w/ data structures
This is a mapping from python functions that may represent components of the experiment (such as calculating the psi_bar_saturation) to be used. Experiments using these functions can be set up under the mapping experiments mentioned next. The purpose here is to establish default arguments for the experiment, outside of the python file itself.
Additionally, this acts as "closer-to-use" documentation for writing experiments that use these functions in a given yaml file.
This is a list of experiments, with the required keys id, name, description, function, args, kwargs.
id- This is the unique identifier for this experiment. Primarily used internally, and must be unique among experiments in the
yamlfile. Type:str
- This is the unique identifier for this experiment. Primarily used internally, and must be unique among experiments in the
name- The name of the experiment. This is printed out when the experiment begins to be performed. Type:
str
- The name of the experiment. This is printed out when the experiment begins to be performed. Type:
description- The description of the experiment. When more info or verbose mode is running, is used to describe more details about the experiment. Type:
str
- The description of the experiment. When more info or verbose mode is running, is used to describe more details about the experiment. Type:
function- Must match one of the above function keys from the
functionssection. Type:str
- Must match one of the above function keys from the
args- Arguments to be passed to the function to perform this experiment. Type:
list
- Arguments to be passed to the function to perform this experiment. Type:
kwargs- Keyword arguments to be passed to the function to perform this experiment. Type:
mapping
- Keyword arguments to be passed to the function to perform this experiment. Type: