Skip to main content

High-performance molecular simulation toolkit with Python bindings

Project description

FBTK: Forblaze Toolkit

PyPI - Version Documentation

High-performance molecular analysis and building tools powered by Rust. Designed as a "Transparent Accelerator" for Python (ASE/RDKit) workflows with a smart, object-oriented interface.

Features

  • 🚀 High Performance: Core logic written in Rust with parallel processing (Rayon).
  • 🏗️ Intelligent Builder:
    • Optimized Initial Packing: Grid-based placement with uniform density.
    • Polymer Synthesis: Automatic chain generation with leaving atom support.
    • Tacticity Control: Supports Isotactic, Syndiotactic, and Atactic arrangements via center-of-mass analysis and mirroring.
    • Built-in 3D Generation: 3D coordinate generation from SMILES handled by internal VSEPR + UFF engine.
    • Fast Structural Relaxation: O(N) Cell-list optimization with the FIRE algorithm.
  • 🔍 Advanced Analysis:
    • Parallel RDF, MSD, COM (Center of Mass), Angles, Dihedrals.
    • O(N) Neighbor List search.
  • 📏 Robust Physics: Correct handling of PBC, Triclinic cells, and Minimum Image Convention (MIC).

Installation

Python Library (Recommended)

pip install fbtk

Requirements: Python 3.8+ and NumPy.

Standalone CLI (No Python Required)

For non-Python environments, pre-compiled standalone binaries for Linux, Windows, and macOS are available on the GitHub Releases page.

  • Download the archive for your platform (e.g., fbtk-cli-v0.9.1-linux-x86_64.tar.gz).
  • Requirements: None. These are self-contained binaries.

Usage

1. System Building

Build and relax a complex molecular system with just a few lines of code.

import fbtk

# 1. Setup Builder
builder = fbtk.Builder(density=0.8)
builder.add_molecule_smiles("ethanol", count=50, smiles="CCO")

# 2. Build and Relax
system = builder.build()
system.relax(steps=500)

# 3. Export to ASE
atoms = system.to_ase()
atoms.write("system.xyz")

2. RDF Analysis

Fast analysis of large trajectories using smart selection queries.

from ase.io import read
import fbtk

# Load trajectory (ASE list of Atoms)
traj = read('simulation.lammpstrj', index=':')

# Compute RDF using a simple query string
r, g_r = fbtk.compute_rdf(traj, query="O-H", r_max=10.0)

3. Command Line Interface (CLI)

FBTK provides standalone CLI tools for batch processing.

fbtk-build: Build from Recipe

# Run building and relaxation from a YAML recipe
fbtk-build --recipe recipe.yaml --relax --output system.mol2

Example recipe.yaml:

system:
  density: 0.8
  cell_shape: [20.0, 20.0, 20.0]
components:
  - name: "ethanol"
    role: "molecule"
    input:
      smiles: "CCO"
    count: 50

fbtk-analyze: Analyze Trajectory

# Compute RDF for a LAMMPS trajectory
fbtk-analyze rdf --input traj.lammpstrj --query "type 1 with type 2"

Selection Query Syntax

FBTK supports intuitive strings to select atoms for analysis:

  • Element: "O", "H", "element C"
  • Pairs (RDF): "O-H", "C - C"
  • Index Range: "index 0:100" (start:end)
  • Residue: "resname STY"

Author

Forblaze Project
Website: https://forblaze-works.com/en/

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

fbtk-0.9.6-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.1 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

fbtk-0.9.6-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.1 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARMv7l

fbtk-0.9.6-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.1 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

fbtk-0.9.6-cp38-abi3-win_amd64.whl (894.8 kB view details)

Uploaded CPython 3.8+Windows x86-64

fbtk-0.9.6-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ x86-64

fbtk-0.9.6-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ARM64

fbtk-0.9.6-cp38-abi3-macosx_11_0_arm64.whl (1.0 MB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

fbtk-0.9.6-cp38-abi3-macosx_10_12_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.8+macOS 10.12+ x86-64

File details

Details for the file fbtk-0.9.6-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for fbtk-0.9.6-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9994c2c071cbbc973bb14e075d90bf1a649bc27e2cd6b0559f30b21b5ba52964
MD5 e7a5c28db2f919775d63deb0167b1447
BLAKE2b-256 eff2396c7d1b5ac896323d1c39126d0a6d0da30ec6e7cf5a7cd52842051f2e65

See more details on using hashes here.

File details

Details for the file fbtk-0.9.6-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

  • Download URL: fbtk-0.9.6-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: PyPy, manylinux: glibc 2.17+ ARMv7l
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fbtk-0.9.6-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 6c3830544c9fc4abe91743a8eb0a546d9792e4e43eb34f7b6c04f3b7a944489c
MD5 07aee7b8ab64ad6ee048cb9c591ec0cc
BLAKE2b-256 717755048672f7c200b0d229a821b7f15e416ff59513ee19dfd1d01c0ba1eaaa

See more details on using hashes here.

File details

Details for the file fbtk-0.9.6-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for fbtk-0.9.6-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 07dc419a4e0e13272684298c5fda6683f1af410a1c40fd41766f7d9a2e256fc5
MD5 0c1da8645f0c2e9e42374d293ecd1c43
BLAKE2b-256 467a4b528e5cc9b5d96496ef3db23cfc5976b3b29a467832ffeb3f04d39f3023

See more details on using hashes here.

File details

Details for the file fbtk-0.9.6-cp38-abi3-win_amd64.whl.

File metadata

  • Download URL: fbtk-0.9.6-cp38-abi3-win_amd64.whl
  • Upload date:
  • Size: 894.8 kB
  • Tags: CPython 3.8+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.12.2

File hashes

Hashes for fbtk-0.9.6-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 c227ade230f8ae4f9449b507227a58dac7ca235f035a5bcbfcf76519a83aa0bb
MD5 1f1a2d64f7ab310c221b4289cf086c62
BLAKE2b-256 fef740c6b593a3eee5a5325971bc8b8248c50b447f3976deaa2ed4f79ba3b9d7

See more details on using hashes here.

File details

Details for the file fbtk-0.9.6-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for fbtk-0.9.6-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 784d77959d4e3e50c0037961637a8e83d10a3f1e983adc99dbc722b2143c1c34
MD5 2e1c7adf0b1d0bfdb6086e5d7453c494
BLAKE2b-256 9689915c839424d81e5f3a829d987a46286fa408d0bd78ab5d8e4c704cc083e9

See more details on using hashes here.

File details

Details for the file fbtk-0.9.6-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for fbtk-0.9.6-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 cd191cfef4eedb2413867ee3c3767dd5387be4e9cc834f91ca328d6f878ab5af
MD5 cd5c67b7486cb8cff8eb1abf778d42ca
BLAKE2b-256 d39bb0abfb42c8cb3a09f92ba752b6486cf525f0dad267698ba83cfc93132b7a

See more details on using hashes here.

File details

Details for the file fbtk-0.9.6-cp38-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fbtk-0.9.6-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4329ed262f8dbc7093233165cc65a337b5f68d17eb2dfce568ecb53d37fc8ec4
MD5 757cec65abdc06f64a2693f44e3f376f
BLAKE2b-256 15c91a4ff84ee17e8a26569a2e031a561f465125d9682f2bd801dfa76345d79b

See more details on using hashes here.

File details

Details for the file fbtk-0.9.6-cp38-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for fbtk-0.9.6-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b8a9c5867755219008c288faf50d24d4b77f6314731ba0cbc11779042afb9540
MD5 cfd2af649fce2e7fc176e77f6039a528
BLAKE2b-256 d3845e5e6788508c1d88083b557cf0f5d7e165ca8c065ad50fbcc285a5c34566

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page