sdfrust 0.5.0__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.
- sdfrust-0.5.0/.gitignore +23 -0
- sdfrust-0.5.0/CHANGELOG.md +62 -0
- sdfrust-0.5.0/Cargo.lock +1270 -0
- sdfrust-0.5.0/Cargo.toml +55 -0
- sdfrust-0.5.0/LICENSE +21 -0
- sdfrust-0.5.0/PKG-INFO +251 -0
- sdfrust-0.5.0/README.md +290 -0
- sdfrust-0.5.0/examples/basic_usage.rs +157 -0
- sdfrust-0.5.0/examples/benchmark.rs +284 -0
- sdfrust-0.5.0/examples/parse_molecules.rs +189 -0
- sdfrust-0.5.0/pyproject.toml +44 -0
- sdfrust-0.5.0/python/sdfrust/__init__.py +162 -0
- sdfrust-0.5.0/python/sdfrust/py.typed +0 -0
- sdfrust-0.5.0/sdfrust-python/.gitignore +35 -0
- sdfrust-0.5.0/sdfrust-python/Cargo.toml +26 -0
- sdfrust-0.5.0/sdfrust-python/LICENSE +21 -0
- sdfrust-0.5.0/sdfrust-python/README.md +219 -0
- sdfrust-0.5.0/sdfrust-python/examples/README.md +82 -0
- sdfrust-0.5.0/sdfrust-python/examples/basic_usage.py +531 -0
- sdfrust-0.5.0/sdfrust-python/src/atom.rs +184 -0
- sdfrust-0.5.0/sdfrust-python/src/bond.rs +487 -0
- sdfrust-0.5.0/sdfrust-python/src/error.rs +63 -0
- sdfrust-0.5.0/sdfrust-python/src/iterators.rs +273 -0
- sdfrust-0.5.0/sdfrust-python/src/lib.rs +150 -0
- sdfrust-0.5.0/sdfrust-python/src/molecule.rs +831 -0
- sdfrust-0.5.0/sdfrust-python/src/parsing.rs +543 -0
- sdfrust-0.5.0/sdfrust-python/src/writing.rs +188 -0
- sdfrust-0.5.0/sdfrust-python/tests/test_basic.py +483 -0
- sdfrust-0.5.0/sdfrust-python/tests/test_geometry.py +218 -0
- sdfrust-0.5.0/sdfrust-python/tests/test_gzip.py +257 -0
- sdfrust-0.5.0/src/atom.rs +106 -0
- sdfrust-0.5.0/src/bond.rs +164 -0
- sdfrust-0.5.0/src/collection.rs +121 -0
- sdfrust-0.5.0/src/descriptors/elements.rs +374 -0
- sdfrust-0.5.0/src/descriptors/mod.rs +42 -0
- sdfrust-0.5.0/src/descriptors/molecular.rs +276 -0
- sdfrust-0.5.0/src/descriptors/topological.rs +581 -0
- sdfrust-0.5.0/src/error.rs +59 -0
- sdfrust-0.5.0/src/geometry/distance.rs +102 -0
- sdfrust-0.5.0/src/geometry/mod.rs +241 -0
- sdfrust-0.5.0/src/geometry/rmsd.rs +161 -0
- sdfrust-0.5.0/src/geometry/transform.rs +291 -0
- sdfrust-0.5.0/src/lib.rs +482 -0
- sdfrust-0.5.0/src/molecule.rs +418 -0
- sdfrust-0.5.0/src/parser/compression.rs +124 -0
- sdfrust-0.5.0/src/parser/mod.rs +32 -0
- sdfrust-0.5.0/src/parser/mol2.rs +688 -0
- sdfrust-0.5.0/src/parser/sdf.rs +1070 -0
- sdfrust-0.5.0/src/parser/sdf_v3000.rs +1125 -0
- sdfrust-0.5.0/src/parser/xyz.rs +555 -0
- sdfrust-0.5.0/src/sgroup.rs +175 -0
- sdfrust-0.5.0/src/stereogroup.rs +92 -0
- sdfrust-0.5.0/src/writer/mod.rs +15 -0
- sdfrust-0.5.0/src/writer/mol2.rs +305 -0
- sdfrust-0.5.0/src/writer/sdf.rs +178 -0
- sdfrust-0.5.0/src/writer/sdf_v3000.rs +391 -0
sdfrust-0.5.0/.gitignore
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Generated by Cargo
|
|
2
|
+
/target/
|
|
3
|
+
|
|
4
|
+
# Cargo.lock for libraries (not binaries)
|
|
5
|
+
Cargo.lock
|
|
6
|
+
|
|
7
|
+
# IDE
|
|
8
|
+
.idea/
|
|
9
|
+
.vscode/
|
|
10
|
+
*.swp
|
|
11
|
+
*.swo
|
|
12
|
+
|
|
13
|
+
# OS
|
|
14
|
+
.DS_Store
|
|
15
|
+
Thumbs.db
|
|
16
|
+
|
|
17
|
+
# Test artifacts
|
|
18
|
+
*.tmp
|
|
19
|
+
|
|
20
|
+
# Benchmark generated data
|
|
21
|
+
benches/data/*.sdf
|
|
22
|
+
benches/comparison/.venv/
|
|
23
|
+
benches/comparison/results/
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
## [0.5.0] - 2026-02-17
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- Transparent gzip decompression for all file parsers (optional `gzip` feature)
|
|
15
|
+
- XYZ format parser with streaming support, atomic number input, and case normalization
|
|
16
|
+
- XYZ auto-detection in `parse_auto_*()` and `iter_auto_file()`
|
|
17
|
+
- Python bindings for XYZ parsing and gzip support
|
|
18
|
+
- PDBbind 2024 large-scale SDF benchmark test (27,670 files, 100% success rate, ~14k files/sec)
|
|
19
|
+
|
|
20
|
+
## [0.4.0] - 2026-01-30
|
|
21
|
+
|
|
22
|
+
### Added
|
|
23
|
+
|
|
24
|
+
- Python bindings via PyO3 (`sdfrust-python/` crate) with full API coverage
|
|
25
|
+
- NumPy integration for coordinate and atomic number arrays
|
|
26
|
+
- Streaming iterators for Python (`iter_sdf_file`, `iter_mol2_file`)
|
|
27
|
+
- Workspace configuration for multi-crate build
|
|
28
|
+
|
|
29
|
+
## [0.3.0] - 2026-01-30
|
|
30
|
+
|
|
31
|
+
### Added
|
|
32
|
+
|
|
33
|
+
- Molecular descriptors module: molecular weight, exact mass, heavy atom count, bond type counts
|
|
34
|
+
- Topological descriptors: ring count, ring atoms/bonds detection, rotatable bond count
|
|
35
|
+
- Element data table (~30 elements with IUPAC 2021 atomic weights)
|
|
36
|
+
- Convenience descriptor methods on `Molecule`
|
|
37
|
+
|
|
38
|
+
## [0.2.0] - 2025-01-29
|
|
39
|
+
|
|
40
|
+
### Added
|
|
41
|
+
|
|
42
|
+
- SDF V3000 parser and writer with stereogroups, SGroups, and collections
|
|
43
|
+
- Automatic V2000/V3000 format detection and auto-format writing
|
|
44
|
+
- MOL2 (TRIPOS) parser with streaming support
|
|
45
|
+
- Performance benchmarks (~220k mol/s, 4-7x faster than RDKit)
|
|
46
|
+
|
|
47
|
+
## [0.1.0] - 2025-01-25
|
|
48
|
+
|
|
49
|
+
### Added
|
|
50
|
+
|
|
51
|
+
- SDF V2000 parser with atom/bond/property blocks and M CHG/M ISO lines
|
|
52
|
+
- SDF V2000 writer with property preservation and multi-molecule output
|
|
53
|
+
- Core types: `Molecule`, `Atom`, `Bond`, `BondOrder`, `BondStereo`
|
|
54
|
+
- Molecule methods: `formula()`, `centroid()`, `translate()`, `neighbors()`, `element_counts()`
|
|
55
|
+
- Memory-efficient streaming iterator for large multi-molecule files
|
|
56
|
+
|
|
57
|
+
[Unreleased]: https://github.com/HFooladi/sdfrust/compare/v0.5.0...HEAD
|
|
58
|
+
[0.5.0]: https://github.com/HFooladi/sdfrust/compare/v0.4.0...v0.5.0
|
|
59
|
+
[0.4.0]: https://github.com/HFooladi/sdfrust/compare/v0.3.0...v0.4.0
|
|
60
|
+
[0.3.0]: https://github.com/HFooladi/sdfrust/compare/v0.2.0...v0.3.0
|
|
61
|
+
[0.2.0]: https://github.com/HFooladi/sdfrust/compare/v0.1.0...v0.2.0
|
|
62
|
+
[0.1.0]: https://github.com/HFooladi/sdfrust/releases/tag/v0.1.0
|