ethoscopy 2.0.5__tar.gz → 2.2.0__tar.gz
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.
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/.github/workflows/ci.yml +13 -12
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/.github/workflows/release.yml +7 -6
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/CLAUDE.md +2 -2
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/Docker/Dockerfile +21 -2
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/Docker/docker-compose.yml +2 -2
- ethoscopy-2.2.0/Docker/install_r_packages.r +96 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/PKG-INFO +6 -9
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/README.md +2 -4
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/pyproject.toml +4 -5
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/scripts/README.md +30 -2
- ethoscopy-2.2.0/scripts/publish_tutorials.py +407 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/src/ethoscopy/behavpy_core.py +18 -9
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/src/ethoscopy/behavpy_plotly.py +9 -2
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/src/ethoscopy/behavpy_seaborn.py +2 -3
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/src/ethoscopy/load.py +129 -115
- ethoscopy-2.0.5/.claude/settings.local.json +0 -40
- ethoscopy-2.0.5/Docker/install_r_packages.r +0 -75
- ethoscopy-2.0.5/Docker/jupyterhub_data/jupyterhub.sqlite +0 -0
- ethoscopy-2.0.5/Docker/jupyterhub_data/jupyterhub_cookie_secret +0 -1
- ethoscopy-2.0.5/tasks/todo.md +0 -90
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/.codecov.yml +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/.gitignore +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/.pre-commit-config.yaml +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/Docker/.env.dummy.example +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/Docker/.env.github.example +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/Docker/.env.gitlab.example +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/Docker/.env.google.example +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/Docker/.env.keycloak +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/Docker/.env.keycloak.example +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/Docker/README.md +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/Docker/README_AUTH.md +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/Docker/config/jupyterhub_config.py +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/Docker/config/users.py +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/Docker/jupyterhub_data/jupyterhub_config.py +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/LICENSE +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/TESTING.md +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/_config.yml +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/pytest.ini +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/run_tests.py +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/scripts/convert_databases.sh +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/scripts/convert_wal_to_delete.py +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/setup.py +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/src/ethoscopy/__init__.py +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/src/ethoscopy/analyse.py +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/src/ethoscopy/behavpy.py +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/src/ethoscopy/behavpy_HMM_class.py +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/src/ethoscopy/behavpy_class.py +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/src/ethoscopy/behavpy_draw.py +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/src/ethoscopy/behavpy_periodogram_class.py +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/src/ethoscopy/metadata_db.py +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/src/ethoscopy/misc/__init__.py +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/src/ethoscopy/misc/circadian_bars.py +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/src/ethoscopy/misc/general_functions.py +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/src/ethoscopy/misc/get_HMM.py +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/src/ethoscopy/misc/get_tutorials.py +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/src/ethoscopy/misc/hmm_functions.py +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/src/ethoscopy/misc/periodogram_functions.py +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/src/ethoscopy/misc/validate_datetime.py +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/tests/__init__.py +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/tests/conftest.py +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/tests/data/README.md +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/tests/data/test_ethoscope.db +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/tests/test_analyse.py +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/tests/test_baseline_enhancements.py +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/tests/test_behavpy.py +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/tests/test_behavpy_core_simple.py +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/tests/test_compatibility_classes.py +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/tests/test_general_functions.py +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/tests/test_get_tutorials.py +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/tests/test_load.py +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/tests/test_load_comprehensive.py +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/tests/test_load_metadata_fixes.py +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/tests/test_load_optimizations.py +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/tutorial_notebook/1_Overview_tutorial.ipynb +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/tutorial_notebook/2_HMM_tutorial.ipynb +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/tutorial_notebook/3_Circadian_tutorial.ipynb +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/tutorial_notebook/4_Navigating_db_tutorial.ipynb +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/tutorial_notebook/5_Ethoscopy_catch22_tutorial.ipynb +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/tutorial_notebook/6_Ethoscopy_to_hctsa_tutorial.ipynb +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/tutorial_notebook/ethoscope_db.csv +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/tutorial_notebook/jones_et_al_metadata.csv +0 -0
- {ethoscopy-2.0.5 → ethoscopy-2.2.0}/tutorial_notebook/notebook_paper.ipynb +0 -0
|
@@ -13,19 +13,20 @@ jobs:
|
|
|
13
13
|
test:
|
|
14
14
|
runs-on: ubuntu-latest
|
|
15
15
|
strategy:
|
|
16
|
+
fail-fast: false
|
|
16
17
|
matrix:
|
|
17
|
-
python-version: ['3.
|
|
18
|
+
python-version: ['3.12']
|
|
18
19
|
|
|
19
20
|
steps:
|
|
20
21
|
- uses: actions/checkout@v4
|
|
21
22
|
|
|
22
23
|
- name: Set up Python ${{ matrix.python-version }}
|
|
23
|
-
uses: actions/setup-python@
|
|
24
|
+
uses: actions/setup-python@v5
|
|
24
25
|
with:
|
|
25
26
|
python-version: ${{ matrix.python-version }}
|
|
26
27
|
|
|
27
28
|
- name: Cache pip dependencies
|
|
28
|
-
uses: actions/cache@
|
|
29
|
+
uses: actions/cache@v4
|
|
29
30
|
with:
|
|
30
31
|
path: ~/.cache/pip
|
|
31
32
|
key: ${{ runner.os }}-pip-${{ hashFiles('pyproject.toml') }}
|
|
@@ -69,10 +70,10 @@ jobs:
|
|
|
69
70
|
steps:
|
|
70
71
|
- uses: actions/checkout@v4
|
|
71
72
|
|
|
72
|
-
- name: Set up Python 3.
|
|
73
|
-
uses: actions/setup-python@
|
|
73
|
+
- name: Set up Python 3.12
|
|
74
|
+
uses: actions/setup-python@v5
|
|
74
75
|
with:
|
|
75
|
-
python-version: '3.
|
|
76
|
+
python-version: '3.12'
|
|
76
77
|
|
|
77
78
|
- name: Install dependencies
|
|
78
79
|
run: |
|
|
@@ -92,10 +93,10 @@ jobs:
|
|
|
92
93
|
steps:
|
|
93
94
|
- uses: actions/checkout@v4
|
|
94
95
|
|
|
95
|
-
- name: Set up Python 3.
|
|
96
|
-
uses: actions/setup-python@
|
|
96
|
+
- name: Set up Python 3.12
|
|
97
|
+
uses: actions/setup-python@v5
|
|
97
98
|
with:
|
|
98
|
-
python-version: '3.
|
|
99
|
+
python-version: '3.12'
|
|
99
100
|
|
|
100
101
|
- name: Install build dependencies
|
|
101
102
|
run: |
|
|
@@ -122,10 +123,10 @@ jobs:
|
|
|
122
123
|
steps:
|
|
123
124
|
- uses: actions/checkout@v4
|
|
124
125
|
|
|
125
|
-
- name: Set up Python 3.
|
|
126
|
-
uses: actions/setup-python@
|
|
126
|
+
- name: Set up Python 3.12
|
|
127
|
+
uses: actions/setup-python@v5
|
|
127
128
|
with:
|
|
128
|
-
python-version: '3.
|
|
129
|
+
python-version: '3.12'
|
|
129
130
|
|
|
130
131
|
- name: Install dependencies
|
|
131
132
|
run: |
|
|
@@ -11,14 +11,15 @@ jobs:
|
|
|
11
11
|
test:
|
|
12
12
|
runs-on: ubuntu-latest
|
|
13
13
|
strategy:
|
|
14
|
+
fail-fast: false
|
|
14
15
|
matrix:
|
|
15
|
-
python-version: ['3.
|
|
16
|
+
python-version: ['3.12']
|
|
16
17
|
|
|
17
18
|
steps:
|
|
18
19
|
- uses: actions/checkout@v4
|
|
19
20
|
|
|
20
21
|
- name: Set up Python ${{ matrix.python-version }}
|
|
21
|
-
uses: actions/setup-python@
|
|
22
|
+
uses: actions/setup-python@v5
|
|
22
23
|
with:
|
|
23
24
|
python-version: ${{ matrix.python-version }}
|
|
24
25
|
|
|
@@ -30,7 +31,7 @@ jobs:
|
|
|
30
31
|
|
|
31
32
|
- name: Run tests
|
|
32
33
|
run: |
|
|
33
|
-
python -m pytest tests/ -v --cov=ethoscopy -m "
|
|
34
|
+
python -m pytest tests/ -v --cov=ethoscopy -m "unit or integration"
|
|
34
35
|
|
|
35
36
|
build-and-publish:
|
|
36
37
|
needs: test
|
|
@@ -39,10 +40,10 @@ jobs:
|
|
|
39
40
|
steps:
|
|
40
41
|
- uses: actions/checkout@v4
|
|
41
42
|
|
|
42
|
-
- name: Set up Python 3.
|
|
43
|
-
uses: actions/setup-python@
|
|
43
|
+
- name: Set up Python 3.12
|
|
44
|
+
uses: actions/setup-python@v5
|
|
44
45
|
with:
|
|
45
|
-
python-version: '3.
|
|
46
|
+
python-version: '3.12'
|
|
46
47
|
|
|
47
48
|
- name: Install build dependencies
|
|
48
49
|
run: |
|
|
@@ -9,7 +9,7 @@ Ethoscopy is a Python data analysis toolbox for behavioral time series data from
|
|
|
9
9
|
## Development Environment
|
|
10
10
|
|
|
11
11
|
### Python Environment
|
|
12
|
-
- **Use Python 3.
|
|
12
|
+
- **Use Python 3.12+** (project requires >=3.12,<4.0)
|
|
13
13
|
- **Always use virtual environment** (`.venv` as mentioned in user's global instructions)
|
|
14
14
|
- **Install in development mode**: `pip install -e .`
|
|
15
15
|
|
|
@@ -21,7 +21,7 @@ Ethoscopy is a Python data analysis toolbox for behavioral time series data from
|
|
|
21
21
|
### Key Dependencies
|
|
22
22
|
- Core: pandas >=2.2.2, numpy >=2.0.0
|
|
23
23
|
- Visualization: plotly >=5.22.0, seaborn >=0.13.2
|
|
24
|
-
- Analysis: hmmlearn >=0.3.2, astropy >=
|
|
24
|
+
- Analysis: hmmlearn >=0.3.2, astropy >=7.0, pywavelets >=1.6.0
|
|
25
25
|
- Dev: ipykernel for Jupyter notebook support
|
|
26
26
|
|
|
27
27
|
## Build and Development Commands
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# Dockerfile for jupyter-rethomics
|
|
2
|
-
ARG JUPYTER_HUB_TAG=5.
|
|
2
|
+
ARG JUPYTER_HUB_TAG=5.4.0
|
|
3
3
|
FROM jupyterhub/jupyterhub:${JUPYTER_HUB_TAG}
|
|
4
4
|
|
|
5
5
|
# ============================================================================
|
|
@@ -25,6 +25,16 @@ RUN apt-get update && \
|
|
|
25
25
|
libtiff-dev \
|
|
26
26
|
libxml2-dev \
|
|
27
27
|
libpam0g-dev \
|
|
28
|
+
libssl-dev \
|
|
29
|
+
libgit2-dev \
|
|
30
|
+
libssh2-1-dev \
|
|
31
|
+
libfreetype6-dev \
|
|
32
|
+
libpng-dev \
|
|
33
|
+
libjpeg-dev \
|
|
34
|
+
libwebp-dev \
|
|
35
|
+
libcap-dev \
|
|
36
|
+
python3-dev \
|
|
37
|
+
pkg-config \
|
|
28
38
|
wget \
|
|
29
39
|
lsb-release \
|
|
30
40
|
software-properties-common \
|
|
@@ -77,9 +87,18 @@ RUN pip3 install \
|
|
|
77
87
|
seaborn \
|
|
78
88
|
bokeh \
|
|
79
89
|
lifelines \
|
|
90
|
+
ipywidgets \
|
|
91
|
+
ipympl \
|
|
80
92
|
opencv-python \
|
|
81
93
|
mysql-connector \
|
|
82
|
-
|
|
94
|
+
scikit-learn \
|
|
95
|
+
statsmodels \
|
|
96
|
+
pingouin \
|
|
97
|
+
openpyxl \
|
|
98
|
+
pyarrow \
|
|
99
|
+
tqdm \
|
|
100
|
+
jupyterlab-git \
|
|
101
|
+
ethoscopy==2.1.0
|
|
83
102
|
# pycatch22
|
|
84
103
|
|
|
85
104
|
# Pre-populate tutorial datasets inside the installed package so non-root
|
|
@@ -5,8 +5,8 @@ services:
|
|
|
5
5
|
context: .
|
|
6
6
|
dockerfile: Dockerfile
|
|
7
7
|
args:
|
|
8
|
-
JUPYTER_HUB_TAG: ${JUPYTER_HUB_TAG:-5.
|
|
9
|
-
image: ggilestro/ethoscope-lab:${ETHOSCOPE_LAB_TAG:-1.
|
|
8
|
+
JUPYTER_HUB_TAG: ${JUPYTER_HUB_TAG:-5.4.0}
|
|
9
|
+
image: ggilestro/ethoscope-lab:${ETHOSCOPE_LAB_TAG:-1.2}
|
|
10
10
|
container_name: ethoscope-lab
|
|
11
11
|
ports:
|
|
12
12
|
- 8082:8000
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
#!/bin/Rscript
|
|
2
|
+
|
|
3
|
+
# Parallelise source compilation across every core the builder exposes.
|
|
4
|
+
options(Ncpus = max(1L, parallel::detectCores()))
|
|
5
|
+
|
|
6
|
+
# The CRAN cloud mirror is a CDN and is faster + more reliable than regional hosts.
|
|
7
|
+
cran_repo <- "https://cloud.r-project.org"
|
|
8
|
+
|
|
9
|
+
install.packages(
|
|
10
|
+
c(
|
|
11
|
+
'BiocManager',
|
|
12
|
+
'caTools',
|
|
13
|
+
'callr',
|
|
14
|
+
'caret',
|
|
15
|
+
'cowplot',
|
|
16
|
+
'crayon',
|
|
17
|
+
'curl',
|
|
18
|
+
'DescTools',
|
|
19
|
+
'devtools',
|
|
20
|
+
'digest',
|
|
21
|
+
'dplyr',
|
|
22
|
+
'EnvStats',
|
|
23
|
+
'forecast',
|
|
24
|
+
'formatR',
|
|
25
|
+
'ggplot2',
|
|
26
|
+
'ggpubr',
|
|
27
|
+
'ggtern',
|
|
28
|
+
'ggthemes',
|
|
29
|
+
'ggrepel',
|
|
30
|
+
'ggseas',
|
|
31
|
+
'gh',
|
|
32
|
+
'git2r',
|
|
33
|
+
'httr',
|
|
34
|
+
'Hmisc',
|
|
35
|
+
'IRkernel',
|
|
36
|
+
'nycflights13',
|
|
37
|
+
'openssl',
|
|
38
|
+
'plotly',
|
|
39
|
+
'plyr',
|
|
40
|
+
'randomForest',
|
|
41
|
+
'RCurl',
|
|
42
|
+
'remotes',
|
|
43
|
+
'reshape2',
|
|
44
|
+
'rlang',
|
|
45
|
+
'rmarkdown',
|
|
46
|
+
'RSQLite',
|
|
47
|
+
'Rtsne',
|
|
48
|
+
'selectr',
|
|
49
|
+
'shiny',
|
|
50
|
+
'svglite',
|
|
51
|
+
'stringi',
|
|
52
|
+
'stringr',
|
|
53
|
+
'survminer',
|
|
54
|
+
'tictoc',
|
|
55
|
+
'tidyr',
|
|
56
|
+
'tidyverse',
|
|
57
|
+
'usethis',
|
|
58
|
+
'uuid',
|
|
59
|
+
'wesanderson',
|
|
60
|
+
'xgboost'
|
|
61
|
+
),
|
|
62
|
+
repos = cran_repo
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
# install.packages() does not abort on a failed package; check the ones we
|
|
66
|
+
# actually need downstream so the build fails loudly here instead of at the
|
|
67
|
+
# next library() call with a confusing "no package called 'devtools'" error.
|
|
68
|
+
required <- c("devtools", "IRkernel", "BiocManager")
|
|
69
|
+
missing <- required[!vapply(required, requireNamespace, logical(1), quietly = TRUE)]
|
|
70
|
+
if (length(missing) > 0) {
|
|
71
|
+
stop(
|
|
72
|
+
"Required R packages failed to install: ",
|
|
73
|
+
paste(missing, collapse = ", "),
|
|
74
|
+
". Check the install.packages() output above for the underlying error ",
|
|
75
|
+
"(usually a missing system -dev package)."
|
|
76
|
+
)
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
# Install rethomics
|
|
80
|
+
install.packages(
|
|
81
|
+
c('behavr',
|
|
82
|
+
'ggetho',
|
|
83
|
+
'damr',
|
|
84
|
+
# 'scopr',
|
|
85
|
+
'sleepr',
|
|
86
|
+
'zeitgebr'
|
|
87
|
+
),
|
|
88
|
+
repos = cran_repo
|
|
89
|
+
)
|
|
90
|
+
|
|
91
|
+
# As of Jan 2024 scopr does not seem to be on CRAN for whatever reason so we
|
|
92
|
+
# need to install from github.
|
|
93
|
+
library(devtools)
|
|
94
|
+
devtools::install_github("rethomics/scopr")
|
|
95
|
+
|
|
96
|
+
IRkernel::installspec(user = FALSE)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ethoscopy
|
|
3
|
-
Version: 2.0
|
|
3
|
+
Version: 2.2.0
|
|
4
4
|
Summary: "A python based toolkit to download and anlyse data from the Ethoscope hardware system."
|
|
5
5
|
Author-email: Lblackhurst29 <lblackhurst29@gmail.com>
|
|
6
6
|
License-File: LICENSE
|
|
@@ -9,13 +9,11 @@ Classifier: Intended Audience :: Science/Research
|
|
|
9
9
|
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
|
|
10
10
|
Classifier: Operating System :: OS Independent
|
|
11
11
|
Classifier: Programming Language :: Python :: 3
|
|
12
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
13
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
14
12
|
Classifier: Programming Language :: Python :: 3.12
|
|
15
13
|
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
|
|
16
14
|
Classifier: Topic :: Scientific/Engineering :: Information Analysis
|
|
17
|
-
Requires-Python: <4.0,>=3.
|
|
18
|
-
Requires-Dist: astropy<
|
|
15
|
+
Requires-Python: <4.0,>=3.12
|
|
16
|
+
Requires-Dist: astropy<8.0,>=7.0
|
|
19
17
|
Requires-Dist: colour<0.2.0,>=0.1.5
|
|
20
18
|
Requires-Dist: hmmlearn<0.4.0,>=0.3.2
|
|
21
19
|
Requires-Dist: nbformat<6.0.0,>=5.10.4
|
|
@@ -25,6 +23,7 @@ Requires-Dist: plotly<6.0.0,>=5.22.0
|
|
|
25
23
|
Requires-Dist: pywavelets<2.0.0,>=1.6.0
|
|
26
24
|
Requires-Dist: seaborn<0.14.0,>=0.13.2
|
|
27
25
|
Requires-Dist: tabulate<0.10.0,>=0.9.0
|
|
26
|
+
Requires-Dist: tqdm<5.0,>=4.66
|
|
28
27
|
Provides-Extra: dev
|
|
29
28
|
Requires-Dist: black<25.0.0,>=24.0.0; extra == 'dev'
|
|
30
29
|
Requires-Dist: ipykernel<7.0.0,>=6.29.5; extra == 'dev'
|
|
@@ -42,14 +41,12 @@ Description-Content-Type: text/markdown
|
|
|
42
41
|
[](https://github.com/gilestrolab/ethoscopy/actions/workflows/ci.yml)
|
|
43
42
|
[](https://codecov.io/gh/gilestrolab/ethoscopy)
|
|
44
43
|
[](https://pypi.org/project/ethoscopy/)
|
|
45
|
-
[](https://pypi.org/project/ethoscopy/)
|
|
46
45
|
[](https://www.gnu.org/licenses/gpl-3.0)
|
|
47
46
|
|
|
48
47
|
A data-analysis toolbox utilising Pandas, Seaborn, and Plotly to curate, clean, analyse, and visualise behavioural time series data. Whilst the toolbix was created around the data produced from an Ethoscope (a Drosophila monitoring system), if the users data follows the same structure for time series data all methods can be utilised.
|
|
49
48
|
|
|
50
|
-
|
|
51
|
-
- currently the above tutorial is out of date. Use the jupyter notebooks to learn how to use the package
|
|
52
|
-
- I promise to update the tutorial soon so it is aligned with the 2.0 version
|
|
49
|
+
Head to the [tutorial](https://bookstack.lab.gilest.ro/books/ethoscopy) for an in-depth walk through. The Jupyter notebooks in [`tutorial_notebook/`](tutorial_notebook/) are the authoritative, runnable examples.
|
|
53
50
|
|
|
54
51
|
For more information on the Ethoscope system, click [here](https://www.notion.so/The-ethoscope-60952be38787404095aa99be37c42a27)
|
|
55
52
|
- If using in conjenction with Ethoscope data this software contains functions for loading the Ethoscope data into ethocopy from .db files both locally and in remote ftp servers.
|
|
@@ -3,14 +3,12 @@
|
|
|
3
3
|
[](https://github.com/gilestrolab/ethoscopy/actions/workflows/ci.yml)
|
|
4
4
|
[](https://codecov.io/gh/gilestrolab/ethoscopy)
|
|
5
5
|
[](https://pypi.org/project/ethoscopy/)
|
|
6
|
-
[](https://pypi.org/project/ethoscopy/)
|
|
7
7
|
[](https://www.gnu.org/licenses/gpl-3.0)
|
|
8
8
|
|
|
9
9
|
A data-analysis toolbox utilising Pandas, Seaborn, and Plotly to curate, clean, analyse, and visualise behavioural time series data. Whilst the toolbix was created around the data produced from an Ethoscope (a Drosophila monitoring system), if the users data follows the same structure for time series data all methods can be utilised.
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
- currently the above tutorial is out of date. Use the jupyter notebooks to learn how to use the package
|
|
13
|
-
- I promise to update the tutorial soon so it is aligned with the 2.0 version
|
|
11
|
+
Head to the [tutorial](https://bookstack.lab.gilest.ro/books/ethoscopy) for an in-depth walk through. The Jupyter notebooks in [`tutorial_notebook/`](tutorial_notebook/) are the authoritative, runnable examples.
|
|
14
12
|
|
|
15
13
|
For more information on the Ethoscope system, click [here](https://www.notion.so/The-ethoscope-60952be38787404095aa99be37c42a27)
|
|
16
14
|
- If using in conjenction with Ethoscope data this software contains functions for loading the Ethoscope data into ethocopy from .db files both locally and in remote ftp servers.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "ethoscopy"
|
|
3
|
-
version = "2.0
|
|
3
|
+
version = "2.2.0"
|
|
4
4
|
description = "\"A python based toolkit to download and anlyse data from the Ethoscope hardware system.\""
|
|
5
5
|
authors = [{name = "Lblackhurst29",email = "lblackhurst29@gmail.com"}]
|
|
6
6
|
readme = "README.md"
|
|
@@ -13,18 +13,17 @@ dependencies = [
|
|
|
13
13
|
"colour>=0.1.5,<0.2.0",
|
|
14
14
|
"hmmlearn>=0.3.2,<0.4.0",
|
|
15
15
|
"pywavelets>=1.6.0,<2.0.0",
|
|
16
|
-
"astropy>=
|
|
16
|
+
"astropy>=7.0,<8.0",
|
|
17
17
|
"nbformat>=5.10.4,<6.0.0",
|
|
18
|
+
"tqdm>=4.66,<5.0",
|
|
18
19
|
]
|
|
19
|
-
requires-python = ">=3.
|
|
20
|
+
requires-python = ">=3.12,<4.0"
|
|
20
21
|
classifiers = [
|
|
21
22
|
"Development Status :: 4 - Beta",
|
|
22
23
|
"Intended Audience :: Science/Research",
|
|
23
24
|
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
|
|
24
25
|
"Operating System :: OS Independent",
|
|
25
26
|
"Programming Language :: Python :: 3",
|
|
26
|
-
"Programming Language :: Python :: 3.10",
|
|
27
|
-
"Programming Language :: Python :: 3.11",
|
|
28
27
|
"Programming Language :: Python :: 3.12",
|
|
29
28
|
"Topic :: Scientific/Engineering :: Bio-Informatics",
|
|
30
29
|
"Topic :: Scientific/Engineering :: Information Analysis",
|
|
@@ -1,6 +1,34 @@
|
|
|
1
|
-
# Ethoscopy
|
|
1
|
+
# Ethoscopy Utility Scripts
|
|
2
2
|
|
|
3
|
-
This directory contains
|
|
3
|
+
This directory contains helper scripts used for documentation, deployment and database maintenance around ethoscopy.
|
|
4
|
+
|
|
5
|
+
## Publishing tutorial notebooks to BookStack
|
|
6
|
+
|
|
7
|
+
### publish_tutorials.py
|
|
8
|
+
|
|
9
|
+
Executes a Jupyter tutorial notebook against a clean seaborn kernel, strips the Plotly JS blobs that nbconvert would otherwise embed as multi-megabyte text outputs, uploads the resulting PNGs to BookStack's image gallery and rewrites the markdown to reference the uploaded URLs. Creates or updates a BookStack page in-place.
|
|
10
|
+
|
|
11
|
+
**Usage:**
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
# Update an existing BookStack page
|
|
15
|
+
python3 scripts/publish_tutorials.py tutorial_notebook/1_Overview_tutorial.ipynb --page-id 16
|
|
16
|
+
|
|
17
|
+
# Create a new page under a given book
|
|
18
|
+
python3 scripts/publish_tutorials.py tutorial_notebook/3_Circadian_tutorial.ipynb \
|
|
19
|
+
--create --book-id 1 --title "Tutorial 3 — Circadian analysis"
|
|
20
|
+
|
|
21
|
+
# Point at a specific credentials file (otherwise ~/Code/dockers/MCPs/.env is tried,
|
|
22
|
+
# and BOOKSTACK_BASE_URL / BOOKSTACK_API_TOKEN in the environment win if set)
|
|
23
|
+
python3 scripts/publish_tutorials.py … --env-file /path/to/.env
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
**Requirements:**
|
|
27
|
+
- `jupyter nbconvert` with a kernel that has `ethoscopy` installed (defaults to `python3`)
|
|
28
|
+
- `BOOKSTACK_BASE_URL` and `BOOKSTACK_API_TOKEN` (in env or `.env` file)
|
|
29
|
+
- `requests` (`pip install requests` if not already present)
|
|
30
|
+
|
|
31
|
+
**What it does NOT do:** re-order existing tutorial pages, move pages between books, or touch the source notebook on disk. All work happens in a scratch dir under `/tmp/ethoscopy_publish_tutorials/<stem>/`.
|
|
4
32
|
|
|
5
33
|
## Database Journal Mode Conversion
|
|
6
34
|
|