本文介紹一個使用程序計算個人祖源方法,如果您做過芯片級基因檢測并下載了原始數據(raw data)文件,這篇教程將會給你帶來很大的幫助。
一、準備工作下載自己的基因原始數據。如果您做的是普通的芯片測序晨光標朗計算器說明書,這需要從對應測序機構的網站提供的下載路徑與方法的查找;如果您做的是全基因組測序,則先提取BAM/CRAM文件的數據到TXT/CSV的芯片格式里,再進行后續操作即可。
下載、安裝R語言。建議從官網下載安裝包:/
2. 下載并解壓 程序:
/-/
部分電腦可能不支持該軟件,這需要安裝缺少的系統文件來使程序順利打開。本教程以 的LM K47祖源計算器為例(后文將直接簡稱為K47)。打開 后在左下方的列表框中選擇一個計算器,點擊RUN下載并運行計算器。這會同時運行 里的祖源計算器并產生結果,但是這不屬于此教程的范圍,所以您也可以在計算器下載完后就直接關閉 ,主要內容先看后文。(注:如果您能夠從其它來源下載到祖源計算器文件的話,也可以直接用而不通過 下載)
3. 接下來在 Excel或WPS表格中操作(如果您掌握了編程,也可以用更好的方法來替代此方法):
(1) 打開計算器文件所在文件夾,并復制一份計算器的“.”文件;
(2) 修改文件后綴名為Excel或WPS表格格式,打開后按空格分列,然后分別在D1和E1格處輸入如下的Excel函數IF,分別在第4、5列互補出第2、3列的基因型:
=IF(B1="A","T",IF(B1="C","G",IF(B1="G","C",IF(B1="T","A",0))))
=IF(C1="A","T",IF(C1="C","G",IF(C1="G","C",IF(C1="T","A",0))))
(3) 最后向下填充、保存。
二、正式運行
接下來的步驟需要用到R語言,幾乎沒有編程基礎的用戶也可以學習以下內容,引用時需要根據自己的文件位置、祖源計算器信息來替換語句中的“粗體+斜體字”部分。
安裝晨光標朗計算器說明書,建議從網絡端下載;(初次使用只需安裝一次,再次調用只需從第2步開始).("")
2. 載入;
()
3. 讀取預備工作中改好的計算器位點文件“.”,注意文件最后寫的是什么綴名;
:\\某文件路徑\\test.47 - 副本..xls')
4. 讀取計算器文件的頻率“.F”(或者“.P”),并輸出到中間變量(比如temp1),然后由讀取的計算器頻率文件生成計算矩陣,接著移除用完的變量;
:\\某文件路徑\\test.47.F')
(temp1)
5. 讀入芯片格式的原始數據,這里需要根據文件格式分兩種情況,選擇其中一種即可;
(1) TXT格式
:/某路徑/某原始數據.txt')
(2) CSV格式
:/某路徑/某原始數據.csv')
6. 將芯片數據對齊到計算器頻率矩陣,需要寫對祖源成分種類數(以K47為例);
res47,,freq)
7. 開始頻譜分析(由于輸出的結果無標桿成分名,也可以省略);
="")
8. 顯示不含標桿成分名的祖源計算器數值結果;
ances$q
如果想直接輸出百分比值(不含百分號),則需輸入:
100*ances$q
9. 得到結果后,把成分數值復制到表格文件里,并從對應的計算器文件復制出標桿名,以對應跑出來的祖源成分數值。然后設計成統計圖,設計樣式可根據審美要求來決定。
三、拓展內容用R語言讀取文件路徑時,分隔符用“/”或“\\”符號皆可;
2. 如果需要像DIY 2.1程序那樣讀取數據的基因位點使用情況,則需要增加以下的程序語句:
(1) 找出計算器對原始數據的位點利用總數
ncol(ances$f)
(2) 讀取計算器的位點總數
nrow()
(3) 計算位點利用率( rate)
ncol(ances$f)/nrow()
或者輸出為不含百分號的百分數形式:
100*ncol(ances$f)/nrow()
3. 若要從本地安裝已經下載好的包,則需輸入:
.("X:\\某路徑\\.0.1.zip")
4. 如果需要卸載包,則需輸入:
.("")
5. 如果需要在同一個工作目錄文件夾下使用for語句批量計算數據的計算器祖源成分(此時工作目錄文件夾內不要放芯片數據以外的文件),則可以參考并感悟以下使用 K36祖源計算器做批量統計的示例語句:
library(radmixture)
alleles<-read.table(file='E:\\Admixture\\AdmixtureStudioV250\\Calculators\\EUROGENES_K36_V1\\admix_NEW.alleles')
Temp<-read.table(file='E:\\Admixture\\AdmixtureStudioV250\\Calculators\\EUROGENES_K36_V1\\admix.36.F')
freq<-as.matrix(Temp)
remove(Temp)
setwd('F:/遺傳類/現代數據/新建文件夾')
fileNames <-dir()
for (v in fileNames[]){
genotype <- read.table(file = v)
res <- tfrdpub(genotype,36,alleles,freq)
ances <- fFixQN(res$g, res$q, res$f, tol = 1e-5, method = "BR")
results <- cbind(v,ncol(ances$f)/nrow(alleles),100*ances$q)
write.table (results, file ="C:\\admin\\desktop\\K36批量統計結果.txt", sep ="\t", row.names =F, col.names =F, quote =F, append=T)
}
其中setwd語句所在行為設置工作目錄,for循環內的write語句所在行為輸出計算結果的文本文檔目錄。
本文完。
本文首發于知乎,同人作品也將同步發表在微基因社區、源基因論壇、CSDN及其他平臺。
特別感謝程序包的出處:/-llc/