This is a toolbox uses neuronal & behavioral data and visualizes it. The main functionalities include:
N
umerous options to visualize neuronal data and create diagnostic plotsC
reating neural manifolds usingsklearn
dimensionality reduction algorithms orBunDLeNet
M
ake interactive behavioral state diagrams usingpyvis
C
luster behavioral probability trajectories and test them for non-markovianityM
ovies of behavioral/neuronal trajectories saved as.gif
-files
Comparison of predicted and true label using BunDLeNet's tau model as mapping and its predictor on worm 3
- Installation: Open a terminal window in your Python project directory and run
pip install ncmcm
- Importing the package: In your Python script or notebook, import the package
import ncmcm
- Usage: the
ncmcm.Database
class as a container for your neuronal and behavioral dataset - Tutorial: Check out the
Demo.ipynb
notebook included in the package. It serves as a useful starting point to explore the functionalities ofncmcm
If you're interested in contributing to this project or creating your own versions based on the existing code, follow these steps:
-
Clone the Repository: Clone this repository to your local machine using Git:
git clone https://github.com/DriftKing1998/NC-MCM-Visualizer.git
-
Install Dependencies: Navigate to the project directory and install the required dependencies using pip:
cd <project_directory> pip install -r requirements.txt
-
Explore the Code:
ncmcm.classes.py
contains the classes used by ncmcm:Database
is a container for data, which can be used to generate the behavioral probability maps by adding a sklearn-model. It also allows to create different plots and diagnostics.Visualizer
is created by adding a mapping or a BundDLeNet (=default). It allows to create 3D plots and movies.CustomEnsembleModel
is a model that creates an ensemble of models, specializing each model to detect a label.
ncmcm.functions.py
contains some auxiliary functions:- Functions to prepare data
- Functions to test for stationarity & non-markovianity
- Plotting functions for the tests
ncmcm.BundDLeNet.py
contains all the parts of BundDLeNet:- Class for creating/training the model
- Functions to prep data and get loss
-
Make Changes: Make your desired changes or enhancements to the codebase. Feel free to add new features, fix bugs, or improve documentation.
-
Testing: Ensure that your changes are tested thoroughly. You can run existing tests or write new ones to validate your modifications.
-
Create a Branch: Create a new branch for your changes:
git checkout -b <new_branch>
-
Commit Your Changes: Once you're satisfied with your changes, commit them to your branch:
git add . git commit -m "description of changes"
-
Push Changes: Push your changes to your forked repository:
git push origin <new_branch>
Since this project is a first step, any additions are more than welcome.
-
Pull request: Go to the repository and open a pull request from your branch. Provide a clear description of your changes and why they're beneficial.
-
Review: Await feedback from me and address any requested changes. Once approved, your changes will be merged into the main branch.