Google Colaboratoryにcondaをインストールしケモインフォマティクスしてみる


#はじめに
最近、Google Colaboratoryを使い始めた。ローカルにJupyter環境を設定し起動するのが面倒なので、ちょっとした確認などは、Google Colaboratoryを使うようにしている。

基本的なライブラリは、Google Colaboratoryに最初からインストールされているのだが、ケモインフォマティクス用のライブラリ(RDKitやmordredなど)はインストールされていない。しかもこれらは、基本condaによるインストールとなっており、Google Colaboratoryではcondaがデフォルトでは使えない。

そこで今回、Google Colaboratoryでcondaを使えるようにし、RDkitやmordredをインストールして動かしてみるところまでやったのでメモっておく。

condaのインストールは、[Conda + Google Colab](https://towardsdatascience.com/conda-google-colab-75f7c867a522) を参考にした。

また、本記事と同じような趣旨の記事が既に「化学の新しいカタチ」さんの
[Google ColabでRDKit：ケモインフォマティクス用のpython環境を手軽に構築](https://future-chem.com/rdkit-google-colab/)に記載されている。

#Condaのインストール
## Pythonパスの確認

```
!which python 
```

するとPythonのパスが返ってくる。ここでは```/usr/local/bin/python```が返ってくる


## Pythonバージョンの確認

```
!python --version
```

するとPythonのバージョンが返ってくる。ここでは、```Python 3.6.9```が返ってくる

## PYTHONPATH環境変数の確認と解除

```
!echo $PYTHONPATH
```

すると PYTHONPATH環境変数が返ってくる。ここでは、```/env/python```が返ってくる。

minicondaをインストールする場合、PYTHONPATHに含まれるディレクトリを介してインストールおよびアクセスできるパッケージがある場合に、問題が発生する可能性があるらしいので、以下コマンドによりPYTHONPATH変数の設定を解除する。

```
%env PYTHONPATH=
```

## minicondのインストール

```
%%bash

MINICONDA_INSTALLER_SCRIPT=Miniconda3-4.5.4-Linux-x86_64.sh
MINICONDA_PREFIX=/usr/local
wget https://repo.continuum.io/miniconda/$MINICONDA_INSTALLER_SCRIPT
chmod +x $MINICONDA_INSTALLER_SCRIPT
./$MINICONDA_INSTALLER_SCRIPT -b -f -p $MINICONDA_PREFIX
```

## インストール後の確認
```
!which conda
```

うまくいっていれば、```/usr/local/bin/conda```と返ってくるはずだ。


## Pythonのバージョン確認
```
!python --version
```

すると```python 3.6.5 :: Anaconda, Inc.```のように、minicondaによって異なるバージョンのpythonがインストールされていることが分かる。

## Pythonのアップグレード

以下のコマンドでpythonやライブラリをアップグレードしよう

```
%%bash
conda install --channel defaults conda python=3.6 --yes
conda update --channel defaults --all --yes
```

## Pythonのバージョン確認
```
!python --version
```

すると```Python 3.6.12 :: Anaconda, Inc.```のようにpythonがアップグレードされたことが分かる。

## sys.pathへのパスの追加
Minicondaをインストールしたので、インポートするモジュールを探すときにPythonが検索するディレクトリのリストに、condaのパッケージパスを追加する必要がある。以下の通り実行する。

```py

import sys
_ = (sys.path
        .append("/usr/local/lib/python3.6/site-packages"))
```

以上でcondaのインストールは完了である。

#RDkitのインストール
condaをインストールすることができたので、以下のcondaコマンドでRDKitをインストールしよう。

```
!conda install -c rdkit rdkit --yes 
```

うまくインストールされたかバージョンを確認する。

```py

import rdkit
print(rdkit.__version__)
```

すると、```2020.09.1```のようにRDKitのバージョンが表示されるはずだ。

SMILESからmolオブジェクトを作ってMDL形式で表示してみよう。

```py

from rdkit import Chem
mol = Chem.MolFromSmiles('Cc1ccccc1')
Chem.MolToMolBlock(mol)
```

続いてmolオブジェクトを画面上に表示してみよう。

```
from rdkit.Chem import Draw
Draw.MolToImage(mol, size=(100,100))
```

すると構造式画像が表示されるはずだ。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/329816/05ee7edf-8744-33bf-51bf-d6cccb4c76d8.png)

#mordredのインストール
続いて記述子計算ソフトウェアであるmordredをインストールしてみよう。

```
!conda install -c rdkit -c mordred-descriptor mordred --yes 
```

そして、早速記述子計算をしてみよう。

```py

from mordred import Calculator, descriptors
import pandas as pd

calc = Calculator(descriptors, ignore_3D=True)
df_descriptors_mordred = calc.pandas([mol])
```

計算がおわったらpandasのデータフレームに結果が得られるので表示してみよう。

```py
df_descriptors_mordred.head()
```

するとこんな感じで計算結果が得られるはずだ。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/329816/70b745ce-41bd-c8c8-533b-6c5a1c3e3c74.png)

さて、ここまでできればあとは通常の機械学習と同じなので、matplotlibや、scikit-learn、PyTorch等を使って色々な解析ができるはずだ。

#おわりに
condaが使えるようになったことで、他にも色々なライブラリが利用でき、実質ローカルで環境構築するのとかわらない環境を手に入れたといえるだろう。勿論Google Colaboratoryは一定時間立つとリセットされるようなので毎回この手順を踏まなければならないが、保存したNotebookに従って実行するだけなのでそれほど手間ではないだろう。