Skip to content

Commit ccc71a0

Browse files
authored
Merge pull request #638 from oist/develop-main
Release v1.2.1
2 parents 5f0f529 + 2cf890d commit ccc71a0

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+1663
-528
lines changed

Makefile

+26-13
Original file line numberDiff line numberDiff line change
@@ -28,38 +28,51 @@ build_frontend:
2828
docker-compose -f docker-compose.test.yml build build_studio_frontend
2929
docker-compose -f docker-compose.test.yml run build_studio_frontend
3030

31+
.PHONY: format
32+
format:
33+
black studio *.py
34+
isort studio *.py
35+
flake8 studio *.py
36+
3137
.PHONY: docs
3238
docs:
3339
rm -rf docs/_build/
3440
poetry install --with doc --no-root
3541
# sphinx-apidoc -f -o ./docs/_build/modules ./studio
3642
sphinx-autobuild -b html docs docs/_build --port 8001
3743

38-
.PHONY: dockerhub
39-
dockerhub:
40-
docker build --rm -t oistncu/optinist:latest . --platform=linux/amd64
41-
docker push oistncu/optinist:latest
42-
4344
.PHONY: local_build
4445
local_build:
46+
rm -rf dist
4547
cd frontend && yarn install --ignore-scripts && yarn build
4648
poetry build
4749

48-
.PHONY: upload_testpypi
49-
upload_testpypi:
50+
.PHONY: push_testpypi
51+
push_testpypi:
5052
poetry publish -r testpypi
5153

5254
.PHONY: install_testpypi
5355
install_testpypi:
54-
pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ optinist
56+
pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ optinist==${ver}
5557
pip show optinist
5658

59+
.PHONY: build_test_docker
60+
build_test_docker:
61+
docker build --no-cache -t optinist-release-test:${ver} -f studio/config/docker/Dockerfile .
62+
63+
.PHONY: run_test_docker
64+
run_test_docker:
65+
docker run -it \
66+
-v ${volume}:/app/studio_data \
67+
--env OPTINIST_DIR="/app/studio_data" \
68+
--name optinist-release-test -d -p 8000:8000 optinist-release-test:${ver} \
69+
poetry run python main.py --host 0.0.0.0 --port 8000
70+
5771
.PHONY: push_pypi
5872
push_pypi:
5973
poetry publish
6074

61-
.PHONY: format
62-
format:
63-
black studio *.py
64-
isort studio *.py
65-
flake8 studio *.py
75+
.PHONY: push_dockerhub
76+
push_dockerhub:
77+
docker build --rm -t oistncu/optinist:latest -f studio/config/docker/Dockerfile . --platform=linux/amd64
78+
docker push oistncu/optinist:latest

docs/conf.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
project = "OptiNiSt"
2020
copyright = f"{datetime.today().year}, OIST"
2121
author = ""
22-
release = "1.2.0"
22+
release = "1.2.1"
2323

2424
# -- readthedocs -------------------------------------------------------------
2525
on_rtd = os.environ.get("READTHEDOCS", None) == "True"

docs/gui/workflow.md

+2-8
Original file line numberDiff line numberDiff line change
@@ -224,14 +224,8 @@ You may not want to modify your original data folder, or you may want to make yo
224224
We implement loading C libraries for reading NIKON and Olympus file.
225225
The libraries are available only on Linux and Windows (Not on MacOS).
226226
227-
And due to the license issue, we cannot distribute their library in this project.
228-
You need to get the libraries by yourself and add them to the path. To do that,
229-
230-
- get the C library files from the manufacturer's support.
231-
- use OptiNiSt by :ref:`developer mode <each-platforms-for-developer>`.
232-
- set environment value ``MICROSCOPES_LIBRARY_DIR`` in ``studio/config/.env`` to your library path.
233-
- put the libraries into ``MICROSCOPES_LIBRARY_DIR/dll/{nikon | olympus}/{linux | windows}/``
234-
- If you use Linux, open ``studio/app/optinist/wrappers/optinist/conda/microscope.yaml`` and uncomment the ``- gcc=12`` line.
227+
- If you use Linux, use OptiNiSt by :ref:`developer mode <each-platforms-for-developer>`.
228+
- open ``studio/app/optinist/wrappers/optinist/conda/microscope.yaml`` and uncomment the ``- gcc=12`` line.
235229
```
236230

237231
<p align="center">

frontend/build/asset-manifest.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
{
22
"files": {
33
"main.css": "/static/css/main.341bf264.css",
4-
"main.js": "/static/js/main.2a95acf7.js",
4+
"main.js": "/static/js/main.0f19d410.js",
55
"static/js/47.145ba9bc.chunk.js": "/static/js/47.145ba9bc.chunk.js",
66
"static/media/logo.png": "/static/media/logo.e44efe3246aecc6d6219.png",
77
"index.html": "/index.html",
88
"main.341bf264.css.map": "/static/css/main.341bf264.css.map",
9-
"main.2a95acf7.js.map": "/static/js/main.2a95acf7.js.map",
9+
"main.0f19d410.js.map": "/static/js/main.0f19d410.js.map",
1010
"47.145ba9bc.chunk.js.map": "/static/js/47.145ba9bc.chunk.js.map"
1111
},
1212
"entrypoints": [
1313
"static/css/main.341bf264.css",
14-
"static/js/main.2a95acf7.js"
14+
"static/js/main.0f19d410.js"
1515
]
1616
}

frontend/build/index.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/static/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Web site created using create-react-app"/><link rel="manifest" href="/static/manifest.json"/><title>OptiNiSt</title><script defer="defer" src="/static/js/main.2a95acf7.js"></script><link href="/static/css/main.341bf264.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
1+
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/static/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Web site created using create-react-app"/><link rel="manifest" href="/static/manifest.json"/><title>OptiNiSt</title><script defer="defer" src="/static/js/main.0f19d410.js"></script><link href="/static/css/main.341bf264.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>

frontend/build/static/js/main.2a95acf7.js frontend/build/static/js/main.0f19d410.js

+3-3
Large diffs are not rendered by default.

frontend/build/static/js/main.2a95acf7.js.map frontend/build/static/js/main.0f19d410.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

frontend/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "optinist",
3-
"version": "1.2.0",
3+
"version": "1.2.1",
44
"engines": {
55
"node": ">=20.0.0"
66
},

frontend/src/components/Workspace/Experiment/ExperimentStatusIcon.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ const ErrorIcon = memo(function ErrorIcon({ message }: ErrorIconProps) {
7272
color="error"
7373
padding={2}
7474
marginBottom={0}
75+
whiteSpace="pre-wrap"
7576
>
7677
{message}
7778
</Typography>

frontend/src/components/Workspace/FlowChart/FlowChart.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ const FlowChart = memo(function FlowChart(props: UseRunPipelineReturnType) {
222222
horizontal: "left",
223223
}}
224224
>
225-
<div style={{ margin: 8 }}>
225+
<div style={{ margin: 8, whiteSpace: "pre-wrap"}}>
226226
<FormHelperText error={true}>
227227
{messageError.message}
228228
</FormHelperText>

frontend/src/components/Workspace/Visualize/Plot/ImagePlot.tsx

-1
Original file line numberDiff line numberDiff line change
@@ -455,7 +455,6 @@ const ImagePlotChart = memo(function ImagePlotChart({
455455
}
456456

457457
const onChartClick = (event: PlotMouseEvent) => {
458-
if (![MERGE_ROI, DELETE_ROI].includes(action)) return
459458
// use as unknown because original PlotDatum does not have z property
460459
const point: PlotDatum = event.points[0] as unknown as PlotDatum
461460
if (point.curveNumber >= 1 && outputKey === "cell_roi") {

pyproject.toml

+7-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[tool.poetry]
22
name = "optinist"
33
description = "Calcium Imaging Pipeline Tool"
4-
version = "1.2.0"
4+
version = "1.2.1"
55
license = "GPL-3.0"
66
authors = ["OIST <email@example.com>"]
77
readme = "README.md"
@@ -36,7 +36,12 @@ include = [
3636
"sample_data/input/*",
3737
"sample_data/output/**/*.yaml",
3838
]
39-
exclude = ["studio/tests/*", "studio/test_data/*", "conda.env.*"]
39+
exclude = [
40+
"studio/tests/*",
41+
"studio/test_data/*",
42+
"conda.env.*",
43+
"studio/app/optinist/microscopes/libs.zip",
44+
]
4045

4146
[tool.poetry.dependencies]
4247
python = "^3.8.1"
+63-63
Original file line numberDiff line numberDiff line change
@@ -1,91 +1,95 @@
1-
finished_at: '2023-11-22 17:20:57'
1+
workspace_id: '1'
2+
unique_id: tutorial2
3+
name: Tutorial2
4+
started_at: '2024-04-11 16:47:34'
5+
finished_at: '2024-04-11 16:49:14'
6+
success: success
7+
hasNWB: true
28
function:
3-
caiman_cnmf_z6a16cmiwl:
4-
finished_at: '2023-11-22 17:20:48'
5-
hasNWB: true
6-
message: caiman_cnmf success
7-
name: caiman_cnmf
8-
outputPaths:
9-
all_roi:
10-
max_index: null
11-
path: /tmp/studio/output/1/tutorial2/caiman_cnmf_z6a16cmiwl/all_roi.json
12-
type: roi
13-
cell_roi:
14-
max_index: null
15-
path: /tmp/studio/output/1/tutorial2/caiman_cnmf_z6a16cmiwl/cell_roi.json
16-
type: roi
17-
fluorescence:
18-
max_index: 6
19-
path: /tmp/studio/output/1/tutorial2/caiman_cnmf_z6a16cmiwl/fluorescence
20-
type: timeseries
21-
images:
22-
max_index: 1
23-
path: /tmp/studio/output/1/tutorial2/caiman_cnmf_z6a16cmiwl/images.json
24-
type: images
25-
non_cell_roi:
26-
max_index: null
27-
path: /tmp/studio/output/1/tutorial2/caiman_cnmf_z6a16cmiwl/non_cell_roi.json
28-
type: roi
29-
started_at: null
30-
success: success
31-
unique_id: caiman_cnmf_z6a16cmiwl
329
caiman_mc_p4f6nsi9bh:
33-
finished_at: '2023-11-22 17:20:50'
10+
unique_id: caiman_mc_p4f6nsi9bh
11+
name: caiman_mc
12+
success: success
3413
hasNWB: true
3514
message: caiman_mc success
36-
name: caiman_mc
3715
outputPaths:
3816
mc_images:
39-
max_index: 2000
40-
path: /tmp/studio/output/1/tutorial2/caiman_mc_p4f6nsi9bh/mc_images.json
17+
path: /tmp/studio/output/1/tutorial2/caiman_mc_p4f6nsi9bh/tiff/mc_images/mc_images.tif
4118
type: images
19+
max_index: 2000
4220
meanImg:
43-
max_index: 1
4421
path: /tmp/studio/output/1/tutorial2/caiman_mc_p4f6nsi9bh/meanImg.json
4522
type: images
23+
max_index: 1
4624
rois:
47-
max_index: null
4825
path: /tmp/studio/output/1/tutorial2/caiman_mc_p4f6nsi9bh/rois.json
4926
type: roi
50-
started_at: null
51-
success: success
52-
unique_id: caiman_mc_p4f6nsi9bh
27+
max_index: null
28+
started_at: '2024-04-11 16:47:49'
29+
finished_at: '2024-04-11 16:48:34'
5330
input_0:
54-
finished_at: '2023-11-22 17:20:42'
31+
unique_id: input_0
32+
name: sample_mouse2p_image.tiff
33+
success: success
5534
hasNWB: false
5635
message: null
57-
name: sample_mouse2p_image.tiff
5836
outputPaths: null
59-
started_at: '2023-11-22 17:20:42'
60-
success: success
61-
unique_id: input_0
37+
started_at: '2024-04-11 16:47:34'
38+
finished_at: '2024-04-11 16:47:34'
6239
pca_xi0d87mbrk:
63-
finished_at: '2023-11-22 17:20:57'
40+
unique_id: pca_xi0d87mbrk
41+
name: pca
42+
success: success
6443
hasNWB: true
6544
message: pca success
66-
name: pca
6745
outputPaths:
68-
contribution:
46+
explained_variance:
47+
path: /tmp/studio/output/1/tutorial2/pca_xi0d87mbrk/evr.json
48+
type: bar
6949
max_index: null
50+
projectedNd:
51+
path: /tmp/studio/output/1/tutorial2/pca_xi0d87mbrk/projectedNd.json
52+
type: scatter
53+
max_index: null
54+
contribution:
7055
path: /tmp/studio/output/1/tutorial2/pca_xi0d87mbrk/contribution.json
7156
type: bar
72-
cumsum_contribution:
7357
max_index: null
58+
cumsum_contribution:
7459
path: /tmp/studio/output/1/tutorial2/pca_xi0d87mbrk/cumsum_contribution.json
7560
type: bar
76-
explained_variance:
7761
max_index: null
78-
path: /tmp/studio/output/1/tutorial2/pca_xi0d87mbrk/evr.json
79-
type: bar
80-
projectedNd:
81-
max_index: null
82-
path: /tmp/studio/output/1/tutorial2/pca_xi0d87mbrk/projectedNd.json
83-
type: scatter
84-
started_at: '2023-11-22 17:20:53'
62+
started_at: '2024-04-11 16:49:09'
63+
finished_at: '2024-04-11 16:49:14'
64+
caiman_cnmf_qcjcwx9uq7:
65+
unique_id: caiman_cnmf_qcjcwx9uq7
66+
name: caiman_cnmf
8567
success: success
86-
unique_id: pca_xi0d87mbrk
87-
hasNWB: true
88-
name: Tutorial2
68+
hasNWB: true
69+
message: caiman_cnmf success
70+
outputPaths:
71+
images:
72+
path: /tmp/studio/output/1/tutorial2/caiman_cnmf_qcjcwx9uq7/images.json
73+
type: images
74+
max_index: 1
75+
fluorescence:
76+
path: /tmp/studio/output/1/tutorial2/caiman_cnmf_qcjcwx9uq7/fluorescence
77+
type: timeseries
78+
max_index: 4
79+
all_roi:
80+
path: /tmp/studio/output/1/tutorial2/caiman_cnmf_qcjcwx9uq7/all_roi.json
81+
type: roi
82+
max_index: null
83+
cell_roi:
84+
path: /tmp/studio/output/1/tutorial2/caiman_cnmf_qcjcwx9uq7/cell_roi.json
85+
type: roi
86+
max_index: null
87+
non_cell_roi:
88+
path: /tmp/studio/output/1/tutorial2/caiman_cnmf_qcjcwx9uq7/non_cell_roi.json
89+
type: roi
90+
max_index: null
91+
started_at: '2024-04-11 16:48:36'
92+
finished_at: '2024-04-11 16:48:59'
8993
nwb:
9094
device:
9195
description: Microscope Information
@@ -119,7 +123,3 @@ snakemake:
119123
forcetargets: true
120124
lock: false
121125
use_conda: true
122-
started_at: '2023-11-22 17:20:42'
123-
success: success
124-
unique_id: tutorial2
125-
workspace_id: '1'

0 commit comments

Comments
 (0)