# This DSC can be executed from: https://github.com/gaow/dr-tree/tree/master/analysis
# To run the entire benchmark:
# dsc exec vcv-bm.dsc -j8
# To run part of the benchmark, here are a few highlights
# dsc exec vcv-bm.dsc -j8 -s "SimTree * SimBM * SklearnDR * PlotPY"
# dsc exec vcv-bm.dsc -j8 -s "SimTree * SimBM * RDR[1] * PlotR[1]"
# dsc exec vcv-bm.dsc -j8 -s "SimTree * SimBM * (RDR[2], RDR[3]) * PlotR[2]"
# dsc exec vcv-bm.dsc -j8 -s "SimTree * SimBM * (RDR[4] * PlotR[3], RDR[5] * PlotR[4])"
###
# Simulate bifurcated tree structure with data points in between nodes
###
SimTree:
exec: BiTree.R
seed: 31415
params:
n: 8
t: 30
m: 100
unify_branch: 1
return: tree = R(res$data),
nodes = R(res$all_nodes),
X_labels = R(res$labels)
###
# Plot tree structure
###
PlotTree:
exec: TreePlot.R
params:
tree: $tree
treeplot: File(pdf)
return: treeplot
###
# Calculate covariance matrix for the tree structure
###
CalcVcv:
exec: VcvTree.R
seed: 31415
params:
tree: $tree
positions: $nodes
return: CX
###
# Generate samples from covariance
###
Vcv2BM:
exec: VcvBM.R
seed: 31415
params:
CX: $CX
X_labels: $X_labels
mu: 0
sigma: 0.1
k: 100
scalar: 1
return: X
###
# Simulate BM directly from tree structure
###
SimBM:
exec: IntermBM.R
seed: 31415
params:
tree: $tree
all_nodes: $nodes
Nsim: 100
diffusion: 1
precision: 1000
return: X
###
# Apply different methods from sklearn package
# - global methods, local methods (manifold learning)
###
SklearnDR:
exec: Combo(manifold.py, $(manifold_methods))
seed: 31415
params:
data: $X
label: (I10, I12, I11, I1, I2, I13, I3, I4, I14, I5, I6, I15, I7, I8)
n_comp: 2
n_neighbors: 50
return: projection, properties
###
# Generate 2D plots for Python based methods
###
PlotPY:
exec: PlotDR.py
params:
data: $projection
properties: $properties
vizplot: File(pdf)
return: vizplot
###
# Apply methods in R packages:
# - minimimum spanning tree via Ape package
# - sparse PCA via PMA package
# - sparse factor analysis via sfa wrapped in R
###
RDR:
exec: ApeMST.R, PmaPCA.R, PCA.R, SFA.R, CountCluster.R
seed: 31415
params:
X: $X
label: (I10, I12, I11, I1, I2, I13, I3, I4, I14, I5, I6, I15, I7, I8)
exec[2]:
sumabsv: 1, Asis(NULL)
K: 5
orth: 1, 0
exec[4]:
K: Asis(NULL)
model: -mn
rng: 31415
exec[5]:
K: Asis(NULL)
tol: 1
return: projection, properties
###
# Generate 2D plots for R based methods
###
PlotR:
exec: PlotMST.R, PlotPCA.R, PlotSFA.R, PlotCountCluster.R
seed: 31415
params:
X: $projection
properties: $properties
vizplot: File(pdf)
exec[1]:
igraph_layout: $(igraph_layouts)
return: vizplot
DSC:
run: (SimTree * PlotTree) * (CalcVcv * Vcv2BM, SimBM) *
(SklearnDR * PlotPY, RDR[1] * PlotR[1], (RDR[2], RDR[3]) * PlotR[2], RDR[4] * PlotR[3],
RDR[5] * PlotR[4])
R_libs: liamrevell/phytools, ape, adephylo, MASS, igraph, PMA, ggplot2,
reshape2, maptpx, kkdey/CountClust
exec_path: output/src/simulate, output/src/analyze
lib_path: output/src/simulate, output/src/analyze, output/src
output: output/20160621
parameters:
manifold_methods: LLE_standard, LLE_ltsa, LLE_hessian, LLE_modified,
isomap, mds, spectral_embedding, t_sne, pca
igraph_layouts: layout_as_star, layout_as_tree, layout_in_circle,
layout_nicely, layout_on_grid, layout_on_sphere, layout_randomly,
layout_with_dh, layout_with_drl, layout_with_fr, layout_with_gem,
layout_with_graphopt, layout_with_kk, layout_with_lgl,
layout_with_mds
# unusable: layout_as_bipartite, layout_with_sugiyama