01.基因组注释笔记——RepeatMasker使用记录

1. 查看官网:

RepeatMasker Home Pagehttps://www.repeatmasker.org/

2. 了解软件的功能:

RepeatMasker 是一个用于筛查 DNA 序列中的散布重复序列(interspersed repeats )和低复杂度 DNA 序列(low complexity DNA sequences)的程序。

RepeatMasker 中的序列比较是通过多种流行的搜索引擎执行的,包括 nhmmer、cross_match、ABBlast/WUBlast、RMBlast 和 Decypher。RepeatMasker 目前支持 Dfam库和 Repbase库。

  • Repbase 是一个商业数据库,包含了大量的重复序列数据,包括它们的分类、分布和序列,这些数据被广泛用于基因组注释,特别是在识别和掩蔽基因组中的重复元素。使用 Repbase 数据库通常需要购买商业或学术许可证。Genetic Information Research Institute
  • Dfam 是一个开放的数据库,它提供了转座元件(TEs)的种子对齐、配置文件隐马尔可夫模型(profile HMMs)和共识序列。数据库中的信息是基于 Repbase 序列衍生的,这意味着它使用 Repbase 中的数据作为基础,进一步加工和整合,以提供更丰富的功能和更好的性能。Dfam

3. 查看软件下载页面:

Download Pagehttps://www.repeatmasker.org/RepeatMasker/

 (1)确保要在 Unix 系统上安装 Perl 5.8.0 或更高版本以及 Python 3 和 h5py Python 库。

# 检查版本
perl -v
python3 --version
pip3 list | grep h5py

(2)目前支持搜索引擎 Cross_Match, RMBlast and WUBlast/ABBlast,下载其中之一即可。

# 使用conda安装rmblast
conda install bioconda::rmblast
# 检查路径
which rmblastn
# 检查版本是否是2.13.0 以上
rmblastn -v
# 下载hmmer
conda install bioconda::hmmer
# 检查conda中是否已经安装了hmmer
which nhmmer

(3) TRF - Tandem Repeat Finder用于查找串联重复序列的工具, TRF 网站 .

# 下载trf
conda install trf
which trf

(4) 下载软件

conda install bioconda::repeatmasker
which RepeatMasker

# 使用conda安装的repeatmasker,命令在~/miniconda3/envs/qjyzzz/test/bin下
# 文件夹在~/miniconda3/envs/qjyzzz/share/RepeatMasker/下

(5) 重复序列数据库,RepeatMasker 可以使用自定义库或直接使用 Dfam。版本(4.1.7)不附带数据库,但配置脚本可以自动下载 Dfam 3.8 的最小版本(根分区),支持使用自定义数据库。

网站提供了 Dfam 数据库的下载和 RepBase RepeatMasker Edition 数据库的下载。

——>>>  这里选择Dfam:

a. 查看下载readme文件dfam.org/releases/Dfam_3.8/families/FamDB/README.txt

了解到FamDB HDF5 数据库格式支持分区下载,选择我需要的植物分区下载。

  • Partition 0 [dfam38-1_full.0.h5]:根分区,包含哺乳动物、变形虫、细菌、选择性吞噬虫、红藻、Haptista、Metamonada、真菌、Sar、Placozoa、Ctenophora(合胞体水母)、Filasterea、Spiralia、Discoba、刺胞动物、Porifera(海绵)、病毒等。
  • Partition 1 [dfam38-1_full.1.h5]:Obtectomera(蛾和蝴蝶)。
  • Partition 2 [dfam38-1_full.2.h5]:Euteleosteomorpha(真骨鱼类)。
  • Partition 3 [dfam38-1_full.3.h5]:Sarcopterygii(包括爬行动物、两栖动物等)。
  • Partition 4 [dfam38-1_full.4.h5]:Diptera(苍蝇)。
  • Partition 5 [dfam38-1_full.5.h5]:Viridiplantae(植物)。
  • Partition 6 [dfam38-1_full.6.h5]:Deuterostomia(包括软骨鱼、半索动物等)。
  • Partition 7 [dfam38-1_full.7.h5]:Hymenoptera(黄蜂、蜜蜂、蚂蚁)。
  • Partition 8 [dfam38-1_full.8.h5]:Ecdysozoa(包括线虫、昆虫等)。
cd ~/miniconda3/envs/qjyzzz/share/RepeatMasker/

# 确保目录中只包含同一 Dfam 版本的分区。如果存在,请删除最小 RepeatMasker 库
# 检查是否存在:Libraries/famdb/min_init.0.h5
ll Libraries/famdb/

# 安装根分区
cd Libraries/famdb/
wget https://www.dfam.org/releases/Dfam_3.8/families/FamDB/dfam38-1_full.0.h5.gz
gunzip dfam38-1_full.0.h5.gz
# 安装分区数据
wget https://www.dfam.org/releases/Dfam_3.8/families/FamDB/dfam38-1_full.5.h5.gz 
gunzip dfam38-1_full.5.h5.gz

# 确保 RepeatMasker 能够正确识别和使用 FamDB 分区文件
cd ~/miniconda3/envs/qjyzzz/share/RepeatMasker/
./configure
# 按步骤配置

# 使用 famdb.py 工具来获取数据库信息、搜索物种名称、查看分类群的谱系树等
famdb.py -i /public2/home/heyi02/miniconda3/envs/qjyzzz/share/RepeatMasker/Libraries family Quercus

b. 了解学习Dfam数据库

GitHub - Dfam-consortium/FamDB: FamDB file format library and utilities

FamDB软件的names命令可以搜索分类数据库中的物种名称,并打印出所有匹配项的已知名称。

famdb.py -i <directory> names [-f json] <term>
# <directory> 是包含.h5导出文件的文件夹。
# <term> 可以是分类标识符编号或物种/类群名称的一部分。
# 默认输出为人类可读的pretty格式

##### 输出 ############
# Exact Matches:精确匹配项。
# Non-exact Matches:非精确匹配项。

4. 查看软件的使用: 

repeatmasker webhttps://www.repeatmasker.org/webrepeatmaskerhelp.html(1)输入格式

必须是 FASTA 格式。可以一次性粘贴多个 FASTA 格式序列或将它们包含在一个文件中。

(2)运行及参数调整

RepeatMasker -lib <library> <input_sequence>
# -lib 参数后面跟着的是转座元素库的路径。
# <input_sequence> 是你的输入序列文件

# 在Linuxx系统中运行以下命令查看更多用法
RepeatMasker --help
RepeatMasker --version

-h:显示详细帮助信息。
-e 或 -engine:指定使用哪个搜索引擎,如 crossmatch、wublast、abblast、ncbi、rmblast 或 hmmer。

-species:指定输入序列的物种或类群。物种名称必须是有效的 NCBI Taxonomy Database 物种名称,并且必须包含在 RepeatMasker 的重复序列数据库中。
# 注意:如果物种名称包含空格,需要用双引号将名称括起来,例如 "ciona savignyi".
# 除了具体的物种名称,你还可以使用更广泛的分类群名称。
# 如果你不指定 -species 参数,RepeatMasker 会使用一个通用的数据库,这个数据库包含了多种物种的重复序列信息。虽然这样可以识别出一些常见的重复序列,但可能无法识别出特定物种特有的重复序列
-uncurated:使用 FamDB 中的整理和未整理家族,而不仅仅是整理的(默认)。

-pa 或 parallel:决定了 RepeatMasker 将并行运行的作业数量。例如,如果你设置 -pa 4,RepeatMasker 将同时运行 4 个作业.
### 搜索引擎核心使用:
RMBlast:每个作业使用 4 个核心.
ABBlast:每个作业使用 4 个核心.
nhmmer:每个作业使用 2 个核心.
crossmatch:每个作业使用 1 个核心

-nolow:不掩蔽低复杂度 DNA 或简单重复序列。
-noint:仅掩蔽低复杂度/简单重复序列,不掩蔽散在重复序列。
-div:仅掩蔽与共识序列差异大于指定百分比的重复序列。
-lib:使用自定义库(例如来自另一个物种的库)。
-cutoff:设置使用 -lib 时掩蔽重复序列的分数截止值。

-gc:使用为特定背景 GC 百分比水平计算的矩阵。
-gccalc:即使对于批处理文件/小序列,RepeatMasker 也计算 GC 含量。

-dir:将输出写入指定目录。
-gff:创建额外的基因特征查找格式输出。

(3)输出结果

RepeatMasker 会生成多个输出文件,包括:

  • .out:包含重复序列的详细注释。
  • .align:包含与重复序列匹配的对齐信息。
  • .tbl:包含重复家族的分类信息。

(4)细节

默认设置下,大约需要 30-40 秒分析一个 10 kb 的人类 cosmid 序列。对于更长的序列,所需时间大致与序列长度成线性增加。

### 基因组从头注释的方法与工具 基因组从头注释是指在没有任何已知参考基因组的情况下,通过计算方法预测和描述基因组的功能元件。这一过程通常涉及多个阶段,包括重复序列识别、蛋白质编码基因预测、非编码RNA鉴定以及功能注释等。 #### 1. 数据准备 高质量的输入数据对于成功的基因组注释至关重要。这一步骤可能包括原始测序读取的质量控制、组装后的基因组文件以及其他辅助数据集(如转录组数据)。如果存在转录组数据,则可以利用其提高基因模型预测的准确性[^3]。 #### 2. 预处理:重复序列屏蔽 由于基因组中可能存在大量的重复区域,这些区域可能会干扰后续的基因预测工作流。因此,在正式开始基因预测之前,通常会先使用软件来检测并掩盖掉这些重复片段。常用的工具有 `RepeatMasker` 和 `RepeatModeler`,它们能够基于现有的数据库或者自行构建新的重复单元库来进行筛选。 #### 3. 编码区预测 ##### (a)同源比较法 (Homology-based Prediction) 这种方法依赖于已经经过实验验证过的其他物种中的直系同源基因信息。典型代表程序有 GenBlastA 和 Exonerate 。它适用于目标物种与其近缘种之间共享较多保守特征的情况之下。 ##### (b)从头算法(Ab initio prediction methods) 这类技术仅依靠DNA 序列本身的特性而无需外部证据支持即可做出推测。主要采用隐马尔可夫模型(HMMs),比如 Augustus 或者 GeneMark-ES 等都是此类应用实例之一。 #### 4. 结合多种策略综合评价最佳候选基因集合 为了获得更精确的结果,往往将上述两种不同原理相结合起来形成混合型框架。例如 MAKER-P 就是一个集成平台,允许用户同时运行 ab initio predictors 及 homologous searches ,并通过内部逻辑判断最终保留哪些预测结果作为可信度较高的选项提交给下一步操作。 #### 5. 功能注释 一旦确定了潜在的开放阅读框位置之后,就需要赋予每一个新发现的对象具体生物学意义解释——即所谓“功能性标注”。此环节主要包括但不限于以下几个方面: - 利用 InterProScan 对未知产物执行域匹配查询; - 查询 KEGG Pathway Database 获取代谢途径关联提示; - 进行 GO terms 富集统计分析等等[^1]。 以下是实现部分流程的一个简单 Python 函数示例: ```python import subprocess def run_maker(genome_fasta, est_files=None, protein_files=None): """ 使用MAKER进行基因组注释 参数: genome_fasta -- 输入的基因组fasta文件路径 est_files -- EST序列文件列表(可选) protein_files -- 蛋白质序列文件列表(可选) 返回值: None """ maker_cmd = ["maker"] if est_files is not None and isinstance(est_files,list): for ef in est_files: maker_cmd.extend(["--est",ef]) if protein_files is not None and isinstance(protein_files,list): for pf in protein_files: maker_cmd.extend(["--protein",pf]) maker_cmd.append("--genome={}".format(genome_fasta)) try: result=subprocess.run(maker_cmd,text=True,capture_output=True,check=True) print(result.stdout) except Exception as e: print(f"Error occurred while running MAKER:{e}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值