化學資訊學入門:建立Python數據分析環境

Chemistry with data magic
5 min readMar 9, 2024

--

前言

使用機器學習進行資料分析時,通常會使用Python、R語言或Matlab等程式語言。我們選用Python作為分析環境,其理由是現有的函式庫很多,而且文法對於初學者來說相對地容易理解。

環境建構流程

  1. Python安裝(包含建立虛擬環境及 Jupyter Notebook 的安裝)
  2. RDKit安裝
  3. 實際測試

1. Python安裝

Python的安裝方法有很多種,這裡選用對初學者比較友善的Anaconda當作例子。

[作業系統] Windows 10、MacOS

  1. 安裝Anaconda: 從(官方網站)下載並安裝 Anaconda。
  2. 更新Anaconda: 如果已經安裝了 Anaconda,請在 conda promt下執行 conda update conda將其更新到最新版本(也可以使用 Windows 或 Mac 的終端機執行相同指令)。
  3. 建立虛擬環境: 在 conda promt下,輸入 conda create -n my-rdkit-env 並執行。安裝過程中,當詢問「proceed?」時,輸入 y 並Enter。
  4. 開啟虛擬環境: 輸入conda activate my-rdkit-env即可啟動虛擬環境(提示字元中會顯示(my-rdkit-env))。
  5. 安裝 Jupyter Notebook: 在上述狀態下,輸入並執行 conda install notebook ipykernel在 my-rdkit-env 環境中安裝 Jupyter Notebook。
  6. 在 Jupyter Notebook 追加虛擬環境的 kernel : 接下來,如果輸入 ipykernel install — user — name my-rdkit-env,則“my-rdkit-env”環境將被添加到 Jupyter Notebook 的 kernel 中。
  7. 如果您開啟了 Jupyter 筆記本,請將其關閉。 關閉 conda 提示符並退出 Anaconda。

2. RDKit 安裝

RDKit是一個Python函式庫,可以處理各種化學資訊的開源函式庫。

RDKit的安裝方式有以下幾種:(由於Python版本不同,可能造成rdkit無法安裝的情況。視情況改變安裝方法。)

首先,輸入conda activate my-rdkit-env 開啟虛擬環境

1. 利用 conda的安裝方法:

參考官方安裝指南「The RDKit documentation:Installation」中的說明,執行conda install -c conda-forge rdkit進行安裝。

2. 利用 pip 的安裝方法:

由於anaconda存儲庫收費化和conda本身不符合Python標準化的趨勢,許多人可能希望盡可能避免使用conda。

正如「RDKit Blog: Why the RDKit isn’t available on PyPi」的文章中所說明的,RDKit長期以來一直無法通過pip安裝。但是,Christopher Künneth成功創建了wheel,並以rdkit-pypi的名稱運營了約兩年。

pip install rdkit-pypi

自從2022年6月,被更名為rdkit後,rdkit可以通過以下簡單的命令進行安裝。

pip install rdkit

3. 使用 brew 的安裝方法:

使用homebrew亦可以在Mac或Linux上安裝RDKit。

brew install rdkit

3. 實際測試

  1. 啟動 Jupyter Notebook。 如果您在 conda promt輸入 jupyter notebook,Jupyter Notebook 畫面將會在您的網頁瀏覽器中啟動。
  2. 開啟 Jupyter Notebook。在 Jupyter Notebook 介面的右上,點擊「New」新增「Notebook」。雙擊剛剛所新增的 Notebook (Untitled.ipynb)。

3. 選擇虛擬環境“my-rdkit-env”

4. 測試RDKit。文件開啟後,在儲存格中輸入以下內容。

from rdkit import Chem
m = Chem.MolFromSmiles('COC(=O)c1ccccc1O')
m

如果執行輸入的儲存格(Shift+Enter),將得到以下輸出。

結語

Python 有很多函式庫,而且文法對於初學者來說相對地容易理解。我們簡單安裝 RDKit ,RDKit 可以處理各種化學資訊,如果想嘗試更多RDKit的功能,可以參考:

其他 RDKit 使用上的小技巧可以參考以下文章:

(感謝@yweilin753@uentinnlea共同編輯)

--

--

Chemistry with data magic

I am working on improving material developments by creating machine learning analytical tools for chemical data to accelerate the material discovery.