The following sections describe the different parameter types and internal AlliGator variables that can be passed.

AlliGator Python Plugins API v 1.1

AlliGator versions: 1.07-current

Parameter Types

The following input parameter types are supported:

Type

Example

Description

U8

1

unsigned byte

U16

1

unsigned short integer

U32

1

unsigned long integer

I8

-1

signed byte

I16

-1

signed short integer

I32

-1

signed long integer

float32

1.0

single-precision floating point number

float64

1.0

double-precision floating point number

string

a string

string

path

C:\Desktop\test.txt

file or folder path

boolean

True

boolean: True or False

AlliGator

Phasor Frequency

any exposed AlliGator parameter [*]

A list of exposed parameters with their default values can be found here.

Check the Parameter Names only checkbox in the Settings:Plugins panel to get a list of exposed internal AlliGator parameters without their current value.

AlliGator Python Plugin Data Types

The different data types are declared in the alligatorFLI_1_1.py script found in the Python Plugins folder, reproduced below:

########################################
# AlliGator Python Plugin Definitions  #
# Author: X. Michalet                  #
# Last modified: 2026-09-15            #
########################################
#                                      #
#     DO NOT MODIFY THIS FILE !!!      #
#                                      #
########################################

### AlliGator Python Plugin API Version = 1.1 ###

import collections
from collections import namedtuple

############################################################################
# Object Definitions, in order of increasing complexity and interdependence
############################################################################

############################################################################
# Location
############################################################################

location = namedtuple('location', 'X, Y')

############################################################################
# Plot
############################################################################

plot_plugin_data = namedtuple('plot_plugin_data',\
    'Plot_Name, X_Array, Y_Array')

# where 'X_Array' and 'Y_Array' are 1D lists of double-precision
# floating point numbers

empty_plot = plot_plugin_data(Plot_Name = '', X_Array = [], Y_Array = [])

############################################################################
# Graph: contains several plots (not necessarily all plots)
############################################################################

graph_plugin_data = namedtuple('graph_plugin_data',\
    'Graph_Name, Plots, Reference_Decay')

# where 'Plots' is a list of, and 'Reference_Decay' is a single,
# plot_plugin_data object

empty_graph = graph_plugin_data(
    Graph_Name = '',
    Plots = [],
    Reference_Decay = empty_plot)

############################################################################
# Image
############################################################################

image_plugin_data = namedtuple('image_plugin_data',\
    'Image_Name, Image')

# where 'Image' is a 2D list of single-precision floating point numbers

empty_image = image_plugin_data(Image_Name = '', Image = [])

############################################################################
# Parameter Map
############################################################################

parameter_map_plugin_data = namedtuple('parameter_map_plugin_data',\
    'Parameter_Names, Parameter_Flattened_Map, Locations,\
    IRF_X,IRF_Y_Flattened_List,X_Resolution, Y_Resolution')

# where 'Parameter_Names' is a list of provided parameters,
# 'Parameter_Flattened_Map' is a list of parameter lists, one parameter list
# per valid location
# 'Locations' is a list of namedtuple, coordinates of the fitted decays
# 'IRF_X' is the common time axis of all IRFs
# 'IRF_Y_Flattened_List' is a list of IRF Intensities at the different
# locations
# Note that in principle, the number of locations can be different from the
# number of parameter lists

empty_parameter_map = parameter_map_plugin_data(
    Parameter_Names = [],
    Parameter_Flattened_Map = [],
    Locations = [],
    IRF_X = [],
    IRF_Y_Flattened_List = [],
    X_Resolution = 0,
    Y_Resolution = 0)

############################################################################
# FLI Dataset
############################################################################

fli_dataset_plugin_data = namedtuple('fli_dataset_plugin_data',\
    'FLI_Dataset_Name, Gate_Duration, Gate_Separation, Gate_Number,\
    X_Size, Y_Size, Image_Data_List, Mask_Image, Sum_Image, Max_Image,\
    Min_Image')

empty_fli_dataset = fli_dataset_plugin_data(
    FLI_Dataset_Name = '',      # string
    Gate_Duration = 0,          # DBL
    Gate_Separation = 0,        # DBL
    Gate_Number = 0,            # I32
    X_Size = 0,                 # I32
    Y_Size = 0,                 # I32
    Image_Data_List = [],       # list of SGL 2D arrays
    Mask_Image = [],            # U16 2D array
    Sum_Image = [],             # SGL 2D array
    Max_Image = [],             # SGL 2D array
    Min_Image = [])             # SGL 2D array

############################################################################
# Python Plugin Data
############################################################################

plugin_data = namedtuple('plugin_data',\
    'Image_Plugin_Data, Graph_Plugin_Data, Parameter_Map_Plugin_Data,\
    FLI_Dataset_Plugin_Data')

# where the different objects are:
# Image_Plugin_Data: of type image_plugin_data
# Graph_Plugin_Data: of type graph_plugin_data
# Parameter_Map_Plugin_Data: of type parameter_map_plugin_data
# FLI_Dataset_Plugin_Data: of type fli_dataset_plugin_data

empty_plugin_data = plugin_data(
    Image_Plugin_Data = empty_image,
    Graph_Plugin_Data = empty_graph,
    Parameter_Map_Plugin_Data = empty_parameter_map,
    FLI_Dataset_Plugin_Data = empty_fli_dataset)

AlliGator Python Plugins API v 1

AlliGator versions: 0.63-current

Parameter Types

The following input parameter types are supported:

Type

Example

Description

U8

1

unsigned byte

U16

1

unsigned short integer

U32

1

unsigned long integer

I8

-1

signed byte

I16

-1

signed short integer

I32

-1

signed long integer

float32

1.0

single-precision floating point number

float64

1.0

double-precision floating point number

string

a string

string

path

C:\Desktop\test.txt

file or folder path

boolean

True

boolean: True or False

AlliGator

Phasor Frequency

any exposed AlliGator parameter [†]

A list of exposed parameters with their default values can be found here.

Check the Parameter Names only checkbox in the Settings:Plugins panel to get a list of exposed internal AlliGator parameters without their current value.

AlliGator Python Plugin Data Types

The different data types are declared in the alligator.py script found in the Python Plugins folder, reproduced below:

# AlliGator Python Plugin Definitions
# Author: X. Michalet
# Last modified: 2026-02-18

### AlliGator Python Plugin API Version = 1 ###

# makes sure the path to AlliGator Plugins is known to Python

import os
import sys

def define_plugin_path():

    if not (os.getenv('LOCALAPPDATA')+'/AlliGator/Python Plugins' in os.environ):
        sys.path.append(os.getenv('LOCALAPPDATA')+'/AlliGator/Python Plugins')

    return()


import collections
from collections import namedtuple

graph_plugin_data = namedtuple('graph_plugin_data',\
    'Graph_Name, Plots, Reference_Decay')

# where 'Plots' is a list of, and 'Reference_Decay' is a, plot_plugin_data:

plot_plugin_data = namedtuple('plot_plugin_data',\
    'Plot_Name, X_Array, Y_Array')

# where 'X_Array' and 'Y_Array' are 1D lists of double-precision
# floating point numbers

empty_plot = plot_plugin_data(Plot_Name = '', X_Array = [], Y_Array = [])

fli_dataset_plugin_data = namedtuple('fli_dataset_plugin_data',\
    'FLI_Dataset_Name, Gate_Duration, \
    Gate_Separation, Gate_Number, X_Size, Y_Size, Image_Data_List,\
    Reference_Decay, Mask_Image, Parameter_Map')

# where 'Image_Data_List' is a list of image_plugin_data:

image_plugin_data = namedtuple('image_plugin_data',\
    'Image_Name, Image')

# where 'Image' is a 2D list of single-precision floating point numbers

# and 'Parameter_Map' is a named tuple:

parameter_map_plugin_data = namedtuple('parameter_map_plugin_data',\
    'Parameter_Names, Parameter_Flattened_Map, Locations,\
    IRF_X,IRF_Y_Flattened_List')

# where 'Parameter_Names' is a list of provided parameters,
# 'Parameter_Flattened_Map' is a list of parameter lists, one parameter list
# per valid location
# 'Locations' is a list of namedtuple, coordinatess of the fitted decays
# 'IRF_X' is the common time axis of al IRFs
# 'IRF_Y_Flattened_List' is a list of IRF Intensities at the different locations
# Note that in principle, the number of locations can be different from the
# number of parameter lists

empty_map = parameter_map_plugin_data(
    Parameter_Names = [],
    Parameter_Flattened_Map = [],
    Locations = [],
    IRF_X = [],
    IRF_Y_Flattened_List = [])

location = namedtuple('location', 'X, Y')