1. 安装jcvi
可以直接conda安装,记得在python2的环境下哦,3会报错。
conda install -c bioconda -y jcvi
2. 准备文件(CDS,pep,gff3)
3. 我们分析只需要用到每个基因最长的转录本就行,用jcvi就可以可以做到这件事情,先将gff转成bed格式
python2 -m jcvi.formats.gff bed --type=mRNA --key=ID A.aquatica.EVM.gff3.gz > aquatica.bed
python2 -m jcvi.formats.gff bed --type=mRNA --key=ID GCA_002102615.1_NepCla1.0_genomic.gff.gz > Nepcla.bed
python2 -m jcvi.formats.gff bed --type=mRNA --key=ID GCA_000611955.2_Stegodyphus_mimosarum_v1_genomic.gff.gz > Stemim.bed
这里的--type=mRNA没错,但是后面的--key你要看自己的gff文件长什么样哦。默认=ID
然后将bed进行去重复
python2 -m jcvi.formats.bed uniq aquatica.bed
python2 -m jcvi.formats.bed uniq Nepcla.bed
python2 -m jcvi.formats.bed uniq Stemim.bed
最后我们得到了aquatica.uniq.bed和Nepcla.uniq.bed, 根据bed文件第4列就可以用于提取cds序列和蛋白序列。
seqkit grep -f <(cut -f 4 aquatica.uniq.bed ) A.aquatica.EVM.CDS.fasta.gz | seqkit seq -i > aquatica.cds
seqkit grep -f <(cut -f 4 Nepcla.uniq.bed ) NepCla.CDS.fasta.gz | seqkit seq -i > Nepcla.cds
seqkit grep -f <(cut -f 4 Stemim.uniq.bed ) Stegodyphus_mimosarum_cds.fa.gz | seqkit seq -i > Stemim.cds
最后就获得了这些文件
4.BLAST比对
makeblastdb -in Nepcla.cds -out db/Nepcla -dbtype nucl
blastn -num_threads 20 -query Stemim.cds -db db/Nepcla -outfmt 6 -evalue 1e-5 -num_alignments 5 > Ste_Nep.blast
用jcvi.compara.blastfilter对结果进行过滤
python -m jcvi.compara.blastfilter --no_strip_names Ste_Nep.blast --sbed Nepcla.uniq.bed --qbed Stemim.uniq.bed
最后输出aly_ath.blast.filtered用于做图
python -m jcvi.graphics.blastplot Ste_Nep.blast.filtered --sbed Nepcla.uniq.bed --qbed Stemim.uniq.bed
报错1:
由于服务器里没有这种字体
/.../software/Python-2.7.8/lib/python2.7/site-packages/matplotlib/font_manager.py:1316: UserWarning: findfont: Font family [u'sans-serif'] not found. Falling back to DejaVu Sans
(prop.get_family(), self.defaultFamily[fontext]))
- ~/.cache/matplotlib/fontList.json文件存储了matplotlib运行是会调用的字体信息;出现上述错误说明该文件中必然没有Helvetica相关的信息,或者对应的Helvetica.ttf文件;
- 在网上下载一个Helvetica.ttf文件,放在matplotlib的font目录(***/matplotlib/mpl-data/fonts/ttf/)或者系统的font目录下都行(/usr/share/fonts/);
- 删除/.cache/matplotlib目录,重新运行你的画图脚本;此时程序会自动在/.cache目录下生成matplotlib目录以及fontList.json文件;
一般来说到这里就应该成功了。
报错2:
OSError: [Errno 2] No such file or directory: 'latex'
这是由于服务器里面没有这个排版的软件
- 下载 iso 镜像(有root权限哈)
wget -c https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/Images/texlive2019.iso
- 挂载镜像到 /mnt/ 并执行安装命令
su -
mount -o loop texlive2019.iso /mnt/
cd /mnt
./install-tl
执行最后一条命令之后会出现下面的选项:
输入 I 然后回车进行安装
- 设置环境变量
export MANPATH=${MANPATH}:/urs/local/texlive/2019/texmf-dist/doc/man
export INFOPATH=${INFOPATH}:/usr/local/texlive/2019/texmf-dist/doc/info
export PATH=${PATH}:/usr/local/texlive/2019/bin/x86_64-linux
- 设置清华源 更新所有宏包
[CTAN](https://www.ctan.org/) (The Comprehensive TeX Archive Network) 镜像源可以使用 TeX Live 管理器 tlmgr 更改。
在命令行中执行
tlmgr option repository [https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet](https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet)
即可永久更改镜像源。
如果只需要临时切换,可以用如下命令:
tlmgr update --all --repository [https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet](https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet)
其中的 update --all 指令可根据需要修改。
# 如下载时出现问题请将地址中的 https 改为 http。
- 卸载镜像
sudo umount /mnt
参考:
https://www.jianshu.com/p/17aaeaae1ca3
[https://blog.csdn.net/m0_37952030/article/details/90646388]
[https://www.cnblogs.com/zhaofeng-shu33/p/texlive_installation.html]
[https://mirrors.tuna.tsinghua.edu.cn/help/CTAN/](https://mirrors.tuna.tsinghua.edu.cn/help/CTAN/)