免疫組庫數(shù)據(jù)分析||immunarch教程:Clonotype tracking

immunarch — Fast and Seamless Exploration of Single-cell and Bulk T-cell/Antibody Immune Repertoires in R

10× Genomics單細胞免疫組庫VDJ分析必知必會
免疫組庫數(shù)據(jù)分析||immunarch教程:克隆型分析
免疫組庫數(shù)據(jù)分析||immunarch教程:探索性數(shù)據(jù)分析
免疫組庫數(shù)據(jù)分析||immunarch教程:載入10X數(shù)據(jù)
免疫組庫數(shù)據(jù)分析||immunarch教程:快速開始
免疫組庫數(shù)據(jù)分析||immunarch教程:GeneUsage分析
免疫組庫數(shù)據(jù)分析||immunarch教程:Diversity 分析

今天,我們繼續(xù)我們的免疫組庫數(shù)據(jù)分析的Demos,這一次我們來談?wù)凜lonotype tracking分析。像我這樣剛?cè)腴T免疫組庫的人首先會問什么是Clonotype tracking?

克隆型追蹤(Clonotype tracking)是監(jiān)測疫苗接種和癌癥免疫感興趣的克隆型頻率變化的常用方法。例如,研究人員可以在疫苗接種前和接種后的不同時間點跟蹤克隆類型,或分析腫瘤樣本中惡性克隆型的生長。所謂的追蹤用到的可視化方法類似我們提到過的?;鶊D,具體地:?;鶊D在單細胞數(shù)據(jù)探索中的應(yīng)用。immunarch中集成了多種克隆型跟蹤方法。目前有三種方法可供選擇。trackClonotypes的輸出可以立即用vis函數(shù)可視化。

追蹤最豐富的克隆型

最簡單的方法是從一個輸入免疫序列中選擇最豐富的克隆類型,并批量跟蹤所有的免疫序列。參數(shù).which和.col用于選擇免疫序列、從中獲取的克隆類型數(shù)量以及使用的列。從第一個庫中選擇5個最豐富的克隆型,并利用其CDR3核苷酸序列對其進行跟蹤:

library(immunarch); data(immdata)       # Load the package and the test dataset
?trackClonotypes
tc1 <- trackClonotypes(immdata$data, list(1, 5), .col = "nt")
tc1
                                               CDR3.nt
1:    TGCGCCAGCAGCCAAGAAGGGACAGGGTATTCCGGGGAGCTGTTTTTT
2:          TGCGCCAGCAGCTACAGGGTTGGCACAGATACGCAGTATTTT
3: TGTGCCACCAGCACCAACAGGGGCGGAACCCCAGCAGATACGCAGTATTTT
4:          TGTGCCACCAGCATCGGAGGCGGGAGCTACGAGCAGTACTTC
5:          TGTGCCAGCAGTCCTTGGACAGGGAGTATGGCCCTCCACTTT
       A2-i129 A2-i131 A2-i133 A2-i132 A4-i191 A4-i192 MS1
1: 0.020352941       0       0       0       0       0   0
2: 0.019176471       0       0       0       0       0   0
3: 0.007764706       0       0       0       0       0   0
4: 0.006352941       0       0       0       0       0   0
5: 0.005647059       0       0       0       0       0   0
   MS2 MS3 MS4 MS5 MS6
1:   0   0   0   0   0
2:   0   0   0   0   0
3:   0   0   0   0   0
4:   0   0   0   0   0
5:   0   0   0   0   0

which參數(shù)(第二個參數(shù))的值list(1,5)意味著從輸入字符串immdata$data的第一個列表中選擇5個clonotypes。col參數(shù)的值“nt”意味著函數(shù)應(yīng)該只接受CDR3核苷酸序列。

從“MS1”庫中選擇10個最豐富的氨基酸克隆型序列及其V基因進行跟蹤:

tc2 <- trackClonotypes(immdata$data, list("MS1", 10), .col = "aa+v")
 tc2
             CDR3.aa   V.name A2-i129 A2-i131 A2-i133
 1:   CASSFEGAMDTQYF  TRBV7-6       0       0       0
 2:   CASSLGDSTYEQYF  TRBV5-6       0       0       0
 3: CASSLGLREQGETQYF   TRBV28       0       0       0
 4: CASSLQAGGNTDTQYF  TRBV7-2       0       0       0
 5:     CASSLYSNEQFF  TRBV7-9       0       0       0
 6:   CASSVYSTISEQYF    TRBV9       0       0       0
 7:   CSARDLANSYEQYF TRBV20-1       0       0       0
 8:    CSTEEDSYNEQFF TRBV20-1       0       0       0
 9:  CSVELRTESGYEQYF TRBV29-1       0       0       0
10:     CSYRTGGPEQYF TRBV29-1       0       0       0
    A2-i132 A4-i191 A4-i192         MS1          MS2
 1:       0       0       0 0.008941176 0.0000000000
 2:       0       0       0 0.011529412 0.0000000000
 3:       0       0       0 0.007058824 0.0001176471
 4:       0       0       0 0.063529412 0.0000000000
 5:       0       0       0 0.004470588 0.0000000000
 6:       0       0       0 0.037647059 0.0000000000
 7:       0       0       0 0.009529412 0.0000000000
 8:       0       0       0 0.024000000 0.0000000000
 9:       0       0       0 0.017764706 0.0000000000
10:       0       0       0 0.007294118 0.0000000000
             MS3          MS4 MS5 MS6
 1: 0.0000000000 0.0000000000   0   0
 2: 0.0000000000 0.0001176471   0   0
 3: 0.0000000000 0.0000000000   0   0
 4: 0.0000000000 0.0000000000   0   0
 5: 0.0000000000 0.0000000000   0   0
 6: 0.0001176471 0.0001176471   0   0
 7: 0.0000000000 0.0000000000   0   0
 8: 0.0001176471 0.0000000000   0   0
 9: 0.0000000000 0.0000000000   0   0
10: 0.0000000000 0.0000000000   0   0

參數(shù)的值list("MS1", "10"),它的意思是選擇10個clonotypes從命名為"MS1"的指令集在指令集immdata$data的輸入列表中。col的“aa+v”值意味著該功能應(yīng)該同時取CDR3氨基酸序列和最豐富的克隆型的v基因片段。

同樣經(jīng)典而又傻瓜式地操作

p1 <- vis(tc1)
p2 <- vis(tc2)

p1 / p2
用特定的核苷酸或氨基酸序列追蹤克隆型

為了跟蹤特定的clonotype序列,可以提供核苷酸或氨基酸序列作為which參數(shù),同時提供列.col,以指定在哪些列中搜索序列。例如,要跟蹤下面指定的七個CDR3氨基酸序列,你需要執(zhí)行以下代碼:

target <- c("CASSLEETQYF", "CASSDSSGGANEQFF", "CASSDSSGSTDTQYF", "CASSLAGGYNEQFF", "CASSDSAGGTDTQYF", "CASSLDSYEQYF", "CASSSAGGYNEQFF")
tc <- trackClonotypes(immdata$data, target, .col = "aa")
vis(tc)
利用特定序列和基因片段追蹤克隆型

與之前的方法相比,利用序列和基因片段的信息來追蹤克隆型是可能的。你有一個特定的CDR3序列和基因片段的數(shù)據(jù)框。我們將通過從批次的第一個清單中選擇10個最豐富的克隆類型來模擬這一點:

target <- immdata$data[[1]] %>%
    select(CDR3.aa, V.name) %>%
    head(10)

target
# A tibble: 10 x 2
   CDR3.aa           V.name 
   <chr>             <chr>  
 1 CASSQEGTGYSGELFF  TRBV4-1
 2 CASSYRVGTDTQYF    TRBV4-1
 3 CATSTNRGGTPADTQYF TRBV15 
 4 CATSIGGGSYEQYF    TRBV15 
 5 CASSPWTGSMALHF    TRBV27 
 6 CASQGDSFNSPLHF    TRBV4-1
 7 CASSQDMGGRNTGELFF TRBV4-1
 8 CASSEEPRLFGYTF    TRBV2  
 9 CASSQPGQGGGDEQFF  TRBV4-1
10 CASSWVARGPYEQYF   TRBV6-6
tc <- trackClonotypes(immdata$data, target)
vis(tc)

請注意,您可以使用目標數(shù)據(jù)框中的任何列,例如CDR3核苷酸和氨基酸序列以及任何基因片段。所以如何確定哪一列呢?

可視化跟蹤

根據(jù)你的研究和審美需求,有三種可視化克隆型追蹤的方法。要選擇圖形的類型,需要提供“。- .plot = "smooth" -默認使用,使用光滑線條和堆疊條形圖進行可視化;- .plot = "area" -使用豐度線下面的區(qū)域來可視化豐度;- .plot =“l(fā)ine”-只可視化線,連接同一克隆型在時間點之間的豐度水平。

target <- c("CASSLEETQYF", "CASSDSSGGANEQFF", "CASSDSSGSTDTQYF", "CASSLAGGYNEQFF", "CASSDSAGGTDTQYF", "CASSLDSYEQYF", "CASSSAGGYNEQFF")
tc <- trackClonotypes(immdata$data, target, .col = "aa")
p1 <- vis(tc, .plot = "smooth")
p2 <- vis(tc, .plot = "area")
p3<- vis(tc, .plot = "line")
library(patchwork)
p1+ p2 +p3 
改變樣本的順序

vis函數(shù)的order參數(shù)控制可視化中樣本的順序。您可以通過您計劃可視化的樣本索引或樣本名稱。


# Passing indices
names(immdata$data)[c(1, 3, 5)] # check sample names
vis(tc, .order = c(1, 3, 5))

多么優(yōu)雅的桑基圖啊
# You can change the order
vis(tc, .order = c(5, 1, 3))

當然,這樣也是可以的,圖我就不貼了啊。

# Passing sample names
vis(tc, .order = c("A2-i129", "A2-i133", "A4-i191"))

如果元數(shù)據(jù)(metadata)包含有關(guān)時間的信息,如接種疫苗或腫瘤樣本的時間點,則可以使用它相應(yīng)地對樣本重新排序。在我們的示例中,immdata$meta不包含關(guān)于時間點的信息,因此我們將模擬這種情況。

immdata$meta$Timepoint <- sample(1:length(immdata$data))
immdata$meta
# A tibble: 12 x 7
   Sample  ID    Sex     Age Status Lane  Timepoint
   <chr>   <chr> <chr> <dbl> <chr>  <chr>     <int>
 1 A2-i129 C1    M        11 C      A             2
 2 A2-i131 C2    M         9 C      A            11
 3 A2-i133 C4    M        16 C      A             7
 4 A2-i132 C3    F         6 C      A             3
 5 A4-i191 C8    F        22 C      B             1
 6 A4-i192 C9    F        24 C      B             4
 7 MS1     MS1   M        12 MS     C            10
 8 MS2     MS2   M        30 MS     C             6
 9 MS3     MS3   M         8 MS     C            12
10 MS4     MS4   F        14 MS     C             8
11 MS5     MS5   F        15 MS     C             5
12 MS6     MS6   F        15 MS     C             9


sample_order <- order(immdata$meta$Timepoint)
immdata$meta$Timepoint[sample_order]
immdata$meta$Sample[sample_order]
vis(tc, .order = sample_order)

vis(tc, .order = order(immdata$meta$Timepoint))
改變調(diào)色板

在R控制臺中運行?scale_fill_brewer,了解ColorBrewer及其配色方案的更多信息

p1<- vis(tc) + scale_fill_brewer(palette = "Spectral")
p2 <- vis(tc) + scale_fill_brewer(palette = "RdBu")

p1 + p2 

我們?yōu)槭裁匆芯緾lonotype tracking???是為了看Clonotype 在不同樣本中的分布情況進一步看Clonotype的可能的遷移和轉(zhuǎn)化狀態(tài),所以關(guān)鍵的是樣本分組的生物學意義啊。


https://immunarch.com/articles/web_only/v8_tracking.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容