PhasedMatrix#

class pybrops.core.mat.PhasedMatrix.PhasedMatrix[source]#

Bases: MutableMatrix

An abstract class for phased matrix wrapper objects.

A phased matrix is defined as a matrix with a third dimension. This interface mostly pertains to phased genotype matrices.

The purpose of this abstract class is to provide base functionality for:
  1. Matrix phase manipulation routines.

Methods

adjoin

Add additional elements to the end of the Matrix along an axis.

adjoin_phase

Add additional elements to the end of the PhasedMatrix along the phase axis.

append

Append values to the Matrix.

append_phase

Append values to the Matrix along the phase axis.

concat

Concatenate matrices together along an axis.

concat_phase

Concatenate list of Matrix together along the phase axis.

copy

Make a shallow copy of the Matrix.

deepcopy

Make a deep copy of the Matrix.

delete

Delete sub-arrays along an axis.

delete_phase

Delete sub-arrays along the phase axis.

from_hdf5

Read an object from an HDF5 file.

incorp

Incorporate values along the given axis before the given indices.

incorp_phase

Incorporate values along the phase axis before the given indices.

insert

Insert values along the given axis before the given indices.

insert_phase

Insert values along the phase axis before the given indices.

remove

Remove sub-arrays along an axis.

remove_phase

Remove sub-arrays along the phase axis.

select

Select certain values from the matrix.

select_phase

Select certain values from the Matrix along the phase axis.

to_hdf5

Write an object to an HDF5 file.

Attributes

mat

Pointer to raw matrix object.

mat_ndim

Number of dimensions of the raw matrix.

mat_shape

Shape of the raw matrix.

nphase

Number of chromosome phases represented by the matrix.

phase_axis

Axis along which phases are stored.

abstract __add__(value)#

Elementwise add matrices

Parameters:

value (object) – Object which to add.

Returns:

out – An object resulting from the addition.

Return type:

object

abstract __mul__(value)#

Elementwise multiply matrices

Parameters:

value (object) – Object which to multiply.

Returns:

out – An object resulting from the multiplication.

Return type:

object

abstract adjoin(values, axis, **kwargs)#

Add additional elements to the end of the Matrix along an axis.

Parameters:
  • values (Matrix or numpy.ndarray) – Values are appended to append to the Matrix.

  • axis (int) – The axis along which values are adjoined.

  • kwargs (dict) – Additional keyword arguments.

Returns:

out – A copy of mat with values appended to axis. Note that adjoin does not occur in-place: a new Matrix is allocated and filled.

Return type:

Matrix

abstract adjoin_phase(values, **kwargs)[source]#

Add additional elements to the end of the PhasedMatrix along the phase axis.

Parameters:
  • values (Matrix, numpy.ndarray) – Values are appended to adjoin to the Matrix.

  • kwargs (dict) – Additional keyword arguments.

Returns:

out – A copy of mat with values appended to axis. Note that adjoin does not occur in-place: a new PhasedMatrix is allocated and filled.

Return type:

PhasedMatrix

abstract append(values, axis, **kwargs)#

Append values to the Matrix.

Parameters:
  • values (Matrix, numpy.ndarray) – Values are appended to append to the matrix.

  • axis (int) – The axis along which values are appended.

  • kwargs (dict) – Additional keyword arguments.

Return type:

None

abstract append_phase(values, **kwargs)[source]#

Append values to the Matrix along the phase axis.

Parameters:
  • values (Matrix, numpy.ndarray) – Values are appended to append to the matrix.

  • kwargs (dict) – Additional keyword arguments.

Return type:

None

abstract classmethod concat(mats, axis, **kwargs)#

Concatenate matrices together along an axis.

Parameters:
  • mats (Sequence of Matrix) – List of Matrix to concatenate. The matrices must have the same shape, except in the dimension corresponding to axis.

  • axis (int) – The axis along which the arrays will be joined.

  • kwargs (dict) – Additional keyword arguments

Returns:

out – The concatenated matrix. Note that concat does not occur in-place: a new Matrix is allocated and filled.

Return type:

Matrix

abstract classmethod concat_phase(mats, **kwargs)[source]#

Concatenate list of Matrix together along the phase axis.

Parameters:
  • mats (Sequence of Matrix) – List of PhasedMatrix to concatenate. The matrices must have the same shape, except in the dimension corresponding to axis.

  • kwargs (dict) – Additional keyword arguments

Returns:

out – The concatenated PhasedMatrix. Note that concat does not occur in-place: a new PhasedMatrix is allocated and filled.

Return type:

PhasedMatrix

abstract copy()#

Make a shallow copy of the Matrix.

Returns:

out – A shallow copy of the original Matrix.

Return type:

Matrix

abstract deepcopy(memo)#

Make a deep copy of the Matrix.

Parameters:

memo (dict) – Dictionary of memo metadata.

Returns:

out – A deep copy of the original Matrix.

Return type:

Matrix

abstract delete(obj, axis, **kwargs)#

Delete sub-arrays along an axis.

Parameters:
  • obj (int, slice, or Sequence of ints) – Indicate indices of sub-arrays to remove along the specified axis.

  • axis (int) – The axis along which to delete the subarray defined by obj.

  • kwargs (dict) – Additional keyword arguments.

Returns:

out – A Matrix with deleted elements. Note that concat does not occur in-place: a new Matrix is allocated and filled.

Return type:

Matrix

abstract delete_phase(obj, **kwargs)[source]#

Delete sub-arrays along the phase axis.

Parameters:
  • obj (int, slice, or Sequence of ints) – Indicate indices of sub-arrays to remove along the specified axis.

  • kwargs (dict) – Additional keyword arguments.

Returns:

out – A PhasedMatrix with deleted elements. Note that concat does not occur in-place: a new PhasedMatrix is allocated and filled.

Return type:

PhasedMatrix

abstract classmethod from_hdf5(filename, groupname)#

Read an object from an HDF5 file.

Parameters:
  • filename (str, Path, h5py.File) – If str, an HDF5 file name from which to read. If Path, an HDF5 file name from which to read. If h5py.File, an opened HDF5 file from which to read.

  • groupname (str, None) – If str, an HDF5 group name under which object data is stored. If None, object is read from base HDF5 group.

Returns:

out – An object read from an HDF5 file.

Return type:

HDF5InputOutput

abstract incorp(obj, values, axis, **kwargs)#

Incorporate values along the given axis before the given indices.

Parameters:
  • obj (int, slice, or Sequence of ints) – Object that defines the index or indices before which values is incorporated.

  • values (numpy.ndarray) – Values to incorporate into the matrix.

  • axis (int) – The axis along which values are incorporated.

  • kwargs (dict) – Additional keyword arguments.

Return type:

None

abstract incorp_phase(obj, values, **kwargs)[source]#

Incorporate values along the phase axis before the given indices.

Parameters:
  • obj (int, slice, or Sequence of ints) – Object that defines the index or indices before which values is incorporated.

  • values (Matrix, numpy.ndarray) – Values to incorporate into the matrix.

  • kwargs (dict) – Additional keyword arguments.

Return type:

None

abstract insert(obj, values, axis, **kwargs)#

Insert values along the given axis before the given indices.

Parameters:
  • obj (int, slice, or Sequence of ints) – Object that defines the index or indices before which values is inserted.

  • values (ArrayLike) – Values to insert into the matrix.

  • axis (int) – The axis along which values are inserted.

  • kwargs (dict) – Additional keyword arguments.

Returns:

out – A Matrix with values inserted. Note that insert does not occur in-place: a new Matrix is allocated and filled.

Return type:

Matrix

abstract insert_phase(obj, values, **kwargs)[source]#

Insert values along the phase axis before the given indices.

Parameters:
  • obj (int, slice, or Sequence of ints) – Object that defines the index or indices before which values is inserted.

  • values (Matrix, numpy.ndarray) – Values to insert into the matrix.

  • kwargs (dict) – Additional keyword arguments.

Returns:

out – A PhasedMatrix with values inserted. Note that insert does not occur in-place: a new PhasedMatrix is allocated and filled.

Return type:

PhasedMatrix

abstract property mat: object#

Pointer to raw matrix object.

abstract property mat_ndim: int#

Number of dimensions of the raw matrix.

abstract property mat_shape: tuple#

Shape of the raw matrix.

abstract property nphase: int#

Number of chromosome phases represented by the matrix.

abstract property phase_axis: int#

Axis along which phases are stored.

abstract remove(obj, axis, **kwargs)#

Remove sub-arrays along an axis.

Parameters:
  • obj (int, slice, or Sequence of ints) – Indicate indices of sub-arrays to remove along the specified axis.

  • axis (int) – The axis along which to remove the subarray defined by obj.

  • kwargs (dict) – Additional keyword arguments.

Return type:

None

abstract remove_phase(obj, **kwargs)[source]#

Remove sub-arrays along the phase axis.

Parameters:
  • obj (int, slice, or Sequence of ints) – Indicate indices of sub-arrays to remove along the specified axis.

  • kwargs (dict) – Additional keyword arguments.

Return type:

None

abstract select(indices, axis, **kwargs)#

Select certain values from the matrix.

Parameters:
  • indices (ArrayLike (Nj, ...)) – The indices of the values to select.

  • axis (int) – The axis along which values are selected.

  • kwargs (dict) – Additional keyword arguments.

Returns:

out – The output matrix with values selected. Note that select does not occur in-place: a new Matrix is allocated and filled.

Return type:

Matrix

abstract select_phase(indices, **kwargs)[source]#

Select certain values from the Matrix along the phase axis.

Parameters:
  • indices (ArrayLike (Nj, ...)) – The indices of the values to select.

  • kwargs (dict) – Additional keyword arguments.

Returns:

out – The output PhasedMatrix with values selected. Note that select does not occur in-place: a new PhasedMatrix is allocated and filled.

Return type:

PhasedMatrix

abstract to_hdf5(filename, groupname, overwrite)#

Write an object to an HDF5 file.

Parameters:
  • filename (str, Path, h5py.File) – If str, an HDF5 file name to which to write. If Path, an HDF5 file path to which to write. If h5py.File, an opened HDF5 file to which to write.

  • groupname (str, None) – If str, an HDF5 group name under which object data is stored. If None, object is written to the base HDF5 group.

  • overwrite (bool) – Whether to overwrite values in an HDF5 file if a field already exists.

Return type:

None