Skip to content

Commit 02ddd49

Browse files
authored
Merge pull request #45 from kabilar/main
Add quality metrics
2 parents 29f841f + 7e72755 commit 02ddd49

22 files changed

+887
-1971
lines changed

.github/workflows/u24_element_release_call.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,4 @@ jobs:
2525
py_ver: 3.9
2626
secrets:
2727
TWINE_USERNAME: ${{secrets.TWINE_USERNAME}}
28-
TWINE_PASSWORD: ${{secrets.TWINE_PASSWORD}}
28+
TWINE_PASSWORD: ${{secrets.TWINE_PASSWORD}}

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,11 @@
33
Observes [Semantic Versioning](https://semver.org/spec/v2.0.0.html) standard and
44
[Keep a Changelog](https://keepachangelog.com/en/1.0.0/) convention.
55

6+
## [0.3.0] - 2023-05-15
7+
8+
+ Add - Quality metrics
9+
+ Update - README and docs to reflect new structure across all Elements
10+
611
## [0.2.1] - 2023-05-11
712

813
+ Fix - `.ipynb` dark mode output for all notebooks.
@@ -37,6 +42,7 @@ Observes [Semantic Versioning](https://semver.org/spec/v2.0.0.html) standard and
3742
+ Add - Load data acquired with Miniscope-DAQ-V3
3843
+ Add - Load data analyzed with MiniscopeAnalysis
3944

45+
[0.3.0]: https://github.com/datajoint/element-miniscope/releases/tag/0.3.0
4046
[0.2.1]: https://github.com/datajoint/element-miniscope/releases/tag/0.2.1
4147
[0.2.0]: https://github.com/datajoint/element-miniscope/releases/tag/0.2.0
4248
[0.1.4]: https://github.com/datajoint/element-miniscope/releases/tag/0.1.4

README.md

Lines changed: 28 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,33 @@
22

33
DataJoint Element for functional calcium imaging data acquired with the
44
[UCLA Miniscope](https://github.com/Aharoni-Lab/Miniscope-v4) and
5-
[Miniscope DAQ](https://github.com/Aharoni-Lab/Miniscope-DAQ-QT-Software)
6-
acquisition system, and analyzed with `CaImAn`. DataJoint Elements collectively
7-
standardize and automate data collection and analysis for neuroscience experiments.
8-
Each Element is a modular pipeline for data storage and processing with corresponding
9-
database tables that can be combined with other Elements to assemble a fully functional
10-
pipeline.
5+
[Miniscope DAQ](https://github.com/Aharoni-Lab/Miniscope-DAQ-QT-Software) acquisition
6+
system, and analyzed with [CaImAn](https://github.com/flatironinstitute/CaImAn).
7+
DataJoint Elements collectively standardize and automate data collection and analysis
8+
for neuroscience experiments. Each Element is a modular pipeline for data storage and
9+
processing with corresponding database tables that can be combined with other Elements
10+
to assemble a fully functional pipeline.
1111

12-
![diagram](https://raw.githubusercontent.com/datajoint/element-miniscope/main/images/diagram_flowchart.svg)
12+
## Experiment Flowchart
1313

14-
Installation and usage instructions can be found at the
15-
[Element documentation](https://datajoint.com/docs/elements/element-miniscope).
14+
![flowchart](https://raw.githubusercontent.com/datajoint/element-miniscope/main/images/flowchart.svg)
15+
16+
## Data Pipeline Diagram
17+
18+
![pipeline](https://raw.githubusercontent.com/datajoint/element-miniscope/main/images/pipeline.svg)
19+
20+
## Getting Started
21+
22+
+ Install from PyPI
23+
24+
```bash
25+
pip install element-miniscope
26+
```
27+
28+
+ [Interactive tutorial on GitHub Codespaces](https://github.com/datajoint/workflow-miniscope#interactive-tutorial)
29+
30+
+ [Documentation](https://datajoint.com/docs/elements/element-miniscope)
31+
32+
## Support
33+
34+
+ If you need help getting started or run into any errors, please contact our team by email at [email protected].

docs/.docker/pip_requirements.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,5 @@ mkdocs-gen-files
88
mkdocs-literate-nav
99
mkdocs-exclude-search
1010
mkdocs-markdownextradata-plugin
11-
mkdocs-jupyter
11+
mkdocs-jupyter
12+
mkdocs-section-index

docs/docker-compose.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ services:
1414
- PACKAGE
1515
- UPSTREAM_REPO
1616
- MODE
17-
- GOOGLE_ANALYTICS_KEY
1817
- PATCH_VERSION
1918
volumes:
2019
- ../docs:/main/docs

docs/mkdocs.yaml

Lines changed: 15 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,13 @@ repo_url: https://github.com/datajoint/element-miniscope
66
repo_name: datajoint/element-miniscope
77
nav:
88
- Element Miniscope: index.md
9-
- Concepts: concepts.md
9+
- Data Pipeline: pipeline.md
1010
- Tutorials:
11-
- Overview: tutorials/index.md
12-
- Data Download: tutorials/00-DataDownload_Optional.ipynb
13-
- Configure: tutorials/01-Configure.ipynb
14-
- Workflow Structure: tutorials/02-WorkflowStructure_Optional.ipynb
15-
- Process: tutorials/03-Process.ipynb
16-
- Automate: tutorials/04-Automate_Optional.ipynb
17-
- Explore: tutorials/05-Explore.ipynb
18-
- Drop: tutorials/06-Drop_Optional.ipynb
19-
- Downstream Analysis: tutorials/07-DownstreamAnalysis_Optional.ipynb
20-
- Visualizations: tutorials/08-Visualizations.ipynb
11+
- tutorials/index.md
12+
- Quality Metrics Notebook: tutorials/quality_metrics.ipynb
13+
- Concepts: concepts.md
14+
- Key Partnerships: partnerships.md
15+
- Roadmap: roadmap.md
2116
- Citation: citation.md
2217
- API: api/ # defer to gen-files + literate-nav
2318
- Changelog: changelog.md
@@ -52,17 +47,14 @@ nav:
5247
# UPSTREAM_REPO=https://github.com/datajoint/element-{ELEMENT}.git \
5348
# HOST_UID=$(id -u) docker compose -f docs/docker-compose.yaml up --build
5449
# ```
55-
# 02. Site analytics depend on a local environment variable GOOGLE_ANALYTICS_KEY
56-
# You can find this in LastPass or declare with any string to suppress errors
57-
# 03. The API section will pull docstrings.
58-
# A. Follow google style guide e.g.,
50+
# 02. The API section will pull docstrings.
51+
# A. Follow google styleguide e.g.,
5952
# https://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_google.html
6053
# With typing suggestions: https://docs.python.org/3/library/typing.html
6154
# B. To pull a specific workflow fork, change ./docs/src/api/make_pages.py#L19
62-
# 04. To see your fork of the workflow-{element} in this render, change the
55+
# 03. To see your fork of the workflow-{element} in this render, change the
6356
# URL in ./docs/src/api/make_pages.py#L19 to your fork.
64-
# 05. For redirecting options For redirect options, see 'redirects' below.
65-
# 06. To deploy this site on your fork,
57+
# 04. To deploy this site on your fork,
6658
# A. declare a branch called gh-pages
6759
# B. go to the your fork > settings > pages
6860
# C. direct pages to render from the gh-pages branch at root
@@ -97,9 +89,6 @@ theme:
9789
plugins:
9890
- markdownextradata: {}
9991
- search
100-
# - redirects: # OPTIONAL REDIRECTS
101-
# redirect_maps:
102-
# "index.md": "getting_started.md"
10392
- mkdocstrings:
10493
default_handler: python
10594
handlers:
@@ -118,7 +107,8 @@ plugins:
118107
- "*/navigation.md"
119108
- mkdocs-jupyter:
120109
ignore_h1_titles: True
121-
110+
include: ["*.ipynb"]
111+
- section-index
122112
markdown_extensions:
123113
- attr_list
124114
- toc:
@@ -139,14 +129,13 @@ markdown_extensions:
139129
linenums: true
140130
- pymdownx.inlinehilite
141131
- pymdownx.snippets
132+
- pymdownx.magiclink # Displays bare URLs as links
133+
- pymdownx.tasklist: # Renders check boxes in tasks lists
134+
custom_checkbox: true
142135
- footnotes
143-
144136
extra:
145137
PATCH_VERSION: !ENV PATCH_VERSION
146138
generator: false # Disable watermark
147-
analytics:
148-
provider: google
149-
property: !ENV GOOGLE_ANALYTICS_KEY
150139
version:
151140
provider: mike
152141
social:

docs/src/api/make_pages.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
):
1919
if (
2020
path.stem == "__init__"
21+
or path.stem == "version"
2122
or "plotting" in path.parts # Workaround for mkdocstring-python subfolder error
2223
):
2324
continue

docs/src/citation.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,4 @@ Resource Identifier (RRID).
77
Reimer J, Walker EY, Tolias AS. DataJoint Elements: Data Workflows for
88
Neurophysiology. bioRxiv. 2021 Jan 1. doi: https://doi.org/10.1101/2021.03.30.437358
99

10-
+ DataJoint Elements ([RRID:SCR_021894](https://scicrunch.org/resolver/SCR_021894)) -
11-
Element Miniscope (version {{ PATCH_VERSION }})
10+
+ DataJoint Element Miniscope - [RRID:SCR_021894](https://scicrunch.org/resolver/SCR_021894) - Version {{ PATCH_VERSION }}

docs/src/concepts.md

Lines changed: 0 additions & 103 deletions
Original file line numberDiff line numberDiff line change
@@ -97,106 +97,3 @@ are open source, they are often developed by an individual during their training
9797
and lack funding for long term maintenance. These factors result in a lack of
9898
standardization for miniscope preprocessing tools, which is a major obstacle to adoption
9999
for new labs.
100-
101-
## Key Partnerships
102-
103-
The DataJoint team have been in contact with the following teams who are eager to engage
104-
and adopt DataJoint-based workflows in their labs.
105-
106-
- Adrien Peyrache Lab, McGill University
107-
- Peyman Golshani Lab, UCLA
108-
- Daniel Aharoni Lab, UCLA
109-
- Anne Churchland Lab, UCLA
110-
- Fan Wang Lab, MIT
111-
- Antoine Adamantidis Lab, University of Bern
112-
- Manolis Froudaraki Lab, FORTH
113-
- Allan Basbaum Lab, UCSF
114-
115-
## Element Architecture
116-
117-
Each of the DataJoint Elements are a set of tables for common neuroinformatics
118-
modalities to organize, preprocess, and analyze data. Each node in the following diagram
119-
is either a table in the Element itself or a table that would be connected to the
120-
Element.
121-
122-
![element-miniscope diagram](https://raw.githubusercontent.com/datajoint/element-miniscope/main/images/attached_miniscope_element.svg)
123-
124-
### `subject` schema ([API docs](https://datajoint.com/docs/elements/element-animal/api/element_animal/subject))
125-
126-
Although not required, most choose to connect the `Session` table to a `Subject` table.
127-
128-
| Table | Description |
129-
| --- | --- |
130-
| Subject | Basic information of the research subject. |
131-
132-
### `session` schema ([API docs](https://datajoint.com/docs/elements/element-session/api/element_session/session_with_datetime))
133-
134-
| Table | Description |
135-
| --- | --- |
136-
| Session | Unique experimental session identifier. |
137-
138-
### `miniscope` schema ([API docs](../api/element_miniscope/miniscope))
139-
140-
Tables related to importing, analyzing, and exporting miniscope data.
141-
142-
| Table | Description |
143-
| --- | --- |
144-
| Recording | A table containing information about the equipment used (e.g. the acquisition hardware information). |
145-
| RecordingInfo | The metadata about this recording from the Miniscope DAQ software (e.g. frame rate, number of channels, frames, etc.). |
146-
| MotionCorrection | A table with information about motion correction performed on a recording. |
147-
| MotionCorrection.RigidMotionCorrection | A table with details of rigid motion correction (e.g. shifting in x, y). |
148-
| MotionCorrection.NonRigidMotionCorrection and MotionCorrection.Block | These tables describe the non-rigid motion correction. |
149-
| MotionCorrection.Summary | A table containing summary images after motion correction. |
150-
| Segmentation | This table specifies the segmentation step and its outputs, following the motion correction step. |
151-
| Segmentation.Mask | This table contains the image mask for the segmented region of interest. |
152-
| MaskClassification | This table contains information about the classification of `Segmentation.Mask` into a type (e.g. soma, axon, dendrite, artifact, etc.). |
153-
| Fluorescence | This table contains the fluorescence traces extracted from each `Segmentation.Mask`. |
154-
| ActivityExtractionMethod | A table with information about the activity extraction method (e.g. deconvolution) applied on the fluorescence trace. |
155-
| Activity | A table with neuronal activity traces from fluorescence trace (e.g. spikes). |
156-
157-
### `miniscope_report` schema ([API docs](../api/element_miniscope/miniscope_report))
158-
159-
Tables related to summary reports of miniscope data.
160-
161-
| Table | Description |
162-
| --- | --- |
163-
| QualityMetrics | A table containing information about CaImAn estimates. |
164-
165-
The above `QualityMetrics` table includes the following for each component in the CaImAn
166-
analysis:
167-
168-
- `r_values`: Space correlation.
169-
- `snr`: Trace SNR.
170-
- `cnn_preds`: CNN predictions.
171-
172-
## Pipeline Development
173-
174-
With assistance from Dr. Peyman Golshani's Lab (UCLA) we have added support for the UCLA
175-
Miniscope DAQ V3 acquisition tool and MiniscopeAnalysis preprocessing tool in
176-
`element-miniscope` and `workflow-miniscope`. They have provided example data for
177-
development.
178-
179-
Based on interviews, we are considering adding support for the tools listed below. The
180-
deciding factors include the number of users, long term support, quality controls, and
181-
python programming language (so that the preprocessing tool can be triggered within the
182-
element).
183-
184-
- Acquisition tools + Miniscope DAQ V4 + Inscopix Data Acquisition Software (IDAS)
185-
- Preprocessing tools + Inscopix Data Processing Software (IDPS) + Inscopix Multimodal Image
186-
Registration and Analysis (MIRA) + MiniAn + CaImAn + CNMF-E + CellReg
187-
188-
## Roadmap
189-
190-
Further development of this Element is community driven. Upon user requests and based on
191-
guidance from the Scientific Steering Group we will add features to this Element, such
192-
as:
193-
194-
- Acquisition & Preprocessing tools
195-
- Inscopix
196-
- Data Acquisition Software (IDAS)
197-
- Data Processing Software (IDPS)
198-
- Multimodal Image Registration and Analysis (MIRA)
199-
- MiniAn
200-
- CaImAn
201-
- CNMF-E
202-
- CellReg

docs/src/index.md

Lines changed: 34 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,36 @@
11
# Element Miniscope Calcium Imaging
22

3-
DataJoint Element for functional calcium imaging data acquired with the [UCLA Miniscope](https://github.com/Aharoni-Lab/Miniscope-v4)
4-
and [Miniscope DAQ](https://github.com/Aharoni-Lab/Miniscope-DAQ-QT-Software)
5-
acquisition system, and
6-
analyzed with `CaImAn`. DataJoint Elements collectively standardize and automate data
7-
collection and analysis for neuroscience experiments. Each Element is a modular
8-
pipeline for data storage and processing with corresponding database tables that can be
9-
combined with other Elements to assemble a fully functional pipeline.
10-
11-
![diagram](https://raw.githubusercontent.com/datajoint/element-miniscope/main/images/diagram_flowchart.svg)
12-
13-
Visit the [Concepts page](./concepts.md) for more information about miniscope calcium
14-
imaging and Element Miniscope. To get started with building your data pipeline visit
15-
the [Tutorials page](./tutorials/).
3+
DataJoint Element for functional calcium imaging data acquired with the
4+
[UCLA Miniscope](https://github.com/Aharoni-Lab/Miniscope-v4) and
5+
[Miniscope DAQ](https://github.com/Aharoni-Lab/Miniscope-DAQ-QT-Software) acquisition
6+
system, and analyzed with [CaImAn](https://github.com/flatironinstitute/CaImAn).
7+
DataJoint Elements collectively standardize and automate data collection and analysis
8+
for neuroscience experiments. Each Element is a modular pipeline for data storage and
9+
processing with corresponding database tables that can be combined with other Elements
10+
to assemble a fully functional pipeline.
11+
12+
## Experiment Flowchart
13+
14+
![flowchart](https://raw.githubusercontent.com/datajoint/element-miniscope/main/images/flowchart.svg)
15+
16+
## Data Pipeline Diagram
17+
18+
![pipeline](https://raw.githubusercontent.com/datajoint/element-miniscope/main/images/pipeline.svg)
19+
20+
## Getting Started
21+
22+
+ Install from PyPI
23+
24+
```bash
25+
pip install element-miniscope
26+
```
27+
28+
+ [Data Pipeline](./pipeline.md) - Pipeline and table descriptions
29+
30+
+ [Tutorials](./tutorials/index.md) - Start building your data pipeline
31+
32+
+ [Code Repository](https://github.com/datajoint/element-miniscope/){:target="_blank"}
33+
34+
## Support
35+
36+
+ If you need help getting started or run into any errors, please contact our team by email at [email protected].

0 commit comments

Comments
 (0)