-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy path00README.tex
98 lines (80 loc) · 4.22 KB
/
00README.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
\documentclass[11pt,a4paper]{article}
\usepackage[parfill]{parskip}
\usepackage{url}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{microtype}
\title{00README}
\author{Thomas M Griffiths}
\date{2014-05-05}
\newcommand{\tab}[1]{\hspace{.2\textwidth}\rlap{#1}}
\begin{document}
\maketitle
If you've run a MD simulation on a machine of opposite endianness
(e.g. on the VLSCI BlueGene machine AVOCA (big endian)) you'll need
to flip the binary data of your trajectories before you can perform
analysis with CHARMM on the local machine (hpc.its.uow.edu.au
(little endian)).
There are two methods of doing this, either you can use the flipdcd
utility supplied as a separate executable with VMD or the catdcd
utility (\url{www.ks.uiuc.edu/Development/MDTools/catdcd/}) to
flip the endianness of your binary data. Unfortunately, when using
flipdcd any unit cell information from a PBC calculation is lost in
the flipping process. Hindering any attempts at re-centering a
constant pressure simulation and severely impeding a constant
volume simulation if you don't know the initial setup conditions.
Catdcd will take an input of any endianness, and output a
trajectory with the local endianness. During this process,
unfortunately, header information is lost regarding the previous
dynamics steps, number of steps, and the frequency of saving.
This will present a problem later on if you're trying to combine or
manipulate the trajectories with the MERGe commands in CHARMM, and
any subsequent analyses. This header information however is easier
to fix than a unit cell for every set of coordinates. There are two
very nice packages written by Jim Phillips at UIUC to just this,
dumpdcd and loaddcd. The former dumps out the DCD header, and the
latter reloads it.
In this directory are the uncompiled \texttt{dumpdcd.c} and \texttt{loaddcd.c}
files. along with the require library, \texttt{largefiles.h.} To compile
dumpdcd and loaddcd on your system run these commands:
\texttt{gcc dumpdcd.c -o dumpdcd}
\texttt{gcc loaddcd.c -o loaddcd}
This should make the binary executable for both, which you can now
use to change up the header details of your trajectory files as you
see fit. Ensure that the full contents of the directory are present
when you compile the two binaries, in particular \texttt{largefiles.h}.
The output plain text file from dumpdcd will contain the header
information (see the format below).
Usage: \texttt{./dumpdcd <filename> > <data>}
Once you've changed the details on the text file it can be inserted
back into the trajectory file with loaddcd.
Usage: \texttt{./loaddcd <filename> < <data>}
There is a c-shell script (\texttt{big-little-and-headfix.csh}) included in
the directory as an example of a full conversion process.
\begin{enumerate}
\item Taking the big endian trajectories and flipping them with catdcd.
\item Printing out the header information with dumpdcd.
\item Changing the header info. with sed.
\item Reloading the header information with loaddcd.
\end{enumerate}
\subsection*{Header Field Details (Line\# Field)} % (fold)
\label{sub:header_field_details_line_field}
\begin{enumerate}
\item Number of frames in this file
\item Number of previous integration steps
\item Frequency (integration steps) for saving of frames
\item Number of integration steps in the run that created this file
\item Frequency of coordinate saving (if this is a velocity trajectory??)
\item Number of degrees of freedom during the run
\item Number of fixed atoms
\item Timestep in AKMA-units. Bit-copy from the 32-bit real number
\item 1 if crystal lattice information is present in the frames
\item 1 if this is a 4D trajectory
\item 1 if fluctuating charges are present
\item[20] 1 if trajectory is the result of merge without consistency checks
20 CHARMM version number
\end{enumerate}
Lines 11 -- 14 are either a 0 or 1 value indicating that the property
doesn't exist (0) or does (1).
% section header_field_details_line_field (end)
\end{document}