Latest Release:
Development Status:
The Macromolecular Transmission Format (MMTF) is a compact binary format to transmit and store biomolecular structures for fast 3D visualization and analysis. MMTF.jl lets you encode and decode MMTF files.
Note that as of July 2024 MMTF files are not available to download from the RCSB PDB and the BinaryCIF format is preferred.
Install MMTF.jl from the Julia REPL:
julia> using Pkg
julia> Pkg.add("MMTF")
To start using the package:
julia> using MMTF
To download and parse a MMTF file as Julia Dict from RCSB database.
julia> MMTFdict = fetchmmtf("4HHB")
Dict{String,Any} with 39 entries:
"chainNameList" => String["A", "B", "C", "D", "A", "B", "B", "C", "D", "D", "A", "B", "C", "D"]
"bondAtomList" => Int32[7, 2, 15, 9, 21, 17, 28, 23, 33, 30 … 4337, 4331, 4342, 4339, 4352, 4344, 4361, 4354, 4373, 4363]
"numGroups" => 801
"bFactorList" => Float32[49.05, 43.14, 24.8, 37.68, 72.12, 61.79, 80.12, 26.44, 26.32, 32.96 … 43.37, 43.46, 41.77, 43.68, 45.36, 41.53, 36.25, …
"groupIdList" => Int32[1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 188, 189, 190, 191, 192, 193, 194, 195, 196, 197]
"structureId" => "4HHB"
"unitCell" => Any[63.15, 83.59, 53.8, 90.0, 99.34, 90.0]
"numAtoms" => 4779
"groupList" => Any[Dict{Any,Any}(Pair{Any,Any}("groupName", "VAL"),Pair{Any,Any}("bondAtomList", Any[1, 0, 2, 1, 3, 2, 4, 1, 5, 4, 6, 4]),Pair{A…
"numChains" => 14
"groupTypeList" => Int32[0, 11, 22, 13, 9, 7, 1, 21, 10, 0 … 3, 3, 3, 3, 3, 3, 3, 3, 3, 3]
⋮ => ⋮
pdbid::AbstractString
- PDB ID of the structure.
To parse an existing MMTF file as Julia Dict.
julia> MMTFDict = parsemmtf("path/to/MMTF/file", gzip=false)
gzip::Bool
- if set to true
, parses a compressed MMTF file.
To write a valid MMTF Julia Dict as MMTF file
julia> writemmtf(MMTFdict, "path/to/write/MMTF/file", gzip=false)
gzip::Bool
- if set to true
, writes a compressed MMTF file.
See BioStructures.jl for how to read MMTF files into a hierarchical data structure and convert them to PDB/mmCIF files.
If you use MMTF.jl, please cite the BioStructures.jl paper where it is mentioned:
Greener JG, Selvaraj J and Ward BJ. BioStructures.jl: read, write and manipulate macromolecular structures in Julia, Bioinformatics 36(14):4206-4207 (2020) - link - PDF
We appreciate contributions from users including reporting bugs, fixing issues, improving performance and adding new features.
If you have a question about contributing or using this package, our Gitter chat room would be the best starting place to communicate with other users and developers. You are encouraged to use the Bio category of the Julia discourse site for technical questions.