如何使用Bioconductor進(jìn)行單細(xì)胞分析咆课?

image

最近的技術(shù)進(jìn)步使得能夠在單個細(xì)胞中分析全基因組特征。但是扯俱,單細(xì)胞數(shù)據(jù)為分析提出了獨特的挑戰(zhàn)书蚪,需要開發(fā)專用的方法和數(shù)據(jù)架構(gòu)才能成功解析數(shù)據(jù)背后的生物問題。Bioconductor項目托管了社區(qū)開發(fā)的開源R包以滿足這些分析需求迅栅。我們?yōu)闈撛谟脩籼峁┝藛渭?xì)胞方法的概述和在線圖書殊校,內(nèi)容涵蓋最先進(jìn)的計算方法、標(biāo)準(zhǔn)化的數(shù)據(jù)基礎(chǔ)架構(gòu)和交互式數(shù)據(jù)可視化工具读存,存儲于 https://osca. bioconductor.org为流。

從2001年開始呕屎,Bioconductor項目已經(jīng)吸引了來自不同科學(xué)領(lǐng)域的眾多開發(fā)人員和用戶社群,推動了使用R語言進(jìn)行高通量生物數(shù)據(jù)分析的開源軟件包的開發(fā)敬察。盡管大量組學(xué)技術(shù)催生了重要的科學(xué)見解和研究方法秀睛,近來單細(xì)胞組學(xué)圖譜的發(fā)展可以回答以前無法回答的科學(xué)問題。Bioconductor擁有大量用于分析組學(xué)數(shù)據(jù)的軟件包莲祸,最近蹂安,隨著社區(qū)貢獻(xiàn)的軟件包迅速增多,Bioconductor已顯著擴(kuò)展到單細(xì)胞數(shù)據(jù)分析領(lǐng)域(圖1)锐帜。

image

Fig. 1 | Number of Bioconductor packages for the analysis of highthroughput sequencing data over ten years.

當(dāng)前的單細(xì)胞測序既可以是高通量的藤抡,同時測量數(shù)千到數(shù)百萬個細(xì)胞;也可以是高維的抹估,同時測量單個細(xì)胞內(nèi)的數(shù)千個特征。與大量細(xì)胞樣品的圖譜相比弄兜,單細(xì)胞數(shù)據(jù)有兩個特征药蜻,必須對其進(jìn)行特殊處理才能獲得有意義的生物結(jié)果:(1)數(shù)據(jù)中的細(xì)胞數(shù)目增加了多個量級,如人類細(xì)胞圖集和小鼠細(xì)胞圖集等;(2)由于所測量特征(基因/轉(zhuǎn)錄本)的生物波動性高或?qū)ι倭糠肿舆M(jìn)行定量分析的敏感性有限替饿,導(dǎo)致數(shù)據(jù)稀疏性增加语泽。這些特性促進(jìn)了針對單細(xì)胞數(shù)據(jù)分析的統(tǒng)計方法的發(fā)展。此外视卢,隨著單細(xì)胞技術(shù)的成熟踱卵,數(shù)據(jù)復(fù)雜性和數(shù)據(jù)量的增加要求對數(shù)據(jù)訪問、管理和基礎(chǔ)架構(gòu)進(jìn)行根本性的改變据过,同時需要專門的方法來促進(jìn)可擴(kuò)展的分析惋砂。

為了應(yīng)對這些挑戰(zhàn),為分析單細(xì)胞數(shù)據(jù)而開發(fā)的軟件包已成為Bioconductor項目不可或缺的一部分绳锅。在這里西饵,我們主要集中在分析單細(xì)胞RNA測序(scRNA-seq)數(shù)據(jù),其中提到的許多概念也可推廣到其他類型的單細(xì)胞項目鳞芙。我們的描述涵蓋了數(shù)據(jù)導(dǎo)入眷柔、存儲單細(xì)胞實驗數(shù)據(jù)的通用數(shù)據(jù)結(jié)構(gòu)和用于將原始單細(xì)胞數(shù)據(jù)轉(zhuǎn)換為適合下游分析、交互式數(shù)據(jù)可視化和下游分析的快速而強(qiáng)大的方法原朝。為了幫助用戶利用這個強(qiáng)大且可擴(kuò)展的框架驯嘱,我們介紹了選定的軟件包并提供了在線圖書(https://osca.bioconductor.org),內(nèi)容涵蓋軟件包安裝喳坠、使用幫助鞠评、特定scRNA-seq分析主題和分析各種scRNA-seq數(shù)據(jù)集的完整工作流程。有關(guān)所有軟件包的參考資料壕鹉,請參見:http://bioconductor.org/packages/.

數(shù)據(jù)結(jié)構(gòu)

Bioconductor的一個強(qiáng)大的優(yōu)勢是提供了一個復(fù)雜的谢澈、高度互相依賴的數(shù)據(jù)集的通用表示形式和基礎(chǔ)架構(gòu)煌贴。Bioconductor使用標(biāo)準(zhǔn)化的數(shù)據(jù)容器來實現(xiàn)各種包的模塊化和交互操作,同時保持強(qiáng)大的終端用戶易用性锥忿。為此牛郑,Bioconductor采用了一種稱為S4的靈活的面向?qū)ο蠓妒剑梢允褂秘S富且用戶友好的方式將多個對象組件封裝到單個實例中敬鬓。這種方法對于生物學(xué)分析尤其重要淹朋,因為在整個分析過程中,數(shù)值數(shù)據(jù)和元數(shù)據(jù)需要在整個分析過程中都維持一致性钉答。

Bioconductor使用SingleCellExperiment類來存儲單細(xì)胞測序數(shù)據(jù)和元數(shù)據(jù)(圖2). 諸如計數(shù)矩陣之類的主要數(shù)據(jù)以一個或多個矩陣的形式存儲在assay組件中础芍,其中行代表特征(例如基因和轉(zhuǎn)錄本),列代表細(xì)胞数尿。此外仑性,基本數(shù)據(jù)的低維形式和描述細(xì)胞或特征屬性的元數(shù)據(jù)也可以存儲在SingleCellExperiment對象中。通過SingleCellExperiment類右蹦,可以將與scRNA-seq實驗相關(guān)的所有數(shù)據(jù)和結(jié)果存儲在單個實例中诊杆。通過單細(xì)胞數(shù)據(jù)和結(jié)果的標(biāo)準(zhǔn)化存儲,Bioconductor促進(jìn)了單細(xì)胞分析程序包之間的交互性何陆,并促進(jìn)了復(fù)雜分析工作流程的開發(fā)和使用晨汹。

image

Fig. 2 | Overview of the SingleCellExperiment class.

數(shù)據(jù)處理

本節(jié)的目的是描述大多數(shù)scRNA-seq分析所共有的前期分析步驟。這些基本步驟遵循通用的分析流程(圖3):(1)預(yù)處理原始測序數(shù)據(jù)生成每個基因(或轉(zhuǎn)錄本)X 每個細(xì)胞的表達(dá)計數(shù)矩陣贷盲,然后創(chuàng)建SingleCellExperiment對象淘这;(2)對數(shù)據(jù)進(jìn)行質(zhì)控并去除可能會干擾下游分析的低質(zhì)量細(xì)胞;(3)將原始計數(shù)轉(zhuǎn)換為標(biāo)準(zhǔn)化的表達(dá)值巩剖,以消除細(xì)胞和基因特異性偏好铝穷;(4)進(jìn)行特征選擇篩選生物學(xué)相關(guān)基因進(jìn)行下游分析;(5)應(yīng)用降維方法壓縮數(shù)據(jù)并降噪佳魔;(6)如果需要氧骤,整合多批次scRNA-seq數(shù)據(jù)。

image

Fig. 3 | Bioconductor workflow for analyzing single-cell data. A typical analytical workflow using Bioconductor leads to the creation and evolution of a SingleCellExperiment (sce) object during data processing and downstream statistical analysis (left column). An example of an sce object evolving throughout the course of a workflow is shown, including visualization, analysis and annotation (right column).

預(yù)處理吃引。對于scRNA-seq數(shù)據(jù)筹陵,預(yù)處理包括將測序reads與參考轉(zhuǎn)錄組進(jìn)行比對,然后獲得每個細(xì)胞和每個基因的表達(dá)值計數(shù)矩陣镊尺。盡管多種命令行軟件形式的預(yù)處理方法已經(jīng)存在朦佩,scPipescruff等Bioconductor軟件包提供了完全用R編寫的預(yù)處理工作流。DropletUtilstximeta等Bioconductor軟件包可以讀入各種命令行軟件工具如Cell Ranger) (10X基因組學(xué))庐氮,Kallisto-BustoolsAlevin的結(jié)果语稠。值得注意的是,偽對齊(pseudo-alignment )方法(例如AlevinKallisto)顯著減少了計算時間和運(yùn)行內(nèi)存。

在上述所有工作流程中仙畦,最終結(jié)果是將計數(shù)矩陣導(dǎo)入R并創(chuàng)建SingleCellExperiment對象输涕。對于特定的文件格式,我們可以使用DropletUtils(用于10X數(shù)據(jù))或tximeta(用于偽對齊方法)包中的專用方法慨畸。

質(zhì)量控制莱坎。造成scRNA-seq數(shù)據(jù)中的低質(zhì)量文庫可能有多種原因,如解離時的細(xì)胞損傷或文庫制備失敶缡俊(例如檐什,不成功的逆轉(zhuǎn)錄或PCR擴(kuò)增)。這些通常表現(xiàn)為“細(xì)胞”的總計數(shù)低弱卡、表達(dá)的基因數(shù)目很少乃正、線粒體基因表達(dá)占比高。這些低質(zhì)量的文庫可能會導(dǎo)致下游分析中獲得誤導(dǎo)性結(jié)果婶博。

對于基于液滴的實驗方式瓮具,通常只保留包含且只包含一個細(xì)胞的液滴生成的數(shù)據(jù)。DropletUtils程序包根據(jù)觀察到的每個液滴的表達(dá)譜與周圍溶液的表達(dá)譜來區(qū)分空的(只含溶液中RNA的)液滴和含細(xì)胞的液滴凡人。它還可以去除基于液滴的實驗中由于barcode序列錯誤產(chǎn)生的假細(xì)胞名党。同樣,scranscds程序包可以比較實驗檢測到的液滴與模擬的doublets液滴的表達(dá)譜識別可能包含多個細(xì)胞(doublets)的液滴划栓。在排除空液滴并識別潛在的doublets后,將含有潛在受損細(xì)胞或測序覆蓋度較差的液滴過濾掉条获。庫大兄臆瘛(定義為每個細(xì)胞所有相關(guān)基因的總計數(shù)之和)是一個常用的過濾指標(biāo)。具有較小文庫大小的細(xì)胞更可能是低質(zhì)量細(xì)胞帅掘,這可能是因為在RNA制備過程中的某個步驟如細(xì)胞裂解委煤、不成功的cDNA捕獲和擴(kuò)增等造成了RNA丟失。另一個指標(biāo)是每個細(xì)胞中表達(dá)的基因的數(shù)量修档,定義為該細(xì)胞中具有非零計數(shù)的內(nèi)源基因的數(shù)量碧绞。表達(dá)基因很少的細(xì)胞可能是轉(zhuǎn)錄本群體沒有被成功捕獲。線粒體基因組中基因的表達(dá)比例也是一個指標(biāo)吱窝,因為線粒體基因比例高可能是因為細(xì)胞損傷造成細(xì)胞質(zhì)RNA丟失讥邻,而線粒體因為體積大于單個轉(zhuǎn)錄物分子不太可能通過細(xì)胞膜上的孔逸出。Scater軟件包簡化了這些指標(biāo)的計算院峡。

標(biāo)準(zhǔn)化兴使。scRNA-seq數(shù)據(jù)不同文庫之間存在覆蓋率的系統(tǒng)差異,例如測序深度差異照激。這通常是由于細(xì)胞之間cDNA捕獲或PCR擴(kuò)增效率不同而引起的发魄,而這又是由于起始RNA量低導(dǎo)致的。標(biāo)準(zhǔn)化的目的是消除這些系統(tǒng)差異,以使它們不干擾聚類或差異表達(dá)分析時細(xì)胞之間表達(dá)譜的比較励幼。

我們先只考慮在單個scRNA-seq實驗中降低系統(tǒng)差異的方法汰寓,因為它們造成數(shù)據(jù)的偏好性的原因相似。例如苹粟,測序深度的變化將所有基因的表達(dá)計數(shù)按一定因子進(jìn)行縮放有滑。文庫大小歸一化是最簡單策略,如scater中所實現(xiàn)六水。盡管此方法假設(shè)任何一對細(xì)胞之間的差異表達(dá)基因(DEG)上下調(diào)平衡(基因整體表達(dá)量不變)俺孙,但是標(biāo)準(zhǔn)化準(zhǔn)確性通常不是scRNA-seq探索性分析的主要考慮因素,因為它們對簇聚類的影響很小掷贾。

但是睛榄,準(zhǔn)確的標(biāo)準(zhǔn)化在解釋每個基因的統(tǒng)計數(shù)據(jù)如差異基因分析時非常重要。當(dāng)在一個給定的scRNA-seq數(shù)據(jù)集中存在多種細(xì)胞類型時想帅,最經(jīng)常觀察到表達(dá)偏差是表達(dá)變化對數(shù)值的偏移场靴。通過反卷積進(jìn)行歸一化可以克服這一點,方法是合并許多細(xì)胞中的計數(shù)數(shù)據(jù)增加計數(shù)的大小以進(jìn)行準(zhǔn)確的size factor估計港准,然后將其解卷積為基于細(xì)胞的因子以對每個細(xì)胞進(jìn)行標(biāo)準(zhǔn)化(如在scran中實現(xiàn)).

另外旨剥,BASiCS, zinbwaveMAST提供了基于模型的標(biāo)準(zhǔn)化方法,不僅可以處理此類文庫大小或組成偏差浅缸,還可以針對已知的協(xié)變量或其他可能干擾生物學(xué)上有意義的變異的技術(shù)因素進(jìn)行校正轨帜。這些方法支持更復(fù)雜的標(biāo)準(zhǔn)化策略,例如數(shù)據(jù)的非線性轉(zhuǎn)換衩椒。有關(guān)此主題的評論蚌父,請參考(42).

缺失數(shù)據(jù)填充 (imputation)。數(shù)據(jù)插補(bǔ)方可以用來解決單細(xì)胞測序數(shù)據(jù)的稀疏性問題毛萌。由于scRNA-seq實驗經(jīng)常無法測量到某些基因的表達(dá)苟弛,從而導(dǎo)致數(shù)據(jù)表中零值過多,為此開發(fā)了零膨脹模型(zero-inflated models)阁将。但是膏秫,其效果取決于檢測方法或protocol的類型,尚無適應(yīng)所有數(shù)據(jù)的最優(yōu)工具做盅。此外缤削,研究表明,scRNA-seq數(shù)據(jù)的插補(bǔ)方法會導(dǎo)致假陽性結(jié)果吹榴,并降低了細(xì)胞類型特異性標(biāo)記基因鑒定的可重復(fù)性.

特征選擇僻他。scRNA-seq數(shù)據(jù)的探索性分析通常旨在表征細(xì)胞間的異質(zhì)性。諸如聚類和降維之類的分析會根據(jù)細(xì)胞的基因表達(dá)譜進(jìn)行比較腊尚。但是吨拗,在這些計算中選擇哪些基因用于下游分析影響重大。特征選擇方法旨在識別能對研究的生物系統(tǒng)提供有用信息的基因,同時刪除導(dǎo)致隨機(jī)噪聲的基因劝篷。通過只對此類基因進(jìn)行分析哨鸭,可以在排除排除混淆信息的基礎(chǔ)上保留有意義的生物學(xué)結(jié)構(gòu)。此外娇妓,只關(guān)注轉(zhuǎn)錄組的這一子集可以顯著減小數(shù)據(jù)集的大小像鸡,從而提高下游分析的計算效率。參見(50,51)有關(guān)特征選擇方法的評論哈恰。

特征選擇的最簡單方法是根據(jù)基因在整個細(xì)胞群體中的表達(dá)來選擇變化最大的基因只估。這基于一個假設(shè),真正的生物學(xué)差異導(dǎo)致的基因表達(dá)變化大于其他僅受技術(shù)噪聲影響或無關(guān)的生物因素引起的表達(dá)變化着绷。但是蛔钙,對數(shù)轉(zhuǎn)換無法實現(xiàn)完美的方差穩(wěn)定化(variance stabilization)。這意味著相比生物異質(zhì)性荠医,基因的豐度對其程度影響更大吁脱。因此,特征選擇計算每個基因的方差時通常需要對均-方差關(guān)系進(jìn)行建模彬向。軟件包scran兼贡,BASiCSscFeatureFilter都采用這種方法。

另外娃胆,還有可以替代方差的度量標(biāo)準(zhǔn)遍希,例如基于基因的偏離度(deviance)選擇特征基因,該方法評估每個基因與細(xì)胞間恒定表達(dá)的零模型(null model)的擬合程度里烦。與基于方差的特征選擇方法不同凿蒜,偏離度的計算是根據(jù)原始的唯一分子標(biāo)識符(UMI)計數(shù)完成的,因此該方法對標(biāo)準(zhǔn)化帶來的錯誤不太敏感招驴。偏離度可以使用glmpca軟件包進(jìn)行計算篙程。

降維枷畏。降維旨在減少數(shù)據(jù)中獨立維度的數(shù)量别厘。如果不同的基因受同一生物學(xué)過程的影響,它們的表達(dá)就會存在相關(guān)性拥诡,這使得降維是可行的触趴。因此,我們不需要單獨存儲每個基因的信息渴肉,而是可以將多個基因的信息壓縮成一個特征存儲冗懦。降維方法在保留有數(shù)據(jù)集中最有意義的信息結(jié)構(gòu)基礎(chǔ)上實現(xiàn)了數(shù)據(jù)的降維。降維的一個額外好處是降低了噪音仇祭,它可以把多個基因(比如披蕉,跟某一個通路相關(guān)的基因)用類似平均值的操作整合在一起,獲得的特征可以反應(yīng)更精確的表達(dá)變化模式。降維后下游分析中的計算工作也減少了没讲,因為只需要針對幾個維度而不是數(shù)千個基因進(jìn)行計算眯娱。效果更好的降維方案(aggressive dimensionality reduction schemes)可以在二維或三維空間對數(shù)據(jù)進(jìn)行可視化以幫助解釋結(jié)果。

scRNA-seq數(shù)據(jù)降維的常見第一步是主成分分析(PCA)爬凑。PCA在高維空間中鑒定可捕獲數(shù)據(jù)變異最大的軸(也成為主成分徙缴,PC)(PCA主成分分析實戰(zhàn)和可視化 附R代碼和測試數(shù)據(jù))。前幾個主成分維度捕獲了數(shù)據(jù)集中主要的異質(zhì)性的信息嘁信,因此可以有效的降維于样。這利用了PCA成熟的理論特性,即潘靖,對于給定的矩陣穿剖,由前幾維PC形成的低階近似矩陣是原始數(shù)據(jù)的最佳表示。鑒于此屬性秘豹,使用前幾維PC(或任何類似的低秩近似表示)執(zhí)行的計算(諸如聚類之類的下游分析)將充分利用數(shù)據(jù)壓縮和去噪的優(yōu)勢携御。

無論采用哪種方法,用于可視化的降維必然涉及信息丟失并改變細(xì)胞之間的距離既绕。因此啄刹,直接分析用于繪圖的低維坐標(biāo)是不明智的。相反凄贩,這些圖應(yīng)僅只用于解釋或傳達(dá)基于更精確的誓军、更多維度的定量分析結(jié)果。這樣可以保證分析充分利用了壓縮到二維空間時丟失的信息疲扎。假如二維圖上呈現(xiàn)的細(xì)胞分布與使用更多數(shù)目的PC進(jìn)行聚類獲得的結(jié)果之間存在差異昵时,應(yīng)傾向于相信后者的結(jié)果。

SingleCellExperiment類具有一個專用存儲空間reducedDims用于存儲降維后的數(shù)據(jù)(圖5.2).scater 軟件包提供了多個用于降維分析的便捷函數(shù)椒丧,可以進(jìn)行主成分分析(PCA)壹甥,t-SNE(t-Distributed Stochastic Neighbor Embedding,以及UMAP (Uniform Manifold Approximation and Projection)分析壶熏。density包提供了Diffusion map降維方法句柠。zinbwaveglmpca 程序包分別使用零膨脹(zero-inflated)負(fù)二項模型和多項式模型進(jìn)行基于模型的降維分析,優(yōu)勢是在模型中可以考慮混雜因素的影響棒假。

數(shù)據(jù)整合溯职。由于技術(shù)限制(logistical constraints),大型scRNA-seq項目通常需要分多個批次生成數(shù)據(jù)帽哑。但是谜酒,不同批次的處理通常會遇到無法控制的差異,例如操作員操作獨特性或試劑質(zhì)量的差異妻枕。這導(dǎo)致在不同批次的細(xì)胞中觀察到的表達(dá)發(fā)生系統(tǒng)性差異僻族。此外粘驰,隨著scRNA-seq數(shù)據(jù)的普及和參考數(shù)據(jù)集的普及,在整合分析中不可避免地會遇到這種混雜變量的影響述么。在這個情況下晴氨,批次效應(yīng)可能是數(shù)據(jù)異質(zhì)性的主要驅(qū)動力,會掩蓋相關(guān)的生物學(xué)差異并使結(jié)果的解釋變得復(fù)雜碉输。

盡管可以使用廣義線性模型來整合不同的數(shù)據(jù)集籽前,但在scRNA-seq分析中,這些方法可能不是最佳的敷钾。因為它們基于一個假設(shè)枝哄,即不同批次的細(xì)胞中細(xì)胞群體的組成是已知的或相同的。為了克服這一限制阻荒,研究者開發(fā)了不基于細(xì)胞群體構(gòu)成的先驗知識的特制方法用于單細(xì)胞數(shù)據(jù)的批次校正 挠锥。這便利了scRNA-seq數(shù)據(jù)的探索性分析,因為這些先驗知識通常是不可用的侨赡。

在批次校正之前蓖租,最好先檢查是否有批次影響⊙蛞迹基于特征基因的對數(shù)表達(dá)值進(jìn)行PCA分析蓖宦,再使用基于圖的聚類方法展示群體結(jié)構(gòu)。理想情況下油猫,每個聚類簇都應(yīng)包含來自各個重復(fù)scRNA-seq數(shù)據(jù)集的細(xì)胞稠茂。然而,如果細(xì)胞簇只包含單個批次的細(xì)胞情妖,則表明批次效應(yīng)把本來相同類型的細(xì)胞錯誤地區(qū)分開了睬关。諸如t-SNEUMAP之類的方法也會顯示出來自不同批次的細(xì)胞之間的差異,這與聚類結(jié)果是一致的毡证。值得注意的是电爹,如果某個批次確實包含獨特的細(xì)胞亞群時,這種依賴于混合程度的可視化診斷可能并不有效料睛,但是仍然是有用的近似方法丐箩。

諸如scMergescamap之類的包可以使用先驗細(xì)胞標(biāo)記(請參閱“注釋”部分)進(jìn)行有監(jiān)督的整合分析秦效,用以指導(dǎo)對基因表達(dá)值進(jìn)行任何批次校正或調(diào)整較低維度的展示形式雏蛮。另一方面涎嚼,諸如相互最近鄰居(MNN阱州,mutual nearest neighbours)之類的無監(jiān)督方法會從彼此相鄰的鄰居集合中識別不同批次中成對的細(xì)胞。然后法梯,MNN對中的細(xì)胞之間的差異可以用作批次效應(yīng)的估計值苔货,將其相減得出批處理校正值犀概。實際上,通過調(diào)整最近鄰居的數(shù)量值k夜惭,可以調(diào)整批次校正的強(qiáng)弱姻灶,其中,較高的k值會導(dǎo)致批次之間子群體的匹配更加廣泛(generous matching)诈茧。這種基于MNN的方法在batchelor軟件包中有實現(xiàn)产喉。

批次校正的成功取決于生物異質(zhì)性信息的保留,因為可以設(shè)想一種校正方法將所有細(xì)胞簡單地聚集在一起敢会,雖然實現(xiàn)了細(xì)胞的完美混合曾沈,但丟棄了感興趣的生物信息脖镀。為此拆吆,CellMixS軟件包可用于評估批次之間的細(xì)胞混合程度。另一個有用的評估方法是將數(shù)據(jù)合并后的聚簇結(jié)果與每個批次數(shù)據(jù)分別獲得的聚簇結(jié)果相比較渣窜。理想情況下吏垮,我們應(yīng)該看到多對一的映射關(guān)系障涯,跨批次聚簇結(jié)果嵌套在批次內(nèi)聚類結(jié)果,這表明任何批次內(nèi)結(jié)構(gòu)都在校正后得以保留膳汪。統(tǒng)計量如蘭德指數(shù)(Rand index唯蝶,https://en.wikipedia.org/wiki/Rand_index)可用于評估聚類結(jié)果(蘭德指數(shù)越大聚類效果越好)。

下游統(tǒng)計分析

因研究目標(biāo)或?qū)嶒炇侄蔚牟煌潘裕掠畏治龅姆椒ê凸ぷ髁鞒痰倪x擇也差異很大生棍。數(shù)據(jù)前期處理后,可以使用Bioconductor中能夠處理SingleCellExperiment類并且可以處理大量細(xì)胞的工具進(jìn)行具體的生物探索分析媳谁。我們的在線圖書(https://osca.bioconductor. org)為用戶提供了用于下游分析和可視化的分析流程和案例研究(圖4)涂滴。

image

Fig. 4 | Select visualizations derived from various Bioconductor workflows. Various visualizations associated with pre-processing (blue boxes) and downstream statistical analyses (pink boxes). The example data set used throughout was generated as part of the Human Cell Atlas 21 . Details on the generation of these figures are described in our online companion book (https://osca.bioconductor.org).

聚類。在scRNA-seq數(shù)據(jù)分析中使用經(jīng)驗性的聚類方式定義具有相似表達(dá)譜的細(xì)胞為一簇晴音。這使我們可以用更容易理解的離散標(biāo)記來描述種群異質(zhì)性柔纵,而不是試圖理解細(xì)胞自身所處的高維流形。在基于差異表達(dá)獲得的標(biāo)記基因進(jìn)行注釋后锤躁,可以將簇視為更抽象的生物學(xué)概念(例如細(xì)胞類型或狀態(tài))的代名詞搁料。

值得強(qiáng)調(diào)的是細(xì)胞簇與細(xì)胞類型之間的區(qū)別。前者是一種經(jīng)驗稱謂系羞,而后者是一個生物學(xué)事實(盡管定義有些模糊)郭计。因此,需要認(rèn)識到聚類椒振,其實像顯微鏡一樣昭伸,只是探索數(shù)據(jù)的一個工具。更改聚類參數(shù)可以類比于放大和縮小分辨率來調(diào)整觀察的粒度澎迎,并嘗試使用不同的聚類算法來獲得數(shù)據(jù)的其它查看角度庐杨。

基于圖的聚類方法是對大型scRNA-seq數(shù)據(jù)集進(jìn)行聚類分析的一種靈活且擴(kuò)展性強(qiáng)的技術(shù)选调。在一個高維空間中,每個點(也就是一個細(xì)胞)與其最近的鄰居相連構(gòu)成一幅網(wǎng)絡(luò)圖灵份。邊基于相連的細(xì)胞的相似性加權(quán)仁堪,連接越相似的細(xì)胞的邊的權(quán)重越高。louvainleiden等算法 可以用來鑒定細(xì)胞簇填渠。

BiocNeighbors提供了用于精確和近似最近鄰檢測的分析工具弦聂,并通過scran構(gòu)建實際連接圖形。值得注意的是氛什,對于大型scRNA-seq數(shù)據(jù)集横浑,近似NN方法以可接受的準(zhǔn)確性損失為代價極大地縮短了運(yùn)行時間,并具有平滑噪聲和稀疏性的額外優(yōu)勢屉更。替代方法包括SIMLR軟件包徙融,它使用多個kernal來學(xué)習(xí)最適合數(shù)據(jù)的細(xì)胞距離度量方式,并可用于聚類和降維瑰谜。對于大數(shù)據(jù)欺冀,mbkmeans軟件包實現(xiàn)了k-means算法的高速版本。最后萨脑,SCclusterExperiment程序包構(gòu)建了基于多重參數(shù)的一致性聚類比較分析隐轩。

許多這些程序包都可以對聚類結(jié)果進(jìn)行定量和視覺評估,此外渤早,還專門設(shè)計有用于數(shù)據(jù)可視化和評估的其它程序包(例如clustree)职车。另外可以通過一些度量參數(shù)(例如簇模塊性或輪廓系數(shù)silhouette coefficient)來獨立評估聚類結(jié)果。

差異表達(dá)鹊杖。差異基因表達(dá)(DGE)分析可用于識別驅(qū)動簇分離的標(biāo)記基因悴灵。這些標(biāo)記基因使我們能夠根據(jù)其功能注釋為每個簇賦予生物學(xué)意義。在最明顯的情況下骂蓖,每個簇的標(biāo)記基因與已經(jīng)注釋的特定細(xì)胞類型相關(guān)积瞒,從而讓聚類結(jié)果等同于細(xì)胞類型鑒定結(jié)果。同時還可以應(yīng)用相同原理檢測更細(xì)微的差異登下,例如激活狀態(tài)或分化狀態(tài)之間的比較茫孔。DGE分析用于細(xì)胞類型注釋的替代方案是基因集富集分析,該分析將基因歸類到先驗的基因模塊或生物途徑被芳,以便于進(jìn)行生物解釋缰贝。我們將在“注釋”部分中討論此主題。

在差異表達(dá)方法中畔濒,有兩種通用方法很突出剩晴。第一種方法是把最初廣泛應(yīng)用于普通轉(zhuǎn)錄組測序的R包(如edgeRDESeq2limma-voom)等通過各種方法(例如通過創(chuàng)建偽普通轉(zhuǎn)錄組圖譜)改造后應(yīng)用于scRNA-seq分析篓冲±钇疲或者,諸如zinbwave之類的方法在離散度估計和模型擬合步驟中減輕在scRNA-seq數(shù)據(jù)中大量零的權(quán)重壹将,然后再進(jìn)行差異分析嗤攻,也可以促進(jìn)普通轉(zhuǎn)錄組差異基因分析方法應(yīng)用于scRNA-seq數(shù)據(jù)。第二類方法是專門針對單細(xì)胞數(shù)據(jù)的特征開發(fā)的诽俯,其使用的統(tǒng)計方法直接對scRNA-seq數(shù)據(jù)常見的大量零值直接建模妇菱。這些方法將基因表達(dá)明確地分為兩個部分:離散部分(描述零與非零表達(dá)的基因的比例)以及連續(xù)部分(基因表達(dá)定量水平)。盡管本文提到的所有方法都可以對”連續(xù)部分”進(jìn)行差異分析暴区,但是只有第二類方法可以明確地對“離散部分”進(jìn)行建模(explicitly model)闯团,從而對表達(dá)頻率的差異進(jìn)行統(tǒng)計分析。為此仙粱,MAST軟件包使用了hurdle model( Hurdle模型是二分類模型與零截尾模型的聯(lián)合房交,它可通過對兩部分分別進(jìn)行極大似然估計而得到參數(shù)估計值。)伐割,而scDD候味,BASiCSSCDE 分別使用貝葉斯混合和層級模型。這些方法可以提供更廣泛的檢測功能隔心,并且可以直接用于SingleCellExperiment類中包含的scRNA-seq數(shù)據(jù)白群。

有關(guān)DE分析和上述各種軟件包的比較分析的更多詳細(xì)信息,請參見參考資料65–67.

軌跡分析硬霍。細(xì)胞異質(zhì)性還可以建模為一個連續(xù)的生物過程帜慢,如細(xì)胞分化。軌跡分析(或偽時間推斷)是專門針對單細(xì)胞降維分析的一個特殊應(yīng)用唯卖,它使用系統(tǒng)發(fā)育方法來沿著(通常是時間連續(xù)性的)軌跡對細(xì)胞進(jìn)行排序粱玲,如隨時間的發(fā)育。推斷的軌跡可以識別細(xì)胞狀態(tài)之間的過渡拜轨、分化過程或動態(tài)細(xì)胞過程中導(dǎo)致的二分事件密幔。

軌跡推斷的最新方法的改進(jìn)在最大程度地減少了用戶輸入?yún)?shù),并且可以基于各種拓?fù)浣Y(jié)構(gòu)進(jìn)行差異基因表達(dá)分析(例如Monocle撩轰,LineagePulseswitchde)胯甩。此外,用于軌跡推斷的多個Bioconductor軟件包(例如堪嫂,slingshot, TSCAN偎箫,Monocle, cellTreeMFA)最近被證明具有出色的性能。由于對于同一個數(shù)據(jù)集皆串,不同的方法可能產(chǎn)生截然不同的結(jié)果淹办,因此一系列的方法和參數(shù)設(shè)置需要進(jìn)行比較測試以評估其魯棒性。(NBT|45種單細(xì)胞軌跡推斷方法比較恶复,110個實際數(shù)據(jù)集和229個合成數(shù)據(jù)集

Bioconductor通過提供標(biāo)準(zhǔn)化的數(shù)據(jù)形式(例如SingleCellExperiment類對象)來方便此類測試怜森。參見(74)獲得進(jìn)一步討論速挑。

聚類簇注釋

scRNA-seq數(shù)據(jù)分析中最具挑戰(zhàn)性的任務(wù)可以說是聚類簇注釋。獲得細(xì)胞簇方法非常直接副硅,但是要確定每個簇代表的細(xì)胞類型或細(xì)胞狀態(tài)則更加困難姥宝。完成這個工作需要彌合當(dāng)前數(shù)據(jù)集和先驗生物學(xué)知識之間的鴻溝,而后者并不總能以一致和定量的方式獲得恐疲。因此腊满,對scRNA-seq數(shù)據(jù)的注釋通常是手動的,并且是分析流程中的常見瓶頸培己。

為了加快此步驟碳蛋,可以應(yīng)用各種計算方法利用先驗信息為新的scRNA-seq數(shù)據(jù)集賦予生物意義。先驗信息的最明顯來源是與特定生物學(xué)過程相關(guān)的認(rèn)證基因集(例如省咨,來自基因本體論(GO肃弟,gene ontology)或KEGG通路信息)。另一種方法是將表達(dá)譜與已發(fā)布的經(jīng)過領(lǐng)域?qū)<易鲞^注釋的參考數(shù)據(jù)集直接進(jìn)行比較零蓉。

基因集富集愕乎。經(jīng)典基因集富集(GSE)方法的優(yōu)點是不需要參考表達(dá)值。當(dāng)處理來自文獻(xiàn)或其他定性形式的生物學(xué)知識的基因集時壁公,這特別有用感论。在細(xì)胞注釋時,通常在一組細(xì)胞(或簇)上執(zhí)行GSE分析以識別這些細(xì)胞富集的基因集或生物通路紊册。然后可以根據(jù)富集的通路推導(dǎo)細(xì)胞類型(或狀態(tài))比肄。

Bioconductor提供了專用軟件包從數(shù)據(jù)庫(如MSigDBKEGG囊陡、Reactome芳绩、GO)中獲得預(yù)定義的基因特征信息。EnrichmentBrowser簡化了從此類數(shù)據(jù)庫收集基因集的過程撞反。最初為普通轉(zhuǎn)錄組數(shù)據(jù)開發(fā)的基因集富集分析方法也可應(yīng)用于scRNA-seq數(shù)據(jù)中特定基因模塊的富集妥色。EnrichmentBrowserEGSEAfgsea軟件包分別提供了一些經(jīng)典GSE分析的工具遏片。在MAST嘹害、AUCellslalom中也有進(jìn)行GSE分析的方法。

自動注釋細(xì)胞吮便。從概念上講笔呀,最直接的注釋方法是將單細(xì)胞表達(dá)譜與先前注釋的參考數(shù)據(jù)集進(jìn)行比較。然后髓需,根據(jù)最相似的參考樣本或某些其他相似性指標(biāo)许师,將生物標(biāo)簽分配給待確認(rèn)的細(xì)胞。這是一個常見的分類問題,可以通過標(biāo)準(zhǔn)的機(jī)器學(xué)習(xí)技術(shù)如隨機(jī)森林和支持向量機(jī)來解決微渠。任何公開且?guī)в袠?biāo)簽的RNA-seq數(shù)據(jù)集(普通或單細(xì)胞的)都可以用作參考搭幻,其可靠性在很大程度上取決于給參考集細(xì)胞進(jìn)行注釋的原始作者的專業(yè)性。

SingleR方法提供了一種用于細(xì)胞類型注釋的自動化系統(tǒng)逞盆。SingleR基于具有最高Spearman相關(guān)性的參考樣本標(biāo)記細(xì)胞檀蹋,因此可以認(rèn)為是k-近鄰分類的排序變體。為了減少噪聲纳击,SingleR可以識別兩組細(xì)胞之間的標(biāo)記基因续扔,并僅使用那些標(biāo)記基因來計算相關(guān)性攻臀。程序包中包含許多內(nèi)置參考數(shù)據(jù)集焕数,這些數(shù)據(jù)集來自多個項目,包括免疫基因組計劃(ImmGen)刨啸,ENCODE和免疫細(xì)胞表達(dá)數(shù)據(jù)庫(DICE)堡赔。

分析工具易用性 Accessible analysis

隨著對單細(xì)胞測序數(shù)據(jù)的分析興趣日益濃厚,Bioconductor不僅開發(fā)了分析數(shù)據(jù)的方法和軟件设联,而且還優(yōu)先考慮使數(shù)據(jù)本身和數(shù)據(jù)分析工具更易于用戶和開發(fā)人員使用善已。具體而言,社區(qū)提供了數(shù)據(jù)包离例,其中包含公開可用的已發(fā)布數(shù)據(jù)和模擬數(shù)據(jù)换团,以及交互式數(shù)據(jù)可視化工具。這樣可以使單細(xì)胞數(shù)據(jù)和數(shù)據(jù)分析工具更易于訪問宫蛆,使研究人員可以在自己的工作中利用這些資源并使數(shù)據(jù)分析民主化(democratizes data analysis)艘包。

基準(zhǔn)測試。隨著新的單細(xì)胞檢測耀盗、統(tǒng)計方法和相應(yīng)軟件的開發(fā)想虎,方便數(shù)據(jù)集的發(fā)布、再現(xiàn)現(xiàn)有分析以及實現(xiàn)新工具與現(xiàn)有工具的比較變得越來越重要叛拷。Bioconductor收集了一系列數(shù)據(jù)包舌厨,著重于提供可以直接用于分析的帶有版本信息的數(shù)據(jù),以及可用于復(fù)制手稿圖形和展示數(shù)據(jù)特征的手冊忿薇。

為了便于查詢Bioconductor上已發(fā)布的數(shù)據(jù)包裙椭,ExperimentHub包允許使用標(biāo)準(zhǔn)化接口以編程方式訪問已發(fā)布的數(shù)據(jù)集。值得注意的是署浩,scRNAseq軟件包可以從各種來源獲得校正過的高質(zhì)量scRNA-seq數(shù)據(jù)集骇陈。另外,模擬數(shù)據(jù)集對評判軟件也很有幫助瑰抵。

另外你雌,splatter包可以模擬包含多種細(xì)胞類型、批次效應(yīng)、不同水平的drop-out事件婿崭、差異基因表達(dá)和軌跡的模擬scRNA-seq數(shù)據(jù)集拨拓。splatter 包使用自己的模擬策略框架,并整合其它不同模型的模擬策略以提供全面的單細(xì)胞模擬數(shù)據(jù)資源氓栈。

為了提高評估單細(xì)胞方法性能的基準(zhǔn)比較的可重復(fù)性渣磷,Bioconductor開發(fā)了存儲不同方法比較結(jié)果的基本架構(gòu)。SummarizedBenchmarkCellBench軟件包提供了用于存儲元數(shù)據(jù)(方法參數(shù)和軟件包版本)和評估指標(biāo)的接口授瘦。

交互式數(shù)據(jù)可視化醋界。網(wǎng)絡(luò)技術(shù)的成熟為交互式數(shù)據(jù)探索開辟了新的途徑,而R包shiny則有助于開發(fā)豐富的圖形用戶界面提完。iSEEsingleCellTK軟件包為通過Internet瀏覽器對scRNAseq數(shù)據(jù)集進(jìn)行交互可視化提供了全功能的應(yīng)用程序形纺,消除了對編程經(jīng)歷的需求。如果實例托管在Web上徒欣,則無需編程經(jīng)驗逐样。這兩個軟件包都直接與SingleCellExperiment數(shù)據(jù)容器連接以便促進(jìn)scRNA-seq分析結(jié)果的交流。

展望

自從基因組學(xué)問世以來打肝,Bioconductor項目就已經(jīng)通過R統(tǒng)計編程語言擁抱了開源和開放軟件的開發(fā)脂新。Bioconductor已建立協(xié)調(diào)包版本和代碼審查的最佳實踐。除了社區(qū)貢獻(xiàn)的軟件包粗梭,核心開發(fā)團(tuán)隊(https://www.bioconductor.org/about/core-team)開發(fā)并維護(hù)必要的基礎(chǔ)架構(gòu)争便,并審核提交的軟件包,以確保它們滿足一套指導(dǎo)原則和保證各個軟件包之間的兼容性断医。這些軟件包被組織到BiocViews中滞乙,一個按任務(wù)或技術(shù)對軟件包進(jìn)行分類的主題注釋庫。例如孩锡,單細(xì)胞分析主題在視圖SingleCell下標(biāo)記酷宵。最重要的是,更廣泛的Bioconductor社區(qū)(包括論壇躬窜、Slack或郵件列表)是代碼共享和技術(shù)幫助中無私的典范浇垦。這些實踐共同產(chǎn)生了高質(zhì)量、維護(hù)良好的軟件包荣挨,為生物學(xué)研究提供了一個統(tǒng)一而穩(wěn)定的分析環(huán)境男韧。

最近,Bioconductor社區(qū)開發(fā)了最新的計算方法默垄、數(shù)據(jù)結(jié)構(gòu)和交互式數(shù)據(jù)可視化工具用于分析從單細(xì)胞實驗中獲得的數(shù)據(jù)此虑。新興的單細(xì)胞技術(shù),包括表觀基因組學(xué)口锭、T細(xì)胞和B細(xì)胞文庫朦前、空間轉(zhuǎn)錄組譜分析和基于測序的蛋白質(zhì)譜分析介杆,希望能推動計算生物學(xué)的發(fā)展。特別是韭寸,支持多組學(xué)分析的技術(shù)正在迅速發(fā)展春哨,Bioconductor為研發(fā)用于此類技術(shù)分析的統(tǒng)計方法奠定了必要的基礎(chǔ)。

此外恩伺,Bioconductor的標(biāo)準(zhǔn)化數(shù)據(jù)容器可實現(xiàn)Bioconductor軟件包以及與其他軟件之間的互操作性赴背。可以將存儲在SingleCellExperiment中的數(shù)據(jù)轉(zhuǎn)換為Seurat晶渠、Monocle 和Python的scanpy可用的格式凰荚,從而可以使用最能滿足當(dāng)前分析目標(biāo)的工具。實際上褒脯,R與其他編程語言有著很長的互操作性歷史便瑟。有四個例子,Rcpp用于將C++編譯后的代碼集成到R軟件包中憨颠,rJava軟件包用于從R中調(diào)用Java代碼的胳徽,R中的.Fortran()函數(shù)可以調(diào)用Fortran代碼积锅,reticulate包與Python互通爽彤。

這種互操作性使常見的機(jī)器學(xué)習(xí)框架(例如TensorFlow/Keras)可以直接在R中使用。

對于新手來說缚陷,Bioconductor中能進(jìn)行大量單細(xì)胞分析的數(shù)量眾多的程序包可能令人望而生畏适篙。為了解決單細(xì)胞分析中越來越多軟件包的選擇問題,我們總結(jié)并強(qiáng)調(diào)了當(dāng)前最先進(jìn)的數(shù)據(jù)基礎(chǔ)架構(gòu)箫爷、方法和軟件嚷节,并按照典型的單細(xì)胞分析流程組織了這些軟件包(圖3)(圖4)。最后虎锚,我們開發(fā)了在線的配套書籍硫痰,其中提供了有關(guān)各個分析主題的更詳細(xì)信息以及完整的代碼流程(https://osca.bioconductor.org)。隨著新軟件包的出現(xiàn)窜护,我們會不斷更新和維護(hù)這套在線書籍效斑,促進(jìn)Bioconductor資源更方便使用。

作者:張虎

編輯:生信寶典

單細(xì)胞系列教程

參考文獻(xiàn)

  • 50. Andrews, T. & Hemberg, M. M3Drop: Dropout-based feature selection for scRNASeq. Bioinformatics 35, 2865–2867 (2019).

  • 51. Yip, S. H., Sham, P. C. & Wang, J. Evaluation of tools for highly variable gene discovery from single-cell RNA-seq data. Brief. Bioinform. 20, 1583–1589 (2018).

  • 65. Soneson, C. & Robinson, M. D. Bias, robustness and scalability in single-cell differential expression analysis. Nat. Methods 15, 255–261 (2018).

  • 66. Wang, T., Li, B., Nelson, C. E. & Nabavi, S. Comparative analysis of differential gene expression analysis tools for single-cell RNA sequencing data. BMC Bioinform. 20, 40 (2019).

  • 67. Crowell, H. L. et al. On the discovery of population-specific state transitions from multi-sample multi-condition single-cell RNA sequencing data. Preprint at bioRxiv https://doi.org/10.1101/713412 (2019).

  • 74. Saelens, W., Cannoodt, R., Todorov, H. & Saeys, Y. A comparison of single-cell trajectory inference methods. Nat. Biotechnol. 37, 547 (2019).

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末和媳,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子哈街,更是在濱河造成了極大的恐慌留瞳,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,013評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件骚秦,死亡現(xiàn)場離奇詭異她倘,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)作箍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評論 2 382
  • 文/潘曉璐 我一進(jìn)店門硬梁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人胞得,你說我怎么就攤上這事荧止。” “怎么了懒震?”我有些...
    開封第一講書人閱讀 152,370評論 0 342
  • 文/不壞的土叔 我叫張陵罩息,是天一觀的道長。 經(jīng)常有香客問我个扰,道長瓷炮,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,168評論 1 278
  • 正文 為了忘掉前任递宅,我火速辦了婚禮娘香,結(jié)果婚禮上苍狰,老公的妹妹穿的比我還像新娘。我一直安慰自己烘绽,他們只是感情好淋昭,可當(dāng)我...
    茶點故事閱讀 64,153評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著安接,像睡著了一般翔忽。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上盏檐,一...
    開封第一講書人閱讀 48,954評論 1 283
  • 那天歇式,我揣著相機(jī)與錄音,去河邊找鬼胡野。 笑死材失,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的硫豆。 我是一名探鬼主播龙巨,決...
    沈念sama閱讀 38,271評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼熊响!你這毒婦竟也來了旨别?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,916評論 0 259
  • 序言:老撾萬榮一對情侶失蹤耘眨,失蹤者是張志新(化名)和其女友劉穎昼榛,沒想到半個月后境肾,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體剔难,經(jīng)...
    沈念sama閱讀 43,382評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,877評論 2 323
  • 正文 我和宋清朗相戀三年奥喻,在試婚紗的時候發(fā)現(xiàn)自己被綠了偶宫。 大學(xué)時的朋友給我發(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
  • 我被黑心中介騙來泰國打工缚去, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留潮秘,地道東北人。 一個月前我還...
    沈念sama閱讀 45,401評論 2 352
  • 正文 我出身青樓易结,卻偏偏與公主長得像枕荞,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子搞动,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,700評論 2 345

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