svcco package

Subpackages

Submodules

svcco.test_rotation module

svcco.test_rotation.disk(R0, R1, P0, P1)[source]
svcco.test_rotation.line(P0, P1)[source]
svcco.test_rotation.rotate(R0, R1, P0, P1, theta)[source]
svcco.test_rotation.test()[source]

svcco.tree module

class svcco.tree.forest(boundary=None, number_of_networks=1, trees_per_network=[2], scale=None, start_points=None, directions=None, root_lengths_high=None, root_lengths_low=None, convex=False, compete=False)[source]

Bases: object

add(number_of_branches, network_id=0, radius_buffer=0.01, exact=True)[source]
assign()[source]
connect(network_id=-1, buffer=None, curve_sample_size_min=5, curve_sample_size_max=11, curve_degree=3)[source]
copy()[source]
export(make=False, spline=False, write_splines=False, spline_sample_points=100, steady=True, apply_distal_resistance=False, gui=False)[source]
export_solid(outdir=None, folder='3d_tmp', shell=False, variable_thickness=False, shell_thickness=0.01)[source]
rotate()[source]
set_roots(scale=None, bounds=None)[source]
show(show=True, resolution=100, final=False, merged_trees=False, background='white', off_screen=False)[source]
svcco.tree.get()[source]
svcco.tree.perfusion_territory(tree, subdivisions=0, mesh_file=None, tree_file=None)[source]
class svcco.tree.tree[source]

Bases: object

Data structure:

index: 0:2 -> proximal node coordinates

index: 3:5 -> distal node coordinates

index: 6:8 -> unit basis U (all)

index: 9:11 -> unit basis V (all)

index: 12:14 -> unit basis W (axial direction) (all)

index: 15,16 -> children (-1 means no child)

index: 17 -> parent (NA)

index: 18 -> proximal node index (only real edges)

index: 19 -> distal node index (only real edges)

index: 20 -> length (path length)

index: 21 -> radius (what are the units?)

index: 22 -> flow (NA)

index: 23 -> left bifurcation (NA)

index: 24 -> right bifurcation (NA)

index: 25 -> reduced resistance (NA)

index: 26 -> depth (NA)

index: 27 -> reduced downstream length (NA)

index: 28 -> root radius scaling factor (same as edge for intermediate)

index: 29 -> edge that subedge belongs to (if actual edge; self pointer)

index: 30 -> self identifying index (-1 if intermediate)

add(low, high, isforest=False, radius_buffer=0.01, threshold=None, method='L-BFGS-B')[source]
collision_free(outside_vessels, radius_buffer=0.01)[source]
export(steady=True, apply_distal_resistance=True, gui=True, cylinders=False, make=True, global_edge_size=None, splines=False, splines_file_path='', spline_sample_points=100)[source]
export_0d_simulation(steady=True, outdir=None, folder='0d_tmp', number_cardiac_cycles=1, number_time_pts_per_cycle=5, density=1.06, viscosity=0.04, material='olufsen', olufsen={'k1': 0.0, 'k2': -22.5267, 'k3': 10000000.0, 'material exponent': 1.0, 'material pressure': 0.0}, linear={'material ehr': 10000000.0, 'material pressure': 0.0}, path_to_0d_solver=None, viscosity_model='constant', vivo=True)[source]

This script builds the 0D input file for running 0D simulation. Parameters: ----------- steady: bool, optional, [default=True] outdir: str, optional, [default=None] folder: str, optional, [default="tmp"] number_cardiac_cycles: int, optional, [default=1]

export_1d_simulation(steady=True, outdir=None, folder='1d_tmp', number_cariac_cycles=1, num_points=100)[source]
export_3d_solid(outdir=None, folder='3d_tmp')[source]
export_centerlines(outdir=None, folder='centerlines_tmp', num_points=100)[source]
export_gcode()[source]
export_truncated(steady=True, radius=None, indicies=None, apply_distal_resistance=True, gui=True, cylinders=False, make=True)[source]
load(filename)[source]
n_add(n, method='L-BFGS-B')[source]
save(filename=None)[source]
set_assumptions(**kwargs)[source]
set_boundary(boundary)[source]
set_parameters(**kwargs)[source]
set_root(low=-1, high=0, start=None, direction=None, limit_high=None, limit_low=None, niter=200)[source]
show(surface=False, vessel_colors='red', background_color='white', resolution=100, show_segments=True, save=False, name=None, show=True, surface_color='red', other_surface_color='blue')[source]
show_assumptions()[source]
show_truncated(radius=None, indicies=None)[source]

Module contents

# Automated Vascularization & Fluid Simulation for Engineered Tissues

svcco falls under the open-source SimVascular project which seeks to understand and quantify hemodynamics in health and disease. This python module creates synthetic microvascular networks for given perfusion territories, a common problem when creating engineered tissues.

## Installing SVCCO

Conda install `bash # Best practice to use an environment rather than installing at the base # By default we will specify the python environment to 3.7 # however 3.8 and 3.9 are valid conda create -n svcco-env python=3.7 conda activate svcco-env # becuase conda allows pip installing pip install svcco `

pip install

`bash pip install svcco `