インテルCPU搭載Macでは、分子軌道計算MOPACはGUI環境下で実行できたが、シリコンCPU搭載Macでは、キーボードを使ってコマンドを入力し、操作を行う必要がある。
注:CUIはCharacter User Interfaceの略で、文字ベースでコンピューターを操作する方式。キーボードを使ってコマンドを入力し、操作を行う。
CUI処理の概要
前提条件
○作業用フォルダはホームディレクトリ配下のMO。Macintosh HD:Users:kh:MO
○mopac.exeはoptのMOPACフォルダに配置、Pathは.zshrcで設定済み。Macintosh HD:opt:mopac
入力データの作成
→ ターミナルアプリ起動
→ 作業ディレクトリMOへの移動(mopあるいはdatファイルを選択、編集する場合はviエディターで行う)
→ mopac ファイル名.mop(ジョブ実行) (mopあるいはdatファイルを選択)
→ ls(生成ファイルを調べる)
→ cat ファイル名.out(結果を確認)
→ Avogadro起動
→mpoacのoutファイルを選択
→分子描画
ターミナル操作の自動化
面倒なので、GUIによる処理をアップルスクリプトを使用して作成してみた。スクリプトエディターの上部にある▶︎を押すと、MOフォルダが開くので、計算対象の入力ファイルを選ぶと、ターミナルを使ってコマンド(mopac ファイル名)が投入され演算処理が開始する。念のため、入力ファイル名を表示させている。
tell application "Finder"
activate
open folder "Macintosh HD:Users:kh:MO"
set selectedFile to choose file with prompt "入力ファイルを選択してください:"
set fileName to name of selectedFile
display dialog "入力ファイル名: " & fileName --入力ファイル表示
tell application "Terminal"
activate
do script "cd MO;mopac " & fileName -- MOへ移動、実行
end tell
end tell
ターミナルに以下が表示される。
Last login: Mon Jul 28 07:48:32 on console
cd MO;mopac atro4NO2UHFMM.dat
kh@KazMac-mini ~ % cd MO;mopac atro4NO2UHFMM.dat
Mon Jul 28 09:04:12 2025 Job: 'atro4NO2UHFMM' started successfully
MOPAC Job: "atro4NO2UHFMM.dat" ended normally on Jul 28, 2025, at 09:04.
kh@KazMac-mini MO %
計算が終了すると、「正常終了」のメッセージが表示され、out, arc, auxファイルが生成する。
分子画像表示スクリプト
最適化構造を確認するにはAvogadro等で三次元構造を表示させ、原子間距離、角度、二面体格などをチェックする。
OUTファイルを選んでAvogadroで描画するためには、以下のスククリプトを実行する。
set inputFile to result as text
tell application "Avogadro"
activate
open inputFile
end tell
MOPAC-Avogadro連携スクリプト
MOPACーAvogadroを一挙に実行するためには、ジョブの終了を待つためのプログラムが必要。AI (Google Gemini)に手伝ってもらって完成したプログラムを以下に示す。
tell application "Finder"
set selectedFile to choose file with prompt "入力ファイルを選択してください:"
set fileName to name of selectedFile
display dialog "入力ファイル名: " & fileName
set AppleScript's text item delimiters to "."
set extractedText to text item 1 of fileName
tell application "Terminal"
activate
do script "cd MO;mopac " & extractedText & " &" -- '&' を追加してバックグラウンドで実行
-- MOPACプロセスが終了するまで待機
set mopacRunning to true
set maxWaitTime to 120 -- 最大待機時間 (秒)
set startTime to current date
repeat while mopacRunning is true and (current date) - startTime < maxWaitTime
delay 5 -- 5秒ごとにチェック (MOPACの計算時間に合わせて調整)
try
-- MOPACプロセスが実行中かチェック (例: "mopac"という名前のプロセス)
-- 'ps aux | grep mopac' でプロセスを検索
set processList to do shell script "ps aux | grep -v grep | grep mopac || true"
if processList is "" then
set mopacRunning to false -- MOPACプロセスが見つからない場合は終了と判断
end if
on error
set mopacRunning to false -- エラーが発生した場合も終了と判断
end try
end repeat
-- 出力ファイルを表示
do script "cd MO;cat " & extractedText & ".arc"
end tell
end tell
-- Avogadroによるoutファイルの読込みと描画
tell application "Avogadro" --Avogadro2の場合はauxファイルを指定
activate
open "Macintosh HD:Users:kh:MO:" & extractedText & ".out"
end tell
120秒間5秒ごとにジョブの実行状況をチェックさせている。120秒を超えるような場合は変更する。
以下は処理過程で出力されるデータである。
▶︎を押して実行
ファイルを選択
ファイル名が表示される
正常終了のメッセージ
念のためサマリーを表示させている
Avogadroが開き分子を描画
出来上がったスクリプトをアプリとして保存し、一般のアプリと同様にDockに登録しておくと便利である。
Intel Macの場合は、ドラッグ&ドロップ操作でMOPACが起動するアイコン(下図右)が用意されていた。アップルスクリプトのアイコン(下図左)をMOPACアイコンに変更するのは、ファイルの「情報を見る」の上端アイコン図に被せれば変更できる。
アイコンの変更
Intel Macで動いていたMOPAC起動用ランチャーがシリコンMacでは動かないので、それに代わるスクリプトの作成を試みた結果、AIに助けてもらいながら、マウス操作だけでMOPAC、Avogadroを連続実行するスクリプトを作ることができた。AIの利用の仕方には賛否両論あるが、後期高齢者にとっては大変有用である。
(2025.8.30)