Appendices
A: Reduction in the number of short Voronoi cell edges (rods)
One challenge with the random generation of seed points for Voronoi tessellation according to a binomial point process is the likelihood of creating a significant number of Voronoi cells with short edges (Sieger et al. 2010). This is because cell edges represent potential rods in the digital model and the Voronoi cell edge distribution is considerably right-skewed (positively skewed) compared to a real trabecular rod distribution, making it difficult to refine the rod length distribution in the digital model to be in agreement with the real bone rod length distribution (Appendix Fig. 9). Voronoi cell edges are defined during Delaunay triangulation as a line segment connecting the circumcenters of neighboring tetrahedrons, and thus, circumcenters that are in close proximity to one another form short Voronoi cell edges (Okabe et al. 2000). Tetrahedrons with circumcenters located near the incenter maximize the length of the Voronoi cell edges (Sieger et al. 2010). In addition to concerns about the rod length distribution in the digital model, previous research showed that it was difficult to refine the rod spatial arrangement distribution in the digital model to be in agreement with the real bone rod spatial arrangement distribution. Therefore, an inverse Monte Carlo process focused on rod length and rod spatial arrangement was employed to refine the placement of seed points within the volume domain prior to the selection of an optimum initial Voronoi cellular model.
In more detail, after the initial seed points were generated within the volume domain, Delaunay triangulation was performed, and based on the circumcenters of the tetrahedrons, Voronoi cell edge lengths and centroids (i.e., midpoints) of the edges were calculated. Note that Voronoi cell parameters were estimated from the Delaunay triangulation in order to keep computational costs low, as compared to generating a full Voronoi diagram for each iteration of the inverse Monte Carlo simulation. In general, plates are preferentially aligned vertically and rods are preferentially aligned horizontally, according to a previous study (Liu et al. 2008). Thus, horizontally oriented edges (Voronoi cell edges for which the colatitudinal angle was between 62.5° and 112.5°) were identified, and the focus of the inverse Monte Carlo process was on reducing the error in the length and spatial arrangement distributions of the horizontally oriented edges. The distribution of nearest neighbor distances between the centroids of the horizontally oriented cell edges was calculated to determine the spatial arrangement distribution. The inverse Monte Carlo process involved randomly selecting one of the existing seed points in the volume domain, temporarily deleting it, regenerating a random temporary seed point in its place, and recalculating the length and spatial arrangement distribution of the horizontally oriented cell edges. Then, the horizontal edge length and spatial arrangement distributions in the model were compared to the real trabecular bone rod length and rod spatial arrangement distributions and the error sum of squares (SSE) was computed. If both the length SSE and the spatial arrangement SSE were reduced and there was not a significant change in the number of non-horizontal cell edges, then the new seed point was accepted and the temporary deletion of the previous seed point was made permanent; otherwise, the new seed point was rejected and the previous seed point was restored. This procedure was performed for 15,000 inverse Monte Carlo simulation iterations or until the error was reduced to a value less than a specified threshold (in general < 0.001).
B: Inverse Monte Carlo simulations
We developed the algorithms for the inverse Monte Carlo procedures in MATLAB (Mathworks®) and performed the random sampling using the in-built randi function, which generated uniformly distributed pseudorandom integers. In more detail, all of the elements (e.g., plates and/or rods) involved in the inverse Monte Carlo simulations were stored in a single data array in MATLAB. Each element in the array was assigned a corresponding integer that denoted its position in the data array, referred to as an index. Thus, the data could be indexed using an integer ranging from one to the total number of elements in the array. Using the in-built randi function in MATLAB, random integers were first generated between one and the number of elements in the data array. Then, the data array was indexed using the randomly generated integers, in order to choose an element in the model to alter. For data arrays with more than one type of element (for example the selection of plates and rods in the model based on rod/plate ratio employed a data array containing both plates and rods), the randomly sampled index was tested first to make sure that the correct type of element was chosen from the data array. If the correct type of element was chosen, the inverse Monte Carlo iteration would continue. However, if the incorrect type of element was chosen, the iteration would be terminated and the simulation moved onto the next iteration, for which a new integer was randomly sampled. The in-built rng function in MATLAB was used to seed the random number generator based on the current time, thus mitigating the possibility of generating digital models that were identical.
C: Use of offset points to render trabecular thickness
An offset-point approach was used to add trabecular thickness (plate thickness and rod diameter) to the digital model, (Appendix Fig. 10). First, the shape center of each Voronoi cell face was determined by calculating the mean of the Voronoi face vertices. Then, nine vectors were drawn from every edge; three each in the direction of the three face’s shape centers (Appendix Fig. 10a, b). The vectors originated from the midpoint and both endpoints of each edge and terminated at a point between the edge and the face shape center. The points corresponding to the termination of the offset vectors are referred to as offset points, and the location of the point between the cell edge and face shape center was determined using a scale factor. For the offset vectors that originated from the endpoints of the cell edge, the scale factor was a fraction of the distance between the endpoint and the shape center. For the offset vectors that originated from the midpoint, the scale factor was between 0.3 and 0.5 times the length of the endpoint vectors.
After creating the nine initial offset points, the offset points were grouped into three sets of offset points (Appendix Fig. 10c). One set of offset points was created from the offset vectors that originated from the midpoint, and the other two sets of points were created from the offset vectors that originated from the endpoints. At this point in the process, each set of three offset points formed a triangular region. Next, the mean coordinate of the vertices of each triangle was calculated, along with the midpoint of each side of the triangle. Additional offset points were created by drawing a vector from the mean coordinate of the triangle to the midpoint of each side and then scaling the vector by 1.5, so that the additional offset points were located outside of the triangular region. The generation of these additional offset points formed hexagonal regions (Appendix Fig. 10d). By connecting these regions with line segments between the eighteen offset points, twenty-four surfaces were generated to form a rod-like structure (Appendix Fig. 10e, f). For a Voronoi edge that was assigned to be a rod in the digital model, the ends of the rod, along with junctions or joints that connected the rod to other trabeculae in the model, were patched with triangular patches (Appendix Fig. 10g). On the other hand, if a face was assigned to be a trabecular plate in the digital model, all of the offset points in the interior of the plate would be deleted. In addition, triangular patches would be used to cover the top and bottom face of the plate and any openings along the sides of the plate (Appendix Fig. 10f, h).
The plate thickness and rod diameter of trabeculae in the digital model were determined based on the equivalent trabecular thickness of an ideal trabecular geometry. In more detail, the volume of a plate in the digital model was computed and then the plate was equated to a uniformly thick polyhedron with the same volume and the same face area. The thickness of this polyhedron represented the thickness of the plate in the model and was calculated as follows:
$$t = \frac{V}{{A_{\text{c}} }}$$
(4)
where \(t\) is the equivalent thickness of the trabecular plate, \(V\) is the volume of the plate, and \(A_{\text{c}}\) is the cross-sectional area of the face of the plate in the model.
Similarly, the diameter of a rod in the model was determined by computing the volume of the rod and then equating the rod to a cylinder with the same volume and the same length. The diameter of this cylinder represented the diameter of the rod in the model and was calculated as follows:
$$d = \sqrt {\frac{4V}{\pi L}}$$
(5)
where \(d\) is the equivalent diameter of the trabecular rod, \(V\) is the volume of the rod, and \(L\) is the length of the rod in the model.
Since the plates and rods in the digital model are triangular surface meshes, the divergence theorem was used to compute the volume of the trabeculae in the model using a surface integral. The divergence theorem describes the relationship between a volume integral and surface integral, and the volume (\(V\)) of the trabeculae in the digital model was calculated as follows:
$$V = \sum \bar{F} \cdot \hat{n} \cdot \Delta S$$
(6)
where \(\bar{F}\) is the vector [x, 0, 0], of which x is the x-coordinate of the centroid of the triangular surface, \(\hat{n}\) is the unit surface normal of the triangular surface, and \(\Delta S\) is the area of the triangular surface.
D: Pre-screening pilot convergence test
The pre-screening process developed in this study involved randomly selecting half of the Voronoi cell faces in the initial Voronoi tessellation model and assigning these faces as plates in the digital model, assigning the remaining Voronoi cell edges that were not associated with the selected faces as rods in the digital model, computing the total error sum of squares (\({\text{SSE}}_{\text{total}}\)) associated with the starting configuration of plates and rods in the model, and then iterating multiple times to achieve a starting configuration with a minimum \({\text{SSE}}_{\text{total}}\). In order to determine the optimum number of pre-screening iterations to minimize the \({\text{SSE}}_{\text{total}}\) of the starting configuration of plates and rods in the digital model, a pilot convergence test was performed. In the pilot convergence test, the minimum \({\text{SSE}}_{\text{total}}\) was determined for eight pre-screening iterations from 1 to 600,000, and each pre-screening process started with the same nominal initial Voronoi tessellation model. The procedure was repeated ten times for each of the eight pre-screening iterations, and the mean and standard deviation of the minimum \({\text{SSE}}_{\text{total}}\) were calculated (Appendix Fig. 11). The minimum \({\text{SSE}}_{\text{total}}\) appeared to converge between 300,000 and 600,000 iterations. The converged value for the minimum \({\text{SSE}}_{\text{total}}\) was roughly 17% less than the minimum error associated with no pre-screening process (1 pre-screening iteration). In addition, the converged minimum \({\text{SSE}}_{\text{total}}\) was approximately 25% less than the maximum error (at the 99% confidence bound), which is the largest \({\text{SSE}}_{\text{total}}\) that could be obtained if no pre-screening process was employed in the modeling framework. This pilot convergence test shows that the pre-screening process helps to reduce the \({\text{SSE}}_{\text{total}}\) of the starting configuration of plates and rods in the digital model, and based on this test, the number of pre-screening iterations was selected to be 600,000 for the models generated in this study.