diff --git a/src/agora/io/signal.py b/src/agora/io/signal.py index 4110bddf55003e6e7c75d55534b2634bc6ceb188..0eb7c1c9edd298215abd4562430bd5af69db4915 100644 --- a/src/agora/io/signal.py +++ b/src/agora/io/signal.py @@ -241,7 +241,7 @@ class Signal(BridgeH5): try: if isinstance(dataset, str): with h5py.File(self.filename, "r") as f: - df = self.dset_to_df(f, dataset) + df = self.dataset_to_df(f, dataset) if in_minutes: df = self.cols_in_mins(df) return df @@ -269,8 +269,8 @@ class Signal(BridgeH5): else: return None - def dset_to_df(self, f, dataset): - dset = f[dataset] + def dataset_to_df(self, f: h5py.File, path: str): + dset = f[path] index_names = copy(self.index_names) valid_names = [lbl for lbl in index_names if lbl in dset.keys()] @@ -278,34 +278,37 @@ class Signal(BridgeH5): [dset[lbl] for lbl in valid_names], names=valid_names ) - columns = ( - dset["timepoint"][()] - if "timepoint" in dset - else dset.attrs["columns"] - ) - - df = pd.DataFrame(dset[("values")][()], index=index, columns=columns) + columns = dset.attrs.get("columns", None) # dset.attrs["columns"] + if "timepoint" in dset: + columns = f[path + "/timepoint"][()] - return df + return pd.DataFrame( + f[path + "/values"][()], + index=index, + columns=columns, + ) @property def stem(self): return self.filename.stem - @staticmethod - def dataset_to_df(f: h5py.File, path: str): + # def dataset_to_df(self, f: h5py.File, path: str): - all_indices = ["experiment", "position", "trap", "cell_label"] - indices = { - k: f[path][k][()] for k in all_indices if k in f[path].keys() - } - return pd.DataFrame( - f[path + "/values"][()], - index=pd.MultiIndex.from_arrays( - list(indices.values()), names=indices.keys() - ), - columns=f[path + "/timepoint"][()], - ) + # all_indices = self.index_names + + # valid_indices = { + # k: f[path][k][()] for k in all_indices if k in f[path].keys() + # } + + # new_index = pd.MultiIndex.from_arrays( + # list(valid_indices.values()), names=valid_indices.keys() + # ) + + # return pd.DataFrame( + # f[path + "/values"][()], + # index=new_index, + # columns=f[path + "/timepoint"][()], + # ) def get_siglist(self, name: str, node): fullname = node.name