結晶構造の検索GUI版(2017/05/26作成)

COD_search.png

概要

  • 結晶構造を鉱物名や化学組成で検索するプログラムを置いてます。このプログラムは、フリーの結晶構造データベースCODから鉱物名、化学組成等を抽出したリスト(添付)を検索し、そのcifファイルをダウンロードして、Vestaで表示させるものです。構造データベース自体は付属してません。
  • 最近のFox(実空間構造解析ソフト)にCODの検索機能が付きました。検索した構造をクリックするとCrystaslのところに構造データが入ります。

必要要件

  • Mac版とWindows版がありますが、Windows版はcurlコマンドをダウンロードする必要があります。私はWindows PCは計測でしか使わないので、手元のWin7でしか試してません。
  • cifファイルをCODサイトからダウンロードするために実行時にインターネット環境が必要です。
  • 結晶構造を表示するプログラムVestaがインストールされている必要があります。ないと検索したcifファイルをダウンロードするだけとなります。
  • Jedit(Macのeditor有償)があるとダウンロードされたcifファイルが自動でオープンします(チェックを入れた場合)。
  • Windows版ではそれ以外に:
    • curlのインストールが必要
    • vc_redist.X64.exeのインストール(エラーが出るときだけ)

インストール Mac版

  • こちらからZIPファイルをダウンロードしてください。解凍後は適当なディレクトリーに移動させてください。アプリケーション(cod_search.app)とデータファイル(cod_list.txt)は同じディレクトリーにいる必要があります。なお、cod_list.txtについては、CODデータベースが常にupdateしている関係上、適当な間隔でupdateしてますので、それ単体はここからダウンロードしてください。

インストール Windows版

  • こちらからZIPファイルをダウンロードしてください。解凍後は適当なディレクトリーに移動させてください。アプリケーション(cod_search.exe),ライブラリとデータファイル(cod_list.txt)は同じディレクトリーにいる必要があります。
  • curlはここからインストールできます。私はWin32 -GenericのWin32.zipをダウンロードしました(win64がうまく動作しなかったので)。解凍して、C:\Program Filesにcurlフォルダーを作り、その中にさらにbinファルダーを作り、そこに本体のcurlを入れる。プログラム中でC:\Program Files\curl\bin\curlと指定しているので、それ以外のところに入れても正常に動作しない。
  • api-ms-win...というエラーが出るときは、vc_redist.X64.exeをインストールする必要があります。私がテストで使ったPCではこのエラーが出ました。これはGoogleで検索すると、MicrosoftのVisual C++の再頒布可能パッケージのサイトが出てくるので、そこからインストールすれば解決します。
  • また、Vestaはプログラム内でパスをC:\Program Files (x86)\VESTA-win64\VESTA.exeと指定しているので、Program Files (x86)内のVESTA-win64フォルダーに本体を入れてください。

使用方法

  • アプリケーションをダブルクリックします。
  • 鉱物名で検索するときはMineral nameのフィールドに鉱物名を入れて(上図の例ではcoesite)、リターンキーを押すか、Searchボタンをクリックします。隣のCaseは大文字小文字の区別で、チェックしているとCaseを区別して、チェックなしだとCaseを区別せずに検索します。ヒットしたら、その下のListboxにリストが表示されます。
  • 化学式での検索は「Mg2 Si O4」のように元素名+数を使ってCompositionのフィールドに入力します。各項目はスペースで分けて入力します。
  • 検索されたリストの見たい行でダブルクリックをすると、そのcifファイルがダウンロードされて(ネット環境により少し時間がかかる)、Vestaに表示されます。Jeditにチェックした場合には、Jeditでcifファイルの内容が表示されます(Mac版)。
  • 2つ検索のフィールドがありますが、検索されるのは最後に変更した方となります。

注意

  • cod_list.txtは適宜更新してます。こちらからダウンロードできます。ブラウザーに表示された場合は、そのページをcod_list.txtとして、セーブしてください。
  • Windows版ではJeditは動きません。なお、cifファイルは行末がunix形式なので、Wordpadではうまく表示できません。
  • H, Cなど単純な検索ワードで検索すると、膨大な有機物リストが出てくるので、かなり元素を指定して、Exactをチェックして検索した方がいいと思います(配列エラーで落ちるはず)。有機結晶については検索方法を考えているところです。
  • 鉱物で沢山データが出てくる1つの理由は高温や高圧下での構造データが結構あるからで、常温常圧のデータが欲しい時はcifファイルを覗いて測定条件を確認する必要があります。
  • 高圧鉱物の名前は比較的最近付いたものが多いので、例えばbridgemanite, lingunite, libermanniteなどは鉱物名の検索では出てこないか、数が少ないはずです。しかしデータは実は沢山収録されています。そのような場合はあきらめずに化学組成から探してください。
  • XojoでWindowsのシェルを使う時のメモ:
    • Program Filesなど空白を含む文字列を渡すところが厄介。Shell.Executeを使うとシェルコマンドを渡せるが、空白を含むと" "で囲むだけではうまくいかない。結局"" ""とダブルで使う必要があるが、これだとコンパイル時にエラーとなる。仕方ないので以下のようにした。
      Dim Sh As New Shell
      Dim s as string
      ' gCifFile contains a cif file name (string)
      s = chr(34) + "C:\Program Files\curl\bin\curl" + chr(34) + " -s -O http://www.crystallography.net/cod/" + gCifFile
      Sh.Execute( s ) ' get cif file by curl command
      s = chr(34) + "C:\Program Files (x86)\VESTA-win64\VESTA.exe" + chr(34) + " " + gCifFile
      Sh.Execute( s )
    • なお、今回Mac, Windowsで上記のシェルに渡すコマンドを変える必要があるので、何を使っているかをTargetMacOS, Targetwindowsでチェックして、切り分けた。これらは論理値を返す。

トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-05-27 (土) 10:26:28 (178d)