def __init__(self, basepath): """initiates position class Arguments: obj {class instance} -- should have the following attributes obj.sessinfo.files.position --> filename for storing the positions """ if isinstance(basepath, Recinfo): self._obj = basepath else: self._obj = Recinfo(basepath) posfile = self._obj.files.position if os.path.exists(posfile): posInfo = self._load(posfile).item() self.x = posInfo["x"] / 4 # in seconds self.y = posInfo["y"] / 4 # in seconds self.t = posInfo["time"] # in seconds self.datetime = posInfo["datetime"] # in seconds self.speed = np.sqrt(np.diff(self.x) ** 2 + np.diff(self.y) ** 2) / ( 1 / self.tracking_sRate ) else: "Position file does not exist....did not load _position.npy"
def __init__(self, basepath): if isinstance(basepath, Recinfo): self._obj = basepath else: self._obj = Recinfo(basepath) self.pre = None self.maze = None self.post = None if Path(self._obj.files.epochs).is_file(): epochs = np.load(self._obj.files.epochs, allow_pickle=True).item() totaldur = [] self.times = pd.DataFrame(epochs) for (epoch, times) in epochs.items(): # alternative list(epochs) setattr(self, epoch.lower(), times) # .lower() will be removed totaldur.append(np.diff(times)) self.totalduration = np.sum(np.asarray(totaldur)) else: print("Epochs file does not exist...did not load epochs")
def __init__(self, basepath): if isinstance(basepath, Recinfo): self._obj = basepath else: self._obj = Recinfo(basepath) self.stability = Stability(basepath) # self.dynamics = firingDynamics(basepath) filePrefix = self._obj.files.filePrefix @dataclass class files: spikes: str = Path(str(filePrefix) + "_spikes.npy") instfiring: str = Path(str(filePrefix) + "_instfiring.pkl") self.files = files() filename = self._obj.files.spikes if filename.is_file(): spikes = np.load(filename, allow_pickle=True).item() self.times = spikes["times"] self.info = spikes["info"].reset_index() self.pyrid = np.where(self.info.q < 4)[0] self.pyr = [self.times[_] for _ in self.pyrid] self.intneurid = np.where(self.info.q == 8)[0] self.intneur = [self.times[_] for _ in self.intneurid] self.muaid = np.where(self.info.q == 6)[0] self.mua = [self.times[_] for _ in self.muaid]
def __init__(self, obj): if isinstance(obj, Recinfo): self._obj = obj else: self._obj = Recinfo(obj) self.time = None # ----- defining file names --------- filePrefix = self._obj.files.filePrefix @dataclass class files: dead: str = filePrefix.with_suffix(".dead") artifact: str = filePrefix.with_suffix(".artifact.npy") self.files = files() # ----- loading files -------- if self.files.artifact.is_file(): self._load() elif Path(self.files.dead).is_file(): with self.files.dead.open("r") as f: noisy = [] for line in f: epc = line.split(" ") epc = [float(_) for _ in epc] noisy.append(epc) noisy = np.asarray(noisy) / 1000 self.time = noisy # in seconds
def __init__(self, basepath, **kwargs): if isinstance(basepath, Recinfo): self._obj = basepath else: self._obj = Recinfo(basepath) self.pf1d = pf1d(basepath) self.pf2d = pf2d(basepath)
def __init__(self, basepath): if isinstance(basepath, Recinfo): self._obj = basepath else: self._obj = Recinfo(basepath) # print(self._obj.makePrmPrb.prmTemplate) self.prmTemplate = ( "/home/bapung/Documents/MATLAB/pythonprogs/RoutineAnalysis/template.prm" ) self.prbTemplate = ( "/home/bapung/Documents/MATLAB/pythonprogs/RoutineAnalysis/template.prb" )
def __init__(self, basepath): if isinstance(basepath, Recinfo): self._obj = basepath else: self._obj = Recinfo(basepath) filePrefix = self._obj.files.filePrefix @dataclass class files: stability: str = Path(str(filePrefix) + "_stability.npy") self.files = files() if self.files.stability.is_file(): self._load()
def __init__(self, basepath): if isinstance(basepath, Recinfo): self._obj = basepath else: self._obj = Recinfo(basepath) filePrefix = self._obj.files.filePrefix @dataclass class files: pbe: str = Path(str(filePrefix) + "_pbe.pkl") self.files = files() if self.files.pbe.is_file(): self.events = pd.read_pickle(self.files.pbe)
def __init__(self, basepath): if isinstance(basepath, Recinfo): self._obj = basepath else: self._obj = Recinfo(basepath) filePrefix = self._obj.files.filePrefix self._filename = Path(str(filePrefix) + "_localsleep.npy") if self._filename.is_file(): data = np.load(self._filename, allow_pickle=True).item() self.events = pd.DataFrame( {key: data[key] for key in ("start", "end", "duration")}) self.instfiringbefore = data["instfiringbefore"] self.instfiringafter = data["instfiringafter"] self.instfiring = data["instfiring"] self.avglfp = data["avglfp"] self.period = data["period"]
def __init__(self, basepath): if isinstance(basepath, Recinfo): self._obj = basepath else: self._obj = Recinfo(basepath) if Path(self._obj.files.stateparams).is_file(): self.params = pd.read_pickle(self._obj.files.stateparams) if Path(self._obj.files.states).is_file(): self.states = pd.read_pickle(self._obj.files.states) # Adding name convention to the states state_number_dict = { 1: "nrem", 2: "rem", 3: "quiet", 4: "active", } self.states["name"] = self.states["state"].map(state_number_dict)
def __init__(self, basepath): self.recinfo = Recinfo(basepath) self.position = ExtractPosition(self.recinfo) self.epochs = behavior_epochs(self.recinfo) self.artifact = findartifact(self.recinfo) self.makePrmPrb = makePrmPrb(self.recinfo) self.utils = SessionUtil(self.recinfo) self.spikes = spikes(self.recinfo) self.brainstates = SleepScore(self.recinfo) self.swa = Hswa(self.recinfo) self.theta = Theta(self.recinfo) self.spindle = Spindle(self.recinfo) self.gamma = Gamma(self.recinfo) self.ripple = Ripple(self.recinfo) self.placefield = pf(self.recinfo) self.replay = Replay(self.recinfo) self.decode = DecodeBehav(self.recinfo) self.localsleep = LocalSleep(self.recinfo) self.viewdata = SessView(self.recinfo) self.pbe = PBE(self.recinfo) self.eventpsth = event_event()
def __init__(self, basepath): if isinstance(basepath, Recinfo): self._obj = basepath else: self._obj = Recinfo(basepath)