コンテンツにスキップ

事例5:タクティシティの制御(アタクチック・ポリスチレン)

事例5:タクティシティの制御(アタクチック・ポリスチレン)

Section titled “事例5:タクティシティの制御(アタクチック・ポリスチレン)”

ポリスチレン(PS)のように側鎖に嵩高いフェニル基を持つポリマーでは、その立体規則性(タクティシティ)がパッキングや物理的性質に大きく影響します。 fbtk では、Molecule.from_polymer メソッドを使用することで、アタクチック(ランダムな立体規則性)なポリマー鎖を独立した Molecule オブジェクトとして生成できます。

  • ポリマー: ポリスチレン (PS)
  • 構成:
    • 重合度 (DP):20
    • 本数:10本
    • タクティシティ: アタクチック (atactic)
  • 総原子数: 3,220
  • 初期設定密度: 0.10 g/cm³(低密度スタート)
Atactic PS Chain

Molecule.from_polymer でアタクチック鎖を作成し、低密度から緩和を開始する推奨構成です。

import fbtk
# 1. モノマーをSMILESから作成
monomer = fbtk.Molecule.from_smiles("*C(C*)c1ccccc1", name="PS")
# 2. アタクチック・ポリマー鎖の生成
# from_polymer を用いて、タクティシティを指定した単一の Molecule オブジェクトを作成します
chain = fbtk.Molecule.from_polymer(monomer, degree=20, tacticity="atactic")
# 3. Builderの初期化(低密度 0.10 を指定)
builder = fbtk.Builder(density=0.10)
# 4. 生成したポリマー鎖をシステムに追加
builder.add_molecule(chain, count=10)
# 5. システムの構築と緩和
system = builder.build()
print("Starting relaxation for Atactic Polystyrene...")
system.relax()
# 6. 結果の出力
chain.to_file("ps_atactic_chain.mol") # 生成されたアタクチック鎖単体
system.to_file("ps_atactic_cell.mol2") # 緩和後のユニットセル
print("Done.")
Atactic PS Unit Cell

低密度スタートとアタクチック設定の組み合わせにより、大規模なポリスチレン系でもスムーズに収束します。

Atoms: 3220 | Bonds: 3410
--------------------------------------------------------------------------------
| Fmax | FRMS | Total E |
Iter | (kcal/mol/Å) | (kcal/mol/Å) | (kcal/mol) | Status
--------------------------------------------------------------------------------
0 | 42578.2095 | 6442.3968 | 1422137162651.3857 |
10 | 10670.1938 | 495.5003 | 570159.9917 |
20 | 5032.0412 | 224.4168 | 340325.8947 |
...
980 | 39.2758 | 0.9008 | 38346.5101 |
990 | 775.1007 | 16.9985 | 38246.3019 |
--------------------------------------------------------------------------------
=== Optimization Finished ===
Reason: Max-Iter
Total Time: 37.916s (Avg: 37.916ms / step)
Final Energy: 38217.2511 kcal/mol
Final FRMS: 1.5753 kcal/mol/Å
Min Distance: 1.0775 Å (Atoms 1473 and 1481)
--------------------------------------------------------------------------------

Molecule.from_polymer を使用すると、主鎖の各不斉炭素に対してランダムに側鎖の向きが割り当てられた具体的な Molecule オブジェクトがメモリ上に構築されます。これを to_file で出力することで、パッキング前の単一鎖の立体構造を確認することも可能です。

側鎖がすべて同じ向きに並ぶ(アイソタクチック的な)構造に比べ、アタクチック構造は立体障害が分散されやすく、パッキング後の緩和もスムーズに進みます。今回の結果でも Min Distance1.0775 Å と、大規模系としては良好な初期構造が得られています。