). The complete grammar is extensively documented. The sire.io submodule includes molecular file parsers for several molecular parameter and coordinate files. These parsers are symmetrical, meaning that they are designed to read and write the same amount of information (with the caveat that ambiguity in the way some file formats can present information means that the written output may not be identical to the read input). Molecular information can be read into a MoleculeData object from, e.g. a combination of an Amber topology file and PDB coordinate file, and then edited using the sire API, before being written back to a Gromacs topology and DCD coordinate file. The design goal of invisibility also applies to these parsers. The sire.load and sire.save functions automatically choose the right parser based on the contents of the file being loaded, or the requested format for the save. The sire.load function will look at the file extension to make an initial guess of a parser. If this fails, it will, in parallel, try to load the file using all of the parsers in sire.io. Multiple files can be loaded at once, meaning that researchers don't need to think about the specifics of individual file formats, or getting the right order of topology and coordinate/trajectory files. For example, the command sire.load("trajectory.something", "topology.something") will work, as long as one of these files contains a molecular topology, and the other contains coordinates (or a trajectory). The sire.io framework will do the job of discovering the formats of these files, and which one contains topology data and which one contains coordinate/trajectory data.