單細胞測序分析流程之Cellranger

一跌造、建立參考基因組索引

1埠胖、下載參考基因組和注釋文件
2定罢、構建適用于cellranger分析所用的參考基因組和注釋文件索引(index)笤虫,代碼如下:

##根據自己分析的物種(此處分析的是豬的數(shù)據,其他物種同理)的注釋文件提取gtf信息
cellranger mkgtf chr_susScr11.gtf chr_susScr11.filtered.gtf --attribute=gene_biotype:protein_coding

##根據自己分析的物種參考基因組和注釋文件構建gtf索引
cellranger mkref --genome=chr_susScr11_cellranger \
         --nthreads=10 \
         --fasta=chr_susScr11.fa \
         --genes=chr_susScr11.filtered.gtf

二、比對和計數(shù)分析

1琼蚯、輸入文件
Cellranger count 的fastq輸入文件格式必須要求https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/using/fastq-input

格式如下
[Sample Name]S1_L00[Lane Number][Read Type]_001.fastq.gz
Where Read Type is one of:
I1: Sample index read (optional)*
R1: Read 1
R2: Read 2
注意:1)cellranger count的輸入文件格式必須滿足上述要求酬凳;2)后綴必須是fastq或者fastq.gz;如下

image-20200502201843961.png

2遭庶、構建shell流程批量分析

2 ##Pig single cell data analysis 
  3 ##########QC 1###########
  4 genomedir=/data/youhua_data/Database/susScr11 ##參考基因組index目錄
  5 datadir=/data/youhua_data/Data/WRF_singlecell  ##文件目錄
  6 
  7 
  8 sample='Fat1 Fat2 Fat3 Fat4' ##sample名
  9 date
 10 for s in $sample
 11 do
 12 date
 13 cellranger count --id=${s}_cellrange_out \  ##cellranger count計數(shù)分析
 14         --fastqs=$datadir/trim_output_dir/ \
 15         --sample=$s \
 16         --transcriptome=$genomedir/chr_susScr11_cellranger
 17 date
 18 wait
 19 done
 20 exit

3宁仔、輸出文件
1)輸出文件夾目錄


image-20200502202226618.png

2)outs目錄文件


image-20200502202350207.png

三、Seurat分析

library(dplyr)
library(Seurat)

pig.data <- Read10X(data.dir = "outs/filtered_feature_bc_matrix/") ##加載cellranger cout分析后的數(shù)據        

##創(chuàng)建對象罚拟,min.feature為基因台诗;counts為rawdata(10x genomic)或者TPM
pig <- CreateSeuratObject(counts = pig.data, project = "pig_singlecell", min.cells = 3, min.features = 200)  

head(pig)
pig

pig[["percent.mt"]] <- PercentageFeatureSet(pig, pattern = "^MT-") ##添加線粒體基因表達屬性

png("vlnplot.png",width=1000,height=600)

##繪制單個細胞的基因表達個數(shù)完箩、基因表達量以及線粒體基因百分比之間的關系赐俗,用于篩選過濾細胞(死細胞等離群細胞)
VlnPlot(pig, features = c("nFeature_RNA", "nCount_RNA", "percent.mt"), ncol = 3) ##nFeature_RNA為單個細胞的基因表達個數(shù),nCount_RNA基因表達量弊知,percent.mt為線粒體基因百分比阻逮;
dev.off()

##繪制nCount_RNA、percent.mt以及nFeature_RNA的相關性散點圖秩彤,用于篩選過濾細胞
png("boxplot.png",width=1000,height=600)
plot1 <- FeatureScatter(pig, feature1 = "nCount_RNA", feature2 = "percent.mt")
plot2 <- FeatureScatter(pig, feature1 = "nCount_RNA", feature2 = "nFeature_RNA")
CombinePlots(plots = list(plot1, plot2))
dev.off()

##根據上面分析結果確定篩選條件
pig <- subset(pig, subset = nFeature_RNA > 200 & nFeature_RNA < 1500 & percent.mt < 5) ##過濾:基因數(shù)目大于200叔扼,不大于2500,MT-percent

##取Log進行數(shù)據標準化處理漫雷,
pig <- NormalizeData(pig, normalization.method = "LogNormalize", scale.factor = 10000)

##尋找變異系數(shù)較大的基因進行分析
pig <- FindVariableFeatures(pig, selection.method = "vst", nfeatures = 1500)

##可視化變異系數(shù)較大的細胞
png("feature.png",width=1000,height=600)
par(mfrow=c(1,2))
top10 <- head(VariableFeatures(pig), 10)
plot1 <- VariableFeaturePlot(pig)
plot2 <- LabelPoints(plot = plot1, points = top10, repel = FALSE)
CombinePlots(plots = list(plot1, plot2))
dev.off()

##
all.genes <- rownames(pig)
pig <- ScaleData(pig, features = all.genes)

pig <- RunPCA(pig, features = VariableFeatures(object = pig))

print(pig[["pca"]], dims = 1:5, nfeatures = 5)

png("dim.png")
VizDimLoadings(pig, dims = 1:2, reduction = "pca")
DimPlot(pig, reduction = "pca")
dev.off()


png("dimheatmap.png")
DimHeatmap(pig, dims = 1:9, cells = 500, balanced = TRUE)
dev.off()


pig <- JackStraw(pig, num.replicate = 100)
pig <- ScoreJackStraw(pig, dims = 1:20)
png("pc_jack.png")
JackStrawPlot(pig, dims = 1:20)
dev.off()
png("elbow.png")
ElbowPlot(pig)
dev.off()



pig <- FindNeighbors(pig, dims = 1:15)
pig <- FindClusters(pig, resolution = 0.4)

pig <- RunUMAP(pig, dims = 1:15)

png("umap.png")
DimPlot(pig, reduction = "umap")
dev.off()
saveRDS(pig, file = "./pig_tutorial.rds")

cluster1.markers <- FindMarkers(pig, ident.1 = 1, min.pct = 0.25)
head(cluster1.markers, n = 5)

cluster5.markers <- FindMarkers(pig, ident.1 = 5, ident.2 = c(0, 3), min.pct = 0.25)
head(cluster5.markers, n = 5)

pig.markers <- FindAllMarkers(pig, only.pos = TRUE, min.pct = 0.25, logfc.threshold = 0.25)
pig.markers %>% group_by(cluster) %>% top_n(n = 2, wt = avg_logFC)

write.table(file='tsne.txt' ,Embeddings(pig@reductions$umap),sep="\t",col.names=F,quote=F)
write.table(file='tsne.class' ,pig@active.ident,sep="\t",col.names=F,quote=F)
write.table(pig.markers,sep="\t",file="markers.xlsx",row.names=F)

cluster1.markers <- FindMarkers(pig, ident.1 = 0, logfc.threshold = 0.25, test.use = "roc", only.pos = TRUE)

png("de1.png")
VlnPlot(pig, features = c("DES", "HSPB7"))
dev.off()
png("de2.png")
VlnPlot(pig, features = c("UBE2C", "CKS2"), slot = "counts", log = TRUE)
dev.off()

#FeaturePlot(pig, features = c("MS4A1", "GNLY", "CD3E", "CD14", "FCER1A", "FCGR3A", "LYZ", "PPBP", "CD8A"))
png("gene.png")
FeaturePlot(pig, features = c("ACTA2", "TAGLN", "THBS1", "TPM2", "DES", "CRYAB", "TAGLN", "MYL9","CNN1"))
dev.off()

png("heat.png")
top10 <- pig.markers %>% group_by(cluster) %>% top_n(n = 10, wt = avg_logFC)
DoHeatmap(pig, features = top10$gene) + NoLegend()
dev.off()
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末瓜富,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子降盹,更是在濱河造成了極大的恐慌与柑,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蓄坏,死亡現(xiàn)場離奇詭異价捧,居然都是意外死亡,警方通過查閱死者的電腦和手機涡戳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進店門结蟋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人渔彰,你說我怎么就攤上這事嵌屎。” “怎么了恍涂?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵编整,是天一觀的道長。 經常有香客問我乳丰,道長掌测,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮汞斧,結果婚禮上夜郁,老公的妹妹穿的比我還像新娘。我一直安慰自己粘勒,他們只是感情好竞端,可當我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著庙睡,像睡著了一般事富。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上乘陪,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天统台,我揣著相機與錄音,去河邊找鬼啡邑。 笑死贱勃,一個胖子當著我的面吹牛,可吹牛的內容都是我干的谤逼。 我是一名探鬼主播贵扰,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼流部!你這毒婦竟也來了戚绕?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤枝冀,失蹤者是張志新(化名)和其女友劉穎舞丛,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體宾茂,經...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡瓷马,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了跨晴。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片欧聘。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖端盆,靈堂內的尸體忽然破棺而出怀骤,到底是詐尸還是另有隱情,我是刑警寧澤焕妙,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布蒋伦,位于F島的核電站,受9級特大地震影響焚鹊,放射性物質發(fā)生泄漏痕届。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望研叫。 院中可真熱鬧锤窑,春花似錦、人聲如沸嚷炉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽申屹。三九已至绘证,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間哗讥,已是汗流浹背嚷那。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留忌栅,地道東北人车酣。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓曲稼,卻偏偏與公主長得像索绪,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子贫悄,可洞房花燭夜當晚...
    茶點故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內容