vdjtools处理mixcr数据-实战篇

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

vdjtools 分析流程:

image.png

vdjtools 目前版本是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一次。

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/

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容