1. 起因
之前的程式碼(單細胞分析實錄(17): 非負矩陣分解(NMF)程式碼演示)沒有涉及到python語法,只有4個python命令列,就跟Linux下面的ls grep一樣的。然鵝,有幾個小夥伴不會命令列,所以我決定再改寫一下,把命令列都放到R下面執行。
2. 嘗試
2.1 一開始,我的想法是教大家在R裡面呼叫python,需要提前下載好anaconda和一些python包
然而想了想在Windows上安裝python包可能對大家不是很友好,有些包很難裝,我之前也弄了很久。考慮到這次更新是針對桌面版Rstudio使用者,故沒有采用。
2.2 最終,我採用的方案是,使用Rstudio Server,也就是網頁版Rstudio
這樣做有幾個好處:
- 直接和雲伺服器連線,伺服器下載python包和R包都很容易(雲伺服器剛買,下血本)
- 我提前配置好執行環境,使用者只需上傳資料,分析資料,下載資料即可。
程式碼方面也更加簡化:
- 我儘量減少了人工處理的時間,主要分析程式碼只有兩行
如果你之前在我這兒拿過程式碼,可以直接找我要更新的程式碼。此外,如果因為之前的程式碼涉及命令列,你操作起來有困難,可以找我開Rstudio Server的賬戶 (高階玩家就別了,伺服器配置比較低,就夠幾個人用的那種)。
3. 注意
- 我會提前安裝可能用到的R包,所以不用重複安裝,直接library就可以
- 請大家及時下載結果檔案,以免丟失;也請大家在做完分析後,刪除表達資料,伺服器儲存空間不是很大
- 每個賬號只保留半個月時間,若想再次使用,可以聯絡我再開一個賬號
- 有任何問題可以微信或者郵箱問我
接下來簡單介紹一下,使用方法
登入
開啟我給你的連結,輸入使用者名稱和密碼即可登入
之後就可以看見Rstudio的介面了
然後確保你的家目錄下面有圖中框出來的幾個檔案,並點選進入count_data
資料夾
上傳資料
點選upload
上傳資料
執行程式碼
主要是3.R
中的step1
和step2
兩個函式
library(reticulate)
use_condaenv(condaenv = "cnmf_env", required = T,conda = "/home/hsy/miniconda3/bin/conda")
py_config() #如果顯示cnmf_env環境裡面的python就OK
source("1.R")
step1(dir_input = "count_data",dir_output = "res1",k=3:5,iteration = 50) #這裡為了演示方便,取值都比較小
source("2.R")
step2(dir_input = "res1",dir_output = "res2",dir_count = "count_data",usage_filter = 0.03,top_gene = 30,cor_min = 0,cor_max = 0.6)
檢視結果
step2之後,會在res2
資料夾中生成結果檔案
sampleID_program.usage.norm.txt和sampleID_program.Zscore.txt
是NMF分解表達矩陣得到的兩個矩陣
program_topngene.txt
這是所有program的前幾十個基因,一般會放到檔案附表
program_pearson_cor.complete.heatmap.pdf
program之間的相關性熱圖
cor_heatmap_data.txt
用來畫上圖的資料
program_topngene_enrichment.xlsx
program_topngene_enrichment_order.csv
這兩個都是對program前幾十個基因的富集分析結果,這兩個檔案可以用來輔助我們理解program,其中第二個檔案和相關性熱圖的順序一致,看起來更方便
sampleID_program_gene.heatmap.pdf
用來驗證在這個樣本中,program找得對不對,其實就是看program的表達,一般看program的前幾十個基因
sampleID_data_heatmap.txt
用來畫上面那個熱圖的資料
program之間的相關性熱圖
某個樣本中program的表達
下載結果
選中你想匯出的檔案,點選more
,再點選Export
就可以了
至此,公眾號僅有的兩篇付費教程都已更新完畢~
因水平有限,有錯誤的地方,歡迎批評指正!