在VDJdb官网不知为何注释失败,在网上找VDJdb使用教程的时候找到了用immunarch包进行注释的教程(
使用immunarch包进行单细胞免疫组库数据分析(九):Annotate clonotypes using immune receptor databases - 简书 (jianshu.com)
immunarch官网上用VDJdb数据库进行注释的步骤
因为groovy安装有点问题,安装了windows的installer,配置了环境变量,但是在命令行里groovy -v是没有的,故不能根据上图步骤执行。
下载的“vdjdb-db-master”数据库文件夹里没有代码所需的注释文件(vdjdb.slim.txt),到github上找,后来根据官网上的链接(”
https://gitlab.com/immunomind/immunarch/-/blob/master/private
)找到并下载,但是缺失了最后两列“clain”、“Pathology”,所以不能筛选疾病类型。
vdjdb =read.table("D:\\vdjdb.slim.txt",sep='\t',header=T,quote = "", fill=TRUE)
#, sep='\t',header=F
fix(vdjdb)
dim(vdjdb)
#colnames(vdjdb)=vdjdb[1,]
#rownames(vdjdb)=vdjdb[,1]
#vdjdb<-vdjdb[-1,]
colnames(data$A1.TRA)
colnames(immdata$data)
rownames(vdjdb)
vdjdb
vdjdb_st =read_tsv("D:\\SearchTable-2019-10-17 12_36_11.989.tsv","vdjdb-search", .species = "HomoSapiens", .chain = "TRA",.pathology = "ccRCC")
fix(vdjdb_st)
vdjdb_st
colnames(data)
dim(data)
colnames(vdjdb_st)=vdjdb_st[1,]
vdjdb_st<-vdjdb_st[-1,]
View(data)
library(immunarch)
data(immdata)
Convert.A1.TRA<-repLoad("C:\\Users\\Administrator.DESKTOP-4UQ3Q0K\\Downloads\\vdjtools-1.2.1\\vdjtools-1.2.1\\弦图Convert\\ConvertA1TRA.txt")
Convert.A1.TRA<-repLoad("D:\\mixcr-3.0.13\\弦图\\A1.TRA.txt")
Convert.A2.TRA<-repLoad("C:\\Users\\Administrator.DESKTOP-4UQ3Q0K\\Downloads\\vdjtools-1.2.1\\vdjtools-1.2.1\\弦图Convert\\Convert.A2.TRA.txt")
file_path = "D:\\mixcr-3.0.13\\弦图\\N.A"
A1.TRA<- repLoad(file_path)
View(A1.TRA)
A1.TRA
#Convert.A1.TRA<-as.list(Convert.A1.TRA)
#Convert.A2.TRA<-as.list(Convert.A2.TRA)
#sapply(data, function(element) {print(names(element))})
#data<-list(Convert.A1.TRA,Convert.A2.TRA)
names(data)[1] <- "A1.TRA"
names(data)[2] <- "A2.TRA"
class(data)
dbAnnotate(A1.TRA$data,vdjdb,"CDR3.aa", "cdr3")
dbAnnotate(immdata$data, vdjdb, "CDR3.aa", "cdr3")
dbAnnotate(immdata$data, vdjdb_st, "CDR3.aa", "CDR3")
最后一行的注释代码里,"cdr3aa"是自己的数据里的。"cdr3"是数据库的。
更改读取数据方式为repLoad以后,读入的数据类型就是list,不需要转换。(之前用read.table的方式读入,需要很麻烦的转换成二层嵌套的list结构,但其实不应该这样)
读入不了数据(横线处:unsupported format,skipping),应该是不能用转换格式后的数据。
改成读mixcr直接出来的数据,放在“D:\mixcr-3.0.13\弦图\N.A”(A1.TRA-A6.TRA)。还需要上传一个metadata.txt,里面要有一列列名为Sample,每行为样品名的矩阵,样品名可直接用数字简单代替。
得到用immunarch注释的结果如下:
出来了一个A1.TRA.annot.summary文档,有sample_id metadata_blank db.column.name db.column.value unique frequency reads db.unique weight 但是是空的。
输入文件是这样的:
我认为也许用转换格式后的文件java -jar ./vdjmatch-1.2.2.jar match -S human -R TRA Convert.A1.TRA.txt A1.TRA
奇迹发生啦
A3.TRA也是很快注释完了,先把TRA的都运行了一遍,都很快注释完成。
也许是TRB与TRA不同的原因,运行A2.TRB和A3.TRB时,都遇到java heap space,是时候再看看它还有哪些原因了。
先尝试了一下上次解决同样问题时用到的export MAX_MEMORY_OVERRIDE=12800
但是这个命令是liunx的,下面寻找在windows上设置的办法。
解决TRB的问题:
linux上VDJmatch的尝试
因为linux上运行快,并且也许不会遇到内存限制的问题。将文件复制到目录下。
报: java.net.ConnectException: Connection refused (Connection refused)
试了下TRA也是同样报错,所以应该不是A和B的关系。
先不用linux,换个角度,解决windows上内存不够的情况。在网上找到的方法:
要下载对应的包,虽然有点疑虑,因为TRA不用这样,但还是决定先试试。这个教程里写的很清楚。
Maven 环境配置 | 菜鸟教程 (runoob.com)
在这里还看到了mvn -v是linux和mac的命令。
两种方法(下图)。但依然报'mvn' 不是内部或外部命令,也不是可运行的程序
问题找到了,配置path变量的时候前面多打了一个分号,并且要重新打开命令行进行测试是否配置成功mvn -v或者mvn -version都可以。
重新跑TRB的命令,发现切换路径以后,直接
java -jar ./vdjmatch-1.2.2.jar match -S human -R TRB Convert.A1.TRB.txt A1.TRB
就可以,不用像VDJtools一样先加载。
依然是Java heap space。
set MAVEN_OPTS=”-Xmx20000M -XX:MaxPermSize=512m”
依旧不行。根据上次的一次尝试,将用户变量里的MAVEN_OPTS如下更改:
-Xms4000m -Xmx20000m -XX:MaxPermSize=1024m -XX:+CMSClassUnloadingEnabled XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+UseCMSCompactAtFullCollection -XX:+CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=70
老师之前成功的设置是在linux上用export MAX_MEMORY_OVERRIDE=12800
,根据网络上其中一种在linux上的解决方法是export MAVEN_OPTS=-Xmx1024m -XX:MaxPermSize=512m
,已知windows上设置用户变量的方式是把MAVEN_OPTS
设置成-Xms4000m -Xmx20000m -XX:MaxPermSize=1024m
,所以尝试在windows里把MAX_MEMORY_OVERRIDE设置为12800(猜测这个办法应该不行,在搜MAX_MEMORY_OVERRIDE的时候找到了另一种方法windows下配置tomcat服务器的jvm内存大小的两种方式 - 海绵般汲取 - 博客园 (cnblogs.com))明天试一下用tomcatw
再尝试:set "JAVA_OPTS=%JAVA_OPTS% -Xms4000m -Xmx20000M"
(不行)
java -Xms4000m -Xmx20000 vdjmatch