aquaduct.geom.master module

part2type_dict = {0: 9, 1: 8, 2: 9}

Part number to GenericPathTypeCodes dictionary.

parts = (0, 1, 2)

Parts enumerate.

class CTypeSpathsCollectionWorker(spaths=None, ctype=None, bias_long=5, smooth=None, lock=None)[source]

Bases: object

Worker class for averaging spaths in points of master path.

coords_types_prob_widths(sp_slices_)[source]

Calculates average coordinates, type and width in given chunk.

Parameter sp_slices_ is tuple of length equal to number of spaths. It contains slices for all spaths respectively. With these slices spaths are cut and only resulting chunks are used for calculations.

Therefore, this method average spaths in one point of master math. This point is defined by slices submitted as sp_lices_ parameter.

Algorithm of averaging (within current chunks of spaths):

  1. Coordinates for all spaths are collected.

  2. Lengths of all spaths are collected (from cached variables) and kept as lists of lengths equal to chunks’ sizes.

    Note

    Lengths of collected lengths of spaths are of the same size as coordinates

  3. New coordinates are calculated as weighted average of collected coordintates with numpy.average(). As weights collected lengths are used.

    Note

    Function numpy.average() is called with flatten coordinates and lengths.

  4. Width of average path is calculated as mean value of flatten coordinates mutual distances.

  5. Type of average paths is calculated as probability (frequency) of scope_name.

Parameters

sp_slices (tuple) – Slices that cut chunks from all paths.

Return type

3 element tuple

Returns

coordinates, type (frequency), and width of averaged spaths in current point

class CTypeSpathsCollection(spaths=None, ctype=None, bias_long=5, pbar=None, threads=1)[source]

Bases: object

Object for grouping separate paths that belong to the same CType. Method get_master_path() allows for calculation of average path.

parts = (0, 1, 2)

Enumeration of spath parts.

beat()[source]

Touch progress bar, if any.

update()[source]

Update progres bar by one, if any.

lens()[source]

Returns total lengths of all paths.

If ctype in #:# and not 0 and not None then take length of object part only.

Returns

Total (or object part) lengths of all paths.

Return type

numpy.ndarray

lens_norm()[source]

Returns normalized lengths calculated by lens().

Applied normalization is twofold:

  1. All lengths are divided by maximal length, and

  2. All lengths are subjected to pow() function with p = bias_long.

Returns

Normalized total (or object part) lengths of all paths.

Return type

numpy.ndarray

lens_real()[source]

Returns real lengths of all paths.

Returns

Sizes of all paths.

Return type

list

full_size()[source]

Returns desired size of master path.

Returns

Size of master path.

Return type

int

static simple_types_distribution(types)[source]

Calculates normalized sizes of incoming, object, and outgoing parts of spath using generic types.

It is assumed that spath has object part.

Parameters

types (list) – List of generic types.

Return type

3 element list

Returns

Normalized sizes of incomin, object, and outgoing parts.

types_distribution()[source]
Return type

numpy.matrix

Returns

median values of simple_types_distribution() for all spaths.

types_prob_to_types(types_prob)[source]

Changes types probabilities as returned by CTypeSpathsCollectionWorker.coords_types_prob_widths() to types.

Parameters

types_prob (list) – List of types probabilities.

Return type

list

Returns

List of GenericPathTypeCodes.

get_master_path(smooth=None, resid=0, 0)[source]

Averages spaths into one master path.

This is done in steps:

  1. Master path is an average of bunch of spaths. Its length is determined by full_size() method.

  2. All spaths are then divided in to chunks according to xzip_xzip() function with N set to lenght of master path. This results in list of length equal to the length of master path. Elements of this lists are slice objects that can be used to slice spaths in appropriate chunks.

  3. Next, for each element of this list CTypeSpathsCollectionWorker.coords_types_prob_widths() method is called. Types probabilities are changed to types wiht types_prob_to_types().

  4. Finally, all data are used to create appropriate MasterPath. If this fails None is returned.

Parameters
  • smooth (Smooth) – Smoothing method.

  • resid (int) – Residue ID of master path.

Return type

MasterPath

Returns

Average path as MasterPath object or None if creation of master path failed.