mirror of
https://github.com/13hannes11/situr.git
synced 2024-09-03 20:50:58 +02:00
add type hints to registrations
This commit is contained in:
@@ -1,11 +1,14 @@
|
|||||||
from situr.registration import Registration, FilterregRegistrationFunction
|
from situr.image.situ_image import SituImage
|
||||||
from situr.transformation import ScaleRotateTranslateChannelTransform
|
from situr.transformation.channel_transformation import ChannelTransform
|
||||||
|
from situr.registration import Registration, RegistrationFunction, FilterregRegistrationFunction
|
||||||
|
from situr.transformation import ChannelTransform, ScaleRotateTranslateChannelTransform
|
||||||
|
|
||||||
|
|
||||||
class ChannelRegistration(Registration):
|
class ChannelRegistration(Registration):
|
||||||
def __init__(self, registration_function=FilterregRegistrationFunction(ScaleRotateTranslateChannelTransform)):
|
def __init__(self, registration_function: RegistrationFunction[ChannelTransform] = FilterregRegistrationFunction(ScaleRotateTranslateChannelTransform)):
|
||||||
super().__init__(registration_function)
|
super().__init__(registration_function)
|
||||||
def do_channel_registration(self, situ_img, reference_channel=0):
|
|
||||||
|
def do_channel_registration(self, situ_img: SituImage, reference_channel: int = 0):
|
||||||
# For each channel (except nucleus) compute transform compared to reference_channel
|
# For each channel (except nucleus) compute transform compared to reference_channel
|
||||||
# Add Channel transformation to Channel
|
# Add Channel transformation to Channel
|
||||||
reference_peaks = situ_img.get_channel_peaks(reference_channel)
|
reference_peaks = situ_img.get_channel_peaks(reference_channel)
|
||||||
|
|||||||
@@ -1,14 +1,17 @@
|
|||||||
import abc
|
import abc
|
||||||
|
from situr.transformation.channel_transformation import ChannelTransform
|
||||||
|
from situr.transformation.round_transformation import RoundTransform
|
||||||
import open3d as o3
|
import open3d as o3
|
||||||
from probreg import filterreg
|
from probreg import filterreg
|
||||||
|
import numpy as np
|
||||||
|
|
||||||
from situr.image import extend_dim
|
from situr.image import extend_dim
|
||||||
|
from situr.transformation import Transform
|
||||||
|
|
||||||
class RegistrationFunction:
|
class RegistrationFunction:
|
||||||
__metaclass__ = abc.ABCMeta
|
__metaclass__ = abc.ABCMeta
|
||||||
|
|
||||||
def __init__(self, transormation_type):
|
def __init__(self, transormation_type: Transform):
|
||||||
self.transormation_type = transormation_type
|
self.transormation_type = transormation_type
|
||||||
|
|
||||||
@abc.abstractmethod
|
@abc.abstractmethod
|
||||||
@@ -17,7 +20,7 @@ class RegistrationFunction:
|
|||||||
|
|
||||||
|
|
||||||
class FilterregRegistrationFunction(RegistrationFunction):
|
class FilterregRegistrationFunction(RegistrationFunction):
|
||||||
def do_registration(self, data_peaks, reference_peaks):
|
def do_registration(self, data_peaks: np.ndarray, reference_peaks: np.ndarray) -> Transform:
|
||||||
source = o3.geometry.PointCloud()
|
source = o3.geometry.PointCloud()
|
||||||
source.points = o3.utility.Vector3dVector(extend_dim(data_peaks))
|
source.points = o3.utility.Vector3dVector(extend_dim(data_peaks))
|
||||||
target = o3.geometry.PointCloud()
|
target = o3.geometry.PointCloud()
|
||||||
@@ -30,5 +33,5 @@ class FilterregRegistrationFunction(RegistrationFunction):
|
|||||||
|
|
||||||
|
|
||||||
class Registration:
|
class Registration:
|
||||||
def __init__(self, registration_function):
|
def __init__(self, registration_function: RegistrationFunction):
|
||||||
self.registration_function = registration_function
|
self.registration_function = registration_function
|
||||||
|
|||||||
@@ -1,12 +1,13 @@
|
|||||||
from situr.registration import Registration, FilterregRegistrationFunction
|
from situr.registration import Registration, RegistrationFunction, FilterregRegistrationFunction
|
||||||
from situr.transformation import ScaleRotateTranslateRoundTransform
|
from situr.transformation import RoundTransform, ScaleRotateTranslateRoundTransform
|
||||||
|
from situr.image import Tile
|
||||||
|
|
||||||
|
|
||||||
class RoundRegistration(Registration):
|
class RoundRegistration(Registration):
|
||||||
def __init__(self, registration_function=FilterregRegistrationFunction(ScaleRotateTranslateRoundTransform)):
|
def __init__(self, registration_function: RegistrationFunction[RoundTransform] = FilterregRegistrationFunction(ScaleRotateTranslateRoundTransform)):
|
||||||
super().__init__(registration_function)
|
super().__init__(registration_function)
|
||||||
|
|
||||||
def do_round_registration(self, situ_tile, reference_round=0, reference_channel=0):
|
def do_round_registration(self, situ_tile: Tile, reference_round: int = 0, reference_channel: int = 0):
|
||||||
"""This method generates a round registration transformation for a tile and saves it in the tile.
|
"""This method generates a round registration transformation for a tile and saves it in the tile.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
|
|||||||
@@ -1,2 +1,3 @@
|
|||||||
from .channel_transformation import ChannelTransform, IdentityChannelTransform, ScaleRotateTranslateChannelTransform
|
from .channel_transformation import ChannelTransform, IdentityChannelTransform, ScaleRotateTranslateChannelTransform
|
||||||
from .round_transformation import RoundTransform, IdentityRoundTransform, ScaleRotateTranslateRoundTransform
|
from .round_transformation import RoundTransform, IdentityRoundTransform, ScaleRotateTranslateRoundTransform
|
||||||
|
from .transformation import Transform
|
||||||
|
|||||||
@@ -2,8 +2,10 @@ import abc
|
|||||||
import numpy as np
|
import numpy as np
|
||||||
import scipy
|
import scipy
|
||||||
|
|
||||||
|
from situr.transformation import Transform
|
||||||
|
|
||||||
class ChannelTransform:
|
|
||||||
|
class ChannelTransform(Transform):
|
||||||
__metaclass__ = abc.ABCMeta
|
__metaclass__ = abc.ABCMeta
|
||||||
|
|
||||||
@abc.abstractmethod
|
@abc.abstractmethod
|
||||||
|
|||||||
@@ -2,9 +2,10 @@ import abc
|
|||||||
import scipy
|
import scipy
|
||||||
import numpy as np
|
import numpy as np
|
||||||
from situr.image import situ_image
|
from situr.image import situ_image
|
||||||
|
from situr.transformation import Transform
|
||||||
|
|
||||||
|
|
||||||
class RoundTransform:
|
class RoundTransform(Transform):
|
||||||
__metaclass__ = abc.ABCMeta
|
__metaclass__ = abc.ABCMeta
|
||||||
|
|
||||||
@abc.abstractmethod
|
@abc.abstractmethod
|
||||||
|
|||||||
2
situr/transformation/transformation.py
Normal file
2
situr/transformation/transformation.py
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
class Transform:
|
||||||
|
pass
|
||||||
Reference in New Issue
Block a user