免疫组库

vdjtools处理mixcr数据-实战篇

2022-02-08  本文已影响0人  11的雾

immune repertoire sequencing data (RepSeq data)免疫组库数据

vdjtools 分析流程:

image.png

vdjtools 目前版本是1.2.1

https://github.com/mikessh/vdjtools

是一款基于java框架的工具

可以分析这些工具的结果文件。

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一次。

image.png
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.png

CalcSegmentUsage:

生成两个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.png

CalcSpectratype:

计算cdr3的谱型,由于非扩增T细胞和b细胞的谱型具有对称的高斯样分布,因此谱型对检测病理和高克隆基因库非常有用。

命令:

java -jar ../vdjtools-1.2.1.jar CalcSpectratype -m metadata.txt --amino-acid basic_03_CalcSpectratype_aa

结果:

image.png

PlotFancySpectratype

可视化谱型图,每个样本单独分析

命令:

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.png

PlotFancyVJUsage

命令:

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.png

PlotSpectratypeV

命令:

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.png

RarefactionPlot

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.png

CalcDiversityStats

命令

java -jar ../vdjtools-1.2.1.jar CalcDiversityStats -m metadata.txt Diversity_est_03_DiversityStats

结果

image.png

OverlapPair

两个样本之间的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 image

CalcPairwiseDistances

命令:

java -jar ../vdjtools-1.2.1.jar CalcPairwiseDistances --plot --plot-type png -m metadata.txt CalcPairwiseDistances_02

结果:

image.png

ClusterSamples聚类图

命令

java -jar ../vdjtools-1.2.1.jar ClusterSamples --plot --plot-type png CalcPairwiseDistances_02 ClusterSamples_03

结果:

image.png image.png image.png

TestClusters

命令:

java -jar ../vdjtools-1.2.1.jar TestClusters --plot-tyape png ClusterSamples_03 TestClusters_04

结果:

image.png image.png

TrackClonotypes

命令:

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/

上一篇下一篇

猜你喜欢

热点阅读