eegdash 0.0.1__py3-none-any.whl → 0.0.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of eegdash might be problematic. Click here for more details.
- eegdash/data_utils.py → data_utils.py +131 -5
- {eegdash-0.0.1.dist-info → eegdash-0.0.3.dist-info}/METADATA +75 -8
- eegdash-0.0.3.dist-info/RECORD +8 -0
- {eegdash-0.0.1.dist-info → eegdash-0.0.3.dist-info}/WHEEL +1 -1
- eegdash-0.0.3.dist-info/top_level.txt +3 -0
- main.py +199 -0
- eegdash/SignalStore/__init__.py +0 -0
- eegdash/SignalStore/signalstore/__init__.py +0 -3
- eegdash/SignalStore/signalstore/adapters/read_adapters/abstract_read_adapter.py +0 -13
- eegdash/SignalStore/signalstore/adapters/read_adapters/domain_modeling/schema_read_adapter.py +0 -16
- eegdash/SignalStore/signalstore/adapters/read_adapters/domain_modeling/vocabulary_read_adapter.py +0 -19
- eegdash/SignalStore/signalstore/adapters/read_adapters/handmade_records/excel_study_organizer_read_adapter.py +0 -114
- eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/axona/axona_read_adapter.py +0 -912
- eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/ReadIntanSpikeFile.py +0 -140
- eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/intan_read_adapter.py +0 -29
- eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhd_format/intanutil/__init__.py +0 -0
- eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhd_format/intanutil/data_to_result.py +0 -62
- eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhd_format/intanutil/get_bytes_per_data_block.py +0 -36
- eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhd_format/intanutil/notch_filter.py +0 -50
- eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhd_format/intanutil/qstring.py +0 -41
- eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhd_format/intanutil/read_header.py +0 -135
- eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhd_format/intanutil/read_one_data_block.py +0 -45
- eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhd_format/load_intan_rhd_format.py +0 -204
- eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhs_format/intanutil/__init__.py +0 -0
- eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhs_format/intanutil/data_to_result.py +0 -60
- eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhs_format/intanutil/get_bytes_per_data_block.py +0 -37
- eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhs_format/intanutil/notch_filter.py +0 -50
- eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhs_format/intanutil/qstring.py +0 -41
- eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhs_format/intanutil/read_header.py +0 -153
- eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhs_format/intanutil/read_one_data_block.py +0 -47
- eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhs_format/load_intan_rhs_format.py +0 -213
- eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/neurodata_without_borders/neurodata_without_borders_read_adapter.py +0 -14
- eegdash/SignalStore/signalstore/operations/__init__.py +0 -4
- eegdash/SignalStore/signalstore/operations/handler_executor.py +0 -22
- eegdash/SignalStore/signalstore/operations/handler_factory.py +0 -41
- eegdash/SignalStore/signalstore/operations/handlers/base_handler.py +0 -44
- eegdash/SignalStore/signalstore/operations/handlers/domain/property_model_handlers.py +0 -79
- eegdash/SignalStore/signalstore/operations/handlers/domain/schema_handlers.py +0 -3
- eegdash/SignalStore/signalstore/operations/helpers/abstract_helper.py +0 -17
- eegdash/SignalStore/signalstore/operations/helpers/neuroscikit_extractor.py +0 -33
- eegdash/SignalStore/signalstore/operations/helpers/neuroscikit_rawio.py +0 -165
- eegdash/SignalStore/signalstore/operations/helpers/spikeinterface_helper.py +0 -100
- eegdash/SignalStore/signalstore/operations/helpers/wrappers/neo_wrappers.py +0 -21
- eegdash/SignalStore/signalstore/operations/helpers/wrappers/nwb_wrappers.py +0 -27
- eegdash/SignalStore/signalstore/store/__init__.py +0 -8
- eegdash/SignalStore/signalstore/store/data_access_objects.py +0 -1181
- eegdash/SignalStore/signalstore/store/datafile_adapters.py +0 -131
- eegdash/SignalStore/signalstore/store/repositories.py +0 -928
- eegdash/SignalStore/signalstore/store/store_errors.py +0 -68
- eegdash/SignalStore/signalstore/store/unit_of_work.py +0 -97
- eegdash/SignalStore/signalstore/store/unit_of_work_provider.py +0 -67
- eegdash/SignalStore/signalstore/utilities/data_adapters/spike_interface_adapters/si_recording.py +0 -1
- eegdash/SignalStore/signalstore/utilities/data_adapters/spike_interface_adapters/si_sorter.py +0 -1
- eegdash/SignalStore/signalstore/utilities/testing/data_mocks.py +0 -513
- eegdash/SignalStore/signalstore/utilities/tools/dataarrays.py +0 -49
- eegdash/SignalStore/signalstore/utilities/tools/mongo_records.py +0 -25
- eegdash/SignalStore/signalstore/utilities/tools/operation_response.py +0 -78
- eegdash/SignalStore/signalstore/utilities/tools/purge_orchestration_response.py +0 -21
- eegdash/SignalStore/signalstore/utilities/tools/quantities.py +0 -15
- eegdash/SignalStore/signalstore/utilities/tools/strings.py +0 -38
- eegdash/SignalStore/signalstore/utilities/tools/time.py +0 -17
- eegdash/SignalStore/tests/conftest.py +0 -799
- eegdash/SignalStore/tests/data/valid_data/data_arrays/make_fake_data.py +0 -59
- eegdash/SignalStore/tests/unit/store/conftest.py +0 -0
- eegdash/SignalStore/tests/unit/store/test_data_access_objects.py +0 -1235
- eegdash/SignalStore/tests/unit/store/test_repositories.py +0 -1309
- eegdash/SignalStore/tests/unit/store/test_unit_of_work.py +0 -7
- eegdash/SignalStore/tests/unit/test_ci_cd.py +0 -8
- eegdash/aws_ingest.py +0 -29
- eegdash/main.py +0 -17
- eegdash/signalstore_data_utils.py +0 -280
- eegdash-0.0.1.dist-info/RECORD +0 -72
- eegdash-0.0.1.dist-info/top_level.txt +0 -1
- /eegdash/__init__.py → /__init__.py +0 -0
- {eegdash-0.0.1.dist-info → eegdash-0.0.3.dist-info}/LICENSE +0 -0
eegdash/aws_ingest.py
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import sys
|
|
2
|
-
sys.path.append('..')
|
|
3
|
-
import argparse
|
|
4
|
-
from src.signalstore_data_utils import SignalstoreBIDS
|
|
5
|
-
|
|
6
|
-
def add_bids_dataset(args):
|
|
7
|
-
signalstore_aws = SignalstoreBIDS(
|
|
8
|
-
dbconnectionstring='mongodb://23.21.113.214:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+2.2.1',
|
|
9
|
-
local_filesystem=False,
|
|
10
|
-
project_name='eegdash',
|
|
11
|
-
)
|
|
12
|
-
signalstore_aws.add_bids_dataset(dataset=args.dataset, data_dir=args.data, raw_format='eeglab')
|
|
13
|
-
|
|
14
|
-
def main():
|
|
15
|
-
# Create the parser
|
|
16
|
-
parser = argparse.ArgumentParser(description="A simple command line argument parser")
|
|
17
|
-
|
|
18
|
-
# Add arguments
|
|
19
|
-
parser.add_argument('--data', type=str, default="/mnt/nemar/openneuro/ds004186", help="Path to data directory (Default: /mnt/nemar/openneuro/ds004186)")
|
|
20
|
-
parser.add_argument('--dataset', type=str, default="ds004186", help="Dataset name (Default: ds004186)")
|
|
21
|
-
|
|
22
|
-
# Parse the arguments
|
|
23
|
-
args = parser.parse_args()
|
|
24
|
-
print('Arguments:', args)
|
|
25
|
-
|
|
26
|
-
add_bids_dataset(args)
|
|
27
|
-
|
|
28
|
-
if __name__ == "__main__":
|
|
29
|
-
main()
|
eegdash/main.py
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
from eegdash.signalstore_data_utils import SignalstoreBIDS
|
|
2
|
-
|
|
3
|
-
class EEGDash:
|
|
4
|
-
def __init__(self):
|
|
5
|
-
self.sstore = SignalstoreBIDS(
|
|
6
|
-
# dbconnectionstring='mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+2.3.1',
|
|
7
|
-
dbconnectionstring='mongodb+srv://eegdash-user:mdzoMjQcHWTVnKDq@cluster0.vz35p.mongodb.net/?retryWrites=true&w=majority&appName=Cluster0',
|
|
8
|
-
is_public=True,
|
|
9
|
-
local_filesystem=False,
|
|
10
|
-
project_name='eegdash'
|
|
11
|
-
)
|
|
12
|
-
|
|
13
|
-
def find(self, *args):
|
|
14
|
-
return self.sstore.find(*args)
|
|
15
|
-
|
|
16
|
-
def get(self, *args):
|
|
17
|
-
return self.sstore.get(*args)
|
|
@@ -1,280 +0,0 @@
|
|
|
1
|
-
from pathlib import Path
|
|
2
|
-
from dotenv import load_dotenv
|
|
3
|
-
import re
|
|
4
|
-
import numpy as np
|
|
5
|
-
import xarray as xr
|
|
6
|
-
import os
|
|
7
|
-
from eegdash.SignalStore.signalstore.store import UnitOfWorkProvider
|
|
8
|
-
# from mongomock import MongoClient
|
|
9
|
-
from pymongo.mongo_client import MongoClient
|
|
10
|
-
from pymongo.server_api import ServerApi
|
|
11
|
-
from fsspec.implementations.local import LocalFileSystem
|
|
12
|
-
from fsspec.implementations.dirfs import DirFileSystem
|
|
13
|
-
import pandas as pd
|
|
14
|
-
import json
|
|
15
|
-
import s3fs
|
|
16
|
-
from eegdash.data_utils import BIDSDataset
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
class SignalstoreBIDS():
|
|
20
|
-
AWS_BUCKET = 'eegdash'
|
|
21
|
-
def __init__(self,
|
|
22
|
-
project_name=AWS_BUCKET,
|
|
23
|
-
dbconnectionstring="mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+2.3.1",
|
|
24
|
-
is_public=False,
|
|
25
|
-
local_filesystem=True,
|
|
26
|
-
):
|
|
27
|
-
self.is_public = is_public
|
|
28
|
-
if is_public:
|
|
29
|
-
dbconnectionstring='mongodb+srv://eegdash-user:mdzoMjQcHWTVnKDq@cluster0.vz35p.mongodb.net/?retryWrites=true&w=majority&appName=Cluster0',
|
|
30
|
-
else:
|
|
31
|
-
load_dotenv()
|
|
32
|
-
dbconnectionstring = os.getenv('DB_CONNECTION_STRING')
|
|
33
|
-
|
|
34
|
-
# Create a new client and connect to the server
|
|
35
|
-
client = MongoClient(dbconnectionstring, server_api=ServerApi('1'))
|
|
36
|
-
# Send a ping to confirm a successful connection
|
|
37
|
-
try:
|
|
38
|
-
client.admin.command('ping')
|
|
39
|
-
print("Pinged your deployment. You successfully connected to MongoDB!")
|
|
40
|
-
except Exception as e:
|
|
41
|
-
print(e)
|
|
42
|
-
|
|
43
|
-
memory_store = {}
|
|
44
|
-
filesystem = self.set_up_filesystem(is_local=local_filesystem)
|
|
45
|
-
self.uow_provider = UnitOfWorkProvider(
|
|
46
|
-
mongo_client=client,
|
|
47
|
-
filesystem=filesystem,
|
|
48
|
-
memory_store=memory_store,
|
|
49
|
-
default_filetype='zarr'
|
|
50
|
-
)
|
|
51
|
-
|
|
52
|
-
self.project_name=project_name
|
|
53
|
-
self.uow = self.uow_provider(self.project_name)
|
|
54
|
-
# self.load_domain_models()
|
|
55
|
-
|
|
56
|
-
def set_up_filesystem(self, is_local=True):
|
|
57
|
-
if is_local:
|
|
58
|
-
cache_path='/mnt/nemar/dtyoung/eeg-ssl-data' # path where signalstore netCDF files are stored
|
|
59
|
-
# Create a directory for the dataset
|
|
60
|
-
store_path = Path(cache_path)
|
|
61
|
-
if not os.path.exists(store_path):
|
|
62
|
-
os.makedirs(store_path)
|
|
63
|
-
|
|
64
|
-
filesystem = LocalFileSystem()
|
|
65
|
-
tmp_dir_fs = DirFileSystem(
|
|
66
|
-
store_path,
|
|
67
|
-
filesystem=filesystem
|
|
68
|
-
)
|
|
69
|
-
return tmp_dir_fs
|
|
70
|
-
else:
|
|
71
|
-
if self.is_public:
|
|
72
|
-
s3 = s3fs.S3FileSystem(anon=True, client_kwargs={'region_name': 'us-east-2'})
|
|
73
|
-
else:
|
|
74
|
-
s3 = s3fs.S3FileSystem(client_kwargs={'region_name': 'us-east-2'})
|
|
75
|
-
return s3
|
|
76
|
-
|
|
77
|
-
def load_domain_models(self):
|
|
78
|
-
cwd = Path.cwd()
|
|
79
|
-
domain_models_path = cwd / f"DomainModels/{self.project_name}/data_models.json"
|
|
80
|
-
metamodel_path = cwd / f"DomainModels/{self.project_name}/metamodels.json"
|
|
81
|
-
property_path = cwd / f"DomainModels/{self.project_name}/property_models.json"
|
|
82
|
-
with open(metamodel_path) as f:
|
|
83
|
-
metamodels = json.load(f)
|
|
84
|
-
|
|
85
|
-
with open(property_path) as f:
|
|
86
|
-
property_models = json.load(f)
|
|
87
|
-
|
|
88
|
-
# load domain models json file
|
|
89
|
-
with open(domain_models_path) as f:
|
|
90
|
-
domain_models = json.load(f)
|
|
91
|
-
|
|
92
|
-
with self.uow as uow:
|
|
93
|
-
for property_model in property_models:
|
|
94
|
-
uow.domain_models.add(property_model)
|
|
95
|
-
model = uow.domain_models.get(property_model['schema_name'])
|
|
96
|
-
print('property model: ', model['schema_name'])
|
|
97
|
-
for metamodel in metamodels:
|
|
98
|
-
uow.domain_models.add(metamodel)
|
|
99
|
-
model = uow.domain_models.get(metamodel['schema_name'])
|
|
100
|
-
print('meta model: ', model['schema_name'])
|
|
101
|
-
for domain_model in domain_models:
|
|
102
|
-
uow.domain_models.add(domain_model)
|
|
103
|
-
model = uow.domain_models.get(domain_model['schema_name'])
|
|
104
|
-
print('domain model: ', model['schema_name'])
|
|
105
|
-
uow.commit()
|
|
106
|
-
|
|
107
|
-
def extract_attribute(self, pattern, filename):
|
|
108
|
-
match = re.search(pattern, filename)
|
|
109
|
-
return match.group(1) if match else None
|
|
110
|
-
|
|
111
|
-
def load_eeg_attrs_from_bids_file(self, bids_dataset: BIDSDataset, bids_file):
|
|
112
|
-
'''
|
|
113
|
-
bids_file must be a file of the bids_dataset
|
|
114
|
-
'''
|
|
115
|
-
if bids_file not in bids_dataset.files:
|
|
116
|
-
raise ValueError(f'{bids_file} not in {bids_dataset.dataset}')
|
|
117
|
-
f = os.path.basename(bids_file)
|
|
118
|
-
attrs = {
|
|
119
|
-
'schema_ref': 'eeg_signal',
|
|
120
|
-
'data_name': f'{bids_dataset.dataset}_{f}',
|
|
121
|
-
'dataset': bids_dataset.dataset,
|
|
122
|
-
'subject': bids_dataset.subject(bids_file),
|
|
123
|
-
'task': bids_dataset.task(bids_file),
|
|
124
|
-
'session': bids_dataset.session(bids_file),
|
|
125
|
-
'run': bids_dataset.run(bids_file),
|
|
126
|
-
'sampling_frequency': bids_dataset.sfreq(bids_file),
|
|
127
|
-
'modality': 'EEG',
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
return attrs
|
|
131
|
-
|
|
132
|
-
def load_eeg_data_from_bids_file(self, bids_dataset: BIDSDataset, bids_file, eeg_attrs=None):
|
|
133
|
-
'''
|
|
134
|
-
bids_file must be a file of the bids_dataset
|
|
135
|
-
'''
|
|
136
|
-
if bids_file not in bids_dataset.files:
|
|
137
|
-
raise ValueError(f'{bids_file} not in {bids_dataset.dataset}')
|
|
138
|
-
|
|
139
|
-
attrs = self.load_eeg_attrs_from_bids_file(bids_dataset, bids_file) if eeg_attrs is None else eeg_attrs
|
|
140
|
-
|
|
141
|
-
eeg_data = bids_dataset.load_and_preprocess_raw(bids_file)
|
|
142
|
-
print('data shape:', eeg_data.shape)
|
|
143
|
-
|
|
144
|
-
fs = attrs['sampling_frequency']
|
|
145
|
-
max_time = eeg_data.shape[1] / fs
|
|
146
|
-
time_steps = np.linspace(0, max_time, eeg_data.shape[1]).squeeze() # in seconds
|
|
147
|
-
# print('time steps', len(time_steps))
|
|
148
|
-
|
|
149
|
-
# replace eeg.set with channels.tsv
|
|
150
|
-
# todo this is still a hacky way
|
|
151
|
-
channels_tsv = bids_dataset.get_bids_metadata_files(bids_file, 'channels.tsv')
|
|
152
|
-
channels_tsv = Path(channels_tsv[0])
|
|
153
|
-
if channels_tsv.exists():
|
|
154
|
-
channels = pd.read_csv(channels_tsv, sep='\t')
|
|
155
|
-
# get channel names from channel_coords
|
|
156
|
-
channel_names = channels['name'].values
|
|
157
|
-
|
|
158
|
-
eeg_xarray = xr.DataArray(
|
|
159
|
-
data=eeg_data,
|
|
160
|
-
dims=['channel','time'],
|
|
161
|
-
coords={
|
|
162
|
-
'time': time_steps,
|
|
163
|
-
'channel': channel_names
|
|
164
|
-
},
|
|
165
|
-
attrs=attrs
|
|
166
|
-
)
|
|
167
|
-
return eeg_xarray
|
|
168
|
-
|
|
169
|
-
def exist(self, schema_ref='eeg_signal', data_name=''):
|
|
170
|
-
with self.uow as uow:
|
|
171
|
-
query = {
|
|
172
|
-
"schema_ref": schema_ref,
|
|
173
|
-
"data_name": data_name
|
|
174
|
-
}
|
|
175
|
-
sessions = uow.data.find(query)
|
|
176
|
-
if len(sessions) > 0:
|
|
177
|
-
return True
|
|
178
|
-
else:
|
|
179
|
-
return False
|
|
180
|
-
|
|
181
|
-
def add_bids_dataset(self, dataset, data_dir, raw_format='eeglab', overwrite=False, record_only=False):
|
|
182
|
-
if self.is_public:
|
|
183
|
-
raise ValueError('This operation is not allowed for public users')
|
|
184
|
-
|
|
185
|
-
bids_dataset = BIDSDataset(
|
|
186
|
-
data_dir=data_dir,
|
|
187
|
-
dataset=dataset,
|
|
188
|
-
raw_format=raw_format,
|
|
189
|
-
)
|
|
190
|
-
for bids_file in bids_dataset.get_files():
|
|
191
|
-
print('bids raw file', bids_file)
|
|
192
|
-
|
|
193
|
-
signalstore_data_id = f"{dataset}_{os.path.basename(bids_file)}"
|
|
194
|
-
if overwrite:
|
|
195
|
-
self.remove(signalstore_data_id)
|
|
196
|
-
|
|
197
|
-
if self.exist(data_name=signalstore_data_id):
|
|
198
|
-
print('data already exist. skipped')
|
|
199
|
-
continue
|
|
200
|
-
else:
|
|
201
|
-
eeg_attrs = self.load_eeg_attrs_from_bids_file(bids_dataset, bids_file)
|
|
202
|
-
with self.uow as uow:
|
|
203
|
-
# Assume raw data already exists, recreating record only
|
|
204
|
-
eeg_attrs['has_file'] = True
|
|
205
|
-
print('adding record', eeg_attrs['data_name'])
|
|
206
|
-
uow.data.add(eeg_attrs)
|
|
207
|
-
uow.commit()
|
|
208
|
-
if not record_only:
|
|
209
|
-
eeg_xarray = self.load_eeg_data_from_bids_file(bids_dataset, bids_file, eeg_attrs)
|
|
210
|
-
with self.uow as uow:
|
|
211
|
-
print('adding data', eeg_xarray.attrs['data_name'])
|
|
212
|
-
uow.data.add(eeg_xarray)
|
|
213
|
-
uow.commit()
|
|
214
|
-
|
|
215
|
-
def remove(self, schema_ref='eeg_signal', data_name=''):
|
|
216
|
-
if self.is_public:
|
|
217
|
-
raise ValueError('This operation is not allowed for public users')
|
|
218
|
-
|
|
219
|
-
with self.uow as uow:
|
|
220
|
-
sessions = uow.data.find({'schema_ref': schema_ref, 'data_name': data_name})
|
|
221
|
-
if len(session) > 0:
|
|
222
|
-
for session in range(len(sessions)):
|
|
223
|
-
uow.data.remove(session['schema_ref'], session['data_name'])
|
|
224
|
-
uow.commit()
|
|
225
|
-
|
|
226
|
-
def remove_all(self):
|
|
227
|
-
if self.is_public:
|
|
228
|
-
raise ValueError('This operation is not allowed for public users')
|
|
229
|
-
|
|
230
|
-
with self.uow as uow:
|
|
231
|
-
sessions = uow.data.find({})
|
|
232
|
-
print(len(sessions))
|
|
233
|
-
for session in range(len(sessions)):
|
|
234
|
-
uow.data.remove(session['schema_ref'], session['data_name'])
|
|
235
|
-
uow.commit()
|
|
236
|
-
|
|
237
|
-
uow.purge()
|
|
238
|
-
|
|
239
|
-
print('Verifying deletion job. Dataset length: ', len(uow.data.find({})))
|
|
240
|
-
|
|
241
|
-
def find(self, query:dict, validate=False, get_data=False):
|
|
242
|
-
'''
|
|
243
|
-
query: {
|
|
244
|
-
'dataset': 'dsxxxx',
|
|
245
|
-
|
|
246
|
-
}'''
|
|
247
|
-
with self.uow as uow:
|
|
248
|
-
sessions = uow.data.find(query, validate=validate, get_data=get_data)
|
|
249
|
-
if sessions:
|
|
250
|
-
print(f'Found {len(sessions)} records')
|
|
251
|
-
return sessions
|
|
252
|
-
else:
|
|
253
|
-
return []
|
|
254
|
-
|
|
255
|
-
def get(self, query:dict, validate=False):
|
|
256
|
-
'''
|
|
257
|
-
query: {
|
|
258
|
-
'dataset': 'dsxxxx',
|
|
259
|
-
|
|
260
|
-
}'''
|
|
261
|
-
with self.uow as uow:
|
|
262
|
-
sessions = uow.data.find(query, validate=validate, get_data=True)
|
|
263
|
-
if sessions:
|
|
264
|
-
print(f'Found {len(sessions)} records')
|
|
265
|
-
return sessions
|
|
266
|
-
else:
|
|
267
|
-
return []
|
|
268
|
-
|
|
269
|
-
if __name__ == "__main__":
|
|
270
|
-
# sstore_hbn = SignalstoreHBN()
|
|
271
|
-
# sstore_hbn.add_data()
|
|
272
|
-
# sstore_ds004584 = SignalstoreHBN(
|
|
273
|
-
# data_path='/mnt/nemar/openneuro/ds004584',
|
|
274
|
-
# dataset_name='eegdash',
|
|
275
|
-
# local_filesystem=False,
|
|
276
|
-
# dbconnectionstring='mongodb://23.21.113.214:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+2.2.1'
|
|
277
|
-
# )
|
|
278
|
-
# sstore_ds004584.load_domain_models()
|
|
279
|
-
# sstore_ds004584.add_data()
|
|
280
|
-
pass
|
eegdash-0.0.1.dist-info/RECORD
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
eegdash/__init__.py,sha256=hgxE8COvPu3EV2Tq3GqtMk68fsd7bYvOs_0GO6rrzfk,32
|
|
2
|
-
eegdash/aws_ingest.py,sha256=imXA9rvFm49-pSmMaq6RT37k9USfTLAhOgu4WrDdlBc,1045
|
|
3
|
-
eegdash/data_utils.py,sha256=0nF6JaQrkBaxS2zVPjkeUMcWVbh1eigG-nZYPYfBJ38,8927
|
|
4
|
-
eegdash/main.py,sha256=ANyrsVCvDiKNiQAmlQt9FcyOeCoD4Oe6Gq25LM2o38o,675
|
|
5
|
-
eegdash/signalstore_data_utils.py,sha256=YffTIAm5KBBFpl99aEAWTaDPZpBt2ghrBqlTTrrNh8I,10760
|
|
6
|
-
eegdash/SignalStore/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
7
|
-
eegdash/SignalStore/signalstore/__init__.py,sha256=vejaZm3K4LxIgyXxhrT1C4ZNY6BgmmRhYdHOF84kdkk,124
|
|
8
|
-
eegdash/SignalStore/signalstore/adapters/read_adapters/abstract_read_adapter.py,sha256=ktrVx_oJ08FmuvxTatkJ0rUmb5l66gLhWzi9zBMt4Kg,317
|
|
9
|
-
eegdash/SignalStore/signalstore/adapters/read_adapters/domain_modeling/schema_read_adapter.py,sha256=HRBaVTLoRajjDRmFCBuAW6KX1tSLgRW6amCyrV9--Ko,497
|
|
10
|
-
eegdash/SignalStore/signalstore/adapters/read_adapters/domain_modeling/vocabulary_read_adapter.py,sha256=LRa2s6mssWZsw9Dk4PKNy8QYJu7Z-jjkUfLIDxBqpCs,691
|
|
11
|
-
eegdash/SignalStore/signalstore/adapters/read_adapters/handmade_records/excel_study_organizer_read_adapter.py,sha256=-dYuGZ297ZpozwX2wE9bmOyEUT_w-6jBiI5JE32OpdA,4351
|
|
12
|
-
eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/axona/axona_read_adapter.py,sha256=IMY9x66SgE-SzsWJ6ca2A_CcrMIrsgQ--bl80vb0rUU,33850
|
|
13
|
-
eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/ReadIntanSpikeFile.py,sha256=knuR9RjHWcwcPKYxDt6sclUSjJG8cmeyPQumghC8ubs,5061
|
|
14
|
-
eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/intan_read_adapter.py,sha256=T9KTVdtlNgDg4ffX8SRDb00GJxRWcqWoy77iRdMAQzo,1044
|
|
15
|
-
eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhd_format/load_intan_rhd_format.py,sha256=zK2vsrKvjLc0z562zBeQF5IaRGN-a6zz1rn2aAi7ltk,10166
|
|
16
|
-
eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhd_format/intanutil/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
17
|
-
eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhd_format/intanutil/data_to_result.py,sha256=O8rgWMzBKSBdj-qt9wzr3kCgFYHdAo7If96iXZfXhX4,2649
|
|
18
|
-
eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhd_format/intanutil/get_bytes_per_data_block.py,sha256=bivIog0luN9iyY2dLEW7l6KxBd9oHzvLy0Nhl4mrUd4,1607
|
|
19
|
-
eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhd_format/intanutil/notch_filter.py,sha256=sSRDQtmaGrZUF8_7nyMnAESbbPRFi_nLsyxX3Sn0jVU,1417
|
|
20
|
-
eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhd_format/intanutil/qstring.py,sha256=IC_-R-fSQX7XVKHZPteS3sGtC-cISy0CeuBhHZDjv6o,995
|
|
21
|
-
eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhd_format/intanutil/read_header.py,sha256=4-zZvYeiD8CEz2XCKixMlucw7CF1zt_ba8BChMEPSa8,6591
|
|
22
|
-
eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhd_format/intanutil/read_one_data_block.py,sha256=3EWCnyWN4dop-8D4VqllSy92s9CYyv4CUzUWbPz1ODk,3604
|
|
23
|
-
eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhs_format/load_intan_rhs_format.py,sha256=uTffoEfY4PbDGmoAgJtjk5-cLIybAp0A99KFSFM662A,10868
|
|
24
|
-
eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhs_format/intanutil/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
25
|
-
eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhs_format/intanutil/data_to_result.py,sha256=m1tMeDtkl3vrhzDtTyBupEq31apPgHZHqPAio10rgH8,2475
|
|
26
|
-
eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhs_format/intanutil/get_bytes_per_data_block.py,sha256=lrz360FqFDctvTQClt8TDZ3BE4r6P_o2RB-fs5c2kKM,1374
|
|
27
|
-
eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhs_format/intanutil/notch_filter.py,sha256=sSRDQtmaGrZUF8_7nyMnAESbbPRFi_nLsyxX3Sn0jVU,1417
|
|
28
|
-
eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhs_format/intanutil/qstring.py,sha256=zHCsxlWZvOK9c9tWltMHSnL8a-aAJAOuLrwtmGiGT6g,991
|
|
29
|
-
eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhs_format/intanutil/read_header.py,sha256=2CDcC8j07R-5I3UkLIqT6-JKHAFByaQj-tHxuMXi3WY,7523
|
|
30
|
-
eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/intan/load_intan_rhs_format/intanutil/read_one_data_block.py,sha256=OmTCVwUsQh1t-QZE3oDv7rpWzahtGtdTmlcI_rFlkrk,2499
|
|
31
|
-
eegdash/SignalStore/signalstore/adapters/read_adapters/recording_acquisitions/neurodata_without_borders/neurodata_without_borders_read_adapter.py,sha256=lzOMKfwKIiIaiJb5zNzhtlcWLHvOQ6yaPtu2j8Bfoq4,475
|
|
32
|
-
eegdash/SignalStore/signalstore/operations/__init__.py,sha256=AMPuZfqN16WexHAS9qxAH5HGKXR5B0jlMFz6M0Deyxk,222
|
|
33
|
-
eegdash/SignalStore/signalstore/operations/handler_executor.py,sha256=lwyDFmIck_fWpEr729bmeMVR0DkTg0wBU_RD31K9jmc,695
|
|
34
|
-
eegdash/SignalStore/signalstore/operations/handler_factory.py,sha256=UEXZfVgEALmveN5x0YW1a2icIcNlxYBfuZU4HzR4WAk,1867
|
|
35
|
-
eegdash/SignalStore/signalstore/operations/handlers/base_handler.py,sha256=ORgr3TOZsXvGBXpk0O-Aj_CWErW9pGVfsXQZf3f-A34,1538
|
|
36
|
-
eegdash/SignalStore/signalstore/operations/handlers/domain/property_model_handlers.py,sha256=JvCMoBTV_ahe--xZ2vsGMf0FnK4g009Q_RWrJU4yLVI,2836
|
|
37
|
-
eegdash/SignalStore/signalstore/operations/handlers/domain/schema_handlers.py,sha256=Muolz87jNkOH4KmQ_ykFYLaHTSogeW4wtyzmjyE7Iis,100
|
|
38
|
-
eegdash/SignalStore/signalstore/operations/helpers/abstract_helper.py,sha256=OPrnroapxGJXKl2aFOhsy1YMdi79hvb8hLD-kYGMJYk,503
|
|
39
|
-
eegdash/SignalStore/signalstore/operations/helpers/neuroscikit_extractor.py,sha256=NN8os2H5JDopV_al4R8zAaXcRwNTYh0S4ht8krS1pOc,1533
|
|
40
|
-
eegdash/SignalStore/signalstore/operations/helpers/neuroscikit_rawio.py,sha256=-3EAuIA9N8s6tLchgd5Da7izO555cU1RYwFgDvwK4O8,7056
|
|
41
|
-
eegdash/SignalStore/signalstore/operations/helpers/spikeinterface_helper.py,sha256=TVY6QTyexgpJX2tAn-fjEFxedoKgQRSCiTpQUteltGs,3671
|
|
42
|
-
eegdash/SignalStore/signalstore/operations/helpers/wrappers/neo_wrappers.py,sha256=BYlyVxoHXDfaqswT7BEjyRwKmEdq1CAPiL3ZwjfDul0,912
|
|
43
|
-
eegdash/SignalStore/signalstore/operations/helpers/wrappers/nwb_wrappers.py,sha256=cx08mIK_JOOyGJdG3fUMwfFsbexHl_uptBy0mGtbYxA,640
|
|
44
|
-
eegdash/SignalStore/signalstore/store/__init__.py,sha256=F40V_BqwUi8VsyLwMl_M8lvn_P9agBWhwSs_sQtQI1I,324
|
|
45
|
-
eegdash/SignalStore/signalstore/store/data_access_objects.py,sha256=gR6-2oVIvPLR2pHikKCSgGOaLARnb4SpuMIIFopl00M,52892
|
|
46
|
-
eegdash/SignalStore/signalstore/store/datafile_adapters.py,sha256=ME63tq1LmcvKs4nYVD_EEomWZ9e9YPk7lAphXGFtLco,4097
|
|
47
|
-
eegdash/SignalStore/signalstore/store/repositories.py,sha256=8hsTtEmcJ5UwwySsmnBQCLiPuAHYCS2pIC3HQaGvbU8,37670
|
|
48
|
-
eegdash/SignalStore/signalstore/store/store_errors.py,sha256=rOD0xG88PwqU8Itz2FOUPhFiJ0ZSp_CNk2kP42qx-nw,1237
|
|
49
|
-
eegdash/SignalStore/signalstore/store/unit_of_work.py,sha256=8k6T3QBuSXCsI-RfCNHeKEzhHabR5h-Ld3eRhb1l49I,2674
|
|
50
|
-
eegdash/SignalStore/signalstore/store/unit_of_work_provider.py,sha256=qMfCTWYKpHYdktCH6x8Qh7lzRgBWWLTexOod_s-ta28,2450
|
|
51
|
-
eegdash/SignalStore/signalstore/utilities/data_adapters/spike_interface_adapters/si_recording.py,sha256=zl6YmW0iJktqayu-AjMn84HDbOcy8T8cLVsVR8BY1as,68
|
|
52
|
-
eegdash/SignalStore/signalstore/utilities/data_adapters/spike_interface_adapters/si_sorter.py,sha256=mSvIwWVy2ergSU292NmHpLJoZhgMtAdfg17IEN2vuXk,45
|
|
53
|
-
eegdash/SignalStore/signalstore/utilities/testing/data_mocks.py,sha256=Xcd5PFi_tOemQ4fs19vz09D7h0z84xGjKzlXFX4E6Gs,17321
|
|
54
|
-
eegdash/SignalStore/signalstore/utilities/tools/dataarrays.py,sha256=RcmQ2RYP0SHl17ZI6M8Fyei5I3FoqElVrgmALDIMiTw,2094
|
|
55
|
-
eegdash/SignalStore/signalstore/utilities/tools/mongo_records.py,sha256=X2CrZHP3lRGGyk4s6WuaupqPM2RJ37EcNrX_up_pGz0,832
|
|
56
|
-
eegdash/SignalStore/signalstore/utilities/tools/operation_response.py,sha256=XyXCnGwj6bwAFQf-NzPiGZ21FqZUUCiQlfL8pXsGicM,2941
|
|
57
|
-
eegdash/SignalStore/signalstore/utilities/tools/purge_orchestration_response.py,sha256=brau-iQrlfaCKBYYnDwA4aiDEamb0KPDC65qvMKgjvg,572
|
|
58
|
-
eegdash/SignalStore/signalstore/utilities/tools/quantities.py,sha256=1GgfhjxLQih00cQ8z8_YWRu3BByES18hU7N87hax9Ns,235
|
|
59
|
-
eegdash/SignalStore/signalstore/utilities/tools/strings.py,sha256=dS4A5maOiY5pjpqf6wgCL6KW2o19NxB9d6CfK-iWjug,1695
|
|
60
|
-
eegdash/SignalStore/signalstore/utilities/tools/time.py,sha256=66RCq7rT_ZJWuNR9pzFYA0Atddpj4_4J3ZziCDeCWWM,636
|
|
61
|
-
eegdash/SignalStore/tests/conftest.py,sha256=Q1A-6TvkIe7ROXr2KbNHbuYtPKU29Gprn34Jr4E9ARk,30846
|
|
62
|
-
eegdash/SignalStore/tests/data/valid_data/data_arrays/make_fake_data.py,sha256=S6C3q1Cvz2Uvqudt6IJcYrNU0DZaM63DF4STgVzAeEo,1967
|
|
63
|
-
eegdash/SignalStore/tests/unit/test_ci_cd.py,sha256=Z_6BIsy4WCfxbQ_vp4onMhTAgkME1z_O4OP2gxpuI-c,119
|
|
64
|
-
eegdash/SignalStore/tests/unit/store/conftest.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
65
|
-
eegdash/SignalStore/tests/unit/store/test_data_access_objects.py,sha256=hGzcGmaNDL__OuFXX5PpN_TvcE4pOaea7MM0KCkvTks,89927
|
|
66
|
-
eegdash/SignalStore/tests/unit/store/test_repositories.py,sha256=xDSgWvleL_V2K6sDMug_Cj0y3SQOFji-kEasc1iXuj0,79389
|
|
67
|
-
eegdash/SignalStore/tests/unit/store/test_unit_of_work.py,sha256=S4bzDce5BYfavYT1Z-rdUvMFCe95UYZXZm-ZR2SNpCw,120
|
|
68
|
-
eegdash-0.0.1.dist-info/LICENSE,sha256=Xafu48R-h_kyaNj2tuhfgdEv9_ovciktjUEgRRwMZ6w,812
|
|
69
|
-
eegdash-0.0.1.dist-info/METADATA,sha256=SZwuPGkCB1q4fiTz7Mh1K5jzKrK4BIkvQZezsHuo9fU,5987
|
|
70
|
-
eegdash-0.0.1.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
|
|
71
|
-
eegdash-0.0.1.dist-info/top_level.txt,sha256=zavO69HQ6MyZM0aQMR2zUS6TAFc7bnN5GEpDpOpFZzU,8
|
|
72
|
-
eegdash-0.0.1.dist-info/RECORD,,
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
eegdash
|
|
File without changes
|
|
File without changes
|