RNA-seq分析簡潔版

  • 前面RNA-seq分析:從軟件安裝到富集分析部分已經(jīng)把轉(zhuǎn)錄組全部流程走完了一遍,這次利用RNA-seq(2)-2:下載數(shù)據(jù)中下載的肝癌數(shù)據(jù)進行分析,不在贅述細節(jié)懦尝,所以有看細節(jié)的還是請去這里姻政。
  • 這部分主要是代碼和部分結(jié)果圖,但進行了部分修正疆瑰,比如KEGG 可視化部分,用了前clusterprofiler部分的結(jié)果昙啄,所以這部分不包括Gage包穆役。
  • 所以從質(zhì)量比對開始進行
-----------------------------------------------------------------

3 sra到fastq格式轉(zhuǎn)換并進行質(zhì)量控制

3.1 數(shù)據(jù)解壓:用samtools中的fastq-dump將sra格式轉(zhuǎn)為fastq格式
  • 備注:用時5個小時
for ((i=2;i<=5;i++));do fastq-dump --gzip --split-3 -A SRR31621$i.sra -O .;done
3.2 用fastqc進行質(zhì)量控制
#將所有的數(shù)據(jù)進行質(zhì)控,得到zip的壓縮文件和html文件
fastqc -o .  *.fastq.gz
3.3 3 質(zhì)控結(jié)果解讀(為保持緊湊梳凛,只放一張圖)
SRR316214.png

4 下載參考基因組及基因注釋

RNA-seq(4):下載參考基因組及基因注釋部分已經(jīng)下載

5 序列比對:Hisat2

5.1 開始比對:用hisat2耿币,得到SAM文件(5個小時)
  • 我的fastq文件在/mnt/f/rna_seq/data
  • 我的reference在/mnt/f/rna_seq/data/reference
  • 我的index在/mnt/f/rna_seq/data/reference/index/hg19
  • 比對后得到的bam文件會存放在/mnt/f/rna_seq/aligned
 source ~/miniconda3/bin/activate
(base) kelly@DESKTOP-MRA1M1F:/mnt/f/rna_seq/data$ cd ..
(base) kelly@DESKTOP-MRA1M1F:/mnt/f/rna_seq$
for ((i=2;i<=5;i++));do hisat2 -t -x /mnt/f/rna_seq/data/reference/index/hg19/genome -1 /mnt/f/rna_seq/data/SRR31621${i}.sra_1.fastq.gz -2 /mnt/f/rna_seq/data/SRR31621${i}.sra_2.fastq.gz -S SRR31621${i}.sam ;done
(base) kelly@DESKTOP-MRA1M1F:/mnt/f/rna_seq$ for ((i=2;i<=5;i++));do hisat2 -t -x /mnt/f/rna_seq/data/reference/index/hg19/genome -1 /mnt/f/rna_seq/data/SRR31621${i}.sra_1.fastq.gz -2 /mnt/f/rna_seq/data/SRR31621${i}.sra_2.fastq.gz -S SRR31621${i}.sam ;done
Time loading forward index: 00:00:05
Time loading reference: 00:00:01
Multiseed full-index search: 02:11:39
101339131 reads; of these:
  101339131 (100.00%) were paired; of these:
    7840870 (7.74%) aligned concordantly 0 times
    87196406 (86.04%) aligned concordantly exactly 1 time
    6301855 (6.22%) aligned concordantly >1 times
    ----
    7840870 pairs aligned concordantly 0 times; of these:
      333400 (4.25%) aligned discordantly 1 time
    ----
    7507470 pairs aligned 0 times concordantly or discordantly; of these:
      15014940 mates make up the pairs; of these:
        8711709 (58.02%) aligned 0 times
        5441734 (36.24%) aligned exactly 1 time
        861497 (5.74%) aligned >1 times
95.70% overall alignment rate
5.2 SAM文件轉(zhuǎn)換為BAM文件,并對bam文件進行sort,最后建立索引:SAMtools
Sam 文件轉(zhuǎn)換為bam格式(用時1.5hrs)
(base) kelly@DESKTOP-MRA1M1F:/mnt/f/rna_seq/aligned$ for ((i=2;i<=5;i++));do samtools view -S /mnt/f/rna_seq/SRR31621${i}.sam -b > SRR31621${i}.bam;done
對bam文件進行排序,默認染色體位置(用時1.5hrs)
for ((i=2;i<=5;i++));do samtools sort SRR31621${i}.bam
-o SRR31621${i}_sorted.bam;done
建立索引(用時40mins)
for ((i=2;i<=5;i++));do samtools index SRR31621${i}_sorted.bam;done

6 reads計數(shù)韧拒,合并矩陣并進行注釋

6.1 bam文件按reads name排序(用時1h)
for ((i=2;i<=5;i++));do samtools sort -n SRR31621${i}.b
am -o SRR31621${i}_nsorted.bam;done
6.2 2 reads計數(shù)淹接,得到表達矩陣htseq-count(用時很久很久,久到不忍寫叭莫,8hrs)

注釋文件如果已經(jīng)解壓蹈集,則不再需要重復

cd ../data/matrix
gunzip /mnt/f/rna_seq/data/reference/annotation/hg19/gencode.v19.annotation.gt.gz && rm -rf gencode.v19.annotation.gtf.gz
for ((i=2;i<=5;i++));do htseq-count -r name -f bam /mnt/f/rna_seq/aligned/SRR31621${i}_nsorted.bam /mnt/f/rna_seq/data/reference/annotation/hg19/gencode.v19.an
notation.gtf > SRR31621${i}.count; done
ls -al *.count
-rwxrwxrwx 1 root root 1197426 Aug  7 16:25 SRR316212.count
-rwxrwxrwx 1 root root 1186189 Aug  7 17:16 SRR316213.count
-rwxrwxrwx 1 root root 1200305 Aug  7 22:51 SRR316214.count
-rwxrwxrwx 1 root root 1187596 Aug  7 23:32 SRR316215.count
6.3 3 合并表達矩陣并進行基因名注釋(R中進行)

Tumor:SRR316214,SRR316215
Adjacent Normal Liver:SRR316212,SRR316213

setwd("F:/rna_seq/data/matrix")
options(stringsAsFactors = FALSE)
control1<-read.table("SRR316212.count",sep = "\t",col.names = c("gene_id","control1"))
control2<-read.table("SRR316213.count",sep = "\t",col.names = c("gene_id","control2"))
treat1<-read.table("SRR316214.count",sep = "\t",col.names = c("gene_id","treat1"))
treat2<-read.table("SRR316215.count",sep = "\t",col.names = c("gene_id","treat2"))
raw_count <- merge(merge(control1, control2, by="gene_id"), merge(treat1, treat2, by="gene_id"))
head(raw_count)
raw_count_filt <- raw_count[-1:-5,]
ENSEMBL <- gsub("\\.\\d*", "", raw_count_filt$gene_id) 
row.names(raw_count_filt) <- ENSEMBL
head(raw_count_filt)
> head(raw_count_filt)
                           gene_id control1 control2 treat2.x treat2.y
ENSG00000000003 ENSG00000000003.10     4004      781      756      756
ENSG00000000005  ENSG00000000005.5        1        0        0        0
ENSG00000000419  ENSG00000000419.8      776      140      165      165
ENSG00000000457  ENSG00000000457.9      624      144      240      240
ENSG00000000460 ENSG00000000460.12      260       52      105      105
ENSG00000000938  ENSG00000000938.8      161       59       16       16

7 DEseq2篩選差異表達基因并注釋

這次我換了Annotation包進行注釋

7.1 載入數(shù)據(jù)(countData和colData)

# 這一步很關(guān)鍵,要明白condition這里是因子雇初,不是樣本名稱拢肆;小鼠數(shù)據(jù)有對照組和處理組,各兩個重復
condition <- factor(c(rep("control",2),rep("treat",2)), levels = c("control","treat"))
condition
colData <- data.frame(row.names=colnames(mycounts), condition)
> colData
         condition
control1   control
control2   control
treat1       treat
treat2       treat

7.2 構(gòu)建dds對象,開始DESeq流程

dds <- DESeqDataSetFromMatrix(countData=mycounts, 
                              colData=colData, 
                              design= ~ condition)
dds = DESeq(dds)

7.3 總體結(jié)果查看

接下來靖诗,我們要查看treat versus control的總體結(jié)果郭怪,并根據(jù)p-value進行重新排序。利用summary命令統(tǒng)計顯示一共多少個genes上調(diào)和下調(diào)(FDR0.1)

res = results(dds, contrast=c("condition", "control", "treat"))
res = res[order(res$pvalue),]
head(res)
summary(res)
write.csv(res,file="All_results.csv")
table(res$padj<0.01)
> summary(res)
out of 30981 with nonzero total read count
adjusted p-value < 0.1
LFC > 0 (up)     : 3928, 13% 
LFC < 0 (down)   : 3283, 11% 
outliers [1]     : 0, 0% 
low counts [2]   : 10317, 33% 
(mean count < 2)
[1] see 'cooksCutoff' argument of ?results
[2] see 'independentFiltering' argument of ?results
> table(res$padj<0.01)
FALSE  TRUE 
16192  4472

可見刊橘,上調(diào)基因和下調(diào)的數(shù)目都很多鄙才,padj<0.01的有4472,即使padj<0.001的也有3089個促绵。

7.4 提取差異表達genes(DEGs)

先看下padj(p值經(jīng)過多重校驗校正后的值)小于0.01攒庵,表達倍數(shù)取以2為對數(shù)后大于1或者小于-1的差異表達基因嘴纺。代碼如下

diff_gene_deseq2 <-subset(res, padj < 0.01 & abs(log2FoldChange) > 1)
dim(diff_gene_deseq2)
head(diff_gene_deseq2)
write.csv(diff_gene_deseq2,file= "HCC_DEG_0.05_2.csv")
> dim(diff_gene_deseq2)
[1] 3780    6
> head(diff_gene_deseq2)
log2 fold change (MLE): condition control vs treat 
Wald test p-value: condition control vs treat 
DataFrame with 6 rows and 6 columns
                 baseMean log2FoldChange     lfcSE      stat        pvalue          padj
                <numeric>      <numeric> <numeric> <numeric>     <numeric>     <numeric>
ENSG00000130649 78059.342       7.190959 0.2110024  34.07998 1.460506e-254 3.017990e-250
ENSG00000268925  5666.055       7.534595 0.2573299  29.27991 1.869559e-188 1.931628e-184
ENSG00000105697  8791.483       6.611356 0.2338215  28.27523 6.970959e-176 4.801597e-172
ENSG00000167244  8988.099       6.767261 0.2582403  26.20528 2.313301e-151 1.195051e-147
ENSG00000162366  4037.960      -7.076854 0.2704122 -26.17062 5.742578e-151 2.373293e-147
ENSG00000169715  3803.597       6.238596 0.2403373  25.95767 1.489813e-148 5.130914e-145

把padj<0.001,|log2FC|>1有2938個

8 探索分析結(jié)果:Data visulization

#MA plot
plotMA(res,ylim=c(-2,2))
topGene <- rownames(res)[which.min(res$padj)]
with(res[topGene, ], {
  points(baseMean, log2FoldChange, col="dodgerblue", cex=6, lwd=2)
  text(baseMean, log2FoldChange, topGene, pos=2, col="dodgerblue")
})

#shirnked
res_order<-res[order(row.names(res)),]
res = res_order
res.shrink <- lfcShrink(dds, contrast = c("condition","treat","control"), res=res)
plotMA(res.shrink, ylim = c(-5,5))
topGene <- rownames(res)[which.min(res$padj)]
with(res[topGene, ], {
  points(baseMean, log2FoldChange, col="dodgerblue", cex=2, lwd=2)
  text(baseMean, log2FoldChange, topGene, pos=2, col="dodgerblue")
})
#identify
idx <- identify(res$baseMean, res$log2FoldChange)
rownames(res)[idx]
#plotcounts
plotCounts(dds, gene=which.min(res$padj), intgroup="condition", returnData=TRUE)
plotCounts(dds, gene="ENSG00000130649", intgroup="condition", returnData=FALSE)
#boxplot
plotCounts(dds, gene="ENSG00000130649", intgroup="condition", returnData=TRUE) %>% 
  ggplot(aes(condition, count)) + geom_boxplot(aes(fill=condition)) + scale_y_log10() + ggtitle("CYP2E1")
#pointplot
d <- plotCounts(dds, gene="ENSG00000130649", intgroup="condition", returnData=TRUE)
ggplot(d, aes(x=condition, y=count)) + 
  geom_point(aes(color= condition),size= 4, position=position_jitter(w=0.5,h=0)) + 
  scale_y_log10(breaks=c(25,100,400))+ ggtitle("CYP2E1")

##3最小padj
d <- plotCounts(dds, gene=which.min(res$padj), intgroup="condition", 
                returnData=TRUE)
ggplot(d, aes(x=condition, y=count)) + 
  geom_point(position=position_jitter(w=0.1,h=0)) + 
  scale_y_log10(breaks=c(25,100,400))
#PCA
vsdata <- vst(dds, blind=FALSE)
plotPCA(vsdata, intgroup="condition")
#beatifule pca plot
pcaData <- plotPCA(vsdata, intgroup=c("condition"), returnData=TRUE)
percentVar <- round(100 * attr(pcaData, "percentVar"))
ggplot(pcaData, aes(PC1, PC2, color=condition, shape=condition)) +
  geom_point(size=3) +
  xlab(paste0("PC1: ",percentVar[1],"% variance")) +
  ylab(paste0("PC2: ",percentVar[2],"% variance")) + 
  coord_fixed()
library("pheatmap")
select<-order(rowMeans(counts(dds, normalized = TRUE)),
              decreasing = TRUE)[1:20]
df <- as.data.frame(colData(dds)[,c("condition","sizeFactor")])
# this gives log2(n + 1)
ntd <- normTransform(dds)
pheatmap(assay(ntd)[select,], cluster_rows=FALSE, show_rownames=FALSE,
         cluster_cols=FALSE, annotation_col=df)
#vsd
vsd <- vst(dds, blind=FALSE)
pheatmap(assay(vsd)[select,], cluster_rows=FALSE, show_rownames=FALSE,
         cluster_cols=FALSE, annotation_col=df)
##sample to sample heatmap
sampleDists <- dist(t(assay(vsd)))
library("RColorBrewer")
sampleDistMatrix <- as.matrix(sampleDists)
rownames(sampleDistMatrix) <- paste(vsd$condition, vsd$type, sep="-")
colnames(sampleDistMatrix) <- NULL
colors <- colorRampPalette( rev(brewer.pal(9, "Blues")) )(255)
pheatmap(sampleDistMatrix,
         clustering_distance_rows=sampleDists,
         clustering_distance_cols=sampleDists,
         col=colors)

這部分主要結(jié)果部分的一些可視化,具體參考詳細的部分即可浓冒,只放一張圖


Rplot.jpeg

9 DEGs的富集分析(功能注釋)ClusterProfiler包

##enrichment analysis using clusterprofiler package created by yuguangchuang
library(clusterProfiler)
library(DOSE)
library(stringr)
library(org.Hs.eg.db)
#get the ENTREZID for the next analysis
sig.gene= diff_gene_deseq2
head(sig.gene)
gene<-rownames(sig.gene)
head(gene)
gene.df<-bitr(gene, fromType = "ENSEMBL", 
              toType = c("SYMBOL","ENTREZID"),
              OrgDb = org.Hs.eg.db)

head(gene.df)
> head(gene.df)
          ENSEMBL   SYMBOL ENTREZID
1 ENSG00000130649   CYP2E1     1571
3 ENSG00000105697     HAMP    57817
4 ENSG00000167244     IGF2     3481
5 ENSG00000162366 PDZK1IP1    10158
6 ENSG00000169715     MT1E     4493
7 ENSG00000074276    CDHR2    54825

GO enrichment

#Go enrichment
ego_cc<-enrichGO(gene       = gene.df$ENSEMBL,
                 OrgDb      = org.Hs.eg.db,
                 keyType    = 'ENSEMBL',
                 ont        = "CC",
                 pAdjustMethod = "BH",
                 pvalueCutoff = 0.01,
                 qvalueCutoff = 0.05)
ego_bp<-enrichGO(gene       = gene.df$ENSEMBL,
                 OrgDb      = org.Hs.eg.db,
                 keyType    = 'ENSEMBL',
                 ont        = "BP",
                 pAdjustMethod = "BH",
                 pvalueCutoff = 0.01,
                 qvalueCutoff = 0.05)
barplot(ego_bp,showCategory = 18,title="The GO_BP enrichment analysis of all DEGs ")+ 
  scale_size(range=c(2, 12))+
  scale_x_discrete(labels=function(ego_bp) str_wrap(ego_bp,width = 25))

KEGG enrichment

library(stringr)
kk<-enrichKEGG(gene      =gene.df$ENTREZID,
               organism = 'hsa',
               pvalueCutoff = 0.05)
> kk[1:30]
               ID                                          Description GeneRatio  BgRatio
hsa04610 hsa04610                  Complement and coagulation cascades   38/1407  79/7431
hsa04933 hsa04933 AGE-RAGE signaling pathway in diabetic complications   40/1407  99/7431
hsa00071 hsa00071                               Fatty acid degradation   23/1407  44/7431
hsa04974 hsa04974                     Protein digestion and absorption   35/1407  90/7431
hsa05146 hsa05146                                           Amoebiasis   36/1407  96/7431
hsa04978 hsa04978                                   Mineral absorption   23/1407  51/7431
hsa04115 hsa04115                                p53 signaling pathway   29/1407  72/7431
hsa05144 hsa05144                                              Malaria   22/1407  49/7431
hsa00982 hsa00982                    Drug metabolism - cytochrome P450   28/1407  72/7431
hsa00980 hsa00980         Metabolism of xenobiotics by cytochrome P450   29/1407  76/7431
hsa03320 hsa03320                               PPAR signaling pathway   28/1407  74/7431
hsa05204 hsa05204                              Chemical carcinogenesis   30/1407  82/7431
mykegg<-barplot(kk,showCategory = 20, title="The KEGG enrichment analysis of all DEGs")+
  scale_size(range=c(2, 12))+
  scale_x_discrete(labels=function(kk) str_wrap(kk,width = 25))
 dotplot(kk,showCategory = 20, title="The KEGG enrichment analysis of all DEGs")+
  scale_size(range=c(2, 12))+
  scale_x_discrete(labels=function(kk) str_wrap(kk,width = 25))

用cowplot拼起來

library(cowplot)
plot_grid(mygobp,mykegg,labels = c("A","B"),align = "h")
Rplot01.jpeg

10 KEGG信號通路的可視化(pathview包)

備注栽渴,前面詳細部分用gageData重新進行了富集分析,這部分直接調(diào)用ClusterProfiler包的富集結(jié)果
  • 選取enrichKEGG結(jié)果pvalue排名第一的hsa4610:Complement and coagulation cascades和排名第7的hsa04115:p53 signaling pathway
library("pathview")
foldchanges = sig.gene$log2FoldChange
names(foldchanges)= gene.df$ENTREZID
head(foldchanges)
pathview(gene.data = foldchanges, pathway.id = "hsa04610", species="hsa")

------------------------------------------------------------------------------

hsa4610:Complement and coagulation cascades
hsa04610.pathview.png

------------------------------------------------------------------------------

hsa04115:p53 signaling pathway

hsa04115.pathview.png

11 把counts結(jié)果稳懒,clusterprofiler部分的symbol name 和DEGs全部合并到一個表格

備注闲擦,這部分的主要問題是沒用可以merge用的ID,先看下
> head(mycounts)
                control1 control2 treat1 treat2
ENSG00000000003     4004      781   4229    756
ENSG00000000005        1        0      0      0
ENSG00000000419      776      140   1180    165
ENSG00000000457      624      144   1271    240
ENSG00000000460      260       52    610    105
ENSG00000000938      161       59     57     16
> head(gene.df)
          ENSEMBL   SYMBOL ENTREZID
1 ENSG00000130649   CYP2E1     1571
3 ENSG00000105697     HAMP    57817
4 ENSG00000167244     IGF2     3481
5 ENSG00000162366 PDZK1IP1    10158
6 ENSG00000169715     MT1E     4493
7 ENSG00000074276    CDHR2    54825
> head(sig.gene)
log2 fold change (MLE): condition control vs treat 
Wald test p-value: condition control vs treat 
DataFrame with 6 rows and 6 columns
                  ENSEMBL log2FoldChange     lfcSE      stat        pvalue          padj
                <numeric>      <numeric> <numeric> <numeric>     <numeric>     <numeric>
ENSG00000130649 78059.342       7.190959 0.2110024  34.07998 1.460506e-254 3.017990e-250
ENSG00000268925  5666.055       7.534595 0.2573299  29.27991 1.869559e-188 1.931628e-184
ENSG00000105697  8791.483       6.611356 0.2338215  28.27523 6.970959e-176 4.801597e-172
ENSG00000167244  8988.099       6.767261 0.2582403  26.20528 2.313301e-151 1.195051e-147
ENSG00000162366  4037.960      -7.076854 0.2704122 -26.17062 5.742578e-151 2.373293e-147
ENSG00000169715  3803.597       6.238596 0.2403373  25.95767 1.489813e-148 5.130914e-145

所以執(zhí)行以下代碼:

head(sig.gene)
head(gene.df)
ENSEMBL<-rownames(sig.gene)
sig.gene<-cbind(ENSEMBL, sig.gene)
colnames(sig.gene)[1]<-c("ENSEMBL")

head(mycounts)
ENSEMBL<-rownames(mycounts)
mycounts<-cbind(ENSEMBL, mycounts)
colnames(mycounts)[1]<-c("ENSEMBL")

merge1<-merge(sig.gene,mycounts,by="ENSEMBL")
merge2<-merge(merge1,gene.df, by="ENSEMBL")
head(merge2)
write.csv(DEG_symbole,file="hcc_DEGs_last_results.csv")

結(jié)果如下:

> head(merge2)
DataFrame with 6 rows and 13 columns
          ENSEMBL   baseMean log2FoldChange     lfcSE      stat       pvalue         padj  control1  control2    treat1    treat2
      <character>  <numeric>      <numeric> <numeric> <numeric>    <numeric>    <numeric> <integer> <integer> <integer> <integer>
1 ENSG00000000938   70.51956       2.169409 0.4610591  4.705274 2.535248e-06 2.632581e-05       161        59        57        16
2 ENSG00000001460   77.93853      -1.496365 0.4247974 -3.522537 4.274371e-04 2.517116e-03        68        18       268        68
3 ENSG00000001561  382.90350      -1.466940 0.3397462 -4.317751 1.576269e-05 1.347065e-04       416        69      1780       227
4 ENSG00000001626   70.41775       4.713865 0.5812437  8.109965 5.063455e-16 1.944819e-14       226        61        16         1
5 ENSG00000001630  165.86393      -2.283850 0.4094980 -5.577194 2.444286e-08 3.665365e-07        84        28       442       207
6 ENSG00000002549 1683.37557       1.519578 0.2216429  6.855972 7.082930e-12 1.708432e-10      4166      1104      2171       481
       SYMBOL    ENTREZID
  <character> <character>
1         FGR        2268
2       STPG1       90529
3       ENPP4       22875
4        CFTR        1080
5     CYP51A1        1595
6        LAP3       51056

至此场梆,這部分結(jié)果可以用來做其他很多下游分析了墅冷。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市或油,隨后出現(xiàn)的幾起案子寞忿,更是在濱河造成了極大的恐慌,老刑警劉巖顶岸,帶你破解...
    沈念sama閱讀 206,013評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件罐脊,死亡現(xiàn)場離奇詭異,居然都是意外死亡蜕琴,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評論 2 382
  • 文/潘曉璐 我一進店門宵溅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來凌简,“玉大人,你說我怎么就攤上這事恃逻〕В” “怎么了?”我有些...
    開封第一講書人閱讀 152,370評論 0 342
  • 文/不壞的土叔 我叫張陵寇损,是天一觀的道長凸郑。 經(jīng)常有香客問我,道長矛市,這世上最難降的妖魔是什么芙沥? 我笑而不...
    開封第一講書人閱讀 55,168評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮浊吏,結(jié)果婚禮上而昨,老公的妹妹穿的比我還像新娘。我一直安慰自己找田,他們只是感情好歌憨,可當我...
    茶點故事閱讀 64,153評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著墩衙,像睡著了一般务嫡。 火紅的嫁衣襯著肌膚如雪甲抖。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,954評論 1 283
  • 那天心铃,我揣著相機與錄音准谚,去河邊找鬼。 笑死于个,一個胖子當著我的面吹牛氛魁,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播厅篓,決...
    沈念sama閱讀 38,271評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼秀存,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了羽氮?” 一聲冷哼從身側(cè)響起或链,我...
    開封第一講書人閱讀 36,916評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎档押,沒想到半個月后澳盐,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,382評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡令宿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,877評論 2 323
  • 正文 我和宋清朗相戀三年叼耙,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片粒没。...
    茶點故事閱讀 37,989評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡筛婉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出癞松,到底是詐尸還是另有隱情爽撒,我是刑警寧澤,帶...
    沈念sama閱讀 33,624評論 4 322
  • 正文 年R本政府宣布响蓉,位于F島的核電站硕勿,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏枫甲。R本人自食惡果不足惜源武,卻給世界環(huán)境...
    茶點故事閱讀 39,209評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望想幻。 院中可真熱鬧软能,春花似錦、人聲如沸举畸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽抄沮。三九已至跋核,卻和暖如春岖瑰,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背砂代。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評論 1 260
  • 我被黑心中介騙來泰國打工蹋订, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人刻伊。 一個月前我還...
    沈念sama閱讀 45,401評論 2 352
  • 正文 我出身青樓露戒,卻偏偏與公主長得像,于是被迫代替她去往敵國和親捶箱。 傳聞我的和親對象是個殘疾皇子智什,可洞房花燭夜當晚...
    茶點故事閱讀 42,700評論 2 345

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