NIH 3D Workflows

NIH 3D offers several automated workflows to generate 3D mesh files from certain scientific data formats and other mesh files. For a description of each workflow, their inputs, and their outputs, please see below. Over time we will be adding more input and output formats and model generation tools, so stay tuned!

Documentation for our workflows can be found in Github 

Terminology

In NIH 3D we have a few conventions for how we refer to "3D Models" due to the type of data we can process. In 3D computer graphics, "3D modeling" refers to the generation of a surface representation that can be manipulated using vertices, edges, and polygons in a 3D space. Outside of computer graphics, 3D modeling describes a variety of datasets that can be used to define a 3-dimensional object. For this reason, we distinguish these two data types as follows:

autogenerated  from mesh file

Mesh Files

"Mesh File" is used to describe a 3D Object composed of vertices, polygons, and edges. NIH 3D can ingest and output a variety of these formats (eg. stl, wrl, glb, x3d)

autogenerated  from data file

Data Files

"Data File" is used to describe a 3D dataset from which NIH 3D can create a 3D mesh file. These include .cif, pdb, sdf, and may other formats.

Software

Chimera X

Many of the NIH 3D workflows use Chimera X , a biovisualization program from UC San Francisco.

The Visualization Tool Kit (VTK) and Simple ITK

Our DICOM workflows use VTK , an open source software package from Kitware, and Simple ITK , an open-source image analysis package supported by NIAID.

PyMeshLab & TriMesh

Our mesh conversion workflows usePyMeshLab , a Python library that interfaces with MeshLab  an open source package for processing and editing triangular meshes. We also use Trimesh , another Python based library for loading and using triangular meshes.

Blender

Our mesh repair workflow and rendering is currently done with Blender , an open source 3D modeling, animation, and rendering package.

autogenerated by NIH 3D

Quicksubmits

Our Quicksubmit workflows will automatically generate several representations (see ChimeraX presets below) directly from a database ID. NIH 3D will also fetch metadata associated with these files and attach it to the entry. We don't permit users to EDIT a Quicksubmit, as these entries are designed to accurately reflect the databases they are retrieved from. If you note a problem with a Quicksubmit, please  Contact Us and we can assist you to make changes

PDB

Go to https://www.rcsb.org/   to find a molecule of interest. The PDB ID is a 4-character alpha-numeric code that is prominent with each entry (eg. 6VXX).

Note that our system will not accept obsolete PDB IDs. If you wish to create models from an obsolete ID, download the mmCIF file from the entry and upload it as a regular submission.

We now download and store the mmCIF file for all PDB Quicksubmits such that if the entry becomes obsolete we can still re-run workflows and add output formats/styles as they become available.

PubChem

To get a PubChem ID, go to PubChem  and search for your molecule of interest. The ID is the "Compound CID" and will be a numeric string (eg. 9549299).

Please note that we can only generate a model if there is a 3D representation available. If you go to the compound entry in Pubchem (eg. 9549299 ) and look under "Structure" there must be a 3D Structure available

EMD

Go to the EMD  and search for your molecule of interest. The ID will be the numeric portion of the EMD-XXXXX code which is prominently displayed with each entry.

generated from data file

Scientific Data Files

NIH 3D can process a number of scientific data formats. In this section we will describe the outputs fromcif, mol, mol2, pdb, pdb1, mae, map, omap, sdf orDICOM input files.

ChimeraX - cif, mol, mol2, pdb, pdb1, mae, map, omap, sdf

When a user submits a "Molecule", ChimeraX will make a determination as to whether it should be classified as a "Small Molecule" or a "Biomacromolecule". Biomacromolecules are defined as having nucleic acid or amino acid residues, while small molecules do not. We ask that you submit viruses (whole capsids) or cells/organelles to those respective categories as we cannot automate classification of these structures. Viruses and cells/organelles undergo the same processing as Biomacromolecules.

ChimeraX will output a .glb file which is vertex colored when appropriate. This glb file is then processed into .stl, x3d, and .wrl files by our mesh-conversion workflows. Note that we only output .stl for monochrome representations as .stl does not support vertex color. We do not output wrl or x3d of monochrome outputs for similar reasons

The NIH 3D Script

When loading a molecular data file or database accession code, NIH 3D will run a few basic operations including:

Structural Data:
  1. For structures of <= 30,000 atoms, it computes bonds based on interatomic distances to sidestep any problems the file format readers may have had processing the file. It then does some sanity checks on the resulting bonds (i.e. are there very short bonds?) and if those checks fail it reverts to the bonds from the input.
  2. For user-supplied files, it tries to expand the structure based on symmetry information from the input file, if any was provided.
  3. The total atomic mass of the heavy atoms in the structure is reported in kDa.
  4. Presets are applied based on whether the structure is considered a "small molecule", a "medium macromolecule" or a "large macromolecule". Small molecules have no polymeric chains. Medium macromolecules are any user-supplied polymeric structures or fetched polymeric structures with less than 250,000 atoms. Large macromolecules are fetched polymeric structures with 250,000+ atoms.
Volumetric Data:
  1. If the user did not provide a contour level it is automatically determined. For automatic determination, if the volume data was fetched from the EMDB it uses the EMDB suggested contour level if available. Otherwise, it chooses a contour level such that 1% of voxels (1% of the data grid points) lie above it. This contour-level determination is actually part of all the volume data presets, but the script only executes this routine once, and then executes the remaining parts of the various presets it applies.

ChimeraX Presets

ChimeraX will generate several representations as appropriate for the input data using the NIHPresets. These presets can be downloaded for your personal use from the ChimeraX Toolshed . Below are examples of each preset with theNIH 3D suffix in bold and the i ChimeraX preset name in italic.

  • -Vis are NOT intended for 3D printing
  • -Print have been thickened and struts have been added to support 3D printing. These are NOT guaranteed to be 3D printable. These models may have floating pieces and are likely to have intersecting vertices and non-manifold geometry. Many 3D printers have software to repair these issues or you can use one of several free available tools (some are described in this article  )

Ribbon-Secondary-Vis

Ribbon Secondary Structure

Molecular ribbon representation with each amino acid colored by secondary structure. α-helix: blue. β-sheet: red. Coil: yellow. Intended for visualization only, not 3D printing.

Ribbon-Secondary-Print

Ribbon Secondary Structure (Printable)

Molecular ribbon representation with each amino acid colored by secondary structure. α-helix: blue. β-sheet: red. Coil: yellow. Ribbons are thickened and non-physical struts added to make more robust for 3D printing

Ribbon-Rainbow-Vis

Ribbon Rainbow

Molecular ribbon representation with each biopolymer chain colored by rainbow from N-terminus (red) to C-terminus (blue). Intended for visualization only, not 3D printing.

Ribbon-Rainbow-Print

Ribbon Rainbow (Printable)

Molecular ribbon representation with each biopolymer chain colored by rainbow from N-terminus (red) to C-terminus (blue). Ribbons are thickened and non-physical struts added to make more robust for 3D printing.

Ribbon-ByChain-Vis

Ribbon by Chain

Molecular ribbon representation with each biopolymer chain a different color. Intended for visualization only, not 3D printing.

Ribbon-ByChain-Print

Ribbon by Chain (Printable)

Molecular ribbon representation with each biopolymer chain a different color. Ribbons are thickened and non-physical struts added to make more robust for 3D printing.

Ribbon-Vis

Ribbon Monochrome

Monochrome representation with biopolymer chains shown as ribbons. Intended for visualization only, not 3D printing.

Ribbon-Print

Ribbon Monochrome (Printable)

Monochrome representation with biopolymer chains shown as ribbons. Ribbons are thickened and non-physical struts added to make more robust for 3D printing.

Surf-ByChain-Print

Surface by Chain

Molecular surface representation with each biopolymer chain a different color.

Surf-Hydropathy-Print

Surface Hydrophobicity

Molecular surface representation colored by local hydrophobicity. Orange: hydrophobic. Blue: hydrophilic.

Surf-Coulombic-Print

Surface Coulombic

Molecular surface representation colored by local charge. Blue: positive. Red: negative.

Surf-Print

Surface Monochrome

Monochrome molecular surface representation.

Bas-Print

Ball and Stick Monochrome

Atoms shown as ball-and-stick in a monochrome representation.

Bas-Color-Print

Ball and Stick

Atoms shown as ball-and-stick in a representation with standard colors.

Sticks-Color-Vis

Sticks

Atoms shown as sticks in a representation with standard colors. Intended for visualization only, not 3D printing.

Sticks-Vis

Sticks Monochrome

Atoms shown as sticks in a monochrome representation. Intended for visualization only, not 3D printing.

Sticks-Color-Print

Sticks (Printable)

Atoms shown as sticks in a representation with standard colors. Sticks are thickened to make more robust for 3D printing.

Sticks-Print

Sticks Monochrome (Printable)

Atoms shown as sticks in a monochrome representation. Sticks are thickened to make more robust for 3D printing.

CPK-Color-Print

CPK

Atoms shown as space-filled in a representation with standard colors.

CPK-Print

CPK Monochrome

Atoms shown as space-filled in a monochrome representation.

Surf-Radial

Volume Radial

Molecular surface from electron microscopy, contoured at recommended level. The color represents radial disance from the center of the model.

Surf

Volume

Monochrome molecular surface representation (volumetric files).

DICOM Workflows

NIH 3D uses the Visualization Toolkit (VTK)  to process a .zip of sequential .dcm (DICOM) files into a 3D mesh file. This script uses threshold values that should generally capture bone from a CT scan then will isolate the largest continous mesh and discard any debris. Your file will be rejected if it doesn't conform to the expected structure of the files which is:

dicoms.zip
—— image01.dcm
—— image01.dcm
—— image01.dcm

While the workflow may accept imaging other than CT if it conforms to the above file structure, it will either return with an error upon processing or output undesireable results. We plan to add further medical image processing to NIH 3D in the future, but until that time, if you have other formats that you would like to process there are free tools available including 3D Slicer  and Horos .

autogenerated from mesh file

Mesh File Submissions

NIH 3D currently accepts and outputs files in .glb, .x3d, .stl, and .wrl format. Whichever input file you provide will be converted into the the other formats, while your original file will remain untouched.

Due to differences in the specifications of different file formats, you may lose certain attributes of your source file when moving between formats. For example, stl files do not support vertex color, and therefore will lost that attribute in the conversion process.

Current Limitations

While you may upload a .glb file that contains textures, animations etc., these will not be reflected in the rendered image at this time. We will be fixing this issue shortly. If you go into "3D" mode with the viewer, you will see that your textures, animations, smoothing etc. have not been altered.

Mesh Repair

NIH 3D uses Blender to attempt repair of meshes for 3D printing. We recommend that you consider your input file carefully before selecting "mesh repair" as not all meshes are suitable (eg. if there are in many disconnected pieces, has very complicated or messy geometry) and will therefore add significant processing time which may still not yield a printable product.

The mesh repair system will determine whether your mesh has manifold edges and vertices, and whether it is free of intersecting vertices. If it does not pass all three tests it will attempt to fix the mesh such that it has no manifold edges. It will also merge any disconnected but overlapping geometry. Any files that have been repaired will have the _mr suffix associated. This suffix is not a guarantee that the model is printable on all 3D printers.

Note that all stl files derived from ChimeraX outputs are also run through mesh repair by default. You will see both a -mr and not mr version (eg. -ribbon-print_NIH3D-mr.stl and -ribbon-print_NIH3D.stl)