主要参考:(4条消息) 无参转录组GO、KEGG富集分析——diamond+idmapping+GOstats_ygyxl的博客-CSDN博客
使用miniconda2安装Diamond之后,开始进行相关操作
1、建库
#下载swissprot数据库
wget ftp://ftp.ncbi.nih.gov/blast/db/FASTA/swissprot.gz
gzip -d swissprot.gz
diamond makedb --in swissprot -d swissprot
1、解压cds序列文件*.gz
2、blastx比对:
diamond blastx -d swissprot -q /vol3/agis/zhoushaoqun_group/wangyantao/GO/Sae_cds.fasta -k 1 -e 0.00001 -o /vol3/agis/zhoushaoqun_group/wangyantao/GO/swiss_dia_matches.sae
出现报错:
The host system is detected to have 67 GB of RAM. It is recommended to increase the block size for better performance using these parameters : -b6
修改:
diamond blastx -d swissprot -q /vol3/agis/zhoushaoqun_group/wangyantao/GO/Sae_cds.fasta -k 1 -e 0.00001 -b6 -o /vol3/agis/zhoushaoqun_group/wangyantao/GO/swiss_dia_matches.sae
diamond blastx -d swissprot -q /vol3/agis/zhoushaoqun_group/wangyantao/GO/Sme_cds.fasta -k 1 -e 0.00001 -b6 -o /vol3/agis/zhoushaoqun_group/wangyantao/GO/swiss_dia_matches.sme
diamond blastx -d swissprot -q /vol3/agis/zhoushaoqun_group/wangyantao/GO/Sly_cds.fasta -k 1 -e 0.00001 -b6 -o /vol3/agis/zhoushaoqun_group/wangyantao/GO/swiss_dia_matches.sly
diamond blastx -d swissprot -q /vol3/agis/zhoushaoqun_group/wangyantao/GO/Stu_cds.fa -k 1 -e 0.00001 -b6 -o /vol3/agis/zhoushaoqun_group/wangyantao/GO/swiss_dia_matches.stu
紧接着下载注释用的数据库文件,获取idmapping.tb.gz文件和Uniprot2GO_annotated.py文件
报错
据说是python软件版本太低的问题
升级python
#升级conda#
conda update -n base -c defaults conda
#安装Python3.6
conda install python=3.6
#检测python版本
#重新尝试运行
~/miniconda2/envs/SolpanTP/bin/python3 /vol3/agis/zhoushaoqun_group/wangyantao/GO/unipro2go.py /vol3/agis/zhoushaoqun_group/caiyanling/yft/GO/idmapping.tb.gz /vol3/agis/zhoushaoqun_group/wangyantao/GO/swiss_dia_matches.sae2 /vol3/agis/zhoushaoqun_group/wangyantao/GO/swiss_go.sae
~/miniconda2/envs/SolpanTP/bin/python3 /vol3/agis/zhoushaoqun_group/wangyantao/GO/unipro2go.py /vol3/agis/zhoushaoqun_group/caiyanling/yft/GO/idmapping.tb.gz /vol3/agis/zhoushaoqun_group/wangyantao/GO/swiss_dia_matches.sly2 /vol3/agis/zhoushaoqun_group/wangyantao/GO/swiss_go.sly
~/miniconda2/envs/SolpanTP/bin/python3 /vol3/agis/zhoushaoqun_group/wangyantao/GO/unipro2go.py /vol3/agis/zhoushaoqun_group/caiyanling/yft/GO/idmapping.tb.gz /vol3/agis/zhoushaoqun_group/wangyantao/GO/swiss_dia_matches.sme2 /vol3/agis/zhoushaoqun_group/wangyantao/GO/swiss_go.sme
~/miniconda2/envs/SolpanTP/bin/python3 /vol3/agis/zhoushaoqun_group/wangyantao/GO/unipro2go.py /vol3/agis/zhoushaoqun_group/caiyanling/yft/GO/idmapping.tb.gz /vol3/agis/zhoushaoqun_group/wangyantao/GO/swiss_dia_matches.stu2 /vol3/agis/zhoushaoqun_group/wangyantao/GO/swiss_go.stu
弄了半天,很有可能是idmapping的文件用了压缩包,应该是用解压缩之后的文件
#尝试运行,仍报错,但报错的信息发生了变化,
之前是
Traceback (most recent call last):
File "/vol3/agis/zhoushaoqun_group/wangyantao/GO/unipro2go.py", line 28, in <module>
UniProtKB_GO = parseIDmapping(sys.argv[1])
File "/vol3/agis/zhoushaoqun_group/wangyantao/GO/unipro2go.py", line 15, in parseIDmapping
if lsplit[7]:
IndexError: list index out of range
现在是
Traceback (most recent call last):
File "/vol3/agis/zhoushaoqun_group/wangyantao/GO/unipro2go.py", line 45, in <module>
close
NameError: name 'close' is not defined
#打开文件,/vol3/agis/zhoushaoqun_group/wangyantao/GO/unipro2go.py,将第45行的close删掉
运行成功!
最终获得gene_id + GO term 的数据集合。
接下来是需要将一对多的形式改写成一对一的形式
即:
修改成: