github地址:https://github.com/GoekeLab/m6anet
1. 环境准备
1.1. 创建独立的工作目录
- 目的:为了将m6Anet分析的所有相关文件集中管理,避免与其他项目混淆。
- 操作
-
mkdir ~/m6anet_project cd ~/m6anet_project
1.2. 安装Python 3.7及以上版本并创建环境
- 目的:确保m6Anet及其依赖项能在适合的Python环境中运行。
- 检查Python版本:
python3 --version Python 3.6.8
- 安装Python并激活环境
-
conda create -n m6anet_env python=3.8 conda activate m6anet_env
1.3安装m6Anet分析所需其他软件
- Python 3.7+
- m6Anet
- Minimap2
- Nanopolish
- Samtools
- Multi_to_single_fast5(如果使用multi_read_fast5文件)
- Gffread
由于镜像,网络,权限等各种原因,实在不行就只能手动下载gz文件然后自行编译安装了!
Minimap2
tar -xvzf minimap2-2.28.tar.gz
cd minimap2-2.28
make
./minimap2 --version
# 2.28-r1209
echo $HOME/bin
#添加全局路径。如果你没有将 minimap2、nanopolish 或 samtools 添加到全局路径(即 /usr/local/bin/ 或其他在 PATH 环境变量中的目录),你将需要每次使用这些工具时,指定它们的完整路径。
echo $HOME/bin
/share/home/maliuyin/bin
#这里你可以忽略,你可以选择以下两种方法之一来管理和使用你的软件工具:
方法 1:直接将软件的安装目录添加到 PATH 中;方法 2:将软件的可执行文件放到 ~/bin 目录,并将 ~/bin 添加到 PATH 中
nano ~/.bashrc
export PATH=$PATH:/share/home/maliuyin/m6anet_project/software/minimap2-2.28
source ~/.bashrc
Nanopolish
优先conda安装
#清华和中科大的镜像已经被用爆了,北京外国语的也可以
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/r/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/pro/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/conda-forge/
conda config --set show_channel_urls yes
#重新使用conda安装一下吧
conda install -c bioconda nanopolish
#centos检查有无依赖项
rpm -qa | grep -E 'zlib-devel|bzip2-devel|xz-devel|libcurl-devel'
#zlib-devel-1.2.7-18.el7.i686
libcurl-devel-7.29.0-54.el7.x86_64
xz-devel-5.2.2-1.el7.x86_64
bzip2-devel-1.0.6-13.el7.x86_64
zlib-devel-1.2.7-18.el7.x86_64
#我的系统有所有依赖项
tar -zxvf nanopolish-0.14.0.tar.gz
cd nanopolish-0.14.0
make
samtools
conda install -c bioconda samtools
Gffread
conda install -c bioconda gffread
安装 m6Anet
: m6Anet
目前可能还没有直接在 bioconda
上提供,因此你需要通过 pip
来安装
pip install m6anet
m6anet --help
#安装依赖
conda install cython
conda install gcc_linux-64 gxx_linux-64 # 对于 Linux 系统
pip install m6anet
Multi_to_single_fast5
multi_to_single_fast5
通常是 ont-fast5-api
软件包的一部分,可以通过 Conda 来安装:
conda install -c bioconda ont-fast5-api
2. start work
以下流程中的路径和文件需要注意修改为自己的
2.1提取转录本序列 (gffread
)
gffread ../Genome/AU9_XY.gff3 -g ../Genome/AU9_XY.20230207.fasta -w ../Genome/AU9_XY.transcripts.fasta
2.2将 multi_read_fast5
文件转换为 single_read_fast5
文件 (可选) (multi_to_single_fast5
)
multi_to_single_fast5 -t 20 -i ./test_data/multi_read_fast5 -s ./test_data/single_read_fast5 --recursive
- 解释:将多个读段存储在同一个
.fast5
文件中的数据转换为每个读段一个.fast5
文件。某些工具(如nanopolish
)可能需要单独的fast5
文件。 - 验证:如果你的
.fast5
文件是multi_read
格式,这一步是必要的。
2.3为比对后的读段建立索引 (nanopolish index
)
nanopolish index -d ./test_data/single_read_fast5 ./au9/fastq/pass.fq.gz
- 解释:为原始信号文件(
.fast5
文件)和fastq
文件建立索引,使nanopolish
能够快速访问数据
2.4序列比对 (minimap2
和 samtools
)
minimap2 -ax map-ont -L --secondary=no -t12 ../Genome/AU9_XY.transcripts.fasta ./au9/fastq/pass.fq.gz | samtools view -bh -F 2324 | samtools sort -O bam > ./test_data/basecalls.bam
samtools index ./test_data/basecalls.bam
- 解释:使用
minimap2
将读取的序列比对到参考转录组上,并使用samtools
对结果进行处理,生成排序的 BAM 文件。
2.5生成 eventalign.txt
文件 (nanopolish eventalign
)
nanopolish eventalign --reads ./au9/fastq/pass.fq.gz --bam ./test_data/basecalls.bam --genome ../Genome/AU9_XY.transcripts.fasta --scale-events --signal-index --summary ./test_data/m6anet_summary.txt --threads 16 > ./test_data/m6anet_eventalign.txt
- 解释:
nanopolish eventalign
通过比对的 BAM 文件生成eventalign.txt
文件,包含原始信号的分段信息,这是m6Anet
需要的数据。
2.6数据预处理 (m6Anet dataprep
)
m6anet dataprep --eventalign ./test_data/m6anet_eventalign.txt --out_dir ./test_data/m6anet_output --n_processes 16
- 解释:使用
m6Anet
的dataprep
功能预处理eventalign.txt
数据,为修饰预测准备数据。
2.7预测 m6A 修饰 (m6Anet inference
)
m6anet inference --input_dir ./test_data/m6anet_output --out_dir ./test_data/m6anet_output --pretrained_model arabidopsis_RNA002 --n_processes 16 --num_iterations 1000