化學資訊學入門:建立Python數據分析環境
前言
使用機器學習進行資料分析時,通常會使用Python、R語言或Matlab等程式語言。我們選用Python作為分析環境,其理由是現有的函式庫很多,而且文法對於初學者來說相對地容易理解。
環境建構流程
- Python安裝(包含建立虛擬環境及 Jupyter Notebook 的安裝)
- RDKit安裝
- 實際測試
1. Python安裝
Python的安裝方法有很多種,這裡選用對初學者比較友善的Anaconda當作例子。
[作業系統] Windows 10、MacOS
- 安裝Anaconda: 從(官方網站)下載並安裝 Anaconda。
- 更新Anaconda: 如果已經安裝了 Anaconda,請在 conda promt下執行
conda update conda
將其更新到最新版本(也可以使用 Windows 或 Mac 的終端機執行相同指令)。 - 建立虛擬環境: 在 conda promt下,輸入
conda create -n my-rdkit-env
並執行。安裝過程中,當詢問「proceed?」時,輸入 y 並Enter。 - 開啟虛擬環境: 輸入
conda activate my-rdkit-env
即可啟動虛擬環境(提示字元中會顯示(my-rdkit-env))。 - 安裝 Jupyter Notebook: 在上述狀態下,輸入並執行
conda install notebook ipykernel
在 my-rdkit-env 環境中安裝 Jupyter Notebook。 - 在 Jupyter Notebook 追加虛擬環境的 kernel : 接下來,如果輸入
ipykernel install — user — name my-rdkit-env
,則“my-rdkit-env”環境將被添加到 Jupyter Notebook 的 kernel 中。 - 如果您開啟了 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. 實際測試
- 啟動 Jupyter Notebook。 如果您在 conda promt輸入
jupyter notebook
,Jupyter Notebook 畫面將會在您的網頁瀏覽器中啟動。 - 開啟 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官方文件:https://www.rdkit.org/docs/index.html
- RDKit中文教程:http://rdkit.chenzhaoqiang.com/index.html
其他 RDKit 使用上的小技巧可以參考以下文章:
(感謝@yweilin753和@uentinnlea共同編輯)