This instructable was inspired by a great walkthrough by Jessica Polka over at http://am.ascb.org/ascbpost/index.php/compass-points/item/81-3d-print-your-favorite-protein. 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:
- Follow this link: http://www.python.org/getit/releases/2.7/
- Scroll down to Windows x86 MSI Installer (2.7) or Windows X86-64 MSI Installer (2.7) , 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)
- Download the package, open, and install it. Follow all the default options.
- 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:
- Follow the link given in step 2 of the Windows installation guide on the PyMOL Wiki.
- Download the correct version of PyMOL (Since the Python 2.7 I installed previously is 64bit, I'll install the 64bit PyMOL file, pymol-126.96.36.199.win-amd64-py2.7.exe).
- Once you've downloaded the PyMOL .exe, run the installer. Use all default installation settings.
- 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.
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!
- Open PyMOL. you'll have the menu bar and the viewer open.
- Go to File>Open on the menu bar. Make sure to have PyMOL searching for all extensions. Open the molecule file you downloaded previously.
- 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.
- 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 !)
- 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.
- From here, you can change how your surface was generated, how it was displayed, or it's color using the Setting>Surface menu.
- 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).
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.
- 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.
- Download the .exe, navigate to the appropriate downloads folder, and install MeshLab. Use all default prompts.
- Once you have MeshLab up and running, go to File>Import Mesh, and import your .wrl file.
- Here you can mess around to your heart's desire with Meshlab's functions. Click and drag to rotate and position your protein.
- 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!