13#include <boost/algorithm/string/trim.hpp>
14#include <boost/format.hpp>
18namespace SGroupWriting {
24 auto fmt = boost::format(
" %3d") % value;
29 auto fmt = boost::format(
" %2d") % value;
34 auto fmt = boost::format(
"%10.4f") % value;
41 std::ostringstream
os;
65 const std::string &propName,
82 const std::string &
code,
108template <
class Iterator>
125 const std::vector<SubstanceGroup::Bracket>
brackets);
128 const std::vector<SubstanceGroup::CState> &
cstates);
Defines the SubstanceGroup class.
RWMol is a molecule class that is intended to be edited.
The class for representing SubstanceGroups.
std::string BuildV2000SBTLines(const ROMol &mol)
std::string BuildV2000StringPropLines(const unsigned int entriesPerLine, const ROMol &mol, const std::string &propName, const std::string &propCode, const unsigned int fieldWitdh)
std::string FormatV3000CompNoBlock(const SubstanceGroup &sgroup)
std::string BuildV2000SCDSEDLines(const int idx, const SubstanceGroup *sgroup)
std::string BuildV2000STYLines(const ROMol &mol)
const std::string GetMolFileSGroupInfo(const RWMol &mol)
std::string BuildV2000SNCLines(const ROMol &mol)
const std::string GetV3000MolFileSGroupLines(const unsigned int idx, const SubstanceGroup &sgroup)
std::string BuildV2000SPLLines(const ROMol &mol)
std::string BuildV2000SLBLines(const ROMol &mol)
std::string FormatV3000CStateBlock(const std::vector< SubstanceGroup::CState > &cstates)
std::string FormatV3000BracketBlock(const std::vector< SubstanceGroup::Bracket > brackets)
std::string BuildV3000BondsBlock(const SubstanceGroup &sgroup)
std::string BuildV2000SDTLine(const int idx, const SubstanceGroup *sgroup)
std::string FormatV3000DoubleField(double value)
std::string BuildV2000SCLLine(const int idx, const SubstanceGroup *sgroup)
std::string BuildV2000SMTLine(const int idx, const SubstanceGroup *sgroup)
std::string BuildV2000SBVLine(const int idx, const SubstanceGroup *sgroup)
std::string BuildV2000SAPLines(const int idx, const SubstanceGroup *sgroup)
std::string FormatV3000StringPropertyBlock(const std::string &prop, const SubstanceGroup &sgroup)
std::string FormatV2000NumEntriesField(int value)
std::string FormatV2000StringField(const std::string &value, unsigned int fieldSize, bool pad, bool addSeparator)
std::string FormatV3000ParentBlock(const SubstanceGroup &sgroup)
std::string BuildV2000SDDLine(const int idx, const SubstanceGroup *sgroup)
std::unordered_map< int, SubstanceGroup > IDX_TO_SGROUP_MAP
std::string BuildV2000SDILine(const int idx, const SubstanceGroup *sgroup)
std::string FormatV2000DoubleField(double value)
std::string BuildV3000IdxVectorDataBlock(const std::string &key, const std::vector< T * > &dataVector)
std::string BuildV2000SDSLines(const ROMol &mol)
std::string FormatV2000IntField(int value)
std::string BuildV2000IdxVectorDataLines(const unsigned int entriesPerLine, const unsigned int sGroupId, const std::string &code, const T &dataVector)
bool rdvalue_is(const RDValue_cast_t)