def getLSQ6Module(inputFiles,
                  targetPipeFH,
                  options,  # TODO could narrow this to only queue_type
                  lsq6Directory           = None,
                  initialTransform        = None,
                  initModel               = None,
                  lsq6Protocol            = None,
                  largeRotationParameters = None,
                  largeRotationRange      = None,
                  largeRotationInterval   = None):
    lsq6module = None
    if(initialTransform == None):
        initialTransform = "lsq6_large_rotations"
    
    """
        Option 1) run a simple lsq6: the input files are assumed to be in the
        same space and roughly in the same orientation.
    """
    if(initialTransform == "lsq6_simple"):
        lsq6module =  LSQ6HierarchicalMinctracc(inputFiles,
                                                targetPipeFH,
                                                options,
                                                initial_model     = initModel,
                                                lsq6OutputDir     = lsq6Directory,
                                                initial_transform = "identity",
                                                lsq6_protocol     = lsq6Protocol)
    """
        Option 2) run an lsq6 registration where the centre of the input files
        is estimated.  Orientation is assumed to be similar, space is not.
    """
    if(initialTransform == "lsq6_centre_estimation"):
        lsq6module =  LSQ6HierarchicalMinctracc(inputFiles,
                                                targetPipeFH,
                                                options,
                                                initial_model     = initModel,
                                                lsq6OutputDir     = lsq6Directory,
                                                initial_transform = "estimate",
                                                lsq6_protocol     = lsq6Protocol)
    """
        Option 3) run a brute force rotational minctracc.  Input files can be
        in any random orientation and space.
    """
    if(initialTransform == "lsq6_large_rotations"):
        lsq6module = LSQ6RotationalMinctracc(inputFiles,
                                             targetPipeFH,
                                             options,
                                             initial_model = initModel,
                                             lsq6OutputDir = lsq6Directory,
                                             large_rotation_parameters = largeRotationParameters,
                                             large_rotation_range      = largeRotationRange,
                                             large_rotation_interval   = largeRotationInterval)
    return lsq6module
This function serves as a switch that will return the appropriate lsq6 module depending
dataset/ETHPy150Open Mouse-Imaging-Centre/pydpiper/atoms_and_modules/LSQ6.py/getLSQ6Module