Model of physicochemical odor sampling by animal olfactory systems
- Clone the repository
- At the top folder structure (there should be a folder named
odorsampling
with a file namedlayers.py
in it.), run the following command:
python -m odorsampling -h
This should print out a list of commands and arguments that can be configured.
- Remember to run
sudo apt update && sudo apt upgrade
andsudo 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-tk
if 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.log
files. Useful for cleaning up between trials.
- This deletes all
This (make
) requires Makefile to be installed.
- On Windows, it is recommended to install
MSYS2
to getmake
for Windows. - On Linux/Debian systems, this can be installed with the
apt
command,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
yaml
file. 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
functions
section. 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: