DENA (Deeplearning Explore Nanopore m6A)
开始使用
这些说明将帮助你在本地机器上获取项目的副本,并用于开发和测试目的。有关在实时系统中部署项目的说明,请查看部署。
0. 先决条件
使用 Conda 或 virtualenv 创建相对独立和干净的工作环境可能是使用 DENA 的明智选择。以下是你需要安装的内容(请逐项确认):
- 类 Unix 系统(如 centos, ubuntu 等)
- 支持 Cuda 的显卡(可选)
- Python >= 3.7.x 和 Pytorch
- tombo, minimap2, samtools
输入数据要求
- 包含原始电流信号的一批 fast5 文件
- 包含上述 fast5 对应的 basecalled 序列的 fastq 文件
- 适当的参考序列(推荐使用转录组参考序列)
提示:
${variable}
: 你需要将其分配为你的实际值
- 在参考序列的 fasta 序列中获取与基序匹配的坐标(必须是转录组参考序列)
python3 LSTM_extract.py get_pos --fasta ${fasta_fn} --motif 'RRACH' --output ./candidate_predict_pos.txt
你将得到类似这样的结果(candidate_predict_pos.txt):
AT1G01010.1 17 22 + AAACC
*注意:请确认提供的是转录组参考序列而不是基因组参考序列。
新版本功能
我们不再需要外部 C++ 工具
修复了一些物种的 FASTA 文件的兼容性问题
- fast5 base-calling, 信号重排和序列比对
2.1 fast5 base-calling
(可选)如果 fast5 文件是 multi_read_fast5 文件,则需要使用 https://github.com/nanoporetech/ont_fast5_api 将包含 multi_read_fast5 文件的文件夹转换为单读 fast5 文件。
multi_to_single_fast5 -t 20 -i ${multi_read_fast5_folder} -s ${single_read_fast5_folder} --recursive
这一步是通过使用 guppy 进行 base-calling 从 fast5 文件中获取 fastq 序列。
${SoftPath}/guppy_basecaller -i ${single_read_fast5_folder} -s ${outfile} --flowcell FLO-MIN106 --kit SQK-RNA001 --cpu_threads_per_caller {
thread} --qscore_filtering --fast5_out --records_per_fastq 0 --recursive
cat ${outfile}/pass/*.fastq > basecalls.fq
*${SoftPath} : guppy 软件的路径
*${single_read_fast5_folder} : 需要进行 base-call 的单 fast5 文件的路径。
*${outfile} : 输出文件夹的路径
*注意:请检查实验中使用的库构建的 flowcell 和 kit 版本,并正确设置。
2.2 tombo 重排
这一步是获取每个读取的每个碱基的信号片段与参考序列之间的唯一映射。
有关详细帮助,请参阅 https://github.com/nanoporetech/tombo
tombo resquiggle --rna --processes {
thread} --corrected-group RawGenomeCorrected_001 --basecall-group Basecall_1D_001 --include-event-stdev --overwrite --ignore-read-locks ${params.fast5} ${params.ref}
*注意:请检查重排前要使用的 basecall-group,并设置 corrected-group。
2.3 基于 minimap2 的序列比对
有关详细帮助,请参阅 minimap2 samtools
minimap2 -ax map-ont -L --secondary=no ${transcriptome} ${basecalls.fq} | samtools view -bh -F 2324 | samtools sort -O bam > basecalls.bam
samtools index basecalls.bam
*${transcriptome} : 转录组参考序列的 fasta
*${basecalls.fq} : 步骤 2.1 中从 fast5 文件进行 base-calling 的 fastq
- 提取特征
新版本功能
支持以 BRI 模式读取 BAM 文件以减少内存消耗
安装 C++ 库和 Python 包装器以启用此功能
https://github.com/nanoporetech/bripy https://github.com/jts/bri
现在支持灵活的窗口设置
在这一步中,你需要为程序提供两个输入参数:fast5_folder(由 tombo 重排)