Package: face-rhythm
Face-RhythmLearn more athttps://face-rhythm.readthedocs.io/Installation0. RequirementsOperating system:Ubuntu >= 18.04 (other linux versions usually okay but not actively maintained)Windows >= 10Mac >= 12AnacondaorMiniconda.If using linux/unix: GCC >= 5.4.0, ideally == 9.2.0. Google how to do this on your operating system. Check with:gcc --version.Optional:CUDA compatible NVIDIA GPUanddrivers. Using a GPU can increase the speeds for the TCA step, but is not necessary.The below commands should be run in the terminal (Mac/Linux) or Anaconda Prompt (Windows).1. Clone this repoThis will create a folder calledface-rhythmin your current directory. This repository folder contains the source code AND the interactive notebooks needed to run the pipeline.git clone https://github.com/RichieHakim/face-rhythm/cd face-rhythm2. Create a conda environmentThis will also install theface-rhythmpackage and all of its dependencies into the environment.conda env create --file environment.ymlActivate the environment:conda activate face_rhythmOptional Direct installationYou can also directly install theface-rhythmpackage from PyPI into the environment of your choice. Note that you will still need to download/clone the repository for the notebooks.Option 1: Install from PyPIpip install face-rhythmOption 2: Install from sourcepip install -e .[all]UsageNotebooksThe easiest way to useface-rhythmis through the interactive notebooks. They are found in the following directory:face-rhythm/notebooks/.Theinteractive_pipeline_basic.ipynbnotebook contains the main pipeline and instructions on how to use it.Theinteractive_set_ROIs_only.ipynbnotebook is useful for when you want to run a batch job of many videos/sessions and need to set the ROIs for each video/session ahead of time.Command lineThe basic pipeline in the interactive notebook is also provided as a function within theface_rhythm/pipelines.pymodule. In thescriptsfolder, you'll find a script calledrun_pipeline_basic.pythat can be used to run the pipeline from the command line. An exampleparams.jsonfile is also in that folder to use as a template for your runs.Repository Organizationface-rhythm
├── notebooks  <- Jupyter notebooks containing the main pipeline and some demos.
|   ├── basic_face_rhythm_notebook.ipynb  <- Main pipeline notebook.
|   └── interactive_set_ROIs_only.ipynb   <- Notebook for setting ROIs only.
|
├── face-rhythm  <- Source code for use in this project.
│   ├── project.py           <- Contains methods for project directory organization and preparation
│   ├── data_importing.py    <- Contains classes for importing data (like videos)
|   ├── rois.py              <- Contains classes for defining regions of interest (ROIs) to analyze
|   ├── point_tracking.py    <- Contains classes for tracking points in videos
|   ├── spectral_analysis.py <- Contains classes for spectral decomposition
|   ├── decomposition.py     <- Contains classes for TCA decomposition
|   ├── utils.py             <- Contains utility functions for face-rhythm
|   ├── visualization.py     <- Contains classes for visualizing data
|   ├── helpers.py           <- Contains general helper functions (non-face-rhythm specific)
|   ├── h5_handling.py       <- Contains classes for handling h5 files
│   └── __init__.py          <- Makes src a Python module    
|
├── setup.py   <- makes project pip installable (pip install -e .) so src can be imported
├── LICENSE    <- License file
├── Makefile   <- Makefile with commands like `make data` or `make train`
├── README.md  <- The top-level README for developers using this project.
├── docs       <- A default Sphinx project; see sphinx-doc.org for details
└── tox.ini    <- tox file with settings for running tox; see tox.readthedocs.ioProject Directory OrganizationProject Directory
├── config.yaml           <- Configuration parameters to run each module in the pipeline. Dictionary.
├── run_info.json         <- Output information from each module. Dictionary.
│
├── run_data              <- Output data from each module.
│   ├── Dataset_videos.h5 <- Output data from Dataset_videos class. Contains metadata about the videos.
│   ├── ROIs.h5           <- Output data from ROIs class. Contains ROI masks.
│   ├── PointTracker.h5   <- Output data from PointTracker class. Contains point tracking data.
|   ├── VQT_Analyzer.h5   <- Output data from VQT_Analyzer class. Contains spectral decomposition data.
│   ├── TCA.h5            <- Output data from TCA class. Contains TCA decomposition data.
│   
└── visualizations        <- Output visualizations.
    ├── factors_rearranged_[frequency].png  <- Example of a rearranged factor plot.
    └── point_tracking_demo.avi             <- Example video.