RDKit
Open-source cheminformatics and machine learning.
Fragment.h
Go to the documentation of this file.
1 //
2 // Copyright (C) 2018 Susan H. Leung
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_FRAGMENT_REMOVER_H
12 #define RD_FRAGMENT_REMOVER_H
13 
14 #include <Catalogs/Catalog.h>
18 
19 namespace RDKit {
20 class ROMol;
21 
22 namespace MolStandardize {
23 
24 RDKIT_MOLSTANDARDIZE_EXPORT extern const CleanupParameters
26 
28  int>
30 
32  public:
34  FragmentRemover(const std::string fragmentFile, bool leave_last,
35  bool skip_if_all_match = false);
36  FragmentRemover(std::istream &fragmentStream, bool leave_last,
37  bool skip_if_all_match = false);
38  ~FragmentRemover();
39 
40  //! making FragmentRemover objects non-copyable
41  FragmentRemover(const FragmentRemover &other) = delete;
42  FragmentRemover &operator=(FragmentRemover const &) = delete;
43 
44  ROMol *remove(const ROMol &mol);
45 
46  private:
47  // Setting leave_last to True will ensure at least one fragment
48  // is left in the molecule, even if it is matched by a
49  // FragmentPattern
50  bool LEAVE_LAST;
51  // If set, this causes the original molecule to be returned
52  // if every fragment in it matches the salt list
53  bool SKIP_IF_ALL_MATCH;
54  FragmentCatalog *d_fcat;
55 
56 }; // class FragmentRemover
57 
59  public:
60  // LargestFragmentChooser(){};
61  LargestFragmentChooser(bool prefer_organic = false)
62  : PREFER_ORGANIC(prefer_organic){};
65 
66  ROMol *choose(const ROMol &mol);
67  struct Largest {
68  Largest();
69  Largest(std::string &smiles, const boost::shared_ptr<ROMol> &fragment,
70  unsigned int &numatoms, double &weight, bool &organic);
71  std::string Smiles;
72  boost::shared_ptr<ROMol> Fragment;
73  unsigned int NumAtoms;
74  double Weight;
75  bool Organic;
76  };
77 
78  private:
79  bool PREFER_ORGANIC;
80 }; // class LargestFragmentChooser
81 } // namespace MolStandardize
82 } // namespace RDKit
83 
84 #endif
MolStandardize.h
RDKit::MolStandardize::FragmentCatalog
RDCatalog::HierarchCatalog< FragmentCatalogEntry, FragmentCatalogParams, int > FragmentCatalog
Definition: Fragment.h:29
FragmentCatalogParams.h
RDCatalog::HierarchCatalog
A Catalog with a hierarchical structure.
Definition: Catalog.h:135
Catalog.h
RDKit::ROMol
Definition: ROMol.h:171
RDKit::MolStandardize::LargestFragmentChooser::Largest::NumAtoms
unsigned int NumAtoms
Definition: Fragment.h:73
RDKit::MolStandardize::FragmentCatalogEntry
Definition: FragmentCatalogEntry.h:23
RDKit::MolStandardize::LargestFragmentChooser::Largest::Weight
double Weight
Definition: Fragment.h:74
RDKit::MolStandardize::LargestFragmentChooser::~LargestFragmentChooser
~LargestFragmentChooser()
Definition: Fragment.h:64
FragmentCatalogEntry.h
RDKit::MolStandardize::FragmentCatalogParams
Definition: FragmentCatalogParams.h:25
RDKit::MolStandardize::LargestFragmentChooser::LargestFragmentChooser
LargestFragmentChooser(bool prefer_organic=false)
Definition: Fragment.h:61
RDKit
Std stuff.
Definition: Atom.h:30
RDKit::MolStandardize::LargestFragmentChooser::Largest
Definition: Fragment.h:67
RDKit::MolStandardize::LargestFragmentChooser::Largest::Organic
bool Organic
Definition: Fragment.h:75
RDKit::MolStandardize::FragmentRemover
Definition: Fragment.h:31
RDKit::MolStandardize::LargestFragmentChooser::Largest::Smiles
std::string Smiles
Definition: Fragment.h:71
RDKit::MolStandardize::LargestFragmentChooser
Definition: Fragment.h:58
RDKIT_MOLSTANDARDIZE_EXPORT
#define RDKIT_MOLSTANDARDIZE_EXPORT
Definition: export.h:437
RDKit::MolStandardize::defaultCleanupParameters
const RDKIT_MOLSTANDARDIZE_EXPORT CleanupParameters defaultCleanupParameters
Definition: Fragment.h:25
RDKit::MolStandardize::LargestFragmentChooser::Largest::Fragment
boost::shared_ptr< ROMol > Fragment
Definition: Fragment.h:72
export.h