File: Pipeline.cpp

package info (click to toggle)
rdkit 202503.1-4
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 220,160 kB
  • sloc: cpp: 399,240; python: 77,453; ansic: 25,517; java: 8,173; javascript: 4,005; sql: 2,389; yacc: 1,565; lex: 1,263; cs: 1,081; makefile: 578; xml: 229; fortran: 183; sh: 105
file content (143 lines) | stat: -rw-r--r-- 7,156 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
//
//  Copyright (C) 2023 Novartis Biomedical Research
//
//   @@ All Rights Reserved @@
//  This file is part of the RDKit.
//  The contents are covered by the terms of the BSD license
//  which is included in the file license.txt, found at the root
//  of the RDKit source tree.
//
#include <RDBoost/Wrap.h>

#include <GraphMol/RDKitBase.h>
#include <GraphMol/MolStandardize/Pipeline.h>

namespace RDKit {
namespace MolStandardize {

bool operator==(const PipelineLogEntry &lhs, const PipelineLogEntry &rhs) {
  return (lhs.status == rhs.status) && (lhs.detail == rhs.detail);
}

}  // namespace MolStandardize
}  // namespace RDKit

namespace python = boost::python;
using namespace RDKit;

void wrap_pipeline() {
  python::class_<MolStandardize::PipelineOptions>("PipelineOptions")
      .def_readwrite("strictParsing",
                     &MolStandardize::PipelineOptions::strictParsing)
      .def_readwrite("reportAllFailures",
                     &MolStandardize::PipelineOptions::reportAllFailures)
      .def_readwrite("allowEmptyMolecules",
                     &MolStandardize::PipelineOptions::allowEmptyMolecules)
      .def_readwrite("allowEnhancedStereo",
                     &MolStandardize::PipelineOptions::allowEnhancedStereo)
      .def_readwrite("allowAromaticBondType",
                     &MolStandardize::PipelineOptions::allowAromaticBondType)
      .def_readwrite("allowDativeBondType",
                     &MolStandardize::PipelineOptions::allowDativeBondType)
      .def_readwrite("is2DZeroThreshold",
                     &MolStandardize::PipelineOptions::is2DZeroThreshold)
      .def_readwrite("atomClashLimit",
                     &MolStandardize::PipelineOptions::atomClashLimit)
      .def_readwrite("minMedianBondLength",
                     &MolStandardize::PipelineOptions::minMedianBondLength)
      .def_readwrite("bondLengthLimit",
                     &MolStandardize::PipelineOptions::bondLengthLimit)
      .def_readwrite("allowLongBondsInRings",
                     &MolStandardize::PipelineOptions::allowLongBondsInRings)
      .def_readwrite(
          "allowAtomBondClashExemption",
          &MolStandardize::PipelineOptions::allowAtomBondClashExemption)
      .def_readwrite("metalNof", &MolStandardize::PipelineOptions::metalNof)
      .def_readwrite("metalNon", &MolStandardize::PipelineOptions::metalNon)
      .def_readwrite("normalizerData",
                     &MolStandardize::PipelineOptions::normalizerData)
      .def_readwrite("normalizerMaxRestarts",
                     &MolStandardize::PipelineOptions::normalizerMaxRestarts)
      .def_readwrite("scaledMedianBondLength",
                     &MolStandardize::PipelineOptions::scaledMedianBondLength)
      .def_readwrite("outputV2000",
                     &MolStandardize::PipelineOptions::outputV2000);

  python::enum_<MolStandardize::PipelineStatus>("PipelineStatus")
      .value("NO_EVENT", MolStandardize::PipelineStatus::NO_EVENT)
      .value("INPUT_ERROR", MolStandardize::PipelineStatus::INPUT_ERROR)
      .value("PREPARE_FOR_VALIDATION_ERROR",
             MolStandardize::PipelineStatus::PREPARE_FOR_VALIDATION_ERROR)
      .value("FEATURES_VALIDATION_ERROR",
             MolStandardize::PipelineStatus::FEATURES_VALIDATION_ERROR)
      .value("BASIC_VALIDATION_ERROR",
             MolStandardize::PipelineStatus::BASIC_VALIDATION_ERROR)
      .value("IS2D_VALIDATION_ERROR",
             MolStandardize::PipelineStatus::IS2D_VALIDATION_ERROR)
      .value("LAYOUT2D_VALIDATION_ERROR",
             MolStandardize::PipelineStatus::LAYOUT2D_VALIDATION_ERROR)
      .value("STEREO_VALIDATION_ERROR",
             MolStandardize::PipelineStatus::STEREO_VALIDATION_ERROR)
      .value("VALIDATION_ERROR",
             MolStandardize::PipelineStatus::VALIDATION_ERROR)
      .value("PREPARE_FOR_STANDARDIZATION_ERROR",
             MolStandardize::PipelineStatus::PREPARE_FOR_STANDARDIZATION_ERROR)
      .value("METAL_STANDARDIZATION_ERROR",
             MolStandardize::PipelineStatus::METAL_STANDARDIZATION_ERROR)
      .value("NORMALIZER_STANDARDIZATION_ERROR",
             MolStandardize::PipelineStatus::NORMALIZER_STANDARDIZATION_ERROR)
      .value("FRAGMENT_STANDARDIZATION_ERROR",
             MolStandardize::PipelineStatus::FRAGMENT_STANDARDIZATION_ERROR)
      .value("CHARGE_STANDARDIZATION_ERROR",
             MolStandardize::PipelineStatus::CHARGE_STANDARDIZATION_ERROR)
      .value("STANDARDIZATION_ERROR",
             MolStandardize::PipelineStatus::STANDARDIZATION_ERROR)
      .value("OUTPUT_ERROR", MolStandardize::PipelineStatus::OUTPUT_ERROR)
      .value("PIPELINE_ERROR", MolStandardize::PipelineStatus::PIPELINE_ERROR)
      .value("METALS_DISCONNECTED",
             MolStandardize::PipelineStatus::METALS_DISCONNECTED)
      .value("NORMALIZATION_APPLIED",
             MolStandardize::PipelineStatus::NORMALIZATION_APPLIED)
      .value("FRAGMENTS_REMOVED",
             MolStandardize::PipelineStatus::FRAGMENTS_REMOVED)
      .value("PROTONATION_CHANGED",
             MolStandardize::PipelineStatus::PROTONATION_CHANGED)
      .value("STRUCTURE_MODIFICATION",
             MolStandardize::PipelineStatus::STRUCTURE_MODIFICATION);

  python::enum_<MolStandardize::PipelineStage>("PipelineStage")
      .value("PARSING_INPUT", MolStandardize::PipelineStage::PARSING_INPUT)
      .value("PREPARE_FOR_VALIDATION",
             MolStandardize::PipelineStage::PREPARE_FOR_VALIDATION)
      .value("VALIDATION", MolStandardize::PipelineStage::VALIDATION)
      .value("PREPARE_FOR_STANDARDIZATION",
             MolStandardize::PipelineStage::PREPARE_FOR_STANDARDIZATION)
      .value("STANDARDIZATION", MolStandardize::PipelineStage::STANDARDIZATION)
      .value("SERIALIZING_OUTPUT",
             MolStandardize::PipelineStage::SERIALIZING_OUTPUT)
      .value("COMPLETED", MolStandardize::PipelineStage::COMPLETED);

  python::class_<MolStandardize::PipelineLogEntry>("PipelineLogEntry",
                                                   python::no_init)
      .def_readonly("status", &MolStandardize::PipelineLogEntry::status)
      .def_readonly("detail", &MolStandardize::PipelineLogEntry::detail);

  python::class_<MolStandardize::PipelineLog>("PipelineLog", python::no_init)
      .def(python::vector_indexing_suite<MolStandardize::PipelineLog>());

  python::class_<MolStandardize::PipelineResult>("PipelineResult",
                                                 python::no_init)
      .def_readonly("status", &MolStandardize::PipelineResult::status)
      .def_readonly("stage", &MolStandardize::PipelineResult::stage)
      .def_readonly("log", &MolStandardize::PipelineResult::log)
      .def_readonly("inputMolData",
                    &MolStandardize::PipelineResult::inputMolData)
      .def_readonly("outputMolData",
                    &MolStandardize::PipelineResult::outputMolData)
      .def_readonly("parentMolData",
                    &MolStandardize::PipelineResult::parentMolData);

  python::class_<MolStandardize::Pipeline>("Pipeline")
      .def(python::init<const MolStandardize::PipelineOptions &>())
      .def("run", &MolStandardize::Pipeline::run);
}