4 .. todo:: in future patch: update for accuracy, organize better, improve formatting
6 Summary of file formats
7 ^^^^^^^^^^^^^^^^^^^^^^^
13 run parameters, input for :ref:`gmx grompp` and :ref:`gmx convert-tpr`
16 input for :ref:`gmx xpm2ps`
18 .. _gmx-structure-files:
28 brookhaven Protein DataBank format
29 **Structure+mass(db):** :ref:`tpr`, :ref:`gro`, :ref:`g96`, or :ref:`pdb`
30 Structure and mass input for analysis tools.
31 When gro or pdb is used approximate masses will be read from the mass database.
37 system topology (ascii)
39 include topology (ascii)
41 residue topology (ascii)
45 atom naming definition (ascii)
47 atom type library (ascii)
49 residue to building block mapping (ascii)
51 atom renaming database (ascii)
53 hydrogen atom database (ascii)
55 virtual site database (ascii)
57 termini database (ascii)
63 system topology, parameters, coordinates and velocities (binary, portable)
69 Any kind of data (compressed, portable, any precision)
71 x, v and f (binary, full precision, portable)
73 x only (compressed, portable, any precision)
75 x and v (ascii, any precision)
77 x only (ascii, fixed high precision)
79 x only (ascii, reduced precision)
80 **Formats for full-precision data:**
81 :ref:`tng` or :ref:`trr`
82 **Generic trajectory formats:**
83 :ref:`tng`, :ref:`xtc`, :ref:`trr`, :ref:`gro`, :ref:`g96`, or :ref:`pdb`
89 energies, temperature, pressure, box size, density and virials (binary)
91 energies, temperature, pressure, box size, density and virials (binary, portable)
92 **Generic energy formats:**
93 :ref:`edr` or :ref:`ene`
99 generic, preferred for input
101 essential dynamics constraints input for :ref:`gmx mdrun`
103 Encapsulated Postscript
107 colormap input for :ref:`gmx do_dssp`
111 generic, preferred for output
115 ascii matrix data, use :ref:`gmx xpm2ps` to convert to :ref:`eps`
127 The atp file contains general information about atom types, like the atom
128 number and the mass in atomic mass units.
135 The arn file allows the renaming of atoms from their force field names to the names
136 as defined by IUPAC/PDB, to allow easier visualization and identification.
143 The cpt file extension stands for portable checkpoint file.
144 The complete state of the simulation is stored in the checkpoint file,
145 including extended thermostat/barostat variables, random number states
146 and NMR time averaged data.
147 With domain decomposition also the some decomposition setup information
150 See also :ref:`gmx mdrun`.
157 Files with the dat file extension contain generic input or output.
158 As it is not possible
159 to categorize all data file formats, |Gromacs| has a generic file format called
160 dat of which no format is given.
167 The dlg file format is used as input for the :ref:`gmx view`
168 trajectory viewer. These files are not meant to be altered by the end user.
177 group "Bond Options" 1 1 16 9 {
178 radiobuttons { " Thin Bonds" " Fat Bonds" " Very Fat Bonds" " Spheres" }
179 "bonds" "Ok" " F" "help bonds"
182 group "Other Options" 18 1 20 13 {
183 checkbox " Show Hydrogens" "" "" "FALSE" "help opts"
184 checkbox " Draw plus for atoms" "" "" "TRUE" "help opts"
185 checkbox " Show Box" "" "" "TRUE" "help opts"
186 checkbox " Remove PBC" "" "" "FALSE" "help opts"
187 checkbox " Depth Cueing" "" "" "TRUE" "help opts"
188 edittext "Skip frames: " "" "" "0" "help opts"
192 defbutton "Ok" "Ok" "Ok" "Ok" "help bonds"
202 Files with the edi file extension contain information for :ref:`gmx mdrun`
203 to run Molecular Dynamics with Essential Dynamics constraints.
204 It used to be possible to generate those through the options
205 provided in the `WHAT IF <http://swift.cmbi.ru.nl/whatif/>`_ program.
207 .. WEDSAM and ESSDYN seem to have vanished from WhatIf and the web
208 These files can be generated by the program <tt>WEDSAM</tt> which uses
209 output from the programs in the <tt>ESSDYN</tt> menu of the
210 <A HREF="http://www.sander.embl-heidelberg.de/whatif/">WHAT IF</A> program.
217 The edr file extension stands for portable energy file.
218 The energies are stored using the xdr protocol.
220 See also :ref:`gmx energy`.
227 The ene file extension stands for binary energy file. It holds the
228 energies as generated during your :ref:`gmx mdrun`.
230 The file can be transformed to a portable energy file (portable
231 across hardware platforms), the :ref:`edr` file using the program
234 See also :ref:`gmx energy`.
241 The eps file format is not a special |Gromacs| format, but just a
242 variant of the standard PostScript(tm). A sample eps file as
243 generated by the :ref:`gmx xpm2ps` program is
244 included below. It shows the secondary structure of a peptide as a function
247 .. image:: plots/plotje.*
255 A file with the g96 extension can be a GROMOS-96 initial/final
256 configuration file or a coordinate trajectory file or a combination of both.
257 The file is fixed format, all floats are written as 15.9 (files can get huge).
258 |Gromacs| supports the following data blocks in the given order:
262 - ``TITLE`` (mandatory)
266 - ``TIMESTEP`` (optional)
267 - ``POSITION/POSITIONRED`` (mandatory)
268 - ``VELOCITY/VELOCITYRED`` (optional)
271 See the GROMOS-96 manual for a complete description of the blocks.
273 Note that all |Gromacs| programs can read compressed or g-zipped files.
280 Files with the gro file extension contain a molecular structure in
281 Gromos87 format. gro files can be used as trajectory by simply
282 concatenating files. An attempt will be made to read a time value from
283 the title string in each frame, which should be preceded by
284 '``t=``', as in the sample below.
286 A sample piece is included below::
288 MD of 2 waters, t= 0.0
290 1WATER OW1 1 0.126 1.624 1.679 0.1227 -0.0580 0.0434
291 1WATER HW2 2 0.190 1.661 1.747 0.8085 0.3191 -0.7791
292 1WATER HW3 3 0.177 1.568 1.613 -0.9045 -2.6469 1.3180
293 2WATER OW1 4 1.275 0.053 0.622 0.2519 0.3140 -0.1734
294 2WATER HW2 5 1.337 0.002 0.680 -1.0641 -1.1349 0.0257
295 2WATER HW3 6 1.326 0.120 0.568 1.9427 -0.8216 -0.0244
296 1.82060 1.82060 1.82060
298 Lines contain the following information (top to bottom):
300 * title string (free format string, optional time in ps after '``t=``')
301 * number of atoms (free format integer)
302 * one line for each atom (fixed format, see below)
303 * box vectors (free format, space separated reals), values:
304 v1(x) v2(y) v3(z) v1(y) v1(z) v2(x) v2(z) v3(x) v3(y),
305 the last 6 values may be omitted (they will be set to zero).
306 |Gromacs| only supports boxes with v1(y)=v1(z)=v2(z)=0.
308 This format is fixed, ie. all columns are in a fixed
309 position. Optionally (for now only yet with trjconv) you can write gro
310 files with any number of decimal places, the format will then be
311 ``n+5`` positions with ``n`` decimal places (``n+1``
312 for velocities) in stead of ``8`` with ``3`` (with
313 ``4`` for velocities). Upon reading, the precision will be
314 inferred from the distance between the decimal points (which will be
315 ``n+5``). Columns contain the following information (from left to
318 * residue number (5 positions, integer)
319 * residue name (5 characters)
320 * atom name (5 characters)
321 * atom number (5 positions, integer)
322 * position (in nm, x y z in 3 columns, each 8 positions with 3 decimal places)
323 * velocity (in nm/ps (or km/s), x y z in 3 columns, each 8 positions with 4 decimal places)
325 Note that separate molecules or ions (e.g. water or Cl-) are regarded
326 as residues. If you want to write such a file in your own program
327 without using the |Gromacs| libraries you can use the following formats:
330 ``"%5d%-5s%5s%5d%8.3f%8.3f%8.3f%8.4f%8.4f%8.4f"``
332 ``(i5,2a5,i5,3f8.3,3f8.4)``
334 This is left as an exercise for the user
336 Note that this is the format for writing, as in the above example
337 fields may be written without spaces, and therefore can not be read
338 with the same format statement in C.
345 The hdb file extension stands for hydrogen database
346 Such a file is needed by :ref:`gmx pdb2gmx`
347 when building hydrogen atoms that were either originally missing, or that
348 were removed with ``-ignh``.
355 The itp file extension stands for include topology. These files are included in
356 topology files (with the :ref:`top` extension).
363 Logfiles are generated by some |Gromacs| programs and are usually in
364 human-readable format. Use ``more logfile``.
371 The m2p file format contains input options for the
372 :ref:`gmx xpm2ps` program. All of these options
373 are very easy to comprehend when you look at the PosScript(tm) output
374 from :ref:`gmx xpm2ps`.
378 ; Command line options of xpm2ps override the parameters in this file
379 black&white = no ; Obsolete
380 titlefont = Times-Roman ; A PostScript Font
381 titlefontsize = 20 ; Font size (pt)
382 legend = yes ; Show the legend
383 legendfont = Times-Roman ; A PostScript Font
384 legendlabel = ; Used when there is none in the .xpm
385 legend2label = ; Used when merging two xpm's
386 legendfontsize = 14 ; Font size (pt)
387 xbox = 2.0 ; x-size of a matrix element
388 ybox = 2.0 ; y-size of a matrix element
389 matrixspacing = 20.0 ; Space between 2 matrices
390 xoffset = 0.0 ; Between matrix and bounding box
391 yoffset = 0.0 ; Between matrix and bounding box
392 x-major = 20 ; Major ticks on x axis every .. frames
393 x-minor = 5 ; Id. Minor ticks
394 x-firstmajor = 0 ; First frame for major tick
395 x-majorat0 = no ; Major tick at first frame
396 x-majorticklen = 8.0 ; x-majorticklength
397 x-minorticklen = 4.0 ; x-minorticklength
398 x-label = ; Used when there is none in the .xpm
399 x-fontsize = 16 ; Font size (pt)
400 x-font = Times-Roman ; A PostScript Font
401 x-tickfontsize = 10 ; Font size (pt)
402 x-tickfont = Helvetica ; A PostScript Font
413 y-tickfont = Helvetica
420 This file maps matrix data to RGB values which is used by the
421 :ref:`gmx do_dssp` program.
423 The format of this file is as follow: first line number of elements
424 in the colormap. Then for each line: The first character is
425 a code for the secondary structure type.
426 Then comes a string for use in the legend of the plot and then the
427 R (red) G (green) and B (blue) values.
429 In this case the colors are
430 (in order of appearance): white, red, black, cyan, yellow, blue, magenta, orange.
436 E B-Sheet 1.0 0.0 0.0
437 B B-Bridge 0.0 0.0 0.0
440 H A-Helix 0.0 0.0 1.0
441 G 3-Helix 1.0 0.0 1.0
442 I 5-Helix 1.0 0.6 0.0
449 See the user guide for a detailed description of the options.
451 Below is a sample mdp file.
452 The ordering of the items is not important, but if you enter the same
453 thing twice, the **last** is used (:ref:`gmx grompp` gives you a note when
454 overriding values). Dashes and underscores on the left hand side are ignored.
456 The values of the options are values for a 1 nanosecond
457 MD run of a protein in a box of water.
459 **Note:** The parameters chosen (*e.g.,* short-range cutoffs) depend on the
460 force field being used.
470 nstxout-compressed = 5000
473 constraints = all-bonds
474 constraint-algorithm = lincs
476 cutoff-scheme = Verlet
486 tc-grps = Protein SOL
490 pcoupl = Parrinello-Rahman
492 compressibility = 4.5e-5
495 With this input :ref:`gmx grompp` will produce a commented file with the default name
496 ``mdout.mdp``. That file will contain the above options, as well as all other
497 options not explicitly set, showing their default values.
504 Files with the mtx file extension contain a matrix.
505 The file format is identical to the :ref:`trr` format.
506 Currently this file format is only used for hessian matrices,
507 which are produced with :ref:`gmx mdrun` and read by
515 The |Gromacs| index file (usually called index.ndx) contains some
516 user definable sets of atoms. The file can be read by
517 most analysis programs, by the graphics program
519 and by the preprocessor (:ref:`gmx grompp`).
520 Most of these programs create default index groups when no index
521 file is supplied, so you only need to make an index file when you need special
524 First the group name is written between square brackets.
525 The following atom numbers may be spread out over as many lines as you like.
526 The atom numbering starts at 1.
528 An example file is here:
538 There are two groups, and total nine atoms. The first group
539 **Oxygen** has 3 elements.
540 The second group **Hydrogen** has 6 elements.
542 An index file generation tool is available:
550 This |Gromacs| file can be used to perform primitive translations between
551 atom names found in structure files and the corresponding atom types.
552 This is mostly useful for using utilities such as :ref:`gmx x2top`, but users
553 should be aware that the knowledge in this file is extremely limited.
555 An example file (``share/top/gromos53a5.ff/atomname2type.n2t``) is here:
559 H H 0.408 1.008 1 O 0.1
560 O OA -0.674 15.9994 2 C 0.14 H 0.1
561 C CH3 0.000 15.035 1 C 0.15
562 C CH0 0.266 12.011 4 C 0.15 C 0.15 C 0.15 O 0.14
564 A short description of the file format follows:
566 * Column 1: Elemental symbol of the atom/first character in the atom name.
567 * Column 2: The atom type to be assigned.
568 * Column 3: The charge to be assigned.
569 * Column 4: The mass of the atom.
570 * Column 5: The number N of other atoms to which this atom is bonded.
571 The number of fields that follow are related to this number;
572 for each atom, an elemental symbol and the reference distance for its bond length.
573 * Columns 6-onward: The elemental symbols and reference bond lengths for N connections
574 (column 5) to the atom being assigned parameters (column 1). The reference bond
575 lengths have a tolerance of +/- 10% from the value specified in this file. Any bond
576 outside this tolerance will not be recognized as being connected to the atom being assigned parameters.
583 Files with the out file extension contain generic output. As it is not possible
584 to categorize all data file formats, |Gromacs| has a generic file format called
585 out of which no format is given.
593 Files with the :ref:`pdb` extension are molecular
594 structure files in the protein databank file format. The protein
595 databank file format describes the positions of atoms in a molecular
596 structure. Coordinates are read from the ATOM and HETATM records,
597 until the file ends or an ENDMDL record is encountered.
598 |Gromacs| programs can read and write a simulation box in the
600 The pdb format can also be used as a trajectory format:
601 several structures, separated by ENDMDL, can be read from
602 or written to one file.
607 A pdb file should look like this::
609 ATOM 1 H1 LYS 1 14.260 6.590 34.480 1.00 0.00
610 ATOM 2 H2 LYS 1 13.760 5.000 34.340 1.00 0.00
611 ATOM 3 N LYS 1 14.090 5.850 33.800 1.00 0.00
612 ATOM 4 H3 LYS 1 14.920 5.560 33.270 1.00 0.00
621 The rtp file extension stands for residue topology.
622 Such a file is needed by :ref:`gmx pdb2gmx`
623 to make a |Gromacs| topology for a protein contained in a :ref:`pdb`
624 file. The file contains the default interaction type for the 4 bonded
625 interactions and residue entries, which consist of atoms and
626 optionally bonds, angles dihedrals and impropers.
627 Parameters can be added to bonds, angles, dihedrals and impropers,
628 these parameters override the standard parameters in the :ref:`itp` files.
629 This should only be used in special cases.
630 Instead of parameters a string can be added for each bonded interaction,
631 the string is copied to the :ref:`top` file,
632 this is used for the GROMOS96 forcefield.
634 :ref:`gmx pdb2gmx` automatically generates all angles,
635 this means that the ``[angles]`` field is only
636 useful for overriding :ref:`itp` parameters.
638 :ref:`gmx pdb2gmx` automatically generates one proper
639 dihedral for every rotatable bond, preferably on heavy atoms.
640 When the ``[dihedrals]`` field is used, no other dihedrals will
641 be generated for the bonds corresponding to the specified dihedrals.
642 It is possible to put more than one dihedral on a rotatable bond.
644 :ref:`gmx pdb2gmx` sets the number exclusions to 3, which
645 means that interactions between atoms connected by at most 3 bonds are
646 excluded. Pair interactions are generated for all pairs of atoms which are
647 separated by 3 bonds (except pairs of hydrogens).
648 When more interactions need to be excluded, or some pair interactions should
649 not be generated, an ``[exclusions]`` field can be added, followed by
650 pairs of atom names on separate lines. All non-bonded and pair interactions
651 between these atoms will be excluded.
653 A sample is included below.
657 [ bondedtypes ] ; mandatory
658 ; bonds angles dihedrals impropers
663 [ atoms ] ; mandatory
664 ; name type charge chargegroup
679 [ exclusions ] ; optional
682 [ angles ] ; optional
683 ;atom1 atom2 atom3 th0 cth
685 [ dihedrals ] ; optional
686 ;atom1 atom2 atom3 atom4 phi0 cp mult
688 [ impropers ] ; optional
689 ;atom1 atom2 atom3 atom4 q0 cq
703 The r2b file translates the residue names for residues that have different names in different
704 force fields, or have different names depending on their protonation states.
711 tdb files contain the information about amino acid termini that can be placed at the
712 end of a polypeptide chain.
719 We use **LaTeX** for *document* processing.
720 Although the input is not so
721 user friendly, it has some advantages over *word* processors.
723 * **LaTeX** knows a lot about formatting, probably much more than you.
724 * The input is clear, you always know what you are doing
725 * It makes anything from letters to a thesis
733 Files with the ``.tng`` file extension can contain all kinds of data
734 related to the trajectory of a simulation. For example, it might
735 contain coordinates, velocities, forces and/or energies. Various :ref:`mdp`
736 file options control which of these are written by :ref:`gmx mdrun`, whether data
737 is written with compression, and how lossy that compression can be.
738 This file is in portable binary format and can be read with :ref:`gmx dump`.
742 :ref:`gmx dump` -f traj.tng
744 or if you're not such a fast reader::
746 gmx dump -f traj.tng | less
748 You can also get a quick look in the contents of the file (number of
753 :ref:`gmx check` -f traj.tng
760 The top file extension stands for topology. It is an ascii file which is
761 read by :ref:`gmx grompp` which processes it
762 and creates a binary topology (:ref:`tpr` file).
764 A sample file is included below::
767 ; Example topology file
770 ; nbfunc comb-rule gen-pairs fudgeLJ fudgeQQ
773 ; The force field files to be included
774 #include "rt41c5.itp"
781 ; nr type resnr residu atom cgnr charge
782 1 C 1 UREA C1 1 0.683
783 2 O 1 UREA O2 1 -0.683
784 3 NT 1 UREA N3 2 -0.622
785 4 H 1 UREA H4 2 0.346
786 5 H 1 UREA H5 2 0.276
787 6 NT 1 UREA N6 3 -0.622
788 7 H 1 UREA H7 3 0.346
789 8 H 1 UREA H8 3 0.276
793 3 4 1 1.000000e-01 3.744680e+05
794 3 5 1 1.000000e-01 3.744680e+05
795 6 7 1 1.000000e-01 3.744680e+05
796 6 8 1 1.000000e-01 3.744680e+05
797 1 2 1 1.230000e-01 5.020800e+05
798 1 3 1 1.330000e-01 3.765600e+05
799 1 6 1 1.330000e-01 3.765600e+05
803 2 4 1 0.000000e+00 0.000000e+00
804 2 5 1 0.000000e+00 0.000000e+00
805 2 7 1 0.000000e+00 0.000000e+00
806 2 8 1 0.000000e+00 0.000000e+00
807 3 7 1 0.000000e+00 0.000000e+00
808 3 8 1 0.000000e+00 0.000000e+00
809 4 6 1 0.000000e+00 0.000000e+00
810 5 6 1 0.000000e+00 0.000000e+00
813 ; ai aj ak funct c0 c1
814 1 3 4 1 1.200000e+02 2.928800e+02
815 1 3 5 1 1.200000e+02 2.928800e+02
816 4 3 5 1 1.200000e+02 3.347200e+02
817 1 6 7 1 1.200000e+02 2.928800e+02
818 1 6 8 1 1.200000e+02 2.928800e+02
819 7 6 8 1 1.200000e+02 3.347200e+02
820 2 1 3 1 1.215000e+02 5.020800e+02
821 2 1 6 1 1.215000e+02 5.020800e+02
822 3 1 6 1 1.170000e+02 5.020800e+02
825 ; ai aj ak al funct c0 c1 c2
826 2 1 3 4 1 1.800000e+02 3.347200e+01 2.000000e+00
827 6 1 3 4 1 1.800000e+02 3.347200e+01 2.000000e+00
828 2 1 3 5 1 1.800000e+02 3.347200e+01 2.000000e+00
829 6 1 3 5 1 1.800000e+02 3.347200e+01 2.000000e+00
830 2 1 6 7 1 1.800000e+02 3.347200e+01 2.000000e+00
831 3 1 6 7 1 1.800000e+02 3.347200e+01 2.000000e+00
832 2 1 6 8 1 1.800000e+02 3.347200e+01 2.000000e+00
833 3 1 6 8 1 1.800000e+02 3.347200e+01 2.000000e+00
836 ; ai aj ak al funct c0 c1
837 3 4 5 1 2 0.000000e+00 1.673600e+02
838 6 7 8 1 2 0.000000e+00 1.673600e+02
839 1 3 6 2 2 0.000000e+00 1.673600e+02
841 ; Include SPC water topology
856 The tpr file extension stands for portable binary run input file. This file
857 contains the starting structure of your simulation, the molecular topology
858 and all the simulation parameters. Because this file is in binary format it
859 cannot be read with a normal editor. To read a portable binary run input
864 :ref:`gmx dump` -s topol.tpr
866 or if you're not such a fast reader::
868 gmx dump -s topol.tpr | less
870 You can also compare two tpr files using:
874 :ref:`gmx check` -s1 top1 -s2 top2 | less
881 Files with the trr file extension contain the trajectory of a simulation.
882 In this file all the coordinates, velocities, forces and energies are
883 printed as you told |Gromacs| in your mdp file. This file is in portable binary
884 format and can be read with :ref:`gmx dump`::
888 or if you're not such a fast reader::
890 gmx dump -f traj.trr | less
892 You can also get a quick look in the contents of the file (number of
897 % :ref:`gmx check` -f traj.trr
904 The vsd file contains the information on how to place virtual sites on a number
905 of different molecules in a force field.
912 |Gromacs| uses the XDR file format to store things like coordinate files internally.
919 The |Gromacs| xpm file format is compatible with the XPixMap format
920 and is used for storing matrix data.
921 Thus |Gromacs| xpm files can be viewed directly with programs like XV.
922 Alternatively, they can be imported into GIMP and scaled to 300 DPI,
923 using strong antialiasing for font and graphics.
924 The first matrix data line in an xpm file corresponds to the last matrix
926 In addition to the XPixMap format, |Gromacs| xpm files may contain
927 extra fields. The information in these fields is used when converting
928 an xpm file to EPS with :ref:`gmx xpm2ps`.
929 The optional extra field are:
931 * Before the ``gv_xpm`` declaration: ``title``, ``legend``,
932 ``x-label``, ``y-label`` and ``type``, all followed by a string.
933 The ``legend`` field determines the legend title.
934 The ``type`` field must be followed by ``"continuous"`` or
935 ``"discrete"``, this determines which type of legend will be drawn in an EPS
936 file, the default type is continuous.
937 * The xpm colormap entries may be followed by a string, which is a label for
939 * Between the colormap and the matrix data, the fields ``x-axis`` and/or
940 ``y-axis`` may be present followed by the tick-marks for that axis.
942 The example |Gromacs| xpm file below contains all the extra fields.
943 The C-comment delimiters and the colon in the extra fields are optional.
948 /* This matrix is generated by g_rms. */
949 /* title: "Backbone RMSD matrix" */
950 /* legend: "RMSD (nm)" */
951 /* x-label: "Time (ps)" */
952 /* y-label: "Time (ps)" */
953 /* type: "Continuous" */
954 static char * gv_xpm[] = {
956 "A c #FFFFFF " /* "0" */,
957 "B c #CCCCCC " /* "0.0399" */,
958 "C c #999999 " /* "0.0798" */,
959 "D c #666666 " /* "0.12" */,
960 "E c #333333 " /* "0.16" */,
961 "F c #000000 " /* "0.2" */,
962 /* x-axis: 0 40 80 120 160 200 240 280 320 360 400 440 480 */
963 /* y-axis: 0 40 80 120 160 200 240 280 320 360 400 440 480 */
983 The xtc format is a **portable** format for trajectories.
984 It uses the *xdr* routines for writing and reading
985 data which was created for the Unix NFS system. The trajectories
986 are written using a reduced precision algorithm which works
987 in the following way: the coordinates (in nm) are multiplied by a scale
988 factor, typically 1000, so that you have coordinates in pm.
989 These are rounded to integer values. Then several other tricks are
990 performed, for instance making use of the fact that atoms close
991 in sequence are usually close in space too (e.g. a water molecule).
992 To this end, the *xdr* library is extended with a special routine
993 to write 3-D float coordinates. The routine was originally written
994 by Frans van Hoesel as part of an Europort project. An updated
995 version of it can be obtained through `this link <https://github.com/Pappulab/xdrf>`_.
997 All the data is stored using calls to *xdr* routines.
1000 A magic number, for the current file version its value is 1995.
1002 The number of atoms in the trajectory.
1004 The simulation step.
1006 The simulation time.
1008 The computational box which is stored as a set of three basis
1009 vectors, to allow for triclinic PBC. For a rectangular box the
1010 box edges are stored on the diagonal of the matrix.
1011 **3dfcoord** x[natoms]
1012 The coordinates themselves stored in reduced precision.
1013 Please note that when the number of atoms is smaller than 9
1014 no reduced precision is used.
1016 Using xtc in your "C" programs
1017 ++++++++++++++++++++++++++++++
1019 To read and write these files the following "C" routines are available::
1021 /* All functions return 1 if successful, 0 otherwise */
1023 extern int open_xtc(XDR *xd,char *filename,char *mode);
1024 /* Open a file for xdr I/O */
1026 extern void close_xtc(XDR *xd);
1027 /* Close the file for xdr I/O */
1029 extern int read_first_xtc(XDR *xd,char *filename,
1030 int *natoms,int *step,real *time,
1031 matrix box,rvec **x,real *prec);
1032 /* Open xtc file, read xtc file first time, allocate memory for x */
1034 extern int read_next_xtc(XDR *xd,
1035 int *natoms,int *step,real *time,
1036 matrix box,rvec *x,real *prec);
1037 /* Read subsequent frames */
1039 extern int write_xtc(XDR *xd,
1040 int natoms,int step,real time,
1041 matrix box,rvec *x,real prec);
1042 /* Write a frame to xtc file */
1044 To use the library function include ``"gromacs/fileio/xtcio.h"``
1045 in your file and link with ``-lgmx.$(CPU)``.
1047 Using xtc in your FORTRAN programs
1048 ++++++++++++++++++++++++++++++++++
1050 To read and write these in a FORTRAN program use the calls to
1051 ``readxtc`` and ``writextc`` as in the following sample program
1052 which reads and xtc file and copies it to a new one::
1056 parameter (maxatom=10000,maxx=3*maxatom)
1057 integer xd,xd2,natoms,step,ret,i
1058 real time,box(9),x(maxx)
1060 call xdrfopen(xd,"test.xtc","r",ret)
1061 print *,'opened test.xtc, ret=',ret
1062 call xdrfopen(xd2,"testout.xtc","w",ret)
1063 print *,'opened testout.xtc, ret=',ret
1065 call readxtc(xd,natoms,step,time,box,x,prec,ret)
1067 if ( ret .eq. 1 ) then
1068 call writextc(xd2,natoms,step,time,box,x,prec,ret)
1070 print *,'Error reading xtc'
1076 To link your program use ``-L$(GMXHOME)/lib/$(CPU) -lxtcf``
1077 on your linker command line.
1084 Almost all output from |Gromacs| analysis tools is ready as input for
1085 Grace, formerly known as Xmgr. We use Grace, because it is very flexible, and it is also
1086 free software. It produces PostScript(tm) output, which is very suitable
1087 for inclusion in eg. LaTeX documents, but also for other word processors.
1089 A sample Grace session with |Gromacs| data is shown below:
1091 .. image:: plots/xvgr.*
1092 :alt: Sample xvg graphic produced using the |Gromacs| tools