Skip to content

Commit

Permalink
Merge pull request #3 from melvingelbard/master
Browse files Browse the repository at this point in the history
Fixed typos
  • Loading branch information
petebankhead committed May 6, 2020
2 parents 6e27f3e + 54a5caf commit 25ddb35
Show file tree
Hide file tree
Showing 18 changed files with 111 additions and 111 deletions.
2 changes: 1 addition & 1 deletion docs/advanced/exporting_images.rst
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ Tile Exporter

One way to use QuPath is as whole slide image viewing and annotation software, outsourcing analysis to other tools that do not otherwise support large, pyramidal images themselves.

The ``TileExporter`` class in QuPath provides options to help export all or part of an image as distinct (possibly-overlapping) image tiles of a fixed size, at any resolution.
The ``TileExporter`` class in QuPath provides options to help export all or part of an image as distinct (possibly overlapping) image tiles of a fixed size, at any resolution.

To use it, you create an exporter for a specific ``ImageData``, customize it as required, then end by calling ``writeTiles("path/to/export")``.

Expand Down
20 changes: 10 additions & 10 deletions docs/advanced/imagej.rst
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ The commands described here are accessible from the *ImageJ toolbar button* in Q
:align: center
:width: 40%

ImageJ menu in the QuPath toolbar
ImageJ menu in the QuPath toolbar.

.. NOTE:
The toolbar button will only be available if you have the ImageJ extension installed.
Expand All @@ -53,7 +53,7 @@ Then by clicking on the *Send region to ImageJ* command |icon_extract_image|, Im
:width: 75%
:align: center

Sending an image region to ImageJ
Sending an image region to ImageJ.


Downsampling and image calibration
Expand Down Expand Up @@ -104,9 +104,9 @@ When such a color transform has been applied, QuPath will pass the transformed p
:width: 75%
:align: center

Sending a color-transformed image region to ImageJ
Sending a color-transformed image region to ImageJ.

In the screenshot above, the original image was sent first by running the *Send region to ImageJ* command, and then hematoxylin and DAB transformed images were also sent (separately) in the same way, after applying the appropriate transformed within QuPath.
In the screenshot above, the original image was sent first by running the *Send region to ImageJ* command, and then hematoxylin and DAB transformed images were also sent (separately) in the same way, after applying the appropriate transform within QuPath.

.. note::
If you look closely at the screenshot, you should see that the color-transformed images were sent using a different downsample factor compared to the original (RGB) image.
Expand All @@ -129,7 +129,7 @@ Consequently, when sending an image region to ImageJ, QuPath uses them to make i
:width: 75%
:align: center

Sending an image region & objects to ImageJ
Sending an image region & objects to ImageJ.

The screenshot above depicts how this works.
The selected object within QuPath defines the region that will be sent, and - so long as it isn't a rectangle - this becomes converted into a selected ROI in ImageJ (shown in yellow in both applications).
Expand Down Expand Up @@ -157,9 +157,9 @@ The result will be similar to what is generated in QuPath with the :menuselectio
:width: 75%
:align: center

Sending a snapshot image to ImageJ
Sending a snapshot image to ImageJ.

Note that the snapshot command is really **only** for creating screenshots - not **not** for transferring images for further analysis.
Note that the snapshot command is really **only** for creating screenshots - **not** for transferring images for further analysis.
The snapshot that is available within ImageJ will be RGB, and does not contain the pixel values or calibration information that is available when *Send region to ImageJ* is used instead.


Expand Down Expand Up @@ -190,7 +190,7 @@ Send ROI to QuPath
:width: 75%
:align: center

Sending a ROI from ImageJ to QuPath
Sending a ROI from ImageJ to QuPath.

Running :menuselection:`Plugins --> Send ROI to QuPath` will take whichever ROI is currently active in ImageJ, and send it to QuPath as an annotation object.
All rescaling etc. will happen automatically.
Expand All @@ -204,7 +204,7 @@ Send Overlay to QuPath
:width: 75%
:align: center

Sending an overlay from ImageJ to QuPath
Sending an overlay from ImageJ to QuPath.

Running :menuselection:`Plugins --> Send Overlay to QuPath` will take **all** the ROIs on the current ImageJ overlay, and send them back to QuPath as either annotation or detection objects.
Furthermore, the measurement list for each object can optionally be populated by ImageJ measurements, according to ImageJ's :menuselection:`Analyze --> Set Measurements` specifications - in the same ways as this command is used to specify measurements for the :menuselection:`Analyze --> Analyze Particles...` command.
Expand Down Expand Up @@ -233,7 +233,7 @@ Together, these integration features add up to both enabling ImageJ to operate w
Macros and parallelization
--------------------------

In QuPath ``v0.1.2``, an 'experimental' ability to run macros in parallel was added (which can be turned on or off in the macro runner dialog).
In QuPath v0.1.2, an 'experimental' ability to run macros in parallel was added (which can be turned on or off in the macro runner dialog).
Parallelization can speed up processing, however it can also have unintended consequences - and therefore is turned off by default.

In particular, if your macro creates additional images (e.g. by duplication, or by splitting color channels), then this can cause a parallelized macro to fail (since macros work with an 'active' image, which changes unpredictably under these circumstances).
Expand Down
8 changes: 4 additions & 4 deletions docs/concepts/measurements.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
Measurements
************

In :doc:`object` it was stated that all objects have their own measurement lists.
While true, this is not the whole store.
In :doc:`Objects <objects>`, it was stated that all objects have their own measurement lists.
While true, this is not the whole story.

==============================
Different kinds of measurement
Expand Down Expand Up @@ -59,7 +59,7 @@ In this regard, it is strongly preferable that summary statistics are dynamic be
.. figure:: images/measurement_types.jpg
:width: 60%
:align: center

Illustration of the different measurement types within QuPath. |br|
The measurement list on the left relates to the individual selected cell shown in yellow (a **detection** object).
The measurement table contains both summary and shape statistics for the polygonal **annotation** object.
Expand All @@ -82,6 +82,6 @@ This means that, if you want this measurement to be updated later whenever you m
Therefore be careful with measurements, and try to always check that you have definitely measured what you think you have, e.g. by moving or deleting an object that you predict should have an effect on the measurement to see if the measurement in question updates (i.e. it is dynamic) or not.

.. note::

Because this can be confusing, in the future QuPath may make it clearer when measurements are dynamic and when they are not.
It is also planned to make it easier for developers to write their own dynamic measurements.
40 changes: 20 additions & 20 deletions docs/concepts/object_hierarchy.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@
Object hierarchy
****************

:doc:`Objects <objects>` in QuPath need to be stored somewhere - and that place is the *object hierarchy*.
:doc:`Objects <objects>` in QuPath need to be stored somewhere - and that place is the *object hierarchy*.

.. important::

The hierarchy behavior has changed in v0.2.0! |br|
If you are familiar with the old behavior, be sure to read :ref:`Differences from QuPath v0.1.2`.

The name comes from the fact that the objects are all stored in a hierarchical, tree-like structure.
This is achieved by each object having having a reference to:

Expand All @@ -28,16 +28,16 @@ Once we can identify the objects in an image and their key relationships, genera
.. figure:: images/hierarchy_complex.png
:width: 60%
:align: center

Schematic illustration of an object hierarchy in QuPath.
Annotations are shown in red, detections in green.


.. admonition:: How important is the object hierarchy?

Not every analysis application needs this hierarchy information, and it can be computationally expensive to maintain all the relationships unnecessarily.
Sometimes it is better to treat objects in QuPath as simply existing in a single flat list.

In QuPath v0.2.0, you can choose to what extent you rely on maintaining hierarchical relationships between objects.
But regardless of how much you use it, it's important to know the concept exists.

Expand Down Expand Up @@ -66,19 +66,19 @@ The root object is omitted, but all other objects can be displayed.
.. figure:: images/hierarchy_view.jpg
:width: 80%
:align: center

Viewing the object hierarchy in QuPath.


.. tip::

In QuPath, it is common to have hundreds of thousands - or even millions - of objects in a single hierarchy.
Usually, most of these are detection objects.

Showing such large numbers of objects under the 'Hierarchy' tab can slow down the application.
Therefore if you right-click on the hierarchy view, you can choose not to show detections.
This can make QuPath much faster in cases where many detections are present.


===========================
Understanding relationships
Expand All @@ -103,7 +103,7 @@ In this case, everything detected within the region of interest defined by the p
This helps preserve knowledge about how the detections were generated, and means that if the parent object is later deleted its children can (optionally) be removed as well.

.. note::

The parent is usually :doc:`locked <../starting/annotating>` when used to define a ROI for detection, so that the relationship cannot be lost by accidentally moving it.


Expand All @@ -127,19 +127,19 @@ Two consequences of these rules are:
* Surprises can happen with detections that are very large/have weird shapes, so that their centroid falls outside the bounds of the ROI

.. tip::
If you want to apply these rules to only on few objects (not the whole hierarchy), you can select the relevant objects and choose :menuselection:`Objects --> Annotations... --> Insert into hierarchy`.

If you want to apply these rules to only a few objects (not the whole hierarchy), you can select the relevant objects and choose :menuselection:`Objects --> Annotations... --> Insert into hierarchy`.


.. admonition:: Note for scripters

You can also access objects programmatically and set parent/child relationships however you like, but this should be done cautiously - since it could give some strange or counter-intuitive results.

Programmatically overriding the normal behavior is best restricted to cases where the built-in rules are excessively strict (e.g. one annotation is *almost* completely contained with another, but perhaps a few pixels fall outside).

Any time you do some weird hierarchy manipulations by scripting, be sure to call ``fireHierarchyUpdate()`` so that QuPath is notified that something has changed.
This is crucial because the ``PathObjectHierarchy`` class uses spatial caching and other tricks to keep track of where everything is.


==============================
Differences from QuPath v0.1.2
Expand Down
4 changes: 2 additions & 2 deletions docs/intro/formats.rst
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ CZI (Zeiss)

Since the release of `Bio-Formats v5.3.0 <https://www.openmicroscopy.org/site/support/bio-formats5.3/about/whats-new.html>`__ QuPath has been able to work with ``.czi`` files.

To open CZI files that on that use JPEG-XR compression on **Windows**, you may also need to install the *Visual Studio 2015 C++ Redistributable* - see `here <https://www.openmicroscopy.org/site/support/bio-formats/formats/zeiss-czi.html>`__ for more information.
To open CZI files that use JPEG-XR compression on **Windows**, you may also need to install the *Visual Studio 2015 C++ Redistributable* - see `here <https://www.openmicroscopy.org/site/support/bio-formats/formats/zeiss-czi.html>`__ for more information.


iSyntax (Philips)
Expand Down Expand Up @@ -121,4 +121,4 @@ Internally, the data in a TIFF file can be represented quite differently in term
Consequently, although OpenSlide and Bio-Formats support many TIFF files, it is quite possible to encounter variants that cannot be opened with QuPath.

Perhaps the most common reason for this is that the file does not contain pyramidal layers, or these layers cannot be automatically recognized.
This is one reason why well-supported, open formats should generally be preferred (e.g OME-TIFF).
This is one reason why well-supported, open formats should generally be preferred (e.g. OME-TIFF).
30 changes: 15 additions & 15 deletions docs/intro/installation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Download QuPath for your platform (Windows, Linux, macOS) from `GitHub <https://
* On **Linux**, download and extract the ``.tar.xz`` file

.. tip::

Recent security changes in Windows and macOS are likely to complicate installation slightly. |br|
See :ref:`Troubleshooting` for more information.

Expand All @@ -30,7 +30,7 @@ When running QuPath for the first time, you will be prompted to specify some set
:width: 75%
:align: center

Setup options shown on startup
Setup options shown on startup.

The default is that QuPath will request 50% of the total memory available.
This is generally a reasonable choice, but be aware that the amount of memory available to QuPath is one of the main factors influencing how well the software will perform - and how complex the analysis can be.
Expand Down Expand Up @@ -93,7 +93,7 @@ The QuPath installer does not start
If the QuPath installer does not start at all, you may not have administrator privileges on your computer - and therefore cannot install it. Try downloading the ``.zip`` file instead, which should not need such privileges.

.. important::

Running QuPath on 32-bit Windows is not supported.


Expand Down Expand Up @@ -130,7 +130,7 @@ Recent macOS changes (first reported in February 2020) may give a different mess
.. figure:: images/installing_macOS_damaged.png
:align: center
:width: 60%

Damaged message (macOS Catalina)

This appears to occur because macOS Catalina flags downloads from 'unidentified developers' as quarantined, and will not permit them to be opened.
Expand All @@ -140,34 +140,34 @@ One way to work around this is to remove the flag by opening `/Applications/Util
.. code-block:: bash
xattr -d com.apple.quarantine /Users/yourname/path/to/QuPath.app
.. figure:: images/installing_macOS_damaged_terminal.png
:align: center
:width: 75%



.. warning::

Since macOS (presumably) has your best interests at heart, circumventing its security settings routinely is probably not advisable.

However, the time and resources needed to distribute QuPath as a signed/notarized app to avoid these warnings are currently lacking.


.. note::

These alternative methods to start QuPath should only be necessary the first time you run it - double-clicking as normal should work afterwards.


.. tip::

The quarantined flag does not always appear to be set, depending upon how the application is downloaded.
For example, these problems may not arise if it is obtained using ``wget``, e.g.

.. code-block:: bash
wget https://github.com/qupath/qupath/releases/download/v0.2.0-m9/QuPath-0.2.0-m9-Mac.dmg
Linux
Expand Down
2 changes: 1 addition & 1 deletion docs/reference/building.rst
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ Step 3: Build QuPath with Gradle
Open the QuPath source directory in a command prompt
====================================================

One way to do this is to go back to GitHub Desktop and choose :menuselection:`Repository --> Open in Command Prompt`
One way to do this is to go back to GitHub Desktop and choose :menuselection:`Repository --> Open in Command Prompt`.

.. admonition::
Installing Git or not?
Expand Down
8 changes: 4 additions & 4 deletions docs/reference/faqs.rst
Original file line number Diff line number Diff line change
Expand Up @@ -49,10 +49,10 @@ Many 'issues' are really better topics for forum discussions.
.. admonition:: Questions and Issues

**Please don't open a GitHub Issue to ask a question!**
Issues are intended only for bug reports and acts as a todo list for software changes - using them for general questions makes this harder to manage and harder to find answers in the future.
Issues are intended only for bug reports and act as a todo list for software changes - using them for general questions makes this harder to manage and harder to find answers in the future.

If you aren't sure if you have a question or a bug, or you can't provide clear steps to reproduce the problem you see, use `the forum <http://forum.image.sc/tags/qupath/>`_.



How do I interpret a cryptic error?
Expand Down Expand Up @@ -134,7 +134,7 @@ Lots of subtle and thorny issues can happen when representing numbers in differe
For example, ``1,001`` can either be a fairly large number or a small number depending upon where on the world it is read.

In some cases, QuPath has to use the 'dot' representation for decimals (e.g. when scripting), since this is Java's preferred form, and trying to work around this proved too difficult.
However, forcing everyone to use US English for everything (including exporting results) isn't a perfect solution, especially if other software (e.g. your preferred spreadsheet application) is uses something else.
However, forcing everyone to use US English for everything (including exporting results) isn't a perfect solution, especially if other software (e.g. your preferred spreadsheet application) uses something else.

Therefore QuPath does not (currently) insist on its preference for US English... but gives a warning to be **very** cautious about how numbers are represented and interpreted.

Expand Down Expand Up @@ -242,7 +242,7 @@ Currently, you can only `view the consecutive sections side-by-side <https://git
Scripting & development
=======================

Where as the QuPath javadocs?
Where are the QuPath javadocs?
=============================

At the time of writing, QuPath's javadocs aren't hosted anywhere - but it is planned to put them online at some point once they have been cleaned up accordingly. See `here <https://github.com/qupath/qupath/issues/230>`__ for the request.
Expand Down
2 changes: 1 addition & 1 deletion docs/reference/shortcuts.rst
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ The following shortcuts are used to toggle on/off display elements in the viewer
Command shortcuts
=================

The following shortcut trigger commands that can also be accessed within the QuPath menus.
The following shortcuts trigger commands that can also be accessed within the QuPath menus.

Because the shortcuts are shown in the menus as well, only a small number of the most important are shown here to draw attention to them - subjectively ordered according to usefulness.

Expand Down
4 changes: 2 additions & 2 deletions docs/scripting/overview.rst
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ If this is selected, QuPath will add the following line to the top of your scrip
import static qupath.lib.gui.scripting.QPEx.*
This means you've access to all the static methods in `QPEx <https://github.com/qupath/qupath/blob/master/qupath-gui-fx/src/main/java/qupath/lib/gui/scripting/QPEx.java>`_ and `QP <https://github.com/qupath/qupath/blob/master/qupath-core/src/main/java/qupath/lib/scripting/QP.java>`_ directly.
This means you've access to all the static methods in `QPEx <https://github.com/qupath/qupath/blob/master/qupath-gui-fx/src/main/java/qupath/lib/gui/scripting/QPEx.java>`_ and `QP <https://github.com/qupath/qupath/blob/master/qupath-core-processing/src/main/java/qupath/lib/scripting/QP.java>`_ directly.
These are used extensively by QuPath when converting workflows to scripts for batch processing.

All the examples below assume that ``QPEx`` is imported one way or another.
Expand Down Expand Up @@ -678,7 +678,7 @@ This should (although I haven't tried...) make it possible to exchange regions w
def mat = Mat.eye(3, 3, opencv*core.CV*32FC1).asMat()
print gson.toJson(mat)
Eventually this will make OpenCV classifiers JSON-serializable within QuPath and finally `avoid needing to retrain existing classifiers when reloading them <https://github.com/qupath/qupath/issues/3430>`_.
Eventually this will make OpenCV classifiers JSON-serializable within QuPath and finally `avoid needing to retrain existing classifiers when reloading them <https://github.com/qupath/qupath/issues/343>`_.


What next?
Expand Down

0 comments on commit 25ddb35

Please sign in to comment.