featuresyrup 0.0.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- featuresyrup-0.0.1/LICENSE +22 -0
- featuresyrup-0.0.1/MANIFEST.in +7 -0
- featuresyrup-0.0.1/PKG-INFO +110 -0
- featuresyrup-0.0.1/README.md +68 -0
- featuresyrup-0.0.1/config_template.yaml +81 -0
- featuresyrup-0.0.1/environment.yml +40 -0
- featuresyrup-0.0.1/pyproject.toml +112 -0
- featuresyrup-0.0.1/setup.cfg +52 -0
- featuresyrup-0.0.1/src/featuresyrup/__init__.py +6 -0
- featuresyrup-0.0.1/src/featuresyrup/_version.py +1 -0
- featuresyrup-0.0.1/src/featuresyrup/batch_processing.py +1072 -0
- featuresyrup-0.0.1/src/featuresyrup/classes.py +1550 -0
- featuresyrup-0.0.1/src/featuresyrup/cli.py +1106 -0
- featuresyrup-0.0.1/src/featuresyrup/functions.py +2461 -0
- featuresyrup-0.0.1/src/featuresyrup/graph.py +1922 -0
- featuresyrup-0.0.1/src/featuresyrup.egg-info/PKG-INFO +110 -0
- featuresyrup-0.0.1/src/featuresyrup.egg-info/SOURCES.txt +28 -0
- featuresyrup-0.0.1/src/featuresyrup.egg-info/dependency_links.txt +1 -0
- featuresyrup-0.0.1/src/featuresyrup.egg-info/entry_points.txt +3 -0
- featuresyrup-0.0.1/src/featuresyrup.egg-info/not-zip-safe +1 -0
- featuresyrup-0.0.1/src/featuresyrup.egg-info/requires.txt +29 -0
- featuresyrup-0.0.1/src/featuresyrup.egg-info/top_level.txt +2 -0
- featuresyrup-0.0.1/src/graphpancake/__init__.py +1 -0
- featuresyrup-0.0.1/src/graphpancake/_version.py +1 -0
- featuresyrup-0.0.1/src/graphpancake/batch_processing.py +1 -0
- featuresyrup-0.0.1/src/graphpancake/classes.py +1 -0
- featuresyrup-0.0.1/src/graphpancake/cli.py +1 -0
- featuresyrup-0.0.1/src/graphpancake/functions.py +1 -0
- featuresyrup-0.0.1/src/graphpancake/graph.py +1 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
|
|
2
|
+
MIT License
|
|
3
|
+
|
|
4
|
+
Copyright (c) 2026 Sneha Sil
|
|
5
|
+
|
|
6
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
8
|
+
in the Software without restriction, including without limitation the rights
|
|
9
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
10
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
11
|
+
furnished to do so, subject to the following conditions:
|
|
12
|
+
|
|
13
|
+
The above copyright notice and this permission notice shall be included in all
|
|
14
|
+
copies or substantial portions of the Software.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
17
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
18
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
19
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
20
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
21
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
22
|
+
SOFTWARE.
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: featuresyrup
|
|
3
|
+
Version: 0.0.1
|
|
4
|
+
Summary: A catalyst-specific Python library for featurizing N-heterocyclic carbene organocatalysts, built on graphpancake
|
|
5
|
+
Home-page: https://github.com/sneha-sil/featuresyrup
|
|
6
|
+
Author: Sneha Sil
|
|
7
|
+
Author-email: Sneha Sil <snehasil2029@u.northwestern.edu>
|
|
8
|
+
License-Expression: MIT
|
|
9
|
+
Project-URL: Source, https://github.com/sneha-sil/featuresyrup
|
|
10
|
+
Project-URL: Documentation, https://github.com/sneha-sil/featuresyrup/tree/main/docs
|
|
11
|
+
Project-URL: Issues, https://github.com/sneha-sil/featuresyrup/issues
|
|
12
|
+
Classifier: Programming Language :: Python :: 3
|
|
13
|
+
Requires-Python: >=3.8
|
|
14
|
+
Description-Content-Type: text/markdown
|
|
15
|
+
License-File: LICENSE
|
|
16
|
+
Requires-Dist: pandas
|
|
17
|
+
Requires-Dist: numpy
|
|
18
|
+
Requires-Dist: torch
|
|
19
|
+
Requires-Dist: torch-geometric
|
|
20
|
+
Requires-Dist: networkx
|
|
21
|
+
Requires-Dist: plotly
|
|
22
|
+
Requires-Dist: matplotlib
|
|
23
|
+
Requires-Dist: pyyaml
|
|
24
|
+
Requires-Dist: rdkit
|
|
25
|
+
Requires-Dist: morfeus
|
|
26
|
+
Requires-Dist: dscribe
|
|
27
|
+
Requires-Dist: regex
|
|
28
|
+
Requires-Dist: tqdm
|
|
29
|
+
Requires-Dist: psutil
|
|
30
|
+
Requires-Dist: importlib-resources; python_version < "3.10"
|
|
31
|
+
Provides-Extra: test
|
|
32
|
+
Requires-Dist: pytest>=6.1.2; extra == "test"
|
|
33
|
+
Provides-Extra: docs
|
|
34
|
+
Requires-Dist: sphinx>=4.0; extra == "docs"
|
|
35
|
+
Requires-Dist: sphinx-rtd-theme; extra == "docs"
|
|
36
|
+
Requires-Dist: sphinx-autodoc-typehints; extra == "docs"
|
|
37
|
+
Requires-Dist: sphinx-design; extra == "docs"
|
|
38
|
+
Requires-Dist: sphinx-copybutton; extra == "docs"
|
|
39
|
+
Requires-Dist: myst-parser; extra == "docs"
|
|
40
|
+
Requires-Dist: shibuya; extra == "docs"
|
|
41
|
+
Dynamic: license-file
|
|
42
|
+
|
|
43
|
+
# featuresyrup
|
|
44
|
+
|
|
45
|
+
featuresyrup is a catalyst-specific modification of graphpancake (Sil 2025) designed for the featurization of N-heterocyclic carbene (NHC) organocatalysts. The additional features on top of graphpancake includes: NMR shieldings, IR intensities, FMO energies, Morfeus descriptors, ACSF, SOAP, and Fukui indices.
|
|
46
|
+
|
|
47
|
+
## Installation
|
|
48
|
+
|
|
49
|
+
### Recommended: conda environment
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
conda env create -f environment.yml
|
|
53
|
+
conda activate featuresyrup-env
|
|
54
|
+
pip install -e .
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### Pip installation
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
pip install featuresyrup
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Quick start
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
featuresyrup create-db featuresyrup.db
|
|
67
|
+
|
|
68
|
+
featuresyrup load-data \
|
|
69
|
+
--database featuresyrup.db \
|
|
70
|
+
--mol-id benzaldehyde_nhc \
|
|
71
|
+
--smiles "C1=CC=C(C=C1)C[NH]C2=CC=CC=C2" \
|
|
72
|
+
--xyz-file benzaldehyde.xyz \
|
|
73
|
+
--shermo-output benzaldehyde_shermo.out \
|
|
74
|
+
--neutral-output benzaldehyde_neutral.out \
|
|
75
|
+
--cationic-output benzaldehyde_cation.out \
|
|
76
|
+
--anionic-output benzaldehyde_anion.out \
|
|
77
|
+
--neutral-nbo benzaldehyde_neutral_nbo.out \
|
|
78
|
+
--cationic-nbo benzaldehyde_cation_nbo.out \
|
|
79
|
+
--anionic-nbo benzaldehyde_anion_nbo.out \
|
|
80
|
+
--nmr-output benzaldehyde_nmr.out \
|
|
81
|
+
--IR-output benzaldehyde_ir.out \
|
|
82
|
+
--dipole-polarizability-output benzaldehyde_dipole.out \
|
|
83
|
+
--homo-lumo-output benzaldehyde_homo_lumo.out
|
|
84
|
+
|
|
85
|
+
featuresyrup query --database featuresyrup.db
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Batch processing uses the same catalyst contract:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
python -m featuresyrup.batch_processing --config config.yaml
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Documentation
|
|
95
|
+
|
|
96
|
+
The full user guide and API reference live in the docs folder and are built with Sphinx. The documentation is aligned with the catalyst-only pipeline used by the package.
|
|
97
|
+
|
|
98
|
+
## Dependencies to cite
|
|
99
|
+
|
|
100
|
+
- Sil, S., Maskeri, M. A., and Scheidt, K. A. graphpancake: A Python package for representing organic molecules as molecular graphs utilizing electronic structure theory. J. Cheminform. 18, 61 (2026). DOI: 10.5281/zenodo.17553385
|
|
101
|
+
- Jorner, K. morfeus: a Python package for calculating molecular features. Project documentation: https://github.com/digital-chemistry-laboratory/morfeus
|
|
102
|
+
- Himanen, L., Jäger, M. O. J., Vatanen, T., Eriksson, O., and Fellowes, C. DScribe: Library of descriptors for machine learning in materials science. Comput. Phys. Commun. 247, 106949 (2020). DOI: 10.1016/j.cpc.2019.106949
|
|
103
|
+
- Neese, F. et al. The ORCA quantum chemistry program package. J. Chem. Phys. 2020, 152, 224108
|
|
104
|
+
- Nikolaienko et al. JANPA: an open source cross-platform implementation of the Natural Population Analysis on the Java platform, Computational and Theoretical Chemistry 2014, 1050, 15-22, DOI: 10.1016/j.comptc.2014.10.002, http://janpa.sourceforge.net
|
|
105
|
+
- Glendening, E. D., Landis, C. R., Weinhold, F. NBO 7.0: New vistas in localized and delocalized chemical bonding theory. Journal of Computational Chemistry 2019, 40 (25), 2234-2241. https://doi.org/10.1002/jcc.25873
|
|
106
|
+
- Tian, L., Qinxue, C., Shermo: A general code for calculating molecular thermodynamic properties, Comput. Theor. Chem. 2021, 1200, 113249 DOI: 10.1016/j.comptc.2021.113249
|
|
107
|
+
|
|
108
|
+
## License
|
|
109
|
+
|
|
110
|
+
MIT License. See [LICENSE](LICENSE) for details.
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# featuresyrup
|
|
2
|
+
|
|
3
|
+
featuresyrup is a catalyst-specific modification of graphpancake (Sil 2025) designed for the featurization of N-heterocyclic carbene (NHC) organocatalysts. The additional features on top of graphpancake includes: NMR shieldings, IR intensities, FMO energies, Morfeus descriptors, ACSF, SOAP, and Fukui indices.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
### Recommended: conda environment
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
conda env create -f environment.yml
|
|
11
|
+
conda activate featuresyrup-env
|
|
12
|
+
pip install -e .
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
### Pip installation
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
pip install featuresyrup
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Quick start
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
featuresyrup create-db featuresyrup.db
|
|
25
|
+
|
|
26
|
+
featuresyrup load-data \
|
|
27
|
+
--database featuresyrup.db \
|
|
28
|
+
--mol-id benzaldehyde_nhc \
|
|
29
|
+
--smiles "C1=CC=C(C=C1)C[NH]C2=CC=CC=C2" \
|
|
30
|
+
--xyz-file benzaldehyde.xyz \
|
|
31
|
+
--shermo-output benzaldehyde_shermo.out \
|
|
32
|
+
--neutral-output benzaldehyde_neutral.out \
|
|
33
|
+
--cationic-output benzaldehyde_cation.out \
|
|
34
|
+
--anionic-output benzaldehyde_anion.out \
|
|
35
|
+
--neutral-nbo benzaldehyde_neutral_nbo.out \
|
|
36
|
+
--cationic-nbo benzaldehyde_cation_nbo.out \
|
|
37
|
+
--anionic-nbo benzaldehyde_anion_nbo.out \
|
|
38
|
+
--nmr-output benzaldehyde_nmr.out \
|
|
39
|
+
--IR-output benzaldehyde_ir.out \
|
|
40
|
+
--dipole-polarizability-output benzaldehyde_dipole.out \
|
|
41
|
+
--homo-lumo-output benzaldehyde_homo_lumo.out
|
|
42
|
+
|
|
43
|
+
featuresyrup query --database featuresyrup.db
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Batch processing uses the same catalyst contract:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
python -m featuresyrup.batch_processing --config config.yaml
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Documentation
|
|
53
|
+
|
|
54
|
+
The full user guide and API reference live in the docs folder and are built with Sphinx. The documentation is aligned with the catalyst-only pipeline used by the package.
|
|
55
|
+
|
|
56
|
+
## Dependencies to cite
|
|
57
|
+
|
|
58
|
+
- Sil, S., Maskeri, M. A., and Scheidt, K. A. graphpancake: A Python package for representing organic molecules as molecular graphs utilizing electronic structure theory. J. Cheminform. 18, 61 (2026). DOI: 10.5281/zenodo.17553385
|
|
59
|
+
- Jorner, K. morfeus: a Python package for calculating molecular features. Project documentation: https://github.com/digital-chemistry-laboratory/morfeus
|
|
60
|
+
- Himanen, L., Jäger, M. O. J., Vatanen, T., Eriksson, O., and Fellowes, C. DScribe: Library of descriptors for machine learning in materials science. Comput. Phys. Commun. 247, 106949 (2020). DOI: 10.1016/j.cpc.2019.106949
|
|
61
|
+
- Neese, F. et al. The ORCA quantum chemistry program package. J. Chem. Phys. 2020, 152, 224108
|
|
62
|
+
- Nikolaienko et al. JANPA: an open source cross-platform implementation of the Natural Population Analysis on the Java platform, Computational and Theoretical Chemistry 2014, 1050, 15-22, DOI: 10.1016/j.comptc.2014.10.002, http://janpa.sourceforge.net
|
|
63
|
+
- Glendening, E. D., Landis, C. R., Weinhold, F. NBO 7.0: New vistas in localized and delocalized chemical bonding theory. Journal of Computational Chemistry 2019, 40 (25), 2234-2241. https://doi.org/10.1002/jcc.25873
|
|
64
|
+
- Tian, L., Qinxue, C., Shermo: A general code for calculating molecular thermodynamic properties, Comput. Theor. Chem. 2021, 1200, 113249 DOI: 10.1016/j.comptc.2021.113249
|
|
65
|
+
|
|
66
|
+
## License
|
|
67
|
+
|
|
68
|
+
MIT License. See [LICENSE](LICENSE) for details.
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# featuresyrup configuration template for batch processing
|
|
2
|
+
#
|
|
3
|
+
# Copy this file and customize the paths for your data structure.
|
|
4
|
+
# Save as config.yaml and use with: python -m featuresyrup.batch_processing --config config.yaml
|
|
5
|
+
|
|
6
|
+
data_paths:
|
|
7
|
+
# Option 1: Individual directories (set archive_file to null if using this)
|
|
8
|
+
base_dir: null # "/path/to/your/molecular/data"
|
|
9
|
+
xyz_dir: null # "/path/to/your/molecular/data/xyz_files"
|
|
10
|
+
shermo_dir: null # "/path/to/your/molecular/data/shermo_outputs"
|
|
11
|
+
janpa_dir: null # "/path/to/your/molecular/data/janpa_outputs"
|
|
12
|
+
nbo_dir: null # "/path/to/your/molecular/data/nbo_outputs"
|
|
13
|
+
neutral_output_dir: null # "/path/to/your/molecular/data/neutral_orca_outputs"
|
|
14
|
+
cationic_output_dir: null # "/path/to/your/molecular/data/cationic_orca_outputs"
|
|
15
|
+
anionic_output_dir: null # "/path/to/your/molecular/data/anionic_orca_outputs"
|
|
16
|
+
neutral_nbo_dir: null # "/path/to/your/molecular/data/neutral_nbo_outputs"
|
|
17
|
+
cationic_nbo_dir: null # "/path/to/your/molecular/data/cationic_nbo_outputs"
|
|
18
|
+
anionic_nbo_dir: null # "/path/to/your/molecular/data/anionic_nbo_outputs"
|
|
19
|
+
nmr_dir: null # "/path/to/your/molecular/data/nmr_outputs"
|
|
20
|
+
IR_dir: null # "/path/to/your/molecular/data/ir_outputs"
|
|
21
|
+
dipole_polarizability_dir: null # "/path/to/your/molecular/data/dipole_polarizability_outputs"
|
|
22
|
+
homo_lumo_dir: null # "/path/to/your/molecular/data/homo_lumo_outputs"
|
|
23
|
+
|
|
24
|
+
# Option 2: Compressed archive containing all data (set directories to null if using this)
|
|
25
|
+
archive_file: /home/uvx4187/featuresyrup_data/SS-07-07_data.tar.gz # "/path/to/your/data.tar.gz"
|
|
26
|
+
|
|
27
|
+
file_patterns:
|
|
28
|
+
# IMPORTANT: featuresyrup expects the full catalyst input set.
|
|
29
|
+
# Matching files to your molecular identifier, customize each pattern as necessary.
|
|
30
|
+
# Use {mol_id} as placeholder for the molecule identifier
|
|
31
|
+
xyz_pattern: "{mol_id}_geom.xyz" # e.g., mol_001_geom.xyz
|
|
32
|
+
shermo_pattern: "{mol_id}_shermo.out" # e.g., mol_001_shermo.out
|
|
33
|
+
janpa_pattern: "{mol_id}_wft.JANPA" # e.g., mol_001_wft.JANPA
|
|
34
|
+
nbo_pattern: "{mol_id}_nbo.out" # e.g., mol_001_nbo.out
|
|
35
|
+
neutral_output_pattern: "{mol_id}_neutral.out" # e.g., mol_001_neutral.out
|
|
36
|
+
cationic_output_pattern: "{mol_id}_cation.out" # e.g., mol_001_cation.out
|
|
37
|
+
anionic_output_pattern: "{mol_id}_anion.out" # e.g., mol_001_anion.out
|
|
38
|
+
neutral_nbo_pattern: "{mol_id}_neutral_nbo.out" # e.g., mol_001_neutral_nbo.out
|
|
39
|
+
cationic_nbo_pattern: "{mol_id}_cation_nbo.out" # e.g., mol_001_cation_nbo.out
|
|
40
|
+
anionic_nbo_pattern: "{mol_id}_anion_nbo.out" # e.g., mol_001_anion_nbo.out
|
|
41
|
+
nmr_pattern: "{mol_id}_nmr.out" # e.g., mol_001_nmr.out
|
|
42
|
+
IR_pattern: "{mol_id}_ir.out" # e.g., mol_001_ir.out
|
|
43
|
+
dipole_polarizability_pattern: "{mol_id}_dipole.out" # e.g., mol_001_dipole.out
|
|
44
|
+
homo_lumo_pattern: "{mol_id}_homo_lumo.out" # e.g., mol_001_homo_lumo.out
|
|
45
|
+
|
|
46
|
+
# CSV file containing molecular identifiers, SMILES strings, and miscellaneous properties
|
|
47
|
+
data_file: "/home/uvx4187/featuresyrup_data/SS-07-07_data.csv"
|
|
48
|
+
|
|
49
|
+
labels_file: "/home/uvx4187/featuresyrup_data/SS-07-07_labels.csv" # CSV file with labels corresponding to rows in the data csv file (can be the same as the data_file)
|
|
50
|
+
|
|
51
|
+
labels_config:
|
|
52
|
+
# Column names in your labels CSV file
|
|
53
|
+
id_column: "mol_id" # Column containing unique molecule identifiers, taken from data csv
|
|
54
|
+
smiles_column: "SMILES" # Column containing SMILES strings, taken from data csv
|
|
55
|
+
labels_column: "logP" # Column containing target property for regression/classification, taken from labels csv
|
|
56
|
+
|
|
57
|
+
settings:
|
|
58
|
+
max_workers: 16 # Number of parallel workers (setting this too high will lock the database!)
|
|
59
|
+
batch_size: 1000 # Molecules processed per batch
|
|
60
|
+
|
|
61
|
+
memory:
|
|
62
|
+
clear_cache_frequency: 1000 # Clear file cache every N molecules
|
|
63
|
+
max_memory_usage_gb: 16.0 # Approximate memory limit (GB)
|
|
64
|
+
|
|
65
|
+
cleanup:
|
|
66
|
+
remove_temp_files: true # Remove temporary extraction directory after processing
|
|
67
|
+
|
|
68
|
+
output:
|
|
69
|
+
database_name: "SS-07-07_QM" # Whether to overwrite existing database
|
|
70
|
+
export_ml_features: true # Export a csv file of ML features
|
|
71
|
+
ml_export_dir: "/home/uvx4187/featuresyrup_data" # Directory for ML feature exports
|
|
72
|
+
|
|
73
|
+
error_handling:
|
|
74
|
+
continue_on_error: true # Continue processing if some molecules fail
|
|
75
|
+
save_error_log: true # Save failed molecules to JSON file
|
|
76
|
+
max_errors: 1000 # Stop processing after this many errors
|
|
77
|
+
|
|
78
|
+
logging:
|
|
79
|
+
level: "INFO" # DEBUG, INFO, WARNING, ERROR
|
|
80
|
+
save_to_file: true # Save logs to file
|
|
81
|
+
log_file: "SS-07-07_batch_processing.log" # Log file name
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
name: featuresyrup-env
|
|
2
|
+
channels:
|
|
3
|
+
- conda-forge
|
|
4
|
+
- defaults
|
|
5
|
+
dependencies:
|
|
6
|
+
# Base Python environment
|
|
7
|
+
- python>=3.8
|
|
8
|
+
- pip
|
|
9
|
+
|
|
10
|
+
# Core dependencies (conda-forge when possible for better compatibility)
|
|
11
|
+
- pandas
|
|
12
|
+
- numpy
|
|
13
|
+
- rdkit
|
|
14
|
+
- networkx
|
|
15
|
+
- matplotlib
|
|
16
|
+
- pyyaml
|
|
17
|
+
- tqdm
|
|
18
|
+
- psutil
|
|
19
|
+
- regex
|
|
20
|
+
- plotly
|
|
21
|
+
- morfeus
|
|
22
|
+
- dscribe
|
|
23
|
+
|
|
24
|
+
# PyTorch ecosystem (conda-forge)
|
|
25
|
+
- pytorch
|
|
26
|
+
- pyg # PyTorch Geometric
|
|
27
|
+
|
|
28
|
+
# Database and file handling
|
|
29
|
+
- sqlite # For database operations (sqlite3 module uses this)
|
|
30
|
+
|
|
31
|
+
# Python version specific
|
|
32
|
+
- importlib-resources # Only needed for Python <3.10
|
|
33
|
+
|
|
34
|
+
# Development and build tools
|
|
35
|
+
- setuptools
|
|
36
|
+
- wheel
|
|
37
|
+
|
|
38
|
+
# Install featuresyrup from the local checkout via pip
|
|
39
|
+
- pip:
|
|
40
|
+
- -e .
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=61.0"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
# Self-descriptive entries which should always be present
|
|
6
|
+
# https://packaging.python.org/en/latest/specifications/declaring-project-metadata/
|
|
7
|
+
[project]
|
|
8
|
+
name = "featuresyrup"
|
|
9
|
+
description = "A catalyst-specific Python library for featurizing N-heterocyclic carbene organocatalysts, built on graphpancake"
|
|
10
|
+
version = "0.0.1"
|
|
11
|
+
readme = "README.md"
|
|
12
|
+
authors = [
|
|
13
|
+
{ name = "Sneha Sil", email = "snehasil2029@u.northwestern.edu" }
|
|
14
|
+
]
|
|
15
|
+
license = "MIT"
|
|
16
|
+
license-files = ["LICENSE"]
|
|
17
|
+
# See https://pypi.org/classifiers/
|
|
18
|
+
classifiers = [
|
|
19
|
+
"Programming Language :: Python :: 3",
|
|
20
|
+
]
|
|
21
|
+
requires-python = ">=3.8"
|
|
22
|
+
dependencies = [
|
|
23
|
+
"pandas",
|
|
24
|
+
"numpy",
|
|
25
|
+
"torch",
|
|
26
|
+
"torch-geometric",
|
|
27
|
+
"networkx",
|
|
28
|
+
"plotly",
|
|
29
|
+
"matplotlib",
|
|
30
|
+
"pyyaml",
|
|
31
|
+
"rdkit",
|
|
32
|
+
"morfeus",
|
|
33
|
+
"dscribe",
|
|
34
|
+
"regex",
|
|
35
|
+
"tqdm",
|
|
36
|
+
"psutil",
|
|
37
|
+
"importlib-resources; python_version<'3.10'",
|
|
38
|
+
]
|
|
39
|
+
|
|
40
|
+
[project.urls]
|
|
41
|
+
Source = "https://github.com/sneha-sil/featuresyrup"
|
|
42
|
+
Documentation = "https://github.com/sneha-sil/featuresyrup/tree/main/docs"
|
|
43
|
+
Issues = "https://github.com/sneha-sil/featuresyrup/issues"
|
|
44
|
+
|
|
45
|
+
[project.scripts]
|
|
46
|
+
featuresyrup = "featuresyrup.cli:main"
|
|
47
|
+
graphpancake = "featuresyrup.cli:main"
|
|
48
|
+
|
|
49
|
+
[project.optional-dependencies]
|
|
50
|
+
test = [
|
|
51
|
+
"pytest>=6.1.2",
|
|
52
|
+
]
|
|
53
|
+
docs = [
|
|
54
|
+
"sphinx>=4.0",
|
|
55
|
+
"sphinx-rtd-theme",
|
|
56
|
+
"sphinx-autodoc-typehints",
|
|
57
|
+
"sphinx-design",
|
|
58
|
+
"sphinx-copybutton",
|
|
59
|
+
"myst-parser",
|
|
60
|
+
"shibuya",
|
|
61
|
+
]
|
|
62
|
+
|
|
63
|
+
[tool.setuptools]
|
|
64
|
+
# This subkey is a beta stage development and keys may change in the future, see https://setuptools.pypa.io/en/latest/userguide/pyproject_config.html for more details
|
|
65
|
+
#
|
|
66
|
+
# As of version 0.971, mypy does not support type checking of installed zipped
|
|
67
|
+
# packages (because it does not actually import the Python packages).
|
|
68
|
+
# We declare the package not-zip-safe so that our type hints are also available
|
|
69
|
+
# when checking client code that uses our (installed) package.
|
|
70
|
+
# Ref:
|
|
71
|
+
# https://mypy.readthedocs.io/en/stable/installed_packages.html?highlight=zip#using-installed-packages-with-mypy-pep-561
|
|
72
|
+
zip-safe = false
|
|
73
|
+
# Let setuptools discover the package in the current directory,
|
|
74
|
+
# but be explicit about non-Python files.
|
|
75
|
+
# See also:
|
|
76
|
+
# https://setuptools.pypa.io/en/latest/userguide/pyproject_config.html#setuptools-specific-configuration
|
|
77
|
+
# Note that behavior is currently evolving with respect to how to interpret the
|
|
78
|
+
# "data" and "tests" subdirectories. As of setuptools 63, both are automatically
|
|
79
|
+
# included if namespaces is true (default), even if the package is named explicitly
|
|
80
|
+
# (instead of using 'find'). With 'find', the 'tests' subpackage is discovered
|
|
81
|
+
# recursively because of its __init__.py file, but the data subdirectory is excluded
|
|
82
|
+
# with include-package-data = false and namespaces = false.
|
|
83
|
+
|
|
84
|
+
include-package-data = false
|
|
85
|
+
[tool.setuptools.packages.find]
|
|
86
|
+
namespaces = false
|
|
87
|
+
where = ["src"]
|
|
88
|
+
|
|
89
|
+
# Ref https://setuptools.pypa.io/en/latest/userguide/datafiles.html#package-data
|
|
90
|
+
[tool.setuptools.package-data]
|
|
91
|
+
|
|
92
|
+
featuresyrup = [
|
|
93
|
+
"py.typed"
|
|
94
|
+
]
|
|
95
|
+
|
|
96
|
+
[tool.versioningit]
|
|
97
|
+
default-version = "1+unknown"
|
|
98
|
+
|
|
99
|
+
[tool.versioningit.format]
|
|
100
|
+
distance = "{base_version}+{distance}.{vcs}{rev}"
|
|
101
|
+
dirty = "{base_version}+{distance}.{vcs}{rev}.dirty"
|
|
102
|
+
distance-dirty = "{base_version}+{distance}.{vcs}{rev}.dirty"
|
|
103
|
+
|
|
104
|
+
[tool.versioningit.vcs]
|
|
105
|
+
# The method key:
|
|
106
|
+
method = "git" # <- The method name
|
|
107
|
+
# Parameters to pass to the method:
|
|
108
|
+
match = ["*"]
|
|
109
|
+
default-tag = "1.0.0"
|
|
110
|
+
|
|
111
|
+
[tool.versioningit.write]
|
|
112
|
+
file = "src/featuresyrup/_version.py"
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
[metadata]
|
|
2
|
+
name = featuresyrup
|
|
3
|
+
version = 0.0.1
|
|
4
|
+
description = A catalyst-specific Python library for featurizing N-heterocyclic carbene organocatalysts, built on graphpancake.
|
|
5
|
+
author = Sneha Sil
|
|
6
|
+
author_email = snehasil2029@u.northwestern.edu
|
|
7
|
+
license = MIT
|
|
8
|
+
long_description = file: README.md
|
|
9
|
+
long_description_content_type = text/markdown
|
|
10
|
+
url = https://github.com/sneha-sil/featuresyrup
|
|
11
|
+
|
|
12
|
+
[options]
|
|
13
|
+
packages = find:
|
|
14
|
+
package_dir =
|
|
15
|
+
= src
|
|
16
|
+
python_requires = >=3.8
|
|
17
|
+
install_requires =
|
|
18
|
+
pandas
|
|
19
|
+
numpy
|
|
20
|
+
torch
|
|
21
|
+
torch-geometric
|
|
22
|
+
networkx
|
|
23
|
+
plotly
|
|
24
|
+
matplotlib
|
|
25
|
+
morfeus
|
|
26
|
+
dscribe
|
|
27
|
+
qmllib
|
|
28
|
+
importlib-resources; python_version<'3.10'
|
|
29
|
+
|
|
30
|
+
[options.package_data]
|
|
31
|
+
featuresyrup = data/*.dat
|
|
32
|
+
|
|
33
|
+
[coverage:run]
|
|
34
|
+
omit =
|
|
35
|
+
*/tests/*
|
|
36
|
+
src/featuresyrup/_version.py
|
|
37
|
+
|
|
38
|
+
[yapf]
|
|
39
|
+
COLUMN_LIMIT = 119
|
|
40
|
+
INDENT_WIDTH = 4
|
|
41
|
+
USE_TABS = False
|
|
42
|
+
|
|
43
|
+
[flake8]
|
|
44
|
+
max-line-length = 119
|
|
45
|
+
|
|
46
|
+
[aliases]
|
|
47
|
+
test = pytest
|
|
48
|
+
|
|
49
|
+
[egg_info]
|
|
50
|
+
tag_build =
|
|
51
|
+
tag_date = 0
|
|
52
|
+
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"""FeatureSyrup: catalyst-focused molecular feature extraction and graph export."""
|
|
2
|
+
|
|
3
|
+
from ._version import __version__
|
|
4
|
+
from .classes import DictData, Edge, GraphInfo, Node, Targets
|
|
5
|
+
from .functions import *
|
|
6
|
+
from .graph import Graph, GraphDatabase, MolecularGraph
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "1.0.0+18.g9938c35.dirty"
|