LCNE-patchseq-analysis 0.0.2__tar.gz → 0.1.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.
- {lcne_patchseq_analysis-0.0.2 → lcne_patchseq_analysis-0.1.0}/.gitignore +2 -1
- {lcne_patchseq_analysis-0.0.2 → lcne_patchseq_analysis-0.1.0}/PKG-INFO +4 -9
- {lcne_patchseq_analysis-0.0.2 → lcne_patchseq_analysis-0.1.0}/README.md +1 -8
- {lcne_patchseq_analysis-0.0.2 → lcne_patchseq_analysis-0.1.0}/environment/Dockerfile +0 -8
- {lcne_patchseq_analysis-0.0.2 → lcne_patchseq_analysis-0.1.0}/environment/postInstall +1 -0
- lcne_patchseq_analysis-0.1.0/notebook/demo.ipynb +705 -0
- {lcne_patchseq_analysis-0.0.2 → lcne_patchseq_analysis-0.1.0}/pyproject.toml +3 -1
- lcne_patchseq_analysis-0.1.0/src/LCNE_patchseq_analysis/__init__.py +2 -0
- lcne_patchseq_analysis-0.1.0/src/LCNE_patchseq_analysis/data_util/__init__.py +2 -0
- lcne_patchseq_analysis-0.1.0/src/LCNE_patchseq_analysis/data_util/ephys.py +1 -0
- lcne_patchseq_analysis-0.1.0/src/LCNE_patchseq_analysis/data_util/metadata.py +62 -0
- {lcne_patchseq_analysis-0.0.2 → lcne_patchseq_analysis-0.1.0}/src/LCNE_patchseq_analysis.egg-info/PKG-INFO +4 -9
- {lcne_patchseq_analysis-0.0.2 → lcne_patchseq_analysis-0.1.0}/src/LCNE_patchseq_analysis.egg-info/SOURCES.txt +4 -0
- {lcne_patchseq_analysis-0.0.2 → lcne_patchseq_analysis-0.1.0}/src/LCNE_patchseq_analysis.egg-info/requires.txt +2 -0
- lcne_patchseq_analysis-0.0.2/src/LCNE_patchseq_analysis/__init__.py +0 -2
- {lcne_patchseq_analysis-0.0.2 → lcne_patchseq_analysis-0.1.0}/.flake8 +0 -0
- {lcne_patchseq_analysis-0.0.2 → lcne_patchseq_analysis-0.1.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {lcne_patchseq_analysis-0.0.2 → lcne_patchseq_analysis-0.1.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {lcne_patchseq_analysis-0.0.2 → lcne_patchseq_analysis-0.1.0}/.github/ISSUE_TEMPLATE/user-story.md +0 -0
- {lcne_patchseq_analysis-0.0.2 → lcne_patchseq_analysis-0.1.0}/.github/workflows/init.yml +0 -0
- {lcne_patchseq_analysis-0.0.2 → lcne_patchseq_analysis-0.1.0}/.github/workflows/tag_and_publish.yml +0 -0
- {lcne_patchseq_analysis-0.0.2 → lcne_patchseq_analysis-0.1.0}/.github/workflows/test_and_lint.yml +0 -0
- {lcne_patchseq_analysis-0.0.2 → lcne_patchseq_analysis-0.1.0}/LICENSE +0 -0
- {lcne_patchseq_analysis-0.0.2 → lcne_patchseq_analysis-0.1.0}/docs/Makefile +0 -0
- {lcne_patchseq_analysis-0.0.2 → lcne_patchseq_analysis-0.1.0}/docs/make.bat +0 -0
- {lcne_patchseq_analysis-0.0.2 → lcne_patchseq_analysis-0.1.0}/docs/source/_static/dark-logo.svg +0 -0
- {lcne_patchseq_analysis-0.0.2 → lcne_patchseq_analysis-0.1.0}/docs/source/_static/favicon.ico +0 -0
- {lcne_patchseq_analysis-0.0.2 → lcne_patchseq_analysis-0.1.0}/docs/source/_static/light-logo.svg +0 -0
- {lcne_patchseq_analysis-0.0.2 → lcne_patchseq_analysis-0.1.0}/docs/source/conf.py +0 -0
- {lcne_patchseq_analysis-0.0.2 → lcne_patchseq_analysis-0.1.0}/docs/source/index.rst +0 -0
- {lcne_patchseq_analysis-0.0.2 → lcne_patchseq_analysis-0.1.0}/setup.cfg +0 -0
- {lcne_patchseq_analysis-0.0.2 → lcne_patchseq_analysis-0.1.0}/setup.py +0 -0
- {lcne_patchseq_analysis-0.0.2 → lcne_patchseq_analysis-0.1.0}/src/LCNE_patchseq_analysis.egg-info/dependency_links.txt +0 -0
- {lcne_patchseq_analysis-0.0.2 → lcne_patchseq_analysis-0.1.0}/src/LCNE_patchseq_analysis.egg-info/top_level.txt +0 -0
- {lcne_patchseq_analysis-0.0.2 → lcne_patchseq_analysis-0.1.0}/tests/__init__.py +0 -0
- {lcne_patchseq_analysis-0.0.2 → lcne_patchseq_analysis-0.1.0}/tests/test_example.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: LCNE-patchseq-analysis
|
|
3
|
-
Version: 0.0
|
|
3
|
+
Version: 0.1.0
|
|
4
4
|
Summary: Generated from aind-library-template
|
|
5
5
|
Author: Allen Institute for Neural Dynamics
|
|
6
6
|
Author-email: Han Hou <han.hou@alleninstitute.org>
|
|
@@ -11,6 +11,8 @@ Description-Content-Type: text/markdown
|
|
|
11
11
|
License-File: LICENSE
|
|
12
12
|
Requires-Dist: numpy
|
|
13
13
|
Requires-Dist: pandas
|
|
14
|
+
Requires-Dist: openpyxl
|
|
15
|
+
Requires-Dist: matplotlib
|
|
14
16
|
Provides-Extra: dev
|
|
15
17
|
Requires-Dist: black; extra == "dev"
|
|
16
18
|
Requires-Dist: coverage; extra == "dev"
|
|
@@ -29,14 +31,7 @@ Requires-Dist: furo; extra == "dev"
|
|
|
29
31
|

|
|
30
32
|

|
|
31
33
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
## Usage
|
|
35
|
-
- To use this template, click the green `Use this template` button and `Create new repository`.
|
|
36
|
-
- After github initially creates the new repository, please wait an extra minute for the initialization scripts to finish organizing the repo.
|
|
37
|
-
- To enable the automatic semantic version increments: in the repository go to `Settings` and `Collaborators and teams`. Click the green `Add people` button. Add `svc-aindscicomp` as an admin. Modify the file in `.github/workflows/tag_and_publish.yml` and remove the if statement in line 65. The semantic version will now be incremented every time a code is committed into the main branch.
|
|
38
|
-
- To publish to PyPI, enable semantic versioning and uncomment the publish block in `.github/workflows/tag_and_publish.yml`. The code will now be published to PyPI every time the code is committed into the main branch.
|
|
39
|
-
- The `.github/workflows/test_and_lint.yml` file will run automated tests and style checks every time a Pull Request is opened. If the checks are undesired, the `test_and_lint.yml` can be deleted. The strictness of the code coverage level, etc., can be modified by altering the configurations in the `pyproject.toml` file and the `.flake8` file.
|
|
34
|
+
Library for LCNE-patchseq data analysis
|
|
40
35
|
|
|
41
36
|
## Installation
|
|
42
37
|
To use the software, in the root directory, run
|
|
@@ -7,14 +7,7 @@
|
|
|
7
7
|

|
|
8
8
|

|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
## Usage
|
|
13
|
-
- To use this template, click the green `Use this template` button and `Create new repository`.
|
|
14
|
-
- After github initially creates the new repository, please wait an extra minute for the initialization scripts to finish organizing the repo.
|
|
15
|
-
- To enable the automatic semantic version increments: in the repository go to `Settings` and `Collaborators and teams`. Click the green `Add people` button. Add `svc-aindscicomp` as an admin. Modify the file in `.github/workflows/tag_and_publish.yml` and remove the if statement in line 65. The semantic version will now be incremented every time a code is committed into the main branch.
|
|
16
|
-
- To publish to PyPI, enable semantic versioning and uncomment the publish block in `.github/workflows/tag_and_publish.yml`. The code will now be published to PyPI every time the code is committed into the main branch.
|
|
17
|
-
- The `.github/workflows/test_and_lint.yml` file will run automated tests and style checks every time a Pull Request is opened. If the checks are undesired, the `test_and_lint.yml` can be deleted. The strictness of the code coverage level, etc., can be modified by altering the configurations in the `pyproject.toml` file and the `.flake8` file.
|
|
10
|
+
Library for LCNE-patchseq data analysis
|
|
18
11
|
|
|
19
12
|
## Installation
|
|
20
13
|
To use the software, in the root directory, run
|
|
@@ -15,13 +15,5 @@ RUN cd /.code-server \
|
|
|
15
15
|
&& rm code-server.tar.gz \
|
|
16
16
|
&& ln -s /.code-server/code-server-4.95.3-linux-amd64/bin/code-server /usr/bin/code-server
|
|
17
17
|
|
|
18
|
-
RUN mkdir -p /.vscode/extensions \
|
|
19
|
-
&& code-server --extensions-dir="/.vscode/extensions" --install-extension REditorSupport.R \
|
|
20
|
-
&& code-server --extensions-dir="/.vscode/extensions" --install-extension continue.continue \
|
|
21
|
-
&& code-server --extensions-dir="/.vscode/extensions" --install-extension ms-python.python \
|
|
22
|
-
&& code-server --extensions-dir="/.vscode/extensions" --install-extension ms-toolsai.jupyter \
|
|
23
|
-
&& code-server --extensions-dir="/.vscode/extensions" --install-extension reageyao.bioSyntax \
|
|
24
|
-
&& code-server --extensions-dir="/.vscode/extensions" --install-extension saoudrizwan.claude-dev
|
|
25
|
-
|
|
26
18
|
COPY postInstall /
|
|
27
19
|
RUN /postInstall
|
|
@@ -10,6 +10,7 @@ if code-server --disable-telemetry --version; then
|
|
|
10
10
|
fi
|
|
11
11
|
|
|
12
12
|
code-server --disable-telemetry --extensions-dir=/.vscode/extensions --install-extension ms-python.python
|
|
13
|
+
code-server --disable-telemetry --extensions-dir=/.vscode/extensions --install-extension ms-toolsai.jupyter
|
|
13
14
|
code-server --disable-telemetry --extensions-dir=/.vscode/extensions --install-extension njpwerner.autodocstring
|
|
14
15
|
code-server --disable-telemetry --extensions-dir=/.vscode/extensions --install-extension KevinRose.vsc-python-indent
|
|
15
16
|
code-server --disable-telemetry --extensions-dir=/.vscode/extensions --install-extension mhutchie.git-graph
|
|
@@ -0,0 +1,705 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cells": [
|
|
3
|
+
{
|
|
4
|
+
"cell_type": "code",
|
|
5
|
+
"execution_count": 4,
|
|
6
|
+
"metadata": {},
|
|
7
|
+
"outputs": [],
|
|
8
|
+
"source": [
|
|
9
|
+
"%load_ext autoreload\n",
|
|
10
|
+
"%autoreload 2"
|
|
11
|
+
]
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"cell_type": "code",
|
|
15
|
+
"execution_count": 3,
|
|
16
|
+
"metadata": {},
|
|
17
|
+
"outputs": [
|
|
18
|
+
{
|
|
19
|
+
"name": "stdout",
|
|
20
|
+
"output_type": "stream",
|
|
21
|
+
"text": [
|
|
22
|
+
"\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\n"
|
|
23
|
+
]
|
|
24
|
+
}
|
|
25
|
+
],
|
|
26
|
+
"source": [
|
|
27
|
+
"!pip install pygwalker --quiet"
|
|
28
|
+
]
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"cell_type": "code",
|
|
32
|
+
"execution_count": 2,
|
|
33
|
+
"metadata": {},
|
|
34
|
+
"outputs": [],
|
|
35
|
+
"source": [
|
|
36
|
+
"from LCNE_patchseq_analysis.data_util.metadata import read_brian_spreadsheet"
|
|
37
|
+
]
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"cell_type": "code",
|
|
41
|
+
"execution_count": 31,
|
|
42
|
+
"metadata": {},
|
|
43
|
+
"outputs": [],
|
|
44
|
+
"source": [
|
|
45
|
+
"df, df_master, df_xyz, df_ephys = read_brian_spreadsheet()"
|
|
46
|
+
]
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"cell_type": "markdown",
|
|
50
|
+
"metadata": {},
|
|
51
|
+
"source": [
|
|
52
|
+
"## Cross tab sanity check"
|
|
53
|
+
]
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"cell_type": "markdown",
|
|
57
|
+
"metadata": {},
|
|
58
|
+
"source": [
|
|
59
|
+
"Check overlapped columns across tabs"
|
|
60
|
+
]
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"cell_type": "code",
|
|
64
|
+
"execution_count": 32,
|
|
65
|
+
"metadata": {},
|
|
66
|
+
"outputs": [
|
|
67
|
+
{
|
|
68
|
+
"data": {
|
|
69
|
+
"text/plain": [
|
|
70
|
+
"['Annotated structure_master',\n",
|
|
71
|
+
" 'x_master',\n",
|
|
72
|
+
" 'y_master',\n",
|
|
73
|
+
" 'z_master',\n",
|
|
74
|
+
" 'notes_master',\n",
|
|
75
|
+
" 'failed_bad_rs_master',\n",
|
|
76
|
+
" 'failed_electrode_0_master',\n",
|
|
77
|
+
" 'failed_no_seal_master']"
|
|
78
|
+
]
|
|
79
|
+
},
|
|
80
|
+
"execution_count": 32,
|
|
81
|
+
"metadata": {},
|
|
82
|
+
"output_type": "execute_result"
|
|
83
|
+
}
|
|
84
|
+
],
|
|
85
|
+
"source": [
|
|
86
|
+
"duplicate_columns = [col for col in df.columns if 'master' in col]\n",
|
|
87
|
+
"duplicate_columns"
|
|
88
|
+
]
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"cell_type": "markdown",
|
|
92
|
+
"metadata": {},
|
|
93
|
+
"source": [
|
|
94
|
+
"Search for inconsistent data across the master table and the xyz_running_list"
|
|
95
|
+
]
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"cell_type": "code",
|
|
99
|
+
"execution_count": 34,
|
|
100
|
+
"metadata": {},
|
|
101
|
+
"outputs": [
|
|
102
|
+
{
|
|
103
|
+
"data": {
|
|
104
|
+
"text/html": [
|
|
105
|
+
"<div>\n",
|
|
106
|
+
"<style scoped>\n",
|
|
107
|
+
" .dataframe tbody tr th:only-of-type {\n",
|
|
108
|
+
" vertical-align: middle;\n",
|
|
109
|
+
" }\n",
|
|
110
|
+
"\n",
|
|
111
|
+
" .dataframe tbody tr th {\n",
|
|
112
|
+
" vertical-align: top;\n",
|
|
113
|
+
" }\n",
|
|
114
|
+
"\n",
|
|
115
|
+
" .dataframe thead th {\n",
|
|
116
|
+
" text-align: right;\n",
|
|
117
|
+
" }\n",
|
|
118
|
+
"</style>\n",
|
|
119
|
+
"<table border=\"1\" class=\"dataframe\">\n",
|
|
120
|
+
" <thead>\n",
|
|
121
|
+
" <tr style=\"text-align: right;\">\n",
|
|
122
|
+
" <th></th>\n",
|
|
123
|
+
" <th>Date</th>\n",
|
|
124
|
+
" <th>jem-id_cell_specimen</th>\n",
|
|
125
|
+
" <th>x_master</th>\n",
|
|
126
|
+
" <th>y_master</th>\n",
|
|
127
|
+
" <th>z_master</th>\n",
|
|
128
|
+
" <th>Annotated structure_master</th>\n",
|
|
129
|
+
" <th>x_xyz</th>\n",
|
|
130
|
+
" <th>y_xyz</th>\n",
|
|
131
|
+
" <th>z_xyz</th>\n",
|
|
132
|
+
" <th>Annotated structure_xyz</th>\n",
|
|
133
|
+
" </tr>\n",
|
|
134
|
+
" </thead>\n",
|
|
135
|
+
" <tbody>\n",
|
|
136
|
+
" <tr>\n",
|
|
137
|
+
" <th>173</th>\n",
|
|
138
|
+
" <td>2024-09-13</td>\n",
|
|
139
|
+
" <td>Dbh-Cre-KI;Ai65-751021.11.06.03</td>\n",
|
|
140
|
+
" <td>10651.381280</td>\n",
|
|
141
|
+
" <td>4843.763780</td>\n",
|
|
142
|
+
" <td>4673.284468</td>\n",
|
|
143
|
+
" <td>MV</td>\n",
|
|
144
|
+
" <td>NaN</td>\n",
|
|
145
|
+
" <td>NaN</td>\n",
|
|
146
|
+
" <td>NaN</td>\n",
|
|
147
|
+
" <td>NaN</td>\n",
|
|
148
|
+
" </tr>\n",
|
|
149
|
+
" <tr>\n",
|
|
150
|
+
" <th>153</th>\n",
|
|
151
|
+
" <td>2024-07-03</td>\n",
|
|
152
|
+
" <td>Dbh-Cre_KH212;RCL-H2B-GFP-740851.11.06.01</td>\n",
|
|
153
|
+
" <td>10673.417970</td>\n",
|
|
154
|
+
" <td>3943.184326</td>\n",
|
|
155
|
+
" <td>4822.000000</td>\n",
|
|
156
|
+
" <td>PB</td>\n",
|
|
157
|
+
" <td>NaN</td>\n",
|
|
158
|
+
" <td>NaN</td>\n",
|
|
159
|
+
" <td>NaN</td>\n",
|
|
160
|
+
" <td>NaN</td>\n",
|
|
161
|
+
" </tr>\n",
|
|
162
|
+
" <tr>\n",
|
|
163
|
+
" <th>152</th>\n",
|
|
164
|
+
" <td>2024-06-04</td>\n",
|
|
165
|
+
" <td>Dbh-Cre_KH212;RCL-H2B-GFP-734082.10.06.02</td>\n",
|
|
166
|
+
" <td>10811.337890</td>\n",
|
|
167
|
+
" <td>4311.617676</td>\n",
|
|
168
|
+
" <td>4976.000000</td>\n",
|
|
169
|
+
" <td>PCG</td>\n",
|
|
170
|
+
" <td>NaN</td>\n",
|
|
171
|
+
" <td>NaN</td>\n",
|
|
172
|
+
" <td>NaN</td>\n",
|
|
173
|
+
" <td>NaN</td>\n",
|
|
174
|
+
" </tr>\n",
|
|
175
|
+
" <tr>\n",
|
|
176
|
+
" <th>151</th>\n",
|
|
177
|
+
" <td>2024-06-04</td>\n",
|
|
178
|
+
" <td>Dbh-Cre_KH212;RCL-H2B-GFP-734082.10.06.01</td>\n",
|
|
179
|
+
" <td>10743.375200</td>\n",
|
|
180
|
+
" <td>4243.480758</td>\n",
|
|
181
|
+
" <td>4976.000000</td>\n",
|
|
182
|
+
" <td>PCG</td>\n",
|
|
183
|
+
" <td>NaN</td>\n",
|
|
184
|
+
" <td>NaN</td>\n",
|
|
185
|
+
" <td>NaN</td>\n",
|
|
186
|
+
" <td>NaN</td>\n",
|
|
187
|
+
" </tr>\n",
|
|
188
|
+
" <tr>\n",
|
|
189
|
+
" <th>149</th>\n",
|
|
190
|
+
" <td>2024-05-24</td>\n",
|
|
191
|
+
" <td>Dbh-Cre_KH212;RCL-H2B-GFP-734079.11.06.02</td>\n",
|
|
192
|
+
" <td>10508.190430</td>\n",
|
|
193
|
+
" <td>3882.932861</td>\n",
|
|
194
|
+
" <td>4988.000000</td>\n",
|
|
195
|
+
" <td>PCG</td>\n",
|
|
196
|
+
" <td>NaN</td>\n",
|
|
197
|
+
" <td>NaN</td>\n",
|
|
198
|
+
" <td>NaN</td>\n",
|
|
199
|
+
" <td>NaN</td>\n",
|
|
200
|
+
" </tr>\n",
|
|
201
|
+
" <tr>\n",
|
|
202
|
+
" <th>148</th>\n",
|
|
203
|
+
" <td>2024-05-24</td>\n",
|
|
204
|
+
" <td>Dbh-Cre_KH212;RCL-H2B-GFP-734079.11.06.01</td>\n",
|
|
205
|
+
" <td>10447.267580</td>\n",
|
|
206
|
+
" <td>3777.822021</td>\n",
|
|
207
|
+
" <td>4988.000000</td>\n",
|
|
208
|
+
" <td>PCG</td>\n",
|
|
209
|
+
" <td>NaN</td>\n",
|
|
210
|
+
" <td>NaN</td>\n",
|
|
211
|
+
" <td>NaN</td>\n",
|
|
212
|
+
" <td>NaN</td>\n",
|
|
213
|
+
" </tr>\n",
|
|
214
|
+
" <tr>\n",
|
|
215
|
+
" <th>108</th>\n",
|
|
216
|
+
" <td>2023-09-22</td>\n",
|
|
217
|
+
" <td>Dbh-Cre_KH212;RCL-H2B-GFP-695527.09.06.01</td>\n",
|
|
218
|
+
" <td>10151.019530</td>\n",
|
|
219
|
+
" <td>3701.974609</td>\n",
|
|
220
|
+
" <td>4824.000000</td>\n",
|
|
221
|
+
" <td>NaN</td>\n",
|
|
222
|
+
" <td>NaN</td>\n",
|
|
223
|
+
" <td>NaN</td>\n",
|
|
224
|
+
" <td>NaN</td>\n",
|
|
225
|
+
" <td>NaN</td>\n",
|
|
226
|
+
" </tr>\n",
|
|
227
|
+
" <tr>\n",
|
|
228
|
+
" <th>106</th>\n",
|
|
229
|
+
" <td>2023-09-01</td>\n",
|
|
230
|
+
" <td>Dbh-Cre_KH212;RCL-H2B-GFP-692026.10.10.02</td>\n",
|
|
231
|
+
" <td>10534.982420</td>\n",
|
|
232
|
+
" <td>4183.531250</td>\n",
|
|
233
|
+
" <td>4984.000000</td>\n",
|
|
234
|
+
" <td>PAG</td>\n",
|
|
235
|
+
" <td>10151.019530</td>\n",
|
|
236
|
+
" <td>3701.974609</td>\n",
|
|
237
|
+
" <td>4824.0</td>\n",
|
|
238
|
+
" <td>PAG</td>\n",
|
|
239
|
+
" </tr>\n",
|
|
240
|
+
" <tr>\n",
|
|
241
|
+
" <th>101</th>\n",
|
|
242
|
+
" <td>2023-08-25</td>\n",
|
|
243
|
+
" <td>Dbh-Cre_KH212;RCL-H2B-GFP-692022.09.06.01</td>\n",
|
|
244
|
+
" <td>NaN</td>\n",
|
|
245
|
+
" <td>NaN</td>\n",
|
|
246
|
+
" <td>NaN</td>\n",
|
|
247
|
+
" <td>SCiw</td>\n",
|
|
248
|
+
" <td>9531.198242</td>\n",
|
|
249
|
+
" <td>2449.594727</td>\n",
|
|
250
|
+
" <td>4265.0</td>\n",
|
|
251
|
+
" <td>SCiw</td>\n",
|
|
252
|
+
" </tr>\n",
|
|
253
|
+
" <tr>\n",
|
|
254
|
+
" <th>102</th>\n",
|
|
255
|
+
" <td>2023-08-20</td>\n",
|
|
256
|
+
" <td>Dbh-Cre_KH212;RCL-H2B-GFP-692023.08.06.01</td>\n",
|
|
257
|
+
" <td>10541.875980</td>\n",
|
|
258
|
+
" <td>4110.681641</td>\n",
|
|
259
|
+
" <td>5034.000000</td>\n",
|
|
260
|
+
" <td>PB</td>\n",
|
|
261
|
+
" <td>10702.283200</td>\n",
|
|
262
|
+
" <td>3840.954834</td>\n",
|
|
263
|
+
" <td>4727.0</td>\n",
|
|
264
|
+
" <td>PB</td>\n",
|
|
265
|
+
" </tr>\n",
|
|
266
|
+
" <tr>\n",
|
|
267
|
+
" <th>104</th>\n",
|
|
268
|
+
" <td>2023-08-20</td>\n",
|
|
269
|
+
" <td>Dbh-Cre_KH212;RCL-H2B-GFP-692023.08.06.03</td>\n",
|
|
270
|
+
" <td>10761.001950</td>\n",
|
|
271
|
+
" <td>4288.832031</td>\n",
|
|
272
|
+
" <td>4727.000000</td>\n",
|
|
273
|
+
" <td>NaN</td>\n",
|
|
274
|
+
" <td>NaN</td>\n",
|
|
275
|
+
" <td>NaN</td>\n",
|
|
276
|
+
" <td>NaN</td>\n",
|
|
277
|
+
" <td>NaN</td>\n",
|
|
278
|
+
" </tr>\n",
|
|
279
|
+
" <tr>\n",
|
|
280
|
+
" <th>103</th>\n",
|
|
281
|
+
" <td>2023-08-20</td>\n",
|
|
282
|
+
" <td>Dbh-Cre_KH212;RCL-H2B-GFP-692023.08.06.02</td>\n",
|
|
283
|
+
" <td>10702.283200</td>\n",
|
|
284
|
+
" <td>3840.954834</td>\n",
|
|
285
|
+
" <td>4727.000000</td>\n",
|
|
286
|
+
" <td>LC</td>\n",
|
|
287
|
+
" <td>10761.001950</td>\n",
|
|
288
|
+
" <td>4288.832031</td>\n",
|
|
289
|
+
" <td>4727.0</td>\n",
|
|
290
|
+
" <td>LC</td>\n",
|
|
291
|
+
" </tr>\n",
|
|
292
|
+
" <tr>\n",
|
|
293
|
+
" <th>100</th>\n",
|
|
294
|
+
" <td>2023-06-02</td>\n",
|
|
295
|
+
" <td>Dbh-Cre_KH212;RCL-H2B-GFP-676766.10.06.03</td>\n",
|
|
296
|
+
" <td>10521.757810</td>\n",
|
|
297
|
+
" <td>4256.657715</td>\n",
|
|
298
|
+
" <td>4889.000000</td>\n",
|
|
299
|
+
" <td>LDT</td>\n",
|
|
300
|
+
" <td>10541.875980</td>\n",
|
|
301
|
+
" <td>4110.681641</td>\n",
|
|
302
|
+
" <td>5034.0</td>\n",
|
|
303
|
+
" <td>LDT</td>\n",
|
|
304
|
+
" </tr>\n",
|
|
305
|
+
" <tr>\n",
|
|
306
|
+
" <th>67</th>\n",
|
|
307
|
+
" <td>2023-03-15</td>\n",
|
|
308
|
+
" <td>C57BL6J-665266.11.06.03</td>\n",
|
|
309
|
+
" <td>10451.809570</td>\n",
|
|
310
|
+
" <td>4402.110352</td>\n",
|
|
311
|
+
" <td>4889.000000</td>\n",
|
|
312
|
+
" <td>LDT</td>\n",
|
|
313
|
+
" <td>10534.982420</td>\n",
|
|
314
|
+
" <td>4183.531250</td>\n",
|
|
315
|
+
" <td>4984.0</td>\n",
|
|
316
|
+
" <td>LDT</td>\n",
|
|
317
|
+
" </tr>\n",
|
|
318
|
+
" <tr>\n",
|
|
319
|
+
" <th>50</th>\n",
|
|
320
|
+
" <td>2023-01-20</td>\n",
|
|
321
|
+
" <td>Ndnf-IRES2-dgCre;Ai14-659663.11.06.01</td>\n",
|
|
322
|
+
" <td>NaN</td>\n",
|
|
323
|
+
" <td>NaN</td>\n",
|
|
324
|
+
" <td>NaN</td>\n",
|
|
325
|
+
" <td>LDT</td>\n",
|
|
326
|
+
" <td>10391.497070</td>\n",
|
|
327
|
+
" <td>4161.165039</td>\n",
|
|
328
|
+
" <td>4889.0</td>\n",
|
|
329
|
+
" <td>LDT</td>\n",
|
|
330
|
+
" </tr>\n",
|
|
331
|
+
" <tr>\n",
|
|
332
|
+
" <th>52</th>\n",
|
|
333
|
+
" <td>2023-01-20</td>\n",
|
|
334
|
+
" <td>Ndnf-IRES2-dgCre;Ai14-659663.11.06.03</td>\n",
|
|
335
|
+
" <td>10391.497070</td>\n",
|
|
336
|
+
" <td>4161.165039</td>\n",
|
|
337
|
+
" <td>4889.000000</td>\n",
|
|
338
|
+
" <td>PCG</td>\n",
|
|
339
|
+
" <td>10521.757810</td>\n",
|
|
340
|
+
" <td>4256.657715</td>\n",
|
|
341
|
+
" <td>4889.0</td>\n",
|
|
342
|
+
" <td>PCG</td>\n",
|
|
343
|
+
" </tr>\n",
|
|
344
|
+
" <tr>\n",
|
|
345
|
+
" <th>53</th>\n",
|
|
346
|
+
" <td>2023-01-20</td>\n",
|
|
347
|
+
" <td>Ndnf-IRES2-dgCre;Ai14-659663.11.06.04</td>\n",
|
|
348
|
+
" <td>9531.198242</td>\n",
|
|
349
|
+
" <td>2449.594727</td>\n",
|
|
350
|
+
" <td>4265.000000</td>\n",
|
|
351
|
+
" <td>PCG</td>\n",
|
|
352
|
+
" <td>10451.809570</td>\n",
|
|
353
|
+
" <td>4402.110352</td>\n",
|
|
354
|
+
" <td>4889.0</td>\n",
|
|
355
|
+
" <td>PCG</td>\n",
|
|
356
|
+
" </tr>\n",
|
|
357
|
+
" </tbody>\n",
|
|
358
|
+
"</table>\n",
|
|
359
|
+
"</div>"
|
|
360
|
+
],
|
|
361
|
+
"text/plain": [
|
|
362
|
+
" Date jem-id_cell_specimen x_master \\\n",
|
|
363
|
+
"173 2024-09-13 Dbh-Cre-KI;Ai65-751021.11.06.03 10651.381280 \n",
|
|
364
|
+
"153 2024-07-03 Dbh-Cre_KH212;RCL-H2B-GFP-740851.11.06.01 10673.417970 \n",
|
|
365
|
+
"152 2024-06-04 Dbh-Cre_KH212;RCL-H2B-GFP-734082.10.06.02 10811.337890 \n",
|
|
366
|
+
"151 2024-06-04 Dbh-Cre_KH212;RCL-H2B-GFP-734082.10.06.01 10743.375200 \n",
|
|
367
|
+
"149 2024-05-24 Dbh-Cre_KH212;RCL-H2B-GFP-734079.11.06.02 10508.190430 \n",
|
|
368
|
+
"148 2024-05-24 Dbh-Cre_KH212;RCL-H2B-GFP-734079.11.06.01 10447.267580 \n",
|
|
369
|
+
"108 2023-09-22 Dbh-Cre_KH212;RCL-H2B-GFP-695527.09.06.01 10151.019530 \n",
|
|
370
|
+
"106 2023-09-01 Dbh-Cre_KH212;RCL-H2B-GFP-692026.10.10.02 10534.982420 \n",
|
|
371
|
+
"101 2023-08-25 Dbh-Cre_KH212;RCL-H2B-GFP-692022.09.06.01 NaN \n",
|
|
372
|
+
"102 2023-08-20 Dbh-Cre_KH212;RCL-H2B-GFP-692023.08.06.01 10541.875980 \n",
|
|
373
|
+
"104 2023-08-20 Dbh-Cre_KH212;RCL-H2B-GFP-692023.08.06.03 10761.001950 \n",
|
|
374
|
+
"103 2023-08-20 Dbh-Cre_KH212;RCL-H2B-GFP-692023.08.06.02 10702.283200 \n",
|
|
375
|
+
"100 2023-06-02 Dbh-Cre_KH212;RCL-H2B-GFP-676766.10.06.03 10521.757810 \n",
|
|
376
|
+
"67 2023-03-15 C57BL6J-665266.11.06.03 10451.809570 \n",
|
|
377
|
+
"50 2023-01-20 Ndnf-IRES2-dgCre;Ai14-659663.11.06.01 NaN \n",
|
|
378
|
+
"52 2023-01-20 Ndnf-IRES2-dgCre;Ai14-659663.11.06.03 10391.497070 \n",
|
|
379
|
+
"53 2023-01-20 Ndnf-IRES2-dgCre;Ai14-659663.11.06.04 9531.198242 \n",
|
|
380
|
+
"\n",
|
|
381
|
+
" y_master z_master Annotated structure_master x_xyz \\\n",
|
|
382
|
+
"173 4843.763780 4673.284468 MV NaN \n",
|
|
383
|
+
"153 3943.184326 4822.000000 PB NaN \n",
|
|
384
|
+
"152 4311.617676 4976.000000 PCG NaN \n",
|
|
385
|
+
"151 4243.480758 4976.000000 PCG NaN \n",
|
|
386
|
+
"149 3882.932861 4988.000000 PCG NaN \n",
|
|
387
|
+
"148 3777.822021 4988.000000 PCG NaN \n",
|
|
388
|
+
"108 3701.974609 4824.000000 NaN NaN \n",
|
|
389
|
+
"106 4183.531250 4984.000000 PAG 10151.019530 \n",
|
|
390
|
+
"101 NaN NaN SCiw 9531.198242 \n",
|
|
391
|
+
"102 4110.681641 5034.000000 PB 10702.283200 \n",
|
|
392
|
+
"104 4288.832031 4727.000000 NaN NaN \n",
|
|
393
|
+
"103 3840.954834 4727.000000 LC 10761.001950 \n",
|
|
394
|
+
"100 4256.657715 4889.000000 LDT 10541.875980 \n",
|
|
395
|
+
"67 4402.110352 4889.000000 LDT 10534.982420 \n",
|
|
396
|
+
"50 NaN NaN LDT 10391.497070 \n",
|
|
397
|
+
"52 4161.165039 4889.000000 PCG 10521.757810 \n",
|
|
398
|
+
"53 2449.594727 4265.000000 PCG 10451.809570 \n",
|
|
399
|
+
"\n",
|
|
400
|
+
" y_xyz z_xyz Annotated structure_xyz \n",
|
|
401
|
+
"173 NaN NaN NaN \n",
|
|
402
|
+
"153 NaN NaN NaN \n",
|
|
403
|
+
"152 NaN NaN NaN \n",
|
|
404
|
+
"151 NaN NaN NaN \n",
|
|
405
|
+
"149 NaN NaN NaN \n",
|
|
406
|
+
"148 NaN NaN NaN \n",
|
|
407
|
+
"108 NaN NaN NaN \n",
|
|
408
|
+
"106 3701.974609 4824.0 PAG \n",
|
|
409
|
+
"101 2449.594727 4265.0 SCiw \n",
|
|
410
|
+
"102 3840.954834 4727.0 PB \n",
|
|
411
|
+
"104 NaN NaN NaN \n",
|
|
412
|
+
"103 4288.832031 4727.0 LC \n",
|
|
413
|
+
"100 4110.681641 5034.0 LDT \n",
|
|
414
|
+
"67 4183.531250 4984.0 LDT \n",
|
|
415
|
+
"50 4161.165039 4889.0 LDT \n",
|
|
416
|
+
"52 4256.657715 4889.0 PCG \n",
|
|
417
|
+
"53 4402.110352 4889.0 PCG "
|
|
418
|
+
]
|
|
419
|
+
},
|
|
420
|
+
"execution_count": 34,
|
|
421
|
+
"metadata": {},
|
|
422
|
+
"output_type": "execute_result"
|
|
423
|
+
}
|
|
424
|
+
],
|
|
425
|
+
"source": [
|
|
426
|
+
"# Any rows where the master and xyz columns don't match?\n",
|
|
427
|
+
"df.loc[\n",
|
|
428
|
+
" (\n",
|
|
429
|
+
" (\n",
|
|
430
|
+
" (df[\"x_master\"] != df[\"x_xyz\"])\n",
|
|
431
|
+
" | (df[\"y_master\"] != df[\"y_xyz\"])\n",
|
|
432
|
+
" | (df[\"z_master\"] != df[\"z_xyz\"])\n",
|
|
433
|
+
" | (df[\"Annotated structure_master\"] != df[\"Annotated structure_xyz\"])\n",
|
|
434
|
+
" )\n",
|
|
435
|
+
" & ~(df[\"x_master\"].isna() & df[\"x_xyz\"].isna())\n",
|
|
436
|
+
" ),\n",
|
|
437
|
+
" [\n",
|
|
438
|
+
" \"Date\",\n",
|
|
439
|
+
" \"jem-id_cell_specimen\",\n",
|
|
440
|
+
" \"x_master\",\n",
|
|
441
|
+
" \"y_master\",\n",
|
|
442
|
+
" \"z_master\",\n",
|
|
443
|
+
" \"Annotated structure_master\",\n",
|
|
444
|
+
" \"x_xyz\",\n",
|
|
445
|
+
" \"y_xyz\",\n",
|
|
446
|
+
" \"z_xyz\",\n",
|
|
447
|
+
" \"Annotated structure_xyz\",\n",
|
|
448
|
+
" ],\n",
|
|
449
|
+
"]"
|
|
450
|
+
]
|
|
451
|
+
},
|
|
452
|
+
{
|
|
453
|
+
"cell_type": "markdown",
|
|
454
|
+
"metadata": {},
|
|
455
|
+
"source": [
|
|
456
|
+
"### ❌ Oh no! These inconsistencies must be caused by manually copying and pasting across the tabs!!!"
|
|
457
|
+
]
|
|
458
|
+
},
|
|
459
|
+
{
|
|
460
|
+
"cell_type": "code",
|
|
461
|
+
"execution_count": 38,
|
|
462
|
+
"metadata": {},
|
|
463
|
+
"outputs": [
|
|
464
|
+
{
|
|
465
|
+
"data": {
|
|
466
|
+
"text/html": [
|
|
467
|
+
"<div>\n",
|
|
468
|
+
"<style scoped>\n",
|
|
469
|
+
" .dataframe tbody tr th:only-of-type {\n",
|
|
470
|
+
" vertical-align: middle;\n",
|
|
471
|
+
" }\n",
|
|
472
|
+
"\n",
|
|
473
|
+
" .dataframe tbody tr th {\n",
|
|
474
|
+
" vertical-align: top;\n",
|
|
475
|
+
" }\n",
|
|
476
|
+
"\n",
|
|
477
|
+
" .dataframe thead th {\n",
|
|
478
|
+
" text-align: right;\n",
|
|
479
|
+
" }\n",
|
|
480
|
+
"</style>\n",
|
|
481
|
+
"<table border=\"1\" class=\"dataframe\">\n",
|
|
482
|
+
" <thead>\n",
|
|
483
|
+
" <tr style=\"text-align: right;\">\n",
|
|
484
|
+
" <th></th>\n",
|
|
485
|
+
" <th>Date</th>\n",
|
|
486
|
+
" <th>jem-id_cell_specimen</th>\n",
|
|
487
|
+
" <th>cell_specimen_id</th>\n",
|
|
488
|
+
" <th>failed_bad_rs_master</th>\n",
|
|
489
|
+
" <th>failed_electrode_0_master</th>\n",
|
|
490
|
+
" <th>failed_no_seal_master</th>\n",
|
|
491
|
+
" <th>failed_bad_rs_ephys_fx</th>\n",
|
|
492
|
+
" <th>failed_electrode_0_ephys_fx</th>\n",
|
|
493
|
+
" <th>failed_no_seal_ephys_fx</th>\n",
|
|
494
|
+
" </tr>\n",
|
|
495
|
+
" </thead>\n",
|
|
496
|
+
" <tbody>\n",
|
|
497
|
+
" <tr>\n",
|
|
498
|
+
" <th>143</th>\n",
|
|
499
|
+
" <td>2024-04-03</td>\n",
|
|
500
|
+
" <td>Dbh-Cre_KH212;RCL-H2B-GFP-724916.11.06.02</td>\n",
|
|
501
|
+
" <td>1342558771</td>\n",
|
|
502
|
+
" <td>0.0</td>\n",
|
|
503
|
+
" <td>0.0</td>\n",
|
|
504
|
+
" <td>1.0</td>\n",
|
|
505
|
+
" <td>0.0</td>\n",
|
|
506
|
+
" <td>0.0</td>\n",
|
|
507
|
+
" <td>0.0</td>\n",
|
|
508
|
+
" </tr>\n",
|
|
509
|
+
" <tr>\n",
|
|
510
|
+
" <th>137</th>\n",
|
|
511
|
+
" <td>2024-03-20</td>\n",
|
|
512
|
+
" <td>C57BL6J-722426.10.06.01</td>\n",
|
|
513
|
+
" <td>1339160242</td>\n",
|
|
514
|
+
" <td>1.0</td>\n",
|
|
515
|
+
" <td>0.0</td>\n",
|
|
516
|
+
" <td>0.0</td>\n",
|
|
517
|
+
" <td>0.0</td>\n",
|
|
518
|
+
" <td>0.0</td>\n",
|
|
519
|
+
" <td>0.0</td>\n",
|
|
520
|
+
" </tr>\n",
|
|
521
|
+
" <tr>\n",
|
|
522
|
+
" <th>139</th>\n",
|
|
523
|
+
" <td>2024-03-20</td>\n",
|
|
524
|
+
" <td>C57BL6J-722426.10.06.03</td>\n",
|
|
525
|
+
" <td>1339183091</td>\n",
|
|
526
|
+
" <td>1.0</td>\n",
|
|
527
|
+
" <td>0.0</td>\n",
|
|
528
|
+
" <td>0.0</td>\n",
|
|
529
|
+
" <td>0.0</td>\n",
|
|
530
|
+
" <td>0.0</td>\n",
|
|
531
|
+
" <td>0.0</td>\n",
|
|
532
|
+
" </tr>\n",
|
|
533
|
+
" <tr>\n",
|
|
534
|
+
" <th>83</th>\n",
|
|
535
|
+
" <td>2023-04-19</td>\n",
|
|
536
|
+
" <td>Slc17a6-IRES-Cre;Ai14-670829.11.06.02</td>\n",
|
|
537
|
+
" <td>1265171440</td>\n",
|
|
538
|
+
" <td>0.0</td>\n",
|
|
539
|
+
" <td>0.0</td>\n",
|
|
540
|
+
" <td>1.0</td>\n",
|
|
541
|
+
" <td>0.0</td>\n",
|
|
542
|
+
" <td>0.0</td>\n",
|
|
543
|
+
" <td>0.0</td>\n",
|
|
544
|
+
" </tr>\n",
|
|
545
|
+
" <tr>\n",
|
|
546
|
+
" <th>27</th>\n",
|
|
547
|
+
" <td>2022-11-17</td>\n",
|
|
548
|
+
" <td>Slc17a6-IRES-Cre;Ai14-651168.10.06.03</td>\n",
|
|
549
|
+
" <td>1226761160</td>\n",
|
|
550
|
+
" <td>0.0</td>\n",
|
|
551
|
+
" <td>0.0</td>\n",
|
|
552
|
+
" <td>1.0</td>\n",
|
|
553
|
+
" <td>0.0</td>\n",
|
|
554
|
+
" <td>0.0</td>\n",
|
|
555
|
+
" <td>0.0</td>\n",
|
|
556
|
+
" </tr>\n",
|
|
557
|
+
" <tr>\n",
|
|
558
|
+
" <th>24</th>\n",
|
|
559
|
+
" <td>2022-11-15</td>\n",
|
|
560
|
+
" <td>Dbh-Cre_KH212;RCL-Sun1sfGFP-neo-650884.09.06.05</td>\n",
|
|
561
|
+
" <td>1226307625</td>\n",
|
|
562
|
+
" <td>0.0</td>\n",
|
|
563
|
+
" <td>0.0</td>\n",
|
|
564
|
+
" <td>1.0</td>\n",
|
|
565
|
+
" <td>0.0</td>\n",
|
|
566
|
+
" <td>0.0</td>\n",
|
|
567
|
+
" <td>0.0</td>\n",
|
|
568
|
+
" </tr>\n",
|
|
569
|
+
" <tr>\n",
|
|
570
|
+
" <th>14</th>\n",
|
|
571
|
+
" <td>2022-11-02</td>\n",
|
|
572
|
+
" <td>Rbp4-Cre_KL100;Ai14-650443.10.06.02</td>\n",
|
|
573
|
+
" <td>1223270873</td>\n",
|
|
574
|
+
" <td>0.0</td>\n",
|
|
575
|
+
" <td>0.0</td>\n",
|
|
576
|
+
" <td>1.0</td>\n",
|
|
577
|
+
" <td>0.0</td>\n",
|
|
578
|
+
" <td>0.0</td>\n",
|
|
579
|
+
" <td>0.0</td>\n",
|
|
580
|
+
" </tr>\n",
|
|
581
|
+
" <tr>\n",
|
|
582
|
+
" <th>10</th>\n",
|
|
583
|
+
" <td>2022-10-27</td>\n",
|
|
584
|
+
" <td>C57BL6J-647687.09.06.01</td>\n",
|
|
585
|
+
" <td>1221572804</td>\n",
|
|
586
|
+
" <td>0.0</td>\n",
|
|
587
|
+
" <td>0.0</td>\n",
|
|
588
|
+
" <td>1.0</td>\n",
|
|
589
|
+
" <td>0.0</td>\n",
|
|
590
|
+
" <td>0.0</td>\n",
|
|
591
|
+
" <td>0.0</td>\n",
|
|
592
|
+
" </tr>\n",
|
|
593
|
+
" </tbody>\n",
|
|
594
|
+
"</table>\n",
|
|
595
|
+
"</div>"
|
|
596
|
+
],
|
|
597
|
+
"text/plain": [
|
|
598
|
+
" Date jem-id_cell_specimen \\\n",
|
|
599
|
+
"143 2024-04-03 Dbh-Cre_KH212;RCL-H2B-GFP-724916.11.06.02 \n",
|
|
600
|
+
"137 2024-03-20 C57BL6J-722426.10.06.01 \n",
|
|
601
|
+
"139 2024-03-20 C57BL6J-722426.10.06.03 \n",
|
|
602
|
+
"83 2023-04-19 Slc17a6-IRES-Cre;Ai14-670829.11.06.02 \n",
|
|
603
|
+
"27 2022-11-17 Slc17a6-IRES-Cre;Ai14-651168.10.06.03 \n",
|
|
604
|
+
"24 2022-11-15 Dbh-Cre_KH212;RCL-Sun1sfGFP-neo-650884.09.06.05 \n",
|
|
605
|
+
"14 2022-11-02 Rbp4-Cre_KL100;Ai14-650443.10.06.02 \n",
|
|
606
|
+
"10 2022-10-27 C57BL6J-647687.09.06.01 \n",
|
|
607
|
+
"\n",
|
|
608
|
+
" cell_specimen_id failed_bad_rs_master failed_electrode_0_master \\\n",
|
|
609
|
+
"143 1342558771 0.0 0.0 \n",
|
|
610
|
+
"137 1339160242 1.0 0.0 \n",
|
|
611
|
+
"139 1339183091 1.0 0.0 \n",
|
|
612
|
+
"83 1265171440 0.0 0.0 \n",
|
|
613
|
+
"27 1226761160 0.0 0.0 \n",
|
|
614
|
+
"24 1226307625 0.0 0.0 \n",
|
|
615
|
+
"14 1223270873 0.0 0.0 \n",
|
|
616
|
+
"10 1221572804 0.0 0.0 \n",
|
|
617
|
+
"\n",
|
|
618
|
+
" failed_no_seal_master failed_bad_rs_ephys_fx \\\n",
|
|
619
|
+
"143 1.0 0.0 \n",
|
|
620
|
+
"137 0.0 0.0 \n",
|
|
621
|
+
"139 0.0 0.0 \n",
|
|
622
|
+
"83 1.0 0.0 \n",
|
|
623
|
+
"27 1.0 0.0 \n",
|
|
624
|
+
"24 1.0 0.0 \n",
|
|
625
|
+
"14 1.0 0.0 \n",
|
|
626
|
+
"10 1.0 0.0 \n",
|
|
627
|
+
"\n",
|
|
628
|
+
" failed_electrode_0_ephys_fx failed_no_seal_ephys_fx \n",
|
|
629
|
+
"143 0.0 0.0 \n",
|
|
630
|
+
"137 0.0 0.0 \n",
|
|
631
|
+
"139 0.0 0.0 \n",
|
|
632
|
+
"83 0.0 0.0 \n",
|
|
633
|
+
"27 0.0 0.0 \n",
|
|
634
|
+
"24 0.0 0.0 \n",
|
|
635
|
+
"14 0.0 0.0 \n",
|
|
636
|
+
"10 0.0 0.0 "
|
|
637
|
+
]
|
|
638
|
+
},
|
|
639
|
+
"execution_count": 38,
|
|
640
|
+
"metadata": {},
|
|
641
|
+
"output_type": "execute_result"
|
|
642
|
+
}
|
|
643
|
+
],
|
|
644
|
+
"source": [
|
|
645
|
+
"df.loc[\n",
|
|
646
|
+
" (\n",
|
|
647
|
+
" (df[\"failed_bad_rs_master\"] != df[\"failed_bad_rs_ephys_fx\"])\n",
|
|
648
|
+
" | (df[\"failed_electrode_0_master\"] != df[\"failed_electrode_0_ephys_fx\"])\n",
|
|
649
|
+
" | (df[\"failed_no_seal_master\"] != df[\"failed_no_seal_ephys_fx\"])\n",
|
|
650
|
+
" ) & ~(df[\"failed_bad_rs_master\"].isna() | df[\"failed_bad_rs_ephys_fx\"].isna()),\n",
|
|
651
|
+
" [\n",
|
|
652
|
+
" \"Date\",\n",
|
|
653
|
+
" \"jem-id_cell_specimen\",\n",
|
|
654
|
+
" \"cell_specimen_id\",\n",
|
|
655
|
+
" \"failed_bad_rs_master\",\n",
|
|
656
|
+
" \"failed_electrode_0_master\",\n",
|
|
657
|
+
" \"failed_no_seal_master\",\n",
|
|
658
|
+
" \"failed_bad_rs_ephys_fx\",\n",
|
|
659
|
+
" \"failed_electrode_0_ephys_fx\",\n",
|
|
660
|
+
" \"failed_no_seal_ephys_fx\",\n",
|
|
661
|
+
" ],\n",
|
|
662
|
+
"]"
|
|
663
|
+
]
|
|
664
|
+
},
|
|
665
|
+
{
|
|
666
|
+
"cell_type": "markdown",
|
|
667
|
+
"metadata": {},
|
|
668
|
+
"source": [
|
|
669
|
+
"## Quick overview using pygwalker"
|
|
670
|
+
]
|
|
671
|
+
},
|
|
672
|
+
{
|
|
673
|
+
"cell_type": "code",
|
|
674
|
+
"execution_count": null,
|
|
675
|
+
"metadata": {},
|
|
676
|
+
"outputs": [],
|
|
677
|
+
"source": [
|
|
678
|
+
"import pygwalker as pyg\n",
|
|
679
|
+
"walker = pyg.walk(df)\n",
|
|
680
|
+
"walker"
|
|
681
|
+
]
|
|
682
|
+
}
|
|
683
|
+
],
|
|
684
|
+
"metadata": {
|
|
685
|
+
"kernelspec": {
|
|
686
|
+
"display_name": "base",
|
|
687
|
+
"language": "python",
|
|
688
|
+
"name": "python3"
|
|
689
|
+
},
|
|
690
|
+
"language_info": {
|
|
691
|
+
"codemirror_mode": {
|
|
692
|
+
"name": "ipython",
|
|
693
|
+
"version": 3
|
|
694
|
+
},
|
|
695
|
+
"file_extension": ".py",
|
|
696
|
+
"mimetype": "text/x-python",
|
|
697
|
+
"name": "python",
|
|
698
|
+
"nbconvert_exporter": "python",
|
|
699
|
+
"pygments_lexer": "ipython3",
|
|
700
|
+
"version": "3.9.12"
|
|
701
|
+
}
|
|
702
|
+
},
|
|
703
|
+
"nbformat": 4,
|
|
704
|
+
"nbformat_minor": 2
|
|
705
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""Get ephys data"""
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"""Get metadata
|
|
2
|
+
"""
|
|
3
|
+
|
|
4
|
+
import pandas as pd
|
|
5
|
+
import os
|
|
6
|
+
|
|
7
|
+
file_path = os.path.expanduser("~/capsule/data/IVSCC_LC_summary.xlsx")
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def read_brian_spreadsheet(file_path=file_path):
|
|
11
|
+
""" Read metadata, cell xyz coordinates, and ephys features from Brian's spreadsheet
|
|
12
|
+
|
|
13
|
+
Assuming IVSCC_LC_summary.xlsx is downloaded at file_path
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
if not os.path.exists(file_path):
|
|
17
|
+
raise FileNotFoundError(f"File not found at {file_path}")
|
|
18
|
+
|
|
19
|
+
tab_names = pd.ExcelFile(file_path).sheet_names
|
|
20
|
+
|
|
21
|
+
# Get the master table
|
|
22
|
+
tab_master = [name for name in tab_names if "updated" in name.lower()][0]
|
|
23
|
+
df_master = pd.read_excel(file_path, sheet_name=tab_master)
|
|
24
|
+
|
|
25
|
+
# Get xyz coordinates
|
|
26
|
+
tab_xyz = [name for name in tab_names if "xyz" in name.lower()][0]
|
|
27
|
+
df_xyz = pd.read_excel(file_path, sheet_name=tab_xyz)
|
|
28
|
+
|
|
29
|
+
# Get ephys features
|
|
30
|
+
tab_ephys_fx = [name for name in tab_names if "ephys_fx" in name.lower()][0]
|
|
31
|
+
df_ephys_fx = pd.read_excel(file_path, sheet_name=tab_ephys_fx)
|
|
32
|
+
|
|
33
|
+
# Merge the tables
|
|
34
|
+
df_all = (
|
|
35
|
+
df_master.merge(
|
|
36
|
+
df_xyz.rename(
|
|
37
|
+
columns={
|
|
38
|
+
"specimen_name": "jem-id_cell_specimen",
|
|
39
|
+
"structure_acronym": "Annotated structure",
|
|
40
|
+
}
|
|
41
|
+
),
|
|
42
|
+
on="jem-id_cell_specimen",
|
|
43
|
+
how="outer",
|
|
44
|
+
suffixes=("_master", "_xyz"),
|
|
45
|
+
)
|
|
46
|
+
.merge(df_ephys_fx.rename(
|
|
47
|
+
columns={
|
|
48
|
+
"failed_seal": "failed_no_seal",
|
|
49
|
+
"failed_input_access_resistance": "failed_bad_rs",
|
|
50
|
+
}
|
|
51
|
+
), on="cell_specimen_id", how="outer", suffixes=("_master", "_ephys_fx"))
|
|
52
|
+
.sort_values("Date", ascending=False)
|
|
53
|
+
)
|
|
54
|
+
|
|
55
|
+
return df_all, df_master, df_xyz, df_ephys_fx
|
|
56
|
+
|
|
57
|
+
if __name__ == "__main__":
|
|
58
|
+
df_all, df_master, df_xyz, df_ephys_fx = read_brian_spreadsheet()
|
|
59
|
+
print(df_all.head())
|
|
60
|
+
print(df_master.head())
|
|
61
|
+
print(df_xyz.head())
|
|
62
|
+
print(df_ephys_fx.head())
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: LCNE-patchseq-analysis
|
|
3
|
-
Version: 0.0
|
|
3
|
+
Version: 0.1.0
|
|
4
4
|
Summary: Generated from aind-library-template
|
|
5
5
|
Author: Allen Institute for Neural Dynamics
|
|
6
6
|
Author-email: Han Hou <han.hou@alleninstitute.org>
|
|
@@ -11,6 +11,8 @@ Description-Content-Type: text/markdown
|
|
|
11
11
|
License-File: LICENSE
|
|
12
12
|
Requires-Dist: numpy
|
|
13
13
|
Requires-Dist: pandas
|
|
14
|
+
Requires-Dist: openpyxl
|
|
15
|
+
Requires-Dist: matplotlib
|
|
14
16
|
Provides-Extra: dev
|
|
15
17
|
Requires-Dist: black; extra == "dev"
|
|
16
18
|
Requires-Dist: coverage; extra == "dev"
|
|
@@ -29,14 +31,7 @@ Requires-Dist: furo; extra == "dev"
|
|
|
29
31
|

|
|
30
32
|

|
|
31
33
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
## Usage
|
|
35
|
-
- To use this template, click the green `Use this template` button and `Create new repository`.
|
|
36
|
-
- After github initially creates the new repository, please wait an extra minute for the initialization scripts to finish organizing the repo.
|
|
37
|
-
- To enable the automatic semantic version increments: in the repository go to `Settings` and `Collaborators and teams`. Click the green `Add people` button. Add `svc-aindscicomp` as an admin. Modify the file in `.github/workflows/tag_and_publish.yml` and remove the if statement in line 65. The semantic version will now be incremented every time a code is committed into the main branch.
|
|
38
|
-
- To publish to PyPI, enable semantic versioning and uncomment the publish block in `.github/workflows/tag_and_publish.yml`. The code will now be published to PyPI every time the code is committed into the main branch.
|
|
39
|
-
- The `.github/workflows/test_and_lint.yml` file will run automated tests and style checks every time a Pull Request is opened. If the checks are undesired, the `test_and_lint.yml` can be deleted. The strictness of the code coverage level, etc., can be modified by altering the configurations in the `pyproject.toml` file and the `.flake8` file.
|
|
34
|
+
Library for LCNE-patchseq data analysis
|
|
40
35
|
|
|
41
36
|
## Installation
|
|
42
37
|
To use the software, in the root directory, run
|
|
@@ -19,11 +19,15 @@ docs/source/_static/favicon.ico
|
|
|
19
19
|
docs/source/_static/light-logo.svg
|
|
20
20
|
environment/Dockerfile
|
|
21
21
|
environment/postInstall
|
|
22
|
+
notebook/demo.ipynb
|
|
22
23
|
src/LCNE_patchseq_analysis/__init__.py
|
|
23
24
|
src/LCNE_patchseq_analysis.egg-info/PKG-INFO
|
|
24
25
|
src/LCNE_patchseq_analysis.egg-info/SOURCES.txt
|
|
25
26
|
src/LCNE_patchseq_analysis.egg-info/dependency_links.txt
|
|
26
27
|
src/LCNE_patchseq_analysis.egg-info/requires.txt
|
|
27
28
|
src/LCNE_patchseq_analysis.egg-info/top_level.txt
|
|
29
|
+
src/LCNE_patchseq_analysis/data_util/__init__.py
|
|
30
|
+
src/LCNE_patchseq_analysis/data_util/ephys.py
|
|
31
|
+
src/LCNE_patchseq_analysis/data_util/metadata.py
|
|
28
32
|
tests/__init__.py
|
|
29
33
|
tests/test_example.py
|
|
File without changes
|
{lcne_patchseq_analysis-0.0.2 → lcne_patchseq_analysis-0.1.0}/.github/ISSUE_TEMPLATE/bug_report.md
RENAMED
|
File without changes
|
|
File without changes
|
{lcne_patchseq_analysis-0.0.2 → lcne_patchseq_analysis-0.1.0}/.github/ISSUE_TEMPLATE/user-story.md
RENAMED
|
File without changes
|
|
File without changes
|
{lcne_patchseq_analysis-0.0.2 → lcne_patchseq_analysis-0.1.0}/.github/workflows/tag_and_publish.yml
RENAMED
|
File without changes
|
{lcne_patchseq_analysis-0.0.2 → lcne_patchseq_analysis-0.1.0}/.github/workflows/test_and_lint.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lcne_patchseq_analysis-0.0.2 → lcne_patchseq_analysis-0.1.0}/docs/source/_static/dark-logo.svg
RENAMED
|
File without changes
|
{lcne_patchseq_analysis-0.0.2 → lcne_patchseq_analysis-0.1.0}/docs/source/_static/favicon.ico
RENAMED
|
File without changes
|
{lcne_patchseq_analysis-0.0.2 → lcne_patchseq_analysis-0.1.0}/docs/source/_static/light-logo.svg
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|