From 06a919e576c06de053510c7e475a015d293d0757 Mon Sep 17 00:00:00 2001 From: Giovanni Bussi <giovanni.bussi@gmail.com> Date: Thu, 27 Apr 2017 10:38:06 +0200 Subject: [PATCH] Added doc for >100k atoms --- src/tools/PDB.cpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/tools/PDB.cpp b/src/tools/PDB.cpp index cb90135ab..11e7c4e5d 100644 --- a/src/tools/PDB.cpp +++ b/src/tools/PDB.cpp @@ -92,6 +92,30 @@ However notice that many extra atoms with zero weight might slow down the calcul removing lines is better than setting their weights to zero. In addition, weights for alignment need not to be equivalent to weights for displacement. +\par Systems with more than 100k atoms + +Notice that it very likely does not make any sense to compute the \ref RMSD or any other structural +deviation __using__ so many atoms. However, if the protein for which you want to compute \ref RMSD +has atoms with large serial numbers (e.g. because it is located __after__ solvent in the sorted list of atoms) +you might end up with troubles with the limitations of the PDB format. Indeed, since there are 5 +columns available for atom serial number, this number cannot be larger than 99999. +In addition, providing \ref MOLINFO with names associated to atoms with a serial larger than 99999 would be impossible. + +Since PLUMED 2.4 we allow [hybrid 36](http://cci.lbl.gov/hybrid_36/) format to be used to specify atom numbers. +This format is not particularly widespread, but has the nice feature that it provides a one-to-one mapping +between numbers up to approximately 80 millions and strings with 5 characters, plus it is backward compatible +for numbers smaller than 100000. This is not true for notations like the hex notation exported by VMD. +Using the hybrid 36 format, the ATOM records for atom ranging from 99997 to 100002 would read like these: +\verbatim +ATOM 99997 Ar X 1 45.349 38.631 15.116 1.00 1.00 +ATOM 99998 Ar X 1 46.189 38.631 15.956 1.00 1.00 +ATOM 99999 Ar X 1 46.189 39.471 15.116 1.00 1.00 +ATOM A0000 Ar X 1 45.349 39.471 15.956 1.00 1.00 +ATOM A0000 Ar X 1 45.349 38.631 16.796 1.00 1.00 +ATOM A0001 Ar X 1 46.189 38.631 17.636 1.00 1.00 +\endverbatim +There are tools that can be found to translate from integers to strings and back using hybrid 36 format +(a simple python script can be found [here](https://sourceforge.net/p/cctbx/code/HEAD/tree/trunk/iotbx/pdb/hybrid_36.py)). */ //+ENDPLUMEDOC -- GitLab