You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
E2E tests run larger workflow scenarios to ensure that multiple components of the pipeline work correctly together (e.g., segmentation → extraction → featurization → selection).
247
247
These tests are **much slower** and may require larger example data.
248
248
249
+
If an E2E test depends on remotely downloaded data/config files, it must be annotated with `@pytest.mark.requires_dataset(...)`.
250
+
This is required because scPortrait runs a preflight data check before executing E2E test bodies and exits early if required data cannot be downloaded, avoiding misleading downstream failures.
251
+
See [Test Markers](#test-markers) for details and examples.
252
+
249
253
Run only E2E tests:
250
254
```console
251
255
pytest tests/e2e_tests --disable-warnings
252
256
```
253
257
258
+
### Test Markers
259
+
260
+
scPortrait uses pytest markers to describe test metadata and e2e data requirements.
261
+
262
+
-`@pytest.mark.slow`: marks slow-running tests (used to identify expensive tests such as full-pipeline e2e runs).
263
+
-`@pytest.mark.requires_dataset(...)`: declares which remote datasets/configs an e2e test needs.
264
+
265
+
The e2e preflight fixture in `tests/e2e_tests/conftest.py` reads `requires_dataset(...)` markers from the selected tests and preloads only those datasets before test bodies execute. If preloading fails, pytest exits early and the remaining e2e tests are not executed.
Copy file name to clipboardExpand all lines: docs/index.rst
+2-3Lines changed: 2 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,12 +11,12 @@ scPortrait is a scalable toolkit to analyse single-cell image datasets. This Pyt
11
11
Installation
12
12
=============
13
13
14
-
Check out the installation instructions :ref:`here<installation>`. You can validate your installation by running one of the example notebooks `here<https://github.com/MannLabs/scPortrait-notebooks/tree/main/example_projects/example_1>`_.
14
+
Check out the installation instructions :ref:`here<installation>`. You can validate your installation by running one of the `example notebooks <https://github.com/MannLabs/scPortrait-notebooks/tree/main/example_projects/example_1>`_.
15
15
16
16
Getting Started
17
17
===============
18
18
19
-
You can check out our :ref:`worfklow overview<workflow>` or our `in-depth tutorial <https://mannlabs.github.io/scPortrait/pages/notebooks/_notebook_workflow_walkthrough.html>`_ to get started with scPortrait. For more detailed information on the package, checkout the more detailed guides :ref:`here<detailed_guide>`. You can find a collection of example projects which run on datasets provided within scPortrait to help you get started with `here<https://github.com/MannLabs/scPortrait-notebooks/tree/main/example_projects>`_. If you encounter issues feel free to `open up a git issue <https://github.com/MannLabs/scPortrait/issues>`_.
19
+
You can check out our :ref:`workflow overview<workflow>` or our `in-depth tutorial <https://mannlabs.github.io/scPortrait/pages/notebooks/_notebook_workflow_walkthrough.html>`_ to get started with scPortrait. For more detailed information on the package, checkout the more detailed guides :ref:`here<detailed_guide>`. You can find a collection of example projects which run on datasets provided within scPortrait in the `example projects repository<https://github.com/MannLabs/scPortrait-notebooks/tree/main/example_projects>`_. If you encounter issues feel free to `open up a git issue <https://github.com/MannLabs/scPortrait/issues>`_.
Copy file name to clipboardExpand all lines: docs/pages/workflow.rst
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -39,7 +39,7 @@ Stitching
39
39
During stitching, individual fields-of-view are registered and combined into a single whole-slide image. Using parallel processing and out-of-memory computation scPortrait can efficiently align and assemble large
40
40
datasets that exceed the memory capacities of a single machine. The stitching process is optional and can be skipped if the input images are already in the form of a single whole-slide image or individual images need to be processed.
41
41
42
-
You can find an example notebook illustrating the stitching of individual tif files to whole-slide images :ref:`here<example_stitching>`
42
+
You can find an example notebook illustrating the stitching of individual tif files to whole-slide images :ref:`in the stitching tutorial<example_stitching>`
43
43
44
44
.. _quickstart_segmentation:
45
45
@@ -124,7 +124,7 @@ During featurization, the extracted single cell images are passed to a phenotype
124
124
125
125
The type of featurization applicable to your use case will depend on the type of data you are working with and the biological question you are trying to answer. For example, in our `first publication <https://doi.org/10.1101/2023.06.01.542416>`_ we describe a deep learning-based binary image classifier that identifies individual cells defective in a biological process called "autophagy". Multiple featurization runs can be performed on the same dataset so that different featurization approaches can be used in parallel.
126
126
127
-
You can find more information on running an inference within a scPortrait Project in this `notebook <https://mannlabs.github.io/scPortrait/html/pages/notebooks/example_scPortrait_project.html#Classification-of-extracted-single-cells>`_.
127
+
You can find more information on running an inference within a scPortrait Project in this `classification notebook <https://mannlabs.github.io/scPortrait/html/pages/notebooks/example_scPortrait_project.html#Classification-of-extracted-single-cells>`_.
128
128
129
129
.. _quickstart_selection:
130
130
@@ -135,7 +135,7 @@ The selection step takes a list of cells that have been selected based on their
135
135
136
136
During selection, the appearance of selected cells can be modified, e.g. by applying an erosion or dilation or by smoothing the shapes to further stream-line the excision process. Please refer to the `py-lmd <https://github.com/MannLabs/py-lmd>`_ library for more details on the available parameters.
137
137
138
-
You can also find an example selection workflow outlined in this `notebook <https://mannlabs.github.io/scPortrait/html/pages/notebooks/example_scPortrait_project.html#Exporting-Cutting-contours-for-excision-on-a-Leica-LMD7>`_.
138
+
You can also find an example selection workflow outlined in this `selection notebook <https://mannlabs.github.io/scPortrait/html/pages/notebooks/example_scPortrait_project.html#Exporting-Cutting-contours-for-excision-on-a-Leica-LMD7>`_.
Copy file name to clipboardExpand all lines: docs/pages/workflow/segmentation_workflow.rst
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -498,7 +498,7 @@ If you utilize this segmentation workflow please also consider citing the `cellp
498
498
Cytosol Only Cellpose segmentation
499
499
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
500
500
501
-
This segmentation workflow is also built around the cellular segmentation algorithm `cellpose <https://cellpose.readthedocs.io/en/latest/>`_ but only performs a cytosol segmentation. Unlike the :ref:`DAPI segmentation cellpose <_DAPI_segmentation_cellpose>` workflow it uses two input channels to generate a single output mask. The generated single cell datasets using this segmentation method will contain all signal from within the cytosolic region.
501
+
This segmentation workflow is also built around the cellular segmentation algorithm `cellpose <https://cellpose.readthedocs.io/en/latest/>`_ but only performs a cytosol segmentation. Unlike the :ref:`DAPI segmentation cellpose <DAPI_segmentation_cellpose>` workflow it uses two input channels to generate a single output mask. The generated single cell datasets using this segmentation method will contain all signal from within the cytosolic region.
502
502
503
503
As for the :ref:`cytosol segmentation cellpose <Cytosol_segmentation_cellpose>` workflow it is highly recommended to utilize a GPU. If your system has more than one GPU available, in a ShardedSegmentation context, you can specify the number of GPUs to be used via the configuration file (``nGPUs``).
0 commit comments