1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

有機化合物の分子構造図 を書けるプログラムchemtoolを使えるようになるまで

Last updated at Posted at 2018-12-11

Macbookに有機化合物の分子構造図 を書けるプログラムchemtoolをインストールしたかった。
4年前には、Macminiにインストールしているのだがその時のメモが見つからないので、一から再度インストールしてみた。
(MacOS10.15(Catalina)ではDockerを使うことに、結果としてなった。それは最後に記述) 
http://ruby.chemie.uni-freiburg.de/~martin/chemtool/
には、「Windows版はzip形式であるが、Macでは、finkを使えばできるよ」と書いてある。

Finkの準備として
・Xcode のインストール
・JDK のインストール
を行い、
finkはhttps://sourceforge.net/projects/fink/files/ からダウンロードして、

cd Downloads/
tar -xvf fink-0.xx.0.tar
cd fink-0.xx.0
./bootstrap

この後で質問があって「基本的に全てEnterで問題ない」らしいが、
Enterでは処理を中止してしまう質問があったので、注意が必要。

Catalinaで下記の説明があって、InstallFink.tgzをダウンロードして、ダブルクリックするとfinkのインストールが始まった。

macOS 10.9-10.15 では、 helper script を使うことができます。 これは、下のダウンロードとビルドを自動化したものです。

下記コマンドでパスのセットアップを行いターミナルを再起動すればFinkが使える。

/sw/bin/pathsetup.sh

Fink を使ってパッケージをインストールするには
sudo apt-get install パッケージ名

Fink を使ってインストールしたパッケージはデフォルトだと/swディレクトリ配下にインストールされる。

~$ sudo apt-get install chemtool
chemtool (1.6.14-3) を設定しています ...

$ cht -h
The Chemtool drawings analyzer 1.7
***   Gizmo Head Software   ***
    Radek Liboska (c) 2001

syntax: cht [-options] <filename.cht>

Finkのインストールにやたら長い時間が必要だった。(夕方に始めてほったらかして、朝になって見ると終わっていた)

Xcode Toolsをインストールしておく。
MacPortsのサイトからMacPortsをダウンロードしてインストールする。
環境変数の設定、MacPortsは/opt/local以下にインストールされるので、
それに関連した環境変数を設定する。

export PATH=/opt/local/bin:/opt/local/sbin:$PATH
export MANPATH=/opt/local/man:$MANPATH

## MacPorts自身とそのリストを最新の状態に更新する
$ sudo port selfupdate

## インストールしたいパッケージを探すコマンドは、
$ port search 検索語句

## パッケージをインストールするコマンドは、
$ sudo port install パッケージ名

## パッケージをアンインストールするコマンドは、
$ sudo port uninstall パッケージ名

Catalinaではインストールできない?

やっとの思いでCatalinaにもfinkをインストールしたものの、下記のエラーです
(2020/05/16時点)

~ $ sudo apt-get install chemtool
Password:
Reading Package Lists... Done
Building Dependency Tree... Done
E: Couldn't find package chemtool

やはりdockerを使うべきなのか..... できた方がいらしたら教えてください。
   ↑  やってみました 追記しています

【余話】
Finkのインストール時に、何も考えず既定値で応答し続けて、インストールができなくて頭を抱えた時に、CentOS上でソースからインストールすればと考えた。

chemtoolのソースをダウンロードして解凍し、.configure のあとmakeを実行すると、下記のエラーなって諦めかけました。

$ make
main.c:18:22: 致命的エラー: gdk/gdkx.h: そのようなファイルやディレクトリはありません
 #include <gdk/gdkx.h>

メッセージを英語にしていたらたぶん
gtk/gtk.h: No such file or directory  かな

yum でgtkをインストールしてもupdateされるだけで、インストールされていたし....
これは、gtkの-develをインストールしたら解決した。

  $ sudo yum install gtk2-devel
  $ sudo yum install gtk3-devel

【すいぶん経ってからの追記】 2020.03.18
CentOSであればパッケージもある
Dockerイメージを作っておけばOSに関わらず使えるようになりそうなので、
試して見る価値がありそうです
epelリポジトリを有効にしてyumでchemtoolをインストール
chtコマンドが動作するかとchemtool 1.6.14 の起動を確認した

$ ssh -Y 192.168.1.1
$ sudo yum --enablerepo=epel install chemtool
$ cht -h
The Chemtool drawings analyzer 1.7
$ chemtool

スクリーンショット 2020-03-18 14.00.51.png

MacOS 10.15.4(Catalina)ではDockerで実行

Catalinaではfinkのインストールも時間がかかる上に、「apt-get install chemtool」で
「Couldn't find package」となってしまうので、コンテナを作成した。
chemtoolの本来の機能であるGUIではなく、まず、chtコマンドで分子量と分子式を求めるにはこの手順でできました。

ホスト側
x11を起動する(インストールしていなかったらインストールしてください)

$ open -a XQuartz 

XQuartzが起動したらセキュリティ設定(環境設定>セキュリティ)を変更しておく

  1. 「接続の認証」をOFF
  2. 「ネットワーク・クライアントからの接続」をON

ゲスト側

~ $ docker pull centos:7 
~ $ cd inDir 
inDir $ docker run --name cos7  -d -v $(pwd):/molData centos:7 /sbin/init
inDir $ docker exec -it 96 /bin/bash
[root@737d9cc121b6 /]# yum -y install epel-release 
[root@737d9cc121b6 /]# yum --enablerepo=epel install chemtool
[root@737d9cc121b6 /]# yum -y --enablerepo=epel install openbabel

[root@737d9cc121b6 /]# cd /molData/
[root@737d9cc121b6 molData]# babel -h sample.mol wk.cht
[root@737d9cc121b6 molData]# cht wk.cht 
C90H152O76 [2450.145] Me=2448.8029182640 44.12%C;6.25%H;49.63%O;

次にchemtoolをdcoker上で起動しました。

(Guest:Docker側の準備)
[root@0d79311d4bd7 /]# yum install libX11-devel
[root@0d79311d4bd7 /]# export DISPLAY=host.docker.internal:0.0
(Host:PC側の準備)
# Mac OS X 上で UNIX の X アプリケーションを動作させるためのx11を起動
open -a XQuartz
(Guest:Docker側でchemtoolの起動)
[root@0d79311d4bd7 /]# chemtool

PC上に表示されたchemtoolの画面です
スクリーンショット 2020-05-19 16.18.23.png

Dockerfileを書いてみた

他の環境でも使いたいと考えたので、Dockerfileを書いておいた方が便利だと、勉強を兼ねて、書いてみました。

FROM centos:7
RUN  yum -y install epel-release &&                \                 
     yum -y --enablerepo=epel install chemtool &&  \  
     yum -y --enablerepo=epel install openbabel && \ 
     yum -y install libX11-devel                
ENV  DISPLAY=host.docker.internal:0.0 
1
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?