RDKit
Open-source cheminformatics and machine learning.
MolFragmenter.h
Go to the documentation of this file.
1//
2// Copyright (C) 2013 Greg Landrum
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 <RDGeneral/export.h>
11#ifndef _RD_MOLFRAGMENTER_H__
12#define _RD_MOLFRAGMENTER_H__
13
14#include <istream>
15#include <GraphMol/ROMol.h>
16
17namespace RDKit {
18namespace MolFragmenter {
20 unsigned int atom1Label, atom2Label;
21 unsigned int atom1Type, atom2Type;
24};
25
26//! \brief Fragments a molecule by breaking a set of bonds
27//!
28/*!
29
30 \param mol - the molecule to be modified
31 \param bondIndices - indices of the bonds to be broken
32
33 optional:
34 \param addDummies - toggles addition of dummy atoms to indicate where
35 bonds were broken
36 \param dummyLabels - used to provide the labels to be used for the dummies.
37 the first element in each pair is the label for the dummy
38 that replaces the bond's beginAtom, the second is for the
39 dummy that replaces the bond's endAtom. If not provided, the
40 dummies are labeled with atom indices.
41 \param bondTypes - used to provide the bond type to use between the
42 fragments and the dummy atoms. If not provided, defaults to single.
43 \param nCutsPerAtom - used to return the number of bonds that were
44 cut at each atom. Should be nAtoms long.
45
46 \return a new ROMol with the modifications
47 The client is responsible for deleting this molecule.
48
49*/
51 const ROMol &mol, const std::vector<unsigned int> &bondIndices,
52 bool addDummies = true,
53 const std::vector<std::pair<unsigned int, unsigned int>> *dummyLabels =
54 nullptr,
55 const std::vector<Bond::BondType> *bondTypes = nullptr,
56 std::vector<unsigned int> *nCutsPerAtom = nullptr);
57//! \overload
59 const ROMol &mol, const std::vector<FragmenterBondType> &bondPatterns,
60 const std::map<unsigned int, ROMOL_SPTR> *atomEnvirons = nullptr,
61 std::vector<unsigned int> *nCutsPerAtom = nullptr);
63 const ROMol &mol, const std::vector<unsigned int> &bondIndices,
64 std::vector<ROMOL_SPTR> &resMols, unsigned int maxToCut = 1,
65 bool addDummies = true,
66 const std::vector<std::pair<unsigned int, unsigned int>> *dummyLabels =
67 nullptr,
68 const std::vector<Bond::BondType> *bondTypes = nullptr,
69 std::vector<std::vector<unsigned int>> *nCutsPerAtom = nullptr);
70
71//! \brief Fragments a molecule by breaking all BRICS bonds
72/*!
73 \return a new ROMol with the modifications
74 The client is responsible for deleting this molecule.
75
76*/
78
80 std::istream *inStream, std::map<unsigned int, std::string> &defs,
81 const std::string &comment = "//", bool validate = true,
82 std::map<unsigned int, ROMOL_SPTR> *environs = nullptr);
84 const std::string &str, std::map<unsigned int, std::string> &defs,
85 const std::string &comment = "//", bool validate = true,
86 std::map<unsigned int, ROMOL_SPTR> *environs = nullptr);
88 std::map<unsigned int, std::string> &defs,
89 std::map<unsigned int, ROMOL_SPTR> *environs = nullptr);
91 std::istream *inStream,
92 const std::map<unsigned int, std::string> &atomTypes,
93 std::vector<FragmenterBondType> &defs, const std::string &comment = "//",
94 bool validate = true, bool labelByConnector = true);
96 const std::string &str,
97 const std::map<unsigned int, std::string> &atomTypes,
98 std::vector<FragmenterBondType> &defs, const std::string &comment = "//",
99 bool validate = true, bool labelByConnector = true);
101 std::vector<FragmenterBondType> &defs);
102} // namespace MolFragmenter
103
105
108 std::vector<std::string> atomSymbols;
109 bool enforceValenceRules=true;
110};
111
112RDKIT_CHEMTRANSFORMS_EXPORT std::unique_ptr<ROMol> molzip(
113 const ROMol &a, const ROMol &b,
114 const MolzipParams &params = MolzipParams());
115
116RDKIT_CHEMTRANSFORMS_EXPORT std::unique_ptr<ROMol> molzip(
117 const ROMol &a, const MolzipParams &params = MolzipParams());
118
119} // namespace RDKit
120#endif
Defines the primary molecule class ROMol as well as associated typedefs.
BondType
the type of Bond
Definition: Bond.h:56
#define RDKIT_CHEMTRANSFORMS_EXPORT
Definition: export.h:57
RDKIT_CHEMTRANSFORMS_EXPORT void fragmentOnSomeBonds(const ROMol &mol, const std::vector< unsigned int > &bondIndices, std::vector< ROMOL_SPTR > &resMols, unsigned int maxToCut=1, bool addDummies=true, const std::vector< std::pair< unsigned int, unsigned int > > *dummyLabels=nullptr, const std::vector< Bond::BondType > *bondTypes=nullptr, std::vector< std::vector< unsigned int > > *nCutsPerAtom=nullptr)
RDKIT_CHEMTRANSFORMS_EXPORT void constructBRICSBondTypes(std::vector< FragmenterBondType > &defs)
RDKIT_CHEMTRANSFORMS_EXPORT void constructFragmenterAtomTypes(std::istream *inStream, std::map< unsigned int, std::string > &defs, const std::string &comment="//", bool validate=true, std::map< unsigned int, ROMOL_SPTR > *environs=nullptr)
RDKIT_CHEMTRANSFORMS_EXPORT ROMol * fragmentOnBonds(const ROMol &mol, const std::vector< unsigned int > &bondIndices, bool addDummies=true, const std::vector< std::pair< unsigned int, unsigned int > > *dummyLabels=nullptr, const std::vector< Bond::BondType > *bondTypes=nullptr, std::vector< unsigned int > *nCutsPerAtom=nullptr)
Fragments a molecule by breaking a set of bonds.
RDKIT_CHEMTRANSFORMS_EXPORT ROMol * fragmentOnBRICSBonds(const ROMol &mol)
Fragments a molecule by breaking all BRICS bonds.
RDKIT_CHEMTRANSFORMS_EXPORT void constructFragmenterBondTypes(std::istream *inStream, const std::map< unsigned int, std::string > &atomTypes, std::vector< FragmenterBondType > &defs, const std::string &comment="//", bool validate=true, bool labelByConnector=true)
RDKIT_CHEMTRANSFORMS_EXPORT void constructBRICSAtomTypes(std::map< unsigned int, std::string > &defs, std::map< unsigned int, ROMOL_SPTR > *environs=nullptr)
Std stuff.
Definition: Abbreviations.h:18
RDKIT_CHEMTRANSFORMS_EXPORT std::unique_ptr< ROMol > molzip(const ROMol &a, const ROMol &b, const MolzipParams &params=MolzipParams())
@ Isotope
Definition: RGroupDecomp.h:50
boost::shared_ptr< ROMol > ROMOL_SPTR
std::vector< std::string > atomSymbols