elpigraph.computeElasticPrincipalTree

elpigraph.computeElasticPrincipalTree(X, NumNodes, NumEdges=inf, InitNodes=3, Lambda=0.01, Mu=0.1, GrammarOptimization=False, MaxSteps=inf, GrammarOrder=['Grow', 'Shrink'], MaxNumberOfIterations=10, TrimmingRadius=inf, eps=0.01, Do_PCA=True, InitNodePositions=None, AdjustVect=None, ElasticMatrix=None, InitEdges=None, CenterData=True, ComputeMSEP=True, verbose=False, ShowTimer=False, ReduceDimension=None, n_cores=1, MinParOp=20, nReps=1, Subsets=[], ProbPoint=1, Mode=1, FinalEnergy='Penalized', alpha=0, beta=0, Configuration='Line', ICOver=None, DensityRadius=None, AvoidSolitary=False, EmbPointProb=1, PointWeights=None, SampleIC=True, AvoidResampling=True, AdjustElasticMatrix=None, AdjustElasticMatrix_Initial=None, Lambda_Initial=None, Mu_Initial=None, DisplayWarnings=False, StoreGraphEvolution=False, GPU=False, FixNodesAtPoints=[], pseudotime=None, pseudotimeLambda=0.01, label=None, labelLambda=0.01, MaxNumberOfGraphCandidatesDict={'AddNode2Node': inf, 'BisectEdge': inf, 'RemoveNode': inf, 'ShrinkEdge': inf})[source]

Construct a principal elastic tree

This function is a wrapper to the computeElasticPrincipalGraph function that constructs the appropriate initial graph and grammars when constructing a tree

X: numerical 2D matrix,
the n-by-m matrix with the position of n m-dimensional points
NumNodes: integer,
the number of nodes of the principal graph
Lambda: real,
the lambda parameter used the compute the elastic energy
Mu: real,
the lambda parameter used the compute the elastic energy
InitNodes: integer,
number of points to include in the initial graph
MaxNumberOfIterations: integer,
maximum number of steps to embed the nodes in the data
TrimmingRadius: real,
maximal distance of point from a node to affect its embedment
eps: real,
minimal relative change in the position of the nodes to stop embedment
Do_PCA: boolean,
should data and initial node positions be PCA trnasformed?
InitNodePositions: numerical 2D matrix,
the k-by-m matrix with k m-dimensional positions of the nodes

in the initial step InitEdges: numerical 2D matrix,

the e-by-2 matrix with e end-points of the edges connecting the nodes
ElasticMatrix: numerical 2D matrix,
the k-by-k elastic matrix
CenterData: boolean,
should data and initial node positions be centered?
ComputeMSEP: boolean,
should MSEP be computed when building the report?
verbose: boolean,
should debugging information be reported?
ShowTimer: boolean,
should the time to construct the graph be computed and reported for each step?
ReduceDimension: integer vector,
vector of principal components to retain when performing dimensionality reduction. If None all the components will be used
drawAccuracyComplexity: boolean,
should the accuracy VS complexity plot be reported?
drawPCAView: boolean,
should a 2D plot of the points and pricipal curve be dranw for the final configuration?
drawEnergy: boolean,
should changes of evergy VS the number of nodes be reported?
n:.cores
either an integer (indicating the number of cores to used for the creation of a cluster) or

cluster structure returned, e.g., by makeCluster. If a cluster structure is used, all the nodes must contains X (this is done using clusterExport) MinParOP: integer,

the minimum number of operations to use parallel computation
nReps: integer,
number of replica of the construction
ProbPoint: real
between 0 and 1, probability of inclusing of a single point for each computation
Subsets: list
of column names (or column number). When specified a principal tree will be computed for each of the subsets specified.
NumEdges: integer,
the maximum nulber of edges
Mode: integer,
the energy computation mode
FastSolve: boolean,
should FastSolve be used when fitting the points to the data?
ClusType: string,
the type of cluster to use. It can gbe either “Sock” or “Fork”.

Currently fork clustering only works in Linux ICOver: string,

initial condition overlap mode. This can be used to alter the default behaviour for the initial configuration of the

principal tree. DensityRadius: numeric,

the radius used to estimate local density. This need to be set when ICOver is equal to “Density”
AvoidSolitary: boolean,
should configurations with “solitary nodes”, i.e., nodes without associted points be discarded?
FinalEnergy: string
indicating the final elastic emergy associated with the configuration. Currently it can be “Base” or “Penalized”
alpha: positive
numeric, the value of the alpha parameter of the penalized elastic energy
beta: positive
numeric, the value of the beta parameter of the penalized elastic energy
EmbPointProb: numeric between 0 and 1.
If less than 1 point will be sampled at each iteration. EmbPointProb indicates the probability of using each points. This is an experimental feature, which may helps speeding up the computation if a large number of points is present.
AdjustElasticMatrix: function
a penalization function to adjust the elastic matrices after a configuration has been chosen (e.g., AdjustByConstant). If None (the default), no penalization will be used.
AdjustVect: boolean
vector keeping track of the nodes for which the elasticity parameters have been adjusted. When true for a node its elasticity parameters will not be adjusted.
AdjustElasticMatrix_Initial: function
a penalization function to adjust the elastic matrices of the initial configuration (e.g., AdjustByConstant). If None (the default), no penalization will be used.
Lambda_Initial: real
the lambda parameter used the construct the elastic matrix associted with ther initial configuration if needed. If None, the value of Lambda will be used.
Mu_Initial: real,
the mu parameter used the construct the elastic matrix associted with ther initial configuration if needed. If None, the value of Mu will be used.
Returns:
  • A list of principal graph structures containing the trees constructed during the different replica of the algorithm.
  • If the number of replicas is larger than 1. The the final element of the list is the “average tree”, which is constructed by
  • fitting the coordinates of the nodes of the reconstructed trees