#monte-carlo #command-line-tool #生物物理 #多孔粒子 #偶极子 #生物胶体

app cppm-generator

通过蒙特卡洛采样在球体上生成带电的多孔粒子

1 个不稳定版本

0.2.0 2022年4月26日

#43#monte-carlo

MIT/Apache

37KB
594

Rust DOI

CPPM 生成器

概述

这是一个单独的命令行工具,生成球形的带电多孔粒子模型 (CPPM),模拟生物胶体粒子,例如球蛋白。下面的图像显示了从 https://doi.org/10.1063/1.4928077 中取出的相互作用的 CPPM 示例。

cppm-generator 通过在球面上放置中性、正性和负性粒子来生成 CPPM,并使用 Metropolis-Hastings 蒙特卡洛采样最小化(自由)能量。

安装

$ cargo install cppm-generator

用法

默认参数生成与该出版物中表 1 的 P00 类似的各向同性、带电粒子。也可以使用 --dipole 选项强制一个目标分子偶极矩。

$ cppm-generator --help

USAGE:
    cppm-generator [OPTIONS] --file <FILE>

OPTIONS:
    -b, --bjerrum-length <BJERRUM_LENGTH>    Bjerrum length (Å) [default: 7.0]
    -h, --help                               Print help information
    -m, --minus <NUM_MINUS>                  Number of negative (-1e) particles [default: 37]
    -N <NUM_TOTAL>                           Total number of particles [default: 643]
    -o, --file <FILE>                        Output structure (.xyz or .pqr)
    -p, --plus <NUM_PLUS>                    Number of positive (+1e) particles [default: 29]
    -r, --radius <RADIUS>                    Sphere radius (Å) [default: 20.0]
    -s, --steps <STEPS>                      Number of Monte Carlo iterations [default: 10000]
    -u, --dipole <TARGET_DIPOLE_MOMENT>      Target dipole moment (Debye)
    -V, --version                            Print version information

详细信息及状态

  • 球面上的随机游走使用球坐标
  • 使用库仑/软核心势的粒子-粒子相互作用
  • 中性粒子和带电粒子的任意混合
  • 输出到 .xyz.pqr 文件
  • 命令行界面
  • 偶极矩分析
  • 外部电场诱导任意片
  • 使用谐波势约束到目标偶极矩
  • 用 Rust 编写
  • 使用 uon 进行维度分析
  • IO 错误处理
  • 单元测试
  • 日志支持

动机

除了某些科学用途外,该项目主要是 Rust 编程语言的一个入门。

依赖项

~10–18MB
~250K SLoC