chemoinformatics
zeo++

ゼオライト系の構造解析アプリzeo++の使い方解説とスクリプトかいた


zeo++とは

http://www.maciejharanczyk.info/Zeopp/examples.html

こちらのサイトにあります。主にゼオライトなどの多孔質物質の


  • 穴のサイズ(入り口付近と真中付近)

  • とあるサイズの球(プルーブ)が到達可能な表面積

  • 空隙率

bbbbb.PNG

などをモンテカルロシミュレーションを用いて計算してくれます。


インストール方法

MacとLinuxであれば素直にイントールでき、windowsであればcygwinで構築するのがいいみたいです。

今回はMacでのみインストールを検証しています。

まずはこちらのサイトにアクセスします。

aaaaa.PNG


  1. まず最初にメアドを登録する。The registration form is available here. となっているhereの部分をクリックすると下のフォームが出るので、記入するとメールが届きそちらにpasswordなどが書いてます。
    bbbbb.PNG

  2. download hereと書いてある部分をクリックするとidとパスワードを聞かれるのでメールに書いてあるものを記入します。

  3. インストール手段に従ってインストールします。大まなか流れとしては解凍したあとにvoroというフォルダに移動してmakeコマンドでmakeします。(zeo++はvoroに依存している)。その後にもとのディレクトリでzeo++自体をmakeします。長い辛抱のあと、./networkが使えるようになります。


使い方

zeo++のディレクトリ下でコマンドを実行します。pathを通せるのかもしれませんが、ハマったのでpathは通しませんでした。


対応inputファイル


  • CSSR

  • CUC

  • V1

  • CIF

  • ARC


用語説明


  • probe 到達可能な表面積を計算するのに使う。探査機という日本語訳のとおり、どの程度のサイズの球体が到達可能かという文脈で使われる。

  • channel ゼオライトなどの分子間の空いた空間のこと。ここを吸着物質が通ることから運河という意味をあてたのかも?

  • void なにもない空間


穴の大きさを知りたい

-haオプションはhigh accuracyという意味で、このオプションを付けると時間はかかりますが正確な値を出してくれます。

-resオプションをつけると穴のサイズを出してくれます。

./network -ha -res output_file.res input_structure.cssr

出力ファイル


outputfile.res

 EDI.res    4.89082 3.03868  4.81969


値のそれぞれの意味は 下の図のDi Df Difを意味します。

spheres.png


到達可能な表面積を知りたい

-saオプションをつけると穴のサイズを出してくれます。プルーブのサイズとチャンネルのサイズは一致させるとよいと公式サイトには書いてました。サンプル数はモンテカルロシミュレーションのサンプル数です。

構文

./network -sa chan_radius probe_radius num_samples outputfile.sa input_structure.cssr

./network -ha -sa 1.2 1.2 2000 EDI.cssr

出力ファイル


outputfile.sa

@ EDI.sa Unitcell_volume: 307.484   Density: 1.62239   

ASA_A^2: 60.7713 ASA_m^2/cm^3: 1976.4 ASA_m^2/g: 1218.21

NASA_A^2: 0 NASA_m^2/cm^3: 0 NASA_m^2/g: 0


asaが到達可能表面積

nasaが到達不可能表面積

を表す。


シェルスクリプトを用いて自動化

あまりシェルスクリプトを書いたことがないので稚拙なものですがこんな感じになりました。


#/bin/bash

CIF_DIR="ここにcifが入ったディレクトリを指定"
# ディレクトリのファイル数
count=`ls -U1 $CIF_DIR | wc -l`
# forで回すよう
i=0

for cif in $CIF_DIR/*; do
i=$((++i))
# 標準出力は捨て、errorはerror.logに追記 (tail -f error.logなどで確認)
# 穴のサイズ計算
./network -res "$HOME/cosmos/`basename $cif .cif`.res" $cif 1>> /dev/null 2>> "$HOME/cosmos/error.log"
# 表面積計算
./network -sa 1.5 1.5 2000 "$HOME/cosmos/`basename $cif .cif`.sa" $cif 1>> /dev/null 2>>"$HOME/cosmos/error.log"
# 進捗を%表示
printf "%5s%%\r" $((i*100/count))
done


python(cython) wrapperもあるみたい

ソースを除くとcython wrapperもあります。そちらのconfigファイルをいじってvoroのディレクトリを調整したのちsetup.pyを実行すれば使える様になるみたいですが、検証はしてません。