介绍

RepeatModeler(https://www.repeatmasker.org/RepeatModeler/)是一个用于从头识别和构建转座子(TE)家族的工具包。RepeatModeler 的核心是三个从头重复序列发现程序(RECON、RepeatScout 和 LtrHarvest/Ltr_retriever),它们使用互补的计算方法从序列数据中识别重复元素边界和家族关系。

RepeatModeler 帮助自动运行各种算法,给定一个基因组数据库,聚类冗余结果,优化和分类家族,并生成高质量的转座子(TE)家族库,适合与 RepeatMasker 一起使用,并最终提交到 Dfam 数据库 (http://dfam.org))。

下载

RepeatMasker/RepeatModeler 本身依赖于很多其他工具,而且这些转座子识别工具也被整合到许多转座子鉴定流程中,比如 EDTA(https://github.com/oushujun/EDTA),所以当下载一个一个工具后,往往很多工具已经下载了。我之前下载并创建了 EDTA 的 conda 环境,因此不用费力下载了。

  1. # conda create -n EDTA -c conda-forge -c bioconda
  2. conda activate EDTA

使用

RepeatModeler 的使用分为两步:

首先需要运行 BuildDatabase 为参考基因组构建索引数据库。

  1. BuildDatabase [-options] -name "mydb" <seqfile(s) in fasta format>
  • -help: 显示更为细节的帮助信息。
  • -name <database name>: 要创建的数据库名称。
  • -engine <engine name>: 要使用的搜索引擎。[abblast|wublast|rmblast]
  • -dir <directory>: 包含要运行的 fasta 文件的目录。文件后缀会被识别,仅运行后缀为 .fa、.fasta、.fast、.dna 等的文件。
  • -batch <file>: 包含 fasta 文件名的文件。

然后再运行 RepeatModeler。

  1. RepeatModeler [-options] -database <XDF Database>
  • -help: 显示帮助信息。
  • -database: 由 BuildDatabase 所创建的数据库名。
  • -pa: 搜索任务的并行数目。每个 RMBlast 任务需要 4 个线程。每个 ABBlast 任务需要 1 个线程。
  • -recoverDir: 之前运行的结果。尝试减少不必要的重复,类似于断点续传。
  • -srand: 设置随机数生成器的种子(整数值)。
  • -LTRStruct: 检测 LTR 结构(LTR_Harvest 和 LTR_retreiver),并与 RepeatScout/RECON 结果结合。
  • -genomeSampleSizeMax: 更改 RECON 运行的基因组样本最大大小。默认 243000000
  • -ninja_dir: Ninja 系统发育分析模块(https://wheelerlab.org/software/ninja/)的安装位置。
  • -ltr_retriever_dir, -rscout_dir, -rmblast_dir, -mafft_dir, -trf_prgm, -repeatmasker_dir, -genometools_dir, -recon_dir, -abblast_dir, -cdhit_dir: 对应软件的下载路径

运行

数据下载

我下载了水稻的基因组(https://www.ncbi.nlm.nih.gov/datasets/genome/GCF_034140825.1/)用于测试。

  1. # 下载并解压数据
  2. wget -c https://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/034/140/825/GCF_034140825.1_ASM3414082v1/GCF_034140825.1_ASM3414082v1_genomic.fna.gz -O Oryza_sativa.genome.fa.gz
  3. gunzip Oryza_sativa.genome.fa.gz

构建索引

  1. # 构建索引
  2. database=Oryza_sativaDB
  3. BuildDatabase -name ${database} Oryza_sativa.genome.fa
  4. # 查看构建索引生成的文件
  5. ls -lh
  6. # -rw-rw---- 1 shwzhao ps30521 540 Sep 27 15:18 Oryza_sativaDB.nhr
  7. # -rw-rw---- 1 shwzhao ps30521 264 Sep 27 15:18 Oryza_sativaDB.nin
  8. # -rw-rw---- 1 shwzhao ps30521 120 Sep 27 15:18 Oryza_sativaDB.nnd
  9. # -rw-rw---- 1 shwzhao ps30521 52 Sep 27 15:18 Oryza_sativaDB.nni
  10. # -rw-rw---- 1 shwzhao ps30521 92 Sep 27 15:18 Oryza_sativaDB.nog
  11. # -rw-rw---- 1 shwzhao ps30521 93M Sep 27 15:18 Oryza_sativaDB.nsq
  12. # -rw-rw---- 1 shwzhao ps30521 216 Sep 27 15:18 Oryza_sativaDB.translation
  13. # -rw-rw---- 1 shwzhao ps30521 374M Jul 11 06:05 Oryza_sativa.genome.fa

运行

  1. # 运行 RepeatModeler
  2. RepeatModeler \
  3. -database ${database} \
  4. -pa 12
  5. &> repeatmodeler.log

总共用了 12 个线程,没想到小小水稻基因组竟运行了近 3 天时间。

最后生成:

  • RM_XXX.XXX 格式的文件夹
  • {database}-families.fa
  • {database}-families.stk
  1. ls -lh
  2. ## -rw-rw----+ 1 shwzhao ps30521 2.6M Sep 29 23:24 Oryza_sativaDB-families.fa
  3. ## -rw-rw----+ 1 shwzhao ps30521 166M Sep 29 23:24 Oryza_sativaDB-families.stk
  4. ls -lh RM_954992.FriSep271527562024
  5. ## total 513M
  6. ## -rw-rw----+ 1 shwzhao ps30521 2.5M Sep 29 22:09 consensi.fa
  7. ## -rw-rw----+ 1 shwzhao ps30521 2.6M Sep 29 23:24 consensi.fa.classified
  8. ## -rw-rw----+ 1 shwzhao ps30521 166M Sep 29 23:24 families-classified.stk
  9. ## -rw-rw----+ 1 shwzhao ps30521 166M Sep 29 22:09 families.stk
  10. ## drwxrws---+ 2 shwzhao ps30521 548K Sep 27 20:20 round-1
  11. ## drwxrws---+ 4 shwzhao ps30521 28K Sep 27 20:25 round-2
  12. ## drwxrws---+ 4 shwzhao ps30521 72K Sep 27 20:42 round-3
  13. ## drwxrws---+ 4 shwzhao ps30521 224K Sep 27 22:08 round-4
  14. ## drwxrws---+ 4 shwzhao ps30521 692K Sep 28 07:13 round-5
  15. ## drwxrws---+ 4 shwzhao ps30521 1.9M Sep 29 22:10 round-6
  16. ## -rw-rw----+ 1 shwzhao ps30521 2.5M Sep 29 22:10 tmpConsensi.fa

注意,当我运行 RepeatModeler 时添加 -LTRStruct 参数时,

  1. RepeatModeler \
  2. -database ${database} \
  3. -pa 12
  4. &> repeatmodeler.log

参考

  1. https://www.repeatmasker.org/RepeatModeler/
  2. https://github.com/Dfam-consortium/RepeatModeler
  3. https://wheelerlab.org/software/ninja/
  4. xuzhougeng | 「基因组注释」使用RepeatModeler从头注释基因组的重复序列