單細胞問題匯總

入門必讀:http://www.lxweimin.com/p/85e2e38df673

Q1:有的群2個或者3個不同細胞類型marker高表達,這時候如何給群定義具體哪種細胞呢?

隨著單細胞技術的成熟,僅靠幾個基因就判定一種細胞類型的模式可能要重新思考。在單細胞數據分析中有一個關鍵的步驟FindClusters(分群,以啟發樣本中可能有的細胞類型數量),但是這個目前用的方法是非監督聚類,也就是數據驅動的,不依賴生物學背景。而某一細胞類型的marker肯定是要依據生物學背景,您說的這種情況,就屬于兩者的矛盾的發生現場。有兩個思路供您參考

  1. 一個群內部有不同細胞類型的marker表達,是不是這個群本身有異質性(即有亞群)。
  2. 找的marker是不是特異的,某些細胞類型是幾個marker(有陽性有陰性)的。還有一種情況是分的不同的群有著相同的marker,這時可以把它們當做一個群。以上,基于FindClusters這個結果是符合生物學意義這一前提。

Q2:如果一個沒有相似疾病報道的疾病做單細胞,細胞marker怎么確定?

可延伸為如何鑒定一個新的細胞類型(即,之前并沒有人明確命名的細胞類型)。這個單純靠單細胞轉錄組可能有些困難,可能要輔之以濕實驗的驗證(手動找marker)。單細胞已有的分析可以為確定marker的方法有哪些呢?第一個就是差異分析,檢查marker的特異性;第二個是軌跡推斷,檢查該細胞類型與已知細胞類型之間的分化關系。鑒于單細胞技術之前細胞類型基本靠流式分選鑒定,建議做單細胞膜蛋白(傳統是按細胞功能鑒定的)會比單純的轉錄組好一些。隨著單細胞技術的成熟,僅靠幾個基因就判定一種細胞類型的模式可能要重新思考


Q3:怎么實現Seurat對象 與monocle bioconductor, scanpy,loom之間的轉換

參考:單細胞轉錄組數據分析||Seurat3.1教程:Interoperability between single-cell object formats

關于Seurat2和Seurat3的轉換:參考scRNA代碼倉庫,有官方說明書

http://www.lxweimin.com/p/396345566479?from=singlemessage&tdsourcetag=s_pcqq_aiomsg

Q4:怎么做細胞與細胞互作

celltalker:單細胞轉錄組配受體分析: http://www.lxweimin.com/p/2c2f94b4f072?tdsourcetag=s_pcqq_aiomsg

Q5:關于單細胞基因調控網絡GRN

引自:一文了解單細胞基因調控網絡(GRN)

活性TFs及其靶基因的組合通常表示為GRNs。探索GRNs是基因組研究領域的主要挑戰之一。一旦確定了驅動并維持細胞狀態行為的關鍵regulators,它們最終就可以用來做干擾這些調控過程的切入點。比如,結合一組特異的TFs組合,將成纖維細胞重編程為誘導性多能干細胞(iPS);許多其他的重編程途徑也是通過特定的TFs組合驅動一個GRN來促使細胞狀態的改變;最近在癌癥治療中進行了嘗試,使癌細胞轉成一種易于受特定藥物侵害的狀態。

  • 使用聚類算法將細胞分為不同的細胞類型或狀態
  • 通過軌跡推斷方法沿偽時間軸對細胞進行排序

從轉錄組學數據推斷GRNs通常依賴于可以從表達模式中提取調控信息的假設。例如,具有相似行為的那些基因受共同機制(例如特異性的TF)的調節。依據這樣的假設,調控網絡(GRN)推斷的目的可以是:

  • 對導致細胞從一種狀態轉變成另一種狀態的TF激活事件順序進行建模
  • 確定TFs潛在的靶標基因
  • 鑒定一個細胞狀態能夠維持所依賴的特定主要regulators(或regulators組合)。

一類GRN推斷方法著重于解密在動態過程中,細胞從一種狀態轉換到另一種狀態所需的TF邏輯組合

這通常是通過布爾網絡模型實現的。例如Single-Cell Network Synthesis (SCNS) toolkit和BoolTraineR,通過將每個細胞進行狀態分類(基于TF表達)并連接有限數量差異的細胞來構建布爾網絡。生成的狀態圖能夠讓我們找到參與細胞狀態改變的關鍵TFs,并可用于預測TF的過表達或敲除后的效果。但是,這不涉及有關靶基因的信息

另外,網絡規模的增加會導致計算量的迅速增加。因此,這些工具只能模擬少數基因(<100)。所以通常選擇相關TFs子集,再結合這些方法應用于動態過程的軌跡推斷步驟。

調控網絡推斷的另一種方法是:將TF與候選靶基因連接,最終目的是確定驅動特定細胞狀態的“主要regulators”

此類別中的一種主要方法是基于共表達分析并已廣泛用于bulk基因表達數據,例如GENIE3和WGCNA。最近的研究已經成功地將相似的方法應用于單細胞數據。使用這些方法時需要考慮的要素包括以下假設:

regulator表達水平的變化直接影響下游靶標的表達

忽略了轉錄后調控

忽略了并非所有co-varying基因都一定是直接作用的靶標

這些方法對normalization和batch-effects敏感,可能會引入人工協變量

基于共表達算法的其中一部分算法專門針對動態過程中的單細胞轉錄組數據構建GRN模型。這些方法結合細胞沿時間軸的初始順序(或預測的軌跡),同時對基因和調節子之間的表達動態進行建模,使用的技術包括:(non-linear) correlation、regression、covariance analysis 、multivariant information 、ordinary differential equation (ODE)模型以及其他的模型。

SCENIC workflow 包含3個主要步驟:

1.用GENIE3(隨機森林)GRNBoost (Gradient Boosting梯度下降) 推斷轉錄因子與候選靶基因之間的共表達模塊。每個模塊包含一個轉錄因子及其靶基因,純粹基于共表達。2.使用RcisTarget分析每個共表達模塊中的基因,以鑒定enriched motifs;僅保留TF motif富集的模塊和targets,每個TF及其潛在的直接targets gene被稱作一個調節子(regulon)3.使用AUCell評估每個細胞中每個regulon的活性,AUCell分數用于生成Regulon活性矩陣,通過為每個regulon設置AUC閾值,可以將該矩陣進行二值化(0|1,on|off),這將確定Regulon在哪些細胞中處于“打開”狀態。

使用RcisTarget是SCENIC不同于大多共表達算法的重要區別。由于GENIE3模塊僅基于共表達,因此結果可能包含許多誤報和間接target,為了鑒定推斷的直接結合的靶標基因,使用RcisTarget對每個共表達模塊進行順式調控基序(motif)分析。僅保留具有正確基因上游調節子且顯著富集TF motif的模塊,并對它們進行修剪以除去缺乏基序支持的間接靶標,這些處理后的模塊才稱為regulon。

本文Ref參考很重要,作為進一步數據挖掘分析的基礎

References

[1] 癌癥治療: https://www.sciencedirect.com/science/article/pii/S0959437X17300096
[2] 使用聚類算法將細胞分為不同的細胞類型或狀態: https://www.sciencedirect.com/science/article/pii/S0098299717300493
[3] 通過軌跡推斷方法沿偽時間軸對細胞進行排序: https://onlinelibrary.wiley.com/doi/full/10.1002/eji.201646347
[4] 1: https://www.sciencedirect.com/science/article/abs/pii/S0010482514000420
[5] 2: https://www.embopress.org/doi/full/10.1038/msb4100120
[6] 3: https://www.nature.com/nmeth/journal/v9/n8/abs/nmeth.2016.html
[7] SCNS: https://link.springer.com/chapter/10.1007/978-3-319-21690-4_38
[8] BoolTraineR: https://bmcbioinformatics.biomedcentral.com/articles/10.1186/s12859-016-1235-y
[9] 對iPS的重編程建模: https://www.sciencedirect.com/science/article/pii/S0092867412010215
[10] Moignard等人的工作: https://www.nature.com/articles/nbt.3154
[11] GENIE3: https://orbi.uliege.be/handle/2268/107580
[12] WGCNA: https://link.springer.com/article/10.1186/1471-2105-9-559
[13] SINCERA: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4658017/
[14] ACTION: https://www.nature.com/articles/s41467-018-03933-2
[15]SCENIC: https://www.nature.com/articles/nmeth.4463

Q6:怎么檢測fusion? 我們的fusion轉錄本在bulk RNA-seq已經detect到,表達豐度也是不錯的,那是不是我測序的深度足夠就有可能捕獲到fusion轉錄本呢?

測序深度是一個,10X的建庫策略也是需要考慮的,不同轉錄本的fusion位置和長度不同,不好說這種可能性有多大

單細胞結構, SNV/CNV/snp以及fusion都是值得思考的。

10*畢竟不是全長測序,適不適合以及準確性需要考慮

STAR-solo:http://www.bio-info-trainee.com/5498.html?tdsourcetag=s_pcqq_aiomsg

Can we detect splice variants or isoforms using single cell 3’ RNA-seq data?:https://kb.10xgenomics.com/hc/en-us/articles/360021902671-Can-we-detect-splice-variants-or-isoforms-using-single-cell-3-RNA-seq-data-?tdsourcetag=s_pcqq_aiomsg

關于空間轉錄組

pipeline參考這篇文章:https://www.baidu.com/link?url=xu2tB8cO3eJFeb813T_saLkUos04S8VyfKIvY72OcWbrtxAe0zP5fDgdaOz_IErA&wd=&eqid=cad711cc0018749e000000065e702e90

含源代碼:https://github.com/SpatialTranscriptomicsResearch/st_pipeline大多是python寫的

其他參考文章:http://www.lxweimin.com/p/20df850ed6ca

Seurat新版教程:http://www.lxweimin.com/p/f6da86489784?utm_campaign=haruki

公開課

如果按細胞大小10um來看,往上的是分辨率更高的亞顯微層面(分辨率和基因檢出數)有權衡

conpare.jpg

目前唯一的商業化空轉產品是10x Visium,優勢在于:可以獲得無偏量的高通量基因表達,空間分辨率較高(55um,每個spot的大小(6.5x6.5mm,5000個spot,每個不同顏色的spot的barcode不同,一個spot可以有上百萬條oligoUMI探針),檢測面積大(42.5um,像ISH相關只能檢測1-幾個mm^2),檢測效率(靈敏度)高,完整、簡易的操作流程,可和現有實驗方法整合

Visium.jpg

組織優化過程很重要,組織通透化時間決定了測序檢測基因的靈敏度,組織優化過程中cDNA添加熒光標簽,顯微拍照觀察,通透時間決定了mRNA的彌散程度,可以設置時間梯度選擇優化條件

測序深度與樣本有關,胚胎、大腦等復雜樣本建議測深,肺臟等其他可以淺一些,每個spot 50k個reads pair

saturation.jpg

https://satijalab.org/seurat/v3.1/spatial_vignette.html官網上除了空間轉錄組還包含了其他各種vigenettes比如多組學數據整合的guide

組織樣本的厚度一般10um-20um

Practical

參考:https://satijalab.org/seurat/v3.1/spatial_vignette.html

這個地方我在下載的時候報錯了:除非運氣很好不然大概率會報錯的,最好是直接找上Github:https://github.com/satijalab/seurat-data 這個專門的SeuratData包可以當做是一個meta package,管理Seurat支持的數據集

devtools::install_github("satijalab/seurat", ref = "spatial")

查看可下載的數據集然后下載,如果還不行就手動把url對應的包下載到lib,下載好解壓再重新載入數據就成功了(可以看到載入以后顯示出已下載的數據):

> library(SeuratData)
-- Installed datasets ------------------------------------- SeuratData v0.2.1 --
√ stxBrain 0.1.1                        

-------------------------------------- Key -------------------------------------
√ Dataset loaded successfully
> Dataset built with a newer version of Seurat than installed
(?) Unknown version of Seurat installed

注意Visium是以spot為基本單位的,meta.data的每一行為barcode,記錄了每一個barcode對應的UMI count和測得的基因數(一個spot測幾千個基因)

> head(brain@meta.data)
                   orig.ident nCount_Spatial nFeature_Spatial   slice       region
AAACAAGTATCTCCCA-1  anterior1          13069             4242       1       anterior
AAACACCAATAACTGC-1  anterior1          37448             7860       1       anterior
AAACAGAGCGACTCCT-1  anterior1          28475             6332       1       anterior
AAACAGCTTTCAGAAG-1  anterior1          39718             7957       1       anterior
AAACAGGGTCTATATT-1  anterior1          33392             7791       1       anterior
AAACATGGTGAGAGGA-1  anterior1          20955             6291       1       anterior

完成SCT和cluster后meta.data中會多出幾列:

brain@meta.data$seurat_clusters
brain@meta.data$SCT_snn_res.0.8
brain@meta.data$nFeature_SCT
brain@meta.data$nCount_SCT

但是我發現因為我并沒能下載他們pre-released版本,所以沒有需要的函數,然后在github上找解決方案:

https://github.com/search?q=seurat+v3.2&type=Issues不過沒什么用,所以我唯一能想到的就是改天再做

#github網站居然總是出現安全鏈接失敗。只能多試幾次,看什么時候人品回復正常
> devtools::install_github("satijalab/seurat", ref = "spatial")
Error: Failed to install 'Seurat' from GitHub:
  schannel: failed to receive handshake, SSL/TLS connection failed

這里需要注意一個問題:

install_github()安裝包出錯: http://www.lxweimin.com/p/58e33b71b466

但是沒有解決這個問題,于是我嘗試了本地安裝,這樣可以繞開github安裝

[https://codeload.github.com/satijalab/seurat/legacy.tar.gz/spatial](https://codeload.github.com/satijalab/seurat/legacy.tar.gz/spatial)  # 下載地址
install.packages("H:/singlecell/Seurat/satijalab-seurat-v3.1.1-302-g1cb8a3d.tar.gz", repos = NULL, type = "source")
#需要編譯,可能會報錯,Rcpp系列的包該裝的都裝上
#成功
packageVersion("Seurat")
[1] ‘3.1.4.9902’#這個pre-release版本編號比較奇特

「R包」如何實現Seurat 2 和 Seurat3 在同一個環境下共存:https://www.baidu.com/link?url=aw0bEQi-VjJP2wC7m3jEAJwsOhqUoeHyf1M2wPr5p6iLTMQj1SeMepP7e6-wA3Y83Of_GVXvkqZ0cB-p7wXFSYOaTbpE-YjhFrGyXYSBNKe&wd=&eqid=bd40068700049ff0000000065e706341

下面這種方法是在沒有預注釋的情況下根據基因表達的情況,找出那些具有強烈空間定位傾向的基因:

#在FindSpatiallyVariables中
#實現的另一種方法是在沒有預注釋的情況下搜索顯示空間模式的特性。
#默認的方法(method = 'markvariogram ')受到 Trendsceek,的啟發,
#后者將空間轉錄組學數據建模為標記點過程,并計算一個' variogram ',
#它識別其表達水平取決于其空間位置的基因。更具體地說,
#這個過程計算伽瑪(r)值,測量兩個點之間一定的“r”距離的相關性。
#默認情況下,我們在這些分析中使用的r值為‘5’
#注意這種計算會耗時較長
brain <- FindSpatiallyVariableFeatures(brain, assay = "SCT", features = VariableFeatures(brain)[1:1000], 
                                       selection.method = "markvariogram")

對于brain數據集我們可以提取我們感興趣的區域做進一步分析

> head(brain@images$anterior1@coordinates)
                   tissue row col imagerow imagecol
AAACAAGTATCTCCCA-1      1  50 102     7475     8501
AAACACCAATAACTGC-1      1  59  19     8553     2788
AAACAGAGCGACTCCT-1      1  14  94     3164     7950
AAACAGCTTTCAGAAG-1      1  43   9     6637     2099
AAACAGGGTCTATATT-1      1  47  13     7116     2375
AAACATGGTGAGAGGA-1      1  62   0     8913     1480

同樣在空間轉錄組中也可以實現數據集的整合,但是需要一個reference dataset: a reference scRNA-seq dataset of ~14,000 adult mouse cortical cell taxonomy from the Allen Institute, generated with the SMART-Seq2 protocol

# note that setting ncells=3000 normalizes the full dataset but learns noise models on 3k cells
# this speeds up SCTransform dramatically with no loss in performance
library(dplyr)
allen_reference <- SCTransform(allen_reference, ncells = 3000, verbose = FALSE) %>% RunPCA(verbose = FALSE) %>% 
  RunUMAP(dims = 1:30)
# After subsetting, we renormalize cortex 注意,reference和query data都要進行歸一化和cluster操作
cortex <- SCTransform(cortex, assay = "Spatial", verbose = FALSE) %>% RunPCA(verbose = FALSE)
# the annotation is stored in the 'subclass' column of object metadata
DimPlot(allen_reference, group.by = "subclass", label = TRUE)

anchors <- FindTransferAnchors(reference = allen_reference, query = cortex, normalization.method = "SCT")
predictions.assay <- TransferData(anchorset = anchors, refdata = allen_reference$subclass, prediction.assay = TRUE, 
                                  weight.reduction = cortex[["pca"]])
cortex[["predictions"]] <- predictions.assay

獲得anchors以后我們就可以進行數據的整合工作:

>anchors
An AnchorSet object containing 1236 anchors between 1 Seurat objects 
 This can be used as input to IntegrateData or TransferData.

上述步驟獲得了anchors并進行了注釋的映射(TransferData),這樣對于cortex的每一個spot我們都有了subclass注釋的預測性得分。

可以取出不同layer的細胞:

DefaultAssay(cortex) <- "predictions"
SpatialFeaturePlot(cortex, features = c("L2/3 IT", "L4"), pt.size.factor = 1.6, ncol = 2, crop = TRUE)

基于prediction的得分,同樣能找出那些有強烈空間定位傾向的細胞類型,不過和之前找variable features不同,這次用的是prediction score作為 marker而不是基因表達:

cortex <- FindSpatiallyVariableFeatures(cortex, assay = "predictions", selection.method = "markvariogram", 
    features = rownames(cortex), r.metric = 5, slot = "data")
top.clusters <- head(SpatiallyVariableFeatures(cortex), 4)
SpatialPlot(object = cortex, features = top.clusters, ncol = 2)

同一個Seurat對象還可以包含不同的slice,比如說,我們取另一區域的brain數據集并歸一化:

brain2 <- LoadData("stxBrain", type = "posterior1")
brain2 <- SCTransform(brain2, assay = "Spatial", verbose = FALSE)

然后和原來的合并成一個Seurat對象:

brain.merge <- merge(brain, brain2)

接下來就可以對多個slice同時做PCA降維、聚類等分析了

DefaultAssay(brain.merge) <- "SCT"
VariableFeatures(brain.merge) <- c(VariableFeatures(brain), VariableFeatures(brain2))
brain.merge <- RunPCA(brain.merge, verbose = FALSE)
brain.merge <- FindNeighbors(brain.merge, dims = 1:30)
brain.merge <- FindClusters(brain.merge, verbose = FALSE)
brain.merge <- RunUMAP(brain.merge, dims = 1:30)
Joint_UMAP.png
#其他的圖展示:
SpatialDimPlot(brain.merge)
SpatialFeaturePlot(brain.merge, features = c("Hpca", "Plp1"))
SpatialFeaturePlot.png

單細胞擬時分析

http://www.lxweimin.com/p/e94cff521ebc?tdsourcetag=s_pcqq_aiomsg

UMAP與t-NSE的區別

UMAP 與 t-SNE 均是非線性降維,多用于數據可視化

UMAP 結構與t-SNE一致

UMAP 計算更快

UMAP 能更好地反映高緯結構,比t-SNE有著更好的連續性

這種連續性反映到單細胞分析中就是能更好滴可視化細胞的分化狀態(UMAP better represents the multi-branched continuous trajectory of hematopoietic development)

參考:http://www.lxweimin.com/p/5aa1e2467339

We conclude that both techniques are similar in their visualisation capabilities, but UMAP has a clear advantage over t-SNE in runtime, making it highly plausible to employ UMAP as an alternative to t-SNE in mIF data analysis.

反卷積法推斷bulk RNA數據中的細胞組成

整體思路:細胞相互作用的復雜網絡支配免疫系統與腫瘤細胞之間的互動,了解實體瘤的特定免疫細胞組成,對于預測患者對免疫療法有何反應顯得至關重要。在這篇文章中,作者使用腫瘤單細胞RNA測序數據的適應癥特異性和細胞類型特異性參考基因表達譜(RGEP),深入分析如何通過數學反卷積從bulk數據中得出實體瘤的細胞組成數據。證明了腫瘤衍生的RGEP對成功的去卷積至關重要,而來自外周血的RGEP則不足。我們區分了9種主要細胞類型以及3種T細胞亞型。使用源自腫瘤的RGEP,我們可以估計許多與腫瘤相關免疫細胞和基質細胞的含量,治療相關的比例,以及完善的惡性細胞基因表達譜

http://www.lxweimin.com/p/74e8e4fa4643

從理論上講,如果可以為每個腫瘤相關細胞建立參考基因表達譜(RGEP),則可以從其整體基因表達譜推斷出實體瘤的免疫,腫瘤和基質細胞含量。從數學上講,這類反推問題稱為反卷積

我們發現,來自不同患者的適應癥特異性免疫細胞RNA-seq譜圖彼此足夠相似,可以為每種細胞類型定義一個共有譜圖,并且這些共有譜圖可以對腫瘤bulk譜圖進行準確的反卷積。

還可以參考:對混合細胞類型的轉錄組數據去卷積 (綜述)http://www.lxweimin.com/p/87caf98f3ca0

Gene expression distribution deconvolution in single-cell RNA sequencing:https://www.pnas.org/content/115/28/E6437

單細胞轉錄組高級分析介紹

10xGenomics公司提供了一種將轉錄組與V(D)J聯合分析的平臺,我們可以對同一個細胞,同時獲得其轉錄組數據和V(D)J數據,從而進一步深入研究其免疫特征。

VDJ結果可以反映細胞亞群的相似性,如果兩個亞群的VDJ表型一致,那么兩個亞群的相似性越高。

引自:https://mp.weixin.qq.com/s?__biz=MzI5MTcwNjA4NQ==&mid=2247492070&idx=1&sn=86a9d8d9b63cd1b5c4fee0e3848141fb&chksm=ec0e246cdb79ad7a71362658b0f52370cdcc24b2a6584408376b7249646d74486db1469a36bb&mpshare=1&scene=23&srcid=&sharer_sharetime=1586479507445&sharer_shareid=2fea1307a6a5f02af96cab119afdb691#rd

單細胞RNA-seq、ATAC-seq分析工具集錦

https://github.com/seandavi/awesome-single-cell

Cell丨首個哺乳動物單細胞染色質調控圖譜——頡偉點評

http://www.360doc.com/content/18/0807/19/28251648_776437557.shtml

舉一反三 | 總結單細胞文章分析框架及軟件

分析框架

單細胞技術梳理

技術梳理4

第一篇新冠單細胞文獻!|解讀

單細胞bioconductor實戰全

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容