For researchers

File formats

What .mfpx is, what you get in .json, and which format to ask for.

.mfpx

The canonical deposit format, owned by molsys. It carries what a plain coordinate file cannot: connectivity, atom types, fragment assignment and cell information in one file. Nets, building blocks, fragments and framework structures are all stored as .mfpx.

Coordinates in an .mfpx are Cartesian, in ångström, not fractions of the cell — molsys keeps them that way and converts on demand. Reading them as fractional is a mistake that produces a plausible-looking structure at the wrong scale.

Read it with molsys:

import molsys
m = molsys.mol.from_file("pcu.mfpx")

Or fetch it straight into a mol object:

from mofplus import user_api
m = user_api().get_net("pcu", out="mol")

Atom types in an .mfpx may carry two annotations that matter:

  • @ separates the atom type from its fragment: c3_c2h1@ph.
  • % marks an annotated position within a fragment, used when depositing fragments whose parameters depend on which position is which.

Deposited, or generated — and how to tell

634 of the 3077 nets here came from the RCSR Systre archive alone, and nobody ever deposited a file for them. Their .mfpx is generated on request from the net's own graph: it is the maximum-symmetry embedding Systre computes, with every edge the same length and the ideal cell of the net's symmetry group, scaled so that the mean edge is 1.

That file is not a measurement, and it says so about itself. Three ways to tell it from a deposit, in decreasing order of how much you have to be paying attention:

  1. The file's own header. Generated files carry # lines above the cell saying they were generated, what the embedding is, and that the lengths are not in ångström.
  2. The response header. X-MOFpp-Geometry: computed-embedding.
  3. The JSON. geometry.computed carries the same sentence, and provenance.field_sources attributes every cell parameter and both row kinds to computed:mofpp.embedding-v1 (systre-19.6.0, rcsr-archive-key). A deposited record attributes them to mofplus instead.

Do not read a generated cell as a lattice in ångström. A real framework built on the topology has its own cell, and that number is not it. What the generated file states exactly is the topology: which vertices there are, which are joined, and across which cell boundary.

200 of those 634 are 2-periodic, and they get no .mfpx at all. /net/<name>.mfpx answers 422 for them with the reason: the format's # cell line states six parameters, a layer has three (a, b, γ), and there is no honest value for the third. Their geometry is served in full in .json, which states geometry.dimension — so a client reads the dimension once rather than guessing from the number of coordinates.

.xyz

Plain coordinates, no connectivity, no cell. Present on records that have one, for use in tools that cannot read .mfpx. Do not use it as your archival copy: the connectivity is the part that took work to establish, and it is exactly what .xyz throws away.

The net viewer on this site does not use it — it reads the topology, so that the edges it draws are the edges the deposit records, periodic images included.

.json

The record's metadata, at the record's own address. Field names match the REST core. Every JSON record carries:

  • uri — the permanent identifier
  • licence — an SPDX-style identifier, never absent
  • citation — a ready-made citation block, the record URI and the dataset release
  • files — where the deposited files are

It is served both by appending .json and by sending Accept: application/json to the ordinary record URL.

A net record also carries geometry, which is the same object the viewer on the page draws, so the picture and the machine-readable answer cannot disagree:

  • dimension — 3 or 2, and everything else follows it. cell is that many Cartesian lattice vectors of that many components, cellparams the six or three parameters they were built from, and each vertex coordinate and each edge image carries that many numbers. A 2-periodic net is served as 2-periodic, not padded into three dimensions with an axis nothing measured.
  • computed — the sentence saying this geometry was computed rather than deposited, or null on a deposit.
  • edges[].image — the cell offset of the far end, which is what makes a boundary-crossing edge drawable at all.

.cif

Not currently served. Frameworks with published crystal structures are the obvious candidates; it is not offered rather than offered as a lossy conversion nobody checked.

Which one to take

You want to Take
Build a structure with the group's tooling .mfpx — check whether it is deposited or generated first
Work with the topology alone, at any scale .mfpx or geometry in .json; both state connectivity and periodic images
Look at it in a general-purpose viewer .xyz
Index or cite records programmatically .json
Archive what you used in a paper .mfpx plus the citation block