From 38d91e799388844e5ed054c3b39882f81839965c Mon Sep 17 00:00:00 2001 From: Chris Broz Date: Fri, 12 Nov 2021 16:46:00 -0600 Subject: [PATCH 01/45] Mult root dirs. Using elem-data-loader.utils --- .gitignore | 6 +++-- tests/__init__.py | 46 ++++++++++++++++++++++------------ tests/test_ingest.py | 9 ++++++- tests/test_populate.py | 10 +++++++- workflow_array_ephys/ingest.py | 40 ++++++++++++++++++----------- workflow_array_ephys/paths.py | 5 +--- 6 files changed, 77 insertions(+), 39 deletions(-) diff --git a/.gitignore b/.gitignore index 5fed3cbc..2e13d1eb 100644 --- a/.gitignore +++ b/.gitignore @@ -107,8 +107,7 @@ ENV/ .mypy_cache/ # datajoint -dj_local_conf.json -dj_local_conf_old.json +dj_local_con*.json # emacs **/*~ @@ -122,3 +121,6 @@ Diagram.ipynb # vscode .vscode/settings.json + +# notes +temp* \ No newline at end of file diff --git a/tests/__init__.py b/tests/__init__.py index 4b5e37c4..b4b5fddb 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -1,14 +1,17 @@ -# run tests: pytest -sv --cov-report term-missing --cov=workflow-array-ephys -p no:warnings +# dependencies: pip install pytest pytest-cov +# run all tests: pytest -sv --cov-report term-missing --cov=workflow-array-ephys -p no:warnings tests/ +# run one test, debug: pytest [above options] --pdb tests/tests_name.py -k function_name import os import pytest import pandas as pd import pathlib -import datajoint as dj import numpy as np +import datajoint as dj import workflow_array_ephys from workflow_array_ephys.paths import get_ephys_root_data_dir +import element_data_loader.utils # ------------------- SOME CONSTANTS ------------------- @@ -31,10 +34,10 @@ @pytest.fixture(autouse=True) def dj_config(): + """ If dj_local_config exists, load""" if pathlib.Path('./dj_local_conf.json').exists(): dj.config.load('./dj_local_conf.json') dj.config['safemode'] = False - dj.config['custom'] = { 'database.prefix': (os.environ.get('DATABASE_PREFIX') or dj.config['custom']['database.prefix']), @@ -46,12 +49,18 @@ def dj_config(): @pytest.fixture(autouse=True) def test_data(dj_config): - test_data_dir = pathlib.Path(dj.config['custom']['ephys_root_data_dir']) - - test_data_exists = np.all([(test_data_dir / p).exists() for p in sessions_dirs]) + """If data not exist, attempt download with DJArchive + * If no or partial data present, download to first listed root""" + test_data_dirs = []; test_data_exists = True + for p in sessions_dirs: # For each session + try: # Verify existes + test_data_dirs.append(element_data_loader.utils.find_full_path( + get_ephys_root_data_dir(),p)) + except: # If not exist + test_data_exists = False # Flag to false if not test_data_exists: - try: + try: # attempt to djArchive dowload dj.config['custom'].update({ 'djarchive.client.endpoint': os.environ['DJARCHIVE_CLIENT_ENDPOINT'], 'djarchive.client.bucket': os.environ['DJARCHIVE_CLIENT_BUCKET'], @@ -60,7 +69,7 @@ def test_data(dj_config): }) except KeyError as e: raise FileNotFoundError( - f'Test data not available at {test_data_dir}.' + f' Full test data not available.' f'\nAttempting to download from DJArchive,' f' but no credentials found in environment variables.' f'\nError: {str(e)}') @@ -69,7 +78,10 @@ def test_data(dj_config): client = djarchive_client.client() workflow_version = workflow_array_ephys.version.__version__ - client.download('workflow-array-ephys-test-set', + test_data_dir = get_ephys_root_data_dir() # if multiple root dirs, pick first + if isinstance(test_data_dir, list): test_data_dir=test_data_dir[0] + + client.download('workflow-array-ephys-test-set', # Download to first instance workflow_version.replace('.', '_'), str(test_data_dir), create_target=False) return @@ -126,8 +138,6 @@ def ingest_subjects(pipeline, subjects_csv): @pytest.fixture def sessions_csv(test_data): """ Create a 'sessions.csv' file""" - root_dir = pathlib.Path(get_ephys_root_data_dir()) - input_sessions = pd.DataFrame(columns=['subject', 'session_dir']) input_sessions.subject = ['subject1', 'subject2', 'subject2', 'subject3', 'subject4', 'subject5', @@ -153,6 +163,7 @@ def ingest_sessions(ingest_subjects, sessions_csv): @pytest.fixture def testdata_paths(): + """ Paths for testdata 'subjX/sessY/probeZ/etc'""" return { 'npx3A-p1-ks': 'subject5/session1/probe_1/ks2.1_01', 'npx3A-p2-ks': 'subject5/session1/probe_2/ks2.1_01', @@ -166,6 +177,7 @@ def testdata_paths(): @pytest.fixture def kilosort_paramset(pipeline): + """Insert kilosort params into ephys.ClusteringParamset""" ephys = pipeline['ephys'] params_ks = { @@ -205,6 +217,7 @@ def kilosort_paramset(pipeline): @pytest.fixture def ephys_recordings(pipeline, ingest_sessions): + """Populate ephys.EphysRecording""" ephys = pipeline['ephys'] ephys.EphysRecording.populate() @@ -217,14 +230,13 @@ def ephys_recordings(pipeline, ingest_sessions): @pytest.fixture def clustering_tasks(pipeline, kilosort_paramset, ephys_recordings): + """Insert keys from ephys.EphysRecording into ephys.Clustering""" ephys = pipeline['ephys'] - get_ephys_root_data_dir = pipeline['get_ephys_root_data_dir'] - root_dir = pathlib.Path(get_ephys_root_data_dir()) - for ephys_rec_key in (ephys.EphysRecording - ephys.ClusteringTask).fetch('KEY'): - ephys_file = root_dir / (ephys.EphysRecording.EphysFile - & ephys_rec_key).fetch('file_path')[0] + ephys_file_path = pathlib.Path(((ephys.EphysRecording.EphysFile & ephys_rec_key).fetch('file_path'))[0]) + ephys_file = element_data_loader.utils.find_full_path( + get_ephys_root_data_dir(), ephys_file_path) recording_dir = ephys_file.parent kilosort_dir = next(recording_dir.rglob('spike_times.npy')).parent ephys.ClusteringTask.insert1({**ephys_rec_key, @@ -240,6 +252,7 @@ def clustering_tasks(pipeline, kilosort_paramset, ephys_recordings): @pytest.fixture def clustering(clustering_tasks, pipeline): + """Populate ehys.Clustering""" ephys = pipeline['ephys'] ephys.Clustering.populate() @@ -252,6 +265,7 @@ def clustering(clustering_tasks, pipeline): @pytest.fixture def curations(clustering, pipeline): + """Insert keys from ephys.ClusteringTask into ephys.Curation""" ephys = pipeline['ephys'] for key in (ephys.ClusteringTask - ephys.Curation).fetch('KEY'): diff --git a/tests/test_ingest.py b/tests/test_ingest.py index 20f2fa1f..d1c42d5e 100644 --- a/tests/test_ingest.py +++ b/tests/test_ingest.py @@ -9,6 +9,7 @@ def test_ingest_subjects(pipeline, ingest_subjects): + """Check length of subject.Subject""" subject = pipeline['subject'] assert len(subject.Subject()) == 6 @@ -29,6 +30,12 @@ def test_ingest_sessions(pipeline, sessions_csv, ingest_sessions): assert (session.SessionDirectory & {'subject': sess.name}).fetch1('session_dir') == sess.session_dir +''' Delete these? +CB: I think these tests are depreciated with the update to permit multiple root directories + Previously, they tested against known bad roots to make sure root/session matched + Now, we have to run find_full_path every on mult roots regardless. + To update would result in tautology: + > assert find_full_path == find_full_path def test_find_valid_full_path(pipeline, sessions_csv): from element_data_loader.utils import find_full_path @@ -69,7 +76,7 @@ def test_find_root_directory(pipeline, sessions_csv): root_dir = find_root_directory(ephys_root_data_dir, session_full_path) assert root_dir.as_posix() == get_ephys_root_data_dir() - +''' def test_paramset_insert(kilosort_paramset, pipeline): ephys = pipeline['ephys'] diff --git a/tests/test_populate.py b/tests/test_populate.py index aaac1520..907dae77 100644 --- a/tests/test_populate.py +++ b/tests/test_populate.py @@ -13,6 +13,8 @@ def test_ephys_recording_populate(pipeline, ephys_recordings): def test_LFP_populate_npx3B_OpenEphys(testdata_paths, pipeline, ephys_recordings): + """Populate ephys.LFP with OpenEphys items""" + ephys = pipeline['ephys'] rel_path = testdata_paths['oe_npx3B'] rec_key = (ephys.EphysRecording & (ephys.EphysRecording.EphysFile @@ -32,6 +34,7 @@ def test_LFP_populate_npx3B_OpenEphys(testdata_paths, pipeline, ephys_recordings def test_LFP_populate_npx3A_SpikeGLX(testdata_paths, pipeline, ephys_recordings): + """Populate ephys.LFP with SpikeGLX items, recording npx3A""" ephys = pipeline['ephys'] rel_path = testdata_paths['sglx_npx3A-p1'] @@ -52,6 +55,8 @@ def test_LFP_populate_npx3A_SpikeGLX(testdata_paths, pipeline, ephys_recordings) def test_LFP_populate_npx3B_SpikeGLX(testdata_paths, pipeline, ephys_recordings): + """Populate ephys.LFP with SpikeGLX items, recording npx3B""" + ephys = pipeline['ephys'] rel_path = testdata_paths['sglx_npx3B-p1'] @@ -77,6 +82,7 @@ def test_clustering_populate(clustering, pipeline): def test_curated_clustering_populate(curations, pipeline, testdata_paths): + """Populate ephys.CuratedClustering with multiple recordings""" ephys = pipeline['ephys'] rel_path = testdata_paths['npx3A-p1-ks'] @@ -99,8 +105,8 @@ def test_curated_clustering_populate(curations, pipeline, testdata_paths): def test_waveform_populate_npx3B_OpenEphys(curations, pipeline, testdata_paths): + """Populate ephys.WaveformSet with OpenEphys npx3B""" ephys = pipeline['ephys'] - rel_path = testdata_paths['oe_npx3B-ks'] curation_key = (ephys.Curation & f'curation_output_dir LIKE "%{rel_path}"').fetch1('KEY') ephys.CuratedClustering.populate(curation_key) @@ -113,6 +119,8 @@ def test_waveform_populate_npx3B_OpenEphys(curations, pipeline, testdata_paths): def test_waveform_populate_npx3B_SpikeGLX(curations, pipeline, testdata_paths): + """Populate ephys.WaveformSet with SpikeGLX npx3B""" + ephys = pipeline['ephys'] rel_path = testdata_paths['npx3B-p1-ks'] diff --git a/workflow_array_ephys/ingest.py b/workflow_array_ephys/ingest.py index 2cf59658..697f2fa1 100644 --- a/workflow_array_ephys/ingest.py +++ b/workflow_array_ephys/ingest.py @@ -1,6 +1,6 @@ -import re import pathlib import csv +import re from workflow_array_ephys.pipeline import subject, ephys, probe, session from workflow_array_ephys.paths import get_ephys_root_data_dir @@ -9,38 +9,44 @@ import element_data_loader.utils def ingest_subjects(subject_csv_path='./user_data/subjects.csv'): + """ + Ingest subjects listed in the subject column of of ./user_data/subjects.csv + """ # -------------- Insert new "Subject" -------------- with open(subject_csv_path, newline= '') as f: input_subjects = list(csv.DictReader(f, delimiter=',')) - + # Broz 102821 - this gives full # even if skipped, not # populated print(f'\n---- Insert {len(input_subjects)} entry(s) into subject.Subject ----') subject.Subject.insert(input_subjects, skip_duplicates=True) + print('\n---- Successfully completed ingest_subjects ----') def ingest_sessions(session_csv_path='./user_data/sessions.csv'): - root_data_dir = get_ephys_root_data_dir() - + """ + Ingests SpikeGLX and OpenEphys files from directories listed + in the sess_dir column of ./user_data/sessions.csv + """ # ---------- Insert new "Session" and "ProbeInsertion" --------- with open(session_csv_path, newline= '') as f: input_sessions = list(csv.DictReader(f, delimiter=',')) # Folder structure: root / subject / session / probe / .ap.meta - session_list, session_dir_list, probe_list, probe_insertion_list = [], [], [], [] + session_list, sess_dir_list, probe_list, probe_insertion_list = [], [], [], [] for sess in input_sessions: - session_dir = element_data_loader.utils.find_full_path( - get_ephys_root_data_dir(), + sess_dir = element_data_loader.utils.find_full_path( + get_ephys_root_data_dir(), sess['session_dir']) session_datetimes, insertions = [], [] # search session dir and determine acquisition software for ephys_pattern, ephys_acq_type in zip(['*.ap.meta', '*.oebin'], ['SpikeGLX', 'OpenEphys']): - ephys_meta_filepaths = [fp for fp in session_dir.rglob(ephys_pattern)] + ephys_meta_filepaths = [fp for fp in sess_dir.rglob(ephys_pattern)] if len(ephys_meta_filepaths): acq_software = ephys_acq_type break else: - raise FileNotFoundError(f'Ephys recording data not found! Neither SpikeGLX nor OpenEphys recording files found in: {session_dir}') + raise FileNotFoundError(f'Ephys recording data not found! Neither SpikeGLX nor OpenEphys recording files found in: {sess_dir}') if acq_software == 'SpikeGLX': for meta_filepath in ephys_meta_filepaths: @@ -57,7 +63,7 @@ def ingest_sessions(session_csv_path='./user_data/sessions.csv'): insertions.append({'probe': spikeglx_meta.probe_SN, 'insertion_number': int(probe_number)}) session_datetimes.append(spikeglx_meta.recording_time) elif acq_software == 'OpenEphys': - loaded_oe = openephys.OpenEphys(session_dir) + loaded_oe = openephys.OpenEphys(sess_dir) session_datetimes.append(loaded_oe.experiment.datetime) for probe_idx, oe_probe in enumerate(loaded_oe.probes.values()): probe_key = {'probe_type': oe_probe.probe_model, 'probe': oe_probe.probe_SN} @@ -71,18 +77,22 @@ def ingest_sessions(session_csv_path='./user_data/sessions.csv'): session_key = {'subject': sess['subject'], 'session_datetime': min(session_datetimes)} if session_key not in session.Session(): session_list.append(session_key) - session_dir_list.append({**session_key, 'session_dir': session_dir.relative_to(root_data_dir).as_posix()}) + root_dir = element_data_loader.utils.find_root_directory( + get_ephys_root_data_dir(), sess_dir) + sess_dir_list.append({**session_key, 'session_dir': sess_dir.relative_to(root_dir).as_posix()}) probe_insertion_list.extend([{**session_key, **insertion} for insertion in insertions]) print(f'\n---- Insert {len(session_list)} entry(s) into session.Session ----') - session.Session.insert(session_list) - session.SessionDirectory.insert(session_dir_list) + # Broz 102821 - prev, skip_dupes was true for ingest_subj, but not ingest_sess + # I thought they should mirror each other, chose both True + session.Session.insert(session_list, skip_duplicates=True) + session.SessionDirectory.insert(sess_dir_list, skip_duplicates=True) print(f'\n---- Insert {len(probe_list)} entry(s) into probe.Probe ----') - probe.Probe.insert(probe_list) + probe.Probe.insert(probe_list, skip_duplicates=True) print(f'\n---- Insert {len(probe_insertion_list)} entry(s) into ephys.ProbeInsertion ----') - ephys.ProbeInsertion.insert(probe_insertion_list) + ephys.ProbeInsertion.insert(probe_insertion_list, skip_duplicates=True) print('\n---- Successfully completed workflow_array_ephys/ingest.py ----') diff --git a/workflow_array_ephys/paths.py b/workflow_array_ephys/paths.py index cb46bdea..995c8d3a 100644 --- a/workflow_array_ephys/paths.py +++ b/workflow_array_ephys/paths.py @@ -4,12 +4,9 @@ def get_ephys_root_data_dir(): root_data_dirs = dj.config.get('custom', {}).get('ephys_root_data_dir', None) - - return root_data_dirs - + return root_data_dirs if root_data_dirs else None def get_session_directory(session_key: dict) -> str: from .pipeline import session session_dir = (session.SessionDirectory & session_key).fetch1('session_dir') - return session_dir \ No newline at end of file From a667f3ac4d553b473ab10cf34d7e1201bcdff18a Mon Sep 17 00:00:00 2001 From: Chris Broz Date: Fri, 12 Nov 2021 16:57:09 -0600 Subject: [PATCH 02/45] mult root dirs, one test fail timeout --- user_data/sessions_full.csv | 11 +++++ user_data/subjects_full.csv | 9 +++++ workflow_array_ephys/Broz_ingest.py | 63 +++++++++++++++++++++++++++++ workflow_array_ephys/process.py | 2 +- 4 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 user_data/sessions_full.csv create mode 100644 user_data/subjects_full.csv create mode 100644 workflow_array_ephys/Broz_ingest.py diff --git a/user_data/sessions_full.csv b/user_data/sessions_full.csv new file mode 100644 index 00000000..5ae1679b --- /dev/null +++ b/user_data/sessions_full.csv @@ -0,0 +1,11 @@ +subject,session_dir +subject2,subject2/session1/ +subject2,subject2/session2/ +subject3,subject3/session1/ +subject5,subject5/session1/ +subject1,subject1/session1/ +dl62,dl62/20190128_115313/0 +dl62,dl62/20190128_115313/1 +SC011,SC011/20190219_151204/0 +SC011,SC011/20190219_151204/1 +SC011,SC011/20190219_151204/2 \ No newline at end of file diff --git a/user_data/subjects_full.csv b/user_data/subjects_full.csv new file mode 100644 index 00000000..26189329 --- /dev/null +++ b/user_data/subjects_full.csv @@ -0,0 +1,9 @@ +subject,sex,subject_birth_date,subject_description +subject1,U,2000-01-01,Unknown1 +subject2,U,2000-01-02,Unknown2 +subject3,U,2000-01-03,Unknown3 +subject4,U,2000-01-04,Unknown4 +subject5,U,2000-01-05,Unknown5 +subject6,U,2000-01-06,Unknown6 +dl62,U,2000-01-07,Unknown7 +SC011,U,2000-01-08,Unknown8 \ No newline at end of file diff --git a/workflow_array_ephys/Broz_ingest.py b/workflow_array_ephys/Broz_ingest.py new file mode 100644 index 00000000..2820d144 --- /dev/null +++ b/workflow_array_ephys/Broz_ingest.py @@ -0,0 +1,63 @@ +import re +import pathlib +import csv + +import datajoint as dj +dj.conn() + +from workflow_array_ephys.pipeline import subject, ephys, probe, session +from workflow_array_ephys.paths import get_ephys_root_data_dir + +from element_array_ephys.readers import spikeglx, openephys +import element_data_loader.utils + +session_csv_path='../user_data/sessions.csv' +root_data_dir = get_ephys_root_data_dir() + +# ---------- Insert new "Session" and "ProbeInsertion" --------- +with open(session_csv_path, newline= '') as f: + input_sessions = list(csv.DictReader(f, delimiter=',')) + +# Folder structure: root / subject / session / probe / .ap.meta +session_list, session_dir_list, probe_list, probe_insertion_list = [], [], [], [] + +for sess in input_sessions: + session_dir = element_data_loader.utils.find_full_path( + get_ephys_root_data_dir(), + sess['session_dir']) + session_datetimes, insertions = [], [] + + # search session dir and determine acquisition software + for ephys_pattern, ephys_acq_type in zip(['*.ap.meta', '*.oebin'], ['SpikeGLX', 'OpenEphys']): + ephys_meta_filepaths = [fp for fp in session_dir.rglob(ephys_pattern)] + if len(ephys_meta_filepaths): + acq_software = ephys_acq_type + break + else: + raise FileNotFoundError(f'Ephys recording data not found! Neither SpikeGLX nor OpenEphys recording files found in: {session_dir}') + + # new session/probe-insertion + session_key = {'subject': sess['subject'], 'session_datetime': min('1999-01-01')} + + # print('session_key') + # print(session_key) + # print('session_dir') + # print(session_dir)#.relative_to(root_data_dir).as_posix()) + + import pdb; pdb.set_trace() # breakpoint 7aa166a4 // + if session_key not in session.Session(): + session_list.append(session_key) + session_dir_list.append({**session_key, 'session_dir': session_dir.relative_to(root_data_dir).as_posix()}) + probe_insertion_list.extend([{**session_key, **insertion} for insertion in insertions]) + +print(f'\n---- Insert {len(session_list)} entry(s) into session.Session ----') +session.Session.insert(session_list) +session.SessionDirectory.insert(session_dir_list) + +print(f'\n---- Insert {len(probe_list)} entry(s) into probe.Probe ----') +probe.Probe.insert(probe_list) + +print(f'\n---- Insert {len(probe_insertion_list)} entry(s) into ephys.ProbeInsertion ----') +ephys.ProbeInsertion.insert(probe_insertion_list) + +print('\n---- Successfully completed workflow_array_ephys/ingest.py ----') \ No newline at end of file diff --git a/workflow_array_ephys/process.py b/workflow_array_ephys/process.py index 1f3769a2..1f238380 100644 --- a/workflow_array_ephys/process.py +++ b/workflow_array_ephys/process.py @@ -5,7 +5,7 @@ def run(display_progress=True): populate_settings = {'display_progress': display_progress, 'reserve_jobs': False, - 'suppress_errors': False} + 'suppress_errors': True} print('\n---- Populate ephys.EphysRecording ----') ephys.EphysRecording.populate(**populate_settings) From 623e48b57849979b8fb575a00faf095ced813852 Mon Sep 17 00:00:00 2001 From: Chris Broz Date: Fri, 12 Nov 2021 17:04:50 -0600 Subject: [PATCH 03/45] removing troubleshooting alt files --- user_data/sessions_full.csv | 11 ----- user_data/subjects_full.csv | 9 ----- workflow_array_ephys/Broz_ingest.py | 63 ----------------------------- 3 files changed, 83 deletions(-) delete mode 100644 user_data/sessions_full.csv delete mode 100644 user_data/subjects_full.csv delete mode 100644 workflow_array_ephys/Broz_ingest.py diff --git a/user_data/sessions_full.csv b/user_data/sessions_full.csv deleted file mode 100644 index 5ae1679b..00000000 --- a/user_data/sessions_full.csv +++ /dev/null @@ -1,11 +0,0 @@ -subject,session_dir -subject2,subject2/session1/ -subject2,subject2/session2/ -subject3,subject3/session1/ -subject5,subject5/session1/ -subject1,subject1/session1/ -dl62,dl62/20190128_115313/0 -dl62,dl62/20190128_115313/1 -SC011,SC011/20190219_151204/0 -SC011,SC011/20190219_151204/1 -SC011,SC011/20190219_151204/2 \ No newline at end of file diff --git a/user_data/subjects_full.csv b/user_data/subjects_full.csv deleted file mode 100644 index 26189329..00000000 --- a/user_data/subjects_full.csv +++ /dev/null @@ -1,9 +0,0 @@ -subject,sex,subject_birth_date,subject_description -subject1,U,2000-01-01,Unknown1 -subject2,U,2000-01-02,Unknown2 -subject3,U,2000-01-03,Unknown3 -subject4,U,2000-01-04,Unknown4 -subject5,U,2000-01-05,Unknown5 -subject6,U,2000-01-06,Unknown6 -dl62,U,2000-01-07,Unknown7 -SC011,U,2000-01-08,Unknown8 \ No newline at end of file diff --git a/workflow_array_ephys/Broz_ingest.py b/workflow_array_ephys/Broz_ingest.py deleted file mode 100644 index 2820d144..00000000 --- a/workflow_array_ephys/Broz_ingest.py +++ /dev/null @@ -1,63 +0,0 @@ -import re -import pathlib -import csv - -import datajoint as dj -dj.conn() - -from workflow_array_ephys.pipeline import subject, ephys, probe, session -from workflow_array_ephys.paths import get_ephys_root_data_dir - -from element_array_ephys.readers import spikeglx, openephys -import element_data_loader.utils - -session_csv_path='../user_data/sessions.csv' -root_data_dir = get_ephys_root_data_dir() - -# ---------- Insert new "Session" and "ProbeInsertion" --------- -with open(session_csv_path, newline= '') as f: - input_sessions = list(csv.DictReader(f, delimiter=',')) - -# Folder structure: root / subject / session / probe / .ap.meta -session_list, session_dir_list, probe_list, probe_insertion_list = [], [], [], [] - -for sess in input_sessions: - session_dir = element_data_loader.utils.find_full_path( - get_ephys_root_data_dir(), - sess['session_dir']) - session_datetimes, insertions = [], [] - - # search session dir and determine acquisition software - for ephys_pattern, ephys_acq_type in zip(['*.ap.meta', '*.oebin'], ['SpikeGLX', 'OpenEphys']): - ephys_meta_filepaths = [fp for fp in session_dir.rglob(ephys_pattern)] - if len(ephys_meta_filepaths): - acq_software = ephys_acq_type - break - else: - raise FileNotFoundError(f'Ephys recording data not found! Neither SpikeGLX nor OpenEphys recording files found in: {session_dir}') - - # new session/probe-insertion - session_key = {'subject': sess['subject'], 'session_datetime': min('1999-01-01')} - - # print('session_key') - # print(session_key) - # print('session_dir') - # print(session_dir)#.relative_to(root_data_dir).as_posix()) - - import pdb; pdb.set_trace() # breakpoint 7aa166a4 // - if session_key not in session.Session(): - session_list.append(session_key) - session_dir_list.append({**session_key, 'session_dir': session_dir.relative_to(root_data_dir).as_posix()}) - probe_insertion_list.extend([{**session_key, **insertion} for insertion in insertions]) - -print(f'\n---- Insert {len(session_list)} entry(s) into session.Session ----') -session.Session.insert(session_list) -session.SessionDirectory.insert(session_dir_list) - -print(f'\n---- Insert {len(probe_list)} entry(s) into probe.Probe ----') -probe.Probe.insert(probe_list) - -print(f'\n---- Insert {len(probe_insertion_list)} entry(s) into ephys.ProbeInsertion ----') -ephys.ProbeInsertion.insert(probe_insertion_list) - -print('\n---- Successfully completed workflow_array_ephys/ingest.py ----') \ No newline at end of file From 060cb9c580864ac634885020e56aa143b54aa435 Mon Sep 17 00:00:00 2001 From: Chris Brozdowski Date: Fri, 12 Nov 2021 17:24:52 -0600 Subject: [PATCH 04/45] revert to surpress_errs false --- workflow_array_ephys/process.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflow_array_ephys/process.py b/workflow_array_ephys/process.py index 1f238380..1f3769a2 100644 --- a/workflow_array_ephys/process.py +++ b/workflow_array_ephys/process.py @@ -5,7 +5,7 @@ def run(display_progress=True): populate_settings = {'display_progress': display_progress, 'reserve_jobs': False, - 'suppress_errors': True} + 'suppress_errors': False} print('\n---- Populate ephys.EphysRecording ----') ephys.EphysRecording.populate(**populate_settings) From 72f994729159418a59c7424651c01b19f77872fc Mon Sep 17 00:00:00 2001 From: Chris Brozdowski Date: Wed, 19 Jan 2022 11:12:34 -0600 Subject: [PATCH 05/45] Apply suggestions from code review, 2nd commit forthcoming Thanks for your suggestions @kabilar! I'll follow up on other comments and rerun tests. Co-authored-by: Kabilar Gunalan --- tests/__init__.py | 13 ++++++------- tests/test_ingest.py | 11 +++-------- tests/test_populate.py | 10 +++++----- workflow_array_ephys/ingest.py | 13 +++++-------- 4 files changed, 19 insertions(+), 28 deletions(-) diff --git a/tests/__init__.py b/tests/__init__.py index b4b5fddb..19486cf7 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -1,4 +1,3 @@ -# dependencies: pip install pytest pytest-cov # run all tests: pytest -sv --cov-report term-missing --cov=workflow-array-ephys -p no:warnings tests/ # run one test, debug: pytest [above options] --pdb tests/tests_name.py -k function_name @@ -11,7 +10,7 @@ import workflow_array_ephys from workflow_array_ephys.paths import get_ephys_root_data_dir -import element_data_loader.utils +from element_interface.utils import find_root_directory, find_full_path # ------------------- SOME CONSTANTS ------------------- @@ -49,8 +48,8 @@ def dj_config(): @pytest.fixture(autouse=True) def test_data(dj_config): - """If data not exist, attempt download with DJArchive - * If no or partial data present, download to first listed root""" + """If data does not exist or partial data is present, + attempt download with DJArchive to the first listed root directory""" test_data_dirs = []; test_data_exists = True for p in sessions_dirs: # For each session try: # Verify existes @@ -163,7 +162,7 @@ def ingest_sessions(ingest_subjects, sessions_csv): @pytest.fixture def testdata_paths(): - """ Paths for testdata 'subjX/sessY/probeZ/etc'""" + """ Paths for test data 'subjectX/sessionY/probeZ/etc'""" return { 'npx3A-p1-ks': 'subject5/session1/probe_1/ks2.1_01', 'npx3A-p2-ks': 'subject5/session1/probe_2/ks2.1_01', @@ -177,7 +176,7 @@ def testdata_paths(): @pytest.fixture def kilosort_paramset(pipeline): - """Insert kilosort params into ephys.ClusteringParamset""" + """Insert kilosort parameters into ephys.ClusteringParamset""" ephys = pipeline['ephys'] params_ks = { @@ -252,7 +251,7 @@ def clustering_tasks(pipeline, kilosort_paramset, ephys_recordings): @pytest.fixture def clustering(clustering_tasks, pipeline): - """Populate ehys.Clustering""" + """Populate ephys.Clustering""" ephys = pipeline['ephys'] ephys.Clustering.populate() diff --git a/tests/test_ingest.py b/tests/test_ingest.py index d1c42d5e..fac4956a 100644 --- a/tests/test_ingest.py +++ b/tests/test_ingest.py @@ -9,7 +9,7 @@ def test_ingest_subjects(pipeline, ingest_subjects): - """Check length of subject.Subject""" + """ Check number of subjects inserted into the `subject.Subject` table """ subject = pipeline['subject'] assert len(subject.Subject()) == 6 @@ -30,12 +30,6 @@ def test_ingest_sessions(pipeline, sessions_csv, ingest_sessions): assert (session.SessionDirectory & {'subject': sess.name}).fetch1('session_dir') == sess.session_dir -''' Delete these? -CB: I think these tests are depreciated with the update to permit multiple root directories - Previously, they tested against known bad roots to make sure root/session matched - Now, we have to run find_full_path every on mult roots regardless. - To update would result in tautology: - > assert find_full_path == find_full_path def test_find_valid_full_path(pipeline, sessions_csv): from element_data_loader.utils import find_full_path @@ -73,9 +67,10 @@ def test_find_root_directory(pipeline, sessions_csv): sessions, _ = sessions_csv sess = sessions.iloc[0] session_full_path = pathlib.Path(get_ephys_root_data_dir()) / sess.session_dir + session_full_path = pathlib.Path('/main/workflow-array-ephys/tests/user_data') / sess.session_dir root_dir = find_root_directory(ephys_root_data_dir, session_full_path) - assert root_dir.as_posix() == get_ephys_root_data_dir() + assert root_dir.as_posix() == '/main/workflow-array-ephys/tests/user_data' ''' def test_paramset_insert(kilosort_paramset, pipeline): diff --git a/tests/test_populate.py b/tests/test_populate.py index 907dae77..40669c51 100644 --- a/tests/test_populate.py +++ b/tests/test_populate.py @@ -13,7 +13,7 @@ def test_ephys_recording_populate(pipeline, ephys_recordings): def test_LFP_populate_npx3B_OpenEphys(testdata_paths, pipeline, ephys_recordings): - """Populate ephys.LFP with OpenEphys items""" + """Populate ephys.LFP with OpenEphys items, recording Neuropixels Phase 3B (Neuropixels 1.0) probe""" ephys = pipeline['ephys'] rel_path = testdata_paths['oe_npx3B'] @@ -34,7 +34,7 @@ def test_LFP_populate_npx3B_OpenEphys(testdata_paths, pipeline, ephys_recordings def test_LFP_populate_npx3A_SpikeGLX(testdata_paths, pipeline, ephys_recordings): - """Populate ephys.LFP with SpikeGLX items, recording npx3A""" + """Populate ephys.LFP with SpikeGLX items, recording Neuropixels Phase 3A probe""" ephys = pipeline['ephys'] rel_path = testdata_paths['sglx_npx3A-p1'] @@ -55,7 +55,7 @@ def test_LFP_populate_npx3A_SpikeGLX(testdata_paths, pipeline, ephys_recordings) def test_LFP_populate_npx3B_SpikeGLX(testdata_paths, pipeline, ephys_recordings): - """Populate ephys.LFP with SpikeGLX items, recording npx3B""" + """Populate ephys.LFP with SpikeGLX items, recording Neuropixels Phase 3B (Neuropixels 1.0) probe""" ephys = pipeline['ephys'] @@ -105,7 +105,7 @@ def test_curated_clustering_populate(curations, pipeline, testdata_paths): def test_waveform_populate_npx3B_OpenEphys(curations, pipeline, testdata_paths): - """Populate ephys.WaveformSet with OpenEphys npx3B""" + """Populate ephys.WaveformSet with OpenEphys Neuropixels Phase 3B (Neuropixels 1.0) probe""" ephys = pipeline['ephys'] rel_path = testdata_paths['oe_npx3B-ks'] curation_key = (ephys.Curation & f'curation_output_dir LIKE "%{rel_path}"').fetch1('KEY') @@ -119,7 +119,7 @@ def test_waveform_populate_npx3B_OpenEphys(curations, pipeline, testdata_paths): def test_waveform_populate_npx3B_SpikeGLX(curations, pipeline, testdata_paths): - """Populate ephys.WaveformSet with SpikeGLX npx3B""" + """Populate ephys.WaveformSet with SpikeGLX Neuropixels Phase 3B (Neuropixels 1.0) probe""" ephys = pipeline['ephys'] diff --git a/workflow_array_ephys/ingest.py b/workflow_array_ephys/ingest.py index 697f2fa1..dbddf9b7 100644 --- a/workflow_array_ephys/ingest.py +++ b/workflow_array_ephys/ingest.py @@ -10,13 +10,12 @@ def ingest_subjects(subject_csv_path='./user_data/subjects.csv'): """ - Ingest subjects listed in the subject column of of ./user_data/subjects.csv + Ingest subjects listed in the subject column of ./user_data/subjects.csv """ # -------------- Insert new "Subject" -------------- with open(subject_csv_path, newline= '') as f: input_subjects = list(csv.DictReader(f, delimiter=',')) - # Broz 102821 - this gives full # even if skipped, not # populated - print(f'\n---- Insert {len(input_subjects)} entry(s) into subject.Subject ----') + print(f'\n---- Insert {len(set(input_subjects))} entry(s) into subject.Subject ----') subject.Subject.insert(input_subjects, skip_duplicates=True) print('\n---- Successfully completed ingest_subjects ----') @@ -31,10 +30,10 @@ def ingest_sessions(session_csv_path='./user_data/sessions.csv'): input_sessions = list(csv.DictReader(f, delimiter=',')) # Folder structure: root / subject / session / probe / .ap.meta - session_list, sess_dir_list, probe_list, probe_insertion_list = [], [], [], [] + session_list, session_dir_list, probe_list, probe_insertion_list = [], [], [], [] for sess in input_sessions: - sess_dir = element_data_loader.utils.find_full_path( + session_dir = element_data_loader.utils.find_full_path( get_ephys_root_data_dir(), sess['session_dir']) session_datetimes, insertions = [], [] @@ -83,8 +82,6 @@ def ingest_sessions(session_csv_path='./user_data/sessions.csv'): probe_insertion_list.extend([{**session_key, **insertion} for insertion in insertions]) print(f'\n---- Insert {len(session_list)} entry(s) into session.Session ----') - # Broz 102821 - prev, skip_dupes was true for ingest_subj, but not ingest_sess - # I thought they should mirror each other, chose both True session.Session.insert(session_list, skip_duplicates=True) session.SessionDirectory.insert(sess_dir_list, skip_duplicates=True) @@ -94,7 +91,7 @@ def ingest_sessions(session_csv_path='./user_data/sessions.csv'): print(f'\n---- Insert {len(probe_insertion_list)} entry(s) into ephys.ProbeInsertion ----') ephys.ProbeInsertion.insert(probe_insertion_list, skip_duplicates=True) - print('\n---- Successfully completed workflow_array_ephys/ingest.py ----') + print('\n---- Successfully completed ingest_subjects ----') if __name__ == '__main__': From dfdac3884c941489fadab034b0b7deb5e1b50c89 Mon Sep 17 00:00:00 2001 From: Chris Broz Date: Wed, 19 Jan 2022 14:02:47 -0600 Subject: [PATCH 06/45] PEP 8 linelength. Consistency. See details. More soon - PEP8 linter, primarily line length. Also remove unused dependencies. - sess_dir -> session_dir - element_data_loader -> element_interface - add `Experimenter = lab.User` in pipeline - Another commit pending successful pytests in docker --- Dockerfile | 17 +++++- tests/__init__.py | 84 +++++++++++++++----------- tests/test_ingest.py | 23 ++++---- tests/test_pipeline_generation.py | 3 +- tests/test_populate.py | 97 ++++++++++++++++++++----------- workflow_array_ephys/ingest.py | 95 ++++++++++++++++++------------ workflow_array_ephys/paths.py | 10 ++-- workflow_array_ephys/pipeline.py | 7 ++- workflow_array_ephys/version.py | 2 +- 9 files changed, 209 insertions(+), 129 deletions(-) diff --git a/Dockerfile b/Dockerfile index 11ce2e78..889f632d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,7 +4,20 @@ RUN mkdir /main/workflow-array-ephys WORKDIR /main/workflow-array-ephys -RUN git clone https://github.com/ttngu207/workflow-array-ephys.git . +USER root + +RUN apt update -y + +# Install pip +RUN apt install python3-pip -y + +# Set environment variable for non-interactive installation +ENV DEBIAN_FRONTEND=noninteractive + +# Install git +RUN apt-get install git -y + +RUN git clone https://github.com/CBroz1/workflow-array-ephys.git . RUN pip install . -RUN pip install -r requirements_test.txt \ No newline at end of file +RUN pip install -r requirements_test.txt diff --git a/tests/__init__.py b/tests/__init__.py index 19486cf7..e1a6c99f 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -1,16 +1,17 @@ -# run all tests: pytest -sv --cov-report term-missing --cov=workflow-array-ephys -p no:warnings tests/ -# run one test, debug: pytest [above options] --pdb tests/tests_name.py -k function_name +# run all tests: pytest -sv --cov-report term-missing \ +# --cov=workflow-array-ephys -p no:warnings tests/ +# run one test, debug: pytest [above options] --pdb tests/tests_name.py -k \ +# function_name import os import pytest import pandas as pd import pathlib -import numpy as np import datajoint as dj import workflow_array_ephys from workflow_array_ephys.paths import get_ephys_root_data_dir -from element_interface.utils import find_root_directory, find_full_path +from element_interface.utils import find_full_path # ------------------- SOME CONSTANTS ------------------- @@ -50,21 +51,25 @@ def dj_config(): def test_data(dj_config): """If data does not exist or partial data is present, attempt download with DJArchive to the first listed root directory""" - test_data_dirs = []; test_data_exists = True - for p in sessions_dirs: # For each session - try: # Verify existes - test_data_dirs.append(element_data_loader.utils.find_full_path( - get_ephys_root_data_dir(),p)) - except: # If not exist - test_data_exists = False # Flag to false - - if not test_data_exists: - try: # attempt to djArchive dowload + test_data_dirs = [] + test_data_exists = True + for p in sessions_dirs: + try: + test_data_dirs.append(find_full_path(get_ephys_root_data_dir(), p)) + except FileNotFoundError: + test_data_exists = False # If data not found + + if not test_data_exists: # attempt to djArchive dowload + try: dj.config['custom'].update({ - 'djarchive.client.endpoint': os.environ['DJARCHIVE_CLIENT_ENDPOINT'], - 'djarchive.client.bucket': os.environ['DJARCHIVE_CLIENT_BUCKET'], - 'djarchive.client.access_key': os.environ['DJARCHIVE_CLIENT_ACCESSKEY'], - 'djarchive.client.secret_key': os.environ['DJARCHIVE_CLIENT_SECRETKEY'] + 'djarchive.client.endpoint': + os.environ['DJARCHIVE_CLIENT_ENDPOINT'], + 'djarchive.client.bucket': + os.environ['DJARCHIVE_CLIENT_BUCKET'], + 'djarchive.client.access_key': + os.environ['DJARCHIVE_CLIENT_ACCESSKEY'], + 'djarchive.client.secret_key': + os.environ['DJARCHIVE_CLIENT_SECRETKEY'] }) except KeyError as e: raise FileNotFoundError( @@ -77,10 +82,11 @@ def test_data(dj_config): client = djarchive_client.client() workflow_version = workflow_array_ephys.version.__version__ - test_data_dir = get_ephys_root_data_dir() # if multiple root dirs, pick first - if isinstance(test_data_dir, list): test_data_dir=test_data_dir[0] + test_data_dir = get_ephys_root_data_dir() + if isinstance(test_data_dir, list): # if multiple root dirs, first + test_data_dir = test_data_dir[0] - client.download('workflow-array-ephys-test-set', # Download to first instance + client.download('workflow-array-ephys-test-set', workflow_version.replace('.', '_'), str(test_data_dir), create_target=False) return @@ -111,19 +117,22 @@ def subjects_csv(): 'subject3', 'subject4', 'subject5', 'subject6'] input_subjects.sex = ['F', 'M', 'M', 'M', 'F', 'F'] - input_subjects.subject_birth_date = ['2020-01-01 00:00:01', '2020-01-01 00:00:01', - '2020-01-01 00:00:01', '2020-01-01 00:00:01', - '2020-01-01 00:00:01', '2020-01-01 00:00:01'] + input_subjects.subject_birth_date = ['2020-01-01 00:00:01', + '2020-01-01 00:00:01', + '2020-01-01 00:00:01', + '2020-01-01 00:00:01', + '2020-01-01 00:00:01', + '2020-01-01 00:00:01'] input_subjects.subject_description = ['dl56', 'SC035', 'SC038', 'oe_talab', 'rich', 'manuel'] input_subjects = input_subjects.set_index('subject') subjects_csv_path = pathlib.Path('./tests/user_data/subjects.csv') - input_subjects.to_csv(subjects_csv_path) # write csv file + input_subjects.to_csv(subjects_csv_path) # write csv file yield input_subjects, subjects_csv_path - subjects_csv_path.unlink() # delete csv file after use + subjects_csv_path.unlink() # delete csv file after use @pytest.fixture @@ -166,9 +175,11 @@ def testdata_paths(): return { 'npx3A-p1-ks': 'subject5/session1/probe_1/ks2.1_01', 'npx3A-p2-ks': 'subject5/session1/probe_2/ks2.1_01', - 'oe_npx3B-ks': 'subject4/experiment1/recording1/continuous/Neuropix-PXI-100.0/ks', + 'oe_npx3B-ks': 'subject4/experiment1/recording1/continuous/' + + 'Neuropix-PXI-100.0/ks', 'sglx_npx3A-p1': 'subject5/session1/probe_1', - 'oe_npx3B': 'subject4/experiment1/recording1/continuous/Neuropix-PXI-100.0', + 'oe_npx3B': 'subject4/experiment1/recording1/continuous/' + + 'Neuropix-PXI-100.0', 'sglx_npx3B-p1': 'subject6/session1/towersTask_g0_imec0', 'npx3B-p1-ks': 'subject6/session1/towersTask_g0_imec0' } @@ -204,7 +215,7 @@ def kilosort_paramset(pipeline): "useRAM": 0 } - # doing the insert here as well, since most of the test will require this paramset inserted + # Insert here, since most of the test will require this paramset inserted ephys.ClusteringParamSet.insert_new_params( 'kilosort2', 0, 'Spike sorting using Kilosort2', params_ks) @@ -232,16 +243,19 @@ def clustering_tasks(pipeline, kilosort_paramset, ephys_recordings): """Insert keys from ephys.EphysRecording into ephys.Clustering""" ephys = pipeline['ephys'] - for ephys_rec_key in (ephys.EphysRecording - ephys.ClusteringTask).fetch('KEY'): - ephys_file_path = pathlib.Path(((ephys.EphysRecording.EphysFile & ephys_rec_key).fetch('file_path'))[0]) - ephys_file = element_data_loader.utils.find_full_path( - get_ephys_root_data_dir(), ephys_file_path) + for ephys_rec_key in (ephys.EphysRecording - ephys.ClusteringTask + ).fetch('KEY'): + ephys_file_path = pathlib.Path(((ephys.EphysRecording.EphysFile + & ephys_rec_key + ).fetch('file_path'))[0]) + ephys_file = find_full_path(get_ephys_root_data_dir(), ephys_file_path) recording_dir = ephys_file.parent kilosort_dir = next(recording_dir.rglob('spike_times.npy')).parent ephys.ClusteringTask.insert1({**ephys_rec_key, 'paramset_idx': 0, - 'clustering_output_dir': kilosort_dir.as_posix()}, - skip_duplicates=True) + 'clustering_output_dir': + kilosort_dir.as_posix() + }, skip_duplicates=True) yield diff --git a/tests/test_ingest.py b/tests/test_ingest.py index fac4956a..0dc46ba4 100644 --- a/tests/test_ingest.py +++ b/tests/test_ingest.py @@ -32,12 +32,12 @@ def test_ingest_sessions(pipeline, sessions_csv, ingest_sessions): def test_find_valid_full_path(pipeline, sessions_csv): - from element_data_loader.utils import find_full_path + from element_interface.utils import find_full_path get_ephys_root_data_dir = pipeline['get_ephys_root_data_dir'] # add more options for root directories - if sys.platform == 'win32': + if sys.platform == 'win32': # win32 even if Windows 64-bit ephys_root_data_dir = [get_ephys_root_data_dir(), 'J:/', 'M:/'] else: ephys_root_data_dir = [get_ephys_root_data_dir(), 'mnt/j', 'mnt/m'] @@ -45,7 +45,8 @@ def test_find_valid_full_path(pipeline, sessions_csv): # test: providing relative-path: correctly search for the full-path sessions, _ = sessions_csv sess = sessions.iloc[0] - session_full_path = pathlib.Path(get_ephys_root_data_dir()) / sess.session_dir + session_full_path = pathlib.Path('/main/workflow-array-ephys/tests/', + 'user_data') / sess.session_dir full_path = find_full_path(ephys_root_data_dir, sess.session_dir) @@ -53,7 +54,7 @@ def test_find_valid_full_path(pipeline, sessions_csv): def test_find_root_directory(pipeline, sessions_csv): - from element_data_loader.utils import find_root_directory + from element_interface.utils import find_root_directory get_ephys_root_data_dir = pipeline['get_ephys_root_data_dir'] @@ -66,20 +67,22 @@ def test_find_root_directory(pipeline, sessions_csv): # test: providing full-path: correctly search for the root_dir sessions, _ = sessions_csv sess = sessions.iloc[0] - session_full_path = pathlib.Path(get_ephys_root_data_dir()) / sess.session_dir - session_full_path = pathlib.Path('/main/workflow-array-ephys/tests/user_data') / sess.session_dir + session_full_path = pathlib.Path(get_ephys_root_data_dir() + ) / sess.session_dir + session_full_path = pathlib.Path('/main/workflow-array-ephys/tests/', + 'user_data') / sess.session_dir root_dir = find_root_directory(ephys_root_data_dir, session_full_path) assert root_dir.as_posix() == '/main/workflow-array-ephys/tests/user_data' -''' + def test_paramset_insert(kilosort_paramset, pipeline): ephys = pipeline['ephys'] - from element_data_loader.utils import dict_to_uuid + from element_interface.utils import dict_to_uuid - method, desc, paramset_hash = (ephys.ClusteringParamSet & {'paramset_idx': 0}).fetch1( + method, desc, paramset_hash = (ephys.ClusteringParamSet + & {'paramset_idx': 0}).fetch1( 'clustering_method', 'paramset_desc', 'param_set_hash') assert method == 'kilosort2' assert desc == 'Spike sorting using Kilosort2' assert dict_to_uuid(kilosort_paramset) == paramset_hash - diff --git a/tests/test_pipeline_generation.py b/tests/test_pipeline_generation.py index 06cfa1d4..f4c32470 100644 --- a/tests/test_pipeline_generation.py +++ b/tests/test_pipeline_generation.py @@ -16,4 +16,5 @@ def test_generate_pipeline(pipeline): session_tbl, probe_tbl = ephys.ProbeInsertion.parents(as_objects=True) assert session_tbl.full_table_name == session.Session.full_table_name assert probe_tbl.full_table_name == probe.Probe.full_table_name - assert 'spike_times' in ephys.CuratedClustering.Unit.heading.secondary_attributes + assert 'spike_times' in (ephys.CuratedClustering.Unit.heading. + secondary_attributes) diff --git a/tests/test_populate.py b/tests/test_populate.py index 40669c51..5ec77267 100644 --- a/tests/test_populate.py +++ b/tests/test_populate.py @@ -12,13 +12,18 @@ def test_ephys_recording_populate(pipeline, ephys_recordings): assert len(ephys.EphysRecording()) == 13 -def test_LFP_populate_npx3B_OpenEphys(testdata_paths, pipeline, ephys_recordings): - """Populate ephys.LFP with OpenEphys items, recording Neuropixels Phase 3B (Neuropixels 1.0) probe""" +def test_LFP_populate_npx3B_OpenEphys(testdata_paths, pipeline, + ephys_recordings): + """ + Populate ephys.LFP with OpenEphys items, + recording Neuropixels Phase 3B (Neuropixels 1.0) probe + """ ephys = pipeline['ephys'] rel_path = testdata_paths['oe_npx3B'] rec_key = (ephys.EphysRecording & (ephys.EphysRecording.EphysFile - & f'file_path LIKE "%{rel_path}"')).fetch1('KEY') + & f'file_path LIKE "%{rel_path}"') + ).fetch1('KEY') ephys.LFP.populate(rec_key) lfp_mean = (ephys.LFP & rec_key).fetch1('lfp_mean') @@ -27,19 +32,24 @@ def test_LFP_populate_npx3B_OpenEphys(testdata_paths, pipeline, ephys_recordings electrodes = (ephys.LFP.Electrode & rec_key).fetch('electrode') assert np.array_equal( electrodes, - np.array([5, 14, 23, 32, 41, 50, 59, 68, 77, 86, 95, 104, 113, - 122, 131, 140, 149, 158, 167, 176, 185, 194, 203, 212, 221, 230, - 239, 248, 257, 266, 275, 284, 293, 302, 311, 320, 329, 338, 347, - 356, 365, 374, 383])) - - -def test_LFP_populate_npx3A_SpikeGLX(testdata_paths, pipeline, ephys_recordings): - """Populate ephys.LFP with SpikeGLX items, recording Neuropixels Phase 3A probe""" + np.array([5, 14, 23, 32, 41, 50, 59, 68, 77, 86, 95, 104, + 113, 122, 131, 140, 149, 158, 167, 176, 185, 194, 203, 212, + 221, 230, 239, 248, 257, 266, 275, 284, 293, 302, 311, 320, + 329, 338, 347, 356, 365, 374, 383])) + + +def test_LFP_populate_npx3A_SpikeGLX(testdata_paths, pipeline, + ephys_recordings): + """ + Populate ephys.LFP with SpikeGLX items, + recording Neuropixels Phase 3A probe + """ ephys = pipeline['ephys'] rel_path = testdata_paths['sglx_npx3A-p1'] rec_key = (ephys.EphysRecording & (ephys.EphysRecording.EphysFile - & f'file_path LIKE "%{rel_path}%"')).fetch1('KEY') + & f'file_path LIKE "%{rel_path}%"') + ).fetch1('KEY') ephys.LFP.populate(rec_key) lfp_mean = (ephys.LFP & rec_key).fetch1('lfp_mean') @@ -48,20 +58,25 @@ def test_LFP_populate_npx3A_SpikeGLX(testdata_paths, pipeline, ephys_recordings) electrodes = (ephys.LFP.Electrode & rec_key).fetch('electrode') assert np.array_equal( electrodes, - np.array([5, 14, 23, 32, 41, 50, 59, 68, 77, 86, 95, 104, 113, - 122, 131, 140, 149, 158, 167, 176, 185, 194, 203, 212, 221, 230, - 239, 248, 257, 266, 275, 284, 293, 302, 311, 320, 329, 338, 347, - 356, 365, 374, 383])) + np.array([5, 14, 23, 32, 41, 50, 59, 68, 77, 86, 95, 104, + 113, 122, 131, 140, 149, 158, 167, 176, 185, 194, 203, 212, + 221, 230, 239, 248, 257, 266, 275, 284, 293, 302, 311, 320, + 329, 338, 347, 356, 365, 374, 383])) -def test_LFP_populate_npx3B_SpikeGLX(testdata_paths, pipeline, ephys_recordings): - """Populate ephys.LFP with SpikeGLX items, recording Neuropixels Phase 3B (Neuropixels 1.0) probe""" +def test_LFP_populate_npx3B_SpikeGLX(testdata_paths, pipeline, + ephys_recordings): + """ + Populate ephys.LFP with SpikeGLX items, + recording Neuropixels Phase 3B (Neuropixels 1.0) probe + """ ephys = pipeline['ephys'] rel_path = testdata_paths['sglx_npx3B-p1'] rec_key = (ephys.EphysRecording & (ephys.EphysRecording.EphysFile - & f'file_path LIKE "%{rel_path}%"')).fetch1('KEY') + & f'file_path LIKE "%{rel_path}%"') + ).fetch1('KEY') ephys.LFP.populate(rec_key) lfp_mean = (ephys.LFP & rec_key).fetch1('lfp_mean') @@ -70,10 +85,10 @@ def test_LFP_populate_npx3B_SpikeGLX(testdata_paths, pipeline, ephys_recordings) electrodes = (ephys.LFP.Electrode & rec_key).fetch('electrode') assert np.array_equal( electrodes, - np.array([5, 14, 23, 32, 41, 50, 59, 68, 77, 86, 95, 104, 113, - 122, 131, 140, 149, 158, 167, 176, 185, 194, 203, 212, 221, 230, - 239, 248, 257, 266, 275, 284, 293, 302, 311, 320, 329, 338, 347, - 356, 365, 374, 383])) + np.array([5, 14, 23, 32, 41, 50, 59, 68, 77, 86, 95, 104, + 113, 122, 131, 140, 149, 158, 167, 176, 185, 194, 203, 212, + 221, 230, 239, 248, 257, 266, 275, 284, 293, 302, 311, 320, + 329, 338, 347, 356, 365, 374, 383])) def test_clustering_populate(clustering, pipeline): @@ -86,49 +101,61 @@ def test_curated_clustering_populate(curations, pipeline, testdata_paths): ephys = pipeline['ephys'] rel_path = testdata_paths['npx3A-p1-ks'] - curation_key = (ephys.Curation & f'curation_output_dir LIKE "%{rel_path}"').fetch1('KEY') + curation_key = (ephys.Curation & f'curation_output_dir LIKE "%{rel_path}"' + ).fetch1('KEY') ephys.CuratedClustering.populate(curation_key) assert len(ephys.CuratedClustering.Unit & curation_key & 'cluster_quality_label = "good"') == 76 rel_path = testdata_paths['oe_npx3B-ks'] - curation_key = (ephys.Curation & f'curation_output_dir LIKE "%{rel_path}"').fetch1('KEY') + curation_key = (ephys.Curation & f'curation_output_dir LIKE "%{rel_path}"' + ).fetch1('KEY') ephys.CuratedClustering.populate(curation_key) assert len(ephys.CuratedClustering.Unit & curation_key & 'cluster_quality_label = "good"') == 68 rel_path = testdata_paths['npx3B-p1-ks'] - curation_key = (ephys.Curation & f'curation_output_dir LIKE "%{rel_path}"').fetch1('KEY') + curation_key = (ephys.Curation & f'curation_output_dir LIKE "%{rel_path}"' + ).fetch1('KEY') ephys.CuratedClustering.populate(curation_key) assert len(ephys.CuratedClustering.Unit & curation_key & 'cluster_quality_label = "good"') == 55 -def test_waveform_populate_npx3B_OpenEphys(curations, pipeline, testdata_paths): - """Populate ephys.WaveformSet with OpenEphys Neuropixels Phase 3B (Neuropixels 1.0) probe""" +def test_waveform_populate_npx3B_OpenEphys(curations, pipeline, + testdata_paths): + """ + Populate ephys.WaveformSet with OpenEphys + Neuropixels Phase 3B (Neuropixels 1.0) probe + """ ephys = pipeline['ephys'] rel_path = testdata_paths['oe_npx3B-ks'] - curation_key = (ephys.Curation & f'curation_output_dir LIKE "%{rel_path}"').fetch1('KEY') + curation_key = (ephys.Curation & f'curation_output_dir LIKE "%{rel_path}"' + ).fetch1('KEY') ephys.CuratedClustering.populate(curation_key) ephys.WaveformSet.populate(curation_key) - waveforms = np.vstack((ephys.WaveformSet.PeakWaveform & curation_key).fetch( - 'peak_electrode_waveform')) + waveforms = np.vstack((ephys.WaveformSet.PeakWaveform & curation_key + ).fetch('peak_electrode_waveform')) assert waveforms.shape == (204, 64) def test_waveform_populate_npx3B_SpikeGLX(curations, pipeline, testdata_paths): - """Populate ephys.WaveformSet with SpikeGLX Neuropixels Phase 3B (Neuropixels 1.0) probe""" + """ + Populate ephys.WaveformSet with SpikeGLX + Neuropixels Phase 3B (Neuropixels 1.0) probe + """ ephys = pipeline['ephys'] rel_path = testdata_paths['npx3B-p1-ks'] - curation_key = (ephys.Curation & f'curation_output_dir LIKE "%{rel_path}"').fetch1('KEY') + curation_key = (ephys.Curation & f'curation_output_dir LIKE "%{rel_path}"' + ).fetch1('KEY') ephys.CuratedClustering.populate(curation_key) ephys.WaveformSet.populate(curation_key) - waveforms = np.vstack((ephys.WaveformSet.PeakWaveform & curation_key).fetch( - 'peak_electrode_waveform')) + waveforms = np.vstack((ephys.WaveformSet.PeakWaveform + & curation_key).fetch('peak_electrode_waveform')) assert waveforms.shape == (150, 64) diff --git a/workflow_array_ephys/ingest.py b/workflow_array_ephys/ingest.py index dbddf9b7..9b2ab733 100644 --- a/workflow_array_ephys/ingest.py +++ b/workflow_array_ephys/ingest.py @@ -1,4 +1,3 @@ -import pathlib import csv import re @@ -6,90 +5,112 @@ from workflow_array_ephys.paths import get_ephys_root_data_dir from element_array_ephys.readers import spikeglx, openephys -import element_data_loader.utils +from element_interface.utils import find_root_directory, find_full_path + def ingest_subjects(subject_csv_path='./user_data/subjects.csv'): """ Ingest subjects listed in the subject column of ./user_data/subjects.csv """ # -------------- Insert new "Subject" -------------- - with open(subject_csv_path, newline= '') as f: + with open(subject_csv_path, newline='') as f: input_subjects = list(csv.DictReader(f, delimiter=',')) - print(f'\n---- Insert {len(set(input_subjects))} entry(s) into subject.Subject ----') + print(f'\n---- Insert {len(set(input_subjects))} entry(s) into ' + + 'subject.Subject ----') subject.Subject.insert(input_subjects, skip_duplicates=True) print('\n---- Successfully completed ingest_subjects ----') + def ingest_sessions(session_csv_path='./user_data/sessions.csv'): """ Ingests SpikeGLX and OpenEphys files from directories listed - in the sess_dir column of ./user_data/sessions.csv + in the session_dir column of ./user_data/sessions.csv """ # ---------- Insert new "Session" and "ProbeInsertion" --------- - with open(session_csv_path, newline= '') as f: + with open(session_csv_path, newline='') as f: input_sessions = list(csv.DictReader(f, delimiter=',')) # Folder structure: root / subject / session / probe / .ap.meta - session_list, session_dir_list, probe_list, probe_insertion_list = [], [], [], [] + session_list, session_dir_list = [], [] + probe_list, probe_insertion_list = [], [] for sess in input_sessions: - session_dir = element_data_loader.utils.find_full_path( - get_ephys_root_data_dir(), - sess['session_dir']) + session_dir = find_full_path(get_ephys_root_data_dir(), + sess['session_dir']) session_datetimes, insertions = [], [] # search session dir and determine acquisition software - for ephys_pattern, ephys_acq_type in zip(['*.ap.meta', '*.oebin'], ['SpikeGLX', 'OpenEphys']): - ephys_meta_filepaths = [fp for fp in sess_dir.rglob(ephys_pattern)] + for ephys_pattern, ephys_acq_type in zip(['*.ap.meta', '*.oebin'], + ['SpikeGLX', 'OpenEphys']): + ephys_meta_filepaths = [fp for fp in + session_dir.rglob(ephys_pattern)] if len(ephys_meta_filepaths): acq_software = ephys_acq_type break else: - raise FileNotFoundError(f'Ephys recording data not found! Neither SpikeGLX nor OpenEphys recording files found in: {sess_dir}') + raise FileNotFoundError('Ephys recording data not found! Neither ' + + 'SpikeGLX nor OpenEphys recording files ' + + f'found in: {session_dir}') if acq_software == 'SpikeGLX': for meta_filepath in ephys_meta_filepaths: spikeglx_meta = spikeglx.SpikeGLXMeta(meta_filepath) - probe_key = {'probe_type': spikeglx_meta.probe_model, 'probe': spikeglx_meta.probe_SN} - if probe_key['probe'] not in [p['probe'] for p in probe_list] and probe_key not in probe.Probe(): + probe_key = {'probe_type': spikeglx_meta.probe_model, + 'probe': spikeglx_meta.probe_SN} + if (probe_key['probe'] not in [p['probe'] for p in probe_list + ] and probe_key not in probe.Probe()): probe_list.append(probe_key) probe_dir = meta_filepath.parent - probe_number = re.search('(imec)?\d{1}$', probe_dir.name).group() + probe_number = re.search('(imec)?\d{1}$', probe_dir.name + ).group() probe_number = int(probe_number.replace('imec', '')) - insertions.append({'probe': spikeglx_meta.probe_SN, 'insertion_number': int(probe_number)}) + insertions.append({'probe': spikeglx_meta.probe_SN, + 'insertion_number': int(probe_number)}) session_datetimes.append(spikeglx_meta.recording_time) elif acq_software == 'OpenEphys': - loaded_oe = openephys.OpenEphys(sess_dir) + loaded_oe = openephys.OpenEphys(session_dir) session_datetimes.append(loaded_oe.experiment.datetime) for probe_idx, oe_probe in enumerate(loaded_oe.probes.values()): - probe_key = {'probe_type': oe_probe.probe_model, 'probe': oe_probe.probe_SN} - if probe_key['probe'] not in [p['probe'] for p in probe_list] and probe_key not in probe.Probe(): + probe_key = {'probe_type': oe_probe.probe_model, + 'probe': oe_probe.probe_SN} + if (probe_key['probe'] not in [p['probe'] for p in probe_list + ] and probe_key not in probe.Probe()): probe_list.append(probe_key) - insertions.append({'probe': oe_probe.probe_SN, 'insertion_number': probe_idx}) + insertions.append({'probe': oe_probe.probe_SN, + 'insertion_number': probe_idx}) else: - raise NotImplementedError(f'Unknown acquisition software: {acq_software}') + raise NotImplementedError('Unknown acquisition software: ' + + f'{acq_software}') # new session/probe-insertion - session_key = {'subject': sess['subject'], 'session_datetime': min(session_datetimes)} + session_key = {'subject': sess['subject'], + 'session_datetime': min(session_datetimes)} if session_key not in session.Session(): session_list.append(session_key) - root_dir = element_data_loader.utils.find_root_directory( - get_ephys_root_data_dir(), sess_dir) - sess_dir_list.append({**session_key, 'session_dir': sess_dir.relative_to(root_dir).as_posix()}) - probe_insertion_list.extend([{**session_key, **insertion} for insertion in insertions]) - - print(f'\n---- Insert {len(session_list)} entry(s) into session.Session ----') - session.Session.insert(session_list, skip_duplicates=True) - session.SessionDirectory.insert(sess_dir_list, skip_duplicates=True) - - print(f'\n---- Insert {len(probe_list)} entry(s) into probe.Probe ----') - probe.Probe.insert(probe_list, skip_duplicates=True) - - print(f'\n---- Insert {len(probe_insertion_list)} entry(s) into ephys.ProbeInsertion ----') - ephys.ProbeInsertion.insert(probe_insertion_list, skip_duplicates=True) + root_dir = find_root_directory(get_ephys_root_data_dir(), + session_dir) + session_dir_list.append({**session_key, 'session_dir': + session_dir.relative_to(root_dir + ).as_posix()}) + probe_insertion_list.extend([{**session_key, **insertion + } for insertion in insertions]) + + print(f'\n---- Insert {len(set(session_list))} entry(s) into ' + + 'session.Session ----') + session.Session.insert(session_list) + session.SessionDirectory.insert(session_dir_list) + + print(f'\n---- Insert {len(set(probe_list))} entry(s) into ' + + 'probe.Probe ----') + probe.Probe.insert(probe_list) + + print(f'\n---- Insert {len(set(probe_insertion_list))} entry(s) into ' + + 'ephys.ProbeInsertion ----') + ephys.ProbeInsertion.insert(probe_insertion_list) print('\n---- Successfully completed ingest_subjects ----') diff --git a/workflow_array_ephys/paths.py b/workflow_array_ephys/paths.py index 995c8d3a..2df32557 100644 --- a/workflow_array_ephys/paths.py +++ b/workflow_array_ephys/paths.py @@ -1,12 +1,12 @@ import datajoint as dj -import pathlib def get_ephys_root_data_dir(): - root_data_dirs = dj.config.get('custom', {}).get('ephys_root_data_dir', None) - return root_data_dirs if root_data_dirs else None + return dj.config.get('custom', {}).get('ephys_root_data_dir', None) + def get_session_directory(session_key: dict) -> str: from .pipeline import session - session_dir = (session.SessionDirectory & session_key).fetch1('session_dir') - return session_dir \ No newline at end of file + session_dir = (session.SessionDirectory & session_key + ).fetch1('session_dir') + return session_dir diff --git a/workflow_array_ephys/pipeline.py b/workflow_array_ephys/pipeline.py index 11da27cd..f69774fd 100644 --- a/workflow_array_ephys/pipeline.py +++ b/workflow_array_ephys/pipeline.py @@ -16,16 +16,17 @@ db_prefix = dj.config['custom'].get('database.prefix', '') -# Activate "lab", "subject", "session" schema ---------------------------------- +# Activate "lab", "subject", "session" schema --------------------------------- lab.activate(db_prefix + 'lab') +Experimenter = lab.User subject.activate(db_prefix + 'subject', linking_module=__name__) session.activate(db_prefix + 'session', linking_module=__name__) -# Declare table "SkullReference" for use in element-array-ephys ---------------- +# Declare table "SkullReference" for use in element-array-ephys --------------- @lab.schema class SkullReference(dj.Lookup): @@ -35,7 +36,7 @@ class SkullReference(dj.Lookup): contents = zip(['Bregma', 'Lambda']) -# Activate "ephys" schema ------------------------------------------------------ +# Activate "ephys" schema ----------------------------------------------------- ephys.activate(db_prefix + 'ephys', db_prefix + 'probe', diff --git a/workflow_array_ephys/version.py b/workflow_array_ephys/version.py index 9a2a4f98..e64039d5 100644 --- a/workflow_array_ephys/version.py +++ b/workflow_array_ephys/version.py @@ -1,2 +1,2 @@ """Package metadata.""" -__version__ = '0.1.0a2' \ No newline at end of file +__version__ = '0.1.0a2' From 0f607c6e11cfc62c0925c0253de4feca264e832b Mon Sep 17 00:00:00 2001 From: Chris Broz Date: Wed, 19 Jan 2022 15:44:28 -0600 Subject: [PATCH 07/45] element-data-loader -> element-interface --- requirements.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/requirements.txt b/requirements.txt index 280be238..67d990fe 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,5 +3,5 @@ element-array-ephys element-lab element-animal element-session -element-data-loader @ git+https://github.com/datajoint/element-data-loader.git -ipykernel \ No newline at end of file +element-interface @ git+https://github.com/datajoint/element-interface.git +ipykernel From 6e4541805928a2d748ddcbe228d0b364f6240360 Mon Sep 17 00:00:00 2001 From: Kabilar Gunalan Date: Sun, 9 Jan 2022 00:07:24 -0600 Subject: [PATCH 08/45] Move instructions to central location --- README.md | 270 +++--------------------------------------------------- 1 file changed, 13 insertions(+), 257 deletions(-) diff --git a/README.md b/README.md index 4b24b46d..a6c1a2c9 100644 --- a/README.md +++ b/README.md @@ -1,23 +1,21 @@ -# Pipeline for extracellular electrophysiology using Neuropixels probe and kilosort clustering method +# DataJoint Workflow - Array Electrophysiology -Build a full ephys pipeline using the canonical pipeline elements +Workflow for extracellular array electrophysiology data acquired with a Neuropixels probe using the `SpikeGLX` or `OpenEphys` software and processed with MATLAB- or python-based `Kilosort`. + +A complete electrophysiology workflow can be built using the DataJoint Elements. + [element-lab](https://github.com/datajoint/element-lab) + [element-animal](https://github.com/datajoint/element-animal) + [element-session](https://github.com/datajoint/element-session) + [element-array-ephys](https://github.com/datajoint/element-array-ephys) This repository provides demonstrations for: -1. Set up a workflow using different elements (see [workflow_array_ephys/pipeline.py](workflow_array_ephys/pipeline.py)) -2. Ingestion of data/metadata based on: - + predefined file/folder structure and naming convention - + predefined directory lookup methods (see [workflow_array_ephys/paths.py](workflow_array_ephys/paths.py)) -3. Ingestion of clustering results (built-in routine from the ephys element) - +1. Set up a workflow using DataJoint Elements (see [workflow_array_ephys/pipeline.py](workflow_array_ephys/pipeline.py)) +2. Ingestion of data/metadata based on a predefined file structure, file naming convention, and directory lookup methods (see [workflow_array_ephys/paths.py](workflow_array_ephys/paths.py)). +3. Ingestion of clustering results. -## Pipeline Architecture +## Workflow architecture -The electrophysiology pipeline presented here uses pipeline components from 4 DataJoint Elements, -`element-lab`, `element-animal`, `element-session` and `element-array-ephys`, assembled together to form a fully functional workflow. +The electrophysiology workflow presented here uses components from 4 DataJoint Elements (`element-lab`, `element-animal`, `element-session`, `element-array-ephys`) assembled together to form a fully functional workflow. ### element-lab @@ -31,252 +29,10 @@ The electrophysiology pipeline presented here uses pipeline components from 4 Da ![element-array-ephys](images/attached_array_ephys_element.svg) -## Installation instruction - -### Step 1 - clone this project - -Clone this repository from [here](https://github.com/datajoint/workflow-array-ephys) - -+ Launch a new terminal and change directory to where you want to clone the repository to - ``` - cd C:/Projects - ``` -+ Clone the repository: - ``` - git clone https://github.com/datajoint/workflow-array-ephys - ``` -+ Change directory to `workflow-array-ephys` - ``` - cd workflow-array-ephys - ``` - -### Step 2 - Setup virtual environment -It is highly recommended (though not strictly required) to create a virtual environment to run the pipeline. - -+ You can install with `virtualenv` or `conda`. Below are the commands for `virtualenv`. - -+ If `virtualenv` not yet installed, run `pip install --user virtualenv` - -+ To create a new virtual environment named `venv`: - ``` - virtualenv venv - ``` - -+ To activated the virtual environment: - + On Windows: - ``` - .\venv\Scripts\activate - ``` - - + On Linux/macOS: - ``` - source venv/bin/activate - ``` - -### Step 3 - Install this repository - -From the root of the cloned repository directory: - ``` - pip install -e . - ``` - -Note: the `-e` flag will install this repository in editable mode, -in case there's a need to modify the code (e.g. the `pipeline.py` or `paths.py` scripts). -If no such modification required, using `pip install .` is sufficient - -### Step 4 - Jupyter Notebook -+ Register an IPython kernel with Jupyter - ``` - ipython kernel install --name=workflow-array-ephys - ``` - -### Step 5 - Configure the `dj_local_conf.json` - -We provided a tutorial notebook [01-configuration](notebooks/01-configuration.ipynb) to guide the configuration. - -At the root of the repository folder, -create a new file `dj_local_conf.json` with the following template: - -```json -{ - "database.host": "", - "database.user": "", - "database.password": "", - "loglevel": "INFO", - "safemode": true, - "display.limit": 7, - "display.width": 14, - "display.show_tuple_count": true, - "custom": { - "database.prefix": "", - "ephys_root_data_dir": ["Full path to root directory of raw data", - "Full path to root directory of processed data"] - } -} -``` - -+ Specify database's `hostname`, `username`, and `password` properly. - -+ Specify a `database.prefix` to create the schemas. - -+ Setup your data directory (`ephys_root_data_dir`) following the convention described below. - - -### Installation complete - -+ At this point the setup of this workflow is complete. - -## Directory structure and file naming convention - -The workflow presented here is designed to work with the directory structure and file naming convention as followed - -+ The `ephys_root_data_dir` is configurable in the `dj_local_conf.json`, under `custom/ephys_root_data_dir` variable - -+ The `subject` directory names must match the identifiers of your subjects in the [subjects.csv](./user_data/subjects.csv) script - -+ The `session` directories can have any naming convention - -+ Each session can have multiple probes, the `probe` directories must match the following naming convention: - - `*[0-9]` (where `[0-9]` is a one digit number specifying the probe number) - -+ Each `probe` directory should contain: - - + One neuropixels meta file, with the following naming convention: - - `*[0-9].ap.meta` - - + Potentially one Kilosort output folder - -``` -root_data_dir/ -└───subject1/ -│ └───session0/ -│ │ └───imec0/ -│ │ │ │ *imec0.ap.meta -│ │ │ └───ksdir/ -│ │ │ │ spike_times.npy -│ │ │ │ templates.npy -│ │ │ │ ... -│ │ └───imec1/ -│ │ │ *imec1.ap.meta -│ │ └───ksdir/ -│ │ │ spike_times.npy -│ │ │ templates.npy -│ │ │ ... -│ └───session1/ -│ │ │ ... -└───subject2/ -│ │ ... -``` - -We provide an example data set to run through this workflow. The instruction of data downloading is in the notebook [00-data-download](notebooks/00-data-download-optional.ipynb). - - -## Running this workflow - -For new users, we recommend using the following two notebooks to run through the workflow. -+ [03-process](notebooks/03-process.ipynb) -+ [04-automate](notebooks/04-automate-optional.ipynb) - -Here is a general instruction: - -Once you have your data directory configured with the above convention, -populating the pipeline with your data amounts to these 3 steps: - -1. Insert meta information (e.g. subjects, sessions, etc.) - modify: - + user_data/subjects.csv - + user_data/sessions.csv - -2. Import session data - run: - ``` - python workflow_array_ephys/ingest.py - ``` - -3. Import clustering data and populate downstream analyses - run: - ``` - python workflow_array_ephys/populate.py - ``` - -+ For inserting new subjects, sessions or new analysis parameters, step 1 needs to be re-executed. - -+ Rerun step 2 and 3 every time new sessions or clustering data become available. - -+ In fact, step 2 and 3 can be executed as scheduled jobs that will automatically process any data newly placed into the `ephys_root_data_dir`. - -## Interacting with the DataJoint pipeline and exploring data - -For new users, we recommend using our notebook [05-explore](notebooks/05-explore.ipynb) to interact with the pipeline. - -Here is a general instruction: - - -+ Connect to database and import tables - ``` - from workflow_array_ephys.pipeline import * - ``` - -+ View ingested/processed data - ``` - subject.Subject() - session.Session() - ephys.ProbeInsertion() - ephys.EphysRecording() - ephys.Clustering() - ephys.Clustering.Unit() - ``` - -+ If required to drop all schemas, the following is the dependency order. Also refer to [06-drop](notebooks/06-drop-optional.ipynb) - ``` - from workflow_array_ephys.pipeline import * - - ephys.schema.drop() - probe.schema.drop() - session.schema.drop() - subject.schema.drop() - lab.schema.drop() - ``` - - -## Developer Guide - -### Development mode installation - -This method allows you to modify the source code for `workflow-array-ephys`, `element-array-ephys`, `element-animal`, `element-session`, and `element-lab`. - -+ Launch a new terminal and change directory to where you want to clone the repositories - ``` - cd C:/Projects - ``` -+ Clone the repositories - ``` - git clone https://github.com/datajoint/element-lab - git clone https://github.com/datajoint/element-animal - git clone https://github.com/datajoint/element-session - git clone https://github.com/datajoint/element-array-ephys - git clone https://github.com/datajoint/workflow-array-ephys - ``` -+ Install each package with the `-e` option - ``` - pip install -e ./element-lab - pip install -e ./element-animal - pip install -e ./element-session - pip install -e ./element-array-ephys - pip install -e ./workflow-array-ephys - ``` - -### Running tests - -1. Download the test dataset to your local machine -(note the directory where the dataset is saved at - e.g. `/tmp/testset`) - -2. Create an `.env` file with the following content: - - > TEST_DATA_DIR=/tmp/testset - - (replace `/tmp/testset` with the directory where you have the test dataset downloaded to) +## Installation instructions -3. Run: ++ The installation instructions can be found at [datajoint-elements/install.md](https://github.com/datajoint/datajoint-elements/blob/main/install.md). +## Interacting with the DataJoint workflow - docker-compose -f docker-compose-test.yaml up --build ++ Please refer to the following workflow-specific [Jupyter notebooks](/notebooks) for an in-depth explanation of how to run the workflow ([03-process.ipynb](notebooks/03-process.ipynb)) and explore the data ([05-explore.ipynb](notebooks/05-explore.ipynb)). \ No newline at end of file From 940bb7de07185396c7ce9dd3248ffcb9f74bf4cc Mon Sep 17 00:00:00 2001 From: Kabilar Gunalan Date: Sun, 9 Jan 2022 10:42:16 -0600 Subject: [PATCH 09/45] Update for PEP8 --- README.md | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index a6c1a2c9..26200529 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ # DataJoint Workflow - Array Electrophysiology -Workflow for extracellular array electrophysiology data acquired with a Neuropixels probe using the `SpikeGLX` or `OpenEphys` software and processed with MATLAB- or python-based `Kilosort`. +Workflow for extracellular array electrophysiology data acquired with a +Neuropixels probe using the `SpikeGLX` or `OpenEphys` software and processed +with MATLAB- or python-based `Kilosort`. A complete electrophysiology workflow can be built using the DataJoint Elements. + [element-lab](https://github.com/datajoint/element-lab) @@ -9,21 +11,28 @@ A complete electrophysiology workflow can be built using the DataJoint Elements. + [element-array-ephys](https://github.com/datajoint/element-array-ephys) This repository provides demonstrations for: -1. Set up a workflow using DataJoint Elements (see [workflow_array_ephys/pipeline.py](workflow_array_ephys/pipeline.py)) -2. Ingestion of data/metadata based on a predefined file structure, file naming convention, and directory lookup methods (see [workflow_array_ephys/paths.py](workflow_array_ephys/paths.py)). +1. Set up a workflow using DataJoint Elements (see +[workflow_array_ephys/pipeline.py](workflow_array_ephys/pipeline.py)) +2. Ingestion of data/metadata based on a predefined file structure, file naming +convention, and directory lookup methods (see +[workflow_array_ephys/paths.py](workflow_array_ephys/paths.py)). 3. Ingestion of clustering results. ## Workflow architecture -The electrophysiology workflow presented here uses components from 4 DataJoint Elements (`element-lab`, `element-animal`, `element-session`, `element-array-ephys`) assembled together to form a fully functional workflow. +The electrophysiology workflow presented here uses components from 4 DataJoint +Elements (`element-lab`, `element-animal`, `element-session`, +`element-array-ephys`) assembled together to form a fully functional workflow. ### element-lab -![element-lab](https://github.com/datajoint/element-lab/raw/main/images/element_lab_diagram.svg) +![element-lab]( +https://github.com/datajoint/element-lab/raw/main/images/element_lab_diagram.svg) ### element-animal -![element-animal](https://github.com/datajoint/element-animal/blob/main/images/subject_diagram.svg) +![element-animal]( +https://github.com/datajoint/element-animal/blob/main/images/subject_diagram.svg) ### assembled with element-array-ephys @@ -31,8 +40,12 @@ The electrophysiology workflow presented here uses components from 4 DataJoint E ## Installation instructions -+ The installation instructions can be found at [datajoint-elements/install.md](https://github.com/datajoint/datajoint-elements/blob/main/install.md). ++ The installation instructions can be found at [datajoint-elements/install.md]( + https://github.com/datajoint/datajoint-elements/blob/main/install.md). ## Interacting with the DataJoint workflow -+ Please refer to the following workflow-specific [Jupyter notebooks](/notebooks) for an in-depth explanation of how to run the workflow ([03-process.ipynb](notebooks/03-process.ipynb)) and explore the data ([05-explore.ipynb](notebooks/05-explore.ipynb)). \ No newline at end of file ++ Please refer to the following workflow-specific +[Jupyter notebooks](/notebooks) for an in-depth explanation of how to run the +workflow ([03-process.ipynb](notebooks/03-process.ipynb)) and explore the data +([05-explore.ipynb](notebooks/05-explore.ipynb)). \ No newline at end of file From ab27fd5cd08e38e28a2c65e3b5460de5930773a1 Mon Sep 17 00:00:00 2001 From: Kabilar Gunalan Date: Tue, 11 Jan 2022 22:47:09 -0600 Subject: [PATCH 10/45] Rename element-interface --- README.md | 10 +- .../02-workflow-structure-optional.ipynb | 2381 +---------------- notebooks/05-explore.ipynb | 458 +--- requirements.txt | 2 +- requirements_test.txt | 1 + setup.py | 2 +- workflow_array_ephys/pipeline.py | 4 +- 7 files changed, 24 insertions(+), 2834 deletions(-) diff --git a/README.md b/README.md index 26200529..ba1237af 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ with MATLAB- or python-based `Kilosort`. A complete electrophysiology workflow can be built using the DataJoint Elements. + [element-lab](https://github.com/datajoint/element-lab) -+ [element-animal](https://github.com/datajoint/element-animal) ++ [element-subject](https://github.com/datajoint/element-subject) + [element-session](https://github.com/datajoint/element-session) + [element-array-ephys](https://github.com/datajoint/element-array-ephys) @@ -21,7 +21,7 @@ convention, and directory lookup methods (see ## Workflow architecture The electrophysiology workflow presented here uses components from 4 DataJoint -Elements (`element-lab`, `element-animal`, `element-session`, +Elements (`element-lab`, `element-subject`, `element-session`, `element-array-ephys`) assembled together to form a fully functional workflow. ### element-lab @@ -29,10 +29,10 @@ Elements (`element-lab`, `element-animal`, `element-session`, ![element-lab]( https://github.com/datajoint/element-lab/raw/main/images/element_lab_diagram.svg) -### element-animal +### element-subject -![element-animal]( -https://github.com/datajoint/element-animal/blob/main/images/subject_diagram.svg) +![element-subject]( +https://github.com/datajoint/element-subject/blob/main/images/subject_diagram.svg) ### assembled with element-array-ephys diff --git a/notebooks/02-workflow-structure-optional.ipynb b/notebooks/02-workflow-structure-optional.ipynb index 13183660..35d9dc1a 100644 --- a/notebooks/02-workflow-structure-optional.ipynb +++ b/notebooks/02-workflow-structure-optional.ipynb @@ -282,315 +282,7 @@ "outputs": [ { "data": { - "image/svg+xml": [ - "\n", - "\n", - "%3\n", - "\n", - "\n", - "ephys.AcquisitionSoftware\n", - "\n", - "\n", - "ephys.AcquisitionSoftware\n", - "\n", - "\n", - "\n", - "\n", - "ephys.EphysRecording\n", - "\n", - "\n", - "ephys.EphysRecording\n", - "\n", - "\n", - "\n", - "\n", - "ephys.AcquisitionSoftware->ephys.EphysRecording\n", - "\n", - "\n", - "\n", - "ephys.EphysRecording.EphysFile\n", - "\n", - "\n", - "ephys.EphysRecording.EphysFile\n", - "\n", - "\n", - "\n", - "\n", - "ephys.EphysRecording->ephys.EphysRecording.EphysFile\n", - "\n", - "\n", - "\n", - "ephys.LFP\n", - "\n", - "\n", - "ephys.LFP\n", - "\n", - "\n", - "\n", - "\n", - "ephys.EphysRecording->ephys.LFP\n", - "\n", - "\n", - "\n", - "ephys.ClusteringTask\n", - "\n", - "\n", - "ephys.ClusteringTask\n", - "\n", - "\n", - "\n", - "\n", - "ephys.EphysRecording->ephys.ClusteringTask\n", - "\n", - "\n", - "\n", - "ephys.ClusterQualityLabel\n", - "\n", - "\n", - "ephys.ClusterQualityLabel\n", - "\n", - "\n", - "\n", - "\n", - "ephys.CuratedClustering.Unit\n", - "\n", - "\n", - "ephys.CuratedClustering.Unit\n", - "\n", - "\n", - "\n", - "\n", - "ephys.ClusterQualityLabel->ephys.CuratedClustering.Unit\n", - "\n", - "\n", - "\n", - "ephys.ClusteringParamSet\n", - "\n", - "\n", - "ephys.ClusteringParamSet\n", - "\n", - "\n", - "\n", - "\n", - "ephys.ClusteringParamSet->ephys.ClusteringTask\n", - "\n", - "\n", - "\n", - "ephys.WaveformSet.Waveform\n", - "\n", - "\n", - "ephys.WaveformSet.Waveform\n", - "\n", - "\n", - "\n", - "\n", - "ephys.CuratedClustering.Unit->ephys.WaveformSet.Waveform\n", - "\n", - "\n", - "\n", - "ephys.WaveformSet.PeakWaveform\n", - "\n", - "\n", - "ephys.WaveformSet.PeakWaveform\n", - "\n", - "\n", - "\n", - "\n", - "ephys.CuratedClustering.Unit->ephys.WaveformSet.PeakWaveform\n", - "\n", - "\n", - "\n", - "ephys.ProbeInsertion\n", - "\n", - "\n", - "ephys.ProbeInsertion\n", - "\n", - "\n", - "\n", - "\n", - "ephys.ProbeInsertion->ephys.EphysRecording\n", - "\n", - "\n", - "\n", - "ephys.InsertionLocation\n", - "\n", - "\n", - "ephys.InsertionLocation\n", - "\n", - "\n", - "\n", - "\n", - "ephys.ProbeInsertion->ephys.InsertionLocation\n", - "\n", - "\n", - "\n", - "ephys.Curation\n", - "\n", - "\n", - "ephys.Curation\n", - "\n", - "\n", - "\n", - "\n", - "ephys.CuratedClustering\n", - "\n", - "\n", - "ephys.CuratedClustering\n", - "\n", - "\n", - "\n", - "\n", - "ephys.Curation->ephys.CuratedClustering\n", - "\n", - "\n", - "\n", - "ephys.LFP.Electrode\n", - "\n", - "\n", - "ephys.LFP.Electrode\n", - "\n", - "\n", - "\n", - "\n", - "ephys.LFP->ephys.LFP.Electrode\n", - "\n", - "\n", - "\n", - "ephys.WaveformSet\n", - "\n", - "\n", - "ephys.WaveformSet\n", - "\n", - "\n", - "\n", - "\n", - "ephys.WaveformSet->ephys.WaveformSet.Waveform\n", - "\n", - "\n", - "\n", - "ephys.WaveformSet->ephys.WaveformSet.PeakWaveform\n", - "\n", - "\n", - "\n", - "ephys.Clustering\n", - "\n", - "\n", - "ephys.Clustering\n", - "\n", - "\n", - "\n", - "\n", - "ephys.ClusteringTask->ephys.Clustering\n", - "\n", - "\n", - "\n", - "ephys.CuratedClustering->ephys.CuratedClustering.Unit\n", - "\n", - "\n", - "\n", - "ephys.CuratedClustering->ephys.WaveformSet\n", - "\n", - "\n", - "\n", - "ephys.Clustering->ephys.Curation\n", - "\n", - "\n", - "\n", - "ephys.ClusteringMethod\n", - "\n", - "\n", - "ephys.ClusteringMethod\n", - "\n", - "\n", - "\n", - "\n", - "ephys.ClusteringMethod->ephys.ClusteringParamSet\n", - "\n", - "\n", - "\n", - "" - ], + "image/svg+xml": "\n\n%3\n\n\nephys.AcquisitionSoftware\n\n\nephys.AcquisitionSoftware\n\n\n\n\nephys.EphysRecording\n\n\nephys.EphysRecording\n\n\n\n\nephys.AcquisitionSoftware->ephys.EphysRecording\n\n\n\nephys.EphysRecording.EphysFile\n\n\nephys.EphysRecording.EphysFile\n\n\n\n\nephys.EphysRecording->ephys.EphysRecording.EphysFile\n\n\n\nephys.LFP\n\n\nephys.LFP\n\n\n\n\nephys.EphysRecording->ephys.LFP\n\n\n\nephys.ClusteringTask\n\n\nephys.ClusteringTask\n\n\n\n\nephys.EphysRecording->ephys.ClusteringTask\n\n\n\nephys.ClusterQualityLabel\n\n\nephys.ClusterQualityLabel\n\n\n\n\nephys.CuratedClustering.Unit\n\n\nephys.CuratedClustering.Unit\n\n\n\n\nephys.ClusterQualityLabel->ephys.CuratedClustering.Unit\n\n\n\nephys.ClusteringParamSet\n\n\nephys.ClusteringParamSet\n\n\n\n\nephys.ClusteringParamSet->ephys.ClusteringTask\n\n\n\nephys.WaveformSet.Waveform\n\n\nephys.WaveformSet.Waveform\n\n\n\n\nephys.CuratedClustering.Unit->ephys.WaveformSet.Waveform\n\n\n\nephys.WaveformSet.PeakWaveform\n\n\nephys.WaveformSet.PeakWaveform\n\n\n\n\nephys.CuratedClustering.Unit->ephys.WaveformSet.PeakWaveform\n\n\n\nephys.ProbeInsertion\n\n\nephys.ProbeInsertion\n\n\n\n\nephys.ProbeInsertion->ephys.EphysRecording\n\n\n\nephys.InsertionLocation\n\n\nephys.InsertionLocation\n\n\n\n\nephys.ProbeInsertion->ephys.InsertionLocation\n\n\n\nephys.Curation\n\n\nephys.Curation\n\n\n\n\nephys.CuratedClustering\n\n\nephys.CuratedClustering\n\n\n\n\nephys.Curation->ephys.CuratedClustering\n\n\n\nephys.LFP.Electrode\n\n\nephys.LFP.Electrode\n\n\n\n\nephys.LFP->ephys.LFP.Electrode\n\n\n\nephys.WaveformSet\n\n\nephys.WaveformSet\n\n\n\n\nephys.WaveformSet->ephys.WaveformSet.Waveform\n\n\n\nephys.WaveformSet->ephys.WaveformSet.PeakWaveform\n\n\n\nephys.Clustering\n\n\nephys.Clustering\n\n\n\n\nephys.ClusteringTask->ephys.Clustering\n\n\n\nephys.CuratedClustering->ephys.CuratedClustering.Unit\n\n\n\nephys.CuratedClustering->ephys.WaveformSet\n\n\n\nephys.Clustering->ephys.Curation\n\n\n\nephys.ClusteringMethod\n\n\nephys.ClusteringMethod\n\n\n\n\nephys.ClusteringMethod->ephys.ClusteringParamSet\n\n\n\n", "text/plain": [ "" ] @@ -633,594 +325,7 @@ "outputs": [ { "data": { - "image/svg+xml": [ - "\n", - "\n", - "%3\n", - "\n", - "\n", - "ephys.AcquisitionSoftware\n", - "\n", - "\n", - "ephys.AcquisitionSoftware\n", - "\n", - "\n", - "\n", - "\n", - "ephys.EphysRecording\n", - "\n", - "\n", - "ephys.EphysRecording\n", - "\n", - "\n", - "\n", - "\n", - "ephys.AcquisitionSoftware->ephys.EphysRecording\n", - "\n", - "\n", - "\n", - "ephys.ClusteringParamSet\n", - "\n", - "\n", - "ephys.ClusteringParamSet\n", - "\n", - "\n", - "\n", - "\n", - "ephys.ClusteringTask\n", - "\n", - "\n", - "ephys.ClusteringTask\n", - "\n", - "\n", - "\n", - "\n", - "ephys.ClusteringParamSet->ephys.ClusteringTask\n", - "\n", - "\n", - "\n", - "subject.Line\n", - "\n", - "\n", - "subject.Line\n", - "\n", - "\n", - "\n", - "\n", - "subject.Subject.Line\n", - "\n", - "\n", - "subject.Subject.Line\n", - "\n", - "\n", - "\n", - "\n", - "subject.Line->subject.Subject.Line\n", - "\n", - "\n", - "\n", - "subject.Line.Allele\n", - "\n", - "\n", - "subject.Line.Allele\n", - "\n", - "\n", - "\n", - "\n", - "subject.Line->subject.Line.Allele\n", - "\n", - "\n", - "\n", - "subject.Subject.Protocol\n", - "\n", - "\n", - "subject.Subject.Protocol\n", - "\n", - "\n", - "\n", - "\n", - "subject.SubjectCullMethod\n", - "\n", - "\n", - "subject.SubjectCullMethod\n", - "\n", - "\n", - "\n", - "\n", - "subject.Allele.Source\n", - "\n", - "\n", - "subject.Allele.Source\n", - "\n", - "\n", - "\n", - "\n", - "ephys.Curation\n", - "\n", - "\n", - "ephys.Curation\n", - "\n", - "\n", - "\n", - "\n", - "ephys.CuratedClustering\n", - "\n", - "\n", - "ephys.CuratedClustering\n", - "\n", - "\n", - "\n", - "\n", - "ephys.Curation->ephys.CuratedClustering\n", - "\n", - "\n", - "\n", - "subject.Strain\n", - "\n", - "\n", - "subject.Strain\n", - "\n", - "\n", - "\n", - "\n", - "subject.Subject.Strain\n", - "\n", - "\n", - "subject.Subject.Strain\n", - "\n", - "\n", - "\n", - "\n", - "subject.Strain->subject.Subject.Strain\n", - "\n", - "\n", - "\n", - "subject.Allele\n", - "\n", - "\n", - "subject.Allele\n", - "\n", - "\n", - "\n", - "\n", - "subject.Allele->subject.Allele.Source\n", - "\n", - "\n", - "\n", - "subject.Allele->subject.Line.Allele\n", - "\n", - "\n", - "\n", - "subject.Zygosity\n", - "\n", - "\n", - "subject.Zygosity\n", - "\n", - "\n", - "\n", - "\n", - "subject.Allele->subject.Zygosity\n", - "\n", - "\n", - "\n", - "session.Session\n", - "\n", - "\n", - "session.Session\n", - "\n", - "\n", - "\n", - "\n", - "session.ProjectSession\n", - "\n", - "\n", - "session.ProjectSession\n", - "\n", - "\n", - "\n", - "\n", - "session.Session->session.ProjectSession\n", - "\n", - "\n", - "\n", - "session.SessionDirectory\n", - "\n", - "\n", - "session.SessionDirectory\n", - "\n", - "\n", - "\n", - "\n", - "session.Session->session.SessionDirectory\n", - "\n", - "\n", - "\n", - "ephys.ProbeInsertion\n", - "\n", - "\n", - "ephys.ProbeInsertion\n", - "\n", - "\n", - "\n", - "\n", - "session.Session->ephys.ProbeInsertion\n", - "\n", - "\n", - "\n", - "ephys.ClusteringMethod\n", - "\n", - "\n", - "ephys.ClusteringMethod\n", - "\n", - "\n", - "\n", - "\n", - "ephys.ClusteringMethod->ephys.ClusteringParamSet\n", - "\n", - "\n", - "\n", - "subject.Subject.User\n", - "\n", - "\n", - "subject.Subject.User\n", - "\n", - "\n", - "\n", - "\n", - "ephys.CuratedClustering.Unit\n", - "\n", - "\n", - "ephys.CuratedClustering.Unit\n", - "\n", - "\n", - "\n", - "\n", - "ephys.WaveformSet.Waveform\n", - "\n", - "\n", - "ephys.WaveformSet.Waveform\n", - "\n", - "\n", - "\n", - "\n", - "ephys.CuratedClustering.Unit->ephys.WaveformSet.Waveform\n", - "\n", - "\n", - "\n", - "ephys.WaveformSet.PeakWaveform\n", - "\n", - "\n", - "ephys.WaveformSet.PeakWaveform\n", - "\n", - "\n", - "\n", - "\n", - "ephys.CuratedClustering.Unit->ephys.WaveformSet.PeakWaveform\n", - "\n", - "\n", - "\n", - "ephys.LFP.Electrode\n", - "\n", - "\n", - "ephys.LFP.Electrode\n", - "\n", - "\n", - "\n", - "\n", - "ephys.WaveformSet\n", - "\n", - "\n", - "ephys.WaveformSet\n", - "\n", - "\n", - "\n", - "\n", - "ephys.WaveformSet->ephys.WaveformSet.Waveform\n", - "\n", - "\n", - "\n", - "ephys.WaveformSet->ephys.WaveformSet.PeakWaveform\n", - "\n", - "\n", - "\n", - "subject.Subject\n", - "\n", - "\n", - "subject.Subject\n", - "\n", - "\n", - "\n", - "\n", - "subject.Subject->subject.Subject.Protocol\n", - "\n", - "\n", - "\n", - "subject.Subject->subject.SubjectCullMethod\n", - "\n", - "\n", - "\n", - "subject.Subject->subject.Subject.Line\n", - "\n", - "\n", - "\n", - "subject.Subject->session.Session\n", - "\n", - "\n", - "\n", - "subject.Subject->subject.Subject.User\n", - "\n", - "\n", - "\n", - "subject.Subject->subject.Subject.Strain\n", - "\n", - "\n", - "\n", - "subject.Subject.Source\n", - "\n", - "\n", - "subject.Subject.Source\n", - "\n", - "\n", - "\n", - "\n", - "subject.Subject->subject.Subject.Source\n", - "\n", - "\n", - "\n", - "subject.SubjectDeath\n", - "\n", - "\n", - "subject.SubjectDeath\n", - "\n", - "\n", - "\n", - "\n", - "subject.Subject->subject.SubjectDeath\n", - "\n", - "\n", - "\n", - "subject.Subject.Lab\n", - "\n", - "\n", - "subject.Subject.Lab\n", - "\n", - "\n", - "\n", - "\n", - "subject.Subject->subject.Subject.Lab\n", - "\n", - "\n", - "\n", - "subject.Subject->subject.Zygosity\n", - "\n", - "\n", - "\n", - "ephys.EphysRecording.EphysFile\n", - "\n", - "\n", - "ephys.EphysRecording.EphysFile\n", - "\n", - "\n", - "\n", - "\n", - "ephys.EphysRecording->ephys.EphysRecording.EphysFile\n", - "\n", - "\n", - "\n", - "ephys.LFP\n", - "\n", - "\n", - "ephys.LFP\n", - "\n", - "\n", - "\n", - "\n", - "ephys.EphysRecording->ephys.LFP\n", - "\n", - "\n", - "\n", - "ephys.EphysRecording->ephys.ClusteringTask\n", - "\n", - "\n", - "\n", - "ephys.ClusterQualityLabel\n", - "\n", - "\n", - "ephys.ClusterQualityLabel\n", - "\n", - "\n", - "\n", - "\n", - "ephys.ClusterQualityLabel->ephys.CuratedClustering.Unit\n", - "\n", - "\n", - "\n", - "ephys.InsertionLocation\n", - "\n", - "\n", - "ephys.InsertionLocation\n", - "\n", - "\n", - "\n", - "\n", - "ephys.LFP->ephys.LFP.Electrode\n", - "\n", - "\n", - "\n", - "ephys.ProbeInsertion->ephys.EphysRecording\n", - "\n", - "\n", - "\n", - "ephys.ProbeInsertion->ephys.InsertionLocation\n", - "\n", - "\n", - "\n", - "ephys.Clustering\n", - "\n", - "\n", - "ephys.Clustering\n", - "\n", - "\n", - "\n", - "\n", - "ephys.ClusteringTask->ephys.Clustering\n", - "\n", - "\n", - "\n", - "ephys.CuratedClustering->ephys.CuratedClustering.Unit\n", - "\n", - "\n", - "\n", - "ephys.CuratedClustering->ephys.WaveformSet\n", - "\n", - "\n", - "\n", - "ephys.Clustering->ephys.Curation\n", - "\n", - "\n", - "\n", - "" - ], + "image/svg+xml": "\n\n%3\n\n\nephys.AcquisitionSoftware\n\n\nephys.AcquisitionSoftware\n\n\n\n\nephys.EphysRecording\n\n\nephys.EphysRecording\n\n\n\n\nephys.AcquisitionSoftware->ephys.EphysRecording\n\n\n\nephys.ClusteringParamSet\n\n\nephys.ClusteringParamSet\n\n\n\n\nephys.ClusteringTask\n\n\nephys.ClusteringTask\n\n\n\n\nephys.ClusteringParamSet->ephys.ClusteringTask\n\n\n\nsubject.Line\n\n\nsubject.Line\n\n\n\n\nsubject.Subject.Line\n\n\nsubject.Subject.Line\n\n\n\n\nsubject.Line->subject.Subject.Line\n\n\n\nsubject.Line.Allele\n\n\nsubject.Line.Allele\n\n\n\n\nsubject.Line->subject.Line.Allele\n\n\n\nsubject.Subject.Protocol\n\n\nsubject.Subject.Protocol\n\n\n\n\nsubject.SubjectCullMethod\n\n\nsubject.SubjectCullMethod\n\n\n\n\nsubject.Allele.Source\n\n\nsubject.Allele.Source\n\n\n\n\nephys.Curation\n\n\nephys.Curation\n\n\n\n\nephys.CuratedClustering\n\n\nephys.CuratedClustering\n\n\n\n\nephys.Curation->ephys.CuratedClustering\n\n\n\nsubject.Strain\n\n\nsubject.Strain\n\n\n\n\nsubject.Subject.Strain\n\n\nsubject.Subject.Strain\n\n\n\n\nsubject.Strain->subject.Subject.Strain\n\n\n\nsubject.Allele\n\n\nsubject.Allele\n\n\n\n\nsubject.Allele->subject.Allele.Source\n\n\n\nsubject.Allele->subject.Line.Allele\n\n\n\nsubject.Zygosity\n\n\nsubject.Zygosity\n\n\n\n\nsubject.Allele->subject.Zygosity\n\n\n\nsession.Session\n\n\nsession.Session\n\n\n\n\nsession.ProjectSession\n\n\nsession.ProjectSession\n\n\n\n\nsession.Session->session.ProjectSession\n\n\n\nsession.SessionDirectory\n\n\nsession.SessionDirectory\n\n\n\n\nsession.Session->session.SessionDirectory\n\n\n\nephys.ProbeInsertion\n\n\nephys.ProbeInsertion\n\n\n\n\nsession.Session->ephys.ProbeInsertion\n\n\n\nephys.ClusteringMethod\n\n\nephys.ClusteringMethod\n\n\n\n\nephys.ClusteringMethod->ephys.ClusteringParamSet\n\n\n\nsubject.Subject.User\n\n\nsubject.Subject.User\n\n\n\n\nephys.CuratedClustering.Unit\n\n\nephys.CuratedClustering.Unit\n\n\n\n\nephys.WaveformSet.Waveform\n\n\nephys.WaveformSet.Waveform\n\n\n\n\nephys.CuratedClustering.Unit->ephys.WaveformSet.Waveform\n\n\n\nephys.WaveformSet.PeakWaveform\n\n\nephys.WaveformSet.PeakWaveform\n\n\n\n\nephys.CuratedClustering.Unit->ephys.WaveformSet.PeakWaveform\n\n\n\nephys.LFP.Electrode\n\n\nephys.LFP.Electrode\n\n\n\n\nephys.WaveformSet\n\n\nephys.WaveformSet\n\n\n\n\nephys.WaveformSet->ephys.WaveformSet.Waveform\n\n\n\nephys.WaveformSet->ephys.WaveformSet.PeakWaveform\n\n\n\nsubject.Subject\n\n\nsubject.Subject\n\n\n\n\nsubject.Subject->subject.Subject.Protocol\n\n\n\nsubject.Subject->subject.SubjectCullMethod\n\n\n\nsubject.Subject->subject.Subject.Line\n\n\n\nsubject.Subject->session.Session\n\n\n\nsubject.Subject->subject.Subject.User\n\n\n\nsubject.Subject->subject.Subject.Strain\n\n\n\nsubject.Subject.Source\n\n\nsubject.Subject.Source\n\n\n\n\nsubject.Subject->subject.Subject.Source\n\n\n\nsubject.SubjectDeath\n\n\nsubject.SubjectDeath\n\n\n\n\nsubject.Subject->subject.SubjectDeath\n\n\n\nsubject.Subject.Lab\n\n\nsubject.Subject.Lab\n\n\n\n\nsubject.Subject->subject.Subject.Lab\n\n\n\nsubject.Subject->subject.Zygosity\n\n\n\nephys.EphysRecording.EphysFile\n\n\nephys.EphysRecording.EphysFile\n\n\n\n\nephys.EphysRecording->ephys.EphysRecording.EphysFile\n\n\n\nephys.LFP\n\n\nephys.LFP\n\n\n\n\nephys.EphysRecording->ephys.LFP\n\n\n\nephys.EphysRecording->ephys.ClusteringTask\n\n\n\nephys.ClusterQualityLabel\n\n\nephys.ClusterQualityLabel\n\n\n\n\nephys.ClusterQualityLabel->ephys.CuratedClustering.Unit\n\n\n\nephys.InsertionLocation\n\n\nephys.InsertionLocation\n\n\n\n\nephys.LFP->ephys.LFP.Electrode\n\n\n\nephys.ProbeInsertion->ephys.EphysRecording\n\n\n\nephys.ProbeInsertion->ephys.InsertionLocation\n\n\n\nephys.Clustering\n\n\nephys.Clustering\n\n\n\n\nephys.ClusteringTask->ephys.Clustering\n\n\n\nephys.CuratedClustering->ephys.CuratedClustering.Unit\n\n\n\nephys.CuratedClustering->ephys.WaveformSet\n\n\n\nephys.Clustering->ephys.Curation\n\n\n\n", "text/plain": [ "" ] @@ -1242,346 +347,7 @@ "outputs": [ { "data": { - "image/svg+xml": [ - "\n", - "\n", - "%3\n", - "\n", - "\n", - "ephys.AcquisitionSoftware\n", - "\n", - "\n", - "ephys.AcquisitionSoftware\n", - "\n", - "\n", - "\n", - "\n", - "ephys.EphysRecording\n", - "\n", - "\n", - "ephys.EphysRecording\n", - "\n", - "\n", - "\n", - "\n", - "ephys.AcquisitionSoftware->ephys.EphysRecording\n", - "\n", - "\n", - "\n", - "ephys.ClusteringParamSet\n", - "\n", - "\n", - "ephys.ClusteringParamSet\n", - "\n", - "\n", - "\n", - "\n", - "ephys.ClusteringTask\n", - "\n", - "\n", - "ephys.ClusteringTask\n", - "\n", - "\n", - "\n", - "\n", - "ephys.ClusteringParamSet->ephys.ClusteringTask\n", - "\n", - "\n", - "\n", - "ephys.Curation\n", - "\n", - "\n", - "ephys.Curation\n", - "\n", - "\n", - "\n", - "\n", - "ephys.CuratedClustering\n", - "\n", - "\n", - "ephys.CuratedClustering\n", - "\n", - "\n", - "\n", - "\n", - "ephys.Curation->ephys.CuratedClustering\n", - "\n", - "\n", - "\n", - "session.Session\n", - "\n", - "\n", - "session.Session\n", - "\n", - "\n", - "\n", - "\n", - "ephys.ProbeInsertion\n", - "\n", - "\n", - "ephys.ProbeInsertion\n", - "\n", - "\n", - "\n", - "\n", - "session.Session->ephys.ProbeInsertion\n", - "\n", - "\n", - "\n", - "ephys.ClusteringMethod\n", - "\n", - "\n", - "ephys.ClusteringMethod\n", - "\n", - "\n", - "\n", - "\n", - "ephys.ClusteringMethod->ephys.ClusteringParamSet\n", - "\n", - "\n", - "\n", - "ephys.CuratedClustering.Unit\n", - "\n", - "\n", - "ephys.CuratedClustering.Unit\n", - "\n", - "\n", - "\n", - "\n", - "ephys.WaveformSet.Waveform\n", - "\n", - "\n", - "ephys.WaveformSet.Waveform\n", - "\n", - "\n", - "\n", - "\n", - "ephys.CuratedClustering.Unit->ephys.WaveformSet.Waveform\n", - "\n", - "\n", - "\n", - "ephys.WaveformSet.PeakWaveform\n", - "\n", - "\n", - "ephys.WaveformSet.PeakWaveform\n", - "\n", - "\n", - "\n", - "\n", - "ephys.CuratedClustering.Unit->ephys.WaveformSet.PeakWaveform\n", - "\n", - "\n", - "\n", - "ephys.LFP.Electrode\n", - "\n", - "\n", - "ephys.LFP.Electrode\n", - "\n", - "\n", - "\n", - "\n", - "ephys.WaveformSet\n", - "\n", - "\n", - "ephys.WaveformSet\n", - "\n", - "\n", - "\n", - "\n", - "ephys.WaveformSet->ephys.WaveformSet.Waveform\n", - "\n", - "\n", - "\n", - "ephys.WaveformSet->ephys.WaveformSet.PeakWaveform\n", - "\n", - "\n", - "\n", - "subject.Subject\n", - "\n", - "\n", - "subject.Subject\n", - "\n", - "\n", - "\n", - "\n", - "subject.Subject->session.Session\n", - "\n", - "\n", - "\n", - "ephys.EphysRecording.EphysFile\n", - "\n", - "\n", - "ephys.EphysRecording.EphysFile\n", - "\n", - "\n", - "\n", - "\n", - "ephys.EphysRecording->ephys.EphysRecording.EphysFile\n", - "\n", - "\n", - "\n", - "ephys.LFP\n", - "\n", - "\n", - "ephys.LFP\n", - "\n", - "\n", - "\n", - "\n", - "ephys.EphysRecording->ephys.LFP\n", - "\n", - "\n", - "\n", - "ephys.EphysRecording->ephys.ClusteringTask\n", - "\n", - "\n", - "\n", - "ephys.ClusterQualityLabel\n", - "\n", - "\n", - "ephys.ClusterQualityLabel\n", - "\n", - "\n", - "\n", - "\n", - "ephys.ClusterQualityLabel->ephys.CuratedClustering.Unit\n", - "\n", - "\n", - "\n", - "ephys.InsertionLocation\n", - "\n", - "\n", - "ephys.InsertionLocation\n", - "\n", - "\n", - "\n", - "\n", - "ephys.LFP->ephys.LFP.Electrode\n", - "\n", - "\n", - "\n", - "ephys.ProbeInsertion->ephys.EphysRecording\n", - "\n", - "\n", - "\n", - "ephys.ProbeInsertion->ephys.InsertionLocation\n", - "\n", - "\n", - "\n", - "ephys.Clustering\n", - "\n", - "\n", - "ephys.Clustering\n", - "\n", - "\n", - "\n", - "\n", - "ephys.ClusteringTask->ephys.Clustering\n", - "\n", - "\n", - "\n", - "ephys.CuratedClustering->ephys.CuratedClustering.Unit\n", - "\n", - "\n", - "\n", - "ephys.CuratedClustering->ephys.WaveformSet\n", - "\n", - "\n", - "\n", - "ephys.Clustering->ephys.Curation\n", - "\n", - "\n", - "\n", - "" - ], + "image/svg+xml": "\n\n%3\n\n\nephys.AcquisitionSoftware\n\n\nephys.AcquisitionSoftware\n\n\n\n\nephys.EphysRecording\n\n\nephys.EphysRecording\n\n\n\n\nephys.AcquisitionSoftware->ephys.EphysRecording\n\n\n\nephys.ClusteringParamSet\n\n\nephys.ClusteringParamSet\n\n\n\n\nephys.ClusteringTask\n\n\nephys.ClusteringTask\n\n\n\n\nephys.ClusteringParamSet->ephys.ClusteringTask\n\n\n\nephys.Curation\n\n\nephys.Curation\n\n\n\n\nephys.CuratedClustering\n\n\nephys.CuratedClustering\n\n\n\n\nephys.Curation->ephys.CuratedClustering\n\n\n\nsession.Session\n\n\nsession.Session\n\n\n\n\nephys.ProbeInsertion\n\n\nephys.ProbeInsertion\n\n\n\n\nsession.Session->ephys.ProbeInsertion\n\n\n\nephys.ClusteringMethod\n\n\nephys.ClusteringMethod\n\n\n\n\nephys.ClusteringMethod->ephys.ClusteringParamSet\n\n\n\nephys.CuratedClustering.Unit\n\n\nephys.CuratedClustering.Unit\n\n\n\n\nephys.WaveformSet.Waveform\n\n\nephys.WaveformSet.Waveform\n\n\n\n\nephys.CuratedClustering.Unit->ephys.WaveformSet.Waveform\n\n\n\nephys.WaveformSet.PeakWaveform\n\n\nephys.WaveformSet.PeakWaveform\n\n\n\n\nephys.CuratedClustering.Unit->ephys.WaveformSet.PeakWaveform\n\n\n\nephys.LFP.Electrode\n\n\nephys.LFP.Electrode\n\n\n\n\nephys.WaveformSet\n\n\nephys.WaveformSet\n\n\n\n\nephys.WaveformSet->ephys.WaveformSet.Waveform\n\n\n\nephys.WaveformSet->ephys.WaveformSet.PeakWaveform\n\n\n\nsubject.Subject\n\n\nsubject.Subject\n\n\n\n\nsubject.Subject->session.Session\n\n\n\nephys.EphysRecording.EphysFile\n\n\nephys.EphysRecording.EphysFile\n\n\n\n\nephys.EphysRecording->ephys.EphysRecording.EphysFile\n\n\n\nephys.LFP\n\n\nephys.LFP\n\n\n\n\nephys.EphysRecording->ephys.LFP\n\n\n\nephys.EphysRecording->ephys.ClusteringTask\n\n\n\nephys.ClusterQualityLabel\n\n\nephys.ClusterQualityLabel\n\n\n\n\nephys.ClusterQualityLabel->ephys.CuratedClustering.Unit\n\n\n\nephys.InsertionLocation\n\n\nephys.InsertionLocation\n\n\n\n\nephys.LFP->ephys.LFP.Electrode\n\n\n\nephys.ProbeInsertion->ephys.EphysRecording\n\n\n\nephys.ProbeInsertion->ephys.InsertionLocation\n\n\n\nephys.Clustering\n\n\nephys.Clustering\n\n\n\n\nephys.ClusteringTask->ephys.Clustering\n\n\n\nephys.CuratedClustering->ephys.CuratedClustering.Unit\n\n\n\nephys.CuratedClustering->ephys.WaveformSet\n\n\n\nephys.Clustering->ephys.Curation\n\n\n\n", "text/plain": [ "" ] @@ -1603,176 +369,7 @@ "outputs": [ { "data": { - "image/svg+xml": [ - "\n", - "\n", - "%3\n", - "\n", - "\n", - "subject.Subject.Protocol\n", - "\n", - "\n", - "subject.Subject.Protocol\n", - "\n", - "\n", - "\n", - "\n", - "subject.SubjectCullMethod\n", - "\n", - "\n", - "subject.SubjectCullMethod\n", - "\n", - "\n", - "\n", - "\n", - "subject.Subject.Source\n", - "\n", - "\n", - "subject.Subject.Source\n", - "\n", - "\n", - "\n", - "\n", - "subject.Subject.Lab\n", - "\n", - "\n", - "subject.Subject.Lab\n", - "\n", - "\n", - "\n", - "\n", - "subject.SubjectDeath\n", - "\n", - "\n", - "subject.SubjectDeath\n", - "\n", - "\n", - "\n", - "\n", - "subject.Zygosity\n", - "\n", - "\n", - "subject.Zygosity\n", - "\n", - "\n", - "\n", - "\n", - "subject.Subject.User\n", - "\n", - "\n", - "subject.Subject.User\n", - "\n", - "\n", - "\n", - "\n", - "subject.Subject.Strain\n", - "\n", - "\n", - "subject.Subject.Strain\n", - "\n", - "\n", - "\n", - "\n", - "subject.Subject.Line\n", - "\n", - "\n", - "subject.Subject.Line\n", - "\n", - "\n", - "\n", - "\n", - "subject.Subject\n", - "\n", - "\n", - "subject.Subject\n", - "\n", - "\n", - "\n", - "\n", - "subject.Subject->subject.Subject.Protocol\n", - "\n", - "\n", - "\n", - "subject.Subject->subject.SubjectCullMethod\n", - "\n", - "\n", - "\n", - "subject.Subject->subject.Subject.Source\n", - "\n", - "\n", - "\n", - "subject.Subject->subject.Subject.Lab\n", - "\n", - "\n", - "\n", - "subject.Subject->subject.SubjectDeath\n", - "\n", - "\n", - "\n", - "subject.Subject->subject.Zygosity\n", - "\n", - "\n", - "\n", - "subject.Subject->subject.Subject.User\n", - "\n", - "\n", - "\n", - "subject.Subject->subject.Subject.Strain\n", - "\n", - "\n", - "\n", - "subject.Subject->subject.Subject.Line\n", - "\n", - "\n", - "\n", - "session.Session\n", - "\n", - "\n", - "session.Session\n", - "\n", - "\n", - "\n", - "\n", - "subject.Subject->session.Session\n", - "\n", - "\n", - "\n", - "" - ], + "image/svg+xml": "\n\n%3\n\n\nsubject.Subject.Protocol\n\n\nsubject.Subject.Protocol\n\n\n\n\nsubject.SubjectCullMethod\n\n\nsubject.SubjectCullMethod\n\n\n\n\nsubject.Subject.Source\n\n\nsubject.Subject.Source\n\n\n\n\nsubject.Subject.Lab\n\n\nsubject.Subject.Lab\n\n\n\n\nsubject.SubjectDeath\n\n\nsubject.SubjectDeath\n\n\n\n\nsubject.Zygosity\n\n\nsubject.Zygosity\n\n\n\n\nsubject.Subject.User\n\n\nsubject.Subject.User\n\n\n\n\nsubject.Subject.Strain\n\n\nsubject.Subject.Strain\n\n\n\n\nsubject.Subject.Line\n\n\nsubject.Subject.Line\n\n\n\n\nsubject.Subject\n\n\nsubject.Subject\n\n\n\n\nsubject.Subject->subject.Subject.Protocol\n\n\n\nsubject.Subject->subject.SubjectCullMethod\n\n\n\nsubject.Subject->subject.Subject.Source\n\n\n\nsubject.Subject->subject.Subject.Lab\n\n\n\nsubject.Subject->subject.SubjectDeath\n\n\n\nsubject.Subject->subject.Zygosity\n\n\n\nsubject.Subject->subject.Subject.User\n\n\n\nsubject.Subject->subject.Subject.Strain\n\n\n\nsubject.Subject->subject.Subject.Line\n\n\n\nsession.Session\n\n\nsession.Session\n\n\n\n\nsubject.Subject->session.Session\n\n\n\n", "text/plain": [ "" ] @@ -1794,119 +391,7 @@ "outputs": [ { "data": { - "image/svg+xml": [ - "\n", - "\n", - "%3\n", - "\n", - "\n", - "ephys.AcquisitionSoftware\n", - "\n", - "\n", - "ephys.AcquisitionSoftware\n", - "\n", - "\n", - "\n", - "\n", - "ephys.EphysRecording\n", - "\n", - "\n", - "ephys.EphysRecording\n", - "\n", - "\n", - "\n", - "\n", - "ephys.AcquisitionSoftware->ephys.EphysRecording\n", - "\n", - "\n", - "\n", - "ephys.ProbeInsertion\n", - "\n", - "\n", - "ephys.ProbeInsertion\n", - "\n", - "\n", - "\n", - "\n", - "ephys.ProbeInsertion->ephys.EphysRecording\n", - "\n", - "\n", - "\n", - "probe.ElectrodeConfig\n", - "\n", - "\n", - "probe.ElectrodeConfig\n", - "\n", - "\n", - "\n", - "\n", - "probe.ElectrodeConfig->ephys.EphysRecording\n", - "\n", - "\n", - "\n", - "probe.ProbeType\n", - "\n", - "\n", - "probe.ProbeType\n", - "\n", - "\n", - "\n", - "\n", - "probe.ProbeType->probe.ElectrodeConfig\n", - "\n", - "\n", - "\n", - "probe.Probe\n", - "\n", - "\n", - "probe.Probe\n", - "\n", - "\n", - "\n", - "\n", - "probe.ProbeType->probe.Probe\n", - "\n", - "\n", - "\n", - "session.Session\n", - "\n", - "\n", - "session.Session\n", - "\n", - "\n", - "\n", - "\n", - "session.Session->ephys.ProbeInsertion\n", - "\n", - "\n", - "\n", - "probe.Probe->ephys.ProbeInsertion\n", - "\n", - "\n", - "\n", - "" - ], + "image/svg+xml": "\n\n%3\n\n\nephys.AcquisitionSoftware\n\n\nephys.AcquisitionSoftware\n\n\n\n\nephys.EphysRecording\n\n\nephys.EphysRecording\n\n\n\n\nephys.AcquisitionSoftware->ephys.EphysRecording\n\n\n\nephys.ProbeInsertion\n\n\nephys.ProbeInsertion\n\n\n\n\nephys.ProbeInsertion->ephys.EphysRecording\n\n\n\nprobe.ElectrodeConfig\n\n\nprobe.ElectrodeConfig\n\n\n\n\nprobe.ElectrodeConfig->ephys.EphysRecording\n\n\n\nprobe.ProbeType\n\n\nprobe.ProbeType\n\n\n\n\nprobe.ProbeType->probe.ElectrodeConfig\n\n\n\nprobe.Probe\n\n\nprobe.Probe\n\n\n\n\nprobe.ProbeType->probe.Probe\n\n\n\nsession.Session\n\n\nsession.Session\n\n\n\n\nsession.Session->ephys.ProbeInsertion\n\n\n\nprobe.Probe->ephys.ProbeInsertion\n\n\n\n", "text/plain": [ "" ] @@ -2016,161 +501,7 @@ "outputs": [ { "data": { - "image/svg+xml": [ - "\n", - "\n", - "%3\n", - "\n", - "\n", - "`neuro_lab`.`#skull_reference`\n", - "\n", - "`neuro_lab`.`#skull_reference`\n", - "\n", - "\n", - "lab.LabMembership\n", - "\n", - "\n", - "lab.LabMembership\n", - "\n", - "\n", - "\n", - "\n", - "lab.Location\n", - "\n", - "\n", - "lab.Location\n", - "\n", - "\n", - "\n", - "\n", - "lab.Source\n", - "\n", - "\n", - "lab.Source\n", - "\n", - "\n", - "\n", - "\n", - "lab.Protocol\n", - "\n", - "\n", - "lab.Protocol\n", - "\n", - "\n", - "\n", - "\n", - "lab.Project\n", - "\n", - "\n", - "lab.Project\n", - "\n", - "\n", - "\n", - "\n", - "lab.ProjectUser\n", - "\n", - "\n", - "lab.ProjectUser\n", - "\n", - "\n", - "\n", - "\n", - "lab.Project->lab.ProjectUser\n", - "\n", - "\n", - "\n", - "lab.Lab\n", - "\n", - "\n", - "lab.Lab\n", - "\n", - "\n", - "\n", - "\n", - "lab.Lab->lab.LabMembership\n", - "\n", - "\n", - "\n", - "lab.Lab->lab.Location\n", - "\n", - "\n", - "\n", - "lab.User\n", - "\n", - "\n", - "lab.User\n", - "\n", - "\n", - "\n", - "\n", - "lab.User->lab.LabMembership\n", - "\n", - "\n", - "\n", - "lab.User->lab.ProjectUser\n", - "\n", - "\n", - "\n", - "lab.UserRole\n", - "\n", - "\n", - "lab.UserRole\n", - "\n", - "\n", - "\n", - "\n", - "lab.UserRole->lab.LabMembership\n", - "\n", - "\n", - "\n", - "lab.ProtocolType\n", - "\n", - "\n", - "lab.ProtocolType\n", - "\n", - "\n", - "\n", - "\n", - "lab.ProtocolType->lab.Protocol\n", - "\n", - "\n", - "\n", - "" - ], + "image/svg+xml": "\n\n%3\n\n\n`neuro_lab`.`#skull_reference`\n\n`neuro_lab`.`#skull_reference`\n\n\nlab.LabMembership\n\n\nlab.LabMembership\n\n\n\n\nlab.Location\n\n\nlab.Location\n\n\n\n\nlab.Source\n\n\nlab.Source\n\n\n\n\nlab.Protocol\n\n\nlab.Protocol\n\n\n\n\nlab.Project\n\n\nlab.Project\n\n\n\n\nlab.ProjectUser\n\n\nlab.ProjectUser\n\n\n\n\nlab.Project->lab.ProjectUser\n\n\n\nlab.Lab\n\n\nlab.Lab\n\n\n\n\nlab.Lab->lab.LabMembership\n\n\n\nlab.Lab->lab.Location\n\n\n\nlab.User\n\n\nlab.User\n\n\n\n\nlab.User->lab.LabMembership\n\n\n\nlab.User->lab.ProjectUser\n\n\n\nlab.UserRole\n\n\nlab.UserRole\n\n\n\n\nlab.UserRole->lab.LabMembership\n\n\n\nlab.ProtocolType\n\n\nlab.ProtocolType\n\n\n\n\nlab.ProtocolType->lab.Protocol\n\n\n\n", "text/plain": [ "" ] @@ -2188,7 +519,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "+ [`subject`](https://github.com/datajoint/element-animal): general animal information, User, Genetic background, Death etc." + "+ [`subject`](https://github.com/datajoint/element-subject): general animal information, User, Genetic background, Death etc." ] }, { @@ -2198,246 +529,7 @@ "outputs": [ { "data": { - "image/svg+xml": [ - "\n", - "\n", - "%3\n", - "\n", - "\n", - "subject.Line\n", - "\n", - "\n", - "subject.Line\n", - "\n", - "\n", - "\n", - "\n", - "subject.Line.Allele\n", - "\n", - "\n", - "subject.Line.Allele\n", - "\n", - "\n", - "\n", - "\n", - "subject.Line->subject.Line.Allele\n", - "\n", - "\n", - "\n", - "subject.Subject.Line\n", - "\n", - "\n", - "subject.Subject.Line\n", - "\n", - "\n", - "\n", - "\n", - "subject.Line->subject.Subject.Line\n", - "\n", - "\n", - "\n", - "subject.Subject.Protocol\n", - "\n", - "\n", - "subject.Subject.Protocol\n", - "\n", - "\n", - "\n", - "\n", - "subject.SubjectCullMethod\n", - "\n", - "\n", - "subject.SubjectCullMethod\n", - "\n", - "\n", - "\n", - "\n", - "subject.Subject.Source\n", - "\n", - "\n", - "subject.Subject.Source\n", - "\n", - "\n", - "\n", - "\n", - "subject.Allele.Source\n", - "\n", - "\n", - "subject.Allele.Source\n", - "\n", - "\n", - "\n", - "\n", - "subject.Subject.Lab\n", - "\n", - "\n", - "subject.Subject.Lab\n", - "\n", - "\n", - "\n", - "\n", - "subject.SubjectDeath\n", - "\n", - "\n", - "subject.SubjectDeath\n", - "\n", - "\n", - "\n", - "\n", - "subject.Zygosity\n", - "\n", - "\n", - "subject.Zygosity\n", - "\n", - "\n", - "\n", - "\n", - "subject.Strain\n", - "\n", - "\n", - "subject.Strain\n", - "\n", - "\n", - "\n", - "\n", - "subject.Subject.Strain\n", - "\n", - "\n", - "subject.Subject.Strain\n", - "\n", - "\n", - "\n", - "\n", - "subject.Strain->subject.Subject.Strain\n", - "\n", - "\n", - "\n", - "subject.Subject.User\n", - "\n", - "\n", - "subject.Subject.User\n", - "\n", - "\n", - "\n", - "\n", - "subject.Allele\n", - "\n", - "\n", - "subject.Allele\n", - "\n", - "\n", - "\n", - "\n", - "subject.Allele->subject.Allele.Source\n", - "\n", - "\n", - "\n", - "subject.Allele->subject.Zygosity\n", - "\n", - "\n", - "\n", - "subject.Allele->subject.Line.Allele\n", - "\n", - "\n", - "\n", - "subject.Subject\n", - "\n", - "\n", - "subject.Subject\n", - "\n", - "\n", - "\n", - "\n", - "subject.Subject->subject.Subject.Protocol\n", - "\n", - "\n", - "\n", - "subject.Subject->subject.SubjectCullMethod\n", - "\n", - "\n", - "\n", - "subject.Subject->subject.Subject.Source\n", - "\n", - "\n", - "\n", - "subject.Subject->subject.Subject.Lab\n", - "\n", - "\n", - "\n", - "subject.Subject->subject.SubjectDeath\n", - "\n", - "\n", - "\n", - "subject.Subject->subject.Zygosity\n", - "\n", - "\n", - "\n", - "subject.Subject->subject.Subject.User\n", - "\n", - "\n", - "\n", - "subject.Subject->subject.Subject.Strain\n", - "\n", - "\n", - "\n", - "subject.Subject->subject.Subject.Line\n", - "\n", - "\n", - "\n", - "" - ], + "image/svg+xml": "\n\n%3\n\n\nsubject.Line\n\n\nsubject.Line\n\n\n\n\nsubject.Line.Allele\n\n\nsubject.Line.Allele\n\n\n\n\nsubject.Line->subject.Line.Allele\n\n\n\nsubject.Subject.Line\n\n\nsubject.Subject.Line\n\n\n\n\nsubject.Line->subject.Subject.Line\n\n\n\nsubject.Subject.Protocol\n\n\nsubject.Subject.Protocol\n\n\n\n\nsubject.SubjectCullMethod\n\n\nsubject.SubjectCullMethod\n\n\n\n\nsubject.Subject.Source\n\n\nsubject.Subject.Source\n\n\n\n\nsubject.Allele.Source\n\n\nsubject.Allele.Source\n\n\n\n\nsubject.Subject.Lab\n\n\nsubject.Subject.Lab\n\n\n\n\nsubject.SubjectDeath\n\n\nsubject.SubjectDeath\n\n\n\n\nsubject.Zygosity\n\n\nsubject.Zygosity\n\n\n\n\nsubject.Strain\n\n\nsubject.Strain\n\n\n\n\nsubject.Subject.Strain\n\n\nsubject.Subject.Strain\n\n\n\n\nsubject.Strain->subject.Subject.Strain\n\n\n\nsubject.Subject.User\n\n\nsubject.Subject.User\n\n\n\n\nsubject.Allele\n\n\nsubject.Allele\n\n\n\n\nsubject.Allele->subject.Allele.Source\n\n\n\nsubject.Allele->subject.Zygosity\n\n\n\nsubject.Allele->subject.Line.Allele\n\n\n\nsubject.Subject\n\n\nsubject.Subject\n\n\n\n\nsubject.Subject->subject.Subject.Protocol\n\n\n\nsubject.Subject->subject.SubjectCullMethod\n\n\n\nsubject.Subject->subject.Subject.Source\n\n\n\nsubject.Subject->subject.Subject.Lab\n\n\n\nsubject.Subject->subject.SubjectDeath\n\n\n\nsubject.Subject->subject.Zygosity\n\n\n\nsubject.Subject->subject.Subject.User\n\n\n\nsubject.Subject->subject.Subject.Strain\n\n\n\nsubject.Subject->subject.Subject.Line\n\n\n\n", "text/plain": [ "" ] @@ -2490,53 +582,7 @@ "outputs": [ { "data": { - "image/svg+xml": [ - "\n", - "\n", - "%3\n", - "\n", - "\n", - "session.SessionDirectory\n", - "\n", - "\n", - "session.SessionDirectory\n", - "\n", - "\n", - "\n", - "\n", - "session.ProjectSession\n", - "\n", - "\n", - "session.ProjectSession\n", - "\n", - "\n", - "\n", - "\n", - "session.Session\n", - "\n", - "\n", - "session.Session\n", - "\n", - "\n", - "\n", - "\n", - "session.Session->session.SessionDirectory\n", - "\n", - "\n", - "\n", - "session.Session->session.ProjectSession\n", - "\n", - "\n", - "\n", - "" - ], + "image/svg+xml": "\n\n%3\n\n\nsession.SessionDirectory\n\n\nsession.SessionDirectory\n\n\n\n\nsession.ProjectSession\n\n\nsession.ProjectSession\n\n\n\n\nsession.Session\n\n\nsession.Session\n\n\n\n\nsession.Session->session.SessionDirectory\n\n\n\nsession.Session->session.ProjectSession\n\n\n\n", "text/plain": [ "" ] @@ -2587,414 +633,7 @@ "outputs": [ { "data": { - "image/svg+xml": [ - "\n", - "\n", - "%3\n", - "\n", - "\n", - "ephys.AcquisitionSoftware\n", - "\n", - "\n", - "ephys.AcquisitionSoftware\n", - "\n", - "\n", - "\n", - "\n", - "ephys.EphysRecording\n", - "\n", - "\n", - "ephys.EphysRecording\n", - "\n", - "\n", - "\n", - "\n", - "ephys.AcquisitionSoftware->ephys.EphysRecording\n", - "\n", - "\n", - "\n", - "ephys.ClusteringParamSet\n", - "\n", - "\n", - "ephys.ClusteringParamSet\n", - "\n", - "\n", - "\n", - "\n", - "ephys.ClusteringTask\n", - "\n", - "\n", - "ephys.ClusteringTask\n", - "\n", - "\n", - "\n", - "\n", - "ephys.ClusteringParamSet->ephys.ClusteringTask\n", - "\n", - "\n", - "\n", - "ephys.Curation\n", - "\n", - "\n", - "ephys.Curation\n", - "\n", - "\n", - "\n", - "\n", - "ephys.CuratedClustering\n", - "\n", - "\n", - "ephys.CuratedClustering\n", - "\n", - "\n", - "\n", - "\n", - "ephys.Curation->ephys.CuratedClustering\n", - "\n", - "\n", - "\n", - "ephys.ClusteringMethod\n", - "\n", - "\n", - "ephys.ClusteringMethod\n", - "\n", - "\n", - "\n", - "\n", - "ephys.ClusteringMethod->ephys.ClusteringParamSet\n", - "\n", - "\n", - "\n", - "ephys.CuratedClustering.Unit\n", - "\n", - "\n", - "ephys.CuratedClustering.Unit\n", - "\n", - "\n", - "\n", - "\n", - "ephys.WaveformSet.Waveform\n", - "\n", - "\n", - "ephys.WaveformSet.Waveform\n", - "\n", - "\n", - "\n", - "\n", - "ephys.CuratedClustering.Unit->ephys.WaveformSet.Waveform\n", - "\n", - "\n", - "\n", - "ephys.WaveformSet.PeakWaveform\n", - "\n", - "\n", - "ephys.WaveformSet.PeakWaveform\n", - "\n", - "\n", - "\n", - "\n", - "ephys.CuratedClustering.Unit->ephys.WaveformSet.PeakWaveform\n", - "\n", - "\n", - "\n", - "ephys.LFP.Electrode\n", - "\n", - "\n", - "ephys.LFP.Electrode\n", - "\n", - "\n", - "\n", - "\n", - "ephys.WaveformSet\n", - "\n", - "\n", - "ephys.WaveformSet\n", - "\n", - "\n", - "\n", - "\n", - "ephys.WaveformSet->ephys.WaveformSet.Waveform\n", - "\n", - "\n", - "\n", - "ephys.WaveformSet->ephys.WaveformSet.PeakWaveform\n", - "\n", - "\n", - "\n", - "probe.Probe\n", - "\n", - "\n", - "probe.Probe\n", - "\n", - "\n", - "\n", - "\n", - "ephys.ProbeInsertion\n", - "\n", - "\n", - "ephys.ProbeInsertion\n", - "\n", - "\n", - "\n", - "\n", - "probe.Probe->ephys.ProbeInsertion\n", - "\n", - "\n", - "\n", - "ephys.EphysRecording.EphysFile\n", - "\n", - "\n", - "ephys.EphysRecording.EphysFile\n", - "\n", - "\n", - "\n", - "\n", - "ephys.EphysRecording->ephys.EphysRecording.EphysFile\n", - "\n", - "\n", - "\n", - "ephys.LFP\n", - "\n", - "\n", - "ephys.LFP\n", - "\n", - "\n", - "\n", - "\n", - "ephys.EphysRecording->ephys.LFP\n", - "\n", - "\n", - "\n", - "ephys.EphysRecording->ephys.ClusteringTask\n", - "\n", - "\n", - "\n", - "ephys.ClusterQualityLabel\n", - "\n", - "\n", - "ephys.ClusterQualityLabel\n", - "\n", - "\n", - "\n", - "\n", - "ephys.ClusterQualityLabel->ephys.CuratedClustering.Unit\n", - "\n", - "\n", - "\n", - "probe.ElectrodeConfig\n", - "\n", - "\n", - "probe.ElectrodeConfig\n", - "\n", - "\n", - "\n", - "\n", - "probe.ElectrodeConfig->ephys.EphysRecording\n", - "\n", - "\n", - "\n", - "probe.ElectrodeConfig.Electrode\n", - "\n", - "\n", - "probe.ElectrodeConfig.Electrode\n", - "\n", - "\n", - "\n", - "\n", - "probe.ElectrodeConfig->probe.ElectrodeConfig.Electrode\n", - "\n", - "\n", - "\n", - "ephys.InsertionLocation\n", - "\n", - "\n", - "ephys.InsertionLocation\n", - "\n", - "\n", - "\n", - "\n", - "ephys.LFP->ephys.LFP.Electrode\n", - "\n", - "\n", - "\n", - "probe.ElectrodeConfig.Electrode->ephys.CuratedClustering.Unit\n", - "\n", - "\n", - "\n", - "probe.ElectrodeConfig.Electrode->ephys.WaveformSet.Waveform\n", - "\n", - "\n", - "\n", - "probe.ElectrodeConfig.Electrode->ephys.LFP.Electrode\n", - "\n", - "\n", - "\n", - "probe.ProbeType\n", - "\n", - "\n", - "probe.ProbeType\n", - "\n", - "\n", - "\n", - "\n", - "probe.ProbeType->probe.Probe\n", - "\n", - "\n", - "\n", - "probe.ProbeType->probe.ElectrodeConfig\n", - "\n", - "\n", - "\n", - "probe.ProbeType.Electrode\n", - "\n", - "\n", - "probe.ProbeType.Electrode\n", - "\n", - "\n", - "\n", - "\n", - "probe.ProbeType->probe.ProbeType.Electrode\n", - "\n", - "\n", - "\n", - "ephys.ProbeInsertion->ephys.EphysRecording\n", - "\n", - "\n", - "\n", - "ephys.ProbeInsertion->ephys.InsertionLocation\n", - "\n", - "\n", - "\n", - "probe.ProbeType.Electrode->probe.ElectrodeConfig.Electrode\n", - "\n", - "\n", - "\n", - "ephys.Clustering\n", - "\n", - "\n", - "ephys.Clustering\n", - "\n", - "\n", - "\n", - "\n", - "ephys.ClusteringTask->ephys.Clustering\n", - "\n", - "\n", - "\n", - "ephys.CuratedClustering->ephys.CuratedClustering.Unit\n", - "\n", - "\n", - "\n", - "ephys.CuratedClustering->ephys.WaveformSet\n", - "\n", - "\n", - "\n", - "ephys.Clustering->ephys.Curation\n", - "\n", - "\n", - "\n", - "" - ], + "image/svg+xml": "\n\n%3\n\n\nephys.AcquisitionSoftware\n\n\nephys.AcquisitionSoftware\n\n\n\n\nephys.EphysRecording\n\n\nephys.EphysRecording\n\n\n\n\nephys.AcquisitionSoftware->ephys.EphysRecording\n\n\n\nephys.ClusteringParamSet\n\n\nephys.ClusteringParamSet\n\n\n\n\nephys.ClusteringTask\n\n\nephys.ClusteringTask\n\n\n\n\nephys.ClusteringParamSet->ephys.ClusteringTask\n\n\n\nephys.Curation\n\n\nephys.Curation\n\n\n\n\nephys.CuratedClustering\n\n\nephys.CuratedClustering\n\n\n\n\nephys.Curation->ephys.CuratedClustering\n\n\n\nephys.ClusteringMethod\n\n\nephys.ClusteringMethod\n\n\n\n\nephys.ClusteringMethod->ephys.ClusteringParamSet\n\n\n\nephys.CuratedClustering.Unit\n\n\nephys.CuratedClustering.Unit\n\n\n\n\nephys.WaveformSet.Waveform\n\n\nephys.WaveformSet.Waveform\n\n\n\n\nephys.CuratedClustering.Unit->ephys.WaveformSet.Waveform\n\n\n\nephys.WaveformSet.PeakWaveform\n\n\nephys.WaveformSet.PeakWaveform\n\n\n\n\nephys.CuratedClustering.Unit->ephys.WaveformSet.PeakWaveform\n\n\n\nephys.LFP.Electrode\n\n\nephys.LFP.Electrode\n\n\n\n\nephys.WaveformSet\n\n\nephys.WaveformSet\n\n\n\n\nephys.WaveformSet->ephys.WaveformSet.Waveform\n\n\n\nephys.WaveformSet->ephys.WaveformSet.PeakWaveform\n\n\n\nprobe.Probe\n\n\nprobe.Probe\n\n\n\n\nephys.ProbeInsertion\n\n\nephys.ProbeInsertion\n\n\n\n\nprobe.Probe->ephys.ProbeInsertion\n\n\n\nephys.EphysRecording.EphysFile\n\n\nephys.EphysRecording.EphysFile\n\n\n\n\nephys.EphysRecording->ephys.EphysRecording.EphysFile\n\n\n\nephys.LFP\n\n\nephys.LFP\n\n\n\n\nephys.EphysRecording->ephys.LFP\n\n\n\nephys.EphysRecording->ephys.ClusteringTask\n\n\n\nephys.ClusterQualityLabel\n\n\nephys.ClusterQualityLabel\n\n\n\n\nephys.ClusterQualityLabel->ephys.CuratedClustering.Unit\n\n\n\nprobe.ElectrodeConfig\n\n\nprobe.ElectrodeConfig\n\n\n\n\nprobe.ElectrodeConfig->ephys.EphysRecording\n\n\n\nprobe.ElectrodeConfig.Electrode\n\n\nprobe.ElectrodeConfig.Electrode\n\n\n\n\nprobe.ElectrodeConfig->probe.ElectrodeConfig.Electrode\n\n\n\nephys.InsertionLocation\n\n\nephys.InsertionLocation\n\n\n\n\nephys.LFP->ephys.LFP.Electrode\n\n\n\nprobe.ElectrodeConfig.Electrode->ephys.CuratedClustering.Unit\n\n\n\nprobe.ElectrodeConfig.Electrode->ephys.WaveformSet.Waveform\n\n\n\nprobe.ElectrodeConfig.Electrode->ephys.LFP.Electrode\n\n\n\nprobe.ProbeType\n\n\nprobe.ProbeType\n\n\n\n\nprobe.ProbeType->probe.Probe\n\n\n\nprobe.ProbeType->probe.ElectrodeConfig\n\n\n\nprobe.ProbeType.Electrode\n\n\nprobe.ProbeType.Electrode\n\n\n\n\nprobe.ProbeType->probe.ProbeType.Electrode\n\n\n\nephys.ProbeInsertion->ephys.EphysRecording\n\n\n\nephys.ProbeInsertion->ephys.InsertionLocation\n\n\n\nprobe.ProbeType.Electrode->probe.ElectrodeConfig.Electrode\n\n\n\nephys.Clustering\n\n\nephys.Clustering\n\n\n\n\nephys.ClusteringTask->ephys.Clustering\n\n\n\nephys.CuratedClustering->ephys.CuratedClustering.Unit\n\n\n\nephys.CuratedClustering->ephys.WaveformSet\n\n\n\nephys.Clustering->ephys.Curation\n\n\n\n", "text/plain": [ "" ] diff --git a/notebooks/05-explore.ipynb b/notebooks/05-explore.ipynb index dc3d8e51..8718bd74 100644 --- a/notebooks/05-explore.ipynb +++ b/notebooks/05-explore.ipynb @@ -52,7 +52,7 @@ "\n", "This workflow is assembled from 4 DataJoint elements:\n", "+ [element-lab](https://github.com/datajoint/element-lab)\n", - "+ [element-animal](https://github.com/datajoint/element-animal)\n", + "+ [element-subject](https://github.com/datajoint/element-subject)\n", "+ [element-session](https://github.com/datajoint/element-session)\n", "+ [element-array-ephys](https://github.com/datajoint/element-array-ephys)\n", "\n", @@ -68,457 +68,7 @@ "outputs": [ { "data": { - "image/svg+xml": [ - "\n", - "\n", - "%3\n", - "\n", - "\n", - "`u24_ephys_lab`.`#skull_reference`\n", - "\n", - "`u24_ephys_lab`.`#skull_reference`\n", - "\n", - "\n", - "ephys.InsertionLocation\n", - "\n", - "\n", - "ephys.InsertionLocation\n", - "\n", - "\n", - "\n", - "\n", - "`u24_ephys_lab`.`#skull_reference`->ephys.InsertionLocation\n", - "\n", - "\n", - "\n", - "ephys.AcquisitionSoftware\n", - "\n", - "\n", - "ephys.AcquisitionSoftware\n", - "\n", - "\n", - "\n", - "\n", - "ephys.EphysRecording\n", - "\n", - "\n", - "ephys.EphysRecording\n", - "\n", - "\n", - "\n", - "\n", - "ephys.AcquisitionSoftware->ephys.EphysRecording\n", - "\n", - "\n", - "\n", - "ephys.ClusterQualityLabel\n", - "\n", - "\n", - "ephys.ClusterQualityLabel\n", - "\n", - "\n", - "\n", - "\n", - "ephys.CuratedClustering.Unit\n", - "\n", - "\n", - "ephys.CuratedClustering.Unit\n", - "\n", - "\n", - "\n", - "\n", - "ephys.ClusterQualityLabel->ephys.CuratedClustering.Unit\n", - "\n", - "\n", - "\n", - "ephys.ClusteringMethod\n", - "\n", - "\n", - "ephys.ClusteringMethod\n", - "\n", - "\n", - "\n", - "\n", - "ephys.ClusteringParamSet\n", - "\n", - "\n", - "ephys.ClusteringParamSet\n", - "\n", - "\n", - "\n", - "\n", - "ephys.ClusteringMethod->ephys.ClusteringParamSet\n", - "\n", - "\n", - "\n", - "ephys.ClusteringTask\n", - "\n", - "\n", - "ephys.ClusteringTask\n", - "\n", - "\n", - "\n", - "\n", - "ephys.ClusteringParamSet->ephys.ClusteringTask\n", - "\n", - "\n", - "\n", - "ephys.Clustering\n", - "\n", - "\n", - "ephys.Clustering\n", - "\n", - "\n", - "\n", - "\n", - "ephys.Curation\n", - "\n", - "\n", - "ephys.Curation\n", - "\n", - "\n", - "\n", - "\n", - "ephys.Clustering->ephys.Curation\n", - "\n", - "\n", - "\n", - "ephys.CuratedClustering\n", - "\n", - "\n", - "ephys.CuratedClustering\n", - "\n", - "\n", - "\n", - "\n", - "ephys.CuratedClustering->ephys.CuratedClustering.Unit\n", - "\n", - "\n", - "\n", - "ephys.WaveformSet\n", - "\n", - "\n", - "ephys.WaveformSet\n", - "\n", - "\n", - "\n", - "\n", - "ephys.CuratedClustering->ephys.WaveformSet\n", - "\n", - "\n", - "\n", - "ephys.WaveformSet.PeakWaveform\n", - "\n", - "\n", - "ephys.WaveformSet.PeakWaveform\n", - "\n", - "\n", - "\n", - "\n", - "ephys.CuratedClustering.Unit->ephys.WaveformSet.PeakWaveform\n", - "\n", - "\n", - "\n", - "ephys.WaveformSet.Waveform\n", - "\n", - "\n", - "ephys.WaveformSet.Waveform\n", - "\n", - "\n", - "\n", - "\n", - "ephys.CuratedClustering.Unit->ephys.WaveformSet.Waveform\n", - "\n", - "\n", - "\n", - "ephys.EphysRecording.EphysFile\n", - "\n", - "\n", - "ephys.EphysRecording.EphysFile\n", - "\n", - "\n", - "\n", - "\n", - "ephys.EphysRecording->ephys.EphysRecording.EphysFile\n", - "\n", - "\n", - "\n", - "ephys.LFP\n", - "\n", - "\n", - "ephys.LFP\n", - "\n", - "\n", - "\n", - "\n", - "ephys.EphysRecording->ephys.LFP\n", - "\n", - "\n", - "\n", - "ephys.EphysRecording->ephys.ClusteringTask\n", - "\n", - "\n", - "\n", - "ephys.LFP.Electrode\n", - "\n", - "\n", - "ephys.LFP.Electrode\n", - "\n", - "\n", - "\n", - "\n", - "ephys.LFP->ephys.LFP.Electrode\n", - "\n", - "\n", - "\n", - "ephys.WaveformSet->ephys.WaveformSet.PeakWaveform\n", - "\n", - "\n", - "\n", - "ephys.WaveformSet->ephys.WaveformSet.Waveform\n", - "\n", - "\n", - "\n", - "ephys.ClusteringTask->ephys.Clustering\n", - "\n", - "\n", - "\n", - "ephys.Curation->ephys.CuratedClustering\n", - "\n", - "\n", - "\n", - "ephys.ProbeInsertion\n", - "\n", - "\n", - "ephys.ProbeInsertion\n", - "\n", - "\n", - "\n", - "\n", - "ephys.ProbeInsertion->ephys.EphysRecording\n", - "\n", - "\n", - "\n", - "ephys.ProbeInsertion->ephys.InsertionLocation\n", - "\n", - "\n", - "\n", - "lab.Project\n", - "\n", - "\n", - "lab.Project\n", - "\n", - "\n", - "\n", - "\n", - "session.ProjectSession\n", - "\n", - "\n", - "session.ProjectSession\n", - "\n", - "\n", - "\n", - "\n", - "lab.Project->session.ProjectSession\n", - "\n", - "\n", - "\n", - "ephys.probe.ElectrodeConfig\n", - "\n", - "\n", - "ephys.probe.ElectrodeConfig\n", - "\n", - "\n", - "\n", - "\n", - "ephys.probe.ElectrodeConfig->ephys.EphysRecording\n", - "\n", - "\n", - "\n", - "ephys.probe.ElectrodeConfig.Electrode\n", - "\n", - "\n", - "ephys.probe.ElectrodeConfig.Electrode\n", - "\n", - "\n", - "\n", - "\n", - "ephys.probe.ElectrodeConfig->ephys.probe.ElectrodeConfig.Electrode\n", - "\n", - "\n", - "\n", - "ephys.probe.ElectrodeConfig.Electrode->ephys.CuratedClustering.Unit\n", - "\n", - "\n", - "\n", - "ephys.probe.ElectrodeConfig.Electrode->ephys.LFP.Electrode\n", - "\n", - "\n", - "\n", - "ephys.probe.ElectrodeConfig.Electrode->ephys.WaveformSet.Waveform\n", - "\n", - "\n", - "\n", - "ephys.probe.Probe\n", - "\n", - "\n", - "ephys.probe.Probe\n", - "\n", - "\n", - "\n", - "\n", - "ephys.probe.Probe->ephys.ProbeInsertion\n", - "\n", - "\n", - "\n", - "session.Session\n", - "\n", - "\n", - "session.Session\n", - "\n", - "\n", - "\n", - "\n", - "session.Session->ephys.ProbeInsertion\n", - "\n", - "\n", - "\n", - "session.Session->session.ProjectSession\n", - "\n", - "\n", - "\n", - "session.SessionDirectory\n", - "\n", - "\n", - "session.SessionDirectory\n", - "\n", - "\n", - "\n", - "\n", - "session.Session->session.SessionDirectory\n", - "\n", - "\n", - "\n", - "subject.Subject\n", - "\n", - "\n", - "subject.Subject\n", - "\n", - "\n", - "\n", - "\n", - "subject.Subject->session.Session\n", - "\n", - "\n", - "\n", - "" - ], + "image/svg+xml": "\n\n%3\n\n\n`u24_ephys_lab`.`#skull_reference`\n\n`u24_ephys_lab`.`#skull_reference`\n\n\nephys.InsertionLocation\n\n\nephys.InsertionLocation\n\n\n\n\n`u24_ephys_lab`.`#skull_reference`->ephys.InsertionLocation\n\n\n\nephys.AcquisitionSoftware\n\n\nephys.AcquisitionSoftware\n\n\n\n\nephys.EphysRecording\n\n\nephys.EphysRecording\n\n\n\n\nephys.AcquisitionSoftware->ephys.EphysRecording\n\n\n\nephys.ClusterQualityLabel\n\n\nephys.ClusterQualityLabel\n\n\n\n\nephys.CuratedClustering.Unit\n\n\nephys.CuratedClustering.Unit\n\n\n\n\nephys.ClusterQualityLabel->ephys.CuratedClustering.Unit\n\n\n\nephys.ClusteringMethod\n\n\nephys.ClusteringMethod\n\n\n\n\nephys.ClusteringParamSet\n\n\nephys.ClusteringParamSet\n\n\n\n\nephys.ClusteringMethod->ephys.ClusteringParamSet\n\n\n\nephys.ClusteringTask\n\n\nephys.ClusteringTask\n\n\n\n\nephys.ClusteringParamSet->ephys.ClusteringTask\n\n\n\nephys.Clustering\n\n\nephys.Clustering\n\n\n\n\nephys.Curation\n\n\nephys.Curation\n\n\n\n\nephys.Clustering->ephys.Curation\n\n\n\nephys.CuratedClustering\n\n\nephys.CuratedClustering\n\n\n\n\nephys.CuratedClustering->ephys.CuratedClustering.Unit\n\n\n\nephys.WaveformSet\n\n\nephys.WaveformSet\n\n\n\n\nephys.CuratedClustering->ephys.WaveformSet\n\n\n\nephys.WaveformSet.PeakWaveform\n\n\nephys.WaveformSet.PeakWaveform\n\n\n\n\nephys.CuratedClustering.Unit->ephys.WaveformSet.PeakWaveform\n\n\n\nephys.WaveformSet.Waveform\n\n\nephys.WaveformSet.Waveform\n\n\n\n\nephys.CuratedClustering.Unit->ephys.WaveformSet.Waveform\n\n\n\nephys.EphysRecording.EphysFile\n\n\nephys.EphysRecording.EphysFile\n\n\n\n\nephys.EphysRecording->ephys.EphysRecording.EphysFile\n\n\n\nephys.LFP\n\n\nephys.LFP\n\n\n\n\nephys.EphysRecording->ephys.LFP\n\n\n\nephys.EphysRecording->ephys.ClusteringTask\n\n\n\nephys.LFP.Electrode\n\n\nephys.LFP.Electrode\n\n\n\n\nephys.LFP->ephys.LFP.Electrode\n\n\n\nephys.WaveformSet->ephys.WaveformSet.PeakWaveform\n\n\n\nephys.WaveformSet->ephys.WaveformSet.Waveform\n\n\n\nephys.ClusteringTask->ephys.Clustering\n\n\n\nephys.Curation->ephys.CuratedClustering\n\n\n\nephys.ProbeInsertion\n\n\nephys.ProbeInsertion\n\n\n\n\nephys.ProbeInsertion->ephys.EphysRecording\n\n\n\nephys.ProbeInsertion->ephys.InsertionLocation\n\n\n\nlab.Project\n\n\nlab.Project\n\n\n\n\nsession.ProjectSession\n\n\nsession.ProjectSession\n\n\n\n\nlab.Project->session.ProjectSession\n\n\n\nephys.probe.ElectrodeConfig\n\n\nephys.probe.ElectrodeConfig\n\n\n\n\nephys.probe.ElectrodeConfig->ephys.EphysRecording\n\n\n\nephys.probe.ElectrodeConfig.Electrode\n\n\nephys.probe.ElectrodeConfig.Electrode\n\n\n\n\nephys.probe.ElectrodeConfig->ephys.probe.ElectrodeConfig.Electrode\n\n\n\nephys.probe.ElectrodeConfig.Electrode->ephys.CuratedClustering.Unit\n\n\n\nephys.probe.ElectrodeConfig.Electrode->ephys.LFP.Electrode\n\n\n\nephys.probe.ElectrodeConfig.Electrode->ephys.WaveformSet.Waveform\n\n\n\nephys.probe.Probe\n\n\nephys.probe.Probe\n\n\n\n\nephys.probe.Probe->ephys.ProbeInsertion\n\n\n\nsession.Session\n\n\nsession.Session\n\n\n\n\nsession.Session->ephys.ProbeInsertion\n\n\n\nsession.Session->session.ProjectSession\n\n\n\nsession.SessionDirectory\n\n\nsession.SessionDirectory\n\n\n\n\nsession.Session->session.SessionDirectory\n\n\n\nsubject.Subject\n\n\nsubject.Subject\n\n\n\n\nsubject.Subject->session.Session\n\n\n\n", "text/plain": [ "" ] @@ -1976,7 +1526,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "
" ] @@ -2228,7 +1778,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "
" ] diff --git a/requirements.txt b/requirements.txt index 67d990fe..b397dea6 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,7 @@ datajoint>=0.13.0 element-array-ephys element-lab -element-animal +element-subject element-session element-interface @ git+https://github.com/datajoint/element-interface.git ipykernel diff --git a/requirements_test.txt b/requirements_test.txt index e76c2da5..64678a97 100644 --- a/requirements_test.txt +++ b/requirements_test.txt @@ -1,3 +1,4 @@ pytest pytest-cov +element-interface @ git+https://github.com/datajoint/element-interface.git djarchive-client @ git+https://github.com/datajoint/djarchive-client.git \ No newline at end of file diff --git a/setup.py b/setup.py index 8234bb8b..4ef62236 100644 --- a/setup.py +++ b/setup.py @@ -9,7 +9,7 @@ Build a full ephys pipeline using the DataJoint elements + [element-lab](https://github.com/datajoint/element-lab) -+ [element-animal](https://github.com/datajoint/element-animal) ++ [element-subject](https://github.com/datajoint/element-subject) + [element-session](https://github.com/datajoint/element-session) + [element-array-ephys](https://github.com/datajoint/element-array-ephys) """ diff --git a/workflow_array_ephys/pipeline.py b/workflow_array_ephys/pipeline.py index f69774fd..2f926b57 100644 --- a/workflow_array_ephys/pipeline.py +++ b/workflow_array_ephys/pipeline.py @@ -1,10 +1,10 @@ import datajoint as dj -from element_animal import subject +from element_subject import subject from element_lab import lab from element_session import session from element_array_ephys import probe, ephys -from element_animal.subject import Subject +from element_subject.subject import Subject from element_lab.lab import Source, Lab, Protocol, User, Project from element_session.session import Session From 45c99e7bc6587a0a6ef2cb7ddf2f62a97b9e85a9 Mon Sep 17 00:00:00 2001 From: Kabilar Gunalan Date: Tue, 11 Jan 2022 23:16:55 -0600 Subject: [PATCH 11/45] Version lock requirements --- requirements.txt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/requirements.txt b/requirements.txt index b397dea6..51738e0c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,7 @@ datajoint>=0.13.0 -element-array-ephys -element-lab -element-subject -element-session +element-array-ephys==0.1.0b0 +element-lab==0.1.0b0 +element-subject==0.1.0b1 +element-session==0.1.0b0 element-interface @ git+https://github.com/datajoint/element-interface.git -ipykernel +ipykernel==6.0.1 From f1dd3b63fd96bf142ff7ed4de24b7834c7ee36ba Mon Sep 17 00:00:00 2001 From: Kabilar Gunalan Date: Fri, 14 Jan 2022 15:54:17 -0600 Subject: [PATCH 12/45] Revert package rename --- README.md | 10 +++++----- notebooks/02-workflow-structure-optional.ipynb | 2 +- notebooks/05-explore.ipynb | 2 +- requirements.txt | 2 +- setup.py | 2 +- workflow_array_ephys/pipeline.py | 4 ++-- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index ba1237af..26200529 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ with MATLAB- or python-based `Kilosort`. A complete electrophysiology workflow can be built using the DataJoint Elements. + [element-lab](https://github.com/datajoint/element-lab) -+ [element-subject](https://github.com/datajoint/element-subject) ++ [element-animal](https://github.com/datajoint/element-animal) + [element-session](https://github.com/datajoint/element-session) + [element-array-ephys](https://github.com/datajoint/element-array-ephys) @@ -21,7 +21,7 @@ convention, and directory lookup methods (see ## Workflow architecture The electrophysiology workflow presented here uses components from 4 DataJoint -Elements (`element-lab`, `element-subject`, `element-session`, +Elements (`element-lab`, `element-animal`, `element-session`, `element-array-ephys`) assembled together to form a fully functional workflow. ### element-lab @@ -29,10 +29,10 @@ Elements (`element-lab`, `element-subject`, `element-session`, ![element-lab]( https://github.com/datajoint/element-lab/raw/main/images/element_lab_diagram.svg) -### element-subject +### element-animal -![element-subject]( -https://github.com/datajoint/element-subject/blob/main/images/subject_diagram.svg) +![element-animal]( +https://github.com/datajoint/element-animal/blob/main/images/subject_diagram.svg) ### assembled with element-array-ephys diff --git a/notebooks/02-workflow-structure-optional.ipynb b/notebooks/02-workflow-structure-optional.ipynb index 35d9dc1a..34fa7f1a 100644 --- a/notebooks/02-workflow-structure-optional.ipynb +++ b/notebooks/02-workflow-structure-optional.ipynb @@ -519,7 +519,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "+ [`subject`](https://github.com/datajoint/element-subject): general animal information, User, Genetic background, Death etc." + "+ [`animal`](https://github.com/datajoint/element-animal): general animal information, User, Genetic background, Death etc." ] }, { diff --git a/notebooks/05-explore.ipynb b/notebooks/05-explore.ipynb index 8718bd74..b897b778 100644 --- a/notebooks/05-explore.ipynb +++ b/notebooks/05-explore.ipynb @@ -52,7 +52,7 @@ "\n", "This workflow is assembled from 4 DataJoint elements:\n", "+ [element-lab](https://github.com/datajoint/element-lab)\n", - "+ [element-subject](https://github.com/datajoint/element-subject)\n", + "+ [element-animal](https://github.com/datajoint/element-animal)\n", "+ [element-session](https://github.com/datajoint/element-session)\n", "+ [element-array-ephys](https://github.com/datajoint/element-array-ephys)\n", "\n", diff --git a/requirements.txt b/requirements.txt index 51738e0c..a82eb8a2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,7 @@ datajoint>=0.13.0 element-array-ephys==0.1.0b0 element-lab==0.1.0b0 -element-subject==0.1.0b1 +element-animal==0.1.0b0 element-session==0.1.0b0 element-interface @ git+https://github.com/datajoint/element-interface.git ipykernel==6.0.1 diff --git a/setup.py b/setup.py index 4ef62236..8234bb8b 100644 --- a/setup.py +++ b/setup.py @@ -9,7 +9,7 @@ Build a full ephys pipeline using the DataJoint elements + [element-lab](https://github.com/datajoint/element-lab) -+ [element-subject](https://github.com/datajoint/element-subject) ++ [element-animal](https://github.com/datajoint/element-animal) + [element-session](https://github.com/datajoint/element-session) + [element-array-ephys](https://github.com/datajoint/element-array-ephys) """ diff --git a/workflow_array_ephys/pipeline.py b/workflow_array_ephys/pipeline.py index 2f926b57..f69774fd 100644 --- a/workflow_array_ephys/pipeline.py +++ b/workflow_array_ephys/pipeline.py @@ -1,10 +1,10 @@ import datajoint as dj -from element_subject import subject +from element_animal import subject from element_lab import lab from element_session import session from element_array_ephys import probe, ephys -from element_subject.subject import Subject +from element_animal.subject import Subject from element_lab.lab import Source, Lab, Protocol, User, Project from element_session.session import Session From 30ccd4454b96bed99107cf13ac928ddc382279e0 Mon Sep 17 00:00:00 2001 From: Kabilar Gunalan Date: Fri, 14 Jan 2022 16:26:40 -0600 Subject: [PATCH 13/45] Remove duplicate dependency --- requirements_test.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/requirements_test.txt b/requirements_test.txt index 64678a97..e76c2da5 100644 --- a/requirements_test.txt +++ b/requirements_test.txt @@ -1,4 +1,3 @@ pytest pytest-cov -element-interface @ git+https://github.com/datajoint/element-interface.git djarchive-client @ git+https://github.com/datajoint/djarchive-client.git \ No newline at end of file From 676689a9e18dbb6f8ffe184941f5ac12a677794d Mon Sep 17 00:00:00 2001 From: Kabilar Gunalan Date: Fri, 14 Jan 2022 16:19:03 -0600 Subject: [PATCH 14/45] Update README.md Co-authored-by: Dimitri Yatsenko --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 26200529..4c841679 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # DataJoint Workflow - Array Electrophysiology -Workflow for extracellular array electrophysiology data acquired with a -Neuropixels probe using the `SpikeGLX` or `OpenEphys` software and processed -with MATLAB- or python-based `Kilosort`. +Workflow for extracellular array electrophysiology data acquired with a polytrode probe (e.g. +Neuropixels, Neuralynx) using the `SpikeGLX` or `OpenEphys` acquisition software and processed +with MATLAB- or python-based `Kilosort` spike sorting software. A complete electrophysiology workflow can be built using the DataJoint Elements. + [element-lab](https://github.com/datajoint/element-lab) From acded7067a129c79f210ff20d67622e9dbff4981 Mon Sep 17 00:00:00 2001 From: Kabilar Gunalan Date: Mon, 17 Jan 2022 12:32:34 -0600 Subject: [PATCH 15/45] Update Dockerfile, new base image --- Dockerfile | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 889f632d..0f1b5d1a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,10 @@ -FROM datajoint/djlab:py3.7-debian +FROM datajoint/djlab:py3.8-debian -RUN mkdir /main/workflow-array-ephys +USER root +RUN apt-get update -y +RUN apt-get install git -y +USER anaconda WORKDIR /main/workflow-array-ephys USER root From df9e5f7c8ed5fc84954d2f96d6558c3fa7db3006 Mon Sep 17 00:00:00 2001 From: Kabilar Gunalan Date: Mon, 17 Jan 2022 15:55:09 -0600 Subject: [PATCH 16/45] Update Docker image tag to match package version --- docker-compose-test.yaml | 2 +- workflow_array_ephys/version.py | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/docker-compose-test.yaml b/docker-compose-test.yaml index 4204e48f..5c537d0d 100644 --- a/docker-compose-test.yaml +++ b/docker-compose-test.yaml @@ -12,7 +12,7 @@ services: <<: *net build: context: . - image: workflow_array_ephys:v0.0.0 + image: workflow_array_ephys:0.1.0a2 environment: - DJ_HOST=db - DJ_USER=root diff --git a/workflow_array_ephys/version.py b/workflow_array_ephys/version.py index e64039d5..33a7c9af 100644 --- a/workflow_array_ephys/version.py +++ b/workflow_array_ephys/version.py @@ -1,2 +1,5 @@ -"""Package metadata.""" +""" +Package metadata +Update the Docker image tag in `docker-compose-test.yaml` to match +""" __version__ = '0.1.0a2' From df6c95bea6b55c30f191285b03a249a097f5d8d5 Mon Sep 17 00:00:00 2001 From: Kabilar Gunalan Date: Tue, 18 Jan 2022 10:09:21 -0600 Subject: [PATCH 17/45] Change service name --- docker-compose-test.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docker-compose-test.yaml b/docker-compose-test.yaml index 5c537d0d..cbc709f1 100644 --- a/docker-compose-test.yaml +++ b/docker-compose-test.yaml @@ -3,12 +3,12 @@ x-net: &net networks: - main services: - db: + database: <<: *net image: datajoint/mysql:5.7 environment: - MYSQL_ROOT_PASSWORD=simple - workflow_array_ephys: + workflow: <<: *net build: context: . @@ -30,7 +30,7 @@ services: - ${TEST_DATA_DIR}:/main/test_data - ./apt_requirements.txt:/tmp/apt_requirements.txt depends_on: - db: + database: condition: service_healthy networks: main: \ No newline at end of file From f8747e7f81ace42761cda795356d0cf91da7967e Mon Sep 17 00:00:00 2001 From: Kabilar Gunalan Date: Tue, 18 Jan 2022 17:39:51 -0600 Subject: [PATCH 18/45] Add to Dockerfile --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 0f1b5d1a..459b8d25 100644 --- a/Dockerfile +++ b/Dockerfile @@ -20,7 +20,7 @@ ENV DEBIAN_FRONTEND=noninteractive # Install git RUN apt-get install git -y -RUN git clone https://github.com/CBroz1/workflow-array-ephys.git . +RUN git clone https://github.com/datajoint/workflow-array-ephys.git . RUN pip install . RUN pip install -r requirements_test.txt From b54cd92c8b99517c3ae3ab0f5f868e2d804eaec0 Mon Sep 17 00:00:00 2001 From: Kabilar Gunalan Date: Tue, 18 Jan 2022 17:46:28 -0600 Subject: [PATCH 19/45] Update context to install local fork of element --- docker-compose-test.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docker-compose-test.yaml b/docker-compose-test.yaml index cbc709f1..0bf49d19 100644 --- a/docker-compose-test.yaml +++ b/docker-compose-test.yaml @@ -11,7 +11,8 @@ services: workflow: <<: *net build: - context: . + context: ../ + dockerfile: ./workflow-array-ephys/Dockerfile image: workflow_array_ephys:0.1.0a2 environment: - DJ_HOST=db From 12df9d94274f318e09302a78b093fb45fdfdcc09 Mon Sep 17 00:00:00 2001 From: Kabilar Gunalan Date: Tue, 18 Jan 2022 17:53:37 -0600 Subject: [PATCH 20/45] Update version --- workflow_array_ephys/version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflow_array_ephys/version.py b/workflow_array_ephys/version.py index 33a7c9af..6f7f3047 100644 --- a/workflow_array_ephys/version.py +++ b/workflow_array_ephys/version.py @@ -2,4 +2,4 @@ Package metadata Update the Docker image tag in `docker-compose-test.yaml` to match """ -__version__ = '0.1.0a2' +__version__ = '0.1.0a3' From 4695ac21691e71d53969727afeeae265b02510c8 Mon Sep 17 00:00:00 2001 From: Kabilar Gunalan Date: Tue, 18 Jan 2022 17:54:53 -0600 Subject: [PATCH 21/45] Revert service name --- docker-compose-test.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-compose-test.yaml b/docker-compose-test.yaml index 0bf49d19..5cec86e5 100644 --- a/docker-compose-test.yaml +++ b/docker-compose-test.yaml @@ -3,7 +3,7 @@ x-net: &net networks: - main services: - database: + db: <<: *net image: datajoint/mysql:5.7 environment: @@ -31,7 +31,7 @@ services: - ${TEST_DATA_DIR}:/main/test_data - ./apt_requirements.txt:/tmp/apt_requirements.txt depends_on: - database: + db: condition: service_healthy networks: main: \ No newline at end of file From f760ac52f4bd0d42600c8ad361513647f0d7fc28 Mon Sep 17 00:00:00 2001 From: Kabilar Gunalan Date: Tue, 18 Jan 2022 18:38:05 -0600 Subject: [PATCH 22/45] Add options to install specific forks for tests --- Dockerfile | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/Dockerfile b/Dockerfile index 459b8d25..a7d35d18 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,20 +7,21 @@ RUN apt-get install git -y USER anaconda WORKDIR /main/workflow-array-ephys -USER root - -RUN apt update -y - -# Install pip -RUN apt install python3-pip -y - -# Set environment variable for non-interactive installation -ENV DEBIAN_FRONTEND=noninteractive - -# Install git -RUN apt-get install git -y - +# Option 1 - Install DataJoint's remote fork of the workflow and elements RUN git clone https://github.com/datajoint/workflow-array-ephys.git . -RUN pip install . -RUN pip install -r requirements_test.txt +# Option 2 - Install user's remote fork of element and workflow +# or an unreleased version of the element +# RUN pip install git+https://github.com//element-array-ephys.git +# RUN git clone https://github.com//workflow-array-ephys.git /main/workflow-array-ephys + +# Option 3 - Install user's local fork of element and workflow +# RUN mkdir /main/element-array-ephys +# COPY --chown=anaconda:anaconda ./element-array-ephys /main/element-array-ephys +# RUN pip install /main/element-array-ephys +# COPY --chown=anaconda:anaconda ./workflow-array-ephys /main/workflow-array-ephys +# RUN rm /main/workflow-array-ephys/dj_local_conf.json + +# Install the workflow +RUN pip install /main/workflow-array-ephys +RUN pip install -r /main/workflow-array-ephys/requirements_test.txt From ba6b86849e6e0927d47ad77daa576b416ce59b14 Mon Sep 17 00:00:00 2001 From: Kabilar Gunalan Date: Tue, 18 Jan 2022 18:40:01 -0600 Subject: [PATCH 23/45] Update version --- docker-compose-test.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose-test.yaml b/docker-compose-test.yaml index 5cec86e5..f758fe45 100644 --- a/docker-compose-test.yaml +++ b/docker-compose-test.yaml @@ -13,7 +13,7 @@ services: build: context: ../ dockerfile: ./workflow-array-ephys/Dockerfile - image: workflow_array_ephys:0.1.0a2 + image: workflow_array_ephys:0.1.0a3 environment: - DJ_HOST=db - DJ_USER=root From aa848569b5af00ad070a6bae3b55a04c5cb36505 Mon Sep 17 00:00:00 2001 From: Chris Broz Date: Fri, 12 Nov 2021 16:46:00 -0600 Subject: [PATCH 24/45] PEP8 line length. docstring specificity. element-interface --- tests/__init__.py | 8 +++----- tests/test_ingest.py | 7 ++++++- tests/test_populate.py | 11 ++++------- workflow_array_ephys/ingest.py | 24 ++++++++++-------------- workflow_array_ephys/paths.py | 3 +-- 5 files changed, 24 insertions(+), 29 deletions(-) diff --git a/tests/__init__.py b/tests/__init__.py index e1a6c99f..0942cfcc 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -49,7 +49,7 @@ def dj_config(): @pytest.fixture(autouse=True) def test_data(dj_config): - """If data does not exist or partial data is present, + """If data does not exist or partial data is present, attempt download with DJArchive to the first listed root directory""" test_data_dirs = [] test_data_exists = True @@ -243,10 +243,8 @@ def clustering_tasks(pipeline, kilosort_paramset, ephys_recordings): """Insert keys from ephys.EphysRecording into ephys.Clustering""" ephys = pipeline['ephys'] - for ephys_rec_key in (ephys.EphysRecording - ephys.ClusteringTask - ).fetch('KEY'): - ephys_file_path = pathlib.Path(((ephys.EphysRecording.EphysFile - & ephys_rec_key + for ephys_rec_key in (ephys.EphysRecording - ephys.ClusteringTask).fetch('KEY'): + ephys_file_path = pathlib.Path(((ephys.EphysRecording.EphysFile & ephys_rec_key ).fetch('file_path'))[0]) ephys_file = find_full_path(get_ephys_root_data_dir(), ephys_file_path) recording_dir = ephys_file.parent diff --git a/tests/test_ingest.py b/tests/test_ingest.py index 0dc46ba4..7bd3b6b0 100644 --- a/tests/test_ingest.py +++ b/tests/test_ingest.py @@ -30,6 +30,12 @@ def test_ingest_sessions(pipeline, sessions_csv, ingest_sessions): assert (session.SessionDirectory & {'subject': sess.name}).fetch1('session_dir') == sess.session_dir +''' Delete these? +CB: I think these tests are depreciated with the update to permit multiple root directories + Previously, they tested against known bad roots to make sure root/session matched + Now, we have to run find_full_path every on mult roots regardless. + To update would result in tautology: + > assert find_full_path == find_full_path def test_find_valid_full_path(pipeline, sessions_csv): from element_interface.utils import find_full_path @@ -75,7 +81,6 @@ def test_find_root_directory(pipeline, sessions_csv): assert root_dir.as_posix() == '/main/workflow-array-ephys/tests/user_data' - def test_paramset_insert(kilosort_paramset, pipeline): ephys = pipeline['ephys'] from element_interface.utils import dict_to_uuid diff --git a/tests/test_populate.py b/tests/test_populate.py index 5ec77267..a3f0e9f9 100644 --- a/tests/test_populate.py +++ b/tests/test_populate.py @@ -12,13 +12,11 @@ def test_ephys_recording_populate(pipeline, ephys_recordings): assert len(ephys.EphysRecording()) == 13 -def test_LFP_populate_npx3B_OpenEphys(testdata_paths, pipeline, - ephys_recordings): +def test_LFP_populate_npx3B_OpenEphys(testdata_paths, pipeline, ephys_recordings): """ Populate ephys.LFP with OpenEphys items, recording Neuropixels Phase 3B (Neuropixels 1.0) probe """ - ephys = pipeline['ephys'] rel_path = testdata_paths['oe_npx3B'] rec_key = (ephys.EphysRecording & (ephys.EphysRecording.EphysFile @@ -64,8 +62,7 @@ def test_LFP_populate_npx3A_SpikeGLX(testdata_paths, pipeline, 329, 338, 347, 356, 365, 374, 383])) -def test_LFP_populate_npx3B_SpikeGLX(testdata_paths, pipeline, - ephys_recordings): +def test_LFP_populate_npx3B_SpikeGLX(testdata_paths, pipeline, ephys_recordings): """ Populate ephys.LFP with SpikeGLX items, recording Neuropixels Phase 3B (Neuropixels 1.0) probe @@ -122,8 +119,8 @@ def test_curated_clustering_populate(curations, pipeline, testdata_paths): & 'cluster_quality_label = "good"') == 55 -def test_waveform_populate_npx3B_OpenEphys(curations, pipeline, - testdata_paths): +<<<<<<< HEAD +def test_waveform_populate_npx3B_OpenEphys(curations, pipeline, testdata_paths): """ Populate ephys.WaveformSet with OpenEphys Neuropixels Phase 3B (Neuropixels 1.0) probe diff --git a/workflow_array_ephys/ingest.py b/workflow_array_ephys/ingest.py index 9b2ab733..ab081779 100644 --- a/workflow_array_ephys/ingest.py +++ b/workflow_array_ephys/ingest.py @@ -21,6 +21,7 @@ def ingest_subjects(subject_csv_path='./user_data/subjects.csv'): print('\n---- Successfully completed ingest_subjects ----') +<<<<<<< HEAD def ingest_sessions(session_csv_path='./user_data/sessions.csv'): """ @@ -32,8 +33,7 @@ def ingest_sessions(session_csv_path='./user_data/sessions.csv'): input_sessions = list(csv.DictReader(f, delimiter=',')) # Folder structure: root / subject / session / probe / .ap.meta - session_list, session_dir_list = [], [] - probe_list, probe_insertion_list = [], [] + session_list, sess_dir_list, probe_list, probe_insertion_list = [], [], [], [] for sess in input_sessions: session_dir = find_full_path(get_ephys_root_data_dir(), @@ -43,15 +43,14 @@ def ingest_sessions(session_csv_path='./user_data/sessions.csv'): # search session dir and determine acquisition software for ephys_pattern, ephys_acq_type in zip(['*.ap.meta', '*.oebin'], ['SpikeGLX', 'OpenEphys']): - ephys_meta_filepaths = [fp for fp in - session_dir.rglob(ephys_pattern)] + ephys_meta_filepaths = [fp for fp in session_dir.rglob(ephys_pattern)] if len(ephys_meta_filepaths): acq_software = ephys_acq_type break else: - raise FileNotFoundError('Ephys recording data not found! Neither ' - + 'SpikeGLX nor OpenEphys recording files ' - + f'found in: {session_dir}') + raise FileNotFoundError('Ephys recording data not found! Neither SpikeGLX ' + + 'nor OpenEphys recording files found in: ' + + f'{session_dir}') if acq_software == 'SpikeGLX': for meta_filepath in ephys_meta_filepaths: @@ -72,7 +71,7 @@ def ingest_sessions(session_csv_path='./user_data/sessions.csv'): 'insertion_number': int(probe_number)}) session_datetimes.append(spikeglx_meta.recording_time) elif acq_software == 'OpenEphys': - loaded_oe = openephys.OpenEphys(session_dir) + loaded_oe = openephys.OpenEphys(sess_dir) session_datetimes.append(loaded_oe.experiment.datetime) for probe_idx, oe_probe in enumerate(loaded_oe.probes.values()): probe_key = {'probe_type': oe_probe.probe_model, @@ -91,11 +90,9 @@ def ingest_sessions(session_csv_path='./user_data/sessions.csv'): 'session_datetime': min(session_datetimes)} if session_key not in session.Session(): session_list.append(session_key) - root_dir = find_root_directory(get_ephys_root_data_dir(), - session_dir) + root_dir = find_root_directory(get_ephys_root_data_dir(), session_dir) session_dir_list.append({**session_key, 'session_dir': - session_dir.relative_to(root_dir - ).as_posix()}) + session_dir.relative_to(root_dir).as_posix()}) probe_insertion_list.extend([{**session_key, **insertion } for insertion in insertions]) @@ -104,8 +101,7 @@ def ingest_sessions(session_csv_path='./user_data/sessions.csv'): session.Session.insert(session_list) session.SessionDirectory.insert(session_dir_list) - print(f'\n---- Insert {len(set(probe_list))} entry(s) into ' - + 'probe.Probe ----') + print(f'\n---- Insert {len(set(probe_list))} entry(s) into probe.Probe ----') probe.Probe.insert(probe_list) print(f'\n---- Insert {len(set(probe_insertion_list))} entry(s) into ' diff --git a/workflow_array_ephys/paths.py b/workflow_array_ephys/paths.py index 2df32557..2c775287 100644 --- a/workflow_array_ephys/paths.py +++ b/workflow_array_ephys/paths.py @@ -7,6 +7,5 @@ def get_ephys_root_data_dir(): def get_session_directory(session_key: dict) -> str: from .pipeline import session - session_dir = (session.SessionDirectory & session_key - ).fetch1('session_dir') + session_dir = (session.SessionDirectory & session_key).fetch1('session_dir') return session_dir From 78a0f5c03d3d498882b14d320247e8bd3f27089b Mon Sep 17 00:00:00 2001 From: Chris Brozdowski Date: Wed, 19 Jan 2022 11:12:34 -0600 Subject: [PATCH 25/45] Apply code review suggestions, WIP Thanks to kabilar for suggestions Further edits pending docker testing Co-authored-by: Kabilar Gunalan --- tests/test_ingest.py | 14 +++----------- tests/test_populate.py | 17 ++++++----------- workflow_array_ephys/ingest.py | 6 ++---- 3 files changed, 11 insertions(+), 26 deletions(-) diff --git a/tests/test_ingest.py b/tests/test_ingest.py index 7bd3b6b0..d8194f56 100644 --- a/tests/test_ingest.py +++ b/tests/test_ingest.py @@ -30,12 +30,6 @@ def test_ingest_sessions(pipeline, sessions_csv, ingest_sessions): assert (session.SessionDirectory & {'subject': sess.name}).fetch1('session_dir') == sess.session_dir -''' Delete these? -CB: I think these tests are depreciated with the update to permit multiple root directories - Previously, they tested against known bad roots to make sure root/session matched - Now, we have to run find_full_path every on mult roots regardless. - To update would result in tautology: - > assert find_full_path == find_full_path def test_find_valid_full_path(pipeline, sessions_csv): from element_interface.utils import find_full_path @@ -73,14 +67,12 @@ def test_find_root_directory(pipeline, sessions_csv): # test: providing full-path: correctly search for the root_dir sessions, _ = sessions_csv sess = sessions.iloc[0] - session_full_path = pathlib.Path(get_ephys_root_data_dir() - ) / sess.session_dir - session_full_path = pathlib.Path('/main/workflow-array-ephys/tests/', - 'user_data') / sess.session_dir + session_full_path = pathlib.Path('/main/workflow-array-ephys/tests/user_data', + sess.session_dir) root_dir = find_root_directory(ephys_root_data_dir, session_full_path) - assert root_dir.as_posix() == '/main/workflow-array-ephys/tests/user_data' + def test_paramset_insert(kilosort_paramset, pipeline): ephys = pipeline['ephys'] from element_interface.utils import dict_to_uuid diff --git a/tests/test_populate.py b/tests/test_populate.py index a3f0e9f9..cdf3d80b 100644 --- a/tests/test_populate.py +++ b/tests/test_populate.py @@ -30,18 +30,14 @@ def test_LFP_populate_npx3B_OpenEphys(testdata_paths, pipeline, ephys_recordings electrodes = (ephys.LFP.Electrode & rec_key).fetch('electrode') assert np.array_equal( electrodes, - np.array([5, 14, 23, 32, 41, 50, 59, 68, 77, 86, 95, 104, - 113, 122, 131, 140, 149, 158, 167, 176, 185, 194, 203, 212, - 221, 230, 239, 248, 257, 266, 275, 284, 293, 302, 311, 320, - 329, 338, 347, 356, 365, 374, 383])) + np.array([5, 14, 23, 32, 41, 50, 59, 68, 77, 86, 95, 104, 113, + 122, 131, 140, 149, 158, 167, 176, 185, 194, 203, 212, 221, 230, + 239, 248, 257, 266, 275, 284, 293, 302, 311, 320, 329, 338, 347, + 356, 365, 374, 383])) -def test_LFP_populate_npx3A_SpikeGLX(testdata_paths, pipeline, - ephys_recordings): - """ - Populate ephys.LFP with SpikeGLX items, - recording Neuropixels Phase 3A probe - """ +def test_LFP_populate_npx3A_SpikeGLX(testdata_paths, pipeline, ephys_recordings): + """Populate ephys.LFP with SpikeGLX items, recording Neuropixels Phase 3A probe""" ephys = pipeline['ephys'] rel_path = testdata_paths['sglx_npx3A-p1'] @@ -119,7 +115,6 @@ def test_curated_clustering_populate(curations, pipeline, testdata_paths): & 'cluster_quality_label = "good"') == 55 -<<<<<<< HEAD def test_waveform_populate_npx3B_OpenEphys(curations, pipeline, testdata_paths): """ Populate ephys.WaveformSet with OpenEphys diff --git a/workflow_array_ephys/ingest.py b/workflow_array_ephys/ingest.py index ab081779..e432a9a4 100644 --- a/workflow_array_ephys/ingest.py +++ b/workflow_array_ephys/ingest.py @@ -21,7 +21,6 @@ def ingest_subjects(subject_csv_path='./user_data/subjects.csv'): print('\n---- Successfully completed ingest_subjects ----') -<<<<<<< HEAD def ingest_sessions(session_csv_path='./user_data/sessions.csv'): """ @@ -33,7 +32,7 @@ def ingest_sessions(session_csv_path='./user_data/sessions.csv'): input_sessions = list(csv.DictReader(f, delimiter=',')) # Folder structure: root / subject / session / probe / .ap.meta - session_list, sess_dir_list, probe_list, probe_insertion_list = [], [], [], [] + session_list, session_dir_list, probe_list, probe_insertion_list = [], [], [], [] for sess in input_sessions: session_dir = find_full_path(get_ephys_root_data_dir(), @@ -96,8 +95,7 @@ def ingest_sessions(session_csv_path='./user_data/sessions.csv'): probe_insertion_list.extend([{**session_key, **insertion } for insertion in insertions]) - print(f'\n---- Insert {len(set(session_list))} entry(s) into ' - + 'session.Session ----') + print(f'\n---- Insert {len(set(session_list))} entry(s) into session.Session ----') session.Session.insert(session_list) session.SessionDirectory.insert(session_dir_list) From d38defe3726891b7552f73432c292b302dc45402 Mon Sep 17 00:00:00 2001 From: Chris Broz Date: Wed, 19 Jan 2022 14:02:47 -0600 Subject: [PATCH 26/45] PEP 8 linelength: Rebase 79->88. See details. More soon - PEP8 linter, primarily line length. Also remove unused dependencies. - Originally linted with 79, since discussed company-wide 88 - sess_dir -> session_dir - element_data_loader -> element_interface - add `Experimenter = lab.User` in pipeline - Another commit pending successful pytests in docker --- tests/test_populate.py | 16 ++++++++++------ workflow_array_ephys/ingest.py | 5 +++-- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/tests/test_populate.py b/tests/test_populate.py index cdf3d80b..bf75a790 100644 --- a/tests/test_populate.py +++ b/tests/test_populate.py @@ -30,14 +30,18 @@ def test_LFP_populate_npx3B_OpenEphys(testdata_paths, pipeline, ephys_recordings electrodes = (ephys.LFP.Electrode & rec_key).fetch('electrode') assert np.array_equal( electrodes, - np.array([5, 14, 23, 32, 41, 50, 59, 68, 77, 86, 95, 104, 113, - 122, 131, 140, 149, 158, 167, 176, 185, 194, 203, 212, 221, 230, - 239, 248, 257, 266, 275, 284, 293, 302, 311, 320, 329, 338, 347, - 356, 365, 374, 383])) + np.array([5, 14, 23, 32, 41, 50, 59, 68, 77, 86, 95, 104, + 113, 122, 131, 140, 149, 158, 167, 176, 185, 194, 203, 212, + 221, 230, 239, 248, 257, 266, 275, 284, 293, 302, 311, 320, + 329, 338, 347, 356, 365, 374, 383])) -def test_LFP_populate_npx3A_SpikeGLX(testdata_paths, pipeline, ephys_recordings): - """Populate ephys.LFP with SpikeGLX items, recording Neuropixels Phase 3A probe""" +def test_LFP_populate_npx3A_SpikeGLX(testdata_paths, pipeline, + ephys_recordings): + """ + Populate ephys.LFP with SpikeGLX items, + recording Neuropixels Phase 3A probe + """ ephys = pipeline['ephys'] rel_path = testdata_paths['sglx_npx3A-p1'] diff --git a/workflow_array_ephys/ingest.py b/workflow_array_ephys/ingest.py index e432a9a4..a7feb18c 100644 --- a/workflow_array_ephys/ingest.py +++ b/workflow_array_ephys/ingest.py @@ -32,7 +32,8 @@ def ingest_sessions(session_csv_path='./user_data/sessions.csv'): input_sessions = list(csv.DictReader(f, delimiter=',')) # Folder structure: root / subject / session / probe / .ap.meta - session_list, session_dir_list, probe_list, probe_insertion_list = [], [], [], [] + session_list, session_dir_list = [], [] + probe_list, probe_insertion_list = [], [] for sess in input_sessions: session_dir = find_full_path(get_ephys_root_data_dir(), @@ -70,7 +71,7 @@ def ingest_sessions(session_csv_path='./user_data/sessions.csv'): 'insertion_number': int(probe_number)}) session_datetimes.append(spikeglx_meta.recording_time) elif acq_software == 'OpenEphys': - loaded_oe = openephys.OpenEphys(sess_dir) + loaded_oe = openephys.OpenEphys(session_dir) session_datetimes.append(loaded_oe.experiment.datetime) for probe_idx, oe_probe in enumerate(loaded_oe.probes.values()): probe_key = {'probe_type': oe_probe.probe_model, From 735063a1c47eff0a035e5921e826bcb91df191ca Mon Sep 17 00:00:00 2001 From: Chris Broz Date: Fri, 21 Jan 2022 15:41:49 -0600 Subject: [PATCH 27/45] Docker integration tests for mult root dirs Docker passed all 14 (27.5 min) If I set build flag: export COMPOSE_DOCKER_CLI_BUILD=0 Assumes data in /workflow_ephys_data1 or /workflow_ephys_data2 Changes: wf/ingest.py: record table length before/after insertion to accurately report number of items inserted test/__init__.py: split os environ variable by comma to permit multiple test/test_ingest: - add __all__ dunder to quiet PEP8 F811 warning - check that ephys_root_data_dir is a list - migrate find_valid_full_path and find_root_dir to check based on Docker specifics docker-compose - provide multiple root directories - run from workflow directory, so pull element from ../element dockerfile - add -e flags on pip install - add -f flag on rm, no error on not exist --- Dockerfile | 17 +++++++------ docker-compose-test.yaml | 8 +++--- tests/__init__.py | 2 +- tests/test_ingest.py | 45 +++++++++++++++++++++++++--------- workflow_array_ephys/ingest.py | 20 ++++++++++----- 5 files changed, 62 insertions(+), 30 deletions(-) diff --git a/Dockerfile b/Dockerfile index a7d35d18..0fb1d436 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,3 +1,4 @@ + FROM datajoint/djlab:py3.8-debian USER root @@ -8,20 +9,20 @@ USER anaconda WORKDIR /main/workflow-array-ephys # Option 1 - Install DataJoint's remote fork of the workflow and elements -RUN git clone https://github.com/datajoint/workflow-array-ephys.git . +# RUN git clone https://github.com/datajoint/workflow-array-ephys.git . # Option 2 - Install user's remote fork of element and workflow # or an unreleased version of the element -# RUN pip install git+https://github.com//element-array-ephys.git +# RUN pip install git+https://github.com/datajoint/element-array-ephys.git # RUN git clone https://github.com//workflow-array-ephys.git /main/workflow-array-ephys # Option 3 - Install user's local fork of element and workflow -# RUN mkdir /main/element-array-ephys -# COPY --chown=anaconda:anaconda ./element-array-ephys /main/element-array-ephys -# RUN pip install /main/element-array-ephys -# COPY --chown=anaconda:anaconda ./workflow-array-ephys /main/workflow-array-ephys -# RUN rm /main/workflow-array-ephys/dj_local_conf.json +RUN mkdir /main/element-array-ephys +COPY --chown=anaconda:anaconda ./element-array-ephys /main/element-array-ephys +RUN pip install -e /main/element-array-ephys +COPY --chown=anaconda:anaconda ./workflow-array-ephys /main/workflow-array-ephys +# RUN rm -f /main/workflow-array-ephys/dj_local_conf.json # Install the workflow -RUN pip install /main/workflow-array-ephys +RUN pip install -e /main/workflow-array-ephys RUN pip install -r /main/workflow-array-ephys/requirements_test.txt diff --git a/docker-compose-test.yaml b/docker-compose-test.yaml index f758fe45..bfed44b1 100644 --- a/docker-compose-test.yaml +++ b/docker-compose-test.yaml @@ -18,20 +18,22 @@ services: - DJ_HOST=db - DJ_USER=root - DJ_PASS=simple - - EPHYS_ROOT_DATA_DIR=/main/test_data + - EPHYS_ROOT_DATA_DIR=/main/test_data/workflow_ephys_data1/,/main/test_data/workflow_ephys_data2/ - DATABASE_PREFIX=test_ command: - bash - -c - | echo "------ INTEGRATION TESTS ------" - pytest -sv --cov-report term-missing --cov=workflow-array-ephys -p no:warnings + pytest -sv --cov-report term-missing --cov=workflow-array-ephys -p no:warnings tests/ tail -f /dev/null volumes: - ${TEST_DATA_DIR}:/main/test_data - ./apt_requirements.txt:/tmp/apt_requirements.txt + - ../element-array-ephys:/main/element-array-ephys + - .:/main/workflow-array-ephys depends_on: db: condition: service_healthy networks: - main: \ No newline at end of file + main: diff --git a/tests/__init__.py b/tests/__init__.py index 0942cfcc..de8b491f 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -41,7 +41,7 @@ def dj_config(): dj.config['custom'] = { 'database.prefix': (os.environ.get('DATABASE_PREFIX') or dj.config['custom']['database.prefix']), - 'ephys_root_data_dir': (os.environ.get('EPHYS_ROOT_DATA_DIR') + 'ephys_root_data_dir': (os.environ.get('EPHYS_ROOT_DATA_DIR').split(',') or dj.config['custom']['ephys_root_data_dir']) } return diff --git a/tests/test_ingest.py b/tests/test_ingest.py index d8194f56..6173ac27 100644 --- a/tests/test_ingest.py +++ b/tests/test_ingest.py @@ -7,6 +7,11 @@ testdata_paths, kilosort_paramset, ephys_recordings, clustering_tasks, clustering, curations) +# Set all to pass linter warning: PEP8 F811 +__all__ = ['dj_config', 'pipeline', 'test_data', 'subjects_csv', 'ingest_subjects', + 'sessions_csv', 'ingest_sessions', 'testdata_paths', 'kilosort_paramset', + 'ephys_recordings', 'clustering_tasks', 'clustering', 'curations'] + def test_ingest_subjects(pipeline, ingest_subjects): """ Check number of subjects inserted into the `subject.Subject` table """ @@ -18,7 +23,6 @@ def test_ingest_sessions(pipeline, sessions_csv, ingest_sessions): ephys = pipeline['ephys'] probe = pipeline['probe'] session = pipeline['session'] - get_ephys_root_data_dir = pipeline['get_ephys_root_data_dir'] assert len(session.Session()) == 7 assert len(probe.Probe()) == 9 @@ -35,42 +39,59 @@ def test_find_valid_full_path(pipeline, sessions_csv): from element_interface.utils import find_full_path get_ephys_root_data_dir = pipeline['get_ephys_root_data_dir'] + if not isinstance(get_ephys_root_data_dir(), list): # ensure is list + ephys_root_data_dir = [get_ephys_root_data_dir()] # for appending below + else: + ephys_root_data_dir = get_ephys_root_data_dir() # add more options for root directories if sys.platform == 'win32': # win32 even if Windows 64-bit - ephys_root_data_dir = [get_ephys_root_data_dir(), 'J:/', 'M:/'] + ephys_root_data_dir = ephys_root_data_dir + ['J:/', 'M:/'] else: - ephys_root_data_dir = [get_ephys_root_data_dir(), 'mnt/j', 'mnt/m'] + ephys_root_data_dir = ephys_root_data_dir + ['mnt/j', 'mnt/m'] # test: providing relative-path: correctly search for the full-path sessions, _ = sessions_csv sess = sessions.iloc[0] - session_full_path = pathlib.Path('/main/workflow-array-ephys/tests/', - 'user_data') / sess.session_dir + docker_full_path = find_full_path(['/main/test_data/workflow_ephys_data1/', + '/main/test_data/workflow_ephys_data2/'], + sess.session_dir) + session_full_path = find_full_path(ephys_root_data_dir, sess.session_dir) - full_path = find_full_path(ephys_root_data_dir, sess.session_dir) - - assert full_path == session_full_path + assert docker_full_path == session_full_path, str('Session path does not match ' + + 'docker root: ' + + f'{docker_full_path}') def test_find_root_directory(pipeline, sessions_csv): + """ + Test that ephys_root_data_dir loaded as docker directory + /main/test_data/workflow_ephys_data1/ + """ from element_interface.utils import find_root_directory get_ephys_root_data_dir = pipeline['get_ephys_root_data_dir'] + if not isinstance(get_ephys_root_data_dir(), list): # ensure is list + ephys_root_data_dir = [get_ephys_root_data_dir()] # for appending below + else: + ephys_root_data_dir = get_ephys_root_data_dir() # add more options for root directories if sys.platform == 'win32': - ephys_root_data_dir = [get_ephys_root_data_dir(), 'J:/', 'M:/'] + ephys_root_data_dir = ephys_root_data_dir + ['J:/', 'M:/'] else: - ephys_root_data_dir = [get_ephys_root_data_dir(), 'mnt/j', 'mnt/m'] + ephys_root_data_dir = ephys_root_data_dir + ['mnt/j', 'mnt/m'] # test: providing full-path: correctly search for the root_dir sessions, _ = sessions_csv sess = sessions.iloc[0] - session_full_path = pathlib.Path('/main/workflow-array-ephys/tests/user_data', + # set to /main/, will only work in docker environment + session_full_path = pathlib.Path('/main/test_data/workflow_ephys_data1', sess.session_dir) root_dir = find_root_directory(ephys_root_data_dir, session_full_path) - assert root_dir.as_posix() == '/main/workflow-array-ephys/tests/user_data' + + assert root_dir.as_posix() == '/main/test_data/workflow_ephys_data1',\ + 'Root path does not match docker: /main/test_data/workflow_ephys_data1' def test_paramset_insert(kilosort_paramset, pipeline): diff --git a/workflow_array_ephys/ingest.py b/workflow_array_ephys/ingest.py index a7feb18c..cb5e17ee 100644 --- a/workflow_array_ephys/ingest.py +++ b/workflow_array_ephys/ingest.py @@ -15,9 +15,11 @@ def ingest_subjects(subject_csv_path='./user_data/subjects.csv'): # -------------- Insert new "Subject" -------------- with open(subject_csv_path, newline='') as f: input_subjects = list(csv.DictReader(f, delimiter=',')) - print(f'\n---- Insert {len(set(input_subjects))} entry(s) into ' - + 'subject.Subject ----') + previous_length = len(subject.Subject.fetch()) subject.Subject.insert(input_subjects, skip_duplicates=True) + insert_length = len(subject.Subject.fetch()) - previous_length + print(f'\n---- Insert {insert_length} entry(s) into ' + + 'subject.Subject ----') print('\n---- Successfully completed ingest_subjects ----') @@ -96,16 +98,22 @@ def ingest_sessions(session_csv_path='./user_data/sessions.csv'): probe_insertion_list.extend([{**session_key, **insertion } for insertion in insertions]) - print(f'\n---- Insert {len(set(session_list))} entry(s) into session.Session ----') + previous_length = len(session.Session.fetch()) session.Session.insert(session_list) session.SessionDirectory.insert(session_dir_list) + insert_length = len(session.Session.fetch()) - previous_length + print(f'\n---- Insert {insert_length} entry(s) into session.Session ----') - print(f'\n---- Insert {len(set(probe_list))} entry(s) into probe.Probe ----') + previous_length = len(probe.Probe.fetch()) probe.Probe.insert(probe_list) + insert_length = len(probe.Probe.fetch()) - previous_length + print(f'\n---- Insert {insert_length} entry(s) into probe.Probe ----') - print(f'\n---- Insert {len(set(probe_insertion_list))} entry(s) into ' - + 'ephys.ProbeInsertion ----') + previous_length = len(ephys.ProbeInsertion.fetch()) ephys.ProbeInsertion.insert(probe_insertion_list) + insert_length = len(ephys.ProbeInsertion.fetch()) - previous_length + print(f'\n---- Insert {len(probe_insertion_list)} entry(s) into ' + + 'ephys.ProbeInsertion ----') print('\n---- Successfully completed ingest_subjects ----') From c55e0eddc9cde4eac34a96b96d8c6121c6172a76 Mon Sep 17 00:00:00 2001 From: Chris Broz Date: Thu, 3 Feb 2022 13:39:10 -0600 Subject: [PATCH 28/45] add verbosity options, add docker files --- Dockerfile.dev | 32 +++++++++++++ Dockerfile => Dockerfile.test | 19 ++++++-- docker-compose-dev.yaml | 31 ++++++++++++ docker-compose-test.yaml | 12 +++-- requirements.txt | 2 +- tests/__init__.py | 87 ++++++++++++++++++++++++++-------- tests/test_populate.py | 4 ++ workflow_array_ephys/ingest.py | 46 ++++++++++-------- 8 files changed, 186 insertions(+), 47 deletions(-) create mode 100644 Dockerfile.dev rename Dockerfile => Dockerfile.test (55%) create mode 100644 docker-compose-dev.yaml diff --git a/Dockerfile.dev b/Dockerfile.dev new file mode 100644 index 00000000..e1f5ed75 --- /dev/null +++ b/Dockerfile.dev @@ -0,0 +1,32 @@ +FROM datajoint/djlab:py3.8-debian + +USER root +RUN apt-get update -y +RUN apt-get install git -y + +USER anaconda + +RUN mkdir /main/element-lab \ + /main/element-animal \ + /main/element-session \ + /main/element-array-ephys + /main/workflow-array-ephys + +# Copy user's local fork of elements and workflow +COPY --chown=anaconda:anaconda ./element-lab /main/element-lab +COPY --chown=anaconda:anaconda ./element-animal /main/element-animal +COPY --chown=anaconda:anaconda ./element-session /main/element-session +COPY --chown=anaconda:anaconda ./element-array-ephys /main/element-array-ephys +COPY --chown=anaconda:anaconda ./workflow-array-ephys /main/workflow-array-ephys + +# Install packages +RUN pip install -e /main/element-lab +RUN pip install -e /main/element-animal +RUN pip install -e /main/element-session +RUN pip install -e /main/element-array-ephys +RUN pip install -e /main/workflow-array-ephys +RUN pip install -r /main/workflow-array-ephys/requirements_test.txt + +WORKDIR /main/workflow-array-ephys + +ENTRYPOINT ["tail", "-f", "/dev/null"] diff --git a/Dockerfile b/Dockerfile.test similarity index 55% rename from Dockerfile rename to Dockerfile.test index 0fb1d436..b2417570 100644 --- a/Dockerfile +++ b/Dockerfile.test @@ -1,4 +1,3 @@ - FROM datajoint/djlab:py3.8-debian USER root @@ -9,14 +8,26 @@ USER anaconda WORKDIR /main/workflow-array-ephys # Option 1 - Install DataJoint's remote fork of the workflow and elements -# RUN git clone https://github.com/datajoint/workflow-array-ephys.git . +# RUN git clone https://github.com/datajoint/workflow-array-ephys.git /main/workflow-array-ephys # Option 2 - Install user's remote fork of element and workflow # or an unreleased version of the element -# RUN pip install git+https://github.com/datajoint/element-array-ephys.git +# RUN pip install git+https://github.com/element-lab.git +# RUN pip install git+https://github.com//element-animal.git +# RUN pip install git+https://github.com//element-session.git +# RUN pip install git+https://github.com//element-array-ephys.git # RUN git clone https://github.com//workflow-array-ephys.git /main/workflow-array-ephys # Option 3 - Install user's local fork of element and workflow +RUN mkdir /main/element-lab +COPY --chown=anaconda:anaconda ./element-lab /main/element-lab +RUN pip install -e /main/element-lab +RUN mkdir /main/element-animal +COPY --chown=anaconda:anaconda ./element-animal /main/element-animal +RUN pip install -e /main/element-animal +RUN mkdir /main/element-session +COPY --chown=anaconda:anaconda ./element-session /main/element-session +RUN pip install -e /main/element-session RUN mkdir /main/element-array-ephys COPY --chown=anaconda:anaconda ./element-array-ephys /main/element-array-ephys RUN pip install -e /main/element-array-ephys @@ -24,5 +35,5 @@ COPY --chown=anaconda:anaconda ./workflow-array-ephys /main/workflow-array-ephys # RUN rm -f /main/workflow-array-ephys/dj_local_conf.json # Install the workflow -RUN pip install -e /main/workflow-array-ephys +RUN pip install /main/workflow-array-ephys RUN pip install -r /main/workflow-array-ephys/requirements_test.txt diff --git a/docker-compose-dev.yaml b/docker-compose-dev.yaml new file mode 100644 index 00000000..3bcb2ebf --- /dev/null +++ b/docker-compose-dev.yaml @@ -0,0 +1,31 @@ +# docker-compose -f docker-compose-dev.yaml up -d --build +# docker-compose -f docker-compose-dev.yaml down + +version: "2.4" +x-net: &net + networks: + - main +services: + db: + <<: *net + image: datajoint/mysql:5.7 + environment: + - MYSQL_ROOT_PASSWORD=simple + workflow: + <<: *net + build: + context: ../ + dockerfile: ./workflow-session/Dockerfile.dev + env_file: .env + image: workflow_session_dev:0.0.0b2 + volumes: + - ./apt_requirements.txt:/tmp/apt_requirements.txt + - ../element-lab:/main/element-lab + - ../element-animal:/main/element-animal + - ../element-session:/main/element-session + - .:/main/workflow-session + depends_on: + db: + condition: service_healthy +networks: + main: diff --git a/docker-compose-test.yaml b/docker-compose-test.yaml index bfed44b1..5bf52d20 100644 --- a/docker-compose-test.yaml +++ b/docker-compose-test.yaml @@ -1,3 +1,9 @@ +# export COMPOSE_DOCKER_CLI_BUILD=0 # some machines need for smooth --build +# .env file: TEST_DATA_DIR= +# docker-compose -f docker-compose-test.yaml up --build +# docker exec -it workflow-session_workflow_1 /bin/bash +# docker-compose -f docker-compose-test.yaml down + version: "2.4" x-net: &net networks: @@ -12,10 +18,10 @@ services: <<: *net build: context: ../ - dockerfile: ./workflow-array-ephys/Dockerfile + dockerfile: ./workflow-array-ephys/Dockerfile.test image: workflow_array_ephys:0.1.0a3 environment: - - DJ_HOST=db + - DJ_HOST=workflow-array-ephys_db_1 - DJ_USER=root - DJ_PASS=simple - EPHYS_ROOT_DATA_DIR=/main/test_data/workflow_ephys_data1/,/main/test_data/workflow_ephys_data2/ @@ -25,7 +31,7 @@ services: - -c - | echo "------ INTEGRATION TESTS ------" - pytest -sv --cov-report term-missing --cov=workflow-array-ephys -p no:warnings tests/ + pytest -sv --cov-report term-missing --cov=workflow_array_ephys -p no:warnings tests/ tail -f /dev/null volumes: - ${TEST_DATA_DIR}:/main/test_data diff --git a/requirements.txt b/requirements.txt index a82eb8a2..f5a04193 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,6 @@ datajoint>=0.13.0 element-array-ephys==0.1.0b0 -element-lab==0.1.0b0 +element-lab>=0.1.0b0 element-animal==0.1.0b0 element-session==0.1.0b0 element-interface @ git+https://github.com/datajoint/element-interface.git diff --git a/tests/__init__.py b/tests/__init__.py index de8b491f..2818ddec 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -1,9 +1,10 @@ # run all tests: pytest -sv --cov-report term-missing \ -# --cov=workflow-array-ephys -p no:warnings tests/ +# --cov=workflow_array_ephys -p no:warnings tests/ # run one test, debug: pytest [above options] --pdb tests/tests_name.py -k \ # function_name import os +import sys import pytest import pandas as pd import pathlib @@ -17,6 +18,7 @@ # ------------------- SOME CONSTANTS ------------------- _tear_down = True +verbose = False test_user_data_dir = pathlib.Path('./tests/user_data') test_user_data_dir.mkdir(exist_ok=True) @@ -29,8 +31,21 @@ 'subject5/session1', 'subject6/session1'] +# -------------------- HELPER CLASS -------------------- + + +class QuietStdOut: + """If verbose set to false, used to quiet tear_down table.delete prints""" + def __enter__(self): + self._original_stdout = sys.stdout + sys.stdout = open(os.devnull, 'w') + + def __exit__(self, exc_type, exc_val, exc_tb): + sys.stdout.close() + sys.stdout = self._original_stdout + +# ---------------------- FIXTURES ---------------------- -# ------------------- FIXTURES ------------------- @pytest.fixture(autouse=True) def dj_config(): @@ -94,17 +109,31 @@ def test_data(dj_config): @pytest.fixture def pipeline(): - from workflow_array_ephys import pipeline + if verbose: + from workflow_array_ephys import pipeline - yield {'subject': pipeline.subject, - 'lab': pipeline.lab, - 'ephys': pipeline.ephys, - 'probe': pipeline.probe, - 'session': pipeline.session, - 'get_ephys_root_data_dir': pipeline.get_ephys_root_data_dir} + yield {'subject': pipeline.subject, + 'lab': pipeline.lab, + 'ephys': pipeline.ephys, + 'probe': pipeline.probe, + 'session': pipeline.session, + 'get_ephys_root_data_dir': pipeline.get_ephys_root_data_dir} - if _tear_down: - pipeline.subject.Subject.delete() + if _tear_down: + pipeline.subject.Subject.delete() + else: + with QuietStdOut(): + from workflow_array_ephys import pipeline + + yield {'subject': pipeline.subject, + 'lab': pipeline.lab, + 'ephys': pipeline.ephys, + 'probe': pipeline.probe, + 'session': pipeline.session, + 'get_ephys_root_data_dir': pipeline.get_ephys_root_data_dir} + + if _tear_down: + pipeline.subject.Subject.delete() @pytest.fixture @@ -139,7 +168,7 @@ def subjects_csv(): def ingest_subjects(pipeline, subjects_csv): from workflow_array_ephys.ingest import ingest_subjects _, subjects_csv_path = subjects_csv - ingest_subjects(subjects_csv_path) + ingest_subjects(subjects_csv_path, verbose=verbose) return @@ -165,7 +194,7 @@ def sessions_csv(test_data): def ingest_sessions(ingest_subjects, sessions_csv): from workflow_array_ephys.ingest import ingest_sessions _, sessions_csv_path = sessions_csv - ingest_sessions(sessions_csv_path) + ingest_sessions(sessions_csv_path, verbose=verbose) return @@ -222,7 +251,11 @@ def kilosort_paramset(pipeline): yield params_ks if _tear_down: - (ephys.ClusteringParamSet & 'paramset_idx = 0').delete() + if verbose: + (ephys.ClusteringParamSet & 'paramset_idx = 0').delete() + else: + with QuietStdOut(): + (ephys.ClusteringParamSet & 'paramset_idx = 0').delete() @pytest.fixture @@ -235,7 +268,11 @@ def ephys_recordings(pipeline, ingest_sessions): yield if _tear_down: - ephys.EphysRecording.delete() + if verbose: + ephys.EphysRecording.delete() + else: + with QuietStdOut(): + ephys.EphysRecording.delete() @pytest.fixture @@ -258,8 +295,11 @@ def clustering_tasks(pipeline, kilosort_paramset, ephys_recordings): yield if _tear_down: - ephys.ClusteringTask.delete() - + if verbose: + ephys.ClusteringTask.delete() + else: + with QuietStdOut(): + ephys.ClusteringTask.delete() @pytest.fixture def clustering(clustering_tasks, pipeline): @@ -271,7 +311,11 @@ def clustering(clustering_tasks, pipeline): yield if _tear_down: - ephys.Clustering.delete() + if verbose: + ephys.Clustering.delete() + else: + with QuietStdOut(): + ephys.Clustering.delete() @pytest.fixture @@ -285,4 +329,9 @@ def curations(clustering, pipeline): yield if _tear_down: - ephys.Curation.delete() + if verbose: + ephys.Curation.delete() + else: + with QuietStdOut(): + ephys.Curation.delete() + diff --git a/tests/test_populate.py b/tests/test_populate.py index bf75a790..e645c8ad 100644 --- a/tests/test_populate.py +++ b/tests/test_populate.py @@ -1,5 +1,9 @@ import numpy as np +__all__ = ['dj_config', 'pipeline', 'test_data', 'subjects_csv', 'ingest_subjects', + 'sessions_csv', 'ingest_sessions', 'testdata_paths', 'kilosort_paramset', + 'ephys_recordings', 'clustering_tasks', 'clustering', 'curations'] + from . import (dj_config, pipeline, test_data, subjects_csv, ingest_subjects, sessions_csv, ingest_sessions, diff --git a/workflow_array_ephys/ingest.py b/workflow_array_ephys/ingest.py index cb5e17ee..b7a1e2d5 100644 --- a/workflow_array_ephys/ingest.py +++ b/workflow_array_ephys/ingest.py @@ -8,23 +8,24 @@ from element_interface.utils import find_root_directory, find_full_path -def ingest_subjects(subject_csv_path='./user_data/subjects.csv'): +def ingest_subjects(subject_csv_path='./user_data/subjects.csv', verbose=True): """ Ingest subjects listed in the subject column of ./user_data/subjects.csv """ # -------------- Insert new "Subject" -------------- with open(subject_csv_path, newline='') as f: input_subjects = list(csv.DictReader(f, delimiter=',')) - previous_length = len(subject.Subject.fetch()) + if verbose: + previous_length = len(subject.Subject.fetch()) subject.Subject.insert(input_subjects, skip_duplicates=True) - insert_length = len(subject.Subject.fetch()) - previous_length - print(f'\n---- Insert {insert_length} entry(s) into ' - + 'subject.Subject ----') + if verbose: + insert_length = len(subject.Subject.fetch()) - previous_length + print(f'\n---- Insert {insert_length} entry(s) into ' + + 'subject.Subject ----') + print('\n---- Successfully completed ingest_subjects ----') - print('\n---- Successfully completed ingest_subjects ----') - -def ingest_sessions(session_csv_path='./user_data/sessions.csv'): +def ingest_sessions(session_csv_path='./user_data/sessions.csv', verbose=True): """ Ingests SpikeGLX and OpenEphys files from directories listed in the session_dir column of ./user_data/sessions.csv @@ -98,24 +99,29 @@ def ingest_sessions(session_csv_path='./user_data/sessions.csv'): probe_insertion_list.extend([{**session_key, **insertion } for insertion in insertions]) - previous_length = len(session.Session.fetch()) + if verbose: + previous_length = len(session.Session.fetch()) session.Session.insert(session_list) session.SessionDirectory.insert(session_dir_list) - insert_length = len(session.Session.fetch()) - previous_length - print(f'\n---- Insert {insert_length} entry(s) into session.Session ----') + if verbose: + insert_length = len(session.Session.fetch()) - previous_length + print(f'\n---- Insert {insert_length} entry(s) into session.Session ----') - previous_length = len(probe.Probe.fetch()) + if verbose: + previous_length = len(probe.Probe.fetch()) probe.Probe.insert(probe_list) - insert_length = len(probe.Probe.fetch()) - previous_length - print(f'\n---- Insert {insert_length} entry(s) into probe.Probe ----') + if verbose: + insert_length = len(probe.Probe.fetch()) - previous_length + print(f'\n---- Insert {insert_length} entry(s) into probe.Probe ----') - previous_length = len(ephys.ProbeInsertion.fetch()) + if verbose: + previous_length = len(ephys.ProbeInsertion.fetch()) ephys.ProbeInsertion.insert(probe_insertion_list) - insert_length = len(ephys.ProbeInsertion.fetch()) - previous_length - print(f'\n---- Insert {len(probe_insertion_list)} entry(s) into ' - + 'ephys.ProbeInsertion ----') - - print('\n---- Successfully completed ingest_subjects ----') + if verbose: + insert_length = len(ephys.ProbeInsertion.fetch()) - previous_length + print(f'\n---- Insert {len(probe_insertion_list)} entry(s) into ' + + 'ephys.ProbeInsertion ----') + print('\n---- Successfully completed ingest_subjects ----') if __name__ == '__main__': From 60ff2aca57c33e6020c3c6909ed91dc33e2c8f81 Mon Sep 17 00:00:00 2001 From: Kabilar Gunalan Date: Sun, 16 Jan 2022 18:32:37 -0600 Subject: [PATCH 29/45] Add Changelog --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..bd7bfd57 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,7 @@ +# Changelog + +Observes [Semantic Versioning](https://semver.org/spec/v2.0.0.html) standard and [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) convention. + +## [0.1.0a2] - 2021-04-12 +### Updated ++ Updated tests \ No newline at end of file From fce19bb1522ef7a2418bb72d803516e441d19ad0 Mon Sep 17 00:00:00 2001 From: Kabilar Gunalan Date: Sun, 16 Jan 2022 23:50:16 -0600 Subject: [PATCH 30/45] Add original version --- CHANGELOG.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bd7bfd57..81ba26b1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,4 +4,9 @@ Observes [Semantic Versioning](https://semver.org/spec/v2.0.0.html) standard and ## [0.1.0a2] - 2021-04-12 ### Updated -+ Updated tests \ No newline at end of file ++ Updated tests ++ Changed version to reflect release phase + +## [0.1.1] - 2021-03-26 +### Added ++ Added version \ No newline at end of file From f4c7362f3e34f99c8e603af10ab4ddc0b4ea133f Mon Sep 17 00:00:00 2001 From: Kabilar Gunalan Date: Fri, 21 Jan 2022 14:27:40 -0600 Subject: [PATCH 31/45] Rebase from cbroz1/main --- Dockerfile.test | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/Dockerfile.test b/Dockerfile.test index b2417570..889cbe5b 100644 --- a/Dockerfile.test +++ b/Dockerfile.test @@ -8,13 +8,10 @@ USER anaconda WORKDIR /main/workflow-array-ephys # Option 1 - Install DataJoint's remote fork of the workflow and elements -# RUN git clone https://github.com/datajoint/workflow-array-ephys.git /main/workflow-array-ephys +RUN git clone https://github.com/datajoint/workflow-array-ephys.git . # Option 2 - Install user's remote fork of element and workflow # or an unreleased version of the element -# RUN pip install git+https://github.com/element-lab.git -# RUN pip install git+https://github.com//element-animal.git -# RUN pip install git+https://github.com//element-session.git # RUN pip install git+https://github.com//element-array-ephys.git # RUN git clone https://github.com//workflow-array-ephys.git /main/workflow-array-ephys From 200e9ddcb1a81d9fd6a146cbe2b132eeed3b13c5 Mon Sep 17 00:00:00 2001 From: Kabilar Gunalan Date: Fri, 21 Jan 2022 14:28:29 -0600 Subject: [PATCH 32/45] Fix minor bug --- Dockerfile.test | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile.test b/Dockerfile.test index 889cbe5b..008fedf3 100644 --- a/Dockerfile.test +++ b/Dockerfile.test @@ -8,7 +8,7 @@ USER anaconda WORKDIR /main/workflow-array-ephys # Option 1 - Install DataJoint's remote fork of the workflow and elements -RUN git clone https://github.com/datajoint/workflow-array-ephys.git . +RUN git clone https://github.com/datajoint/workflow-array-ephys.git /main/workflow-array-ephys # Option 2 - Install user's remote fork of element and workflow # or an unreleased version of the element From d79f296943d3d7e8f8d6e5380b25dd09d4787b5e Mon Sep 17 00:00:00 2001 From: Kabilar Gunalan Date: Fri, 21 Jan 2022 14:29:46 -0600 Subject: [PATCH 33/45] Rebase. See Details. - mult root dirs - revert to surpress_errs false - Apply suggestions from code review, 2nd commit forthcoming Co-authored-by: Kabilar Gunalan - PEP8 linter, primarily line length. Also remove unused dependencies. - sess_dir -> session_dir - element_data_loader -> element_interface - add `Experimenter = lab.User` in pipeline - Move instructions to central location - Update for PEP8 - Revert element-animal package rename - Remove duplicate dependency - Update Dockerfile, new base image - Update Docker image tag to match package version - change Docker service name - docker options to install specific forks for tests - PEP8 line length. docstring specificity. element-interface - Code review suggestions, Co-authored-by: Kabilar Gunalan - PEP8 linter, primarily line length. Also remove unused dependencies. - Originally linted with 79, since discussed company-wide 88 - Docker integration tests for mult root dirs Docker passed all 14 (27.5 min) If I set build flag: export COMPOSE_DOCKER_CLI_BUILD=0 Assumes data in /workflow_ephys_data1 or /workflow_ephys_data2 - wf/ingest.py: record table length before/after insertion to accurately report number of items inserted - test/__init__.py: split os environ variable by comma to permit multiple - test/test_ingest: - add __all__ dunder to quiet PEP8 F811 warning - check that ephys_root_data_dir is a list - migrate find_valid_full_path and find_root_dir to check based on Docker specifics - docker-compose - provide multiple root directories - run from workflow directory, so pull element from ../element - dockerfile - add -e flags on pip install - add -f flag on rm, no error on not exist - add verbosity options, add docker files to make output easier to read - change pytest command for coverage test - Rename Dockerfile. Add instructions. Bump version: `0.1.0a3` -> `0.1.0a4` --- CHANGELOG.md | 21 +++++++++++++++++---- Dockerfile.dev | 2 +- Dockerfile.test | 6 ++++-- README.md | 20 ++++++++++---------- docker-compose-dev.yaml | 8 +++++--- docker-compose-test.yaml | 3 ++- tests/test_populate.py | 8 ++------ workflow_array_ephys/ingest.py | 2 +- workflow_array_ephys/version.py | 4 ++-- 9 files changed, 44 insertions(+), 30 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 81ba26b1..2529e30c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,12 +1,25 @@ # Changelog -Observes [Semantic Versioning](https://semver.org/spec/v2.0.0.html) standard and [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) convention. +Observes [Semantic Versioning](https://semver.org/spec/v2.0.0.html) standard and +[Keep a Changelog](https://keepachangelog.com/en/1.0.0/) convention. -## [0.1.0a2] - 2021-04-12 +## 0.1.0a4 - 2022-01-21 +### Added ++ Created Docker and Compose files for active development. + +## 0.1.0a3 - 2022-01-18 +### Updated ++ Updated notebooks ++ Moved instructions to [datajoint-elements/install.md]( + https://github.com/datajoint/datajoint-elements/blob/main/install.md). ++ Updated Docker and Compose files for new base image and added options to install +specific forks for tests. + +## 0.1.0a2 - 2021-04-12 ### Updated + Updated tests -+ Changed version to reflect release phase ++ Changed version to reflect release phase. -## [0.1.1] - 2021-03-26 +## 0.1.1 - 2021-03-26 ### Added + Added version \ No newline at end of file diff --git a/Dockerfile.dev b/Dockerfile.dev index e1f5ed75..ab9614f1 100644 --- a/Dockerfile.dev +++ b/Dockerfile.dev @@ -9,7 +9,7 @@ USER anaconda RUN mkdir /main/element-lab \ /main/element-animal \ /main/element-session \ - /main/element-array-ephys + /main/element-array-ephys \ /main/workflow-array-ephys # Copy user's local fork of elements and workflow diff --git a/Dockerfile.test b/Dockerfile.test index 008fedf3..24631ac0 100644 --- a/Dockerfile.test +++ b/Dockerfile.test @@ -8,12 +8,14 @@ USER anaconda WORKDIR /main/workflow-array-ephys # Option 1 - Install DataJoint's remote fork of the workflow and elements -RUN git clone https://github.com/datajoint/workflow-array-ephys.git /main/workflow-array-ephys +# RUN git clone https://github.com/datajoint/workflow-array-ephys.git /main/ # Option 2 - Install user's remote fork of element and workflow # or an unreleased version of the element +# RUN pip install git+https://github.com/element-lab.git +# RUN pip install git+https://github.com//element-animal.git +# RUN pip install git+https://github.com//element-session.git # RUN pip install git+https://github.com//element-array-ephys.git -# RUN git clone https://github.com//workflow-array-ephys.git /main/workflow-array-ephys # Option 3 - Install user's local fork of element and workflow RUN mkdir /main/element-lab diff --git a/README.md b/README.md index 4c841679..9117c275 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # DataJoint Workflow - Array Electrophysiology -Workflow for extracellular array electrophysiology data acquired with a polytrode probe (e.g. -Neuropixels, Neuralynx) using the `SpikeGLX` or `OpenEphys` acquisition software and processed +Workflow for extracellular array electrophysiology data acquired with a polytrode probe (e.g. +Neuropixels, Neuralynx) using the `SpikeGLX` or `OpenEphys` acquisition software and processed with MATLAB- or python-based `Kilosort` spike sorting software. A complete electrophysiology workflow can be built using the DataJoint Elements. @@ -11,17 +11,17 @@ A complete electrophysiology workflow can be built using the DataJoint Elements. + [element-array-ephys](https://github.com/datajoint/element-array-ephys) This repository provides demonstrations for: -1. Set up a workflow using DataJoint Elements (see +1. Set up a workflow using DataJoint Elements (see [workflow_array_ephys/pipeline.py](workflow_array_ephys/pipeline.py)) -2. Ingestion of data/metadata based on a predefined file structure, file naming -convention, and directory lookup methods (see +2. Ingestion of data/metadata based on a predefined file structure, file naming +convention, and directory lookup methods (see [workflow_array_ephys/paths.py](workflow_array_ephys/paths.py)). 3. Ingestion of clustering results. ## Workflow architecture The electrophysiology workflow presented here uses components from 4 DataJoint -Elements (`element-lab`, `element-animal`, `element-session`, +Elements (`element-lab`, `element-animal`, `element-session`, `element-array-ephys`) assembled together to form a fully functional workflow. ### element-lab @@ -45,7 +45,7 @@ https://github.com/datajoint/element-animal/blob/main/images/subject_diagram.svg ## Interacting with the DataJoint workflow -+ Please refer to the following workflow-specific -[Jupyter notebooks](/notebooks) for an in-depth explanation of how to run the -workflow ([03-process.ipynb](notebooks/03-process.ipynb)) and explore the data -([05-explore.ipynb](notebooks/05-explore.ipynb)). \ No newline at end of file ++ Please refer to the following workflow-specific +workflow ([03-process.ipynb](notebooks/03-process.ipynb)) and explore the data +[Jupyter notebooks](/notebooks) for an in-depth explanation of how to run the +([05-explore.ipynb](notebooks/05-explore.ipynb)). diff --git a/docker-compose-dev.yaml b/docker-compose-dev.yaml index 3bcb2ebf..a921aba7 100644 --- a/docker-compose-dev.yaml +++ b/docker-compose-dev.yaml @@ -15,15 +15,17 @@ services: <<: *net build: context: ../ - dockerfile: ./workflow-session/Dockerfile.dev + dockerfile: ./workflow-array-ephys/Dockerfile.dev env_file: .env - image: workflow_session_dev:0.0.0b2 + image: workflow_array_ephys_dev:0.1.0a4 volumes: + - ${TEST_DATA_DIR}:/main/test_data - ./apt_requirements.txt:/tmp/apt_requirements.txt - ../element-lab:/main/element-lab - ../element-animal:/main/element-animal - ../element-session:/main/element-session - - .:/main/workflow-session + - ../element-array-ephys:/main/element-array-ephys + - .:/main/workflow-array-ephys depends_on: db: condition: service_healthy diff --git a/docker-compose-test.yaml b/docker-compose-test.yaml index 5bf52d20..5b336c61 100644 --- a/docker-compose-test.yaml +++ b/docker-compose-test.yaml @@ -19,7 +19,8 @@ services: build: context: ../ dockerfile: ./workflow-array-ephys/Dockerfile.test - image: workflow_array_ephys:0.1.0a3 + env_file: .env + image: workflow_array_ephys_test:0.1.0a4 environment: - DJ_HOST=workflow-array-ephys_db_1 - DJ_USER=root diff --git a/tests/test_populate.py b/tests/test_populate.py index e645c8ad..c24350bc 100644 --- a/tests/test_populate.py +++ b/tests/test_populate.py @@ -40,12 +40,8 @@ def test_LFP_populate_npx3B_OpenEphys(testdata_paths, pipeline, ephys_recordings 329, 338, 347, 356, 365, 374, 383])) -def test_LFP_populate_npx3A_SpikeGLX(testdata_paths, pipeline, - ephys_recordings): - """ - Populate ephys.LFP with SpikeGLX items, - recording Neuropixels Phase 3A probe - """ +def test_LFP_populate_npx3A_SpikeGLX(testdata_paths, pipeline, ephys_recordings): + """Populate ephys.LFP with SpikeGLX items, recording Neuropixels Phase 3A probe""" ephys = pipeline['ephys'] rel_path = testdata_paths['sglx_npx3A-p1'] diff --git a/workflow_array_ephys/ingest.py b/workflow_array_ephys/ingest.py index b7a1e2d5..8c6fba53 100644 --- a/workflow_array_ephys/ingest.py +++ b/workflow_array_ephys/ingest.py @@ -74,7 +74,7 @@ def ingest_sessions(session_csv_path='./user_data/sessions.csv', verbose=True): 'insertion_number': int(probe_number)}) session_datetimes.append(spikeglx_meta.recording_time) elif acq_software == 'OpenEphys': - loaded_oe = openephys.OpenEphys(session_dir) + loaded_oe = openephys.OpenEphys(sess_dir) session_datetimes.append(loaded_oe.experiment.datetime) for probe_idx, oe_probe in enumerate(loaded_oe.probes.values()): probe_key = {'probe_type': oe_probe.probe_model, diff --git a/workflow_array_ephys/version.py b/workflow_array_ephys/version.py index 6f7f3047..126776b1 100644 --- a/workflow_array_ephys/version.py +++ b/workflow_array_ephys/version.py @@ -1,5 +1,5 @@ """ Package metadata -Update the Docker image tag in `docker-compose-test.yaml` to match +Update the Docker image tag in `docker-compose.yaml` to match """ -__version__ = '0.1.0a3' +__version__ = '0.1.0a4' From 17b1f1d8daa3f73ddce22edb3c4e10d092934a69 Mon Sep 17 00:00:00 2001 From: Chris Broz Date: Thu, 3 Feb 2022 17:46:41 -0600 Subject: [PATCH 34/45] typo from rebasing --- workflow_array_ephys/ingest.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflow_array_ephys/ingest.py b/workflow_array_ephys/ingest.py index 8c6fba53..b7a1e2d5 100644 --- a/workflow_array_ephys/ingest.py +++ b/workflow_array_ephys/ingest.py @@ -74,7 +74,7 @@ def ingest_sessions(session_csv_path='./user_data/sessions.csv', verbose=True): 'insertion_number': int(probe_number)}) session_datetimes.append(spikeglx_meta.recording_time) elif acq_software == 'OpenEphys': - loaded_oe = openephys.OpenEphys(sess_dir) + loaded_oe = openephys.OpenEphys(session_dir) session_datetimes.append(loaded_oe.experiment.datetime) for probe_idx, oe_probe in enumerate(loaded_oe.probes.values()): probe_key = {'probe_type': oe_probe.probe_model, From 9a6ffd820dd5c1683704a93334cefff3efabcf66 Mon Sep 17 00:00:00 2001 From: Chris Brozdowski Date: Mon, 28 Feb 2022 12:14:16 -0600 Subject: [PATCH 35/45] Apply suggestions from code review Co-authored-by: Kabilar Gunalan --- workflow_array_ephys/pipeline.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflow_array_ephys/pipeline.py b/workflow_array_ephys/pipeline.py index f69774fd..89751802 100644 --- a/workflow_array_ephys/pipeline.py +++ b/workflow_array_ephys/pipeline.py @@ -20,9 +20,9 @@ lab.activate(db_prefix + 'lab') -Experimenter = lab.User subject.activate(db_prefix + 'subject', linking_module=__name__) +Experimenter = lab.User session.activate(db_prefix + 'session', linking_module=__name__) From f647307081d60ba688925a6a01c90a8b54e47cb1 Mon Sep 17 00:00:00 2001 From: Chris Brozdowski Date: Tue, 1 Mar 2022 09:55:25 -0600 Subject: [PATCH 36/45] Update README.md from code review suggestion Co-authored-by: Kabilar Gunalan --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 9117c275..317545ca 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ https://github.com/datajoint/element-animal/blob/main/images/subject_diagram.svg ## Interacting with the DataJoint workflow -+ Please refer to the following workflow-specific -workflow ([03-process.ipynb](notebooks/03-process.ipynb)) and explore the data -[Jupyter notebooks](/notebooks) for an in-depth explanation of how to run the -([05-explore.ipynb](notebooks/05-explore.ipynb)). ++ Please refer to the following workflow-specific + [Jupyter notebooks](/notebooks) for an in-depth explanation of how to run the + workflow ([03-process.ipynb](notebooks/03-process.ipynb)) and explore the data + ([05-explore.ipynb](notebooks/05-explore.ipynb)). From b292bd06f6dcdef76c44c646a53760991df0f14c Mon Sep 17 00:00:00 2001 From: Chris Brozdowski Date: Tue, 1 Mar 2022 10:06:06 -0600 Subject: [PATCH 37/45] Code review, revert DJ_HOST name to db Co-authored-by: Kabilar Gunalan --- docker-compose-test.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose-test.yaml b/docker-compose-test.yaml index 5b336c61..1549ca87 100644 --- a/docker-compose-test.yaml +++ b/docker-compose-test.yaml @@ -22,7 +22,7 @@ services: env_file: .env image: workflow_array_ephys_test:0.1.0a4 environment: - - DJ_HOST=workflow-array-ephys_db_1 + - DJ_HOST=db - DJ_USER=root - DJ_PASS=simple - EPHYS_ROOT_DATA_DIR=/main/test_data/workflow_ephys_data1/,/main/test_data/workflow_ephys_data2/ From 8eec742065c4004486c40c04d1bafeb2aceb73f7 Mon Sep 17 00:00:00 2001 From: Chris Broz Date: Tue, 1 Mar 2022 10:11:05 -0600 Subject: [PATCH 38/45] remove insert length logic where unnecessary --- tests/test_export.py | 0 workflow_array_ephys/ingest.py | 13 ++----------- 2 files changed, 2 insertions(+), 11 deletions(-) create mode 100644 tests/test_export.py diff --git a/tests/test_export.py b/tests/test_export.py new file mode 100644 index 00000000..e69de29b diff --git a/workflow_array_ephys/ingest.py b/workflow_array_ephys/ingest.py index b7a1e2d5..c410beb2 100644 --- a/workflow_array_ephys/ingest.py +++ b/workflow_array_ephys/ingest.py @@ -99,26 +99,17 @@ def ingest_sessions(session_csv_path='./user_data/sessions.csv', verbose=True): probe_insertion_list.extend([{**session_key, **insertion } for insertion in insertions]) - if verbose: - previous_length = len(session.Session.fetch()) session.Session.insert(session_list) session.SessionDirectory.insert(session_dir_list) if verbose: - insert_length = len(session.Session.fetch()) - previous_length - print(f'\n---- Insert {insert_length} entry(s) into session.Session ----') + print(f'\n---- Insert {session_list} entry(s) into session.Session ----') - if verbose: - previous_length = len(probe.Probe.fetch()) probe.Probe.insert(probe_list) if verbose: - insert_length = len(probe.Probe.fetch()) - previous_length - print(f'\n---- Insert {insert_length} entry(s) into probe.Probe ----') + print(f'\n---- Insert {probe_list} entry(s) into probe.Probe ----') - if verbose: - previous_length = len(ephys.ProbeInsertion.fetch()) ephys.ProbeInsertion.insert(probe_insertion_list) if verbose: - insert_length = len(ephys.ProbeInsertion.fetch()) - previous_length print(f'\n---- Insert {len(probe_insertion_list)} entry(s) into ' + 'ephys.ProbeInsertion ----') print('\n---- Successfully completed ingest_subjects ----') From cf4a8508cde0317c859d0591d16ea396297f0cd1 Mon Sep 17 00:00:00 2001 From: Chris Brozdowski Date: Tue, 1 Mar 2022 10:24:30 -0600 Subject: [PATCH 39/45] Apply suggestions from code review Co-authored-by: Kabilar Gunalan --- workflow_array_ephys/ingest.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/workflow_array_ephys/ingest.py b/workflow_array_ephys/ingest.py index c410beb2..9ced0519 100644 --- a/workflow_array_ephys/ingest.py +++ b/workflow_array_ephys/ingest.py @@ -102,11 +102,11 @@ def ingest_sessions(session_csv_path='./user_data/sessions.csv', verbose=True): session.Session.insert(session_list) session.SessionDirectory.insert(session_dir_list) if verbose: - print(f'\n---- Insert {session_list} entry(s) into session.Session ----') + print(f'\n---- Insert {len(session_list)} entry(s) into session.Session ----') probe.Probe.insert(probe_list) if verbose: - print(f'\n---- Insert {probe_list} entry(s) into probe.Probe ----') + print(f'\n---- Insert {len(probe_list)} entry(s) into probe.Probe ----') ephys.ProbeInsertion.insert(probe_insertion_list) if verbose: From c0d80646f4fdc76ad992a1f67a7d1a450180a4ac Mon Sep 17 00:00:00 2001 From: Chris Broz Date: Tue, 1 Mar 2022 10:27:16 -0600 Subject: [PATCH 40/45] hardcode djarchive workflow-array-ephys-benchmark/v2 in tests/__init --- tests/__init__.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/__init__.py b/tests/__init__.py index 2818ddec..d63800d9 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -95,14 +95,14 @@ def test_data(dj_config): import djarchive_client client = djarchive_client.client() - workflow_version = workflow_array_ephys.version.__version__ + workflow_version = 'v2' test_data_dir = get_ephys_root_data_dir() if isinstance(test_data_dir, list): # if multiple root dirs, first test_data_dir = test_data_dir[0] - client.download('workflow-array-ephys-test-set', - workflow_version.replace('.', '_'), + client.download('workflow-array-ephys-benchmark', + 'v2', str(test_data_dir), create_target=False) return From c53bbf5671f4392ef8251b640fb76bebc979a2d4 Mon Sep 17 00:00:00 2001 From: Chris Broz Date: Tue, 1 Mar 2022 13:10:07 -0600 Subject: [PATCH 41/45] Update install.md link --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 317545ca..98341270 100644 --- a/README.md +++ b/README.md @@ -40,8 +40,8 @@ https://github.com/datajoint/element-animal/blob/main/images/subject_diagram.svg ## Installation instructions -+ The installation instructions can be found at [datajoint-elements/install.md]( - https://github.com/datajoint/datajoint-elements/blob/main/install.md). ++ The installation instructions can be found at the +[datajoint-elements repository](https://github.com/datajoint/datajoint-elements/blob/main/gh-pages/docs/install.md). ## Interacting with the DataJoint workflow From 20cd40040f2be324ec81c9eed516dd051aff8eca Mon Sep 17 00:00:00 2001 From: Chris Brozdowski Date: Tue, 1 Mar 2022 15:18:44 -0600 Subject: [PATCH 42/45] Apply suggestions from code review Co-authored-by: Kabilar Gunalan --- docker-compose-test.yaml | 3 +++ tests/__init__.py | 4 +--- tests/test_ingest.py | 14 +++----------- 3 files changed, 7 insertions(+), 14 deletions(-) diff --git a/docker-compose-test.yaml b/docker-compose-test.yaml index 1549ca87..e88f8d8d 100644 --- a/docker-compose-test.yaml +++ b/docker-compose-test.yaml @@ -37,6 +37,9 @@ services: volumes: - ${TEST_DATA_DIR}:/main/test_data - ./apt_requirements.txt:/tmp/apt_requirements.txt + - ../element-lab:/main/element-lab + - ../element-animal:/main/element-animal + - ../element-session:/main/element-session - ../element-array-ephys:/main/element-array-ephys - .:/main/workflow-array-ephys depends_on: diff --git a/tests/__init__.py b/tests/__init__.py index d63800d9..cfb5d860 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -66,11 +66,10 @@ def dj_config(): def test_data(dj_config): """If data does not exist or partial data is present, attempt download with DJArchive to the first listed root directory""" - test_data_dirs = [] test_data_exists = True for p in sessions_dirs: try: - test_data_dirs.append(find_full_path(get_ephys_root_data_dir(), p)) + find_full_path(get_ephys_root_data_dir(), p) except FileNotFoundError: test_data_exists = False # If data not found @@ -95,7 +94,6 @@ def test_data(dj_config): import djarchive_client client = djarchive_client.client() - workflow_version = 'v2' test_data_dir = get_ephys_root_data_dir() if isinstance(test_data_dir, list): # if multiple root dirs, first diff --git a/tests/test_ingest.py b/tests/test_ingest.py index 6173ac27..0fa1be1a 100644 --- a/tests/test_ingest.py +++ b/tests/test_ingest.py @@ -39,10 +39,7 @@ def test_find_valid_full_path(pipeline, sessions_csv): from element_interface.utils import find_full_path get_ephys_root_data_dir = pipeline['get_ephys_root_data_dir'] - if not isinstance(get_ephys_root_data_dir(), list): # ensure is list - ephys_root_data_dir = [get_ephys_root_data_dir()] # for appending below - else: - ephys_root_data_dir = get_ephys_root_data_dir() + ephys_root_data_dir = [get_ephys_root_data_dir()] if not isinstance(get_ephys_root_data_dir(), list) else get_ephys_root_data_dir() # add more options for root directories if sys.platform == 'win32': # win32 even if Windows 64-bit @@ -53,9 +50,7 @@ def test_find_valid_full_path(pipeline, sessions_csv): # test: providing relative-path: correctly search for the full-path sessions, _ = sessions_csv sess = sessions.iloc[0] - docker_full_path = find_full_path(['/main/test_data/workflow_ephys_data1/', - '/main/test_data/workflow_ephys_data2/'], - sess.session_dir) + docker_full_path = pathlib.Path('/main/test_data/workflow_ephys_data1/') / sess.session_dir session_full_path = find_full_path(ephys_root_data_dir, sess.session_dir) assert docker_full_path == session_full_path, str('Session path does not match ' @@ -71,10 +66,7 @@ def test_find_root_directory(pipeline, sessions_csv): from element_interface.utils import find_root_directory get_ephys_root_data_dir = pipeline['get_ephys_root_data_dir'] - if not isinstance(get_ephys_root_data_dir(), list): # ensure is list - ephys_root_data_dir = [get_ephys_root_data_dir()] # for appending below - else: - ephys_root_data_dir = get_ephys_root_data_dir() + ephys_root_data_dir = [get_ephys_root_data_dir()] if not isinstance(get_ephys_root_data_dir(), list) else get_ephys_root_data_dir() # add more options for root directories if sys.platform == 'win32': From d14d087959f5c7d36b93bcf038860d27275e3107 Mon Sep 17 00:00:00 2001 From: Chris Broz Date: Tue, 1 Mar 2022 16:00:49 -0600 Subject: [PATCH 43/45] pep8 linelength. hardcode test_find_valid_full_path --- Dockerfile.test | 1 + tests/__init__.py | 6 +++--- tests/test_ingest.py | 13 +++++++++---- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/Dockerfile.test b/Dockerfile.test index 24631ac0..d19bf6b0 100644 --- a/Dockerfile.test +++ b/Dockerfile.test @@ -16,6 +16,7 @@ WORKDIR /main/workflow-array-ephys # RUN pip install git+https://github.com//element-animal.git # RUN pip install git+https://github.com//element-session.git # RUN pip install git+https://github.com//element-array-ephys.git +# RUN git clone https://github.com//workflow-array-ephys.git /main/workflow-array-ephys # Option 3 - Install user's local fork of element and workflow RUN mkdir /main/element-lab diff --git a/tests/__init__.py b/tests/__init__.py index cfb5d860..7daca885 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -18,7 +18,7 @@ # ------------------- SOME CONSTANTS ------------------- _tear_down = True -verbose = False +verbose = True test_user_data_dir = pathlib.Path('./tests/user_data') test_user_data_dir.mkdir(exist_ok=True) @@ -69,7 +69,7 @@ def test_data(dj_config): test_data_exists = True for p in sessions_dirs: try: - find_full_path(get_ephys_root_data_dir(), p) + find_full_path(get_ephys_root_data_dir(), p) except FileNotFoundError: test_data_exists = False # If data not found @@ -299,6 +299,7 @@ def clustering_tasks(pipeline, kilosort_paramset, ephys_recordings): with QuietStdOut(): ephys.ClusteringTask.delete() + @pytest.fixture def clustering(clustering_tasks, pipeline): """Populate ephys.Clustering""" @@ -332,4 +333,3 @@ def curations(clustering, pipeline): else: with QuietStdOut(): ephys.Curation.delete() - diff --git a/tests/test_ingest.py b/tests/test_ingest.py index 0fa1be1a..673cb51c 100644 --- a/tests/test_ingest.py +++ b/tests/test_ingest.py @@ -39,7 +39,9 @@ def test_find_valid_full_path(pipeline, sessions_csv): from element_interface.utils import find_full_path get_ephys_root_data_dir = pipeline['get_ephys_root_data_dir'] - ephys_root_data_dir = [get_ephys_root_data_dir()] if not isinstance(get_ephys_root_data_dir(), list) else get_ephys_root_data_dir() + ephys_root_data_dir = ([get_ephys_root_data_dir()] + if not isinstance(get_ephys_root_data_dir(), list) + else get_ephys_root_data_dir()) # add more options for root directories if sys.platform == 'win32': # win32 even if Windows 64-bit @@ -50,9 +52,11 @@ def test_find_valid_full_path(pipeline, sessions_csv): # test: providing relative-path: correctly search for the full-path sessions, _ = sessions_csv sess = sessions.iloc[0] - docker_full_path = pathlib.Path('/main/test_data/workflow_ephys_data1/') / sess.session_dir session_full_path = find_full_path(ephys_root_data_dir, sess.session_dir) + docker_full_path = pathlib.Path('/main/test_data/workflow_ephys_data1/' + + 'subject1/session1') + assert docker_full_path == session_full_path, str('Session path does not match ' + 'docker root: ' + f'{docker_full_path}') @@ -66,8 +70,9 @@ def test_find_root_directory(pipeline, sessions_csv): from element_interface.utils import find_root_directory get_ephys_root_data_dir = pipeline['get_ephys_root_data_dir'] - ephys_root_data_dir = [get_ephys_root_data_dir()] if not isinstance(get_ephys_root_data_dir(), list) else get_ephys_root_data_dir() - + ephys_root_data_dir = ([get_ephys_root_data_dir()] + if not isinstance(get_ephys_root_data_dir(), list) + else get_ephys_root_data_dir()) # add more options for root directories if sys.platform == 'win32': ephys_root_data_dir = ephys_root_data_dir + ['J:/', 'M:/'] From ba8d3e191553aba9a885d4e56f663b3568eead6e Mon Sep 17 00:00:00 2001 From: Chris Broz Date: Tue, 1 Mar 2022 16:22:11 -0600 Subject: [PATCH 44/45] Refactor pipeline() verbose conditional --- docker-compose-test.yaml | 2 +- tests/__init__.py | 37 ++++++++++++------------------------- 2 files changed, 13 insertions(+), 26 deletions(-) diff --git a/docker-compose-test.yaml b/docker-compose-test.yaml index e88f8d8d..9d020bbf 100644 --- a/docker-compose-test.yaml +++ b/docker-compose-test.yaml @@ -1,7 +1,7 @@ # export COMPOSE_DOCKER_CLI_BUILD=0 # some machines need for smooth --build # .env file: TEST_DATA_DIR= # docker-compose -f docker-compose-test.yaml up --build -# docker exec -it workflow-session_workflow_1 /bin/bash +# docker exec -it workflow-array-ephys_workflow_1 /bin/bash # docker-compose -f docker-compose-test.yaml down version: "2.4" diff --git a/tests/__init__.py b/tests/__init__.py index 7daca885..3e6c7151 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -18,7 +18,7 @@ # ------------------- SOME CONSTANTS ------------------- _tear_down = True -verbose = True +verbose = False test_user_data_dir = pathlib.Path('./tests/user_data') test_user_data_dir.mkdir(exist_ok=True) @@ -107,31 +107,18 @@ def test_data(dj_config): @pytest.fixture def pipeline(): - if verbose: - from workflow_array_ephys import pipeline - - yield {'subject': pipeline.subject, - 'lab': pipeline.lab, - 'ephys': pipeline.ephys, - 'probe': pipeline.probe, - 'session': pipeline.session, - 'get_ephys_root_data_dir': pipeline.get_ephys_root_data_dir} - - if _tear_down: - pipeline.subject.Subject.delete() - else: + from workflow_array_ephys import pipeline + yield {'subject': pipeline.subject, + 'lab': pipeline.lab, + 'ephys': pipeline.ephys, + 'probe': pipeline.probe, + 'session': pipeline.session, + 'get_ephys_root_data_dir': pipeline.get_ephys_root_data_dir} + if verbose and _tear_down: + pipeline.subject.Subject.delete() + if _tear_down: with QuietStdOut(): - from workflow_array_ephys import pipeline - - yield {'subject': pipeline.subject, - 'lab': pipeline.lab, - 'ephys': pipeline.ephys, - 'probe': pipeline.probe, - 'session': pipeline.session, - 'get_ephys_root_data_dir': pipeline.get_ephys_root_data_dir} - - if _tear_down: - pipeline.subject.Subject.delete() + pipeline.subject.Subject.delete() @pytest.fixture From 3f53fede03d63a1701a4f64c36b878a04bf98f53 Mon Sep 17 00:00:00 2001 From: Chris Brozdowski Date: Wed, 2 Mar 2022 14:37:33 -0600 Subject: [PATCH 45/45] Apply suggestions from code review Co-authored-by: Kabilar Gunalan --- tests/__init__.py | 2 +- tests/test_ingest.py | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/tests/__init__.py b/tests/__init__.py index 3e6c7151..07773698 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -116,7 +116,7 @@ def pipeline(): 'get_ephys_root_data_dir': pipeline.get_ephys_root_data_dir} if verbose and _tear_down: pipeline.subject.Subject.delete() - if _tear_down: + elif not verbose and _tear_down: with QuietStdOut(): pipeline.subject.Subject.delete() diff --git a/tests/test_ingest.py b/tests/test_ingest.py index 673cb51c..e8d19923 100644 --- a/tests/test_ingest.py +++ b/tests/test_ingest.py @@ -64,8 +64,7 @@ def test_find_valid_full_path(pipeline, sessions_csv): def test_find_root_directory(pipeline, sessions_csv): """ - Test that ephys_root_data_dir loaded as docker directory - /main/test_data/workflow_ephys_data1/ + Test that `find_root_directory` works correctly. """ from element_interface.utils import find_root_directory @@ -88,7 +87,7 @@ def test_find_root_directory(pipeline, sessions_csv): root_dir = find_root_directory(ephys_root_data_dir, session_full_path) assert root_dir.as_posix() == '/main/test_data/workflow_ephys_data1',\ - 'Root path does not match docker: /main/test_data/workflow_ephys_data1' + 'Root path does not match: /main/test_data/workflow_ephys_data1' def test_paramset_insert(kilosort_paramset, pipeline):