scATAC分析神器ArchR初探-利用ArchR豐富ChromVAR偏差(13)

scATAC分析神器ArchR初探-簡介(1)
scATAC分析神器ArchR初探-ArchR進(jìn)行doublet處理(2)
scATAC分析神器ArchR初探-創(chuàng)建ArchRProject(3)
scATAC分析神器ArchR初探-使用ArchR降維(4)
scATAC分析神器ArchR初探--使用ArchR進(jìn)行聚類(5)
scATAC分析神器ArchR初探-單細(xì)胞嵌入(6)
scATAC分析神器ArchR初探-使用ArchR計(jì)算基因活性值和標(biāo)記基因(7)
scATAC分析神器ArchR初探-scRNA-seq確定細(xì)胞類型(8)
scATAC分析神器ArchR初探-ArchR中的偽批次重復(fù)處理(9)
scATAC分析神器ArchR初探-使用ArchR-peak-calling(10)
scATAC分析神器ArchR初探-使用ArchR識(shí)別標(biāo)記峰(11)
scATAC分析神器ArchR初探-使用ArchR進(jìn)行主題和功能豐富(12)
scATAC分析神器ArchR初探-利用ArchR豐富ChromVAR偏差(13)
scATAC分析神器ArchR初探-使用ArchR進(jìn)行足跡(14)
scATAC分析神器ArchR初探-使用ArchR進(jìn)行整合分析(15)
scATAC分析神器ArchR初探-使用ArchR進(jìn)行軌跡分析(16)

13-利用ArchR豐富ChromVAR偏差

如前幾章所示,TF基序富集可以幫助我們預(yù)測哪些調(diào)控因子在我們感興趣的細(xì)胞類型中最活躍。然而寸痢,這些富集不是基于每個(gè)細(xì)胞計(jì)算的杰妓,并且它們沒有考慮到Tn5轉(zhuǎn)座酶的插入序列偏差侮邀。chromVAR是Greenlead Lab打包的R乔夯,它是為解決這些問題而創(chuàng)建的。chromVAR用于根據(jù)稀疏染色質(zhì)可及性數(shù)據(jù)預(yù)測每個(gè)細(xì)胞的TF活性富集狂鞋。chromVAR的兩個(gè)主要輸出是:

  1. “偏差”-偏差是對給定特征(即基序)的每個(gè)單元可訪問性與所有單元格或樣本均值的預(yù)期可訪問性相差多少的偏差校正度量著淆。
  2. “ z分?jǐn)?shù)”-z分?jǐn)?shù)(也稱為“偏差分?jǐn)?shù)”)是所有像元上每個(gè)偏差校正偏差的z分?jǐn)?shù)劫狠。偏差評分的絕對值與每個(gè)單元的讀取深度相關(guān)拴疤。這是因?yàn)椋S著閱讀次數(shù)的增加独泞,給定特征(即基序)在每個(gè)單元可訪問性方面與預(yù)期的差異要比偶然發(fā)生的差異更有把握呐矾。

chromVAR的主要局限性之一是它是在scATAC-seq數(shù)據(jù)生成的早期階段設(shè)計(jì)的,當(dāng)時(shí)實(shí)驗(yàn)由數(shù)百個(gè)細(xì)胞組成懦砂。在這種實(shí)驗(yàn)規(guī)模下蜒犯,chromVAR可以輕松地將整個(gè)逐峰矩陣讀取到內(nèi)存中,以快速計(jì)算TF偏差荞膘。但是罚随,當(dāng)前的實(shí)驗(yàn)方法使用了成千上萬個(gè)單元,生成了逐個(gè)單元的矩陣羽资,這些矩陣很難讀入內(nèi)存毫炉。即使對于大小適中的50,000個(gè)數(shù)據(jù)集,這也會(huì)導(dǎo)致運(yùn)行時(shí)間和內(nèi)存使用量急劇增加削罩。

為了避免這些限制,ArchR通過獨(dú)立分析樣本子矩陣來實(shí)施相同的chromVAR分析工作流程费奸。


首先弥激,ArchR讀取每個(gè)子樣本中所有單元格上每個(gè)峰的全局可訪問性。其次愿阐,對于每個(gè)峰微服,ArchR都會(huì)識(shí)別一組與GC含量和可及性相匹配的背景峰。第三缨历,ArchR使用峰的背景設(shè)置和全局可訪問性來獨(dú)立計(jì)算每個(gè)樣本的帶有chromVAR的偏差校正偏差以蕴。此實(shí)現(xiàn)要求在任何給定時(shí)間僅將5,000-10,000個(gè)單元中的數(shù)據(jù)加載到內(nèi)存中,從而最大程度地減少內(nèi)存需求辛孵,使用chromVAR進(jìn)行可擴(kuò)展的分析并提高運(yùn)行時(shí)性能丛肮。

13.1主題偏差

首先,請確保已在中添加了主題注釋ArchRProject魄缚。

if("Motif" %ni% names(projHeme5@peakAnnotation)){
    projHeme5 <- addMotifAnnotations(ArchRProj = projHeme5, motifSet = "cisbp", name = "Motif")
}

我們還需要添加一組背景峰宝与,用于計(jì)算偏差。使用該chromVAR::getBackgroundPeaks()函數(shù)選擇背景峰冶匹,該函數(shù)根據(jù)GC含量的相似性和所有樣品之間的碎片數(shù)(使用馬氏距離)對峰進(jìn)行采樣习劫。

projHeme5 <- addBgdPeaks(projHeme5)

現(xiàn)在,我們準(zhǔn)備使用該addDeviationsMatrix()函數(shù)計(jì)算所有圖案注釋中每個(gè)單元的偏差嚼隘。該函數(shù)有一個(gè)可選參數(shù)诽里,名為matrixName,它使我們能夠定義將存儲(chǔ)在Arrow文件中的偏差矩陣的名稱飞蛹。如果我們沒有為該參數(shù)提供值谤狡,如下面的示例所示灸眼,此函數(shù)通過在的名稱上添加單詞“ Matrix”來創(chuàng)建矩陣名稱peakAnnotation。下面的示例在我們每個(gè)名為“ MotifMatrix”的Arrow文件中創(chuàng)建一個(gè)偏差矩陣豌汇。

projHeme5 <- addDeviationsMatrix(
  ArchRProj = projHeme5, 
  peakAnnotation = "Motif",
  force = TRUE
)

要訪問這些偏差幢炸,我們使用getVarDeviations()函數(shù)。如果我們希望該函數(shù)返回一個(gè)ggplot對象拒贱,則進(jìn)行設(shè)置宛徊,plot = TRUE否則,該函數(shù)將返回該DataFrame對象逻澳。該head說的DataFrame對象是默認(rèn)運(yùn)行該功能時(shí)顯示闸天。

plotVarDev <- getVarDeviations(projHeme5, name = "MotifMatrix", plot = TRUE)

從的上述快照中DataFrame,您可以看到seqnamesMotifMatrix不是染色體斜做。通常情況下苞氮,像矩陣TileMatrixPeakMatrixGeneScoreMatrix我們保存在染色體上的信息seqnames瓤逼。在MotifMatrix不具有任何相應(yīng)的位置上的信息笼吟,但,相反霸旗,同時(shí)存儲(chǔ)從chromVAR了“devations”和“z分?jǐn)?shù)”到使用兩個(gè)不同seqnames相同的基質(zhì)- deviationsz贷帮。稍后,如果您嘗試在這類函數(shù)中使用MotifMatrix(屬于類Sparse.Assays.Matrix)诱告,這一點(diǎn)就變得很重要getMarkerFeatures()撵枢。在這些類型的操作中,ArchR會(huì)希望您將其子集化為MotifMatrix兩者之一seqnames(即精居,選擇z得分或偏差以執(zhí)行計(jì)算)锄禽。

然后,我們可以繪制這些變量偏差靴姿。

plotVarDev

要保存此圖的可編輯矢量化版本沃但,我們使用plotPDF()函數(shù)。

plotPDF(plotVarDev, name = "Variable-Motif-Deviation-Scores", width = 5, height = 5, ArchRProj = projHeme5, addDOC = FALSE)

如果我們想提取一個(gè)基序子集進(jìn)行下游分析該怎么辦佛吓?我們可以使用getFeatures()函數(shù)來做到這一點(diǎn)绽慈。paste(motifs, collapse="|")下面的語句創(chuàng)建了一個(gè)連接or語句,該語句可以選擇所有主題辈毯。

motifs <- c("GATA1", "CEBPA", "EBF1", "IRF4", "TBX21", "PAX5")
markerMotifs <- getFeatures(projHeme5, select = paste(motifs, collapse="|"), useMatrix = "MotifMatrix")
markerMotifs

如上所述坝疼,MotifMatrix包含seqnamesz得分和偏差,如上用“ z:”和“偏差:”所示谆沃。要僅獲取與z得分相對應(yīng)的特征钝凶,我們可以使用grep。不幸的是,在上面顯示的示例主題中耕陷,您可以看到掂名,除了“ EBF1”之外,我們還選擇了“ SREBF1”哟沫,我們不想對其進(jìn)行分析饺蔑。因此,我們在下面使用%ni%表達(dá)式(它是ArchR輔助函數(shù))將其刪除嗜诀,該函數(shù)提供與%in%R 的反義詞猾警。

markerMotifs <- grep("z:", markerMotifs, value = TRUE)
markerMotifs <- markerMotifs[markerMotifs %ni% "z:SREBF1_22"]
markerMotifs

現(xiàn)在我們有了我們感興趣的功能的名稱,我們可以繪制每個(gè)群集的chromVAR偏差評分的分布隆敢。請注意发皿,我們提供了我們在基因評分分析期間先前計(jì)算的估算權(quán)重。提醒一下拂蝎,這些估算權(quán)重使我們能夠使附近單元格上的信號(hào)平滑穴墅,這對于稀疏的scATAC-seq數(shù)據(jù)很有幫助。

p <- plotGroups(ArchRProj = projHeme5, 
  groupBy = "Clusters2", 
  colorBy = "MotifMatrix", 
  name = markerMotifs,
  imputeWeights = getImputeWeights(projHeme5)
)

我們可以cowplot在一個(gè)圖中繪制所有這些圖案的分布温自。

p2 <- lapply(seq_along(p), function(x){
  if(x != 1){
    p[[x]] + guides(color = FALSE, fill = FALSE) + 
    theme_ArchR(baseSize = 6) +
    theme(plot.margin = unit(c(0.1, 0.1, 0.1, 0.1), "cm")) +
    theme(
        axis.text.y=element_blank(), 
        axis.ticks.y=element_blank(),
        axis.title.y=element_blank()
    ) + ylab("")
  }else{
    p[[x]] + guides(color = FALSE, fill = FALSE) + 
    theme_ArchR(baseSize = 6) +
    theme(plot.margin = unit(c(0.1, 0.1, 0.1, 0.1), "cm")) +
    theme(
        axis.ticks.y=element_blank(),
        axis.title.y=element_blank()
    ) + ylab("")
  }
})
do.call(cowplot::plot_grid, c(list(nrow = 1, rel_widths = c(2, rep(1, length(p2) - 1))),p2))

要保存此圖的可編輯矢量化版本玄货,我們使用plotPDF()函數(shù)。

plotPDF(p, name = "Plot-Groups-Deviations-w-Imputation", width = 5, height = 5, ArchRProj = projHeme5, addDOC = FALSE)

無需查看這些z分?jǐn)?shù)的分布悼泌,而是可以像我們之前對基因分?jǐn)?shù)所做的那樣誉结,將z分?jǐn)?shù)覆蓋在我們的UMAP嵌入上。

p <- plotEmbedding(
    ArchRProj = projHeme5, 
    colorBy = "MotifMatrix", 
    name = sort(markerMotifs), 
    embedding = "UMAP",
    imputeWeights = getImputeWeights(projHeme5)
)

我們可以使用繪制所有這些圖案UMAP cowplot券躁。

p2 <- lapply(p, function(x){
    x + guides(color = FALSE, fill = FALSE) + 
    theme_ArchR(baseSize = 6.5) +
    theme(plot.margin = unit(c(0, 0, 0, 0), "cm")) +
    theme(
        axis.text.x=element_blank(), 
        axis.ticks.x=element_blank(), 
        axis.text.y=element_blank(), 
        axis.ticks.y=element_blank()
    )
})
do.call(cowplot::plot_grid, c(list(ncol = 3),p2))

要查看這些TF偏差z分?jǐn)?shù)與通過相應(yīng)TF基因的基因得分推斷的基因表達(dá)相比如何,我們可以在UMAP嵌入中疊加每個(gè)TF的基因得分掉盅。

markerRNA <- getFeatures(projHeme5, select = paste(motifs, collapse="|"), useMatrix = "GeneScoreMatrix")
markerRNA <- markerRNA[markerRNA %ni% c("SREBF1","CEBPA-DT")]
markerRNA
p <- plotEmbedding(
    ArchRProj = projHeme5, 
    colorBy = "GeneScoreMatrix", 
    name = sort(markerRNA), 
    embedding = "UMAP",
    imputeWeights = getImputeWeights(projHeme5)
)
p2 <- lapply(p, function(x){
    x + guides(color = FALSE, fill = FALSE) + 
    theme_ArchR(baseSize = 6.5) +
    theme(plot.margin = unit(c(0, 0, 0, 0), "cm")) +
    theme(
        axis.text.x=element_blank(), 
        axis.ticks.x=element_blank(), 
        axis.text.y=element_blank(), 
        axis.ticks.y=element_blank()
    )
})
do.call(cowplot::plot_grid, c(list(ncol = 3),p2))

同樣也拜,由于我們之前已將scATAC-seq數(shù)據(jù)與相應(yīng)的scRNA-seq數(shù)據(jù)鏈接在一起,因此我們可以在UMAP嵌入中繪制每個(gè)TF的鏈接基因表達(dá)趾痘。

markerRNA <- getFeatures(projHeme5, select = paste(motifs, collapse="|"), useMatrix = "GeneIntegrationMatrix")
markerRNA <- markerRNA[markerRNA %ni% c("SREBF1","CEBPA-DT")]
markerRNA
p <- plotEmbedding(
    ArchRProj = projHeme5, 
    colorBy = "GeneIntegrationMatrix", 
    name = sort(markerRNA), 
    embedding = "UMAP",
    continuousSet = "blueYellow",
    imputeWeights = getImputeWeights(projHeme5)
)
p2 <- lapply(p, function(x){
    x + guides(color = FALSE, fill = FALSE) + 
    theme_ArchR(baseSize = 6.5) +
    theme(plot.margin = unit(c(0, 0, 0, 0), "cm")) +
    theme(
        axis.text.x=element_blank(), 
        axis.ticks.x=element_blank(), 
        axis.text.y=element_blank(), 
        axis.ticks.y=element_blank()
    )
})
do.call(cowplot::plot_grid, c(list(ncol = 3),p2))
13.2 ArchR和自定義偏差

在“峰注釋富集”一章中慢哈,我們介紹了如何為任何一組基因組區(qū)域創(chuàng)建峰注釋。這包括(i)ArchR支持的區(qū)域集永票,例如來自ENCODE的精選TF結(jié)合位點(diǎn)和來自批量ATAC-seq的峰集卵贱,以及(ii)用戶提供的自定義區(qū)域集。如果您尚未閱讀本節(jié)侣集,建議您這樣做以更好地了解峰注釋的工作方式键俱。

這些峰注釋可以與圖案相同的方式用于偏差計(jì)算中。在這里世分,我們提供了有關(guān)如何進(jìn)行這些分析的示例编振,但請注意,下游分析與上一節(jié)中有關(guān)主題的顯示相同臭埋,因此踪央,我們沒有在代碼的每個(gè)步驟中提供詳盡的細(xì)節(jié)臀玄。在Arrow文件中創(chuàng)建偏差矩陣后,其余部分相同畅蹂。

13.2.1編碼TFBS

如果您尚未為“ EncodeTFBS”區(qū)域集添加注釋矩陣健无,請立即執(zhí)行。

if("EncodeTFBS" %ni% names(projHeme5@peakAnnotation)){
    projHeme5 <- addArchRAnnotations(ArchRProj = projHeme5, collection = "EncodeTFBS")
}

然后液斜,我們創(chuàng)建一個(gè)偏差矩陣累贤,將此峰注釋提供給peakAnnotation參數(shù)。

projHeme5 <- addDeviationsMatrix(
  ArchRProj = projHeme5, 
  peakAnnotation = "EncodeTFBS",
  force = TRUE
)

我們可以創(chuàng)建排名偏差的點(diǎn)圖旗唁。

plotVarDev <- getVarDeviations(projHeme5, plot = TRUE, name = "EncodeTFBSMatrix")
plotVarDev

plotPDF(plotVarDev, name = "Variable-EncodeTFBS-Deviation-Scores", width = 5, height = 5, ArchRProj = projHeme5, addDOC = FALSE)

或者畦浓,我們可以將這些TF結(jié)合位點(diǎn)子集化為我們感興趣的特定基序,然后在UMAP嵌入中繪制每個(gè)單元的偏差z分?jǐn)?shù)检疫。

tfs <- c("GATA_1", "CEBPB", "EBF1", "IRF4", "TBX21", "PAX5")
getFeatures(projHeme5, select = paste(tfs, collapse="|"), useMatrix = "EncodeTFBSMatrix")
markerTFs <- getFeatures(projHeme5, select = paste(tfs, collapse="|"), useMatrix = "EncodeTFBSMatrix")
markerTFs <- sort(grep("z:", markerTFs, value = TRUE))
TFnames <- stringr::str_split(stringr::str_split(markerTFs, pattern = "\\.", simplify=TRUE)[,2], pattern = "-", simplify = TRUE)[,1]
markerTFs <- markerTFs[!duplicated(TFnames)]
markerTFs
p <- plotEmbedding(
    ArchRProj = projHeme5, 
    colorBy = "EncodeTFBSMatrix", 
    name = markerTFs, 
    embedding = "UMAP",
    imputeWeights = getImputeWeights(projHeme5)
)
p2 <- lapply(p, function(x){
    x + guides(color = FALSE, fill = FALSE) + 
    theme_ArchR(baseSize = 6.5) +
    theme(plot.margin = unit(c(0, 0, 0, 0), "cm")) +
    theme(
        axis.text.x=element_blank(), 
        axis.ticks.x=element_blank(), 
        axis.text.y=element_blank(), 
        axis.ticks.y=element_blank()
    )
})
do.call(cowplot::plot_grid, c(list(ncol = 3),p2))
13.2.2批量ATAC序列

同樣讶请,我們可以使用ArchR固化的批量ATAC-seq峰集進(jìn)行圖案偏差計(jì)算。

如果您尚未為“ EncodeTFBS”區(qū)域集添加注釋矩陣屎媳,請立即執(zhí)行夺溢。

if("ATAC" %ni% names(projHeme5@peakAnnotation)){
    projHeme5 <- addArchRAnnotations(ArchRProj = projHeme5, collection = "ATAC")
}

然后,我們創(chuàng)建一個(gè)偏差矩陣烛谊,將此峰注釋提供給peakAnnotation參數(shù)风响。

projHeme5 <- addDeviationsMatrix(
  ArchRProj = projHeme5, 
  peakAnnotation = "ATAC",
  force = TRUE
)

我們可以創(chuàng)建排名偏差的點(diǎn)圖。

plotVarDev <- getVarDeviations(projHeme5, plot = TRUE, name = "ATACMatrix")
plotVarDev
plotPDF(plotVarDev, name = "Variable-ATAC-Deviation-Scores", width = 5, height = 5, ArchRProj = projHeme5, addDOC = FALSE)

或者丹禀,我們可以在UMAP嵌入中為每個(gè)像元繪制每個(gè)單元格的偏差z分?jǐn)?shù)状勤。

ATACPeaks <- c("Heme_HSC", "Heme_LMPP", "Heme_Ery", "Heme_Mono", "Heme_CD4", "Heme_CD8", "Heme_B", "Heme_NK", "IAtlas_DC_Plasmacytoid")
getFeatures(projHeme5, select = paste(ATACPeaks, collapse="|"), useMatrix = "ATACMatrix")
markerATAC <- getFeatures(projHeme5, select = paste(ATACPeaks, collapse="|"), useMatrix = "ATACMatrix")
markerATAC <- sort(grep("z:", markerATAC, value = TRUE))
markerATAC
p <- plotEmbedding(
    ArchRProj = projHeme5, 
    colorBy = "ATACMatrix", 
    name = markerATAC, 
    embedding = "UMAP",
    imputeWeights = getImputeWeights(projHeme5)
)
p2 <- lapply(p, function(x){
    x + guides(color = FALSE, fill = FALSE) + 
    theme_ArchR(baseSize = 6.5) +
    theme(plot.margin = unit(c(0, 0, 0, 0), "cm")) +
    theme(
        axis.text.x=element_blank(), 
        axis.ticks.x=element_blank(), 
        axis.text.y=element_blank(), 
        axis.ticks.y=element_blank()
    )
})
do.call(cow
13.2.3自定義偏差

代替使用上述的ArchR固化區(qū)域集,我們可以提供自己的自定義區(qū)域集作為峰注解双泪。這些自定義注釋的使用方式與ArchR-curated注釋的使用方式完全相同持搜。

首先,如果您尚未在上一章中創(chuàng)建此“ EncodePeaks”注釋焙矛,請通過下載一些ENCODE峰集并調(diào)用來創(chuàng)建它addPeakAnnotations()葫盼。

EncodePeaks <- c(
  Encode_K562_GATA1 = "https://www.encodeproject.org/files/ENCFF632NQI/@@download/ENCFF632NQI.bed.gz",
  Encode_GM12878_CEBPB = "https://www.encodeproject.org/files/ENCFF761MGJ/@@download/ENCFF761MGJ.bed.gz",
  Encode_K562_Ebf1 = "https://www.encodeproject.org/files/ENCFF868VSY/@@download/ENCFF868VSY.bed.gz",
  Encode_K562_Pax5 = "https://www.encodeproject.org/files/ENCFF339KUO/@@download/ENCFF339KUO.bed.gz"
)
if("ChIP" %ni% names(projHeme5@peakAnnotation)){
    projHeme5 <- addPeakAnnotations(ArchRProj = projHeme5, regions = EncodePeaks, name = "ChIP")
}

然后,我們從該峰注釋中制作一個(gè)偏差矩陣村斟。

projHeme5 <- addDeviationsMatrix(
  ArchRProj = projHeme5, 
  peakAnnotation = "ChIP",
  force = TRUE
)

分析工作流程的其余部分與上面多次介紹的內(nèi)容相同贫导。

我們可以繪制排名偏差。

plotVarDev <- getVarDeviations(projHeme5, plot = TRUE, name = "ChIPMatrix")
plotVarDev
plotPDF(plotVarDev, name = "Variable-ChIP-Deviation-Scores", width = 5, height = 5, ArchRProj = projHeme5, addDOC = FALSE)

我們可以繪制覆蓋在我們的UMAP嵌入中的偏差z得分蟆盹。

markerChIP <- getFeatures(projHeme5, useMatrix = "ChIPMatrix")
markerChIP <- sort(grep("z:", markerChIP, value = TRUE))
markerChIP
p <- plotEmbedding(
    ArchRProj = projHeme5, 
    colorBy = "ChIPMatrix", 
    name = markerChIP, 
    embedding = "UMAP",
    imputeWeights = getImputeWeights(projHeme5)
)
p2 <- lapply(p, function(x){
    x + guides(color = FALSE, fill = FALSE) + 
    theme_ArchR(baseSize = 6.5) +
    theme(plot.margin = unit(c(0, 0, 0, 0), "cm")) +
    theme(
        axis.text.x=element_blank(), 
        axis.ticks.x=element_blank(), 
        axis.text.y=element_blank(), 
        axis.ticks.y=element_blank()
    )
})
do.call(cowplot::plot_grid, c(list(ncol = 2),p2))
參考材料:

https://www.archrproject.com/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末孩灯,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子逾滥,更是在濱河造成了極大的恐慌钱反,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,820評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異面哥,居然都是意外死亡哎壳,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評論 3 399
  • 文/潘曉璐 我一進(jìn)店門尚卫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來归榕,“玉大人,你說我怎么就攤上這事吱涉∩残梗” “怎么了?”我有些...
    開封第一講書人閱讀 168,324評論 0 360
  • 文/不壞的土叔 我叫張陵怎爵,是天一觀的道長特石。 經(jīng)常有香客問我,道長鳖链,這世上最難降的妖魔是什么姆蘸? 我笑而不...
    開封第一講書人閱讀 59,714評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮芙委,結(jié)果婚禮上逞敷,老公的妹妹穿的比我還像新娘。我一直安慰自己灌侣,他們只是感情好推捐,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,724評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著侧啼,像睡著了一般牛柒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上痊乾,一...
    開封第一講書人閱讀 52,328評論 1 310
  • 那天皮壁,我揣著相機(jī)與錄音,去河邊找鬼符喝。 笑死,一個(gè)胖子當(dāng)著我的面吹牛甜孤,可吹牛的內(nèi)容都是我干的协饲。 我是一名探鬼主播,決...
    沈念sama閱讀 40,897評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼缴川,長吁一口氣:“原來是場噩夢啊……” “哼茉稠!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起把夸,我...
    開封第一講書人閱讀 39,804評論 0 276
  • 序言:老撾萬榮一對情侶失蹤而线,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體膀篮,經(jīng)...
    沈念sama閱讀 46,345評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡嘹狞,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,431評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了誓竿。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片磅网。...
    茶點(diǎn)故事閱讀 40,561評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖筷屡,靈堂內(nèi)的尸體忽然破棺而出涧偷,到底是詐尸還是另有隱情,我是刑警寧澤毙死,帶...
    沈念sama閱讀 36,238評論 5 350
  • 正文 年R本政府宣布燎潮,位于F島的核電站,受9級(jí)特大地震影響扼倘,放射性物質(zhì)發(fā)生泄漏确封。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,928評論 3 334
  • 文/蒙蒙 一唉锌、第九天 我趴在偏房一處隱蔽的房頂上張望隅肥。 院中可真熱鬧,春花似錦袄简、人聲如沸腥放。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽秃症。三九已至,卻和暖如春吕粹,著一層夾襖步出監(jiān)牢的瞬間种柑,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評論 1 272
  • 我被黑心中介騙來泰國打工匹耕, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留聚请,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,983評論 3 376
  • 正文 我出身青樓稳其,卻偏偏與公主長得像驶赏,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子既鞠,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,573評論 2 359