Skip to main content

codecov

BehaveML

Machine learning for animal behavior.

Interprets pose-tracking files (currently only from DLC) and behavior annotations (currently only from BORIS) to train a behavior classifier, perform unsupervised learning, and other common analysis tasks.

Installation

pip install behaveml

Can install optional extras with:

pip install numpy, cython
pip install behaveml[all]

This includes matplotlib, keras, and Linderman lab's state-space model package, ssm. Note that installing ssm requires cython and numpy for the build, so must be already present in the environment.

Quickstart

Import

from glob import glob 
from behaveml import VideosetDataFrame, clone_metadata
from behaveml import compute_dl_probability_features, compute_mars_features
from behaveml.io import get_sample_data_paths

Gather the DLC and BORIS tracking and annotation files

tracking_files, boris_files = get_sample_data_paths()

Setup some parameters

frame_width = 20                 # (float) length of entire horizontal shot
frame_width_units = 'in'         # (str) units frame_width is given in
fps = 30                         # (int) frames per second
resolution = (1200, 1600)        # (tuple) HxW in pixels

Create a parameter object and video dataset

metadata = clone_metadata(tracking_files, 
                          label_files = boris_files, 
                          frame_width = frame_width, 
                          fps = fps, 
                          frame_width_units = frame_width_units, 
                          resolution = resolution)

animal_renamer = {'adult': 'resident', 'juvenile':'intruder'}

dataset = VideosetDataFrame(metadata, animal_renamer=animal_renamer)

Now create features on this dataset

dataset.add_features(compute_dl_probability_features, 
                     featureset_name = '1dcnn', 
                     add_to_features = True)

dataset.add_features(compute_mars_features, 
                     featureset_name = 'MARS', 
                     add_to_features = True)

Now access a features table, labels, and groups for learning with dataset.features, dataset.labels, dataset.groups. From here it's easy to use some ML libraries to predict behavior. For example:

from sklearn.ensemble import ExtraTreesClassifier, RandomForestClassifier
from sklearn.model_selection import cross_val_predict
from sklearn.metrics import accuracy_score

model = RandomForestClassifier()
predictions = cross_val_predict(model, dataset.features, dataset.labels, dataset.groups)
score = accuracy_score(dataset.labels, predictions)

Features

  • Quickly generate a movie

Metadata

Release files for behaveml 0.2.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for behaveml 0.2.9
File Size Uploaded
behaveml-0.2.9.tar.gz 12.8 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for behaveml 0.2.9
File Interpreter ABI Platform
behaveml-0.2.9-py3-none-any.whl Python 3 none any Details

Total release size: 12.8 MB

Release files / behaveml-0.2.9.tar.gz

Download URL behaveml-0.2.9.tar.gz
Size 12.8 MB
Tags Source
SHA-256 checksum
How to use checksums
4a9a555685e4638dacbd4e24413d10fc074c0a0e5fa96ad03c149e26bc3a5938
BLAKE2b-256 checksum
How to use checksums
a415ed4ebae8c1e15ad7bf28448024f1cd569b65135fbd319a5a059403e7ce53
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/3.10.0 pkginfo/1.8.2 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.8.5

Release files / behaveml-0.2.9-py3-none-any.whl

Download URL behaveml-0.2.9-py3-none-any.whl
Size 41.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6b3d60bdca5c2d92c05bf4ac75d09aec2fbee095ce12ef597fe7b043ab6d5890
BLAKE2b-256 checksum
How to use checksums
60be108e7b6e16f9b15c8d4183737130d5eac05324971f153647908b78fde68d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/3.10.0 pkginfo/1.8.2 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.8.5
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page