RDKit
Open-source cheminformatics and machine learning.
Toggle main menu visibility
Loading...
Searching...
No Matches
Deprotect.h
Go to the documentation of this file.
1
//
2
// Copyright (C) 2020-2021 Brian P Kelley, Joann Prescott-Roy and other RDKit
3
// contributors
4
//
5
// @@ All Rights Reserved @@
6
// This file is part of the RDKit.
7
// The contents are covered by the terms of the BSD license
8
// which is included in the file license.txt, found at the root
9
// of the RDKit source tree.
10
//
11
#ifndef RDK_DEPROTECT_LIBRARY
12
#define RDK_DEPROTECT_LIBRARY
13
14
#include <
RDGeneral/export.h
>
15
#include <
GraphMol/RDKitBase.h
>
16
#include <
GraphMol/ChemReactions/Reaction.h
>
17
#include <string>
18
#include <memory>
19
20
namespace
RDKit
{
21
namespace
Deprotect
{
22
/*! Data for Deprotecting molecules
23
24
Deprotects are described as reactions that remove the protecting
25
group and leave behind the group being protected.
26
27
Each DeprotectData has the following attributes:
28
29
- <b>deprotection_class</b> functional group being protected (i.e. amine,
30
alcohol, ...)
31
- <b>reaction_smarts</b> the reaction smarts pattern for removing the
32
protecting group
33
- <b>abbreviation</b> common abbreviation for the protecting group (Boc,
34
Fmoc)
35
- <b>full_name</b> full name for the protecting group
36
- <b> rxn </b> the reaction itself.
37
*/
38
39
struct
RDKIT_DEPROTECT_EXPORT
DeprotectData
{
40
std::string
deprotection_class
;
41
std::string
reaction_smarts
;
42
std::string
abbreviation
;
43
std::string
full_name
;
44
std::string
example
;
45
46
std::shared_ptr<ChemicalReaction>
47
rxn
;
// so much easier than unique_ptr, sigh...
48
49
DeprotectData
(std::string
deprotection_class
,
50
const
std::string &
reaction_smarts
, std::string
abbreviation
,
51
std::string
full_name
, std::string
example
=
""
);
52
53
bool
operator==
(
const
DeprotectData
&other)
const
{
54
return
(
deprotection_class
== other.
deprotection_class
&&
55
full_name
== other.
full_name
&&
56
abbreviation
== other.
abbreviation
&&
57
reaction_smarts
== other.
reaction_smarts
&&
58
isValid
() == other.
isValid
());
59
}
60
bool
operator!=
(
const
DeprotectData
&other)
const
{
61
return
!(*
this
== other);
62
}
63
64
//! Returns true if the deprotection is valid
65
bool
isValid
()
const
{
66
return
rxn
.get() !=
nullptr
&&
rxn
->getNumProductTemplates() == 1;
67
}
68
};
69
70
//! Retrieves the built in list of common deprotections
71
RDKIT_DEPROTECT_EXPORT
const
std::vector<DeprotectData> &
getDeprotections
();
72
73
//! Deprotect a molecule
74
/*!
75
The resulting molecule is annotated with the deprotections used (property
76
DEPROTECTIONS) and the number of deprotections applied (property
77
DEPROTECTIION_COUNT)
78
79
\param mol the molecule to deprotect
80
\param deprotections - a vector of deprotections to use, defaults to the
81
built in deprotections.
82
83
\return The deprotected form of the input molecule
84
*/
85
RDKIT_DEPROTECT_EXPORT
std::unique_ptr<ROMol>
deprotect
(
86
const
ROMol
&mol,
87
const
std::vector<DeprotectData> &deprotections =
getDeprotections
());
88
//! Deprotect a molecule in place
89
/*!
90
The molecule is annotated with the deprotections used (property
91
DEPROTECTIONS) and the number of deprotections applied (property
92
DEPROTECTIION_COUNT)
93
94
\param mol the molecule to deprotect
95
\param deprotections - a vector of deprotections to use, defaults to the
96
built in deprotections.
97
98
\return whether or not the molecule was changed
99
*/
100
RDKIT_DEPROTECT_EXPORT
bool
deprotectInPlace
(
101
RWMol
&mol,
102
const
std::vector<DeprotectData> &deprotections =
getDeprotections
());
103
}
// namespace Deprotect
104
}
// namespace RDKit
105
#endif
RDKitBase.h
pulls in the core RDKit functionality
Reaction.h
RDKit::ROMol
Definition
ROMol.h:344
RDKit::RWMol
RWMol is a molecule class that is intended to be edited.
Definition
RWMol.h:32
export.h
RDKIT_DEPROTECT_EXPORT
#define RDKIT_DEPROTECT_EXPORT
Definition
export.h:131
RDKit::Deprotect
Definition
Deprotect.h:21
RDKit::Deprotect::getDeprotections
RDKIT_DEPROTECT_EXPORT const std::vector< DeprotectData > & getDeprotections()
Retrieves the built in list of common deprotections.
RDKit::Deprotect::deprotect
RDKIT_DEPROTECT_EXPORT std::unique_ptr< ROMol > deprotect(const ROMol &mol, const std::vector< DeprotectData > &deprotections=getDeprotections())
Deprotect a molecule.
RDKit::Deprotect::deprotectInPlace
RDKIT_DEPROTECT_EXPORT bool deprotectInPlace(RWMol &mol, const std::vector< DeprotectData > &deprotections=getDeprotections())
Deprotect a molecule in place.
RDKit
Std stuff.
Definition
Abbreviations.h:19
RDKit::Deprotect::DeprotectData::operator!=
bool operator!=(const DeprotectData &other) const
Definition
Deprotect.h:60
RDKit::Deprotect::DeprotectData::operator==
bool operator==(const DeprotectData &other) const
Definition
Deprotect.h:53
RDKit::Deprotect::DeprotectData::full_name
std::string full_name
Definition
Deprotect.h:43
RDKit::Deprotect::DeprotectData::rxn
std::shared_ptr< ChemicalReaction > rxn
Definition
Deprotect.h:47
RDKit::Deprotect::DeprotectData::abbreviation
std::string abbreviation
Definition
Deprotect.h:42
RDKit::Deprotect::DeprotectData::DeprotectData
DeprotectData(std::string deprotection_class, const std::string &reaction_smarts, std::string abbreviation, std::string full_name, std::string example="")
RDKit::Deprotect::DeprotectData::example
std::string example
Definition
Deprotect.h:44
RDKit::Deprotect::DeprotectData::reaction_smarts
std::string reaction_smarts
Definition
Deprotect.h:41
RDKit::Deprotect::DeprotectData::deprotection_class
std::string deprotection_class
Definition
Deprotect.h:40
RDKit::Deprotect::DeprotectData::isValid
bool isValid() const
Returns true if the deprotection is valid.
Definition
Deprotect.h:65
GraphMol
Deprotect
Deprotect.h
Generated on
for RDKit by
1.17.0