基因组注释笔记——GeneMark-ES/ET的使用

GeneMark-ES/ET 简介

GeneMark-ES/ET 是一种用于基因预测的计算工具,主要用于从头(ab initio)预测基因结构。
(1)GeneMark-ES(Extrinsic Signal) :

功能:主要用于从头预测基因结构,不依赖于外部注释信息(如已知基因或蛋白质序列)。

特点:通过分析基因组序列的统计特性(如密码子偏好、基因结构模式等)来预测基因。

适用场景:适用于新测序的基因组,尤其是那些缺乏已知注释信息的基因组。
(2)GeneMark-ET(Extrinsic Training) :

功能:结合外部注释信息(如已知基因、蛋白质序列或转录本信息)来提高基因预测的准确性。

特点:利用外部数据(如 RNA-Seq 数据、蛋白质同源性信息等)对基因预测模型进行训练和优化。

适用场景:适用于已有一定注释信息的基因组,通过结合这些信息来提高预测的准确性和可靠性。

安装

(1)下载软件和密匙、上传到根目录:https://exon.gatech.edu/GeneMark/license_download.cgi

(2)解压

bash 复制代码
tar -zxvf gmes_linux_64_4.tar.gz

(3)将密匙设置为隐藏文件

bash 复制代码
gunzip gm_key.gz
mv gm_key .gm_key

# 创建一个环境
conda create --name genmark perl=5.32 -y
# 安装编译器
conda install annconda::gcc_linux-64 -y
#查看环境变量
echo $PERL5LIB
# 如果不是当前环境需要修改为当前环境下的
export PERL5LIB=~/miniconda3/envs/genmark/lib/perl5:~/miniconda3/envs/genmark/lib/perl5/site_perl:~/miniconda3/envs/genmark/lib/perl5/core_perl:~/miniconda3/envs/genmark/lib/perl5/5.32/site_perl:~/miniconda3/envs/genmark/lib/perl5/5.32/core_perl

# 安装一些模块,不要在conda环境中用cpan\cpanm这些安装,Perl XS 模块(.so)可能和 Conda 的 Perl ABI 不兼容,会导致冲突
conda install -c bioconda perl-yaml perl-hash-merge perl-logger-simple perl-parallel-forkmanager perl-mce perl-threaded perl-math-utils

# 进入软件包,检查,模块是否都安装好了
cd gmes_linux_64_4
./check_install.bash

使用,拆分染色体运行

使用软屏蔽后的基因组

bash 复制代码
INPUT_DIR="~/annotation/022.repeatmasker/split"
# 输出根目录
OUTPUT_ROOT="~/annotation/genemark"
# 遍历所有染色体文件
for chr_file in ${INPUT_DIR}/*; do
    # 提取染色体名称(例如从 genome.fasta.id_chr1.masked 中提取 chr1)
    chr_name=$(basename ${chr_file} | sed 's/genome.fasta.id_//;s/\.masked$//')   
    # 创建染色体专属输出目录
    output_dir=$OUTPUT_ROOT/$chr_name
    mkdir -p ${output_dir}
    echo "perl ~/gmes_linux_64_4/gmes_petap.pl --ES --sequence ${chr_file} --cores 4 --work_dir ${output_dir} " >> workscripts/genemark.sh
done
# 批量投递

常见报错一:使用 GeneMark-ES/ET 时如果依然遇到 Perl 模块缺失 的问题

主要还是环境问题,可以尝试以下解决方法:

bash 复制代码
# (1)查看环境变量的路径,检查自己模块路径是否在其中
find ~/miniconda3/envs/genmark/lib/perl5 -name YAML # 检查模块路径
perl -V #检查环境调用路径
# 如果有缺失添加缺失的模块路径到环境变量
export PERL5LIB=~/miniconda3/envs/genmark/lib/perl5/5.32/core_perl/:$PERL5LIB 
# 取消指定默认编译路径的参数
unset $PERLLIB
# (2)还有一种情况是某一个之前安装的模块可能有问题,需要卸载perl重装
conda install -n genmark --force-reinstall perl

# 关于是否需要修改perl脚本第一行的perl路径问题:
# 显式地使用 /usr/bin/perl 来运行 Perl 脚本时,系统将忽略脚本中的 shebang 行,即使脚本里设置了 #!/path/to/perl,也不会生效。系统会优先使用你在命令行中指定的那个 Perl 解释器。
# 但是运行脚本中涉及到其他脚本,没有指定编译器,会用第一行指定的编译器,所以需要批量修改
cd ~/gmes_linux_64_4
find . -type f -name "*.pl" -exec sed -i '1s|/usr/bin/perl|~/miniconda3/envs/genmark/bin/perl|' {} +

常见报错二:无法编译,或者编译错误等

bash 复制代码
# (1)看gcc版本
ll ~/miniconda3/envs/genmark/lib/gcc/x86_64-conda-linux-gnu
# (2)检查perl的配置文件
vim /public2/home/heyi02/miniconda3/envs/genmark/lib/perl5/5.32/core_perl/Config.pm
# 找到编译和库的路径
:/compilerroot
# 检查这个路径与自己conda的编译环境是否一致
# 比如:如果自己用的gcc版本与脚本中定义的不一致,就可以进行修改,将Config.pm中的12.3.0改为14.2.0
相关推荐
andrsted36 分钟前
练题簿在线免费刷题:让整理过的资料,变成能反复练习的题库
学习·微信小程序·小程序·学习方法·刷题·1024程序员节
Alsn862 小时前
Windows 安装 Ollama 及本地模型部署
学习·1024程序员节
Regentsoft丽晶软件2 小时前
从 “定时拉取“ 到 “事件驱动“,服装库存实时同步的底层架构怎么设计?
经验分享·php·零售
狮子座的男孩2 小时前
html+css基础:25、3D变换(3D空间与景深/透视点的位置/位移/旋转/缩放/多重变换/背部可见性)
css·经验分享·html·旋转·透视点·缩放/位移·3d变换/空间与景深
欣欣之王来了3 小时前
原始HTML插值:v-html指令的使用与安全风险
前端·学习·架构·项目·vue3教程
狮子座的男孩4 小时前
解决:使用Burp Suite工具实现防重放攻击的过程及遇到的代理等问题
经验分享·web开发·工具·代理·burpsuite·网络开发·防重放攻击
解决小子4 小时前
【虚幻引擎】【C++】【GAS框架】构建角色基类、属性集、数值钳制
c++·笔记·游戏引擎·虚幻·gas·能力系统
2601_967212724 小时前
高防护轨道式插座安全结构与工程适配技术说明
大数据·经验分享·安全
知识分享小能手5 小时前
C学习教程,从入门到精通,C语言学生信息管理系统 — 知识点详解(18)
c语言·学习·1024程序员节
破芽5 小时前
learn-claude-code-s05-s11-学习笔记
笔记·学习