今天我要進行 Symbol ID 到 Ensembl Gene ID 的轉換。
Day4 已設置好基因代號轉換工具,接下來我將使用 Ensembl BioMart 查詢每個基因 Symbol ID 對應的 Ensembl Gene ID,並將結果保存到一個 DataFrame 裡;在進行查詢時,BioMart 服務器會返回一個結果的集合,這個集合內每一行包含一個基因的 Symbol ID 和對應的 Ensembl Gene ID。這些結果將會被轉換為 pandas 的 DataFrame,以便後續進行處理。
首先我先從 BioMart 查詢後所回饋的結果中讀取數據並進行儲存:
import pandas as pd
# 將我所查詢的結果讀入 DataFrame
result_df = pd.read_csv(response, sep='\t')
上面這段 code 通過 pandas
將 BioMart 的查詢結果讀入 DataFrame,這樣就可以對數據進行處理;這邊需要注意的是 pd.read_csv
函數,因為 BioMart 返回的結果格式類似於 TSV(Tab Separated Values),所以包含了分隔符 \t
。
接下來這些轉換結果與最初的基因數據進行合併,這樣就可以將 Symbol ID 與 Ensembl Gene ID 結合在一起,方便後續使用:
# 合併所轉換的結果與原始數據
df = pd.merge(df, result_df, how='left', left_on='GeneSymbol', right_on='hgnc_symbol')
# 這邊需要清理不需要的列
df.drop(columns=['hgnc_symbol'], inplace=True)
在上面的 code 中,使用了pd.merge
函數將原始的基因數據與轉換結果進行合併。left_on
和 right_on
參數用來指定合併的基準,也就是 GeneSymbol
和 hgnc_symbol
。
合併之後,我刪除了 hgnc_symbol
這列,因為這列與 GeneSymbol
是相同的,現在對我來說已經不需要了。
依照上述步驟,我完成基因 Symbol ID 到 Ensembl Gene ID 的轉換,接下來我將進行後續的網頁爬蟲。