MMTF-Spark is a Java open source project that provides APIs and sample applications for the scalable mining of 3D biomacromolecular structures, such as the Protein Data Bank (PDB) archive. MMTF-Spark uses Big Data technologies to enable high-performance parallel processing of macromolecular structures. MMTF-Spark use the following technology stack:
- Apache Spark a fast and general engine for large-scale distributed data processing.
- MMTF the Macromolecular Transmission Format for compact data storage, transmission and high-performance parsing
- Hadoop Sequence File a Big Data file format for parallel I/O
- Apache Parquet a columnar data format to store dataframes
- BioJava a framework for processing biological data
The companion project mmtf-workshop-2017 offers an introduction to Apache Spark and in-depth tutorials and sample code how to use MMTF-Spark.
In addition, a Python version MMTF-PySpark is under development. MMTF-PySpark offers demos as Jupyter notebooks as well as an experimental zero-install Binder 2.0 deployment of MMTF-PySpark.
For high-performance, parallel processing, mmtf-spark can read the PDB archive in the MMTF file format from Hadoop Sequence Files. See mmtf.rcsb.org for more details. The installation instructions cover the download of MMTF-Hadoop Sequence files.
Example of running a simple structural query (see PolyPeptideChainStatistics.java).
spark-submit --class edu.sdsc.mmtf.spark.mappers.demos.PolyPeptideChainStatistics INSTALL_DIRECTORY/mmtf-spark/target/mmtf-spark-0.3.0-SNAPSHOT.jar
Example of running a structural alignment (see DemoQueryVsAll.java).
spark-submit --class edu.sdsc.mmtf.spark.alignments.demos.DemoQueryVsAll INSTALL_DIRECTORY/mmtf-spark/target/mmtf-spark-0.3.0-SNAPSHOT.jar
Example of retrieving PDB metadata (see PdbMetadataDemo.java).
spark-submit --class edu.sdsc.mmtf.spark.datasets.demos.PdbMetadataDemo INSTALL_DIRECTORY/mmtf-spark/target/mmtf-spark-0.3.0-SNAPSHOT.jar
Example of retrieving PDB annotations from the SIFTS project (see SiftsDataDemo.java).
spark-submit --class edu.sdsc.mmtf.spark.datasets.demos.SiftsDataDemo INSTALL_DIRECTORY/mmtf-spark/target/mmtf-spark-0.3.0-SNAPSHOT.jar
Example with command line arguments. This example reads the PDB files in an input directory (recursively) and creates an MMTF-Hadoop Sequence file directory (see PdbToMmtfFull.java).
spark-submit --class edu.sdsc.mmtf.spark.io.demos.PdbToMmtfFull INSTALL_DIRECTORY/mmtf-spark/target/mmtf-spark-0.2.0-SNAPSHOT.jar PDB_FILE_DIRECTORY MMTF_HADOOP_FILE_DIRECTORY
Bradley AR, Rose AS, Pavelka A, Valasatava Y, Duarte JM, Prlić A, Rose PW (2017) MMTF - an efficient file format for the transmission, visualization, and analysis of macromolecular structures. PLOS Computational Biology 13(6): e1005575. doi: 10.1371/journal.pcbi.1005575
Valasatava Y, Bradley AR, Rose AS, Duarte JM, Prlić A, Rose PW (2017) Towards an efficient compression of 3D coordinates of macromolecular structures. PLOS ONE 12(3): e0174846. doi: 10.1371/journal.pone.01748464
Rose AS, Bradley AR, Valasatava Y, Duarte JM, Prlić A, Rose PW (2018) NGL viewer: web-based molecular graphics for large complexes, Bioinformatics, bty419. doi: 10.1093/bioinformatics/bty419
Rose AS, Bradley AR, Valasatava Y, Duarte JM, Prlić A, Rose PW (2016) Web-based molecular graphics for large complexes. In Proceedings of the 21st International Conference on Web3D Technology (Web3D '16). ACM, New York, NY, USA, 185-186. doi: 10.1145/2945292.2945324
This project is supported by the National Cancer Institute of the National Institutes of Health under Award Number U01CA198942. The content is solely the responsibility of the authors and does not necessarily represent the official views of the National Institutes of Health.