nisnap
Create snapshots of segmentation maps produced by neuroimaging software. Inspired by tools like nilearn, visualqc, fmriprep and others.
Usage
From a Terminal:
nisnap c1.nii.gz c2.nii.gz c3.nii.gz --bg /tmp/raw.nii.gz --opacity 50 -o /tmp/snapshot.gif
nisnap labels.nii.gz --bg raw.nii.gz --opacity 50 --axes x --contours -o /tmp/snapshot.gif
Arguments:
files segmentation map(s) to create snapshots from
optional arguments:
--bg BG background image on which segmentations will be plotted.
--axes AXES choose the direction of the cuts (among 'x', 'y', or 'z')
--opacity OPACITY opacity (in %) of the segmentation maps when plotted over a background image. Only used if a background image is provided.
--contours if True, segmentations will be rendered as contoured regions. If False, will be rendered as superimposed masks.
-o OUTPUT, --output OUTPUT
snapshot will be stored in this file. If extension is .gif, snapshot will be rendered as an animation.
--config CONFIG [XNAT mode] XNAT configuration file
--nobg [XNAT mode] no background image. Plots segmentation maps only.
-e EXPERIMENT, --experiment EXPERIMENT
[XNAT mode] ID of the experiment to create snapshots from.
--resource RESOURCE [XNAT mode] name of the resource to download
--cache [XNAT mode] skip downloads (e.g. if running for a second time
--disable_warnings
--verbose
From IPython/Jupyter Notebook:
Example:
import nisnap
filepaths = ['c1.nii.gz', 'c2.nii.gz', 'c3.nii.gz']
bg = 'source.nii.gz'
nisnap.plot_segment(filepaths, bg=bg, opacity=30, axes='x', animated=True)
Reference:
def plot_segment(filepaths, axes='xyz', bg=None, opacity=30, slices=None,
animated=False, savefig=None, contours=False, rowsize=None,
figsize=None, width=2000):
"""Plots a set of segmentation maps/masks.
Parameters
----------
filepaths: a list of str
Paths to segmentation maps (between 1 and 3). Must be of same dimensions
and in same reference space.
axes: string, or a tuple of strings
Choose the direction of the cuts (among 'x', 'y', or 'z')
bg: None or str
Path to the background image that the masks will be plotted on top of.
If nothing is specified, the segmentation maps/masks will be plotted only.
The opacity (in %) of the segmentation maps when plotted over a background
image. Only used if a background image is provided. Default: 10
slices: None, or a tuple of floats
The indexes of the slices that will be rendered. If None is given, the
slices are selected automatically.
animated: boolean, optional
If True, the snapshot will be rendered as an animated GIF.
If False, the snapshot will be rendered as a static PNG image. Default:
False
savefig: string, optional
Filepath where the resulting snapshot will be created. If None is given,
a temporary file will be created and/or the result will be displayed
inline in a Jupyter Notebook.
contours: boolean, optional
If True, segmentations will be rendered as contoured regions. If False,
will be rendered as superimposed masks. Default: False
rowsize: None, or int, or dict
Set the number of slices per row in the final compiled figure.
Default: {'x': 9, 'y': 9, 'z': 6}
figsize: None, or a 2-uple of floats, or dict
Sets the dimensions of one row of slices.
Default: {'x': (37, 3), 'y': (40, 3), 'z': (18, 3)}
width: int, optional
Width (in px) of the final compiled figure. Default: 2000.
See Also
--------
xnat.plot_segment : To plot segmentation maps directly providing their
experiment_id on an XNAT instance
"""
Using XNAT
From a Terminal:
nisnap --config .xnat.cfg -e EXPERIMENT_ID --resource ASHS --axes A --opacity 50 -o /tmp/test.gif
From IPython/Jupyter Notebook:
Example:
from nisnap import xnat
xnat.plot_segment(config='/home/grg/.xnat.cfg', experiment_id='BBRC_E000',
raw=True, opacity=30, axes='x', slices=range(100,120,2), figsize=(15,5),
animated=True)
Reference:
def plot_segment(config, experiment_id, savefig=None, slices=None,
resource_name='SPM12_SEGMENT_T2T1_COREG',
axes='xyz', raw=True, opacity=10, animated=False, rowsize=None,
figsize=None, width=2000, contours=False, cache=False):
"""Download a given experiment/resource from an XNAT instance and create
snapshots of this resource along a selected set of slices.
Parameters
----------
config: string
Configuration file to the XNAT instance.
experiment_id : string
ID of the experiment from which to download the segmentation maps and
raw anatomical image.
savefig: string, optional
Filepath where the resulting snapshot will be created. If None is given,
a temporary file will be created and/or the result will be displayed
inline in a Jupyter Notebook.
slices: None, or a tuple of floats
The indexes of the slices that will be rendered. If None is given, the
slices are selected automatically.
resource_name: string, optional
Name of the resource where the segmentation maps are stored in the XNAT
instance. Default: SPM12_SEGMENT_T2T1_COREG
axes: string, or a tuple of strings
Choose the direction of the cuts (among 'x', 'y', 'z')
raw: boolean, optional
If True, the segmentation maps will be plotted over a background image
(e.g. anatomical T1 or T2, as in xnat.download_resources). If False,
the segmentation maps will be rendered only. Default: True
opacity: integer, optional
The opacity (in %) of the segmentation maps when plotted over a background
image. Only used if a background image is provided. Default: 10
animated: boolean, optional
If True, the snapshot will be rendered as an animated GIF.
If False, the snapshot will be rendered as a static PNG image. Default:
False
rowsize: None, or int, or dict
Set the number of slices per row in the final compiled figure.
Default: {'x': 9, 'y': 9, 'z': 6}
figsize: None, or a 2-uple of floats, or dict
Sets the dimensions of one row of slices.
Default: {'x': (37, 3), 'y': (40, 3), 'z': (18, 3)}
width: int, optional
Width (in px) of the final compiled figure. Default: 2000.
contours: boolean, optional
If True, segmentations will be rendered as contoured regions. If False,
will be rendered as superimposed masks. Default: False
cache: boolean, optional
If False, resources will be normally downloaded from XNAT. If True,
download will be skipped and data will be looked up locally.
Default: False
Notes
-----
Requires an XNAT instance where SPM segmentation maps will be found
following a certain data organization in experiment resources named
`resource_name`.
See Also
--------
xnat.download_resources : To download resources (e.g. segmentation maps +
raw images) from an XNAT instance (e.g. prior to snapshot creation)
nisnap.plot_segment : To plot segmentation maps directly providing their
filepaths
"""
def download_resources(config, experiment_id, resource_name, destination,
raw=True, cache=False):
"""Download a given experiment/resource from an XNAT instance in a local
destination folder.
Parameters
----------
config: string
Configuration file to the XNAT instance.
See http://xgrg.github.io/first-steps-with-pyxnat/ for more details.
experiment_id : string
ID of the experiment from which to download the segmentation maps and
raw anatomical image.
resource_name: string
Name of the resource where the segmentation maps are stored in the XNAT
instance.
destination: string
Destination folder where to store the downloaded resources.
raw: boolean, optional
If True, a raw anatomical image will be downloaded along with the
target resources. If False, only the resources referred to by
`resource_name` will be downloaded. Default: True
cache: boolean, optional
If False, resources will be normally downloaded from XNAT. If True,
download will be skipped and data will be looked up locally.
Default: False
Notes
-----
Requires an XNAT instance where SPM segmentation maps will be found
following a certain data organization in experiment resources named
`resource_name`.
See Also
--------
xnat.plot_segment : To plot segmentation maps directly providing their
experiment_id on an XNAT instance
nisnap.plot_segment : To plot segmentation maps directly providing their
filepaths
"""
How to install
pip install nisnap
Credits
Greg Operto and Jordi Huguet (BarcelonaBeta Brain Research Center)
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
nisnap-0.4.1.tar.gz
(27.0 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
nisnap-0.4.1-py3-none-any.whl
(27.2 kB
view details)
File details
Details for the file nisnap-0.4.1.tar.gz.
File metadata
- Download URL: nisnap-0.4.1.tar.gz
- Upload date:
- Size: 27.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/4.0.2 CPython/3.8.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f0a9f8f9cf225d8bd8ab01d2d82e1a7074c7bfb947f5715bc46ebc957e88dd07
|
|
| MD5 |
f61dac8acdd14be1f8dcc43ea8f16558
|
|
| BLAKE2b-256 |
a1d44d4024137da932a87eab04aa80866a8ae85a2f48b90e1e8d1180e9a60096
|
File details
Details for the file nisnap-0.4.1-py3-none-any.whl.
File metadata
- Download URL: nisnap-0.4.1-py3-none-any.whl
- Upload date:
- Size: 27.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/4.0.2 CPython/3.8.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
49fdcfcd63cb9a8584df448bda326bfbced1bb7149f00655a4da8603109fd868
|
|
| MD5 |
a59d904d57f5793298e45abdb5449990
|
|
| BLAKE2b-256 |
c24823a66f2e90597f3663398fb0033bcce49e0ff1699be771d266ffcbdfbc66
|