๐ API Reference๏
This section provides a categorized reference of SimBAโs modules and methods, grouped by their functionality such as feature extraction, plotting, transformation, and modeling.
๐ Blob tracking tools๏
Track animals in videos using background subtraction and blob detection. Extract geometric features (center, nose, tail, left/right points) from detected blob shapes without requiring pose-estimation data.
๐ฆ Bounding-box tools๏
Detect animal interactions via overlapping bounding boxes.
See tutorial: Cue-light tutorial
- Aggregate Statistics
- GUI Tool
- Statistics
- Find Boundaries
- Visualize
- YOLO methods
- Utilities
- Bounding-box inference
- NVDEC GPU-accelerated YOLO inference
- Pose-estimation inference
- YOLO pose-estimation segmentation visualizer
- YOLO pose-estimation segmentation inference
- Pose-estimation track inference
- Pose-estimation track plotting
- Pose-estimation plotting
- Bounding box plotting
- YOLO annotation visualizer
- COCO key-points -> YOLO pose-estimation format conversion
- COCO key-points -> YOLO bounding box conversion
- COCO key-points -> YOLO segmentation conversion
- SAM3 -> YOLO segmentation project
- SAM3 -> YOLO bounding-box (detection) project
- Merge multiple YOLO projects
- Multi-animal DeepLabCut predictions -> YOLO pose-estimation annotations format conversion
- DeepLabCut predictions -> YOLO pose-estimation annotations
- Labelme annotations -> YOLO bounding box annotations
- Labelme points -> YOLO keypoints annotations
- Labelme points -> YOLO segmentation annotations
- SimBA ROIs -> YOLO bounding box annotations
- SimBA pose-estimation -> YOLO pose-estimation annotations
- SimBA pose-estimation -> YOLO segmentation annotations
- SLEAP CSV predictions -> YOLO pose-estimation annotations
- SLEAP H5 predictions -> YOLO pose-estimation annotations
- SLEAP annotations -> YOLO pose-estimation annotations
- LightningPose keypoints -> YOLO bounding box conversion
- LightningPose keypoints -> YOLO pose-estimation annotations
๐ Circular transformations๏
Statistical operations for circular data like head direction. Wraparound-aware, multi-animal capable, and based on body-part derived base angles.
- Circular statistics mixin
CircularStatisticsMixinCircularStatisticsMixin.agg_angular_diff_timebins()CircularStatisticsMixin.circular_correlation()CircularStatisticsMixin.circular_hotspots()CircularStatisticsMixin.circular_mean()CircularStatisticsMixin.circular_range()CircularStatisticsMixin.circular_std()CircularStatisticsMixin.degrees_to_cardinal()CircularStatisticsMixin.direction_three_bps()CircularStatisticsMixin.direction_two_bps()CircularStatisticsMixin.fit_circle()CircularStatisticsMixin.hodges_ajne()CircularStatisticsMixin.instantaneous_angular_velocity()CircularStatisticsMixin.kuipers_two_sample_test()CircularStatisticsMixin.mean_resultant_vector_length()CircularStatisticsMixin.preferred_turning_direction()CircularStatisticsMixin.rao_spacing()CircularStatisticsMixin.rayleigh()CircularStatisticsMixin.rotational_direction()CircularStatisticsMixin.sliding_angular_diff()CircularStatisticsMixin.sliding_bearing()CircularStatisticsMixin.sliding_circular_correlation()CircularStatisticsMixin.sliding_circular_hotspots()CircularStatisticsMixin.sliding_circular_mean()CircularStatisticsMixin.sliding_circular_range()CircularStatisticsMixin.sliding_circular_std()CircularStatisticsMixin.sliding_hodges_ajne()CircularStatisticsMixin.sliding_kuipers_two_sample_test()CircularStatisticsMixin.sliding_mean_resultant_vector_length()CircularStatisticsMixin.sliding_preferred_turning_direction()CircularStatisticsMixin.sliding_rao_spacing()CircularStatisticsMixin.sliding_rayleigh_z()CircularStatisticsMixin.three_point_direction()CircularStatisticsMixin.two_point_direction()CircularStatisticsMixin.watson_williams_test()CircularStatisticsMixin.watsons_u()
- Circular GPU methods
direction_from_three_bps()direction_from_two_bps()instantaneous_angular_velocity()rotational_direction()sliding_angular_diff()sliding_bearing()sliding_circular_hotspots()sliding_circular_mean()sliding_circular_range()sliding_circular_std()sliding_rayleigh_z()sliding_resultant_vector_length()
๐ง Config reader๏
Parse SimBA config files and access project-specific metadata.
๐ก Cue-light tools๏
Link animal behavior to cue-light on/off states.
See tutorial: Cue-light tutorial
๐ง Data processing tools๏
Transform classification, tracking, and image data.
- Aggregate classifier statistics calculator
- Interpolate pose-estimation data
- Advanced pose-estimation interpolation
- Smooth pose-estimation data
- Advanced smooth pose-estimation data
- Directing-other-animals calculator
- Directing-other-animals body-parts calculator
- Forward-spike-time-tiling coefficient calculator
- Pose interpolator calculator
- Pose interpolator and smoothing calculators
- Kleinberg calculator
- Movement calculator
- Pup-retrieval calculator
- SimBA pyburst calculator
- Severity calculator
- Classifier time-bins calculator
- Movement time-bins calculator
- Movement time-bins calculator (multiprocess)
- Aggregate classifier statistics (multiprocess)
- Directing-animal-to-bodypart calculator
- Severity bout-based calculator
- Severity frame-based calculator
- YOLO track cleaner
- SHAP log (GPU)
- Mutual exclusivity refactorer
- Boolean conditional calculator
- Gibbs sampling
- Spontaneous alternation calculator
- โBlobโ location detector
- Egocentric data / video alignment
- Heuristic circling detector
- Heuristic freezing detector
- Data GPU methods
- Light-dark box analysis
๐ Feature extraction mixins๏
Core low-level feature methods used in SimBAโs default extraction pipelines.
- Feature extraction methods
FeatureExtractionMixinFeatureExtractionMixin.angle3pt()FeatureExtractionMixin.angle3pt_vectorized()FeatureExtractionMixin.bodypart_distance()FeatureExtractionMixin.cdist()FeatureExtractionMixin.cdist_3d()FeatureExtractionMixin.change_in_bodypart_euclidean_distance()FeatureExtractionMixin.check_directionality_cords()FeatureExtractionMixin.check_directionality_viable()FeatureExtractionMixin.convex_hull_calculator_mp()FeatureExtractionMixin.cosine_similarity()FeatureExtractionMixin.count_values_in_range()FeatureExtractionMixin.create_shifted_array()FeatureExtractionMixin.create_shifted_df()FeatureExtractionMixin.dataframe_gaussian_smoother()FeatureExtractionMixin.dataframe_savgol_smoother()FeatureExtractionMixin.euclidean_distance()FeatureExtractionMixin.find_midpoints()FeatureExtractionMixin.framewise_bodypart_movement()FeatureExtractionMixin.framewise_euclidean_distance()FeatureExtractionMixin.framewise_euclidean_distance_roi()FeatureExtractionMixin.framewise_inside_polygon_roi()FeatureExtractionMixin.framewise_inside_rectangle_roi()FeatureExtractionMixin.get_bp_headers()FeatureExtractionMixin.get_feature_extraction_headers()FeatureExtractionMixin.insert_default_headers_for_feature_extraction()FeatureExtractionMixin.is_inside_circle()FeatureExtractionMixin.jitted_line_crosses_to_nonstatic_targets()FeatureExtractionMixin.jitted_line_crosses_to_static_targets()FeatureExtractionMixin.keypoint_distances()FeatureExtractionMixin.line_crosses_to_static_targets()FeatureExtractionMixin.minimum_bounding_rectangle()FeatureExtractionMixin.three_point_angle()FeatureExtractionMixin.windowed_frequentist_distribution_tests()
- Supplementary feature extraction methods
FeatureExtractionSupplementalFeatureExtractionSupplemental.angle3pt()FeatureExtractionSupplemental.angle3pt_vectorized()FeatureExtractionSupplemental.bodypart_distance()FeatureExtractionSupplemental.border_distances()FeatureExtractionSupplemental.cdist()FeatureExtractionSupplemental.cdist_3d()FeatureExtractionSupplemental.change_in_bodypart_euclidean_distance()FeatureExtractionSupplemental.check_directionality_cords()FeatureExtractionSupplemental.check_directionality_viable()FeatureExtractionSupplemental.consecutive_time_series_categories_count()FeatureExtractionSupplemental.convex_hull_calculator_mp()FeatureExtractionSupplemental.cosine_similarity()FeatureExtractionSupplemental.count_values_in_range()FeatureExtractionSupplemental.create_shifted_array()FeatureExtractionSupplemental.create_shifted_df()FeatureExtractionSupplemental.dataframe_gaussian_smoother()FeatureExtractionSupplemental.dataframe_savgol_smoother()FeatureExtractionSupplemental.distance_and_velocity()FeatureExtractionSupplemental.euclidean_distance()FeatureExtractionSupplemental.euclidean_distance_timeseries_change()FeatureExtractionSupplemental.find_midpoints()FeatureExtractionSupplemental.find_path_loops()FeatureExtractionSupplemental.framewise_bodypart_movement()FeatureExtractionSupplemental.framewise_euclidean_distance()FeatureExtractionSupplemental.framewise_euclidean_distance_roi()FeatureExtractionSupplemental.framewise_inside_polygon_roi()FeatureExtractionSupplemental.framewise_inside_rectangle_roi()FeatureExtractionSupplemental.get_bp_headers()FeatureExtractionSupplemental.get_feature_extraction_headers()FeatureExtractionSupplemental.img_edge_distances()FeatureExtractionSupplemental.insert_default_headers_for_feature_extraction()FeatureExtractionSupplemental.is_inside_circle()FeatureExtractionSupplemental.jitted_line_crosses_to_nonstatic_targets()FeatureExtractionSupplemental.jitted_line_crosses_to_static_targets()FeatureExtractionSupplemental.keypoint_distances()FeatureExtractionSupplemental.line_crosses_to_static_targets()FeatureExtractionSupplemental.minimum_bounding_rectangle()FeatureExtractionSupplemental.movement_stats_from_bouts_df()FeatureExtractionSupplemental.peak_ratio()FeatureExtractionSupplemental.rolling_categorical_switches_ratio()FeatureExtractionSupplemental.rolling_horizontal_vs_vertical_movement()FeatureExtractionSupplemental.rolling_peak_count_ratio()FeatureExtractionSupplemental.sequential_lag_analysis()FeatureExtractionSupplemental.spontaneous_alternations()FeatureExtractionSupplemental.three_point_angle()FeatureExtractionSupplemental.velocity_aggregator()FeatureExtractionSupplemental.windowed_frequentist_distribution_tests()
๐ Feature extraction wrappers๏
Pre-configured โout-of-the-boxโ feature extraction modules for common pose-estimation schemas.
- Default feature extractor for 2 animals and 14 body-parts
- Default feature extractor for 1 animals and 16 body-parts
- Default feature extractor for 1 animals and 4 body-parts
- Default feature extractor for 1 animals and 7 body-parts
- Default feature extractor for 1 animals and 8 body-parts
- Default feature extractor for 2 animals and 16 body-parts
- Default feature extractor for 1 animals and 9 body-parts
- Default feature extractor for user-defined body-parts
- Feature extractor for feature subset family
- Jitted methods for convex-hull related calculations
- Rearing and grooming feature extraction wrapper
- Straub tail feature extraction wrapper
- Mexican cave fish feature extraction wrapper
- Rat social behavior feature extraction wrapper
- Gerbil single body-part feature extraction wrapper
- Aggression feature extractor (11/25)
- AMBER pipeline feature extractor
- Boundary rearing feature extractor
- Riptortus pedestris feature extractor
- Custom feature extractor
๐ Geometry transformations๏
Transform pose-estimated body-part coordinates into geometric shapes (bounding boxes, polygons, circles), and compute spatial relationships like distance and intersection.
- Geometry mixin
GeometryMixinGeometryMixin.adjust_geometry_locations()GeometryMixin.area()GeometryMixin.bodyparts_to_circle()GeometryMixin.bodyparts_to_line()GeometryMixin.bodyparts_to_multistring_skeleton()GeometryMixin.bodyparts_to_points()GeometryMixin.bodyparts_to_polygon()GeometryMixin.bucket_img_into_grid_hexagon()GeometryMixin.bucket_img_into_grid_points()GeometryMixin.bucket_img_into_grid_square()GeometryMixin.buffer_shape()GeometryMixin.compute_pct_shape_overlap()GeometryMixin.compute_shape_overlap()GeometryMixin.contours_to_geometries()GeometryMixin.crosses()GeometryMixin.cumsum_animal_geometries_grid()GeometryMixin.cumsum_bool_geometries()GeometryMixin.cumsum_coord_geometries()GeometryMixin.delaunay_triangulate_keypoints()GeometryMixin.difference()GeometryMixin.extend_line_to_bounding_box_edges()GeometryMixin.filter_low_p_bps_for_shapes()GeometryMixin.geometries_to_exterior_keypoints()GeometryMixin.geometry_contourcomparison()GeometryMixin.geometry_histocomparison()GeometryMixin.geometry_transition_probabilities()GeometryMixin.geometry_video()GeometryMixin.get_center()GeometryMixin.get_geometry_brightness_intensity()GeometryMixin.get_shape_statistics()GeometryMixin.hausdorff_distance()GeometryMixin.is_containing()GeometryMixin.is_shape_covered()GeometryMixin.is_touching()GeometryMixin.keypoints_to_axis_aligned_bounding_box()GeometryMixin.length()GeometryMixin.line_split_bounding_box()GeometryMixin.linear_frechet_distance()GeometryMixin.locate_line_point()GeometryMixin.minimum_rotated_rectangle()GeometryMixin.multiframe_area()GeometryMixin.multiframe_bodypart_to_point()GeometryMixin.multiframe_bodyparts_to_circle()GeometryMixin.multiframe_bodyparts_to_line()GeometryMixin.multiframe_bodyparts_to_multistring_skeleton()GeometryMixin.multiframe_bodyparts_to_polygon()GeometryMixin.multiframe_buffer_shapes()GeometryMixin.multiframe_compute_pct_shape_overlap()GeometryMixin.multiframe_compute_shape_overlap()GeometryMixin.multiframe_delaunay_triangulate_keypoints()GeometryMixin.multiframe_difference()GeometryMixin.multiframe_hausdorff_distance()GeometryMixin.multiframe_is_shape_covered()GeometryMixin.multiframe_length()GeometryMixin.multiframe_minimum_rotated_rectangle()GeometryMixin.multiframe_shape_distance()GeometryMixin.multiframe_symmetric_difference()GeometryMixin.multiframe_union()GeometryMixin.multifrm_geometry_histocomparison()GeometryMixin.parallel_offset_polygon()GeometryMixin.point_lineside()GeometryMixin.points_in_polygon()GeometryMixin.rank_shapes()GeometryMixin.shape_distance()GeometryMixin.simba_roi_to_geometries()GeometryMixin.sleap_csv_to_geometries()GeometryMixin.smooth_geometry_bspline()GeometryMixin.static_point_lineside()GeometryMixin.symmetric_difference()GeometryMixin.to_linestring()GeometryMixin.union()GeometryMixin.view_shapes()
- Geometry GPU methods
๐ผ๏ธ Image transformations๏
Slice frames and extract visual information from tracking data; compare image features across time.
- Image mixin
ImageMixinImageMixin.add_img_border_and_flood_fill()ImageMixin.brightness_intensity()ImageMixin.canny_edge_detection()ImageMixin.close()ImageMixin.create_time_ruler()ImageMixin.create_uniform_img()ImageMixin.cross_correlation_matrix()ImageMixin.cross_correlation_similarity()ImageMixin.erode()ImageMixin.find_contours()ImageMixin.find_first_non_uniform_clr_frm()ImageMixin.gaussian_blur()ImageMixin.get_contourmatch()ImageMixin.get_histocomparison()ImageMixin.get_timelapse_img()ImageMixin.img_diff()ImageMixin.img_emd()ImageMixin.img_matrix_mse()ImageMixin.img_moments()ImageMixin.img_sliding_mse()ImageMixin.img_stack_mse()ImageMixin.img_stack_to_bw()ImageMixin.img_stack_to_greyscale()ImageMixin.img_stack_to_video()ImageMixin.img_to_bw()ImageMixin.img_to_greyscale()ImageMixin.is_video_color()ImageMixin.non_local_mean_denoising_image()ImageMixin.non_local_mean_denoising_sequence()ImageMixin.orb_matching_similarity_()ImageMixin.pad_img_stack()ImageMixin.read_all_img_in_dir()ImageMixin.read_img_batch_from_video()ImageMixin.resize_img_dict()ImageMixin.resize_img_stack()ImageMixin.segment_img_horizontal()ImageMixin.segment_img_stack_horizontal()ImageMixin.segment_img_vertical()ImageMixin.slice_shapes_in_img()ImageMixin.slice_shapes_in_imgs()ImageMixin.sliding_cross_correlation_similarity()ImageMixin.sliding_structural_similarity_index()ImageMixin.structural_similarity_index()ImageMixin.structural_similarity_matrix()ImageMixin.template_matching_cpu()ImageMixin.template_matching_gpu()
- Image GPU methods
average_3d_stack_cupy()bg_subtraction_cuda()bg_subtraction_cupy()create_average_frm_cuda()create_average_frm_cupy()img_stack_brightness()img_stack_to_bw()img_stack_to_grayscale_cuda()img_stack_to_grayscale_cupy()pose_plotter()rotate_img_stack_cupy()rotate_video_cupy()segment_img_stack_horizontal()segment_img_stack_vertical()slice_imgs()sliding_psnr()stack_sliding_mse()
๐ท๏ธ Labeling tools๏
SimBA tools for annotating behavioral events.
๐ค Model tools๏
Create, train, and manage behavior classifiers in SimBA.
- Model mixin
TrainModelMixinTrainModelMixin.bout_train_test_splitter()TrainModelMixin.calc_learning_curve()TrainModelMixin.calc_permutation_importance()TrainModelMixin.calc_pr_curve()TrainModelMixin.check_df_dataset_integrity()TrainModelMixin.check_raw_dataset_integrity()TrainModelMixin.check_sampled_dataset_integrity()TrainModelMixin.check_validity_of_meta_files()TrainModelMixin.clf_define()TrainModelMixin.clf_fit()TrainModelMixin.clf_predict_proba()TrainModelMixin.create_clf_report()TrainModelMixin.create_example_dt()TrainModelMixin.create_meta_data_csv_training_multiple_models()TrainModelMixin.create_meta_data_csv_training_one_model()TrainModelMixin.create_shap_log()TrainModelMixin.create_shap_log_concurrent_mp()TrainModelMixin.create_shap_log_mp()TrainModelMixin.create_x_importance_bar_chart()TrainModelMixin.create_x_importance_log()TrainModelMixin.cuml_rf_x_importances()TrainModelMixin.define_scaler()TrainModelMixin.define_tree_explainer()TrainModelMixin.delete_other_annotation_columns()TrainModelMixin.dviz_classification_visualization()TrainModelMixin.find_collinear_features()TrainModelMixin.find_highly_correlated_fields()TrainModelMixin.find_low_variance_fields()TrainModelMixin.fit_scaler()TrainModelMixin.get_all_clf_names()TrainModelMixin.get_model_info()TrainModelMixin.insert_column_headers_for_outlier_correction()TrainModelMixin.partial_dependence_calculator()TrainModelMixin.print_machine_model_information()TrainModelMixin.random_multiclass_bout_sampler()TrainModelMixin.random_multiclass_frm_sampler()TrainModelMixin.random_undersampler()TrainModelMixin.read_all_files_in_folder()TrainModelMixin.read_all_files_in_folder_mp()TrainModelMixin.read_all_files_in_folder_mp_futures()TrainModelMixin.read_in_all_model_names_to_remove()TrainModelMixin.read_model_settings_from_config()TrainModelMixin.read_pickle()TrainModelMixin.save_rf_model()TrainModelMixin.scaler_inverse_transform()TrainModelMixin.scaler_transform()TrainModelMixin.smote_oversampler()TrainModelMixin.smoteen_oversampler()TrainModelMixin.split_and_group_df()TrainModelMixin.split_df_to_x_y()
- Batch random forest inference
- Batch multi-animal random forest inference
- Batch multi-class random forest inference
- Grid-search random forest classifiers
- Grid-search random forest multi-classifiers
- Random forest inference - validation
- Fit random forest classifier
- Fit random forest classifier - multi-class
- Ordinal classifier methods
- Regression - metrics
- Regression - fit and transform
- SAM2 segmentation inference
- Fit YOLO model
- YOLO bounding-box inference
๐ Network transformations๏
Build and analyze graphs derived from pose-estimation time-series data.
- Network (Graph) methods
NetworkMixinNetworkMixin.berger_parker()NetworkMixin.brillouins_index()NetworkMixin.create_graph()NetworkMixin.create_multigraph()NetworkMixin.girvan_newman()NetworkMixin.graph_current_flow_closeness_centrality()NetworkMixin.graph_katz_centrality()NetworkMixin.graph_page_rank()NetworkMixin.margalef_diversification_index()NetworkMixin.menhinicks_index()NetworkMixin.multigraph_page_rank()NetworkMixin.shannon_diversity_index()NetworkMixin.simpson_index()NetworkMixin.sorensen_dice_coefficient()NetworkMixin.visualize()
โ ๏ธ Outlier correction๏
Heuristic-based filtering of body-part tracking outliers.
๐จ Plotting and visualization tools๏
Visualize behavioral data and pose-tracking outputs.
- Direction between animals
- Direction between animals - multiprocess
- ROI feature visualization
- ROI feature visualization - multiprocess
- ROI directing visualization
- ROI visualizer
- ROI visualizer - multiprocess
- Circular base feature plotter
- Circular diffusion plotting
- Classifier validation
- Classifier validation - multiprocess
- Data plotter
- Distance plotter
- Distance plotter - multiprocess
- Quick path plot (Ez path plot)
- Merge videos
- Gantt plot
- Gantt plot - multiprocess
- Gantt plot - fancy
- Classifier heatmaps
- Classifier heatmaps - multiprocess
- Location heatmaps
- Location heatmaps - multiprocess
- Interactive classifier probability plotter
- Path plotter
- Path plotter - multiprocess
- Classification plotter
- Classification plotter - multiprocess
- Annotation bout plotter
- Pose-estimation plotter
- Skeleton video creator
- Classification probability plotter
- Classification probability plotter - multiprocess
- SHAP aggregation plotter
- Single video validation plotter
- Single video validation plotter - multiprocess
- Geometry plotter (generic)
- Spontaneous alternation plotter
- โBlobโ plotter
- โBlobโ plotter
- YOLO bounding-box plotter
- YOLO model comparator
- Plotting methods
PlottingMixinPlottingMixin.categorical_scatter()PlottingMixin.continuous_scatter()PlottingMixin.create_gantt_img()PlottingMixin.create_single_color_lst()PlottingMixin.draw_lines_on_img()PlottingMixin.get_bouts_for_gantt()PlottingMixin.get_optimal_circle_size()PlottingMixin.get_optimal_font_scales()PlottingMixin.get_path_img()PlottingMixin.insert_directing_line()PlottingMixin.joint_plot()PlottingMixin.line_plot()PlottingMixin.make_distance_plot()PlottingMixin.make_gantt_plot()PlottingMixin.make_line_plot()PlottingMixin.make_line_plot_plotly()PlottingMixin.make_path_plot()PlottingMixin.make_probability_plot()PlottingMixin.plot_bar_chart()PlottingMixin.plot_clf_cumcount()PlottingMixin.put_text()PlottingMixin.remove_a_folder()PlottingMixin.resize_gantt()PlottingMixin.rotate_img()PlottingMixin.split_and_group_df()
- Light-/Dark-box plotting
๐ฆ Pose-estimation import tools๏
Parse, load, and process pose-estimation data from common formats.
- Import single DLC CSV file
- Import multiple DLC CSV files
- Import MARS pose-estimation data
- Import DANNCE pose-estimation data
- Import SLEAP CSV pose-estimation data
- Import SLEAP H5 pose-estimation data
- Import SLEAP SLP pose-estimation data
- Import APT TRK pose-estimation data
- Import DLC H5 files
- Reset pose
- Remove key-points
- Re-organize key-points
- Reverse pose
- Pose import mixins
- Import SimBA blob tracking as pose
- Import FaceMap body-part tracking
- Import SuperAnimal-TopView Mouse body-part tracking
- Import YOLO pose-estimation tracking (unique individuals, non-track based, only)
๐บ๏ธ ROI tools๏
Define and analyze regions-of-interest (ROIs) in relation to tracking data.
- ROI Analysis Tools
- ROI Visualization
- ROI GUI Tools
- ROI Shape Selectors
- ROI Interactive Modifiers
- ROI Data Import/Export
๐ Statistics transformations๏
Compute statistical features, drift, distances, and distribution comparisons in sliding or static time windows.
- Statistics mixin
StatisticsStatistics.adjusted_mutual_info()Statistics.adjusted_rand()Statistics.banfeld_raftery_index()Statistics.bouguessa_wang_sun_v2()Statistics.bray_curtis_dissimilarity()Statistics.brunner_munzel()Statistics.c_index()Statistics.calinski_harabasz()Statistics.chi_square()Statistics.chow_test()Statistics.circular_euclidean_kantorovich()Statistics.cochrans_q()Statistics.cohens_d()Statistics.cohens_h()Statistics.cohens_kappa()Statistics.concordance_ratio()Statistics.cop_index()Statistics.cov_matrix()Statistics.czebyshev_distance()Statistics.d_prime()Statistics.davis_bouldin()Statistics.dunn_index()Statistics.dunn_symmetry_idx()Statistics.elliptic_envelope()Statistics.eta_squared()Statistics.find_collinear_features()Statistics.fowlkes_mallows()Statistics.geometric_mean()Statistics.get_clustering_purity()Statistics.gower_distance()Statistics.grubbs_test()Statistics.hamming_distance()Statistics.hartley_fmax()Statistics.hbos()Statistics.hellinger_distance()Statistics.i_index()Statistics.independent_samples_t()Statistics.isolation_forest()Statistics.jaccard_distance()Statistics.jensen_shannon_divergence()Statistics.kendall_tau()Statistics.kmeans_1d()Statistics.kruskal_scipy()Statistics.kruskal_wallis()Statistics.krzanowski_lai_index()Statistics.kullback_leibler_divergence()Statistics.kumar_hassebrook_similarity()Statistics.levenes()Statistics.local_outlier_factor()Statistics.mad_median_rule()Statistics.mahalanobis_distance_cdist()Statistics.manhattan_distance_cdist()Statistics.mann_whitney()Statistics.mclain_rao_index()Statistics.mcnemar()Statistics.normalized_google_distance()Statistics.one_way_anova()Statistics.one_way_anova_scipy()Statistics.pairwise_tukeyhsd_scipy()Statistics.pbm_index()Statistics.pct_in_top_n()Statistics.pearsons_r()Statistics.phi_coefficient()Statistics.population_stability_index()Statistics.ray_turi_index()Statistics.relative_risk()Statistics.rmsstd()Statistics.rolling_barletts_test()Statistics.rolling_cohens_d()Statistics.rolling_independent_sample_t()Statistics.rolling_jensen_shannon_divergence()Statistics.rolling_kullback_leibler_divergence()Statistics.rolling_levenes()Statistics.rolling_mann_whitney()Statistics.rolling_one_way_anova()Statistics.rolling_population_stability_index()Statistics.rolling_shapiro_wilks()Statistics.rolling_two_sample_ks()Statistics.rolling_wasserstein_distance()Statistics.s_dbw_index()Statistics.scott_symons_index()Statistics.sd_index()Statistics.silhouette_score()Statistics.sliding_autocorrelation()Statistics.sliding_cumulative_mean()Statistics.sliding_czebyshev_distance()Statistics.sliding_dominant_frequencies()Statistics.sliding_eta_squared()Statistics.sliding_independent_samples_t()Statistics.sliding_iqr()Statistics.sliding_kendall_tau()Statistics.sliding_kurtosis()Statistics.sliding_mad_median_rule()Statistics.sliding_pearsons_r()Statistics.sliding_phi_coefficient()Statistics.sliding_relative_risk()Statistics.sliding_skew()Statistics.sliding_spearman_rank_correlation()Statistics.sliding_z_scores()Statistics.sokal_michener()Statistics.sokal_sneath()Statistics.spearman_rank_correlation()Statistics.symmetry_index()Statistics.total_variation_distance()Statistics.two_sample_ks()Statistics.wasserstein_distance()Statistics.wave_hedges_distance()Statistics.wemmert_gancarski_index()Statistics.wilcoxon()Statistics.xie_beni()Statistics.youden_j()Statistics.yule_coef()
- Statistics GPU methods
adjusted_rand_gpu()count_values_in_ranges()davis_bouldin()dunn_index()euclidean_distance_to_static_point()get_3pt_angle()get_euclidean_distance_cuda()get_euclidean_distance_cupy()hamming_distance_gpu()i_index()kmeans_cuml()kullback_leibler_divergence_gpu()silhouette_score_gpu()sliding_mean()sliding_min()sliding_spearmans_rank()sliding_std()sliding_sum()sokal_sneath_gpu()xie_beni()
๐ฅ Third-party label appenders๏
Append labels from external annotation tools to pose-estimation outputs.
- BENTO
- BORIS
- BORIS source cleaner
- Deepethogram
- Ethovison
- Noldus Observer
- Solomon coder
- Shah appender
- Generic third-party appender tool
- Third-party annotation tools
- Annotation format converters
- COCO key-points -> YOLO pose-estimation format conversion
- COCO key-points -> YOLO bounding box conversion
- COCO key-points -> YOLO segmentation conversion
- SAM3 -> YOLO segmentation project
- SAM3 -> YOLO bounding-box (detection) project
- Merge multiple YOLO projects
- Multi-animal DeepLabCut predictions -> YOLO pose-estimation annotations format conversion
- DeepLabCut predictions -> YOLO pose-estimation annotations
- Lightning Pose annotations -> YOLO pose-estimation annotations
- Lightning Pose annotations -> YOLO bounding box annotations
- Merge Lightning Pose projects
- Crop Lightning Pose annotations
- Crop Lightning Pose annotations (bounding box square)
- Create Lightning Pose bounding box files
- Multi-animal DeepLabCut -> YOLO pose-estimation annotations
- DeepLabCut single-to-multi-animal format converter
- DeepLabCut annotations -> Labelme annotations
- Labelme annotations -> DeepLabCut annotations
- Labelme annotations -> DataFrame
- Labelme annotations -> DeepLabCut annotations
- Labelme annotations -> YOLO bounding box annotations
- Labelme points -> YOLO keypoints annotations
- Labelme points -> YOLO segmentation annotations
- SimBA ROIs -> YOLO bounding box annotations
- SimBA pose-estimation -> YOLO pose-estimation annotations
- SLEAP CSV predictions -> YOLO pose-estimation annotations
- SLEAP H5 predictions -> YOLO pose-estimation annotations
- SLEAP annotations -> YOLO pose-estimation annotations
- Annotation conversion utilities
๐ Time-series transformations๏
Analyze time-series complexity using sliding window methods.
- Time-series statistics mixin
TimeseriesFeatureMixinTimeseriesFeatureMixin.acceleration()TimeseriesFeatureMixin.avg_kinetic_energy()TimeseriesFeatureMixin.benford_correlation()TimeseriesFeatureMixin.crossings()TimeseriesFeatureMixin.dominant_frequencies()TimeseriesFeatureMixin.entropy_of_directional_changes()TimeseriesFeatureMixin.granger_tests()TimeseriesFeatureMixin.higuchi_fractal_dimension()TimeseriesFeatureMixin.hjort_parameters()TimeseriesFeatureMixin.line_length()TimeseriesFeatureMixin.linearity_index()TimeseriesFeatureMixin.local_maxima_minima()TimeseriesFeatureMixin.longest_strike()TimeseriesFeatureMixin.mean_squared_jerk()TimeseriesFeatureMixin.momentum_magnitude()TimeseriesFeatureMixin.path_aspect_ratio()TimeseriesFeatureMixin.path_curvature()TimeseriesFeatureMixin.percent_beyond_n_std()TimeseriesFeatureMixin.percent_in_percentile_window()TimeseriesFeatureMixin.percentile_difference()TimeseriesFeatureMixin.permutation_entropy()TimeseriesFeatureMixin.petrosian_fractal_dimension()TimeseriesFeatureMixin.radial_dispersion_index()TimeseriesFeatureMixin.radial_eccentricity()TimeseriesFeatureMixin.sliding_avg_kinetic_energy()TimeseriesFeatureMixin.sliding_benford_correlation()TimeseriesFeatureMixin.sliding_crossings()TimeseriesFeatureMixin.sliding_descriptive_statistics()TimeseriesFeatureMixin.sliding_displacement()TimeseriesFeatureMixin.sliding_entropy_of_directional_changes()TimeseriesFeatureMixin.sliding_hjort_parameters()TimeseriesFeatureMixin.sliding_line_length()TimeseriesFeatureMixin.sliding_linearity_index()TimeseriesFeatureMixin.sliding_longest_strike()TimeseriesFeatureMixin.sliding_mean_squared_jerk()TimeseriesFeatureMixin.sliding_momentum_magnitude()TimeseriesFeatureMixin.sliding_path_aspect_ratio()TimeseriesFeatureMixin.sliding_path_curvature()TimeseriesFeatureMixin.sliding_pct_in_top_n()TimeseriesFeatureMixin.sliding_percent_beyond_n_std()TimeseriesFeatureMixin.sliding_percent_in_percentile_window()TimeseriesFeatureMixin.sliding_percentile_difference()TimeseriesFeatureMixin.sliding_petrosian_fractal_dimension()TimeseriesFeatureMixin.sliding_spatial_density()TimeseriesFeatureMixin.sliding_stationary()TimeseriesFeatureMixin.sliding_two_signal_crosscorrelation()TimeseriesFeatureMixin.sliding_unique()TimeseriesFeatureMixin.sliding_variance()TimeseriesFeatureMixin.sliding_window_stats()TimeseriesFeatureMixin.spatial_density()TimeseriesFeatureMixin.spike_finder()TimeseriesFeatureMixin.spike_train_finder()TimeseriesFeatureMixin.time_since_previous_target_value()TimeseriesFeatureMixin.time_since_previous_threshold()
- Time-series statistics GPU methods
๐ฎ Unsupervised learning๏
Clustering and dimensionality reduction methods for behavioral analysis.
๐ฅ๏ธ User Interface (UI) tools๏
SimBAโs GUI components and window-based interaction logic.
- Create project UI
- Set machine learning hyperparameters UI
- SimBA ML settings frame
- SimBA tkinter methods
- SimBA create user-defined pose config UI
- SimBA set video info UI
- SimBA video timelapse
- SimBA import pose frame
- SimBA import videos frame
- SimBA batch process menus
- SimBA get pixels per millimeter converstion UI
- SimBA pop-up UIs
- SimBA pop-up mixin
โ๏ธ Utilities๏
Helper methods for logging, CLI execution, argument checks, warnings, and I/O.
๐น Video processing tools๏
Video processing tools using OpenCV and FFmpeg.
- Video processing tools
VideoRotatorappend_audio()batch_convert_video_format()batch_create_frames()batch_video_to_greyscale()change_fps_of_multiple_videos()change_img_format()change_playback_speed()change_playback_speed_dir()change_single_video_fps()clahe_enhance_video()clahe_enhance_video_mp()clip_video_in_range()clip_videos_by_frame_ids()convert_to_avi()convert_to_bmp()convert_to_jpeg()convert_to_mov()convert_to_mp4()convert_to_png()convert_to_tiff()convert_to_webm()convert_to_webp()convert_video_powerpoint_compatible_format()copy_img_folder()create_average_frm()create_blank_video()crop_multiple_videos()crop_multiple_videos_circles()crop_multiple_videos_polygons()crop_single_video()crop_single_video_circle()crop_single_video_polygon()crop_video()crossfade_two_videos()downsample_video()extract_frame_range()extract_frames_from_all_videos_in_directory()extract_frames_single_video()flip_videos()frames_to_movie()get_async_frame_batch()get_img_slic()get_video_slic()gif_creator()horizontal_video_concatenator()is_video_seekable()mixed_mosaic_concatenator()mosaic_concatenator()multi_split_video()reencode_mp4_video()remove_beginning_of_video()remove_end_of_video()resize_videos_by_height()resize_videos_by_width()reverse_videos()roi_blurbox()rotate_video()split_mosaic()superimpose_elapsed_time()superimpose_frame_count()superimpose_freetext()superimpose_overlay_video()superimpose_video_names()superimpose_video_progressbar()temporal_concatenation()upsample_fps()vertical_video_concatenator()video_bg_subtraction()video_bg_subtraction_mp()video_concatenator()video_to_bw()video_to_greyscale()watermark_video()
- Multi-cropper
- Crop ROI selector (rectangles)
- Crop ROI selector (circles)
- Crop ROI selector (polygons)
- Interactive CLAHE
- Interactive brightness / contrast
- Batch video process executor
- Egocentrically rotate videos
- Asynchronous frame reader
- Asynchronous frame reader (GPU)
๐๏ธ YOLO Methods๏
Methods for training YOLO models, creating training and validation datasets, and converting behavioral neuroscience-specific datasets to YOLO datasets.
Uses the Ultralytics package.
- YOLO methods
- Utilities
- Bounding-box inference
- NVDEC GPU-accelerated YOLO inference
- Pose-estimation inference
- YOLO pose-estimation segmentation visualizer
- YOLO pose-estimation segmentation inference
- Pose-estimation track inference
- Pose-estimation track plotting
- Pose-estimation plotting
- Bounding box plotting
- YOLO annotation visualizer
- COCO key-points -> YOLO pose-estimation format conversion
- COCO key-points -> YOLO bounding box conversion
- COCO key-points -> YOLO segmentation conversion
- SAM3 -> YOLO segmentation project
- SAM3 -> YOLO bounding-box (detection) project
- Merge multiple YOLO projects
- Multi-animal DeepLabCut predictions -> YOLO pose-estimation annotations format conversion
- DeepLabCut predictions -> YOLO pose-estimation annotations
- Labelme annotations -> YOLO bounding box annotations
- Labelme points -> YOLO keypoints annotations
- Labelme points -> YOLO segmentation annotations
- SimBA ROIs -> YOLO bounding box annotations
- SimBA pose-estimation -> YOLO pose-estimation annotations
- SimBA pose-estimation -> YOLO segmentation annotations
- SLEAP CSV predictions -> YOLO pose-estimation annotations
- SLEAP H5 predictions -> YOLO pose-estimation annotations
- SLEAP annotations -> YOLO pose-estimation annotations
- LightningPose keypoints -> YOLO bounding box conversion
- LightningPose keypoints -> YOLO pose-estimation annotations