PyMODA is a Python implementation of MODA (Multiscale Oscillatory Dynamics Analysis). The user interface is written using PyQt5, and the algorithms are imported from PyMODAlib. PyMODA is packaged as a standalone program using PyInstaller.
PyMODA is cross-platform and does not require any paid software. To get started, please see the User Guide or the Developer Guide.
PyMODA plans to offer all the functionality available in MODA, but development is still in progress. This table shows the current status of different features.
Window | Status | Works without MATLAB Runtime | Notes |
---|---|---|---|
Time-Frequency Analysis | ✔️ | ✔️ | |
Detecting Harmonics | ✔️ | ✔️ | |
Wavelet Phase Coherence | ✔️ | Required for surrogates only | Surrogates not perfected |
Group Phase Coherence | ✔️ | ✔️ | |
Ridge Extraction and Filtering | ✔️ | No | |
Wavelet Bispectrum Analysis | ✔️ | No | |
Dynamical Bayesian Inference | Partially implemented | ✔️ | Algorithm not perfected |
This guide is aimed at users wishing to set up and run PyMODA. If you're interested in modifying or contributing to the program, you should use the Developer Guide.
Some of PyMODA's functionality requires the MATLAB Runtime, version 9.6. If you don't have it installed, you'll still be able to use the functionality which doesn't depend on it.
To install PyMODA, download and run the setup executable. If you see a Windows Smartscreen popup, click "More info", then "Run anyway".
If you prefer, you can automate the entire download and installation process using this Powershell command:
Set-ExecutionPolicy Bypass -Scope Process -Force;
iex ((New-Object System.Net.WebClient).DownloadString(
'https://raw.githubusercontent.com/luphysics/pymoda-install/master/windows/install.ps1'
))
Copy the following command into a terminal, then press enter:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/luphysics/pymoda-install/master/linux/install.sh)"
PyMODA will automatically open when the process is complete.
Tip: Most terminals require
Ctrl
+Shift
+V
instead ofCtrl
+V
for pasting.
Copy the following command into a terminal, then press enter:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/luphysics/pymoda-install/master/macos/install.sh)"
Tip: To open a terminal, press
Cmd
+Space
, type "terminal" and press enter.
PyMODA will automatically open when the process is complete.
On Windows, PyMODA will create a desktop shortcut when it launches for the first time. You can also search for it in the Start menu.
On macOS and Linux, PyMODA adds a command, pymoda
, to the terminal. You can use this command to launch PyMODA in future.
Note: You may need to restart all open terminals for this to take effect.
After performing a calculation, the results can be saved using the options under the Save
item in the menu bar. Results can be saved to .mat
(MATLAB) and .npy
(Numpy) files.
When a data file is opened, it will have the following format:
- In MATLAB: a struct containing a single struct.
- In Python: a dictionary containing a single dictionary.
For each window, the name of the struct/dictionary is as follows:
Name | Window |
---|---|
TFData |
Time-Frequency Analysis |
DHData |
Detecting Harmonics |
PCData |
Wavelet Phase Coherence |
GCData |
Group Phase Coherence |
REData |
Ridge Extraction and Filtering |
BAData |
Wavelet Bispectrum Analysis |
DBData |
Dynamical Bayesian Inference |
Note: Saving data is not yet implemented for Dynamical Bayesian Inference.