主要參考:(4條消息) 無參轉(zhuǎn)錄組GO、KEGG富集分析——diamond+idmapping+GOstats_ygyxl的博客-CSDN博客
使用miniconda2安裝Diamond之后,開始進行相關(guān)操作
1、建庫
#下載swissprot數(shù)據(jù)庫
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
出現(xiàn)報錯:
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
緊接著下載注釋用的數(shù)據(jù)庫文件,獲取idmapping.tb.gz文件和Uniprot2GO_annotated.py文件
報錯

據(jù)說是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的文件用了壓縮包,應該是用解壓縮之后的文件
#嘗試運行,仍報錯,但報錯的信息發(fā)生了變化,
之前是
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
現(xiàn)在是
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 的數(shù)據(jù)集合。
接下來是需要將一對多的形式改寫成一對一的形式
即:

修改成:
