Introduction
Introduction
Section titled “Introduction”FBTK (Forblaze Toolkit) is a toolkit designed to dramatically accelerate the preparation of molecular simulations for polymers and complex mixed systems. The core logic is implemented in Rust, and it seamlessly integrates with existing ecosystems such as ASE, RDKit, OpenFF, and LAMMPS through a Python interface.
Key Features
Section titled “Key Features”- High Performance: Multi-threaded execution powered by Rust. Packing systems with tens of thousands of atoms completes in seconds.
- Zero-dependency Engine: A standalone, high-speed Rust engine becomes immediately available with a simple
pip install fbtk. - Zero Configuration: No tedious environment setup, path configurations, or version conflicts with other libraries (e.g., RDKit).
- Built-in 3D Generation: 3D coordinate generation from SMILES is fully self-contained using an internal VSEPR + UFF engine, requiring no external tools.
- Smart Relaxation: Rapidly resolve atomic overlaps before MD production. The FIRE algorithm reliably prevents system collapses.
- Charge Assignment: Automatic assignment of Gasteiger partial charges. Physical information is immediately available for simulation upon SMILES-based construction or polymer generation.
- Polymer Builder: Generate polymers with controlled degree of polymerization and tacticity. Automatic end-capping (hydrogen capping) ensures physically saturated structures.
- Ecosystem Ready: Native support for direct analysis and conversion (
to_ase()) of ASE Atoms objects.
Standard Units
Section titled “Standard Units”FBTK adopts unit systems commonly used in MD simulations:
- Distance: Å (Angstrom)
- Mass: amu (Atomic mass unit)
- Density: g/cm³
- Energy: kcal/mol
- Force: kcal/mol/Å
- Time: fs (e.g., for
dtin MSD calculations)
Performance & Parallelism
Section titled “Performance & Parallelism”FBTK leverages the Rust parallel processing library Rayon to achieve high-speed multi-threaded computation. Heavy operations such as structural relaxation, RDF/MSD calculations, and neighbor list generation are automatically parallelized.
Thread Configuration
Section titled “Thread Configuration”By default, FBTK uses 4 threads to avoid interfering with other processes.
To adjust the number of threads based on your resources, set the RAYON_NUM_THREADS environment variable before running Python:
# To use 8 threadsexport RAYON_NUM_THREADS=8python your_script.pyInstallation
Section titled “Installation”Python Library
Section titled “Python Library”To use FBTK within a Python workflow:
# New installationpip install fbtk
# Update to latest version (recommended)pip install -U fbtkStandalone CLI Tools
Section titled “Standalone CLI Tools”For command-line use without Python, standalone static binaries are available for download from GitHub Releases. See Command Line Interface (CLI) for details.
Dependencies
Section titled “Dependencies”- Python 3.8+ (Supports Manylinux / macOS / Windows)
FBTK is distributed as a self-contained binary module and has no mandatory additional libraries. Since it manages its own internal logic, it will not force version changes on existing packages (like PyTorch or RDKit) or disrupt your current dependency tree.
Optional Interfacing
Section titled “Optional Interfacing”While not required, FBTK works effectively alongside the following tools for advanced workflows:
- ASE: Recommended for data I/O and visualization.
- RDKit: Useful for importing topologies from existing RDKit objects.
- OpenFF: Used for applying high-precision force fields and generating MD simulation files.