15#include <absl/base/attributes.h>
38 bool getnext(std::vector<std::string> &block)
override;
43 std::vector<std::string> header_;
44 std::vector<std::string> rfooter_;
45 bool has_model_ =
false;
50 static const bool kRegistered ABSL_ATTRIBUTE_UNUSED;
67 return Hash::combine(std::move(h),
id.res_seq,
id.chain_id,
id.ins_code);
71 return static_cast<bool>(
static_cast<int>(lhs.
res_seq == rhs.
res_seq)
84 char altloc()
const {
return altloc_; }
86 const Vector3d &
pos()
const {
return pos_; }
109 std::string_view
name()
const {
return name_; }
111 const std::vector<PDBAtomSite> &
sites()
const {
return sites_; }
122 std::vector<PDBAtomSite> sites_;
123 internal::Nonnull<const Element *> elem_;
138 std::string_view
name()
const {
return name_; }
140 const std::vector<int> &
atom_idxs()
const {
return atom_idxs_; }
146 std::vector<int> atom_idxs_;
156 char id()
const {
return id_; }
158 const std::vector<int> &
res_idxs()
const {
return res_idxs_; }
163 std::vector<int> res_idxs_;
172 std::vector<PDBChain> &&
chains,
173 internal::PropertyMap &&
props)
noexcept;
175 const std::vector<PDBChain> &
chains()
const {
return chains_; }
177 const std::vector<PDBResidue> &
residues()
const {
return residues_; }
179 const std::vector<PDBAtom> &
atoms()
const {
return atoms_; }
183 internal::PropertyMap &
props() {
return props_; }
185 const internal::PropertyMap &
props()
const {
return props_; }
188 std::vector<PDBAtom> atoms_;
189 std::vector<PDBResidue> residues_;
190 std::vector<PDBChain> chains_;
192 Matrix3Xd major_conf_;
194 internal::PropertyMap props_;
DefaultReaderImpl()=default
The class for element data.
Definition element.h:157
Read-only molecule class.
Definition molecule.h:943
double occupancy() const
Definition pdb.h:88
const Vector3d & pos() const
Definition pdb.h:86
double tempfactor() const
Definition pdb.h:90
PDBAtomSite(char altloc, const Vector3d &pos, double occupancy=1.0, double tempfactor=0.0) noexcept
char altloc() const
Definition pdb.h:84
std::string_view name() const
Definition pdb.h:109
PDBResidueId rid() const
Definition pdb.h:107
const Element & element() const
Definition pdb.h:113
PDBAtom(PDBResidueId rid, std::string_view name, const Element &elem, std::vector< PDBAtomSite > &&sites, int fcharge, bool hetero) noexcept
int fcharge() const
Definition pdb.h:115
bool hetero() const
Definition pdb.h:117
const std::vector< PDBAtomSite > & sites() const
Definition pdb.h:111
PDBChain(char id, std::vector< int > &&res_idxs) noexcept
char id() const
Definition pdb.h:156
const std::vector< int > & res_idxs() const
Definition pdb.h:158
Represents a PDB model containing chains.
Definition pdb.h:169
internal::PropertyMap & props()
Definition pdb.h:183
const internal::PropertyMap & props() const
Definition pdb.h:185
const std::vector< PDBResidue > & residues() const
Definition pdb.h:177
const std::vector< PDBChain > & chains() const
Definition pdb.h:175
const std::vector< PDBAtom > & atoms() const
Definition pdb.h:179
PDBModel(std::vector< PDBAtom > &&atoms, std::vector< PDBResidue > &&residues, std::vector< PDBChain > &&chains, internal::PropertyMap &&props) noexcept
const Matrix3Xd & major_conf() const
Definition pdb.h:181
bool bond_valid() const override
Test whether the reader implementation can provide valid bond information.
Definition pdb.h:40
bool getnext(std::vector< std::string > &block) override
Advance the reader to the next molecule.
std::string_view name() const
Definition pdb.h:138
PDBResidue(PDBResidueId id, std::string_view name, std::vector< int > &&atom_idxs) noexcept
const std::vector< int > & atom_idxs() const
Definition pdb.h:140
PDBResidueId id() const
Definition pdb.h:136
Molecule read_pdb(const std::vector< std::string > &pdb)
Read a single PDB string and return a molecule.
Hash AbslHashValue(Hash h, PDBResidueId id)
Definition pdb.h:66
PDBModel read_pdb_model(const std::vector< std::string > &pdb)
int write_pdb(std::string &out, const Molecule &mol, int model=-1, int conf=-1)
constexpr bool operator==(const Isotope &lhs, const Isotope &rhs) noexcept
Definition element.h:34
std::ostream & operator<<(std::ostream &os, const PDBResidueId &id)
int res_seq
Definition pdb.h:57
char ins_code
Definition pdb.h:59
char chain_id
Definition pdb.h:58