RDKit
Open-source cheminformatics and machine learning.
Loading...
Searching...
No Matches
SmilesParseOps.h
Go to the documentation of this file.
1//
2// Copyright (C) 2001-2022 Greg Landrum and other RDKit contributors
3//
4// @@ All Rights Reserved @@
5// This file is part of the RDKit.
6// The contents are covered by the terms of the BSD license
7// which is included in the file license.txt, found at the root
8// of the RDKit source tree.
9//
10#include <string_view>
11
12#include <RDGeneral/export.h>
13#ifndef RD_SMILESPARSEOPS_H
14#define RD_SMILESPARSEOPS_H
15#include <GraphMol/Bond.h>
16
17namespace RDKit {
18class RWMol;
19class Atom;
20class QueryBond;
21} // namespace RDKit
22namespace SmilesParseOps {
24 RDKit::RWMol *mp);
26 bool throwIt = true);
28// This uses SMARTS semantics: unspecified bonds are treated as
29// aromatic or single.
31 RDKit::RWMol *mol, RDKit::RWMol *frag,
35 const RDKit::RWMol *mol, const RDKit::Atom *atom1,
36 const RDKit::Atom *atom2);
38 bool strict);
40 bool toleratePartials);
45 RDKit::RWMol &mol, const std::string &extText,
46 std::string::const_iterator &pos, unsigned int startAtomIdx = 0,
47 unsigned int startBondIdx = 0);
48inline void parseCXExtensions(RDKit::RWMol &mol, const std::string &extText,
49 unsigned int startAtomIdx,
50 unsigned int startBondIdx) {
51 auto iter = extText.begin();
52 parseCXExtensions(mol, extText, iter, startAtomIdx, startBondIdx);
53};
54//! removes formal charge, isotope, etc. Primarily useful for QueryAtoms
56
57//! returns whether or not the combination of tag and permutation provided are
58//! legal
60 int permutation);
61
62//! this is a bit of a hack to try and get nicer "SMILES" from
63//! a SMARTS molecule
65 const RDKit::Atom *a1, const RDKit::Atom *a2);
66
67namespace detail {
68constexpr auto _needsDetectBondStereo = "_needsDetectBondStereo";
69constexpr auto _needsDetectAtomStereo = "_needsDetectAtomStereo";
70
71void printSyntaxErrorMessage(std::string_view input,
72 std::string_view err_message,
73 unsigned int bad_token_position);
74} // namespace detail
75} // namespace SmilesParseOps
76
77#endif
The class for representing atoms.
Definition Atom.h:75
BondType
the type of Bond
Definition Bond.h:56
@ UNSPECIFIED
Definition Bond.h:57
BondDir
the bond's direction (for chirality)
Definition Bond.h:83
@ NONE
no special style
Definition Bond.h:84
Class for storing Bond queries.
Definition QueryBond.h:28
RWMol is a molecule class that is intended to be edited.
Definition RWMol.h:32
#define RDKIT_SMILESPARSE_EXPORT
Definition export.h:505
Std stuff.
void printSyntaxErrorMessage(std::string_view input, std::string_view err_message, unsigned int bad_token_position)
constexpr auto _needsDetectBondStereo
constexpr auto _needsDetectAtomStereo
RDKIT_SMILESPARSE_EXPORT void CheckChiralitySpecifications(RDKit::RWMol *mol, bool strict)
RDKIT_SMILESPARSE_EXPORT void CloseMolRings(RDKit::RWMol *mol, bool toleratePartials)
RDKIT_SMILESPARSE_EXPORT RDKit::QueryBond * getUnspecifiedQueryBond(const RDKit::Atom *a1, const RDKit::Atom *a2)
RDKIT_SMILESPARSE_EXPORT bool checkChiralPermutation(int chiralTag, int permutation)
RDKIT_SMILESPARSE_EXPORT void ClearAtomChemicalProps(RDKit::Atom *atom)
removes formal charge, isotope, etc. Primarily useful for QueryAtoms
RDKIT_SMILESPARSE_EXPORT void parseCXExtensions(RDKit::RWMol &mol, const std::string &extText, std::string::const_iterator &pos, unsigned int startAtomIdx=0, unsigned int startBondIdx=0)
RDKIT_SMILESPARSE_EXPORT void ReportParseError(const char *message, bool throwIt=true)
RDKIT_SMILESPARSE_EXPORT void SetUnspecifiedBondTypes(RDKit::RWMol *mol)
RDKIT_SMILESPARSE_EXPORT void AddFragToMol(RDKit::RWMol *mol, RDKit::RWMol *frag, RDKit::Bond::BondType bondOrder=RDKit::Bond::UNSPECIFIED, RDKit::Bond::BondDir bondDir=RDKit::Bond::NONE)
RDKIT_SMILESPARSE_EXPORT void CleanupAfterParseError(RDKit::RWMol *mol)
RDKIT_SMILESPARSE_EXPORT void AdjustAtomChiralityFlags(RDKit::RWMol *mol)
RDKIT_SMILESPARSE_EXPORT void CheckRingClosureBranchStatus(RDKit::Atom *atom, RDKit::RWMol *mp)
RDKIT_SMILESPARSE_EXPORT RDKit::Bond::BondType GetUnspecifiedBondType(const RDKit::RWMol *mol, const RDKit::Atom *atom1, const RDKit::Atom *atom2)
RDKIT_SMILESPARSE_EXPORT void CleanupAfterParsing(RDKit::RWMol *mol)