LoginSignup
2
0

More than 5 years have passed since last update.

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

Last updated at Posted at 2019-01-25

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を実行すれば使える様になるみたいですが、検証はしてません。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0