2023.3.28初版
誤入BioInfor的大黃鴨 --一個喜歡把教程寫著寫著寫成科普的本科臨床醫(yī)學生
學習了生信菜鳥團趙小明老師(趙小明777)的文章Scissor壮莹,花了兩天時間學習了這個R包烘豌,這個R包可以通過提供三個信息(scRNA的表達矩陣草戈,bulk表達矩陣赖欣、臨床數據)洲劣,可以找出與臨床數據正相關和負相關的細胞亞群毁嗦。老師文章里只做了生存相關性的分析卵蛉,我這里教大家如何做二分類臨床數據的相關性分析(如TNM、性別等)盹廷,順便教大家如何解決Linux服務器中關于:ERROR; return code from pthread_create() is 22這個錯誤的方法。
目錄
- 1.輸入文件的準備
- 2.包的準備
- 3.二分類數據的操作流程
- 4.報錯修改
輸入文件的準備
我們需要準備:
1.scRNA的表達矩陣(scrt)(行名為基因名久橙,列名為細胞名稱)(數據類型:matrix)
2.bulk的表達矩陣(bulk_dataset)(行名為基因名俄占,列名為樣本名稱)(數據類型:matrix)
3.臨床信息矩陣(bulk_phenotype)(第一列為bulk的樣本名稱,注意順序要和第二個文件的順序一樣淆衷,第二列為臨床數據缸榄,這里我以轉移“1”和非轉移“0”為例,注意要改為0和1)(數據類型:matrix和dataframe都行)
把三個數據讀取進Rstudio里祝拯。
包的準備
devtools::install_github("jinworks/scAB")
二分類數據的操作流程
讀入的表達矩陣用下面代碼轉換為Seurat對象甚带,注意別用普通單細胞Seurat的轉換代碼,不然會報錯佳头,一定要用下面的代碼轉:
sc_dataset <- Seurat_preprocessing(scrt, verbose = F)
用這個代碼看看臨床數據和表達矩陣的順序能不能對得上:
all(colnames(bulk_dataset) == bulk_phenotype$ID)
把臨床數據轉化為一個帶有name的numeric向量:
phenotype <- as.numeric(bulk_survival[,2])
names(phenotype)<-bulk_survival[,1]
創(chuàng)建一個tag:
tag<-c("M0","M1") #注意第一個為對照組第二個為實驗組
運行Scissor:
infos4 <- Scissor::Scissor(bulk_dataset, sc_dataset, phenotype, tag = tag, alpha = 0.5, family = "binomial", Save_file = "M_mutation.RData")
后續(xù)輸出umap:
Scissor_select <- rep(0, ncol(sc_dataset))
names(Scissor_select) <- colnames(sc_dataset)
Scissor_select[infos4$Scissor_pos] <- 1
Scissor_select[infos4$Scissor_neg] <- 2
sc_dataset <- AddMetaData(sc_dataset, metadata = Scissor_select, col.name = "scissor")
DimPlot(sc_dataset, reduction = 'umap', group.by = 'scissor', cols = c('grey','indianred1','royalblue'), pt.size = 1.2, order = c(2,1))
本包適合內存大的電腦運行鹰贵,我的40G的電腦也運行不了2w個細胞的scRNA數據,建議大家在Linux環(huán)境下運行康嘉。
報錯修改
我們在使用Linux運行時碉输,通常會遇到以下錯誤:
ERROR; return code from pthread_create() is 22,或者是:
我初步懷疑是因為preprocessCore包版本問題或者損壞導致的亭珍,我們需要重新安裝這個包敷钾,打開Linux工作臺:
git clone https://github.com/bmbolstad/preprocessCore.git
cd preprocessCore
R CMD INSTALL --configure-args="--disable-threading" .
重新安裝即可完美解決枝哄。(引自簡書)
本教程就先講到這啦,后續(xù)隨后更新阻荒,歡迎大家關注支持~大家關注一下我:誤入BioInfor的大黃鴨