From 83a93972d0ab196edefe7a2138f331c1e14620c3 Mon Sep 17 00:00:00 2001 From: MSchellenberger Date: Thu, 26 Oct 2023 12:01:38 +0200 Subject: [PATCH] Added functionality: linear transformation and scaling of DLC data. Fixed outdated email in code of conduct --- CODE_OF_CONDUCT.md | 2 +- README.md | 10 + transform_and_scale/DLCTransformer.py | 208 ++++++++++++++++++ transform_and_scale/README.md | 28 +++ .../__pycache__/DLCTransformer.cpython-39.pyc | Bin 0 -> 6045 bytes .../__pycache__/read_config.cpython-39.pyc | Bin 0 -> 721 bytes transform_and_scale/config.yaml | 7 + transform_and_scale/read_config.py | 21 ++ ...DefenseCircuitsLab2023_Rotarod_testfile.h5 | Bin 0 -> 11929605 bytes .../transform_and_scale_tutorial.ipynb | 63 ++++++ 10 files changed, 338 insertions(+), 1 deletion(-) create mode 100644 transform_and_scale/DLCTransformer.py create mode 100644 transform_and_scale/README.md create mode 100644 transform_and_scale/__pycache__/DLCTransformer.cpython-39.pyc create mode 100644 transform_and_scale/__pycache__/read_config.cpython-39.pyc create mode 100644 transform_and_scale/config.yaml create mode 100644 transform_and_scale/read_config.py create mode 100644 transform_and_scale/test_data/DefenseCircuitsLab2023_Rotarod_testfile.h5 create mode 100644 transform_and_scale/transform_and_scale_tutorial.ipynb diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index f4396c3..339757e 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -55,7 +55,7 @@ further defined and clarified by project maintainers. ## Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported by contacting the project team at alexander.mathis@bethgelab.org. All +reported by contacting the project team at alexander.mathis@epfl.ch. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. diff --git a/README.md b/README.md index 138c03b..246783a 100644 --- a/README.md +++ b/README.md @@ -47,6 +47,16 @@ code: https://github.com/PolarBean/DLC_ROI_tool Contributed by [Harry Carey](https://github.com/PolarBean) +## Linear Transformation and Scaling of DLC output data (transform_and_scale) + +This package is designed for anyone who wants to know where a tracked marker is within a reference frame (i.e. behavioral context). DeepLabCut outputs coordinates in relation to the field of view of the recorded video. With this tool, these coordinates can be linearly transformed and scaled to the reference frame of the behavioral context, meaning that the output coordinates are distances [cm] to a corner of the behavioral context, instead of distances [px] to a corner of the video field of view. + +code: https://github.com/DeepLabCut/DLCutils/tree/master/transform_and_scale/ + +tutorial: https://github.com/DeepLabCut/DLCutils/tree/master/transform_and_scale/transform_and_scale_tutorial.ipynb + +Contributed by [Michael Schellenberger](https://github.com/MSchellenberger) + # Clustering tools (using the output of DLC): ## Identifying Behavioral Structure from Deep Variational Embeddings of Animal Motion diff --git a/transform_and_scale/DLCTransformer.py b/transform_and_scale/DLCTransformer.py new file mode 100644 index 0000000..b53226a --- /dev/null +++ b/transform_and_scale/DLCTransformer.py @@ -0,0 +1,208 @@ +import pandas as pd +import numpy as np +from read_config import read_config +from typing import Optional + +class DLCTransformer: + def __init__(self, config_filepath: str, dlc_filepath: Optional[str] = None, dlc_df: Optional[pd.DataFrame] = None): + self.config = read_config(config_filepath) + self.dlc_filepath = dlc_filepath + if self.dlc_filepath is not None: + if self.dlc_filepath.endswith("h5"): + self.dlc_df = pd.read_hdf(dlc_filepath, header=[0, 1, 2], index_col=0) + elif self.dlc_filepath.endswith("csv"): + self.dlc_df = pd.read_csv(dlc_filepath, header=[0, 1, 2], index_col=0) + else: + raise ValueError("DeepLabCut file must be .h5 or .csv") + else: + if dlc_df is not None: + self.dlc_df = dlc_df + else: + raise ValueError("One of the arguments dlc_filepath or dlc_df must be specified") + + # read metadata + self.origin_marker = self.config["origin_marker"] + self.basis_vector_h_marker = self.config["basis_vector_h_marker"] + self.basis_vector_v_marker = self.config["basis_vector_v_marker"] + self.scale_factor_h = self.config["scale_factor_h"] + self.scale_factor_v = self.config["scale_factor_v"] + self.dlc_immobile_marker_threshold = self.config[ + "dlc_immobile_marker_threshold" + ] + self.show_angle = self.config["show_angle"] + self.scorer = self.dlc_df.columns.get_level_values(0).unique()[0] + + def run(self) -> pd.DataFrame: + """ + Translate and scale DLC data. + First get median coordinate of origin marker and basis vectors, then transform and scale the data. + + :return: pd.DataFrame with transformed and scaled DLC data + """ + # get basis vectors and origin + origin, basis_vector_h, basis_vector_v = self.get_basis_vectors( + df=self.dlc_df, + origin_marker=self.origin_marker, + basis_vector_h_marker=self.basis_vector_h_marker, + basis_vector_v_marker=self.basis_vector_v_marker, + dlc_immobile_marker_threshold=self.dlc_immobile_marker_threshold, + ) + + if self.show_angle: + print( + "Angle between basis vectors :", + self._calculate_angle(basis_vector_v, (0, 0), basis_vector_h), + ) + + # transform df + df_transformed = self.transform( + self.dlc_df, origin, basis_vector_h, basis_vector_v + ) + df_scaled = self.scale_df( + df_transformed, self.scale_factor_h, self.scale_factor_v + ) + return df_scaled + + def get_basis_vectors( + self, + df: pd.DataFrame, + origin_marker: str, + basis_vector_h_marker: str, + basis_vector_v_marker: str, + dlc_immobile_marker_threshold: float, + ) -> (tuple, tuple, tuple): + """ + Returns the origin and basis vectors of the coordinate system + + :param df: pd.DataFrame with tracking data + :param origin_marker: name of origin marker + :param basis_vector_h_marker: name of horizontal basis vector marker + :param basis_vector_v_marker: name of vertical basis vector marker + :param dlc_immobile_marker_threshold: minimum likelihood of a constant marker to be included into the median coordinate calculation + :return: coordinates of origin, basis_vector_h, basis_vector_v + """ + origin = self.get_median_coordinate( + df, origin_marker, dlc_immobile_marker_threshold + ) + + # bring coordinates into origin system + basis_vector_h_coord = self.get_median_coordinate( + df=df, + marker=basis_vector_h_marker, + dlc_immobile_marker_threshold=dlc_immobile_marker_threshold, + ) + basis_vector_v_coord = self.get_median_coordinate( + df=df, + marker=basis_vector_v_marker, + dlc_immobile_marker_threshold=dlc_immobile_marker_threshold, + ) + + # calculate basis vector transformation + basis_vector_h = ( + basis_vector_h_coord[0] - origin[0], + basis_vector_h_coord[1] - origin[1], + ) + basis_vector_v = ( + basis_vector_v_coord[0] - origin[0], + basis_vector_v_coord[1] - origin[1], + ) + + return origin, basis_vector_h, basis_vector_v + + def get_median_coordinate(self, df, marker, dlc_immobile_marker_threshold) -> tuple: + """ + Returns the most likely coordinate of a vector + + :param df: pd.DataFrame with tracking data + :param marker: name of marker of which the median coordinate should be calculated + :param dlc_immobile_marker_threshold: minimum likelihood of a constant marker to be included into the median coordinate calculation + :return: median coordinate of marker + """ + # filter df + df = df.droplevel(0, axis=1) + marker_df = df.loc[ + df[marker, "likelihood"] > dlc_immobile_marker_threshold, marker + ].copy() + x_coord = np.nanmedian(marker_df["x"]) + y_coord = np.nanmedian(marker_df["y"]) + coords = (x_coord, y_coord) + return coords + + def _calculate_angle(self, a, b, c) -> float: + """ + Calculates the angle between three points a-b-c + + :param a: tuple of coordinates + :param b: tuple of coordinates + :param c: tuple of coordinates + :return: angle between a-b-c in degrees + """ + + # Calculate the vectors AB and BC + vector_AB = (b[0] - a[0], b[1] - a[1]) + vector_BC = (c[0] - b[0], c[1] - b[1]) + + # Calculate the magnitudes of AB and BC + magnitude_AB = np.linalg.norm(vector_AB) + magnitude_BC = np.linalg.norm(vector_BC) + # + # Calculate the dot product of AB and BC + dot_product = np.dot(vector_AB, vector_BC) + + # Calculate the angle in radians using the dot product and magnitudes + angle_radians = np.arccos(dot_product / (magnitude_AB * magnitude_BC)) + + # Convert the angle to degrees + angle_degrees = np.degrees(angle_radians) + return angle_degrees + + def transform(self, df, origin, basis_vector_h, basis_vector_v) -> pd.DataFrame: + """ + Transform the coordinates of the df into the new coordinate system + + :param df: pd.DataFrame with tracking data + :param origin: coordinate of origin + :param basis_vector_h: coordinate of horizontal basis vector + :param basis_vector_v: coordinate of vertical basis vector + :return: transformed pd.DataFrame + """ + transformed_df = df.copy() + final_transformed_df = df.copy() + + # 2d rotation matrix + a = basis_vector_h[0] + b = basis_vector_h[1] + c = basis_vector_v[0] + d = basis_vector_v[1] + + for marker in df.columns.get_level_values(1).unique(): + + # shift coordinates into origin system + transformed_df.loc[:, (self.scorer, marker, "x")] -= origin[0] + transformed_df.loc[:, (self.scorer, marker, "y")] -= origin[1] + + # linear algebra 2D transformation + final_transformed_df.loc[:, (self.scorer, marker, "y")] = ( + (transformed_df.loc[:, (self.scorer, marker, "y")] / b) + - (transformed_df.loc[:, (self.scorer, marker, "x")] / a) + ) / ((-c / a) + (d / b)) + + final_transformed_df.loc[:, (self.scorer, marker, "x")] = ( + transformed_df.loc[:, (self.scorer, marker, "x")] + - c * final_transformed_df.loc[:, (self.scorer, marker, "y")] + ) / a + + return final_transformed_df + + def scale_df(self, df, scale_factor_h, scale_factor_v) -> pd.DataFrame: + """ + :param df: pd.DataFrame with tracking data + :param scale_factor_h: horizontal scale factor + :param scale_factor_v: vertical scale factor + :return: scaled pd.DataFrame + """ + scaled_df = df.copy() + for marker in df.columns.get_level_values(1).unique(): + scaled_df.loc[:, (self.scorer, marker, "x")] *= scale_factor_h + scaled_df.loc[:, (self.scorer, marker, "y")] *= scale_factor_v + return scaled_df diff --git a/transform_and_scale/README.md b/transform_and_scale/README.md new file mode 100644 index 0000000..fae5edc --- /dev/null +++ b/transform_and_scale/README.md @@ -0,0 +1,28 @@ +# Easy transformation and scaling of DeepLabCut Data + +#### Background +DeepLabCut is a widely used markerless pose estimation toolbox in behavioral science. The output of DeepLabCut is coordinates in pixels for each frame for each marker. However, in most cases the coordinates first need to be translated (i.e. adapted to the coordinate-space of the behavioral maze) and scaled (e.g. to cm) to enable meaningful behavioral quantification. + +#### Functionality +The Transform_DLC repository takes care of a specific task: It takes DeepLabCut dataframes as the input and outputs transformed and scaled DeepLabCut dataframes. Requirements for this transformation and scaling are that the behavioral maze or a reference has to be rectangular and its corners have to be tracked with DeepLabCut. + +#### Usage +For an example usecase check out the tutorial notebook! + +1) Set hyperparameter in config file: Specify the name of the horizontal and vertical basis vector markers (in a rectangular maze these are two opposing corners) and the origin (the corner that connects the two basis vector corners). Additionally, set the DeepLabCut-likelihood threshold for those markers, and the scale factors (optional, if you donĀ“t need scaling set them to 1). For quality control set show_angle to True. + +2) Instantiate the DLCTransformer class with the filepath to your DeepLabCut tracked data and the config-filepath. + +3) Use .run on your instantiated class object and save the output in a variable of your choice. + + +#### Contribution +This is a [Defense Circuits Lab](https://www.defense-circuits-lab.com/) project written by [Michael Schellenberger](https://github.com/MSchellenberger) for [DLCutils](https://github.com/DeepLabCut/DLCutils). + + + +
+ + DefenseCircuitsLab + +
\ No newline at end of file diff --git a/transform_and_scale/__pycache__/DLCTransformer.cpython-39.pyc b/transform_and_scale/__pycache__/DLCTransformer.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8f81d283dd76cb642cd68d26c43a3a03bb55af54 GIT binary patch literal 6045 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 literal 0 HcmV?d00001 diff --git a/transform_and_scale/__pycache__/read_config.cpython-39.pyc b/transform_and_scale/__pycache__/read_config.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8f303f86670ab180c7133b660d63e16bb8b0ba42 GIT binary patch literal 721 zcmYjP&59F25U%d&{4hyCFYZO8@gj3s);&g9gsgj7gBWDlFc5mDJISmw-9vW|n2=mt zui^{%0>08*L_GNl9$afCK~h6~Lv{Uq)zxA!2m$5i_J@2%0e;oSp#*5WLUoT3BuJ9M z6ckZZ(r;7-l6_{=K#~bWt=|{{Yg?4je^BMA*xkO|tws^m@-JKp6tEzWkvwGc+5THXzpPZ6DrG(y7O8?UPZrcvf m6EWMtUlrhnDkjs!H^&X71L)T=-IuwMWv0&Rx8>@Iy1_r{iNS6F literal 0 HcmV?d00001 diff --git a/transform_and_scale/config.yaml b/transform_and_scale/config.yaml new file mode 100644 index 0000000..763d295 --- /dev/null +++ b/transform_and_scale/config.yaml @@ -0,0 +1,7 @@ +origin_marker: 'RodLowerLeft' +basis_vector_h_marker: 'RodLowerRight' +basis_vector_v_marker: 'RodUpperLeft' +scale_factor_h: 5.8 +scale_factor_v: 3 +dlc_immobile_marker_threshold: 0.9 +show_angle: True \ No newline at end of file diff --git a/transform_and_scale/read_config.py b/transform_and_scale/read_config.py new file mode 100644 index 0000000..94b43e6 --- /dev/null +++ b/transform_and_scale/read_config.py @@ -0,0 +1,21 @@ +import yaml + + +def read_config(config_path: str) -> dict: + """ + Reads structured config file defining a project. + + :param config_path: path to config file + """ + + try: + with open(config_path, "r") as ymlfile: + config_file = yaml.load(ymlfile, Loader=yaml.SafeLoader) + except FileNotFoundError: + raise ( + "Could not find the config file at " + + config_path + + " \n Please make sure the path is correct and the file exists" + ) + + return config_file diff --git a/transform_and_scale/test_data/DefenseCircuitsLab2023_Rotarod_testfile.h5 b/transform_and_scale/test_data/DefenseCircuitsLab2023_Rotarod_testfile.h5 new file mode 100644 index 0000000000000000000000000000000000000000..f4c61844aaf4a7937ecc5ace0a1a466fb83421f5 GIT binary patch literal 11929605 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

5_d4o4X@5H=tAl(?r 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