File Formats
File format currently supported
- Standard mmCIF from PDB and PDB-DEV (.cif,.bcif)
- mmCIF from cellPACK (.cif, .bcif).
_entity.details
holds the function,_entity.pdbx_description
holds the full name with hierarchy path,_entity.pdbx_ec
holds the original PDB file used, and_entity.pdbx_parent_entity_id
holds the label. Instances are defined as biological assemblies. - mmCIF from Petworld (.cif, .bcif). Each object is present only once in the mmCIF file, and the locations of all the instances are provided as transformation matrices in the
_pdbx_struct_oper_list
fields, which are normally used to define the biological assembly (BIOMT record in old PDB files). More format details can be found in the header of each mmCIF file. Furthermore, we added an entry in_pdbx_model.description
to add a description for each entity. - Explorer manifest (.zip). A special format designed for the explorer that you can use to view your own custom models.
- Mol* session (.molx). The Mol* session format, which is a zip archive containing all assets and the states to reproduce a session.
Manifest : Generic File Format Documentation
This document outlines the structure and types used in the Generic file format, which is designed to handle a variety of data types including structures, meshes, and trajectories.
Types
GenericRoot
Represents the root element in the hierarchy.
id
(string): Unique identifier for the root element.label
(string, optional): A human-readable label for the root.description
(string, optional): A description of what the root represents.children
(GenericGroup[]): An array of child groups under this root.
GenericGroup
Defines a group that can be part of a root or another group.
id
(string): Unique identifier for the group.root
(string): Reference toGenericRoot.id
, indicating the root to which this group belongs.label
(string, optional): A human-readable label for the group.description
(string, optional): A description of the group.children
(GenericGroup[], optional): Nested groups within this group.
GenericEntity
Describes an entity that can be a file with associated groups.
file
(string): The entity file name with support for various formats like.gro
,.cif
,.pdb
,.xyz
,.mol
,.sdf
,.ply
, etc.label
(string, optional): Label for the entity.description
(string, optional): Description of the entity.groups
(object[]): An array of objects linking the entity to its groups. Each object has:id
(string): Reference toGenericGroup.id
.root
(string): Reference toGenericRoot.id
.instances
(GenericInstances, optional): Definitions of instances of the entity.sizeFactor
(number, optional): A factor indicating the scale of the entity; defaults to 1.
BinaryData
Defines binary data which can be used in instances.
file
(string | Asset): The file or asset containing the binary data.view
(object, optional): Specific view into the binary data, including:byteOffset
(number): The offset in bytes from the start of the file.byteLength
(number): The length of the data segment in bytes.
GenericInstances
Specifies the instances of an entity, detailing positions and rotations.
positions
: Specifies translation vectors:data
(number[] | BinaryData): The data itself or a reference to binary data.type
(object, optional): Describes how to interpret the data; defaults to{ kind: 'Array', type: 'Float32' }
.rotations
: Specifies rotations (Euler angles, quaternion rotations, or rotation matrices):variant
(string): Specifies the type of rotation ('euler', 'quaternion', or 'matrix').data
(number[] | BinaryData): The data itself or a reference to binary data.type
(object, optional): Describes how to interpret the data.
GenericFrame
Describes a single frame in a trajectory.
time
(number): The time at which the frame occurs.entities
: An array of entities with their respective instances.file
(string): The file name of the entity.instances
(GenericInstances): Instances of the entity in this frame.
GenericTrajectory
Describes a trajectory consisting of multiple frames.
label
(string, optional): Label for the trajectory.description
(string, optional): Description of the trajectory.frames
(GenericFrame[]): An array of frames making up the trajectory.
GenericManifest
Defines the overall structure of a Generic file.
label
(string, optional): Label for the manifest.description
(string, optional): Description of the manifest.roots
(GenericRoot[]): An array of root elements.entities
(GenericEntity[]): An array of entities.trajectories
(GenericTrajectory[], optional): An array of trajectories, if any.
Example
{
"label": "cellPACK",
"description": "cellPACK model",
"roots":[
// GenericRoot
{
"id": "compartments",
"label": "Compartment",
"description": "Compartment hierarchy",
"children" : [
// GenericGroup
{
"id": "root.proteins",
"root": "compartments",
"label": "Proteins",
"description": "Proteins",
"children": []
},
...
]
},
{
"id": "functions",
"label": "Function",
"description": "Functional classification",
"children": [
{
"id": "Metabolism",
"root": "functions",
"label": "Metabolism",
"description": "Metabolism",
"children": [
{
"id": "Membrane Transport",
"root": "functions",
"label": "Membrane Transport",
"description": "Membrane Transport",
"children": []
},
...
}
},
...
],
"entities": [
//GenericEntity
{
"file": "SERCA_Y1.bcif",
"label": "SERCA_Y1",
"description": "Sarcoplasmic/endoplasmic reticulum calcium ATPase 1 PDB entry [2YFY](http://www.rcsb.org/pdb/explore.do?structureId=2YFY)",
"groups": [
{
"id": "root.proteins",
"root": "compartments"
},
{
"id": "Essential",
"root": "essentiality"
},
{
"id": "Membrane Transport",
"root": "functions"
}
],
"instances":
//GenericInstances
{
"positions": {
"data":
//BinaryData
{
"file": "SERCA_Y1_data.bin",
"view": {
"byteOffset": 0,
"byteLength": 3240
}
},
"type": {
"kind": "Array",
"type": "Float32"
}
},
"rotations": {
"variant": "quaternion",
"data": //BinaryData
{
"file": "SERCA_Y1_data.bin",
"view": {
"byteOffset": 3240,
"byteLength": 4320
}
},
"type": {
"kind": "Array",
"type": "Float32"
}
}
},
"sizeFactor": 0.0
},
...
{
"file": "TT1.ply",
"label": "TT1_membrane",
"description": "TT1 membrane",
"groups": [
{
"id": "root.TT1.membrane",
"root": "compartments"
},
{
"id": "Essential",
"root": "essentiality"
},
{
"id": "Generic",
"root": "functions"
}
],
"instances": null,
"sizeFactor": 0.0
}
],
"trajectories": null
}