計算化学をこれから始める上で知っておいた方が良いパソコンの知識

近年、パソコンの機能向上とともにソフトウェアの開発も進み、専門家以外でも簡単に計算化学を利用することが可能な環境が整って来ました。

例えば、昔の Gaussian は昔はコマンドライン画面で操作するしかありませんでしたが、現在では Gauss View という便利な molecular viewer が登場しています。

有機合成や分子生物などを専門とする実験化学者も簡単に計算を Gauss View や Pymol などを用いて計算化学を行なっています。

テクノロジーが発達しのは、計算化学の普及に貢献したと思っていますが、そのせいでパソコンの知識をほとんど持たずに計算化学を利用している研究者も増えてきています。

効率的に計算結果を処理するにはプログラミングは必須

たった一つの計算ファイル、たった一つの分子を取り扱うだけならば、プログラミングの知識は必要ありません。

それどころか、わざわざプログラミングを勉強することはコスパが悪いと思います。

しかし、毎日大量の計算結果を処理してくには、パソコンの知識は必須です!

世の中には、多数のプログラミング言語が溢れているため、初学者の人はどれから手をつけたら良いのか分からないと思います。

そこで、まずは UNIX コマンドを覚えましょう!

早く作業を進めるためには、GUI ではなく CUI で作業することが必要です。terminal 画面に慣れるためにも、まずは UNIX コマンドを習得しましょう!

以下に、最低限知っておいた方が良い UNIX コマンド bashrc の設定を紹介したいと思います。

最低限知っておいた方が良い UNIX コマンド

cd : フォルダの移動
ls : フォルダ内のファイルを表示
mkdir : フォルダを作る
cp : ファイルを複製する
rm : ファイルを削除する
vi : ファイルを編集する
less : ファイルを見る

ここに挙げたものは本当に最低限なので、実際には更に多くのコマンドを必要とします。

上記のコマンドの使い方は、検索すれば出てきます。

bashrc の設定

# .bashrc 

# Source global definitions 
if [ -f /etc/.bashrc ]; then 
    . /etc/.bashrc 
fi 

# User Specific aliases and functions 

export PATH=/Users/keisan/Applications/bin:$PATH 

PS1="\u[\w]$"

つづいて、bash_profileの設定を行います。

if [ -f ~/.bashrc ] ; then 
    . ~/.bashrc 
fi 

source ~/.profile

プログラミング言語を学ぶ

計算量が増えて来ると解析しきれないほどの計算結果が押し寄せてくるようになります。

いちいち log ファイルを手動で開いて目で確認していたのでは、終わらないぐらいの量になってきます。そのような場合、プログラミング言語で、logファイルの必要な部分のみを読み出し、変換、計算してくれるプログラムを作る必要が出てきます。

また、計算化学を行っていく上で、ルーティーンワークな作業が必ず出てきます。input ファイルの作成や log ファイルの解析、job を投げる作業などなど。

このようなルーティーンワークはパソコンにやらせるのが一番です。そこで、パソコンに指示を出すために、プログラミング言語を覚えた方が良いと思います。お勧めとしては、PythonC/C++Ruby などだと思います。

生化学系の分野で、遺伝子やタンパク質の計算などをやっている人は、PythonR を使っている人が多いと思います。

管理人は、C/C++ からプログラミング言語の勉強をはじめました。研究室の周りのメンバーが RubyShell スクリプトをやっていたので、本を読んでみたのですが、いまいちよく分かりませんでした。

しかし、C 言語は変数の宣言などしっかり書く言語ですので、愚直な正確な自分にはぴったりでした!

その後、C++ がある程度書けるようになった後で python も勉強し始めました。しかし、python はあまりプログラミングという感じがしません。以下のツイートにもあるように、「モジュールを呼び出すインターフェース」という説明が一番しっくり来ると思います。

個人的には、毎日使うようなプログラム、また処理時間のかかるプログラムは、C/C++ で書くのがおすすめです。python などのスクリプト言語よりも 10 倍以上高速に動いてくれます。

管理人は、C/C++ から初めて、javascript, Ruby, python, shell, などにも手を出しました。一番最初に勉強したのが C で良かったなと今は思っています。やっぱり、C はそれ以降の言語の基礎になっているため、非常に似ているところが多くて、勉強時間が短縮されます。

パソコンに関する知識を持とう!

計算化学をやっていく上で、コンピューターに詳しくなることも大切です。

手っ取り早く詳しくなるには自作 PC をつくってみることが一番です。

  • パソコンがどのようなパーツでできているのか?
  • CPU の性能はどのような単位で表されるのか?
  • メモリの大きさは?
  • ハードディスクはどれくらいあれば良いのか?
  • マザーボード?
  • 冷却システム、
  • 電源の大きさ
  • 、、、
    などなど、実際に取り組んでみて始めてわかることが多いです。

例えば、

など、自分で PC を組み立ててみて初めてわかることだと思います。

こういう知識を持っておくと、無駄にハイスペックなパソコンを購入させられたり、自分の計算に不向きなスパコンを選択したりするといった失敗をおかしにくくなります。

例えば、DFT 計算は CPU の処理速度が律速となっているので、メモリはそこまで必要ありません。逆に、ゲノムアッセンブリなどをしたいなら、メモリをたくさん積んだコンピューターを使う必要があります。

まとめ

初学者の人にとっては、プログラミング言語はおろか、terminal 画面を開くことさえ敷居が高いと思います。

しかし、本記事で述べたような知識を身につけないと日々の業務をこなしていけないのも、また事実です。

まずは、unix コマンドなど簡単なところから少しずつ挑戦していくのが良いと思います。

コメントを残す(投稿者名のみ必須)