使用immunarch包進(jìn)行單細(xì)胞免疫組庫數(shù)據(jù)分析(三):處理單細(xì)胞配對鏈數(shù)據(jù)

Immunarch包也可以用于處理單細(xì)胞配對鏈數(shù)據(jù)艺演,單細(xì)胞支持目前處于開發(fā)版本却紧。為了訪問它,我們需要通過執(zhí)行以下命令來安裝該軟件包的最新開發(fā)版本:

install.packages ( "devtools" ); 
devtools :: install_github ( "immunomind/immunarch" , ref = "dev" )

在Immunarch中胎撤,讀取配對鏈免疫組庫數(shù)據(jù)使用repLoad函數(shù)并指定.mode = "paired"參數(shù)晓殊。目前我們僅支持10X Genomics。

我們可以使用select_barcodes函數(shù)通過特定barcode條形碼對免疫組庫進(jìn)行子集化伤提,也可以使用select_clusters函數(shù)選取創(chuàng)建特定聚類群或特定患者的數(shù)據(jù)集巫俺。

使用Immunarch包內(nèi)置的單細(xì)胞配對鏈數(shù)據(jù)集

# 加載所需的R包
library(immunarch)

# 加載內(nèi)置數(shù)據(jù)集
data(scdata)

# 查看數(shù)據(jù)信息
names(scdata)
# [1] "data"       "meta"       "bc_patient" "bc_cluster"

head(scdata$meta)
# A tibble: 1 x 1
# Sample
# <chr> 
#1 flu 

head(scdata$bc_patient)
# GCTGGGTTCAAACCGT-1 CAGTCCTCATGGTAGG-1 GGAAAGCGTCTTCAAG-1 CACAAACGTAAACGCG-1 CATGACATCCTCGCAT-1 
#        "PatientA"         "PatientA"         "PatientA"         "PatientA"         "PatientA" 
# ATCCACCCAAGTCTGT-1 
#        "PatientA" 

head(scdata$bc_cluster)
#CAGTCCTTCGCGCCAA-1 TCGTAGATCTTCGGTC-1 CACACAAGTCAATACC-1 CGATGTAGTCGGCTCA-1 CTGTTTATCCTCTAGC-1 
 #          "Activ"            "Activ"            "Activ"            "Activ"            "Activ" 
# CACACTCCACGACTCG-1 
#           "Activ"   

加載配對鏈數(shù)據(jù)

要加載您自己的數(shù)據(jù)集,請使用該repLoad函數(shù)肿男。目前介汹,我們僅對 10X Genomics 數(shù)據(jù)實施了配對鏈數(shù)據(jù)支持却嗡。將數(shù)據(jù)集加載到 R 的工作示例:

file_path <- paste0(system.file(package = "immunarch"), "/extdata/sc/flu.csv.gz")
igdata <- repLoad(file_path, .mode = "paired")

## == Step 1/3: loading repertoire files... ==
## Processing "<initial>" ...
##   -- Parsing "/private/var/folders/5d/g0z_tj9n3qd9r2b4tr8pp5sm0000gp/T/RtmpyOULE7/temp_libpath106e61c9ecf7b/immunarch/extdata/sc/flu.csv.gz" -- 10x (filt.contigs)
## Warning: The following named parsers don't match the column names:
## sample,barcode,is_cell,contig_id,high_confidence,length,chain,v_gene,d_gene,j_gene,c_gene,full_length,productive,cdr3,cdr3_nt,reads,umis,raw_clonotype_id,raw_consensus_id
## 
## == Step 2/3: checking metadata files and merging files... ==
## 
## Processing "<initial>" ...
##   -- Metadata file not found; creating a dummy metadata...
## 
## == Step 3/3: processing paired chain data... ==
## 
## Done!

查看加載成功后的數(shù)據(jù)信息

igdata$meta
## # A tibble: 1 x 1
##   Sample
##   <chr> 
## 1 flu


head(igdata$data[[1]][c(1:7, 16, 17)])
##   Clones Proportion
## 1      3      3e-04
## 2      3      3e-04
## 3      2      2e-04
## 4      2      2e-04
## 5      2      2e-04
## 6      2      2e-04
##                                                                                                         CDR3.nt
## 1          TGTGCACACACCACCGAACTCTATTGTACTAATGGTGTATGCTATGGGGGCTACTTTGACTACTGG;TGCCAACAGTATAATAGTTATTCGTGGACGTTC
## 2                                     TGTGCGAGGCTATGGGGTTGGGGATTACTCTACTGG;TGCACCTCATATGCAGGCAGCAACAATTTGGTATTC
## 3                                  TGTACCGCTCATGGTAGGGAGGGTACTTTTGATCTCTGG;TGTCAACAATATGATAATCTCCCTCGGTACACTTTT
## 4                            TGTGCAAGAGACGACTTTGCTTCGGGGGGTCGACACTTTGGCTGCTGG;TGTCAGCAGTCTGGTAACGCACCTCGAACTTTT
## 5                                           TGTGCAAGAGATCTGGACTACATGGACGTCTGG;TGTCAACAGAGTTACAGTACCCCTCGAACTTTT
## 6 TGTGCAAGAGGTTTAATACCCTCAGTTAGTGGCTACGACTACTACTACTACTACGGTATGGACGTCTGG;TGTCAATCAGCAGACAGCAGTGGTACTTATGAGGTATTC
##                                 CDR3.aa             V.name        D.name
## 1    CAHTTELYCTNGVCYGGYFDYW;CQQYNSYSWTF    IGHV2-5;IGKV1-5  IGHD2-8;None
## 2             CARLWGWGLLYW;CTSYAGSNNLVF  IGHV4-59;IGLV2-11 IGHD3-10;None
## 3            CTAHGREGTFDLW;CQQYDNLPRYTF  IGHV3-15;IGKV1-33 IGHD2-15;None
## 4          CARDDFASGGRHFGCW;CQQSGNAPRTF   IGHV1-2;IGKV3-20 IGHD3-10;None
## 5               CARDLDYMDVW;CQQSYSTPRTF IGHV3-13;IGKV1D-39     None;None
## 6 CARGLIPSVSGYDYYYYYGMDVW;CQSADSSGTYEVF  IGHV3-74;IGLV3-25 IGHD5-12;None
##        J.name   chain                                                  Barcode
## 1 IGHJ4;IGKJ1 IGH;IGK AGTAGTCAGTGTACTC-1;GGCGACTGTACCGAGA-1;TTGAACGGTCACCTAA-1
## 2 IGHJ4;IGLJ2 IGH;IGL AGAGCGACACCTTGTC-1;ATTGGTGAGACCTAGG-1;TCTTCGGAGGTGATTA-1
## 3 IGHJ3;IGKJ2 IGH;IGK                    CGCGGTATCCTCTAGC-1;TGAGCATCAGGAACGT-1
## 4 IGHJ4;IGKJ2 IGH;IGK                    ACTGTCCAGACGCAAC-1;CACACTCTCCGTTGTC-1
## 5 IGHJ6;IGKJ2 IGH;IGK                    AGGTCCGAGTCAAGCG-1;GGCGTGTTCTCTAGGA-1
## 6 IGHJ6;IGLJ2 IGH;IGL                    ACTGAGTCAAGCGATG-1;CTGCTGTCACGCATCG-1

提取barcode子集

要按barcode條形碼對數(shù)據(jù)進(jìn)行子集化,請使用該select_barcodes函數(shù)嘹承。

barcodes <- c("AGTAGTCAGTGTACTC-1", "GGCGACTGTACCGAGA-1", "TTGAACGGTCACCTAA-1")

new_df <- select_barcodes(scdata$data[[1]], barcodes)
new_df
##                                                                                                CDR3.nt
## 1 TGTGCACACACCACCGAACTCTATTGTACTAATGGTGTATGCTATGGGGGCTACTTTGACTACTGG;TGCCAACAGTATAATAGTTATTCGTGGACGTTC
##                              CDR3.aa          V.name D.name      J.name V.end
## 1 CAHTTELYCTNGVCYGGYFDYW;CQQYNSYSWTF IGHV2-5;IGKV1-5     NA IGHJ4;IGKJ1    NA
##   D.start D.end J.start VJ.ins VD.ins DJ.ins Sequence   chain raw_clonotype_id
## 1      NA    NA      NA     NA     NA     NA       NA IGH;IGK               14
##   ContigID Clones                                                  Barcode
## 1       NA      3 AGTAGTCAGTGTACTC-1;GGCGACTGTACCGAGA-1;TTGAACGGTCACCTAA-1
##   Proportion
## 1          1

提取特定病人的數(shù)據(jù)集

要創(chuàng)建具有特定病人免疫組庫的新數(shù)據(jù)集窗价,請使用以下select_clusters函數(shù):

scdata_pat <- select_clusters(scdata, scdata$bc_patient, "Patient")

names(scdata_pat$data)
## [1] "flu_PatientA" "flu_PatientB" "flu_PatientC"

scdata_pat$meta
## # A tibble: 3 x 3
##   Sample       Patient.source Patient 
##   <chr>        <chr>          <chr>   
## 1 flu_PatientA flu            PatientA
## 2 flu_PatientB flu            PatientB
## 3 flu_PatientC flu            PatientC

提取特定聚類群的數(shù)據(jù)集

要創(chuàng)建具有特定聚類群免疫組庫的新數(shù)據(jù)集,請使用該select_clusters函數(shù)叹卷。您可以在創(chuàng)建特定于患者的數(shù)據(jù)集后應(yīng)用此函數(shù)以獲取特定于患者的細(xì)胞簇特定免疫組庫撼港,例如特定患者的記憶 B 細(xì)胞組庫:

scdata_cl <- select_clusters(scdata_pat, scdata$bc_cluster, "Cluster")

names(scdata_cl$data)
## [1] "flu_PatientA_Activ"  "flu_PatientA_Memory" "flu_PatientA_Naive" 
## [4] "flu_PatientB_Activ"  "flu_PatientB_Memory" "flu_PatientB_Naive" 
## [7] "flu_PatientC_Activ"  "flu_PatientC_Memory" "flu_PatientC_Naive"

scdata_cl$meta
## # A tibble: 9 x 5
##   Sample              Patient.source Patient  Cluster.source Cluster
##   <chr>               <chr>          <chr>    <chr>          <chr>  
## 1 flu_PatientA_Activ  flu            PatientA flu_PatientA   Activ  
## 2 flu_PatientA_Memory flu            PatientA flu_PatientA   Memory 
## 3 flu_PatientA_Naive  flu            PatientA flu_PatientA   Naive  
## 4 flu_PatientB_Activ  flu            PatientB flu_PatientB   Activ  
## 5 flu_PatientB_Memory flu            PatientB flu_PatientB   Memory 
## 6 flu_PatientB_Naive  flu            PatientB flu_PatientB   Naive  
## 7 flu_PatientC_Activ  flu            PatientC flu_PatientC   Activ  
## 8 flu_PatientC_Memory flu            PatientC flu_PatientC   Memory 
## 9 flu_PatientC_Naive  flu            PatientC flu_PatientC   Naive

探索和計算統(tǒng)計數(shù)據(jù)

對于單細(xì)胞配對鏈數(shù)據(jù),immunarch包中的可視化函數(shù)可以同樣的適用骤竹。

p1 <- repOverlap(scdata_cl$data) %>% vis()
p2 <- repDiversity(scdata_cl$data) %>% vis()

target <- c("CARAGYLRGFDYW;CQQYGSSPLTF", "CARATSFYYFHHW;CTSYTTRTTLIF", "CARDLSRGDYFPYFSYHMNVW;CQSDDTANHVIF", "CARGFDTNAFDIW;CTAWDDSLSGVVF", "CTREDYW;CMQTIQLRTF")
p3 <- trackClonotypes(scdata_cl$data, target, .col = "aa") %>% vis()
## Warning in melt.data.table(.data): id.vars and measure.vars are internally
## guessed when both are 'NULL'. All non-numeric/integer/logical type columns are
## considered id.vars, which in this case are columns [CDR3.aa]. Consider providing
## at least one of 'id' or 'measure' vars in future.

(p1 + p2) / p3
image.png

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

最后編輯于
?著作權(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