arch
Below is an auto-generated summary of the xftsim.arch submodule API.
- class xftsim.arch.AdditiveGeneticComponent(beta=None, metadata={}, component_name='addGenetic')
Bases:
ArchitectureComponent
A genetic component with additive effects.
- Parameters:
beta (
xft.effect.AdditiveEffects
, optional) – Additive effects, by default None.metadata (
Dict
, optional) – Additional metadata, by default an empty dictionary.
- effects
Additive effects.
- Type:
xft.effect.AdditiveEffects
- compute_component(haplotypes, phenotypes)
Compute the additive genetic component of the phenotype.
- Parameters:
haplotypes (
xr.DataArray
) – Haplotypes to be used in the computation.phenotypes (
xr.DataArray
) – Phenotypes to be modified.
- property true_cov_beta
Compute the covariance matrix of the additive effects.
- Returns:
ndarray
– Covariance matrix of the additive effects.
- property true_rho_beta
Compute the correlation coefficient matrix of the additive effects.
- Returns:
ndarray
– Correlation coefficient matrix of the additive effects.
- class xftsim.arch.AdditiveNoiseComponent(variances=None, sds=None, phenotype_name=None, component_index=None, component_name='addNoise')
Bases:
ArchitectureComponent
An independent Gaussian noise component.
- Parameters:
variances (
Iterable
, optional) – Variances of the noise components, by default None.sds (
Iterable
, optional) – Standard deviations of the noise components, by default None.phenotype_name (
Iterable
, optional) – Names of the phenotypes, by default None. Included for backwards compatability. Do not specify if providing component_indexcomponent_index (
xftsim.index.ComponentIndex
, optional) – Alternatively, provide output component index
- variances
Variances of the noise components.
- Type:
ndarray
- sds
Standard deviations of the noise components.
- Type:
ndarray
- compute_component(haplotypes, phenotypes)
Compute the noise component of the phenotype.
- Parameters:
haplotypes (
xr.DataArray
) – Haplotypes, not used in the computation.phenotypes (
xr.DataArray
) – Phenotypes to be modified.
- class xftsim.arch.Architecture(components=None, metadata={}, depth=1, expand_components=False)
Bases:
object
Class representing a phenogenetic architecure
- Parameters:
components (
Iterable
, optional) – An iterable collection of ArchitectureComponent objectsmetadata (
Dict
, optional) – A dictionary for holding metadata about the Architecture objectdepth (
int
, optional) – The generational depth of the architecture, default to 1expand_components (
bool
, optional) – A boolean flag indicating whether to expand the components, default to False
- metadata
A dictionary for holding metadata about the Architecture object
- Type:
Dict
- components
An iterable collection of ArchitectureComponent objects
- Type:
Iterable
- depth
The depth of the architecture
- Type:
int
- expand_components
A boolean flag indicating whether to expand the components
- Type:
bool
- founder_initializations() List:
Get a list of the founder initialization of each component
- merged_component_indexer() xft.index.ComponentIndex:
Get the merged component indexer
- initialize_phenotype_array(haplotypes: xr.DataArray, control: dict = None) xr.DataArray:
Initialize a new phenotype array
- initialize_founder_phenotype_array(haplotypes: xr.DataArray, control: dict = None) xr.DataArray:
Initialize a new founder phenotype array
- compute_phenotypes(haplotypes: xr.DataArray = None, phenotypes: xr.DataArray = None, control: dict = None) None:
Compute phenotypes for the given haplotypes and phenotypes
- check_dependencies()
- compute_phenotypes(haplotypes=None, phenotypes=None, control=None)
Compute phenotypes.
- Parameters:
haplotypes (
xr.DataArray
, optional) – Input haplotypes.phenotypes (
xr.DataArray
, optional) – Input phenotypes.control (
dict
, optional) – Dictionary containing control parameters.
- property dependency_graph
- property dependency_graph_edges
- draw_dependency_graph(node_color='none', node_size=1200, font_size=5, margins=0.1, edge_color='#222222', arrowsize=6, number_edges=True, **kwargs)
- property founder_initializations
Get a list of the founder initialization of each component
- initialize_founder_phenotype_array(haplotypes, control=None)
Initialize a founder generation phenotype array from haplotypes under the specified architecture. In the absense of vertical transmission, this is equivalent to initialize_phenotype_array().
- Parameters:
haplotypes (
xr.DataArray
) – Input haplotypes.control (
dict
, optional) – Dictionary containing control parameters.
- Returns:
xr.DataArray
– Phenotype array with the merged component indexer and sample indexer.
- initialize_phenotype_array(haplotypes, control=None)
Initialize a phenotype array from haplotypes under the specified architecture.
- Parameters:
haplotypes (
xr.DataArray
) – Input haplotypes.control (
dict
, optional) – Dictionary containing control parameters.
- Returns:
xr.DataArray
– Phenotype array with the merged component indexer and sample indexer.
- property merged_component_indexer
Get the merged ComponentIndex indexer across all archtecure components
- class xftsim.arch.ArchitectureComponent(compute_component=None, input_cindex=None, output_cindex=None, input_haplotypes=False, founder_initialization=None, component_name='generic')
Bases:
object
Class representing a component of a genetic architecture.
- Parameters:
compute_component (
Callable
, optional) – Function that accesses haplotypes and/or phenotypes and modifies phenotypes by reference, by default None.input_cindex (
xft.index.ComponentIndex
, optional) – Index of the input component, by default None.output_cindex (
xft.index.ComponentIndex
, optional) – Index of the output component, by default None.input_haplotypes (
bool
orxft.index.HaploidVariantIndex
, optional) – Boolean or HaploidVariantIndex indicating if input haplotypes are used, by default False.founder_initialization (
Callable
, optional) – Function that initializes founder haplotypes for the component, by default None.
- _compute_component
Function that accesses haplotypes and/or phenotypes and modifies phenotypes by reference.
- Type:
Callable
orNone
- input_haplotypes
Boolean or HaploidVariantIndex indicating if input haplotypes are used.
- Type:
bool
orxft.index.HaploidVariantIndex
- input_cindex
Index of the input component.
- Type:
xft.index.ComponentIndex
- output_cindex
Index of the output component.
- Type:
xft.index.ComponentIndex
- founder_initialization
Function that initializes founder haplotypes for the component.
- Type:
Callable
orNone
- property component_name
- compute_component(haplotypes=None, phenotypes=None)
Function that accesses haplotypes and/or phenotypes and modifies phenotypes by reference.
- Parameters:
haplotypes (
xr.DataArray
, optional) – Haplotypes to be accessed, by default None.phenotypes (
xr.DataArray
, optional) – Phenotypes to be accessed and modified, by default None.
- static default_input_cindex(*args, **kwargs)
Static method to define the default input component index.
- static default_output_cindex(*args, **kwargs)
Static method to define the default output component index.
- property dependency_graph
- property dependency_graph_edges
- draw_dependency_graph(node_color='none', node_size=1500, arrowsize=7, font_size=6, margins=0.1, **kwargs)
- property input_component_name
- property input_phenotype_name
- property input_vorigin_relative
- property merged_phenotype_indexer
- property output_component_name
- property output_phenotype_name
- property output_vorigin_relative
- property phenotype_name
- property vorigin_relative
- class xftsim.arch.BinarizingTransformation(thresholds, input_cindex, output_cindex, component_name='binarize')
Bases:
ArchitectureComponent
An architecture component that binarizes specified phenotypes based on specified thresholds under a liability-threshold model.
Attributes:
- thresholdsIterable
A list or array of thresholds used for binarization.
- input_cindexxft.index.ComponentIndex
The input component index.
- output_cindexxft.index.ComponentIndex
The output component index.
- phenotype_nameIterable
The name of the phenotype.
- liability_componentstr
The liability component to be used. Default is ‘phenotype’.
- vorigin_relativeIterable
The relative V origin. Default is [-1].
- output_componentstr
The name of the output component. Default is ‘binary_phenotype’.
Methods:
- construct_input_cindex(phenotype_name: Iterable,
liability_component: str = ‘phenotype’, vorigin_relative: Iterable = [-1],) -> xft.index.ComponentIndex
Constructs the input component index based on given phenotype names.
- construct_output_cindex(phenotype_name: Iterable,
output_component: str = ‘binary_phenotype’, vorigin_relative: Iterable = [-1],) -> xft.index.ComponentIndex
Constructs the output component index based on given phenotype names.
- construct_cindexes(phenotype_name: Iterable,
liability_component: str = ‘phenotype’, output_component: str = ‘binary_phenotype’, vorigin_relative: Iterable = [-1],) -> Tuple[xft.index.ComponentIndex, xft.index.ComponentIndex]
Constructs both the input and output component indexes based on given phenotype names.
- compute_component(self,
haplotypes: xr.DataArray, phenotypes: xr.DataArray) -> None:
Computes the binary phenotype based on the given thresholds.
- compute_component(haplotypes, phenotypes)
Computes the binarizing transformation.
- Parameters:
haplotypes (
xr.DataArray
) – The haplotypes.phenotypes (
xr.DataArray
) – The phenotypes.
- static construct_cindexes(phenotype_name, liability_component='phenotype', output_component='binary_phenotype', vorigin_relative=[-1])
Constructs both input and output component indexes for the binarizing transformation.
- Parameters:
phenotype_name (
Iterable
) – Names of the phenotypes.liability_component (
str
, optional) – Name of the liability component. Default is “phenotype”.output_component (
str
, optional) – Name of the output component. Default is “binary_phenotype”.vorigin_relative (
Iterable
, optional) – v-origin relative. Default is [-1].
- Returns:
Tuple[xft.index.ComponentIndex
,xft.index.ComponentIndex]
– The input and output component indexes.
- static construct_input_cindex(phenotype_name, liability_component='phenotype', vorigin_relative=[-1])
Constructs the input component index for the binarizing transformation.
- Parameters:
phenotype_name (
Iterable
) – Names of the phenotypes.liability_component (
str
, optional) – Name of the liability component. Default is “phenotype”.vorigin_relative (
Iterable
, optional) – v-origin relative. Default is [-1].
- Returns:
xft.index.ComponentIndex
– The input component index.
- static construct_output_cindex(phenotype_name, output_component='binary_phenotype', vorigin_relative=[-1])
Constructs the output component index for the binarizing transformation.
- Parameters:
phenotype_name (
Iterable
) – Names of the phenotypes.output_component (
str
, optional) – Name of the output component. Default is “binary_phenotype”.vorigin_relative (
Iterable
, optional) – v-origin relative. Default is [-1].
- Returns:
xft.index.ComponentIndex
– The output component index.
- class xftsim.arch.ConstantFounderInitialization(component_index=None, constants=None)
Bases:
FounderInitialization
Founder initialization that sets all haplotypes to constant values.
Bases:
ArchitectureComponent
Multivariate Gaussian noise component.
- Parameters:
vcov (
ndarray
, optional) – variance covariance matrixphenotype_name (
Iterable
, optional) – Names of the phenotypes, by default None. Included for backwards compatability. Do not specify if providing component_indexcomponent_index (
xftsim.index.ComponentIndex
, optional) – Alternatively, provide output component index
Compute the noise component of the phenotype.
- Parameters:
haplotypes (
xr.DataArray
) – Haplotypes, not used in the computation.phenotypes (
xr.DataArray
) – Phenotypes to be modified.
- class xftsim.arch.FounderInitialization(component_index=None, initialize_component=None)
Bases:
object
Base class for founder initialization.
- initialize_component(phenotypes)
Initialize founder haplotypes for a single phenotype component.
- Parameters:
phenotypes (
xr.DataArray
) – Phenotypes for a single phenotype component.- Raises:
Warning – If no initialization method is defined.
- class xftsim.arch.GCTA_Architecture(h2, Rg=None, phenotype_name=None, variant_indexer=None, haplotypes=None)
Bases:
Architecture
Additive genetic architecture object under GCTA infinitessimal model <CITE>
Under this genetic architecture, all variants are causal and standardized genetic variants / sqrt(m) have the user specified (possibly diagonal) genetic correlation matrix and variance equal to h2.
- Parameters:
h2 (
Iterable
) – Vector of genetic variances or genetic variance/covariance matrixRg (
numpy.ndarray
) – Optional genetic correlation matrixphenotype_name (
Iterable
) – Optional names of phenotypesvariant_indexer (
xft.index.HaploidVariantIndex | xft.index.DiploidVariantIndex
) – Variant indexer, will determine ploidy automatically Phenotype component indexer, defaults to xft.index.ComponentIndex.RangeIndex if not providedhaplotypes (
xr.DataArray
) – Alternatively, one can simply provide haplotypes instead of the variant indexer. Ignored if variant_indexer is supplied.
- class xftsim.arch.GaussianFounderInitialization(component_index=None, variances=None, sds=None, means=None)
Bases:
FounderInitialization
A class for initializing founder haplotypes by drawing iid samples from normal distributions with the specified means and standard deviations.
- Parameters:
component_index (
xft.index.ComponentIndex
, optional) – A ComponentIndex object containing the indexing information of the components. If not provided, then the initialization will be null.variances (
Iterable
, optional) – An iterable object of length k_total specifying the variances of the Gaussian distribution. Either variances or sds must be provided.sds (
Iterable
, optional) – An iterable object of length k_total specifying the standard deviations of the Gaussian distribution. Either variances or sds must be provided.means (
Iterable
, optional) – An iterable object of length k_total specifying the means of the Gaussian distribution. If not provided, then the means will be set to 0.
- Raises:
AssertionError – If neither variances nor sds is provided or if the length of component_index does not match the length of sds.
- sds
An array of standard deviations.
- Type:
numpy.ndarray
- means
An array of means.
- Type:
numpy.ndarray
- component_index
An object containing the indexing information of the components.
- Type:
xft.index.ComponentIndex
- class xftsim.arch.HorizontalComponent(input_cindex, output_cindex, coefficient_matrix=None, normalize=True, component_name='linHoriz')
- class xftsim.arch.InfinitessimalArchitecture
Bases:
object
- class xftsim.arch.LinearTransformationComponent(input_cindex=None, output_cindex=None, coefficient_matrix=None, normalize=True, founder_initialization=None, component_name='linear')
Bases:
ArchitectureComponent
A linear transformation component. Maps input phenotypes to output phenotypes using linear map represented by coefficient_matrix.
- Parameters:
input_cindex (
xft.index.ComponentIndex
, optional) – Input component index, by default None.output_cindex (
xft.index.ComponentIndex
, optional) – Output component index, by default None.coefficient_matrix (
ndarray
, optional) – Coefficient matrix, by default None.normalize (
bool
, optional) – If True, normalize the input by subtracting the mean and dividing by the standard deviation, by default True.founder_initialization (
FounderInitialization
, optional) – Founder initialization, by default None.
- v_input_dimension
Input dimension.
- Type:
int
- v_output_dimension
Output dimension.
- Type:
int
- normalize
If True, normalize the input by subtracting the mean and dividing by the standard deviation.
- Type:
bool
- coefficient_matrix
Coefficient matrix.
- Type:
ndarray
- compute_component(haplotypes, phenotypes)
Compute the linear transformation component of the phenotype.
- Parameters:
haplotypes (
xr.DataArray
) – Haplotypes, not used in the computation.phenotypes (
xr.DataArray
) – Phenotypes to be modified.
- property linear_transformation
Get the linear transformation matrix.
- Returns:
pd.DataFrame
– Linear transformation matrix.
- class xftsim.arch.LinearVerticalComponent(input_cindex=None, output_cindex=None, coefficient_matrix=None, normalize=True, founder_variances=None, founder_initialization=None, component_name='linVert')
Bases:
LinearTransformationComponent
A vertical transmission component. Requires a way to generate “transmitted” components in the founder generation.
- Parameters:
input_cindex (
xft.index.ComponentIndex
, optional) – Input component index, by default None.output_cindex (
xft.index.ComponentIndex
, optional) – Output component index, by default None.coefficient_matrix (
ndarray
, optional) – Coefficient matrix, by default None.normalize (
bool
, optional) – If True, normalize the input by subtracting the mean and dividing by the standard deviation, by default True.founder_variances (
Iterable
, optional) – Variances of the founders, by default None.founder_initialization (
FounderInitialization
, optional) – Founder initialization, by default None.
- v_input_dimension
Input dimension.
- Type:
int
- v_output_dimension
Output dimension.
- Type:
int
- normalize
If True, normalize the input by subtracting the mean and dividing by the standard deviation.
- Type:
bool
- coefficient_matrix
Coefficient matrix.
- Type:
ndarray
- class xftsim.arch.ProductComponent(input_cindex, output_cindex, output_coef=1.0, coefficient_vector=None, mean_deviate=True, normalize=False)
Bases:
ArchitectureComponent
Multiplies existing components
- Parameters:
input_cindex (
xft.index.ComponentIndex
) – Index of components to multiplyoutput_cindex (
xft.index.ComponentIndex
) – Output component indexoutput_coef (
float
,options
) – Coefficent to multiply output by, by default 1.0coefficient_vector (
ndarray
, optional) – Coefficients to premultiply inputs by, by default all ones.mean_deviate (
bool
, optional) – If True, mean deviate the inputs by subtracting the mean. Defaults to True.normalize (
bool
, optional) – If True, normalize the inputs by subtracting the mean and dividing by the standard deviation prior to multiply. Defaults to False.
- compute_component(haplotypes, phenotypes)
Compute the noise component of the phenotype.
- Parameters:
haplotypes (
xr.DataArray
) – Haplotypes, not used in the computation.phenotypes (
xr.DataArray
) – Phenotypes to be modified.
- class xftsim.arch.SpikeSlabArchitecture
Bases:
object
- class xftsim.arch.SumAllTransformation(input_cindex, output_component_name='phenotype', output_comp_type='outcome', component_name='sumAll')
Bases:
ArchitectureComponent
Sum all intermediate phenotype components to generate outcome phenotype components.
- Parameters:
input_cindex (
xft.index.ComponentIndex
) – Input component index.
- input_haplotypes
If True, haplotypes are input.
- Type:
bool
- input_cindex
Input component index.
- Type:
xft.index.ComponentIndex
- output_cindex
Output component index.
- Type:
xft.index.ComponentIndex
- founder_initialization
Founder initialization.
- Type:
None
- compute_component(haplotypes, phenotypes)
Compute the sum of the input components and assign them to the output component.
Parameters:
- haplotypesxr.DataArray
Haplotypes.
- phenotypesxr.DataArray
Phenotypes.
Returns:
None
- static construct_input_cindex(phenotype_name, sum_components=['additiveGenetic', 'additiveNoise'], vorigin_relative=[-1])
Construct input component index.
- Parameters:
phenotype_name (
Iterable
) – Phenotype name.sum_components (
Iterable
, optional) – Components to sum, by default [‘additiveGenetic’, ‘additiveNoise’].vorigin_relative (
Iterable
, optional) – Relative vorigins, by default [-1].
- Returns:
xft.index.ComponentIndex
– Component index.
- class xftsim.arch.SumTransformation(input_cindex, output_cindex, component_name='sumTrans')
Bases:
ArchitectureComponent
Sum components to generate phenotypes.
- Parameters:
input_cindex (
xft.index.ComponentIndex
) – Input component index.output_cindex (
xft.index.ComponentIndex
) – Output component index.
- input_haplotypes
If True, haplotypes are input.
- Type:
bool
- input_cindex
Input component index.
- Type:
xft.index.ComponentIndex
- output_cindex
Output component index.
- Type:
xft.index.ComponentIndex
- founder_initialization
Founder initialization.
- Type:
None
- compute_component(haplotypes, phenotypes)
Compute the sum of the input components and assign them to the output component.
Parameters:
- haplotypesxr.DataArray
Haplotypes.
- phenotypesxr.DataArray
Phenotypes.
Returns:
None
- static construct_cindexes(phenotype_name, sum_components=['additiveGenetic', 'additiveNoise'], vorigin_relative=[-1], output_component='phenotype', comp_type='outcome')
Construct input and output ComponentIndex objects for SumTransformation.
Parameters:
- phenotype_nameIterable
Names of the phenotypes.
- sum_componentsIterable, optional (default=[“additiveGenetic”, “additiveNoise”])
Names of the components to be summed.
- vorigin_relativeIterable, optional (default=[-1])
Relative origin of the component with respect to the phenotype.
- output_componentstr, optional (default=”phenotype”)
Name of the output component.
Returns:
- Tuple[xft.index.ComponentIndex, xft.index.ComponentIndex]:
A tuple containing input and output ComponentIndex objects.
- static construct_input_cindex(phenotype_name, sum_components=['additiveGenetic', 'additiveNoise'], vorigin_relative=[-1])
Construct input component index.
- Parameters:
phenotype_name (
Iterable
) – Phenotype name.sum_components (
Iterable
, optional) – Components to sum, by default [‘additiveGenetic’, ‘additiveNoise’].vorigin_relative (
Iterable
, optional) – Relative vorigins, by default [-1].
- Returns:
xft.index.ComponentIndex
– Component index.
- static construct_output_cindex(phenotype_name, sum_components=['additiveGenetic', 'additiveNoise'], vorigin_relative=[-1], comp_type='outcome', output_name='phenotype')
Construct output component index.
- Parameters:
phenotype_name (
Iterable
) – Phenotype name.sum_components (
Iterable
, optional) – Components to sum, by default [‘additiveGenetic’, ‘additiveNoise’].vorigin_relative (
Iterable
, optional) – Relative vorigins, by default [-1].output_name (
str
, optional) – Output name, by default ‘phenotype’.
- Returns:
xft.index.ComponentIndex
– Component index.
- xftsim.arch.VerticalComponent
alias of
LinearVerticalComponent
- class xftsim.arch.ZeroFounderInitialization(component_index=None)
Bases:
ConstantFounderInitialization
Founder initialization that sets all haplotypes to zero.