forked from jgrewe/fishbook
reading baseline data from nix works
This commit is contained in:
parent
11cab20371
commit
e00d5ae79d
@ -1,79 +0,0 @@
|
|||||||
import datajoint as dj
|
|
||||||
import os
|
|
||||||
import numpy as np
|
|
||||||
from database import Dataset, Repro
|
|
||||||
schema = dj.schema("fish_book", locals())
|
|
||||||
|
|
||||||
|
|
||||||
class BaselineData(object):
|
|
||||||
|
|
||||||
def __init__(self, dataset:Dataset):
|
|
||||||
self.__data = []
|
|
||||||
self.__dataset = dataset
|
|
||||||
self._get_data()
|
|
||||||
|
|
||||||
|
|
||||||
def _get_data(self):
|
|
||||||
if not self.__dataset:
|
|
||||||
self.__data = []
|
|
||||||
self.__data = []
|
|
||||||
|
|
||||||
repros = (Repro & self.__dataset & "repro_name like 'BaselineActivity%'")
|
|
||||||
for r in repros:
|
|
||||||
self.__data.append(self.__read_data(r))
|
|
||||||
|
|
||||||
def __read_data(self, r:Repro):
|
|
||||||
if self.__dataset["has_nix"]:
|
|
||||||
return self.__read_data_from_nix(r)
|
|
||||||
else:
|
|
||||||
return self.__read_data_from_directory(r)
|
|
||||||
|
|
||||||
@property
|
|
||||||
def dataset(self):
|
|
||||||
return self.__dataset
|
|
||||||
|
|
||||||
@property
|
|
||||||
def data(self, index:int=0):
|
|
||||||
return self.__data[0] if len(self.__data) >= index else None
|
|
||||||
|
|
||||||
@property
|
|
||||||
def size(self):
|
|
||||||
return len(self.__data)
|
|
||||||
|
|
||||||
def __str__(self):
|
|
||||||
str = "Baseline data of %s " % self.__dataset
|
|
||||||
|
|
||||||
def __read_data_from_nix(self, r)->np.ndarray:
|
|
||||||
# FIXME!
|
|
||||||
return np.asarray([])
|
|
||||||
|
|
||||||
def __read_data_from_directory(self, r)->np.ndarray:
|
|
||||||
data = []
|
|
||||||
data_source = os.path.join(self.__dataset["data_source"], "basespikes1.dat")
|
|
||||||
if os.path.exists(data_source):
|
|
||||||
found_run = False
|
|
||||||
with open(data_source, 'r') as f:
|
|
||||||
l = f.readline()
|
|
||||||
while l:
|
|
||||||
if "index" in l:
|
|
||||||
index = int(l.strip("#").strip().split(":")[-1])
|
|
||||||
found_run = index == r["run"]
|
|
||||||
if l.startswith("#Key") and found_run:
|
|
||||||
data = self.__do_read(f)
|
|
||||||
break
|
|
||||||
l = f.readline()
|
|
||||||
|
|
||||||
return data
|
|
||||||
|
|
||||||
def __do_read(self, f)->np.ndarray:
|
|
||||||
data = []
|
|
||||||
f.readline()
|
|
||||||
f.readline()
|
|
||||||
l = f.readline()
|
|
||||||
while l and "#" not in l and len(l.strip()) > 0:
|
|
||||||
data.append(float(l.strip()))
|
|
||||||
l = f.readline()
|
|
||||||
return np.asarray(data)
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
print("Test")
|
|
Loading…
Reference in New Issue
Block a user