|
1 | 1 | # Rhapso |
2 | 2 |
|
3 | | -This is the official code base for **Rhapso**, a modular Python toolkit for the alignment and stitching of large-scale microscopy datasets. |
| 3 | +This is the official code base for **Rhapso**, a modular Python toolkit for stitching (alignment and fusion) large-scale microscopy datasets. |
4 | 4 |
|
5 | 5 | [](LICENSE) |
6 | 6 | [](https://www.python.org/downloads/release/python-3100/) |
@@ -32,11 +32,13 @@ This is the official code base for **Rhapso**, a modular Python toolkit for the |
32 | 32 | --- |
33 | 33 |
|
34 | 34 | ## Summary |
35 | | -Rhapso is a set of Python components used to register, align, and stitch large-scale, overlapping, tile-based, multiscale microscopy datasets. Its stateless components can run on a single machine or scale out across cloud-based clusters. |
| 35 | +Rhapso is a set of Python components used to register, align, and fuse large-scale, overlapping, tile-based, multiscale microscopy datasets. Its stateless components can run on a single machine or scale out across cloud-based clusters. |
| 36 | + |
| 37 | +Looking forward, we are developing an automated QC system for alignment. |
36 | 38 |
|
37 | 39 | Rhapso is published on PyPI. |
38 | 40 |
|
39 | | -Rhapso was developed by the Allen Institute for Neural Dynamics. |
| 41 | +Rhapso is developed by the Allen Institute. |
40 | 42 |
|
41 | 43 | <br> |
42 | 44 |
|
@@ -66,31 +68,27 @@ Questions or want to contribute? Please open an issue.. |
66 | 68 |
|
67 | 69 | ``` |
68 | 70 | Rhapso/ |
69 | | -└── Rhapso/ |
70 | | - ├── data_prep/ # Custom data loaders |
71 | | - ├── detection/ |
72 | | - ├── evaluation/ |
73 | | - ├── affine_fusion/ |
74 | | - ├── multiscale/ |
75 | | - ├── image_split/ |
76 | | - ├── matching/ |
77 | | - ├── pipelines/ |
78 | | - │ └── ray/ |
79 | | - │ ├── aws/ |
80 | | - │ │ ├── config/ # Cluster templates (edit for your account) |
81 | | - │ │ └── alignment_pipeline.py # AWS Ray pipeline entry point |
82 | | - | | └── fusion_pipeline.py # AWS Ray pipeline entry point |
83 | | - │ ├── local/ |
84 | | - │ │ └── alignment_pipeline.py # Local Ray pipeline entry point |
85 | | - | | └── fusion_pipeline.py # AWS Ray pipeline entry point |
86 | | - │ ├── param/ # Run parameter files (customize per run) |
87 | | - │ ├── interest_point_detection.py # Detection pipeline script |
88 | | - │ ├── interest_point_matching.py # Matching pipeline script |
89 | | - │ └── solver.py # Global solver pipeline script |
90 | | - │ └── affine_fusion.py # Affine fusion pipeline script |
91 | | - │ └── multiscale.py # Multiscale pipeline script |
92 | | - ├── solver/ |
93 | | - └── visualization/ # Validation tools |
| 71 | +└── rhapso/ |
| 72 | + ├── data_prep/ # Data readers and XML/DataFrame preparation |
| 73 | + ├── detection/ # Difference-of-Gaussian interest point detection |
| 74 | + ├── matching/ # RANSAC-based interest point matching |
| 75 | + ├── solver/ # Global optimization and transform solving |
| 76 | + ├── affine_fusion/ # Affine fusion |
| 77 | + ├── multiscale/ # Multiscale OME-Zarr pyramid generation |
| 78 | + ├── split_dataset/ # Dataset splitting utilities |
| 79 | + ├── evaluation/ # QC and visualization helpers |
| 80 | + ├── util/ # Miscellaneous XML/QC/Neuroglancer utilities |
| 81 | + └── pipelines/ |
| 82 | + └── ray/ |
| 83 | + ├── aws/ # AWS Ray cluster entry points and config templates |
| 84 | + ├── local/ # Local Ray entry points |
| 85 | + ├── param/ # Example/template YAML parameter files |
| 86 | + ├── interest_point_detection.py |
| 87 | + ├── interest_point_matching.py |
| 88 | + ├── solver.py |
| 89 | + ├── affine_fusion.py |
| 90 | + ├── multiscale.py |
| 91 | + └── split_dataset.py |
94 | 92 | ``` |
95 | 93 |
|
96 | 94 | --- |
@@ -141,6 +139,8 @@ A good way to get started: |
141 | 139 | For example: |
142 | 140 | - `Rhapso/pipelines/ray/local/alignment_pipeline.py` (local) |
143 | 141 | - `Rhapso/pipelines/ray/aws/alignment_pipeline.py` (AWS/Ray cluster) |
| 142 | + - `Rhapso/pipelines/ray/local/fusion_pipeline.py` (local) |
| 143 | + - `Rhapso/pipelines/ray/aws/fusion_pipeline.py` (AWS/Ray cluster) |
144 | 144 |
|
145 | 145 | 3. **Point it to your param file** |
146 | 146 | Update the `with open("...param.yml")` line so it reads your own parameter YAML. |
@@ -213,7 +213,7 @@ There is a special case in some datasets where the z-stack is very large. In thi |
213 | 213 | | Environment | Resources | Avg runtime | |
214 | 214 | |:----------------------|:---------------------|:-----------:| |
215 | 215 | | Local single machine | 10 CPU, 10 GB RAM | ~120 min | |
216 | | -| AWS Ray cluster | 560 CPU, 4.4 TB RAM | ~30 min | |
| 216 | +| AWS Ray cluster | 560 CPU, 4.4 TB RAM | ~10 min | |
217 | 217 |
|
218 | 218 | <br> |
219 | 219 | *Actual times vary by pipeline components, dataset size, tiling, and parameter choices.* |
|
0 commit comments