vdjtools处理mixcr数据-实战篇
immune repertoire sequencing data (RepSeq data)免疫组库数据
vdjtools 分析流程:
image.pngvdjtools 目前版本是1.2.1
https://github.com/mikessh/vdjtools
是一款基于java框架的工具
可以分析这些工具的结果文件。
- MiTCR
- MiGEC
- IgBlast (via our MIGMAP wrapper)
- IMGT
- ImmunoSEQ
- VDJdb
- Vidjil
- RTCR
- MiXCR
- ImSEQ
vdjtools能将上述这些软件的结果转化为VDJtools自己专属的格式:
image.png第10列之后的值将被认为是clonotype注释信息,在分析中保持不变。
如何转换:
MiTcr数据:
java -jar vdjtools-1.2.1.jar Convert -S MiTcr -m metadata.txt output_prefix
MiGEC数据:
java -jar vdjtools-1.2.1.jar Convert -S migec -m metadata.txt output_prefix
IgBlast (MIGMAP) 数据:
java -jar vdjtools-1.2.1.jar Convert -S MigMap -m metadata.txt output_prefix
ImmunoSEQ数据:
java -jar vdjtools-1.2.1.jar Convert -S ImmunoSeq -m metadata.txt output_prefix
如果你用Export samples v2
java -jar vdjtools-1.2.1.jar Convert -S ImmunoSeqv2 -m metadata.txt output_prefix
IMGT/HighV-QUEST数据:
只接受:3_Nt-sequences_${chain}_${sx}_${date}.txt
java -jar vdjtools-1.2.1.jar Convert -S imgthighvquest -m metadata.txt output_prefix
还可以设置-c压缩结果。
metadata是啥?
很多时候需要多样本的批处理时就要用到metadata,由于单个样本调用vdjtools时的初始化时间较长,所以优先建议使用批处理。
这时候就可以使用-m参数,指定metadata文件,这个文件应该包含样本的路径,样本名称,还可以补充其他的列(比如用于后续分析或画图的列)
Note:
VDJtools会将metadata信息补充到输出结果的表格中,用于后续分析
在一些分析过程中比如很多画图的时候,metadata的值会被认为是factor类型
当涉及到修改clonotype丰度表格时,比如down-sampling,VDJtools会复制一个metadata文件给新生成的样本。
新生成的metadata文件会包含一个..filter..列,它包含一个以冒号隔开的列表,比如用-n 50000执行完DownSample后的结果会增加一个..filter..列,值为ds:50000。
image.png
header必须有,第一列,第二列必须是file.name,sample.id,第三列之后随意
第一列是绝对路径或相对路径
第二列sample.id必须是唯一的
安装:
直接从github上下载
还需要安装R>3.0用于画图。
实战:
第一步:准备工作
找了3个mixcr生成的样本结果:每个文件内容如下:
image.png运行vdjtools时,建议先安装相应的Rpackage,直接运行下面命令,就会将VDJtools所需要的R包安装到vdjtools-1.2.1.jar同目录中,
java -jar vdjtools-1.2.1.jar RInstall
image.png或者可以自己安装下面这些包,
c("reshape2", "FField", "reshape", "gplots", "gridExtra", "circlize", "ggplot2", "grid", "VennDiagram", "RColorBrewer", "plotrix", "ape", "MASS", "scales")
image.png出现PASSED 表示成功
检查哪些包没有安装:
args <- c("reshape2", "FField", "reshape", "gplots", "gridExtra", "circlize", "ggplot2", "grid", "VennDiagram", "RColorBrewer", "plotrix", "ape", "MASS", "scales")
passed <- T
for (i in 1:length(args)) {
if (!args[i] %in% rownames(installed.packages())) {
print(paste("FAILED to install ", args[i]))
passed <- F
}
}
if (passed) {
print("PASSED")
}
第2步:将mixcr结果转化为VDJtools格式:
如果只有一个样本就直接用文件转化,不需要metadata参数,
java -jar ../vdjtools-1.2.1.jar Convert -S mixcr sample1.mixcr.TRA.txt vdjtools_Format
但是我们有多个样本,所以最好还是先创建一个metadata.txt文件,将这三个文件写进去,只需要convert一次。
java -jar ../vdjtools-1.2.1.jar Convert -S mixcr -m metadata.txt vdjtools_Format
结果文件的前缀我设置为:vdjtools_Format,所以生成了三个以vdjtools_Format开头的文件:
image.png并且生成了新的metadata.txt
image.png第三步:
然后就可以开始正式使用分析模块了:
先来看看Basic analysis中的6个模块:
CalcBasicStats
输出一些基本统计信息,比如read count,clonotype数量等,生成一个以.basicstats.txt为后缀的文件,没有图,
命令:
java -jar ../vdjtools-1.2.1.jar CalcBasicStats -m metadata.txt basic_01_CalcBasicStats
结果:
生成basic_01_CalcBasicStats.basicstats.txt,结果内容如下截图:
image.pngCalcSegmentUsage:
生成两个heatmap图和一个vexpr_plot.r可以自己修改r脚本,
命令:
java -jar ../vdjtools-1.2.1.jar CalcSegmentUsage -m metadata.txt --plot --plot-type png basic_02_CalcSegmentUsage
结果:
image.png image.png image.pngCalcSpectratype:
计算cdr3的谱型,由于非扩增T细胞和b细胞的谱型具有对称的高斯样分布,因此谱型对检测病理和高克隆基因库非常有用。
命令:
java -jar ../vdjtools-1.2.1.jar CalcSpectratype -m metadata.txt --amino-acid basic_03_CalcSpectratype_aa
结果:
image.pngPlotFancySpectratype
可视化谱型图,每个样本单独分析
命令:
java -jar ../vdjtools-1.2.1.jar PlotFancySpectratype --top 20 --plot-type png vdjtools_Format.sample1.txt basic_04_PlotFancySpectratype_sample1
java -jar ../vdjtools-1.2.1.jar PlotFancySpectratype --top 20 --plot-type png vdjtools_Format.sample2.txt basic_04_PlotFancySpectratype_sample2
java -jar ../vdjtools-1.2.1.jar PlotFancySpectratype --top 20 --plot-type png vdjtools_Format.sample3.txt basic_04_PlotFancySpectratype_sample3
结果:
image.png image.pngPlotFancyVJUsage
命令:
java -jar ../vdjtools-1.2.1.jar PlotFancyVJUsage --plot-type png vdjtools_Format.sample1.txt basic_05_circos_sample1
java -jar ../vdjtools-1.2.1.jar PlotFancyVJUsage --plot-type png vdjtools_Format.sample2.txt basic_05_circos_sample2
java -jar ../vdjtools-1.2.1.jar PlotFancyVJUsage --plot-type png vdjtools_Format.sample3.txt basic_05_circos_sample3
结果报错:
image.png这个报错是在chordDiagram函数这里,处理:再R脚本中添加reduce=0,再重新跑一下R脚本。
image.png结果:
image.pngPlotSpectratypeV
命令:
java -jar ../vdjtools-1.2.1.jar PlotSpectratypeV --top 12 --plot-type png vdjtools_Format.sample1.txt basic_06_PlotSpectratypeV_sample1
java -jar ../vdjtools-1.2.1.jar PlotSpectratypeV --top 12 --plot-type png vdjtools_Format.sample2.txt basic_06_PlotSpectratypeV_sample2
java -jar ../vdjtools-1.2.1.jar PlotSpectratypeV --top 12 --plot-type png vdjtools_Format.sample3.txt basic_06_PlotSpectratypeV_sample3
结果:
image.png#########################################
Part 2:第二部分
PlotQuantileStats
画一个三层的甜甜圈图
命令:
java -jar ../vdjtools-1.2.1.jar PlotQuantileStats --top 5 --plot-type png vdjtools_Format.sample1.txt Diversity_est_01_donut_chart_sample1
java -jar ../vdjtools-1.2.1.jar PlotQuantileStats --top 5 --plot-type png vdjtools_Format.sample2.txt Diversity_est_01_donut_chart_sample2
java -jar ../vdjtools-1.2.1.jar PlotQuantileStats --top 5 --plot-type png vdjtools_Format.sample3.txt Diversity_est_01_donut_chart_sample3
结果:
image.pngRarefactionPlot
Plots rarefaction curves for specified list of samples, that is, the dependencies between sample diversity and sample size. Those curves are interpolated from 0 to the current sample size and then extrapolated up to the size of the largest of samples, allowing comparison of diversity estimates. Interpolation and extrapolation are based on multinomial models, see Colwell et al for details.
命令:
java -jar ../vdjtools-1.2.1.jar RarefactionPlot -m metadata.txt --plot-type png Diversity_est_02_rarefaction_curve
结果:
image.pngCalcDiversityStats
命令
java -jar ../vdjtools-1.2.1.jar CalcDiversityStats -m metadata.txt Diversity_est_03_DiversityStats
结果
image.pngOverlapPair
两个样本之间的overlap,
命令:
java -jar ../vdjtools-1.2.1.jar OverlapPair --top 20 --plot --plot-type png vdjtools_Format.sample1.txt vdjtools_Format.sample2.txt Overlap_01_overlapPair_sample1_sample2
结果:
image.png image imageCalcPairwiseDistances
命令:
java -jar ../vdjtools-1.2.1.jar CalcPairwiseDistances --plot --plot-type png -m metadata.txt CalcPairwiseDistances_02
结果:
image.pngClusterSamples聚类图
命令
java -jar ../vdjtools-1.2.1.jar ClusterSamples --plot --plot-type png CalcPairwiseDistances_02 ClusterSamples_03
结果:
image.png image.png image.pngTestClusters
命令:
java -jar ../vdjtools-1.2.1.jar TestClusters --plot-tyape png ClusterSamples_03 TestClusters_04
结果:
image.png image.pngTrackClonotypes
命令:
java -jar ../vdjtools-1.2.1.jar TrackClonotypes -p --plot-type png -m metadata.txt --top 100 TrackClonotypes_05
结果:
image.png image.png image.png image.png还有个一在线分析工具:Clonotype browser https://vdjviz.cdr3.net/