guohanghui commited on
Commit
caf4838
·
verified ·
1 Parent(s): f985030

Upload 15 files

Browse files
rdkit/mcp_output/README_MCP.md ADDED
@@ -0,0 +1,217 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # RDKit MCP Plugin
2
+
3
+ ## Overview
4
+
5
+ The RDKit MCP Plugin is a comprehensive cheminformatics and machine learning toolkit designed for processing and analyzing chemical data. Built on a robust C++ core with Python bindings, RDKit provides tools for molecular representation, file parsing, substructure searching, molecular descriptor calculation, fingerprinting, 2D/3D visualization, and chemical reaction handling. It is widely used in computational chemistry, drug discovery, and materials science.
6
+
7
+ This plugin integrates RDKit's capabilities into a modular and extensible framework, enabling users to perform complex chemical informatics tasks efficiently.
8
+
9
+ ## Features
10
+
11
+ - **Molecular Representation**: Support for SMILES, Molfile, and other formats.
12
+ - **Substructure Searching**: Advanced SMARTS-based querying.
13
+ - **Molecular Descriptors**: Calculation of chemical properties and fingerprints.
14
+ - **Visualization**: 2D and 3D molecular rendering.
15
+ - **Chemical Reactions**: Reaction handling and enumeration.
16
+ - **Machine Learning Integration**: Tools for cheminformatics-driven ML workflows.
17
+ - **Extensibility**: Modular design for integration with Python, PostgreSQL, and JavaScript.
18
+
19
+ ## Installation
20
+
21
+ ### Prerequisites
22
+
23
+ - Python 3.6 or higher
24
+ - C++ compiler (for building from source)
25
+ - Required Python libraries: `numpy`, `pandas`, `matplotlib`, `scipy`
26
+ - Optional Python libraries: `pillow`, `pytest`, `jupyter`
27
+
28
+ ### Installation via PyPI
29
+
30
+ To install the RDKit MCP Plugin using pip:
31
+
32
+ ```
33
+ pip install rdkit
34
+ ```
35
+
36
+ ### Installation from Source
37
+
38
+ 1. Clone the repository:
39
+ ```
40
+ git clone https://github.com/rdkit/rdkit.git
41
+ cd rdkit
42
+ ```
43
+
44
+ 2. Build the project:
45
+ ```
46
+ mkdir build
47
+ cd build
48
+ cmake ..
49
+ make
50
+ ```
51
+
52
+ 3. Install the Python bindings:
53
+ ```
54
+ make install
55
+ ```
56
+
57
+ 4. Verify the installation:
58
+ ```
59
+ python -c "import rdkit; print(rdkit.__version__)"
60
+ ```
61
+
62
+ ### PostgreSQL Integration
63
+
64
+ To enable the PostgreSQL chemical cartridge:
65
+
66
+ 1. Install PostgreSQL and its development libraries.
67
+ 2. Build the cartridge:
68
+ ```
69
+ cd Code/PgSQL/rdkit
70
+ make
71
+ make install
72
+ ```
73
+ 3. Configure PostgreSQL to load the RDKit extension:
74
+ ```
75
+ CREATE EXTENSION rdkit;
76
+ ```
77
+
78
+ ## Usage
79
+
80
+ RDKit can be used via Python or C++. Below are some common workflows:
81
+
82
+ ### Python Example
83
+
84
+ ```python
85
+ from rdkit import Chem
86
+ from rdkit.Chem import AllChem, Draw
87
+
88
+ # Create a molecule from SMILES
89
+ mol = Chem.MolFromSmiles('c1ccccc1')
90
+
91
+ # Add hydrogens
92
+ mol_with_h = Chem.AddHs(mol)
93
+
94
+ # Generate 2D coordinates
95
+ AllChem.Compute2DCoords(mol_with_h)
96
+
97
+ # Visualize the molecule
98
+ img = Draw.MolToImage(mol_with_h)
99
+ img.show()
100
+ ```
101
+
102
+ ### C++ Example
103
+
104
+ ```cpp
105
+ #include <GraphMol/SmilesParse/SmilesParse.h>
106
+ #include <GraphMol/MolOps.h>
107
+ #include <GraphMol/Depictor/RDDepictor.h>
108
+
109
+ using namespace RDKit;
110
+
111
+ int main() {
112
+ ROMol *mol = SmilesToMol("c1ccccc1");
113
+ MolOps::addHs(*mol);
114
+ RDDepict::compute2DCoords(*mol);
115
+ delete mol;
116
+ return 0;
117
+ }
118
+ ```
119
+
120
+ ## Available Tools and Endpoints
121
+
122
+ ### Command-Line Tools
123
+
124
+ 1. **FeatFinderCLI**
125
+ - **Description**: Command-line interface for finding chemical features in molecules.
126
+ - **Usage**:
127
+ ```
128
+ python -m rdkit.Chem.FeatFinderCLI --input <input_file> --output <output_file>
129
+ ```
130
+
131
+ 2. **run_python_tests**
132
+ - **Description**: Command-line tool for running Python tests in the RDKit repository.
133
+ - **Usage**:
134
+ ```
135
+ python -m Scripts.run_python_tests
136
+ ```
137
+
138
+ ### Python Modules
139
+
140
+ - **`rdkit.Chem`**: Core functionality for molecular operations.
141
+ - **`rdkit.Chem.AllChem`**: Advanced features like conformer generation and reaction handling.
142
+ - **`rdkit.Chem.Draw`**: Visualization tools for 2D molecular rendering.
143
+ - **`rdkit.DataStructs`**: Fingerprints and similarity calculations.
144
+ - **`rdkit.ML`**: Machine learning utilities for cheminformatics.
145
+
146
+ ### PostgreSQL Cartridge
147
+
148
+ - **`rdkit`**: PostgreSQL extension for chemical data storage and querying.
149
+ - **Functions**:
150
+ - `mol_from_smiles(smiles)`
151
+ - `mol_to_smiles(mol)`
152
+ - `substruct_match(mol, query)`
153
+
154
+ ## Notes and Troubleshooting
155
+
156
+ ### Common Issues
157
+
158
+ 1. **Installation Errors**:
159
+ Ensure all dependencies are installed, including a compatible C++ compiler and Python version.
160
+
161
+ 2. **Visualization Issues**:
162
+ If molecular images do not render, ensure `pillow` is installed:
163
+ ```
164
+ pip install pillow
165
+ ```
166
+
167
+ 3. **PostgreSQL Cartridge Errors**:
168
+ Verify that the RDKit extension is properly installed and loaded in PostgreSQL.
169
+
170
+ ### Debugging Tips
171
+
172
+ - Use `pytest` to run unit tests:
173
+ ```
174
+ pytest
175
+ ```
176
+ - Check the RDKit version:
177
+ ```
178
+ python -c "import rdkit; print(rdkit.__version__)"
179
+ ```
180
+ - Enable verbose logging for debugging:
181
+ ```python
182
+ from rdkit import RDLogger
183
+ RDLogger.EnableLog('rdApp.*')
184
+ ```
185
+
186
+ ## Contributing
187
+
188
+ Contributions to the RDKit MCP Plugin are welcome! Please follow these steps:
189
+
190
+ 1. Fork the repository.
191
+ 2. Create a feature branch:
192
+ ```
193
+ git checkout -b feature-name
194
+ ```
195
+ 3. Commit your changes:
196
+ ```
197
+ git commit -m "Add feature description"
198
+ ```
199
+ 4. Push to your fork:
200
+ ```
201
+ git push origin feature-name
202
+ ```
203
+ 5. Open a pull request.
204
+
205
+ ## License
206
+
207
+ RDKit is licensed under the BSD license. See the `LICENSE` file for details.
208
+
209
+ ## Resources
210
+
211
+ - [RDKit Documentation](https://www.rdkit.org/docs/)
212
+ - [GitHub Repository](https://github.com/rdkit/rdkit)
213
+ - [PostgreSQL Cartridge Guide](https://www.rdkit.org/docs/Cartridge.html)
214
+
215
+ ## Acknowledgments
216
+
217
+ RDKit is developed and maintained by a dedicated community of contributors. Special thanks to the open-source community for their support and contributions.
rdkit/mcp_output/analysis.json ADDED
@@ -0,0 +1,2809 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "summary": {
3
+ "repository_url": "https://github.com/rdkit/rdkit",
4
+ "summary": "Imported via zip fallback, file count: 883",
5
+ "file_tree": {
6
+ ".azure-pipelines/linux_build.yml": {
7
+ "size": 3293
8
+ },
9
+ ".azure-pipelines/linux_build_cartridge.yml": {
10
+ "size": 1987
11
+ },
12
+ ".azure-pipelines/linux_build_fuzzer.yml": {
13
+ "size": 2219
14
+ },
15
+ ".azure-pipelines/linux_build_java.yml": {
16
+ "size": 2191
17
+ },
18
+ ".azure-pipelines/linux_build_limitexternal.yml": {
19
+ "size": 2586
20
+ },
21
+ ".azure-pipelines/linux_build_py311.yml": {
22
+ "size": 3159
23
+ },
24
+ ".azure-pipelines/mac_build.yml": {
25
+ "size": 3817
26
+ },
27
+ ".azure-pipelines/mac_build_java.yml": {
28
+ "size": 3455
29
+ },
30
+ ".azure-pipelines/vs_build.yml": {
31
+ "size": 2687
32
+ },
33
+ ".azure-pipelines/vs_build_dll.yml": {
34
+ "size": 2383
35
+ },
36
+ ".azure-pipelines/vs_build_swig.yml": {
37
+ "size": 2312
38
+ },
39
+ ".github/ISSUE_TEMPLATE.md": {
40
+ "size": 980
41
+ },
42
+ ".github/ISSUE_TEMPLATE/bug_report.md": {
43
+ "size": 1401
44
+ },
45
+ ".github/ISSUE_TEMPLATE/feature_request.md": {
46
+ "size": 1257
47
+ },
48
+ ".github/PULL_REQUEST_TEMPLATE.md": {
49
+ "size": 188
50
+ },
51
+ ".github/workflows/close_stale_issues.yml": {
52
+ "size": 1016
53
+ },
54
+ ".github/workflows/templates_updater.yml": {
55
+ "size": 2505
56
+ },
57
+ ".travis.yml": {
58
+ "size": 2789
59
+ },
60
+ "CMakeLists.txt": {
61
+ "size": 27859
62
+ },
63
+ "Code/CMakeLists.txt": {
64
+ "size": 928
65
+ },
66
+ "Code/Catalogs/CMakeLists.txt": {
67
+ "size": 293
68
+ },
69
+ "Code/ChemicalFeatures/CMakeLists.txt": {
70
+ "size": 457
71
+ },
72
+ "Code/ChemicalFeatures/Wrap/CMakeLists.txt": {
73
+ "size": 357
74
+ },
75
+ "Code/ChemicalFeatures/Wrap/testFeatures.py": {
76
+ "size": 4178
77
+ },
78
+ "Code/DataManip/CMakeLists.txt": {
79
+ "size": 35
80
+ },
81
+ "Code/DataManip/MetricMatrixCalc/CMakeLists.txt": {
82
+ "size": 245
83
+ },
84
+ "Code/DataManip/MetricMatrixCalc/Wrap/CMakeLists.txt": {
85
+ "size": 257
86
+ },
87
+ "Code/DataManip/MetricMatrixCalc/Wrap/testMatricCalc.py": {
88
+ "size": 3770
89
+ },
90
+ "Code/DataStructs/CMakeLists.txt": {
91
+ "size": 1335
92
+ },
93
+ "Code/DataStructs/Wrap/CMakeLists.txt": {
94
+ "size": 864
95
+ },
96
+ "Code/DataStructs/Wrap/testBV.py": {
97
+ "size": 9054
98
+ },
99
+ "Code/DataStructs/Wrap/testDiscreteValueVect.py": {
100
+ "size": 7786
101
+ },
102
+ "Code/DataStructs/Wrap/testFPB.py": {
103
+ "size": 11815
104
+ },
105
+ "Code/DataStructs/Wrap/testRealValueVect.py": {
106
+ "size": 3108
107
+ },
108
+ "Code/DataStructs/Wrap/testSparseIntVect.py": {
109
+ "size": 5472
110
+ },
111
+ "Code/Demos/RDKit/Basement/xpcom/demo/rd.js": {
112
+ "size": 24
113
+ },
114
+ "Code/Demos/RDKit/Basement/xpcom/demo/sorttable.js": {
115
+ "size": 7727
116
+ },
117
+ "Code/Demos/RDKit/Draw/drawmol.js": {
118
+ "size": 3843
119
+ },
120
+ "Code/Demos/RDKit/GettingStarted/CMakeLists.txt": {
121
+ "size": 278
122
+ },
123
+ "Code/Demos/RDKit/MPI/rdkpympi.py": {
124
+ "size": 1752
125
+ },
126
+ "Code/Demos/boost/EBV_err/setup.py": {
127
+ "size": 1853
128
+ },
129
+ "Code/Demos/boost/EBV_err/test.py": {
130
+ "size": 837
131
+ },
132
+ "Code/Demos/boost/cross_mod_err/setup.py": {
133
+ "size": 1657
134
+ },
135
+ "Code/Demos/boost/cross_mod_err/test.py": {
136
+ "size": 637
137
+ },
138
+ "Code/Demos/boost/cross_module/readme.txt": {
139
+ "size": 67
140
+ },
141
+ "Code/Demos/boost/cross_module/setup.py": {
142
+ "size": 1490
143
+ },
144
+ "Code/Demos/boost/cross_module/test.py": {
145
+ "size": 204
146
+ },
147
+ "Code/Demos/boost/numpy/setup.py": {
148
+ "size": 1346
149
+ },
150
+ "Code/Demos/boost/numpy/test.py": {
151
+ "size": 275
152
+ },
153
+ "Code/Demos/boost/overloads/setup.py": {
154
+ "size": 1357
155
+ },
156
+ "Code/Demos/boost/overloads/test.py": {
157
+ "size": 202
158
+ },
159
+ "Code/Demos/boost/python_objs/setup.py": {
160
+ "size": 1374
161
+ },
162
+ "Code/Demos/boost/python_objs/test.py": {
163
+ "size": 939
164
+ },
165
+ "Code/Demos/boost/smartPtrsAndIters/setup.py": {
166
+ "size": 357
167
+ },
168
+ "Code/Demos/boost/smartPtrsAndIters/test.py": {
169
+ "size": 1375
170
+ },
171
+ "Code/DistGeom/CMakeLists.txt": {
172
+ "size": 797
173
+ },
174
+ "Code/DistGeom/Wrap/CMakeLists.txt": {
175
+ "size": 238
176
+ },
177
+ "Code/DistGeom/Wrap/rough_test.py": {
178
+ "size": 3502
179
+ },
180
+ "Code/Features/CMakeLists.txt": {
181
+ "size": 147
182
+ },
183
+ "Code/ForceField/CMakeLists.txt": {
184
+ "size": 2113
185
+ },
186
+ "Code/ForceField/MMFF/CMakeLists.txt": {
187
+ "size": 602
188
+ },
189
+ "Code/ForceField/UFF/CMakeLists.txt": {
190
+ "size": 143
191
+ },
192
+ "Code/ForceField/Wrap/CMakeLists.txt": {
193
+ "size": 276
194
+ },
195
+ "Code/ForceField/Wrap/testConstraints.py": {
196
+ "size": 11606
197
+ },
198
+ "Code/Fuzz/CMakeLists.txt": {
199
+ "size": 1369
200
+ },
201
+ "Code/Fuzz/README.md": {
202
+ "size": 2589
203
+ },
204
+ "Code/Geometry/CMakeLists.txt": {
205
+ "size": 978
206
+ },
207
+ "Code/Geometry/Wrap/CMakeLists.txt": {
208
+ "size": 338
209
+ },
210
+ "Code/Geometry/Wrap/testGeometry.py": {
211
+ "size": 27110
212
+ },
213
+ "Code/GraphMol/Abbreviations/CMakeLists.txt": {
214
+ "size": 496
215
+ },
216
+ "Code/GraphMol/Abbreviations/Wrap/CMakeLists.txt": {
217
+ "size": 259
218
+ },
219
+ "Code/GraphMol/Abbreviations/Wrap/testAbbreviations.py": {
220
+ "size": 8287
221
+ },
222
+ "Code/GraphMol/CIPLabeler/CMakeLists.txt": {
223
+ "size": 1410
224
+ },
225
+ "Code/GraphMol/CIPLabeler/Wrap/CMakeLists.txt": {
226
+ "size": 370
227
+ },
228
+ "Code/GraphMol/CIPLabeler/Wrap/pyCIPLabelWrapTest.py": {
229
+ "size": 4150
230
+ },
231
+ "Code/GraphMol/CIPLabeler/Wrap/pyCIPLabelsValidation.py": {
232
+ "size": 2574
233
+ },
234
+ "Code/GraphMol/CMakeLists.txt": {
235
+ "size": 6461
236
+ },
237
+ "Code/GraphMol/ChemReactions/CMakeLists.txt": {
238
+ "size": 2120
239
+ },
240
+ "Code/GraphMol/ChemReactions/Wrap/CMakeLists.txt": {
241
+ "size": 589
242
+ },
243
+ "Code/GraphMol/ChemReactions/Wrap/testEnumerations.py": {
244
+ "size": 26736
245
+ },
246
+ "Code/GraphMol/ChemReactions/Wrap/testReactionWrapper.py": {
247
+ "size": 52085
248
+ },
249
+ "Code/GraphMol/ChemReactions/Wrap/testSanitize.py": {
250
+ "size": 10493
251
+ },
252
+ "Code/GraphMol/ChemReactions/license.txt": {
253
+ "size": 1747
254
+ },
255
+ "Code/GraphMol/ChemTransforms/CMakeLists.txt": {
256
+ "size": 664
257
+ },
258
+ "Code/GraphMol/ChemTransforms/testData/query_file1.txt": {
259
+ "size": 900
260
+ },
261
+ "Code/GraphMol/ChemTransforms/testData/query_file2.txt": {
262
+ "size": 13
263
+ },
264
+ "Code/GraphMol/Depictor/CMakeLists.txt": {
265
+ "size": 1322
266
+ },
267
+ "Code/GraphMol/Depictor/Wrap/CMakeLists.txt": {
268
+ "size": 277
269
+ },
270
+ "Code/GraphMol/Depictor/Wrap/testDepictor.py": {
271
+ "size": 49121
272
+ },
273
+ "Code/GraphMol/Deprotect/CMakeLists.txt": {
274
+ "size": 510
275
+ },
276
+ "Code/GraphMol/Deprotect/Wrap/CMakeLists.txt": {
277
+ "size": 339
278
+ },
279
+ "Code/GraphMol/Deprotect/Wrap/rough_test.py": {
280
+ "size": 2493
281
+ },
282
+ "Code/GraphMol/Descriptors/CMakeLists.txt": {
283
+ "size": 2618
284
+ },
285
+ "Code/GraphMol/Descriptors/Wrap/CMakeLists.txt": {
286
+ "size": 369
287
+ },
288
+ "Code/GraphMol/Descriptors/Wrap/test3D.py": {
289
+ "size": 5518
290
+ },
291
+ "Code/GraphMol/Descriptors/Wrap/testMolDescriptors.py": {
292
+ "size": 31850
293
+ },
294
+ "Code/GraphMol/Descriptors/test3D.py": {
295
+ "size": 1312
296
+ },
297
+ "Code/GraphMol/Descriptors/test3D_old.py": {
298
+ "size": 3488
299
+ },
300
+ "Code/GraphMol/Descriptors/testSMWHIM.txt": {
301
+ "size": 35057
302
+ },
303
+ "Code/GraphMol/Descriptors/test_data/pmi.py": {
304
+ "size": 1453
305
+ },
306
+ "Code/GraphMol/Descriptors/test_data/whim.out.txt": {
307
+ "size": 261983
308
+ },
309
+ "Code/GraphMol/DetermineBonds/CMakeLists.txt": {
310
+ "size": 549
311
+ },
312
+ "Code/GraphMol/DetermineBonds/README.md": {
313
+ "size": 4077
314
+ },
315
+ "Code/GraphMol/DetermineBonds/Wrap/CMakeLists.txt": {
316
+ "size": 264
317
+ },
318
+ "Code/GraphMol/DetermineBonds/Wrap/testDetermineBonds.py": {
319
+ "size": 6092
320
+ },
321
+ "Code/GraphMol/DistGeomHelpers/CMakeLists.txt": {
322
+ "size": 716
323
+ },
324
+ "Code/GraphMol/DistGeomHelpers/Wrap/CMakeLists.txt": {
325
+ "size": 422
326
+ },
327
+ "Code/GraphMol/DistGeomHelpers/Wrap/testDistGeom.py": {
328
+ "size": 27889
329
+ },
330
+ "Code/GraphMol/EnumerateStereoisomers/CMakeLists.txt": {
331
+ "size": 542
332
+ },
333
+ "Code/GraphMol/EnumerateStereoisomers/Wrap/CMakeLists.txt": {
334
+ "size": 307
335
+ },
336
+ "Code/GraphMol/EnumerateStereoisomers/Wrap/testEnumerateStereoisomers.py": {
337
+ "size": 2932
338
+ },
339
+ "Code/GraphMol/FMCS/CMakeLists.txt": {
340
+ "size": 504
341
+ },
342
+ "Code/GraphMol/FMCS/Test/CMakeLists.txt": {
343
+ "size": 55
344
+ },
345
+ "Code/GraphMol/FMCS/Wrap/CMakeLists.txt": {
346
+ "size": 241
347
+ },
348
+ "Code/GraphMol/FMCS/Wrap/testFMCS.py": {
349
+ "size": 49244
350
+ },
351
+ "Code/GraphMol/FileParsers/CMakeLists.txt": {
352
+ "size": 4577
353
+ },
354
+ "Code/GraphMol/FileParsers/mol.py": {
355
+ "size": 1591
356
+ },
357
+ "Code/GraphMol/FilterCatalog/CMakeLists.txt": {
358
+ "size": 1355
359
+ },
360
+ "Code/GraphMol/FilterCatalog/Wrap/CMakeLists.txt": {
361
+ "size": 352
362
+ },
363
+ "Code/GraphMol/FilterCatalog/Wrap/rough_test.py": {
364
+ "size": 22284
365
+ },
366
+ "Code/GraphMol/FilterCatalog/update_pains.py": {
367
+ "size": 11951
368
+ },
369
+ "Code/GraphMol/Fingerprints/CMakeLists.txt": {
370
+ "size": 1478
371
+ },
372
+ "Code/GraphMol/Fingerprints/Wrap/CMakeLists.txt": {
373
+ "size": 492
374
+ },
375
+ "Code/GraphMol/Fingerprints/Wrap/testGenerators.py": {
376
+ "size": 17138
377
+ },
378
+ "Code/GraphMol/Fingerprints/Wrap/testMHFP.py": {
379
+ "size": 2011
380
+ },
381
+ "Code/GraphMol/ForceFieldHelpers/CMakeLists.txt": {
382
+ "size": 1155
383
+ },
384
+ "Code/GraphMol/ForceFieldHelpers/CrystalFF/CMakeLists.txt": {
385
+ "size": 174
386
+ },
387
+ "Code/GraphMol/ForceFieldHelpers/MMFF/CMakeLists.txt": {
388
+ "size": 370
389
+ },
390
+ "Code/GraphMol/ForceFieldHelpers/UFF/CMakeLists.txt": {
391
+ "size": 229
392
+ },
393
+ "Code/GraphMol/ForceFieldHelpers/Wrap/CMakeLists.txt": {
394
+ "size": 308
395
+ },
396
+ "Code/GraphMol/ForceFieldHelpers/Wrap/testHelpers.py": {
397
+ "size": 16410
398
+ },
399
+ "Code/GraphMol/FragCatalog/CMakeLists.txt": {
400
+ "size": 655
401
+ },
402
+ "Code/GraphMol/FragCatalog/Wrap/CMakeLists.txt": {
403
+ "size": 414
404
+ },
405
+ "Code/GraphMol/FragCatalog/Wrap/rough_test.py": {
406
+ "size": 7116
407
+ },
408
+ "Code/GraphMol/FragCatalog/test_data/funcGroups.txt": {
409
+ "size": 899
410
+ },
411
+ "Code/GraphMol/GeneralizedSubstruct/CMakeLists.txt": {
412
+ "size": 559
413
+ },
414
+ "Code/GraphMol/GeneralizedSubstruct/Wrap/CMakeLists.txt": {
415
+ "size": 294
416
+ },
417
+ "Code/GraphMol/GeneralizedSubstruct/Wrap/testGeneralizedSubstruct.py": {
418
+ "size": 7249
419
+ },
420
+ "Code/GraphMol/GenericGroups/CMakeLists.txt": {
421
+ "size": 389
422
+ },
423
+ "Code/GraphMol/MMPA/CMakeLists.txt": {
424
+ "size": 467
425
+ },
426
+ "Code/GraphMol/MMPA/Wrap/CMakeLists.txt": {
427
+ "size": 241
428
+ },
429
+ "Code/GraphMol/MMPA/Wrap/testMMPA.py": {
430
+ "size": 6191
431
+ },
432
+ "Code/GraphMol/MarvinParse/CMakeLists.txt": {
433
+ "size": 453
434
+ },
435
+ "Code/GraphMol/MolAlign/CMakeLists.txt": {
436
+ "size": 951
437
+ },
438
+ "Code/GraphMol/MolAlign/Wrap/CMakeLists.txt": {
439
+ "size": 279
440
+ },
441
+ "Code/GraphMol/MolAlign/Wrap/testMolAlign.py": {
442
+ "size": 21866
443
+ },
444
+ "Code/GraphMol/MolCatalog/CMakeLists.txt": {
445
+ "size": 471
446
+ },
447
+ "Code/GraphMol/MolCatalog/Wrap/CMakeLists.txt": {
448
+ "size": 253
449
+ },
450
+ "Code/GraphMol/MolCatalog/Wrap/rough_test.py": {
451
+ "size": 1258
452
+ },
453
+ "Code/GraphMol/MolChemicalFeatures/CMakeLists.txt": {
454
+ "size": 651
455
+ },
456
+ "Code/GraphMol/MolChemicalFeatures/Wrap/CMakeLists.txt": {
457
+ "size": 412
458
+ },
459
+ "Code/GraphMol/MolChemicalFeatures/Wrap/testChemicalFeatures.py": {
460
+ "size": 7145
461
+ },
462
+ "Code/GraphMol/MolChemicalFeatures/test_data/featDef.txt": {
463
+ "size": 164
464
+ },
465
+ "Code/GraphMol/MolChemicalFeatures/test_data/featDef2.txt": {
466
+ "size": 212
467
+ },
468
+ "Code/GraphMol/MolDraw2D/CMakeLists.txt": {
469
+ "size": 4853
470
+ },
471
+ "Code/GraphMol/MolDraw2D/Qt/CMakeLists.txt": {
472
+ "size": 2422
473
+ },
474
+ "Code/GraphMol/MolDraw2D/Qt/Demo/CMakeLists.txt": {
475
+ "size": 963
476
+ },
477
+ "Code/GraphMol/MolDraw2D/Qt/Wrap/CMakeLists.txt": {
478
+ "size": 288
479
+ },
480
+ "Code/GraphMol/MolDraw2D/Qt/Wrap/testMolDraw2DQt.py": {
481
+ "size": 2391
482
+ },
483
+ "Code/GraphMol/MolDraw2D/Wrap/CMakeLists.txt": {
484
+ "size": 277
485
+ },
486
+ "Code/GraphMol/MolDraw2D/Wrap/testMolDraw2D.py": {
487
+ "size": 36075
488
+ },
489
+ "Code/GraphMol/MolDraw2D/side_by_side_images.py": {
490
+ "size": 1851
491
+ },
492
+ "Code/GraphMol/MolDraw2D/test_dir/test_rdkit_draw.py": {
493
+ "size": 507
494
+ },
495
+ "Code/GraphMol/MolDraw2D/update_hash_codes.py": {
496
+ "size": 1387
497
+ },
498
+ "Code/GraphMol/MolEnumerator/CMakeLists.txt": {
499
+ "size": 552
500
+ },
501
+ "Code/GraphMol/MolEnumerator/Wrap/CMakeLists.txt": {
502
+ "size": 311
503
+ },
504
+ "Code/GraphMol/MolEnumerator/Wrap/rough_test.py": {
505
+ "size": 3160
506
+ },
507
+ "Code/GraphMol/MolHash/CMakeLists.txt": {
508
+ "size": 444
509
+ },
510
+ "Code/GraphMol/MolHash/Wrap/CMakeLists.txt": {
511
+ "size": 259
512
+ },
513
+ "Code/GraphMol/MolHash/Wrap/testMolHash.py": {
514
+ "size": 3564
515
+ },
516
+ "Code/GraphMol/MolInteractionFields/CMakeLists.txt": {
517
+ "size": 636
518
+ },
519
+ "Code/GraphMol/MolInteractionFields/Wrap/CMakeLists.txt": {
520
+ "size": 385
521
+ },
522
+ "Code/GraphMol/MolInteractionFields/Wrap/testMIF.py": {
523
+ "size": 13630
524
+ },
525
+ "Code/GraphMol/MolInterchange/CMakeLists.txt": {
526
+ "size": 1824
527
+ },
528
+ "Code/GraphMol/MolInterchange/Wrap/CMakeLists.txt": {
529
+ "size": 300
530
+ },
531
+ "Code/GraphMol/MolInterchange/Wrap/testMolInterchange.py": {
532
+ "size": 1746
533
+ },
534
+ "Code/GraphMol/MolInterchange/test_data/1000mols.json": {
535
+ "size": 524313
536
+ },
537
+ "Code/GraphMol/MolInterchange/test_data/test1.json": {
538
+ "size": 1339
539
+ },
540
+ "Code/GraphMol/MolInterchange/test_data/test2.json": {
541
+ "size": 1173
542
+ },
543
+ "Code/GraphMol/MolInterchange/test_data/test3.json": {
544
+ "size": 1232
545
+ },
546
+ "Code/GraphMol/MolProcessing/CMakeLists.txt": {
547
+ "size": 424
548
+ },
549
+ "Code/GraphMol/MolProcessing/Wrap/CMakeLists.txt": {
550
+ "size": 259
551
+ },
552
+ "Code/GraphMol/MolProcessing/Wrap/testMolProcessing.py": {
553
+ "size": 2079
554
+ },
555
+ "Code/GraphMol/MolStandardize/CMakeLists.txt": {
556
+ "size": 2652
557
+ },
558
+ "Code/GraphMol/MolStandardize/Wrap/CMakeLists.txt": {
559
+ "size": 396
560
+ },
561
+ "Code/GraphMol/MolStandardize/Wrap/testMolStandardize.py": {
562
+ "size": 75331
563
+ },
564
+ "Code/GraphMol/MolStandardize/test_data/acid_base_pairs2.txt": {
565
+ "size": 1458
566
+ },
567
+ "Code/GraphMol/MolStandardize/test_data/fragmentPatterns.txt": {
568
+ "size": 2039
569
+ },
570
+ "Code/GraphMol/MolStandardize/test_data/normalizations.txt": {
571
+ "size": 3062
572
+ },
573
+ "Code/GraphMol/MolTransforms/CMakeLists.txt": {
574
+ "size": 524
575
+ },
576
+ "Code/GraphMol/MolTransforms/Wrap/CMakeLists.txt": {
577
+ "size": 297
578
+ },
579
+ "Code/GraphMol/MolTransforms/Wrap/testMolTransforms.py": {
580
+ "size": 11262
581
+ },
582
+ "Code/GraphMol/PartialCharges/CMakeLists.txt": {
583
+ "size": 456
584
+ },
585
+ "Code/GraphMol/PartialCharges/Wrap/CMakeLists.txt": {
586
+ "size": 303
587
+ },
588
+ "Code/GraphMol/PartialCharges/Wrap/testPartialCharges.py": {
589
+ "size": 4308
590
+ },
591
+ "Code/GraphMol/PartialCharges/Wrap/test_data/halgren_out.txt": {
592
+ "size": 1362
593
+ },
594
+ "Code/GraphMol/RGroupDecomposition/CMakeLists.txt": {
595
+ "size": 1333
596
+ },
597
+ "Code/GraphMol/RGroupDecomposition/Wrap/CMakeLists.txt": {
598
+ "size": 548
599
+ },
600
+ "Code/GraphMol/RGroupDecomposition/Wrap/test_rgroups.py": {
601
+ "size": 46854
602
+ },
603
+ "Code/GraphMol/RGroupDecomposition/test_data/jm200186n.excerpt.out1.json": {
604
+ "size": 923
605
+ },
606
+ "Code/GraphMol/RGroupDecomposition/test_data/jm7b00306.excerpt.out1.json": {
607
+ "size": 740
608
+ },
609
+ "Code/GraphMol/RGroupDecomposition/test_data/simple1.out1.json": {
610
+ "size": 314
611
+ },
612
+ "Code/GraphMol/RGroupDecomposition/test_data/simple1.out2.json": {
613
+ "size": 413
614
+ },
615
+ "Code/GraphMol/RGroupDecomposition/test_data/simple2.out1.json": {
616
+ "size": 314
617
+ },
618
+ "Code/GraphMol/RGroupDecomposition/test_data/simple2.out2.json": {
619
+ "size": 144
620
+ },
621
+ "Code/GraphMol/RGroupDecomposition/test_data/simple3.out1.json": {
622
+ "size": 170
623
+ },
624
+ "Code/GraphMol/RGroupDecomposition/test_data/simple3.out2.json": {
625
+ "size": 170
626
+ },
627
+ "Code/GraphMol/RGroupDecomposition/test_data/simple3.out3.json": {
628
+ "size": 204
629
+ },
630
+ "Code/GraphMol/RGroupDecomposition/test_data/simple3.out4.json": {
631
+ "size": 360
632
+ },
633
+ "Code/GraphMol/RascalMCES/CMakeLists.txt": {
634
+ "size": 793
635
+ },
636
+ "Code/GraphMol/RascalMCES/Wrap/CMakeLists.txt": {
637
+ "size": 232
638
+ },
639
+ "Code/GraphMol/RascalMCES/Wrap/testRascalMCES.py": {
640
+ "size": 9282
641
+ },
642
+ "Code/GraphMol/ReducedGraphs/CMakeLists.txt": {
643
+ "size": 432
644
+ },
645
+ "Code/GraphMol/ReducedGraphs/Wrap/CMakeLists.txt": {
646
+ "size": 292
647
+ },
648
+ "Code/GraphMol/ReducedGraphs/Wrap/testReducedGraphs.py": {
649
+ "size": 1719
650
+ },
651
+ "Code/GraphMol/SLNParse/CMakeLists.txt": {
652
+ "size": 1833
653
+ },
654
+ "Code/GraphMol/SLNParse/Wrap/CMakeLists.txt": {
655
+ "size": 260
656
+ },
657
+ "Code/GraphMol/SLNParse/Wrap/testSLN.py": {
658
+ "size": 2588
659
+ },
660
+ "Code/GraphMol/ScaffoldNetwork/CMakeLists.txt": {
661
+ "size": 505
662
+ },
663
+ "Code/GraphMol/ScaffoldNetwork/Wrap/CMakeLists.txt": {
664
+ "size": 469
665
+ },
666
+ "Code/GraphMol/ScaffoldNetwork/Wrap/testPickleScaffoldNetwork.py": {
667
+ "size": 1288
668
+ },
669
+ "Code/GraphMol/ScaffoldNetwork/Wrap/testScaffoldNetwork.py": {
670
+ "size": 6250
671
+ },
672
+ "Code/GraphMol/ShapeHelpers/CMakeLists.txt": {
673
+ "size": 496
674
+ },
675
+ "Code/GraphMol/ShapeHelpers/Wrap/CMakeLists.txt": {
676
+ "size": 286
677
+ },
678
+ "Code/GraphMol/ShapeHelpers/Wrap/testShapeHelpers.py": {
679
+ "size": 3615
680
+ },
681
+ "Code/GraphMol/SmilesParse/CMakeLists.txt": {
682
+ "size": 3849
683
+ },
684
+ "Code/GraphMol/StructChecker/CMakeLists.txt": {
685
+ "size": 749
686
+ },
687
+ "Code/GraphMol/StructChecker/Wrap/CMakeLists.txt": {
688
+ "size": 240
689
+ },
690
+ "Code/GraphMol/StructChecker/Wrap/rough_test.py": {
691
+ "size": 7430
692
+ },
693
+ "Code/GraphMol/Subgraphs/CMakeLists.txt": {
694
+ "size": 611
695
+ },
696
+ "Code/GraphMol/Substruct/CMakeLists.txt": {
697
+ "size": 517
698
+ },
699
+ "Code/GraphMol/Substruct/UnitTestSubstruct.py": {
700
+ "size": 2714
701
+ },
702
+ "Code/GraphMol/Substruct/regress.txt": {
703
+ "size": 10
704
+ },
705
+ "Code/GraphMol/SubstructLibrary/CMakeLists.txt": {
706
+ "size": 941
707
+ },
708
+ "Code/GraphMol/SubstructLibrary/Wrap/CMakeLists.txt": {
709
+ "size": 374
710
+ },
711
+ "Code/GraphMol/SubstructLibrary/Wrap/rough_test.py": {
712
+ "size": 30302
713
+ },
714
+ "Code/GraphMol/SynthonSpaceSearch/CMakeLists.txt": {
715
+ "size": 1548
716
+ },
717
+ "Code/GraphMol/SynthonSpaceSearch/Wrap/CMakeLists.txt": {
718
+ "size": 280
719
+ },
720
+ "Code/GraphMol/SynthonSpaceSearch/Wrap/testSynthonSpaceSearch.py": {
721
+ "size": 7733
722
+ },
723
+ "Code/GraphMol/SynthonSpaceSearch/data/amide_space.txt": {
724
+ "size": 244
725
+ },
726
+ "Code/GraphMol/SynthonSpaceSearch/data/amide_space_dos.txt": {
727
+ "size": 252
728
+ },
729
+ "Code/GraphMol/SynthonSpaceSearch/data/amide_space_error.txt": {
730
+ "size": 248
731
+ },
732
+ "Code/GraphMol/SynthonSpaceSearch/data/amino_acid.txt": {
733
+ "size": 98
734
+ },
735
+ "Code/GraphMol/SynthonSpaceSearch/data/doebner_miller_space.txt": {
736
+ "size": 417
737
+ },
738
+ "Code/GraphMol/SynthonSpaceSearch/data/gregs_space_fail.txt": {
739
+ "size": 191
740
+ },
741
+ "Code/GraphMol/SynthonSpaceSearch/data/idorsia_toy_space_a.txt": {
742
+ "size": 18403
743
+ },
744
+ "Code/GraphMol/SynthonSpaceSearch/data/map_numbers.txt": {
745
+ "size": 541
746
+ },
747
+ "Code/GraphMol/SynthonSpaceSearch/data/missing_hit.txt": {
748
+ "size": 241
749
+ },
750
+ "Code/GraphMol/SynthonSpaceSearch/data/synthon_error.txt": {
751
+ "size": 100
752
+ },
753
+ "Code/GraphMol/SynthonSpaceSearch/data/triazole_space.txt": {
754
+ "size": 279
755
+ },
756
+ "Code/GraphMol/SynthonSpaceSearch/data/urea_3.txt": {
757
+ "size": 3278
758
+ },
759
+ "Code/GraphMol/SynthonSpaceSearch/data/urea_space.txt": {
760
+ "size": 397
761
+ },
762
+ "Code/GraphMol/TautomerQuery/CMakeLists.txt": {
763
+ "size": 545
764
+ },
765
+ "Code/GraphMol/TautomerQuery/Wrap/CMakeLists.txt": {
766
+ "size": 311
767
+ },
768
+ "Code/GraphMol/TautomerQuery/Wrap/rough_test.py": {
769
+ "size": 4568
770
+ },
771
+ "Code/GraphMol/Trajectory/CMakeLists.txt": {
772
+ "size": 422
773
+ },
774
+ "Code/GraphMol/UnitTestQueryMol.py": {
775
+ "size": 715
776
+ },
777
+ "Code/GraphMol/Wrap/CMakeLists.txt": {
778
+ "size": 3326
779
+ },
780
+ "Code/GraphMol/Wrap/Testing/Temporary/CTestCostData.txt": {
781
+ "size": 4
782
+ },
783
+ "Code/GraphMol/Wrap/rough_test.py": {
784
+ "size": 339626
785
+ },
786
+ "Code/GraphMol/Wrap/testConformer.py": {
787
+ "size": 3850
788
+ },
789
+ "Code/GraphMol/Wrap/testMultithreadedMolSupplier.py": {
790
+ "size": 6117
791
+ },
792
+ "Code/GraphMol/Wrap/testPropertyLists.py": {
793
+ "size": 5418
794
+ },
795
+ "Code/GraphMol/Wrap/testSCSR.py": {
796
+ "size": 4071
797
+ },
798
+ "Code/GraphMol/Wrap/testSGroups.py": {
799
+ "size": 18147
800
+ },
801
+ "Code/GraphMol/Wrap/testThreads.py": {
802
+ "size": 3347
803
+ },
804
+ "Code/GraphMol/Wrap/testTrajectory.py": {
805
+ "size": 19663
806
+ },
807
+ "Code/GraphMol/Wrap/test_cdxml.py": {
808
+ "size": 10619
809
+ },
810
+ "Code/GraphMol/Wrap/test_data/do_smiles.bomb.py": {
811
+ "size": 1111
812
+ },
813
+ "Code/GraphMol/Wrap/test_data/do_smiles.py": {
814
+ "size": 742
815
+ },
816
+ "Code/GraphMol/Wrap/test_data/easy_smiles.txt": {
817
+ "size": 299
818
+ },
819
+ "Code/GraphMol/Wrap/test_data/ntp_smiles.txt": {
820
+ "size": 15774
821
+ },
822
+ "Code/GraphMol/Wrap/test_data/rtecs_smiles.5000.txt": {
823
+ "size": 202650
824
+ },
825
+ "Code/GraphMol/Wrap/test_data/rtecs_smiles.txt": {
826
+ "size": 16414
827
+ },
828
+ "Code/GraphMol/regress.txt": {
829
+ "size": 52
830
+ },
831
+ "Code/JavaWrappers/CMakeLists.txt": {
832
+ "size": 1897
833
+ },
834
+ "Code/JavaWrappers/csharp_wrapper/CMakeLists.txt": {
835
+ "size": 4830
836
+ },
837
+ "Code/JavaWrappers/csharp_wrapper/RdkitTests/xunit.runner.json": {
838
+ "size": 70
839
+ },
840
+ "Code/JavaWrappers/gmwrapper/CMakeLists.txt": {
841
+ "size": 19618
842
+ },
843
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/AbbreviationsTests.java": {
844
+ "size": 2260
845
+ },
846
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/AlignTests.java": {
847
+ "size": 3049
848
+ },
849
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/AromaticTests.java": {
850
+ "size": 4749
851
+ },
852
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/AtomPairsTests.java": {
853
+ "size": 10793
854
+ },
855
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/AvalonLibTests.java": {
856
+ "size": 5640
857
+ },
858
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/BasicMolecule2Tests.java": {
859
+ "size": 6904
860
+ },
861
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/BasicMoleculeTests.java": {
862
+ "size": 9418
863
+ },
864
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/BitOpsTests.java": {
865
+ "size": 2658
866
+ },
867
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/ChemAtomTests.java": {
868
+ "size": 4150
869
+ },
870
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/ChemBondTests.java": {
871
+ "size": 3838
872
+ },
873
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/ChemDrawTest.java": {
874
+ "size": 3755
875
+ },
876
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/ChemReactionTests.java": {
877
+ "size": 20381
878
+ },
879
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/ChemSmartsTests.java": {
880
+ "size": 3292
881
+ },
882
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/ChemTests.java": {
883
+ "size": 3234
884
+ },
885
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/ChemTransformsTests.java": {
886
+ "size": 2954
887
+ },
888
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/Chemv2Tests.java": {
889
+ "size": 33999
890
+ },
891
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/ConformerTests.java": {
892
+ "size": 5051
893
+ },
894
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/DescriptorTests.java": {
895
+ "size": 9960
896
+ },
897
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/DistanceGeometryTests.java": {
898
+ "size": 18906
899
+ },
900
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/DiversityPickerTests.java": {
901
+ "size": 4456
902
+ },
903
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/ErrorHandlingTests.java": {
904
+ "size": 5131
905
+ },
906
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/FMCSTests.java": {
907
+ "size": 5275
908
+ },
909
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/FilterCatalogTests.java": {
910
+ "size": 7411
911
+ },
912
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/FingerprintsTests.java": {
913
+ "size": 7023
914
+ },
915
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/ForceFieldsTests.java": {
916
+ "size": 34702
917
+ },
918
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/GraphMolTest.java": {
919
+ "size": 2737
920
+ },
921
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/GraphMolTestSuite.java": {
922
+ "size": 2567
923
+ },
924
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/GzStreamTests.java": {
925
+ "size": 930
926
+ },
927
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/HManipulationsTests.java": {
928
+ "size": 3229
929
+ },
930
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/InchiTests.java": {
931
+ "size": 2366
932
+ },
933
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/LipinskiTests.java": {
934
+ "size": 5241
935
+ },
936
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/MemoryTests.java": {
937
+ "size": 4662
938
+ },
939
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/MolDraw2DCairoTests.java": {
940
+ "size": 1081
941
+ },
942
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/MolEnumeratorTests.java": {
943
+ "size": 4058
944
+ },
945
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/MolHashTest.java": {
946
+ "size": 778
947
+ },
948
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/MolQueryTests.java": {
949
+ "size": 3410
950
+ },
951
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/MolStandardizeTest.java": {
952
+ "size": 2271
953
+ },
954
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/PDBTests.java": {
955
+ "size": 3140
956
+ },
957
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/PicklingTests.java": {
958
+ "size": 6951
959
+ },
960
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/QueryAtomTest.java": {
961
+ "size": 10424
962
+ },
963
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/RGroupDecompositionTests.java": {
964
+ "size": 1376
965
+ },
966
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/RascalMCESTest.java": {
967
+ "size": 2174
968
+ },
969
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/ScaffoldNetworkTests.java": {
970
+ "size": 1439
971
+ },
972
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/SequenceTests.java": {
973
+ "size": 3335
974
+ },
975
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/SmilesCreationTests.java": {
976
+ "size": 5612
977
+ },
978
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/SmilesDetailsTests.java": {
979
+ "size": 37762
980
+ },
981
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/SmilesTests.java": {
982
+ "size": 7587
983
+ },
984
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/SubstanceGroupTests.java": {
985
+ "size": 3815
986
+ },
987
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/SubstructLibraryTests.java": {
988
+ "size": 14417
989
+ },
990
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/SuppliersTests.java": {
991
+ "size": 5269
992
+ },
993
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/TautomerQueryTests.java": {
994
+ "size": 2099
995
+ },
996
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/TrajectoryTests.java": {
997
+ "size": 28071
998
+ },
999
+ "Code/JavaWrappers/gmwrapper/src-test/org/RDKit/WrapperTests.java": {
1000
+ "size": 12435
1001
+ },
1002
+ "Code/JavaWrappers/make_templates.py": {
1003
+ "size": 1327
1004
+ },
1005
+ "Code/JavaWrappers/parse_doxy_html.py": {
1006
+ "size": 14751
1007
+ },
1008
+ "Code/ML/CMakeLists.txt": {
1009
+ "size": 213
1010
+ },
1011
+ "Code/ML/Cluster/CMakeLists.txt": {
1012
+ "size": 26
1013
+ },
1014
+ "Code/ML/Cluster/Murtagh/CMakeLists.txt": {
1015
+ "size": 327
1016
+ },
1017
+ "Code/ML/Data/CMakeLists.txt": {
1018
+ "size": 143
1019
+ },
1020
+ "Code/ML/InfoTheory/CMakeLists.txt": {
1021
+ "size": 214
1022
+ },
1023
+ "Code/ML/InfoTheory/Wrap/CMakeLists.txt": {
1024
+ "size": 368
1025
+ },
1026
+ "Code/ML/InfoTheory/Wrap/testRanker.py": {
1027
+ "size": 4382
1028
+ },
1029
+ "Code/MinimalLib/CMakeLists.txt": {
1030
+ "size": 4556
1031
+ },
1032
+ "Code/MinimalLib/README.md": {
1033
+ "size": 5579
1034
+ },
1035
+ "Code/MinimalLib/docker/docker_compose_build_minimallib.yml": {
1036
+ "size": 2056
1037
+ },
1038
+ "Code/MinimalLib/simple.py": {
1039
+ "size": 455
1040
+ },
1041
+ "Code/MinimalLib/tests/tests.js": {
1042
+ "size": 171081
1043
+ },
1044
+ "Code/Numerics/Alignment/CMakeLists.txt": {
1045
+ "size": 332
1046
+ },
1047
+ "Code/Numerics/Alignment/Wrap/CMakeLists.txt": {
1048
+ "size": 276
1049
+ },
1050
+ "Code/Numerics/Alignment/Wrap/testAlignment.py": {
1051
+ "size": 5719
1052
+ },
1053
+ "Code/Numerics/CMakeLists.txt": {
1054
+ "size": 379
1055
+ },
1056
+ "Code/Numerics/EigenSolvers/CMakeLists.txt": {
1057
+ "size": 443
1058
+ },
1059
+ "Code/Numerics/Optimizer/CMakeLists.txt": {
1060
+ "size": 331
1061
+ },
1062
+ "Code/PgSQL/rdkit/CMakeLists.txt": {
1063
+ "size": 12222
1064
+ },
1065
+ "Code/PgSQL/rdkit/README.md": {
1066
+ "size": 19464
1067
+ },
1068
+ "Code/Query/CMakeLists.txt": {
1069
+ "size": 436
1070
+ },
1071
+ "Code/RDBoost/CMakeLists.txt": {
1072
+ "size": 1577
1073
+ },
1074
+ "Code/RDBoost/Wrap/CMakeLists.txt": {
1075
+ "size": 187
1076
+ },
1077
+ "Code/RDGeneral/CMakeLists.txt": {
1078
+ "size": 2435
1079
+ },
1080
+ "Code/RDStreams/CMakeLists.txt": {
1081
+ "size": 147
1082
+ },
1083
+ "Code/SimDivPickers/CMakeLists.txt": {
1084
+ "size": 609
1085
+ },
1086
+ "Code/SimDivPickers/Wrap/CMakeLists.txt": {
1087
+ "size": 403
1088
+ },
1089
+ "Code/SimDivPickers/Wrap/testMaxMin.py": {
1090
+ "size": 756
1091
+ },
1092
+ "Code/SimDivPickers/Wrap/testPickers.py": {
1093
+ "size": 12016
1094
+ },
1095
+ "Code/cmake/Modules/fixup_coverage.py": {
1096
+ "size": 974
1097
+ },
1098
+ "Code/notes.txt": {
1099
+ "size": 1590
1100
+ },
1101
+ "Contrib/AtomAtomSimilarity/AtomAtomPathSimilarity.py": {
1102
+ "size": 14150
1103
+ },
1104
+ "Contrib/CMakeLists.txt": {
1105
+ "size": 37
1106
+ },
1107
+ "Contrib/CalcLigRMSD/CalcLigRMSD.py": {
1108
+ "size": 3355
1109
+ },
1110
+ "Contrib/CalcLigRMSD/README.md": {
1111
+ "size": 3964
1112
+ },
1113
+ "Contrib/ChiralPairs/ChiralDescriptors.py": {
1114
+ "size": 16038
1115
+ },
1116
+ "Contrib/ChiralPairs/README.txt": {
1117
+ "size": 537
1118
+ },
1119
+ "Contrib/ConformerParser/CMakeLists.txt": {
1120
+ "size": 378
1121
+ },
1122
+ "Contrib/ConformerParser/Wrap/CMakeLists.txt": {
1123
+ "size": 333
1124
+ },
1125
+ "Contrib/ConformerParser/Wrap/testConformerParser.py": {
1126
+ "size": 1238
1127
+ },
1128
+ "Contrib/Fastcluster/README.md": {
1129
+ "size": 1533
1130
+ },
1131
+ "Contrib/Fastcluster/fastcluster.py": {
1132
+ "size": 2323
1133
+ },
1134
+ "Contrib/Fastcluster/testdata/sdf2smi.py": {
1135
+ "size": 358
1136
+ },
1137
+ "Contrib/FreeWilson/README.md": {
1138
+ "size": 4543
1139
+ },
1140
+ "Contrib/FreeWilson/freewilson.py": {
1141
+ "size": 23050
1142
+ },
1143
+ "Contrib/FreeWilson/pytest.ini": {
1144
+ "size": 37
1145
+ },
1146
+ "Contrib/FreeWilson/requirements.txt": {
1147
+ "size": 18
1148
+ },
1149
+ "Contrib/FreeWilson/setup.py": {
1150
+ "size": 350
1151
+ },
1152
+ "Contrib/FreeWilson/test/test_freewilson.py": {
1153
+ "size": 2200
1154
+ },
1155
+ "Contrib/Glare/README.txt": {
1156
+ "size": 1812
1157
+ },
1158
+ "Contrib/Glare/glare.py": {
1159
+ "size": 16258
1160
+ },
1161
+ "Contrib/IFG/ifg.py": {
1162
+ "size": 3995
1163
+ },
1164
+ "Contrib/LEF/AddLabels.py": {
1165
+ "size": 3089
1166
+ },
1167
+ "Contrib/LEF/ClusterFps.py": {
1168
+ "size": 2765
1169
+ },
1170
+ "Contrib/LEF/CreateFps.py": {
1171
+ "size": 4557
1172
+ },
1173
+ "Contrib/LEF/DistancePlot.py": {
1174
+ "size": 3988
1175
+ },
1176
+ "Contrib/LEF/DistancePredict.py": {
1177
+ "size": 7209
1178
+ },
1179
+ "Contrib/LEF/README.txt": {
1180
+ "size": 2311
1181
+ },
1182
+ "Contrib/M_Kossner/Frames.py": {
1183
+ "size": 6450
1184
+ },
1185
+ "Contrib/MolVS/molvs_cli.py": {
1186
+ "size": 3650
1187
+ },
1188
+ "Contrib/NIBRSubstructureFilters/README.md": {
1189
+ "size": 6535
1190
+ },
1191
+ "Contrib/NIBRSubstructureFilters/assignSubstructureFilters.py": {
1192
+ "size": 4755
1193
+ },
1194
+ "Contrib/NP_Score/npscorer.py": {
1195
+ "size": 4547
1196
+ },
1197
+ "Contrib/PBF/pbf.py": {
1198
+ "size": 1746
1199
+ },
1200
+ "Contrib/RxnRoleAssignment/README.txt": {
1201
+ "size": 485
1202
+ },
1203
+ "Contrib/RxnRoleAssignment/__init__.py": {
1204
+ "size": 0
1205
+ },
1206
+ "Contrib/RxnRoleAssignment/identifyReactants.py": {
1207
+ "size": 19215
1208
+ },
1209
+ "Contrib/RxnRoleAssignment/utils.py": {
1210
+ "size": 2973
1211
+ },
1212
+ "Contrib/SA_Score/UnitTestSAScore.py": {
1213
+ "size": 937
1214
+ },
1215
+ "Contrib/SA_Score/build_sascore_db.py": {
1216
+ "size": 9080
1217
+ },
1218
+ "Contrib/SA_Score/data/zim.100.txt": {
1219
+ "size": 5949
1220
+ },
1221
+ "Contrib/SA_Score/sascorer.py": {
1222
+ "size": 5913
1223
+ },
1224
+ "Contrib/efgs/README.md": {
1225
+ "size": 972
1226
+ },
1227
+ "Contrib/efgs/efgs.py": {
1228
+ "size": 26346
1229
+ },
1230
+ "Contrib/efgs/try_efgs.py": {
1231
+ "size": 8683
1232
+ },
1233
+ "Contrib/fraggle/atomcontrib.py": {
1234
+ "size": 5037
1235
+ },
1236
+ "Contrib/fraggle/cxn_tversky.py": {
1237
+ "size": 4137
1238
+ },
1239
+ "Contrib/fraggle/fraggle.py": {
1240
+ "size": 2651
1241
+ },
1242
+ "Contrib/fraggle/rdkit_tversky.py": {
1243
+ "size": 3869
1244
+ },
1245
+ "Contrib/fraggle/readme.txt": {
1246
+ "size": 5004
1247
+ },
1248
+ "Contrib/mmpa/README.txt": {
1249
+ "size": 13855
1250
+ },
1251
+ "Contrib/mmpa/cansmirk.py": {
1252
+ "size": 2891
1253
+ },
1254
+ "Contrib/mmpa/create_mmp_db.py": {
1255
+ "size": 10136
1256
+ },
1257
+ "Contrib/mmpa/data/sample_cansmirks.txt": {
1258
+ "size": 135
1259
+ },
1260
+ "Contrib/mmpa/data/sample_db_input_smi.txt": {
1261
+ "size": 34
1262
+ },
1263
+ "Contrib/mmpa/data/sample_db_input_subs.txt": {
1264
+ "size": 12
1265
+ },
1266
+ "Contrib/mmpa/data/sample_db_input_subs_smarts.txt": {
1267
+ "size": 15
1268
+ },
1269
+ "Contrib/mmpa/data/sample_db_input_trans.txt": {
1270
+ "size": 32
1271
+ },
1272
+ "Contrib/mmpa/data/sample_db_input_trans_smarts.txt": {
1273
+ "size": 8
1274
+ },
1275
+ "Contrib/mmpa/data/sample_db_search_smi_output.txt": {
1276
+ "size": 103
1277
+ },
1278
+ "Contrib/mmpa/data/sample_db_search_subs_output.txt": {
1279
+ "size": 130
1280
+ },
1281
+ "Contrib/mmpa/data/sample_db_search_subs_smart_output.txt": {
1282
+ "size": 1540
1283
+ },
1284
+ "Contrib/mmpa/data/sample_db_search_trans_output.txt": {
1285
+ "size": 121
1286
+ },
1287
+ "Contrib/mmpa/data/sample_db_search_trans_smarts_output.txt": {
1288
+ "size": 126
1289
+ },
1290
+ "Contrib/mmpa/data/sample_fragmented.txt": {
1291
+ "size": 7101
1292
+ },
1293
+ "Contrib/mmpa/data/sample_mol_trans_output.txt": {
1294
+ "size": 157
1295
+ },
1296
+ "Contrib/mmpa/data/sample_smirks.txt": {
1297
+ "size": 138
1298
+ },
1299
+ "Contrib/mmpa/data/sample_smirks_mol_trans.txt": {
1300
+ "size": 25
1301
+ },
1302
+ "Contrib/mmpa/data/sample_transfroms.txt": {
1303
+ "size": 84
1304
+ },
1305
+ "Contrib/mmpa/indexing.py": {
1306
+ "size": 18927
1307
+ },
1308
+ "Contrib/mmpa/mol_transform.py": {
1309
+ "size": 4352
1310
+ },
1311
+ "Contrib/mmpa/rfrag.py": {
1312
+ "size": 8062
1313
+ },
1314
+ "Contrib/mmpa/search_mmp_db.py": {
1315
+ "size": 16269
1316
+ },
1317
+ "Contrib/mmpa/test_rfrag.py": {
1318
+ "size": 624
1319
+ },
1320
+ "Contrib/pzc/p_con.py": {
1321
+ "size": 45655
1322
+ },
1323
+ "Contrib/pzc/readme.md": {
1324
+ "size": 1484
1325
+ },
1326
+ "Data/Crippen.txt": {
1327
+ "size": 4205
1328
+ },
1329
+ "Data/DTDs/validate.py": {
1330
+ "size": 127
1331
+ },
1332
+ "Data/Fonts/amadeus_font_license.txt": {
1333
+ "size": 847
1334
+ },
1335
+ "Data/Fonts/font_dumper.py": {
1336
+ "size": 1286
1337
+ },
1338
+ "Data/Fonts/roboto_regular_license.txt": {
1339
+ "size": 149
1340
+ },
1341
+ "Data/Fonts/telex_font_license.txt": {
1342
+ "size": 4401
1343
+ },
1344
+ "Data/FunctionalGroups.txt": {
1345
+ "size": 2466
1346
+ },
1347
+ "Data/Functional_Group_Hierarchy.txt": {
1348
+ "size": 5990
1349
+ },
1350
+ "Data/Pains/README.md": {
1351
+ "size": 738
1352
+ },
1353
+ "Data/Pains/test_data/run_tests.py": {
1354
+ "size": 1231
1355
+ },
1356
+ "Data/Pains/test_data/test_set3.txt": {
1357
+ "size": 79805
1358
+ },
1359
+ "Data/Salts.txt": {
1360
+ "size": 2702
1361
+ },
1362
+ "Data/SmartsLib/RLewis_smarts.txt": {
1363
+ "size": 14235
1364
+ },
1365
+ "Data/SmartsLib/patty_rules.txt": {
1366
+ "size": 9269
1367
+ },
1368
+ "Data/SmartsLib/tests/bench2.py": {
1369
+ "size": 1267
1370
+ },
1371
+ "Docs/Book/BackwardsIncompatibleChanges.md": {
1372
+ "size": 13000
1373
+ },
1374
+ "Docs/Book/C++Examples/CMakeLists.txt": {
1375
+ "size": 1642
1376
+ },
1377
+ "Docs/Book/Cartridge.md": {
1378
+ "size": 46424
1379
+ },
1380
+ "Docs/Book/GettingStartedInC++.md": {
1381
+ "size": 58999
1382
+ },
1383
+ "Docs/Book/GettingStartedWithContributing.md": {
1384
+ "size": 32861
1385
+ },
1386
+ "Docs/Book/Install.md": {
1387
+ "size": 22788
1388
+ },
1389
+ "Docs/Book/Overview.md": {
1390
+ "size": 7189
1391
+ },
1392
+ "Docs/Book/conf.py": {
1393
+ "size": 7545
1394
+ },
1395
+ "Docs/Book/data/README.md": {
1396
+ "size": 891
1397
+ },
1398
+ "Docs/Book/data/s1p_chembldoc89753.txt": {
1399
+ "size": 4382
1400
+ },
1401
+ "Docs/Book/data/test_multi_colours.py": {
1402
+ "size": 1843
1403
+ },
1404
+ "Docs/Book/exts/extapi.py": {
1405
+ "size": 2665
1406
+ },
1407
+ "Docs/Book_jp/conf.py": {
1408
+ "size": 7036
1409
+ },
1410
+ "Docs/Code/CIPLabeling.md": {
1411
+ "size": 2374
1412
+ },
1413
+ "Docs/Code/EnhancedStereo.md": {
1414
+ "size": 2898
1415
+ },
1416
+ "Docs/Code/SGroups.md": {
1417
+ "size": 3680
1418
+ },
1419
+ "Docs/Code/gsocGeneralFileReader.md": {
1420
+ "size": 6431
1421
+ },
1422
+ "Docs/Notebooks/compounds.txt": {
1423
+ "size": 524313
1424
+ },
1425
+ "External/AvalonTools/CMakeLists.txt": {
1426
+ "size": 3590
1427
+ },
1428
+ "External/AvalonTools/Wrap/CMakeLists.txt": {
1429
+ "size": 324
1430
+ },
1431
+ "External/AvalonTools/Wrap/testAvalonTools.py": {
1432
+ "size": 14082
1433
+ },
1434
+ "External/CMakeLists.txt": {
1435
+ "size": 333
1436
+ },
1437
+ "External/ChemDraw/CMakeLists.txt": {
1438
+ "size": 8207
1439
+ },
1440
+ "External/ChemDraw/Wrap/CMakeLists.txt": {
1441
+ "size": 257
1442
+ },
1443
+ "External/ChemDraw/Wrap/testChemDraw.py": {
1444
+ "size": 6868
1445
+ },
1446
+ "External/CoordGen/CMakeLists.txt": {
1447
+ "size": 4358
1448
+ },
1449
+ "External/CoordGen/Wrap/CMakeLists.txt": {
1450
+ "size": 329
1451
+ },
1452
+ "External/CoordGen/Wrap/testCoordGen.py": {
1453
+ "size": 2961
1454
+ },
1455
+ "External/Eigen/CMakeLists.txt": {
1456
+ "size": 531
1457
+ },
1458
+ "External/FreeSASA/CMakeLists.txt": {
1459
+ "size": 6501
1460
+ },
1461
+ "External/FreeSASA/Wrap/CMakeLists.txt": {
1462
+ "size": 312
1463
+ },
1464
+ "External/FreeSASA/Wrap/testFreeSASA.py": {
1465
+ "size": 21687
1466
+ },
1467
+ "External/GA/CMakeLists.txt": {
1468
+ "size": 184
1469
+ },
1470
+ "External/INCHI-API/CMakeLists.txt": {
1471
+ "size": 4656
1472
+ },
1473
+ "External/INCHI-API/Wrap/CMakeLists.txt": {
1474
+ "size": 160
1475
+ },
1476
+ "External/INCHI-API/python/inchi.py": {
1477
+ "size": 8662
1478
+ },
1479
+ "External/INCHI-API/python/noinchi.py": {
1480
+ "size": 1679
1481
+ },
1482
+ "External/RingFamilies/CMakeLists.txt": {
1483
+ "size": 2339
1484
+ },
1485
+ "External/YAeHMOP/CMakeLists.txt": {
1486
+ "size": 2032
1487
+ },
1488
+ "External/YAeHMOP/Wrap/CMakeLists.txt": {
1489
+ "size": 276
1490
+ },
1491
+ "External/YAeHMOP/Wrap/testEHTTools.py": {
1492
+ "size": 3562
1493
+ },
1494
+ "External/pubchem_shape/CMakeLists.txt": {
1495
+ "size": 2398
1496
+ },
1497
+ "External/pubchem_shape/README.md": {
1498
+ "size": 190
1499
+ },
1500
+ "External/pubchem_shape/Wrap/CMakeLists.txt": {
1501
+ "size": 528
1502
+ },
1503
+ "External/pubchem_shape/Wrap/test_rdshapealign.py": {
1504
+ "size": 5302
1505
+ },
1506
+ "External/pymol/modules/pymol/rpc.py": {
1507
+ "size": 17575
1508
+ },
1509
+ "Projects/CMakeLists.txt": {
1510
+ "size": 67
1511
+ },
1512
+ "Projects/DbCLI/CreateDb.py": {
1513
+ "size": 20886
1514
+ },
1515
+ "Projects/DbCLI/SearchDb.py": {
1516
+ "size": 25224
1517
+ },
1518
+ "Projects/DbCLI/UnitTestDbCLI.py": {
1519
+ "size": 21219
1520
+ },
1521
+ "Projects/pytest.ini": {
1522
+ "size": 150
1523
+ },
1524
+ "README.md": {
1525
+ "size": 3801
1526
+ },
1527
+ "Regress/Data/RLewis_smarts.txt": {
1528
+ "size": 14289
1529
+ },
1530
+ "Regress/Scripts/chiral_embed.py": {
1531
+ "size": 1332
1532
+ },
1533
+ "Regress/Scripts/fingerprint_screenout.py": {
1534
+ "size": 3956
1535
+ },
1536
+ "Regress/Scripts/new_timings.py": {
1537
+ "size": 4844
1538
+ },
1539
+ "Regress/Scripts/timings.py": {
1540
+ "size": 6197
1541
+ },
1542
+ "ReleaseNotes.md": {
1543
+ "size": 434983
1544
+ },
1545
+ "Scripts/FeatFinderCLI.py": {
1546
+ "size": 309
1547
+ },
1548
+ "Scripts/PythonFormat.py": {
1549
+ "size": 2154
1550
+ },
1551
+ "Scripts/README.md": {
1552
+ "size": 314
1553
+ },
1554
+ "Scripts/gen_rdkit_stubs/__init__.py": {
1555
+ "size": 22995
1556
+ },
1557
+ "Scripts/gen_rdkit_stubs/__main__.py": {
1558
+ "size": 2506
1559
+ },
1560
+ "Scripts/gen_rdkit_stubs/worker.py": {
1561
+ "size": 3026
1562
+ },
1563
+ "Scripts/patch_rdkit_docstrings/__init__.py": {
1564
+ "size": 75632
1565
+ },
1566
+ "Scripts/patch_rdkit_docstrings/__main__.py": {
1567
+ "size": 3261
1568
+ },
1569
+ "Scripts/patch_rdkit_docstrings/clang_worker.py": {
1570
+ "size": 1372
1571
+ },
1572
+ "Scripts/run_python_tests.py": {
1573
+ "size": 645
1574
+ },
1575
+ "Web/RDExtras/MolDepict.py": {
1576
+ "size": 1697
1577
+ },
1578
+ "Web/RDExtras/MolImage.py": {
1579
+ "size": 1947
1580
+ },
1581
+ "azure-pipelines.yml": {
1582
+ "size": 3578
1583
+ },
1584
+ "build_support/pkg_version.py": {
1585
+ "size": 2450
1586
+ },
1587
+ "license.txt": {
1588
+ "size": 1580
1589
+ },
1590
+ "rdkit-stubs/CMakeLists.txt": {
1591
+ "size": 1908
1592
+ },
1593
+ "rdkit/Avalon/__init__.py": {
1594
+ "size": 0
1595
+ },
1596
+ "rdkit/CMakeLists.txt": {
1597
+ "size": 890
1598
+ },
1599
+ "rdkit/Chem/AllChem.py": {
1600
+ "size": 17005
1601
+ },
1602
+ "rdkit/Chem/AtomPairs/Pairs.py": {
1603
+ "size": 5702
1604
+ },
1605
+ "rdkit/Chem/AtomPairs/Sheridan.py": {
1606
+ "size": 3721
1607
+ },
1608
+ "rdkit/Chem/AtomPairs/Torsions.py": {
1609
+ "size": 5446
1610
+ },
1611
+ "rdkit/Chem/AtomPairs/UnitTestDescriptors.py": {
1612
+ "size": 4438
1613
+ },
1614
+ "rdkit/Chem/AtomPairs/Utils.py": {
1615
+ "size": 7565
1616
+ },
1617
+ "rdkit/Chem/AtomPairs/__init__.py": {
1618
+ "size": 0
1619
+ },
1620
+ "rdkit/Chem/BRICS.py": {
1621
+ "size": 33343
1622
+ },
1623
+ "rdkit/Chem/BuildFragmentCatalog.py": {
1624
+ "size": 19000
1625
+ },
1626
+ "rdkit/Chem/CMakeLists.txt": {
1627
+ "size": 81
1628
+ },
1629
+ "rdkit/Chem/ChemUtils/AlignDepict.py": {
1630
+ "size": 2923
1631
+ },
1632
+ "rdkit/Chem/ChemUtils/BulkTester.py": {
1633
+ "size": 1974
1634
+ },
1635
+ "rdkit/Chem/ChemUtils/DescriptorUtilities.py": {
1636
+ "size": 1798
1637
+ },
1638
+ "rdkit/Chem/ChemUtils/SDFToCSV.py": {
1639
+ "size": 2507
1640
+ },
1641
+ "rdkit/Chem/ChemUtils/TemplateExpand.py": {
1642
+ "size": 14333
1643
+ },
1644
+ "rdkit/Chem/ChemUtils/UnitTestAlignDepict.py": {
1645
+ "size": 1724
1646
+ },
1647
+ "rdkit/Chem/ChemUtils/UnitTestSDFToCSV.py": {
1648
+ "size": 2546
1649
+ },
1650
+ "rdkit/Chem/ChemUtils/__init__.py": {
1651
+ "size": 0
1652
+ },
1653
+ "rdkit/Chem/ChemicalFeatures.py": {
1654
+ "size": 719
1655
+ },
1656
+ "rdkit/Chem/ChemicalForceFields.py": {
1657
+ "size": 363
1658
+ },
1659
+ "rdkit/Chem/Crippen.py": {
1660
+ "size": 6097
1661
+ },
1662
+ "rdkit/Chem/DSViewer.py": {
1663
+ "size": 12132
1664
+ },
1665
+ "rdkit/Chem/Descriptors.py": {
1666
+ "size": 9068
1667
+ },
1668
+ "rdkit/Chem/Descriptors3D.py": {
1669
+ "size": 7194
1670
+ },
1671
+ "rdkit/Chem/Draw/IPythonConsole.py": {
1672
+ "size": 17158
1673
+ },
1674
+ "rdkit/Chem/Draw/InteractiveRenderer.py": {
1675
+ "size": 14216
1676
+ },
1677
+ "rdkit/Chem/Draw/MolDrawing.py": {
1678
+ "size": 21996
1679
+ },
1680
+ "rdkit/Chem/Draw/SimilarityMaps.py": {
1681
+ "size": 16646
1682
+ },
1683
+ "rdkit/Chem/Draw/UnitTestDraw.py": {
1684
+ "size": 18902
1685
+ },
1686
+ "rdkit/Chem/Draw/UnitTestIPython.py": {
1687
+ "size": 4503
1688
+ },
1689
+ "rdkit/Chem/Draw/UnitTestSimilarityMaps.py": {
1690
+ "size": 8999
1691
+ },
1692
+ "rdkit/Chem/Draw/__init__.py": {
1693
+ "size": 36229
1694
+ },
1695
+ "rdkit/Chem/EState/AtomTypes.py": {
1696
+ "size": 4036
1697
+ },
1698
+ "rdkit/Chem/EState/EState.py": {
1699
+ "size": 2507
1700
+ },
1701
+ "rdkit/Chem/EState/EState_VSA.py": {
1702
+ "size": 3567
1703
+ },
1704
+ "rdkit/Chem/EState/Fingerprinter.py": {
1705
+ "size": 2124
1706
+ },
1707
+ "rdkit/Chem/EState/UnitTestEState.py": {
1708
+ "size": 5008
1709
+ },
1710
+ "rdkit/Chem/EState/UnitTestFingerprints.py": {
1711
+ "size": 1859
1712
+ },
1713
+ "rdkit/Chem/EState/UnitTestTypes.py": {
1714
+ "size": 2037
1715
+ },
1716
+ "rdkit/Chem/EState/UnitTestVSA.py": {
1717
+ "size": 1528
1718
+ },
1719
+ "rdkit/Chem/EState/__init__.py": {
1720
+ "size": 386
1721
+ },
1722
+ "rdkit/Chem/EnumerateHeterocycles.py": {
1723
+ "size": 13108
1724
+ },
1725
+ "rdkit/Chem/EnumerateStereoisomers.py": {
1726
+ "size": 14589
1727
+ },
1728
+ "rdkit/Chem/FastSDMolSupplier.py": {
1729
+ "size": 499
1730
+ },
1731
+ "rdkit/Chem/FeatFinderCLI.py": {
1732
+ "size": 3310
1733
+ },
1734
+ "rdkit/Chem/FeatMaps/FeatMapParser.py": {
1735
+ "size": 5071
1736
+ },
1737
+ "rdkit/Chem/FeatMaps/FeatMapPoint.py": {
1738
+ "size": 3283
1739
+ },
1740
+ "rdkit/Chem/FeatMaps/FeatMapUtils.py": {
1741
+ "size": 7335
1742
+ },
1743
+ "rdkit/Chem/FeatMaps/FeatMaps.py": {
1744
+ "size": 7487
1745
+ },
1746
+ "rdkit/Chem/FeatMaps/UnitTestFeatMap.py": {
1747
+ "size": 11596
1748
+ },
1749
+ "rdkit/Chem/FeatMaps/UnitTestFeatMapParser.py": {
1750
+ "size": 4293
1751
+ },
1752
+ "rdkit/Chem/FeatMaps/UnitTestFeatMapPoint.py": {
1753
+ "size": 592
1754
+ },
1755
+ "rdkit/Chem/FeatMaps/UnitTestFeatMapUtils.py": {
1756
+ "size": 10562
1757
+ },
1758
+ "rdkit/Chem/FeatMaps/__init__.py": {
1759
+ "size": 0
1760
+ },
1761
+ "rdkit/Chem/Features/FeatDirUtilsRD.py": {
1762
+ "size": 11964
1763
+ },
1764
+ "rdkit/Chem/Features/ShowFeats.py": {
1765
+ "size": 11632
1766
+ },
1767
+ "rdkit/Chem/Features/UnitTestFeatDirUtilsRD.py": {
1768
+ "size": 7057
1769
+ },
1770
+ "rdkit/Chem/Features/__init__.py": {
1771
+ "size": 0
1772
+ },
1773
+ "rdkit/Chem/FilterCatalog.py": {
1774
+ "size": 2188
1775
+ },
1776
+ "rdkit/Chem/Fingerprints/ClusterMols.py": {
1777
+ "size": 5697
1778
+ },
1779
+ "rdkit/Chem/Fingerprints/DbFpSupplier.py": {
1780
+ "size": 4315
1781
+ },
1782
+ "rdkit/Chem/Fingerprints/FingerprintMols.py": {
1783
+ "size": 16446
1784
+ },
1785
+ "rdkit/Chem/Fingerprints/MolSimilarity.py": {
1786
+ "size": 9568
1787
+ },
1788
+ "rdkit/Chem/Fingerprints/SimilarityScreener.py": {
1789
+ "size": 4687
1790
+ },
1791
+ "rdkit/Chem/Fingerprints/UnitTestDbFpSupplier.py": {
1792
+ "size": 1058
1793
+ },
1794
+ "rdkit/Chem/Fingerprints/UnitTestFingerprints.py": {
1795
+ "size": 2926
1796
+ },
1797
+ "rdkit/Chem/Fingerprints/UnitTestSimScreener.py": {
1798
+ "size": 4160
1799
+ },
1800
+ "rdkit/Chem/Fingerprints/__init__.py": {
1801
+ "size": 67
1802
+ },
1803
+ "rdkit/Chem/Fraggle/FraggleSim.py": {
1804
+ "size": 14344
1805
+ },
1806
+ "rdkit/Chem/Fraggle/UnitTestFraggle.py": {
1807
+ "size": 7484
1808
+ },
1809
+ "rdkit/Chem/Fraggle/__init__.py": {
1810
+ "size": 0
1811
+ },
1812
+ "rdkit/Chem/FragmentCatalog.py": {
1813
+ "size": 2420
1814
+ },
1815
+ "rdkit/Chem/FragmentMatcher.py": {
1816
+ "size": 2276
1817
+ },
1818
+ "rdkit/Chem/Fragments.py": {
1819
+ "size": 1618
1820
+ },
1821
+ "rdkit/Chem/FunctionalGroups.py": {
1822
+ "size": 5027
1823
+ },
1824
+ "rdkit/Chem/GraphDescriptors.py": {
1825
+ "size": 20596
1826
+ },
1827
+ "rdkit/Chem/Graphs.py": {
1828
+ "size": 1289
1829
+ },
1830
+ "rdkit/Chem/Lipinski.py": {
1831
+ "size": 4359
1832
+ },
1833
+ "rdkit/Chem/MACCSkeys.py": {
1834
+ "size": 11744
1835
+ },
1836
+ "rdkit/Chem/MCS.py": {
1837
+ "size": 17304
1838
+ },
1839
+ "rdkit/Chem/MolCatalog.py": {
1840
+ "size": 84
1841
+ },
1842
+ "rdkit/Chem/MolDb/FingerprintUtils.py": {
1843
+ "size": 3434
1844
+ },
1845
+ "rdkit/Chem/MolDb/Loader.py": {
1846
+ "size": 408
1847
+ },
1848
+ "rdkit/Chem/MolDb/Loader_orig.py": {
1849
+ "size": 6570
1850
+ },
1851
+ "rdkit/Chem/MolDb/Loader_sa.py": {
1852
+ "size": 5957
1853
+ },
1854
+ "rdkit/Chem/MolDb/__init__.py": {
1855
+ "size": 0
1856
+ },
1857
+ "rdkit/Chem/MolKey/InchiInfo.py": {
1858
+ "size": 7077
1859
+ },
1860
+ "rdkit/Chem/MolKey/MolKey.py": {
1861
+ "size": 15051
1862
+ },
1863
+ "rdkit/Chem/MolKey/UnitTestMolKey.py": {
1864
+ "size": 5264
1865
+ },
1866
+ "rdkit/Chem/MolKey/__init__.py": {
1867
+ "size": 0
1868
+ },
1869
+ "rdkit/Chem/MolStandardize/UnitTestMolStandardize.py": {
1870
+ "size": 874
1871
+ },
1872
+ "rdkit/Chem/MolStandardize/__init__.py": {
1873
+ "size": 908
1874
+ },
1875
+ "rdkit/Chem/MolSurf.py": {
1876
+ "size": 14630
1877
+ },
1878
+ "rdkit/Chem/PandasPatcher.py": {
1879
+ "size": 10127
1880
+ },
1881
+ "rdkit/Chem/PandasTools.py": {
1882
+ "size": 27100
1883
+ },
1884
+ "rdkit/Chem/Pharm2D/Generate.py": {
1885
+ "size": 4979
1886
+ },
1887
+ "rdkit/Chem/Pharm2D/Gobbi_Pharm2D.py": {
1888
+ "size": 1901
1889
+ },
1890
+ "rdkit/Chem/Pharm2D/LazyGenerator.py": {
1891
+ "size": 4262
1892
+ },
1893
+ "rdkit/Chem/Pharm2D/Matcher.py": {
1894
+ "size": 4028
1895
+ },
1896
+ "rdkit/Chem/Pharm2D/SigFactory.py": {
1897
+ "size": 10231
1898
+ },
1899
+ "rdkit/Chem/Pharm2D/UnitTestGenerate.py": {
1900
+ "size": 430
1901
+ },
1902
+ "rdkit/Chem/Pharm2D/UnitTestGobbi.py": {
1903
+ "size": 5454
1904
+ },
1905
+ "rdkit/Chem/Pharm2D/UnitTestLazyGenerator.py": {
1906
+ "size": 2437
1907
+ },
1908
+ "rdkit/Chem/Pharm2D/UnitTestMatcher.py": {
1909
+ "size": 3048
1910
+ },
1911
+ "rdkit/Chem/Pharm2D/UnitTestSignature.py": {
1912
+ "size": 8547
1913
+ },
1914
+ "rdkit/Chem/Pharm2D/UnitTestUtils.py": {
1915
+ "size": 9960
1916
+ },
1917
+ "rdkit/Chem/Pharm2D/Utils.py": {
1918
+ "size": 12973
1919
+ },
1920
+ "rdkit/Chem/Pharm2D/__init__.py": {
1921
+ "size": 1021
1922
+ },
1923
+ "rdkit/Chem/Pharm3D/EmbedLib.py": {
1924
+ "size": 41179
1925
+ },
1926
+ "rdkit/Chem/Pharm3D/ExcludedVolume.py": {
1927
+ "size": 918
1928
+ },
1929
+ "rdkit/Chem/Pharm3D/Pharmacophore.py": {
1930
+ "size": 5923
1931
+ },
1932
+ "rdkit/Chem/Pharm3D/UnitTestEmbed.py": {
1933
+ "size": 9408
1934
+ },
1935
+ "rdkit/Chem/Pharm3D/UnitTestExcludedVolume.py": {
1936
+ "size": 1177
1937
+ },
1938
+ "rdkit/Chem/Pharm3D/UnitTestPharmacophore.py": {
1939
+ "size": 5723
1940
+ },
1941
+ "rdkit/Chem/Pharm3D/__init__.py": {
1942
+ "size": 0
1943
+ },
1944
+ "rdkit/Chem/PropertyMol.py": {
1945
+ "size": 3161
1946
+ },
1947
+ "rdkit/Chem/PyMol.py": {
1948
+ "size": 8418
1949
+ },
1950
+ "rdkit/Chem/QED.py": {
1951
+ "size": 11472
1952
+ },
1953
+ "rdkit/Chem/Randomize.py": {
1954
+ "size": 1066
1955
+ },
1956
+ "rdkit/Chem/Recap.py": {
1957
+ "size": 20662
1958
+ },
1959
+ "rdkit/Chem/ReducedGraphs.py": {
1960
+ "size": 563
1961
+ },
1962
+ "rdkit/Chem/RegistrationHash.py": {
1963
+ "size": 13559
1964
+ },
1965
+ "rdkit/Chem/SATIS.py": {
1966
+ "size": 2806
1967
+ },
1968
+ "rdkit/Chem/SaltRemover.py": {
1969
+ "size": 10192
1970
+ },
1971
+ "rdkit/Chem/Scaffolds/MurckoScaffold.py": {
1972
+ "size": 4187
1973
+ },
1974
+ "rdkit/Chem/Scaffolds/UnitTestMurckoScaffold.py": {
1975
+ "size": 37853
1976
+ },
1977
+ "rdkit/Chem/Scaffolds/__init__.py": {
1978
+ "size": 0
1979
+ },
1980
+ "rdkit/Chem/ShowMols.py": {
1981
+ "size": 932
1982
+ },
1983
+ "rdkit/Chem/SimpleEnum/Enumerator.py": {
1984
+ "size": 9120
1985
+ },
1986
+ "rdkit/Chem/SimpleEnum/UnitTestEnumerator.py": {
1987
+ "size": 1445
1988
+ },
1989
+ "rdkit/Chem/SimpleEnum/__init__.py": {
1990
+ "size": 0
1991
+ },
1992
+ "rdkit/Chem/SpacialScore.py": {
1993
+ "size": 7118
1994
+ },
1995
+ "rdkit/Chem/Subshape/BuilderUtils.py": {
1996
+ "size": 10857
1997
+ },
1998
+ "rdkit/Chem/Subshape/SubshapeAligner.py": {
1999
+ "size": 13356
2000
+ },
2001
+ "rdkit/Chem/Subshape/SubshapeBuilder.py": {
2002
+ "size": 4205
2003
+ },
2004
+ "rdkit/Chem/Subshape/SubshapeObjects.py": {
2005
+ "size": 2451
2006
+ },
2007
+ "rdkit/Chem/Subshape/UnitTestSubshape.py": {
2008
+ "size": 3045
2009
+ },
2010
+ "rdkit/Chem/Subshape/__init__.py": {
2011
+ "size": 0
2012
+ },
2013
+ "rdkit/Chem/Subshape/demoCombined.py": {
2014
+ "size": 1797
2015
+ },
2016
+ "rdkit/Chem/Suppliers/DbMolSupplier.py": {
2017
+ "size": 3994
2018
+ },
2019
+ "rdkit/Chem/Suppliers/MolSupplier.py": {
2020
+ "size": 851
2021
+ },
2022
+ "rdkit/Chem/Suppliers/UnitTestDbMolSupplier.py": {
2023
+ "size": 2813
2024
+ },
2025
+ "rdkit/Chem/Suppliers/UnitTestSDMolSupplier.py": {
2026
+ "size": 6039
2027
+ },
2028
+ "rdkit/Chem/Suppliers/UnitTestSmilesMolSupplier.py": {
2029
+ "size": 3529
2030
+ },
2031
+ "rdkit/Chem/Suppliers/__init__.py": {
2032
+ "size": 0
2033
+ },
2034
+ "rdkit/Chem/TemplateAlign.py": {
2035
+ "size": 3191
2036
+ },
2037
+ "rdkit/Chem/TorsionFingerprints.py": {
2038
+ "size": 26572
2039
+ },
2040
+ "rdkit/Chem/UnitTestCatalog.py": {
2041
+ "size": 8761
2042
+ },
2043
+ "rdkit/Chem/UnitTestChem.py": {
2044
+ "size": 7279
2045
+ },
2046
+ "rdkit/Chem/UnitTestChemAtom.py": {
2047
+ "size": 1968
2048
+ },
2049
+ "rdkit/Chem/UnitTestChemBond.py": {
2050
+ "size": 1739
2051
+ },
2052
+ "rdkit/Chem/UnitTestChemSmarts.py": {
2053
+ "size": 1340
2054
+ },
2055
+ "rdkit/Chem/UnitTestChemv2.py": {
2056
+ "size": 5912
2057
+ },
2058
+ "rdkit/Chem/UnitTestCrippen.py": {
2059
+ "size": 5643
2060
+ },
2061
+ "rdkit/Chem/UnitTestDescriptors.py": {
2062
+ "size": 7678
2063
+ },
2064
+ "rdkit/Chem/UnitTestDocTestsChem.py": {
2065
+ "size": 1614
2066
+ },
2067
+ "rdkit/Chem/UnitTestEnumerateHeterocycles.py": {
2068
+ "size": 11759
2069
+ },
2070
+ "rdkit/Chem/UnitTestFeatFinderCLI.py": {
2071
+ "size": 2544
2072
+ },
2073
+ "rdkit/Chem/UnitTestFragmentDescriptors.py": {
2074
+ "size": 7976
2075
+ },
2076
+ "rdkit/Chem/UnitTestFunctionalGroups.py": {
2077
+ "size": 6345
2078
+ },
2079
+ "rdkit/Chem/UnitTestGraphDescriptors_2.py": {
2080
+ "size": 22329
2081
+ },
2082
+ "rdkit/Chem/UnitTestInchi.py": {
2083
+ "size": 12738
2084
+ },
2085
+ "rdkit/Chem/UnitTestLipinski.py": {
2086
+ "size": 6274
2087
+ },
2088
+ "rdkit/Chem/UnitTestMCS.py": {
2089
+ "size": 10891
2090
+ },
2091
+ "rdkit/Chem/UnitTestMol3D.py": {
2092
+ "size": 23548
2093
+ },
2094
+ "rdkit/Chem/UnitTestOldBugs.py": {
2095
+ "size": 3794
2096
+ },
2097
+ "rdkit/Chem/UnitTestPandasTools.py": {
2098
+ "size": 17804
2099
+ },
2100
+ "rdkit/Chem/UnitTestQED.py": {
2101
+ "size": 4460
2102
+ },
2103
+ "rdkit/Chem/UnitTestRandomize.py": {
2104
+ "size": 2772
2105
+ },
2106
+ "rdkit/Chem/UnitTestRegistrationHash.py": {
2107
+ "size": 30689
2108
+ },
2109
+ "rdkit/Chem/UnitTestSATIS.py": {
2110
+ "size": 1267
2111
+ },
2112
+ "rdkit/Chem/UnitTestSaltRemover.py": {
2113
+ "size": 5329
2114
+ },
2115
+ "rdkit/Chem/UnitTestSmiles.py": {
2116
+ "size": 8276
2117
+ },
2118
+ "rdkit/Chem/UnitTestSpacialScore.py": {
2119
+ "size": 2098
2120
+ },
2121
+ "rdkit/Chem/UnitTestSuppliers.py": {
2122
+ "size": 2721
2123
+ },
2124
+ "rdkit/Chem/UnitTestSurf.py": {
2125
+ "size": 8913
2126
+ },
2127
+ "rdkit/Chem/__init__.py": {
2128
+ "size": 9011
2129
+ },
2130
+ "rdkit/Chem/fmcs/__init__.py": {
2131
+ "size": 141
2132
+ },
2133
+ "rdkit/Chem/fmcs/fmcs.py": {
2134
+ "size": 105526
2135
+ },
2136
+ "rdkit/Chem/test_data/BuildCrippenTestSet.py": {
2137
+ "size": 989
2138
+ },
2139
+ "rdkit/Chem/test_data/BuildDescrsTestSet.Crippen.py": {
2140
+ "size": 1514
2141
+ },
2142
+ "rdkit/Chem/test_data/BuildDescrsTestSet.py": {
2143
+ "size": 1692
2144
+ },
2145
+ "rdkit/Chem/test_data/NCI_aromat_regress.txt": {
2146
+ "size": 449202
2147
+ },
2148
+ "rdkit/Chem/test_data/aromat_regress.txt": {
2149
+ "size": 393294
2150
+ },
2151
+ "rdkit/DataManip/Metric/__init__.py": {
2152
+ "size": 363
2153
+ },
2154
+ "rdkit/DataManip/__init__.py": {
2155
+ "size": 21
2156
+ },
2157
+ "rdkit/DataStructs/BitEnsemble.py": {
2158
+ "size": 1192
2159
+ },
2160
+ "rdkit/DataStructs/BitEnsembleDb.py": {
2161
+ "size": 1569
2162
+ },
2163
+ "rdkit/DataStructs/BitUtils.py": {
2164
+ "size": 1132
2165
+ },
2166
+ "rdkit/DataStructs/HierarchyVis.py": {
2167
+ "size": 3876
2168
+ },
2169
+ "rdkit/DataStructs/LazySignature.py": {
2170
+ "size": 1472
2171
+ },
2172
+ "rdkit/DataStructs/TopNContainer.py": {
2173
+ "size": 2037
2174
+ },
2175
+ "rdkit/DataStructs/UnitTestBitEnsemble.py": {
2176
+ "size": 4142
2177
+ },
2178
+ "rdkit/DataStructs/UnitTestDocTests.py": {
2179
+ "size": 3016
2180
+ },
2181
+ "rdkit/DataStructs/UnitTestTopNContainer.py": {
2182
+ "size": 2540
2183
+ },
2184
+ "rdkit/DataStructs/UnitTestcBitVect.py": {
2185
+ "size": 10995
2186
+ },
2187
+ "rdkit/DataStructs/VectCollection.py": {
2188
+ "size": 6411
2189
+ },
2190
+ "rdkit/DataStructs/__init__.py": {
2191
+ "size": 1600
2192
+ },
2193
+ "rdkit/Dbase/DbConnection.py": {
2194
+ "size": 7972
2195
+ },
2196
+ "rdkit/Dbase/DbInfo.py": {
2197
+ "size": 5332
2198
+ },
2199
+ "rdkit/Dbase/DbModule.py": {
2200
+ "size": 2069
2201
+ },
2202
+ "rdkit/Dbase/DbResultSet.py": {
2203
+ "size": 6093
2204
+ },
2205
+ "rdkit/Dbase/DbUtils.py": {
2206
+ "size": 13531
2207
+ },
2208
+ "rdkit/Dbase/StorageUtils.py": {
2209
+ "size": 7599
2210
+ },
2211
+ "rdkit/Dbase/UnitTestDbConnect.py": {
2212
+ "size": 7591
2213
+ },
2214
+ "rdkit/Dbase/UnitTestDbInfo.py": {
2215
+ "size": 1022
2216
+ },
2217
+ "rdkit/Dbase/UnitTestDbResultSet.py": {
2218
+ "size": 3711
2219
+ },
2220
+ "rdkit/Dbase/UnitTestDbUtils.py": {
2221
+ "size": 7354
2222
+ },
2223
+ "rdkit/Dbase/UnitTestStorageUtils.py": {
2224
+ "size": 1311
2225
+ },
2226
+ "rdkit/Dbase/__init__.py": {
2227
+ "size": 340
2228
+ },
2229
+ "rdkit/DistanceGeometry/__init__.py": {
2230
+ "size": 46
2231
+ },
2232
+ "rdkit/ForceField/__init__.py": {
2233
+ "size": 44
2234
+ },
2235
+ "rdkit/Geometry/__init__.py": {
2236
+ "size": 109
2237
+ },
2238
+ "rdkit/ML/Cluster/Butina.py": {
2239
+ "size": 5547
2240
+ },
2241
+ "rdkit/ML/Cluster/ClusterUtils.py": {
2242
+ "size": 4413
2243
+ },
2244
+ "rdkit/ML/Cluster/ClusterVis.py": {
2245
+ "size": 15378
2246
+ },
2247
+ "rdkit/ML/Cluster/Clusters.py": {
2248
+ "size": 7805
2249
+ },
2250
+ "rdkit/ML/Cluster/Murtagh.py": {
2251
+ "size": 3099
2252
+ },
2253
+ "rdkit/ML/Cluster/Resemblance.py": {
2254
+ "size": 3251
2255
+ },
2256
+ "rdkit/ML/Cluster/Standardize.py": {
2257
+ "size": 675
2258
+ },
2259
+ "rdkit/ML/Cluster/UnitTestButina.py": {
2260
+ "size": 4414
2261
+ },
2262
+ "rdkit/ML/Cluster/UnitTestCluster.py": {
2263
+ "size": 6146
2264
+ },
2265
+ "rdkit/ML/Cluster/__init__.py": {
2266
+ "size": 0
2267
+ },
2268
+ "rdkit/ML/Cluster/murtagh_test.py": {
2269
+ "size": 882
2270
+ },
2271
+ "rdkit/ML/Data/DataUtils.py": {
2272
+ "size": 17686
2273
+ },
2274
+ "rdkit/ML/Data/FindQuantBounds.py": {
2275
+ "size": 1653
2276
+ },
2277
+ "rdkit/ML/Data/MLData.py": {
2278
+ "size": 10430
2279
+ },
2280
+ "rdkit/ML/Data/Quantize.py": {
2281
+ "size": 10595
2282
+ },
2283
+ "rdkit/ML/Data/SplitData.py": {
2284
+ "size": 8814
2285
+ },
2286
+ "rdkit/ML/Data/Stats.py": {
2287
+ "size": 7089
2288
+ },
2289
+ "rdkit/ML/Data/Transforms.py": {
2290
+ "size": 877
2291
+ },
2292
+ "rdkit/ML/Data/UnitTestDoctests.py": {
2293
+ "size": 1509
2294
+ },
2295
+ "rdkit/ML/Data/UnitTestFilter.py": {
2296
+ "size": 3656
2297
+ },
2298
+ "rdkit/ML/Data/UnitTestMLData.py": {
2299
+ "size": 7092
2300
+ },
2301
+ "rdkit/ML/Data/UnitTestQuantize.py": {
2302
+ "size": 10936
2303
+ },
2304
+ "rdkit/ML/Data/UnitTestStats.py": {
2305
+ "size": 5969
2306
+ },
2307
+ "rdkit/ML/Data/__init__.py": {
2308
+ "size": 0
2309
+ },
2310
+ "rdkit/ML/Data/test_data/populate.py": {
2311
+ "size": 683
2312
+ },
2313
+ "rdkit/ML/Descriptors/CompoundDescriptors.py": {
2314
+ "size": 14135
2315
+ },
2316
+ "rdkit/ML/Descriptors/Descriptors.py": {
2317
+ "size": 1553
2318
+ },
2319
+ "rdkit/ML/Descriptors/MoleculeDescriptors.py": {
2320
+ "size": 3244
2321
+ },
2322
+ "rdkit/ML/Descriptors/Parser.py": {
2323
+ "size": 12428
2324
+ },
2325
+ "rdkit/ML/Descriptors/UnitTestDescriptors.py": {
2326
+ "size": 1661
2327
+ },
2328
+ "rdkit/ML/Descriptors/UnitTestMolDescriptors.py": {
2329
+ "size": 3116
2330
+ },
2331
+ "rdkit/ML/Descriptors/UnitTestParser.py": {
2332
+ "size": 1862
2333
+ },
2334
+ "rdkit/ML/Descriptors/__init__.py": {
2335
+ "size": 0
2336
+ },
2337
+ "rdkit/ML/InfoTheory/BitClusterer.py": {
2338
+ "size": 2321
2339
+ },
2340
+ "rdkit/ML/InfoTheory/BitRank.py": {
2341
+ "size": 5481
2342
+ },
2343
+ "rdkit/ML/InfoTheory/UnitTestBitRanker.py": {
2344
+ "size": 4211
2345
+ },
2346
+ "rdkit/ML/InfoTheory/UnitTestCorrMatGen.py": {
2347
+ "size": 3954
2348
+ },
2349
+ "rdkit/ML/InfoTheory/__init__.py": {
2350
+ "size": 89
2351
+ },
2352
+ "rdkit/ML/InfoTheory/entropy.py": {
2353
+ "size": 2820
2354
+ },
2355
+ "rdkit/ML/MLUtils/VoteImg.py": {
2356
+ "size": 6032
2357
+ },
2358
+ "rdkit/ML/MLUtils/__init__.py": {
2359
+ "size": 0
2360
+ },
2361
+ "rdkit/ML/MatOps.py": {
2362
+ "size": 774
2363
+ },
2364
+ "rdkit/ML/SLT/Risk.py": {
2365
+ "size": 3059
2366
+ },
2367
+ "rdkit/ML/SLT/UnitTestRisk.py": {
2368
+ "size": 1771
2369
+ },
2370
+ "rdkit/ML/SLT/__init__.py": {
2371
+ "size": 0
2372
+ },
2373
+ "rdkit/ML/Scoring/Scoring.py": {
2374
+ "size": 6387
2375
+ },
2376
+ "rdkit/ML/Scoring/UnitTestScoring.py": {
2377
+ "size": 6644
2378
+ },
2379
+ "rdkit/ML/Scoring/__init__.py": {
2380
+ "size": 0
2381
+ },
2382
+ "rdkit/ML/__init__.py": {
2383
+ "size": 340
2384
+ },
2385
+ "rdkit/ML/files.py": {
2386
+ "size": 2483
2387
+ },
2388
+ "rdkit/ML/test_data/populate.py": {
2389
+ "size": 13967
2390
+ },
2391
+ "rdkit/Numerics/__init__.py": {
2392
+ "size": 91
2393
+ },
2394
+ "rdkit/RDConfig.py": {
2395
+ "size": 2153
2396
+ },
2397
+ "rdkit/RDLogger.py": {
2398
+ "size": 1612
2399
+ },
2400
+ "rdkit/RDRandom.py": {
2401
+ "size": 1602
2402
+ },
2403
+ "rdkit/SimDivFilters/SimilarityPickers.py": {
2404
+ "size": 7305
2405
+ },
2406
+ "rdkit/SimDivFilters/UnitTestSimilarityPickers.py": {
2407
+ "size": 2760
2408
+ },
2409
+ "rdkit/SimDivFilters/__init__.py": {
2410
+ "size": 253
2411
+ },
2412
+ "rdkit/SimDivFilters/test_data/genfps.py": {
2413
+ "size": 618
2414
+ },
2415
+ "rdkit/TestRunner.py": {
2416
+ "size": 3608
2417
+ },
2418
+ "rdkit/UnitTestLogging.py": {
2419
+ "size": 11945
2420
+ },
2421
+ "rdkit/VLib/Filter.py": {
2422
+ "size": 2728
2423
+ },
2424
+ "rdkit/VLib/Node.py": {
2425
+ "size": 4558
2426
+ },
2427
+ "rdkit/VLib/NodeLib/DbMolSupply.py": {
2428
+ "size": 1679
2429
+ },
2430
+ "rdkit/VLib/NodeLib/DbPickleSupplier.py": {
2431
+ "size": 5746
2432
+ },
2433
+ "rdkit/VLib/NodeLib/SDSupply.py": {
2434
+ "size": 1397
2435
+ },
2436
+ "rdkit/VLib/NodeLib/SmartsMolFilter.py": {
2437
+ "size": 2668
2438
+ },
2439
+ "rdkit/VLib/NodeLib/SmartsRemover.py": {
2440
+ "size": 3877
2441
+ },
2442
+ "rdkit/VLib/NodeLib/SmilesDupeFilter.py": {
2443
+ "size": 1497
2444
+ },
2445
+ "rdkit/VLib/NodeLib/SmilesOutput.py": {
2446
+ "size": 1995
2447
+ },
2448
+ "rdkit/VLib/NodeLib/SmilesSupply.py": {
2449
+ "size": 1899
2450
+ },
2451
+ "rdkit/VLib/NodeLib/UnitTestNodeLib.py": {
2452
+ "size": 3489
2453
+ },
2454
+ "rdkit/VLib/NodeLib/__init__.py": {
2455
+ "size": 95
2456
+ },
2457
+ "rdkit/VLib/NodeLib/demo.py": {
2458
+ "size": 1986
2459
+ },
2460
+ "rdkit/VLib/NodeLib/test_data/pgp_20.txt": {
2461
+ "size": 2158
2462
+ },
2463
+ "rdkit/VLib/Output.py": {
2464
+ "size": 1651
2465
+ },
2466
+ "rdkit/VLib/Supply.py": {
2467
+ "size": 1501
2468
+ },
2469
+ "rdkit/VLib/Transform.py": {
2470
+ "size": 2041
2471
+ },
2472
+ "rdkit/VLib/UnitTestVLib.py": {
2473
+ "size": 4542
2474
+ },
2475
+ "rdkit/VLib/__init__.py": {
2476
+ "size": 13
2477
+ },
2478
+ "rdkit/__init__.py": {
2479
+ "size": 1838
2480
+ },
2481
+ "rdkit/conftest.py": {
2482
+ "size": 582
2483
+ },
2484
+ "rdkit/pytest.ini": {
2485
+ "size": 627
2486
+ },
2487
+ "rdkit/sping/PDF/__init__.py": {
2488
+ "size": 22
2489
+ },
2490
+ "rdkit/sping/PDF/pdfdoc.py": {
2491
+ "size": 15541
2492
+ },
2493
+ "rdkit/sping/PDF/pdfgen.py": {
2494
+ "size": 38180
2495
+ },
2496
+ "rdkit/sping/PDF/pdfgeom.py": {
2497
+ "size": 2413
2498
+ },
2499
+ "rdkit/sping/PDF/pdfmetrics.py": {
2500
+ "size": 20538
2501
+ },
2502
+ "rdkit/sping/PDF/pdfutils.py": {
2503
+ "size": 9789
2504
+ },
2505
+ "rdkit/sping/PDF/pidPDF.py": {
2506
+ "size": 23117
2507
+ },
2508
+ "rdkit/sping/PIL/__init__.py": {
2509
+ "size": 32
2510
+ },
2511
+ "rdkit/sping/PIL/pidPIL.py": {
2512
+ "size": 14301
2513
+ },
2514
+ "rdkit/sping/PIL/pilfonts/removemedium.py": {
2515
+ "size": 212
2516
+ },
2517
+ "rdkit/sping/PS/__init__.py": {
2518
+ "size": 31
2519
+ },
2520
+ "rdkit/sping/PS/fontinfo.py": {
2521
+ "size": 334
2522
+ },
2523
+ "rdkit/sping/PS/latin1MetricsCache.py": {
2524
+ "size": 19078
2525
+ },
2526
+ "rdkit/sping/PS/pidPS.py": {
2527
+ "size": 34776
2528
+ },
2529
+ "rdkit/sping/PS/psmetrics.py": {
2530
+ "size": 17626
2531
+ },
2532
+ "rdkit/sping/Pyart/Fontmapping.py": {
2533
+ "size": 3163
2534
+ },
2535
+ "rdkit/sping/Pyart/__init__.py": {
2536
+ "size": 40
2537
+ },
2538
+ "rdkit/sping/Pyart/pidPyart.py": {
2539
+ "size": 8275
2540
+ },
2541
+ "rdkit/sping/Qt/__init__.py": {
2542
+ "size": 0
2543
+ },
2544
+ "rdkit/sping/Qt/pidQt.py": {
2545
+ "size": 11206
2546
+ },
2547
+ "rdkit/sping/Qt/pidQt4.py": {
2548
+ "size": 10672
2549
+ },
2550
+ "rdkit/sping/ReportLab/__init__.py": {
2551
+ "size": 0
2552
+ },
2553
+ "rdkit/sping/ReportLab/pidReportLab.py": {
2554
+ "size": 10405
2555
+ },
2556
+ "rdkit/sping/SVG/__init__.py": {
2557
+ "size": 44
2558
+ },
2559
+ "rdkit/sping/SVG/pidSVG.py": {
2560
+ "size": 23674
2561
+ },
2562
+ "rdkit/sping/TK/__init__.py": {
2563
+ "size": 20
2564
+ },
2565
+ "rdkit/sping/TK/pidTK.py": {
2566
+ "size": 16409
2567
+ },
2568
+ "rdkit/sping/WX/__init__.py": {
2569
+ "size": 20
2570
+ },
2571
+ "rdkit/sping/WX/pidWX.py": {
2572
+ "size": 12753
2573
+ },
2574
+ "rdkit/sping/WX/pidWxDc.py": {
2575
+ "size": 8750
2576
+ },
2577
+ "rdkit/sping/__init__.py": {
2578
+ "size": 154
2579
+ },
2580
+ "rdkit/sping/colors.py": {
2581
+ "size": 6935
2582
+ },
2583
+ "rdkit/sping/examples/formatted-strings.py": {
2584
+ "size": 1270
2585
+ },
2586
+ "rdkit/sping/examples/tkCanvas-with-scrollbars.py": {
2587
+ "size": 2609
2588
+ },
2589
+ "rdkit/sping/examples/tkCanvasPIL-with-scrollbars.py": {
2590
+ "size": 2603
2591
+ },
2592
+ "rdkit/sping/pagesizes.py": {
2593
+ "size": 600
2594
+ },
2595
+ "rdkit/sping/pid.py": {
2596
+ "size": 21546
2597
+ },
2598
+ "rdkit/sping/stringformat.py": {
2599
+ "size": 17930
2600
+ },
2601
+ "rdkit/sping/tests/__init__.py": {
2602
+ "size": 26
2603
+ },
2604
+ "rdkit/sping/tests/pidtest.py": {
2605
+ "size": 14492
2606
+ },
2607
+ "rdkit/sping/tests/pstests.py": {
2608
+ "size": 425
2609
+ },
2610
+ "rdkit/sping/tests/testallps.py": {
2611
+ "size": 972
2612
+ },
2613
+ "rdkit/sping/util/HTMLPiddler.py": {
2614
+ "size": 12489
2615
+ },
2616
+ "rdkit/sping/util/__init__.py": {
2617
+ "size": 16
2618
+ },
2619
+ "rdkit/sping/utils.py": {
2620
+ "size": 318
2621
+ },
2622
+ "rdkit/utils/UnitTestUtils.py": {
2623
+ "size": 2273
2624
+ },
2625
+ "rdkit/utils/__init__.py": {
2626
+ "size": 0
2627
+ },
2628
+ "rdkit/utils/cactvs.py": {
2629
+ "size": 1788
2630
+ },
2631
+ "rdkit/utils/chemdraw.py": {
2632
+ "size": 11838
2633
+ },
2634
+ "rdkit/utils/chemdraw_qax.py": {
2635
+ "size": 2490
2636
+ },
2637
+ "rdkit/utils/chemutils.py": {
2638
+ "size": 4633
2639
+ },
2640
+ "rdkit/utils/fileutils.py": {
2641
+ "size": 1003
2642
+ },
2643
+ "rdkit/utils/listutils.py": {
2644
+ "size": 1189
2645
+ },
2646
+ "rdkit/utils/retest.txt": {
2647
+ "size": 113
2648
+ },
2649
+ "rdkit/utils/spiral.py": {
2650
+ "size": 1837
2651
+ },
2652
+ "setup.cfg": {
2653
+ "size": 645
2654
+ }
2655
+ },
2656
+ "processed_by": "zip_fallback",
2657
+ "success": true
2658
+ },
2659
+ "structure": {
2660
+ "packages": [
2661
+ "source.Contrib.RxnRoleAssignment",
2662
+ "source.Scripts.gen_rdkit_stubs",
2663
+ "source.Scripts.patch_rdkit_docstrings",
2664
+ "source.rdkit",
2665
+ "source.rdkit.Avalon",
2666
+ "source.rdkit.Chem",
2667
+ "source.rdkit.DataManip",
2668
+ "source.rdkit.DataStructs",
2669
+ "source.rdkit.Dbase",
2670
+ "source.rdkit.DistanceGeometry",
2671
+ "source.rdkit.ForceField",
2672
+ "source.rdkit.Geometry",
2673
+ "source.rdkit.ML",
2674
+ "source.rdkit.Numerics",
2675
+ "source.rdkit.SimDivFilters",
2676
+ "source.rdkit.VLib",
2677
+ "source.rdkit.sping",
2678
+ "source.rdkit.utils"
2679
+ ]
2680
+ },
2681
+ "dependencies": {
2682
+ "has_environment_yml": false,
2683
+ "has_requirements_txt": false,
2684
+ "pyproject": false,
2685
+ "setup_cfg": true,
2686
+ "setup_py": false
2687
+ },
2688
+ "entry_points": {
2689
+ "imports": [],
2690
+ "cli": [],
2691
+ "modules": []
2692
+ },
2693
+ "llm_analysis": {
2694
+ "core_modules": [
2695
+ {
2696
+ "package": "source.rdkit.Chem",
2697
+ "module": "AllChem",
2698
+ "functions": [
2699
+ "MolFromSmiles",
2700
+ "MolToSmiles",
2701
+ "AddHs",
2702
+ "RemoveHs"
2703
+ ],
2704
+ "classes": [
2705
+ "Mol",
2706
+ "Atom",
2707
+ "Bond"
2708
+ ],
2709
+ "description": "Core module for chemical informatics, providing functions for molecule manipulation and conversion."
2710
+ },
2711
+ {
2712
+ "package": "source.rdkit.Chem",
2713
+ "module": "Descriptors",
2714
+ "functions": [
2715
+ "CalcMolWt",
2716
+ "CalcExactMolWt",
2717
+ "CalcNumHBA",
2718
+ "CalcNumHBD"
2719
+ ],
2720
+ "classes": [],
2721
+ "description": "Module for calculating molecular descriptors such as molecular weight, hydrogen bond acceptors, and donors."
2722
+ },
2723
+ {
2724
+ "package": "source.rdkit.Chem",
2725
+ "module": "Draw",
2726
+ "functions": [
2727
+ "MolToImage",
2728
+ "MolToImageFile",
2729
+ "MolToImageBytes"
2730
+ ],
2731
+ "classes": [
2732
+ "MolDrawOptions"
2733
+ ],
2734
+ "description": "Module for visualizing molecules as images."
2735
+ },
2736
+ {
2737
+ "package": "source.rdkit.ML.Cluster",
2738
+ "module": "Butina",
2739
+ "functions": [
2740
+ "ClusterData"
2741
+ ],
2742
+ "classes": [],
2743
+ "description": "Module for clustering data using the Butina algorithm."
2744
+ },
2745
+ {
2746
+ "package": "source.rdkit.DataStructs",
2747
+ "module": "BitUtils",
2748
+ "functions": [
2749
+ "OnBitsFromBits",
2750
+ "BitsToText"
2751
+ ],
2752
+ "classes": [],
2753
+ "description": "Module for handling bit vector operations."
2754
+ }
2755
+ ],
2756
+ "cli_commands": [
2757
+ {
2758
+ "name": "FeatFinderCLI",
2759
+ "module": "source.rdkit.Chem.FeatFinderCLI",
2760
+ "description": "Command-line interface for finding chemical features in molecules."
2761
+ },
2762
+ {
2763
+ "name": "run_python_tests",
2764
+ "module": "source.Scripts.run_python_tests",
2765
+ "description": "Command-line tool for running Python tests in the RDKit repository."
2766
+ }
2767
+ ],
2768
+ "import_strategy": {
2769
+ "primary": "import",
2770
+ "fallback": "blackbox",
2771
+ "confidence": 0.9
2772
+ },
2773
+ "dependencies": {
2774
+ "required": [
2775
+ "numpy",
2776
+ "pandas",
2777
+ "matplotlib",
2778
+ "scipy"
2779
+ ],
2780
+ "optional": [
2781
+ "pillow",
2782
+ "pytest",
2783
+ "jupyter"
2784
+ ]
2785
+ },
2786
+ "risk_assessment": {
2787
+ "import_feasibility": 0.85,
2788
+ "intrusiveness_risk": "low",
2789
+ "complexity": "medium"
2790
+ }
2791
+ },
2792
+ "deepwiki_analysis": {
2793
+ "repo_url": "https://github.com/rdkit/rdkit",
2794
+ "repo_name": "rdkit",
2795
+ "content": "rdkit/rdkit\nInstallation and Build System\nArchitecture Overview\nCore Molecular System\nMolecular Data Structures\nMolecular Operations and Sanitization\nStereochemistry and Chirality\nPython Bindings for Core Objects\nInput/Output and Serialization\nSMILES and SMARTS Processing\nFile Format Support\nMolecule Suppliers and Writers\nVisualization and Rendering\n2D Molecular Drawing System\nPython Drawing Integration\n3D Structure and Geometry\n3D Conformer Generation\nChemical Analysis and Descriptors\nMolecular Descriptors and Properties\nMolecular Fingerprints\nMaximum Common Substructure\nChemical Transformations\nChemical Reactions\nMolecular Fragmentation and Transforms\nR-Group Decomposition\nData Integration and External Systems\nPython API and Core Integration\nPandas Integration\nPostgreSQL Chemical Cartridge\nJavaScript and Web Integration\nJava and C# Bindings\n.travis.yml\nCMakeLists.txt\nCode/GraphMol/CMakeLists.txt\nCode/GraphMol/FileParsers/CMakeLists.txt\nCode/GraphMol/Trajectory/CMakeLists.txt\nCode/GraphMol/Wrap/CMakeLists.txt\nCode/GraphMol/Wrap/rdchem.cpp\nCode/GraphMol/Wrap/testThreads.py\nCode/RDBoost/CMakeLists.txt\nCode/RDBoost/Wrap.cpp\nCode/RDBoost/Wrap.h\nCode/RDGeneral/CMakeLists.txt\nCode/RDGeneral/LocaleSwitcher.h\nCode/RDGeneral/versions.cpp.cmake\nCode/RDGeneral/versions.h.cmake\nCode/cmake/Modules/FindEigen3.cmake\nCode/cmake/Modules/RDKitUtils.cmake\nDocs/Book/BackwardsIncompatibleChanges.md\nDocs/Book/GettingStartedInPython.rst\nDocs/Book/Install.md\nDocs/Book/Makefile\nDocs/Book/Overview.md\nDocs/Book/conf.py\nDocs/Book/images/query_atoms.png\nDocs/Book/images/query_bonds.2.png\nDocs/Book/images/query_bonds.png\nDocs/Book/index.rst\nDocs/Book/source/rdkit.Chem.RegistrationHash.rst\nDocs/Book/source/rdkit.Chem.rdEnumerateStereoisomers.rst\nDocs/Book/source/rdkit.Chem.rdGeneralizedSubstruct.rst\nDocs/Book/source/rdkit.Chem.rdMIF.rst\nDocs/Book/source/rdkit.Chem.rdMolProcessing.rst\nDocs/Book/source/rdkit.Chem.rdRascalMCES.rst\nDocs/Book/source/rdkit.Chem.rdSynthonSpaceSearch.rst\nDocs/Book/source/rdkit.Chem.rst\nReleaseNotes.md\nThe RDKit is a comprehensive open-source cheminformatics and machine learning toolkit written in C++ with Python wrappers. It provides a rich set of functionality for working with chemical structures, including molecular representation, file parsing, substructure searching, molecular descriptor calculation, fingerprinting, 2D/3D structure visualization, and chemical reactions.\nThis page introduces the core concepts, architecture, and key capabilities of RDKit. For specific installation instructions, seeInstallation and Build System. For a deeper dive into the technical aspects of RDKit's design, seeArchitecture Overview.\nCore Capabilities\nRDKit offers a wide range of chemical informatics functionality:\nReading and writing molecules in various formats (SMILES, Molfiles, etc.)\nMolecular property calculation and descriptor generation\nSubstructure searching\nMolecular fingerprinting\n2D and 3D structure visualization\nChemical reaction handling\nMolecular conformer generation\nForce field implementations\nMolecular alignment and shape comparison\nScaffold analysis\nMaximum common substructure detection\nMachine learning integration\nSources:ReleaseNotes.md30-57README.md6-10CMakeLists.txt22-72\nSoftware Architecture\nHigh-Level Architecture\nThe RDKit is built around a core set of C++ libraries, with Python wrappers providing a user-friendly interface. The system is highly modular, allowing users to include only the functionality they need.\nExternal InterfacesPython InterfaceCore C++ LibrariesCore Molecule Representation(ROMol, RWMol, Atom, Bond)Input/Output(SMILES, Molfiles, SDF, etc.)Molecular Operations(Sanitization, Hydrogens, etc.)Substructure SearchingMolecular Properties(Descriptors, Fingerprints)2D/3D Visualization3D Operations(Conformers, Force Fields)Chemical Reactionsrdkit Python Packagerdkit.Chem(Core Functionality)rdkit.Chem.AllChem(Advanced Features)rdkit.Chem.Draw(Visualization)rdkit.DataStructs(Fingerprints, Similarity)rdkit.ML(Machine Learning)PostgreSQL CartridgeJavaScript Bindings\nExternal Interfaces\nPython Interface\nCore C++ Libraries\nCore Molecule Representation(ROMol, RWMol, Atom, Bond)\nInput/Output(SMILES, Molfiles, SDF, etc.)\nMolecular Operations(Sanitization, Hydrogens, etc.)\nSubstructure Searching\nMolecular Properties(Descriptors, Fingerprints)\n2D/3D Visualization\n3D Operations(Conformers, Force Fields)\nChemical Reactions\nrdkit Python Package\nrdkit.Chem(Core Functionality)\nrdkit.Chem.AllChem(Advanced Features)\nrdkit.Chem.Draw(Visualization)\nrdkit.DataStructs(Fingerprints, Similarity)\nrdkit.ML(Machine Learning)\nPostgreSQL Cartridge\nJavaScript Bindings\nSources:CMakeLists.txt1-121Code/GraphMol/CMakeLists.txt1-50ReleaseNotes.md30-57\nCore Molecular Representation\nAt the heart of RDKit is the molecule representation, withROMol(Read-Only Molecule) as the foundational class andRWMol(Read-Write Molecule) for modifiable structures. Atoms, bonds, and properties form the basic components of molecular graphs.\n1111manymanymany1RDProps+setProp(key, val)+getProp(key)+hasProp(key)+clearProp(key)ROMol+getNumAtoms()+getAtomWithIdx(idx)+getBondWithIdx(idx)+getAtoms()+getBonds()+getConformer(id)+getNumConformers()RWMol+addAtom(atom)+addBond(beginAtomIdx, endAtomIdx, bondType)+removeAtom(atom)+removeBond(beginAtomIdx, endAtomIdx)Atom+getAtomicNum()+getFormalCharge()+getIdx()+getImplicitValence()+getExplicitValence()+getNumImplicitHs()+getIsAromatic()+getChiralTag()Bond+getBondType()+getBeginAtomIdx()+getEndAtomIdx()+getIsAromatic()+getStereo()Conformer+getNumAtoms()+getAtomPos(idx)+setAtomPos(idx, point)+getId()RingInfo+numRings()+atomRings()+bondRings()+isAtomInRingOfSize(idx, size)+isBondInRingOfSize(idx, size)\n+setProp(key, val)\n+getProp(key)\n+hasProp(key)\n+clearProp(key)\n+getNumAtoms()\n+getAtomWithIdx(idx)\n+getBondWithIdx(idx)\n+getAtoms()\n+getBonds()\n+getConformer(id)\n+getNumConformers()\n+addAtom(atom)\n+addBond(beginAtomIdx, endAtomIdx, bondType)\n+removeAtom(atom)\n+removeBond(beginAtomIdx, endAtomIdx)\n+getAtomicNum()\n+getFormalCharge()\n+getImplicitValence()\n+getExplicitValence()\n+getNumImplicitHs()\n+getIsAromatic()\n+getChiralTag()\n+getBondType()\n+getBeginAtomIdx()\n+getEndAtomIdx()\n+getIsAromatic()\n+getStereo()\n+getNumAtoms()\n+getAtomPos(idx)\n+setAtomPos(idx, point)\n+numRings()\n+atomRings()\n+bondRings()\n+isAtomInRingOfSize(idx, size)\n+isBondInRingOfSize(idx, size)\nSources:Code/GraphMol/ROMol.h1-100Code/GraphMol/RWMol.cpp1-100Code/GraphMol/Atom.h1-100Code/GraphMol/molopstest.cpp3-50\nKey Processing Workflows\nRDKit supports several common workflows for processing molecular data:\n1. Molecule Reading and Manipulation\nInput(SMILES, Molfile, etc.)Parse/Read(MolFromSmiles, MolFromMolFile)ROMol/RWMolObjectSanitize(MolOps::sanitizeMol)Modify(Add/Remove Hs, etc.)Analyze(Calculate Properties)Output(SMILES, Molfile, Visualization)\nInput(SMILES, Molfile, etc.)\nParse/Read(MolFromSmiles, MolFromMolFile)\nROMol/RWMolObject\nSanitize(MolOps::sanitizeMol)\nModify(Add/Remove Hs, etc.)\nAnalyze(Calculate Properties)\nOutput(SMILES, Molfile, Visualization)\nSources:Docs/Book/GettingStartedInPython.rst42-400Code/GraphMol/Wrap/MolOps.cpp401-420\n2. Substructure Searching\nTarget Molecule(ROMol)Prepare(Sanitize, Add Hs)Query Pattern(SMARTS, ROMol)Parse Query(MolFromSmarts)Substructure Match(SubstructMatch)Match Results(Atom Indices)Process Results(Filter, Highlight, etc.)\nTarget Molecule(ROMol)\nPrepare(Sanitize, Add Hs)\nQuery Pattern(SMARTS, ROMol)\nParse Query(MolFromSmarts)\nSubstructure Match(SubstructMatch)\nMatch Results(Atom Indices)\nProcess Results(Filter, Highlight, etc.)\nSources:Docs/Book/GettingStartedInPython.rst363-400Code/GraphMol/molopstest.cpp313-335\nUsing RDKit\nRDKit can be used from both Python and C++, with most users preferring the Python interface for its ease of use. Here's a basic workflow table showing common operations:\nmol = Chem.MolFromSmiles('c1ccccc1')\nROMol *mol = SmilesToMol(\"c1ccccc1\");\nsmiles = Chem.MolToSmiles(mol)\nstd::string smiles = MolToSmiles(*mol);\nmol_with_h = Chem.AddHs(mol)\nROMol *mol_with_h = MolOps::addHs(*mol);\nfp = AllChem.GetMorganFingerprintAsBitVect(mol, 2)\nMorganFingerprints::getFingerprintAsBitVect(*mol, 2, fingerprint);\nimg = Draw.MolToImage(mol)\nmatches = mol.GetSubstructMatches(query)\nstd::vector<MatchVectType> matches; SubstructMatch(*mol, *query, matches);\nSources:Docs/Book/GettingStartedInPython.rst42-147Code/GraphMol/Wrap/rough_test.py45-300Code/GraphMol/test1.cpp20-100\nMajor Components\nRDKit consists of numerous components, each providing specific functionality:\nMolFromSmiles\nMolToSmiles\nMolFromSmarts\nMolFromMolFile\nMolToMolFile\nSDMolSupplier\nSubstructMatch\nCompute2DCoords\nEmbedMolecule\nChemicalReaction\nReactionFromSmarts\nSources:Code/GraphMol/CMakeLists.txt1-129ReleaseNotes.md50-175\nIntegration Points\nRDKit can be integrated with other systems and languages:\nPython Ecosystem: Seamless integration with NumPy, pandas, Jupyter, scikit-learn",
2796
+ "model": "gpt-4o",
2797
+ "source": "selenium",
2798
+ "success": true
2799
+ },
2800
+ "deepwiki_options": {
2801
+ "enabled": true,
2802
+ "model": "gpt-4o"
2803
+ },
2804
+ "risk": {
2805
+ "import_feasibility": 0.85,
2806
+ "intrusiveness_risk": "low",
2807
+ "complexity": "medium"
2808
+ }
2809
+ }
rdkit/mcp_output/env_info.json ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "environment": {
3
+ "type": "conda",
4
+ "name": "rdkit_850480_env",
5
+ "files": {},
6
+ "python": "3.10",
7
+ "exec_prefix": []
8
+ },
9
+ "original_tests": {
10
+ "passed": false,
11
+ "report_path": null
12
+ },
13
+ "timestamp": 1758850567.244021,
14
+ "conda_available": true
15
+ }
rdkit/mcp_output/mcp_logs/llm_statistics.json ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "total_calls": 4,
3
+ "failed_calls": 0,
4
+ "retry_count": 0,
5
+ "total_prompt_tokens": 85483,
6
+ "total_completion_tokens": 4230,
7
+ "total_tokens": 89713,
8
+ "average_prompt_tokens": 21370.75,
9
+ "average_completion_tokens": 1057.5,
10
+ "average_tokens": 22428.25
11
+ }
rdkit/mcp_output/mcp_logs/run_log.json ADDED
@@ -0,0 +1,74 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "timestamp": 1758850704.982304,
3
+ "node": "RunNode",
4
+ "test_result": {
5
+ "passed": false,
6
+ "report_path": null,
7
+ "stdout": "",
8
+ "stderr": "ERROR conda.cli.main_run:execute(41): `conda run python mcp_output/start_mcp.py` failed. (See above for error)\nTraceback (most recent call last):\n File \"/export/project/shiweijie/ghh/LLM_MCP_RAG/MCP-agent-github-repo-output/workspace/rdkit/mcp_output/start_mcp.py\", line 17, in <module>\n from mcp_service import create_app\n File \"/export/project/shiweijie/ghh/LLM_MCP_RAG/MCP-agent-github-repo-output/workspace/rdkit/mcp_output/mcp_plugin/mcp_service.py\", line 8, in <module>\n from rdkit.Chem import FeatFinderCLI\n File \"/export/project/shiweijie/ghh/LLM_MCP_RAG/MCP-agent-github-repo-output/workspace/rdkit/source/rdkit/__init__.py\", line 6, in <module>\n from . import rdBase\nImportError: cannot import name 'rdBase' from partially initialized module 'rdkit' (most likely due to a circular import) (/export/project/shiweijie/ghh/LLM_MCP_RAG/MCP-agent-github-repo-output/workspace/rdkit/source/rdkit/__init__.py)\n\n"
9
+ },
10
+ "run_result": {
11
+ "success": false,
12
+ "test_passed": false,
13
+ "exit_code": 1,
14
+ "stdout": "",
15
+ "stderr": "ERROR conda.cli.main_run:execute(41): `conda run python mcp_output/start_mcp.py` failed. (See above for error)\nTraceback (most recent call last):\n File \"/export/project/shiweijie/ghh/LLM_MCP_RAG/MCP-agent-github-repo-output/workspace/rdkit/mcp_output/start_mcp.py\", line 17, in <module>\n from mcp_service import create_app\n File \"/export/project/shiweijie/ghh/LLM_MCP_RAG/MCP-agent-github-repo-output/workspace/rdkit/mcp_output/mcp_plugin/mcp_service.py\", line 8, in <module>\n from rdkit.Chem import FeatFinderCLI\n File \"/export/project/shiweijie/ghh/LLM_MCP_RAG/MCP-agent-github-repo-output/workspace/rdkit/source/rdkit/__init__.py\", line 6, in <module>\n from . import rdBase\nImportError: cannot import name 'rdBase' from partially initialized module 'rdkit' (most likely due to a circular import) (/export/project/shiweijie/ghh/LLM_MCP_RAG/MCP-agent-github-repo-output/workspace/rdkit/source/rdkit/__init__.py)\n\n",
16
+ "timestamp": 1758850704.9821641,
17
+ "error_type": "ImportError",
18
+ "error": "Import error: ERROR conda.cli.main_run:execute(41): `conda run python mcp_output/start_mcp.py` failed. (See above for error)\nTraceback (most recent call last):\n File \"/export/project/shiweijie/ghh/LLM_MCP_RAG/MCP-agent-github-repo-output/workspace/rdkit/mcp_output/start_mcp.py\", line 17, in <module>\n from mcp_service import create_app\n File \"/export/project/shiweijie/ghh/LLM_MCP_RAG/MCP-agent-github-repo-output/workspace/rdkit/mcp_output/mcp_plugin/mcp_service.py\", line 8, in <module>\n from rdkit.Chem import FeatFinderCLI\n File \"/export/project/shiweijie/ghh/LLM_MCP_RAG/MCP-agent-github-repo-output/workspace/rdkit/source/rdkit/__init__.py\", line 6, in <module>\n from . import rdBase\nImportError: cannot import name 'rdBase' from partially initialized module 'rdkit' (most likely due to a circular import) (/export/project/shiweijie/ghh/LLM_MCP_RAG/MCP-agent-github-repo-output/workspace/rdkit/source/rdkit/__init__.py)\n\n",
19
+ "details": {
20
+ "command": "/home/wshiah/code/miniconda3/bin/conda run -n rdkit_850480_env --cwd /export/project/shiweijie/ghh/LLM_MCP_RAG/MCP-agent-github-repo-output/workspace/rdkit python mcp_output/start_mcp.py",
21
+ "working_directory": "/export/project/shiweijie/ghh/LLM_MCP_RAG/MCP-agent-github-repo-output/workspace/rdkit",
22
+ "environment_type": "conda"
23
+ }
24
+ },
25
+ "environment": {
26
+ "type": "conda",
27
+ "name": "rdkit_850480_env",
28
+ "files": {},
29
+ "python": "3.10",
30
+ "exec_prefix": []
31
+ },
32
+ "plugin_info": {
33
+ "files": {
34
+ "mcp_output/start_mcp.py": "/export/project/shiweijie/ghh/LLM_MCP_RAG/MCP-agent-github-repo-output/workspace/rdkit/mcp_output/start_mcp.py",
35
+ "mcp_output/mcp_plugin/__init__.py": "/export/project/shiweijie/ghh/LLM_MCP_RAG/MCP-agent-github-repo-output/workspace/rdkit/mcp_output/mcp_plugin/__init__.py",
36
+ "mcp_output/mcp_plugin/mcp_service.py": "/export/project/shiweijie/ghh/LLM_MCP_RAG/MCP-agent-github-repo-output/workspace/rdkit/mcp_output/mcp_plugin/mcp_service.py",
37
+ "mcp_output/mcp_plugin/adapter.py": "/export/project/shiweijie/ghh/LLM_MCP_RAG/MCP-agent-github-repo-output/workspace/rdkit/mcp_output/mcp_plugin/adapter.py",
38
+ "mcp_output/mcp_plugin/main.py": "/export/project/shiweijie/ghh/LLM_MCP_RAG/MCP-agent-github-repo-output/workspace/rdkit/mcp_output/mcp_plugin/main.py",
39
+ "mcp_output/requirements.txt": "/export/project/shiweijie/ghh/LLM_MCP_RAG/MCP-agent-github-repo-output/workspace/rdkit/mcp_output/requirements.txt",
40
+ "mcp_output/README_MCP.md": "/export/project/shiweijie/ghh/LLM_MCP_RAG/MCP-agent-github-repo-output/workspace/rdkit/mcp_output/README_MCP.md",
41
+ "mcp_output/tests_mcp/test_mcp_basic.py": "/export/project/shiweijie/ghh/LLM_MCP_RAG/MCP-agent-github-repo-output/workspace/rdkit/mcp_output/tests_mcp/test_mcp_basic.py"
42
+ },
43
+ "adapter_mode": "import",
44
+ "endpoints": [
45
+ "MolFromSmiles",
46
+ "MolToSmiles",
47
+ "AddHs",
48
+ "RemoveHs",
49
+ "mol",
50
+ "atom",
51
+ "bond",
52
+ "CalcMolWt",
53
+ "CalcExactMolWt",
54
+ "CalcNumHBA",
55
+ "CalcNumHBD",
56
+ "MolToImage",
57
+ "MolToImageFile",
58
+ "MolToImageBytes",
59
+ "moldrawoptions",
60
+ "ClusterData",
61
+ "OnBitsFromBits",
62
+ "BitsToText"
63
+ ],
64
+ "mcp_dir": "/export/project/shiweijie/ghh/LLM_MCP_RAG/MCP-agent-github-repo-output/workspace/rdkit/mcp_output/mcp_plugin",
65
+ "tests_dir": "/export/project/shiweijie/ghh/LLM_MCP_RAG/MCP-agent-github-repo-output/workspace/rdkit/mcp_output/tests_mcp",
66
+ "main_entry": "start_mcp.py",
67
+ "readme_path": "/export/project/shiweijie/ghh/LLM_MCP_RAG/MCP-agent-github-repo-output/workspace/rdkit/mcp_output/README_MCP.md",
68
+ "requirements": [
69
+ "fastmcp>=0.1.0",
70
+ "pydantic>=2.0.0"
71
+ ]
72
+ },
73
+ "fastmcp_installed": false
74
+ }
rdkit/mcp_output/mcp_plugin/__init__.py ADDED
File without changes
rdkit/mcp_output/mcp_plugin/__pycache__/adapter.cpython-310.pyc ADDED
Binary file (7.48 kB). View file
 
rdkit/mcp_output/mcp_plugin/__pycache__/mcp_service.cpython-310.pyc ADDED
Binary file (1.89 kB). View file
 
rdkit/mcp_output/mcp_plugin/adapter.py ADDED
@@ -0,0 +1,249 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import sys
3
+
4
+ # Path settings
5
+ source_path = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))), "source")
6
+ sys.path.insert(0, source_path)
7
+
8
+ # Import statements
9
+ try:
10
+ from rdkit.Chem import MolFromSmiles, MolToSmiles, AddHs, MolFromMolFile, MolToMolFile
11
+ from rdkit.Chem import SDMolSupplier, SubstructMatch, Compute2DCoords, EmbedMolecule
12
+ from rdkit.Chem import ChemicalReaction, ReactionFromSmarts
13
+ from rdkit.Chem.AllChem import GetMorganFingerprintAsBitVect
14
+ from rdkit.Chem.Draw import MolToImage
15
+ import numpy as np
16
+ import pandas as pd
17
+ import matplotlib.pyplot as plt
18
+ except ImportError as e:
19
+ print("Error: Failed to import RDKit modules. Ensure RDKit is installed and accessible.")
20
+ print(f"Details: {e}")
21
+ fallback_mode = True
22
+ else:
23
+ fallback_mode = False
24
+
25
+
26
+ class Adapter:
27
+ """
28
+ Adapter class for RDKit functionalities.
29
+ Provides methods to interact with RDKit's core features, including molecule manipulation,
30
+ substructure searching, fingerprint generation, and visualization.
31
+ """
32
+
33
+ def __init__(self):
34
+ """
35
+ Initialize the Adapter class.
36
+ Sets the mode to 'import' if RDKit modules are successfully imported, otherwise 'fallback'.
37
+ """
38
+ self.mode = "import" if not fallback_mode else "fallback"
39
+
40
+ # -------------------------------------------------------------------------
41
+ # Molecule Manipulation Methods
42
+ # -------------------------------------------------------------------------
43
+
44
+ def create_molecule_from_smiles(self, smiles):
45
+ """
46
+ Create a molecule object from a SMILES string.
47
+
48
+ Parameters:
49
+ smiles (str): The SMILES string representing the molecule.
50
+
51
+ Returns:
52
+ dict: A dictionary containing the status and the molecule object or error message.
53
+ """
54
+ try:
55
+ if self.mode == "fallback":
56
+ return {"status": "error", "message": "RDKit is not available in fallback mode."}
57
+ mol = MolFromSmiles(smiles)
58
+ if mol is None:
59
+ return {"status": "error", "message": "Invalid SMILES string."}
60
+ return {"status": "success", "molecule": mol}
61
+ except Exception as e:
62
+ return {"status": "error", "message": f"Failed to create molecule: {e}"}
63
+
64
+ def convert_molecule_to_smiles(self, mol):
65
+ """
66
+ Convert a molecule object to a SMILES string.
67
+
68
+ Parameters:
69
+ mol: The molecule object.
70
+
71
+ Returns:
72
+ dict: A dictionary containing the status and the SMILES string or error message.
73
+ """
74
+ try:
75
+ if self.mode == "fallback":
76
+ return {"status": "error", "message": "RDKit is not available in fallback mode."}
77
+ smiles = MolToSmiles(mol)
78
+ return {"status": "success", "smiles": smiles}
79
+ except Exception as e:
80
+ return {"status": "error", "message": f"Failed to convert molecule to SMILES: {e}"}
81
+
82
+ def add_hydrogens(self, mol):
83
+ """
84
+ Add hydrogens to a molecule.
85
+
86
+ Parameters:
87
+ mol: The molecule object.
88
+
89
+ Returns:
90
+ dict: A dictionary containing the status and the modified molecule or error message.
91
+ """
92
+ try:
93
+ if self.mode == "fallback":
94
+ return {"status": "error", "message": "RDKit is not available in fallback mode."}
95
+ mol_with_h = AddHs(mol)
96
+ return {"status": "success", "molecule": mol_with_h}
97
+ except Exception as e:
98
+ return {"status": "error", "message": f"Failed to add hydrogens: {e}"}
99
+
100
+ # -------------------------------------------------------------------------
101
+ # File Handling Methods
102
+ # -------------------------------------------------------------------------
103
+
104
+ def read_molecule_from_file(self, file_path):
105
+ """
106
+ Read a molecule from a file.
107
+
108
+ Parameters:
109
+ file_path (str): Path to the molecule file.
110
+
111
+ Returns:
112
+ dict: A dictionary containing the status and the molecule object or error message.
113
+ """
114
+ try:
115
+ if self.mode == "fallback":
116
+ return {"status": "error", "message": "RDKit is not available in fallback mode."}
117
+ mol = MolFromMolFile(file_path)
118
+ if mol is None:
119
+ return {"status": "error", "message": "Failed to read molecule from file."}
120
+ return {"status": "success", "molecule": mol}
121
+ except Exception as e:
122
+ return {"status": "error", "message": f"Failed to read molecule from file: {e}"}
123
+
124
+ def write_molecule_to_file(self, mol, file_path):
125
+ """
126
+ Write a molecule to a file.
127
+
128
+ Parameters:
129
+ mol: The molecule object.
130
+ file_path (str): Path to save the molecule file.
131
+
132
+ Returns:
133
+ dict: A dictionary containing the status and a success message or error message.
134
+ """
135
+ try:
136
+ if self.mode == "fallback":
137
+ return {"status": "error", "message": "RDKit is not available in fallback mode."}
138
+ MolToMolFile(mol, file_path)
139
+ return {"status": "success", "message": "Molecule written to file successfully."}
140
+ except Exception as e:
141
+ return {"status": "error", "message": f"Failed to write molecule to file: {e}"}
142
+
143
+ # -------------------------------------------------------------------------
144
+ # Substructure Searching Methods
145
+ # -------------------------------------------------------------------------
146
+
147
+ def substructure_search(self, target_mol, query_smarts):
148
+ """
149
+ Perform a substructure search.
150
+
151
+ Parameters:
152
+ target_mol: The target molecule object.
153
+ query_smarts (str): The SMARTS pattern for the query.
154
+
155
+ Returns:
156
+ dict: A dictionary containing the status and match results or error message.
157
+ """
158
+ try:
159
+ if self.mode == "fallback":
160
+ return {"status": "error", "message": "RDKit is not available in fallback mode."}
161
+ query = MolFromSmiles(query_smarts)
162
+ if query is None:
163
+ return {"status": "error", "message": "Invalid SMARTS pattern."}
164
+ matches = SubstructMatch(target_mol, query)
165
+ return {"status": "success", "matches": matches}
166
+ except Exception as e:
167
+ return {"status": "error", "message": f"Failed to perform substructure search: {e}"}
168
+
169
+ # -------------------------------------------------------------------------
170
+ # Fingerprint Generation Methods
171
+ # -------------------------------------------------------------------------
172
+
173
+ def generate_morgan_fingerprint(self, mol, radius=2):
174
+ """
175
+ Generate a Morgan fingerprint for a molecule.
176
+
177
+ Parameters:
178
+ mol: The molecule object.
179
+ radius (int): The radius for the fingerprint.
180
+
181
+ Returns:
182
+ dict: A dictionary containing the status and the fingerprint or error message.
183
+ """
184
+ try:
185
+ if self.mode == "fallback":
186
+ return {"status": "error", "message": "RDKit is not available in fallback mode."}
187
+ fingerprint = GetMorganFingerprintAsBitVect(mol, radius)
188
+ return {"status": "success", "fingerprint": fingerprint}
189
+ except Exception as e:
190
+ return {"status": "error", "message": f"Failed to generate Morgan fingerprint: {e}"}
191
+
192
+ # -------------------------------------------------------------------------
193
+ # Visualization Methods
194
+ # -------------------------------------------------------------------------
195
+
196
+ def draw_molecule(self, mol):
197
+ """
198
+ Draw a molecule and return the image.
199
+
200
+ Parameters:
201
+ mol: The molecule object.
202
+
203
+ Returns:
204
+ dict: A dictionary containing the status and the image or error message.
205
+ """
206
+ try:
207
+ if self.mode == "fallback":
208
+ return {"status": "error", "message": "RDKit is not available in fallback mode."}
209
+ img = MolToImage(mol)
210
+ return {"status": "success", "image": img}
211
+ except Exception as e:
212
+ return {"status": "error", "message": f"Failed to draw molecule: {e}"}
213
+
214
+ # -------------------------------------------------------------------------
215
+ # Chemical Reaction Methods
216
+ # -------------------------------------------------------------------------
217
+
218
+ def create_reaction(self, smarts):
219
+ """
220
+ Create a chemical reaction from a SMARTS string.
221
+
222
+ Parameters:
223
+ smarts (str): The SMARTS string representing the reaction.
224
+
225
+ Returns:
226
+ dict: A dictionary containing the status and the reaction object or error message.
227
+ """
228
+ try:
229
+ if self.mode == "fallback":
230
+ return {"status": "error", "message": "RDKit is not available in fallback mode."}
231
+ reaction = ReactionFromSmarts(smarts)
232
+ if reaction is None:
233
+ return {"status": "error", "message": "Invalid SMARTS string for reaction."}
234
+ return {"status": "success", "reaction": reaction}
235
+ except Exception as e:
236
+ return {"status": "error", "message": f"Failed to create reaction: {e}"}
237
+
238
+ # -------------------------------------------------------------------------
239
+ # Utility Methods
240
+ # -------------------------------------------------------------------------
241
+
242
+ def get_mode(self):
243
+ """
244
+ Get the current mode of the adapter.
245
+
246
+ Returns:
247
+ dict: A dictionary containing the status and the current mode.
248
+ """
249
+ return {"status": "success", "mode": self.mode}
rdkit/mcp_output/mcp_plugin/main.py ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ MCP Service Auto-Wrapper - Auto-generated
3
+ """
4
+ from mcp_service import create_app
5
+
6
+ def main():
7
+ """Main entry point"""
8
+ app = create_app()
9
+ return app
10
+
11
+ if __name__ == "__main__":
12
+ app = main()
13
+ app.run()
rdkit/mcp_output/mcp_plugin/mcp_service.py ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import sys
3
+
4
+ source_path = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))), "source")
5
+ sys.path.insert(0, source_path)
6
+
7
+ from fastmcp import FastMCP
8
+ from rdkit.Chem import FeatFinderCLI
9
+ from Scripts.run_python_tests import run_python_tests
10
+
11
+ mcp = FastMCP("rdkit_service")
12
+
13
+ @mcp.tool(name="find_features", description="Find chemical features in molecules.")
14
+ def find_features(input_file: str) -> dict:
15
+ """
16
+ Finds chemical features in molecules using RDKit's FeatFinderCLI.
17
+
18
+ Parameters:
19
+ input_file (str): Path to the input file containing molecular data.
20
+
21
+ Returns:
22
+ dict: A dictionary containing success, result, or error fields.
23
+ """
24
+ try:
25
+ result = FeatFinderCLI.main(input_file)
26
+ return {"success": True, "result": result, "error": None}
27
+ except Exception as e:
28
+ return {"success": False, "result": None, "error": str(e)}
29
+
30
+ @mcp.tool(name="run_tests", description="Run Python tests in the RDKit repository.")
31
+ def run_tests(test_directory: str) -> dict:
32
+ """
33
+ Runs Python tests in the RDKit repository.
34
+
35
+ Parameters:
36
+ test_directory (str): Path to the directory containing test files.
37
+
38
+ Returns:
39
+ dict: A dictionary containing success, result, or error fields.
40
+ """
41
+ try:
42
+ result = run_python_tests.main(test_directory)
43
+ return {"success": True, "result": result, "error": None}
44
+ except Exception as e:
45
+ return {"success": False, "result": None, "error": str(e)}
46
+
47
+ def create_app() -> FastMCP:
48
+ """
49
+ Creates and returns the FastMCP application instance.
50
+
51
+ Returns:
52
+ FastMCP: The FastMCP application instance.
53
+ """
54
+ return mcp
rdkit/mcp_output/requirements.txt ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ fastmcp>=0.1.0
2
+ pydantic>=2.0.0
3
+ numpy
4
+ pandas
5
+ matplotlib
6
+ scipy
7
+
8
+ # Optional Dependencies
9
+ # pillow
10
+ # pytest
11
+ # jupyter
rdkit/mcp_output/start_mcp.py ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ """
3
+ MCP Service Startup Entry
4
+ """
5
+ import sys
6
+ import os
7
+
8
+ project_root = os.path.dirname(os.path.abspath(__file__))
9
+ mcp_plugin_dir = os.path.join(project_root, "mcp_plugin")
10
+ if mcp_plugin_dir not in sys.path:
11
+ sys.path.insert(0, mcp_plugin_dir)
12
+
13
+ # Set path to source directory
14
+ source_path = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))), "source")
15
+ sys.path.insert(0, source_path)
16
+
17
+ from mcp_service import create_app
18
+
19
+ def main():
20
+ """Start FastMCP service"""
21
+ app = create_app()
22
+ # Use environment variable to configure port, default 8000
23
+ port = int(os.environ.get("MCP_PORT", "8000"))
24
+
25
+ # Choose transport mode based on environment variable
26
+ transport = os.environ.get("MCP_TRANSPORT", "stdio")
27
+ if transport == "http":
28
+ app.run(transport="http", host="0.0.0.0", port=port)
29
+ else:
30
+ # Default to STDIO mode
31
+ app.run()
32
+
33
+ if __name__ == "__main__":
34
+ main()
rdkit/mcp_output/tests_mcp/test_mcp_basic.py ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ MCP Service Basic Test
3
+ """
4
+ import sys
5
+ import os
6
+
7
+ project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
8
+ mcp_plugin_dir = os.path.join(project_root, "mcp_plugin")
9
+ if mcp_plugin_dir not in sys.path:
10
+ sys.path.insert(0, mcp_plugin_dir)
11
+
12
+ source_path = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))), "source")
13
+ sys.path.insert(0, source_path)
14
+
15
+ def test_import_mcp_service():
16
+ """Test if MCP service can be imported normally"""
17
+ try:
18
+ from mcp_service import create_app
19
+ app = create_app()
20
+ assert app is not None
21
+ print("MCP service imported successfully")
22
+ return True
23
+ except Exception as e:
24
+ print("MCP service import failed: " + str(e))
25
+ return False
26
+
27
+ def test_adapter_init():
28
+ """Test if adapter can be initialized normally"""
29
+ try:
30
+ from adapter import Adapter
31
+ adapter = Adapter()
32
+ assert adapter is not None
33
+ print("Adapter initialized successfully")
34
+ return True
35
+ except Exception as e:
36
+ print("Adapter initialization failed: " + str(e))
37
+ return False
38
+
39
+ if __name__ == "__main__":
40
+ print("Running MCP service basic test...")
41
+ test1 = test_import_mcp_service()
42
+ test2 = test_adapter_init()
43
+
44
+ if test1 and test2:
45
+ print("All basic tests passed")
46
+ sys.exit(0)
47
+ else:
48
+ print("Some tests failed")
49
+ sys.exit(1)
rdkit/mcp_output/tests_smoke/test_smoke.py ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import importlib, sys
2
+ import os
3
+
4
+ # Add current directory to Python path
5
+ sys.path.insert(0, os.getcwd())
6
+
7
+ source_dir = os.path.join(os.getcwd(), "source")
8
+ if os.path.exists(source_dir):
9
+ sys.path.insert(0, source_dir)
10
+
11
+
12
+ try:
13
+ importlib.import_module("rdkit")
14
+ print("OK - Successfully imported rdkit")
15
+ except ImportError as e:
16
+ print(f"Failed to import rdkit: {e}")
17
+ fallback_packages = []
18
+
19
+ fallback_packages = ['rdkit']
20
+
21
+ for pkg in fallback_packages:
22
+ try:
23
+ importlib.import_module(pkg)
24
+ print(f"OK - Successfully imported {pkg}")
25
+ break
26
+ except ImportError:
27
+ continue
28
+ else:
29
+ print("All import attempts failed")