【线粒体基因组分析】01.使用MITOS进行线粒体基因组注释及tRNA二级结构预测(动物和真菌适用)

一、概述

本教程提供了使用 MITOS 进行线粒体基因组注释的方法,包括网页版 MITOS 和本地版 MITOS 的使用流程,并且对注释结构进行解释。MITOS 的注释结果中有 RNA 的二级结构图可以用于后续的美化。首先推荐大家优先使用网页版的 MITOS 进行注释,因为本地版需要一定的代码基础,如果课题组有服务器条件并且有大量的基因组需要注释可以考虑使用本地版本的 MITOS。

二、视频教学

01.使用MITOS进行线粒体基因组注释及tRNA二级结构预测(动物和真菌适用)https://www.bilibili.com/video/BV1JEifYaE8w​www.bilibili.com/video/BV1JEifYaE8w

三、网页版 MITOS 注释流程

优先推荐使用网页版 MITOS,操作简单。MITOS 的官网网址是:HTTP://mitos.bioinf.uni-leipzig.de/index.py,目前官网已经不提供注释服务,我们需要进入网页中提供的镜像网页进行注释。

MITOS官网界面,红色方框是镜像网页的超链接

推荐使用 MITOS2 的注释服务,个别物种或者参考文献中可能会提到使用 MITOS 1.0 版本的复现研究过程中才使用 MITOS 1.0。有时 MITOS 网页打不开,可以使用官方提供的链接:

可以根据自身网络条件进行选择!你也可以选择国内的银河服务器镜像:MITOS2(国内镜像),接下来以 usegalaxy.eu 镜像为例,其他的镜像使用方法一致。

3.1 序列导入

在注释开始之前我们需要有组装完整的线粒体基因组 Fasta 序列,并且文件中必须有且仅有一条序列,例如我们如果有一个组装好的线粒体基因组 fasta 格式的序列:

>s1 [organism=Alectoris magna] ACCCTCCACAGGCAAAAGGAGCAGGTATCAGGCACACCCAATGTTTAGCCCAAGACGCCTTGCTAAG CCACACCCCCACGGGTATTCAGCAGTAATTAACCTTAAGCAATAAGTGCAAACTTGACTTAGCCATA GCAATACTAGGGTTGGTAAATCTTGTGCCAGCCACCGCGGTCATACAAGAAACCCAAATTAATAGCC ATCCGGCGTAAAGAGTGGCCACATGTTATCCGCATTAACTAAGATCAAAACGAAACTGAGCTGTCAT AAGCCCAAGACTCACCTAAGCCCGACCTAAAAACCATCTTAGTTCCCACGACCAATTTAAACCCACG ... ACAGGCAAAAGGAGCAGGTATCAGGCACACCCAATGTTTAGCCCAAGACGCCTTGCTAAGCCACACC CCCACGGGTATTCAGCAGTAATTAACCTTAAGCAATAAGTGCAAACTTGACTTAGCCATAGCAATAC

我们可以将其添加到网页中

第一步:点击浏览本地文件夹

第二步:点击上传

第三步:选择本地文件

第四步:指定格式

第五步:点击开始即可导入,点击取消可以关闭窗口

第六步:选择我们上传的序列文件

3.2 密码子表选择

在密码子表处选择物种线粒体对应的密码子表,注意:无论什么物种,只要是核基因都是严格遵循标准密码子表的,只有线粒体和质体基因可能有其他遵循,由于本教程是面向线粒体基因组的,所以需要按照实际调整。脊椎动物线粒体是第 2 套密码子表,无脊椎动物线粒体是第 5 套密码子表,更多物种的密码子表遵循规则可以参考 NCBI 提供的网页:HTTPS://www.ncbi.nlm.nih.gov/Taxonomy/Utils/wprintgc.cgi

3.3 参考基因组选择

如果没有特殊需求,请选择 89 版本参考基因组!Metazoa 表示后生动物,Fungi 表示真菌,Opisthokonta 表示动物和真菌。如果需要复现文章可能会有使用 63 版本的机会。

3.4 指定序列是否是线性的

对于线粒体基因组来说不是线性,默认 No 即可。

3.5 导出结果指定

因为每个导出文件都需要在后台跑一次程序,所以为了节省时间只需要导出 zipped raw results 即可输出全部内容,但是有时候压缩包里包括的内容不完整,比如 tRNA 的二级结构图是最容易缺失的,所以我们可以顺便把 ncRNA structure plots -svg 勾选上。

3.6 参数设置

我们只需要关注特征选择即可,其他参数正常保持默认即可。

特征把能勾选的都勾选上

3.7 运行工具

点击 Run 就开始注释了!

之后工作窗口就显示我们的注释任务了!我们勾选几个输出格式就会有几个程序在跑,所以建议不要点太多的输出类型。

3.8 下载结果

绿色表示可以下载结果了!我只下载压缩包文件,因为里边什么结果都有(不出意外的话)。

如果显示压缩包无法打开,重新下载一遍即可

下载完成之后有以下内容:

四、结果解释

在 zipped raw results 的结果中包含所有的输出文件。

4.1 blast 文件夹

包含了蛋白编码基因预测过程中核苷酸和氨基酸的 blast 比对的结果。

4.2 mitfi-global 文件夹

包含了 ncRNA 编码基因预测过程中的结果。

4.3 plots 文件夹(重要)

里边包含了非编码 RNA 的二级结构图的 SVG 以及 PS 格式。其中 SVG 版本的图片使用我的美化脚本可以组图美化。

4.4 其他文件

ignored.mitos:不重要;

result.bed:bed 格式注释文件;

result.faa:注释出的氨基酸序列;

result.fas:注释出的基因序列;

result.geneorder:基因排布;

result.gff:gff 格式注释文件;

result.mitos:mitos 格式注释文件,里边包含的信息最多,其中起止位置坐标从 0 开始,实际位置坐标应该是表格中的数字加 1;

result.png:基因排布图;

result.seq:tbl 格式注释文件;

stst.dat:不重要。

五、本地服务器版 MITOS 注释流程(以 MITOS2 为例,选做)

本地版的源代码托管于:HTTPS://GitLab.com/Bernt/MITOS

5.1 下载安装

安装方法1:使用conda建立mitos环境,并进入mitos环境
conda create --strict-channel-priority -c conda-forge -c bioconda -n mitos2 "mitos>=2"
conda activate mitos2

安装方法2:使用mamba建立mitos环境,并进入mitos环境(推荐)
mamba create --strict-channel-priority -c conda-forge -c bioconda -n mitos2 "mitos>=2"
conda activate mitos2

安装方法3:使用pip安装(不推荐)
pip install mitos

安装报错cmsearch未安装需要运行:可能需要root权限,建议联系管理员
apt install infernal

运行:runmitos.py –help如果看到参数说明,即为安装成功!

5.2 主要参数

主要参数:
-i FILE, --input FILE 输入的基因组文件;
-C CODE, --code CODE 需要使用的密码子表(填写序号);
-o OUTDIR, --outdir OUTDIR 指定输出文件夹(需要预先创建);
-r REFSEQVER, --refseqver REFSEQVER 参考基因组文件夹相对-refdir 的路径;
-R REFDIR, --refdir REFDIR 有些鸡肋,必须指定;
--zip 指定可以输出压缩包。
其他参数可参照帮助信息。

5.3 参考基因组下载

本地版注释软件需要自行下载参考基因组并解压,参考基因组托管在 zenodo 数据库中(MITOS, MITOS2),由于网络原因可能打不开,可以尝试使用下面的指令下载。类比 3.3 的说明,推荐使用 89 版本的参考基因组 89m 表示后生动物,89f 表示真菌,89o 表示动物和真菌,推荐需要哪个下载哪个。

使用wget下载所需要的参考基因组:
wget https://zenodo.org/records/4284483/files/refseq89m.tar.bz2
wget https://zenodo.org/records/4284483/files/refseq89f.tar.bz2
wget https://zenodo.org/records/4284483/files/refseq89o.tar.bz2

wget https://zenodo.org/records/4284483/files/refseq63f.tar.bz2
wget https://zenodo.org/records/4284483/files/refseq63m.tar.bz2
wget https://zenodo.org/records/4284483/files/refseq63o.tar.bz2

解压:
(单个解压)tar jxvf refseq89m.tar.bz2
(批量解压)for i in `ls |grep .tar.bz2`;do tar jxvf $i;done

如果下载不了我也整理了这些参考基因组,可以自行下载:

MITOS2参考基因组,提取码:wqejhttps://pan.baidu.com/s/1tCHWNf0fZkLdFUJ3KP8Rqg?pwd=wqej​如果链接失效请私信。

5.4 示例代码

conda activate mitos2
wget https://zenodo.org/records/4284483/files/refseq89m.tar.bz2
tar jxvf refseq89m.tar.bz2
mkdir output

nohup runmitos.py  --input input.fasta --code 2 --outdir ./output --refdir '/' --refseqver /mnt/sdb/xuehao/mitostest/refseq89m&

例子中,input.fasta 是线粒体基因组,--code 是指定第几套密码子表,例子中是脊椎动物。

六、注意事项

Mitos 只适用于动物和真菌线粒体基因组注释,植物质体(线粒体/叶绿体)基因组应使用其他工具(如 GeSeq);

Mitos 注释可以提供较为准确的注释结果,但由于物种差异等原因造成注释有偏差,应当对比多个近缘物种的基因组结构进行人工注释修正;

可以结合近缘物种的基因组结构对基因注释的数目进行评估,如果注释数目少于其他物种,在保证基因组组装完整的前提下,调整阈值参数以得到更多的候选基因。

<think>我们面对的问题是如何从30X的全基因组重测序数据中降采样到5X,然后从中提取线粒体基因组并进行组装注释。以下是详细的步骤: 1. **降采样至5X**: - 首先,我们需要计算原始数据的总数据量(30X)目标数据量(5X),因此需要降采样到原来的1/6。 - 可以使用`seqtk`工具进行随机降采样。假设原始数据是双端测序(R1R2),我们分别对两个文件进行降采样。 计算降采样比例: 目标覆盖率5X,原始覆盖率30X,所以采样比例为5/30=1/6。 使用seqtk命令: ```bash # 假设原始文件为 raw_R1.fq.gz raw_R2.fq.gz seqtk sample -s100 raw_R1.fq.gz 0.1667 > downsampled_R1.fq seqtk sample -s100 raw_R2.fq.gz 0.1667 > downsampled_R2.fq ``` 注意:这里0.1667是1/6的近似值,-s100指定随机种子,保证可重复性。 2. **数据预处理**: - 对降采样后的数据进行质量控制过滤,去除低质量序列接头。 - 使用FastQC进行质量评估,然后使用Trimmomatic进行过滤。 ```bash # 质量评估 fastqc downsampled_R1.fq downsampled_R2.fq # 过滤 java -jar trimmomatic PE -phred33 downsampled_R1.fq downsampled_R2.fq \ downsampled_R1_paired.fq downsampled_R1_unpaired.fq \ downsampled_R2_paired.fq downsampled_R2_unpaired.fq \ ILLUMINACLIP:TruSeq3-PE.fa:2:30:10 LEADING:3 TRAILING:3 SLIDINGWINDOW:4:15 MINLEN:36 ``` 3. **提取线粒体reads**: - 由于我们降采样后数据量较少(5X),直接组装整个基因组可能困难,但线粒体基因组由于高拷贝数,在重测序数据中通常有较高的覆盖深度(可能达到几百甚至上千倍)。因此,我们可以通过比对到近缘鱼类的线粒体参考基因组来提取线粒体reads。 - 如果没有近缘物种的线粒体基因组,可以考虑使用已知的鱼类线粒体基因组作为参考,或者使用`GetOrganelle`等工具进行富集。 方法一:使用参考基因组比对(推荐) ```bash # 下载近缘物种的线粒体基因组(如斑马鱼)作为参考 # 使用bwa建立索引 bwa index Danio_rerio_mito.fa # 比对 bwa mem -t 8 Danio_rerio_mito.fa downsampled_R1_paired.fq downsampled_R2_paired.fq > mito_aligned.sam # 转换为BAM并提取比对上的reads samtools view -b -F 4 mito_aligned.sam > mito_mapped.bam samtools fastq -1 mito_R1.fq -2 mito_R2.fq mito_mapped.bam ``` 方法二:使用`GetOrganelle`进行富集(如果没有合适参考) ```bash get_organelle_from_reads.py -1 downsampled_R1_paired.fq -2 downsampled_R2_paired.fq -F animal_mt -o mito_output -R 15 -k 21,45,65,85,105 # 输出结果在mito_output目录中,可以找到初步组装的线粒体基因组 ``` 4. **线粒体基因组组装**: - 由于线粒体基因组较小(鱼类通常在16-18kb左右),且我们提取的reads覆盖深度高,可以使用专门针对线粒体的组装工具,如NOVOPlasty,或者使用常规的短读长组装工具(如SPAdes)进行组装。 使用NOVOPlasty(专门用于细胞器基因组组装): ```bash # 需要配置文件,例如config.txt Project: -------------------- Project name = FishMito Type = mito Genome Range = 15000-20000 K-mer = 39 Max memory = Extended log = 0 Save assembled reads = no Seed Input = seed_sequence.fasta # 可以是近缘物种的线粒体基因或一个已知的线粒体基因(如COI) Reference sequence = # 可选,用于引导组装 Variance detection = Heteroplasmy = PCRE = -------------------- Project: Project name = FishMito Type = mito Genome Range = 15000-20000 K-mer = 39 Max memory = 20 Extended log = 0 Save assembled reads = no Seed Input = seed.fasta Reference sequence = Variance detection = no Heteroplasmy = no # 然后运行 NOVOPlasty4.2.pl -c config.txt ``` 或者使用SPAdes: ```bash spades.py --only-assembler -1 mito_R1.fq -2 mito_R2.fq -o mito_spades -k 21,33,55,77 --careful ``` 5. **组装后处理**: - 环化:线粒体基因组是环状的,所以需要确认组装的序列是否形成环状。可以通过检查两端是否有重叠区域,或者使用Bandage等工具可视化。 - 纠错:使用原始数据对组装结果进行纠错。例如,使用Pilon或Racon。 ```bash # 使用bwa将原始线粒体reads(mito_R1.fqmito_R2.fq)比对到初步组装的线粒体基因组上 bwa index assembly.fasta bwa mem -t 8 assembly.fasta mito_R1.fq mito_R2.fq | samtools sort -o sorted.bam samtools index sorted.bam # 使用Pilon纠错 java -Xmx16G -jar pilon.jar --genome assembly.fasta --frags sorted.bam --output polished --diploid ``` 6. **线粒体基因组注释**: - 使用专门的线粒体注释工具,如MITOS、MitoAnnotator或MitoFish。 ```bash # 使用MITOS在线服务器(https://mitos.bioinf.uni-leipzig.de/index.py)或本地版本 # 本地运行 perl mitos.pl -i polished.fasta -o annotation -refseq 00 -c config.txt ``` - 注释结果包括蛋白质编码基因、rRNA、tRNA等。由于鱼类线粒体基因组结构高度保守,可以进一步与已知鱼类线粒体基因组进行比对(使用BLAST或Mauve)来验证注释结果。 7. **质量评估**: - 检查基因组的完整性:是否包含13个蛋白质编码基因,2个rRNA22个tRNA。 - 计算覆盖深度:使用原始比对文件(sorted.bam)计算平均深度。 - 检查污染:将组装结果与NCBI nt数据库进行BLAST,确保没有核基因组或细菌污染。 注意事项: - 降采样后,全基因组的覆盖深度为5X,但线粒体基因组由于高拷贝,其覆盖深度会远高于5X(可能是几百甚至上千倍),因此组装线粒体基因组是可行的。 - 如果使用参考基因组比对提取线粒体reads,参考基因组的选择很重要。尽量选择近缘物种,否则可能丢失部分序列。 通过以上步骤,我们可以从30X重测序数据降采样至5X,然后提取并组装出鱼类线粒体基因组,并进行注释。</think>### 鱼类线粒体基因组组装流程(30X重测序数据降采样至5X) #### 1. **数据降采样处理** 使用`seqtk`进行随机降采样,将30X覆盖率降至5X(保留16.7%的reads): ```bash # 计算目标reads数(假设基因组大小1.5Gb) total_reads=$(wc -l < raw_R1.fq)/4 target_reads=$((total_reads * 5 / 30)) # 降采样 seqtk sample -s100 raw_R1.fq 0.167 > down5x_R1.fq seqtk sample -s100 raw_R2.fq 0.167 > down5x_R2.fq ``` #### 2. **线粒体reads富集** **参考基因组比对法**(推荐): ```bash # 下载近缘鱼类线粒体参考(如斑马鱼Danio_rerio) bwa index ref_mito.fasta bwa mem -t 8 ref_mito.fasta down5x_R1.fq down5x_R2.fq | samtools view -b -F 4 > mito.bam samtools fastq -1 mito_R1.fq -2 mito_R2.fq mito.bam ``` > **优势**:降采样后线粒体覆盖深度仍可达100-500X(因拷贝数高)[^1] #### 3. **基因组组装** **短读长组装工具选择**: ```bash # 使用鱼类优化工具NOVOPlasty NOVOPlasty4.2.pl -c config.txt # 配置种子序列k-mer ``` 或 ```bash # SPAdes混合模式(需长读长时) spades.py --iontorrent -1 mito_R1.fq -2 mito_R2.fq -o mt_assembly ``` #### 4. **组装后处理** - **环化验证**: ```bash minimap2 -x asm5 mt_assembly.fasta mt_assembly.fasta | paftools.js view - | grep 'circular' ``` - **纠错优化**: ```bash racon -t 8 mito_R1.fq mito_R2.fq mt_assembly.fasta > polished.fa ``` #### 5. **基因组注释** **鱼类专用流程**: ```bash # 使用MitoFish注释器 perl MitoAnnotator.pl -i polished.fa -o annotation -taxid 7777 # 鱼类分类ID ``` > **注释验证**: > - 必需包含13个蛋白编码基因(COX1-3, ND1-6等)[^1] > - tRNAscan-SE检测22个tRNA > - 比对NCBI Fish Mitogenome数据库[^4] #### 6. **污染筛查** ```bash blastn -query polished.fa -db nt -outfmt 6 | awk '$3>95 && $4>1000' | grep -v "Actinopterygii" ``` > **关键指标**:比对到非硬骨鱼类的序列需手动验证[^2] --- ### 关键问题解决方案 1. **核基因组污染区分**: - 计算GC含量偏差(线粒体通常<45%) - 检查基因排列顺序(鱼类保守基因簇)[^4] - 比对核基因组数据库(如RefSeq) 2. **降采样可行性验证**: $$ \text{线粒体深度} = \frac{\text{总深度} \times \text{线粒体拷贝数}}{\text{核基因组大小}} $$ 典型值:30X降5X后,线粒体深度≈500X(拷贝数2000,基因组1.5Gb) 3. **无参考基因组策略**: - 使用`GetOrganelle`进行 *de novo* 富集 - 结合12S/COI通用引物扩增种子序列[^1] - 保守蛋白基因(COX1)引导组装 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值