Download scripts/verify_original.py from arushsinghal/setu-neural-eeg: direct link, hf CLI and curl.
- Browser
- Download file 1.62 kB
-
https://huggingface.co/arushsinghal/setu-neural-eeg/resolve/main/scripts/verify_original.py
- Command line
-
hf download hf://arushsinghal/setu-neural-eeg/scripts/verify_original.py
-
curl -L -o verify_original.py https://huggingface.co/arushsinghal/setu-neural-eeg/resolve/main/scripts/verify_original.py
1.62 kB
| import json,pathlib,urllib.request,hashlib,sys | |
| import scipy.io,numpy as np | |
| from bci_data import load | |
| root=pathlib.Path('datasets/original');root.mkdir(exist_ok=True) | |
| u='https://api.osf.io/v2/nodes/pq7vb/files/osfstorage/5e94806fd69735038fbdd2c8/' | |
| j=json.load(urllib.request.urlopen(u));json.dump(j,open('reports/osf_training_files.json','w'),indent=2);e=next(d for d in j['data'] if d['attributes']['name']=='Data_Sample01.mat');p=root/'Data_Sample01.mat' | |
| if not p.exists():urllib.request.urlretrieve(e['links']['download'],p) | |
| assert p.stat().st_size==e['attributes']['size'] | |
| actual=hashlib.sha256(p.read_bytes()).hexdigest();expected=e['attributes']['extra']['hashes'].get('sha256') | |
| if expected:assert actual==expected | |
| m=scipy.io.loadmat(p);epo=m['epo_train'];x=epo['x'][0,0].transpose(2,1,0);y=epo['y'][0,0].argmax(0);a,b,n=load(1,'train') | |
| r={'original_shape':list(x.shape),'converted_shape':list(a.shape),'label_match':bool(np.array_equal(y,b)),'max_absolute_error_microvolts':float(np.max(abs(x-a))),'relative_rmse':float(np.sqrt(np.mean((x-a)**2))/x.std()),'original_time_start_end':np.asarray(epo['t'][0,0]).ravel()[[0,-1]].tolist(),'fields':list(epo.dtype.names),'original_sha256':actual,'upstream_sha256':expected} | |
| assert r['label_match'] and r['relative_rmse']<.001 | |
| assert np.array_equal(epo['t'][0,0].ravel()[[128,640]],np.array([0.,2000.])) | |
| json.dump(r,open('reports/original_conversion_check.json','w'),indent=2) | |
| pdf=pathlib.Path('reports/bci_official_description.pdf') | |
| if not pdf.exists():urllib.request.urlretrieve('https://osf.io/download/ymvjz/',pdf) | |
| print('Original MATLAB / EDF comparison passed',r) | |