Example #1
0
    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"
Example #2
0
    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")
Example #3
0
    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]
Example #4
0
    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
Example #5
0
    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)
Example #6
0
 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"
     )
Example #7
0
    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()
Example #8
0
    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)
Example #9
0
    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"]
Example #10
0
    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)
Example #11
0
    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()
Example #12
0
 def __init__(self, basepath):
     if isinstance(basepath, Recinfo):
         self._obj = basepath
     else:
         self._obj = Recinfo(basepath)