Research Ideas and Outcomes : Methods
Print
Methods
Improved understanding of brain morphology through 3D printing: A brief guide
expand article info Christopher R Madan ,§
‡ Boston College, Chestnut Hill, MA, United States of America
§ University of Alberta, Edmonton, AB, Canada
Open Access

Abstract

Background

Brain morphology can provide insights into inter-individual differences. In the present guide, we outline the steps for generating a print-ready 3D model of brain structures from a standard T1-weighted structural MRI volume. By improving our understanding of brain morphology, we hope to enhance teaching and scientific communication, as well as aid in the development of novel measures of brain morphology.

New information

The present guide details the steps for generating a print-ready 3D model of brain structures from a standard T1-weighted structural MRI volume.

Keywords

brain morphology; 3d printing; structural MRI

Introduction

Recent research has demonstrated that shape-related properties (i.e., morphology) of the brain can be useful in characterizing inter-individual differences (e.g., Hogstrom et al. 2013, Madan and Kensinger 2016, Maguire et al. 2000, McKay et al. 2014, Strike et al. 2015, Walhovd et al. 2014). Formal analyses of the shape of cortical and subcortical brain structures rely on quantitative measurements. However, qualitative characteristics of brain morphology can be a useful compliment, particularly in teaching and scientific communication settings. Improved qualitative methods may also be useful in laying the foundation for the development of novel quantitative methods. Here we outline a brief guide for the 3D printing of brain morphology, beginning from a standard T1-weighted structural MRI volume.

Implementation

Methodology

The processing pipeline used to produce a print-ready mesh is outlined in Fig. 1 (For a guide for creating 3D visualizations of MRI data, see Madan 2015)

Figure 1.

Illustration of the processing pipeline involved in converting a structural MRI volume to a print-ready surface mesh.

1. Surface reconstruction

FreeSurfer (http://freesurfer.net/fswiki) (Dale et al. 1999, Fischl 2012, Fischl et al. 2002) is first used to construct a cortical surface mesh from a standard T1-weighted structural volume (e.g., MPRAGE or SPGR). The standard recon-all procedure was used, though this additionally provides many other metrics that are not needed here (e.g., cortical thickness, cortical parcellations). This process takes many hours to complete.

2. Converting mesh and decimation

After the FreeSurfer pipeline has been run, the remaining steps can be executed within a few minutes, provided the necessary programs are already installed. Nearly all of these remaining steps can be executed via a command-line interface, with the commands listed in Table 1. These steps were developed and tested for Mac OS X, but should readily be adapted for use on Linux operating systems.

Code

1

2

3

4

5

6

7

8

9

10

11

12

13

mg=/Applications/Research/imaging/meshgeometry/meshgeometry_mac

ml=/Applications/meshlab.app/Contents/MacOS/meshlabserver

td=/Applications/Research/imaging/vcglib/apps/tridecimator/tridecimator

 

f=rh.pial

$mg -i $f -centre -o $f.ply

$td $f.ply $f.dec.ply 100000

$ml -i $f.dec.ply -o $f.dec.stl

 

f=lh.pial

$mg -i $f -centre -o $f.ply

$td $f.ply $f.dec.ply 100000

$ml -i $f.dec.ply -o $f.dec.stl

First, the cortical surface files (lh.pial and rh.pial) are converted to a generic mesh format (.ply) using meshgeometry (https://github.com/r03ert0/meshgeometry). As an example, resulting ply files are provided as supplemental here (Suppl. material 1), based on the 'bert' subject from FreeSurfer (https://surfer.nmr.mgh.harvard.edu/fswiki/TestingFreeSurfer). Second, tridecimator – a program distributed as part of VCGlib (http://vcg.isti.cnr.it/vcglib/install.html; see *1 for details on compiling tridecimator) – is used to decrease the complexity of the mesh, i.e., polygon reduction via decimation. Prior to this step, the mesh for each hemisphere will be made of 250,000-300,000 polygons; this decimation step will reduce the number of polygons to 100,000 (but the code can be midified to another number). This reduction in polygons is necessary to make the model easier to print, with minimal effect on the shape of the mesh. Third, MeshLab (http://meshlab.sourceforge.net) is used to convert the mesh again (.ply to .stl).

3. Repairing the mesh

For 3D printing, meshes usually need to be 'repaired' to ensure that there are no holes or other issues with the mesh structure (cf. https://library.ualberta.ca/services/3dprinting/preparing-3d-model). This repair process can be readily accomplished using the online version of Netfabb (https://netfabb.azurewebsites.net), though a local version can instead be installed (https://www.netfabb.com/products/netfabb-basic).

(Also see http://www.shapeways.com/tutorials/how_to_use_meshlab_and_netfabb.)

4. 3D printing

The resulting files (.stl) are now print-ready. Fig. 2 shows an example of the resulting printed models. The hemisphere surfaces were split by the printers (University of Alberta Libraries) using Netfabb. Each 'quarter' of a brain is approximately the size of a golf ball and took 4 hours to print; each piece weighs approximately 30 grams, printed using a plastic filament (PLA/PHA blend) from ColorFabb (http://colorfabb.com/pla-pha).

Figure 2.

Photos of a resulting 3D-printed surface. (A) View of the full models. (B) Close-up of the coronal cross-section. (C) Close-up of the lateral surface. (D) Photo of the Machina Mk2 X20 printers used to print the models, located at the University of Alberta Libraries.

Acknowledgements

The code for converting and decimating the meshes was modified from Roberto Toro's qcsurf project (https://github.com/r03ert0/qcsurf; also see https://github.com/cMadan/brain3d). Information for repairing meshes to make them print-ready was inspired by a tutorial from the University of Alberta Library website (https://library.ualberta.ca/services/3dprinting/preparing-3d-model). The 3D models were printed by the University of Alberta Libraries.

Funding program

CRM is supported by a fellowship from the Canadian Institutes of Health Research (FRN-146793).

References

Supplementary material

Suppl. material 1: Surface meshes (.ply) from FreeSurfer subject 'bert'.
Authors:  Christopher R Madan
Data type:  surface mesh
Endnotes
*1

Compiling tridecimator

To compile tridecimator, you need to run two commands (from inside the vcglib/apps/tridecimator directory):

[1] qmake tridecimator.pro

This should generate a few files, including 'Makefile'.

[2] make

You should now have 'tridecimator' (no file extension) – this is the actual executable program. (I get 1 warning when I compile, but this is fine.)

If you don't have qmake installed, see https://github.com/thoughtbot/capybara-webkit/wiki/Installing-Qt-and-compiling-capybara-webkit.