"""
Classes for manipulating brain atlases, insertions, and coordinates.
"""
import warnings
import iblatlas.atlas
[docs]
def deprecated_decorator(function):
def deprecated_function(*args, **kwargs):
warning_text = f"{function.__module__}.{function.__name__} is deprecated. " \
f"Use iblatlas.{function.__module__.split('.')[-1]}.{function.__name__} instead"
warnings.warn(warning_text, DeprecationWarning)
return function(*args, **kwargs)
return deprecated_function
[docs]
@deprecated_decorator
def BrainCoordinates(*args, **kwargs):
return iblatlas.atlas.BrainCoordinates(*args, **kwargs)
[docs]
@deprecated_decorator
def BrainAtlas(*args, **kwargs):
return iblatlas.atlas.BrainAtlas(*args, **kwargs)
[docs]
class Trajectory(iblatlas.atlas.Trajectory):
"""
3D Trajectory (usually for a linear probe), minimally defined by a vector and a point.
Examples
--------
Instantiate from a best fit from an n by 3 array containing xyz coordinates:
>>> trj = Trajectory.fit(xyz)
"""
[docs]
class Insertion(iblatlas.atlas.Insertion):
"""
Defines an ephys probe insertion in 3D coordinate. IBL conventions.
To instantiate, use the static methods: `Insertion.from_track` and `Insertion.from_dict`.
"""
[docs]
@deprecated_decorator
def AllenAtlas(*args, **kwargs):
return iblatlas.atlas.AllenAtlas(*args, **kwargs)
[docs]
@deprecated_decorator
def NeedlesAtlas(*args, **kwargs):
"""
Instantiates an atlas.BrainAtlas corresponding to the Allen CCF at the given resolution
using the IBL Bregma and coordinate system. The Needles atlas defines a stretch along AP
axis and a squeeze along the DV axis.
Parameters
----------
res_um : {10, 25, 50} int
The Atlas resolution in micrometres; one of 10, 25 or 50um.
**kwargs
See AllenAtlas.
Returns
-------
AllenAtlas
An Allen atlas object with MRI atlas scaling applied.
Notes
-----
The scaling was determined by manually transforming the DSURQE atlas [1]_ onto the Allen CCF.
The DSURQE atlas is an MRI atlas acquired from 40 C57BL/6J mice post-mortem, with 40um
isometric resolution. The alignment was performed by Mayo Faulkner.
The atlas data can be found `here <http://repo.mouseimaging.ca/repo/DSURQE_40micron_nifti/>`__.
More information on the dataset and segmentation can be found
`here <http://repo.mouseimaging.ca/repo/DSURQE_40micron/notes_on_DSURQE_atlas>`__.
References
----------
.. [1] Dorr AE, Lerch JP, Spring S, Kabani N, Henkelman RM (2008). High resolution
three-dimensional brain atlas using an average magnetic resonance image of 40 adult C57Bl/6J
mice. Neuroimage 42(1):60-9. [doi 10.1016/j.neuroimage.2008.03.037]
"""
return iblatlas.atlas.NeedlesAtlas(*args, **kwargs)
[docs]
@deprecated_decorator
def MRITorontoAtlas(*args, **kwargs):
"""
The MRI Toronto brain atlas.
Instantiates an atlas.BrainAtlas corresponding to the Allen CCF at the given resolution
using the IBL Bregma and coordinate system. The MRI Toronto atlas defines a stretch along AP
a squeeze along DV *and* a squeeze along ML. These are based on 12 p65 mice MRIs averaged [1]_.
Parameters
----------
res_um : {10, 25, 50} int
The Atlas resolution in micrometres; one of 10, 25 or 50um.
**kwargs
See AllenAtlas.
Returns
-------
AllenAtlas
An Allen atlas object with MRI atlas scaling applied.
References
----------
.. [1] Qiu, LR, Fernandes, DJ, Szulc-Lerch, KU et al. (2018) Mouse MRI shows brain areas
relatively larger in males emerge before those larger in females. Nat Commun 9, 2615.
[doi 10.1038/s41467-018-04921-2]
"""
return iblatlas.atlas.MRITorontoAtlas(*args, **kwargs)
[docs]
@deprecated_decorator
def FranklinPaxinosAtlas(*args, **kwargs):
return iblatlas.atlas.FranklinPaxinosAtlas(*args, **kwargs)