單細(xì)胞測序--Seurat標(biāo)準(zhǔn)流程

單細(xì)胞測序--Seurat(上)--創(chuàng)建對象和數(shù)據(jù)預(yù)處理

參考:https://zhuanlan.zhihu.com/p/134124866

需要這三個(gè)文件:

1)barcodes.tsv:樣本中所有的細(xì)胞的條碼。這文件會(huì)按照 matrix.tsv 的順序來排列

[圖片上傳失敗...(image-b39475-1621137785277)]

2)genes.tsv:參照 (reference name)會(huì)按照Ensembl、NCBI、UCSC網(wǎng)站而有所不同, gene symbol會(huì)與 matrix.tsv 的順序一致。

image.png

3)matrix.mtx:包含 count matrix,行名與gene.tsv上的行名對應(yīng),列名與barcodes.tsv相對應(yīng)。

image.png

Seurat 內(nèi)的【Read10X()】函數(shù)可以將上述三文件 raw data整合為一個(gè)稀疏矩陣 (sparse matrix) ,

1、加載數(shù)據(jù) Load the PBMC dataset

pbmc.data <- Read10X(data.dir = "filtered_gene_bc_matrices/hg19/")

dim(pbmc.data)

[1] 32738 2700

pbmc <- CreateSeuratObject(counts = pbmc.data, project = "pbmc3k", min.cells = 3, min.features = 200)

參數(shù) :

counts: 未標(biāo)準(zhǔn)化的數(shù)據(jù),如原始計(jì)數(shù)或TPMs

project: 設(shè)置Seurat對象的項(xiàng)目名稱;默認(rèn)為"SeuratProject"

assay: 與初始輸入數(shù)據(jù)對應(yīng)的分析名稱。

meta.data: 添加到Seurat對象的其他細(xì)胞水平(cell-level)數(shù)據(jù)。一個(gè)matrix,其中行是cell name,列是附加的元數(shù)據(jù)字段。

min.cells --該feature至少在n個(gè)細(xì)胞內(nèi)被覆蓋; 該基因(feature)至少在3個(gè)細(xì)胞中被檢測到

min.features--規(guī)定了至少檢測到這些feature的細(xì)胞。即檢測到的基因至少有200個(gè)細(xì)胞才被用于分析

看看 pbmc 里面有啥

pbmc

An object of class Seurat

13714 features across 2700 samples within 1 assay

Active assay: RNA (13714 features, 0 variable features)

dim(pbmc) #行,列

[1] 13714 2700

head(pbmc@assays))

$RNA

Assay data with 13714 features for 2700 cells

First 10 features:

AL627309.1, AP006222.2, RP11-206L10.2, RP11-206L10.9,

LINC00115, NOC2L, KLHL17, PLEKHN1, RP11-54O7.17, HES4

head(pbmc@meta.data)) QC指標(biāo)存儲(chǔ)

                                orig.ident  nCount_RNA nFeature_RNA

AAACATACAACCAC-1 pbmc3k 2419 779

AAACATTGAGCTAC-1 pbmc3k 4903 1352

AAACATTGATCAGC-1 pbmc3k 3147 1129

AAACCGTGCTTCCG-1 pbmc3k 2639 960

AAACCGTGTATGCG-1 pbmc3k 980 521

AAACGCACTGGTAC-1 pbmc3k 2163 781

head(pbmc@active.assay))

[1] "RNA"

head(pbmc@active.ident))

AAACATACAACCAC-1 AAACATTGAGCTAC-1 AAACATTGATCAGC-1 AAACCGTGCTTCCG-1

pbmc3k pbmc3k pbmc3k pbmc3k

AAACCGTGTATGCG-1 AAACGCACTGGTAC-1

pbmc3k pbmc3k

Levels: pbmc3k

pbmc@project.name

[1] "pbmc3k"

head(rownames(pbmc))

[1] "AL627309.1" "AP006222.2" "RP11-206L10.2" "RP11-206L10.9"

[5] "LINC00115" "NOC2L"

head(colnames(pbmc))

[1] "AAACATACAACCAC-1" "AAACATTGAGCTAC-1" "AAACATTGATCAGC-1"

[4] "AAACCGTGCTTCCG-1" "AAACCGTGTATGCG-1" "AAACGCACTGGTAC-1"

2、標(biāo)準(zhǔn)的預(yù)處理流程 Standard pre-processing workflow

1)基于質(zhì)量控制指標(biāo)(QC metrics)和刪除不需要的細(xì)胞作進(jìn)一步分析:

Seurat允許根據(jù)任何用戶定義的標(biāo)準(zhǔn)過濾單元格(cells)。

通常使用的QC指標(biāo):

  1. 每個(gè)細(xì)胞內(nèi)被檢測到特有的基因(****unique genes****)的數(shù)目,unique feature會(huì)因?yàn)閿?shù)據(jù)質(zhì)量而調(diào)整。

    ▲低質(zhì)量的細(xì)胞或空的液滴一般含有較少的基因;

    ▲細(xì)胞雙重態(tài)或多重態(tài)可能呈現(xiàn)異常高的基因count值

  2. 細(xì)胞內(nèi)被監(jiān)測到的分子的總數(shù)目(與unique genes高度相關(guān))

  3. 匹配到線粒體基因組的read的百分比

    ▲低質(zhì)量/將要死去的細(xì)胞經(jīng)常呈現(xiàn)過度的線粒體污染情況;

    ▲使用function計(jì)算線粒體QC metrics, 此function可以計(jì)算源于feature集的count值的百分比

    ▲使用所有以【MT-】為起始的基因集合,作為線粒體基因集

數(shù)據(jù)質(zhì)控

質(zhì)控的參數(shù)主要有兩個(gè):

1.每個(gè)細(xì)胞測到的unique feature數(shù)目(unique feature代表一個(gè)細(xì)胞檢測到的基因的數(shù)目,可以根據(jù)數(shù)據(jù)的質(zhì)量進(jìn)行調(diào)整)

2.每個(gè)細(xì)胞檢測到的線粒體基因的比例,理論上線粒體基因組與核基因組相比,只占很小一部分。所以線粒體基因表達(dá)比例過高的細(xì)胞會(huì)被過濾。

(參考:https://zhuanlan.zhihu.com/p/145991506

pbmc[["percent.mt"]] <- PercentageFeatureSet(pbmc, pattern = "^MT-")

"[[" 操作符可以向?qū)ο笤獢?shù)據(jù)添加列

QC metrics 在 Seurat :head(pbmc@meta.data)) QC指標(biāo)存儲(chǔ)

▲過濾掉擁有 feature count>2500, or < 200 的細(xì)胞;

▲過濾掉含有> 5% 的線粒體 count值的細(xì)胞

使用 VlnPlot()進(jìn)行可視化****(基因表達(dá)、指標(biāo)、PC分?jǐn)?shù)等)

nFeature RNA: 每個(gè)細(xì)胞所檢測到的基因數(shù)目,也就是以前版本的nGene;

nCount RNA: 每個(gè)細(xì)胞測到所有基因的表達(dá)量之和,即這些基因數(shù)目一共測到的count數(shù)目,也就是以前版本的UMI數(shù)目;

percent.mt: 每個(gè)細(xì)胞所檢測到的線粒體基因,即測到的線粒體基因的比例。

VlnPlot(pbmc, features = c("nFeature_RNA", "nCount_RNA", "percent.mt"), ncol = 3)

image.png

FeatureScatter 一般用于可視化 feature-feature 關(guān)系,使用點(diǎn)圖查看兩個(gè)數(shù)據(jù)之間的相關(guān)性,也可以用于計(jì)算對象的任何東西,i.e. 對象數(shù)據(jù)中的列,PC分?jǐn)?shù)等。

plot1 <- FeatureScatter(pbmc, feature1 = "nCount_RNA", feature2 = "percent.mt")

plot2 <- FeatureScatter(pbmc, feature1 = "nCount_RNA", feature2 = "nFeature_RNA")

plot1 + plot2

image.png

選擇 200< gene 數(shù)目 <2500(根據(jù)violin圖1) & 線粒體數(shù)目 <5%的細(xì)胞(根據(jù)violin圖2)

pbmc <- subset(pbmc, subset = nFeature_RNA > 200 & nFeature_RNA < 2500 & percent.mt < 5)

pbmc

An object of class Seurat

13714 features across 2638 samples within 1 assay #genes:13714, cells:2638

Active assay: RNA (13714 features, 0 variable features)

2)數(shù)據(jù)標(biāo)準(zhǔn)化Normalizing the data

在去除了數(shù)據(jù)集中不需要的細(xì)胞后,下一步就是標(biāo)準(zhǔn)化數(shù)據(jù)。默認(rèn)設(shè)置下,使用全局-規(guī)模(global-scaling)的標(biāo)準(zhǔn)化方法 "LogNormalize",這方法按總體表達(dá)量,對每一個(gè)細(xì)胞的特征表達(dá)量(feature expression)進(jìn)行標(biāo)準(zhǔn)化,乘以一個(gè)比例因子(****scale factor****)(默認(rèn)為10,000),然后log轉(zhuǎn)換此結(jié)果。

標(biāo)準(zhǔn)化后的值儲(chǔ)存在【pbmc[["RNA"]]@data】。

pbmc <- NormalizeData(pbmc, normalization.method = "LogNormalize", scale.factor = 10000)

Performing log-normalization

0% 10 20 30 40 50 60 70 80 90 100%

[----|----|----|----|----|----|----|----|----|----|

高可變度基因的鑒定(基因的選擇) Identification of highly variable features (feature selection)

下一步,計(jì)算數(shù)據(jù)集里面基因子集,該子集呈現(xiàn)出高度的細(xì)胞間變異(在有些細(xì)胞內(nèi)高表達(dá),在其他細(xì)胞內(nèi)低表達(dá))。還發(fā)現(xiàn)了專注在下游分析內(nèi)的基因可幫助突出單細(xì)胞數(shù)據(jù)內(nèi)的生物信號(hào)。

Seurat3 ,根據(jù)舊有版本升級(jí)了一下,通過使用【FindVariableFeatures 】函數(shù),直接對單細(xì)胞數(shù)據(jù)中固有內(nèi)的均值方差(mean-variance)的關(guān)系建模。在默認(rèn)設(shè)置下,每個(gè)數(shù)據(jù)集返回2,000個(gè)feature。這些數(shù)據(jù)會(huì)被用于下游數(shù)據(jù)分析,如PCA。

pbmc <- FindVariableFeatures(pbmc, selection.method = "vst", nfeatures = 2000)

#鑒定前10個(gè)高度可變的基因 Identify the 10 most highly variable genes

top10 <- head(VariableFeatures(pbmc), 10)

top10

[1] "PPBP" "LYZ" "S100A9" "IGLL5" "GNLY" "FTL" "PF4" "FTH1"

[9] "GNG11" "S100A8"

#在有l(wèi)abel或無label下,畫出2000個(gè)高變異的基因

plot1 <- VariableFeaturePlot(pbmc)

plot2 <- LabelPoints(plot = plot1, points = top10, repel = TRUE)

plot1 + plot2

CombinePlots(plots = list(plot1, plot2))

image

對數(shù)據(jù)去中心化 Scaling the data

使用線性轉(zhuǎn)換(縮放'scaling'),它是一個(gè)降維技巧(如PCA)的標(biāo)準(zhǔn)預(yù)處理步驟,

目的:所謂去中心化,就是將樣本X中的每個(gè)觀測值都減掉樣本均值,這樣做的好處是能夠使得求解協(xié)方差矩陣變得更容易。(參考:http://www.lxweimin.com/p/c2850302b644

【ScaleData】函數(shù):

▲轉(zhuǎn)換每個(gè)基因的表達(dá)量,使得細(xì)胞之間的平均表達(dá)量為0;

▲按比例縮小每個(gè)基因的表達(dá)量,使得細(xì)胞之間的方差(variance)為1;

   ?此步驟給予了下游分析的同等權(quán)重(equal weight),使得高表達(dá)基因不會(huì)占主要地位;

▲改結(jié)果會(huì)被儲(chǔ)存在【pbmc[["RNA"]]@scale.data】

all.genes <- rownames(pbmc)

pbmc <- ScaleData****(pbmc, features = all.genes)

? 在【Seurat v2】里面,可以使用【ScaleData】函數(shù)來去除單細(xì)胞數(shù)據(jù)集里面一些不需要的變量來源。例如,我們可以“退回(regress out)”與例如細(xì)胞周期階段相關(guān)的異質(zhì)性,或與線粒體污染相關(guān)的異質(zhì)性。

pbmc <- ScaleData(pbmc, vars.to.regress = "percent.mt")
<meta name="source" content="lake">

單細(xì)胞測序--Seurat(下)--線性降維、識(shí)別差異基因、分配細(xì)胞類型標(biāo)識(shí)

1、先跑 PCA 進(jìn)行線性降維 Perform linear dimensional reduction

Seurat 在識(shí)別細(xì)胞亞型時(shí),先用 PCA 挑出幾個(gè)貢獻(xiàn)率最大的主成分,再用已選出的主成分分值來將進(jìn)一步聚類分析,而非全部細(xì)胞一次性進(jìn)行聚類分析。

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

多種可視化 PCA 結(jié)果的方法 Examine and visualize PCA results a few different ways

(1)

print(pbmc[["pca"]], dims = 1:5, nfeatures = 5) #將其分為5個(gè)主成分

PC_ 1

Positive: CST3, TYROBP, LST1, AIF1, FTL

Negative: MALAT1, LTB, IL32, IL7R, CD2

PC_ 2

Positive: CD79A, MS4A1, TCL1A, HLA-DQA1, HLA-DQB1

Negative: NKG7, PRF1, CST7, GZMB, GZMA

PC_ 3

Positive: HLA-DQA1, CD79A, CD79B, HLA-DQB1, HLA-DPB1

Negative: PPBP, PF4, SDPR, SPARC, GNG11

PC_ 4

Positive: HLA-DQA1, CD79B, CD79A, MS4A1, HLA-DQB1

Negative: VIM, IL7R, S100A6, IL32, S100A8

PC_ 5

Positive: GZMB, NKG7, S100A8, FGFBP2, GNLY

Negative: LTB, IL7R, CKB, VIM, MS4A7

(2)

VizDimLoadings(pbmc, dims = 1:2, reduction = "pca") #將其分成兩個(gè)主成分

image

(3)

DimPlot(pbmc, reduction = "pca")

image

(4)

可使用【DimHeatmap】對數(shù)據(jù)集內(nèi)的異質(zhì)性的主要數(shù)據(jù)作簡單探索,在決定哪個(gè)PC可包含在內(nèi)被用作下有分析時(shí),此函數(shù)顯得特別有用。細(xì)胞和feature根據(jù)PCA的打分值來設(shè)置。設(shè)置【cells】為一數(shù)值繪制出范圍兩端的“極端”細(xì)胞,這可顯著地加速大數(shù)據(jù)集圖表的繪制。盡管這是一監(jiān)督算法分析,發(fā)現(xiàn)這仍是用于探索相關(guān)feature特征的有價(jià)值的工具。

DimHeatmap(pbmc, dims = 1, cells = 500, balanced = TRUE)

image

DimHeatmap(pbmc, dims = 1:15, cells = 500, balanced = TRUE)

image

2、評估最顯著的主成分,決定數(shù)據(jù)集的維數(shù) Determine the 'dimensionality' of the dataset

使用了受JackStraw 程序啟發(fā)的重新取樣測試( resampling test )。鑒定了“顯著的”PC作為那些擁有低P-value特征的強(qiáng)有力的富集。

bmc <- JackStraw(pbmc, num.replicate = 100) #此步耗時(shí)較長

pbmc <- ScoreJackStraw(pbmc, dims = 1:20)

【JackStrawPlot】函數(shù)為每一個(gè)PC的P-value的分布與一均勻分布( uniform distribution)的對比提供了可視化的工具(虛線)。“顯著的”PC會(huì)顯示帶有較低的P-value的特征的強(qiáng)富集(實(shí)線上的虛線)。在此情況下,在第一個(gè)10~12 PC之后,有一個(gè)顯著的斷崖式下降。

JackStrawPlot(pbmc, dims = 1:15)

可見下圖前5個(gè)PC 與后5個(gè)PC顯著分開,挑選 p-value < 0.05的主成分。

image

3、細(xì)胞的聚類分析 Cluster the cells

【FindNeighbors】函數(shù)將細(xì)胞距離矩陣分區(qū)為小聚群,將一圖劃分為高度互通的“quasi-cliques”或“communities”內(nèi)。該函數(shù)將先前定義好的數(shù)據(jù)集(起初10個(gè)PC)的維度作為輸入。

pbmc <- FindNeighbors(pbmc, dims = 1:10)

pbmc <- F****indClusters(pbmc, resolution = 0.5)

Modularity Optimizer version 1.3.0 by Ludo Waltman and Nees Jan van Ec

Number of nodes: 2638

Number of edges: 96033

Running Louvain algorithm...

Maximum modularity in 10 random starts: 0.8720

Number of communities: 9

Elapsed time: 0 seconds

查看前五個(gè)聚類ID結(jié)果:

head(Idents(pbmc), 5)

AAACATACAACCAC-1 AAACATTGAGCTAC-1 AAACATTGATCAGC-1 AAACCGTGCTTCCG-1

1 3 1 2

AAACCGTGTATGCG-1

6

Levels: 0 1 2 3 4 5 6 7 8

4、UMAP/tSNE的非線性降維分析 Run non-linear dimensional reduction (UMAP/tSNE)

非線性多降維的技巧,如 tSNE 和 UMAP,用于可視化和探索這些數(shù)據(jù)集。它們將相似的細(xì)胞放置在低維度的空間,使用相同的 PC 作為聚類分群分析的它們輸入數(shù)據(jù)。可設(shè)置 【label = TRUE】或【LabelClusters】函數(shù)幫助標(biāo)記細(xì)胞群。

pbmc <- RunUMAP(pbmc, dims = 1:10)

DimPlot(pbmc, reduction = "umap")

image

5、識(shí)別差異表達(dá)的 marker 基因 Finding differentially expressed features (cluster biomarkers)

Seurat可尋找通過差異表達(dá)決定分群的 markers。【FindAllMarkers】函數(shù)自動(dòng)化完成所有小集群的分組,你可以測試小集群的分組,或其他細(xì)胞與細(xì)胞之間的,或針對所有細(xì)胞的分組。【ident.1】函數(shù)鑒定了單一群落里面的陽性和陰性細(xì)胞(positive and negative markers)。

【min.pct】需要檢測到兩組之間最小的差異,這差異必須是存在一定量的差異表達(dá)。

找出 cluster1 中所有的marker

cluster1.markers <- FindMarkers(pbmc, ident.1 = 1, min.pct = 0.25)

head(cluster1.markers, n = 5)

p_val avg_logFC pct.1 pct.2 p_val_adj

IL32 1.894810e-92 0.8373872 0.948 0.464 2.598542e-88

LTB 7.953303e-89 0.8921170 0.981 0.642 1.090716e-84

CD3D 1.655937e-70 0.6436286 0.919 0.431 2.270951e-66

IL7R 3.688893e-68 0.8147082 0.747 0.325 5.058947e-64

LDHB 2.292819e-67 0.6253110 0.950 0.613 3.144372e-63

找出區(qū)別于cluster 0 和cluster 3 與c luster 5的所有標(biāo)記

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

head(cluster5.markers, n = 5)

p_val avg_logFC pct.1 pct.2 p_val_adj

FCGR3A 7.583625e-209 2.963144 0.975 0.037 1.040018e-204

IFITM3 2.500844e-199 2.698187 0.975 0.046 3.429657e-195

CFD 1.763722e-195 2.362381 0.938 0.037 2.418768e-191

CD68 4.612171e-192 2.087366 0.926 0.036 6.325132e-188

RP11-290F20.3 1.846215e-188 1.886288 0.840 0.016 2.531900e-184

找出與所有剩余細(xì)胞對比的,每個(gè)cluster的標(biāo)記,僅匯報(bào)陽性細(xì)胞

pbmc.markers <- FindAllMarkers(pbmc, only.pos = TRUE, min.pct = 0.25, logfc.threshold = 0.25)

pbmc.markers %>% group_by(cluster) %>% top_n(n = 2, wt = avg_logFC) #管道符號(hào)

Registered S3 method overwritten by 'cli':

method from

print.boxx spatstat

A tibble: 18 x 7

Groups: cluster [9]

p_val avg_logFC pct.1 pct.2 p_val_adj cluster gene

1 1.96e-107 0.730 0.901 0.594 2.69e-103 0 LDHB

2 1.61e- 82 0.922 0.436 0.11 2.20e- 78 0 CCR7

3 7.95e- 89 0.892 0.981 0.642 1.09e- 84 1 LTB

4 1.85e- 60 0.859 0.422 0.11 2.54e- 56 1 AQP3

5 0. 3.86 0.996 0.215 0. 2 S100A9

6 0. 3.80 0.975 0.121 0. 2 S100A8

7 0. 2.99 0.936 0.041 0. 3 CD79A

8 9.48e-271 2.49 0.622 0.022 1.30e-266 3 TCL1A

9 2.96e-189 2.12 0.985 0.24 4.06e-185 4 CCL5

10 2.57e-158 2.05 0.587 0.059 3.52e-154 4 GZMK

11 3.51e-184 2.30 0.975 0.134 4.82e-180 5 FCGR3A

12 2.03e-125 2.14 1 0.315 2.78e-121 5 LST1

13 7.95e-269 3.35 0.961 0.068 1.09e-264 6 GZMB

14 3.13e-191 3.69 0.961 0.131 4.30e-187 6 GNLY

15 1.48e-220 2.68 0.812 0.011 2.03e-216 7 FCER1A

16 1.67e- 21 1.99 1 0.513 2.28e- 17 7 HLA-DPB1

17 7.73e-200 5.02 1 0.01 1.06e-195 8 PF4

18 3.68e-110 5.94 1 0.024 5.05e-106 8 PPBP

Seurat有多種微分表達(dá)式測試(tests for differential expression),可以在【test.use】參數(shù)內(nèi)被設(shè)置。例如,ROC 測試會(huì)給任何獨(dú)立的maker(范圍由0-隨機(jī),到1-完美)返回一個(gè)“分類能力”。

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

【VlnPlot】顯示了集群里面表達(dá)量的概率分布,【FeaturePlot】(可用于可視化 tSNE 或 PCA圖的特征表達(dá)量)是最經(jīng)常使用的可視化工具。建議探索【 RidgePlot】、CellScatter】和【DotPlot】 作為另一種方法來探索數(shù)據(jù)集。

VlnPlot(pbmc, features = c("MS4A1", "CD79A"))

image

使用 raw counts 畫圖

VlnPlot(pbmc, features = c("NKG7", "PF4"), slot = "counts****", log = TRUE)

image

FeaturePlot(pbmc, features = c("MS4A1", "GNLY", "CD3E", "CD14", "FCER1A", "FCGR3A", "LYZ", "PPBP",

  •                            "CD8A"))
    
image

【DoHeatmap】對給定的細(xì)胞和特征生成一熱圖。在本例子中,我們對每個(gè)集群畫出前20個(gè)marker(如果marker量少于20就全部的畫上)

top10 <- pbmc.markers %>% group_by(cluster) %>% top_n(n = 10, wt = avg_logFC)

DoHeatmap(pbmc, features = top10$gene) + NoLegend()

image

6、給cluster 分配細(xì)胞類型標(biāo)識(shí) Assigning cell type identity to clusters

使用規(guī)范 marker ,以便匹配無偏倚的聚類到已知的細(xì)胞類型。

image

names(new.cluster.ids) <- levels(pbmc)

pbmc <- RenameIdents(pbmc, new.cluster.ids)

DimPlot(pbmc, reduction = "umap", label = TRUE, pt.size = 0.5) + NoLegend()

image

saveRDS(pbmc, file = "../pbmc3k_final.rds")
參考:單細(xì)胞測序--Seurat(下)--線性降維、識(shí)別差異基因、分配細(xì)胞類型標(biāo)識(shí) · 語雀 (yuque.com)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,363評論 6 532
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,497評論 3 416
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,305評論 0 374
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,962評論 1 311
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,727評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,193評論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,257評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,411評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,945評論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,777評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,978評論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,519評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,216評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,642評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,878評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,657評論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,960評論 2 373

推薦閱讀更多精彩內(nèi)容