介绍
- 为什么会用到GeneClear,因为用famcircle绘制多物种共线性图的时候,需要对注释文件、基因组文件、蛋白序列等进行处理,而这个软件就能够排上用场了
- GeneClear能够输出统一命名后的一下文件
- .lens:3列,染色体编号,长度,以及在染色体上的基因数量信息
- _gene.gff:7列,染色体编号,新基因id,起始,终止,正负链,index,旧基因id
- _mrna.gff:7列,和_gene.gff一样,主体从gene注释行换成mrna注释行
- 一般来说没什么区别,如果注释了可变剪切的话,数量上会比gene的数量更多,在这种情况下要进行共线性比对,一般都是筛选保留最长转录本
- .cds:重命名后的cds序列
- .pep:重命名后的蛋白序列
- 输出文件的内容,就是这张图里的样子
- 用MCScanx运行共线性比对时,除了需要两个比对物种的蛋白/cds序列的blast结果外,还需要进化后的gene的gff文件
- 简化版的gff文件要求:
染色体序列 基因编号 起始位置 终止位置- 用上GPT的话,除了基因编号外的其他三个都很好提取,但是基因编号就是另外一回事了;EVM的输出结果是有点晦涩的命名方式。如果是有处理过的gff,基因id应该比较容易识别,让GPT生成提取命令行应该可以;但是设计到多个物种,如果id的命名方式存在一些细小的差异,原本的命令行的输出结果可能就会不满足共线性的输入文件要求(简单来讲就是鲁棒性太差),所以这里就轮到这个工具包的出场了
软件安装
虽然pip可以直接安装,但有些不稳定,所以还是推荐下面的安装方法
wget https://github.com/lkiko/GeneClear/archive/refs/tags/v0.0.0.zip
#下载,解压,然后能够得到whl这个文件;这里下载的是2024年的,源代码?不是很清楚,总之只有这个能够正常通过pip来安装geneclear软件包;参考文档给的那个下载whl命令,下载的whl文件会出现invalid的问题。
pip install GeneClear-0.0.0-py3-none-any.whl #安装脚本包geneclear使用方法
使用前提
- cds序列和蛋白序列的编号要一样
- 染色体编号仅支持一种格式,或者说把没有组装到染色体上的contig部分的序列,gff内容去掉,cds和蛋白里面对应的内容也要去掉,不然会产生报错
编写run.conf文件
这里针对的是两种注释文件,NCBI的就是最常见的gff;PASA的是有可变剪切的,一个gene可能有多个mrna,以及5'端和3'端,相较前者是多了这些注释信息
针对NCBI的gff
- 生成run.conf文件
GeneClear -getncbi run.conf- run.conf文件
- 前三列内容分别是cds序列,蛋白序列,基因组文件,很好懂
- 第四列是注释文件
- 第五列是物种名,可以为空值,但是不能去掉;如果想要对输出内容的染色体编号进行调整的话,可以在species这里加上,后续程序运行的时候会加上这部分的内容
cds_file = cds file
pep_file = pep file
genome_file = genome file
gff3_file = NCBIgff3
species = Species(Oryza sativa -> osa/os)针对PASA的gff
- EVM提取gene,cds和protein内容
/home/soft/EVidenceModeler/EvmUtils/gff3_file_to_proteins.pl Rsimsii.genome.repre.gff3 Rsimsii.genome.fasta prot > Rsimsii.protein
/home/soft/EVidenceModeler/EvmUtils/gff3_file_to_proteins.pl Rsimsii.genome.repre.gff3 Rsimsii.genome.fasta CDS > Rsimsii.cds
/home/soft/EVidenceModeler/EvmUtils/gff3_file_to_proteins.pl Rsimsii.genome.repre.gff3 Rsimsii.genome.fasta gene > Rsimsii.gene- 生成run.conf文件
GeneClear -getpasa ? > run.conf- run.conf文件
- 相较上面,多了一个内容,gene_files,这是EVM的脚本生成的基因编号内容,理由是考虑到了一个基因因为可变剪切而存在多种蛋白序列的情况
- 这是只是猜想:写这个工具包的人可能把可变剪切的情况也考虑进去,然后这个软件包在这种模式下运行会筛选保留最长转录本,并输出唯一的结果;不过,本人没有试过这种模式,所以这一块还处于空白;假如最终的输出并非这里猜想的那样,那就参考下方参考2的徐洲更的流程好了
cds_file = cds file
pep_file = pep file
gene_file = gene file
genome_file = genome file
gff3_file = PASAgff3
species = Species(Oryza sativa -> osa/os)运行程序
- 命令行只有一个
GeneClear -getncbi run.conf- 以下面这个作为案例
- 选择1,是否需要修改染色体名称;这个看情况,这边因为这次使用的物种物均13条染色体,famcircle的绘图范围有限,所以要把染色体进行适当的修改,调整长度;如果不需要修改,enter按到底就可以了(也可以输入N,不过这个麻烦)
- 需要修改的话,分割符,可以按照上面展示出来的部分注释内容看的到,数字和字母组成,这里要把chr替换成Chr,分割符是chr(分割符似乎只能选择一遍,假如遇到chr01a,那么a和chr就只能选择一个,算是局限性吧,这个软件包的)
- 保留序号(0/1),
- 选择1,去掉分割符,输出结果时species的变量+去掉分割符后的染色体编号内容(右边)
- 选择0,不保留原先染色体编号的任何信息,输出结果时species的变量(左边)
- species的变量则是在上面的run.conf中手动设置
- 染色体名称如果需要修改的话,一共要修改两次;两次的内容一样。
- 最后是是否需要修改cds和protein的id,这个基本用不到
- 第二个案例
- 关于上面说到的分隔符的规则,这里用和上面相反的例子来说明一下
- 上面的分割符是染色体编号左边的内容,这里的是染色体编号右边的内容
- 分割符为a,选择1
- 因为a是染色体编号的最右边,以此为分隔符,选择1(分隔符右边),最后原本染色体编号上的内容将没有,输出的内容就只有species的变量ch
- 分割符为a,选择0
- 选择0(分割符左边),这次能够把chr的内容保留下来,最后的输出:species变量+chr
参考
- 生信人填坑记~pasa注释结果提取常用gff,lens等文件-基因组注释后续_gff如何生成lens文件-CSDN博客(原先看不用付费来着,好在看过了)
- 基因组共线性工具MCScanX使用说明-CSDN博客(徐洲更讲解怎么提取最长转录本,蛋白序列比对和MCScanx进行共线性比对的过程)