使用immunarch包進行單細胞免疫組庫數據分析(九):Annotate clonotypes using immune receptor databases

免疫受體數據庫簡介

具有關于免疫受體特異性的匯總信息的數據庫提供了一種直接的方法來注釋您的數據并找到與疾病相關的TCR或BCR受體。immunarch包中支持使用了最流行的 AIRR 數據庫(VDJDB、McPAS-TCR 和 PIRD TBAdb)注釋數據的工具。

數據庫注釋主要包括以下兩步過程。首先,我們需要下載所需的數據庫文件 - 完整的數據庫文件或從數據庫的 Web 界面獲得的過濾數據。然后,再使用immunarch包中的函數來注釋數據,并可視化注釋結果。

下載注釋數據庫

VDJDB數據庫

VDJDB數據庫是一個已知抗原特異性的T細胞受體序列的精選數據庫。該數據庫基于 GitHub,可在此處獲得:https : //github.com/antigenomics/vdjdb-db

參考文獻: Shugay M et al. VDJdb: a curated database of T-cell receptor sequences with known antigen specificity. Nucleic Acids Research 2017

image.png

如何過濾和下載數據

在使用數據庫之前,從總的數據庫中過濾掉不相關的免疫受體信息是很有用的。例如,如果您分析人類 T 細胞 的TCR β 庫,則沒有必要保留來自其他物種的免疫受體以及非 TRB 數據。使用位于https://vdjdb.cdr3.net/search的VDJDB數據web界面過濾數據。選取過濾數據后按下“Refresh table”按鈕,找到“Export”按鈕并選擇里面的“TSV”標簽。您將下載過濾后的數據庫文件,其名稱類似于“SearchTable-2019-10-17 12_36_11.989.tsv”,可用于immunarch包中進行克隆型注釋.

如何下載完整的VDJDB數據庫

如果您在“CDR3”選項卡的“General”部分中設置了所有復選標記,則可以使用上面的方法下載完整數據庫。但是,如果您想下載原始數據庫文件,以下給出了下載VDJDB數據庫和解包的復雜分步指南:

    1. 首先,您需要安裝 JDK 8 - Java 開發工具包。如果您已經安裝了它,請跳過此步驟。如果沒有,只需為您的系統搜索正確的安裝說明。
    1. 其次,您需要安裝 Groovy——一種用于處理 VDJDB 的語言。轉到此鏈接并根據您的系統下載發行版或 Windows 安裝程序。對于 Windows 用戶,最好的方法是下載 Windows 安裝程序。對于 Linux 用戶,最簡單的方法是使用操作系統包管理器,例如 apt、dpkg、pacman 等。對于 Mac 用戶,最無縫的方法是使用Homebrew
    1. 通過此鏈接從 GitHub 下載 VDJDB 存儲庫:https : //github.com/antigenomics/vdjdb-db/archive/master.zip
    1. 解壓縮存檔并轉到解壓后的“vdjdb-db-master”文件夾。
    1. 轉到“src”文件夾。
    1. 打開您的終端或控制臺并執行以下命令:groovy -cp . BuildDatabase.groovy --no2fix.
    1. 經過一些處理后,數據庫文件將位于“vdjdb-db-master”文件夾內的“database”文件夾中。您需要為immunarch注釋函數提供此文件的路徑。

McPAS-TCR數據庫

McPAS-TCR數據庫是一個人工整理的病理相關的 T 細胞受體序列目錄。該數據庫位于http://friedmanlab.weizmann.ac.il/McPAS-TCR/

參考文獻:Shugay M et al. VDJdb: a curated database of T-cell receptor sequences with known antigen specificity. Nucleic Acids Research 2017

image.png

如何過濾和下載數據

McPAS-TCR數據庫 Web 界面的過濾功能位于“Search Database”選項卡中。篩選完數據后,按“Download csv”按鈕即可下載。下載的名為“McPAS-TCR_search.csv”的文件可用于immunarch包進行注釋分析。

如何下載完整的McPAS-TCR

要下載完整的McPAS-TCR,您只需訪問http://friedmanlab.weizmann.ac.il/McPAS-TCR/并在那里按“Download the complete database”按鈕。請注意,有時您需要按兩次或在新的瀏覽器選項卡中按它才能開始下載過程。

TBAdb數據庫

TBAdb數據庫是一個人工管理的針對特定抗原或疾病的 T 細胞受體 (TCR) 和 B 細胞受體 (BCR)數據庫。該數據庫包含三部分,即TCR-AB、TCR-GD和BCR。這三個部分旨在分別收集TCRA和TCRB、TCR-gamma和TCR-delta和BCR的序列和特異性信息。該數據庫可在https://db.cngb.org/pird/tbadb/ 獲得

參考文獻: Tickotsky N, Sagiv T, Prilusky J, Shifrut E, Friedman N (2017). McPAS-TCR: A manually-curated catalogue of pathology-associated T cell receptor sequences. Bioinformatics 33:2924-2929

image.png

如何過濾和下載數據

目前無法從 TBAdb數據庫 下載過濾后的數據。查詢功能可在https://db.cngb.org/pird/query/的“TBAdb”選項卡中使用。

如何下載完整的 TBAdb數據庫

要下載完整的TBAdb數據庫,您需要訪問https://db.cngb.org/pird/tbadb/并按“Download TBAdb”按鈕。請注意,您應該同意許可協議才能下載數據庫文件。

克隆型注釋

下載好相應的注釋數據庫后,我們可以繼續使用immunarch包進行克隆型注釋分析。接下來,我們將使用巨細胞病毒 (CMV) 感染的克隆庫進行注釋分析。

使用 R 預處理數據庫

首先,我們需要將數據庫加載到 R 中,并從輸入數據庫中過濾掉非人類、非 TRB 和非 CMV的 數據。對于數據庫,我們遵循與repLoadvis函數相同的原理:函數dbLoad為所有支持的數據庫的加載和基本查詢提供了一個單一的接口。
出于演示目的,我們將處理以下每個受支持的數據庫。

導入VDJDB數據庫

按照上述說明下載 VDJDB 數據庫。在下面的示例中,我們使用 URL 到數據庫片段作為文件路徑。在您自己的代碼中,您需要提供本地數據庫文件的路徑,例如“/Users/yourname/Downloads/vdjdb-db-master/vdjdb.slim.txt”。不要使用下面的鏈接,因為它們僅用于測試目的,而不是實際的數據庫!

請注意,從 Web 界面獲取的 VDJDB 數據與從原始文件中獲取的 VDJDB數據不同。
將 VDJDB數據加載到 R 的最基本方法:

vdjdb = dbLoad("https://gitlab.com/immunomind/immunarch/raw/dev-0.5.0/private/vdjdb.slim.txt.gz", "vdjdb")
vdjdb
## # A tibble: 61,049 x 19
##    gene  cdr3  species antigen.epitope antigen.gene antigen.species complex.id
##    <chr> <chr> <chr>   <chr>           <chr>        <chr>                <dbl>
##  1 TRB   CASS… Macaca… STPESANL        Tat          SIV                0.     
##  2 TRB   CASS… HomoSa… RLRAEAQVK       EBNA3A       EBV                1.93e 4
##  3 TRB   CASS… Macaca… TTPESANL        Tat          SIV                0.     
##  4 TRA   CASN… HomoSa… GILGFVFTL       M            InfluenzaA         0.     
##  5 TRB   CASS… MusMus… HGIRNASFI       M45          MCMV               2.24e24
##  6 TRB   CSAS… HomoSa… KLGGALQAK       IE1          CMV                8.58e 3
##  7 TRA   CAVL… HomoSa… GILGFVFTL       M            InfluenzaA         0.     
##  8 TRB   CASS… HomoSa… KLGGALQAK       IE1          CMV                3.44e 3
##  9 TRB   CAST… MusMus… SSYRRPVGI       PB1          InfluenzaA         2.28e 4
## 10 TRB   CASS… HomoSa… NLVPMVATV       pp65         CMV                0.     
## # … with 61,039 more rows, and 12 more variables: v.segm <chr>, j.segm <chr>,
## #   v.end <dbl>, j.start <dbl>, mhc.a <chr>, mhc.b <chr>, mhc.class <chr>,
## #   reference.id <chr>, vdjdb.score <dbl>, Species <chr>, Chain <chr>,
## #   Pathology <chr>

我們可以通過設置.species.chain以及.pathology等參數進行過濾篩選出需要的信息:

vdjdb  =  dbLoad ( "https://gitlab.com/immunomind/immunarch/raw/dev-0.5.0/private/vdjdb.slim.txt.gz" , "vdjdb" , .species  =  "HomoSapiens" , .chain  =  "TRB" , .pathology  =  "CMV" )
vdjdb
## # A tibble: 18,039 x 19
##    gene  cdr3  species antigen.epitope antigen.gene antigen.species complex.id
##    <chr> <chr> <chr>   <chr>           <chr>        <chr>                <dbl>
##  1 TRB   CSAS… HomoSa… KLGGALQAK       IE1          CMV                   8584
##  2 TRB   CASS… HomoSa… KLGGALQAK       IE1          CMV                   3445
##  3 TRB   CASS… HomoSa… NLVPMVATV       pp65         CMV                      0
##  4 TRB   CASS… HomoSa… KLGGALQAK       IE1          CMV                  19396
##  5 TRB   CASS… HomoSa… NLVPMVATV       pp65         CMV                      0
##  6 TRB   CAST… HomoSa… KLGGALQAK       IE1          CMV                  10972
##  7 TRB   CASS… HomoSa… KLGGALQAK       IE1          CMV                   6231
##  8 TRB   CASS… HomoSa… KLGGALQAK       IE1          CMV                  12587
##  9 TRB   CATS… HomoSa… KLGGALQAK       IE1          CMV                  13267
## 10 TRB   CASS… HomoSa… NLVPMVATV       pp65         CMV                      0
## # … with 18,029 more rows, and 12 more variables: v.segm <chr>, j.segm <chr>,
## #   v.end <dbl>, j.start <dbl>, mhc.a <chr>, mhc.b <chr>, mhc.class <chr>,
## #   reference.id <chr>, vdjdb.score <dbl>, Species <chr>, Chain <chr>,
## #   Pathology <chr>

VDJDB search tables

vdjdb_st = dbLoad("https://gitlab.com/immunomind/immunarch/raw/dev-0.5.0/private/SearchTable-2019-10-17%2012_36_11.989.tsv.gz", "vdjdb-search", .species = "HomoSapiens", .chain = "TRB", .pathology = "CMV")
vdjdb_st
## # A tibble: 4,999 x 19
##    complex.id Gene  CDR3  V     J     Species `MHC A` `MHC B` `MHC class`
##         <dbl> <chr> <chr> <chr> <chr> <chr>   <chr>   <chr>   <chr>      
##  1          0 TRB   CASS… TRBV… TRBJ… HomoSa… HLA-A*… B2M     MHCI       
##  2          0 TRB   CAWS… TRBV… TRBJ… HomoSa… HLA-A*… B2M     MHCI       
##  3          0 TRB   CASS… TRBV… TRBJ… HomoSa… HLA-A*… B2M     MHCI       
##  4          0 TRB   CASS… TRBV… TRBJ… HomoSa… HLA-B*… B2M     MHCI       
##  5          0 TRB   CASS… TRBV… TRBJ… HomoSa… HLA-B*… B2M     MHCI       
##  6          0 TRB   CASS… TRBV… TRBJ… HomoSa… HLA-B*… B2M     MHCI       
##  7          0 TRB   CASV… TRBV… TRBJ… HomoSa… HLA-B*… B2M     MHCI       
##  8          0 TRB   CASS… TRBV… TRBJ… HomoSa… HLA-B*… B2M     MHCI       
##  9          0 TRB   CASS… TRBV… TRBJ… HomoSa… HLA-B*… B2M     MHCI       
## 10          0 TRB   CASG… TRBV… TRBJ… HomoSa… HLA-B*… B2M     MHCI       
## # … with 4,989 more rows, and 10 more variables: Epitope <chr>, `Epitope
## #   gene` <chr>, `Epitope species` <chr>, Reference <chr>, Method <chr>,
## #   Meta <chr>, CDR3fix <chr>, Score <dbl>, Chain <chr>, Pathology <chr>

導入McPAS-TCR數據庫

mcpas = dbLoad("https://gitlab.com/immunomind/immunarch/raw/dev-0.5.0/private/McPAS-TCR.csv.gz", "mcpas", .species = "Human", .chain = "TRB", .pathology = "Cytomegalovirus (CMV)")
mcpas
## # A tibble: 2,723 x 29
##    CDR3.alpha.aa CDR3.beta.aa Species Category Pathology Pathology.Mesh.…
##    <chr>         <chr>        <chr>   <chr>    <chr>     <chr>           
##  1 <NA>          CASLAPGTTNE… Human   Pathoge… Cytomega… D003586         
##  2 <NA>          CASLQAGANEQF Human   Pathoge… Cytomega… D003586         
##  3 <NA>          CASLSGGGEQF  Human   Pathoge… Cytomega… D003586         
##  4 <NA>          CASLVASGQET… Human   Pathoge… Cytomega… D003586         
##  5 <NA>          CASSHRDSGNT… Human   Pathoge… Cytomega… D003586         
##  6 <NA>          CASSSANYGYTF Human   Pathoge… Cytomega… D003586         
##  7 <NA>          CATSDPLTASY… Human   Pathoge… Cytomega… D003586         
##  8 CARNTGNQF     CACSLRSQGTD… Human   Pathoge… Cytomega… D003586         
##  9 CAGNTGNQFYFG  CASSAWDRSSG… Human   Pathoge… Cytomega… D003586         
## 10 CAYPYNNNDMRF  CASSELGGAGT… Human   Pathoge… Cytomega… D003586         
## # … with 2,713 more rows, and 23 more variables:
## #   Additional.study.details <chr>, Antigen.identification.method <dbl>,
## #   NGS <chr>, Antigen.protein <chr>, Protein.ID <chr>, Epitope.peptide <chr>,
## #   Epitope.ID <dbl>, MHC <chr>, Tissue <chr>, T.Cell.Type <chr>,
## #   T.cell.characteristics <chr>, CDR3.alpha.nt <chr>, TRAV <chr>, TRAJ <chr>,
## #   TRBV <chr>, TRBD <chr>, TRBJ <chr>, Reconstructed.J.annotation <chr>,
## #   CDR3.beta.nt <chr>, Mouse.strain <chr>, PubMed.ID <dbl>, Remarks <chr>,
## #   Chain <chr>

導入TBAdb數據庫

tbadb = dbLoad("https://gitlab.com/immunomind/immunarch/raw/dev-0.5.0/private/TBAdb.xlsx", "tbadb", .species = "Homo Sapiens", .chain = c("TRB", "TRA-TRB"), .pathology = "CMV")
tbadb

免疫組庫注釋

immunarch包中,我們可以使用dbAnnotate函數進行TCR或BCR克隆型的注釋。在輸入數據中,我們需要指定搜索的序列、要查找的數據庫以及感興趣的列,例如 CDR3 氨基酸序列或 V 基因片段名稱列。

接下來,我們將使用immunarch包的內置數據進行測試。只需一行代碼,就可以在輸入數據和VDJDB數據庫中找到所有匹配CDR3氨基酸序列的克隆型:

library(immunarch)
data(immdata)

dbAnnotate(immdata$data, vdjdb, "CDR3.aa", "cdr3")
##            CDR3.aa Samples A2-i129 A2-i131 A2-i133 A2-i132 A4-i191 A4-i192 MS1
##   1:   CASSLGETQYF      11       6       4       2       8       4       0   1
##   2:   CASSFQETQYF       9       3       2       2       4       2       0   1
##   3:    CASSQETQYF       9       5       2       1       2       3       2   0
##   4:   CASSSSYEQYF       9       1       0       0       1       2       2   1
##   5:  CASSLEGYEQYF       8       0       0       1       1       3       0   1
##  ---                                                                          
## 579:  CSVGTGTYEQYF       1       0       0       0       0       1       0   0
## 580: CSVQGGAYNEQFF       1       0       1       0       0       0       0   0
## 581: CSVQGGSYNEQFF       1       0       1       0       0       0       0   0
## 582:  CSVVATNEKLFF       1       0       0       1       0       0       0   0
## 583: CSVVGTGNTEAFF       1       0       0       0       0       0       0   0
##      MS2 MS3 MS4 MS5 MS6
##   1:   3   1   2   5   1
##   2:   1   0   4   0   2
##   3:   1   0   0   4   1
##   4:   1   0   1   1   3
##   5:   0   1   1   1   1
##  ---                    
## 579:   0   0   0   0   0
## 580:   0   0   0   0   0
## 581:   0   0   0   0   0
## 582:   0   0   0   0   0
## 583:   0   0   0   1   0

在輸出結果中,“Sample”列指定了在數據庫中找到克隆型的樣本數。列中的其他數字對應于特定輸入樣本中克隆型的克隆計數。

在下一個示例中,我們將使用 CDR3 氨基酸序列和 V 基因片段在 McPAS-TCR 數據庫中搜索與條件相關的克隆型:

dbAnnotate ( immdata $ data , mcpas , c ( "CDR3.aa" , "V.name" ), c ( "CDR3.beta.aa" , "TRBV" ))
##                CDR3.aa   V.name Samples A2-i129 A2-i131 A2-i133 A2-i132 A4-i191
##    1:      CAISESYEQYF TRBV10-3       3       0       1       0       0       0
##    2: CASSLAPGATNEKLFF  TRBV7-6       3       0       0       0       0       0
##    3:     CASSLGENIQYF   TRBV13       3       0       0       0       0       1
##    4:     CASSLGRETQYF   TRBV28       3       0       0       0       0       0
##    5:   CSVGTGGTNEKLFF TRBV29-1       3       0       0       0       0       0
##   ---                                                                          
## 2123:           KNPTAF   TRBV19       1       0       0       0       0       0
## 2124:       LLGGQETQYF  TRBV7-4       1       0       0       0       0       0
## 2125:     WASSFQGFTEAF   TRBV28       1       0       0       0       0       0
## 2126:    WASSQALPYEQYF TRBV12-4       1       0       0       0       0       0
## 2127:  WASSQQTGTIGGYTF  TRBV6-5       1       0       0       0       0       0
##       A4-i192 MS1 MS2 MS3 MS4 MS5 MS6
##    1:       1   0   0   0   0   0   0
##    2:       0   0   1   0   0   1   0
##    3:       1   0   0   0   0   0   0
##    4:       0   0   0   0   0  75   1
##    5:       0   0   1   0   0   0   1
##   ---                                
## 2123:       0   0   0   0   0   0   0
## 2124:       0   0   0   0   0   0   0
## 2125:       0   0   0   0   0   0   0
## 2126:       0   0   0   0   0   0   0
## 2127:       0   0   0   0   0   0   0

如果您想在數據庫中搜索一組特定克隆型的序列,請使用它們創建一個數據框并將其作為一個數據庫文件:

local_db  =  data.frame ( Seq  =  c ( "CASSDSSGGANEQFF" , "CSARLAGGQETQYF" ), V  =  c ( "TRBV6-4" , "TRBV20-1" ), stringsAsFactors  =  F )

dbAnnotate ( immdata $ data , local_db , c ( "CDR3.aa" , "V.name" ), c ( "Seq" , "V" ))
##            CDR3.aa   V.name Samples A2-i129 A2-i131 A2-i133 A2-i132 A4-i191
## 1: CASSDSSGGANEQFF  TRBV6-4       7       1       1       2       0       3
## 2:  CSARLAGGQETQYF TRBV20-1       6       1       3       0       1       0
##    A4-i192 MS1 MS2 MS3 MS4 MS5 MS6
## 1:       0   0   0   2   0   0  12
## 2:       0   0   0   1   0   0   1

高級過濾

immunarch包中提供了一個非常基本的查詢界面,只允許按物種類型、鏈類型和病理類型進行過濾。要執行高級過濾,例如按抗原表位過濾,您需要使用 R。在大多數情況下,使用dplyr包過濾是最無縫的方式。以下是如何使用dplyr從 VDJDB 中過濾掉特定抗原表位的示例:

# Load the dplyr library
library(dplyr)

# Load the database with immunarch
vdjdb = dbLoad("https://gitlab.com/immunomind/immunarch/raw/dev-0.5.0/private/vdjdb.slim.txt.gz", "vdjdb", .species = "HomoSapiens", .chain = "TRB", .pathology = "CMV")

# Check which antigen epitopes are presented in the database
#檢查數據庫中收錄的抗原表位
table(vdjdb$antigen.epitope)
## 
## ARNLVPMVATVQGQN       AYAQKIFKI    CPSQEPMSIYVY       CVETMCNEY       DEEDAIAAY 
##               3              39               2               2               2 
## EDVPSGKLFMHVTLG      EFFWDANDIY       ELKRKMIYM       ELRRKMMYM        FPTKDVAL 
##               1               1               5              10              10 
##       IPSINVHHY       KLGGALQAK LSEFCRVLCCYVLEE       MLNIPSINV        NEGVKAAW 
##              93           12667               2              73              49 
##       NLVPMVATV       QIKVRVDMV       QIKVRVKMV       QYDPVAALF      RPHERNGFTV 
##            4496              15              24              39               4 
##     RPHERNGFTVL      TPRVTGGGAM       VLEETSVML       VMAPRTLIL       VTEHDTLLY 
##              22             207              14               1             202 
##       YILEETSVM     YSEHPTFTSQY 
##               3              53
# Filter out all non NLVPMVATV epitopes
# 篩選出所有非NLVPMVATV表位
vdjdb = vdjdb %>% filter(antigen.epitope == "NLVPMVATV")
vdjdb
## # A tibble: 4,496 x 19
##    gene  cdr3  species antigen.epitope antigen.gene antigen.species complex.id
##    <chr> <chr> <chr>   <chr>           <chr>        <chr>                <dbl>
##  1 TRB   CASS… HomoSa… NLVPMVATV       pp65         CMV                      0
##  2 TRB   CASS… HomoSa… NLVPMVATV       pp65         CMV                      0
##  3 TRB   CASS… HomoSa… NLVPMVATV       pp65         CMV                      0
##  4 TRB   CASS… HomoSa… NLVPMVATV       pp65         CMV                      0
##  5 TRB   CSAD… HomoSa… NLVPMVATV       pp65         CMV                      0
##  6 TRB   CASS… HomoSa… NLVPMVATV       pp65         CMV                      0
##  7 TRB   CASS… HomoSa… NLVPMVATV       pp65         CMV                      0
##  8 TRB   CASS… HomoSa… NLVPMVATV       pp65         CMV                      0
##  9 TRB   CSVE… HomoSa… NLVPMVATV       pp65         CMV                      0
## 10 TRB   CASS… HomoSa… NLVPMVATV       pp65         CMV                      0
## # … with 4,486 more rows, and 12 more variables: v.segm <chr>, j.segm <chr>,
## #   v.end <dbl>, j.start <dbl>, mhc.a <chr>, mhc.b <chr>, mhc.class <chr>,
## #   reference.id <chr>, vdjdb.score <dbl>, Species <chr>, Chain <chr>,
## #   Pathology <chr>
# Check if everything is OK and there is no other epitopes
table(vdjdb$antigen.epitope)
## 
## NLVPMVATV 
##      4496

參考來源:https://immunarch.com/articles/web_only/v11_db.html

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

推薦閱讀更多精彩內容