Introduction: 3D Print a Protein: Modeling a Molecular Machine

This instructable was inspired by a great walkthrough by Jessica Polka over at I wanted to give it greater exposure to the layman, so I'd like to give credit where credit is due! Enjoy. 

Atoms. Molecules. Proteins. These words may ring a distant bell from high school chemistry, dredging up dusty recollections of copying figures from ancient and incomprehensible textbooks. Assignments drawing multitudes of straight lines from letter to atomic letter. Perhaps you even recited a few molecules or proteins and their functions from memory after cramming the night before. Without really understanding what they were, or why you needed to know about them, you did what you had to do to get the grade and you turned your attention to more important things. Rightly so!


I hope to intrigue you just enough with this Instructable to turn around and take one last look at the world of molecules and proteins in a more modern and accurate way, and appreciate the awesome world of little molecular machines that come together and make life happen.

Hands on experiences and demonstrations are the cornerstone of good teaching and effective learning. Many people need the degree of free-form manipulation a physical model allows in order to learn effectively. They need to “grasp” a concept, they need to “hold” an idea in their mind, and “feel” like they finally understand a concept in all its facets before moving on to more complicated concepts. Traditional means of visualizing molecular models lose much of their meaning as 2D representations of an inherently 3D structure. 

At a relatively low price point compared to subtractive fabrication and injection molding, and a high degree of customization relative to commercially available molecular models, 3d printing makes a hands on learning experience readily available today. Plus 3D printing is just plain awesome, and using it to understand science and the beauty of the world at an atomic scale is even more awesome!

In this Instructable, I'll guide you from start to finish in choosing and installing the proper software, picking a protein model, manipulating it, and generating a surface model in a file format for 3D printing.

Get ready to have some fun!

(Side note: not only are molecular models not flat, thanks to thermodynamics, they’re also never still! Molecules and proteins are constantly jiggling, wiggling and bending. Capturing the 3D structure of a protein is the goal of this Instructable, with the capture of the dynamic microscopic world is for another time)

Step 1: Install Python

Python is one of my favorite programming languages. The syntax is clean and clear, the language is fairly high level, so there's no need for keeping track of memory or a need to compile your own programs, and it has a vibrant community. There are countless packages developed by hardworking contributors that make any task you want in a programming language happen. Why am I telling you this? Because knowing how to code gives you a tool you otherwise wouldn't have to deal with large data intractable to human eyes. Also, it's pretty damn fun and useful. (Visit CodeAcademy if you want to learn, either to create things or add some nice bullets to your resume. I promise you won't regret it). 

Hope that little blurb didn't scare you off, because in reality, you won't be doing any coding in Python at all! But, you will need to install it, since is is the bread and butter of PyMOL, the visualization package for molecules we'll be looking at next. 

Here's how to do it:
  1. Follow this link:
  2. Scroll down to Windows x86 MSI Installer (2.7) or Windows X86-64 MSI Installer (2.7) [1], depending on whether your system is 32 or 64 bit. The binaries and executables of PyMOL we'll be installing will be looking for Python 2.7! Choose the proper installation package for your operating system, if yours is different. I'll be installing a 64 bit version.

    (64bit programs will only run on 64bit machines. 32bit programs will run on older computers as well as newer ones. Don't mix and match between Python and PyMOL, make sure to keep your choice consistent. In order to check what you have and see if you need 32bit, you can go to Control Panel>System and Security>System)
  3. Download the package, open, and install it. Follow all the default options. 
  4. Hooray! Python should now appear in your new C:\Python27 folder!

Onto the next step, installing PyMOL.

Step 2: Install PyMOL

PyMOL is a free and open-source modeling and visualization program for small molecules and proteins. PyMOL has an active and growing community, as well as a significant share of the market in scientific literature, which makes it a perfect tool to use for the creation and customization of molecular models. PyMOL allows you to create and visualize molecular models, from the traditional ball and stick model that emphasizes atoms and bonds, to space filling models that emphasize volume and surfaces. We'll be printing a space filling model in this instructable to give an idea of what a protein would actually look like. 

The PyMOL Wiki has excellent documentation on how to install PyMOL for all modern operating systems. The main PyMOL website has pre-compiled builds for both Mac and Linux readily available. Luckily, you don't need to compile your own Windows executable from the source code (although you certainly can if you'd like)- others have thankfully already done so and made the results publicly available. I'll show illustrated steps here for a Windows installation, since that was the operating system I used. 

Install PyMOL on Mac:

Install PyMOL on Linux:

Install PyMOL on Windows:

Briefly, and Illustrated:
  1. Follow the link given in step 2 of the Windows installation guide on the PyMOL Wiki. 
  2. Download the correct version of PyMOL (Since the Python 2.7 I installed previously is 64bit, I'll install the 64bit PyMOL file,‌exe). 
  3. Once you've downloaded the PyMOL .exe, run the installer. Use all default installation settings.
  4. In order to run PyMOL, navigate to C:\Python27\PyMOL in your filesystem and run the PyMOL.exe Application. (You can also create a desktop shortcut at this time). 

Now time to find some proteins!

Step 3: Pick a Protein

Background: Protein Data Banking

When biologists and biochemists discover the structure of a new protein (most often by either by X-Ray Crystallography or NMR Spectroscopy) they are usually required to submit their new structures to one of several massive repositories online. These structures can then be accessed by scientists that want to verify, use, and improve upon their findings. These repositories are made available to the public as well, in an effort to educate the public about the discoveries being made, and share the results that their taxpayer dollars helped fund. Aptly named the Protein Data Bank, anyone with a computer has nearly all of the discoveries of modern science at their fingertips when choosing a protein model to print in 3D.

Banks to Use

The Research Collaboratory for Structural Bioinformatics (RCSB), a collaboration between Rutgers, UCSD, and Wisconsin-Madison, hosts a Protein Data Bank here, which I used:

RCSB is a member of a greater world-wide scientific collaboration called the World Wide Protein Data Bank, which links to RCSB and other protein banks worldwide.

Choosing a Protein: Where to Start

The search options for choosing a protein can be quite overwhelming if you have no idea where to start. If you have no clue what you'd like to print or what you can print, RCSB has a featured protein of the month. Featured proteins provide 3D models along with insightful write-ups and animations on the function and significance of the molecules/proteins that interest you. If ever you find a protein and would like to know more about it and a basic Wikipedia doesn't quite fill you in, Proteopedia is maintained closely along with most Protein Data Bank entries. 

Search Options

When you search for a protein, say, "hemoglobin" you'll be given the option to sort the results. I'll explain the more interesting sorting features here.

The sorting method that gives you the greatest selection is sorting by organism. For the hemoglobin search alone we have results from hundreds of different organisms (not just animals, too!). Try taking a look at the differences between hemoglobin from a human, a human with sickle-cell disease, a horse, a sperm whale, or a worm

As you scroll through a search, you'll find that there are many different structures for a protein, depending on temperature, what kind of solution the protein was in when scientists discovered its structure, and its resolution (in Ångströms, where the diameter of a single Chlorine atom is 1Å. A single Hydrogen atom has a diameter of .25Å.) Protein structures even vary depending on what they are attached to while they are doing their jobs: hemoglobin changes shape with each Oxygen molecule it grabs, and it grabs 4! (changing shape to make each "grab" successively easier, called cooperative binding). These won't matter too much for a 3D print and our uses, but matter very much to researchers: a more accurate model in a certain condition could mean a difference when it comes to an experimental new drug theoretically interacting with a protein. 

Downloading the structure

In order to download the 3D structure, navigate to the upper right corner of the protein page (on RCSB) near the protein designation (in this case, 1HHO for normal human Hemoglobin, the protein that transports oxygen in our red blood cells) and click download files. Download your protein as a PDB file. (Select Text for uncompressed, or .GZ for a compressed file you'd need to unzip).  

Step 4: Protein Surface

Once you have your protein file downloaded, and all your dependencies are sorted, it's time to open your file in PyMOL!
  1. Open PyMOL. you'll have the menu bar and the viewer open.  
  2. Go to File>Open on the menu bar. Make sure to have PyMOL searching for all extensions. Open the molecule file you downloaded previously. 
  3. You'll see your molecule open here in the viewer at this point! I strongly encourage you to play around with all the views and features you have available to you. This is the exciting intersection of chemistry, biology and technology at your disposal.
  4. Some helpful commands: Left mouse button rotates, middle mouse button moves the molecule, right mouse button moves up and down in the z dimension. (More information on basic commands is located here and a cheat sheet is located here, courtesy of the PyMOL Wiki)

    (Fun to note: if you check Display>Stereo and change Display>Stereo>Stereo Mode you can enable 3D viewing right at your computer screen using Cross-Eye Vision or red-blue Anaglyph Vision !)
  5. In order to render your molecule as a surface, go to the "S" box (Show) to the right of your protein name, click, then hover over as. From there, you can click on the surface option. 
  6. From here, you can change how your surface was generated, how it was displayed, or it's color using the Setting>Surface menu.
  7. Once you're satisfied with your surface, head to File>Save Image As> VRML2. This will save your image as a .wrl file, part of the VRML format (Virtual Reality Modeling Language).
At this point, you may already be at the point where you can submit your model to a place that would print it! i.materialise and Shapeways both support .wrl files. You may need to scale your model down or up, or rotate it, depending on your printing needs and desires. You also might like to port your new molecular file to an .stl file, one of the most common 3D modeling/printing formats available, and the one Makerbot uses. I'll go into the myriad of 3D manipulation programs available, and cover the basic functions you'd need to perform to get your file Makerbot .stl ready.

Step 5: Export

In terms of paid software options, Maya, 3DS Max, and SolidWorks all support the import of .wrl files and the export of .stl files. These software packages are brilliant pieces of technology that are incredibly complex and allow amazing and artistic creations to be made and animated. Unfortunately, they are also quite expensive, and proprietary in nature.

Luckily, there are many open source packages, that, while not as extensive as the aforementioned giants, will get us what we want. And will give us the basic editing and conversion options we need without requiring courses in 3D animation or weeks of tinkering in order to learn our way around. Blender and Meshlab are both free and open source software suites that can import .wrl files, edit and manipulate them, and save them as .stl files. I'll cover Meshlab conversion here, as it seems to be the more limited, but user friendly of the two. 

  1. Follow the link highlighted on MeshLab's main website, and download whichever file type is appropriate for your operating system. You'll want the .exe if you're on a Windows machine. 
  2. Download the .exe, navigate to the appropriate downloads folder, and install MeshLab. Use all default prompts. 
  3. Once you have MeshLab up and running,  go to File>Import Mesh, and import your .wrl file. 
  4. Here you can mess around to your heart's desire with Meshlab's functions. Click and drag to rotate and position your protein. 
  5. Once you're satisfied, go to File>Export Mesh, and export your file to your desired location as an .stl file.

There you go, .stl and ready to go! There are other tutorials out there, primarily for blender, that would cover more advanced manipulation. For example, manipulating the "bulge" of your 3D print, merging multiple shapes, or hollowing out your objects to save on printing fees if your printing service doesn't do so for you. Feel free to share the absolute best guides and give everyone a source of knowledge when it comes to this exciting new technology. 

Step 6: Final Model and Final Thoughts

Here's the final print of human hemoglobin!

I've provided an overlay with the molecular structure as one of the pictures so you can get to know this hard working protein in molecular detail. Hemoglobin is essential to our day to day survival, and was essential to the survival of most organisms that adapted to use oxygen back throughout our planet's history!

Future plans call for using different colors, polishing the ABS by either dipping the print in acetone, or polishing it with acetone vapor. This print is paintable too, so I'd enjoy highlighting the portions in particular where oxygen would bind on this print, or pointing out the mutation site on sickle-cell hemoglobin that causes it to stick to other hemoglobins. I'd love to try printing the raw molecular scaffold of a protein without the "shell" surface as well. What you'd lose in reality, you'd gain in bond detail and intricacy.

Thanks for reading, drop a line with any suggestions or comments, and happy making!  


sexstrap made it! (author)2016-07-19

Well a big thanks to theabion for reposting this here in Instructables as the original source link now seems to be broken.

Great Instructable, thanks again theabion for your forethought on the transient nature of the WWW

ethangarner made it! (author)2013-11-05

Wow. This is really similar to an article posted on the ASCB website.
In fact, your protocol is almost an exact copy.

If it comes from that source, is attribution required?

-Ethan Garner
Assistant Professor
Harvard University.

theabion made it! (author)theabion2013-11-05

Apologies. I wanted to try my hand at the protocol, and considered it to be awesome. I wanted the layman to appreciate the visualization now capable with 3D printing technology. I'm now giving credit where credit is due. Link to the original is now front and center.

Gailun made it! (author)2013-11-04

3D printers fantastic, even after the students can also be used on the experimental class

safay made it! (author)2013-08-22

Thanks for putting this together! Very cool, lots of educational potential here.

sjb343 made it! (author)2013-08-05

Hello! I was wondering about how much does one of these models cost if you go through the websites you mentioned?


Marik I. made it! (author)2013-07-15

Do you know if you could design an enzyme and print it? I find this instructable very cool!

theabion made it! (author)theabion2013-07-19

Hey there. When it comes to printing enzymes that already exist, protein data banks have got you covered (enzymes are just proteins that have jobs breaking things down or building things up, after all). For example, here's pig and human Amylase, the enzyme that helps you break down starches in your food. Printing an enzyme you want is doable, so long as its structure has already been discovered.

If you mean designing an enzyme from scratch, I'm afraid that's still something scientists are still researching. Ever heard of protein folding? Even when you know what sequence of peptides you have (peptides are the building blocks of proteins), you need a supercomputer to figure out what it would look like in action! We've been successful in tweaking known proteins in order to change their functions, but making them from scratch is something that's still at the edge of science. There are some links at the bottom here if you'd like more information. Here's one synthetic protein I found:

flammaefata made it! (author)2013-07-18

Awesome awesome idea! It'll help students get a better idea of how the proteins and enzymes interact - I really love this application of a 3D printer!

soroushjp made it! (author)2013-07-10

Awesome project! Super cool to learn about PyMol, protein databases and their intersection with 3D printing as well. Thanks theabion!