Ejemplo n.º 1
0
 def test_get_iblrig_data_folder(self):
     df = ph.get_iblrig_data_folder(subjects=False)
     self.assertTrue(isinstance(df, str))
     self.assertTrue("iblrig_data" in df)
     self.assertTrue("Subjects" not in df)
     dfs = ph.get_iblrig_data_folder(subjects=True)
     self.assertTrue(isinstance(dfs, str))
     self.assertTrue("iblrig_data" in dfs)
     self.assertTrue("Subjects" in dfs)
Ejemplo n.º 2
0
def check_delete_empty_folders(path, rglob_pattern='*', dry=True):
    data_path = Path(ph.get_iblrig_data_folder())
    all_dirs = {p for p in data_path.rglob(rglob_pattern) if p.is_dir()}
    empty_dirs = {p for p in all_dirs if not list(p.glob('*'))}
    for d in empty_dirs:
        if dry:
            print('Found empty folder:', d)
        elif not dry:
            print('Deleting empty folder: ', d)
            d.rmdir()
    else:
        if dry:
            print(f'Empty folders: {len(empty_dirs)}')
        elif not dry:
            print(f'Deleted folders: {len(empty_dirs)}')
Ejemplo n.º 3
0
def update_param_key_values(param_key):
    if param_key == "NAME":
        return get_pybpod_board_name()
    elif param_key == "IBLRIG_VERSION":
        return get_iblrig_version()
    elif param_key == "COM_BPOD":
        return get_pybpod_board_comport()
    elif param_key == "SCREEN_FREQ_TARGET":
        return 60
    elif param_key == "DATA_FOLDER_LOCAL":
        return ph.get_iblrig_data_folder(subjects=False)
    elif param_key == "DATA_FOLDER_REMOTE":
        return ph.get_iblserver_data_folder(subjects=False)
    else:
        return None
Ejemplo n.º 4
0
    return names


def get_mice(session_list):
    names = {s.parts[-3] for s in session_list}
    return names


def get_dates(session_list):
    names = {s.parts[-2] for s in session_list}
    return names


# Load
def load_session_settings(path_list):
    path_list = [Path(path) for path in path_list]
    settings = []
    for s in path_list:
        settings.append(raw.load_settings(s))
    return settings


if __name__ == "__main__":
    data_path = Path(ph.get_iblrig_data_folder())
    check_delete_empty_files(data_path, 'taskSettings')
    check_delete_empty_folders(data_path)
    sessions_with_settings = find_sessions(data_path,
                                           rglob_pattern='*taskSettings*')
    sessions_with_data = find_sessions(data_path, rglob_pattern='*taskData*')
    settings = load_session_settings(sessions_with_settings)
import iblrig.bonsai as bonsai
import iblrig.frame2TTL
import iblrig.params as params
import iblrig.path_helper as ph
import user_settings

sys.stdout.flush()

log = logging.getLogger('iblrig')
log.setLevel(logging.INFO)

PARAMS = params.load_params()
subj = '_iblrig_test_mouse'
datetime = parser.parse(user_settings.PYBPOD_SESSION).isoformat().replace(
    ':', '_')
folder = Path(ph.get_iblrig_data_folder()) / subj / datetime
folder.mkdir()
bpod_data_file = folder / 'bpod_ts_data.jsonable'
bpod_data_lengths_file = folder / 'bpod_ts_data_lengths.jsonable'
bonsai_data_file = folder / 'bonsai_ts_data.jsonable'
bonsai_data_lengths_file = folder / 'bonsai_ts_data_lengths.jsonable'


def softcode_handler(data):
    if data:
        # Launch the workflow
        bonsai.start_frame2ttl_test(bonsai_data_file, bonsai_data_lengths_file)
    return


# Set the thresholds for Frame2TTL
Ejemplo n.º 6
0
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @Author: Niccolò Bonacchi
# @Date: Monday, December 2nd 2019, 4:52:40 pm
from pathlib import Path

import ibllib.io.raw_data_loaders as raw
import ibllib.pipes.misc as misc
import iblrig.path_helper as ph
import logging

log = logging.getLogger("iblrig")

IBLRIG_DATA_PATH = Path(ph.get_iblrig_data_folder())


def main():
    passive_sessions = IBLRIG_DATA_PATH.rglob("passive_data_for_ephys.flag")

    # For each passive session found look into passiveSettings to find ephysSession name
    # search for the ephys session session in the rglobbed ephys sessions
    # If you find it just rename and move the folder raw_behavior_data -> raw_passive_data,
    # If no find search specifically for that session from the metadata and try to copy the folder
    # If folder exists throw an error
    for ps in passive_sessions:
        sett = raw.load_settings(str(ps.parent))
        esess = sett["CORRESPONDING_EPHYS_SESSION"]
        if not esess or esess is None:
            log.warning(
                "Corresponding ephys session NOT FOUND in settings - data not moved"
            )