01 背景
GetOrganelle工具包用于从基因组浏览数据中组装细胞器基因组。
线粒体用这个 PMAT(组装线粒体基因组)安装及使用(Bioinformatics工具-021)-CSDN博客
它在模拟数据和真实数据上的总体表现最佳,并在第三方比较论文中被推荐为叶绿体基因组组装的默认工具(Freudenthal等,2020,Genome Biology)。
02 安装
GetOrganelle 目前在 Python 3.7.0 环境下维护,但设计时兼容 3.5.1 以上和 2.7.11 版本。它为 Linux 和 macOS 构建,目前不支持 Windows 子系统 Linux,我们正在努力实现该功能。
安装 GetOrganelle 和其依赖项的最简单方法是使用 conda:
conda install -c bioconda getorganelle
在使用上述命令之前,您需要安装 Anaconda 或 Miniconda。如果您不喜欢 conda,或者想跟随最新的更新,您可以在这里找到更多安装选项(我的首选方式)。
安装 GetOrganelle v1.7+ 后,请下载并初始化您选择的细胞器基因组类型的数据库(如 embplant_pt, embplant_mt, embplant_nr, fungus_mt, fungus_nr, animal_mt 和/或 other_pt)。假设您正在组装叶绿体基因组:
get_organelle_config.py --add embplant_pt,embplant_mt
如果连接持续失败,请手动从 GetOrganelleDB 下载最新数据库,并从本地文件进行初始化。
默认情况下,数据库将位于 `~/.GetOrganelle`,可以通过命令行参数 `--config-dir` 或通过 shell 环境变量 GETORG_PATH 进行更改(请参阅更多内容)。
测试
下载拟南芥的模拟 WGS 数据集:
wget https://github.com/Kinggerm/GetOrganelleGallery/raw/master/Test/reads/Arabidopsis_simulated.1.fq.gz
wget https://github.com/Kinggerm/GetOrganelleGallery/raw/master/Test/reads/Arabidopsis_simulated.2.fq.gz
然后使用 `md5sum` 验证下载文件的完整性:
md5sum Arabidopsis_simulated.*.fq.gz
# 935589bc609397f1bfc9c40f571f0f19 Arabidopsis_simulated.1.fq.gz
# d0f62eed78d2d2c6bed5f5aeaf4a2c11 Arabidopsis_simulated.2.fq.gz
# 如果您的 md5 值不匹配,请重新下载读取文件
接下来执行快速的质体基因组组装(内存:约600MB,CPU 时间:约60秒):
get_organelle_from_reads.py -1 Arabidopsis_simulated.1.fq.gz -2 Arabidopsis_simulated.2.fq.gz -t 1 -o Arabidopsis_simulated.plastome -F embplant_pt -R 10
将获得类似的运行日志和相同的结果。
03 使用
翻译:```
get_organelle_config.py -h
用法: get_organelle_config.py -a embplant_pt,embplant_mtget_organelle_config.py 1.7.7.1 用于设置默认的 GetOrganelle 数据库。可选参数:-h, --help 显示此帮助信息并退出-a ADD_ORGANELLE_TYPE, --add ADD_ORGANELLE_TYPE添加细胞器类型的数据库。可选择的值包括:all/embplant_pt/embplant_mt/embplant_nr/fungus_mt/fungus_nr/animal_mt/other_pt,或用逗号连接多个类型,如 embplant_pt,embplant_mt,fungus_mt。--use-version DB_VERSION 要添加的数据库版本。可以在 github.com/Kinggerm/GetOrganelleDB 中找到更多版本。默认值: 最新版本-r RM_ORGANELLE_TYPE, --rm RM_ORGANELLE_TYPE移除本地的细胞器类型数据库。可选择的值包括:all/embplant_pt/embplant_mt/embplant_nr/fungus_mt/fungus_nr/animal_mt/other_pt,或用逗号连接多个类型,如 embplant_pt,embplant_mt。--update 将本地数据库更新到最新的在线版本,或者如果提供了 "--use-local LOCAL_DB_PATH",则更新到本地版本。--config-dir GET_ORGANELLE_PATH放置默认数据库的目录。默认值也可以通过在 shell 脚本中添加 'export GETORG_PATH=your_favor' 来更改(例如 ~/.bash_profile 或 ~/.bashrc)。默认值: /new2pan/xyy230105/.GetOrganelle--use-local USE_LOCAL 输入一个路径。此本地数据库路径必须包含 LabelDatabase 和 SeedDatabase 子目录,其中有以所需细胞器类型命名的 fasta 文件,如 fungus_mt.fasta。--clean 删除所有配置的数据库文件(等同于 "--rm all")。--list 列出已配置的数据库并退出。--check 检查配置的数据库文件并退出。--db-type DB_TYPE 数据库类型(seed/label/both)。默认值: both--which-blast WHICH_BLAST 如果 BLAST 二进制文件未添加到路径中,指定其路径。默认值: 首先尝试 "/new2pan/xyy230105/GetOrganelleDep/linux/ncbi-blast",然后尝试 $PATH--which-bowtie2 WHICH_BOWTIE2如果 Bowtie2 二进制文件未添加到路径中,指定其路径。默认值: 首先尝试 "/new2pan/xyy230105/GetOrganelleDep/linux/bowtie2",然后尝试 $PATH--verbose 在屏幕上输出详细信息。默认值: False-v, --version 显示程序的版本号并退出
```
04 常用参数
### 输入数据
目前,`get_organelle_from_reads.py` 适用于 Illumina 双端/单端数据(fastq 或 fastq.gz)。我们建议使用未经过质量控制的、去除接头的原始读取数据。通常,对于大多数正常的被子植物样本,每端大于1G的数据足够进行质体基因组组装,而对于线粒体基因组组装,每端需要大于5G的数据。从 v1.6.2 开始,`get_organelle_from_reads.py` 会自动估算所需的读取数据量,无需用户分配或减少数据(请参阅标志 `--reduce-reads-for-coverage` 和 `--max-reads`)。### 主要选项
- `-w` 值字大小(类似于组装中的 kmer)对该过程的可行性和效率至关重要。最佳的字大小因数据而异,并会受到读取长度、读取质量、碱基覆盖率、细胞器 DNA 百分比及其他因素的影响。默认情况下,GetOrganelle 会根据数据特性自动估算适当的字大小。尽管自动估算的字大小不保证最佳性能或最佳结果,但如果生成了完整的环形细胞器基因组组装,您无需调整此值,因为 GetOrganelle 生成的环形结果在不同选项和种子下高度一致。在某些动物线粒体基因组数据中,由于覆盖率估算不准确,自动估算的字大小可能会出错,此时可以进行微调。- `-k` 最佳的 kmer(s) 也取决于多种因素。尽管使用更多的 kmer 值会增加耗时,但我们建议使用广泛范围的 kmer 值,以充分利用 SPAdes 的能力。经验上,至少应包括一个小 kmer(例如 21)和一个大 kmer(例如 85),以确保成功组装细胞器基因组。kmer 梯度中的最大值可能对获得完整的环形细胞器基因组至关重要。- `-s` GetOrganelle 使用种子(fasta 格式;如果未提供,默认使用 `GetOrganelleLib/SeedDatabase/*.fasta` 作为探针),脚本会通过多轮递进过程招募目标读取数据。默认种子适用于大多数样本,但使用相关物种的完整细胞器基因组序列作为种子,在许多情况下(如降解的 DNA 样本、快速进化的动物/真菌样本)有助于组装(详情见此处)。 ##有参组装必备xy### 关键结果
关键输出文件包括:
- `*.path_sequence.fasta`:每个 fasta 文件代表一种基因组结构。
- `*.selected_graph.gfa`:仅包含细胞器的组装图。
- `get_org.log.txt`:日志文件。
- `extended_K*.assembly_graph.fastg`:原始组装图。
- `extended_K*.assembly_graph.fastg.extend_embplant_pt-embplant_mt.fastg`:简化的组装图。
- `extended_K*.assembly_graph.fastg.extend_embplant_pt-embplant_mt.csv`:用于 Bandage 可视化的标签文件(csv 格式)。 如果生成的基因组是完整的(日志文件和 `*.fasta` 文件名中会指示),可以删除上述文件中不需要的部分。对于大多数动物/真菌线粒体基因组和植物叶绿体基因组,您应能获得完整的细胞器基因组组装结果(有关核糖体 DNA 的信息见此处)。如果 GetOrganelle 未能生成完整的环形基因组(生成 `*scaffolds*path_sequence.fasta`),请按照此处调整参数并进行二次运行。您还可以使用不完整的序列进行后续分析。### 从组装数据开始
以下流程图中的蓝色工作流程显示了 `get_organelle_from_assembly.py` 的执行过程。### 输入数据及主要选项
- `-g` 输入必须是 FASTG 或 GFA 格式的组装图文件。 如果输入的是通过第三方 de novo 组装器(如 Velvet)从总 DNA 测序中组装的组装图,可能会包含大量非目标的 contig。您可能希望使用 `--min-depth` 和 `--max-depth` 来大大减少目标提取的计算负担。如果输入的是等价的细胞器组装图(例如,使用 Bandage 手动整理并导出),您可以使用 `--no-slim`。### 关键结果
关键输出文件包括:
- `*.path_sequence.fasta`:每个 fasta 文件代表一种基因组结构。
- `*.fastg`:与细胞器相关的组装图,用于改进和调试。
- `*.selected_graph.gfa`:仅包含细胞器的组装图。
- `get_org.log.txt`:日志文件。
06 组装案例
6.1 从读取数据开始
6.1.1 植物界 (Embryophyta)
要组装植物的质体基因组(plastome),例如使用2G的150 bp双端原始数据,通常我使用:
get_organelle_from_reads.py -1 forward.fq -2 reverse.fq -o plastome_output -R 15 -k 21,45,65,85,105 -F embplant_pt
或者采用简化方式:
get_organelle_from_reads.py -1 forward.fq -2 reverse.fq -o plastome_output --fast -k 21,65,105 -w 0.68 -F embplant_pt
或者采用较慢且节省内存的方式:
get_organelle_from_reads.py -1 forward.fq -2 reverse.fq -o plastome_output -R 30 -k 21,45,65,85,105 -F embplant_pt --memory-save
要组装植物的线粒体基因组(mitogenome),通常需要超过5G的原始数据:
get_organelle_from_reads.py -1 forward.fq -2 reverse.fq -o mitochondria_output -R 20 -k 21,45,65,85,105 -P 1000000 -F embplant_mt
**注意**:
1. 请使用FASTG文件作为最终输出以便后续手动处理。在进一步更新之前,含有大量重复序列的植物线粒体基因组的FASTA输出可能存在错误。
2. 由于植物线粒体基因组的复杂性和短读长数据的局限性,GetOrganelle文章中未测试 `embplant_mt` 模式,因此参数选择还有改进空间。
要组装植物的核糖体RNA(18S-ITS1-5.8S-ITS2-26S):
get_organelle_from_reads.py -1 forward.fq -2 reverse.fq -o nr_output -R 10 -k 35,85,115 -F embplant_nr
6.1.2 非植物界
非植物质体和线粒体基因组可能与植物界的基因组差异较大。我们对此尚未深入探索,但许多用户已成功使用 GetOrganelle 默认数据库或自定义数据库完成了组装。
内置的 `other_pt` 模式和预设的默认数据库适用于非植物质体基因组。我建议从 `-F other_pt` 开始,并使用类似于 `embplant_pt` 部分的选项。对于非植物线粒体基因组,没有内置模式。鉴于这些序列可能与 `embplant_mt` 相差甚远,除了使用类似于 `embplant_mt` 的选项外,还可以制作一对自定义种子数据库和标签数据库,并按照此处的指南运行 GetOrganelle。
6.1.3 真菌 (Fungus)
要组装真菌线粒体基因组:
get_organelle_from_reads.py -1 forward.fq -2 reverse.fq -R 10 -k 21,45,65,85,105 -F fungus_mt -o fungus_mt_out
如果使用默认数据库失败,请使用您自己的种子数据库和标签数据库,通过 `-s` 和 `--genes` 选项运行。
要组装真菌核糖体 RNA(18S-ITS1-5.8S-ITS2-28S):
get_organelle_from_reads.py -1 forward.fq -2 reverse.fq -R 10 -k 21,45,65,85,105 -F fungus_nr -o fungus_nr_out
6.1.4 动物 (Animal)
要组装动物线粒体基因组:
get_organelle_from_reads.py -1 forward.fq -2 reverse.fq -R 10 -k 21,45,65,85,105 -F animal_mt -o animal_mt_out
如果使用默认数据库失败,请使用您自己的种子数据库(或第一次 GetOrganelle 运行的输出)和标签数据库,通过 `-s` 和 `--genes` 选项重新运行。
6.2 从组装图开始
可用的细胞器类型与“从读取数据开始”部分相同(请通过 `get_organelle_from_assembly.py -h` 查看更多信息),但最简单的用法没有太大区别。以下是从现有组装图(如长读长测序组装的 `*.fastg` 或 `*.gfa` 文件)中提取质体基因组的示例:
get_organelle_from_assembly.py -F embplant_pt -g ONT_assembly_graph.gfa
07 参考文献
Jian-Jun Jin*, Wen-Bin Yu*, Jun-Bo Yang, Yu Song, Claude W. dePamphilis, Ting-Shuang Yi, De-Zhu Li. GetOrganelle: a fast and versatile toolkit for accurate de novo assembly of organelle genomes. Genome Biology 21, 241 (2020). GetOrganelle: a fast and versatile toolkit for accurate de novo assembly of organelle genomes | Genome Biology | Full Text
SPAdes: Prjibelski, A., Antipov, D., Meleshko, D., Lapidus, A. and Korobeynikov, A. 2020. Using SPAdes de novo assembler. Current protocols in bioinformatics, 70(1), p.e102.
Bowtie2: Bowtie2安装与使用-bowtie2-2.5.2(bioinfomatics tools-011)-CSDN博客
Langmead, B. and S. L. Salzberg. 2012. Fast gapped-read alignment with Bowtie 2. Nature Methods 9: 357-359.
BLAST+: Blast安装及使用-Blast+2.14.0(bioinfomatics tools-001)_blast软件-CSDN博客
Camacho, C., G. Coulouris, V. Avagyan, N. Ma, J. Papadopoulos, K. Bealer and T. L. Madden. 2009. BLAST+: architecture and applications. BMC Bioinformatics 10: 421.
Bandage: Wick, R. R., M. B. Schultz, J. Zobel and K. E. Holt. 2015. Bandage: interactive visualization of de novo genome assemblies. Bioinformatics 31: 3350-3352.