Giter VIP home page Giter VIP logo

annie444 / sleapyfaces-old Goto Github PK

View Code? Open in Web Editor NEW
3.0 2.0 0.0 51 KB

A package for extracting facial expressions from SLEAP analyses

License: MIT License

Python 100.00%
facial-data facial-expression-analysis facial-expression-dataset facial-expression-recognition facial-tracking sleap facial-data-analysis facial-expression-classification facial-feature-analysis facial-feature-extraction

sleapyfaces-old's Introduction

SLEAPyFaces

This is a package for extracting facial expressions from SLEAP analyses.


PyPI - Version PyPI - Python Version


To Do:

Things that it does:

  1. iterate (repeatedly) over each mouse and each week (each mouse and each experiment)
    • get project files (experimental) structure
    • initialize an iterator over project structure
  2. get daq data from CSV file
    • read CSV files
    • save each column from CSV file
      • Note: CSV columns are of differing lengths
  3. get “beh_metadata” from json metadata
    • read JSON file
    • grab the values for key “beh_metadata”
      • get the values of sub key “trialArray”
      • get the values of subkey “ITIArray”
  4. get video metadata from *.mp4 file (with ffmpeg.probe)
    • read in the *.mp4 metadata
    • select the correct video stream
    • get the average frames per second
  5. get SLEAP data from *.h5 file
    • open h5 file
    • get transposed values of key “tracks” (tracking_locations)
    • fill missing locations (linear regress. fit)
    • get transposed values of key “edge_inds”
    • get values of key “edge_names”
    • get transposed values of “instance_scores”
    • get transposed values of “point_scores”
    • get values of “track_occupancy”
    • get transposed values of “tracking_scores”
    • get decoded values of “node_names” (make sure theres no encoding issues)
  6. deconstruct SLEAP points into x and y points (across all frames)
    • iterate over each node
    • breakup the 4D array “tracks” into 1D array for x and y values respectively
      • Note: [frame, node, x/y, color] for greyscale the color dimension is 1D (i.e. essentially the 4D array is 3D because the color dimension is constant)
    • iterate over each frame
    • assign mouse, week, frame #, and timestamp (using average frames per second)
  7. Split data into individual trials by trial type using the Speaker and LED data from the CSV daq data
    • initialize trial iterators for the consistently documented points from the daq CSV
    • iterate over each trial in “trialArray”
    • get the index of 10sec before and 13sec after trial start
    • for each feature, grab the start and end indices
    • store data from each trial in a pd.dataframe
    • concatenate all pd.dataframes together for each video
    • concatenate the pd.dataframes from each video together for each mouse (base expr split)
  8. Prepare the data
    • (opt.) mean center across all points for a single trial
    • mean center across all trials for a single experiment
    • mean center across all experiments for a single mouse
    • mean center across all mice
    • (opt.) z-score mean centered data
  9. Analyze the data
    • Perform 2D and 3D PCAs on all data (raw, centered, by trial, by week, by mouse, etc…)
    • apply gaussian kernel to PCA outputs
  10. Save the data
    • write everything to HDF5 file(s)

Table of Contents

Installation

pip install sleapyfaces

License

sleapyfaces is distributed under the terms of the MIT license.

sleapyfaces-old's People

Contributors

annie444 avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

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.