Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
491 commits
Select commit Hold shift + click to select a range
3d4a2fb
Misc
UPennBJPrager Nov 14, 2024
a785305
Update iEEG_handler.py
UPennBJPrager Nov 14, 2024
7923c55
Update BIDS_handler.py
UPennBJPrager Nov 14, 2024
c8a0709
Update BIDS_handler.py
UPennBJPrager Nov 14, 2024
fcdfd02
Update BIDS_handler.py
UPennBJPrager Nov 14, 2024
3531d6a
Update BIDS_handler.py
UPennBJPrager Nov 14, 2024
7f30d71
Misc
UPennBJPrager Nov 14, 2024
e08e6d5
YASA Update
UPennBJPrager Nov 18, 2024
277fb04
Create create_yasa_lookup.py
UPennBJPrager Nov 18, 2024
9c3c324
Update features.py
UPennBJPrager Nov 18, 2024
40c2a26
Update data_curation.py
UPennBJPrager Nov 18, 2024
1e9a9bf
Update data_curation.py
UPennBJPrager Nov 18, 2024
531cd2a
Update data_curation.py
UPennBJPrager Nov 18, 2024
e7008a6
Update features.py
UPennBJPrager Nov 19, 2024
56bc488
Update features.py
UPennBJPrager Nov 19, 2024
8ce157d
Update features.py
UPennBJPrager Nov 19, 2024
83b2050
Update features.py
UPennBJPrager Nov 19, 2024
886c07f
Update features.py
UPennBJPrager Nov 19, 2024
3b8075a
Update features.py
UPennBJPrager Nov 19, 2024
f1316e5
Update features.py
UPennBJPrager Nov 19, 2024
866b369
Update features.py
UPennBJPrager Nov 19, 2024
613ec7c
Update features.py
UPennBJPrager Nov 19, 2024
424a37f
Update features.py
UPennBJPrager Nov 19, 2024
e29c9a3
Update features.py
UPennBJPrager Nov 19, 2024
330f171
Update features.py
UPennBJPrager Nov 19, 2024
b081134
Update features.py
UPennBJPrager Nov 19, 2024
76fbc78
Update create_yasa_lookup.py
UPennBJPrager Nov 20, 2024
53dfd2b
YASA merge script and added user control over iEEG.org download time …
UPennBJPrager Nov 21, 2024
fb8eec0
Update EEG_BIDS.py
UPennBJPrager Nov 21, 2024
8a15861
Update iEEG_handler.py
UPennBJPrager Nov 22, 2024
d5e4d81
Update iEEG_handler.py
UPennBJPrager Nov 24, 2024
74b1d9e
Update edf_merge.py
UPennBJPrager Nov 26, 2024
8302941
Update EEG_BIDS.py
UPennBJPrager Dec 2, 2024
591535b
Added error folder option for tracking connection errors
UPennBJPrager Dec 2, 2024
1aa8f77
Update iEEG_handler.py
UPennBJPrager Dec 2, 2024
8a02ec9
Update iEEG_handler.py
UPennBJPrager Dec 2, 2024
c7a1d70
Update iEEG_handler.py
UPennBJPrager Dec 3, 2024
4731316
Update exception_handler.py
UPennBJPrager Dec 4, 2024
48f67fa
Misc
UPennBJPrager Dec 4, 2024
c332d32
Update exception_handler.py
UPennBJPrager Dec 4, 2024
b537856
Update exception_handler.py
UPennBJPrager Dec 4, 2024
0afad49
Update exception_handler.py
UPennBJPrager Dec 4, 2024
12fe0dd
Update exception_handler.py
UPennBJPrager Dec 4, 2024
3a973a1
Update iEEG_handler.py
UPennBJPrager Dec 4, 2024
eae20e2
Misc
UPennBJPrager Dec 4, 2024
9cf28a6
Update iEEG_handler.py
UPennBJPrager Dec 4, 2024
a749276
Revert to before checks
UPennBJPrager Dec 5, 2024
37bbf23
Update exception_handler.py
UPennBJPrager Dec 7, 2024
b4d62ec
Update exception_handler.py
UPennBJPrager Dec 7, 2024
d1b5c2a
Update exception_handler.py
UPennBJPrager Dec 7, 2024
60e987e
Update exception_handler.py
UPennBJPrager Dec 7, 2024
b33ee65
Update exception_handler.py
UPennBJPrager Dec 7, 2024
1566f5c
Update exception_handler.py
UPennBJPrager Dec 7, 2024
efff73f
Update exception_handler.py
UPennBJPrager Dec 7, 2024
6176d33
Update exception_handler.py
UPennBJPrager Dec 7, 2024
0c0c5c4
Update exception_handler.py
UPennBJPrager Dec 7, 2024
8eb74d7
Update iEEG_handler.py
UPennBJPrager Dec 7, 2024
36243da
Update exception_handler.py
UPennBJPrager Dec 7, 2024
2486246
Update exception_handler.py
UPennBJPrager Dec 7, 2024
ea57c10
Update exception_handler.py
UPennBJPrager Dec 7, 2024
484ff8f
Update iEEG_handler.py
UPennBJPrager Dec 7, 2024
214a0d6
Update iEEG_handler.py
UPennBJPrager Dec 7, 2024
88e98d6
Update iEEG_handler.py
UPennBJPrager Dec 8, 2024
9ca17c6
Update iEEG_handler.py
UPennBJPrager Dec 8, 2024
d4a4db7
Update iEEG_handler.py
UPennBJPrager Dec 8, 2024
adcca43
Update iEEG_handler.py
UPennBJPrager Dec 8, 2024
8eaeaa1
Raw csv save option added.
UPennBJPrager Dec 9, 2024
0b82aba
Removed copy of EEG bids in prep for submodule
UPennBJPrager Dec 9, 2024
4fc3ad9
Cleanup
UPennBJPrager Dec 9, 2024
df6ffb8
Replaced EEG BIDS subdirectory with a submodule
UPennBJPrager Dec 9, 2024
2b4c43a
Update epipy.py
UPennBJPrager Dec 10, 2024
3e0eb0f
Update epipy.py
UPennBJPrager Dec 10, 2024
bac5b16
Update data_curation.py
UPennBJPrager Dec 10, 2024
cb87aa6
Update data_curation.py
UPennBJPrager Dec 10, 2024
8507122
Update data_curation.py
UPennBJPrager Dec 10, 2024
72e2223
Update data_curation.py
UPennBJPrager Dec 10, 2024
28df009
Update data_curation.py
UPennBJPrager Dec 10, 2024
2896182
Update data_curation.py
UPennBJPrager Dec 10, 2024
db76359
Update data_curation.py
UPennBJPrager Dec 10, 2024
1b8b8e0
Update data_curation.py
UPennBJPrager Dec 10, 2024
5b936c9
Update epipy.py
UPennBJPrager Dec 10, 2024
a41e4bc
Update features.py
UPennBJPrager Dec 10, 2024
e8db3bf
Update features.py
UPennBJPrager Dec 10, 2024
60d8a12
Update create_yasa_lookup.py
UPennBJPrager Dec 13, 2024
18de8e0
Update create_yasa_lookup.py
UPennBJPrager Dec 13, 2024
e3cc55b
Update create_yasa_lookup.py
UPennBJPrager Dec 13, 2024
5845e87
Update create_yasa_lookup.py
UPennBJPrager Dec 13, 2024
4790626
Update create_yasa_lookup.py
UPennBJPrager Dec 13, 2024
aedb5df
Update create_yasa_lookup.py
UPennBJPrager Dec 13, 2024
95922d8
Update create_yasa_lookup.py
UPennBJPrager Dec 13, 2024
f438493
Update create_yasa_lookup.py
UPennBJPrager Dec 13, 2024
680dfb2
Update create_yasa_lookup.py
UPennBJPrager Dec 13, 2024
c511736
Update
UPennBJPrager Dec 13, 2024
efc6bf7
Update merge_yasa_lookup.py
UPennBJPrager Dec 13, 2024
1cfd4cd
Update merge_yasa_lookup.py
UPennBJPrager Dec 13, 2024
7846ac7
Create yasa_join.py
UPennBJPrager Dec 14, 2024
c30602f
Update yasa_join.py
UPennBJPrager Dec 14, 2024
53f4a05
Update yasa_join.py
UPennBJPrager Dec 14, 2024
3d47cdc
Update yasa_join.py
UPennBJPrager Dec 14, 2024
8f99a8a
Update yasa_join.py
UPennBJPrager Dec 14, 2024
aeeeff4
Update yasa_join.py
UPennBJPrager Dec 14, 2024
b775104
Update yasa_join.py
UPennBJPrager Dec 14, 2024
c77b402
Update yasa_join.py
UPennBJPrager Dec 14, 2024
17fc0b7
Update yasa_join.py
UPennBJPrager Dec 14, 2024
0a1a87a
Misc
UPennBJPrager Feb 17, 2025
252691f
Update preprocessing.py
UPennBJPrager Feb 17, 2025
4b1fa97
Update dataframe_manager.py
UPennBJPrager Feb 17, 2025
4e61edf
Update project_handler.py
UPennBJPrager Feb 17, 2025
188cbad
Misc
UPennBJPrager Feb 18, 2025
3da4380
Big posthoc automation update
UPennBJPrager Feb 26, 2025
c06fead
Added multiprocessing
UPennBJPrager Feb 26, 2025
a4b6a01
Update epipy.py
UPennBJPrager Feb 27, 2025
fe6c2d4
Added a manager to more gracefully manage exceptions before a barrier
UPennBJPrager Feb 28, 2025
1a7c18b
Update epipy.py
UPennBJPrager Feb 28, 2025
58e4140
Update epipy.py
UPennBJPrager Mar 3, 2025
b9722a6
Update epipy.py
UPennBJPrager Mar 3, 2025
d01ba93
Misc
UPennBJPrager Mar 3, 2025
8204a15
Update preprocessing.py
UPennBJPrager Mar 3, 2025
04c082d
Update preprocessing.py
UPennBJPrager Mar 3, 2025
41ddbf6
Misc
UPennBJPrager Mar 3, 2025
f55d0f2
Update preprocessing.py
UPennBJPrager Mar 4, 2025
96df1ec
Update preprocessing.py
UPennBJPrager Mar 4, 2025
9eb94b6
Update epipy.py
UPennBJPrager Mar 4, 2025
958fa99
Update epipy.py
UPennBJPrager Mar 4, 2025
62102a0
Update config_loader.py
UPennBJPrager Mar 4, 2025
78f923c
Update preprocessing.py
UPennBJPrager Mar 4, 2025
c42b54c
Update preprocessing.py
UPennBJPrager Mar 4, 2025
a5e80c0
Update preprocessing.py
UPennBJPrager Mar 4, 2025
7b18b7e
Update preprocessing.py
UPennBJPrager Mar 4, 2025
eb22b0c
Update preprocessing.py
UPennBJPrager Mar 4, 2025
b60bf2a
Update preprocessing.py
UPennBJPrager Mar 4, 2025
969d4a0
Update preprocessing.py
UPennBJPrager Mar 4, 2025
e8393c1
Update preprocessing.py
UPennBJPrager Mar 4, 2025
53875a8
Update preprocessing.py
UPennBJPrager Mar 4, 2025
f3c2068
Update preprocessing.py
UPennBJPrager Mar 4, 2025
d0d8a0b
Update preprocessing.py
UPennBJPrager Mar 4, 2025
5222547
Update preprocessing.py
UPennBJPrager Mar 4, 2025
353ee32
Update preprocessing.py
UPennBJPrager Mar 4, 2025
3450173
Update preprocessing.py
UPennBJPrager Mar 4, 2025
f19207c
Update preprocessing.py
UPennBJPrager Mar 4, 2025
ca588d4
Update preprocessing.py
UPennBJPrager Mar 4, 2025
74f00f9
Update preprocessing.py
UPennBJPrager Mar 4, 2025
674aef5
Update preprocessing.py
UPennBJPrager Mar 4, 2025
0477d6e
Update preprocessing.py
UPennBJPrager Mar 4, 2025
fc68990
Update preprocessing.py
UPennBJPrager Mar 4, 2025
3bfa523
Update data_loader.py
UPennBJPrager Mar 6, 2025
47f354f
Update data_loader.py
UPennBJPrager Mar 6, 2025
9dd5381
Update data_loader.py
UPennBJPrager Mar 6, 2025
7b1510e
Update data_loader.py
UPennBJPrager Mar 6, 2025
b7214a6
Update data_loader.py
UPennBJPrager Mar 6, 2025
a9566f2
Update data_loader.py
UPennBJPrager Mar 6, 2025
cbc04f1
Update project_handler.py
UPennBJPrager Mar 6, 2025
e0a5143
Update data_loader.py
UPennBJPrager Mar 6, 2025
2da4181
Update data_loader.py
UPennBJPrager Mar 6, 2025
02a8ccd
Update data_loader.py
UPennBJPrager Mar 6, 2025
0776787
Update data_loader.py
UPennBJPrager Mar 6, 2025
70bb37b
Update preprocessing.py
UPennBJPrager Mar 6, 2025
53e4a8e
Update preprocessing.py
UPennBJPrager Mar 6, 2025
1b30300
Update preprocessing.py
UPennBJPrager Mar 6, 2025
e6c89ee
Update preprocessing.py
UPennBJPrager Mar 6, 2025
24eceda
Update preprocessing.py
UPennBJPrager Mar 6, 2025
2afeb73
Update preprocessing.py
UPennBJPrager Mar 6, 2025
40a3cc6
Update preprocessing.py
UPennBJPrager Mar 6, 2025
566f293
Update preprocessing.py
UPennBJPrager Mar 6, 2025
f2825c0
Testing Options
UPennBJPrager Mar 10, 2025
6b3ea79
Misc
UPennBJPrager Mar 10, 2025
c9c488b
Misc
UPennBJPrager Mar 10, 2025
6007154
Update target_loader.py
UPennBJPrager Mar 10, 2025
7b1ab3b
Update epipy.py
UPennBJPrager Mar 10, 2025
9aafd31
Update yasa_reformat.py
UPennBJPrager Mar 10, 2025
293124e
Update features.py
UPennBJPrager Mar 10, 2025
b11f322
Update epipy.py
UPennBJPrager Mar 10, 2025
8fa8834
Update output_manager.py
UPennBJPrager Mar 10, 2025
7f6d3e4
Update yasa_reformat.py
UPennBJPrager Mar 10, 2025
746645d
Small cleanup
UPennBJPrager Mar 10, 2025
1d64d90
Update features.py
UPennBJPrager Mar 10, 2025
2734fed
Adding ability to do postprocessing only.
UPennBJPrager Mar 11, 2025
d2265d2
Update epipy.py
UPennBJPrager Mar 11, 2025
4c6d92b
Update epipy.py
UPennBJPrager Mar 11, 2025
c94eb00
Update epipy.py
UPennBJPrager Mar 11, 2025
c2b98be
Update features.py
UPennBJPrager Mar 11, 2025
2208e63
Misc
UPennBJPrager Mar 11, 2025
a951d39
Update yasa_reformat.py
UPennBJPrager Mar 11, 2025
ef6ce1e
Update yasa_reformat.py
UPennBJPrager Mar 11, 2025
01b5de9
Update marsh_filter.py
UPennBJPrager Mar 11, 2025
11dd0cf
Update marsh_filter.py
UPennBJPrager Mar 11, 2025
498bcab
Update marsh_filter.py
UPennBJPrager Mar 11, 2025
73e4ec1
Update marsh_filter.py
UPennBJPrager Mar 11, 2025
b5f7bf2
Update marsh_filter.py
UPennBJPrager Mar 11, 2025
5c598a9
Update marsh_filter.py
UPennBJPrager Mar 11, 2025
82011cc
Update marsh_filter.py
UPennBJPrager Mar 11, 2025
275e039
Update marsh_filter.py
UPennBJPrager Mar 11, 2025
29cb9b7
Update marsh_filter.py
UPennBJPrager Mar 11, 2025
741c203
Update marsh_filter.py
UPennBJPrager Mar 11, 2025
b7a84c3
Update marsh_filter.py
UPennBJPrager Mar 11, 2025
7e803fa
Update yasa_reformat.py
UPennBJPrager Mar 11, 2025
87c15a1
Update metadata_handler.py
UPennBJPrager Mar 12, 2025
f49fb3f
Update metadata_handler.py
UPennBJPrager Mar 12, 2025
cc5b92b
Update metadata_handler.py
UPennBJPrager Mar 12, 2025
4418ba1
Update epipy.py
UPennBJPrager Mar 13, 2025
7d18644
Misc
UPennBJPrager Mar 13, 2025
352ac5c
Misc
UPennBJPrager Mar 13, 2025
1f1b525
Update project_handler.py
UPennBJPrager Mar 13, 2025
098a335
Misc
UPennBJPrager Mar 13, 2025
4aac215
Update epipy.py
UPennBJPrager Mar 13, 2025
8f4c705
Update metadata_handler.py
UPennBJPrager Mar 13, 2025
f89d6c8
Update metadata_handler.py
UPennBJPrager Mar 13, 2025
cc337a9
Update metadata_handler.py
UPennBJPrager Mar 14, 2025
9726fff
Update project_handler.py
UPennBJPrager Mar 14, 2025
2b90059
Update features.py
UPennBJPrager Mar 17, 2025
9621ed3
Update README.md
UPennBJPrager Mar 31, 2025
b3143d4
Update epipy.py
UPennBJPrager Mar 31, 2025
c5fd93b
Update epipy.py
UPennBJPrager Mar 31, 2025
32bf74d
Update features.py
UPennBJPrager Apr 1, 2025
177e297
Update epipy.py
UPennBJPrager Apr 1, 2025
2c71fe0
Update features.py
UPennBJPrager Apr 1, 2025
588a8c6
Update preprocessing.py
UPennBJPrager Apr 1, 2025
4ee27d5
Update features.py
UPennBJPrager Apr 3, 2025
a10eba4
Update features.py
UPennBJPrager Apr 3, 2025
d898f47
Update features.py
UPennBJPrager Apr 3, 2025
ca460fd
Update features.py
UPennBJPrager Apr 3, 2025
6b03d03
Update features.py
UPennBJPrager Apr 3, 2025
0c13d85
Update features.py
UPennBJPrager Apr 3, 2025
c182821
Update features.py
UPennBJPrager Apr 3, 2025
78c2b8f
Update features.py
UPennBJPrager Apr 3, 2025
3cfd61c
Update features.py
UPennBJPrager Apr 3, 2025
5517508
Update features.py
UPennBJPrager Apr 3, 2025
77b12c1
Update features.py
UPennBJPrager Apr 3, 2025
9c527c0
Update features.py
UPennBJPrager Apr 3, 2025
c397666
Update epipy.py
UPennBJPrager Apr 3, 2025
460b964
Update epipy.py
UPennBJPrager Apr 3, 2025
a5ccbe4
Update epipy.py
UPennBJPrager Apr 3, 2025
d3c5638
Update marsh_filter.py
UPennBJPrager Apr 3, 2025
4351b9f
Update marsh_filter.py
UPennBJPrager Apr 3, 2025
0c3010e
Update marsh_filter.py
UPennBJPrager Apr 3, 2025
e38acc4
Update marsh_filter.py
UPennBJPrager Apr 3, 2025
260e40a
Update marsh_filter.py
UPennBJPrager Apr 3, 2025
285d292
Update marsh_filter.py
UPennBJPrager Apr 3, 2025
8ebe27b
Update marsh_filter.py
UPennBJPrager Apr 3, 2025
8837e7d
Update marsh_filter.py
UPennBJPrager Apr 3, 2025
e3c2e02
Update marsh_filter.py
UPennBJPrager Apr 3, 2025
c9678eb
Update marsh_filter.py
UPennBJPrager Apr 3, 2025
4b67c9a
Update marsh_filter.py
UPennBJPrager Apr 3, 2025
93eee0e
Update marsh_filter.py
UPennBJPrager Apr 3, 2025
3129a01
Update epipy.py
UPennBJPrager Apr 10, 2025
8bc4ff3
Update README.md
UPennBJPrager Apr 17, 2025
17f4b4c
Misc
UPennBJPrager Apr 21, 2025
9831f8c
Merge branch 'main' of https://github.com/penn-cnt/CNT-codehub
UPennBJPrager Apr 21, 2025
2780b83
Environment updates
UPennBJPrager Apr 21, 2025
67383d0
Update convert_lay_edf.py
UPennBJPrager Apr 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,6 @@
[submodule "core_libraries/submodules/networkx"]
path = core_libraries/submodules/networkx
url = https://github.com/networkx/networkx.git
[submodule "scripts/codehub/utils/acquisition/BIDS"]
path = scripts/codehub/utils/acquisition/BIDS
url = https://github.com/penn-cnt/EEG_BIDS.git
39 changes: 31 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,16 @@ CNT Code Hub

This code is designed to help with the processing of epilepsy datasets commonly used within the Center for Neuroengineering & Therapeutics (CNT) at the University of Pennsylvania.

This code is meant to be researcher driven, allowing new code libraries to be added to modules that represent common research tasks (i.e. Channel Cleaning, Montaging, Preprocessing, etc.). The code can be accessed both as independent libraries that can be called on for a range of tasks, or as part of a large framework meant to ingest, clean, and prepare data for analysis or deep-learning tasks.
This code is meant to be researcher driven, allowing new code libraries to be added to modules that represent common research tasks (i.e. Channel Cleaning, Montaging, Preprocessing, Feature Extraction, etc.). The code can be accessed both as independent libraries that can be called on for a range of tasks, or as part of a large framework meant to ingest, clean, and prepare data for analysis or deep-learning tasks.

For more information on how to use our code, please see the examples folder for specific use-cases and common practices.
We also provide a number of additional scripts to help with common/important tasks. For more information, please refer [here](https://github.com/penn-cnt/CNT-codehub/tree/main/scripts/codehub/utils/) for what scripts are currently available.

# Prerequisites
# Installation

## Prerequisites
In order to use this repository, you must have access to Python 3+. You must also have access to conda 23.+ if building environments from yaml files.

# Installation
## Using Conda

An environment file with all the needed packages to run this suite of code can be found at the following location:

Expand All @@ -39,17 +41,38 @@ The environment is then activated by running:

More information about creating conda environments can be found [here](https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html).

## Adding the codehub to your python paths
### Adding the codehub to your conda environment paths

You will likely need to add this package to your python path to ensure full functionality of utility scripts and the main pipeline. To do so using anaconda, you can run:

> conda develop <path-to-git-head>/scripts/codehub/

For a virtual environment, an easy way to add `<path-to-git-head>/scripts/codehub/` to your path would be to add a text file with a .pth extention (any filename is fine) to the site-packages subfolder in your virtual environment folder. Within the text file you can just copy and paste the absolute path as the only contents.
## Using venv and pip

To create a virtual environment, you need to create a location for the environment to install to. For this example, we will specify `/demonstration/environment/cnt_codehub` as our environment location. Using the python version of your choice, in this example we will select 3.10, run the following command:

> python3.10 -m venv /demonstration/environment/cnt_codehub

to create a new virtual environment. To enter the envrionment, simply run:

> source /demonstration/environment/cnt_codehub/bin/activate

## Installation using venv
**NOTE:** To streamline the process, we recommend making an alias command to avoid having to navigate the the activate file everytime.

Once in the environment, a requirements.txt file with all the needed packages to run this suite of code can be found at the following location:

> [CNT Codehub YAML](core_libraries/python/cnt_codehub/envs/requirements.txt)

This file can be installed using the following call to pip from the envs subdirectory:

> pip install -r requirements.txt

which will install everything to your current virual environment.

### Adding the codehub to your virtual environment path
For a virtual environment, an easy way to add `<path-to-git-head>/scripts/codehub/` to your path would be to add a text file with a .pth extention (any filename is fine) to the site-packages subfolder in your virtual environment folder. Within the text file you can just copy and paste the absolute path as the only contents.

To be added soon.
Typically, the path your your site-packages can be found at: `<path-to-environment-folder>/lib/python<version-number>/site-packages`.

# Documentation

Expand Down
1 change: 0 additions & 1 deletion core_libraries/matlab/README.md

This file was deleted.

27 changes: 27 additions & 0 deletions core_libraries/python/cnt_codehub/cnt_codehub.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: codehub
channels:
- conda-forge
- defaults
dependencies:
- fooof
- neurodsp
- nltk
- numpy
- pandas
- prettytable
- pybids
- pytorch
- pyyaml
- scikit-learn
- scipy
- tqdm
- pip:
- ./wheels/ieeg-1.6-py3-none-any.whl
- edflib-python
- edfio
- mne
- mne-bids
- mne-icalabel
- nibabel
- pyEDFlib
- yasa
3 changes: 0 additions & 3 deletions core_libraries/python/cnt_codehub/envs/README.md

This file was deleted.

29 changes: 0 additions & 29 deletions core_libraries/python/cnt_codehub/envs/cnt_codehub.yml

This file was deleted.

22 changes: 0 additions & 22 deletions core_libraries/python/cnt_codehub/envs/requirements.txt

This file was deleted.

117 changes: 117 additions & 0 deletions core_libraries/python/cnt_codehub/requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
antropy==0.1.9
astor
asttokens==3.0.0
attrs
bids-validator
bidsschematools
cached-property
certifi==2025.1.31
charset-normalizer==3.4.1
click
colorama
comm==0.2.2
contourpy
cycler
decorator==5.2.1
deprecation==2.1.0
docopt
edfio==0.4.8
EDFlib-Python==1.0.8
executing==2.2.0
filelock
fonttools
fooof
formulaic
frozendict
fsspec
gmpy2
graphlib-backport
greenlet
idna==3.10
./wheels/ieeg-1.6-py3-none-any.whl
importlib_resources
interface_meta
ipython
ipython_pygments_lexers==1.1.1
ipywidgets==8.1.6
jedi==0.19.2
Jinja2
joblib
jsonschema
jsonschema-specifications
jupyterlab_widgets==3.0.14
kiwisolver
lazy_loader==0.4
lightgbm==4.6.0
llvmlite
lspopt==1.4.0
markdown-it-py
MarkupSafe
matplotlib
matplotlib-inline
mdurl
mne
mne-bids
mne-icalabel
mpmath
munkres==1.1.4
networkx
neurodsp
nibabel
nltk
num2words
numba
numpy
optree
packaging
pandas
parso==0.8.4
pennprov==2.2.4
pexpect==4.9.0
pillow
pkgutil_resolve_name
platformdirs==4.3.7
pooch==1.8.2
prettytable
prompt_toolkit==3.0.51
psutil==7.0.0
ptyprocess==0.7.0
pure_eval==0.2.3
pybids
pybind11
pybind11_global
pyEDFlib==0.1.40
Pygments==2.19.1
pyparsing
pyriemann==0.8
python-dateutil
pytz
PyYAML
referencing
regex
requests==2.32.3
rpds-py
scikit-learn
scipy
seaborn==0.13.2
setuptools==75.8.2
six
sleepecg
SQLAlchemy
stack-data==0.6.3
sympy
tabulate
tensorpac==0.6.5
threadpoolctl
torch
tqdm
traitlets==5.14.3
typing_extensions
tzdata
universal_pathlib
urllib3==2.4.0
wcwidth
widgetsnbextension==4.0.14
wrapt
yasa==0.6.5
zipp
3 changes: 0 additions & 3 deletions core_libraries/python/cnt_codehub/wheels/README.md

This file was deleted.

31 changes: 31 additions & 0 deletions scripts/CNT-STUDENT-DIRECTORY-GOES-HERE/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Sample User Directory

This is a placeholder folder to help you orient yourself to the repository for the first time. You can either rename this to your eventual project folder, or just delete it.

We provide some information on how to make a project folder/rename this folder below.

## Naming conventions

This is an example user folder. Personal project work takes place in folders saved at the same level as the central `codehub' folder.

We require that the naming of the folder follow the following design pattern:

> {device name}\_{project name}\_{optional subdirectory}

We require this naming structure in order to join different projects within the CNT data ecosystem. Multiple users can work within a single repository, either within the same directory or within their own optional subdirectories.

### Example

If I am working on a scalp multi-layer perceptron (MLP) project to predict sleep stages, spikes, and pnes predictions. I might go about making folders like follows:

- `device_name`: I am working on scalp data, so I will go with `scalp`
- `project_name`: I am using MLP for a a few different tasks, so lets just summarize the project as `MLP`.

Now I could stop there and just make my folder: `scalp_MLP` and place all of my work within. Or, if I wanted to be careful about the environment for each sub-goal, or maybe I was collaborating and each person was doing their own sub-goal, I could make the following folders:
- scalp_MLP_sleep
- scalp_MLP_sleep-stags
- scalp_MLP_pnes-predictor

## Updating the codehub libraries

Any changes to scripts within the [modules](../codehub/modules) subdiretory can be submitted to the main lab repository as its own branch, at which point a pull request will be reviewed before changes are accepted or rejected.
7 changes: 6 additions & 1 deletion scripts/codehub/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,4 +45,9 @@ Public components are where lab code can be saved for everyone to use and for ep
The utility scripts are not built into the epipy framework, and do not require specific formatting. To add a utility script, simply identify or create a new folder that generally defines the task being done (data acquisition/data validation/etc.) and add your code to the existing folder for that task type, or create a new folder defining the task and add it there.

### Pull Requests
Submit a pull request to share your changes with the lab as a whole. The data team will review the request before merging it, or sending it back to you for more clarity or bug fixes.
Submit a pull request to share your changes with the lab as a whole. The data team will review the request before merging it, or sending it back to you for more clarity or bug fixes.


## Remaining Updates/Fixes

- Remove keys from metadata handler if they do not get promoted to the feature extraction step.
1 change: 1 addition & 0 deletions scripts/codehub/allowed_arguments.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ allowed_channel_args:
NEUROVISTA: Channels for NeuroVista data.
RAW: Use all possible channels. Warning, channels may not match across different datasets.
allowed_montage_args:
NONE: No montage.
HUP1020: Use a 10-20 montage.
NEUROVISTA: Use a custom NeuroVista montage.
COMMON_AVERAGE: Use a common average montage.
Expand Down
4 changes: 3 additions & 1 deletion scripts/codehub/components/core/internal/config_loader.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,9 @@ def __init__(self,input_file):
self.yaml_step = config
else:
# Read in and typecast the yaml file
config = yaml.safe_load(open(input_file,'r'))
fp = open(input_file,'r')
config = yaml.safe_load(fp)
fp.close()

# Add in any looped steps to the correct yaml input format
self.loop_handler(config)
Expand Down
14 changes: 1 addition & 13 deletions scripts/codehub/components/core/internal/dataframe_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,16 +39,4 @@ def column_subsection(self,keep_columns):

# Get the columns to drop
drop_cols = np.setdiff1d(self.dataframe.columns,keep_columns)
self.dataframe = self.dataframe.drop(drop_cols, axis=1)

def montaged_dataframe(self,data,columns):
"""
Create a dataframe that stores the montaged data.
DEPRECIATE AFTER BETA PIPELINE RELEASE!

Args:
data (array): array of montaged data
columns (list): List of column names
"""

self.montaged_dataframe = PD.DataFrame(data,columns=columns)
self.dataframe = self.dataframe.drop(drop_cols, axis=1)
Loading