免疫组库分析软件MiXCR的安装和使用

安装

conda安装

conda install -c milaboratories mixcr

普通安装

在Mac OS X上使用Homebrew或者在Linux系统上使用linuxbrew安装

brew install milaboratory/all/mixcr

将已经安装的MiXCR更新到最新版本

brew update
brew upgrade mixcr

手动安装

  1. release page下载最新版稳定编译的MiXCR
  2. 解开压缩包
  3. 将解压缩生成的文件夹添加到环境变量中
  • 添加mixcr脚本的符号链接到bin文件夹
  • 或者在执行脚本中指定MiXCR的全路径来直接使用

快速使用

综述

典型的MiXCR工作流程主要由三个部分构成:

  • align:将测序结果比对到T细胞或B细胞受体的V、D、J、C基因参考序列上
  • assemble:利用前一步骤获得的比对结果拼接clonotypes(为了提取特定的基因区域信息,比如CDR3)
  • export:输出比对结果(exportAlignments模块)或者clones信息(exportClones模块),生成可读文件

MiXCR的assemble模块有几种不同的拼接方法可以选择:

  • assembleContigs:拼接完整的TCR或者IG受体clonotype序列
  • 对于RNA-Seq or non-targeted DNA data, 工作流程可能包括以下两部分:
    • assemblePartial:将有重叠区域的序列片段拼接成相对较长的包含CDR3区域的contigs
    • extend: 估算测序和比对质量较好但长度较短的TCR比对序列的germline序列

为了简化输入命令,MiXCR提供了analyze命令模块,打包了整个分析流程


MiXCR支持一下若干种数据类型:fasta,fastq,fastq.gz,paired-end fastq和fastq.gz。作为每一步骤的输出结果,MiXCR生成包含各种信息的二进制压缩文件(比对生成alignments,拼接生成clones)。利用exportAlignmentsexportClones命令模块,每一个二进制文件都可以转化成tab分割的可读文本文件。

实例

默认流程 / multiplex-PCR

利用analyze amplicon命令分析multiplex-PCR扩增的TCR/BCR基因DNA片段

mixcr analyze amplicon --species hs --starting-material dna --5-end v-primers --3-end j-primers --adapters adapters-present --receptor-type IGH input_R1.fastq input_R2.fastq analysis

只有一个参数修改为非默认值(--receptor-type IGH),这个参数的改变可以让MiXCR 调用针对B细胞优化的比对模块并且只输出IGH序列。其实这个参数是可以缺省的,缺省状态下MiXCR会调用默认的比对模块并输出样本中所有的TCR/BCR序列。
生成的文件(analysis.clonotypes.IGH.txt)是一个tab分隔的表格,包含CDR3序列拼接的所有clonotypes(克隆丰度,CDR3序列, VDJ基因等)。

详细流程

利用analyze amplicon模块与执行下面的命令是等价的

> mixcr align -s hs -p kAligner2 input_R1.fastq input_R2.fastq alignments.vdjca
... Building alignments
> mixcr assemble alignments.vdjca clones.clns
... Assembling clones
> mixcr exportClones --chains IGH clones.clns clones.txt
... Exporting clones to tab-delimited file

基于5’RACE扩增实验的数据分析

考虑基于5’RACE(一个read覆盖CDR3区域和临近序列,另一个read覆盖V基因的5’UTR和下游序列)实验准备的IGH基因cDNA文库双端测序的数据处理流程,全部分析流程可以通过analyze amplicon命令实现

> mixcr analyze amplicon --species hs --starting-material rna --5-end v-primers --3-end j-primers --adapters adapters-present input_R1.fastq input_R2.fastq analysis

结果文件(analysis.clonotypes.<chains>.txt)包含详细的clonotypes信息。

详细流程

利用analyze amplicon模块将执行下面的流程:

  1. Align 把原始序列比对到IGH基因的VDJ基因序列片段上
> mixcr align -s hs -OvParameters.geneFeatureToAlign=VTranscript --report analysis.report input_R1.fastq input_R2.fastq analysis.vdjca

用来比对V基因的非默认基因特征(-OvParameters.geneFeatureToAlign=VTranscript)同时利用了两个reads的信息,为了让MiXCR利用CDR3反向read比对V基因的5’UTRS和部分5’端编码区域。MiXCR还会生成report文件(通过可选参数--report指定),其中包含的具体运行统计信息如下

Analysis Date: Mon Aug 25 15:22:39 MSK 2014
Input file(s): input_r1.fastq,input_r2.fastq
Output file: alignments.vdjca
Command line arguments: align --report alignmentReport.log input_r1.fastq input_r2.fastq alignments.vdjca
Total sequencing reads: 323248
Successfully aligned reads: 210360
Successfully aligned, percent: 65.08%
Alignment failed because of absence of V hits: 4.26%
Alignment failed because of absence of J hits: 30.19%
Alignment failed because of low total score: 0.48%

可以利用exportAlignments命令将比对生成的二进制结果(analysis.vdjca)转化为可读的文本文件。

  1. Assemble 拼接clonotypes
> mixcr assemble --report analysis.report analysis.vdjca -a analysis.clna

这一步骤会校正PCR和测序错误并建立clonotypes,默认情况下clonotypes会拼接CDR3序列;可以通过设置assemble模块的参数来制定其他的基因区域(参考assemble documentation),可选的report文件analysis.report包含各种调试信息

Analysis Date: Mon Aug 25 15:29:51 MSK 2014
Input file(s): alignments.vdjca
Output file: clones.clns
Command line arguments: assemble --report assembleReport.log alignments.vdjca clones.clns
Final clonotype count: 11195
Total reads used in clonotypes: 171029
Reads used, percent of total: 52.89%
Reads used as core, percent of used: 92.04%
Mapped low quality reads, percent of used: 7.96%
Reads clustered in PCR error correction, percent of used: 0.04%
Clonotypes eliminated by PCR error correction: 72
Percent of reads dropped due to the lack of clonal sequence: 2.34%
Percent of reads dropped due to low quality: 3.96%
Percent of reads dropped due to failed mapping: 5.87%
  1. Export 将包含clones列表的二进制文件(analysis.clna)导出为可读的文本文件
> mixcr exportClones --chains TRA analysis.clna analysis.clonotypes.TRA.txt
> mixcr exportClones --chains TRB analysis.clna analysis.clonotypes.TRB.txt
> ...

导出的clones信息如下表所示

Clone count Clone fraction V hits J hits seq. CDR3 AA. seq. CDR3
4369 2.9E-3 IGHV4-39*00(1388) IGHJ6 *00(131) TGTGTGAG… CVRHKPM…
3477 2.5E-3 IGHV4-34*00(1944) IGHJ4 *00(153) TGTGCGAT… CAIWDVGL…

导出的各种选项详见export文档,上述的所有步骤都可以根据特定研究的分析流程进行个性化设置。

高质量全长IG免疫组库分析

对于基于cDNA全长的IG免疫组库分析,我们一般推荐UMI标签制备文库并使用非对称双端测序350 bp + 100 bp Illumina MiSeq测序方法(详情参考Nature Protocols paper)。这种方法可以获得长片段高质量测序结果,而且可以利用MiGEC software有效去除PCR和测序错误。获得的高质量数据可以进一步利用MiXCR处理,以提取全长IGH或IGL组库。
全部分析流程可以使用analyze amplicon命令

> mixcr analyze amplicon --species hs --starting-material rna --5-end v-primers --3-end j-primers --adapters adapters-present --receptor-type BCR --region-of-interest VDJRegion --only-productive --align "-OreadsLayout=Collinear" --assemble "-OseparateByC=true" --assemble "-OqualityAggregationType=Average" --assemble "-OclusteringFilter.specificMutationProbability=1E-5" --assemble "-OmaxBadPointsPercent=0" input_R1.fastq input_R2.fastq analysis

这一步骤会生成以下结果文件(analysis.clonotypes.IGH.txt,analysis.clonotypes.IGK.txt和analysis.clonotypes.IGL.txt),其中包括详细的clonotypes信息。这里我们要强调几个可选参数:

  • --receptor-type BCR 需要MiXCR调用B细胞优化的比对模块(等同于对align模块使用-p kAligner2参数)并且只输出IG序列。
  • region-of-interest VDJRegionassemble模块使用-OassemblingFeatures=VDJRegion参数
  • --only-productionexport输出的clonotypes中过滤掉out-of-frame和stop codon
  • --align <option>align过程中设置其他的参数
  • --assemble <option>assemble过程中设置其他参数

详细流程

使用analyze amplicon命令等同于执行下面的MiXCR步骤

  1. 合并双端reads并比对alignment:MiXCR的align模块可以合并双端reads并比对到参考的V/D/J和C基因上,我们推荐使用KAligner2处理IG数据
> mixcr align -p kaligner2 -s hs -r alignmentReport.txt -OreadsLayout=Collinear -OvParameters.geneFeatureToAlign=VTranscript read_R1.fastq.gz read_R2.fastq.gz alignments.vdjca

选项-s用来指定物种(e.g. homo sapiens - hsa, mus musculus - mmu),参数-OreadsLayout 用来设定reads方向(Collinear, Opposite, Unknown)。这里需要注意的是,经过MiGEC分析的双端reads方向是Collinear。
除了KAligner2,也可以使用默认的MiXCR比对模块,只是也许会忽略一些亚变异类型,这些变异类型是由V基因片段的若干核苷酸插入形成的。

  1. Assemble拼接clones
> mixcr assemble -r assembleReport.txt -OassemblingFeatures=VDJRegion -OseparateByC=true -OqualityAggregationType=Average -OclusteringFilter.specificMutationProbability=1E-5 -OmaxBadPointsPercent=0 alignments.vdjca clones.clns

-OseparateByC=true 把clones按照不同的抗体亚型分类
-OcloneClusteringParameters=null 关闭基于频率的PCR错误校正
根据数据质量,可以通过设置-ObadQualityThreshold参数来调节输入数据的阈值来优化clonotypes的提取。

  1. Export输出clones结果
> mixcr exportClones -c IGH -o -t clones.clns clones.txt

选项-o-t用于过滤包含out-of-frame和stop codon的clonotypes,-c指定哪条链的数据应该被提取(e.g. IGH, IGL)。

RNA-Seq数据分析

MiXCR可以用于提取RNA-Seq数据中TCR和BCR的CDR3组库,提取效率取决于样本红T/B细胞的丰度和测序长度。推荐2x150bp或者2x100bp的双端测序方法。不过在双端2x50bp的RNA-Seq数据(比如肿瘤样本中),主要clonotypes信息也可以被提取
单一analyze shotgun命令可以完成分析

> mixcr analyze shotgun --species hs --starting-material rna --only-productive input_R1.fastq input_R2.fastq analysis

生成的结果文件(analysis.clonotypes.TRA.txt, analysis.clonotypes.IGH.txt等)包含clonotypes的详细信息。

详细流程

  1. Align 比对reads
> mixcr align -s hs -p rna-seq -OallowPartialAlignments=true data_R1.fastq.gz data_R2.fastq.gz alignments.vdjca

所有mixcr align的参数都可以在这里使用(比如-s来指定物种):
-OallowPartialAlignments=true选项保留部分比对结果用于后续的assemblePartial模块

  1. Assemble parial reads拼接部分reads
> mixcr assemblePartial alignments.vdjca alignmentsRescued.vdjca

为了获得包含CDR3全长序列的拼接reads,建议使用迭代mixcr的assemblePartial模块多次迭代拼接结果。多次迭代需要-p参数,根据我们的经验,两次迭代后结果最优

> mixcr assemblePartial alignments.vdjca alignmentsRescued_1.vdjca
> mixcr assemblePartial alignmentsRescued_1.vdjca alignmentsRescued_2.vdjca
  1. 利用已有V和J基因延长TCR比对结果,基于germline序列不全覆盖度不完全的CDR3s
> mixcr extendAlignments alignmentsRescued_2.vdjca alignmentsRescued_2_extended.vdjca
  1. Assemble拼接clones
> mixcr assemble alignmentsRescued_2_extended.vdjca clones.clns

所有mixcr assemble的参数都可以在这里使用:

  • 对于低质量数据,建议降低输入质量阈值(e.g. -ObadQualityThreshold=15)
  • 为了克隆丰度与错误校正算法相结合,增加下面的选项:-OaddReadsCountOnClustering=true
  1. Exporting导出clones
> mixcr exportClones -c TRA -o -t clones.clns clones.txt

可以指定导出感兴趣的免疫受体链(-c TRA 或者 -c TRB等),也可以去除包含out-of-frame(选项-o)和stop codon的突变体(选项-t)。

参数解读

模块名称 模块功能
analyze 对指定输入文件执行MiXCR整套分析流程
align 对输入测序reads生成V/D/J/C基因比对序列
assemble 拼接clones
assembleContigs 拼接全长序列
assemblePartial 拼接部分比对reads 生成更长的序列
extend 用germline序列预测比对序列或clones
exportAlignments 将V/D/J/C比对结果导出为tab分隔文件
exportAlignmentsPretty 导出比对结果的详细信息
exportClones 将拼接的clones导出为tab分隔文件
exportClonesPretty 导出clones的详细信息
exportReadsForClones 从clones&比对结果(*.clna)中导出特定clone的reads,如果没有指定clone,所有对应的reads都会被导出
exportAlignmentsForClones 从clones&比对结果(*.clna)中导出特定clone的比对结果
exportReads 从vdjca文件导出原始reads
mergeAlignments 将若干*.vdjca文件合并为一个比对文件
filterAlignments 过滤比对结果
sortAlignments 根据read ID排序vdjca文件中的比对结果
alignmentsDiff 计算两个vdjca文件的差异
clonesDiff 计算两个clns文件的差异
slice 分割clna文件

结果解读

输出文件包含内容

输出表头 注释内容
cloneId clone识别号码
cloneCount clone数量
cloneFraction clone比例
targetSequences 目标序列
targetQualities 目标质量
allVHitsWithScore 所有V基因命中和评分
allDHitsWithScore 所有D基因命中和评分
allJHitsWithScore 所有J基因命中和评分
allCHitsWithScore 所有C基因命中和评分
allVAlignments 所有V基因比对结果
allDAlignments 所有D基因比对结果
allJAlignments 所有J基因比对结果
allCAlignments 所有C基因比对结果
nSeqFR1 FR1核苷酸序列
minQualFR1 FR1最小质量
nSeqCDR1 CDR1核苷酸序列
minQualCDR1 CDR1最小质量
nSeqFR2 FR2核苷酸序列
minQualFR2 FR2最小质量
nSeqCDR2 CDR2核苷酸序列
minQualCDR2 CDR2最小质量
nSeqFR3 FR3核苷酸序列
minQualFR3 FR3最小质量
nSeqCDR3 CDR3核苷酸序列
minQualCDR3 CDR3最小质量
nSeqFR4 FR4核苷酸序列
minQualFR4 FR4最小质量
aaSeqFR1 FR1氨基酸序列
aaSeqCDR1 CDR1氨基酸序列
aaSeqFR2 FR2氨基酸序列
aaSeqCDR2 CDR2氨基酸序列
aaSeqFR3 FR3氨基酸序列
aaSeqCDR3 CDR3氨基酸序列
aaSeqFR4 FR4氨基酸序列
refPoints 参考点
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,529评论 5 475
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,015评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,409评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,385评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,387评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,466评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,880评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,528评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,727评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,528评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,602评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,302评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,873评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,890评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,132评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,777评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,310评论 2 342

推荐阅读更多精彩内容