Commit 141764ed by maarten

update for edia

git-svn-id: svn+ssh://gitlab/srv/svn-repos/pdb-redo/trunk@175 a1961a4f-ab94-4bcc-80e8-33b5a54de466
parent 00fe32b7
// copyright
#pragma once
#include <zeep/xml/document.hpp>
#include <clipper/clipper.h>
#include "cif++/Structure.h"
#include "cif++/DistanceMap.h"
#include "cif++/BondMap.h"
namespace libcif
{
// --------------------------------------------------------------------
// Code to calculate EDIA (electron density for individual atoms)
// --------------------------------------------------------------------
// AtomRadius can be used to retrieve the precalculated atom radius
// for an atom with a certain charge at a certain resolution.
class AtomRadius
{
public:
AtomRadius();
float operator()(AtomType a, int charge, float resolution);
float operator()(Atom a, float resolution)
{
return operator()(a.type(), a.charge(), resolution);
}
private:
// key consists of atom_type, charge and resolution
typedef std::tuple<AtomType,int,float> Key;
typedef std::map<Key,float> Cache;
zeep::xml::document mCurves;
Cache mCache;
};
// --------------------------------------------------------------------
float CalculateEDIA(const Atom& atom, const clipper::Xmap<float>& xmap,
float resolution, float meanDensity, float rmsDensity,
const DistanceMap& dm, const BondMap& bm);
}
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