What is MMTF?

The Macromolecular Transmission Format (MMTF) is a new compact binary format to transmit and store biomolecular structural data quickly and accurately.

Benefits of using MMTF?


The MMTF format reduces your bandwidth needs and allows in memory management of large structure. This enables you to overcome the I/O bottlenecks in structural bioinformatics analysis.

The entire PDB archive (~121,000 structures) can be stored in less than 7GB. Meaning it can fit into RAM on a Desktop machine.


MMTF uses a compressed binary format. This allows efficient parsing of and access to structural data. You concentrate your efforts on analysis.

The viral capsid (PDB code: 3J3Q) can be loaded and parsed in seconds in a web-browser.


Simple, well documented APIs to the data are provided. Further, the format is extensible and contains the information required to understand the structure (e.g. secondary structure and bonding information).

Get started in Java, Python and JavaScript. The C/C++ implementation of the MMTF API is under development.

									// Get the message pack byte array from the web by PDB code
									MmtfStructure mmtfData = ReaderUtils.getDataFromUrl("4CUP");

									// Decode message pack byte array as flat arrays holding the structural data
									StructureDataInterface dataInterface = new GenericDecoder(mmtfData);
									from mmtf import fetch

							 	 # Get the data for 4CUP
							 	 decoded_data = fetch("4CUP")

							 	 # Print the number of chains
							 	 print("This structure has "+str(decoded_data.num_chains)+" chains")
									// Fetch PDB ID 4CUP in MMTF format and print the decoded MMTF data
										    // onLoad callback
										    function( mmtfData ){ console.log( mmtfData ) },
										    // onError callback
										    function( error ){ console.error( error ) }

How can I use MMTF?

For visualization and interactive analysis of large PDB structures

View 3Dsig slides

For large-scale structural calculations such as geometric queries or structural comparisons over the entire PDB archive

View presentation

Who uses MMTF?

Quick start with:

Try it

Load any PDB ID as an MMTF file.

How do I start?

Can I get a demo?

How can I contribute?

  • Implement an MMTF decoder library in your favorite language
  • Interface MMTF to your application
  • Found a bug? Create an issue on GitHub:
  • Contact us: mmtf@rcsb.org
  • Join the mailing list: MMTF-Users


This project is supported by NIH BD2K Award U01 CA198942