MatrixProviderLinked

class glotaran.optimization.matrix_provider.MatrixProviderLinked(group: DatasetGroup, data_provider: DataProviderLinked)[source]

Bases: MatrixProvider

A class to provide matrix calculations for optimization of linked dataset groups.

Initialize a matrix provider for a linked dataset group.

Parameters:

Attributes Summary

aligned_full_clp_labels

Get the aligned full clp labels.

group

Get the dataset group.

number_of_clps

Return number of conditionally linear parameters.

Methods Summary

align_full_clp_labels

Align the unreduced clp labels.

align_matrices

Align matrices.

apply_constraints

Apply constraints on a matrix.

apply_relations

Apply relations on a matrix.

calculate

Calculate the matrices for optimization.

calculate_aligned_matrices

Calculate the aligned matrices of the dataset group.

calculate_dataset_matrices

Calculate the matrices of the datasets in the dataset group.

calculate_dataset_matrix

Calculate the matrix for a dataset on an index on the global axis.

combine_megacomplex_matrices

Calculate the matrix for a dataset on an index on the global axis.

does_interval_item_apply

Check if an interval item applies on an index.

get_aligned_matrix_container

Get the aligned matrix container for an index on the aligned global axis.

get_matrix_container

Get the matrix container for a dataset on an index on the global axis.

get_result

Get the results of the matrix calculations.

reduce_matrix

Reduce a matrix.

Methods Documentation

align_full_clp_labels() dict[str, list[str]][source]

Align the unreduced clp labels.

Returns:

The aligned clp for every group.

Return type:

dict[str, list[str]]

static align_matrices(matrices: list[MatrixContainer], scales: list[float]) MatrixContainer[source]

Align matrices.

Parameters:
Returns:

The aligned matrix container.

Return type:

MatrixContainer

property aligned_full_clp_labels: list[list[str]]

Get the aligned full clp labels.

Returns:

The full aligned clp labels.

Return type:

list[list[str]]

apply_constraints(matrices: list[MatrixContainer], global_axis: ArrayLike) list[MatrixContainer]

Apply constraints on a matrix.

Parameters:
  • matrices (list[MatrixContainer],) – The matrices.

  • global_axis (ArrayLike) – The global axis.

Returns:

The resulting matrix container.

Return type:

MatrixContainer

apply_relations(matrices: list[MatrixContainer], global_axis: ArrayLike) list[MatrixContainer]

Apply relations on a matrix.

Parameters:
  • matrices (list[MatrixContainer],) – The matrices.

  • global_axis (ArrayLike) – The global axis.

Returns:

The resulting matrix container.

Return type:

MatrixContainer

calculate()[source]

Calculate the matrices for optimization.

calculate_aligned_matrices()[source]

Calculate the aligned matrices of the dataset group.

calculate_dataset_matrices()

Calculate the matrices of the datasets in the dataset group.

static calculate_dataset_matrix(dataset_model: DatasetModel, global_axis: ArrayLike, model_axis: ArrayLike, global_matrix: bool = False) MatrixContainer

Calculate the matrix for a dataset on an index on the global axis.

Parameters:
  • dataset_model (DatasetModel) – The dataset model.

  • global_axis (ArrayLike) – The global axis.

  • model_axis (ArrayLike) – The model axis.

  • global_matrix (bool) – Calculate the global megacomplexes if True.

Returns:

The resulting matrix container.

Return type:

MatrixContainer

static combine_megacomplex_matrices(matrix_left: ArrayLike, matrix_right: ArrayLike, clp_labels_left: list[str], clp_labels_right: list[str]) tuple[list[str], ArrayLike]

Calculate the matrix for a dataset on an index on the global axis.

Parameters:
  • matrix_left (ArrayLike) – The left matrix.

  • matrix_right (ArrayLike) – The right matrix.

  • clp_labels_left (list[str]) – The left clp labels.

  • clp_labels_right (list[str]) – The right clp labels.

Returns:

The combined clp labels and matrix.

Return type:

tuple[list[str], ArrayLike]

static does_interval_item_apply(prop: IntervalItem, index: int | None) bool

Check if an interval item applies on an index.

Parameters:
  • prop (IntervalItem) – The interval property.

  • index (int | None) – The index to check.

Returns:

Whether the property applies.

Return type:

bool

get_aligned_matrix_container(global_index: int) MatrixContainer[source]

Get the aligned matrix container for an index on the aligned global axis.

Parameters:

global_index (int) – The index on the global axis.

Returns:

The matrix container.

Return type:

MatrixContainer

get_matrix_container(dataset_label: str) MatrixContainer

Get the matrix container for a dataset on an index on the global axis.

Parameters:

dataset_label (str) – The label of the dataset.

Returns:

The matrix container.

Return type:

MatrixContainer

get_result() tuple[dict[str, DataArray], dict[str, DataArray]]

Get the results of the matrix calculations.

Returns:

  • tuple[dict[str, xr.DataArray], dict[str, xr.DataArray]] – A tuple of the matrices and global matrices.

  • .. # noqa (DAR202)

  • .. # noqa (DAR401)

property group: DatasetGroup

Get the dataset group.

Returns:

The dataset group.

Return type:

DatasetGroup

property number_of_clps: int

Return number of conditionally linear parameters.

Return type:

int

reduce_matrix(matrix: MatrixContainer, global_axis: ArrayLike) list[MatrixContainer]

Reduce a matrix.

Applies constraints and relations.

Parameters:
  • matrix (MatrixContainer) – The matrix.

  • global_axis (ArrayLike) – The global axis.

Returns:

The resulting matrix container.

Return type:

MatrixContainer