Giter Club home page Giter Club logo

pathfinder's Introduction

Pathfinder DOI

Morris Water Maze search strategy and entropy analysis.

Created by Matthew Cooke at The University of British Columbia, Jason Snyder Lab

For more information about the features and usage of Pathfinder please visit our wiki

Synopsis

The Pathfinder package is a search strategy analysis tool for the Morris Water Maze, and can be expanded for other spatial navigation tasks. The program analyses X-Y coordinate data exported from commercially available tracking software. Pathfinder currently supports outputs from: Ethovision, Anymaze, WaterMaze, and ezTrack. We then calculate the best-fit search strategy for the trial. Trials are fit into one of: Direct Swim, Directed Search, Focal Search, Spatial indirect, Chaining, Scanning, Thigmotaxis, and Random Search.

Citing

If you use Pathfinder, please cite: Cooke MB, O'Leary TP, Harris P et al. (2019) Pathfinder: open source software for analyzing spatial navigation search strategies. F1000Research, 8:1521. https://doi.org/10.12688/f1000research.20352.2

Launching Pathfinder

  1. The program can be opened by calling pathfinder.
  2. This will open up the GUI window.

pathfinder_launch

  1. You can then select an inividual file or a directory containing files from the File dropdown menu. These files must be Excel files if you are using Ethovision tracking software, and CSV files if you are using Anymaze, Watermaze, or ezTrack software. Define supports both Excel and CSV files.

Search Strategy Analysis

  1. For search strategy analysis we have multiple options. To set your own strategy parameters, click custom.

  2. (Settings) The settings button will spawn a parameters panel

pathfinder_settings_pane

  1. In the custom parameters pane, you can select and deselect any of the search strategies. Deselecting Strategies will remove them from consideration. You can also define the cutoff values for each strategy. See https://github.com/MatthewBCooke/Pathfinder/wiki/Description-of-Parameters for detailed description of parameters

  2. Once you have chosen your parameters, be sure to select your tracking software. Ethovision, Anymaze, ezTrack and Watermaze are currently supported. We also have a "Define" button that allows users to import most non-supported files.

  3. You may then alter the main values to suit your data. Platform position, pool centre, and pool diameter can be automatically calculated for groups of trials using one constant platform location. For all other data you must manually define these values (Example: Platform Position (x,y) | 6.53,-17.3).

pathfinder_goal_pos_change

  1. There are 3 checkboxes above the Calculate button. The first, Scale Values is used to automatically scale the default values in an attempt to better match your data. This uses the Pixels/cm and the pool diameter to determine a constant C with which to multiply some parameters. (Note: If you are using custom values, it is best to disable scaling) The two other checkboxes enable manual categorization. Manual categorization can be used for trials in which our algorithm was unable to make a determination (Manual categorization for uncategorized trials) or for all trials (Manual categorization for all trials).

manual categorization

  1. Once you are satisfied with your parameters, click calculate. This will begin the process of determining search strategies for the trials. Once calculation is complete you will be shown a display of the results.

pathfinder_calculate

  1. Your results will be saved as a .csv file with whatever name was chosen in the Output File field. You will also receive a log file of the excecution ("Logs" folder), and any generated paths from manual catagorization will be saved under "Paths" in your present working directory.

Heatmaps

Heatmap parameters

  1. The parameters panel lets you tailor the output to your needs:

    1. Grid size. This roughly translates into how many bins to put the data in. For more information on grid size see matplotlib documentation: http://matplotlib.org/devdocs/api/_as_gen/matplotlib.axes.Axes.hexbin.html

    2. Maximum Value. This will allow you to change at which value the points in the heatmap will become their most saturated (dark red). Setting 'Auto' will dynamically assign the maximum value to be equal to the value of the maximum grid.

    3. Day: A day or range of days to use for calculating the heatmaps. (E.g. 1 or 3-6 or All)

    4. Trial: A trial or range of trials on the above selected days. (E.g. All or 1-4 or 2)

  2. You can then click generate, and our software will plot a heatmap of your trial data. These will be saved in the "Heatmaps" subfolder.

heatmap display

Multiple ROI

ROI

  1. You can use the 'Add Goal...' button to add an unlimited number of goal locations or regions of interest. The will allow Pathfinder to calculate relative to each position.

Defining Software

Defining software allows Pathfinder to accept data from CSV or Excel that we haven't yet added support for. This works by prompting the user to select a sample file, and by selecting relevant cells, instructs Pathfinder where to look when dealing with the dataset.

pathfinder_define

  1. You can use the "Define.." button if Pathfinder is unable to read your software files.

  2. Click on the Define button on the main View pane and a popup will appear. Select a sample file that is the same format as your dataset.

  3. A window will open asking you to select a sample file from your dataset.

    1. You will then select the appropriate X, Y, and Time columns in your sample file.
  4. IT IS IMPORTANT THAT YOU THEN RE-OPEN THE DATASET USING THE FILE MENU, EITHER BY OPEN DIRECTORY OR FILE, BEFORE ATTEMPTING TO CALCULATE.

pathfinder_open_directory

Motivation

This program was developed in order to simplify as well as remove inconsistencies in Morris Water Maze search strategy analysis.

Installation

Installing the program is easy for both macOS and Windows users.

Pathfinder requires you to have Python 3.6 or later. We highly recommend installing Conda for python via the Anaconda 🐍 package https://www.anaconda.com/distribution/. Once installed, the installation of Pathfinder is easy.

For the most recent stable version, cloning the GitHub repository or installing via PyPi is possible. For the most recent beta version of the software, the develop branch of the GitHub repository will host the version currently being worked on.

Installation Instructions:

Windows:

  1. Installing from the Python Package Index: Launch a CMD window by launching run from the start menu, and typing CMD in Run.

Once the CMD shell has opened, type pip install jsl-pathfinder

Press enter

  1. Installing from GitHub:

Download and install Git here: https://git-scm.com

Open Git Bash.

Change the current working directory to the location where you want the cloned directory to be made.

Type git clone https://github.com/MatthewBCooke/Pathfinder

Press enter


Mac:

  1. Installing from the Python Package Index:

Open a terminal window (located in your utilities folder under the Applications directory.

Type pip install jsl-pathfinder

Press return

  1. Installing from GitHub:

Open a terminal window Navigate to the folder you wish to install Pathfinder into

Type git clone https://github.com/MatthewBCooke/Pathfinder/

press return

License

GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007

Copyright (C) 2007 Free Software Foundation, Inc. http://fsf.org/ Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

pathfinder's People

Contributors

bdungate avatar benlansdell avatar matthewbcooke avatar phelanharris avatar ricky-ma avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

pathfinder's Issues

Unable to run tutorial!

Hi, I am trying to run the tutorial of Pathfinder. I downloaded the files from G-drive. At 3rd step, when I chose WaterMaze as sample dataset and run the analysis with parameters at Auto, it goes into "Calculating search strategies" for indefinite time. Also, when I click settings tab, it is unable to scroll down, thus couldn't see the lower parameters.
Do you have a video or an elaborate tutorial to follow the process in an easy way.
pathfinder-settings

MacOS 10.14.6 Causing crash

Running Pathfinder on MacOS 10.14.6 is causing a system crash for some users. This is a bug with MacOS and unfortunately cannot be handled by us at this time. We highly recommend avoiding 10.14.6 until Apple is able to release a fix.

CGSTrackingRegionSetIsEnabled returned CG error.

This issue can be replicated with:
`from tkinter import *
class Main:
def init(self, parent):

    #Configure the main window
    self.myparent = parent
    self.myparent.wm_title("Please Don't Crash")
    self.myparent.geometry('440x300')

root = Tk()
myapp = Main(root)
root.mainloop()`

Thread on the issue: pyinstaller/pyinstaller#4334

How to load trial name/identifying information from custom defined csv

I have data from a custom csv, where I manually pick which columns are x,y,time. This works fine. However the output csv just lists a trial number and a trial code 'None 0 [trial number]'. I don't know how to link each row in the results table to the underlying tracking csv file it came from.

How can I do this?

Thank you!

"SSL module in Python not available" error during download

I have tried to install Pathfinder from the CMD terminal following the instructions but get an error that "the ssl module in Python is not available". I have the most recent version of Anaconda. Trying pip3 install jsl-pathfinder also returns an error.
Any suggestions? I am very inexperienced with Github or using the terminal.

no input?

exported Ethovision raw data files. But when trying to run in pathfinder, error message appears ('no input'). Raw data files (excel) were batch exported and are in structure same as files that did get processed.

Barnes application question

Hey sorry to bother you, thanks for the great software seems very user-friendly and efficient, I was wondering if you have suggestions-recommendations for applying your software to Barnes experimental setting/s? Thanks in advance

add explicit encoding='utf8' to setup.py?

Can I suggest the following in setup.py?
(add encoding = utf8)
python setup install failed until I added this, using windows7 and anaconda3 and Pathfinder cloned from repo
pip install jsl-pathfinder failed too, with file encoding complaints

with open('README.txt', encoding="utf8") as file:
    long_description = file.read()

Unable to click menu buttons

Sometimes, on MacOS, you are unable to click the menu buttons (File, Edit, etc). The current solution is to navigate to a window outside the pathfinder software and back, this will enable them.

Results don't show up

Hello,

I am trying to use your software on some of my own data and the results do not show up. I am using Anymaze files and I go through the steps outlined in your tutorial (checking anymaze instead of watermaze) and click calculate. It says it is calculating results and then nothing happens and my results don't pop up. I have tried using the define feature, reopen my file and still nothing. I go and run through the tutorial using your sample data and it still doesn't work.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.