Commit f9099050 by maarten

fix in sorting atoms in prepper

git-svn-id: svn+ssh://gitlab/srv/svn-repos/pdb-redo/trunk@436 a1961a4f-ab94-4bcc-80e8-33b5a54de466
parent 55b1c566
libcif++ and pdb-redo tools libcif++ and pdb-redo tools
=========================== ===========================
This is the README file for libcif++ and the suite of PDB-REDO tools using this library. This is the README file for libcif++ and the suite of PDB-REDO tools
using this library.
### Requirements Requirements
------------
The code for this library was written in C++14. You therefore need a recent compiler to be able to build it. The code for this library was written in C++14. You therefore need a
recent compiler to be able to build it. For the development gcc 7.4
and clang 6.0 have been used.
Other requirements are: Other requirements are:
- GNU make version 4.1 or higher. - GNU make version 4.1 or higher.
- Boost libraries, the current version was developed using version 1.65 - Boost libraries, the current version was developed using version 1.65
- [mrc](https://github.com/mhekkel/mrc), a resource compiler that allows including data files into the executable making them easier to install. Strictly this is optional, but at the expense of a lot of functionality. - [mrc](https://github.com/mhekkel/mrc), a resource compiler that
- [newuoa-cpp](https://github.com/elsid/newuoa-cpp), required to calculate atom radii. allows including data files into the executable making them easier to
- [libzeep](https://github.com/mhekkel/libzeep), a library that contains a full validating XML parser as well as a complete HTTP and SOAP server implementation. install. Strictly this is optional, but at the expense of a lot of
- [nlohmann/json](https://github.com/nlohmann/json), a header only library to parse and write JSON. This requirement will be removed in a future release (once libzeep 4 is out of beta). functionality.
- [newuoa-cpp](https://github.com/elsid/newuoa-cpp), required to
Make sure you install the libraries and tools in this list first before building. You don't have to install them in system locations, paths can be set as described in the next section. calculate atom radii.
- [libzeep](https://github.com/mhekkel/libzeep), a library that
### Building contains a full validating XML parser as well as a complete HTTP,
SOAP and REST server implementation.
There are two makefiles, one located in the directory libcif++ and one in tools. - [nlohmann/json](https://github.com/nlohmann/json), a header only
library to parse and write JSON. This is only a requirement if you
Both makefiles will include a *make.config* file (which will be generated if it doesn't exist). This configuration file can be used to override local settings, e.g. the location of certain libraries. have a libzeep version older than version 4.
\ No newline at end of file
As stated, the nlohmann library is only needed if you use libzeep 3.0.x
which is bundled with Debian and derivatives. If you clone the version
of libzeep on github the nlohmann json library will not be used.
Building
--------
Make sure you install the libraries and tools in list above first
before building. You don't have to install them in system locations,
paths can be set as described in the next section.
There are two makefiles, one located in the directory libcif++ and one
in tools.
Both makefiles will include a *make.config* file (which will be
generated if it doesn't exist). This configuration file can be used to
override local settings, e.g. the location of certain libraries.
Before running make, first `source` the ccp4 environment. This will
take care of setting up the make.config file correctly. You then only
have to edit the `ZEEP_DIR` variable to point to the correct
directory in case you did not install libzeep, and if you use
libzeep version 4, you will have to change `ZEEP_INCL` and `ZEEP_LIB`
to be `$(ZEEP_DIR)/include` and `$(ZEEP_DIR)/lib` respectively.
...@@ -1458,8 +1458,7 @@ void WriteRemark3Shelxl(ostream& pdbFile, Datablock& db) ...@@ -1458,8 +1458,7 @@ void WriteRemark3Shelxl(ostream& pdbFile, Datablock& db)
auto c = [](const char* t) -> cif::Condition { return cif::Key("type") == t; }; auto c = [](const char* t) -> cif::Condition { return cif::Key("type") == t; };
pdbFile << RM3(" AUTHORS : G.M.SHELDRICK") << endl pdbFile << RM3("") << endl
<< RM3("") << endl
<< RM3(" DATA USED IN REFINEMENT.") << endl << RM3(" DATA USED IN REFINEMENT.") << endl
<< RM3(" RESOLUTION RANGE HIGH (ANGSTROMS) : ", 5, 2) << Ff(refine, "ls_d_res_high") << endl << RM3(" RESOLUTION RANGE HIGH (ANGSTROMS) : ", 5, 2) << Ff(refine, "ls_d_res_high") << endl
<< RM3(" RESOLUTION RANGE LOW (ANGSTROMS) : ", 5, 2) << Ff(refine, "ls_d_res_low") << endl << RM3(" RESOLUTION RANGE LOW (ANGSTROMS) : ", 5, 2) << Ff(refine, "ls_d_res_low") << endl
...@@ -3563,7 +3562,7 @@ tuple<int,int> WriteCoordinatesForModel(ostream& pdbFile, Datablock& db, ...@@ -3563,7 +3562,7 @@ tuple<int,int> WriteCoordinatesForModel(ostream& pdbFile, Datablock& db,
cif::tie(id, group, name, altLoc, resName, chainID, resSeq, iCode, x, y, z, occupancy, tempFactor, element, charge) = cif::tie(id, group, name, altLoc, resName, chainID, resSeq, iCode, x, y, z, occupancy, tempFactor, element, charge) =
r.get("id", "group_PDB", "label_atom_id", "label_alt_id", "auth_comp_id", "auth_asym_id", "auth_seq_id", r.get("id", "group_PDB", "label_atom_id", "label_alt_id", "auth_comp_id", "auth_asym_id", "auth_seq_id",
"pdbx_PDB_ins_code", "Cartn_x", "Cartn_y", "Cartn_z", "occupancy", "B_iso_or_equiv", "type_symbol", "pdbx_format_charge"); "pdbx_PDB_ins_code", "Cartn_x", "Cartn_y", "Cartn_z", "occupancy", "B_iso_or_equiv", "type_symbol", "pdbx_formal_charge");
if (name.length() < 4 and (element.length() == 1 or not cif::iequals(name, element))) if (name.length() < 4 and (element.length() == 1 or not cif::iequals(name, element)))
name.insert(name.begin(), ' '); name.insert(name.begin(), ' ');
......
...@@ -5120,7 +5120,8 @@ void PDBFileParser::ParseCoordinate(int modelNr) ...@@ -5120,7 +5120,8 @@ void PDBFileParser::ParseCoordinate(int modelNr)
charge = pdb2cifCharge(charge); charge = pdb2cifCharge(charge);
if (CompoundFactory::instance().isKnownPeptide(resName) or CompoundFactory::instance().isKnownBase(resName)) // if (CompoundFactory::instance().isKnownPeptide(resName) or CompoundFactory::instance().isKnownBase(resName))
if (mmcif::kAAMap.count(resName) or mmcif::kBaseMap.count(resName))
{ {
if (groupPDB == "HETATM") if (groupPDB == "HETATM")
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment