生信開荒牛12022.07.28 11:24:52字?jǐn)?shù) 343閱讀 764
最近開始接觸單細(xì)胞數(shù)據(jù),網(wǎng)上也有很多學(xué)習(xí)資料,琳瑯滿目,我也挑了一些視頻資料進(jìn)行學(xué)習(xí),不過感覺還是需要進(jìn)行實戰(zhàn)訓(xùn)練才能更好地掌握這些知識,所以選了一篇2021年發(fā)表在nature communications的文章進(jìn)行學(xué)習(xí)。
文獻(xiàn):
Single-cell RNA sequencing reveals functional heterogeneity of glioma-associated brain macrophages
GSE:
GSE136001一、數(shù)據(jù)下載并整理
下載數(shù)據(jù):
https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE1360011.png
2.png
整理數(shù)據(jù)
每個樣本都有barcodes, features和matrix三個文件,這是cellranger的標(biāo)準(zhǔn)三個文件。
每個樣本單獨新建一個文件,由于文章需要區(qū)分性別和組別,所以命名如下圖。
每個樣本里的三個文件分別重命名如下圖。(Read10X函數(shù)讀取必需這樣命名才能讀入)
3.png
上面的操作也可以通過下面的R代碼來實現(xiàn)
fs = list.files('./GSE136001_RAW/',pattern = '^GSM')samples <- substr(fs,1,10)lapply( unique(samples), function(x){ y = fs[grepl(x,fs)] folder = paste0('./GSE136001_RAW/',strsplit(y[1],split = '-f')[[1]][1]) #創(chuàng)建文件夾 dir.create(folder,recursive = T) #重命名子文件夾并移動到相應(yīng)的文件夾中 file.rename(paste0('./GSE136001_RAW/',y[1]),file.path(folder,"barcodes.tsv.gz")) file.rename(paste0('./GSE136001_RAW/',y[2]),file.path(folder,"features.tsv.gz")) file.rename(paste0('./GSE136001_RAW/',y[3]),file.path(folder,"matrix.mtx.gz"))})
二、讀入數(shù)據(jù)
加載R包
if(!require(BiocManager)) install.packages("BiocManager",update = F,ask = F)if(!require(Seurat))install.packages("Seurat")if(!require(Matrix))install.packages("Matrix")if(!require(ggplot2))install.packages("ggplot2")if(!require(cowplot))install.packages("cowplot")if(!require(magrittr))install.packages("magrittr")if(!require(dplyr))install.packages("dplyr")if(!require(purrr))install.packages("purrr")
介紹兩種方式讀取原始數(shù)據(jù)(來自 cellranger 的基因/細(xì)胞計數(shù)矩陣)
一、Read10X函數(shù)批量讀取
samples <- dir(path="./GSE136001_RAW/", pattern="^GSM")for (i in samples){ assign(paste0("samples_raw_data", i), Read10X(data.dir = paste0("./GSE136001_RAW/", i)))}
二、通過barcodes, features和matrix三個文件進(jìn)行批量讀取
samples <- dir(path="./GSE136001_RAW/", pattern="^GSM", full.names=T, recursive=T, include.dirs=T)samples_raw_data <- lapply(samples, function(s) { matrix_dir = s # 設(shè)置barcodes, features和matrix三個文件的路徑 barcode_path <- paste0(matrix_dir, "/", "barcodes.tsv.gz") features_path <- paste0(matrix_dir, "/", "features.tsv.gz") matrix_path <- paste0(matrix_dir, "/", "matrix.mtx.gz") # 讀取表達(dá)矩陣,基因名和barcodes mat <- readMM(file = matrix_path) feature_names = read.delim(features_path, header = FALSE, stringsAsFactors = FALSE) barcode_names = read.delim(barcode_path, header = FALSE, stringsAsFactors = FALSE) # 設(shè)置行名和列名 colnames(mat) = barcode_names$V1 rownames(mat) = feature_names$V2 # V1 - ENSMUSG, V2 - gene_names # 輸出gene/cell表達(dá)矩陣(行名為基因名,列名為細(xì)胞 mat})names(samples_raw_data) <- substr(samples, 17, nchar(samples))
7人點贊
單細(xì)胞學(xué)習(xí)更多精彩內(nèi)容,就在簡書APP
"小禮物走一走,來簡書關(guān)注我"
共1人贊賞
生信開荒牛生信小白一枚,我不是牛人,我只是一頭開荒牛,希望大家能在我的學(xué)習(xí)基礎(chǔ)上更進(jìn)一步,共同提高!
總資產(chǎn)40共寫了1.6W字獲得133個贊共120個粉絲