在之前,我介紹過生物學中常聽見的各種ID名稱【參考文章:常用生物信息 ID的介紹】,然後介紹了這些ID名稱之間的轉換。【參考文章:生信中各種ID轉換】,這些轉換通常都是基於同一物種而言,但在基礎醫學研究中,很多實驗模型都是在動物上完成的,比如小鼠。假如我們研究某藥物的抗腫瘤效果,涉及到機制,最終都會往人上靠的,一般幾個基因,資料庫直接查一下就可以啦。但如果基因很多,人工查就不太現實,一般也是測序後的數據。所以在這裡我給大家介紹一下,不同物種之間的同源基因名稱轉換,這種轉換是基於物種間基因的同源性的。同源基因是由一個共同祖先在不同物種中遺傳的基因。雖然同源基因在序列上是相似的,但相似的序列不一定是同源的。
可能常見的轉換是小鼠和人之間的轉換,因為小鼠的基因和人的基因的同源性
,約80%的小鼠蛋白質在人類基因組中具有嚴格的1:1種間同源體,其序列同一性通常介於70%~100%。當然跟人類親緣關係最近的物種是黑猩猩。
好了,我們正式介紹如何把小鼠的gene ID進行同源性映射到人的基因上去?
我們用到的R包是biomaRt包。bioMart包是一個連接bioMart資料庫的R語言接口,能通過這個軟體包自由連接到bioMart資料庫。可以進行各種基因轉換。
沒有安裝過的需要先安裝包。
使用biomaRt包的第一步是選擇要使用的BioMart 資料庫和數據集。使用useMart函數可以連接到指定的BioMart 資料庫和資料庫中的數據集。要知道哪些BioMart 資料庫是可用的,可以利用listMarts函數查看。
要知道在一個BioMart資料庫中哪些數據集是可用的,首先選擇使用useMart的BioMart資料庫,然後使用listDatasets函數在選定的BioMart,見listDatasets函數。
listDatasets()用於查詢當前資料庫所含的基因組注釋。比如查看人的和鼠的。
我們後面用到的是hsapiens_gene_ensembl這個數據集。還有小鼠的mmusculus_gene_ensembl數據集。
用useDataseq()函數選定資料庫中的基因組。
dataset就是要使用的數據集。可能的數據集的列表可以使用listDatasets函數檢索,也就是我們上面介紹的。mart是使用useMart函數創建的Mart對象。
用lsitFilters()函數查看可選擇的類型,選定要獲取的注釋類型,以及已知注釋的類型。
那麼我們怎進行同源基因轉換呢?按照開始說的,使用biomaRt包的第一步是選擇要使用的BioMart 資料庫和數據集。使用useMart函數可以連接到指定的BioMart 資料庫和資料庫中的數據集。所以第一步是構建mart對象。
也就是選擇資料庫ensembl,數據集是人的hsapiens_gene_ensembl或者小鼠的mmusculus_gene_ensembl。
getLDS函數是biomaRt查詢的主要功能,連接兩個數據集,並從這些連結的biomaRt數據集檢索信息。在Ensembl中,這轉化為同源映射。
我這裡有一串小鼠基因。mouse.gene
將其映射到人的基因上。
attributes:屬性參數:代表我們所要檢索的數據集的屬性參數,比如這裡我們用的是mgi_symbol,代表的就是小鼠的基因的symbol名字。可以使用listAttributes函數檢索可能的屬性列表。
filter:參數過濾器,應在查詢中使用的過濾器。這些過濾器將應用於主數據集。可以使用函數listFilters檢索可能的過濾器列表。
value:代表我們想要輸入的數據集,就是輸入我們構造的要查詢的向量。
mart :指的是輸入數據的mart對象,由於輸入數據是小鼠的基因,自然選擇的mart對象為小鼠。
attributesL:代表的是我們需要同源轉化的另外一個資料庫,這裡我們自然是由小鼠轉為人,選擇的就是需要連接到的人的Mart對象,在屬性參數裡面我們填寫了三個參數,分別是gene_symbol ,染色體位置,基因起始位點。
useMartL:參數是代表我們需要連結的Mart對象,這裡自然就是人的。
我們查看一下結果:
這樣我們就完成了轉換。可以看的出來,人的基因和小鼠的基因名稱就是大小寫的區別(大多數,不是全部)。
最後額外介紹一下用getBM()函數獲取注釋。給定一組過濾器和相應的值,它從連接到的BioMart資料庫中檢索用戶指定的屬性。
這也達到的注釋的目的。
更多功能,參考官方文檔。
參考:
http://www.bioconductor.org/packages/release/bioc/html/biomaRt.html