Skip to content

Improve how ukat performs MDR on T1 data with a temporal slice spacing. #233

@alexdaniel654

Description

@alexdaniel654

For M2D data, mdreg can take a list of dictionaries so each slice can be fit to a different model. In our case, we would want different TI for each slice if tss != 0.

Something vaguely like

pixel_array, deform, _, _ = mdreg.fit(
                    self.pixel_array,
                    force_2d=True,
                    verbose=1,
                    fit_image = [{
                        'func': _t1_fit, 
                        'inversion_list': np.array(self.inversion_list) + self.tss * slice
                        'affine': self.affine,
                        'tss': self.tss,
                        'tss_axis': self.tss_axis,
                        'mask': self.mask,
                        'parameters': self.parameters,
                        'mag_corr': self.mag_corr,
                        # MOLLI-correction is not relevant for MDR
                        'molli': False,
                        'multithread': self.multithread,
                    } for slice in range(self.shape[-1])],
                    # All default settings but kept here as a template for if
                    # we decide to expose coreg options to ukat users in the
                    # future.
                    fit_coreg={
                        'package': 'elastix',
                        'parallel': False,  # elastix is not parallelizable
                    }
                )

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions