Skip to content

BioJulia/MMTF.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MMTF.jl

Latest Release:

Latest Release License BioJulia Maintainer : joels94

Development Status:

Build status codecov

Description

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.

Installation

Install MMTF.jl from the Julia REPL:

julia> using Pkg
julia> Pkg.add("MMTF")

To start using the package:

julia> using MMTF

Usage

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.

Citation

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

Contributing and Questions

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.