TCR-seq Analysis workflow

流程

本流程描述了使用MiXCR对TCR-Seq进行分析大致步骤,可参考该软件的原始文档获得更详细的信息。

测试数据

测试数据来自于Paiano J et al.,采用了TCR-seq的靶向测序方法,原始数据可以从GSE138915下载。

样本信息如下:

Sample  Library
SPX6730-1       RNA
SPX6730-2       RNA
SPX6730-tra     TRA
SPX6730-trb     TRB

MiXCR

MiXCR分析TCR/IG文库的命令为:

mixcr analyze amplicon --species hs \
      --starting-material rna \
      --5-end v-primers \
      --3-end j-primers \
      --receptor-type tra \
      --adapters adapters-present \
      read1 read2 output

arguments parsing:
  --species <species>          Species, as specified in library file or taxon id. Possible values: hs, mmu, hsa, 9606, 10090 etc.
  --5-end <5End>               5'-end of the library. Possible values: no-v-primers, v-primers.
  --3-end <3End>               3'-end of the library. Possible values: j-primers, j-c-intron-primers, c-primers.
  --receptor-type <chains>     Receptor type. Possible values: tcr, bcr, xcr, tra, trb, trd, trg, igh, igk,igl.
  --starting-material <value>  Starting material. Possible values: rna, dna.

分析随机片段(RNA-Seq, Exome-Seq, etc)的命令为:

mixcr analyze shotgun
      --species hg \
      --starting-material rna \
      read1 [read2] output

Immunarch

Immunarch是MiXCR的后续分析软件,能够直接读取一个文件夹中MiXCR所产生的clonotype text文件。我们可以创建一个metadata.txt文件来描述样本信息。

Sample  libtype type
SPX6730-1.our   rna     our
SPX6730-2.our   rna     our
SPX6730-1.pub   rna     pub
SPX6730-2.pub   rna     pub
SPX6730-tra.our tra     our
SPX6730-tra.pub tra     pub
SPX6730-trb.our trb     our
SPX6730-trb.pub trb     pub

读取文件:

library(immunarch)
mixcr <- repLoad(file_path)

基本统计展示:

num <- repExplore(mixcr$data, .method = "volume")
exp_len <- repExplore(mixcr$data, .method = "len", .col = "aa")
vis(num)
vis(exp_len)

多样性分析:

imm_rare <- repClonality(mixcr$data, .method = "rare")
vis(imm_rare)

div_chao <- repDiversity(mixcr$data, "chao1")
vis(div_chao)

Gene usage computation:

imm_gu <- geneUsage(mixcr$data[1:4], "hs.trbv")
vis(imm_gu, .grid = T)

Spectratyping:

imm_spec <- spectratype(immdata$data[[1]], .quant = "count", .col = "aa+v")
vis(imm_spec)

Tracking clonotypes:

cdr3 <- as.data.frame(table(do.call('rbind',lapply(mixcr$data,function(x) x %>% select(CDR3.aa)))[,1,drop=T]),stringsAsFactors=F)
cdr3 <- cdr3[order(cdr3[,2],decreasing=T),]
target <- cdr3[1:10,1]
tc <- trackClonotypes(mixcr$data, target, .col = "aa")
vis(tc)

一致性检验

In [ ]: