EEG-ExPy icon indicating copy to clipboard operation
EEG-ExPy copied to clipboard

Lots of code duplication/inconsistency for getting the data path

Open ErikBjare opened this issue 3 years ago • 1 comments

Running git grep path.join yields a swindling 62+ results, here's a sample:

eegnb/__init__.py:DATA_DIR = path.join(path.expanduser("~/"), ".eegnb", "data")
eegnb/analysis/utils_old.py:    data_path = os.path.join(data_dir, experiment, site, device, subsess)
eegnb/datasets/datasets.py:    exp_dir = os.path.join(data_dir, experiment, site, device)
eegnb/datasets/datasets.py:        destination = os.path.join(data_dir, "downloaded_data.zip")
eegnb/datasets/datasets.py:        pth = os.path.join(
eegnb/datasets/datasets.py:                        pth = os.path.join(
eegnb/experiments/auditory_oddball/diaconescu.py:    mcond_file = os.path.join(
eegnb/experiments/visual_codeprose/codeprose.py:    outname = os.path.join(
eegnb/experiments/visual_cueing/cueing.py:    directory = os.path.join(
eegnb/experiments/visual_cueing/cueing.py:    outname = os.path.join(
eegnb/experiments/visual_n170/n170.py:    faces = list(map(load_image, glob(os.path.join(FACE_HOUSE, "faces", "*_3.jpg"))))
eegnb/experiments/visual_n170/n170.py:    houses = list(map(load_image, glob(os.path.join(FACE_HOUSE, "houses", "*.3.jpg"))))
eegnb/experiments/visual_n170/n170_fixedstimorder.py:fso_list_file = os.path.join(exp_dir, "visual_n170", "n170_fixedstimorder_list.csv")
eegnb/experiments/visual_n170/n170_fixedstimorder.py:        filename = os.path.join(stim_dir, filename)
eegnb/experiments/visual_n170/n170_old.py:faces_dir = os.path.join(stim_dir, "visual", "face_house", "faces")
eegnb/experiments/visual_n170/n170_old.py:houses_dir = os.path.join(stim_dir, "visual", "face_house", "houses")
eegnb/experiments/visual_p300/p300.py:    targets = list(map(load_image, glob(os.path.join(CAT_DOG, "target-*.jpg"))))
eegnb/experiments/visual_p300/p300.py:    nontargets = list(map(load_image, glob(os.path.join(CAT_DOG, "nontarget-*.jpg"))))
eegnb/stimuli/__init__.py:FACE_HOUSE = path.join(path.dirname(__file__), "visual", "face_house")
eegnb/stimuli/__init__.py:CAT_DOG = path.join(path.dirname(__file__), "visual", "cats_dogs")
examples/auditory_oddball/auditory_oddball_diaconescu.ipynb:    "output_dir = os.path.join(eegnb_data_dir, \"auditory-oddball_diaconescu\", \"jg\")\n",
examples/auditory_oddball/auditory_oddball_diaconescu.ipynb:    "recording_path = os.path.join(output_dir, \"subject\" + str(subject), \"session\" + str(session),\n",
examples/auditory_oddball/auditory_oddball_diaconescu.ipynb:    "recordings_files = sorted(glob.glob(os.path.join(recordings_dir, '*.csv')))\n",
examples/misc/mac_run_exp.py:	recording_path = os.path.join(os.path.expanduser("~"), "eeg-notebooks", "data", "visual", "P300", "subject" + str(subject), "session" + str(run), ("recording_%s.csv" % strftime("%Y-%m-%d-%H.%M.%S", gmtime())))
examples/misc/mac_run_exp.py:	recording_path = os.path.join(os.path.expanduser("~"), "eeg-notebooks", "data", "visual", "N170", "subject" + str(subject), "session" + str(run), ("recording_%s.csv" % strftime("%Y-%m-%d-%H.%M.%S", gmtime())))
examples/misc/mac_run_exp.py:	recording_path = os.path.join(os.path.expanduser("~"), "eeg-notebooks", "data", "visual", "SSVEP", "subject" + str(subject), "session" + str(run), ("recording_%s.csv" % strftime("%Y-%m-%d-%H.%M.%S", gmtime())))
examples/misc/mac_run_exp.py:  recording_path = os.path.join(os.path.expanduser("~"), "eeg-notebooks", "data", "visual", "cueing", "subject" + str(subject), "session" + str(run), ("subject" + str(subject) + "_session" + str(run) + "_recording_%s.csv" % strftime("%Y-%m-%d-%H.%M.%S", gmtime()) ) )
examples/misc/neurobrite_datasets.py:basedir = os.path.join(os.getcwd(),'stimulus_presentation/stim')
examples/misc/neurobrite_datasets.py:stimdir = os.path.join(basedir, 'olivetti_faces')
examples/misc/neurobrite_datasets.py:stimdir = os.path.join(basedir,'faces_in_wild')
examples/misc/neurobrite_datasets.py:stimdir = os.path.join(basedir, 'digits')
examples/sandbox/SSVEP_linux.ipynb:    "recording_path = os.path.join(os.path.expanduser(\"~\"), \"eeg-notebooks\", \"data\", \"visual\", \"SSVEP\", \"subject\" + str(subject), \"session\" + str(session), (\"recording_%s.csv\" %\n",
examples/sandbox/auditory_oddball_erp_arrayin.ipynb:    "recording_path = os.path.join(os.path.split(os.getcwd())[0],'data', 'auditory', 'oddball_erp_arrayin', \n",
examples/sandbox/auditory_oddball_erp_arrayin.ipynb:    "recordings_files = glob.glob(os.path.join(recordings_dir, '*'))\n",
examples/sandbox/auditory_stim_with_aux.ipynb:    "#sys.path.append(os.path.join(os.path.expanduser(\"~\"), \"eeg-notebooks\", 'utils'))\n",
examples/sandbox/auditory_stim_with_aux.ipynb:    "#recording_path = os.path.join(os.path.expanduser(\"~\"), \"eeg-notebooks\", \"data\", \"visual\", \"N170\", \"subject\" + str(subject), \"session\" + str(session), (\"recording_%s.csv\" %\n",
examples/sandbox/old_notebooks/Auditory P300 with Muse.ipynb:    "sys.path.append(os.path.join(os.path.expanduser(\"~\"), \"eeg-notebooks\", 'utils'))\n",
examples/sandbox/old_notebooks/Cross-subject classification.ipynb:    "sys.path.append(os.path.join(os.path.expanduser(\"~\"), \"eeg-notebooks\", 'utils'))\n",
examples/sandbox/old_notebooks/Go No Go with Muse.ipynb:    "sys.path.append(os.path.join(os.path.expanduser(\"~\"), \"eeg-notebooks\", 'utils'))\n",
examples/sandbox/test_muse_markers.ipynb:    "save_fn = os.path.join(os.getcwd(),'test_record_file.csv')\n",
examples/visual_cueing/01r__cueing_singlesub_analysis.py:eegnb_data_path = os.path.join(os.path.expanduser('~/'),'.eegnb', 'data')    
examples/visual_cueing/01r__cueing_singlesub_analysis.py:cueing_data_path = os.path.join(eegnb_data_path, 'visual-cueing', 'kylemathlab_dev')
examples/visual_cueing/02r__cueing_group_analysis.py:eegnb_data_path = os.path.join(os.path.expanduser('~/'),'.eegnb', 'data')
examples/visual_cueing/02r__cueing_group_analysis.py:cueing_data_path = os.path.join(eegnb_data_path, 'visual-cueing', 'kylemathlab_dev')
examples/visual_cueing/03r__cueing_behaviour_analysis_winter2019.py:eegnb_data_path = os.path.join(os.path.expanduser('~/'),'.eegnb', 'data')
examples/visual_cueing/03r__cueing_behaviour_analysis_winter2019.py:cueing_data_path = os.path.join(eegnb_data_path, 'visual-cueing', 'kylemathlab_dev')
examples/visual_cueing/04r__cueing_group_analysis_winter2019.py:eegnb_data_path = os.path.join(os.path.expanduser('~/'),'.eegnb', 'data')
examples/visual_cueing/04r__cueing_group_analysis_winter2019.py:cueing_data_path = os.path.join(eegnb_data_path, 'visual-cueing', 'kylemathlab_dev')
examples/visual_cueing/cueing_group_analysis.ipynb:    "eegnb_data_path = os.path.join(os.path.expanduser('~/'),'.eegnb', 'data')\n",
examples/visual_cueing/cueing_group_analysis.ipynb:    "cueing_data_path = os.path.join(eegnb_data_path, 'visual-cueing', 'kylemathlab_dev')\n",
examples/visual_n170/01r__n170_viz.py:eegnb_data_path = os.path.join(os.path.expanduser('~/'),'.eegnb', 'data')    
examples/visual_n170/01r__n170_viz.py:n170_data_path = os.path.join(eegnb_data_path, 'visual-N170', 'eegnb_examples')
examples/visual_n170/02r__n170_decoding.py:eegnb_data_path = os.path.join(os.path.expanduser('~/'),'.eegnb', 'data')    
examples/visual_n170/02r__n170_decoding.py:n170_data_path = os.path.join(eegnb_data_path, 'visual-N170', 'eegnb_examples')
examples/visual_p300/01r__p300_viz.py:eegnb_data_path = os.path.join(os.path.expanduser('~/'),'.eegnb', 'data')    
examples/visual_p300/01r__p300_viz.py:p300_data_path = os.path.join(eegnb_data_path, 'visual-P300', 'eegnb_examples')
examples/visual_p300/02r__p300_decoding.py:eegnb_data_path = os.path.join(os.path.expanduser('~/'),'.eegnb', 'data')    
examples/visual_p300/02r__p300_decoding.py:p300_data_path = os.path.join(eegnb_data_path, 'visual-P300', 'eegnb_examples')
examples/visual_ssvep/01r__ssvep_viz.py:eegnb_data_path = os.path.join(os.path.expanduser('~/'),'.eegnb', 'data')    
examples/visual_ssvep/01r__ssvep_viz.py:ssvep_data_path = os.path.join(eegnb_data_path, 'visual-SSVEP', 'eegnb_examples')
examples/visual_ssvep/02r__ssvep_decoding.py:eegnb_data_path = os.path.join(os.path.expanduser('~/'),'.eegnb', 'data')    
examples/visual_ssvep/02r__ssvep_decoding.py:ssvep_data_path = os.path.join(eegnb_data_path, 'visual-SSVEP', 'eegnb_examples')

As you can see, many do the exact same thing (i.e. get a path to the ~/.eegnb/experiment/site/board/subject/session directory), but do it in various different ways (and sometimes inconsistently!).

Since we have a nice generate_save_fn (used in 33+ places) it should probably be better adopted. I'll likely do this as I stumble into these issues in the codebase.

ErikBjare avatar Dec 23 '20 14:12 ErikBjare

Yeah this is some spaghetti code that resulted from rapid development and not very efficiency minded. I will work on making this more fluid.

JadinTredup avatar Mar 19 '21 14:03 JadinTredup