DensePhasedMatrix#

class pybrops.core.mat.DensePhasedMatrix.DensePhasedMatrix(mat, **kwargs)[source]#

Bases: DenseMutableMatrix, PhasedMatrix

A concrete class implementing dense phased matrices. A phased matrix is defined as a matrix with a third dimension.

Dense phased matrices utilize numpy.ndarray’s for data storage.

The purpose of this concrete class is to implement base functionality for:
  1. Dense matrix phase manipulation routines.

Constructor for the concrete class DensePhasedMatrix.

Parameters:
  • mat (numpy.ndarray) – Matrix used to construct the object.

  • kwargs (dict) – Additional keyword arguments.

Methods

adjoin

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

adjoin_phase

Adjoin values along the phase axis.

append

Append values to the matrix.

append_phase

Append values to the Matrix along the phase axis.

concat

Concatenate a sequence of Matrix together along an axis.

concat_phase

Concatenate list of Matrix together along the taxa 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 DenseMatrix from an HDF5 file.

incorp

Incorporate values along the given axis before the given indices.

incorp_phase

Incorporate values along the taxa 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 DensePhasedMatrix.

select_phase

Select certain values from the DensePhasedMatrix along the phase axis.

to_hdf5

Write GenotypeMatrix to an HDF5 file.

Attributes

mat

Pointer to raw numpy.ndarray object.

mat_ndim

Number of dimensions of the raw numpy.ndarray.

mat_shape

Shape of the raw numpy.ndarray.

nphase

Number of chromosome phases represented by the matrix.

phase_axis

Axis along which phases are stored.

__add__(value)#

Elementwise add matrices

Parameters:

value (object) – Object which to add.

Returns:

out – An object resulting from the addition.

Return type:

object

__mul__(value)#

Elementwise multiply matrices

Parameters:

value (object) – Object which to multiply.

Returns:

out – An object resulting from the multiplication.

Return type:

object

adjoin(values, axis=-1, **kwargs)[source]#

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

Parameters:
  • values (DensePhasedMatrix, 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 DensePhasedMatrix is allocated and filled.

Return type:

DensePhasedMatrix

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

Adjoin values along the phase axis.

Parameters:
  • values (Matrix or numpy.ndarray) – Values to adjoin along the phase axis.

  • kwargs (dict) – Additional keyword arguments.

Returns:

out – A copy of the DensePhasedMatrix with values adjoined along the phase axis. Note that adjoin does not occur in-place: a new DensePhasedMatrix is allocated and filled.

Return type:

DensePhasedMatrix

append(values, axis=-1, **kwargs)[source]#

Append values to the matrix.

Parameters:
  • values (DenseHaplotypeMatrix, numpy.ndarray) – Values are appended to append to the matrix. Must be of type int8. Must be of shape (m, n, p)

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

Return type:

None

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

classmethod concat(mats, axis=-1, **kwargs)[source]#

Concatenate a sequence of Matrix 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 DensePhasedMatrix. Note that concat does not occur in-place: a new DensePhasedMatrix is allocated and filled.

Return type:

DensePhasedMatrix

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

Concatenate list of Matrix together along the taxa 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.

  • 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

copy()#

Make a shallow copy of the Matrix.

Returns:

out – A shallow copy of the original DenseMatrix.

Return type:

DenseMatrix

deepcopy(memo=None)#

Make a deep copy of the Matrix.

Parameters:

memo (dict) – Dictionary of memo metadata.

Returns:

out – A deep copy of the original DenseMatrix.

Return type:

DenseMatrix

delete(obj, axis=-1, **kwargs)[source]#

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 DensePhasedMatrix with deleted elements. Note that concat does not occur in-place: a new DensePhasedMatrix is allocated and filled.

Return type:

DensePhasedMatrix

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 Matrix with deleted elements. Note that concat does not occur in-place: a new Matrix is allocated and filled.

Return type:

Matrix

classmethod from_hdf5(filename, groupname=None)#

Read DenseMatrix from an HDF5 file.

Parameters:
  • filename (str, Path, h5py.File) – If str or Path, an HDF5 file name from which to read. File is closed after reading. If h5py.File, an opened HDF5 file from which to read. File is not closed after reading.

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

Returns:

out – A dense matrix read from file.

Return type:

DenseMatrix

incorp(obj, values, axis=-1, **kwargs)[source]#

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 (array_like) – Values to incorporate into the matrix.

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

  • kwargs (dict) – Additional keyword arguments.

Return type:

None

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

Incorporate values along the taxa 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

insert(obj, values, axis=-1, **kwargs)[source]#

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 (Matrix, numpy.ndarray) – Values to insert into the matrix.

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

  • kwargs (dict) – Additional keyword arguments.

Returns:

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

Return type:

DensePhasedMatrix

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 DensePhasedMatrix with values inserted. Note that insert does not occur in-place: a new DensePhasedMatrix is allocated and filled.

Return type:

DensePhasedMatrix

property mat: ndarray#

Pointer to raw numpy.ndarray object.

property mat_ndim: int#

Number of dimensions of the raw numpy.ndarray.

property mat_shape: tuple#

Shape of the raw numpy.ndarray.

property nphase: int#

Number of chromosome phases represented by the matrix.

property phase_axis: int#

Axis along which phases are stored.

remove(obj, axis=-1, **kwargs)[source]#

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

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

select(indices, axis=-1, **kwargs)[source]#

Select certain values from the DensePhasedMatrix.

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 DensePhasedMatrix with values selected. Note that select does not occur in-place: a new DensePhasedMatrix is allocated and filled.

Return type:

DensePhasedMatrix

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

Select certain values from the DensePhasedMatrix along the phase axis.

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

  • kwargs (dict) – Additional keyword arguments.

Returns:

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

Return type:

DensePhasedMatrix

to_hdf5(filename, groupname=None, overwrite=True)#

Write GenotypeMatrix to an HDF5 file.

Parameters:
  • filename (str, Path, h5py.File) – If str, an HDF5 file name to which to write. File is closed after writing. If h5py.File, an opened HDF5 file to which to write. File is not closed after writing.

  • groupname (str, None) – If str, an HDF5 group name under which the DenseMatrix data is stored. If None, the DenseMatrix 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