# SpindleAssembly package

This module contains functions that import and connect standard spindle parts into a structural assembly of the whole spindle.

## Submodules

## SpindleAssembly.AddComponents module

`SpindleAssembly.AddComponents.``add_centrosome`(position, **kwargs)

  Generate and add centrosome

  Parameters: | position – ‘right’ or ‘left’ -> positioning of centrosome in the spindle kwargs – object
  Returns: | Null

`SpindleAssembly.AddComponents.``add_connectors`(pos1, pos2, MTname1, MTname2, z, **kwargs)

  Generate and add connectors to couple ipMT pair

  Parameters: | pos1 – (x, y, z) of the 1-st ipMT of the pair to be connected pos2 – (x, y, z) of the 2-nd ipMT of the pair to be connected z – numpy array of connector positions along z coordinate kwargs – dictionary -> keyword arguments
  Returns: | list -> list of connector names, float -> angle of connector orientation

`SpindleAssembly.AddComponents.``add_microtubule`(l, type, i, **kwargs)

  Generate and add microtubules to the assembly

  Parameters: | l – length of the microtubule type – ‘ipMT’ or ‘aMT’ -> Either interpolar or astral microtubule i – number of MT kwargs – object
  Returns: | p -> microtubule part, MTname -> (string) name of the MT

`SpindleAssembly.AddComponents.``create_MT_instance`(type, i, **kwargs)

  create abaqus instance that contain a single microtubule

  Parameters: | type – ‘ipMT’ or ‘aMT’ -> interpolar or astral microtubule i – number of microtubule kwargs – object
  Returns: | l -> (float) length of MT, p -> (object) MT part, MTname -> (string) name of MT

`SpindleAssembly.AddComponents.``generate_MT_length`(type, **kwargs)

  calculate length of an MT based on its type

  Parameters: | type – ‘ipMT’ or ‘aMT’ -> interpolar or astral microtubules kwargs – object
  Returns: | l -> (float) length of the MT

`SpindleAssembly.AddComponents.``return_assembly`(**kwargs)

  Return the current assembly

  Parameters: | kwargs – object
  Returns: | a -> (object) current assembly

## SpindleAssembly.PositionComponents module

`SpindleAssembly.PositionComponents.``assign_aMT`(type, **kwargs)

  Add and position astral microtubules

  Parameters: | type – ‘right’ or ‘left’ -> specify the pole that aMTs should be attached to kwargs – object
  Returns: | aMTnames -> (list) list of aMT names positions -> (list of tuples) global coordinates of starting end of each aMT

`SpindleAssembly.PositionComponents.``assign_ipMTs_left`(pos, i, **kwargs)

  Position interpolar microtubules to start from the left centrosome

  Parameters: | pos – (x, y) -> coordinates of MT i – number of MT kwargs – object
  Returns: | MTname -> (string) name of ipMT, zBeginPos -> (float) z coordinate of the starting end of ipMT in global coordinates zEndPos -> (float) z coordinate of the growing end of ipMT in global coordinates l -> (float) length of ipMT

`SpindleAssembly.PositionComponents.``assign_ipMTs_right`(pos, i, **kwargs)

  Position interpolar microtubules to start from the right centrosome

  Parameters: | pos – (x, y) -> coordinates of MT i – number of MT kwargs – object
  Returns: | MTname -> (string) name of ipMT, zBeginPos -> (float) z coordinate of the starting end of ipMT in global coordinates zEndPos -> (float) z coordinate of the growing end of ipMT in global coordinates l -> (float) length of ipMT

`SpindleAssembly.PositionComponents.``generate_aMT_position`(type, **kwargs)

  Calculate the position of astral microtubules within the spindle

  Parameters: | type – ‘right’, ‘left’ -> either left or right centrosome bound aMTs specified kwargs – object
  Returns: | pos -> (x, y, z) global coordinates of the starting end of aMT theta -> orientation angle 1 in spherical coordinates phi -> orientation angle 2 in spherical coordinates

`SpindleAssembly.PositionComponents.``position_aMT`(a, MTname, type, **kwargs)

  Position astral microtubule within the spindle

  Parameters: | a – current assembly MTname – name of aMT type – ‘left’ or ‘right’ -> specifies to which pole the aMT is attached kwargs – object
  Returns: | pos -> (x, y, z) global cartesian coordinates of the starting end of aMT

## SpindleAssembly.PositionConnectors module

`SpindleAssembly.PositionConnectors.``attach_connectors`(data, **kwargs)

  Create attachment wire between two vertexes and define the properties of connection

  Parameters: | data – list containing all ipMTs and connectors of the model kwargs – dictionary -> keyword arguments
  Returns: | Null

`SpindleAssembly.PositionConnectors.``generate_connector_positions`(pos1, pos2, MTtype, **kwargs)

  Generate random points along the connection region of two ipMTs

  Parameters: | pos1 – (x, y, zBeginPos, zEndPos, l) -> coordinates of the free end of first ipMT pos2 – (x, y, zBeginPos, zEndPos, l) -> coordinates of the free end of the second ipMT MTtype – ‘parallel’ or ‘antiparallel’ -> defines if the MT pair is parallel or antiparallel kwargs – dictionary -> keyword arguments
  Returns: | numpy array of connector positions along z coordinate

`SpindleAssembly.PositionConnectors.``generate_partition_points`(z, MTname, **kwargs)

  Partition individual ipMT with points corresponding to connector positions

  Parameters: | z – numpy array of connector positions along z coordinate MTname – name of the ipMT to be partitioned kwargs – dictionary -> keyword arguments
  Returns: | list -> partition names

`SpindleAssembly.PositionConnectors.``pick_vertices`(mtname, data, **kwargs)

  Pick the connecting ends of all connectors associated with the current ipMT

  Parameters: | mtname – string name of the ipMT data – list containing all ipMTs and connectors of the model kwargs – dictionary -> keyword arguments
  Returns: | list -> connecting vertices that belong to connectors associated with the current ipMT

`SpindleAssembly.PositionConnectors.``position_connectors`(pos1, pos2, z, connectornames, alpha, **kwargs)

  Position connectors on the associated ipMT by z coordinate

  Parameters: | pos1 – (x, y, zBeginPos, zEndPos, l) -> coordinates of the first mt of the pair pos2 – (x, y, zBeginPos, zEndPos, l) -> coordinates of the second mt of the pair z – list connector positions connectornames – list connector names alpha – float orientation of connectors kwargs – dictionary -> keyword arguments
  Returns: | global coordinates of connectors between a pair of ipMTs

## SpindleAssembly.PositionIpMTs module

`SpindleAssembly.PositionIpMTs.``add_fifth_ipMT`(pos4, alpha4, i, **kwargs)

  Add and position the fifth ipMT within the spindle

  Parameters: | pos4 (tuple) – (x, y) position of the previously added ipMT alpha4 (float) – Angle of the previously added ipMT i (int) – Sequential number of ipMT kwargs (dict) – model parameters
  Returns: | MTname, pos, alpha, kwargs
  Return type: | str, tuple, float, dict

`SpindleAssembly.PositionIpMTs.``add_first_ipMT`(i, **kwargs)

  Add and position the first ipMT within the spindle

  Parameters: | i (int) – Sequential number of ipMT kwargs (dict) – model parameters
  Returns: | MTname, pos, alpha, kwargs
  Return type: | str, tuple, float, dict

`SpindleAssembly.PositionIpMTs.``add_fourth_ipMT`(pos3, alpha2, alpha3, i, **kwargs)

  Add and position the fourth ipMT within the spindle

  Parameters: | pos3 (tuple) – (x, y) position of the previously added ipMT alpha2 (float) – Angle of ipMT 2 alpha3 (float) – Angle of ipMT 3 i (int) – Sequential number of ipMT kwargs (dict) – model parameters
  Returns: | MTname, pos, alpha, kwargs
  Return type: | str, tuple, float, dict

`SpindleAssembly.PositionIpMTs.``add_second_ipMT`(pos, alpha1, i, **kwargs)

  Add and position the second ipMT within the spindle

  Parameters: | pos (tuple) – (x, y) position of the previously added ipMT alpha1 (float) – Angle of the previously added ipMT i (int) – Sequential number of ipMT kwargs (dict) – model parameters
  Returns: | MTname, pos, alpha, kwargs
  Return type: | str, tuple, float, dict

`SpindleAssembly.PositionIpMTs.``add_sixth_ipMT`(pos5, alpha4, alpha5, i, **kwargs)

  Add and position sixth ipMT within the spindle

  Parameters: | pos5 (tuple) – (x, y) position of the previously added ipMT alpha4 (float) – Angle of the ipMT 4 alpha5 (float) – Angle of the ipMT 5 i (int) – Sequential number of ipMT kwargs (dict) – model parameters
  Returns: | MTname, pos, alpha, kwargs
  Return type: | str, tuple, float, dict

`SpindleAssembly.PositionIpMTs.``add_third_ipMT`(pos2, alpha2, i, **kwargs)

  Add and position the third ipMT within the spindle

  Parameters: | pos2 (tuple) – (x, y) position of the previously added ipMT alpha2 (float) – Angle of the previously added ipMT i (int) – Sequential number of ipMT kwargs (dict) – model parameters
  Returns: | MTname, pos, alpha, kwargs
  Return type: | str, tuple, float, dict

`SpindleAssembly.PositionIpMTs.``check_MT_within_centrosome`(pos, **kwargs)

  Add ipMT if its x and y coordinates do not exceed the radius of the circular cross-section of a centrosome

  Parameters: | pos – (x, y) -> local coordinates of ipMT kwargs – object
  Returns: | True or False

`SpindleAssembly.PositionIpMTs.``condition_for_fourth_ipMT`(alpha2, alpha3, s, pos3)

  Condition of positioning the fourth ipMT

  Parameters: | alpha2 (float) – Angle between ipMTs number 2 and 3 alpha3 (float) – Angle between ipMTs number 3 and 4 s (float) – Separation between ipMTs pos3 (tuple) – (x, y) Position of the third ipMT
  Returns: | y coordinate of the ipMT, mewalpha angle of the ipMT
  Return type: | float, float

`SpindleAssembly.PositionIpMTs.``generate_separation`(**kwargs)

  Calculate distance and angle between ipMTs based on the Gaussian distribution with a given mean and standard deviation

  Parameters: | kwargs (object) – model parameters
  Returns: | s: distance between ipMTs
  Return type: | s: float
  Returns: | alpha: angle between ipMTs in degrees
  Return type: | float

## SpindleAssembly.assembly_random module

`SpindleAssembly.assembly_random.``add_and_position_astral_mts`(**kwargs)

  Create and position astral microtubules

  Parameters: | kwargs – object
  Returns: | aMTnames -> (list) list of astral microtubule names kwargs -> object

`SpindleAssembly.assembly_random.``add_and_position_centrosomes`(**kwargs)

  Create centrosomes and position them at the right or left pole

  Parameters: | kwargs – model marameters. object
  Returns: | None

`SpindleAssembly.assembly_random.``add_and_position_interpolar_mts_and_connectors`(**kwargs)

  Create and position interpolar microtubules and connects them with connectors

  Parameters: | kwargs – model parameters. object
  Returns: | MTdata -> (dictionary) Contains ipMT names, positions and connector positions

`SpindleAssembly.assembly_random.``assign_ipMTs`(**kwargs)

  Position the microtubules within the spindle along with the associated connectors

  Parameters: | kwargs (dict) – model parameters
  Returns: | MTdata, ConnectorData, data
  Return type: | list, list, list

`SpindleAssembly.assembly_random.``create_model_assembly`(**kwargs)

  Create Abaqus model and assembly

  Parameters: | kwargs – object
  Returns: | None

`SpindleAssembly.assembly_random.``generate_assembly`(**kwargs)

  Call modules to generate assembly

  Parameters: | kwargs (object) –
  Returns: | kwargs -> object

## Module contents